江 智,江德港,黃子杰,郭彩玲,李柏林
1.西南交通大學(xué) 唐山研究生院,河北 唐山 063000
2.唐山學(xué)院 河北省智能裝備數(shù)字化設(shè)計及過程仿真重點(diǎn)實(shí)驗(yàn)室,河北 唐山 063000
3.西南交通大學(xué) 機(jī)械工程學(xué)院,成都 610000
近些年,由于無人機(jī)航拍技術(shù)迅速發(fā)展,其被廣泛應(yīng)用于自然災(zāi)害應(yīng)急、地形勘測、特定目標(biāo)定位、危險區(qū)域巡航等相關(guān)領(lǐng)域。無人機(jī)因其輕、小、靈的優(yōu)點(diǎn)可以到達(dá)眾多非常規(guī)區(qū)域。但在航拍中,無人機(jī)受自身飛行高度、相機(jī)視角等參數(shù)的限制,單張拍攝圖像的視野過小,無法顯示更完整的信息。因此,為了獲取所需信息,得到覆蓋更廣、更為完整的航拍圖像,需要將多張拍攝的圖像拼接在一起,獲得寬視角的圖像[1-3]。圖像拼接[4]是指將一系列相互有部分重疊區(qū)域的圖像拼接成一幅高分辨率寬視角的圖像。
圖像拼接技術(shù)自問世以來經(jīng)過四十多年的發(fā)展,已經(jīng)形成了很多成熟的算法,無人機(jī)圖像拼接與傳統(tǒng)的圖像拼接方法相比具有一些獨(dú)特的優(yōu)勢。無人機(jī)攜帶機(jī)載GPS,每張航拍圖像都包含POS 信息,有效利用可以提高圖像拼接的準(zhǔn)確性和速度。Wang等[5]結(jié)合SIFT和Harris算法提取圖像特征點(diǎn),利用POS數(shù)據(jù)對進(jìn)行圖像幾何校正,從而實(shí)現(xiàn)特定區(qū)域的圖像拼接。
目前最為主流的方法是基于特征點(diǎn)的特征提取方法[6]。常用的特征點(diǎn)提取方法有SIFT[7](scale-invariant feature transform)、SURF[8](speed-up robust features)、ORB[9](oriented FAST and rotated BRIEF)和KAZE[10]算法等。這些算法經(jīng)過工程中的反復(fù)使用已證明了其先進(jìn)性和可靠性,但在特征提取和特征匹配方面仍存在一些問題。文章針對SURF 算法展開重點(diǎn)研究,首先SURF算法在特征提取階段存在著計算復(fù)雜度高和特征選取精度不足的情況[11]。圖像拼接的有效區(qū)域僅為圖像間的重疊部分,然而SURF算法提取特征針對整幅圖像進(jìn)行特征檢測,增加了特征提取的范圍,算法的耗時和復(fù)雜度隨之上升,且重疊區(qū)域之外的特征點(diǎn)也會增加特征誤匹配的概率。并且SURF 算法所提取的特征點(diǎn)中包含一些低對比度和不穩(wěn)定的響應(yīng)點(diǎn)[12],這些特征點(diǎn)對圖像配準(zhǔn)的貢獻(xiàn)甚微。一些改進(jìn)方法被提出用以解決上述問題,丁小奇等[13]針對傳統(tǒng)SURF 算法初始特征點(diǎn)選取精度不足的問題提出改進(jìn)方案,優(yōu)化高斯模糊的過程,進(jìn)而形成新的尺度空間生成方式,該方法有效提高了特征點(diǎn)選取精度,特征匹配正確率也有所提升,但該方法沒有解決SURF算法耗時長的問題。潘梅等[14]提出一種改進(jìn)Harris-SURF 的圖像拼接算法,利用改進(jìn)的Harris 算子提取特征點(diǎn),使用SURF 算法生成64 維特征向量,通過限制角點(diǎn)位置和個數(shù)提高特征描述和匹配項(xiàng)率。其次,SURF 算法特征匹配的準(zhǔn)確率較低[15]。在特征提取階段大量特征點(diǎn)的初始化導(dǎo)致匹配誤差增加,特征匹配率隨之降低。針對該問題,Shao等[16]利用無人機(jī)圖像的位姿信息來確定特征點(diǎn)的位置范圍,然后在特征點(diǎn)鄰域窗口內(nèi)搜索候選點(diǎn),并使用特征匹配的閾值來過濾錯誤匹配。這種方法大大提高了匹配精度,然而先后兩次進(jìn)行配準(zhǔn),使得算法較為耗時。An 等[17]提出了一種結(jié)合優(yōu)化SURF 和改進(jìn)細(xì)胞加速的冪函數(shù)加權(quán)圖像拼接方法,首先利用余弦相似度初步判斷特征點(diǎn)的相似度,然后利用雙向一致性互選再次過濾特征點(diǎn)對,同時消除了反向匹配中的一些不正確匹配點(diǎn),但該方法并未解決特征點(diǎn)有效性差和精度低的問題。
因此,針對傳統(tǒng)SURF算法在拼接高分辨率無人機(jī)航拍圖像時運(yùn)行速度慢、特征匹配率低的問題提出改進(jìn)方法。結(jié)合無人機(jī)圖像POS數(shù)據(jù),提出一種基于圖像分塊的特征提取方法,濾除無效特征點(diǎn)和低響應(yīng)值特征點(diǎn),提高有效特征點(diǎn)的占比和質(zhì)量;在特征匹配階段增加運(yùn)動平滑性約束,利用鄰域信息改進(jìn)KNN算法,減少算法迭代次數(shù),高效匹配特征點(diǎn)。
SURF算法是在SIFT的基礎(chǔ)上改進(jìn)而來,是一種穩(wěn)健的局部特征點(diǎn)檢測和描述算法。SURF算子保留了SIFT算子優(yōu)良的性能特點(diǎn),通過構(gòu)造Hessian 矩陣[18]檢測極值點(diǎn),同時引入積分圖[19]的概念;改進(jìn)并降低了特征描述子的維數(shù),特征儲存空間減少,解決了SIFT算法計算復(fù)雜度高、實(shí)時性差的缺點(diǎn)。下面主要介紹Hessian矩陣。
設(shè)X=(x,y)為圖像上一點(diǎn),尺度為σ的Hessian 矩陣H(x,σ)定義為:
其中,Lxx(x,σ)表達(dá)式為:
式中,尺度為σ的高斯函數(shù)表達(dá)式為:
求出每個像素點(diǎn)Hessian矩陣的判別式:
SURF算法雖然在旋轉(zhuǎn)不變性、光照不變性、尺度不變性和穩(wěn)定性[20]上有良好的性能,但在特征提取階段,存在特征點(diǎn)數(shù)量多的問題,影響了特征提取和特征匹配的效率,導(dǎo)致SURF 算法的實(shí)時性較差。因此,提出一種改進(jìn)特征提取方法的IB-SURF算法,具體算法流程如圖1所示。與傳統(tǒng)SURF算法相比,在特征提取階段,將基于整張圖像的特征提取改為基于重疊區(qū)域的特征提取,并增加了特征篩選的環(huán)節(jié),基于圖像分塊選擇局部區(qū)域特征響應(yīng)值最大的點(diǎn)作為特征點(diǎn),提高特征匹配率,優(yōu)化特征點(diǎn)分布。
圖1 算法流程圖Fig.1 Algorithm flowchart
無人機(jī)POS 數(shù)據(jù)即記錄無人機(jī)拍照瞬間的三維坐標(biāo):經(jīng)度(L0)、緯度(B0)、飛行高度(A)及飛行姿態(tài):航向角(k)、俯仰角(ψ)和翻滾角(ω)。無人機(jī)照片包含寬度(W0)、照片高度(H0)、相機(jī)焦距(F)等信息,另外飛行時地面平面高程(A0)、相機(jī)旁向開角(θ)和航向開角(δ)已知?;谝陨闲畔⒖梢杂嬎銦o人機(jī)圖像投影到地面后的地理位置。
經(jīng)過俯仰、側(cè)偏及航向角改正后的飛行影像中心點(diǎn)平面坐標(biāo)(X,Y)可以通過以下公式計算得到:
式中,X0、Y0是圖像的中心坐標(biāo),Xa、Ya是X和Y方向的俯仰改正,Xb、Yb是X和Y方向的側(cè)偏改正。
左上角平面坐標(biāo)(X1,Y1)的表達(dá)式為:
式中,W1、W2為側(cè)偏距離覆蓋,H1、H2為俯仰覆蓋距離。
同理可獲得其他三個角點(diǎn)(X2,Y2)、(X3,Y3) 和(X4,Y4)的坐標(biāo)。根據(jù)公式(5)、(6),得到了無人機(jī)圖像四個角點(diǎn)投影到地面的平面坐標(biāo),如圖2。
圖2 基于地面的無人機(jī)圖像坐標(biāo)圖Fig.2 Ground-based UAV image coordinate map
通過無人機(jī)獲取的航拍圖像兩兩之間存在部分重疊區(qū)域,重疊區(qū)域是圖像拼接的依據(jù)和基礎(chǔ),也是有效特征點(diǎn)分布的區(qū)域。原有的SURF 算法是基于整張圖像檢測特征點(diǎn),擴(kuò)大了特征點(diǎn)提取的范圍,導(dǎo)致特征匹配階段存在較多無效特征點(diǎn),嚴(yán)重增加了特征匹配時間。由航拍所獲得的每幅圖像都帶有POS 數(shù)據(jù),借助POS數(shù)據(jù)求取無人機(jī)航拍圖像的重疊區(qū)域。
兩圖的位置關(guān)系如圖3所示,基準(zhǔn)圖像a的中心坐標(biāo)為(Xa,Ya),待拼接圖像b的中心坐標(biāo)為(Xb,Yb) 。無人機(jī)圖像投影到地面后的中心坐標(biāo)和四個角點(diǎn)坐標(biāo)在2.1節(jié)中已經(jīng)獲取。兩幅航拍圖像的位置關(guān)系按照大地坐標(biāo)系設(shè)定,藍(lán)色部分為重疊區(qū)域。
圖3 大地坐標(biāo)系下的圖像關(guān)系Fig.3 Images relationship in geodetic coordinate system
SURF 算法是針對整張圖像提取特征點(diǎn),因此需要構(gòu)造一個特定的掩膜用于在重疊區(qū)域檢測特征點(diǎn)。特征點(diǎn)提取的區(qū)域僅為重疊區(qū)域,不僅減少了特征提取耗時,而且提高了有效特征點(diǎn)的占比,為提高特征匹配效率提供了技術(shù)支撐。
為了減少特征點(diǎn)匹配中誤匹配和匹配偏差,傳統(tǒng)的方法通過增加特征匹配的次數(shù)來保證其魯棒性,提取并匹配比需要更多的特征點(diǎn),然后利用RANSAC(random sample consensus)等方法過濾掉不正確的匹配。然而,大量特征點(diǎn)的初始化增大了計算的復(fù)雜程度[16]。該問題可采用圖像分塊的方法解決。
基于圖像分塊的思想,將圖像重疊區(qū)域分成5×5網(wǎng)格(見4.2節(jié))。由SURF算法計算出每一個特征點(diǎn)的響應(yīng)值Pi.response,對于圖像的每一分塊,比較該分塊內(nèi)所有特征點(diǎn)響應(yīng)值的大小,確定響應(yīng)值最大的特征點(diǎn)Pmax。因此每個分塊內(nèi)僅剩一個特征點(diǎn),該特征點(diǎn)是該分塊內(nèi)響應(yīng)值最大的特征點(diǎn),流程如圖4 所示,n為網(wǎng)格數(shù)量,m為每個網(wǎng)格內(nèi)特征點(diǎn)的數(shù)量。響應(yīng)是特征提取器作用于圖像的結(jié)果,響應(yīng)大的特征點(diǎn)更加顯著和可辨,這些特征點(diǎn)之間的特征匹配成功率更高。
圖4 特征點(diǎn)篩選流程Fig.4 Flowchart of feature point screening
由此完成了特征點(diǎn)的篩選,IB-SURF算法通過構(gòu)造掩??s小了特征提取的范圍,進(jìn)而減少特征提取耗時,并借助圖像分塊的思想,對每一分塊內(nèi)的特征點(diǎn)進(jìn)行比較篩選,極大精簡了特征點(diǎn)的數(shù)量,過濾掉大量冗余信息。圖像分塊也使得特征點(diǎn)的分布更加均勻。與傳統(tǒng)SURF 算法大量提取初始特征點(diǎn)相比,基于圖像分塊所獲取的特征點(diǎn)更為顯著,質(zhì)量更高,既降低了算法的復(fù)雜度,也為特征點(diǎn)的正確匹配提供技術(shù)保證。
傳統(tǒng)的K近鄰(KNN)算法是從所有的訓(xùn)練樣本中找出和未知樣本最近的K個樣本,將K個樣本中出現(xiàn)最多的類別賦給未知樣本[21]。然而這種方法需要每次都遍歷配準(zhǔn)圖像中的所有特征點(diǎn),極大地增加了算法的復(fù)雜度。
因此,利用鄰域信息改進(jìn)KNN 算法,在特征匹配時增加運(yùn)動平滑性約束,縮小特征匹配區(qū)域。正確的匹配在運(yùn)動空間中是平滑的,運(yùn)動平穩(wěn)相鄰的特征在運(yùn)動空間中具有一致性[22],相鄰特征點(diǎn)對應(yīng)的匹配特征點(diǎn)的區(qū)域也是相鄰的。因此,相鄰特征點(diǎn)對應(yīng)的匹配特征點(diǎn)的區(qū)域也是相鄰的。從而,參考圖像中的特征點(diǎn)搜索出待配準(zhǔn)圖像中與之匹配的特征點(diǎn)后,該特征點(diǎn)鄰域內(nèi)的所有特征點(diǎn)只需在待配準(zhǔn)圖像中匹配點(diǎn)的鄰域內(nèi)進(jìn)行搜索即可。特征匹配示意圖見圖5,假設(shè)特征點(diǎn)O的待匹配點(diǎn)為點(diǎn)P,則與O點(diǎn)在同一鄰域內(nèi)的特征點(diǎn)Q只需在特征點(diǎn)P的3×3鄰域內(nèi)搜索待匹配點(diǎn)即可。
圖5 特征匹配示意圖Fig.5 Feature matching diagram
實(shí)驗(yàn)所用圖像共分為三部分,第一部分為自采數(shù)據(jù)集,由大疆Air 2 無人機(jī)拍攝,分辨率為5 472×3 648 的JPG 格式圖像,拍攝高度為100 m,地處東經(jīng)118°9′52″,北緯39°39′23″,一個架次采集圖像約200 張,相鄰圖像平均重疊率為79.605%,如圖6(a)和圖6(b)。第二部分是使用大疆PHANTOM 3獲取云南西雙版納的20張圖像組成的序列,圖像分辨率為4 000×3 000,拍攝高度約為780 m,相鄰圖像平均重疊率為85.108%,如圖6(c)。第三部分是使用eBee Classic 無人機(jī)在一個名為Merlishachen 的瑞士小村莊采集的數(shù)據(jù)集,圖像分辨率為4 608×3 456,并經(jīng)過Pix4D軟件處理。一次飛行采集約300張圖像,飛行高度約660 m,相鄰圖像平均重疊率為76.803%,如圖6(d)和圖6(e)。
圖6 實(shí)驗(yàn)圖像Fig.6 Experimental UAV images
實(shí)驗(yàn)運(yùn)行環(huán)境采用CPU為AMDR7-5800H,3.2 GHz,內(nèi)存為4 GB,64位Win10操作系統(tǒng)的PC機(jī)。實(shí)驗(yàn)的算法基于OpenCV2.4.13實(shí)現(xiàn),編程語言為C++,編程環(huán)境為Visual Studio 2013。
文章選擇傳統(tǒng)SURF 算法、ORB 算法、Improved SIFT算法(ISIFT)和基于重疊區(qū)域的局部拼接(OLS)[23]算法作為比較對象。ISIFT算法在確定候選特征點(diǎn)的過程中通過設(shè)置自適應(yīng)閾值來剔除一些梯度響應(yīng)不顯著的點(diǎn),從而降低了算法的復(fù)雜度。引入BBF(best bin first)算法來尋找最近鄰和次最近鄰,并在尋找匹配點(diǎn)的過程中使用RANSAC 來優(yōu)化特征點(diǎn)的選擇;OLS 算法在拼接圖像時不需要將整個重疊區(qū)域精準(zhǔn)對齊,只需在重疊區(qū)域中尋找一個可以將圖像拼接在一起的局部區(qū)域即可。OLS 能夠找到允許最佳拼接的局部區(qū)域局部拼接采用混合對齊模型,為處理視差和局部失真提供了靈活性。
圖像分塊劃分網(wǎng)格時,網(wǎng)格的數(shù)量會對算法產(chǎn)生重要影響。網(wǎng)格數(shù)量過多,增加算法的復(fù)雜度,用時隨之增加;網(wǎng)格數(shù)量過少,特征點(diǎn)匹配率下降,進(jìn)而影響圖像拼接質(zhì)量。因此選擇一個恰當(dāng)?shù)木W(wǎng)格密度至關(guān)重要。如圖7 所示,以特征提取時間和匹配率作為衡量標(biāo)準(zhǔn),繪制折線圖。由圖可知,當(dāng)網(wǎng)格密度小于等于5×5 時,特征提取用時較短,匹配率遞增。當(dāng)網(wǎng)格密度大于5×5時,雖然匹配率仍在增加,但特征提取用時大幅增加,嚴(yán)重影響算法的效率。綜合考慮兩參數(shù)的影響,最終選擇網(wǎng)格密度為5×5,即25。
圖7 網(wǎng)格密度影響Fig.7 Effect of grid density
表1給出了分別使用SURF、ORB、ISIFT、OLS和文章提出的算法對圖6 中的五組數(shù)據(jù)進(jìn)行特征提取的用時比較。從表1可以看出ORB算法的計算復(fù)雜度最低,IB-SURF 算法次之,其次是ISIFT 和OLS。SURF 算法提取特征點(diǎn)的時間最長。這是因?yàn)镺RB 算法采用FAST 方法檢測特征點(diǎn),且在特征描述時只需對特征點(diǎn)的鄰域進(jìn)行二值測試,因而特征提取耗時最短。與SIFT算法相比,SURF算法通過改進(jìn)尺度空間的構(gòu)造方法,降低了特征描述子的維數(shù),因此在特征提取速度上得到了較大改善。但I(xiàn)SIFT通過設(shè)定自適應(yīng)閾值過濾掉大量低質(zhì)量特征點(diǎn)。因此,ISIFT 的特征提取效率顯著提高。OLS 首先找到一個最佳局部單應(yīng)性和一個與該單應(yīng)性松散擬合的特征點(diǎn)子集。OLS 在重疊區(qū)域的局部區(qū)域中檢測特征點(diǎn),故而特征提取區(qū)域大大減少。但是尋找最佳局部單應(yīng)性是極為耗時的,使得OLS的特征提取速度介于ISIFT和SURF之間。
表1 特征提取用時比較Table 1 Comparison of computational complexity for point extraction單位:s
IB-SURF 算法特征提取的結(jié)果如圖8,這種特征點(diǎn)分布方式有利于特征之間的配準(zhǔn)。
圖8 特征提取結(jié)果Fig.8 Results of feature point extraction
如表2 所示,給出了分別使用SURF 算法、ORB 算法、ISIFT算法、OLS算法和文章所提算法對圖6中五組數(shù)據(jù)進(jìn)行特征匹配用時比較。從表中可以看出,對于以上五組數(shù)據(jù),IB-SURF 算法在特征匹配時用時最短,OLS算法次之,依次是ORB算法、ISIFT算法和SURF算法。IB-SURF 算法由于在特征檢測時對特征點(diǎn)進(jìn)行了精簡篩選,減少了特征匹配階段算法的計算量和工作量。同時,Neighborhood-KNN 算法大大減少了搜索特征點(diǎn)的迭代次數(shù)。因此,特征匹配的效率得到了顯著提高。OLS 算法特征匹配時涉及的特征點(diǎn)是重疊區(qū)域中局部特征點(diǎn)子集,這極大降低了算法的復(fù)雜性,并確保了在很短的時間內(nèi)完成特征匹配。ORB使用BRIEF算法計算描述子,該描述子特有的二進(jìn)制串的表現(xiàn)形式不僅節(jié)約了存儲空間,而且縮短了匹配用時。SURF 算法和SIFT算法分別生成64維和128維的特征描述子[24],所占儲存空間大,算法冗雜,匹配耗時長。ISIFT在特征提取過程中設(shè)置了閾值,減少了特征匹配的工作量,因此匹配速度略高于SURF算法。
表2 特征匹配用時比較Table 2 Comparison of feature matching time單位:s
圖9給出了使用五種算法對圖6的五組數(shù)據(jù)進(jìn)行特征匹配的結(jié)果。從圖中可以知道,在匹配率方面ORB算法和OLS算法的匹配率較低,在10%左右,ISIFT算法略高于SURF 算法,但匹配率仍較低,文章提出的算法具有最高的匹配率。ISIFT 采用BBF 進(jìn)行特征粗匹配,然后利用RANSAC 進(jìn)行特征精匹配。與傳統(tǒng)的SURF算法相比,提高了匹配性能,因此ISIFT的匹配率更高。OLS算法隨機(jī)選擇種子特征點(diǎn),并對其空間上最接近的相鄰點(diǎn)進(jìn)行逐個分組。它使用了較大閾值的單應(yīng)性變換,以便將盡可能多的特征點(diǎn)分組,反而使得單應(yīng)性變換無法擬合這些特征對應(yīng)關(guān)系[25]。ORB 算法采用漢明距離[26]計算特征匹配度,所使用的BRIEF二進(jìn)制描述子雖具有較高的效率,但其在旋轉(zhuǎn)不變性、尺度不變性及穩(wěn)定性上較差,影響其匹配率。
圖9 特征匹配率比較Fig.9 Comparison of feature matching rate
與以上算法相比,IB-SURF算法的匹配率得到顯著提升,遠(yuǎn)高于傳統(tǒng)算法。這是因?yàn)樵谔崛√卣鼽c(diǎn)時對特征點(diǎn)進(jìn)行了精簡篩選,剔除了大量低對比度和不穩(wěn)定的響應(yīng)點(diǎn),僅保留了局部區(qū)域特征響應(yīng)值最大的特征點(diǎn),這些具有較大響應(yīng)值的特征點(diǎn)更易形成匹配對。圖10展示了SURF 算法改進(jìn)前后特征匹配對比圖,篇幅原因,每個數(shù)據(jù)集僅展示其中一組圖像。由圖可以得知,改進(jìn)前的SURF 算法有較多數(shù)量的特征點(diǎn)參與特征匹配,但存在大量的誤匹配和匹配偏差,匹配率和匹配正確率都較低。IB-SURF 算法除少量特征點(diǎn)未參與特征匹配外,絕大部分特征點(diǎn)都正確匹配,特征匹配正確率保持在非常高的值,超過95.1%。這在一定程度上得益于Neighborhood-KNN 算法,在減少迭代次數(shù)的同時降低了誤匹配的概率。
圖10 特征匹配結(jié)果Fig.10 Results of feature matching
針對使用SURF 算法在拼接高分辨率無人機(jī)圖像過程中出現(xiàn)的運(yùn)行時間長、匹配率低的情況,提出了一種基于圖像分塊的無人機(jī)圖像拼接算法,利用圖像分塊的思想篩選特征點(diǎn),提高了特征提取的精度和效率。在特征匹配階段增加運(yùn)動平滑性約束,利用鄰域信息改進(jìn)KNN 算法,Neighborhood-KNN 算法的使用加快了特征匹配的速度和精度。利用自制數(shù)據(jù)集和兩個公開數(shù)據(jù)集對IB-SURF 算法進(jìn)行驗(yàn)證,并與傳統(tǒng)的SURF 算法、ORB 算法、ISIFT 算法和OLS 算法進(jìn)行比較。結(jié)果表明,IB-SURF 算法的計算復(fù)雜度顯著降低,圖像配準(zhǔn)時間可以減少到傳統(tǒng)SURF算法的一半以下,實(shí)現(xiàn)了算法的實(shí)時性能。特征匹配率和匹配精度大幅提高,平均特征匹配率達(dá)到84.3%,特征匹配準(zhǔn)確率超過95.1%。此外,提取的特征點(diǎn)分布更加均勻,有效解決了特征點(diǎn)分布集中的問題。
IB-SURF 算法的局限性在于無法有效地從色差較小的圖像中提取特征點(diǎn),未來的研究將側(cè)重于探索小色差圖像的特征提取方法。