高 強(qiáng), 魏利波
(沈陽大學(xué) a. 科技創(chuàng)新研究院, b. 信息工程學(xué)院, 遼寧 沈陽 110044)
無人機(jī)導(dǎo)航技術(shù)一直是國內(nèi)外研究的重點和熱點,目前用無人機(jī)進(jìn)行定位與導(dǎo)航通常是通過衛(wèi)星導(dǎo)航系統(tǒng)和慣性導(dǎo)航系統(tǒng)來實現(xiàn)的。然而,衛(wèi)星導(dǎo)航系統(tǒng)自主性能較差,也存在抗干擾能力較弱等問題[1];慣性導(dǎo)航系統(tǒng)的定位精度與其使用的慣性器件的精度緊密相關(guān),很大程度上會受到使用成本的限制,并且導(dǎo)航誤差的累積較為明顯[2]。
隨著對計算機(jī)視覺研究的深入以及圖像處理技術(shù)的日漸成熟,使得視覺導(dǎo)航成為無人機(jī)導(dǎo)航研究的重要方向[3]。基于視覺的導(dǎo)航方法主要是無人機(jī)利用圖像傳感器獲取目標(biāo)區(qū)域的圖像,與地圖庫中攜帶地理位置信息的基準(zhǔn)圖像進(jìn)行匹配,通過圖像配準(zhǔn)來獲得自身的位置信息,進(jìn)而實現(xiàn)無人機(jī)的自主導(dǎo)航。圖像配準(zhǔn)算法在無人機(jī)視覺導(dǎo)航中起著關(guān)鍵的作用,配準(zhǔn)效果將直接影響到無人機(jī)自主定位的精確程度[4]。因此對無人機(jī)遙感圖像的配準(zhǔn)方法進(jìn)行研究能夠更加促進(jìn)無人機(jī)的應(yīng)用和發(fā)展,具有很強(qiáng)的實踐意義。
按照進(jìn)行匹配所使用的圖像信息的不同,圖像的配準(zhǔn)算法大體分為基于圖像灰度信息、基于圖像變換域和基于圖像特征3種類型[5]。其中,基于圖像特征的配準(zhǔn)算法對于亮度不均勻、有尺度變化、存在旋轉(zhuǎn)或者被遮擋的圖像匹配誤差更小,適合應(yīng)用于會出現(xiàn)旋轉(zhuǎn)、光照、尺度等變化的環(huán)境中,可以處理變換較為復(fù)雜的圖像間的配準(zhǔn)問題?;邳c特征的圖像配準(zhǔn)算法因其穩(wěn)定和高效的特點而更受研究者的青睞。其主要流程包括:圖像特征點的提取、描述以及匹配[6]。
目前,基于點特征的圖像配準(zhǔn)算法主要有 SIFT算法[7-8]、SURF算法[9-11]、BRISK算法[12-13]以及ORB算法[14-15]等。其中,SURF算法[16]具有良好的旋轉(zhuǎn)不變性、尺度不變性、抗噪性等特點,并且可以較快地提取特征點。但該方法的描述子維數(shù)高、所占計算資源較大,在特征描述階段花費(fèi)的時間較長。針對這個問題,本文將BRISK和SURF算法結(jié)合實現(xiàn)同時具備高速率和高精度的無人機(jī)遙感圖像配準(zhǔn)方法(SURF-BRISK)。
SURF算法利用盒式濾波器和積分圖像,直接對積分圖像進(jìn)行加減運(yùn)算,減小了計算的復(fù)雜度,提高了算法運(yùn)行速度。
SURF算法的主要步驟如下。
1) 計算積分圖像。構(gòu)造積分圖像是整個SURF算法流程中非常重要的一個環(huán)節(jié),通過積分圖像的使用,SURF算法降低了卷積運(yùn)算的復(fù)雜度、加快了特征點檢測速度。積分圖像與原圖像大小一致,積分圖像中1個像素點(x,y)的灰度值是在原圖像中從圖像左上角像素點開始到該點止的、包含該點在內(nèi)的矩形內(nèi)的所有像素點灰度值的總和,計算過程如式(1):
(1)
式中:I(i,j)為原圖像中像素點的灰度值;I∑(x,y)為積分圖像中像素點(x,y)的灰度值。
2) 使用Hessian矩陣檢測特征點。SURF算法檢測圖像特征點是通過Hessian矩陣實現(xiàn)的。檢測到的特征點具有更高的準(zhǔn)確性。Hessian矩陣由高斯函數(shù)的2階微分組成,2元高斯函數(shù)G(x,y,σ)的定義如式(2):
(2)
在尺度σ上,將圖像I中某一點(x,y)的Hessian矩陣定義如式(3):
(3)
式中,Lxx(x,y,σ)、Lxy(x,y,σ)、Lyy(x,y,σ)為高斯函數(shù)在點(x,y)處的2階導(dǎo)數(shù)。
SURF算法采用盒狀濾波器與圖像進(jìn)行卷積得到的結(jié)果Dxx、Dxy、Dyy代替高斯函數(shù)的2階微分Lxx、Lxy、Lyy,則可以得到近似的Hessian矩陣行列式,如式(4):
Det(H)=DxxDyy-(ωDxy)2。
(4)
式中,ω為權(quán)重系數(shù),是為了平衡因近似帶來的誤差和提高計算的效率而設(shè)置的,一般取ω=0.9。
3) 構(gòu)造尺度空間。為了檢測特征點檢測算法的尺度不變性,要在不同的尺度空間中進(jìn)行圖像特征點的檢測,所以需要構(gòu)造尺度空間。SURF算法構(gòu)造尺度空間的方法是使用不同尺寸的盒狀濾波器對同一幅圖像進(jìn)行卷積。
SURF算法的尺度空間由若干層組成,每4層又構(gòu)成1個組。在SURF算法中,最小尺度的盒狀濾波器的尺寸為9×9,其他尺度空間的盒狀濾波器的尺寸都是由9×9盒狀濾波器擴(kuò)展得到的,運(yùn)算速度與盒狀濾波器模板的尺寸大小無關(guān)。
4) 定位特征點。像素點經(jīng)過Hessian矩陣處理后,需要與其3維鄰域內(nèi)的26個點進(jìn)行大小比較,如圖1所示,如果該點是這26個點中的最大值點,則將其作為初步確定的特征點。
圖1 尺度空間極值點檢測Fig.1 Detection of extreme points in scale space
5) 確定特征點主方向。為保證算法的旋轉(zhuǎn)不變性,需確定特征點的主方向。在SURF算法中,通過對特征點鄰域內(nèi)的Harr小波特征進(jìn)行統(tǒng)計來確定特征點主方向,圓形鄰域內(nèi)模值最大的扇形指向即為特征點的唯一主方向。
6) 構(gòu)造特征描述子。在特征點周圍取1個正方形框,生成特征描述子時將正方形分割成16個子區(qū)域,每個子區(qū)域25個采樣點。
盡管SURF 描述子具有較強(qiáng)的圖像配準(zhǔn)適應(yīng)性,但由于其具有較高的維數(shù),故SURF運(yùn)算占用的計算資源較大、效率較低。針對這一問題,本文提出利用BRISK二進(jìn)制描述代替SURF描述子,以得到一種更高效的算子組合配準(zhǔn)優(yōu)化算法,從而實現(xiàn)快速和準(zhǔn)確的圖像配準(zhǔn)過程。
SURF-BRISK算法框圖如圖2所示。
圖2 SURF-BRISK算法框圖Fig.2 Block diagram of SURF-BRIDGE algorithm
1) 提取特征點。算法中的特征檢測子是用來對圖像特征進(jìn)行提取的,檢測到的特征點數(shù)量需要達(dá)到一定要求,同時冗余的特征點要盡可能的少。SURF作為特征檢測子有較好的魯棒性,可以更快速的獲取到具有尺度不變性、旋轉(zhuǎn)不變性以及抗噪性的特征點,且獲取到的圖像特征點較穩(wěn)定。
2) 生成二值描述符。BRISK算子是1種二值算子,所占計算資源較小,以均勻采樣模式進(jìn)行特征點描述,生成描述符時間更短,具有更快的匹配速度。同時,BRISK描述子還具有良好的旋轉(zhuǎn)、縮放不變性以及抗噪性。
在完成對待配準(zhǔn)圖像和基準(zhǔn)圖像的特征提取與描述后,需要對特征描述點進(jìn)行匹配操作,從而獲得相似特征點對。
作為1種常用的圖像特征點匹配方法,FLANN可以對大數(shù)據(jù)集和高維特征進(jìn)行快速最近鄰搜索。該方法可以通過參數(shù)的調(diào)整以及閾值的設(shè)定來提高圖像匹配的精度[17-18],具有較快的速度。因此,本文利用FLANN算法對無人機(jī)遙感圖像進(jìn)行特征點的粗匹配操作,得到待配準(zhǔn)圖像和基準(zhǔn)圖像的初始匹配點集。
針對圖像特征點的誤匹配問題, 本文利用RANSAC算法[19-20]實現(xiàn)誤匹配點的剔除。 RANSAC算法是1種常用的匹配點提純方法, 主要是在待配準(zhǔn)圖像和基準(zhǔn)圖像的初始匹配點集中對誤匹配特征點對進(jìn)行篩選與剔除, 從而提高配準(zhǔn)的精度。 其具有較好的魯棒性, 可以在很大程度上優(yōu)化匹配結(jié)果。
RANSAC算法采取的是采樣與驗證的策略,可以在包含誤匹配點的數(shù)據(jù)集中,通過迭代尋找最優(yōu)參數(shù)模型。其主要思路是求解單應(yīng)性矩陣E。假設(shè)基準(zhǔn)圖像中的待匹配點坐標(biāo)為(x,y),待配準(zhǔn)圖像中的待匹配點坐標(biāo)為(x′,y′),則單應(yīng)性矩陣E描述了圖像之間的幾何變換關(guān)系,如式(5):
(5)
RANSAC算法的主要步驟如下:
① 在特征點初始匹配的數(shù)據(jù)集中隨機(jī)選取4對非線性特征點作為樣本數(shù)據(jù),記為模型M,然后計算出單應(yīng)性矩陣E,設(shè)定好閾值;
② 使用E計算出初始匹配數(shù)據(jù)集中所有數(shù)據(jù)與模型M的投影誤差,若誤差小于設(shè)定的閾值,則將該數(shù)據(jù)加入內(nèi)點集Q;
③ 若當(dāng)前內(nèi)點集Q中的元素個數(shù)大于當(dāng)前最優(yōu)單應(yīng)性矩陣的內(nèi)點數(shù),則對當(dāng)前最優(yōu)單應(yīng)性矩陣進(jìn)行更新,同時更新迭代次數(shù)。反之,不更新;
④ 根據(jù)當(dāng)前最優(yōu)單應(yīng)性矩陣的內(nèi)點數(shù)更新迭代總次數(shù),若當(dāng)前迭代次數(shù)小于總迭代次數(shù),返回執(zhí)行步驟①。反之,則當(dāng)前模型M就是待求的模型。
為了驗證本文提出的算法,選取城市、島嶼及河流3種場景下的無人機(jī)遙感圖像進(jìn)行實驗,基準(zhǔn)圖像和待配準(zhǔn)圖像來源于互聯(lián)網(wǎng)地圖平臺的衛(wèi)星地圖,如圖3所示。
(a) 城市基準(zhǔn)圖像(b) 城市待配準(zhǔn)圖像(c) 島嶼基準(zhǔn)圖像(d) 島嶼待配準(zhǔn)圖像(e) 河流基準(zhǔn)圖像(f) 河流待配準(zhǔn)圖像
基于上述遙感圖像,分別利用SIFT、SURF以及SURF-BRISK 3種算法進(jìn)行圖像配準(zhǔn),結(jié)果如圖4~圖9所示。將計算運(yùn)行時間、匹配點對數(shù)以及匹配點對的均方根誤差作為圖像配準(zhǔn)效果的評價指標(biāo), 結(jié)果如表1所示。
表1 SURF-BRISK算法與 SIFT算法和SURF算法的比較結(jié)果Table 1 Comparison results of surf-bridge algorithm with SIFT algorithm and SURF algorithm
(a) SIFT(b) SURF(c) SURF-BRISK
(a) SIFT(b) SURF(c) SURF-BRISK
(a) SIFT(b) SURF(c) SURF-BRISK
(a) SIFT(b) SURF(c) SURF-BRISK
(a) SIFT(b) SURF(c) SURF-BRISK
(a) SIFT(b) SURF(c) SURF-BRISK
通過圖4~圖9的配準(zhǔn)結(jié)果以及表1中的對比數(shù)據(jù)可知:SURF-BRISK算法可以有效剔除粗匹配中的誤匹配點,優(yōu)化圖像配準(zhǔn)結(jié)果;和其他傳統(tǒng)算法相比,SURF-BRISK算法對于不同場景下的無人機(jī)影像配準(zhǔn)都能夠取得較好的效果:以城市場景為例,SURF-BRISK算法的運(yùn)行時間相對于SIFT算法、SURF算法分別減少了約86%、74%,而配準(zhǔn)精度分別提高了約4%、13%,匹配點的對數(shù)也有大幅提升。
通過以上實驗分析可知: SURF算法可以更快地提取出更多的圖像特征點,BRISK算法可以更快地生成特征描述符,且二者均具有良好的旋轉(zhuǎn)、縮放不變性及抗噪性,SURF-BRISK算法屬于“強(qiáng)強(qiáng)聯(lián)合”。對于無人機(jī)遙感影像配準(zhǔn),SURF-BRISK 算法能夠取得較好的效果,相對于傳統(tǒng)算法在運(yùn)行時間上有較大的提升,配準(zhǔn)精度雖提升不大,但對于無人機(jī)視覺導(dǎo)航的圖像配準(zhǔn)任務(wù)來說,細(xì)微的提高都將對定位精度產(chǎn)生積極的影響。
本文針對無人機(jī)遙感影像配準(zhǔn),對SURF算法進(jìn)行改進(jìn), 提出了SURF-BRISK算法,將SURF特征點提取與BRISK特征點描述符相結(jié)合,在無人機(jī)影像配準(zhǔn)中有效地提升了算法的運(yùn)行速度;采用FLANN算法進(jìn)行特征點粗匹配, 然后通過RANSAC算法進(jìn)一步剔除誤匹配點,有效地降低了誤匹配率。經(jīng)實驗驗證,SURF-BRISK算法在保證配準(zhǔn)精度的同時可以很好的提高運(yùn)行效率,滿足無人機(jī)航拍圖像匹配對實時性與精確度的要求。