王銘慧 張懷清 樊江川 陳幫乾 云 挺,5*
(1.南京林業大學 信息科學技術學院,南京 210037;2.中國林業科學研究院 資源信息研究所,北京 100091;3.國家農業信息化工程技術研究中心 數字植物北京市重點實驗室,北京 100097;4.中國熱帶農業科學院 橡膠研究所,海口 571737;5.南京林業大學 林草學院,南京 210037)
在番茄培育過程中不可避免地會因為種植操作不當、防治措施不到位、環境污染等各種原因發生病蟲害,影響番茄品質并導致產量降低,造成經濟損失[1]。據調查,我國現有危害番茄的病蟲害不少于30種,流行地區日趨擴大,成為番茄高產穩產的一大障礙[2]。近年來,新型番茄流行病害有所增加,如:褪綠病毒病[3]、番茄褐色皺紋果病毒病[4]等,目前還尚未有對應的番茄抗病品種育成,一旦流行往往損失嚴重,因此,構建一個智能檢測、識別番茄病蟲害的網絡,及時發現問題,做到精準防治,對保障番茄生產有重要意義。
傳統的病蟲害防治耗時耗力,并且會由于外部干擾和人力限制,造成判斷不準確或時間上的滯后,導致病蟲害防治效率不高。隨著計算機視覺技術的發展,機器學習方法在病蟲害識別上得到應用,并大大提高了病蟲害防治效率。經典的機器學習方法有支持向量機(Support Vector Machines,SVM)[5]、K-means聚類算法[6]、樸素貝葉斯[7]等。SVM可作為2值分類器,在番茄葉片病害的檢測中,將灰度共生矩陣用于特征提取然后使用SVM將提取的特征進一步分為健康葉片和感染葉片2類[8],還可以結合方向梯度直方圖特征和SVM,實現對水稻病害的檢測和識別[9]。K-means聚類算法可以進行圖像分割,然后結合神經網絡工具進行分類,從聚類中提取的7個特征,如對比度、相關性、能量、同質性、均值、標準差和方差,作為神經網絡的輸入,用于識別和分類病害[10]。利用樸素貝葉斯可以實現自動識別、診斷作物病害的技術和方法,構造玉米葉部病斑分類識別模塊[11]。針對圖像質量低、存在噪聲和陰影、背景雜亂、圖像紋理不同等問題,首先對不同的特征進行預處理和選擇提取,然后采用多層感知器(Multilayer perceptron,MLP)集成了4種分類器:隨機森林(Random Forest,RF)、SVM、邏輯回歸(Logistic Regression,LR)和K-近鄰(K-nearest neighbor,K-NN),對田間和實驗室條件下的番茄葉片病害圖像進行分類,準確率達到95.98%[12]。但是由于圖像具有高維度和復雜的特征結構,在使用機器學習算法進行圖像分類時,有效地對特征進行提取和表示的過程相對復雜,并且機器學習算法在處理不同角度、距離、光照條件下的同類樣本時會遇到困難。
近年來,深度學習技術被廣泛研究應用到各領域,其中,卷積神經網絡(Convolutional Neural Network,CNN)[13]在處理多維數組數據時效果較為突出,更適合圖像、視頻這類數據的檢測與識別,得益于其強大的學習能力、自動提取圖像特征的功能,使得深度學習技術在植物病蟲害識別的應用上比傳統的機器學習技術更準確高效。如在傳統的AlexNet[14]模型上改進,采用批歸一化與全局池化相結合的卷積神經網絡模型識別多種葉片病害[15]、用2個著名的深度模型AlexNet和GoogleNet[16]構建病害分類器,與需要人工處理特征的淺層模型相比,該研究結果證明了CNN模型在番茄病害分類方面具有更好的性能[17];又如輕量級多分枝殘差網絡(LMBRNet)通過4個卷積核大小不同的分支,提取番茄葉片不同維度和感受野的多種病害特征,兼顧了番茄葉片病害識別的準確性和速度[18]。
除了識別番茄病蟲害的類別,在番茄被病蟲害危害的初期檢測病蟲害的部位、定位病斑或害蟲的準確位置,并及時做出相對應的防治措施,可有效地避免番茄種植基地病蟲害大規模的爆發。根據算法的流程可以將目標檢測算法分為兩大類:1種是以Faster R-CNN[19]為代表的兩階段算法,先由算法生成候選框作為樣本,去搜索目標以及調整邊界框;另1種是以SSD(Single Shot MultiBox Detector)[20]、YOLO(You Only Look Once)[21]為代表的單階段算法,它是直接將目標邊界定位問題轉換成回歸問題,模型僅需處理圖像1次就能得到邊界框坐標和類別概率。兩階段的病害檢測算法有:將區域生成網絡(RegionProposal Network,RPN)架構引入Faster R-CNN算法實時檢測水稻葉病害,能夠非常精確地定位目標位置[22]、使用改進的Mask R-CNN結合集成神經網絡檢測番茄葉片病害的類型和感染區域[23]。單階段算法如:在YOLOv5模型中加入SE(Squeeze-and-Excitation)模塊,運用注意力機制提取關鍵特征,有效地檢測出番茄病毒病害區域[24]。2種方法的區別也導致其性能不同,兩階段在檢測準確率和定位準確率方面更優,但是檢測速度慢;單階段放棄了高精度,但是換來了比兩階段算法快很多的速度。1種在單階段目標檢測YOLOv3算法的基礎上,改進K-means算法的玉米病蟲害檢測方法,實現了平均損失值下降速度與目標檢測精度的平衡[25]。然而用深度學習模型進行圖像檢測與識別時也存在一些局限,例如需要大量的多樣性的數據集進行訓練,并且由于圖像的拍攝角度不同導致目標姿態異常,很容易造成錯誤的檢測識別結果。
傳統的目標檢測方法雖然具有分類功能但是更側重于物體搜索,研究大多致力于對目標的定位,分類功能沒有得到更好的發展,而圖像分類成績較好的一些傳統CNN卻只有單一的分類功能。在番茄種植管理中,需要目標檢測和分類識別同時應用。因此,為了在現實應用中得到更好的檢測和識別效果,以受病蟲害影響的番茄植株圖像為研究對象,考慮番茄病蟲害目標小而密且自然背景復雜的特點,擬采用Swin Transformer[26]作為主干網絡構建改進的YOLOX[27]目標檢測網絡,以期實現更有效的小目標病蟲害檢測定位,提高計算效率。此外,在傳統的CNN架構中添加1個旋轉不變Fisher判別層構建旋轉不變Fisher判別CNN分類網絡,通過在網絡的目標函數上加入2個正則化約束項訓練新加層,來解決病蟲害圖像角度不同造成病蟲害形狀變化的問題以及不同病蟲害之間相似度過高同類病蟲害特征多變的問題。通過上述研究內容為番茄病蟲害的智能防治提供依據,實現病蟲害目標的檢測定位與分類。
本研究選取葉霉病(病原Fulviafulva)、早疫病(病原Alternariasolani)、灰葉斑病(病原Stemphyliumsolani)、白粉虱(Bemisiatabaci)、美洲斑潛蠅(Liriomyzasativae)和棉鈴蟲(Helicoverpaarmigera)6種常見番茄病蟲害圖像作為研究對象,研究數據集由農業病蟲害研究圖庫(IDADP,http:∥www.icgroupcas.cn/website_bchtk/index.html)中的番茄病蟲害數據集和在連云港市草舍村番茄采摘基地拍攝的圖片組成,典型的圖片詳見圖1。對采集的圖片使用工具進行標注:訓練數據集用于目標檢測任務時只需要將目標邊界框標注為“目標(Object)”1類并標注位置;用于分類任務則需要標注6種具體病蟲害類別和健康植株。為了保證模型的穩定性和泛化能力,對所有圖像進行了resize操作,將像素調整為224×224。
圖1 6種番茄病蟲害和健康番茄植株的部分圖像展示
為了豐富數據集同時訓練分類網絡的旋轉不變性,對樣本進行了4次隨機角度旋轉操作,實現旋轉數據的增廣,詳見圖2。經過旋轉操作后,圖像尺寸保持不變。表1列出了訓練集和測試集的數量,將每個類別采集到的樣本分出200張作為測試集(采集),剩余作為訓練集(采集)并對其進行旋轉數據增廣處理得到訓練集(增廣)。
表1 番茄病蟲害數據集各類別訓練及測試樣本數量
圖2 對原始訓練樣本進行旋轉得到增廣訓練樣本過程示意圖
本研究番茄病蟲害檢測與識別的工作流程如圖3所示。該流程分為病蟲害目標檢測和病蟲害分類識別兩部分:首先基于Swin Transformer的YOLOX目標檢測網絡可以檢測病蟲害的區域并準確定位病蟲害位置;然后旋轉不變Fisher判別CNN網絡可以對病蟲害的類別具體分類。2個網絡的主要作用不同,共同應用在番茄病蟲害的防治中,精準控制病蟲害對番茄的影響,減少損失。
圖3 番茄病蟲害檢測與識別的總體工作流程圖
本研究的目標檢測網絡在YOLOX的基礎上進行改進,采用Swin Transformer作為主干網絡,Transformer[28]中的注意力機制可以綜合考量全局的特征信息,Vision Transformer(ViT)[29]則將Transformer模型架構擴展到計算機視覺的領域中,Swin Transformer是在ViT的基礎上使用滑動窗口(Shifted Windows,SW)進行改進,不同于ViT中固定大小的采樣塊,Swin Transformer按照4、8、16、32倍下采樣分成4個階段,用窗口(Window)來劃分特征圖,每一個窗口獨立運算從而提高計算效率。同時將雙向特征金字塔網絡(Bi-Directional Feature Pyramid Network,BiFPN)[30]作為新的特征融合模塊代替原來的路徑聚合網絡(Path Aggregation Network,PANet),提高定位精確率。本研究改進的基于Swin Transformer的YOLOX主要分為3個部分:1)Swin Transformer作為主干網絡提取不同分辨率特征;2)BiFPN特征融合模塊加強特征提取;3)解耦檢測頭(Decoupled Head)提高檢測性能。基于Swin Transformer的YOLOX網絡結構詳見圖4。
圖4 改進的YOLOX總體網絡結構
1.3.1基于Swin Transformer的主干網絡
如圖4所示,以尺寸為[224,224,3]的圖像作為網絡的輸入,將Swin Transformer主干網絡分為4個階段,階段1分為:(1)分塊嵌入(Patch Embedding);(2)Swin Transformer模塊(Swin Transformer block)。具體執行的操作如下:
1)分塊嵌入通過卷積使實現下采樣與維度變換,卷積核大小為4×4,步長為4,輸入輸出通道數分別為3和96(96是預設好的對于Transformer更容易接受的維度),輸出特征圖尺寸變成[56,56,96],再通過flatten操作將特征圖形狀變為[3 136,96]。
2)階段1的Swin Transformer模塊數量為2,第一個模塊的具體操作如下:模塊的輸入大小為[3 136,96],首先對輸入序列做層歸一化操作(Layer Normalization,LN)[31],輸出大小不變,之后對輸出作形狀轉換將特征圖形狀變回[56,56,96],進入基于窗口的多頭自注意力(Windows Multi-head Self-Attention,W-MSA)塊。W-MSA塊首先通過Window Partition操作,將大小為[56,56,96]的特征圖劃分為64個[7,7,96]大小的窗口,再經過形狀變換得到64個尺寸為[49,96]的序列,對每個窗口內的49個元素進行多頭自注意力計算,計算過程如下:
(1)
(2)
(3)
(4)
第一個模塊輸出后進入第二個模塊,第二個Swin Transformer模塊與第一個的不同之處在于將W-MSA塊變成了基于滑動窗口的多頭自注意力(Shifted Windows Multi-head Self-Attention,SW-MSA)塊,滑動窗口的操作是將W-MSA塊中劃分的64個7×7大小的窗口同時在水平和垂直方向移動3個塊的距離,實現不同窗口之間的信息交互,并且通過設置合理的掩碼,讓SW-MSA與W-MSA的窗口個數相同,達到等價的計算結果,除此之外其他計算過程與第一個模塊基本相同。Swin Transformer模塊的具體結構圖參見文獻[26]。Swin Transformer模塊的輸入輸出大小不變,階段1的輸出大小為[3 136,96]。
階段2分為:(1)分塊合并(Patch Merging);(2)Swin Transformer模塊。具體執行的操作如下:
1)階段2的輸入大小為[3 136,96],先將輸入形狀轉換為[56,56,96],然后進行分塊合并實現縮小分辨率、調整通道數,類似于池化操作,但是不會損失信息,具體操作見圖5,經過步驟(b)得到大小為[28,28,96]的4個新的特征圖,再經過步驟(d)得到大小為[28,28,384]的特征圖,最后通過1個線性映射將通道數縮小為原來的2倍,所以Patch Merging層的輸出大小變為[28,28,192],最后將形狀轉變為[784,192]。
圖5 Patch Merging下采樣過程示意圖
2)階段2的Swin Transformer模塊與階段1基本相同,個數為2,輸入輸出大小是[784,192]。
階段3、4與階段2是相同的2個步驟,細節不同之處在于,階段3的Swin Transformer模塊由6個模塊堆疊而成,階段1、2、4的Swin Transformer模塊數量都為2,Swin Transformer模塊堆疊的方式是基于W-MSA與基于SW-MSA的2種模塊成對交替出現。階段1~4的輸出大小分別為[3 136,96]、[784,192]、[196,384]和[49,768]。
1.3.2BiFPN加強特征提取
特征融合模塊BiFPN是一種加權的雙向特征金字塔網絡,不同的輸入特征具有不同的分辨率,BiFPN為每個輸入增加1個額外的權重,讓網絡了解每個輸入特征不同的重要性,還增加了簡單的殘差操作,增強特征的表示能力,實現自上而下與自下而上的深、淺層特征雙向融合,增強不同網絡層之間特征信息的傳遞,提升算法檢測性能。
將主干網絡的階段2、3、4作為有效特征層,對這3層的輸出做Reshape操作,將[784,192]、[196,384]和[49,768]變為[28,28,192]、[14,14,384]和[7,7,768]輸入BiFPN,進一步進行特征提取。本研究中BiFPN的結構見圖4,Upsample(2)為2倍的上采樣,將特征圖分辨率變為原來的2倍,通道數變為原來的一半,Downsample(2)為2倍的下采樣,將特征圖分辨率變為原來的一半,通道數變為原來的2倍。圖中的Conv(3,192,192)為卷積操作,其中,3為卷積核的大小3×3,第一個192為卷積操作的輸入通道數為192,第二個192為輸出通道數,卷積步長為1,填充模式為“SAME”。
BiFPN的上采樣路徑由階段4輸出的深層低分辨率特征[7,7,768]作為輸入,經過Upsample(2)調整分辨率和通道數后與中間特征層的輸入[14,14,384]融合,然后經過Conv(3,384,384)的卷積操作提取特征,得到輸出,大小為[14,14,384],對其進行Upsample(2)操作后,與最上層特征層的輸入[28,28,192]融合,再對融合的結果做Conv(3,192,192)的卷積操作得到第一個有效特征層的輸出,大小為[28,28,192]。下采樣路徑具體流程參見圖4。
1.3.3Decoupled Head輸出檢測信息
YOLOX在最終輸出時使用了解耦檢測頭(Decoupled Head),解耦檢測頭中對于預測目標類別、定位以及交并比(Intersection of Union,IoU)參數分別使用3個不同的分支,這樣就將3者進行了解耦,提高檢測性能。
Decoupled Head的具體操作如下:將BiFPN輸出的特征圖先通過1×1的卷積將通道數變為256,再經過標準化(Batch Normalization,BN)和SiLU激活函數激活,然后分成2個部分,1個預測特征點的類別,另1個負責特征點的位置和IoU預測。類別預測分支的過程為:經過卷積、標準化和SiLU激活后,再經過1層卷積然后輸出,其中前1層的卷積核大小為3×3,步長為1,填充類型為“SAME”,輸出通道數數為256,后1層所用的卷積核大小為1×1,步長為1,填充類型為“VALID”,輸出通道數為1。位置和IoU預測分支的過程與類別預測分支相同,只有最后1層的卷積輸出通道數不同,YOLOX關于位置直接預測4個值,即網格左上角的2個偏移量,以及預測框的高度和寬度,因此位置預測分支的輸出通道數為4,IoU預測分支的輸出通道數為1。Decoupled Head的具體結構圖見文獻[27]。
如圖4所示,將Decoupled Head的3個分支的輸出在深度方向上進行拼接,每個有效特征層的輸出通道數都變為6,再經過形狀轉換將輸出變成行數為元素個數、列數為6的2階張量,3個Decoupled Head的輸出經過處理后形狀分別變為[784,6]、[196,6]和[49,6],將這3個輸出再拼接然后轉置(Transpose),最終輸出結果大小為[6,1 029]。
最后對網絡的輸出進行解碼,即將這些輸出翻譯成對應的預測框,回歸的位置信息映射到原圖位置,就可以在圖中找到病蟲害的具體位置。在定位圖中病蟲害區域的之后,需要識別病蟲害的具體類別,即運用1.4節所介紹的旋轉不變Fisher判別CNN,對病蟲害的類別正確分類。
本節目標是學習旋轉不變Fisher判別CNN,以提高圖像特征提取的性能,提高番茄病蟲害種類的識別準確率。通過優化目標函數,針對旋轉不變性與判別準確性來提升模型性能。其中旋轉不變性是通過在模型的目標函數上加入正則化約束項來訓練,該約束項強制旋轉前后的訓練樣本的共享相似的特征,從而實現旋轉不變。判別準確性則通過對網絡特征施加Fisher判別準則,同樣是在模型的目標函數上加入正則化約束項,使其類內分散小,類間分散大,提高判別能力。
1.4.1旋轉不變Fisher判別CNN網絡結構
如圖6所示,旋轉不變Fisher判別CNN由5個卷積層、1個3層的全連接層、1個旋轉不變Fisher判別層和1個Softmax輸出層構成,前6層的層與層之間使用最大池化層分開,所有隱藏層的激活單元都采用ReLU函數。
圖中第一層的Conv(3,3,64)為卷積操作,第一個3為卷積核大小3×3,第二個3為輸入通道數,64為輸出通道數,卷積步長為1,填充模式為“SAME”,以大小為[224,224,3]的圖像作為網絡的輸入,經過Conv(3,3,64)操作后特征圖大小變為[224,224,64],第一層經過Conv(3,3,64)和Conv(3,64,64)2次卷積得到輸出特征圖大小為[224,224,64]。
所有最大池化操作的池化核大小都為2×2,步長為2,填充模式為“VALID”,最大池化層用于減小特征圖分辨率,簡化網絡計算復雜度并壓縮特征信息,第一層輸出經過最大池化操作后特征圖大小變為[112,112,64]。
如圖6所示,前5層所有卷積核大小、卷積步長與填充模式都相同,只輸入輸出通道數有變化,第六層的第一個卷積Conv(7,512,4 096)對大小為[7,7,512]的輸入處理后,得到輸出[1,1,4 096],再先后經過Conv(1,4 096,4 096)和Conv(1,4 096,7)2次卷積,將輸出通道數調整到7,即6種番茄病蟲害的圖像和無病蟲害的番茄植株圖像共7種類別,得到第六層的輸出大小為[1,1,7]。
第七層為旋轉不變Fisher判別層,其實是1個全連接層,輸出大小為[1,1,7],其中所用的權重與偏置是經過添加了旋轉不變正則化約束與Fisher判別準則的目標函數所訓練出來的(具體介紹參見1.4.2節)。
第八層為最后1層Softmax輸出層,經過Softmax非線性激活函數,輸出大小為[1,1,7],Softmax將輸出值進行歸一化操作,輸出是0到1之間的實數,并且,Softmax函數的輸出值的總和是1,所以可以把輸出值看作分類概率判斷分類結果。
1.4.2旋轉不變Fisher判別優化目標函數
如圖6所示,為了避免過擬合并降低訓練成本,第六層以及其前面的卷積層和全連接層的所有參數(權重和偏差),在ImageNet數據集[33]上預訓練,并進行參數調整,然后轉移到旋轉不變Fisher判別CNN。對于1個訓練樣本xi∈XRI,XRI為經過旋轉數據增廣后的所有訓練樣本集合,設O6(xi)為第六層的輸出特征,O7(xi)為第七層旋轉不變Fisher判別層的輸出特征,O8(xi)為第八層Softmax分類層的輸出,大小都為[1,1,7]。
給定數據增廣后的訓練樣本XRI={xi|xi∈X∪f(X)}和它們對應的標簽YRI={yxi|xi∈XRI},其中,X為初始訓練樣本集合,f為旋轉增廣操作,f(X)為所有初始樣本經過旋轉處理得到的樣本,假設初始訓練樣本的總數為N,則XRI的大小為N×5,yxi為第i個樣本xi的真實類別標簽向量,使用One hot編碼,大小為7。
用輸入(XRI,YRI)訓練旋轉不變Fisher判別CNN分類網絡,除了要求模型在訓練數據集上的分類誤差最小外,還要求該模型對任意訓練樣本具有旋轉不變性和強大的類別辨別能力。為此,在Softmax分類層提出1個新的目標函數,見式(5),通過該公式來學習參數:
(5)
式中:WRI和BRI為整個網絡的所有權重與偏置;λ1、λ2和λ3為權衡參數,控制其所在項的相對重要性。
式(5)的第一項是Softmax分類損失函數,由7類多項負對數似然函數定義。對于給定的訓練樣本xi∈XRI,它尋求最小的誤分類誤差,計算方法為:
(6)
式中:為a與b的內積;5N為經過數據增強后的所有訓練樣本數。
式(5)的第二項是1個旋轉不變正則化約束,其被施加在旋轉前后的訓練樣本X和f(X)上,以確保它們共享相似的特征。將正則化約束項定義為:
(7)
(8)
由式(7)可見,這1項使每個訓練樣本的特征接近對應的所有旋轉樣本的平均特征表示。如果這個項的輸出值較小,即表示特征圖對旋轉變換的近似不變性。
式(5)的第三項是對網絡特征的判別正則化約束。類內散度表示為SW(XRI),類間散度表示為SB(XRI),定義如下:
SW(XRI)=
(9)
(10)
(11)
(12)
式中:O7(xi)、mj和m的大小都為7,所以SW(XRI)和SB(XRI)是大小為7×7的矩陣。直觀上,將判別正則化項F(XRI)定義為:
F(XRI)=tr(SW(XRI))-tr(SB(XRI))
(13)
式中:tr為矩陣的跡,表示矩陣對角線元素之和。
式(5)的第四項是1個權重衰減項,控制權重WRI的大小,有助于防止過擬合。
將式(6)、(7)、(9)、(10)和(13)代入式(5),有如下目標函數:
JRI(WRI,BRI)=
(O7(xi)-mj)T)-
(14)
可見,定義的目標函數不僅使分類損失最小化,而且通過2個正則化約束來實現旋轉不變性,同時使學習到的網絡特征更具判別性。
本研究通過精確率(Precision)、召回率(Recall)、交并比(Intersection of Union,IoU)和準確率(Accuracy)作為網絡模型的評價指標,公式如下:
(15)
(16)
(17)
(18)
式中:TPi為第i種病蟲害的測試樣本目標檢測定位正確的邊框數量;FPi為第i種病蟲害的測試樣本被目標檢測定位錯誤的邊框數量;FNi為第i種病蟲害樣本中被漏檢的病蟲害邊界框數量。IoU可以評價對病蟲害目標定位是否正確;A為檢測目標的預測邊框位置,B為目標實際邊框位置。選取0.5作為閾值,當A與B間的IoU大于0.5時,檢測定位結果正確,否則屬于錯誤的定位。準確率用于分類任務。Ci,i為真實類別為第i類,模型預測為第i類的樣本數量;∑jCi,j為真實類別為第i類的所有樣本數量。
表2為構建的基于Swin Transformer的YOLOX目標檢測網絡在番茄病蟲害測試數據集上的目標檢測效果,及其與經典的目標檢測網絡Faster R-CNN、SSD和基于Transformer的DETR[34]比較檢測效果。可見:本研究的目標檢測網絡采用Swin Transformer作為YOLOX的主干網絡,不僅具有層次性,還兼顧了全局信息與局部信息,對大物體和小物體的檢測都能達到更高的精確率,在病蟲害定位上有著不俗的表現,對6種病蟲害整體的檢測精確率達到了86.3%,召回率(77.2%)也比其他3種網絡(73.6%,69.7%,75.1%)更高。
表2 不同目標檢測網絡模型在番茄測試集上的準確率和召回率
圖7(a)~(d)分別是顯示了經典分類網絡AlexNet、VGGNet[35]、ViT和旋轉不變Fisher判別CNN在番茄病蟲害測試集上的分類效果的混淆矩陣圖,由矩陣和式(18)可以計算出網絡對所有測試樣本的分類準確率,分別是74.1%、77.6%、78.5%和82.8%。圖中每列的數字為每類病蟲害測試集中識別為6種病蟲害的所占比例,藍紫色方塊為所占比例在5%以下,粉色為所占比例在5%以上、60%以下,綠色為所占比例60%以上,4張混淆矩陣圖的綠色方塊都集中在對角線,表示病蟲害分類正確的測試樣本所占比例。可見:圖7中(d)的藍紫色方塊最多,粉色方塊最少,表示本研究旋轉不變Fisher判別CNN取得了更優的結果,與VGGNet、AlexNet、ViT相比有更少的錯誤分類,旋轉不變Fisher判別CNN分類網絡在深度足夠的同時進行了旋轉不變與Fisher判別優化,在每種病蟲害測試集上的正確分類數相較于其他3種網絡都有一定的提高。
圖中羅馬數字代表的含義如下:Ⅰ-葉霉病,Ⅱ-早疫病,Ⅲ-灰葉斑病,Ⅳ-白粉虱,Ⅴ-美洲斑潛蠅,Ⅵ-棉鈴蟲,Ⅶ-健康。
圖8展示了基于Swin Transformer的YOLOX目標檢測網絡和旋轉不變Fisher判別CNN分類網絡對6種番茄病蟲害的檢測與識別結果,其中圖8(a)~(f)為分類正確的結果示例,圖8(g)~(i)為分類錯誤的示例。結合表2與圖8可見:6種番茄病蟲害中,棉鈴蟲的檢測效果最好,棉鈴蟲會蛀食番茄花果和莖葉,造成腐爛,其目標單一、特征明顯且形態固定,所以棉鈴蟲比較容易檢測;白粉虱的檢測是最有挑戰性的,由于它目標小,顏色淺,在光照較強的環境下,容易與背景融為一體,給目標檢測和分類識別任務都帶來很大的挑戰,白粉虱在Faster R-CNN網絡的目標檢測任務中漏檢的問題尤其嚴重(Recall=62.9%),而基于Swin Transformer的YOLOX目標檢測大大提高了召回率(Recall=76.3%);美洲斑潛蠅的幼蟲和成蟲都會危害番茄葉片,幼蟲取食葉片正面葉肉,形成彎曲纏繞的蟲道,成蟲具有一定的飛翔能力,會吸取葉片汁液,危害番茄植株前期發育,所以判斷為美洲斑潛蠅蟲害的方式有2種,1種是白色的彎曲蟲道,1種是有飛行能力的成蟲附著在植株表面,前者存在復雜背景造成的檢測識別的困難,本研究提出的目標檢測方法有效地提高了檢測美洲斑潛蠅的精確率和召回率,分別為84.5%和78.6%。結合圖7與8可見:AlexNet、VGGNet與ViT對葉霉病的識別錯誤率都達到了20%以上,這是因為葉霉病會使番茄葉面出現橢圓形或不規則的淡黃色褪綠病斑,而葉背面會產生白霉層,病害嚴重時又有不同的特征,針對這一點,旋轉不變Fisher判別CNN通過降低類內散度來解決同種病蟲害形態多變的問題,即使同類病蟲害的特征大相徑庭,旋轉不變Fisher判別網絡能使其與真實類別的聯系更緊密,提高識別準確率;此外,AlexNet、VGGNet與ViT對灰葉斑病與早疫病的分類準確率也不理想(68%~74%),在分類錯誤的情況中,這2種病害互相混淆的結果最多,這是因為灰葉斑病與早疫病危害葉片時都可能呈現褐色、深褐色的類似圓形的斑點,病癥十分相似,圖8(h)和圖8(i)給出了這2種病害分類錯誤的例子,針對這一點,本研究構建的分類網絡加入了增強類間分散的訓練任務,減少了病癥相似的病蟲害之間的分類錯誤率。
為了研究在目標檢測網絡中改進的主干網絡與特征融合模塊對番茄病蟲害目標定位效果的影響,進行了消融試驗,通過將原始的YOLOX網絡和分別替換主干網絡和特征融合模塊的YOLOX網絡用于測試,結果見表3。可見:這3個模型的精確率分別下降了6.1%、3.9%和7.6%;只替換主干網絡的情況下,雖然獲得了較高的精確率,但是召回率明顯下降,沒有達到較好的平衡。上述結果說明了本研究改進的目標檢測網絡對番茄病蟲害進行定位的可行性。
表3 采用不同的主干網絡和特征融合模塊的YOLOX模型對番茄病蟲害的檢測性能
表4為不添加正則化的分類網絡和分別添加旋轉不變和Fisher判別正則化的網絡試驗結果比較,同時比較網絡使用旋轉數據增廣和不使用旋轉數據增廣在測試集上的表現。可見:對目標函數做旋轉不變和Fisher判別優化是可以提高病蟲害分類準確率的;旋轉數據增廣可以使模型分類準確率提升1.5%~4.9%;將旋轉不變和Fisher判別優化與旋轉數據增廣結合起來,可以得到測試中最好的分類準確率(82.8%),充分發揮了優化網絡的優勢。
表4 不同優化策略和不同訓練集下對番茄病蟲害的識別準確率對比
為了解決番茄病蟲害檢測目標較小、目標所在自然環境復雜造成的漏檢誤檢的問題,本研究將Swin Transformer用于YOLOX作為主干網絡,用BiFPN連接主干網絡和檢測頭,融合多尺度的特征,并構建了旋轉不變Fisher判別CNN分類的方法,解決目標角度變化、類間特征區別不明顯和同類特征多樣性造成的分類錯誤問題。與近幾年提出的目標檢測模型DETR[34]相比,本研究的目標檢測網絡在番茄病蟲害上的檢測精度依然是存在優勢的,DETR是基于Transformer的端到端的目標檢測模型,通過1個全局的Transformer編碼器來對整個圖像進行編碼,這使DETR更加適合處理大尺寸目標或密集目標的檢測,同時也導致了模型難以精確捕捉較分散的小目標的細節信息[36-37]。如表2所示,對于并不十分密集的早疫病與灰葉斑病,DETR的檢測精度沒有較明顯的提升,且DETR的檢測能力受到目標數量的限制,當數量較多時,DETR可能無法對所有對象進行準確的分類和邊界框預測,本研究用Swin Transformer提取特征,能夠有效地捕捉不同尺度下的空間信息和上下文信息,結合BiFPN提高目標檢測的精確率。ViT是基于Transformer的分類模型,相比傳統卷積神經網絡更能適應各種不同的圖像分類任務[38],ViT完全依賴于注意力機制來計算輸入特征之間的關系,對結果的理解更加直觀,但是對于分類錯誤的情況,難以準確地找到問題出現的原因,可解釋性變得不理想[39],面對番茄病蟲害特征類內分散大、類間分散小和旋轉多變導致的錯誤分類問題,本研究的分類模型更具有優勢。
本研究構建的網絡都有針對的解決辦法并取得了較好的結果,但是在番茄病蟲害防治的現實應用中依然存在尚未解決的困難,有如下2個方面:
1)番茄種植過程中存在的病蟲害種類、表現形式的多樣性,番茄植株在感染同一種病害的初期、中期、后期所呈現的形狀、顏色、紋理等特征是不同的,而不同的病害危害植株時也可能會呈現相似的性狀。害蟲在幼蟲和成蟲形態時會通過不同的方式危害番茄,并且病蟲害影響不同的部位時特征存在差異,如葉片枯萎、果實腐爛或者根莖變形。同時本研究的試驗中沒有考慮到不止1種病害或者蟲害同時存在于番茄植株上,并且可能會相互作用的情況。此外,復雜的自然背景也對檢測和分類造成很大的影響,如光線的強弱、植株本身葉片根莖交錯無序、互相遮擋等。基于此,則需要大量的樣本來訓練模型達到更好的效果,而番茄病蟲害圖像樣本的采集也是一個難題。
2)為了提高精度,本研究將檢測和分類分為2個網絡,所以要對訓練樣本進行2次不同的標注并且分別訓練網絡,在面對田間番茄種植管理更多的病蟲害種類以及大量樣本時則需要耗費更多的時間和精力。
在未來的工作中對番茄病蟲害數據集的擴展可以通過進一步細分類別實現,包含同類病害的不同時期,害蟲的不同形態,以及增加在不同光線下拍攝的圖像,拍攝角度多變,來提高訓練樣本的多樣性。采集比較常見的多種病蟲害共同危害番茄植株的圖像,為后續的深入研究做準備。對網絡進一步優化,研究更好的目標分割技術來幫助模型更好地檢測和區分目標,調整訓練數據集、模型架構和參數設置,以提高模型的可解釋性來提高對更復雜的數據集的檢測分類效果,研究有效的方法保證定位和分類的高準確率的同時實現檢測模型和分類模型的結合簡化處理過程。
本研究針對番茄病蟲害檢測識別存在的普遍問題,提出了基于Swin Transformer的YOLOX目標檢測模型和旋轉不變Fisher判別CNN分類模型,主要結論如下:1)測試結果表明,基于Swin Transformer的YOLOX目標檢測對病蟲害的定位取得了較好的結果,在番茄病蟲害測試集上整體的檢測精確率達到了86.3%,召回率也提高到了77.2%,旋轉不變Fisher判別CNN在番茄病蟲害的分類準確率上與其他網絡相比也有明顯的提高,對葉霉病、早疫病、灰葉斑病、白粉虱、美洲斑潛蠅和棉鈴蟲6種病蟲害的分類準確率分別提升到了83%、78.5%、76.5%、79.5%、88.5%、91.5%。2)對訓練樣本進行旋轉數據增廣,實現了提高病蟲害目標檢測的精確率和召回率,同時也保障分類網絡對番茄病蟲害種類有較高的識別能力。下一步的研究致力于更高效更適用于病蟲害防治現實應用的模型,豐富數據集的同時對網絡也進行合適的優化,本研究將目標檢測與分類識別分為2個模型來實現,雖然強調了模型各自的優點,但是在處理速率上沒有較強的優勢,所以檢測與分類的速度也可以作為下一步研究改進的重點。