徐永勝,楊玉澤,林文樹
(東北林業(yè)大學(xué) 工程技術(shù)學(xué)院,哈爾濱 150040)
近年來,無人機(jī)低空遙感技術(shù)已經(jīng)應(yīng)用到諸多領(lǐng)域,例如防災(zāi)減災(zāi)、軍事偵察、土地調(diào)查和環(huán)境監(jiān)測等[1]。由于無人機(jī)進(jìn)行影像獲取時(shí)飛行高度較低,獲取的影像數(shù)據(jù)覆蓋的面積過小,在后期進(jìn)行森林結(jié)構(gòu)參數(shù)提取時(shí),會(huì)因?yàn)槟繕?biāo)區(qū)域不在同一幅影像上而造成一定的誤差。因此,影像拼接的目的就是將從真實(shí)世界中獲取的不同影像合成為寬視場影像[2]。目前的無人機(jī)影像拼接,根據(jù)利用影像信息方法的不同可分為:基于灰度的匹配算法、基于紋理的匹配算法和基于特征的匹配算法[3]。然而,由于無人機(jī)平臺(tái)不穩(wěn)定、樹木間遮擋以及樹木冠幅紋理較為單一等原因,基于灰度的匹配算法和基于紋理的匹配算法并不適用于林區(qū)影像拼接,因此選擇基于特征的匹配算法適用于林區(qū)無人機(jī)影像的拼接。
目前國內(nèi)外研究學(xué)者利用SIFT和ORB算法對無人機(jī)影像的拼接進(jìn)行了大量的研究和探索。Lowe[4]首次提出尺度不變特征變換算法概念(Scale invariant feature transform,SIFT),該算法的尺度不變性、旋轉(zhuǎn)不變性較好,但是在特征點(diǎn)的提取及描述過程中消耗時(shí)間過長,拼接的實(shí)時(shí)性較差;何敬等[5]運(yùn)用SIFT算法結(jié)合最小二乘算法進(jìn)行無人機(jī)大尺度影像拼接,解決了拍攝影像存在傾斜、曝光不均勻等問題,同時(shí)減少拼接過程中誤差的傳播;Mehrdad等[6]提出了一種面向?qū)崟r(shí)的無人機(jī)影像拼接方法,首先運(yùn)用SIFT算法提取關(guān)鍵點(diǎn),然后使用rotation-aware BRIEF描述關(guān)鍵點(diǎn)形成特征描述向量,提高了影像匹配的速度;馬無錫[7]提出了一種閾值自適應(yīng)的SIFT拼接算法,針對SIFT算法中的閾值進(jìn)行系統(tǒng)的研究,自動(dòng)調(diào)整閾值,加快了影像匹配的速率并開發(fā)了全景圖像拼接軟件。赫更新等[8]提出了SURF算法和RANSAC算法進(jìn)行結(jié)合的算法對校園影像進(jìn)行拼接融合,基于篩選過濾提純的方法對特征點(diǎn)匹配進(jìn)行優(yōu)化得到了較好的效果;夏巖等[9]在運(yùn)用SURF算法對影像進(jìn)行配準(zhǔn)時(shí),通過設(shè)立閾值減少檢測出的特征點(diǎn)并進(jìn)行仿真分析,使得匹配成功率大大增加,耗時(shí)大大減少;么鴻原等[10]通過融合SURF算法和KNN算法對影像進(jìn)行粗匹配,然后通過RANSAC算法進(jìn)行精匹配,有效解決了拼接重影、錯(cuò)位等可能發(fā)生的現(xiàn)象。Rublee等[11]提出ORB圖像配準(zhǔn)方法,在圖像金字塔上利用改進(jìn)FAST算法進(jìn)行角點(diǎn)特征檢測,再使用改進(jìn)的BRIEF方法進(jìn)行特征描述,提高圖像拼接的速度;陳慧穎等[12]基于ORB算法進(jìn)行了改進(jìn),主要針對特征點(diǎn)的數(shù)量以及特征點(diǎn)分布,增加核線約束及相關(guān)系數(shù)條件,結(jié)合最小二乘匹配算法對ORB算法進(jìn)行改進(jìn);鄭輝[13]針對ORB算法特征點(diǎn)提取過程的不足,構(gòu)建了影像金字塔尺度因子和降采樣率的關(guān)系,確定了構(gòu)建描述子最佳鄰域范圍和對比時(shí)選取的最佳像素個(gè)數(shù),實(shí)現(xiàn)了無人機(jī)影像快速拼接;劉婷婷[14]提出了改進(jìn)的拉普拉斯金字塔融合方法,有效地消除拼接重影錯(cuò)位現(xiàn)象,使得圖像能夠平滑過渡,實(shí)現(xiàn)圖像的無縫拼接。瞿中等[15]通過KAZE算法提出特征點(diǎn),采用雙向KNN匹配方法篩選誤匹配點(diǎn),并對多幅圖像拼接進(jìn)行自動(dòng)校直,改善了傾斜扭曲現(xiàn)象;韓敏等[16]首先利用KAZE算法提取特征點(diǎn),然后采用FREAK算子對特征點(diǎn)進(jìn)行描述,使圖像在光照、旋轉(zhuǎn)情況下有較好的拼接效果。
綜上所述,針對林區(qū)無人機(jī)影像拼接的研究較少,加上林區(qū)無人機(jī)影像特征點(diǎn)提取較為困難,限制了無人機(jī)在林業(yè)中的廣泛應(yīng)用。因此,為了探討不同郁閉度林分下無人機(jī)影像拼接效果,本文運(yùn)用SIFT算法、SURF算法、ORB算法以及KAZE算法,分別從特征提取數(shù)量、特征匹配數(shù)量、匹配正確率、特征提取與匹配消耗時(shí)間4個(gè)方面進(jìn)行對比分析,以期為不同林分的無人機(jī)影像拼接選擇合適的算法打下一定基礎(chǔ)。
本研究選取東北林業(yè)大學(xué)城市林業(yè)示范基地(北緯45°43′10″,東經(jīng)126°37′15″)為實(shí)驗(yàn)樣地,采用曼圖拉(motoar Sky)ms-670無人機(jī)進(jìn)行林地影像數(shù)據(jù)采集,設(shè)定無人機(jī)飛行高度為50 m,航向重疊率為75%,旁向重疊率為60%。選取3幅不同郁閉度林分影像進(jìn)行拼接研究,圖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
本研究采用不同算法分別將無人機(jī)獲取的兩幅不同郁閉度林區(qū)影像以及多幅林區(qū)影像進(jìn)行拼接,總體流程如圖4所示。在進(jìn)行拼接之前,將無人機(jī)獲取的影像進(jìn)行人工識(shí)別,使無人機(jī)在進(jìn)行飛行時(shí)由于飛機(jī)抖動(dòng)等造成的模糊影像剔除,最后選出64幅高質(zhì)量無人機(jī)影像。
圖4 總體流程圖
針對不同郁閉度林分,首先采用灰度算法對影像進(jìn)行灰度處理變成灰度影像;其次對3組影像分別用4種算法進(jìn)行特征點(diǎn)提取及特征點(diǎn)描述。特征點(diǎn)提取即將影像中像素的極大值點(diǎn)以及極小值點(diǎn)提取出來,特征點(diǎn)描述即賦予提取出特征點(diǎn)的位置和方向等信息,特征點(diǎn)提取及特征點(diǎn)描述是區(qū)分兩種算法的關(guān)鍵一步。
特征點(diǎn)提取完成后,在拼接左影像中取出一個(gè)特征點(diǎn),設(shè)置一個(gè)閾值,根據(jù)歐式距離法計(jì)算出兩幅影像中相對應(yīng)特征的距離。當(dāng)最近鄰歐式距離與次近鄰歐式距離的比值小于此閾值時(shí),將該特征點(diǎn)定義為匹配點(diǎn)。本文共設(shè)置了3個(gè)測試閾值:0.5、0.8、1.2,通過對比匹配精度后最終確定閾值為0.8為較好匹配閾值。在此基礎(chǔ)上通過RANSAC算法剔除誤匹配點(diǎn)進(jìn)行精確匹配,采用像素灰度值加權(quán)融合算法進(jìn)行影像融合。
針對整個(gè)無人機(jī)飛行區(qū)域,本研究設(shè)置了6組實(shí)驗(yàn)類別,分別對2、4、8、16、32、64幅無人機(jī)林區(qū)影像進(jìn)行拼接。按照4種算法步驟,依次對相鄰兩幅無人機(jī)林區(qū)影像進(jìn)行匹配和迭代拼接。首先選取64幅無人機(jī)影像中的第一張影像作為拼接起始影像,將拍攝的第二幅影像與第一幅影像進(jìn)行特征點(diǎn)提取、特征點(diǎn)描述和特征點(diǎn)匹配,完成第一組實(shí)驗(yàn)類別;然后重新開始,按照第一組實(shí)驗(yàn)方法,繼續(xù)將第三幅影像與第二幅影像進(jìn)行特征點(diǎn)提取、特征點(diǎn)描述和特征點(diǎn)匹配,依次類推,直至6組實(shí)驗(yàn)類別全部匹配完成;最后將匹配完成的影像進(jìn)行統(tǒng)一拼接。
本研究選取3組不同郁閉度無人機(jī)林區(qū)影像進(jìn)行拼接研究,分別用4種算法進(jìn)行匹配、拼接,并從特征點(diǎn)提取數(shù)量、特征點(diǎn)匹配數(shù)量、正確匹配率和影像拼接消耗時(shí)間4個(gè)方面進(jìn)行對比分析。
3.1.1 特征點(diǎn)提取數(shù)量
針對不同算法對不同郁閉度林區(qū)影像進(jìn)行拼接,其特征點(diǎn)提取數(shù)量統(tǒng)計(jì)見表1。結(jié)果表明:4種算法針對低郁閉度影像特征點(diǎn)提取數(shù)量低于高郁閉度影像,這是由于高郁閉度林區(qū)林分樹冠間隙小,差異性較小,在進(jìn)行特征點(diǎn)提取時(shí)產(chǎn)生大量特征點(diǎn);而在低郁閉度影像中,由于在郁閉度較小的林分生長空間中,更新的小樹種較多,相比于優(yōu)勢木的冠幅,單木與單木之間色差不顯著[17]。
表1 特征點(diǎn)提取數(shù)量表Tab.1 Feature matching quantity table
針對同一種郁閉度林分無人機(jī)影像,KAZE算法提取出大量的特征點(diǎn),這是由于在特征檢測時(shí)構(gòu)造了非線性尺度空間,檢測出的特征點(diǎn)較多;SURF算法和 SIFT算法在特征點(diǎn)檢測時(shí)將高斯差分尺度空間(DOG)的每個(gè)點(diǎn)與相鄰位置的每個(gè)點(diǎn)進(jìn)行比較,找到最大或最小的極值點(diǎn)作為初始特征點(diǎn)[18],而ORB算法在特征點(diǎn)檢測時(shí)引入了ID 3決策樹分類算法構(gòu)造了一個(gè)角點(diǎn)分類器對角點(diǎn)進(jìn)行檢測[19],相比于SURF算法和SIFT算法,ORB算法對比的像素點(diǎn)較少。
3.1.2 特征匹配數(shù)量和正確匹配率
本次研究得到的特征點(diǎn)匹配數(shù)量結(jié)果見表2。結(jié)果表明:低郁閉度林分無人機(jī)影像特征點(diǎn)匹配數(shù)量少于高郁閉度林分無人機(jī)影像,這是由于高郁閉度影像比低郁閉度影像多提取出大量特征點(diǎn),特征點(diǎn)匹配包括正確匹配的特征點(diǎn)和錯(cuò)誤匹配的特征點(diǎn)。KAZE算法針對不同郁閉度影像其正確匹配率約為55%;ORB低郁閉度林分影像匹配率為43.47%,中、高郁閉度林分影像匹配率為約為39%;SIFT算法和SURF算法正確率都可以穩(wěn)定在46%左右。針對4種算法特征點(diǎn)匹配,低郁閉度林分影像特征匹配結(jié)果如圖5所示,中郁閉度林分影像特征匹配結(jié)果如圖6所示,高郁閉度林分影像特征匹配結(jié)果如圖7所示。
表2 特征點(diǎn)匹配數(shù)量和正確匹配率Tab.2 Number of feature point matches and correct matching rate
3.1.3 影像拼接消耗時(shí)間
影像拼接消耗時(shí)間包括特征點(diǎn)提取、特征點(diǎn)描述、特征點(diǎn)正確匹配和影像融合4個(gè)部分,影像拼接消耗時(shí)間反映拼接的實(shí)時(shí)性。對于低郁閉度林區(qū)影像拼接,SIFT算法、SURF算法、ORB算法、KAZE算法完成影像拼接需要花費(fèi)時(shí)間分別為12.035、9.72、7.721、17.21 s;拼接中郁閉度林區(qū)影像時(shí),相應(yīng)的4種算法完成影像拼接需要花費(fèi)時(shí)間分別為16.125、13.15、9.14、21.08 s;對于高郁閉度林區(qū)影像,相應(yīng)的4種算法完成影像拼接需要花費(fèi)時(shí)間分別為20.081、18.27、15.632、24.32 s。
圖6 中郁閉度林分影像特征點(diǎn)匹配Fig.6 Image feature point matching of middle canopy density stand
圖7 高郁閉度林分影像特征點(diǎn)匹配Fig.7 Image feature point matching of forest area with high canopy density stand
從拼接消耗時(shí)間可看出,KAZE算法影像拼接消耗時(shí)間最長,這是由于非線性尺度空間比線性尺度空間計(jì)算量大,在特征點(diǎn)檢測時(shí)消耗大量時(shí)間;ORB算法消耗時(shí)間最短,這是由于在特征點(diǎn)檢測時(shí)對像素點(diǎn)周圍16個(gè)點(diǎn)進(jìn)行比較,而SIFT算法是對像素點(diǎn)3×3×3周圍的共26個(gè)像素點(diǎn)進(jìn)行比較,消耗時(shí)間大大減少;SURF算法比SIFT算法耗時(shí)少,因?yàn)樵谶M(jìn)行特征點(diǎn)描述時(shí),SIFT算法采用128維向量對特征點(diǎn)進(jìn)行描述,而SURF算法與KAZE算法一樣,采用64維向量對特征點(diǎn)進(jìn)行描述,較SIFT算法維度低,描述過程更簡單。
由于無人機(jī)進(jìn)行高空飛行時(shí)獲取的并不是一幅影像,而是連續(xù)獲取多幅影像,所以兩幅影像進(jìn)行拼接可能會(huì)存在一些偶然情況,并不能確定每種算法對高郁閉度影像、中郁閉度影像以及低郁閉度影像拼接的準(zhǔn)確性。因此,本研究設(shè)置了6組實(shí)驗(yàn)類別,分別對2、4、8、16、32、64幅無人機(jī)林區(qū)影像進(jìn)行拼接。
3.2.1 多幅影像拼接消耗時(shí)間
多幅影像拼接消耗時(shí)間如圖8所示。從圖8中可以看出,隨著影像張數(shù)的增多,相應(yīng)的影像拼接消耗時(shí)間也增大??傮w來說,SIFT算法在處理影像拼接時(shí)消耗時(shí)間大約為ORB算法的2倍。64幅影像拼接完成后,SIFT算法共消耗時(shí)間876.3 s,SURF算法共消耗時(shí)間577.8 s,ORB算法共消耗時(shí)間417.2 s,KAZE算法共消耗時(shí)間806.8 s。SIFT算法和KAZE算法在影像拼接總體消耗時(shí)間上表現(xiàn)較差,而SURF算法和ORB算法表現(xiàn)較好。這是由
圖8 不同拼接照片數(shù)量消耗時(shí)間Fig.8 Time consumption of different number of photos
于SIFT算法和ORB算法在每一幅影像中針對特征點(diǎn)提取和特征點(diǎn)描述過程中的方法不同,SIFT算法表現(xiàn)出一定的復(fù)雜性,而ORB算法則表現(xiàn)出一定的優(yōu)勢。
SIFT算法和KAZE算法影像拼接消耗時(shí)間較長,這是由于SIFT算法在特征點(diǎn)描述時(shí)采用128維向量作為特征描述子,KAZE算法在進(jìn)行特征點(diǎn)檢測時(shí)建立的非線性尺度空間比線性尺度空間計(jì)算量大,所以兩種算法的影像拼接所耗時(shí)間較長;SURF算法和ORB算法消耗時(shí)間較短,這是由于SURF算法在進(jìn)行特征點(diǎn)描述時(shí),有64維向量作為特征描述子,ORB算法在特征點(diǎn)檢測時(shí)對像素點(diǎn)周圍16個(gè)點(diǎn)進(jìn)行比較,進(jìn)行特征點(diǎn)檢測及描述較快,所以兩種算法的影像拼接所耗時(shí)間較短。
3.2.2 平均特征點(diǎn)正確匹配率
本研究針對6組不同幅數(shù)無人機(jī)林區(qū)影像進(jìn)行拼接,計(jì)算出每組實(shí)驗(yàn)平均特征點(diǎn)正確匹配率,平均特征點(diǎn)正確匹配率見表3。
表3 平均特征點(diǎn)正確匹配率Tab.3 Average matching rate of feature points %
4種算法對多幅影像拼接時(shí)平均特征點(diǎn)正確匹配率相差不大,SIFT約為47%,SURF約為42%,ORB約為38%,KAZE約為51%。SIFT算法和KAZE算法有著較高的正確匹配率,這是由于SIFT算法在特征點(diǎn)提取及特征點(diǎn)描述過程中表現(xiàn)出的穩(wěn)定性,KAZE算法是基于非線性尺度空間的特征點(diǎn)檢測算法,其特征點(diǎn)提取較穩(wěn)定。SURF算法和ORB算法有著較低的正確匹配率,這是由于SURF算法采用Harr小波特征對特征點(diǎn)進(jìn)行方向確定,并采用64維向量作為特征描述子,ORB算法引入了角點(diǎn)檢測的方法,且拼接林區(qū)多為高郁閉度影像,無人機(jī)拍攝時(shí)間為2018年9月,為林分生長茂盛時(shí)期,低郁閉度區(qū)域較少。
3.2.3 影像拼接效果
本文運(yùn)用SIFT算法、SURF算法、ORB算法和KAZE算法拼接出64幅無人機(jī)林區(qū)影像,從整體視覺效果可以看出4種算法對影像拼接相差不大,對后期進(jìn)行林分內(nèi)冠幅提取、生物量估算等方面都有很大幫助。4種不同算法對64幅影像拼接效果如圖9所示。從圖9中可以看出,由于ORB算法匹配正確率低、匹配數(shù)量少的原因,在進(jìn)行影像拼接過程中會(huì)出現(xiàn)拼接錯(cuò)位、變形現(xiàn)象,其中標(biāo)記位置1有明顯的錯(cuò)位現(xiàn)象,將高郁閉度區(qū)域拼接到低郁閉度區(qū)域;標(biāo)記位置2為明顯變形現(xiàn)象,林間道路變形。而SIFT算法、SURF算法和KAZE算法匹配率較高,拼接結(jié)果表現(xiàn)較好,未發(fā)現(xiàn)變形、錯(cuò)位現(xiàn)象。
本文分別運(yùn)用SIFT算法、SURF算法、ORB算法和KAZE算法對獲取的不同郁閉度林分的無人機(jī)影像進(jìn)行拼接研究,從影像拼接過程中的特征提取數(shù)量、特征匹配數(shù)量、匹配正確率和影像拼接消耗時(shí)間4個(gè)方面進(jìn)行了對比分析。結(jié)果表明,運(yùn)用SIFT算法和KAZE算法在拼接林區(qū)無人機(jī)影像時(shí),兩種算法可以保證特征點(diǎn)匹配的正確率,但是兩種算法的時(shí)間效率較低;SURF算法和ORB算法可以保證拼接的時(shí)間效率,但針對正確匹配率存在一定的不足。針對低郁閉度林區(qū)無人機(jī)影像拼接,ORB算法正確匹配率與SIFT算法相差不大,但是所耗時(shí)間短,所以低郁閉度林分無人機(jī)影像拼接可選擇ORB算法;針對中、高郁閉度林分無人機(jī)影像拼接,SIFT算法和SURF算法正確匹配率在45%左右,KAZE算法在55%左右,若研究偏向于精度,則選擇KAZE算法,若研究更偏向于效率,則選擇SURF算法。
本研究采用的4種算法對林區(qū)影像的拼接精度較低,這是由于進(jìn)行林區(qū)影像拼接時(shí),影像中林分冠幅多且密,特征點(diǎn)提取困難。但SIFT算法對一般居民區(qū)及平原地區(qū)影像拼接精度可達(dá)到75%左右[20],ORB算法對一般居民區(qū)及平原地區(qū)影像拼接精度可達(dá)到65%左右[21],提高無人機(jī)林區(qū)影像拼接精度是下一步研究的主要方向。而且由于無人機(jī)在進(jìn)行拍攝時(shí)會(huì)發(fā)生抖動(dòng),所以造成獲取無人機(jī)影像發(fā)生模糊、扭曲等現(xiàn)象,在拼接時(shí)會(huì)發(fā)生較大程度變形,而且本文算法在進(jìn)行拼接時(shí)是將獲取的相鄰影像依次導(dǎo)入進(jìn)行拼接,對無序無人機(jī)影像進(jìn)行拼接時(shí)本研究的3種算法并不適用,所以,今后研究方向要偏向于去除質(zhì)量差的影像并進(jìn)行無序無人機(jī)林區(qū)影像拼接。
圖9 不同算法拼接結(jié)果 Fig.9 Image stitching results by different algorithms