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