岳港琳,雷志勇
(西安工業(yè)大學(xué)電子信息工程學(xué)院,西安 710021)
在靶場測試中,炸點坐標(biāo)測量對于射擊偏差校正[1]具有非常重要的意義。通過雙相機(jī)交匯測量炸點的坐標(biāo)中,雙目匹配[2]的精度直接影響到炸點定位的準(zhǔn)確性。
基于圖像特征[3]的匹配方法考慮了點、線、面等圖像特征,由于該方法計算量較小,并且對形變、灰度變化和遮擋具有很好的魯棒性,因此近年來成為圖像匹配的研究熱點問題。SIFT[4]算法2004 年正式被Lowe 提出,該算法通過引入拉普拉斯算子[5]提取尺度和旋轉(zhuǎn)不變的特征,對透視、噪聲的變化和仿射變換在一定程度上保持了穩(wěn)定性,實現(xiàn)圖像的自動匹配。對于有豐富紋理信息的圖像,文獻(xiàn)[6]提出一種只提取圖像的灰度值,并且沒有尺度等較復(fù)雜運(yùn)算的更實時的快速檢測特征點的算法,因此該算法運(yùn)行速度非常快,但此算法也存在一定缺陷,如初始匹配時會出現(xiàn)錯誤的匹配點,導(dǎo)致后續(xù)出現(xiàn)物體識別有誤或目標(biāo)跟蹤丟失等問題,因此對誤匹配點進(jìn)行剔除尤為重要。對誤匹配點進(jìn)行消除的方法主要包括:NNDR、RANSAC、Hough聚類等[7]。
在現(xiàn)研究基礎(chǔ)上,通過FAST 進(jìn)行特征點檢測,SURF 進(jìn)行特征描述后,采用自適應(yīng)閾值RANSAC 算法消除匹配結(jié)果中錯誤匹配點,提高匹配的準(zhǔn)確率。
圖像特征匹配包括四個方面:檢測特征點、特征點描述、對特征點進(jìn)行匹配和消除誤匹配點。本文提出的匹配算法實現(xiàn)過程如圖1所示。
圖1 圖像匹配算法流程
FAST 檢測特征點的核心是確定給定像素為中心的圓上是否有足夠數(shù)量的連續(xù)像素的灰度值大于(小于)該像素點灰度值。如果存在,則表明該像素點是被檢測出的特征點,否則作為一個非特征點剔除。主要步驟如下:
(1)選擇一個像素p,將其亮度設(shè)置為Ip,亮度閾值為T;
(2)以像素p為中心,在半徑r=3的圓上選取16個像素點;
(3)假如選取的圓上有連續(xù)的N個點的像素灰度值大于(Ip+T)或小于(Ip-T),那么像素p就被認(rèn)為是特征點;
(4)重復(fù)以上三個步驟,對每個像素進(jìn)行同樣的操作;
(5)采用計算角點響應(yīng)函數(shù)的方法,剔除非角點。計算公式見式(1)。
式(1)中,V是角點與其相鄰16 個點之間的灰度差值的絕對值之和,Ip是像素p的亮度值,T是像素p的亮度閾值,x為圓上16 個像素點的位置,Sbright,Sdark分別是16 個鄰域像素點中灰度值大于(Ip+T)或灰度值小于(Ip-T)的像素點的集合。
1.2.1 主方向確定
SURF 算法以檢測到的特征點為中心,半徑為6 s(s 為尺度)來構(gòu)建圓形區(qū)域,目的是確定唯一的方向,實現(xiàn)圖像的旋轉(zhuǎn)不變性。在π/3的滑動窗口中,利用Harr 小波響應(yīng),求出各特征點x、y軸的dx,dy之和,得到一個局部方向向量,求出所有窗口上的最大方向向量,即該特征點的主方向。
1.2.2 生成特征點描述子
SURF 算法是利用特征點周圍的正方形區(qū)域來構(gòu)建描述符的,并將其分為4 × 4 個子區(qū)域,以保存部分空間信息。在每個子區(qū)域中,有5 s×5 s 個像素點,分別求出各子區(qū)域內(nèi)的所有像素點的水平Haar小波響應(yīng)dx和垂直Haar小波響應(yīng)dy,然后將Haar 小波響應(yīng)dx,dy加到高斯權(quán)重中(σ=3.3 s),再求出各子區(qū)域的dx,dy,| dx|,| dy|之和,由此得到對應(yīng)的四維向量,從而得到一個64 維的SURF 特征向量,即描述子。
1.3.1 雙向FLANN匹配
FLANN 匹配算法的核心是要計算出兩特征點之間的歐氏距離,根據(jù)距離這一特征點的最近歐氏距離和次近歐氏距離之比是否小于設(shè)定的閾值T來判斷特征點是否匹配。
本文采用雙向FLANN 匹配方法以消耗少量時間來提高匹配精度。該算法對于要匹配的兩幅圖像I1和I2,找出I1與I2之間歐氏距離最近和次近的2個點,計算最近歐氏距離和次近歐式距離之間的比值并與閾值T進(jìn)行比較來判斷特征點是否匹配,閾值T為0.5,得到I1到I2的匹配點集合A。再對圖I2進(jìn)行相同操作,得到I2到I1的匹配點集合B,取A與B中完全相同的匹配點對作為集合C,從而得到初始匹配點集合。
1.3.2 自適應(yīng)閾值RANSAC算法
通過雙向FLANN 匹配可以去除一部分多對一的錯誤匹配對,但仍然存在著少量的錯誤匹配。傳統(tǒng)的RANSAC 算法基本思想是從粗匹配結(jié)果中隨機(jī)選出一組最小的數(shù)據(jù)集,估計出模型,然后將數(shù)據(jù)集中未選到的數(shù)據(jù)代入模型,根據(jù)設(shè)定好的閾值,將最新得到的模型與先前最好的模型的內(nèi)點數(shù)做比較,分別記錄最大模型的內(nèi)點及內(nèi)點數(shù),迭代該過程,最終內(nèi)點占比例最大的模型就是待求的模型。RANSAC 算法具有很好的魯棒性,但是使用時它的閾值設(shè)置往往需要根據(jù)經(jīng)驗來判斷,不同的場景設(shè)定的閾值不同,結(jié)果往往不具有通用性。因此,為解決傳統(tǒng)RANSAC 算法在消除誤匹配點對時的不足,本文提出自適應(yīng)閾值RANSAC 算法。在該算法中,閾值的取值基于匹配點與其變換模型之間距離的平均值。
具體步驟如下:
(1)從粗匹配點對中隨機(jī)選取非線性點對4組,組成集合N;
(2)根據(jù)集合N計算出單應(yīng)性矩陣H,記為模型Q;
(3)計算出匹配點與其對應(yīng)模型之間的距離,再對得到的距離求得其均值,設(shè)為閾值T,匹配點與其變換模型之間距離l及距離的均值ml通過下式進(jìn)行計算:
式中,n是匹配點對的數(shù)量,Pi是對應(yīng)圖像中第i個匹配點,Hi是第i個匹配點對應(yīng)的單應(yīng)性矩陣,‖ .‖2是計算歐幾里得范數(shù)。
(4)在匹配點數(shù)據(jù)集中計算出模型Q與所有點之間的距離,若小于設(shè)定閾值,則將其添加到內(nèi)點集P中;
(5)若內(nèi)點集的個數(shù)大于當(dāng)前最優(yōu)內(nèi)點數(shù),則更新最優(yōu)內(nèi)點集,反之,則不更新;
(6)迭代總次數(shù)由當(dāng)前最優(yōu)內(nèi)點數(shù)進(jìn)行更新,若當(dāng)前迭代次數(shù)小于總迭代次數(shù),則返回步驟(1);反之,則當(dāng)前模型Q就是最終要求得的模型。
為了驗證算法的有效性,采用燈光模擬炸點并對圖像進(jìn)行處理,從特征點提取數(shù)量和時間,匹配正確率(CMR)和匹配時間三個方面進(jìn)行算法的評價。
圖2 炸點雙目圖像
在不同算法中得到的特征點數(shù)量和時間結(jié)果如表1所示。
表1 不同算法下的特征點數(shù)量和時間
由表1 可知,對于相同的圖片,與SURF 算法相比,F(xiàn)AST 算法檢測出的特征點數(shù)量較少,但是它具有檢測速度快、時間短的優(yōu)點。
該實驗的目的是驗證文中所提匹配算法相對于SIFT、SURF 匹配算法的優(yōu)點,匹配結(jié)果如圖3、表2所示。
表2 不同算法下的匹配結(jié)果和時間
圖3 三組匹配結(jié)果
匹配正確率(CMR)計算公式如式(4),CMR值越大,匹配效果越好。
式中Pc是正確匹配的特征點數(shù)量,P是匹配到的數(shù)量。
本文提出的改進(jìn)算法與SIFT 算法和SURF算法進(jìn)行比較,通過對兩組實驗數(shù)據(jù)的比較可以看出,所提出的算法在保證正確率的前提下,具有匹配效率高的優(yōu)點。
在目前圖像匹配研究的基礎(chǔ)上,提出一種新的基于FAST 和改進(jìn)的RANSAC 的圖像匹配算法。首先利用FAST 提取出角點,再利用SURF確定特征向量主方向,接著使用雙向FLANN 完成特征點粗匹配,根據(jù)匹配的結(jié)果計算出每個特征點與其變換模型之間的距離的平均值來作為RANSAC 消除誤匹配的閾值,進(jìn)而加快算法運(yùn)行的速度。通過實驗結(jié)果可以看出,與傳統(tǒng)的SIFT、SURF 對比,所提算法對圖像匹配的準(zhǔn)確率和效率均有所提高。