劉 高,左小清
(1.昆明理工大學國土資源工程學院,云南 昆明 650093;2.廣東省科學院 智能制造研究所,廣東 廣州 510070)
圖像特征點提取與匹配是機器視覺的重要組成部分,它在目標識別、視覺導航、圖像檢索、圖像拼接和三維重建等方面發揮著重要作用。選用不同的特征提取算法將導致算法魯棒性降低,使應用效果受到一定程度影響。故對特征提取算法進行比較,分析其性能具有重要意義。
本文對SIFT、SURF、ORB、BRISK 四種常用的二進制特征算法進行比較,采用指標為算法耗時和特征匹配數目,通過對比實驗分析4 種算法在實時性及復雜環境下的魯棒性。
特征提取算法研究較多,如Lowe[1]提出的SIFT 算法,由于SIFT 算法計算量很大,后續又有很多改進算法被提出,其中應用最廣泛的是Bay 等[2]提出的SURF 算法,Leutenegger 等[3]提出的BRISK 算法,Rublee 等[4]提出的ORB 算法,Alahi 等[5]提出的FREAK 算法等,這些算法具有尺度不變性、旋轉不變性、對噪聲的魯棒性等;顧煜潔[6]在SURF基礎上引入信息熵和網格劃分思想,大大減少了特征提取量;丁國紳等[7]提出一種基于高光譜圖像的改進SIFT 算法,提升了算法匹配性能;趙騰飛等[8]在SURF 基礎上增加了邊緣檢測算法,得到圖像邊緣信息后進行形態學處理,獲得較多特征明顯的信息;針對ORB 算法在復雜光照環境下匹配精確率較低的問題,袁小平等[9]提出一種基于改進FAST 檢測的ORB 算法,提高了復雜光照環境下的魯棒性;馮宇等[10]通過對SUSAN、Harris、Moraves 等算子性能進行比較,發現Moravec 算子最為簡單,但特征點提取質量和抗噪能力表現較差;在圖像匹配中,邵進達等[11]提出一種將幾何代數法與SIFT 結合的圖像匹配算法,可準確定位更多特征點,提高圖像對準速度;黃云彬等[12]通過引入對角降維與角度刪減方法,分別對SURF 算法中特征點描述子通過降維和誤匹配點剔除的方法提升匹配速度和精確度。上述是近年主流的二進制圖像特征算法及在此基礎上對其進行一定性能提升研究工作的介紹。為了對圖像特征算法獲得更深入了解,本文選取ORB、SURF、SIFT、BRISK四種主流特征算法,橫向對比各算法在魯棒性和實時性方面的差異,為圖像特征研究提供參考。
SIFT 特征提取算法是公認的標準的具有尺度及旋轉不變性的斑點特征提取算法,具有良好的旋轉不變性、視角不變性、仿射不變性及光照不變性[13]。算法流程如下:①尺度空間和極值點檢測;②關鍵點定位;③特征方向指定。
2.1.1 尺度空間和極值點檢測
尺度空間理論目的是模擬圖像數據的尺度特征。二維圖像的尺度空間定義為:L(x,y,σ) = G(x,y,σ)*I(x,y),其中G(x,y,σ)是尺度可變高斯函數,σ為尺度信息,決定圖像的平滑程度,構造高斯差分尺度空間。
為獲取尺度空間的極值點,將采樣點和與之相鄰的所有點進行比較,獲取其圖像域和尺度域與相鄰點對比的大小情況。
2.1.2 關鍵點定位
為獲取關鍵點位置信息和精度信息,并且剔除低對比度的關鍵點和不穩定的邊緣點,將三維二次函數進行擬合,從而提高其匹配能力和抗噪聲性能。
2.1.3 特征方向指定
關鍵點的方向信息為:
m(x,y),θ(x,y)分別為(x,y)位置處的梯度模值和方向。至此,關鍵點的位置信息、尺度信息和方向等信息都已得到。
SURF 算法的基本原理分為以下幾個步驟:
2.2.1 圖像積分
SURF 算法采用方塊濾波器方式獲得像素點的Hessian矩陣行列式,計算積分圖像,從而得到SURF 的尺度金字塔。通過原圖像獲得積分圖像中每一個像素點元素的數值,其值為
2.2.2 尺度空間構造
對DOH 近似進行特征點檢測,獲得二階微分Hessian矩陣——(fx,y)。通過并行運算對皮拉米德圖像中的每一層進行處理,從而構建出高斯金字塔。
2.2.3 特征點位置
如圖1所示,對圖中的像素點進行處理,通過與相鄰像素點進行比較和濾波的方法刪除錯誤特征點,從而獲取相應的特征點。
Fig.1 Location of feature points圖1 特征點確定
2.2.4 特征點主方向選擇
采用Harr 小波,在60°的水平和垂直兩個方向上通過0.2rad 的扇形進行間隔旋轉,在此區域內再次計算特征,值最大的扇形方向即為該特征點的主方向。
2.2.5 特征描述子生成
選取特征點范圍內一個4×4 的區域,得到一個64 維的向量描述子,這4 個方向特征值依次是垂直方向值、水平方向值、垂直方向絕對值和水平方向絕對值。
ORB 算法是FAST特征點檢測[14]和BRIEF 特征描述子[15]的結合與改進。ORB 算法分為FAST 特征點檢測、BRIEF 特征描述兩個步驟。
2.3.1 FAST 特征點檢測
設定需提取的特征點數為N,并將FAST 的閾值降低,FAST 特征點數目大于N。在特征點處計算Harris 的響應值,取N 個響應值大的點作為檢測到的特征點,再計算特征點主方向:
其中,C 為質心位置,θ 值為FAST 特征點的主方向。
2.3.2 BRIEF 特征描述
特征點獲取后,采用BRIEF 特征描述。BRIEF 算法的核心思想是以特征點為中心,取S×S 的鄰域窗口。在窗口內隨機選取點對,將選取點對的像素進行大小比較并執行二進制賦值,最后重復隨機選取N 對進行二進制賦值操作,即可完成BRIEF 特征描述。
BRISK 算法特點是能夠大幅降低計算成本,提高特征檢測速度。BRISK 算法包括尺度空間特征點檢測、特征描述子的構建、特征匹配3 個步驟。
2.4.1 尺度空間特征點檢測
在BRISK 的特征檢測框架結構中,BRISK 算法構建了由4 個內層和4 個中間層組成的尺度空間金字塔,并采用AGAST 算法[16]進行特征點檢測。
2.4.2 特征描述子構建
BRISK 算法通過像素灰度值大小的比較,得到一個二進制向量來描述特征點。BRISK 采用了鄰域采樣模式,即以特征點為圓心構建多個不同半徑的離散化同心圓,然后在每一個同心圓上獲得具有相同間距的N 個采樣點,如圖2 所示。
Fig.2 Sampling mode of BRISK圖2 BRISK 的采樣模式
首先對圖像進行高斯平滑處理從而消除圖像灰度混疊的影響,通過計算特征點的特征模式方向,將采樣模式圍繞特征點旋轉為arctan2(gy,gx)的角度,使得特征描述子具有旋轉不變性,將全部特征點進行像素灰度值比較得到512bit 的二進制字符串描述子。
2.4.3 特征匹配
BRISK 算法采用二進制描述子,故可采用漢明距離評定特征描述子之間的匹配程度,通過漢明距離的大小來判斷是否匹配成功。
對幾種圖像特征提取算法進行比較分析時應考慮數據集的客觀性和合理性,評價指標的邏輯性和評價角度的實用性。本文選取ORB、SURF、SIFT、BRISK 四種主流特征提取算法,評價指標為運行時間及特征匹配對數[17],衡量算法的實時性及在發生旋轉變換、模糊變換、光照變換、視角變換場景下的魯棒性。
評價算法性能的一個重要指標是運行時間。選用真實環境和Euroc 數據集中正常場景下相機有一定偏移量的圖像對進行實驗,使用OpenCV 提供的特征提取算法的調用接口設置默認參數。為保證條件一致,將圖片格式統一。將真實環境和數據集環境下的相片統一調整為512×512 像素,并在實驗時調整為灰度圖像。為降低特征提取后誤匹配的比例,通過RANSAC 算法[18]剔除圖像誤匹配對。
圖3 和圖4 分別為ORB、SURF、SIFT、BRISK 四種算法在EuRoC 數據集和實驗環境正常場景中的特征提取及匹配結果,從中可得出結論:4 種算法提取的特征在圖像中分布比較均勻,ORB、SIFT、SURF 三種算法提取及匹配的特征數量較多,BRISK 提取及匹配的特征數量較少。如表1 所示,對運行時間與匹配對數進行分析,在達到足夠的匹配數前提下,ORB 算法最多需要24.6ms 即可完成圖像對的匹配,速度最快,可滿足實時性需求,執行速度排序為ORB>BRISK>SURF>SIFT。
Fig.3 Feature detection and matching of ORB,SIFT,SURF and BRISK in normal environment圖3 正常環境下ORB、SIFT、SURF、BRISK 特征提取及匹配
Fig.4 Feature detection and matching of ORB,SIFT,SURF and BRISK in real environment圖4 真實環境下ORB、SIFT、SURF、BRISK 特征提取及匹配
Table 1 Matching number and running time(ms)of feature detection algorithm while matching the same images表1 各特征提取算法匹配相同圖像的匹配數目和運行時間(ms)
當圖像有一定旋轉量時,像素點會以旋轉中心為圓心進行相應角度旋轉,特征點的鄰域信息將相應發生變化。為探討4 種算法在旋轉變換中的魯棒性,對相同圖像執行旋轉操作,逐次提高旋轉角,并將圖像與原始圖像依次匹配,通過觀察特征正確匹配數的變化分析算法對旋轉變換的魯棒性。在此選用Mikolajczyk 數據集中的bark 圖集進行測試。
結合表2 和圖5(彩圖掃OSID 碼可見,下同)可以發現,當圖像具有一定的旋轉角度時,特征匹配對的數量會減少較多;當旋轉角度較小時,SIFT 和BRISK 算法可以表現出一定的穩定性;當旋轉角度較大時,ORB 和BRISK 算法失效。
Table 2 Matching number of each feature detection algorithm while matching rotated images表2 各特征提取算法匹配旋轉變換圖像的匹配對數
Fig.5 Line chart of matching number while images are rotated圖5 圖像旋轉時匹配對數折線
圖像模糊程度增加會導致圖像的分辨率和識別能力下降。為研究該算法在模糊情況下的魯棒性,對同一圖像進行不同的高斯核處理。將處理后的圖像與原始圖像相匹配,通過觀察匹配對數的變化研究該算法對模糊變換的魯棒性。在此使用mikolajczyk 數據集的bikes圖集進行測試。
結合表3 和圖6 可以看出,當模糊程度逐漸增加時,各算法的匹配對數相應減少,SURF 和ORB 算法穩定性稍好;當模糊程度增大時,能夠獲取到足夠的特征匹配數,BRISK和SIFT 算法在模糊變換方面的魯棒性較差。
Table 3 Matching number of each feature detection algorithm while matching blurred images表3 各特征提取算法匹配模糊變換圖像的匹配對數
Fig.6 Line chart of matching number while images are blurred圖6 圖像模糊時匹配對數折線
不同的光照條件會使圖像中的某些特征更加突出,同時由于陰影和遮擋的影響,一些特征會被削弱,導致圖像的特征點位于不同的灰度空間中,增加了特征匹配的難度。為探究發生模糊變換時算法性能,選取相片須對同一圖像亮度進行調整,將調整亮度后的圖像與原始圖像進行匹配,通過觀察特征匹配對數的變化分析算法對光照變換的魯棒性。在此選用Mikolajczyk 數據集中的leuven 圖集進行測試。
通過表4 和圖7 可以看出,當光照下降不大時,4 種算法穩定性都比較好,圖像光照繼續降低后都能夠獲取到足夠量的匹配數,但BRISK、ORB 算法表現出了更強的穩定性。
Table 4 Matching number of each feature detection algorithm by different lighting effect表4 各特征提取算法匹配光照變化圖像的匹配對數
Fig.7 Line chart of matching number while light of images is effected圖7 圖像光照變化時匹配對數折線
當圖像發生視角變換時,會使得原始圖像中部分特征點落在靠近圖像物體處或超出圖像范圍,視角變換角度越大,保留的特征點就越少。為探究在視角變換場景下的算法性能,對原場景旋轉一定角度進行拍攝,將不同視角的相片與原始相片進行匹配,通過觀察特征匹配對數的變化分析算法對視角變換的魯棒性。在此選用Mikolajczyk 數據集中的graf 圖集進行測試。
結合表5 和圖8 可以發現,當視角角度變換時,4 種算法匹配數目都急劇下降,但變換角度比較大時,SIFT 和SURF 算法依然有足夠的特征匹配數,且SURF 算法的魯棒性更強。
Table 5 Matching number of each feature detection algorithm by the changed perspective表5 各特征提取算法匹配視角變換圖像的匹配對數
Fig.8 Line chart of matching number when perspective is effected圖8 圖像視角變換時匹配對數折線
圖像特征提取算法的實時性以及在復雜場景中表現出的魯棒性是圖像特征研究的重要內容,本文選取ORB、SURF、SIFT 和BRISK 四種主流特征提取算法,在分析這幾種算法原理及特點基礎上,探究了算法的運行速度和復雜環境下魯棒性對比。實驗結果表明,在實時性方面,ORB算法有很大優勢,具備良好的實時性,且ORB 算法在光照變化的情況下表現出較好的穩定性;SURF 在模糊變換、光照變換、視角變換場景下,能夠獲取較多的特征匹配數,魯棒性最強,有利于后續工作展開,在不考慮時間消耗情況下,SURF 可作為首選算法;BRISK 算法在光照變化情況下具有較好的穩定性。本文結果可為后續圖像特征研究工作提供參考。設計更合理的評價參數對圖像特征相關算法進行比較分析是下一步研究方向。