何佳華,申 沖,唐 軍,劉 俊
(1.中北大學儀器科學與動態測試教育部重點實驗室,太原 030051;2.中北大學儀器與電子學院,太原 030051)
基于復眼的場景匹配是無人機視覺導航[1-2]的一種重要手段,復眼圖像拼接質量決定著場景匹配的成功率。圖像拼接是指通過圖片特征點匹配、圖像融合、平滑縫合線的方式,把兩幅或多幅有重疊部分的圖像拼接成單張高分辨率的圖像的過程。由于單個攝像頭視場有限,所以將多個安裝角度不同的攝像頭所獲得的圖像進行拼接,已經成為實現大視場高分辨率圖像的主流方法。傳統的圖像拼接算法一般包含特征匹配與圖像融合兩部分,其中特征匹配是指對要拼接圖像的特征點進行提取,再對兩幅圖像中相同的特征點進行匹配;圖像融合是指利用匹配正確的特征點的位置關系,將待拼接的圖像進行融合。
提取的圖像特征點的數量與分布位置直接決定了圖像拼接的準確度。近年來,對于特征點提取算法的改進主要集中在提升計算速度以及提取精度上。1988年,Mikolajczyk和Schmid[3]提出了用于特征點提取的Harris算法,通過圖像灰度計算像素點的曲率以及梯度,從而確定特征點的位置。2004年,D.G.Lowe提出了尺度不變特征變換[4](scale invariant feature transform,SIFT),該算法通過對圖像建立高斯差分空間,在不同尺度空間檢測極值點并對其進行剔除與定位,取得高精度特征點。SIFT算法具有很強的魯棒性、尺度不變性及旋轉不變性、光照不變性,缺點是計算時間過長。2006年,H. Bay和A. Ess[5]為提高計算速度,提出了加速魯棒特征(speeded-up robust feature,SURF)算法,在幾乎不縮減SIFT性能的同時將計算時間縮短至原來的三分之一。2011年,E.Rublee 和 V.Rabaud[6]提出了一種新的特征點提取算法ORB(Oriented FAST and Rotated BRIEF),相較于SIFT與SURF算法,計算量小、速度快,但精度有所降低。2022年,秦緒佳[7]提出了一種改進的ORB匹配算法,在降低運算速度的同時提高了特征點的提取精度。可見現有的ORB算法在運算速度與特征點提取精度方面均有所提高,但仍難以解決圖像特征點過于集中情況下的圖像拼接重影問題。
在特征點提取后即可進行圖像匹配,即通過兩張圖像特征點的相似度建立特征向量的對應關系。常用的有最近鄰距離比率法[8-9](nearest neighbor dist-ance ratio,NNDR)與隨機抽樣一致(random sample consensus,RANSAC)算法[10-12]。NNDR通過設定與選定特征點最近距離點與次近距離點距離的比率閾值,小于閾值則判定為最近距離點與選定參考點為一對匹配點。但NNDR算法會消除大量正確匹配的特征點,降低圖像拼接性能。RANSAC則是通過隨機選取一個特征點子集估計出一個參數模型,再使用所有測試點測試此參數模型,并不斷迭代優化,匹配出特征點適應數量最多的參數模型。RANSAC算法得到可信模型的概率與迭代次數成正比,若設置迭代次數低則可能導致錯誤結果,若迭代次數過高則會增加計算時間。2017年,Bian J.[13]提出了基于網格的運動統計(grid-based motion statistics,GMS)算法。它將平滑度約束合并到一個統計框架中進行分離,并使用網格進行快速計算,實現更加快速精準的特征點匹配。基于GMS算法的優點,是目前常用的特征點匹配算法。
圖像融合常用的方法是最佳縫合線算法,1998年M. L. Duplaquet等[14]提出了一種利用動態規劃求縫合線的方法;谷雨等[15]提出了一種基于差異圖像加權的最佳縫合線算法,有效地避免了因縫合線通過運動物體導致的重影。2013年,Gao J.與Yu L.[16-17]提出了一種將Seam-cutting放入RANSAC迭代中的方法,使拼縫誤差小于設定閾值以獲得更好的拼縫,但缺點是尋找拼縫的速度較慢。Chang C.H.等提出了SPHP[18](shape-preserving half-projective)算法,實現了圖像的高精度對齊,減少了重影。由上述分析可知,SPHP能獲取更高的對齊精度,有效減少投影失真,在圖像拼接中有較好的性能。
受上述研究現狀啟發,本文針對圖像拼接過程中易出現的實時性較差、拼接重影與色差等問題,提出了一種基于ORB-GMS-SPHP(oriented FAST and rotated BRIEF_grid-based motion statistics shape-preserving half-projective)算法的快速圖像拼接方法。該方法結合了ORB與GMS算法在計算速度、SPHP算法在圖像對齊精度方面的優勢,可實現運算速度快、無重影與色差的圖像拼接效果。本文的主要貢獻在于:
1)提出了一種基于高斯尺度空間網格化處理的ORB算法,實現了圖像中特征點的均勻分布,解決了傳統ORB-GMS算法由于特征點太過集中導致的拼接重影問題;
2)提出了一種基于ORB-GMS-SPHP算法的快速圖像拼接方法,利用GMS算法網格化加速處理的特點,提高了特征點匹配速度且消除了拼接色差。
本文提出了一種基于改進ORB-GMS特征匹配算法的SPHP圖像拼接方法。算法模型如圖1所示。

