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