趙柏山 張 楠
(沈陽工業(yè)大學信息科學與工程學院 沈陽 110870)
圖像匹配是指通過提取圖像中比較顯著的點形成數(shù)據(jù)信息,然后與其他圖像的信息進行比對從而找到兩幅或多幅圖像的相關性。目前,在各領域中廣泛使用基于互信息的圖像配準,且出現(xiàn)了較多的優(yōu)化算法[1]。在圖像匹配方法中基于特征點的方法更受歡迎,因其在圖像旋轉(zhuǎn)和光照變化等方面的匹配性能更好。基于特征的影像匹配算法主要是提取圖像的局部不變特征,如點特征、線特征等。其中,基于點特征的影像匹配算法以其穩(wěn)定高效的優(yōu)點而受到研究者的青睞?;邳c特征的影像匹配算法由特征點提取、特征點描述以及特征點匹配三個步驟組成。
傳統(tǒng)的特征匹配算法[2~5],因利用高斯濾波來消除噪聲,會導致圖像邊界模糊和細節(jié)丟失[6]。為了解決這個問題,KAZE算法[7]采用基于非線性尺度空間的方法,即加性算子分裂(AOS)[8]算法來構(gòu)造尺度空間,在非線性尺度空間完成特征點的檢測。但該算法實現(xiàn)復雜,因此,提出了AKAZE算法[9~11],該算法在匹配精度和運算復雜度上都較KAZE算法有所優(yōu)化。盡管如此,仍提高得不夠理想。故此提出一種改進算法,利用FAST算法的高效提取對AKAZE算法的特征提取部分進行改善,使得算法在匹配速度及一些變換圖像的魯棒性方面[12~13]有進一步的提高。通過實驗結(jié)果表明新算法的配準效果良好。
AKAZE算法雖然利用了二進制描述符,但由于特征點檢測部分是用非線性濾波來構(gòu)造尺度空間,因此匹配速度較慢。為提高匹配速度,現(xiàn)將ORB特征點檢測與AKAZE算法的M-LDB描述符相結(jié)合,來實現(xiàn)圖像特征匹配。
特征點檢測部分使用改進的FAST算法[14],即拿一個點跟它周圍的點比較,如果它和周圍大部分的點都不一樣就可以認為它是一個特征點。
首先定義一個閾值t,然后計算周圍像素點與中心像素點的灰度差的絕對值,如果16個像素點中有N個點的絕對值大于等于t,則判定該檢測點為特征點。為加快判定過程,先計算序號為1,5,9,13這4個像素點,其中至少有3個滿足條件才進一步判斷其它的像素點,否則丟棄P點。判定公式如下:
其中,I表示灰度值,N一般取9或者12。使用FAST算法找到的特征點如圖1。
圖1 FAST算法找到的特征點
為了彌補FAST算法的方向敏感性問題,ORB算法采用oFAST算法,即給FAST特征添加上方向信息。特征點方向的確定是在特征點鄰域內(nèi)找到特征點到質(zhì)心的矢量方向以此方向來定義特征點的方向,鄰域矩的公式可表示為
其中,S表示待測特征點的鄰域,I表示灰度值。鄰域的質(zhì)心坐標可為
其中,m00,m01和m10分別為式(3)中p、q取值為0或1時的值。此時,可得到特征點的方向為
改進算法的特征點描述與匹配使用的是AKAZE算法的M-LDB[15]描述法。以任意給出的某圖像為例,M-LDB描述符是根據(jù)特征點主方向,將LDB所劃分的網(wǎng)格單元做相應旋轉(zhuǎn)使其旋轉(zhuǎn)到主方向上,然后計算每個網(wǎng)格的平均強度和梯度,各公式如下:
式中,m為網(wǎng)格i的總數(shù),Iavg(i)為各網(wǎng)格單元的平均強度,dx(i)和dy(i)分別為網(wǎng)格i區(qū)域的x和y方向的梯度。然后,LDB分別比較成對網(wǎng)格單元之間的平均強度和梯度,根據(jù)比較結(jié)果,相應地設為0或者1。其公式如下:
對M-LDB算子生成的結(jié)果進行漢明距離匹配,生成匹配結(jié)果。用RANSAC[16~17]算法對匹配結(jié)果進行篩選,得到準確率較高的匹配圖像。
對不同模糊程度圖像(blurbikes)、不同程度的JPEG壓縮圖像(JPEGubc)、不同光照強度圖像(light.Leuven)、不同旋轉(zhuǎn)角度的圖像(viewpoint.graf)分別選取四張圖片組成實驗數(shù)據(jù),通過第一張圖片與其后的三張圖片匹配得出匹配結(jié)果,把它們定義為第1~3組,對比它們的匹配時間與正確率。其中匹配時間是通過取30次匹配時間的平均值得出的,匹配正確率是取30次匹配正確率的平均值得出的。
實驗中,所用的電腦為Windows7系統(tǒng),64位的操作系統(tǒng),并使用Visual Stdio 2017進行實驗。
不同模糊程度的圖像如圖2所示,將后三幅圖片分別與第一幅圖進行匹配,記錄不同算法所用的匹配時間及正確率。圖2(a)與圖2(d)在改進算法下的匹配結(jié)果如圖3。
圖2 不同模糊程度的圖像
圖3 改進算法的匹配結(jié)果
不同模糊程度的圖像的匹配時間與正確率的對比情況見表1(表中單位為百分比和微秒(ms))。
表1 不同模糊程度圖像匹配時間與正確率
從表1可以看出,對于不同模糊程度的圖像在匹配速度方面,本算法比AKAZE算法的匹配速度快了近4倍;在匹配準確率方面,比ORB算法準確率高,比AKAZE算法略低。
對原圖片進行不同程度的JPEG壓縮后如圖4所示與原圖像圖4(a)進行匹配,改進算法的匹配結(jié)果如圖5。匹配時間與正確率對比情況見表2。
圖4 不同程度的JPEG壓縮圖像
圖5 改進算法的匹配結(jié)果
表2 不同JPEG壓縮圖像的匹配時間與正確率
從表2可以看出,在不同程度的壓縮圖像在匹配速度方面,本算法比AKAZE的匹配速度平均快了兩倍多;在匹配準確率方面,本算法比ORB算法和AKAZE算法都要高。
不同光照強度圖像如圖6所示,圖6(a)與圖6(d)在改進算法下的匹配結(jié)果如圖7。相應的匹配時間與匹配正確率對比情況見表3。
圖6 不同光照強度圖像
圖7 改進算法的匹配結(jié)果
表3 不同光照強度圖像的匹配時間與正確率
從表3可以看出,在不同光照強度時,匹配速度方面,本算法比AKAZE算法快了近五倍;在匹配正確率方面,本算法在光照強度變化較小時,比ORB算法和AKAZE算法都高,但是在光照較暗時,正確率還有待提高。
不同旋轉(zhuǎn)角度的圖像如圖8,圖8(a)與圖8(d)在改進算法下的匹配結(jié)果如圖9。匹配的時間與正確率對比情況見表4。
圖8 不同選轉(zhuǎn)角度圖像
圖9 改進算法的匹配結(jié)果
表4 不同旋轉(zhuǎn)角度圖像的匹配時間與正確率
從表4可以看出,在圖像的旋轉(zhuǎn)角度變化中,在匹配速度方面,本算法比AKAZE算法快了五倍多;在匹配正確率方面,本算法在角度變化較小時,比ORB算法和AKAZE算法都高,但是在角度變化較大時,比ORB算法高比,AKAZE算法低,正確率還有待提高。
文中提出的改進算法是將ORB算法與AKAZE算法相結(jié)合,采用ORB的FAST角點檢測,提高了特征點檢測速度。采用AKAZE的特征點描述部分保留了其魯棒性強的特點,匹配時使用漢明距離,速度比歐式距離快。由此可見,兩者結(jié)合后,算法的匹配速度比AKAZE算法提高很多。在不同JPEG壓縮的圖像、不同的光照強度圖像匹配中,改進后的算法的匹配精度也比ORB算法與AKAZE算法更高。目前還存在著在不同模糊程度、不同旋轉(zhuǎn)角度時匹配精度較AKAZE算法差的問題,對此如何解決,也將成為后續(xù)研究的重點。