圖1 本文方法流程圖Fig.1 Flow chart of the method in this paper
在對特征點紋路相似且有周期性結構的圖像特征點進行提取時,傳統的SIFT、SURF等圖像特征提取方法會提取大量密集且相似的特征點,導致在匹配期間出現大量的錯誤匹配。對于此現象, RANSAC算法通過周期迭代來篩除誤匹配點,但是誤匹配點過多時會導致迭代次數過多、篩選時間過長,且會剔除一部分正確的匹配點,導致圖像匹配精度下降,出現重影現象;GMS算法則是根據正確的匹配點周圍會有其他正確的匹配點支撐,而錯誤匹配點則幾乎沒有匹配點支撐這一原理來剔除錯誤匹配點,通過網格結構計算出每個網格的匹配點個數,以避免對每個匹配點的遍歷篩選,大大降低了運算量。相較于RANSAC算法,GMS算法速度更快且得到的正確匹配點數量更多。GMS算法篩選得到的正確匹配點數量與特征點提取算法得到的特征點數量成正比,相較于SURF、SIFT算法,ORB算法提取的特征點數量最多,且計算時間最短。因此,本文采用ORB算法進行特征點的提取。針對傳統ORB算法存在的特征點過于集中且在某些無紋理區域可能沒有特征點的問題,本文提出了一種改進的ORB算法,使待拼接圖像中的特征點均勻分布。
在圖像拼接過程中,待拼接的圖像會出現拍攝角度、亮暗程度不同等現象。傳統的最佳縫合線法針對上述現象的拼接效果并不理想,SPHP算法具有圖像對齊精度更高的優點,可以解決上述問題,實現較好的拼接效果,并且運算速度更快。因此,本文擬采用SPHP算法進行圖像拼接。
傳統ORB算法在構建完高斯尺度空間后就會利用FAST算法提取角點,其原理是在每一層取像素點的灰度值與半徑為3個像素點的圓上的像素點灰度值的差別設置一個固定的閾值,若灰度差大于此閾值則此點為角點。在一些部分位置紋路不清晰的圖像中,FAST算法在此部分提取不到角點,而在紋路豐富的位置上,則會提取出大量聚集的角點。為使提取到的角點均勻地分布在待拼接圖像上,本文提出了一種改進的FAST算法提取角點,相對于傳統算法,本算法在高斯尺度空間每一層都劃分30×30的網格,通過改變FAST閾值使每個網格都能提取到特征點。具體算法流程如下:
1)構造高斯尺度空間(高斯金字塔)。
2)對高斯金字塔的每一層劃分30×30像素的網格。
3)設置FAST閾值,對每個網格提取角點,若提取不到角點就降低閾值,使每個網格最少提取到一個角點。
4)用非極大值抑制法選取每個網格中響應值最大的角點。計算p點是否為最大響應的方法如式(1),其中,V為最大響應值;t為閾值。
V=

