鄧仕雄,劉繼庚,林國敏,鄒 宇,汪 興
(貴州水利水電職業(yè)技術(shù)學(xué)院,貴州 貴陽 551416)
特征匹配(feature match)是計算機視覺中應(yīng)用的基礎(chǔ),廣泛運用在運動結(jié)構(gòu)、圖像檢索、目標(biāo)檢測、圖像配準(zhǔn)、攝像機跟蹤,三維重建,人臉識別等領(lǐng)域,對其深入研究有著重要實際應(yīng)用價值[1]。特征提取和匹配由關(guān)鍵點檢測,關(guān)鍵點特征描述和關(guān)鍵點匹配三個步驟組成,其本質(zhì)是在不同的圖像上通過算法實現(xiàn)同名點的提取,其中基于圖像局部特征的匹配較為常見,常見特征匹配按照描述符分為二進制描述符及非二進制描述符。SIFT(scale invariant feature transform)[2,3]特征點檢測匹配算法是在空間尺度中尋找極值點,并提取出其位置、尺度、旋轉(zhuǎn)不變量,其對旋轉(zhuǎn)、尺度縮放、亮度變化保持不變性,對視角變化、仿射變換、噪聲也保持一定程度的穩(wěn)定性,但該算法時間復(fù)雜度較高,實時效果不佳。SURF(speed up robust features)[4]加速版特征算法是由Bay在2006年首次提出,該算法采用了Haar特征以及積分圖像的概念,加速了程序的運行時間。AKAZE[5]特征算法是SIFT特征算法的一種改進,因高斯模糊具有丟失邊緣信息的缺點,進而采用非線性擴散濾波來構(gòu)建尺度空間,從而保留圖像更多的邊緣特征。BRISK(binary robust invariant scalable keypoints)[6]是BRIEF[7]算法的一種改進,具有尺度不變性和旋轉(zhuǎn)不變性,其主要利用FAST(features from accelerated segment test)[8]算法進行特征點檢測,為了滿足尺度不變性,BRISK構(gòu)造圖像金字塔在多尺度空間檢測特征點。ORB(oriented fast and rotated brief)[9]是一種快速特征點提取和描述的算法,將FAST特征點的檢測方法與BRIEF特征描述符結(jié)合起來,并做了改進與優(yōu)化。
國內(nèi)眾多學(xué)者也做了相關(guān)研究,如甘小紅等人[10]針對性地提出了特征描述符降維處理和匹配優(yōu)化解決方案,提出了一種基于SIFT的改進優(yōu)化特征匹配算法,得到一種能滿足更高實時性和精確性需求的特征匹配算法。為解決特征點匹配的質(zhì)量與計算效率不能兼得的問題,寧小娟等人[11]研究了一種基于最佳幾何約束和RANSAC(random sample consensus)[12]的特征點匹配方法。何志偉等人[13]針對山區(qū)地形起伏大,局部存在陰影,通過改進算法得出較好的匹配效果。本研究針對無人機影像局部區(qū)域特征點探測難度大及探測的特征點全局性較差,通過改進算法得到較好的無人機影像匹配結(jié)果,試驗證明了該算法的可靠性。
ORB是一種快速特征點提取和描述的算法,采用FAST算法來檢測特征點及BRIEF算法進行特征描述。其核心思想是利用一個點跟其周圍的點比較,如果該點與大部分的點都不一樣則認(rèn)為它是一個特征點。如圖1所示,圖中每個小方格代表一個像素,方格內(nèi)的顏色只是為了便于區(qū)分,不代表該像素點的顏色。具體步驟如下:
圖1 FAST算法探測特征點示意圖
Step1:確定候選角點。選擇某個像素q,其像素值為Iq,以q為圓心,半徑為3,確立一個圓,圓上有16個像素,分別為p1,p2,…,p16。確定閾值t,利用圓上的像素值分別與q的像素值做差,如果存在連續(xù)n個點滿足Ix-Ip>t或Ix-Ip<-t(其中Ix代表此圓上16個像素中一個點),則該點為一個候選點。
Step2:非極大值抑制。為了去除彼此相鄰部分的候選角點,可以采用非最大值抑制的算法:假設(shè)P,Q兩個點相鄰,分別計算兩個點與其周圍的16個像素點之間的差分和為W。去除W值較小的點,即把非最大的角點抑制掉。
Step3:BRIEF特征描述。該描述符以特征點為中心,取大小為S×S的區(qū)域p,區(qū)域的四條邊分別都與坐標(biāo)軸垂直或平行,如圖2所示。
圖2 特征點中心S×S區(qū)域
采用方差為σ,卷積核大小為N×N的高斯濾波器對區(qū)域p每一點進行高斯平滑處理并計算τ。
(1)
式中,p(x)為經(jīng)過高斯平滑后x(u,v)處的像素強度,p(y)為經(jīng)過高斯平滑后y(u,v)處的像素強度,x,y點對隨機選擇。最后計算nd維的位字符串,即特征點描述符,公式(2)中,nd為點對數(shù)(描述符位數(shù)),一般取128 256 512。
(2)
(3)
式中,hk(z)=hk(z,f,T),依賴于特征提取函數(shù)f:X→R和一個閾值T給定f和T,通過T和f(x)來定義weak learner。
(4)
1.2.1 閾值平均盒弱學(xué)習(xí)者
效率的關(guān)鍵是選擇一個f(x),它既具有判別性,又能快速計算。定義特征提取函數(shù)f(x)如公式(5)。
(5)
式中,I(t)為像素t的灰度值,R(p,s)為大小的正方形盒子集中在帶有尺寸s的像素p。因此,f計算像素的平均灰度值之間的差異(p1,s)和R(p2,s)。圖3中的紅色和藍色方塊代表(p2,s)和R(p1,s),為加快f的計算,使用積分圖像的輸入圖像。一旦s可用,方框中的灰度和可以通過4次內(nèi)存訪問和4次算術(shù)運算來計算。描述符提取工作流程如下:為了描述圖像塊,BEBLID有效地計算左側(cè)紅藍框中像素的平均灰度值,對于每對紅藍框(弱學(xué)習(xí)者),從藍框平均值中減去紅框平均灰度值,獲得f(x),對這些值應(yīng)用一組閾值得到h(x),最后乘以矩陣B,以產(chǎn)生描述符D(x)。
圖3 描述符提取工作流程
1.2.2 優(yōu)化弱學(xué)習(xí)者權(quán)值
BoostedSCC算法選擇k個弱學(xué)習(xí)者及其相應(yīng)的權(quán)值。公式(6)中BoostedSCC優(yōu)化的損耗函數(shù)可以看作是一種度量學(xué)習(xí)方法,其中度量矩陣A是對角的。
(6)
通過對特征s(x,y)=h(x)TAh(y)之間的相關(guān)性進行建模,估計整個矩陣A可以改善相似函數(shù)。FP-Boost估計最小值如下:
(7)
采用隨機梯度下降法估計對稱的a和hi(x)是一項困難的工作。因此,該算法從k個弱學(xué)習(xí)器和由BoostedSCC找到的a開始。第二個學(xué)習(xí)步驟非常快,因為所有弱學(xué)習(xí)者的反應(yīng)都可以預(yù)先計算出來,在未優(yōu)化的描述符的情況下,必須分解相似函數(shù)s(x,y)來計算x和y的獨立描述符。假設(shè)A是一個對稱矩陣,可以使用它的特征分解來選擇特征值最大的D個特征向量。
局部圖像特征描述的核心問題是不變性(魯棒性)和可區(qū)分性,ORB算法中BRIEF描述符優(yōu)點在于速度快,但該描述符不具旋轉(zhuǎn)不變性、尺度不變性及對噪聲敏感等問題。根據(jù)前文ORB/BEBLID特征點探測及描述符詳細(xì)過程,構(gòu)建ORB+BEBLID特征匹配算法,即采用ORB特征點探測結(jié)合BEBLID描述符進行匹配,通過引入FLANN算法進行粗匹配,并采用RANSAC隨機抽樣一致性算法剔除誤匹配,實現(xiàn)精匹配。
1.3.1 RANSAC算法精匹配
Opencv計算機視覺庫中,特征匹配剔除誤匹配常采用RANSAC隨機抽樣一致性算法尋找一個最佳單應(yīng)性矩陣H,矩陣大小為3×3。RANSAC目的是找到最優(yōu)的參數(shù)矩陣使得滿足該矩陣的數(shù)據(jù)點個數(shù)最多,通常令h33=1來歸一化矩陣。由于單應(yīng)性矩陣有8個未知參數(shù),至少需要8個線性方程求解,一組特征點點對可以列出兩個方程,則至少包含4組匹配點對,如公式(8)。
(8)
式中:(x,y)為影像角點位置,(x′,y′)為場景影像角點位置,s為尺度參數(shù)。
精匹配步驟如下:
Step1:隨機從數(shù)據(jù)集中隨機抽出不共線的4個樣本數(shù)據(jù),計算出變換矩陣H,記為模型M。
Step2:計算數(shù)據(jù)集中所有數(shù)據(jù)與模型M的投影誤差,若誤差小于閾值λ,加入內(nèi)點集I,如公式(9)。
(9)
Step3:如果當(dāng)前內(nèi)點集元素個數(shù)大于最優(yōu)內(nèi)點集i·best,則更新i·best=i,同時更新迭代次數(shù)k,如公式(10)。
k=log(1-p)/log(1-wm)
(10)
式(10)中,p為置信度,w為“內(nèi)點”的比例,m為計算模型所需要的最少樣本數(shù),取p=0.995,m=4。
Step4:當(dāng)?shù)螖?shù)大于k,則退出,反之迭代次數(shù)加1,即迭代次數(shù)k在不大于最大迭代次數(shù)的情況下,重復(fù)上述步驟。
1.3.2 試驗評價標(biāo)準(zhǔn)
采用正確匹配數(shù)、匹配耗時、正確匹配率來評價算法的優(yōu)越性。
為了驗證改進后算法的效果,分別對兩組無人機影像對進行對比分析試驗,兩組影像大小為700×900。試驗運行環(huán)境為Intel(R) Core(TM) i5-2430MCPU@2.40 GHz,運行內(nèi)存8 GB的筆記本電腦,基于VS2017的OpenCV4.5.1計算機視覺庫作為數(shù)據(jù)處理平臺。
選取大疆精靈4RTK及中海達iFlyD7無人機采集的無人機影像,包含建筑物、溝壑縱橫的山區(qū)及含水域的兩組數(shù)據(jù),如圖4所示。由圖4可知,影像對(a)為某山區(qū),地形起伏較大,特征信息不豐富,影像質(zhì)量不高,局部區(qū)域特征點探測難度大。影像對(b)含有水域、植被及建筑物等地理信息,信息豐富,特征點探測相對容易。其中,不同算法處理兩組影像對試驗結(jié)果如圖5所示。
圖4 特征匹配影像對
圖5 不同算法處理兩組影像對試驗結(jié)果
根據(jù)試驗方案進行幾種算法特征精匹配,根據(jù)試驗結(jié)果,統(tǒng)計各算法探測影像對特征點數(shù)量、正確匹配數(shù)、耗時及匹配率,見表1。從圖5可知,經(jīng)過剔除誤匹配后,AKAZE算法匹配率較低,影像對特征點數(shù)量較少,基于ORB算法的影像對特征點數(shù)量較多。其中影像對(a)組由于影像地形起伏較大,特征信息不豐富,特征點探測比較困難,正確匹配數(shù)由少到多依次為AKAZE算法、SIFT算法、ORB算法、本文算法、SURF算法。影像對(b)組影像由于地理信息豐富,特征點探測相對容易,正確匹配數(shù)由少到多依次為AKAZE算法、SURF算法、SIFT算法、ORB算法、本文算法。
表1 匹配試驗結(jié)果
從耗時方面來看,由于AKAZE算法特征點較少導(dǎo)致匹配耗時較低,SIFT算法時間復(fù)雜度較高。匹配率方面AKAZE算法匹配率較低,SIFT算法及SURF算法匹配率相當(dāng),在保證特征點數(shù)量較多的前提下,本文算法在兩組數(shù)據(jù)中的匹配率分別為81.97%、89.72%,相比ORB算法分別提高13.60%、9.90%。其中圖5中AKAZE、SURF及SIFT算法紅色代表正確匹配,ORB算法、本文算法匹配效果綠色代表正確匹配。
針對無人機影像局部區(qū)域特征點探測難度大,導(dǎo)致無人機影像匹配效果不佳等問題。通過引入BEBLID算法構(gòu)建高效的二值描述符,并與幾種常規(guī)算法在影像對探測特征點數(shù)量、正確匹配數(shù)、耗時及匹配率等方面進行了對比分析,驗證了該算法在無人機影像匹配方面的有效性,在保障較好匹配魯棒性的基礎(chǔ)上,同時能夠保持較高的穩(wěn)定性,可以滿足無人機航拍圖像快速匹配需求。試驗證明該算法的特征匹配點對冗余度低、全局性優(yōu)。