王紅君, 劉一鳴, 岳有軍, 趙 輝,2
(1.天津理工大學(xué)電氣電子工程學(xué)院,天津 300384;2.天津農(nóng)學(xué)院工程技術(shù)學(xué)院,天津 300384)
近年來,隨著數(shù)字圖像處理技術(shù)和無人機(jī)遙感技術(shù)的快速發(fā)展和日趨成熟,無人機(jī)航空遙感系統(tǒng)在眾多領(lǐng)域都得到廣泛應(yīng)用,憑借其靈活且方便操作的特點,在諸多人力不方便作業(yè)的區(qū)域有著難以替代的作用[1]。然而在應(yīng)用過程中,無人機(jī)航拍圖像往往尺寸過大,導(dǎo)致了在特征匹配環(huán)節(jié)存在速度過慢的問題;而且由于圖像分辨率過高,傳統(tǒng)算法在匹配特征點時,誤匹配率也比較高。因此,如何快速準(zhǔn)確地匹配圖像特征點成為無人機(jī)遙感圖像拼接的熱點話題。
圖像拼接技術(shù)問世到現(xiàn)在,已經(jīng)出現(xiàn)了很多種圖像拼接算法,其中最主流的算法是特征點提取算法。常見的特征點提取算法有SIFT(scale-invariant feature transform)、SURF(speed-up robust features)與ORB(oriented FAST and rotated BRIEF)算法等。中國方面,曾海長等[2]在ORB算法中引入Hessian檢測算子,用來解決ORB尺度不變性較差的問題,但是這種算法在拼接中容易出現(xiàn)特征點誤匹配的問題;禹鑫燚等[3]針對圖像拼接中的重疊區(qū)域某些圖像局部特征信息容易丟失的問題, 對圖像特征點進(jìn)行了四叉樹劃分,增加了邊緣檢測的能力,然而這種改進(jìn)不適用于色差變化較小的地帶,而無人機(jī)會在任何場景作業(yè),因此這種改進(jìn)的ORB算法并不適用于無人機(jī)圖像拼接。而在國外方面,F(xiàn)athima等[4]提出一種結(jié)合SIFT特征的不變矩圖像拼接方法,來減少計算復(fù)雜度,但是拼接結(jié)果產(chǎn)生的裂縫較為明顯;Aghamohamadnia等[5]將一些假設(shè)的交叉條紋縫線的平均像素值代入算法中,在一定程度上改善了圖像拼接中的重影問題,但是拼接的速率緩慢。
提出一種改進(jìn)ORB算法的無人機(jī)遙感圖像拼接算法。在特征檢測階段使用FAST算法對Shi-Tomasi算法[6]進(jìn)行加速,這樣一來可以在保證特征檢測穩(wěn)定性強和抗干擾能力好的基礎(chǔ)上,大大提升特征檢測的速度;之后再用ORB算法對檢測到的特征點進(jìn)行特征描述,使其具有旋轉(zhuǎn)不變性;最后使用改進(jìn)的SPHP(shap-preserving half-projective)算法[7]進(jìn)行圖像融合,降低圖像重疊區(qū)域的重影。最終得到更好的圖像拼接質(zhì)量和速度。
ORB特征是將FAST(features from accelerated segment test)特征檢測算法與BRIEF(binary robust independent elementary features)特征描述子結(jié)合起來[8]。FAST算法雖然是當(dāng)今特征檢測速度最快的算法之一,但是它的尺度不變性較差和旋轉(zhuǎn)不變性較差,而Shi-Tomasi角點檢測需要對整幅圖像的特征點矩陣的特征值進(jìn)行計算,因此雖然特征提取的準(zhǔn)確性較高,但是速度較慢,為了獲得效率更高的特征提取方法,可以先用FAST算法對整幅圖像的特征點進(jìn)行初步篩選[9],再將篩選后得到的點用Shi-Tomasi算法處理。
(1)首先,定義一個閾值,并在圖像中任取一點p,設(shè)該點為圖像的像素中心點,以p為圓心,r為半徑畫圓,r=3,在圓周上取p1~p16個像素點,如圖1所示。
(2)測量圓周上、下、左、右四個點到像素中心點p的像素差,將得到的像素差取絕對值并與(1)中定義的閾值作比較,如果像素差的絕對值中有3個或以上大于閾值,則p為候選點。
(3)計算所有像素點到像素中心p的像素差,將得到的像素差取絕對值并再次與(1)中定義的閾值作比較,如果像素差的絕對值中有連續(xù)9個或以上大于閾值,則p為特征點。
(4)選取特征點p為中心的一個鄰域,使用上述方法計算該鄰域內(nèi)有無特征點,并判斷p是否為該鄰域內(nèi)響應(yīng)值最大的特征點,若是,則保留特征點p。若在該鄰域內(nèi)測算到只包含唯一的特征點p,則直接保留p。計算最大響應(yīng)的方法如式(1)所示:
(1)
式(1)中:V為最大響應(yīng);t為閾值。
圖1 FAST特征
Shi-Tomasi算法是Harris角點檢測算法的一種改進(jìn)算法。角點為局部圖像中灰度變化最大的點。設(shè)灰度圖像在某一點(x,y)處的灰度為I(x,y),以該點為中心的矩形窗口W在任意方向平移(u,v)后產(chǎn)生的灰度變化E(u,v)可表示為
I(x,y)]2
(2)
式(2)中:ω(x,y)為高斯核函數(shù)。將I(x+u,y+v)的一階泰勒展開式代入式(1)可得:
(3)
(4)
設(shè)λ1、λ2為矩陣M的兩個特征值,若兩個特征值中較小的一個大于設(shè)定的閾值,則判定該點為本文算法檢測的角點。
如果一幅圖像中包含有大量的特征點,那么特征描述子將占用大量的存儲,而且生成描述子的過程也會相當(dāng)耗時。因此需要對提取到的特征點進(jìn)行特征描述,以此來提升特征匹配的效率。
BRIEF是一種基于二進(jìn)制編碼生成特征描述子[10],以及利用漢明距離進(jìn)行特征匹配的算法。首先在特征點的鄰域內(nèi)隨機(jī)選取n個點對,然后形成n維的二進(jìn)制描述子。
定義一個經(jīng)高斯核平滑處理過的像素點p的二進(jìn)制比較:
(5)
式(5)中:p(x)為圖像塊在像素點x(u,v)處的灰度;p(y)為圖像塊在像素點y處的灰度;選擇n個(x,y)像素位置對,即可得到n維二進(jìn)制碼串:
(6)
最初的BRIEF算法是不具備旋轉(zhuǎn)不變性的,為了得到更準(zhǔn)確的特征提取點,需要給BRIEF算法添加旋轉(zhuǎn)不變性。定義一個2×n的矩陣S:
(7)
(8)
通過像素塊的方向θ來計算旋轉(zhuǎn)矩陣Rθ,之后更改S矩陣為
Sθ=RθS
(9)
由此可以得到新的二進(jìn)制碼串,結(jié)合式(7)可以得到具有旋轉(zhuǎn)不變性的BRIEF描述子為
gn(p,θ)=fn(p)|(xi,yi)∈Sθ
(10)
采用KNN(K-nearest neighbor)算法進(jìn)行特征點匹配[11]。KNN算法是根據(jù)檢測到的特征點之間的距離進(jìn)行匹配的,它會把一個樣本空間中k個最相似的特征點歸屬為相同的類別,待匹配的特征點如果和這個類別最相似,那么這個特征點就可以歸于這個類別,其中k一般取不大于20的整數(shù)。
在KNN算法中,特征點之間的匹配是根據(jù)與對應(yīng)點之間的距離作為指標(biāo),為了防止匹配誤差,距離可以選用歐式距離或曼哈頓距離,其中選用歐式距離[12]:
(11)
KNN算法的計算步驟如下。
(1)計算基準(zhǔn)特征點與待匹配特征點之間的歐式距離。
(2)將特征點間的距離按升序排列。
(3)選取與待匹配特征點距離最小的2個點。
(4)用最近鄰的點與次近鄰的點作比。
(5)若比值小于某一閾值,則最近鄰點為正確的匹配點。
簡單的特征匹配會產(chǎn)生許多重復(fù)特征點和誤匹配的特征點,為了減少拼接時產(chǎn)生的誤差,需要在篩選時對特征點進(jìn)行精匹配。PROSAC算法是RANSAC算法的改進(jìn)算法,可以解決RANSAC算法在精匹配時對距離較近的特征點時產(chǎn)生的誤差,達(dá)到更理想的匹配效果。因此,采用PROSAC算法[12]:設(shè)x和y為對應(yīng)的匹配點,如果這對匹配點非誤匹配,那么xFy=0,其中F為基礎(chǔ)矩陣。
首先將原圖像點與待匹配的特征點根據(jù)距離排序,選取其中m個質(zhì)量較好的特征點,計算出對應(yīng)的基礎(chǔ)矩陣,然后計算出兩個匹配點之間極限距離的平方和,如果平方和小于F,那么此待匹配的點為正確的匹配點。
由此可以得到兩幅圖像之間的映射關(guān)系即單應(yīng)性矩陣H為
(12)
在圖像融合過程中,待拼接的圖像會受到拍攝角度、重疊區(qū)域的亮度等影響,會出現(xiàn)明顯的拼接縫隙或重影,造成不好的視覺效果。SPHP算法可以有效解決這種問題,但是該算法只能在特定的場景產(chǎn)生良好的拼接效果,不適用于色差變化較小的地帶,而無人機(jī)會在任何場景作業(yè),因此需要使用改進(jìn)的SPHP算法進(jìn)行圖像融合。
經(jīng)過SPHP算法變換后的圖像,可以被分成三個區(qū)域,分別是重疊區(qū)域、過渡區(qū)域和非重疊區(qū)域,其變換模型為
(13)
另外,u1、u2作為劃分圖像區(qū)域邊界的參數(shù),可以通過改變u1、u2的值使圖像在大視差的情況下拼接出更小的形變,其函數(shù)E(u1,u2)可以定義為
(14)
為了減少圖像融合時產(chǎn)生的重影,獲得更好的拼接結(jié)果,需要將計算出的w與MDLT算法計算出的重疊區(qū)域的空間變換參數(shù)相結(jié)合。
(15)
W*∈R2N×2N
(16)
改進(jìn)的SPHP算法原理如圖2所示。
圖2 改進(jìn)SPHP算法圖像融合過程
用于實驗的圖像是由大疆MATRICE 100無人機(jī)拍攝,經(jīng)壓縮后圖像變成分辨率為650×400的PNG格式圖像,實驗使用天津理工大學(xué)先進(jìn)自動化技術(shù)聯(lián)合示范實驗中心計算機(jī),配置為Intel(R)Core(TM)i5-4590 CPU @ 3.30 GHz,是64 位Windows 10 操作系統(tǒng),內(nèi)存為4 GB,本文算法基于MATLAB 2016 b 編程并在其中進(jìn)行測試。
圖像拍攝地點位于天津理工大學(xué)校內(nèi),拍攝高度為150 m,為了測試本文算法適用于色差變化較小的無人機(jī)圖像,選擇地物類型以理工湖和綠化帶為主的區(qū)域拍攝,整體顏色對比度不那么明顯,類似于如今的野外或山區(qū)地帶。采用這樣一組典型類型來充分說明本文算法的有效性與適用性。
如圖3所示,代表著色差變化較小地貌特征的遙感圖像。在圖像配準(zhǔn)方面,首先采用改進(jìn)的ORB算法檢測圖像特征點,并進(jìn)行特征描述,隨后用KNN算法將得到的特征點進(jìn)行粗匹配,為了減少匹配誤差,再用PROSAC算法去除誤匹配的點,完成精匹配過程。得到的匹配結(jié)果對比圖如圖4所示。
圖3 待拼接圖像
圖4 三種算法特征點匹配結(jié)果對比
將本文算法與兩種傳統(tǒng)算法的特征匹配結(jié)果圖對比可以看出,本文算法相比于傳統(tǒng)SIFT算法,提取到的特征點數(shù)和匹配數(shù)均遠(yuǎn)遠(yuǎn)少于SIFT算法,說明本文算法在提取特征點方面的效率要遠(yuǎn)高于SIFT算法,因此本文算法特征匹配的時間也遠(yuǎn)遠(yuǎn)少于SIFT算法的匹配時間;而相比于ORB算法,本文提取到的特征點數(shù)和匹配個數(shù)均略少于ORB算法,可以說明本文算法在提取特征點方面的效率要略高于ORB算法,因此特征匹配時間也略少于ORB算法的時間,如表1所示。
表1 三種算法特征提取與匹配對比
傳統(tǒng)的圖像融合算法在不同的拍攝地貌下拍攝不同的場景,可能會產(chǎn)生重影或者拼接裂縫等問題。尤其是在拍攝無人機(jī)圖像時,色差變化不明顯的地貌很容易讓圖像拼接受到地貌因素的影響。如圖5所示,SIFT算法在對圖像做了空間變換之后十分生硬地將兩幅圖像拼接在一起,導(dǎo)致拼接結(jié)果存在明顯的裂縫;SPHP算法雖然在極力還原圖像的原始比例,卻有可能存在融合扭曲的問題。
圖5 三種算法融合結(jié)果對比
本文使用的改進(jìn)的SPHP算法,融合結(jié)果如圖5(c)所示,可以有效解決上述兩種算法在融合圖像過程中產(chǎn)生的問題,在大限度還原圖像原有比例的同時,消除融合圖像的拼接裂縫,大大提升圖像融合效果。
針對傳統(tǒng)ORB算法尺度不變性較差,運行速度較慢,不滿足無人機(jī)圖像實時性高的問題,提出一種基于ORB算法的圖像拼接改進(jìn)算法。首先用FAST算法加速過的Shi-Tomasi算法進(jìn)行特征檢測,得到速度快且準(zhǔn)確性高的特征點;在使用KNN算法匹配這些特征點之后,再用PROSAC算法去除重復(fù)點和誤匹配的點,完成特征點的精匹配;最后使用改進(jìn)的SPHP算法,降低圖像重疊區(qū)域的扭曲,消除拼接裂縫,得到效果更優(yōu)秀的無人機(jī)遙感拼接圖像。
最終結(jié)果表明,這種改進(jìn)的ORB算法相比于傳統(tǒng)ORB算法在匹配精度和匹配速率上都有著一定的提升,而相比于傳統(tǒng)SIFT算法在匹配效率上有著明顯提升。