(1)
經過改進的FAST算法提取出大量的角點后,使用Oriented FAST算法計算每個角點的旋轉角度,再利用上一步求解的角點旋轉角度指導BRIEF對角點進行描述。BRIEF描述子是二進制描述子,在后續計算中可以采用圖形處理器(graphic processing unit, GPU)加速,進一步提高匹配效率。具體流程為先在特征點鄰域內隨機選取n個點對,形成n維二進制描述子,定義一個像素點P的二進制比較

(2)

(3)
此時得到的BRIEF描述符還不具備旋轉不變性,定義一個2×n的矩陣S
(4)
(5)
通過像素點方向θ計算旋轉矩陣Rθ,此時Sθ矩陣為
Sθ=RθS
(6)
結合式(4)可以得到具有旋轉不變性的BRIEF描述子
gn(p,θ)=fn(p)|(xi,yi)∈Sθ
(7)
本文方法通過暴力匹配與GMS相結合的方式對正確的匹配點進行篩選,具有篩選速度更快且正確匹配點保留更多的特點,有效提高了圖像拼接效率。
GMS算法是一種基于網格運動統計特性的快速、超魯棒的特征匹配算法,算法的核心思想是一個正確的匹配點旁邊一定會有幾個正確的匹配點作為支撐,具有運動一致性;但一個錯誤的匹配點,它的旁邊幾乎沒有同樣錯誤的匹配點作為支撐(假設錯誤匹配是隨機發生的)。
GMS算法的主要原理如下:在圖2左右兩幅圖片中分別有a區域和b區域,假設匹配到a區域的正確概率為t,對于a區域中一個匹配點是錯的,但匹配點還落在b區域的概率為

圖2 GMS原理Fig.2 Principle of GMS
(8)
a區域中匹配正確的特征點匹配到b區域的概率為

(9)

(10)
其中,n為區域a中特征點的個數。由式(10)可得Si的概率密度圖如圖3所示,其中mt、mf為均值。

圖3 Si的概率密度分布圖Fig.3 Probability distribution map of Si
在一張圖像中,對于一個小區域的運動是平滑的,對于一個更大區域的運動同樣也是平滑的。對于一個3×3的區域如圖4所示,每個格子的對應關系為

圖4 圖像的一個3×3區域Fig.4 A 3×3 area of the image
i1→j1i2→j2…i9→j9
(11)
對于3×3的區域Si變成了式(12),Si的分布變成了式(13),其中K表示選定的區域內的網格數目。
(12)
(13)
此時,標準差st、sf分別為


(14)
從Si的分布圖中可得,正確的匹配點與錯誤匹配點的支撐點分布是不同的,為快速篩除錯誤的匹配點,利用Si的均值與方差設置一個指標P,定義如下
(15)

(16)
即Sij滿足式(16)則匹配對正確,否則匹配對錯誤。其中,Sij表示網格區域{ik,jk}與其周圍8個相鄰網格區域匹配點的總數目。示意圖如圖5所示。α是常數因子,Ni是3×3網格區域中匹配點的總數目,通常取Ni=6。

