賈文超
(廣東省工程勘察院,廣東 廣州 510000)
實際生活中,當遇到超過人眼視角的場景時,近距離無法拍攝事物的全貌,而遠距離又將引起所拍物體過小,放大后出現馬賽克現象。因此,為獲得高分辨率全景圖片,對圖像進行拼接是十分必要的。很多學者對圖像的匹配進行了研究,產生了各種各樣的匹配算法。大體上可分為以下幾類:①基于灰度值的匹配[1,2]:該方法從待拼接圖像的灰度值出發,通過計算待配準圖像與參考圖像中相同尺寸區域的相似性度量來實現圖像的拼接。其優點是計算簡單,但當圖像中存在較大噪聲或重疊部分特征不明顯時匹配誤差較大。②基于頻域的匹配(相位相關度方法):通過傅立葉變換將圖像變換到頻率域再進行匹配。該方法簡單、精確,可克服相關性噪聲干擾,但需要較大的重疊比例[3](>50%)。③基于特征的匹配:該方法通過提取圖像中的特征點并對其進行描述,然后利用匹配良好的特征點計算變換矩陣從而實現圖像的拼接。相比于以上兩種方法,基于特征匹配方法的健壯性和魯棒性更好,能夠較好地適應圖像的尺度、平移、旋轉以及光照的變化。而點特征作為最基本的特征,其計算過程簡單,且能保持影像的灰度不受損壞,因此得到了廣泛的應用。
近年來,應用較為廣泛的點特征匹配算法有:Lowe等人于2004年提出SIFT(Scale Invariant Features Transform)算法[4],該算法在高斯差分尺度空間內進行極值點的檢測及關鍵點的定位,然后通過統計梯度直方圖為每個關鍵點指定主方向并建立4×4×8維的描述子。這保證了該算法提取的特征點具有很好的尺度不變性,但同時也增加了算法的運算量。基于此,Bay提出了更加優越的SURF(Speeded Up Robust Features)算法[5],它針對SIFT提取時間長的不足進行了改進。一方面,SURF采用了不同大小的盒濾波與原始圖像卷積構建金字塔,使運算易于并行;另一方面,在特征子的描述上SURF算法通過統計領域內Harr小波響應獲取主方向,然后為每個特征點建立4×4×4維的描述子。經過以上改進,SURF算法將提取速度提高為SIFT算法的10倍,但方向不變性方面不如SIFT算法好。2011年,Garage等人[6]提出了可替代SIFT和SURF的新算法,該算法為FAST角點賦予方向,并與改進后的BRIEF描述子相結合,將檢測速度提升為SURF的10倍,且檢測效率為SIFT的兩個數量級。但該算法提取的特征點尺度不變性不佳。
為更加快速、高效地實現全景圖的拼接。本文對SIFT算法、SURF算法以及ORB算法進行對比及分析,并結合魚眼圖像自身的特點,采用ORB算法進行圖像特征點的提取。此外,通過結合特征點篩選和多種影像融合方法相結合的策略,實現了全景圖的拼接。
實驗中使用的數據為2015年2月于地下停車場使用配有 8 mm定焦魚眼鏡頭的尼康D7100單反相機拍攝的圖像。相機以90°為固定旋轉角,在每一位置共獲取4張圖像,構成360°的場景影像。每張圖像分辨率為6000×4000,水平及垂直分辨率為 300 dpi。
全景圖像的拼接首先要對獲取圖像進行畸變校正和影像去噪等預處理操作;其次,使用特征點提取算法提取每幅圖像的特征點,進而對特征點進行篩選;隨后,利用RANSAC算法求解變換矩陣并采用光束法平差實現全局配準;最后,需要將每幅影像投影到統一坐標系下對圖像進行拼接和融合,輸出全景圖像。實現全景圖像拼接的整體框架具體如圖1所示。

