徐永勝,楊玉澤,林文樹
(東北林業大學 工程技術學院,哈爾濱 150040)
近年來,無人機低空遙感技術已經應用到諸多領域,例如防災減災、軍事偵察、土地調查和環境監測等[1]。由于無人機進行影像獲取時飛行高度較低,獲取的影像數據覆蓋的面積過小,在后期進行森林結構參數提取時,會因為目標區域不在同一幅影像上而造成一定的誤差。因此,影像拼接的目的就是將從真實世界中獲取的不同影像合成為寬視場影像[2]。目前的無人機影像拼接,根據利用影像信息方法的不同可分為:基于灰度的匹配算法、基于紋理的匹配算法和基于特征的匹配算法[3]。然而,由于無人機平臺不穩定、樹木間遮擋以及樹木冠幅紋理較為單一等原因,基于灰度的匹配算法和基于紋理的匹配算法并不適用于林區影像拼接,因此選擇基于特征的匹配算法適用于林區無人機影像的拼接。
目前國內外研究學者利用SIFT和ORB算法對無人機影像的拼接進行了大量的研究和探索。Lowe[4]首次提出尺度不變特征變換算法概念(Scale invariant feature transform,SIFT),該算法的尺度不變性、旋轉不變性較好,但是在特征點的提取及描述過程中消耗時間過長,拼接的實時性較差;何敬等[5]運用SIFT算法結合最小二乘算法進行無人機大尺度影像拼接,解決了拍攝影像存在傾斜、曝光不均勻等問題,同時減少拼接過程中誤差的傳播;Mehrdad等[6]提出了一種面向實時的無人機影像拼接方法,首先運用SIFT算法提取關鍵點,然后使用rotation-aware BRIEF描述關鍵點形成特征描述向量,提高了影像匹配的速度;馬無錫[7]提出了一種閾值自適應的SIFT拼接算法,針對SIFT算法中的閾值進行系統的研究,自動調整閾值,加快了影像匹配的速率并開發了全景圖像拼接軟件。赫更新等[8]提出了SURF算法和RANSAC算法進行結合的算法對校園影像進行拼接融合,基于篩選過濾提純的方法對特征點匹配進行優化得到了較好的效果;夏巖等[9]在運用SURF算法對影像進行配準時,通過設立閾值減少檢測出的特征點并進行仿真分析,使得匹配成功率大大增加,耗時大大減少;么鴻原等[10]通過融合SURF算法和KNN算法對影像進行粗匹配,然后通過RANSAC算法進行精匹配,有效解決了拼接重影、錯位等可能發生的現象。Rublee等[11]提出ORB圖像配準方法,在圖像金字塔上利用改進FAST算法進行角點特征檢測,再使用改進的BRIEF方法進行特征描述,提高圖像拼接的速度;陳慧穎等[12]基于ORB算法進行了改進,主要針對特征點的數量以及特征點分布,增加核線約束及相關系數條件,結合最小二乘匹配算法對ORB算法進行改進;鄭輝[13]針對ORB算法特征點提取過程的不足,構建了影像金字塔尺度因子和降采樣率的關系,確定了構建描述子最佳鄰域范圍和對比時選取的最佳像素個數,實現了無人機影像快速拼接;劉婷婷[14]提出了改進的拉普拉斯金字塔融合方法,有效地消除拼接重影錯位現象,使得圖像能夠平滑過渡,實現圖像的無縫拼接。瞿中等[15]通過KAZE算法提出特征點,采用雙向KNN匹配方法篩選誤匹配點,并對多幅圖像拼接進行自動校直,改善了傾斜扭曲現象;韓敏等[16]首先利用KAZE算法提取特征點,然后采用FREAK算子對特征點進行描述,使圖像在光照、旋轉情況下有較好的拼接效果。
綜上所述,針對林區無人機影像拼接的研究較少,加上林區無人機影像特征點提取較為困難,限制了無人機在林業中的廣泛應用。因此,為了探討不同郁閉度林分下無人機影像拼接效果,本文運用SIFT算法、SURF算法、ORB算法以及KAZE算法,分別從特征提取數量、特征匹配數量、匹配正確率、特征提取與匹配消耗時間4個方面進行對比分析,以期為不同林分的無人機影像拼接選擇合適的算法打下一定基礎。
本研究選取東北林業大學城市林業示范基地(北緯45°43′10″,東經126°37′15″)為實驗樣地,采用曼圖拉(motoar Sky)ms-670無人機進行林地影像數據采集,設定無人機飛行高度為50 m,航向重疊率為75%,旁向重疊率為60%。選取3幅不同郁閉度林分影像進行拼接研究,圖1為低郁閉度林分左右影像,圖2為中郁閉度林分左右影像,圖3為高郁閉度林分左右影像。

