趙越,趙輝,姜永成,任東悅,李陽(yáng),衛(wèi)勇
(天津農(nóng)學(xué)院工程技術(shù)學(xué)院,天津市,300384)
植物病害在世界范圍內(nèi)給農(nóng)業(yè)部門造成了巨大的損失,因此及時(shí)、準(zhǔn)確地診斷植物病害對(duì)于可持續(xù)農(nóng)業(yè)的正確發(fā)展具有重要意義[1]。馬鈴薯是僅次于玉米、小麥和水稻的世界第四大農(nóng)業(yè)糧食作物,它可以減少血液中膽固醇的總量,有助于治療高血壓、心臟病和癌癥等疾病[2]。然而,馬鈴薯的產(chǎn)量下降深受植物病害的影響。目前為止,經(jīng)驗(yàn)豐富的生產(chǎn)者的目視觀察仍然是發(fā)展中國(guó)家農(nóng)村地區(qū)植物病害檢測(cè)的主要方法。此方法需要專家的持續(xù)監(jiān)測(cè),而在一些偏遠(yuǎn)的地區(qū),農(nóng)民們可能要走很遠(yuǎn)的路才能聯(lián)系專家,這使得咨詢費(fèi)時(shí)費(fèi)力[3]。
在過(guò)去的幾年里,深度學(xué)習(xí)已經(jīng)解決了越來(lái)越多的復(fù)雜任務(wù),并且準(zhǔn)確率越來(lái)越高。人們對(duì)這類技術(shù)的興趣在于其在農(nóng)業(yè)方面的潛在應(yīng)用,推動(dòng)高效自主系統(tǒng)的發(fā)展,而植物病害的自動(dòng)識(shí)別就是其中一個(gè)重要的研究?jī)?nèi)容。2018年Ferentinos[4]使用了開放數(shù)據(jù)庫(kù)對(duì)多種植物病害圖像進(jìn)行訓(xùn)練,成功搭建了綜合植物病害識(shí)別系統(tǒng),實(shí)現(xiàn)了簡(jiǎn)單的卷積神經(jīng)網(wǎng)絡(luò)病害圖像自動(dòng)檢測(cè)和植物疾病診斷;2019年Saleem等[5]對(duì)植物病害可視化的深度學(xué)習(xí)模型進(jìn)行了綜述,研究了在植物癥狀明顯之前,如何檢測(cè)可以獲得更大的透明度;2021年Atila等[6]使用Plant Village數(shù)據(jù)集通過(guò)遷移學(xué)習(xí)的方式訓(xùn)練了EddicientNet架構(gòu)和其他主流的深度學(xué)習(xí)網(wǎng)絡(luò)模型,通過(guò)不同網(wǎng)絡(luò)模型的對(duì)比,EfficientNet架構(gòu)的檢測(cè)精度最高,提出了一種用于植物葉片病害分類的高精度深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)。
從上述的研究可以看出,深度學(xué)習(xí)在植物葉片病害檢測(cè)中有所增加。然而,在利用新的深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行植物葉片病害檢測(cè)及應(yīng)用方面,仍缺乏研究。尤其是對(duì)網(wǎng)絡(luò)結(jié)構(gòu)小,訓(xùn)練速度快,檢測(cè)精度高的模型有強(qiáng)大的需求。因此,本文基于TensorFlow開發(fā)了Faster R-CNN深度學(xué)習(xí)網(wǎng)絡(luò)模型[7],并利用多個(gè)分類器檢測(cè)馬鈴薯葉片疾病,成功實(shí)現(xiàn)了馬鈴薯葉片病害的高精度檢測(cè)。
本文采用Kaggle國(guó)際競(jìng)賽開源的數(shù)據(jù)庫(kù)[8],其中包含了各種植物病害的圖片,如玉米、葡萄、番茄、蘋果等。圖片儲(chǔ)存為jpg格式。本文選取馬鈴薯葉片為樣本,其中單張圖片的像素為256×256,包含了早疫病、晚疫病和健康的圖片。使用LABELIMG圖像圖形注釋工具對(duì)圖片進(jìn)行標(biāo)注[9]。由3個(gè)具有標(biāo)注經(jīng)驗(yàn)的專家完成,每個(gè)病害或者健康的葉片都由一個(gè)矩形框包含,并且再次進(jìn)行標(biāo)注檢查,避免漏標(biāo)錯(cuò)標(biāo)的可能性。將標(biāo)注好的圖片保存在XML文件中,其中包含了邊框的位置坐標(biāo)。在這個(gè)文件中,bounding box被保存為一個(gè)4元組(xmin,ymin,xmax,ymax),其中(xmin,ymin)表示bounding box的左上角坐標(biāo),而對(duì)應(yīng)的(xmax,ymax)則表示包圍盒的寬度和高度,如圖1所示。
圖1 標(biāo)注的馬鈴薯葉片圖像
為了解決數(shù)據(jù)集小、圖像缺乏多樣性的問(wèn)題,本文采用本地增強(qiáng)的方式對(duì)數(shù)據(jù)集進(jìn)行擴(kuò)充,采用4種隨機(jī)增強(qiáng)的方式,包括平移、旋轉(zhuǎn)、鏡像這些變換來(lái)改變標(biāo)注矩形框的位置信息,增加了植物病害圖像的多樣性。為了消除光照對(duì)圖像的影響,通過(guò)改變亮度的方式對(duì)圖像進(jìn)行了變換,模擬出了不同光照下植物病害的生長(zhǎng)情況。經(jīng)過(guò)數(shù)據(jù)增強(qiáng)后的馬鈴薯葉片圖像為8 109 張,并按照7∶2∶1的比例分為了訓(xùn)練集、驗(yàn)證集和測(cè)試集,每種類別的數(shù)量如表1所示。
表1 數(shù)據(jù)增強(qiáng)后的馬鈴薯葉片數(shù)據(jù)集Tab. 1 Data augment of potato leaf data set
Faster R-CNN[7]是目標(biāo)檢測(cè)領(lǐng)域主流的算法之一,相比YOLO算法[10],其檢測(cè)精度更高。本文的整體網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,首先在子圖像中搜索潛在的候選對(duì)象,因此需要一個(gè)區(qū)域建議(region proposal)的方法。將子圖像輸入到卷積神經(jīng)網(wǎng)絡(luò)中(CNN),進(jìn)行特征提取[11]。區(qū)域建議網(wǎng)絡(luò)(RPN)[12]在輸入的子圖像上生成多個(gè)密集的先驗(yàn)框(anchors)區(qū)域網(wǎng)格,具有指定的大小和橫縱比。裁剪過(guò)濾后通過(guò)softmax函數(shù)來(lái)判斷先驗(yàn)框?qū)儆谇熬盎蛘弑尘?,同時(shí)用另一個(gè)邊界框回歸(bounding box regression)來(lái)修正先驗(yàn)框,形成精確的建議框。然后把建議框映射到CNN最后一層卷積的特征圖譜(feature map)上,并通過(guò)ROI pooling層使每個(gè)感興趣區(qū)域(ROI)在特征圖譜上生成固定的尺寸。如果先驗(yàn)框與真實(shí)物體的交并比IoU[13]大于一個(gè)相對(duì)較大的重疊閾值,則該先驗(yàn)框被賦為正,反之則被賦為負(fù)。由卷積神經(jīng)網(wǎng)絡(luò)(CNN)組成的區(qū)域建議網(wǎng)絡(luò)(RPN)預(yù)測(cè)每個(gè)病害的分?jǐn)?shù),從而檢測(cè)其為某種病害的概率,這種方法的優(yōu)點(diǎn)是模型有效地學(xué)習(xí)了圖像的背景特征,從而消除了分類步驟中的負(fù)面位置。
2.1.1 特征提取
本文選取VGG16[14]的卷積神經(jīng)網(wǎng)絡(luò)對(duì)馬鈴薯葉片圖像進(jìn)行特征提取,模型包括13個(gè)卷積層、4個(gè)池化層和13個(gè)Relu激活函數(shù)層。以224×224×3為固定尺寸作為圖像的輸入,全部使用3×3的卷積核以及2×2的池化核,前4個(gè)卷積層主要提取目標(biāo)的淺層特征,保留初始參數(shù)。后9個(gè)卷積層進(jìn)行遷移學(xué)習(xí),提取目標(biāo)更深層次的特征。網(wǎng)絡(luò)結(jié)構(gòu)以及卷積變換如圖3所示,經(jīng)過(guò)卷積處理后得到特征圖譜,在特征圖譜上每一個(gè)像素點(diǎn)對(duì)應(yīng)原圖上的某一個(gè)區(qū)域。
圖2 Faster R-CNN網(wǎng)絡(luò)結(jié)構(gòu)
2.1.2 RPN網(wǎng)絡(luò)
RPN網(wǎng)絡(luò)連接在卷積的特征提取之后,將卷積后的特征圖譜上的點(diǎn)與原圖像的位置對(duì)應(yīng),并以每個(gè)點(diǎn)為中心作為滑動(dòng)窗口,生成區(qū)域建議框,如圖4所示。
經(jīng)過(guò)滑動(dòng)窗口的處理,每個(gè)滑動(dòng)窗口都映射到一個(gè)低維向量上[15],這個(gè)向量輸出到同一級(jí)別的兩個(gè)全連接層,即邊界框的回歸層和邊界框的分類層,然后通過(guò)兩次全連接得到2 000個(gè)分?jǐn)?shù)和4 000個(gè)坐標(biāo)。
圖4 RPN網(wǎng)絡(luò)結(jié)構(gòu)
經(jīng)過(guò)RPN網(wǎng)絡(luò)處理,得到很多個(gè)目標(biāo)候選區(qū)域,而ROI Pooling的作用就是把大小形狀各不相同的候選識(shí)別區(qū)域歸一化為固定尺寸的目標(biāo)識(shí)別區(qū)域[16]。分類層利用已經(jīng)獲得的候選特征圖譜,經(jīng)過(guò)全連接層和softmax函數(shù)計(jì)算每個(gè)候選區(qū)域?qū)儆谀膫€(gè)類別,以及輸出這個(gè)類別的概率,同時(shí)再次利用邊界框回歸來(lái)獲得每個(gè)候選區(qū)域與真實(shí)背景位置的偏移量,用于回歸計(jì)算更加精準(zhǔn)的檢測(cè)框及其置信度。置信度[17]的公式見(jiàn)式(1)。
Pr(Object)∈[0,1]
(1)
式中:Pr——預(yù)測(cè)含有對(duì)象的概率;
IoU——預(yù)測(cè)框和真實(shí)框的交并比值。
預(yù)測(cè)目標(biāo)的結(jié)果為[0,1]。其中0表示檢測(cè)到目標(biāo)的最低置信度,1表示最高置信度。本文中選擇使用置信度為0.5,因?yàn)樗峁┝藘煞N情況之間令人滿意的權(quán)衡結(jié)果。
本試驗(yàn)中使用Intel(R) Xeon(R)CPU E5-2650v4的處理器,GPU為GeForce RTX 2080Ti加速模型訓(xùn)練。采用python3.6,基于TensorFlow2.2.0-gpu開發(fā)的Faster R-CNN深度學(xué)習(xí)模型框架。將RPN層插入到第4個(gè)卷積層和第5個(gè)卷積層之間,并且在RPN層中的每個(gè)位置都設(shè)置了一個(gè)先驗(yàn)框。按照默認(rèn)設(shè)置,在每個(gè)位置分配了12個(gè)不同大小、不同長(zhǎng)寬比的先驗(yàn)框。如果先驗(yàn)框和標(biāo)注的馬鈴薯病害葉片間的IoU在0.5~1.0之間,則認(rèn)為馬鈴薯存在某種病害。Batch size大小固定為1,它節(jié)省了計(jì)算時(shí)間和內(nèi)存需求。每個(gè)包圍框都與一個(gè)分?jǐn)?shù)值相關(guān)聯(lián)。用0.5的置信度閾值來(lái)判斷一個(gè)包圍框是否存在病害或者健康。
一個(gè)模型的精準(zhǔn)度可以通過(guò)觀察模型在學(xué)習(xí)過(guò)程中的訓(xùn)練損失值和錯(cuò)誤率來(lái)分析。該模型采用COCO數(shù)據(jù)集[18]的初始權(quán)重,對(duì)訓(xùn)練集上的5 676張圖片進(jìn)行了預(yù)訓(xùn)練,并根據(jù)驗(yàn)證集上的圖片調(diào)整網(wǎng)絡(luò)超參數(shù),經(jīng)過(guò)幾個(gè)時(shí)期后,它們逐漸減少錯(cuò)誤率和訓(xùn)練損失值,接近它們的最終值,圖5和圖6分別展示了模型訓(xùn)練損失值以及準(zhǔn)確率的變化。雖然最初損失值和錯(cuò)誤率都很高,但在每個(gè)訓(xùn)練階段之后錯(cuò)誤率的降低伴隨著模型檢測(cè)精度的提高[19]。根據(jù)不斷的試驗(yàn),為了避免模型過(guò)擬合,將epoch的數(shù)目固定在200,最終以0.000 1的學(xué)習(xí)率和0.9的動(dòng)量模型達(dá)到收斂,最后在測(cè)試集上進(jìn)行測(cè)試,模型的最佳檢測(cè)精度達(dá)到了99.5%。
圖5 模型損失值的變化
圖6 模型準(zhǔn)確率變化
根據(jù)模型檢測(cè)真正類別和預(yù)測(cè)類別的組合,樣本可以分為真正(TP)、假正(FP)、真負(fù)(TN)和假負(fù)(FN)4種類型[20]。其中TP是實(shí)際上屬于類C并被模型正確識(shí)別的實(shí)例數(shù)量,而FN則相反,它是屬于類C但被錯(cuò)誤分類的實(shí)例數(shù)量,TN是實(shí)際不屬于類C的實(shí)例數(shù)量,并且他們被正確識(shí)別,F(xiàn)N是不屬于類C但被錯(cuò)誤識(shí)別為類C的實(shí)例數(shù)量。通過(guò)正確檢測(cè)和錯(cuò)誤檢測(cè)的統(tǒng)計(jì),用精度(Precision)、召回率(Recall)和準(zhǔn)確性(Accuracy)和模型評(píng)分(F1-Score)來(lái)評(píng)價(jià)模型的性能[21],其定義如下
(2)
(3)
(4)
(5)
IoU(Intersection over Union)[13]全稱為交并比,是計(jì)算目標(biāo)對(duì)象檢測(cè)精度的標(biāo)準(zhǔn),通過(guò)計(jì)算預(yù)測(cè)的邊界框和真實(shí)邊界框的重疊率來(lái)評(píng)估模型的性能,其定義如下
(6)
式中: Soverlap——預(yù)測(cè)邊框和真實(shí)邊框相交的區(qū)域;
Sunion——兩個(gè)邊框并集的區(qū)域。
AP(Average Accuracy)衡量的是模型在每個(gè)類別上訓(xùn)練的好壞,mAP(Mean Average Accuracy)[22]衡量的是訓(xùn)練出來(lái)的模型在所有類別上的好壞,mAP意義上是取所有類別上AP的平均值。其中AP,mAP的定義如下
(7)
(8)
式中:P(r)——召回測(cè)量的精度;
N——目標(biāo)分類的數(shù)目。
本文使用mAP@0.5表示置信度以0.5為標(biāo)準(zhǔn)的目標(biāo)檢測(cè)平均準(zhǔn)確率。
利用訓(xùn)練好的權(quán)重文件對(duì)測(cè)試集上帶有早疫病、晚疫病、健康的馬鈴薯葉片分別作了檢測(cè),其中測(cè)試了333張健康的馬鈴薯葉片,有1張圖像被錯(cuò)誤檢測(cè),識(shí)別率為99.7%;測(cè)試了240張?jiān)缫卟〉膱D片,同樣有1張圖片被錯(cuò)誤檢測(cè),識(shí)別率為99.5%;測(cè)試了240張晚疫病的圖片,有2張圖片被錯(cuò)誤檢測(cè),識(shí)別率為99.2%。模型的最佳精度達(dá)到了99.5%。檢測(cè)結(jié)果如圖7所示。
圖7 馬鈴薯葉片檢測(cè)結(jié)果
為了比較數(shù)據(jù)類別對(duì)檢測(cè)結(jié)果的影響,使用Faster R-CNN[9]對(duì)早疫病、晚疫病和健康的馬鈴薯葉片圖像分別進(jìn)行訓(xùn)練,并且和病害、健康混合訓(xùn)練的模型進(jìn)行了對(duì)比,訓(xùn)練后模型的P-R(Precision-Recall)曲線[23]如圖8所示,對(duì)應(yīng)的F1-Score如表2所示。從圖8可以看出,模型的精度隨著召回率的增加而不斷降低,最小收斂精度在0.95左右。通過(guò)比較模型的性能,在同一精度下,任意單類別訓(xùn)練模型的召回率要高于混合訓(xùn)練的模型;在同一召回率下,任意單類別訓(xùn)練的模型精度也要高于混合訓(xùn)練的模型。同樣,從表2可以看出,健康模型F1-Score值最高為0.961,晚疫病模型最低也達(dá)到了0.953,而組合訓(xùn)練模型僅達(dá)到0.951。不論是精度、召回率還是F1-Score,任意單類別訓(xùn)練模型都要高于混合訓(xùn)練模型。這表明了輸入類別數(shù)量的增多會(huì)導(dǎo)致模型性能的降低。
圖8 不同類別下的P-R曲線
表2 不同類別下的模型表現(xiàn)Tab. 2 Model performance at different categories
為了驗(yàn)證所提出的Faster R-CNN模型的性能,同時(shí)訓(xùn)練了YOLOv3[24],YOLOv4[25]與該模型進(jìn)行對(duì)比,每種模型都達(dá)到了最大程度的收斂(AP@0.5IOU),訓(xùn)練完成模型的P-R曲線如圖9所示,對(duì)應(yīng)的F1-Score,IoU和mAP如表3所示。
由圖9可以看出,在同一精度下,F(xiàn)aster R-CNN的召回率要高于其他兩種網(wǎng)絡(luò)模型;在同一召回率下,F(xiàn)aster R-CNN的精度也高于其他兩種網(wǎng)絡(luò)模型。從表3可以看出,對(duì)比F1-Score,F(xiàn)aster R-CNN的值最高為0.951。這表明了Faster R-CNN的綜合召回性能和精度要優(yōu)于其他兩種網(wǎng)絡(luò)模型。同樣,F(xiàn)aster R-CNN的IoU值最高達(dá)到了0.957,mAP值最高為0.965,均高于其他兩種網(wǎng)絡(luò)模型,這表明了不論是檢測(cè)包圍盒準(zhǔn)確率還是模型的類平均精度,F(xiàn)aster R-CNN 都是最優(yōu)的。對(duì)于檢測(cè)速度Faster R-CNN 作為雙階段網(wǎng)絡(luò)要低于其他單階段網(wǎng)絡(luò)模型,但仍然滿足實(shí)時(shí)性檢測(cè)的需求。通過(guò)對(duì)比不同網(wǎng)絡(luò)模型的性能,F(xiàn)aster R-CNN展現(xiàn)出了更優(yōu)的潛力。
圖9 不同網(wǎng)絡(luò)模型下的P-R曲線
表3 不同網(wǎng)絡(luò)模型的性能表現(xiàn)Tab. 3 Performance of different network models
1) 本文提出了一個(gè)馬鈴薯葉片病害自動(dòng)檢測(cè)的模型,解決了傳統(tǒng)病害檢測(cè)專業(yè)性高、費(fèi)時(shí)費(fèi)力的問(wèn)題。該模型包含了馬鈴薯葉片的早疫病、晚疫病和健康的圖像。
2) 通過(guò)對(duì)馬鈴薯葉片早疫病、晚疫病和健康的圖像單獨(dú)訓(xùn)練和混合訓(xùn)練模型的對(duì)比,不論是精度、召回率、F1-Score值單獨(dú)訓(xùn)練的模型都要高于混合訓(xùn)練的模型,表明了輸入圖像類別的數(shù)量會(huì)對(duì)檢測(cè)結(jié)果產(chǎn)生偏差,隨著類別數(shù)量的增多,模型的檢測(cè)性能略有降低。
3) 訓(xùn)練了YOLOv3、YOLOv4網(wǎng)絡(luò)模型與該模型進(jìn)行對(duì)比,結(jié)果表明,該模型的性能優(yōu)于其他網(wǎng)絡(luò)模型。本文模型的F1-Score值為0.951,IoU為0.957,mAP為0.965。該模型的最佳檢測(cè)精度達(dá)到了99.5%,為農(nóng)民早期發(fā)現(xiàn)疾病,提高作物的產(chǎn)量提供了技術(shù)支持。
4) 在未來(lái)的工作中,將進(jìn)一步對(duì)模型識(shí)別病害的種類進(jìn)行擴(kuò)展,將其發(fā)展為多種作物不同病害識(shí)別系統(tǒng)。并從實(shí)際生活中的不同地域、不同環(huán)境采集更多的數(shù)據(jù)來(lái)設(shè)置更廣泛的訓(xùn)練。與此同時(shí),將對(duì)Faster R-CNN中的RPN網(wǎng)絡(luò)進(jìn)行優(yōu)化,保證精確度的同時(shí),通過(guò)降低計(jì)算量的方式,來(lái)提升網(wǎng)絡(luò)的檢測(cè)速度。
中國(guó)農(nóng)機(jī)化學(xué)報(bào)2022年10期