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