候瑞環(huán),楊喜旺,王智超,高佳鑫
(中北大學 大數(shù)據學院,太原 030051)
林業(yè)害蟲泛指危害森林的昆蟲。當病蟲害爆發(fā)時,通常會給林業(yè)發(fā)展造成重大經濟損失。因此,在病蟲害發(fā)生早期,通過智能噴灑裝置對害蟲進行消殺具有重要意義[1]。因此,對林業(yè)害蟲圖像進行快速精確檢測成為目標檢測領域的研究熱點。昆蟲檢測主要由工作人員對誘捕到的昆蟲進行人工識別與計數(shù),其效率低、勞動量大且及時性差[2]。隨著圖像采集技術和機器學習的發(fā)展,昆蟲檢測技術通過將人工提取圖像特征與支持向量機等機器學習分類方法相結合,并將其應用于自然場景下的昆蟲數(shù)據分析,但該方法的魯棒性和泛化能力較差[3]。
近年來,研究人員開始將深度學習算法應用于昆蟲圖像檢測領域中。文獻[4]提出基于深度卷積神經網絡的油菜蟲害檢測方法,使用VGG16[5]網絡提取圖像特征,并生成初步候選區(qū)域,再通過Fast R-CNN[6]對候選框進行分類和定位,但是該方法的檢測速度較慢。文獻[7]提出基于改進的SSD[8]深度學習模型的蟲情檢測系統(tǒng),實現(xiàn)了對紅脂大小蠹蟲情的全自動化監(jiān)測,然而該系統(tǒng)是針對特定場景設計的,因此只能對一種類型的害蟲進行檢測,無法實現(xiàn)多類別害蟲檢測需求。
為實現(xiàn)對林業(yè)害蟲的實時精確監(jiān)測,本文提出一種基于YOLOv4-TIA 的昆蟲圖像檢測方法。將檢測速度較快且可以進行多目標檢測的深度學習模型YOLOv4[9]引入到林業(yè)害蟲監(jiān)測領域中,并對其進行改進,通過融合三分支注意力[10]機制與改進的PANet[11]結構,提高模型對林業(yè)害蟲圖像的綜合檢測能力。
YOLO 系列算法是一種將目標檢測問題轉換為回歸問題[12-13]的目標檢測算法。該模型采用端到端的網絡結構,在產生候選區(qū)域的同時完成分類和位置調整,從而節(jié)省了檢測時間且降低了計算資源使用率。
YOLOv4 是YOLO 系列算法的最新版本,其網絡結構如圖1 所示。與YOLOv3[14]不同,YOLOv4 在數(shù)據處理過程中引入mosaic數(shù)據增強,CSPDarkNet53和PANet 分別作為主干網絡和頸部網絡,并通過多種訓練方式優(yōu)化激活函數(shù)與損失函數(shù)。這些方式能夠加快YOLOv4 的檢測速度,且實現(xiàn)速度和精度的最佳平衡[15]。
圖1 YOLOv4 網絡結構Fig.1 Structure of YOLOv4 network
YOLOv4 模型將CSPDarkNet53 作為骨干網絡,CSPDarkNet53 主要由CBM 模塊和CSP 模塊構成,其中CBM 模塊由卷積層(Conv)、批歸一化層(Batch Normolization,BN)和Mish 激活功能組成,CSP 模塊包括兩條支路,一條是主干部分的卷積,另一條用于生成大的殘差邊,通過對兩條支路的跨級拼接與通道整合,以增強卷積神經網絡(Convolutional Neural Network,CNN)的學習能力。CSP 結構如圖2 所示,其中CBL 模塊由卷積層(Conv)、批歸一化層(Batch Normolization,BN)和Leaky ReLu 激活功能組成。此外,YOLOv4 模型在檢測部分使用了空間金字塔池化層SPP 模塊,使得任意大小的特征圖都能夠轉換成固定大小的特征向量,利用K-means 聚類生成不同尺度的先驗框,并在不同層級的特征圖上進行預測。與YOLOv3 相比,YOLOv4 是 基于PANet 的原理對不同層級的特征進行融合。
圖2 CSP 網絡結構Fig.2 Structure of CSP network
YOLOv4 模型是在輸入圖片上生成一系列錨框,錨框是w和h固定的初始候選框,也是生成預測框的前提,anchor 的選用會直接影響模型的性能[16]。YOLOv4 模型使用的錨框是在COCO 數(shù)據集上統(tǒng)計較合適的錨框大小。因此,本文通過對林業(yè)昆蟲數(shù)據集進行聚類,得到合適的anchor 大小。利用K-means++聚類算法代替YOLOv4 模型中使用的K-means 算法。K-means 算法流程如圖3 所示。
圖3 K-means 算法流程Fig.3 Procedure of K-means algorithm
K-means 算法需要人為設定初始聚類中心,然而不同的初始聚類中心對聚類結果的影響較大。因此,本文使用K-means++對林業(yè)昆蟲數(shù)據集中昆蟲對象的w和h進行聚類。K-means++在對初始聚類中心的選擇上進行了優(yōu)化,首先隨機選擇一個點作為第1 個初始類簇中心點,然后選擇距離該點最遠的點作為第2 個初始類簇中心點,最后再選擇距離前2 個點距離最遠的點作為第3 個初始類簇的中心點,以此類推,直至選出k個初始類簇中心點[17]。在初始點選出后,本文使用標準的K-means 算法進行聚類。
聚類評估標準通常用輪廓系數(shù)來表示,如式(1)所示,輪廓系數(shù)取值范圍為[-1,1],取值越接近1,則說明分類效果越好。
其中:i為已聚類數(shù)據中的樣本;bi為i到其他各個族群所有樣本的距離平均值中的最小值;ai為i到本身簇的距離平均值。
經過聚類與計算輪廓系數(shù)后,聚類類別數(shù)與輪廓系數(shù)的對應關系如圖4 所示。
圖4 聚類類別數(shù)與輪廓系數(shù)的對應關系Fig.4 Corresponding relationship between the number of clustering categories and contour coefficient
聚類類別數(shù)的取值為3~9。經分析可得,以k表示聚類類別數(shù),當k為3 時,輪廓系數(shù)最高,聚類效果最好;當k為6 時,聚類效果次之;當k為7 時,聚類效果較好。本文將三者相結合,最終得到候選區(qū)域參數(shù),分別為(51,52)、(68,69)、(63,91)、(88,64)、(92,137)、(99,140)、(136,91)、(140,100)、(146,144)。
YOLOv4 網絡平等對待每個通道特征,在一定程度上限制了算法的檢測性能。為進一步提升模型精度,本文利用三分支注意力機制對YOLOv4 中的CSPDarkNet53 特征提取網絡進行改進,改進后的模型命名為YOLOv4-TIA。三分支注意力機制模塊是一種可學習參數(shù)少、不涉及維數(shù)降低且有效的注意力機制[18],其網絡結構如圖5 所示。
圖5 三分支注意力機制網絡結構Fig.5 Structure of three branch attention mechanism network
三分支注意力機制網絡的原理是通過旋轉操作和殘差變換建立維度間的依存關系,主要包含3 個分支,其中2 個分支分別用于捕獲通道C維度和空間維度W/H之間的跨維度交互,剩下的1 個分支捕捉(H,W)維間的依賴關系,通過均衡3 個分支的輸出,實現(xiàn)跨維度交互。
傳統(tǒng)通道注意力的計算是通過選取高層特征圖進行全局池化,將每個通道的二維特征壓縮為1 個實數(shù),如式(2)所示:
由于zc是根據二維特征的所有值計算得到,因此在某種程度上具有全局的感受野。但該計算方式會丟失大量的空間信息,也無法體現(xiàn)通道維數(shù)和空間維數(shù)之間的相互依賴性,傳統(tǒng)的空間注意力計算同理。雖然基于空間和通道的卷積模塊注意力機制(CBAM)可以體現(xiàn)通道與空間之間的相互依賴性,但是通道注意與空間注意是分離的,其計算也是相互獨立的。三分支注意力機制的優(yōu)點主要有以下3 個方面:1)不會丟失大量的空間與通道信息;2)可以進行跨維度交互;3)需要的可學習參數(shù)量少,算力消耗小。
本文使用三分支注意力模塊對CSPDarkNet53網絡進行改進,使網絡可以通過自動學習獲取跨維度交互,以提高有效的特征通道權重,從而使網絡重點關注重要的特征通道。結合三分支注意力模塊改進的YOLOv4-TIA 骨干網絡結構如圖6所示。
圖6 YOLOv4-TIA 骨干網絡結構Fig.6 Structure of YOLOv4-TIA backbone network
通過YOLOv4-TIA 網絡中的骨干網絡提取輸入圖片特征后,經過檢測頸部網絡進行預測輸出。YOLOv4 采用PANet 作為頸部網絡,其網絡結構如圖7 所示。該網絡采用自上而下和自下而上的路徑聚合方式,利用準確的低層定位信號增強整個特征層次,從而縮短低層與頂層特征之間的信息路徑。
圖7 PANet 網絡結構Fig.7 Structure of PANet network
圖7 中C表示輸入特征圖,P表示輸出特征圖。PANet 網絡結構雖然可以將高層特征圖的強語義信息與低層特征圖的定位信息進行雙向融合,但是在融合時是將不同層級的特征直接進行相加。為了使網絡可以融合更多的特征及學習不同輸入特征的權重,本文提出一種改進的PANet 結構,如圖8 所示。
圖8 改進的PANet 網絡結構Fig.8 Structure of improved PANet network
改進的PANet 網絡結構去除了PANet 結構中只有一條輸入邊和輸出邊的節(jié)點,并且當輸入和輸出節(jié)點是同一層級時,通過殘差的方式增加一條額外的邊,這樣可以在不增加計算開銷的同時融合更多的特征[19]。輸入圖片經過CSPDarkNet53 骨干網絡得到各層級的特征圖后,通過跨級連接和同級跳躍連接的多尺度特征融合方式獲得尺度分別為152、76、38 和19 的4 個層級的特征圖,并在此基礎上進行預測。
在林業(yè)監(jiān)測中采集到的昆蟲數(shù)據存在樣本不均衡且不容易分類的問題,為此,在YOLOv4-TIA 中使用Focal loss 函數(shù)優(yōu)化分類損失。Focal loss 函數(shù)可以用于解決一階段模型中背景分類不均衡和正負樣本嚴重失衡的問題[20]。YOLOv4 中的損失函數(shù)分為位置損失、置信度損失和類別損失3 個部分,將Sigmoid 與交叉熵損失函數(shù)相結合進行計算。在多分類任務中,交叉熵表示激活函數(shù)實際輸出值與期望輸出值的距離,交叉熵越小表示兩者的概率分布越近[21],如式(3)所示:
其中:L為交叉熵;C為分類類別數(shù);y為期望輸出;y'為經過激活函數(shù)的實際輸出。改進后Focal loss 計算如式(4)所示:
其中:α取0.25,α因子的作用是平衡樣本數(shù)量;β取2,β>0 的作用是減少易分類目標。
本文實驗所使用的數(shù)據集(北京林業(yè)大學昆蟲)共有2 183 幅圖像,其中1 693 幅作為訓練集,245 幅作為驗證集,其他245 幅作為測試集。數(shù)據集共有Boerner、Leconte、Linnaeus、acuminatus、armandi、coleoptera和linnaeus7 類昆蟲目標。在使用模型對數(shù)據集進行訓練前先對訓練集中每類目標樣本數(shù)量進行統(tǒng)計,以均衡檢測樣本分布,統(tǒng)計結果如表1 所示。
表1 在訓練集中每類目標樣本的統(tǒng)計結果Table 1 Statistical results of each target sample in the training set
從表1可以看出,Linnaeus、acuminatus和linnaeus3類目標的樣本數(shù)較少。為了使每類樣本數(shù)量分布更均衡,本文對包含這3 類目標的圖片進行數(shù)據增強操作。每幅圖片包含多類目標,因圖像旋轉、色調變換等常見數(shù)據增強方式會導致其他樣本數(shù)目增加,因此增強后的整體樣本數(shù)據分布仍不均勻。
本文采用的增強方式是將數(shù)目較少的類別目標區(qū)域進行復制,經過放大、旋轉、平移等方式粘貼回原圖,以達到精準類別增強。本文以Linnaeus 目標為例進行數(shù)據增強,增強前后的效果對比如圖9所示。
圖9 精準數(shù)據增強前后的效果Fig.9 Effect of data before and after accurate enhancement
本文對數(shù)據集進行預處理后,每類目標樣本數(shù)目如表2 所示。
表2 數(shù)據增強后每類目標樣本的統(tǒng)計結果Table 2 Statistical results of each target sample after data enhancement
本文使用調整后的數(shù)據集作為訓練集,分別對改進前后的模型進行訓練。本文實驗的操作系統(tǒng)為windows10,CPU 為E5-2630L v3,內存16 GB,GPU為1080 Ti,顯存11 GB。訓練時batchsize 設置為16,學習率為0.001,優(yōu)化器為Adam,根據訓練日志繪制出模型損失函數(shù)值的變化曲線如圖10 所示。從圖10 可以看出,當YOLOv4 訓練進行到約9 000 次時,整體曲線趨于平穩(wěn)并無明顯震蕩,模型收斂。改進后YOLOv4-TIA 模型的最終損失函數(shù)值明顯低于原模型,損失函數(shù)最低值僅為0.12。
圖10 改進前后模型的訓練結果Fig.10 Training results of models before and after improvement
在完成模型訓練后,本文將YOLOv4、VGG16、Faster R-CNN 作為對比模型,在測試集上采用以下評定指標分別對4 個模型進行綜合性能對比,結果如表3 所示。
表3 不同檢測模型進行林業(yè)害蟲檢測的綜合性能對比Table 3 Comprehensive performances comparison among different detection models for forestry pests detection
1)精確率(P),通過計算正確檢測目標數(shù)量與整體檢測到的目標數(shù)量的比例,以衡量模型的分類能力。
2)召回率(R),通過計算正確檢測目標數(shù)與驗證集目標總數(shù)的比例,衡量模型的查全能力。
3)面積交并比(IoU),通過計算模型預測目標的矩形區(qū)域與驗證集中目標標定的矩形區(qū)域的面積交并比,衡量模型的位置預測能力。
從表3 可以看出,改進的YOLOv4-TIA 模型檢測速度與YOLOv4 相差不大,比SSD 快1.6 倍,比Faster R-CNN 快6.7 倍。相比SSD、Faster R-CNN 和YOLOv4方法,改進的YOLOv4-TIA的準確率更高,且在比Faster R-CNN 模型檢測速度加快了6 倍的情況下,準確率仍提高了6.5%。因此,YOLOv4-TIA 通過捕捉跨維度交互增強了網絡特征表達能力,利用高效的多尺度連接方式與Focal loss函數(shù),進一步提高模型的檢測精確率,能夠檢測到更小的目標,YOLOv4-TIA 的召回率相比于YOLOv4 提升了8.3%。
根據精確率和召回率,本文對每類目標的平均精準度(Average Precision,AP)和模型整體的mAP(mean Average Precision)進行計算對比,結果如表4 所示。優(yōu)化后YOLOv4-TIA 模型的整體mAP 相比于YOLOv4提升了5.6%,結合表3 的對比數(shù)據,優(yōu)化后模型的魯棒性較優(yōu)。YOLOv4-TIA 與YOLOv4 模型的mAP 值分別為85.7%和80.7%。YOLOv4-TIA 與YOLOv4 模型的FLOPs 分別為57×109和52×109。本文對每類目標的的AP 值進行分析,由于YOLOv4 樣本數(shù)量分布不均導致AP 值差異較大,而YOLOv4-TIA 模型經過數(shù)據增強后每類AP 值較均衡,且無明顯波動。
表4 YOLOv4-TIA 與YOLOv4 模型的AP 對比Table 4 AP comparison of YOLOv4-TIA and YOLOv4 models %
在測試集上YOLOv4 模型和YOLOv4-TIA 模型的昆蟲圖像實際檢測效果對比如圖11 和圖12 所示。從圖中可以看出,所有昆蟲對象檢測結果用矩形框標示,在直接使用YOLOv4 模型進行檢測時,存在一些昆蟲對象漏檢的情況,然而使用YOLOv4-TIA 模型均無漏檢情況。
圖11 YOLOv4 模型檢測結果Fig.11 Detection results of YOLOv4 model
圖12 YOLOv4-TIA 模型檢測結果Fig.12 Detection results of YOLOv4-TIA model
因此,YOLOv4-TIA 的目標檢測精確率和召回率都要高于YOLOv4,其小目標的檢測能力也更優(yōu)。
本文提出基于YOLOv4-TIA 的林業(yè)害蟲目標檢測方法,通過對數(shù)據集進行精準數(shù)據增強,利用三分支注意力機制對CSPDarkNet53 網絡進行改進,并將其與優(yōu)化的PANet 網絡相結合,獲取更豐富的語義信息和位置信息,實現(xiàn)對誘捕器鏡頭下林業(yè)害蟲的監(jiān)測。實驗結果表明,YOLOv4-TIA 方法的精確率和召回率分別達到85.9%和91.2%,相比SSD、Faster R-CNN、YOLOv4方法,在保證實時性的前提下,能夠有效提高檢測精度。