圖5 網格區域[i,j]示意圖Fig.5 Schematic diagram of grid area [i,j]
由GMS算法篩選出兩幅圖像間正確的匹配點,使用RANSAC算法可以得到兩幅圖像間的映射關系,從而得到單應性矩陣H為
(17)
本文方法通過改進的SPHP算法對經過GMS篩選特征點的圖像進行圖像拼接,傳統的SPHP算法并未對鬼影做處理,導致拼接效果較差。本文方法在原有拼接方法的基礎上引入泊松融合算法,使改進后的SPHP算法可去除拼接鬼影。
改進的SPHP拼接算法主要分為四部分:部分投影變換;重合區域邊緣平滑過渡;相似變換保持非重合區原有視角;泊松融合去除鬼影。
(1)部分投影變換
SPHP算法首先將圖像劃分為兩個區域,分別為RH重疊區和RL其他區。對于重疊區域圖像,SPHP直接應用投影變換H,對于其他區域的圖像則采用相似變換S。然而,在重疊區RH與其他區RL的分界處,由于變換方式的不同導致邊界無法完全重合。因此,需要引入另一個區域平滑過渡區。
(2)重合區域平滑過渡
將其他區RL劃分為兩個區,平滑過渡區RT與非重疊區RS。其中平滑過渡區是一個緩沖區,變換逐漸從H變為S。變換函數ω(u,v)定義如下
(18)
(3)相似變換
非重疊區采用相似變換,保持了原有視角。結合前面的投影變換區與平滑過渡區,構成拼接完整的圖像。
(4) 泊松融合
首先計算重合區域形狀,尋找幾何變換后的重合區域掩膜mask,使用mask取下幾何變換后圖像的重合區域RH,并計算RH的梯度場μ。將原拼接圖像作為背景,計算背景圖像的梯度場s,將μ覆蓋在梯度場s上,最后再將覆蓋區域內每個像素點求偏導,獲得散度,構造系數矩陣和約束方程,求解拼接圖像。
本文方法實驗環境如下:AMD RYZEN 7-4800H 2.9 GHz CPU,GTX 1650顯卡,16 G內存,64位Windows10操作系統,編程語言python,在PyCharm中運行。實驗圖像拍攝地為中北大學。
為驗證本文所提方法的優越性,本實驗分別采用SIFT、ORB、SURF與本文所提的優化ORB-GMS四種算法對兩組圖像進行特征點提取與匹配,并進行對比,四種方法的圖像匹配效果如圖6所示。其中一組是在同一位置下從不同角度拍攝的具有尺度變換特征的建筑物圖像,另一組是在同一水平面從不同位置航拍的具有大量重復結構特征的地面場景圖像。具有上述兩種典型特征的圖像易出現誤匹配現象,導致在最終拼接時出現重影和色差。所以本文使用上述兩種圖像首先驗證改進的ORB-GMS算法在圖像具有重復結構和尺度變換情況下的特征匹配性能。在實驗中,ORB、SIFT和提出的優化ORB-GMS算法均設置為獲取10 000個特征點,而SURF設置較低閾值以盡量獲取更多的特征點。

圖6 四種方法的圖像匹配效果圖Fig.6 Image matching effect diagram of four methods
由圖6可以看出,當圖像中具有尺度變換及大量重復結構時,在同樣獲取10 000個特征點的參數設置情況下,傳統的特征匹配算法在處理過程中產生了大量的錯誤匹配點,而優化ORB-GMS方法產生的錯誤匹配點遠少于傳統方法,且獲取的特征點更加均勻,更有利于后續的圖像拼接。表1是對這四種算法的客觀評價對比,可以看出優化ORB-GMS算法具有更高的計算效率和匹配成功率。其中具有尺度變換特征的圖像,由于同一目標特征點分布不同導致傳統圖像匹配方法出現錯誤匹配,本文提出的優化ORB-GMS算法在對特征點進行提取時進行了基于高斯尺度空間的網格化處理,從而有效降低錯誤匹配;具有大量相似特征的圖像,由于相似特征點過多導致傳統圖像匹配算法容易出現誤匹配,本文提出的優化ORB-GMS算法在網格化特征點篩選時可以剔除更多的錯誤匹配點,從而有效提高匹配精度。SIFT與SURF算法在進行關鍵點檢測和描述時速度較慢,而ORB采用了FAST與BRIEF算法進行特征點檢測與描述,因此運行速度更快。在錯誤特征點篩除階段,傳統算法都采用RANSAC算法,而本文提出的改進ORB-GMS算法采用GMS算法進行誤匹配點的篩選,速度更快。

