倪佳忠 馬志龍
(1. 浙江省測繪科學技術研究院, 浙江 杭州 311100; 2. 杭州天圖地理信息技術公司, 浙江 杭州 310007)
借助無人機航拍構建地形圖[1-2]以及三維重建[3-5]已成為一種主流,限于無人機掛載相機畫幅,需多次拍攝才能獲得比較完整的圖像。連續航拍圖像構建地形圖和三維重建,需得到相鄰圖像位置關系,基于局部特征點的圖像匹配算法是計算相鄰圖像位置信息的最佳方法。
目前無人機航拍圖像匹配主要是基于局部特征的方法,主要有4個步驟:尺度空間構建、特征檢測、特征編碼和內點篩選。何敬等人[6]提出基于尺度不變算法(scale-invariant feature transform, SIFT)[7]完成航拍圖像匹配,SIFT算法在高斯尺度空間上提取特征點和構建描述符,具有較好尺度不變性、旋轉不變性和抗光照不變性,但是耗時較長。王曉紅等人[8]借助加速魯棒性算法(speeded up robust features, SURF)[9]完成圖像匹配,SURF算法描述符維度僅為64維,利用小波算法提取特征,相較SIFT算法效率更高。為了進一步加速航拍匹配方法,王文爽等[10]提出改進快速定向和描述符構建(oriented fast and rotated brief,ORB) 算法[11]進行圖像匹配,在待匹配圖像中構造掩膜并逐步移動掩膜完成ORB特征點提取,該方法相較SIFT算法和SURF算法速度更快,但魯棒性欠佳。
上述幾種算法的特征提取均在高斯尺度空間中進行,而高斯濾波會造成圖像邊緣信息丟失,嚴重影響航拍匹配算法魯棒性。故任克強等人[12]提出基于“風”算法(KAZE)[13]的圖像匹配方法,KAZE算法使用非線性濾波構建尺度空間,更好的保護圖像細節信息,增加算法的穩定性,但非線性尺度空間構建耗時較長和浮點型描述符匹配效率較低等導致算法匹配速度較慢。韓敏等人[14]提出一種改進KAZE算法,使用二進制快速虹膜描述符(fast retina keypoint,FREAK)[15]代替原KAZE的SURF浮點型描述符。為了提高KAZE算法的效率,Alcantarilla等人[16]提出加速KAZE算法(accelerated KAZE),該算法使用速度更快加性算子分裂算法構建尺度空間,并提出魯棒性較好的局部不同二進制描述符(modified-local difference binary,MLDB);該算法相較KAZE算法速度有極大提升,但相較ORB算法效率較低。
綜上所述,現有航拍圖像匹配方法仍有不足:(1)在高斯尺度空間上檢測特征點和構造描述符嚴重影響算法穩定性;(2)非線性尺度構建魯棒性較強,但匹配效率較慢。
為了解決上述問題,本文提出一種改進的ORB算法對電力巡線無人機航拍圖像進行匹配。首先借助非線性濾波函數構建尺度空間,然后使用快速定位算法(Fast)檢測特征點,隨后構建二進制魯棒描述符(binary robust independent elementary features,BRIEF)并用暴力匹配方法完成匹配,最后借助網格運動統計算法(grid-based motion statistics, GMS)[17]完成內點篩選,具體過程如圖1所示。

