周 磊,馬 立
(上海大學 機電工程與自動化學院,上海200444)
圖像特征點匹配[1-4]作為計算視覺中的重要基礎算法之一,已廣泛應用于機器視覺、圖像融合、目標識別、同時定位與建圖[5-6]、雙目匹配測量系統(tǒng)[7]、人臉識別等領(lǐng)域。在同時定位與建圖技術(shù)中,特征點匹配的正確率決定著相機姿態(tài)求解速度和精度,而地圖點三維位置的求解亦是根據(jù)相機姿態(tài)和匹配點進行的,因此,特征點匹配決定同時定位與建圖技術(shù)的精度和穩(wěn)定性。特征點匹配的本質(zhì)是將空間中一點在不同圖像上的投影匹配起來,可以分為3個步驟:特征點的檢測、特征點描述子的提取、特征點的匹配。特征點的檢測算法有ORB(oriented FAST and rotated BRIEF,簡稱ORB)[8]、尺度不變特征[9](scale-invariant feature transform,簡稱SIFT)、加速穩(wěn)健特征[10](speeded up robust features,簡稱SURF)等。由Ethan Rublee提出的ORB特征提取算法應用最為廣泛。該算法將加速角點提取[11](features from accelerated segment test,簡稱FAST)和二進制獨立基本特征[12](binary robust independent elementary features,簡稱BRIEF)組合在一起,使特征點匹配速度遠高于SIFT、SURF,保證了特征提取的實時性,但是匹配精度較差,會產(chǎn)生非常多的誤匹配。在滿足實時性要求的情況下提高ORB算法匹配的準確率就變得非常有意義。
為了提高特征匹配精度,很多研究人員對其展開研究。白雪冰[13]將ORB和SURF相結(jié)合,利用Hessian矩陣提取ORB特征點描述子,以此來彌補ORB算法本身不具備尺度不變性的問題。許宏科[14]等將ORB特征和SIFT算法結(jié)合,提出SIRB算法。該算法利用多尺度空間檢測提取特征點,使得特征點具有尺度不變性。以上算法在一定程度上改進了匹配的尺度不穩(wěn)定問題,但是由于SURF以及SIFT算法提取特征點的速度較慢,使得算法實時性無法保證,并且只是改進了尺度不變性這一特性,在常見的圖像旋轉(zhuǎn)變換等應用場合算法效果不理想。
針對實時性、準確性和通用性無法兼顧的問題,本文提出基于稀疏光流法[15]的ORB特征點匹配優(yōu)化算法。利用暴力匹配方法得出初始匹配點集,然后通過稀疏光流法對其進行粗過濾,最后利用隨機抽樣一致性算法[16](random sample consensus,簡稱RANSAC)對過濾結(jié)果進行幾何校驗,精確過濾,得到最優(yōu)的匹配結(jié)果。
ORB是將FAST特征點檢測器和BRIEF描述子組合的特征檢測算法。相比于SIFT,在保證有相當?shù)钠ヅ湫阅艿那闆r下,ORB受圖像噪聲的影響更小并且速度更快,能達到實時性,因此被廣泛用于對實時性要求高的應用場合。
FAST-9通過檢測每一個像素點周圍一定半徑的圓內(nèi)包含的像素的灰度值變化的劇烈程度來判斷該像素點是否是要檢測的角點。然后將FAST計算的角點利用Harris角點測量,根據(jù)得到的響應值從大到小排序,取前目標特征點數(shù)N個角點作為最終的角點檢測結(jié)果。此外,ORB將FAST特征提取和金字塔模型結(jié)合在一起,保證了角點的尺度不變性,并且還利用灰度質(zhì)心[17]保證了角點的旋轉(zhuǎn)不變性。本文采用FAST-9特征點檢測器,即在特征點選取的圓上有連續(xù)9個像素點的亮度變化量超過閾值,則被認定為特征點。
描述子是對特征點進行描述的二進制編碼。它以角點為中心,取一定大小的鄰域窗口,然后在窗口中隨機選取2個5×5子窗口,比較其灰度和,將比較結(jié)果進行二進制賦值。最后,重復選取256次形成一個長度為256的由0和1組成的向量作為特征描述子。
特征點匹配是指找出空間中的一點在不同圖像中的位置。通過暴力匹配算法,對原圖中的每一個特征,計算其描述子與待匹配圖像中所有特征點的描述子的歐氏距離,距離越小則說明2個特征越相似,保留距離最近的作為該特征點的匹配特征點。記Xik為原圖第i個特征點的第k維特征向量,Xjk為匹配圖像的第j個特征點的第k維特征向量,2個特征點之間的歐式距離Dij為
(1)
然而,該方法過分依賴不穩(wěn)定的特征描述子并且缺少驗證環(huán)節(jié),而且圖片存在紋理相似的區(qū)域會導致即使不是空間中的同一點也會出現(xiàn)歐式距離足夠近被認為是匹配的情況,使其得到的匹配結(jié)果存在大量的錯誤匹配。所以,本文提出一種基于稀疏光流法的特征點匹配算法,利用空間位置的約束剔除誤匹配。
針對誤匹配,本文提出一種基于稀疏光流法的特征點匹配算法。在原有算法的基礎上,引入幾何條件作為約束條件進一步濾除特征點匹配,以求更高的匹配準確率結(jié)果。采用稀疏光流法進行特征點跟蹤,求出特征點在圖像中的運動矢量,以此為約束條件對匹配結(jié)果進行粗步過濾,最后利用RANSAC算法進行精確幾何校驗得出最終結(jié)果。
光流法是求空間運動物體在觀察成像平面上的像素運動的瞬時速度的方法。稀疏光流法是針對某些角點進行光流追蹤。該方法基于灰度值不變假設,可得光度誤差方程f(x):
f(x)=I(x,y)-J(x+dx,y+dy)
(2)
式中:I,J分別表示原圖和待匹配的灰度圖像;I(x,y)表示原圖(x,y)處的灰度值;dx和dy則表示原圖中(x,y)處的像素在J圖中的像素位置的變化量,定義向量d=[dxdy]T為特征點的光流向量。
由于孔徑問題,在每個特征點附近長(2wx+1),寬(2wy+1)的范圍內(nèi)的像素灰度值都應滿足灰度不變性,因此構(gòu)建出光度誤差和的方程ε(d),最后使用最小二乘法求解該方程,得到特征點的光流向量d。即有:
J(x+dx,y+dy))2
(3)
圖1 算法原理示意圖
算法分為2次過濾。第1次過濾的目的在于去除初始匹配結(jié)果中位置錯誤較大的誤匹配,為第2次匹配提供優(yōu)化的匹配結(jié)果;第2次過濾則是利用優(yōu)化匹配對進行幾何校驗,得到精確的匹配結(jié)果。具體步驟如下:
第1次過濾。首先利用ORB算法分別對原圖和待匹配圖像提取特征點集合為A,B;然后利用暴力匹配法求出初始候選匹配對SET;最后,利用稀疏光流法對A中的所有特征點進行光流跟蹤,求出光流向量d。
(4)
根據(jù)SET得出Ai對應的初始匹配特征點Bj(xj,yj),利用歐式距離計算公式求出該對匹配點的像素距離dij,同時經(jīng)過實驗測試設定像素距離閾值δ為15,計算匹配對過濾函數(shù)ρ:
(5)
以此方法遍歷SET所有匹配對,將通過過濾函數(shù)的匹配對保留下來,進一步做幾何校驗,對沒有通過的特征點匹配對進行濾除,最終達到優(yōu)化初始匹配對的目的。
第2次過濾。將優(yōu)化樣本集作為樣本數(shù)據(jù)代表集,再利用RANSAC算法進行幾何校驗,RANSAC算法是一種魯棒的參數(shù)估計方法。通過在匹配對中隨機選出一組樣本對數(shù)學模型參數(shù)進行估計,以此模型對整體樣本集進行分類,其中滿足模型的樣本稱為內(nèi)點,不滿足模型的樣本稱為外點,取內(nèi)點最多的模型參數(shù)作為最終的參數(shù)估計結(jié)果。其優(yōu)點是魯棒性強,可靠性強,對圖像噪聲有強健的承受能力,同時也具備剔除誤匹配點的能力。ORB特征匹配經(jīng)過幾何校驗之后,能夠有效地濾除錯誤匹配,使得匹配結(jié)果更加準確,匹配性能更加優(yōu)良,選取算法結(jié)果內(nèi)點作為最終的匹配結(jié)果。
本實驗使用的計算機CPU為英特爾i7-7700HQ,單核頻率2.8 GHz,內(nèi)存8 GB,操作系統(tǒng)為Ubuntu16.04。采用牛津大學幾何視覺組提供的局部仿射變換圖像庫的圖片作為測試數(shù)據(jù)集。該測試數(shù)據(jù)集的圖像變換種類分別是:JPEG圖像壓縮、光照變換、視角變換、模糊變換、旋轉(zhuǎn)和縮放變換,圖2為5種算法在測試數(shù)據(jù)集中的匹配效果圖。從圖2中可以明顯地看出,ORB算法圖片結(jié)果出現(xiàn)大量誤匹配,其中一部分像素錯誤跨度非常大;RANSAC-ORB算法和本文算法處理結(jié)果匹配點對雖然變少了,但是匹配精度高,效果更加清晰;SIFT和SURF特征點提取特征點非常多。為了更準確地描述ORB、RANSAC-ORB、SIFT、SURF和本文算法的匹配效果,下面對這5種算法的匹配準確率和運行時間展開研究。
圖2 5種算法處理效果圖
匹配準確率是指特征匹配結(jié)果中正確的匹配點和算法檢測到的匹配點的比值,是匹配性能的評價指標。分別對測試圖像數(shù)據(jù)集中5組圖像進行匹配實驗,然后利用數(shù)據(jù)集提供的單應矩陣評測匹配結(jié)果,通過該矩陣求出特征點在待匹配圖像中的準確像素位置,如果匹配結(jié)果在該特征點10個像素范圍之內(nèi),則認為匹配正確。特征點提取函數(shù)參數(shù)均為OpenCV3.2版本提供ORB,SIFT以及SURF以及RANSAC函數(shù)接口的默認參數(shù),采用暴力匹配算法,利用漢明距離進行匹配。經(jīng)過多次實驗,得到本文算法、ORB算法以及RANSAC-ORB算法、SIFT算法、SURF算法測試數(shù)據(jù)集在5種圖像變換下的匹配準確率,如圖3所示。圖3中橫坐標表示圖像變換,縱坐標表示匹配準確率。從圖3可知,本文算法和RANSAC-ORB算法相對ORB算法、SIFT算法,SURF算法在匹配精度方面提升明顯,匹配準確率平均提高了21.6%。此外,在模糊變換,旋轉(zhuǎn)縮放變換,視角變換,JEPG圖像壓縮變換、光照變換中,本文算法整體優(yōu)于RANSAC-ORB算法,準確率平均提升約2%。由此可知,本文算法利用稀疏光流法優(yōu)化初始匹配對,使得RANSAC算法得到的結(jié)果更加準確。在圖像經(jīng)過光流變換之后,特征匹配準確率整體下降,其中,RANSAC-ORB算法和本文算法降低到90%~95%之間,ORB、SIFT算法,SURF算法匹配準確率在50%~65%之間。
進一步分析可知,ORB算法、稀疏光流法是基于圖像像素灰度的,在圖像光照變換較大時,算法假設和實際出現(xiàn)較大出入,結(jié)果出現(xiàn)較大誤差,匹配準確率下降明顯。綜上可知,本文算法在5種圖像變換中匹配準確率基本最優(yōu),相比于ORB算法、SIFT算法,SURF算法匹配準確率提升明顯。
圖3 5種算法匹配準確率對比圖
匹配速度測試實驗是單純計算算法從開始到算法結(jié)束耗費時間,單位為s,實驗結(jié)果如表1所示。由于本文算法利用了光流法計算特征點的運動矢量,因此相比于RANSAC-ORB多了該部分算法的時間消耗,匹配速度約為其匹配速度的0.47倍,平均耗時僅多約0.08 s。此外,本文算法匹配速度為SIFT和SURF算子的18倍左右。本文算法匹配速度整體而言較快,居于5種算法中間位置。
表1 運行時間比較 單位:s
本文介紹了現(xiàn)有的幾種圖像特征匹配算法概況,分析了這些算法在實際應用中遇到的問題,進而從提高匹配準確率和降低耗時出發(fā),提出了基于稀疏光流法的ORB特征點匹配算法,詳細闡述了該算法的實現(xiàn)過程。最后分別采用ORB、RANSAC-ORB、本文算法、SIFT算子、SURF算子進行特征點匹配實驗。實驗結(jié)果表明:本文提出的基于稀疏光流法的ORB特征點匹配優(yōu)化算法在匹配準確率方面在5種匹配算法中準確率最優(yōu),而且本文算法對圖像光照變換、視角變換、模糊變換、旋轉(zhuǎn)和縮放變換,光照變換等情況具有較好的通用性。此外,相比于ORB算法、SIFT算法、SURF算子準確率提升明顯,本文算法準確率平均提升了21.6%,相比于RANSAC-ORB算法提升較小,準確率平均提升了2%左右。在匹配耗時方面,本文算法速度約為SIFT、SURF算法的18倍。