圖1 全景圖拼接整體框架
(1)ORB算法
ORB(Oriented FAST and Roated BRIEF)算法是基于FAST角點檢測器[7]和改進后的BRIEF[8]描述子建立的,簡要流程如下:
①FAST角點檢測
FAST角點檢測,即檢測候選特征點鄰域內的像素值,如果候選點周圍領域內有足夠多的像素點與該候選點的灰度值差別足夠大,則認為該候選點為一個特征點。數學表達如式(1)所示:
(1)
其中,I(x)為圓周上任意一點的灰度,I(p)為圓心的灰度,εd為灰度差的閾值,如果N大于給定閾值T(一般為周圍圓圈點的四分之三),則認為p是一個特征點。本文中采用效果較好的FAST-9(即圓半徑為9)。
由于FAST算子未考慮尺度特征。故本文通過構建金字塔圖像,并在每一層中檢測FAST角點來確保檢測出的角點具有一定的尺度不變性。
②灰度質心法確定主方向
灰度質心法[9]認為角點的強度是偏離中心的,利用這個矢量可以計算方向。Rosin定義特征點鄰域的p+q階矩為:
(2)
依據上式,特征點的中心強度定義為:
(3)
θ=arctan(m10/m01)
(4)
③改進的BRIEF特征描述
BRIEF描述子通過隨機選取興趣點周圍的若干點來組成興趣區域,將其灰度二值化并解析成二進制碼串,以此作為特征點的描述子。為了使特征點之間更易區分,Garage[6]對檢測出的特征點進行排序,僅保留方差大且相關性小的部分關鍵點,使提取結果得到顯著提高。
(2)特征點對的篩選與精確匹配
匹配是將兩幅影像中同名特征點對應起來。本文中首先采用歐氏距離比值排除外點[10]。其原理是通過k-d樹得到一個特征點到最近鄰特征點的距離Dis1,其到次近鄰特征點的距離Dist2,比較這兩個值的比值是否在閾值ε范圍內,如果滿足則保留最近鄰的特征點對,反之則剔除。
(5)
采用歐氏距離比值排除部分外點后,對保留特征點使用RANSAC法[11]解算出單應矩陣H。接下來采用光束法平差進行全局配準以減小誤差累積帶來的影響,實現影像間的配準。
(1)最佳縫合線法
理想的最佳縫合線是兩幅圖像重疊區域的差值圖像上顏色、結構強度差值最小的線,因此縫合線的求解準則如下:
E(x,y)=Ecolor(x,y)2+Egemetry(x,y)2
(6)
其中Ecolor(x,y)為重疊像素的顏色值之差,Egenetry(x,y)為結構差值,它是通過修改Sobel算子實現的。新模板為:
Egenetry(x,y)=diff(I1(x,y),I2(x,y)),diff的求解通過計算兩幅圖像I1和I2在x,y方向的梯度差的乘積得到。按照上述準則,運用動態規劃的思想[12],從重疊區域差值圖像的第一列開始,建立以該列每一個像素為起點的縫合線,最后從所有的縫合線中尋找一個最優解作為最佳縫合線。
(2)多通道圖像融合法
多通道融合法的基本原理是構建出重疊部分的拉普拉斯金字塔,將不同層的圖像進行融合從而重構出圖像。由于圖像通常存在曝光差異,使用最佳縫合線法融合后的影像在拼接區域會存在鬼影,因此采用多通道法對影像進行二次融合,以實現平滑自然的無鬼影拼接。
實驗中首先對魚眼圖像使用Defishr-10軟件進行矯正,矯正后圖像分辨率為6000×4000,水平及垂直分辨率為96dpi。圖2、圖3分別為一幅原始魚眼圖像及其對應的矯正后圖像。

圖2原始魚眼圖像及其矯正結果圖
針對SIFT算法、SURF算法和ORB算法三種特征提取算法,本文編寫相應程序并將其應用于實驗圖像數據中進行特征提取,同時結合歐氏距離比值法(ε=0.5)對提取特征點進行篩選,三種算法特征提取及篩選后上午匹配結果分別如圖3~圖5所示。

圖3SIFT特征提取及篩選后匹配結果

圖4 SURF特征提取及篩選后匹配結果

圖5 ORB算法特征提取及篩選后匹配結果
上圖中,彩色圓為各算法初步提取的特征點,兩幅圖像之間的連線為經歐氏距離篩選后保留的匹配點對。通過對各算法在相同的圖像(1500×1000)上的執行效果進行大量實驗及統計,本文采用式(7)來評估各算法的提取效率。各算法的對比結果如表1所示。


(7) 不同特征提取算法對比結果 表1
SURF提取特征點數量最多,SIFT次之,ORB算法提取的特征點數最少。但在特征提取時間效率方面,ORB算法最高,SURF算法最低。同時結合圖3可以看出SIFT提取的特征點經篩選后仍存在誤匹配點對。以上結果表明,ORB算法能夠提取圖像中較穩定的特征點,比SIFT和SURF算法具有更快的提取速度和更好的檢測效率。
對于篩選后的特征點,本文采用RANSAC算法計算相鄰圖像間的變換矩陣,并采用光束法平差進行全局配準;然后將各圖像投影到統一坐標系下完成拼接;最后在影像融合方面將最佳縫合線法和多通道融合法相結合,輸出全景圖。圖6為全景圖拼接效果圖。

圖6全景圖拼接效果圖
本文對目前應用較為廣泛的SIFT算法、SURF算法與ORB算法在特征點提取的速度和效率方面進行了對比和分析。結果表明,ORB算法能夠提取圖像中較穩定的特征點,較SIFT和SURF算法具有更快的提取速度和更好的檢測效率。基于此,使用ORB算法開發了相應的全景圖拼接程序。本文研究的不足之處,如魚眼圖像矯正效果不佳等,將在以后的研究中加以完善。