圖1 匹配過程
在SIFT、ORB等算法中,均借助高斯核函數平滑操作建高斯尺度空間,該方法效率較高,但會造成圖像邊和角點信息丟失。為了得到穩定的尺度空間,本文提出使用具有各向異性的非線性濾波算法構建尺度空間。
非線性擴散濾波將圖像亮度L在不同尺度層演化,轉化為熱擴散函數散度因子控制的擴散過程,該過程通常借助偏微方程求解,則熱擴散函數偏微方程為
(1)
式中,L為圖像亮度矩陣;div和▽分別表示為熱擴散函數的擴散度和圖像梯度;c(x,y,t)是傳導函數,表示為
(2)
式中,t為尺度參數;▽Lσ為圖像L高斯濾波后的梯度圖像;g為
(3)
式中,k為控制擴散度的對比因子。
為了更高效的解非線性函數,AKAZE算法借助快速顯示擴散算法解偏微方程,可表示為
(4)
式中,I為單位矩陣;A(Li)為圖像Li的傳導矩陣;n為顯性擴散步數;τj為恒定步長,可寫成
(5)
式中,τmax為最大迭代步長,是控制顯式擴散穩定條件,單個周期停止時間θn為
(6)
非線性尺度空間與SIFT算法高斯尺度空間類似,分別用o、s表示尺度空間的組和層,每組和層對應的尺度因子為
(7)
式中,σ0為初始尺度參數;O×S為尺度空間總層數。非線性尺度空間的尺度因子σ,可映射到時間單位中,即為
(8)
式中,ti為尺度空間的進化時間。
原ORB算法的特征點檢測和描述符構建均在高斯尺度空間中,但是高斯濾波保邊性較差,故本文提出特征點檢測和描述符構建均在非線性尺度空間中進行。上一節已完成非線性尺度空間構建,則特征點提取具體過程如下:
(1)圖像上任意像素點為圓心,選擇半徑為3個像素圓上的16個像素點作為比較點;
(2)設定固定閾值,若是圓心與圓上第一和第9個像素點做差,若插值絕對值大于閾值,則保留圓心點;
(3)若圓心為候選點,再計算第1、9、5、13個像素點與圓心的差值,若任意3個差值絕對值大于閾值,則保留圓心點;
(4)若圓心點為候選點,再計算圓上16個點與圓心點差值,若是至少9差值絕對值大于閾值,則圓心點為特征點。
在非線性尺度空間中檢測特征點后,需對特征點構建主方向,本文借助原ORB算法中主方向構建方法,具體過程如下:
第一步:計算特征采樣區域的矩,可寫成
(9)
第二步:矩的質心為
(10)
第三步:特征點主方向為中心點到質心的方向,可寫成
(11)
以特征點為中心旋轉合適的區域作為特征采樣窗口,任意選著兩個像素點作為描述符采樣點,可以建立τ為
(12)
若選擇N對(Xi,Yi),(i=1,2,…,N)像素點,則可得到N維二進制描述符fN為
(13)
(14)
在非線性尺度空間上提取特征點和構建描述符后,借助漢明距離計算尋找同一對特征描述符。
上述步驟完成了航拍圖像的粗匹配,但內部存在大量錯誤匹配點,需借助特征點篩選算法選擇正確匹配點。傳統一般借助隨機采樣一致性算法篩選內點,但該方法需多次迭代計算,運算量較大,嚴重影響匹配效率;故在本文中,先借助漢明距離完成粗匹配,然后再通過GMS算法剔除錯誤匹配點。網格運動算法的核心思想:運動的平滑性導致正確匹配點鄰域有較多的正確匹配點,因此可通過計算鄰域匹配點數量判斷一個匹配點是否正確。
若兩張匹配圖像IL和IR最鄰近匹配點集合為
(15)
式中,xi={mi,ni},m,n分別為匹配圖像IL、IR上匹配點數量;任意匹配點的鄰域支持度Si=|xi|-1。特征點匹配需滿足面積足夠小和相互獨立分布,則成對匹配點分布為
(16)
式中,xi為匹配點對;Kn為匹配點對數量;pt和pf分別為正確和錯誤匹配率。在網格運動統計算法中S(xi)呈雙峰分布,則成對匹配點分布的均值和標準可寫成:
(1)若xi為正確匹配點對,則有
(2)若xi為錯誤匹配點對,則有
由此可得網格運動統計算法的概率評估標準函數為
(21)
式中,px值越大,表明該對匹配點為正確匹配點概率越高。
為了證明本文所提非線性ORB+GMS算法對航拍圖像匹配的優越性,借助ORB算法、ORB+GMS算法、AKAZE算法、AKAZE+GMS算法與本文所提算法對比實驗,在SUIRD數據集(small UAV image registration dataset)中對上述算法的匹配正確率和效率統計對比。SUIRD數據集共有四組具有不同變化圖像:水平旋轉、豎直旋轉、尺度變換和混合變化,每組有6張圖像且變化程度逐次增加,第1張為參考圖像,其余5張是待匹配圖像,如圖2所示。
本實驗計算機主要配置為:CPU i7-6700HQ,主頻2.60 GHz,內存8 GB,操作系統為Ubuntn18.04,基于Python_Opencv3在Pycharm上進行實驗。


