王冬梅,陳普智
(黃河水利職業(yè)技術(shù)學院,河南 開封 475004)
無人機遙感是一種新型的遙感手段, 由于其影像具有實時性強、獲取方式靈活、獲取成本低、分辨率高等優(yōu)點,已從最初的軍事領(lǐng)域擴展到民用領(lǐng)域,尤其是在大比例尺地形圖的局部更新、 土地礦產(chǎn)資源調(diào)查與管理、 自然災害的應急響應與保障等領(lǐng)域發(fā)揮著越來越重要的作用[1]。然而,受航高和相機焦距的限制, 無人機遙感單張影像并不能包括所有的研究區(qū)域, 而正射影像的生成又需要耗費大量的時間。因此,如何快速獲取較寬視野的無人機影像成為無人機遙感應用的關(guān)鍵[2]。
無人機序列影像拼接是在序列影像匹配的基礎(chǔ)上,根據(jù)一定的變換模型,將這些視角有限的單張影像統(tǒng)一變換到一個平面坐標系中, 形成一片地區(qū)的高分辨率和寬視角大圖的技術(shù)方法[3]。 影像拼接包括影像獲取、影像預處理、影像配準以及影像融合4個步驟。其中,影像配準和影像融合的速度和精度對整個影像拼接的結(jié)果起著決定性作用[4]。 由于無人機影像具有相鄰兩幅影像之間的空間位置關(guān)系很難精確計算、各影像之間的重疊度大小不一致、旋轉(zhuǎn)角變化沒有明顯規(guī)律、影像特征經(jīng)常出現(xiàn)斷開等特點,因此, 基于特征提取的影像匹配算法相對而言是最適合無人機遙感影像匹配的算法[5]。
目前, 應用較多的尺度不變特征提取算法有SIFT (Scale Invariant Feature Transform) 算法和SURF(Speeded Up Robust Features)算法。 SIFT 算法是圖像處理領(lǐng)域中非常著名的算法, 它提取的特征是圖像局部的特征,對圖像旋轉(zhuǎn)、尺度縮放、亮度變化保持不變性。 但是,SIFT 算法復雜、計算效率較低。SURF 算法通過積分圖像和小波相結(jié)合,進一步提高了特征提取的速度。 然而,SURF 描述子是64維,維數(shù)仍較高,計算量仍然很大,實時性不強。由于光強的差異, 不同時刻獲取的影像在拼接時常會存在拼接縫。鑒于以上問題,筆者試根據(jù)無人機序列影像航帶的排布特性, 先用分塊閾值自適應調(diào)節(jié)方法改進的SURF 算法對無人機影像相鄰重疊區(qū)域的同名點進行特征點的粗匹配, 再使用RANSAC 算法(Random Sample Consensus,隨機抽樣一致性算法)剔除粗匹配中產(chǎn)生的誤匹配點,最后,采用多分辨率影像融合的方法消除相鄰影像之間的拼接縫, 從而實現(xiàn)無人機序列影像快速拼接。
SURF 算法是由Herbert Bay 等在2006 年提出的一種全新的具有尺度不變性、 旋轉(zhuǎn)不變性特征的點檢測和描述方法[6]。 該算法主要包括SURF 特征點檢測、SURF 特征點描述子生成和SURF 特征點匹配3 個步驟。
SURF 特征點檢測是基于尺度空間構(gòu)建Hessian矩陣來提取特征點。尺度為σ 的圖像點X=I(x,y)的Hessian 矩陣H(X,σ)的表達式如式(1)所示。
在建立影像金字塔結(jié)構(gòu)時, 首先需要對影像進行采樣,再與不同尺度的二維高斯函數(shù)進行卷積。為了加快計算速度,SURF 算子用方塊型濾波和積分圖像來簡化計算。 為了避免出現(xiàn)影像迭代時向下采樣的現(xiàn)象,SURF 算子在建立影像金字塔結(jié)構(gòu)時,使用了增加方塊濾波尺寸的方法。
將式(2)所示的快速投影Hessian 矩陣行列式的局部最大值的影像點選擇為特征點。
找到快速投影Hessian 矩陣行列式的局部極值后, 還要在每個局部3×3×3 區(qū)域里進行非極大值抑制。 即將找到的局部極值與該像素同層的相鄰8 個像素以及它上、下2 層的9 個相鄰像素共計26 個相鄰像素點進行比較,當該點比其相鄰三層的26 個鄰域點相應值都大時, 即為特征點,如圖1 所示。
圖1 特征點檢測Fig.1 Feature detection
SURF 特征點描述子主要是根據(jù)特征點鄰域范圍內(nèi)的灰度統(tǒng)計信息, 通過計算特征點主方向和特征向量得到的。確定特征點主方向的方法是,在以特征點為圓心,6σ 為半徑(σ 為特征點所在尺度)的圓形區(qū)域內(nèi)(包含所有像素), 用一個60°張角的扇形進行旋轉(zhuǎn)搜索,每次轉(zhuǎn)動的角度為15°,每轉(zhuǎn)動一次賦一個值,這些值中的最大值為主方向。 搜索過程如圖2 所示。
圖2 特征點主方向搜索Fig.2 Feature principle direction search
根據(jù)選定的特征點主方向, 構(gòu)造區(qū)域為20σ×20σ,每個區(qū)域再分成4×4 的若干個子區(qū)域。 在每一個子區(qū)域內(nèi),計算相對于主方向的水平和垂直方向的Haar 小波響應,可以得到一個四維向量。 對于每一個特征點,4×4 個子區(qū)域組成64 維描述向量。對向量進行歸一化處理,以保持對光照和亮度的不變性。
在參考影像中得到的特征點描述向量為目標集, 在待配準影像中得到的特征點描述子集為基準集[7]。特征點的匹配就是在兩個特征點集之中,按照一定的相似性度量準則, 搜索相互距離最近的特征點。 常用的相似性測度的方法有:NCC(歸一化互相關(guān))、SSD(像素差的平方和)、ED(歐氏距離)等。
由SURF 特征匹配算法的計算步驟可知,SURF匹配的時間與圖像尺寸大小、特征點數(shù)量有關(guān)[7]。 在進行SURF 影像匹配的過程中, 正確的特征點匹配對僅集中分布在影像的重疊區(qū)域內(nèi), 非重疊區(qū)域內(nèi)不存在正確的特征點匹配對, 亦即非重疊區(qū)域為無效區(qū)域[8]。 因此,只需對影像重疊區(qū)采用分塊匹配處理。 這樣,也會縮短匹配時間。
采用尺寸與尺度自適應法構(gòu)建SURF 算法特征點,可使分塊數(shù)目達到一個較為合理的值。設(shè)有一個模板影像為T(m×n)、搜索影像為S(M×N),取尺度因子(表示搜索影像相對模板影像的最大尺寸范圍)為σ,邊界取舍閾值為φ,分塊過程中圖像右邊不足分塊部分的寬度與子塊寬度的比值為d, 則影像水平方向列分塊的數(shù)目用式(3)計算,豎直方向行分塊的數(shù)目用式(4)計算。搜索影像的總分塊數(shù)目k 的計算式為式(5)。
對影像重疊區(qū)域分塊后,位于分塊邊界附近的特征點在提取中會受到分割邊界的影響。 這是因為這些特征點生成特征向量需要的鄰域被分塊邊界分開,而它們在原影像的特征提取是基于一個完整的鄰域建立起來的。 為了消除這些冗余信息的影響,可以在特征提取結(jié)束后,剔除距離分塊邊緣較近的特征點。
將待匹配影像的每個分塊送入相應的通道中,單獨進行SURF 特征提取和數(shù)據(jù)的后續(xù)處理, 得到每個分塊的待匹配模板。在待匹配的影像中,受斑點噪聲或幾何畸變的影響, 一些被檢測匹配的特征點對被分布到有效區(qū)域外。因此,在去除誤匹配特征點對之前,需要對得到的粗匹配點對進行預處理。
在進行目標跟蹤應用特征提取時,需要有一種能識別和剔除錯誤匹配的特征點對的方法。 RANSAC 算法是Fischer 和Bolles 提出的一種參數(shù)估計方法[9]。 該算法假設(shè)樣本中既包含正確數(shù)據(jù)(inliers,可以被模型描述的數(shù)據(jù),即內(nèi)點),也包含異常數(shù)據(jù)(outliers,偏離正常范圍很遠,無法適應數(shù)學模型的數(shù)據(jù),即外點),即數(shù)據(jù)集中含有噪聲。 同時,假設(shè)給定任意一組數(shù)據(jù),存在可以計算出擬合這些數(shù)據(jù)的模型參數(shù)的方法。 該算法的計算原理是, 如果模板影像與搜索影像對應特征點之間的距離小于閾值T, 則可以認為它們是一一對應點。 如果對應點的個數(shù)與區(qū)域內(nèi)全部點個數(shù)的比值達到一定閾值,則可以認為這組變換可以接受。 然后,利用求出的變換關(guān)系和設(shè)定的閾值T, 精選出被保留的特征點。 其余點為誤匹配的特征點, 將予以剔除。RANSAC 算法的計算流程如圖3 所示。
圖3 RANSAC 算法流程Fig.3 RANSAC algorithm flow
由于無人機在進行航空攝影測量時, 要求同一條航帶相鄰影像之間有航向重疊, 相鄰航帶相鄰像片之間有旁向重疊。同時,由于成像之間還存在環(huán)境差異, 兩幅影像的重疊區(qū)域像素灰度值可能差別比較大,快速拼接后影像可能會出現(xiàn)錯位、拼接縫和重影等現(xiàn)象[10]。影像融合直接關(guān)系到影像拼接的效果,因而融合方法的選擇顯得尤為重要。 本研究采用的融合方法是多分辨率影像融合,具體操作過程是:先將待融合的每幅影像分解到不同分辨率的頻率域上;然后,在不同的分辨率上,對影像重疊部分邊界附近做加權(quán)平均;最后,通過多分辨率逆變換匯總成一幅與原影像尺度相同的融合影像。
采用實驗驗證無人機序列影像快速拼接方法的效果。實驗環(huán)境為運行MATLAB R2016a 的PC 機、Intel Core i5 處理器,主頻為2.39 GHz、運行內(nèi)存為8GB、64 位Windows8 操作系統(tǒng)。無人機搭載焦距為35mm 的SONY ILCE-7R 相機獲取影像。圖4 和圖5 為同一條航帶相鄰的兩幅原影像, 這里分別稱之為基準影像和待配準影像,像幅大小為7360×4912。圖6 是由基于SURF 特征的影像拼接算法拼接而成的圖像; 圖7 是由改進SURF 特征的影像拼接算法拼接與融合而成的圖像。
通過目視判讀, 基于SURF 特征的影像拼接算法對無人機影像進行拼接時,房屋明顯有重影現(xiàn)象;基于改進SURF 特征的影像拼接算法對無人機影像進行拼接時, 沒有重影現(xiàn)象。 另外, 用MATLAB R2016a 同一軟件平臺進行拼接時,用基于SURF 特征的影像拼接算法拼接相鄰兩幅影像的錯誤匹配點為10 對,運行時間為1′12″;用改進SURF 特征的影像拼接算法拼接相鄰兩幅影像的錯誤匹配點為4對,運行的時間為30″。
圖4 基準圖像Fig.4 Datum image
圖5 待配準圖像Fig.5 Images to be rectificated
圖6 基于SURF 特征的圖像拼接算法拼接的結(jié)果圖Fig.6 Mosaicking result of image mosaicking algorithm based on SURF features
圖7 改進SURF 特征的圖像拼接算法拼接與融合的結(jié)果圖Fig.7 Mosaicking and merged result of image mosaicking algorithm based on improved SURF feature
綜上所述, 采用SURF 算法計算量依然很大,實時拼接完成無人機序列影像有一定的困難。 鑒于此,本文試根據(jù)無人機序列影像的航帶排布特性,用分塊閾值自適應調(diào)節(jié)方法改進了SURF 算法, 用該算法對無人機影像相鄰重疊區(qū)域的同名點進行特征點的粗匹配,用RANSAC 算法剔除粗匹配中產(chǎn)生的誤匹配點,最后,采用多分辨率影像融合的方法消除相鄰影像之間的拼接縫, 實現(xiàn)無人機序列影像快速拼接。實驗結(jié)果表明,通過分塊閾值自適應調(diào)節(jié)方法改進SURF 特征的影像拼接算法能夠提高匹配拼接時間。同時,應用多分辨率影像融合的方法可以消除相鄰影像之間的重影與拼接縫等現(xiàn)象。