趙 嚴,劉應安,業(yè)巧林,周小亮
(南京林業(yè)大學 信息科學技術學院,江蘇 南京 210037)
林業(yè)害蟲泛指危害森林及林產(chǎn)品的昆蟲。林業(yè)害蟲的侵襲或寄生會導致林木生長發(fā)育不良,產(chǎn)品質量下降,生態(tài)環(huán)境惡化。2020年中國生態(tài)環(huán)境狀況顯示,全國主要林業(yè)有害生物發(fā)生面積為1 278.45萬公頃,比2019年上升3.4%,蟲害發(fā)生面積為790.62萬公頃[1]。林業(yè)害蟲檢測是蟲情監(jiān)測的關鍵環(huán)節(jié),其方法研究對于林業(yè)發(fā)展有重要意義。
近年來,深度學習發(fā)展迅速,卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)[2]憑 借 自動提取特征的優(yōu)勢逐漸替代人工特征提取方法[3-5]。研究者開始將深度學習同昆蟲檢測相結合。2018年,Z.Liu等人[6]首次將深度學習目標檢測模型應用于識別儲糧害蟲稻象甲和玉米象。結果表明,Inception-ResNet-v2作特征提取網(wǎng)絡,F(xiàn)aster R-CNN[7]作檢測器,mAP達到85.76%。可是該研究需要額外制作預訓練數(shù)據(jù)集;采用兩步預測模型,計算開銷大。2020年,J.Liu等人[8]利用圖像金字塔改進YOLOv3[9],實現(xiàn)多尺度特征的融合,并在不同圖片尺寸下進行番茄病蟲害檢測。2021年,袁哲明等人[10]提出基于深度學習的輕量化田間昆蟲檢測模型,以YOLOv3為基礎融合深度可分離卷積和聯(lián)合交并比。2021年,J.W.Chen等人[11]利用多種目標檢測方法對3類害蟲進行基于移動平臺的檢測研究,結果表明YOLOv4[12]取得了最高的檢測精度。2021年,M.Zha等人[13]提出一種輕量化YOLOv4林業(yè)害蟲檢測方法,該方法以添加CA注意力機制[14]的MobileNetv2作特征提取網(wǎng)絡,利用BiFPN和ASFF進行特征融合,在北京林業(yè)大學制作的數(shù)據(jù)集上mAP達到88.93%。
本文以深度學習模型YOLOv4為基礎進行林業(yè)害蟲檢測優(yōu)化研究,無需制作預訓練數(shù)據(jù)集且為端到端單階段模型,相較于Faster R-CNN等雙階段模型,具備一定的檢測實時性。為進一步提高林業(yè)害蟲檢測精度,本文給出優(yōu)化的林業(yè)害蟲檢測模型Pest-YOLOv4:
(1)為CSPDarknet-53特征提取網(wǎng)絡引入ECA-CBAM注意力機制。使網(wǎng)絡更多地關注有利于檢測的特征信息,在一定程度上緩解特征提取信息丟失問題。
(2)重新組織網(wǎng)絡頸部,構成SPP-PANet。融合多重感受野捕獲的特征信息,在緩解梯度消失的同時增強特征提取信息的表達能力。
(3)利用Focal Loss思想改進損失函數(shù),緩解小樣本檢測任務存在的正負樣本不平衡問題,加強網(wǎng)絡對難區(qū)分樣本的學習。
此外,采用K-means++算法重新聚類先驗框,提高了avg-IoU值。
YOLOv4網(wǎng)絡結構分為3個部分:
(1)特征提取網(wǎng)絡。相較于YOLOv3的特征提取網(wǎng)絡,YOLOv4引入CSP(Cross Stage Partial connections)結 構[15],構 成CSPDarknet-53特征提取網(wǎng)絡。
(2)網(wǎng)絡頸部。采用SPP[16]模塊和PANet[17]。YOLOv4采用優(yōu)化的SPP模塊進行多尺度池化,獲取了更豐富的語義信息。PANet在FPN[18]后添加了自底向上融合部分,從而縮短底層和頂層特征之間的信息路徑。
(3)網(wǎng)絡檢測器。沿用YOLOv3的YOLO Head,利用CIoU損失[19]改進邊界框回歸損失。
YOLOv4損失函數(shù)由置信度損失、類別損失和邊界框回歸損失3個部分構成。3部分及YOLOv4總損失分別如式(1)、(2)、(3)、(6)所示。
式中,λobj、λnoobj和λclass分別為正樣本置信度權重、負樣本置信度權重和類別損失權重;S2為劃分的網(wǎng)格數(shù)量;B為先驗框數(shù)量;Iobjij和Inoobjij用于判斷第i網(wǎng)格的第j先驗框內(nèi)樣本的正負性,若為正樣本則Iobjij和Inoobjij分別為1和0,否則分別為0和1;classes集 合 為 類 別集合;C^ji和Cji分 別 為 第i網(wǎng)格存在正樣本的實際置信度和預測置信度;P^i(c)和Pi(c)分別為第i網(wǎng)格類別為c的實際概率和預測概率;IoU為真實框和預測框的交并比;(bgt,wgt,hgt)和(b,w,h)分別為真實框和預測框的中心坐標、寬、高;ρ2(b,bgt)表示b和bgt兩點間歐式距離;k為同時覆蓋真實框和預測框的最小包圍框的對角線長度。
為了匹配實驗數(shù)據(jù)集樣本尺寸,需要重新聚類先驗框的寬高比。Pest-YOLOv4采用K-means++算法進行聚類。K-means++相較于K-means而言,采用了使初始聚類中心間的相互距離盡可能遠的策略。Pest-YOLOv4結構圖如圖1所示。算法流程如下:
圖1 Pest-YOLOv4結構圖Fig.1 Structure of Pest-YOLOv4
輸入:集合S,K
(1)從集合S中隨機選取一個點作為初始聚類中心Ci;
(2)計算S中每個點x至其最近聚類中心Cx的距離D(x),依據(jù)D(x)生成各點成為下一聚類中心的概率P(x)。依據(jù)各點P(x)使用加權隨機抽樣選取一個新的聚類中心Ci;
(3)重復步驟(2),直到找到K個聚類中心;
(4)計算集合S中每個點至K個聚類中心的距離D(x)并將其劃入D(x)最小的聚類中心所在簇。重新生成每個簇的聚類中心Ci;
(5)重復步驟(4),直至聚類中心Ci不再變化。輸出:K組聚類中心
集合S為林業(yè)害蟲寬高集合;K為需要生成的先驗框數(shù)量。距離度量D(x)采用樣本間IoU值。距離度量D(x)、聚類中心概率P(x)、重新生成聚類中心Ci的計算公式分別如式(7)、(8)、(9)所示。
式 中,IoU(A,B)為 真 實 框A和 真 實 框B的 交并比。
為深度學習模型增加注意力機制可使模型更多地關注有利于檢測的特征信息,從而提升模型檢測精度[20-21]。Pest-YOLOv4提出ECACBAM注意力機制,該注意力機制基于CBAM(Convolutional Block Attention Module)[22]模塊和ECA(Efficient Channel Attention)[23]模塊實現(xiàn)。
CBAM為卷積塊注意力模塊,包括通道域(Channel Attention Module,CAM)和空間域(Spatial Attention Module,SAM)兩個部分。CAM結構、SAM結構、CBAM連接方式如圖2所示。
圖2 CBAM結構圖Fig.2 Structure of CBAM
CBAM內(nèi)CAM采用的全連接層被設計為捕捉非線性跨通道交互,涉及降維以控制模型復雜度。降維對通道注意力權重預測產(chǎn)生了負面影響,并且沒有必要捕獲所有通道之間的依賴關系[23]。ECA模塊在不降低維數(shù)的通道級全局平均池化后,通過尺寸為k的一維卷積,利用每個通道及其k-1個鄰居來捕獲局部跨通道交互信息。該方法保證了模型效率,提高了計算效果。ECA模塊如圖3所示,其中k=3。
圖3 ECA模塊結構圖Fig.3 Structure of ECA
k代表參與一個通道注意力權重預測的相鄰通道數(shù)。k通過通道維度C的映射自適應地確定,計算公式如式(10)所示:
式 中,|t|odd為 距 離t最 近 的 奇 數(shù);γ和b分 別 為2和1。
ECA模塊可有效降低CAM參數(shù)量和計算量,并避免CAM降維操作帶來的通道注意力權重預測效果損失,其結構如圖3所示。Pest-YOLOv4基于ECA模塊和CBAM內(nèi)的SAM部分,構成ECA-CBAM模塊,結構如圖4所示。
圖4 ECA-CBAM模塊結構圖Fig.4 Structure of ECA-CBAM
ECA-CBAM改進CBAM原 有CAM存在的問題,并保留CBAM串聯(lián)結合通道注意力模塊和空間注意力模塊的策略。ECA-CBAM對特征圖依次進行通道注意力加權和空間注意力加權,操作步驟如式(11)、(12)所示。
式中,F(xiàn)為ECA-CBAM的輸入特征圖,Mc(·)為ECA通道注意力權重計算公式,Ms(·)為SAM空間注意力權重計算公式,?為元素乘法。
Mc(·)和Ms(·)計 算 方 式 如 式(13)、(14)所示。
式中,σ(·)為Sigmoid激活函數(shù),fa×b(·)為核尺寸a×b的卷積操作,k由式(10)確定,AvgPool(·)為平均值池化操作,MaxPool(·)為最大值池化操作。
在ECA-CBAM與網(wǎng)絡結合的過程中,本文分析YOLOv4網(wǎng)絡框架,在特征提取網(wǎng)絡內(nèi)添加注意力模塊時,合適的位置是在CSP模塊后及特征圖引入PANet和SPP前。該處的ECA-CBAM可以增強CSP模塊提取的特征信息表達能力,提高PANet的特征融合效果,使SPP模塊融合的多尺度特征信息向有利于林業(yè)害蟲檢測的方向發(fā)展。共計選擇3個添加位點,如圖1中的②所示。
YOLOv4引入優(yōu)化后的SPP模塊,以小的計算開銷為代價,大幅提高了mAP。該模塊結構如圖5所示。
圖5 SPP模塊結構圖Fig.5 Structure of SPP
特征圖輸入后并聯(lián)進入核尺寸為{13,9,5,1}、步長為1的最大值池化,拼接融合,即得到SPP模塊的輸出。SPP模塊利用4個不同尺度的最大值池化進行特征提取并拼接,實現(xiàn)多尺度感受野信息的融合,在顯著增加網(wǎng)絡感受野的同時分離出重要的上下文特征。
YOLOv4僅對深層特征使用一次SPP模塊以豐富特征圖信息。此次信息豐富的效果直接作用于25×25的YOLO Head并通過PANet深層特征上采樣融合路徑間接作用于50×50和100×100的YOLO Head。文獻[24]提出利用多SPP模塊優(yōu)化目標檢測模型的策略,構建YOLOv4-SPP3模型,在VEDAI小 目標數(shù)據(jù)集上mAP提高2.3%(mAP50為75.4%),可見該策略具備提高檢測效果的能力。但是SPP模塊會將原特征圖通道數(shù)擴增4倍。YOLOv4-SPP3為每個YOLO Head都配置直接作用的SPP模塊,共計存在3個SPP模塊并且引入額外的卷積操作,極大地增加了模型計算開銷。
YOLOv4模 型100×100的YOLO Head距SPP模塊位置遠、受影響程度小,且其前存在大量卷積操作,為其引入直接作用的SPP模塊將極大豐富該處特征圖信息并緩解梯度消失現(xiàn)象。在網(wǎng)絡第134層增加SPP模塊,構成SPP-PANet。此時網(wǎng)絡僅存在兩個SPP模塊并且未額外引入卷積操作,有效控制了網(wǎng)絡模型的計算開銷。兩SPP分別直接作用于25×25和100×100的YOLO Head,并且通過上采樣和下采樣路徑共同間接作用于50×50的YOLO Head。SPP-PANet結構如圖1中的③所示。
單階段檢測模型為了保證算法的實時性,在整張圖片上回歸預測物體坐標,較雙階段模型減少了生成目標候選區(qū)域的過程。林業(yè)害蟲檢測存在小目標的特點,背景像素居多。在此情況下,大部分檢測框位于背景區(qū)域,正負樣本不平衡問題顯著。同時,林業(yè)害蟲檢測存在難區(qū)分問題,部分類別的害蟲顏色、外觀不易區(qū)分。Pest-YOLOv4利 用Focal Loss[25]緩解上 述問題。
YOLOv4置信度損失函數(shù)和類別損失函數(shù)采用二元交叉熵形式構成,如式(1)、式(2)所示。二元交叉熵一般形式如式(15)所示:
Focal Loss在二元交叉熵形式上引入平衡因子α和調制因子γ,可以改善正負樣本不均衡問題,同時減少簡單樣本對網(wǎng)絡的改變量,增強網(wǎng)絡對復雜樣本的學習能力。
僅添加調制因子γ時,其取值大于0。損失函數(shù)形式如式(16)所示:
當γ=2時,預測值為0.9的正樣本(簡單樣本)的損失值將降低至原1 100,預測值為0.5的正樣本(復雜樣本)的損失值將降低至原1 4,實現(xiàn)了增加復雜樣本的損失值占比,削弱了簡單樣本對模型的影響。
僅添加平衡因子α時,其取值范圍為0.5~1。損失函數(shù)形式如式(17)所示:
當α=0.75時,正樣本損失值將降低至原3 4,負樣本損失值將降低至原1 4。此時,增加了正樣本損失值占比,削弱了負樣本對模型的改變量。
同時使用平衡因子α和調制因子γ時,平衡因子α取值0~0.5。損失函數(shù)形式如式(18)所示:
此時,調制因子γ已實現(xiàn)對簡單負樣本影響的削弱,平衡因子α的作用在于保證簡單樣本的損失值不至于過小。訓練中,平衡因子取值0.25,調制因子取值2[26-27]。
改進后的置信度損失、類別損失如式(19)、(20)所示。
式中,α為平衡因子,γ為調制因子,其余符號的解釋同式(1)、式(2)。
實驗采用北京林業(yè)大學制作的小蠹科林業(yè)害蟲數(shù)據(jù)集[28]。該數(shù)據(jù)集由室內(nèi)害蟲圖像自動采集裝置創(chuàng)建。自動采集裝置由顯示器、誘捕器、拍攝系統(tǒng)構成。采集時用鑷子將害蟲放入誘捕器的收集器內(nèi),模擬野外條件下害蟲誘捕環(huán)境。利用拍攝系統(tǒng)獲取害蟲圖片,并借助顯示器的高清成像捕捉害蟲細節(jié),共計獲得圖片2 183張。其中,1 693張作為訓練集,245張作為驗證集,245張作為測試集。數(shù)據(jù)集圖片采集情況如圖6所示。
圖6 北京林業(yè)害蟲數(shù)據(jù)集展示Fig.6 Display of BJFU pest data set
數(shù)據(jù)集共有6類林業(yè)害蟲,訓練集中每類昆蟲實例統(tǒng)計結果如表1所示。數(shù)據(jù)集圖片分辨率為1 236×1 236,進行縮放調整至800×800。蟲情測報儀利用特殊光譜的光源引誘害蟲撲燈,憑借內(nèi)部遠紅外線烘干器將蟲體烘干。工作人員間隔固定時間通過接蟲箱接蟲并統(tǒng)計[29]。數(shù)據(jù)集中圖片為收集器內(nèi)拍攝所得,滿足實際處理情況。
表1 訓練集昆蟲樣本統(tǒng)計結果Tab.1 Statistics of insects in the training set
實驗運行在Ubuntu 18.04.5 LTS操作系統(tǒng)上,CPU為AMD R9 5900X,GPU為NVIDIA RTX 3060,使用Pytorch深度學習框架,編譯環(huán)境為cuda 11.0.228,torch 1.90,torchversion 0.10.0,numpy 1.21.1,Python 3.7。實驗參數(shù)設置見表2。
表2 實驗參數(shù)設置Tab.2 Experimental parameters setting
為了驗證目標檢測模型的有效性,本文主要采用查準率(Precision,P)、查全率(Recall,R)、平均準確率(Average Precision,AP)、平均準確率均值(mean Average Precision,mAP)、每秒檢測幀數(shù)(Frames Per Second,F(xiàn)PS)等評價指標。
查準率用于描述在所有預測為正的樣本中預測正確的比例,如式(21)所示。查全率用于描述在所有正例樣本中有多少被成功檢測出,如式(22)所示。平均準確率指查準率和查全率為坐標軸繪制的P-R曲線圍成面積。平均準確率均值指對所有類別的平均準確率取均值。平均準確率和平均準確率均值的計算公式如式(23)所示。
式中,TP表示預測為正、實際為正的樣本;FP表示預測為正、實際為負的樣本。
式中,TP表示預測為正、實際為正的樣本;FN表示預測為負、實際為正的樣本。
式中,N表示樣本類別數(shù);P(R)為查準率關于查全率的函數(shù)。
4.4.1 Kmeans++先驗框優(yōu)化
Pest-YOLOv4使用K-means++算法進行先驗框的重新聚類,并采用平均交并比(avg-IoU)評價聚類效果。K-means++算法和K-means算法聚類效果如圖7所示。
圖7 K-means++和K-means聚類效果圖Fig.7 Clustering effects of K-means++and K-means
由圖7可得,當聚類中心數(shù)為9時,K-means++算法聚類先驗框avg-IoU值為82.15%,相較于Kmeans算法的avg-IoU(78.35%)提高了3.8%。此時先驗框尺寸為(34,50)、(50,35)、(44,72)、(73,45)、(57,75)、(70,59)、(72,115)、(115,72)、(107,108)。
為了進一步探究聚類獲得的先驗框有效性,分別采用兩種聚類算法生成的先驗框進行林業(yè)害蟲檢測,實驗結果如表3所示。
表3 先驗框優(yōu)化結果比較Tab.3 Comparison of anchor box optimization
由表3可得,兩種聚類方式生成的先驗框對檢測效果產(chǎn)生了影響,顯著區(qū)別在于查全率和mAP指標。在不改動YOLOv4算法的情況下,利用K-means++優(yōu)化先驗框提高了YOLOv4模型的檢測精度,查全率增加0.5%,mAP值增加0.5%。
4.4.2 Pest-YOLOv4
Pest-YOLOv4和YOLOv4訓練損失情況如圖8所示。
圖8 損失情況圖Fig.8 Loss curves
Pest-YOLOv4模 型 在109個Epoch時,總 損失值達到0.045 59,低于0.05。在230個Epoch時網(wǎng)絡總損失值趨于穩(wěn)定。比較Pest-YOLO4和YOLOv4模型收斂曲線可知,Pest-YOLO4收斂速度略快、收斂情況更加平穩(wěn)。
為了驗證所提Pest-YOLOv4對林業(yè)害蟲檢測的有效性和先進性,采用目前目標檢測中性能較優(yōu)的Faster R-CNN、SSD[30]、YOLOv3及YOLOv4進行對比實驗。實驗結果如表4和圖9所示。
圖9 5種模型林業(yè)害蟲檢測mAP比較Fig.9 mAP comparison of 5 models for forestry pest detection
表4 5種模型林業(yè)害蟲檢測結果比較Tab.4 Comparison of five models for forestry pest detection
Pest-YOLOv4相較于YOLOv4在查準率、查全率和mAP指標上皆有不同程度的提高,最明顯的提高指標為查準率(Precision值67.5%),提高了7.2%。Pest-YOLOv4和Faster R-CNN查全率接近。在查準率和mAP指標上,Pest-YOLOv4分別高出4.5%和0.9%。相較于SSD和YOLOv3,Pest-YOLOv4檢測效果改善明顯。同時,Pest-YOLOv4具備檢測實時性,F(xiàn)PS指標達到33.4,遠高于雙階段檢測模型Faster R-CNN,并高于SSD模型,同YOLOv3模型FPS接近。
Pest-YOLOv4與YOLOv4對每類林業(yè)害蟲的檢測結果如表5所示。Pest-YOLOv4在多數(shù)林業(yè)害蟲種類上達到很好的檢測效果,尤其是Leconte類別(AP值96.2%),但Coleoptera類別的識別效果一般(AP值86.2%)。這兩類昆蟲情況如圖10所示。
表5 Pest-YOLOv4和YOLOv4檢測結果Tab.5 Detection results of Pest-YOLOv4 and YOLOv4
由圖10可得,Coleoptera類別相較于Leconte類別,尺寸更小、顏色外觀更加不易區(qū)分。但是Pest-YOLOv4對此類林業(yè)害蟲檢測效果仍有明顯提高(AP值提高5.7%),說明Pest-YOLOv4在處理小目標和難區(qū)分樣本問題上有很大進步。
圖10 Leconte和Coleoptera采集 情況Fig.10 Samples of Leconte and Coleoptera
在部分樣本密集的測試圖片上,Pest-YOLOv4和YOLOv4檢測結果如圖11所示。
由 圖11可得,Pest-YOLOv4和YOLOv4的邊界框擬合皆表現(xiàn)良好。對比圖11(i-a)與圖11(i-b),Pest-YOLOv4檢測出的樣本置信程度較YOLOv4更 高 且 更 穩(wěn) 定。圖11(i-a)、圖11(ii-a)和圖11(iii-a)顯示YOLOv4對尺寸相對較小的Acuminatus類別林業(yè)害蟲存在嚴重漏檢,此與表6顯示的YOLOv4對該類害蟲檢測查全率低一致。然而Pest-YOLOv4能夠順利檢出該類害蟲,未出現(xiàn)嚴重漏檢。圖11(iii-a)、圖11(iii-b)顯示,YOLOv4對位置分布靠近的樣本存在漏檢現(xiàn)象,然而Pest-YOLOv4仍可檢出該情況樣本。
圖11 部分測試圖片上Pest-YOLOv4和YOLOv4效果比較Fig.11 Comparison of Pest-YOLOv4 and YOLOv4 on some test pictures
4.4.3各改進模塊對比實驗
為探究改進策略對網(wǎng)絡檢測效果的影響,進行了各改進策略相互組合的檢測效果對比實驗,實驗結果如表6所示。
由 表6可 得,YOLOv4檢 測mAP達 到 了86.2%。YOLOv4-A添 加 了ECA-CBAM注意力模塊,相較于YOLOv4模型的mAP值增加了2.3%。YOLOv4-B采用SPP-PANet作為網(wǎng)絡頸部,mAP值達到87.1%,相較于YOLOv4增加了0.9%,說明SPP-PANet有利于檢測效果的提高。YOLOv4-C利用Focal Loss改進損失函數(shù),mAP值達到88.3%,相較于YOLOv4提高了2.1%,說明改進的損失函數(shù)可以有效地平衡正負樣本比例,提高網(wǎng)絡處理復雜樣本的能力。YOLOv4-D在YOLOv4-B基礎上添加ECA-CBAM注意力模塊,mAP值達到89.0%,相較于YOLOv4增加了2.8%,相較于YOLOv4-B增加了1.9%,其表明ECA-CBAM和SPP-PANet共同使用可明顯提高網(wǎng)絡模型的檢測效果。Pest-YOLOv4在YOLOv4-D的基礎上利用Focal Loss改進損失函數(shù),獲得了最高的mAP值,達到90.4%,相較于YOLOv4提高4.2%,說明Pest-YOLOv4可以明顯提高YOLOv4模型處理林業(yè)害蟲檢測任務的能力,對林業(yè)害蟲蟲情監(jiān)測產(chǎn)生助益。
表6 各改進策略的檢測效果Tab.6 Detection effects of various improvement strategies
林業(yè)害蟲檢測存在識別難度高、識別精度低的問題。本文進行林業(yè)害蟲檢測優(yōu)化研究,提出了基于深度學習模型YOLOv4優(yōu)化的Pest-YOLOv4網(wǎng)絡模型。該模型在K-means++聚類先驗框的基礎上引入ECA-CBAM注意力機制,重新組織網(wǎng)絡頸部構成SPP-PANet,利用Focal Loss改進損失函數(shù),在1 693張含有多種林業(yè)害蟲的圖片上對模型進行訓練。結果表明,Pest-YOLOv4在保證檢測實時性的前提下,對多種林業(yè)害蟲具有良好的檢測能力,mAP值達到90.4%,相較于YOLOv4提高了4.2%。