倪佳忠 馬志龍
(1. 浙江省測(cè)繪科學(xué)技術(shù)研究院, 浙江 杭州 311100; 2. 杭州天圖地理信息技術(shù)公司, 浙江 杭州 310007)
借助無(wú)人機(jī)航拍構(gòu)建地形圖[1-2]以及三維重建[3-5]已成為一種主流,限于無(wú)人機(jī)掛載相機(jī)畫幅,需多次拍攝才能獲得比較完整的圖像。連續(xù)航拍圖像構(gòu)建地形圖和三維重建,需得到相鄰圖像位置關(guān)系,基于局部特征點(diǎn)的圖像匹配算法是計(jì)算相鄰圖像位置信息的最佳方法。
目前無(wú)人機(jī)航拍圖像匹配主要是基于局部特征的方法,主要有4個(gè)步驟:尺度空間構(gòu)建、特征檢測(cè)、特征編碼和內(nèi)點(diǎn)篩選。何敬等人[6]提出基于尺度不變算法(scale-invariant feature transform, SIFT)[7]完成航拍圖像匹配,SIFT算法在高斯尺度空間上提取特征點(diǎn)和構(gòu)建描述符,具有較好尺度不變性、旋轉(zhuǎn)不變性和抗光照不變性,但是耗時(shí)較長(zhǎng)。王曉紅等人[8]借助加速魯棒性算法(speeded up robust features, SURF)[9]完成圖像匹配,SURF算法描述符維度僅為64維,利用小波算法提取特征,相較SIFT算法效率更高。為了進(jìn)一步加速航拍匹配方法,王文爽等[10]提出改進(jìn)快速定向和描述符構(gòu)建(oriented fast and rotated brief,ORB) 算法[11]進(jìn)行圖像匹配,在待匹配圖像中構(gòu)造掩膜并逐步移動(dòng)掩膜完成ORB特征點(diǎn)提取,該方法相較SIFT算法和SURF算法速度更快,但魯棒性欠佳。
上述幾種算法的特征提取均在高斯尺度空間中進(jìn)行,而高斯濾波會(huì)造成圖像邊緣信息丟失,嚴(yán)重影響航拍匹配算法魯棒性。故任克強(qiáng)等人[12]提出基于“風(fēng)”算法(KAZE)[13]的圖像匹配方法,KAZE算法使用非線性濾波構(gòu)建尺度空間,更好的保護(hù)圖像細(xì)節(jié)信息,增加算法的穩(wěn)定性,但非線性尺度空間構(gòu)建耗時(shí)較長(zhǎng)和浮點(diǎn)型描述符匹配效率較低等導(dǎo)致算法匹配速度較慢。韓敏等人[14]提出一種改進(jìn)KAZE算法,使用二進(jìn)制快速虹膜描述符(fast retina keypoint,F(xiàn)REAK)[15]代替原KAZE的SURF浮點(diǎn)型描述符。為了提高KAZE算法的效率,Alcantarilla等人[16]提出加速KAZE算法(accelerated KAZE),該算法使用速度更快加性算子分裂算法構(gòu)建尺度空間,并提出魯棒性較好的局部不同二進(jìn)制描述符(modified-local difference binary,MLDB);該算法相較KAZE算法速度有極大提升,但相較ORB算法效率較低。
綜上所述,現(xiàn)有航拍圖像匹配方法仍有不足:(1)在高斯尺度空間上檢測(cè)特征點(diǎn)和構(gòu)造描述符嚴(yán)重影響算法穩(wěn)定性;(2)非線性尺度構(gòu)建魯棒性較強(qiáng),但匹配效率較慢。
為了解決上述問題,本文提出一種改進(jìn)的ORB算法對(duì)電力巡線無(wú)人機(jī)航拍圖像進(jìn)行匹配。首先借助非線性濾波函數(shù)構(gòu)建尺度空間,然后使用快速定位算法(Fast)檢測(cè)特征點(diǎn),隨后構(gòu)建二進(jìn)制魯棒描述符(binary robust independent elementary features,BRIEF)并用暴力匹配方法完成匹配,最后借助網(wǎng)格運(yùn)動(dòng)統(tǒng)計(jì)算法(grid-based motion statistics, GMS)[17]完成內(nèi)點(diǎn)篩選,具體過(guò)程如圖1所示。
圖1 匹配過(guò)程
在SIFT、ORB等算法中,均借助高斯核函數(shù)平滑操作建高斯尺度空間,該方法效率較高,但會(huì)造成圖像邊和角點(diǎn)信息丟失。為了得到穩(wěn)定的尺度空間,本文提出使用具有各向異性的非線性濾波算法構(gòu)建尺度空間。
非線性擴(kuò)散濾波將圖像亮度L在不同尺度層演化,轉(zhuǎn)化為熱擴(kuò)散函數(shù)散度因子控制的擴(kuò)散過(guò)程,該過(guò)程通常借助偏微方程求解,則熱擴(kuò)散函數(shù)偏微方程為
(1)
式中,L為圖像亮度矩陣;div和▽分別表示為熱擴(kuò)散函數(shù)的擴(kuò)散度和圖像梯度;c(x,y,t)是傳導(dǎo)函數(shù),表示為
(2)
式中,t為尺度參數(shù);▽Lσ為圖像L高斯濾波后的梯度圖像;g為
(3)
式中,k為控制擴(kuò)散度的對(duì)比因子。
為了更高效的解非線性函數(shù),AKAZE算法借助快速顯示擴(kuò)散算法解偏微方程,可表示為
(4)
式中,I為單位矩陣;A(Li)為圖像Li的傳導(dǎo)矩陣;n為顯性擴(kuò)散步數(shù);τj為恒定步長(zhǎng),可寫成
(5)
式中,τmax為最大迭代步長(zhǎng),是控制顯式擴(kuò)散穩(wěn)定條件,單個(gè)周期停止時(shí)間θn為
(6)
非線性尺度空間與SIFT算法高斯尺度空間類似,分別用o、s表示尺度空間的組和層,每組和層對(duì)應(yīng)的尺度因子為
(7)
式中,σ0為初始尺度參數(shù);O×S為尺度空間總層數(shù)。非線性尺度空間的尺度因子σ,可映射到時(shí)間單位中,即為
(8)
式中,ti為尺度空間的進(jìn)化時(shí)間。
原ORB算法的特征點(diǎn)檢測(cè)和描述符構(gòu)建均在高斯尺度空間中,但是高斯濾波保邊性較差,故本文提出特征點(diǎn)檢測(cè)和描述符構(gòu)建均在非線性尺度空間中進(jìn)行。上一節(jié)已完成非線性尺度空間構(gòu)建,則特征點(diǎn)提取具體過(guò)程如下:
(1)圖像上任意像素點(diǎn)為圓心,選擇半徑為3個(gè)像素圓上的16個(gè)像素點(diǎn)作為比較點(diǎn);
(2)設(shè)定固定閾值,若是圓心與圓上第一和第9個(gè)像素點(diǎn)做差,若插值絕對(duì)值大于閾值,則保留圓心點(diǎn);
(3)若圓心為候選點(diǎn),再計(jì)算第1、9、5、13個(gè)像素點(diǎn)與圓心的差值,若任意3個(gè)差值絕對(duì)值大于閾值,則保留圓心點(diǎn);
(4)若圓心點(diǎn)為候選點(diǎn),再計(jì)算圓上16個(gè)點(diǎn)與圓心點(diǎn)差值,若是至少9差值絕對(duì)值大于閾值,則圓心點(diǎn)為特征點(diǎn)。
在非線性尺度空間中檢測(cè)特征點(diǎn)后,需對(duì)特征點(diǎn)構(gòu)建主方向,本文借助原ORB算法中主方向構(gòu)建方法,具體過(guò)程如下:
第一步:計(jì)算特征采樣區(qū)域的矩,可寫成
(9)
第二步:矩的質(zhì)心為
(10)
第三步:特征點(diǎn)主方向?yàn)橹行狞c(diǎn)到質(zhì)心的方向,可寫成
(11)
以特征點(diǎn)為中心旋轉(zhuǎn)合適的區(qū)域作為特征采樣窗口,任意選著兩個(gè)像素點(diǎn)作為描述符采樣點(diǎn),可以建立τ為
(12)
若選擇N對(duì)(Xi,Yi),(i=1,2,…,N)像素點(diǎn),則可得到N維二進(jìn)制描述符fN為
(13)
(14)
在非線性尺度空間上提取特征點(diǎn)和構(gòu)建描述符后,借助漢明距離計(jì)算尋找同一對(duì)特征描述符。
上述步驟完成了航拍圖像的粗匹配,但內(nèi)部存在大量錯(cuò)誤匹配點(diǎn),需借助特征點(diǎn)篩選算法選擇正確匹配點(diǎn)。傳統(tǒng)一般借助隨機(jī)采樣一致性算法篩選內(nèi)點(diǎn),但該方法需多次迭代計(jì)算,運(yùn)算量較大,嚴(yán)重影響匹配效率;故在本文中,先借助漢明距離完成粗匹配,然后再通過(guò)GMS算法剔除錯(cuò)誤匹配點(diǎn)。網(wǎng)格運(yùn)動(dòng)算法的核心思想:運(yùn)動(dòng)的平滑性導(dǎo)致正確匹配點(diǎn)鄰域有較多的正確匹配點(diǎn),因此可通過(guò)計(jì)算鄰域匹配點(diǎn)數(shù)量判斷一個(gè)匹配點(diǎn)是否正確。
若兩張匹配圖像IL和IR最鄰近匹配點(diǎn)集合為
(15)
式中,xi={mi,ni},m,n分別為匹配圖像IL、IR上匹配點(diǎn)數(shù)量;任意匹配點(diǎn)的鄰域支持度Si=|xi|-1。特征點(diǎn)匹配需滿足面積足夠小和相互獨(dú)立分布,則成對(duì)匹配點(diǎn)分布為
(16)
式中,xi為匹配點(diǎn)對(duì);Kn為匹配點(diǎn)對(duì)數(shù)量;pt和pf分別為正確和錯(cuò)誤匹配率。在網(wǎng)格運(yùn)動(dòng)統(tǒng)計(jì)算法中S(xi)呈雙峰分布,則成對(duì)匹配點(diǎn)分布的均值和標(biāo)準(zhǔn)可寫成:
(1)若xi為正確匹配點(diǎn)對(duì),則有
(2)若xi為錯(cuò)誤匹配點(diǎn)對(duì),則有
由此可得網(wǎng)格運(yùn)動(dòng)統(tǒng)計(jì)算法的概率評(píng)估標(biāo)準(zhǔn)函數(shù)為
(21)
式中,px值越大,表明該對(duì)匹配點(diǎn)為正確匹配點(diǎn)概率越高。
為了證明本文所提非線性O(shè)RB+GMS算法對(duì)航拍圖像匹配的優(yōu)越性,借助ORB算法、ORB+GMS算法、AKAZE算法、AKAZE+GMS算法與本文所提算法對(duì)比實(shí)驗(yàn),在SUIRD數(shù)據(jù)集(small UAV image registration dataset)中對(duì)上述算法的匹配正確率和效率統(tǒng)計(jì)對(duì)比。SUIRD數(shù)據(jù)集共有四組具有不同變化圖像:水平旋轉(zhuǎn)、豎直旋轉(zhuǎn)、尺度變換和混合變化,每組有6張圖像且變化程度逐次增加,第1張為參考圖像,其余5張是待匹配圖像,如圖2所示。
本實(shí)驗(yàn)計(jì)算機(jī)主要配置為:CPU i7-6700HQ,主頻2.60 GHz,內(nèi)存8 GB,操作系統(tǒng)為Ubuntn18.04,基于Python_Opencv3在Pycharm上進(jìn)行實(shí)驗(yàn)。
(a)混合變化
(b)水平旋轉(zhuǎn)
(c)尺度變化
(d)豎直旋轉(zhuǎn)圖2 實(shí)驗(yàn)圖像
為了提高ORB算法的魯棒性,本文提出在非線性尺度空間中檢測(cè)特征點(diǎn)和提取描述符,相較原ORB算法穩(wěn)定性有極大提升;AKAZE算法構(gòu)建的LDB描述符不僅對(duì)像素編碼,還添加了梯度信息,故魯棒性優(yōu)于所提非線性O(shè)RB算法。
對(duì)于具有混合變化的航拍圖像,ORB算法的匹配準(zhǔn)確率最低;本文所提非線性O(shè)RB算法匹配正確率不及AKAZE算法,但優(yōu)于ORB算法。ORB算法經(jīng)過(guò)GSM算法篩選內(nèi)點(diǎn)后,準(zhǔn)確率高達(dá)0.912,但仍不及非線性O(shè)RB+GMS算法和AKAZE+GMS算法。非線性O(shè)RB+GMS算法匹配準(zhǔn)確率高達(dá)0.950,相較ORB+GMS算法提高0.038。對(duì)于具有水平旋轉(zhuǎn)變換航拍圖像,非線性O(shè)RB算法匹配準(zhǔn)確率相較ORB算法平均提高0.04,相較AKAZE算法降低0.043;非線性O(shè)RB+GSM算法相較ORB+GMS算法準(zhǔn)確率提高0.48。
針對(duì)具有尺度變化的航拍圖像,所提非線性O(shè)RB算法相較原ORB算法,匹配準(zhǔn)確率提高0.053;非線性O(shè)RB+GMS算法相較ORB+GMS算法匹配準(zhǔn)確率提高0.041。
針對(duì)豎直變化的航拍圖像,所提非線性O(shè)RB算法相較AKAZE算法,匹配準(zhǔn)確率降低0.06,相較ORB算法提高0.056。非線性O(shè)RB+GMS算法匹配準(zhǔn)確率相較AKAZE+GMS算法降低0.01,相較ORB+GMS算法提高0.05,具體如圖3所示。
(b)水平旋轉(zhuǎn)變化
(c)尺度變化
(d)豎直旋轉(zhuǎn)變化圖3 各種算法匹配正確率
對(duì)ORB算法、ORB+GMS算法、AKAZE算法、AKAZE+GMS算法和本文所提算法在混合變化圖像組匹配耗時(shí)統(tǒng)計(jì),如表1所示。ORB算法借助高斯函數(shù)可快速構(gòu)建尺度空間,特征點(diǎn)檢測(cè)和描述符構(gòu)建速度均較快,故ROB算法耗時(shí)最短、匹配效率最高;但由折線圖3(a)知,ORB算法的匹配正確率最低,穩(wěn)定性最差。非線性O(shè)RB算法借助非線性濾波函數(shù)構(gòu)建尺度空間,需迭代解非線性函數(shù),耗時(shí)較長(zhǎng),故匹配效率不及ORB算法;但非線性O(shè)RB算法匹配正確率超過(guò)ORB算法,穩(wěn)定性優(yōu)于ORB算法。AKAZE算法不僅需要解非線性函數(shù),而且構(gòu)建描述符需計(jì)算圖像梯度值,故匹配效率不及非線性O(shè)RB算法;由折線圖3(a)知,AKAZE算法匹配正確率高于非線性O(shè)RB算法,但匹配耗時(shí)遠(yuǎn)超過(guò)非線性O(shè)RB算法。
表1 算法耗時(shí) 單位:ms
針對(duì)ORB算法尺度空間構(gòu)建方法易使圖像角點(diǎn)和邊緣信息丟失,造成航拍圖像匹配準(zhǔn)確率較低等問題,本文,本文提出一種基于非線性尺度空間的改進(jìn)ORB算法。本文借助非線性濾波算法構(gòu)建非線性尺度空間,可有效地保護(hù)圖像細(xì)節(jié)信息,增加算法的魯棒性;再使用Fast算法提取特征點(diǎn),然后使用BRIEF算法提取描述符;最后借助GMS算法篩選內(nèi)點(diǎn)。實(shí)驗(yàn)表明:非線性O(shè)RB算法具有較高的穩(wěn)定性和效率,可廣泛應(yīng)用于航拍圖像匹配場(chǎng)景中。