(a) 低郁閉度林分左影像 (b) 低郁閉度林分右影像
(a) Low canopy density forest area left image (b) Low canopy density forest area right image
圖1低郁閉度林分左右影像
Fig.1 Left and right images of low canopy density forest area

圖2 中郁閉度林分左右影像Fig.2 Left and right images of medium canopy density forest area

圖3 高郁閉度林分左右影像Fig. 3 Left and right images of forest area with high canopy density
本研究采用不同算法分別將無人機獲取的兩幅不同郁閉度林區影像以及多幅林區影像進行拼接,總體流程如圖4所示。在進行拼接之前,將無人機獲取的影像進行人工識別,使無人機在進行飛行時由于飛機抖動等造成的模糊影像剔除,最后選出64幅高質量無人機影像。

圖4 總體流程圖
針對不同郁閉度林分,首先采用灰度算法對影像進行灰度處理變成灰度影像;其次對3組影像分別用4種算法進行特征點提取及特征點描述。特征點提取即將影像中像素的極大值點以及極小值點提取出來,特征點描述即賦予提取出特征點的位置和方向等信息,特征點提取及特征點描述是區分兩種算法的關鍵一步。
特征點提取完成后,在拼接左影像中取出一個特征點,設置一個閾值,根據歐式距離法計算出兩幅影像中相對應特征的距離。當最近鄰歐式距離與次近鄰歐式距離的比值小于此閾值時,將該特征點定義為匹配點。本文共設置了3個測試閾值:0.5、0.8、1.2,通過對比匹配精度后最終確定閾值為0.8為較好匹配閾值。在此基礎上通過RANSAC算法剔除誤匹配點進行精確匹配,采用像素灰度值加權融合算法進行影像融合。
針對整個無人機飛行區域,本研究設置了6組實驗類別,分別對2、4、8、16、32、64幅無人機林區影像進行拼接。按照4種算法步驟,依次對相鄰兩幅無人機林區影像進行匹配和迭代拼接。首先選取64幅無人機影像中的第一張影像作為拼接起始影像,將拍攝的第二幅影像與第一幅影像進行特征點提取、特征點描述和特征點匹配,完成第一組實驗類別;然后重新開始,按照第一組實驗方法,繼續將第三幅影像與第二幅影像進行特征點提取、特征點描述和特征點匹配,依次類推,直至6組實驗類別全部匹配完成;最后將匹配完成的影像進行統一拼接。
本研究選取3組不同郁閉度無人機林區影像進行拼接研究,分別用4種算法進行匹配、拼接,并從特征點提取數量、特征點匹配數量、正確匹配率和影像拼接消耗時間4個方面進行對比分析。
3.1.1 特征點提取數量
針對不同算法對不同郁閉度林區影像進行拼接,其特征點提取數量統計見表1。結果表明:4種算法針對低郁閉度影像特征點提取數量低于高郁閉度影像,這是由于高郁閉度林區林分樹冠間隙小,差異性較小,在進行特征點提取時產生大量特征點;而在低郁閉度影像中,由于在郁閉度較小的林分生長空間中,更新的小樹種較多,相比于優勢木的冠幅,單木與單木之間色差不顯著[17]。

