雷遠(yuǎn)華,曾德培
(中國(guó)能源建設(shè)集團(tuán)湖南省電力設(shè)計(jì)院有限公司,湖南 長(zhǎng)沙 410007)
隨著無(wú)人機(jī)技術(shù)的快速發(fā)展,借助無(wú)人機(jī)航拍進(jìn)行地面測(cè)量、局部地圖制作、三維重建等已被越來(lái)越多的學(xué)者注意[1-3]。限于無(wú)人機(jī)機(jī)載相機(jī)的畫(huà)幅,將多次連續(xù)拍攝圖像匹配操作是航拍圖像處理的重要過(guò)程。
基于局部特征點(diǎn)的圖像匹配算法是無(wú)人機(jī)航拍圖像匹配方法的重要研究方向,例如:耿娟等人提出基于CSIFT算法[4]的無(wú)人機(jī)圖像匹配[5],首先構(gòu)建彩色尺度空間,然后利用彩色空間的尺度不變性提取特征點(diǎn)和描述符并完成匹配,最后借助隨機(jī)采樣一致性算法完成內(nèi)點(diǎn)篩選,該方法魯棒性雖好,但是匹配效率較低。故高俊強(qiáng)等人提出基于SURF算法[6]的航拍圖像匹配[7],該方法有效地提高了圖像匹配速度。為了更進(jìn)一步加速匹配算法,宋偉等人提出了一種改進(jìn)AKAZE算法[8-9]進(jìn)行航拍圖像匹配,該方法效率雖高,但借助隨機(jī)采樣一致性算法迭代計(jì)算單應(yīng)性矩陣模型耗時(shí)較長(zhǎng)。曹留霞等人[10]提出BRISK-DAISY算法進(jìn)行無(wú)人機(jī)影像匹配,首先利用BRISK算法進(jìn)行特征點(diǎn)提取,然后使用DAISY算法提取局部特征描述符并匹配,最后借助RANSAC算法完成內(nèi)點(diǎn)篩選,該方法匹配效果較好,但DAISY描述符匹配效率較低、RANSAC迭代計(jì)算最佳模型耗時(shí)較長(zhǎng)。
為了解決上述算法的不足,本文提出借助ORB+GMS算法[11-12]匹配航拍圖像,首先構(gòu)建高斯尺度空間,然后借助FAST算法[11]提取特征點(diǎn),隨后使用BRIEF算法[11]構(gòu)建描述符并借助漢明距離匹配,最后通過(guò)網(wǎng)格運(yùn)動(dòng)統(tǒng)計(jì)算法[12]篩選內(nèi)點(diǎn)。
ORB匹配算法[11]主要分為三個(gè)步驟:尺度空間構(gòu)建、特征點(diǎn)檢測(cè)、描述符構(gòu)建,主要過(guò)程如下:
第一步:尺度空間構(gòu)建
借助式(1)的高斯核函數(shù)對(duì)原圖像I(x,y)濾波和降采樣,可得到高斯尺度空間,則高斯核函數(shù)為:
(1)
構(gòu)建的高斯尺度空間可用公式:
L(x,y,σ,ρ)=ρ·I(x,y)·G(x,y,σ)
(2)
式中,I(x,y)為灰度圖像;σ為尺度因子;ρ為縮放因子。
第二步:特征點(diǎn)檢測(cè)
ORB算法使用加速分割測(cè)試算法快速提取特征點(diǎn),尺度空間上每一個(gè)像素點(diǎn)為圓心,畫(huà)半徑為3的圓,圓上共有16個(gè)像素點(diǎn),若連續(xù)n個(gè)像素值與中心點(diǎn)的差異絕對(duì)值大于閾值t,則該圓心點(diǎn)為特征點(diǎn)。得到特征點(diǎn)后,再計(jì)算特征點(diǎn)的Harris響應(yīng)值并排序,為了防止特征點(diǎn)積聚出現(xiàn),通過(guò)非極大值抑制算法篩選特征點(diǎn)。
第三步:描述符構(gòu)建
特征匹配算法需要具有方向不變性,故首先需要對(duì)特征點(diǎn)建立主方向。ORB算法計(jì)算特征點(diǎn)到特征采樣區(qū)域質(zhì)心的方向作為特征點(diǎn)主方向,則特征采樣區(qū)域的質(zhì)心計(jì)算方法為:
(3)
矩的質(zhì)心為:
(4)
特征點(diǎn)的主方向可定義為:
(5)
構(gòu)建主方向后,以特征點(diǎn)為中心S×S區(qū)域隨機(jī)抽出像素點(diǎn)兩兩比較編碼,兩兩像素值大小可以建立τ:
(6)
式中,p(x)和p(y)為特征采樣區(qū)域內(nèi)像素點(diǎn)。若有N對(duì)像素點(diǎn)比較,則得到N維二進(jìn)制描述符fN:
(7)
若N對(duì)像素點(diǎn)(Xi,Yi),(i=1,2,…,N),對(duì)式(7)轉(zhuǎn)換為矩陣:
(8)
式(5)旋轉(zhuǎn)角度θ可得到旋轉(zhuǎn)矩陣Rθ,則得到旋轉(zhuǎn)后的矩陣為Sθ=RθS。
則BRIEF描述符經(jīng)過(guò)旋轉(zhuǎn)得到ORB算法的描述符,可表示為:
gN(p,θ):=fN(p)|(xi,yi)∈Sθ
(9)
網(wǎng)格運(yùn)動(dòng)統(tǒng)計(jì)算法篩選內(nèi)點(diǎn)主要基于一個(gè)假設(shè):匹配圖像中每個(gè)像素點(diǎn)都具有運(yùn)動(dòng)平滑性,正確匹配點(diǎn)周?chē)嬖谳^多的匹配點(diǎn),錯(cuò)誤點(diǎn)周?chē)嗍清e(cuò)誤匹配點(diǎn)?;谶@一假設(shè),網(wǎng)格運(yùn)動(dòng)統(tǒng)計(jì)算法主要過(guò)程如下:
首先把匹配圖像劃分為多個(gè)網(wǎng)格,任意網(wǎng)格內(nèi)匹配點(diǎn)數(shù)為Si,Si服從二項(xiàng)分布可表示為:
(10)
式中,xi為網(wǎng)格內(nèi)匹配點(diǎn);K為匹配點(diǎn)xi周?chē)W(wǎng)格數(shù)量;n為網(wǎng)格內(nèi)匹配點(diǎn)數(shù)的數(shù)量;pt表示匹配點(diǎn)xi為正確匹配點(diǎn)的概率;pf表示匹配點(diǎn)xi為錯(cuò)誤匹配點(diǎn)的概率;T表示xi為正確匹配點(diǎn);F表示xi為錯(cuò)誤匹配點(diǎn)。
Si的分布如圖1所示,錯(cuò)誤匹配點(diǎn)與正確匹配點(diǎn)的Si分布是有很大差異的,通過(guò)設(shè)定閾值,可以借助Si的均值和方差區(qū)分正確和錯(cuò)誤匹配點(diǎn)。可把Si的均值和方差整合為P,通過(guò)設(shè)定不同的P可對(duì)粗匹配特征點(diǎn)篩選,則P可用公式寫(xiě)成:
圖1 Si的分布
(11)
為了增加內(nèi)點(diǎn)篩選算法的精度,將正確匹配點(diǎn)篩選問(wèn)題轉(zhuǎn)化為數(shù)值優(yōu)化問(wèn)題,即最優(yōu)化P。則對(duì)式(11)變換為:
(12)
式(12)表明最優(yōu)化函數(shù)P正比于網(wǎng)格數(shù)K和網(wǎng)格內(nèi)特征點(diǎn)數(shù)量。
可通過(guò)式(13)判斷當(dāng)前網(wǎng)格區(qū)域內(nèi)匹配點(diǎn)是否為正確匹配點(diǎn):
(13)
式中,Sij為網(wǎng)格區(qū)域{ik,jk}和該網(wǎng)格周?chē)藗€(gè)網(wǎng)格內(nèi)匹配點(diǎn)的總數(shù),如圖2所示;τi為閾值;α為常數(shù)因子;Ni為K個(gè)匹配網(wǎng)格區(qū)域的總特征數(shù)。
圖2 9個(gè)匹配網(wǎng)格區(qū)域
選擇兩組尺寸為1 024×588的航拍圖像作為實(shí)驗(yàn)圖像,如圖3所示;使用AKAZE+RANSAC算法、ORB+RANSAC算法與本文算法對(duì)比實(shí)驗(yàn)。統(tǒng)計(jì)匹配算法的耗時(shí),衡量不同算法的匹配效率、匹配點(diǎn)數(shù)、內(nèi)點(diǎn)數(shù)、內(nèi)點(diǎn)比例,衡量不同方法的優(yōu)劣。本文主要實(shí)驗(yàn)環(huán)境為:Inter(R) Core(TM) i7-8700 CPU,8 G-RAM,win10系統(tǒng)。
圖3 實(shí)驗(yàn)圖像
AKAZE+RANSAC算法、ORB+RANSAC算法與本文算法在圖3(a)匹配點(diǎn)數(shù)、內(nèi)點(diǎn)數(shù)和時(shí)間統(tǒng)計(jì)如表1所示。由表1可知,本文所提ORB+GMS算法得到內(nèi)點(diǎn)數(shù)最多,內(nèi)點(diǎn)比也是最高的,耗時(shí)最短。本文所提ORB+GMS算法與ORB+RANSAC算法相比,匹配點(diǎn)數(shù)相同,ORB+GMS算法的內(nèi)點(diǎn)數(shù)是ORB+RANSAC算法的二倍,耗時(shí)減少0.3 s。
表1 多種算法匹配數(shù)據(jù)統(tǒng)計(jì)
圖4為多種算法在道路航拍圖像匹配效果圖,圖中線條連接了一對(duì)匹配點(diǎn)。表1中AKAZE+RANSAC算法匹配點(diǎn)數(shù)最少,故在圖4(a)匹配效果圖上,連接線的數(shù)量最少。ORB_RANSAC算法匹配點(diǎn)數(shù)高于AKAZE+RANSAC算法,故在圖4(b)匹配效果圖中,連接線密度高于AKAZE+RANSAC算法;但該算法的內(nèi)點(diǎn)比較低,表明算法魯棒性較差。表1中,ORB+GMS算法內(nèi)點(diǎn)數(shù)最多,故匹配效果圖中連接線數(shù)量最多;ORB+GMS算法內(nèi)點(diǎn)比相較ORB+RANSAC算法提高13.04%,相較AKAZE+RANSAC算法提高8.29%,故ORB+GMS算法魯棒性最佳。
圖4 道路航拍圖像在多種算法匹配效果
上述三種算法在圖3(b)山野航拍圖像匹配數(shù)據(jù)統(tǒng)計(jì)如表2所示。由表2可知,AKAZE+RANSAC算法的匹配點(diǎn)數(shù)和內(nèi)點(diǎn)數(shù)都是最少,而內(nèi)點(diǎn)比AKAZE+RANSAC算法優(yōu)于ORB+RANSAC算法。本文所提ORB+GMS算法的內(nèi)點(diǎn)數(shù)遠(yuǎn)超過(guò)AKAZE+RANSAC和ORB+RANSAC算法,內(nèi)點(diǎn)比也遠(yuǎn)超另外兩種算法。與ORB+RANSAC算法相比,所提算法耗時(shí)減少0.24 s,與AKAZE+RANSAC算法相比效率提高60%左右。
表2 多種算法匹配數(shù)據(jù)統(tǒng)計(jì)
山野航拍匹配效果如圖5所示,表2中,AKAZE+RANSAC算法內(nèi)點(diǎn)數(shù)量最少,故5(a)匹配效果圖連接線數(shù)量最少;該算法內(nèi)點(diǎn)比高于ORB+RANSAC算法,由此知AKAZE+RANSAC算法魯棒性較好。ORB+RANSAC算法匹配點(diǎn)數(shù)較多,但保留的內(nèi)點(diǎn)數(shù)較少,故在5(b)匹配效果圖中連接線數(shù)量較少。ORB_GMS算法匹配點(diǎn)數(shù)和ORB+RANSAC算法相同,但保留內(nèi)點(diǎn)數(shù)遠(yuǎn)遠(yuǎn)大于ORB+RANSAC算法,內(nèi)點(diǎn)比相較ORB+RANSAC算法提高了9.77%,故ORB_GMS算法穩(wěn)定性最好,圖5(c)匹配效果圖中連接線數(shù)量最多。
圖5 山野航拍圖像在多種算法匹配效果
綜合道路和山野航拍圖像實(shí)驗(yàn)效果,可知ORB+RANSAC算法魯棒性最差,平均內(nèi)點(diǎn)比僅為7.9%;AKAZE+RANSAC算法魯棒性次之,平均內(nèi)點(diǎn)比為11.4%;ORB+GMS算法穩(wěn)定性最佳,平均內(nèi)點(diǎn)比為19.3%,相較ORB+RANSAC算法、AKAZE+RANSAC算法分別提高了11.4%、7.9%。由表1和表2匹配時(shí)間知,AKAZE+RANSAC算法效率最低,ORB+RANSAC算法次之,ORB+GMS算法效率最高。
航拍圖像匹配是地圖建立、目標(biāo)檢測(cè)、三維重建的重要組成部分,為了更高效、更穩(wěn)定地得到成對(duì)匹配點(diǎn),本文提出使用ORB+GMS算法完成航拍圖像匹配。使用AKAZE+RANSAC算法、ORB+RANSAC算法和ORB+GMS算法在具有代表性的道路和山野航拍圖像上對(duì)比實(shí)驗(yàn),可知ORB+GMS算法穩(wěn)定性最好、效率最高。由此驗(yàn)證,對(duì)特征點(diǎn)質(zhì)量和算法效率要求較高的航拍場(chǎng)景,ORB+GMS算法可很好地應(yīng)用。