(a)混合變化


(b)水平旋轉


(c)尺度變化


(d)豎直旋轉圖2 實驗圖像
為了提高ORB算法的魯棒性,本文提出在非線性尺度空間中檢測特征點和提取描述符,相較原ORB算法穩定性有極大提升;AKAZE算法構建的LDB描述符不僅對像素編碼,還添加了梯度信息,故魯棒性優于所提非線性ORB算法。
對于具有混合變化的航拍圖像,ORB算法的匹配準確率最低;本文所提非線性ORB算法匹配正確率不及AKAZE算法,但優于ORB算法。ORB算法經過GSM算法篩選內點后,準確率高達0.912,但仍不及非線性ORB+GMS算法和AKAZE+GMS算法。非線性ORB+GMS算法匹配準確率高達0.950,相較ORB+GMS算法提高0.038。對于具有水平旋轉變換航拍圖像,非線性ORB算法匹配準確率相較ORB算法平均提高0.04,相較AKAZE算法降低0.043;非線性ORB+GSM算法相較ORB+GMS算法準確率提高0.48。
針對具有尺度變化的航拍圖像,所提非線性ORB算法相較原ORB算法,匹配準確率提高0.053;非線性ORB+GMS算法相較ORB+GMS算法匹配準確率提高0.041。
針對豎直變化的航拍圖像,所提非線性ORB算法相較AKAZE算法,匹配準確率降低0.06,相較ORB算法提高0.056。非線性ORB+GMS算法匹配準確率相較AKAZE+GMS算法降低0.01,相較ORB+GMS算法提高0.05,具體如圖3所示。

(b)水平旋轉變化

(c)尺度變化

(d)豎直旋轉變化圖3 各種算法匹配正確率
對ORB算法、ORB+GMS算法、AKAZE算法、AKAZE+GMS算法和本文所提算法在混合變化圖像組匹配耗時統計,如表1所示。ORB算法借助高斯函數可快速構建尺度空間,特征點檢測和描述符構建速度均較快,故ROB算法耗時最短、匹配效率最高;但由折線圖3(a)知,ORB算法的匹配正確率最低,穩定性最差。非線性ORB算法借助非線性濾波函數構建尺度空間,需迭代解非線性函數,耗時較長,故匹配效率不及ORB算法;但非線性ORB算法匹配正確率超過ORB算法,穩定性優于ORB算法。AKAZE算法不僅需要解非線性函數,而且構建描述符需計算圖像梯度值,故匹配效率不及非線性ORB算法;由折線圖3(a)知,AKAZE算法匹配正確率高于非線性ORB算法,但匹配耗時遠超過非線性ORB算法。

表1 算法耗時 單位:ms
針對ORB算法尺度空間構建方法易使圖像角點和邊緣信息丟失,造成航拍圖像匹配準確率較低等問題,本文,本文提出一種基于非線性尺度空間的改進ORB算法。本文借助非線性濾波算法構建非線性尺度空間,可有效地保護圖像細節信息,增加算法的魯棒性;再使用Fast算法提取特征點,然后使用BRIEF算法提取描述符;最后借助GMS算法篩選內點。實驗表明:非線性ORB算法具有較高的穩定性和效率,可廣泛應用于航拍圖像匹配場景中。