表1 特征點提取數量表Tab.1 Feature matching quantity table
針對同一種郁閉度林分無人機影像,KAZE算法提取出大量的特征點,這是由于在特征檢測時構造了非線性尺度空間,檢測出的特征點較多;SURF算法和 SIFT算法在特征點檢測時將高斯差分尺度空間(DOG)的每個點與相鄰位置的每個點進行比較,找到最大或最小的極值點作為初始特征點[18],而ORB算法在特征點檢測時引入了ID 3決策樹分類算法構造了一個角點分類器對角點進行檢測[19],相比于SURF算法和SIFT算法,ORB算法對比的像素點較少。
3.1.2 特征匹配數量和正確匹配率
本次研究得到的特征點匹配數量結果見表2。結果表明:低郁閉度林分無人機影像特征點匹配數量少于高郁閉度林分無人機影像,這是由于高郁閉度影像比低郁閉度影像多提取出大量特征點,特征點匹配包括正確匹配的特征點和錯誤匹配的特征點。KAZE算法針對不同郁閉度影像其正確匹配率約為55%;ORB低郁閉度林分影像匹配率為43.47%,中、高郁閉度林分影像匹配率為約為39%;SIFT算法和SURF算法正確率都可以穩定在46%左右。針對4種算法特征點匹配,低郁閉度林分影像特征匹配結果如圖5所示,中郁閉度林分影像特征匹配結果如圖6所示,高郁閉度林分影像特征匹配結果如圖7所示。

表2 特征點匹配數量和正確匹配率Tab.2 Number of feature point matches and correct matching rate
3.1.3 影像拼接消耗時間
影像拼接消耗時間包括特征點提取、特征點描述、特征點正確匹配和影像融合4個部分,影像拼接消耗時間反映拼接的實時性。對于低郁閉度林區影像拼接,SIFT算法、SURF算法、ORB算法、KAZE算法完成影像拼接需要花費時間分別為12.035、9.72、7.721、17.21 s;拼接中郁閉度林區影像時,相應的4種算法完成影像拼接需要花費時間分別為16.125、13.15、9.14、21.08 s;對于高郁閉度林區影像,相應的4種算法完成影像拼接需要花費時間分別為20.081、18.27、15.632、24.32 s。

圖6 中郁閉度林分影像特征點匹配Fig.6 Image feature point matching of middle canopy density stand

圖7 高郁閉度林分影像特征點匹配Fig.7 Image feature point matching of forest area with high canopy density stand
從拼接消耗時間可看出,KAZE算法影像拼接消耗時間最長,這是由于非線性尺度空間比線性尺度空間計算量大,在特征點檢測時消耗大量時間;ORB算法消耗時間最短,這是由于在特征點檢測時對像素點周圍16個點進行比較,而SIFT算法是對像素點3×3×3周圍的共26個像素點進行比較,消耗時間大大減少;SURF算法比SIFT算法耗時少,因為在進行特征點描述時,SIFT算法采用128維向量對特征點進行描述,而SURF算法與KAZE算法一樣,采用64維向量對特征點進行描述,較SIFT算法維度低,描述過程更簡單。
由于無人機進行高空飛行時獲取的并不是一幅影像,而是連續獲取多幅影像,所以兩幅影像進行拼接可能會存在一些偶然情況,并不能確定每種算法對高郁閉度影像、中郁閉度影像以及低郁閉度影像拼接的準確性。因此,本研究設置了6組實驗類別,分別對2、4、8、16、32、64幅無人機林區影像進行拼接。
3.2.1 多幅影像拼接消耗時間
多幅影像拼接消耗時間如圖8所示。從圖8中可以看出,隨著影像張數的增多,相應的影像拼接消耗時間也增大。總體來說,SIFT算法在處理影像拼接時消耗時間大約為ORB算法的2倍。64幅影像拼接完成后,SIFT算法共消耗時間876.3 s,SURF算法共消耗時間577.8 s,ORB算法共消耗時間417.2 s,KAZE算法共消耗時間806.8 s。SIFT算法和KAZE算法在影像拼接總體消耗時間上表現較差,而SURF算法和ORB算法表現較好。這是由