表1 不同匹配方法對比Tab.1 Matching comparison of different methods
圖像拼接實驗中所用的圖像集與2.2節中使用的一致。其中建筑物圖像尺寸為2 736像素×3 648像素,拍攝時間為亮度較低的傍晚,該建筑物圖像具有尺度變換的特征,且受光線干擾,導致拼接時易出現明顯的重影和色差,如圖7所示;地面場景圖像尺寸為5 472像素×3 648像素,拍攝時間為天氣晴朗的白天,該圖像具有大量重復特征的特點,導致拼接時易出現重影。為保證不同算法對比效果的可信度,本文實驗過程中除了采用的拼接算法不同外,其余條件都一致,并與SIFT+最佳縫合線法、SURF+最佳縫合線法兩種經典圖像拼接算法進行了比較。其中,最佳縫合線法是對兩張圖像的像素的每一行進行自上而下求和,選取最小能量函數的一種動態規劃,尋找強度值最優路徑的圖像拼接算法。評價指標主要包括拼接時間、有無重影、有無明顯拼縫及均方根誤差值等4個方面,對于圖像匹配精度,則通過不同算法配準得到的均方根誤差值RMSE來評價,主要使用式(19)進行計算
RMSE=
(19)
式中,M、N是待拼接圖像重疊區域O的大小;IO(i,j)、I′O(i,j)分別代表了待拼接圖像重疊區域像素和參考圖像重疊區域像素。RMSE越小則拼接精度越高。實驗結果如圖7所示。

圖7 圖像拼接效果對比Fig.7 Image mosaicing effect comparison
通過圖7對拼接完成的圖像畫框部分進行對比,可以發現SIFT算法在畫框處拼接沒有對齊,這是因為該算法在特征匹配過程后的變換模型計算不夠精確。在SURF算法的圖像中出現了重影,且其畫框的位置還有部分未對齊,說明相較于SIFT算法,SURF算法在加快拼接速度的同時降低了拼接的精度。在兩張圖像具有明顯的亮度區別時,SIFT與SURF兩種算法同時都使用最佳縫合線法進行圖像的拼接,拼接完成后的圖像有明顯的拼縫。而本文方法采用的SPHP算法并無明顯的拼縫,拼接效果更好。表2所示為三種拼接方法的客觀對比,通過表2中不同算法的RMSE值對比可以看出,SIFT+最佳縫合線法RMSE值最小為9.27,SURF+最佳縫合線法RMSE值最小為13.61,而本文方法RMSE值最小為3.43,精度有明顯提升。

表2 不同拼接方法對比Tab.2 Comparison of different mosaicing methods
使用基于改進的ORB-GMS-SPHP圖像拼接算法對多張航拍圖像進行逐次拼接,最終的拼接結果如圖8所示。從圖8可以看出,最終的拼接圖像無拼縫、無鬼影,重疊區域過渡自然,亮度變化均勻,拼接效果好。

圖8 多張圖像拼接效果圖Fig.8 Multi-image mosaicing effect diagram
1) 在進行圖像特征點提取時,本文提出的算法構建了基于高斯尺度空間網格化處理的ORB算法,實現了圖像中特征點的均勻分布,解決了傳統ORB-GMS算法由于特征點太過集中導致的拼接重影問題;利用GMS算法網格化加速處理的特點,提高了特征點匹配速度;采用SPHP算法進行圖像拼接,拼接后對圖像進行泊松融合消除拼接重影,以保證圖像拼接的空間一致性,提高了圖像拼接精度。
2) 經實驗結果證明,本文提出的基于改進ORB-GMS-SPHP算法的快速圖像拼接方法,相較于傳統算法圖像拼接速度明顯變快,且無鬼影與色差,拼接效果好,可以用于地形航拍或者遙感地圖繪制。
3) 由于拼接速度仍不足以支持實時圖像拼接,后續仍需在不降低拼接質量的同時提高拼接速度,實現視頻畫面的實時拼接。