劉順利 劉昌華
(河南理工大學測繪與國土信息工程學院,河南 焦作 454003)
松材線蟲病具有極強的傳染性,傳播途徑主要通過傳播媒介(主要以松墨天牛為主)進行擴散傳播[1]。松材線蟲病的防治手段主要是通過實地調查[2],及時發(fā)現、確定疑似染病松樹的位置,但該方法費時費力,受主觀因素影響較大。借助高分辨率遙感影像[3]雖可提取受害松樹位置,但易受云霧等天氣影響,存在時間滯后性、成本高、分辨率難以達到單株識別的問題。無人機影像[4,5]因獲取靈活、分辨率高、時效性強、成本低等優(yōu)勢,在單株染病松樹的檢測方面得到廣泛應用。
基于無人機影像的染病松樹檢測,主要有面向對象技術和目標檢測算法。李衛(wèi)正等[6]基于無人機影像,采用目視判讀的方法進行染病松樹的識別,但該方法存在判讀效率低和識別精度低的問題;陶歡等[7]對目視解譯的人工判讀低下問題進行改進,提出基于HVS閾值劃分方法識別染病松樹,提高人工判讀的效率;劉遐齡等[8]提出了模板匹配和面向對象分類相結合的方法,有效提高染病松樹識別的效率,同樣也存在識別精度較低的問題。針對上述問題,目標檢測算法能夠提高染病松樹檢測效率和精度,使得目標檢測算法結合無人機影像,在染病松樹檢測研究日益火熱;張瑞瑞等[9]基于U-Net網絡松材線蟲病變色木識別相比隨機森林方法,提高了識別效率;李鳳迪等[10]基于改進YOLO v3算法的松材線蟲病樹檢測方法,提升了病樹檢測的效率和速度。此外,FasterR-CNN應用于立交橋自動識別與定位[11]、鐵道扣件定位[12]、茶葉嫩芽圖像識別[13]和遙感影像船舶識別檢測[14],SSD應用于遙感影像小目標檢測[15]、軌道扣件[16]都有著良好的檢測效率和識別精度??紤]我國南方每年春秋2次的松材線蟲病普查,染病松樹砍伐處理措施(擇伐為主,皆伐為輔);結合松材線蟲病誘發(fā)松樹感染致死周期(檢測范圍遴選),以及王震、徐華潮等[17,18]對染病松樹光譜特征的研究,將染病中后期階段的松樹作為檢測范圍,因為該范圍內的松樹針葉顏色為黃褐色和紅褐色與健康松樹針葉墨綠色的顏色對比明顯,易于檢測。
本文采用FasterR-CNN、SSD和YOLO v4這3種典型的目標檢測算法,檢測松材線蟲病普查的無人機影像中的染病松樹,通過對模型的評價指標和檢測精度進行分析,并引入面向對象的VEG-OSTU方法對比試驗,探討目標檢測算法替代面向對象方法應用于染病松樹檢測的可行性以及最佳模型的確定,為松材線蟲病普查工作提供一種新方法。
研究區(qū)位于廣東省陽山縣(N24°29′26″~24°29′50″,E112°36′29°~112°37′07″),如圖1所示。研究區(qū)域面積為0.5902km2,海拔落差179.3m,正射影像圖分辨率為0.0653m×0.0653m;該地區(qū)屬于山地,林區(qū)樹種是以馬尾松為主的松林,氣候類型為亞熱帶季風氣候,降雨充沛,最冷月平均溫度為18℃,非常適宜松材線蟲的生存,在2018年[19]和2021年[20],該地區(qū)是廣東省松材線蟲病爆發(fā)的重要監(jiān)測區(qū)域。
圖1 研究區(qū)概況
本文采用攜帶RGB相機的大疆精靈4Pro無人機,數據獲取時間為2020年11月18日15∶00,考慮研究區(qū)域的海拔落差為179.3m,因此將無人機飛行的相對高度設置為200m,飛行的航向重疊率和旁向重疊率分別設為80%和60%,共獲取84張影像。利用Pix-4Dmapper軟件自動獲取數字正射影像圖(Digital Orthophoto Map,DOM),使用ArcGIS軟件基于像素對數字正射影像圖進行柵格數據分割,生成尺寸大小為256×256像素的柵格數據集,獲取攜帶染病松樹的訓練區(qū)圖像300張和驗證區(qū)圖像43張。由于深度學習的模型訓練需要大量的樣本數據,而本文研究區(qū)染病松樹的數據量較少,所以采用Lightroom軟件中圖像旋轉、圖像增強等方法,實現對染病松樹訓練樣本數據的擴充,最終獲取攜帶染病松樹的1000張訓練圖片,共有染病松樹1423株。
染病松樹與健康松樹的針葉在顏色和形態(tài)上的差異,便于區(qū)分;但研究區(qū)存在部分土壤、其它枯死木、被砍伐的松樹以及建筑物等地物,干擾染病松樹的檢測;干擾地物,如圖2所示。為了目標檢測算法模型能夠訓練,首先需要對訓練樣本數據進行標注;使用LabelImg對染病松樹區(qū)域進行標注,生成染病松樹區(qū)域范圍的可擴展標記語言(XML)文件,制作Pascal VOC數據集;標注完成后,按訓練集∶測試集為9∶1的比例進行隨機分配,獲取900張圖片分為訓練集,100張圖片分為測試集;此外,驗證集圖片43張,共有染病松樹92株。
圖2 研究區(qū)內干擾地物類型
目標檢測算法框架主要分為One-stage和Two-stage 2類;基于One-stage的目標檢測算法框架能夠同時完成回歸和分類過程,如YOLO、SSD等,這一類算法的整體檢測速度更快,識別精度較低;基于Two-stage的目標檢測算法框架主要將檢測分為回歸和分類2個過程,如Fast RCNN、Faster R-CNN等,整體識別精度更高,檢測速度較低。
Faster R-CNN[21]是基于Fast R-CNN算法的基礎上,引入區(qū)域建議網絡(Region Proposal Network,RPN)取代選擇性搜索算法,RPN將區(qū)域建議提取集成到DCNN,與整個檢測過程共享所有圖像的卷積特征。RPN在每個位置同時預測目標邊界框和類別置信度分數,實現目標檢測端到端的訓練,提升網絡的計算速度。Faster R-CNN使用VGG-16骨干網絡,網絡由卷積層、RPN、RoI Pooling層、分類和回歸部分構成。Faster R-CNN對染病松樹的檢測流程,如圖3a所示。
YOLO v4是在YOLO v3的基礎上進行改進,在保證速度的同時,提升了模型的檢測精度。該模型主要做出以下改進:采用CSPDark Net53主干網絡代替Dark Net-53;SPP+PAN(Path Aggregation Network)代替FPN來融合不同尺寸特征圖的特征信息;引入Cut Mix數據增強和Mosaic數據增強;Drop Block正則化。YOLO v4對染病松樹的檢測流程,如圖3b所示。
SSD借鑒了YOLO的網格化和Faster R-CNN的anchor機制的一種目標檢測算法,平衡算法的檢測精度和檢測速度。SSD使用VGG16骨干網絡進行特征提取,使用2個分別為3×3和1×1的卷積核的卷積層代替F6和F7,取消VGG16的Dropout層和F8全連接層,增加4個新卷積層,實現網絡的全卷積。算法采用分層提取特征,將單級網絡劃分為6級,每個階段提取不同語義層次的特征圖進行目標分類和邊界框回歸,多尺度特征圖與Anchor機制相結合提升算法對不同尺度目標物的檢測能力。SSD檢測染病松樹的流程,如圖3c所示。
圖3 目標檢測算法檢測流程
2.4.1 實驗平臺
表1 實驗環(huán)境配置
模型訓練時消耗大量的時間,本文主要目的是探討目標檢測算法在松材線蟲病疫情普查工作中替代人工踏查和面向對象方法,確定染病松樹的株數和位置信息。綜合考慮時間成本和經濟成本,本文設定的實驗環(huán)境配置如表1所示。
2.4.2 評價指標
本文算法模型的評價指標采用精確率P(Precision)、召回率R(Recall)、總體精度Fl、每秒檢測圖片數量FPS(Average Per Second)和平均精度AP(Average Precision)等指標對網絡模型的檢測與識別結果進行評估;其中P、R、Fl和AP的值越高,代表檢測與識別結果越準確;FPS值越高,代表檢測速度越快。相關公式:
(1)
(2)
(3)
(4)
(5)
式中,Pt表示檢測結果和真實情況相符,均為染病松樹區(qū)域;Pf表示檢測結果和真實情況不相符,誤將其它區(qū)域當作染病松樹區(qū)域;Nf表示檢測結果和真實情況不相符,誤將染病松樹區(qū)域當作其它區(qū)域;T表示每張圖片檢測所需時間。
由于實驗數據集樣本較少,使得模型的泛化能力和穩(wěn)定性不能有效發(fā)揮,模型訓練時出現過擬合問題。為了解決該問題,采用5折交叉驗證。將訓練集樣本分成5份,分別將不同的4份樣本用于訓練、1份用于測試,得到模型的5個損失值;將平均損失值作為最終的模型評價指標。在相同硬件條件下,算法結構越復雜訓練速度越慢,影響模型的訓練進度。訓練參數的設定十分重要;Batch_size大小決定單次訓練迭代(Epochs)時間和迭代梯度的平滑程度;學習率(Learning rate)大小影響模型是否收斂及收斂程度。結合實驗環(huán)境分別對3種模型進行參數調試,最終確定不同模型的最優(yōu)訓練參數,如表2所示。
表2 模型框架訓練參數設置
不同的目標檢測算法對染病松樹這一目標物進行訓練,得到各個算法最佳權重文件,對模型性能進行評估。由于本次實驗的檢測目標只有染病松樹,算法模型對染病松樹優(yōu)劣的評價指標有精確率(Precision)和召回率(Recall)、AP、F1和FPS。算法模型的IOU閾值為0.50,其評估結果如表3所示。當不同模型的IOU閾值為0.5時,針對染病松樹檢測其AP和F1由高到低分別為SSD、YOLO v4、Faster R-CNN;3種模型的精確率由高到低分別為YOLO v4、SSD、Faster R-CNN,即YOLO v4將其它地物檢測為染病松樹的比例最小;3種模型的召回率由高到低分別為SSD、Faster R-CNN、YOLO v4,即SSD對染病松樹的檢測效果最佳;造成這一現象的原因可能是樣本尺寸為256×256像素,使得尺寸較小的染病松樹在圖像上的相對尺寸放大,能夠被SSD檢測出來。
表3 松材線蟲病枯死木在不同模型下的準確率、召回率、AP、F1和FPS值
為了驗證這3種算法對染病松樹的檢測效果,在同一驗證集上進行染病松樹的檢測識別,選取涵蓋典型地物的原圖及檢測結果,如圖4所示。圖4顯示,對于較大尺寸的染病松樹,Faster R-CNN和SSD都有良好的檢測精度和識別效果,甚至存在SSD對于部分染病松樹的檢測精度高于Faster R-CNN;然而對于較小尺寸的染病松樹,Faster R-CNN相比SSD具有更好的檢測精度和識別效果;YOLO v4檢測染病松樹時,尺寸大小不同的染病松樹都存在漏檢現象。
為了驗證不同目標檢測算法檢測染病松樹的性能,引入面向對象VEG-OSTU方法進行染病松樹檢測對比,基于不同方法的染病松樹檢測統(tǒng)計結果如表4所示。由表4可知,面向對象的VEG-OSTU方法的F1值為57.9%,基于深度學習的目標檢測算法的F1值都在75%以上。此外,SSD算法相比Faster R-CNN和YOLO v4對染病松樹有更好的檢測效果,SSD的F1值為82.1%,分別比YOLO v4和Faster R-CNN高出5%和3%,表明SSD算法檢測染病松樹的效果最佳。
表4 驗證集染病松樹的檢測結果統(tǒng)計
本文采用Faster R-CNN、SSD和YOLO v4這3種目標檢測算法檢測感染松材線蟲病的染病松樹,并引入面向對象的VEG-OSTU方法進行對比實驗。實驗結論如下。
采用目標檢測算法進行松材線蟲病染病松樹驗證,相比VEG-OSTU閾值分割方法的驗證時的總體精度57.9%,YOLO v4、Faster R-CNN和SSD分別高出19.2%、21.2%和24.2%;表明使用目標檢測算法替代面向對象方法檢測染病松樹,統(tǒng)計染病松樹的株數是可行的。
在相同數據的前提下,采用不同目標檢測算法檢測染病松樹時,SSD比Faster R-CNN和YOLO v4的F1值分別高出3%和5%,其精準率和召回率分別為87.65%和77.17%;相比Faster R-CNN和YOLO v4,SSD算法更能滿足森林工作人員對松材線蟲病疫情防控的需要,更適合應用于松材線蟲病疫區(qū)染病松樹的檢測。