晁曉菲 池敬柯 張繼偉 王孟杰 陳 堯 劉 斌
(1.西北農林科技大學信息工程學院, 陜西楊凌 712100;2.西北農林科技大學水利與建筑工程學院, 陜西楊凌 712100;3.西北農林科技大學機械與電子工程學院, 陜西楊凌 712100)
在農業(yè)自動化生產的最新進展中,深度學習常與物聯(lián)網(wǎng)技術和無人駕駛飛行器相結合用于開發(fā)智能農業(yè)系統(tǒng)[1]。深度卷積神經網(wǎng)絡(Deep convolutional neural network,DCNN)[2]與自動化機械等設備相結合,實現(xiàn)自動、高效的作物病害識別和檢測,為作物病害的預防和識別提供更為高效且準確的技術支持[3]。目前,國內外對DCNN在農業(yè)上的應用研究包括但不限于作物病害分類[4-6]、作物與病斑分割[7-8]、作物及其病害識別與檢測[9-10]等。
基于深度學習的植物病害目標檢測算法主要以YOLO(You only look once)系列為核心的單階段算法以及以RCNN(Region-CNN)為核心的雙階段算法為主[11-21]。文獻[15-18]中的研究主要是替換或改良YOLO網(wǎng)絡中的主干網(wǎng)絡從而提高算法的檢測性能,但改進后的網(wǎng)絡仍存在對病斑區(qū)域關注程度不足、對深層特征中所包含語義信息的利用不足等缺點,影響病斑檢測性能。因此在對作物病斑檢測中,需要充分考慮并利用這些因素來提升YOLO網(wǎng)絡的性能。此外,還應對YOLO網(wǎng)絡做必要的輕量化處理以滿足檢測的實時性及在移動端部署時的要求。
為解決上述問題,本文以YOLOv4目標檢測網(wǎng)絡為基礎,針對蘋果葉片的病斑檢測任務,以提升網(wǎng)絡對蘋果葉片病斑檢測的精確度和速度為目標,搭建具有檢測準確率高、檢測速度快、小目標檢出率高等特點的PSA(金字塔壓縮注意力)-YOLO目標檢測網(wǎng)絡。
實驗所用蘋果葉片病害數(shù)據(jù)集由人工采集,包含斑點落葉病、褐斑病、灰斑病和銹病等4種蘋果葉片病害圖像,其中蘋果葉片斑點落葉病的圖像為556幅,褐斑病圖像為493幅,灰斑病圖像為404幅,銹病圖像為429幅,共1 892幅原始圖像(JPEG格式)。圖像均采用智能手機拍攝,如圖1所示。大多數(shù)為自然光下田間直接采集的具有復雜背景的圖像,少部分為單純實驗室背景的圖像,通過縮放、填充、裁剪等操作將原始圖像尺寸統(tǒng)一規(guī)整為256像素×256像素。從圖1中可以看出蘋果葉片病害圖像有葉片病斑小、病斑相似度高等特點,這給病斑特征的提取及病斑的精準檢測帶來了一定難度。
圖1 蘋果患病葉片數(shù)據(jù)集圖例Fig.1 Examples of apple diseased leaves dataset
本文在訓練前將獲取的全部圖像按照8∶1∶1的比例隨機劃分訓練集、驗證集與測試集。采用Mosaic方法[14]對訓練集進行數(shù)據(jù)增強,如圖2所示。這種數(shù)據(jù)增強方法的主要過程為,在訓練集中隨機選取4幅圖像,并對所選的圖像進行隨機翻轉,最終將這4幅圖像拼接成1幅圖像。在葉片訓練數(shù)據(jù)有限且沒有增加訓練集圖像數(shù)量的前提下,使每幅圖像包含4幅不同圖像的信息,能提高目標檢測網(wǎng)絡的泛化能力。
圖2 Mosaic數(shù)據(jù)增強后的部分訓練集圖像Fig.2 Images with Mosaic augmentation in training set
本文基于YOLOv4目標檢測網(wǎng)絡進行改進,提出PSA-YOLO網(wǎng)絡,如圖3(圖中CBM表示卷積-批歸一化-Mish激活函數(shù)模塊,BN表示批歸一化)所示。首先,在CSPDarknet53主干網(wǎng)絡中添加了Focus結構[22]和PSA機制[23],并按照“1-1-4-4-2”的型式堆疊殘差塊,精簡網(wǎng)絡層數(shù)。其次,將壓縮合并(Squeeze and concat,SPC)模塊與空間金字塔池化(Spatial pyramid pooling,SPP)[24]模塊融合為空間金字塔卷積池化模塊(Spatial pyramid convolution and pooling,SPCP)替代了原有的SPP模塊。最后,采取K-means聚類方法和α-CIoU損失函數(shù)對訓練圖像進行維度分析和邊界框回歸,檢測頭部分保持不變。這些部分共同構成了PSA-YOLO網(wǎng)絡的基本結構。
圖3 PSA-YOLO結構Fig.3 Structure of PSA-YOLO
為使含有重要信息的通道在網(wǎng)絡前向傳播初期獲得更大程度的關注,充分提取蘋果葉片病斑邊緣紋理底層特征提升檢測的精確度,PSA-CSPDarknet網(wǎng)絡只保留CSPDarknet53網(wǎng)絡CSP1-1層中的殘差塊并在殘差塊前增加Focus結構和PSA模塊,PSA-CSPDarknet網(wǎng)絡結構如圖4b所示。
圖4 原CSP 1-1結構和改進后的結構Fig.4 Structure of original CSP 1-1 and improved structure
Focus結構在YOLOv5[22]目標檢測網(wǎng)絡中已經得到運用,代替了主干網(wǎng)絡第一次下采樣,在COCO數(shù)據(jù)集中展示了良好的檢測性能。其通過張量切片操作將輸入圖像切分為4個相似的特征圖,然后將4個特征圖在通道維度上融合使空間特征在無信息損失的情況下轉化為通道特征,以此來代替原網(wǎng)絡中的第一次下采樣。
PSA模塊分為4部分,如圖5(圖中k表示卷積核尺寸,G為卷積核分組大小,F(xiàn)C表示全連接層)所示。首先,通過SPC模塊有效地提取并整合輸入特征圖不同尺度的空間信息。SPC模塊對輸入特征圖的空間維度用3、5、7、9共4種尺寸的卷積核進行分組卷積,每種尺寸卷積核所分組大小分別為2、4、8、16,來實現(xiàn)對特征圖的分組卷積與通道壓縮。然后將用SPC模塊處理后的特征圖使用SEWeight模塊[25]學習權重,統(tǒng)籌局部和全局注意力,根據(jù)特征通道對分類任務的重要程度分配不同權重。Softmax將包含通道的權重歸一化。通過將歸一化的權重與SPC模塊處理后的特征圖相乘實現(xiàn)了注意力權重與通道之間的交互,使得特征圖中對病斑檢測更重要的通道分配到更高權重。
圖5 金字塔壓縮注意力機制結構Fig.5 Structure of PSA mechanism
為了均衡主干網(wǎng)絡的速度和精度,以融合Focus結構和PSA模塊后的CSPDarknet53為基礎,重新調整殘差塊的數(shù)量排布,以精簡網(wǎng)絡層數(shù),降低網(wǎng)絡參數(shù)和計算量。分別構建了3個模型,PSA-CSPDarknet-1、PSA-CSPDarknet-2、PSA-CSPDarknet-3。其中,PSA-CSPDarknet-1將CSPDarknet53網(wǎng)絡CSP層中殘差塊的數(shù)量減半,設置為“1-1-4-4-2”,受文獻[26]中ResNet-18、ResNet-34網(wǎng)絡結構啟發(fā),將PSA-CSPDarknet-2、PSA-CSPDarknet-3殘差排列分別設置為“1-2-2-2-2”和“1-3-4-6-3”。
為進一步提取深層主干網(wǎng)絡中空間維度的多尺度語義信息,搭建了空間金字塔卷積池化模塊以替代原有空間金字塔池化模塊。YOLOv4中頸部主要包含兩部分,即空間金字塔池化和路徑聚合網(wǎng)絡(Path aggregation network,PANet)[27]??臻g金字塔池化是一種特殊池化方法,采用步長為1、卷積核尺寸為5×5、9×9和13×13的最大池化,其與主干網(wǎng)絡最深一層的特征圖緊密集成,擴大感受野并整合多尺度空間信息。PSA-YOLO目標檢測網(wǎng)絡中,主干網(wǎng)絡提取局部紋理和圖案信息,以構建后續(xù)層所需的語義信息。然而,隨著網(wǎng)絡深度的增加,層之間的互連變得更加復雜,網(wǎng)絡的寬度也會變得更加龐大,尤其在通過SPP模塊后卷積核數(shù)量達到2 048,增加了網(wǎng)絡的參數(shù)量和計算量。在SPP模塊之前插入了SPC模塊,用分組多尺度卷積后再壓縮的方法使進入SPP模塊的卷積核數(shù)減少一半,在加強對多尺度空間信息提取的同時,對網(wǎng)絡計算量進行了進一步平衡。如圖6所示,將SPC模塊添加到SPP模塊之前,將通過SPP模塊后的通道數(shù)壓縮為1 024,搭建起SPCP模塊。在基本不影響網(wǎng)絡中數(shù)據(jù)傳播速度的前提下,提高了網(wǎng)絡對局部特征與全局特征信息的利用效率。路徑聚合網(wǎng)絡中使用了自下而上的路徑增強,縮短了多尺度特征金字塔圖的高低融合路徑,融合來自PSA-CSPDarknet-1中CSP4層、CSP2層和經SPCP模塊輸出的3種尺度的特征圖信息,使較淺網(wǎng)絡(CSP4層、CSP2層)的特征信息得到有效利用。
圖6 空間金字塔卷積池化模塊結構Fig.6 Structure of SPCP module
在目標檢測算法的邊界框回歸中,很多常用的邊界框損失函數(shù)都基于IoU損失演化而來,例如Generalized IoU(GIoU)[28]、Distance IoU(DIoU)和Complete IoU(CIoU)[29]。α-IoU系列損失[30]應用冪變換來概括上述基于IoU的損失。當出現(xiàn)IoU值低的噪聲框時,α-IoU損失會自適應地提高邊界框回歸損失值,使在訓練帶有爭議的預測框時,邊界框損失的降低得到抑制,避免過擬合現(xiàn)象發(fā)生。相反,當出現(xiàn)IoU值高的預測框時,α-IoU損失會相對噪聲框獲得更低的邊界框損失,進而使得網(wǎng)絡能預測更多高IoU對象,實現(xiàn)在高IoU閾值的目標檢測平均精度上升。在以上兩種因素同時作用下,會最終使網(wǎng)絡針對高IoU閾值的目標檢測性能得到提高。
3.1.1硬件條件和超參數(shù)設置
實驗環(huán)境配置參數(shù)如下:操作系統(tǒng)為Ubuntu 16.04 LTS,中央處理器為Intel Xeon E5-2620 v4,圖形處理器為NVIDIA GTX TITAN V,顯存為12 GB。訓練使用PyTorch 1.2深度學習框架。
3.1.2評價指標
機器視覺國際會議中常用COCO AP(Average precise)或AR(Average recall)作為目標識別的評價標準。本文采用COCO AP@[0.5∶0.05∶0.95]作為蘋果葉片病害檢測準確率評價指標來綜合評估模型的檢測性能,即分別在IoU閾值設置以0.05的步距從0.5開始遍歷至0.95,取這些閾值條件下評估所得到的平均準確率的均值。
根據(jù)檢測器的IoU閾值不同,則對應召回率所對應的檢測精度不同,得到不同閾值下的AP,例如當IoU閾值等于0.5時對應的AP值為AP50。當被檢測的物體覆蓋面積小于32像素×32像素時,其被視作小目標,對應的指標被稱為APS。當被檢測的物體覆蓋面積大于96像素×96像素時,其被視作大目標,對應的指標被稱為APL。被檢測的物體面積介于兩者之間,則為中等大小,其指標被稱為APM。
在訓練過程中為了擴充數(shù)據(jù)集和保證損失值的穩(wěn)定下降,PSA-YOLO使用了學習率的余弦退火衰減策略、邊界框的非極大值抑制等YOLOv4原有的訓練策略,并使用二元交叉熵損失作為類別置信度損失函數(shù)。還將數(shù)學特征更加平滑的Mish激活函數(shù)應用在整個網(wǎng)絡中以增強目標檢測器的準確性和泛化性能。批大小(Batch size)采用16,采用余弦退火衰減策略更新學習率,學習率初始值為1.0×10-4,最小值為1.0×10-5,每20輪為一個衰減周期。α-CIoU損失中α的取值為3。總訓練輪數(shù)為200。
為實現(xiàn)主干網(wǎng)絡目標檢測精度和檢測速度的均衡提升,以獲得更高性能的目標檢測網(wǎng)絡,在原主干網(wǎng)絡CSPDarknet53的基礎上進行了模塊添加實驗和網(wǎng)絡輕量化實驗,以此證明不同的改進對網(wǎng)絡性能的影響,最終比較得出最優(yōu)的主干網(wǎng)絡。實驗按照2.2節(jié)所描述的方法分別在CSPDarknet53網(wǎng)絡CSP1-1層中加入Focus結構、PSA模塊,以及將主干網(wǎng)絡的殘差塊分別按照“1-2-2-2-2”、“1-1-4-4-2”、“1-3-4-6-3”型式進行堆疊。最后,將不同結構的主干網(wǎng)絡結構帶入YOLOv4網(wǎng)絡中代替原有的CSPDarknet53主干網(wǎng)絡進行性能比較。
如表1所示,F(xiàn)ocus結構和PSA模塊的加入,使CSPDarknet53網(wǎng)絡在無參數(shù)量提升的情況下,AP提升2.4個百分點。同時注意到,F(xiàn)ocus結構和PSA模塊的加入使網(wǎng)絡APS提升2.9個百分點,這說明Focus結構和PSA模塊的加入有利于主干網(wǎng)絡對蘋果葉片病斑特征的提取,尤其是小型病斑特征的提取。
表1 基于CSPDarknet53對主干網(wǎng)絡的改進實驗結果Tab.1 Result of improved backbone network experiment based on CSPDarknet53
PSA-CSPDarknet-1、PSA-CSPDarknet-2、PSA-CSPDarknet-3網(wǎng)絡比加入Focus結構和PSA模塊未輕量化的PSA-CSPDarknet-0網(wǎng)絡精度都有所下降,說明網(wǎng)絡深度的減小會對病斑檢測的精確度產生不利影響。但三者的精確度都比最初的CSPDarknet53網(wǎng)絡有所提高,這表明Focus結構和PSA模塊的加入抵消了因網(wǎng)絡深度減小而導致的精確度降低,使網(wǎng)絡的性能得到均衡提升。同時PSA-CSPDarknet-1網(wǎng)絡與PSA-CSPDarknet-3網(wǎng)絡相比,有更小的參數(shù)量和更高的檢測精度。PSA-CSPDarknet-2網(wǎng)絡雖然參數(shù)量得到了明顯的減小,但檢測精確度受網(wǎng)絡深度縮減影響較大,檢測精確度與PSA-CSPDarknet-1網(wǎng)絡相比仍有不足。
綜合以上結果,為了使主干網(wǎng)絡的檢測精確度和速度達到均衡,最終選擇PSA-CSPDarknet-1網(wǎng)絡作為病斑檢測網(wǎng)絡的主干網(wǎng)絡。相比CSPDarknet53,PSA-CSPDarknet-1的參數(shù)量小、浮點運算數(shù)少、運算速度快、精度高,其計算量與CSPDarknet53網(wǎng)絡相比減少了30.4%、AP提升了1.8個百分點,具有更好的移動端部署的特點,相比表1中所對比的其他主干網(wǎng)絡,PSA-CSPDarknet-1能更好地實現(xiàn)對蘋果葉片病斑的實時檢測。
為探討SPCP模塊的加入對目標檢測網(wǎng)絡訓練精確度和速度的影響,設計以下消融實驗。分別采用PSA-CSPDarknet-1與CSPDarknet53兩種主干網(wǎng)絡與SPP模塊及SPCP模塊進行組合實驗,選出最優(yōu)組合方式。
由表2可見,PSA-CSPDarknet-1網(wǎng)絡與SPP模塊及SPCP模塊組合的結果都比CSPDarknet53與這兩個模塊組合的實驗結果更為理想,網(wǎng)絡參數(shù)量和運算量有所下降的同時,使網(wǎng)絡的準確率與檢測速度得到提升。其中,以PSA-CSPDarknet-1為主干網(wǎng)絡,添加SPCP模塊后,使網(wǎng)絡在計算量沒有明顯提升的前提下,病斑檢測的平均精確度達到48.5%。實驗結果表明,當采用PSA-CSPDarknet-1主干網(wǎng)絡且頸部中加入SPCP模塊時,網(wǎng)絡獲得最優(yōu)檢測性能,相比于YOLOv4,AP提升2.2個百分點,速度提升13幀/s。
表2 網(wǎng)絡頸部對比Tab.2 Ablation study of neck of network
不同的邊界框損失函數(shù)能夠對網(wǎng)絡的檢測精度帶來不同程度的影響。為了對比α-DIoU、DIoU、α-CIoU等3種邊界框損失函數(shù)與YOLOv4所采用的CIoU邊界框損失函數(shù)的性能,分別將這4種邊界框損失函數(shù)與LeakyReLU及Mish激活函數(shù)進行組合實驗,選出最好的激活函數(shù)與邊界框損失函數(shù)的組合方案。組合實驗結果如表3所示。
表3 邊界框損失函數(shù)對比Tab.3 Comparisons of bounding box loss functions
實驗結果表明,LeakyReLU激活函數(shù)與α-CIoU損失相配合獲得了最好的檢測性能,網(wǎng)絡的AP、AP50、AP75指標比原有的CIoU邊界框損失都高,這證明了α-IoU系列損失在蘋果葉片病斑數(shù)據(jù)集上能夠與改進后的PSA-YOLO網(wǎng)絡相互配合提高不同IoU閾值目標的檢測精確度。由于Mish激活函數(shù)無法有效提升網(wǎng)絡的檢測精確度,因此本文選用LeakyReLU的激活函數(shù)與α-CIoU邊界框損失函數(shù)以獲得更高的病斑檢測性能。
根據(jù)3.3~3.5節(jié)的實驗結果,確定了PSA-YOLO的基本結構,主干網(wǎng)絡:PSA-CSPDarknet-1網(wǎng)絡,頸部:SPCP模塊、PAN模塊,邊界框損失:α-CIoU損失。
為了驗證本文所構建的PSA-YOLO網(wǎng)絡在目標檢測任務中的有效性,選取YOLOv3、YOLOv3-SPP、YOLOv4、YOLOv4-CSP網(wǎng)絡,在其他條件和參數(shù)設置均保持一致的前提下進行對比實驗。模型性能比較結果見表4。測試結果顯示,當IoU閾值為0.5時,PSA-YOLO網(wǎng)絡檢測精確度(AP50)達到88.2%,同時PSA-YOLO網(wǎng)絡對病斑檢測的COCO AP@[0.5∶0.05∶0.95]為49.8%,兩者與其他網(wǎng)絡相比都為最高。從網(wǎng)絡對于小、中、大型目標的檢測平均精確度來看,PSA-YOLO網(wǎng)絡的APS、APM、APL相比于其他網(wǎng)絡都有明顯提高,其中,對于小目標的檢測精確度提升最大,APS比YOLOv4網(wǎng)絡提升了3.9個百分點。綜上所述,本文所構建的PSA-YOLO目標檢測網(wǎng)絡具有比YOLOv4更高的檢測準確率和更快的檢測速度。尤其在小目標的檢測方面,能夠勝任具有較多小目標的蘋果葉片病斑檢測任務。同時,從模型對單個圖像的平均處理時長來看,PSA-YOLO檢測速度最快,在單張NVIDIA TITAN V顯卡的算力支持下,對于單幅圖像的預測時間僅為0.015 s,滿足病斑檢測過程中對實時性的要求。
表4 蘋果葉片病斑檢測任務網(wǎng)絡綜合性能對比Tab.4 Comprehensive performance comparison for apple leaf lesion detection networks
圖7(圖中紫框為葉片,綠框為斑點落葉病,黃框為灰斑病,紅框為褐斑病,藍框為銹病)展示了PSA-YOLO網(wǎng)絡與YOLOv4網(wǎng)絡對蘋果葉片病斑的預測結果,其中第1列和第2列圖像展示了PSA-YOLO網(wǎng)絡對蘋果葉片銹病和褐斑病病斑的檢測結果,由第1列圖像可見,PSA-YOLO網(wǎng)絡相對于YOLOv4減少了病斑的漏檢。第2列所示圖像中病斑數(shù)真實值為6個,YOLOv4網(wǎng)絡檢測出4個,PSA-YOLO檢測出5個病斑,而中間偏下位置相鄰的兩個病斑的距離較近,兩種網(wǎng)絡都未能準確檢測,這說明PSA-YOLO網(wǎng)絡在對距離較近的目標檢測方面仍有待改進。第3列圖像說明PSA-YOLO網(wǎng)絡能夠較好識別在大田復雜背景下對于斑點落葉病的檢測,相對于YOLOv4網(wǎng)絡減少了對斑點落葉病病斑的漏檢和誤檢,但由于數(shù)據(jù)集中自然損害的斑點以及非病斑噪聲等因素的干擾,PSA-YOLO網(wǎng)絡對于極小的病斑依然無法準確檢測。第4列和第5列圖像展示了兩種網(wǎng)絡在大田復雜背景和實驗室背景下單葉片多病害病斑的識別,結果表明PSA-YOLO網(wǎng)絡能夠有效減少小型病斑的漏檢率,相比于YOLOv4網(wǎng)絡預測結果更加準確。
圖7 4種不同蘋果病害檢測結果對比Fig.7 Comparison of four different apple diseases’ detection results
為提升YOLOv4網(wǎng)絡的檢測精確度和速度,尤其針對小型目標較多的蘋果葉片病斑檢測任務,本文以YOLOv4網(wǎng)絡為基礎,在主干網(wǎng)絡、頸部、邊界框損失函數(shù)等方面進行了對比實驗。在CSPDarknet53的基礎上添加了Focus結構和金字塔壓縮注意力機制,并進行了輕量化處理,構建了PSA-CSPDarknet-1主干網(wǎng)絡。其次,在頸部中使用了空間金字塔卷積池化模塊,同時優(yōu)選了α-CIoU損失作為目標檢測網(wǎng)絡的邊界框損失函數(shù)。最終,搭建出PSA-YOLO網(wǎng)絡。在本文構建的蘋果葉片病害數(shù)據(jù)集的病斑檢測任務中,當IoU閾值為0.5時,PSA-YOLO網(wǎng)絡檢測精確度(AP50)達到88.2%,檢測平均精確度(COCO AP@[0.5∶0.05∶0.95])達到49.8%,檢測速度達到69幀/s,尤其是對于小型病斑的檢測性能相對YOLOv4有較為明顯提升。因此,本文所提出的PSA-YOLO模型的檢測速度快、精度高,能滿足在復雜自然環(huán)境情況下對蘋果樹葉片病斑實時檢測任務的需要。