圖8 不同拼接照片數量消耗時間Fig.8 Time consumption of different number of photos
于SIFT算法和ORB算法在每一幅影像中針對特征點提取和特征點描述過程中的方法不同,SIFT算法表現出一定的復雜性,而ORB算法則表現出一定的優勢。
SIFT算法和KAZE算法影像拼接消耗時間較長,這是由于SIFT算法在特征點描述時采用128維向量作為特征描述子,KAZE算法在進行特征點檢測時建立的非線性尺度空間比線性尺度空間計算量大,所以兩種算法的影像拼接所耗時間較長;SURF算法和ORB算法消耗時間較短,這是由于SURF算法在進行特征點描述時,有64維向量作為特征描述子,ORB算法在特征點檢測時對像素點周圍16個點進行比較,進行特征點檢測及描述較快,所以兩種算法的影像拼接所耗時間較短。
3.2.2 平均特征點正確匹配率
本研究針對6組不同幅數無人機林區影像進行拼接,計算出每組實驗平均特征點正確匹配率,平均特征點正確匹配率見表3。

表3 平均特征點正確匹配率Tab.3 Average matching rate of feature points %
4種算法對多幅影像拼接時平均特征點正確匹配率相差不大,SIFT約為47%,SURF約為42%,ORB約為38%,KAZE約為51%。SIFT算法和KAZE算法有著較高的正確匹配率,這是由于SIFT算法在特征點提取及特征點描述過程中表現出的穩定性,KAZE算法是基于非線性尺度空間的特征點檢測算法,其特征點提取較穩定。SURF算法和ORB算法有著較低的正確匹配率,這是由于SURF算法采用Harr小波特征對特征點進行方向確定,并采用64維向量作為特征描述子,ORB算法引入了角點檢測的方法,且拼接林區多為高郁閉度影像,無人機拍攝時間為2018年9月,為林分生長茂盛時期,低郁閉度區域較少。
3.2.3 影像拼接效果
本文運用SIFT算法、SURF算法、ORB算法和KAZE算法拼接出64幅無人機林區影像,從整體視覺效果可以看出4種算法對影像拼接相差不大,對后期進行林分內冠幅提取、生物量估算等方面都有很大幫助。4種不同算法對64幅影像拼接效果如圖9所示。從圖9中可以看出,由于ORB算法匹配正確率低、匹配數量少的原因,在進行影像拼接過程中會出現拼接錯位、變形現象,其中標記位置1有明顯的錯位現象,將高郁閉度區域拼接到低郁閉度區域;標記位置2為明顯變形現象,林間道路變形。而SIFT算法、SURF算法和KAZE算法匹配率較高,拼接結果表現較好,未發現變形、錯位現象。
本文分別運用SIFT算法、SURF算法、ORB算法和KAZE算法對獲取的不同郁閉度林分的無人機影像進行拼接研究,從影像拼接過程中的特征提取數量、特征匹配數量、匹配正確率和影像拼接消耗時間4個方面進行了對比分析。結果表明,運用SIFT算法和KAZE算法在拼接林區無人機影像時,兩種算法可以保證特征點匹配的正確率,但是兩種算法的時間效率較低;SURF算法和ORB算法可以保證拼接的時間效率,但針對正確匹配率存在一定的不足。針對低郁閉度林區無人機影像拼接,ORB算法正確匹配率與SIFT算法相差不大,但是所耗時間短,所以低郁閉度林分無人機影像拼接可選擇ORB算法;針對中、高郁閉度林分無人機影像拼接,SIFT算法和SURF算法正確匹配率在45%左右,KAZE算法在55%左右,若研究偏向于精度,則選擇KAZE算法,若研究更偏向于效率,則選擇SURF算法。
本研究采用的4種算法對林區影像的拼接精度較低,這是由于進行林區影像拼接時,影像中林分冠幅多且密,特征點提取困難。但SIFT算法對一般居民區及平原地區影像拼接精度可達到75%左右[20],ORB算法對一般居民區及平原地區影像拼接精度可達到65%左右[21],提高無人機林區影像拼接精度是下一步研究的主要方向。而且由于無人機在進行拍攝時會發生抖動,所以造成獲取無人機影像發生模糊、扭曲等現象,在拼接時會發生較大程度變形,而且本文算法在進行拼接時是將獲取的相鄰影像依次導入進行拼接,對無序無人機影像進行拼接時本研究的3種算法并不適用,所以,今后研究方向要偏向于去除質量差的影像并進行無序無人機林區影像拼接。

圖9 不同算法拼接結果 Fig.9 Image stitching results by different algorithms