王繼千,劉喚喚,廖濤,朱小東
(安徽理工大學,安徽 淮南 232001)
目標檢測是當前的研究熱點,其主要目標是確定物體在圖像中的位置,并分辨出當前目標的類別,是模式識別中的重要算法。目前已應用于行人檢測、醫(yī)學圖像檢測、人臉檢測等領域,由此可以看出目標檢測具有重要的研究價值與現(xiàn)實意義。目標檢測在農業(yè)領域也有不錯的應用前景。隨著農業(yè)生產中不斷引入科學技術,農作物的產量及質量都有了顯著的提高。伴隨著農業(yè)生產和科學技術的快速融合,雖然很多農業(yè)問題已經得以解決,但是農業(yè)昆蟲災害依然是農業(yè)生產中科學技術無法完全攻克的一大難題,例如,昆蟲啃食對農作物的數量和質量造成較為嚴重的影響。因此,如何快速檢測出農業(yè)昆蟲的種類和數量,并保證較高的檢測精準度就成為農業(yè)生產中的一項重要工作。隨著科學技術的快速發(fā)展,昆蟲的檢測方式也發(fā)生了改變。昆蟲檢測大致可以分為傳統(tǒng)方法和非傳統(tǒng)方法,比如人工方法、誘捕法可以歸為傳統(tǒng)的昆蟲檢測方法,而正是由于科學技術的迅速發(fā)展,傳統(tǒng)的昆蟲檢測方法逐漸發(fā)展為成聲檢測、圖像識別和深度學習圖像處理等非傳統(tǒng)方法。傳統(tǒng)的昆蟲圖像識別策略是針對不同昆蟲外部特征的差異性進行精準設計,之后送入分類器,最終確定昆蟲種類。正是由于技術理論的疾速發(fā)展以及深度學習理論形成了較好的理論體系,結合這種理論基礎的目標檢測技術也在農業(yè)生產中逐漸盛行起來。這種新型檢測技術的優(yōu)越性簡化了手工設計環(huán)節(jié),提高了對昆蟲特征的自動學習能力。這種新型的昆蟲檢測技術無論在速度上,還是在檢測精度上都具有很大的優(yōu)越性,同時也在很大程度上減少了人力物力的投入比。這種檢測技術不僅具有極高的現(xiàn)實價值,還有著良好的發(fā)展前景。隨著各種理論技術的普及,YOLO算法的應用也逐漸增多,并慢慢進入人類的生產生活中。例如文獻[1]中改進的YOLOv3-my-prune方法,在甘蔗環(huán)境下取得了不錯的行人檢測效果;文獻[2]中通過替換不同層級的特征檢測模塊并引入Boosting思想,提出了新的Multi branch YOLO檢測算法,并且在肺炎數據集上有著優(yōu)秀的表現(xiàn);文獻[3]中的YOLOv3算法使用Mobile Net網絡代替YOLOv3中的特征提取網絡,并融合了Self-attention機制,該算法在公開數據集上也取得了不錯的準確率并在一定程度上滿足實時性要求;深度學習技術的快速發(fā)展使得它在圖像處理領域也發(fā)揮了重要作用,比如文獻[6]中提出的基于門控通道注意力機制的優(yōu)化YOLOv3算法,結合自適應模塊后,在小目標檢測上取得了良好的成效。從YOLO算法模型的應用來看,深度學習理論的應用比較成熟。雖然目標檢測方法已經應用于現(xiàn)實生活中的很多方面,但是有一些領域還是鮮少涉及的,比如在農業(yè)昆蟲領域就運用得較少。YOLO算法的輸入模塊用于獲取一張完整的圖像,因為一張完整的圖片所涵蓋的信息屬于全局特征信息,可以在很大程度上降低目標的誤檢率,也可以實現(xiàn)實時檢測。算法最后輸出不同大小的特征圖,可以用來融合深、淺雙層特征,同時又加入了對目標特征信息具有良好提取效果的Darknet-53特征提取網絡,使得目標檢測能力得到明顯提升,例如文獻[7]的mAP為91.7%。但當所要進行目標檢測的背景復雜、多尺度且姿態(tài)多樣時,由于圖像本身的像素小、特征不顯著等原因,容易造成小目標的漏檢和誤檢,檢測能力尚需提高。
本文針對YOLOv3模型算法的不足之處,并且基于農業(yè)昆蟲領域的目標檢測任務,提出一種改進特征提取和特征融合并融入CBAM模塊的YOLOv3目標檢測算法。相較于其他深度學習框架,Tens flow深度學習框架沒有靈活性差、拓展性差以及健壯性不強等方面的缺陷。因此將優(yōu)秀的Tens flow應用到該模型中,之后再引入連續(xù)的殘差結構和深度卷積雙路特征提取模型,在增加模型深度的同時提高感受野,提高錨框的定位準確性;另一方面引入改進的卷積注意力模塊繼續(xù)提高目標檢測和物體分類的精度,從而提高網絡的性能。最終各項指標在改進的模型上表現(xiàn)良好。
如圖1所示,YOLOv3模型結構可以分為3個主要模塊:圖片輸入、基礎網絡Darknet-53和YOLOv3。其中,Input模塊輸入圖像大小為416×416×3,Darknet-53骨干網絡進行特征提取,其中的DBL模塊是卷積、BN算法、線性激活函數LeakyRelu的總稱,是YOLOv3算法的基本組件;res借鑒了ResNet殘差結構的思想,進一步加深了網絡結構,res1中的數字1表示當前模塊使用1次,其中的1、2、8、8、4表示五種尺度,總共進行了32倍的下采樣,殘差模塊中1×1卷積降維,然后3×3卷積升維,殘差組件結構如圖2所示;Concat用來完成張量拼接操作,將darknet中間層和之后的某一個上采樣層拼接,擴充了張量的維度;、、表示三個不同尺度的輸出分支。
圖1 YOLOv3網絡結構
圖2 殘差組件結構
改進的YOLOv3網絡結構圖如圖3所示,該網絡結構圖對經典網絡結構的Darknet-53骨干網絡做了調整,將原有的res殘差結構替換為twostream_block和cbam_block模塊。圖中的數字3表示經過了3次循環(huán)的twostream_block和cbam_block模塊特征提取。整體的網絡結構經過5次twostream_block和cbam_block模塊的特征提取后,之后經過三種不同的Scale,再分別使用Convs卷積一次,最后進入Detection檢測模塊,獲取不同尺度的目標檢測結果。
圖3 改進的YOLOv3網絡結構
傳統(tǒng)的深度學習隨著網絡深度的加深會遇到梯度消失和梯度爆炸問題,常規(guī)的解決方案是數據初始化和正則化。雖然可以解決梯度問題,但是網絡深度加深后會帶來網絡性能退化問題,這種情況下可以通過殘差來解決該問題,同時還可以提升網絡性能。另外,一般的卷積操作是在各個通道上采用不同的卷積核提取不同方面的特征。而深度卷積在各個通道上采用不同的卷積核提取不同方面的特征,不僅會產生與普通卷積相同的特征圖,同時還會大大解約參數量。因此,本文考慮到YOLOv3目標檢測算法的特征提取特性,首先在特征提取中引入雙路特征提取感受野擴增結構,一路采用連續(xù)的殘差結構提取特征,增加模型深度提取更深層的特征,有效避免梯度消失情況的發(fā)生;另一路采用深度卷積提取特征,一方面計算量更小,另一方面選擇更大的卷積核,有效提高感受野,提高錨框的定位準確性;最后兩條路在通道層面融合,增加了模型的維度,獲取更多的特征,同時修改深度卷積網絡中的池化操作。在深度卷積網絡中使用混合池化來代替最大池化進行數據的壓縮。原始混合池化概率方法如式(1)所示。
其中,為混合池化輸出,為平均池化輸出,為最大池化輸出,為[0,1]范圍內的可變參數。在該定義中,值不但影響訓練網絡的隨機性,而且還在一定概率上影響網絡的穩(wěn)定性。
因此,調整原始混合池化,將參數修改為可訓練參數,并對混合池化輸出的定義進行了修正,如式(2)所示。
針對當前實驗環(huán)境中計算機的算力瓶頸,本文使用改進的混合池化進一步降低了網絡的整體計算代價,不僅可以降低過擬合風險,而且還會增大感受野,減少了信息冗余,使模型對輸入圖像的特征位置變化更具魯棒性。
圖像中包含多種圖像特征,其中的低級特征會保留較多的空白空間和邊緣末端信息,而高級特征則會包含很多的高級語義知識信息。受注意力機制原理的啟發(fā),為了更好地精確定位顯著性目標物體,本文參考借鑒了Woo等提出的卷積注意力模塊(Convolutional Block Attention Module,CBAM),將淺層特征輸入空間注意力模塊,而將通道注意力模塊作為輸入高級特征模塊,從而達到突出顯著性目標邊緣和整體的目的。通道注意力與空間注意力的連接方式表示為式(3):
其中,為Sigmoid激勵函數,M為網絡初始特征預測結果,?為點積操作,(f)為高級特征經過通道注意力模塊(CAM)的結果,(f)為低級特征通過空間注意力模塊(SAM)的權重結果,M為預測結果。由于重要特征信息在檢測中的影響因子較大,故引入注意力特征融合模塊(Attention feature Fusion Block, AFF Block)增強殘差單元,提高對重要特征的提取能力。如圖4所示,空間注意力融合模塊和通道注意力模塊的雙模塊結合,產生了新的AFFBlock模塊。
圖4 注意力特征融合模塊(AFF Block)
其中,f、f是需要融合的特征圖信息,二者經過空間注意力融合模塊可得到空間區(qū)域信息加強后的融合特征圖,經通道注意力融合模塊后通過注意力對特征圖的通道信息進行加強,得到融合特征圖。將兩種融合的特征圖進行融合,即可得到融合特征,三者之間的關系可以表示為式(4):
單體的AFF Block模塊和微小的殘差單元在特征信息保留上皆有局限性,因此將二者整合得到新的殘差注意力模塊,如圖5所示,從而達到保留較多重要特征信息的目的。本文采用如圖5所示的殘差注意力網絡模塊(用于昆蟲圖像的算法中),模塊內卷積層的通道數為64、64、128。
圖5 殘差注意力模塊示意圖
CBAM模塊屬于輕量級模塊,表示其開銷較小。將其加入CNN架構中,其對模型性能的提升效果遠遠大于其開銷。將CBAM注意力模塊嵌入到YOLOv3網絡后,有效提高了目標檢測和物體分類的精度,計算開銷和參數量較少,解決了原始網絡沒有注意力偏好的問題,提高了網絡的整體性能。
Insects數據集是百度與北京林業(yè)大學合作制作的識蟲數據集。該昆蟲數據集的制作目的是進行目標檢測算法測試。
基于實驗模型和實驗設備方面的限制,同時又考慮到檢測目標的指標參數,本文采用的試驗數據集是由百度與北京林業(yè)大學合作制作的Insects識蟲數據集,其中包含的主要是小尺度的昆蟲圖像。該數據集較小,共計2 183張圖片,1 693張用于訓練,245張用作驗證集,245張用作測試集,其中13%作為測試集,87%作為訓練集,該數據集中共包括7種昆蟲,圖6是實驗數據昆蟲圖樣例。
圖6 昆蟲數據圖
本文采用平均準確率(Average precision, AP)、平均準確率均值(mean Average Precision, mAP)和幀率(Frame Per Second, FPS)等指標來評價當前昆蟲檢測模型的性能。平均精度均值用于衡量模型在所有類別上的好壞程度,本文mAP的計算是取 AP、AP、AP、AP、AP、AP、AP的平均值,其中A、B、C、D、E、F、G分別表示當前數據集的7種昆蟲類別。
計算當前某一種昆蟲的平均準確率AP。公式為:
目標檢測應用中,一個模型可以檢測出多種類別的昆蟲,而mAP就是所有種類昆蟲的AP均值。公式為:
本文除了使用精確度作為模型評價指標外,同時又采用FPS來評價目標網絡的檢測速度,F(xiàn)PS表示的是每秒內可以處理的圖片數量。
本文將經典的模型和改進的模型分別進行訓練,模型初始輸入圖像大小為416×416,初始化的IoU設置為0.5,模型訓練初期采用凍結訓練的方式來加速訓練,該方式可以防止訓練初期權值被破壞,前150個epoch使用大學習率,用來平穩(wěn)擬合,之后的200個epoch采用小學習率,并將每次傳入到網絡模型的圖片數量設置為8,強化訓練樣本的穩(wěn)定性,而且可以防止過擬合。模型訓練的整個階段,采納分批隨機梯度下降法優(yōu)化損失函數。通過對實驗數據的觀察,改良的新模型算法在訓練過程中趨于穩(wěn)定,損耗值的增幅較小,效果更好。在整個模型訓練的設定中,本文將算法的epoch設定為350輪,在340個epoch后取得了較好的模型。
本文的試驗數據是Insects數據集,將的初始值設置為0.5,池化偏向得以確定折中,訓練模型的收斂速度也表現(xiàn)出不錯的效果。YOLOv3模型經過訓練后,在測試集上得到的效果如圖7所示。該圖中目標間隔較大,人眼容易分辨,因此不需要做過多的處理。對于一些目標比較密集,標記不是十分明顯的圖片,將生成的結果參數輸出到result.txt保存下來。實驗結果一定程度上獲得了效率和精確度的提高,實驗結果也顯示出少量種類的昆蟲并沒有被框住識別出來,這是由于昆蟲交叉遮擋而導致的誤檢和漏檢,另一方面,也要考慮到該數據集較小,算法模型訓練的不是非常充分,另外還需要考慮到數據集的標注問題等因素。這些導致實驗結果不好的因素也是今后需要繼續(xù)優(yōu)化的方向。
圖7 測試結果圖
實驗結果如表1所示,可以看出:改進后的YOLOv3算法在Insects數據集上的檢測精度為71.22%,相較于原始YOLOv3的檢測精度提高了4.88個百分點,檢測一張圖片的時間更短,相比于文獻[8]算法雖然精度較低,但是處理時間更快。
表1 實驗結果
本文講述YOLOv3算法在農業(yè)昆蟲災害檢測中的運用,針對當前昆蟲目標檢測算法在農業(yè)生產中存在的精度低、漏檢率高等缺陷,提出了改進的YOLOv3算法來提升各項指標。實驗采用的Insects昆蟲數據集的特征不是十分顯著,因此增強了網絡結構,加深了顯著特征的提取,優(yōu)化了特征提取環(huán)節(jié),提高了目標檢測的準確度;同時進一步引入CBAM,加強了圖像特征的相關性,進一步增強了目標檢測的識別能力。實驗結果表明改進的模型極大地提高了昆蟲檢測的精準度,降低了漏檢率。改進的模型算法的指標還有較大的上升空間,又考慮到實驗結果的局限性,以及實際的農業(yè)生產要求。作者未來將繼續(xù)深入研究模型,將特征金字塔引入到模型中,繼續(xù)提高模型性能,努力將其落地到農業(yè)生產中。