孫紅敏,王鈺涵,戴百生,李曉明,孟希璠,那 晨
(1.東北農(nóng)業(yè)大學電氣與信息學院,哈爾濱 150030;2.東北農(nóng)業(yè)大學農(nóng)學院,哈爾濱 150030)
大豆在農(nóng)作物生產(chǎn)中占有重要地位,是糧食、飼料、經(jīng)濟兼用型作物,也是農(nóng)業(yè)、制藥、釀造、食品等產(chǎn)業(yè)原材料。優(yōu)質(zhì)大豆植株是農(nóng)業(yè)和工業(yè)生產(chǎn)高產(chǎn)、優(yōu)質(zhì)、高效保障。每年因病害造成大豆減產(chǎn)達到10%~25%,病害特征大多體現(xiàn)在葉片上,少量體現(xiàn)在根部[1]。不同品種大豆對于病害表現(xiàn)形式也不同,及早發(fā)現(xiàn)并合理噴藥,可減少經(jīng)濟損失,保障大豆產(chǎn)量。根據(jù)病害等級需要采取不同措施,避免藥物浪費,污染環(huán)境。大豆葉片病害發(fā)病初期,特征相似,依靠經(jīng)驗易錯過最佳防治時期[2]。根據(jù)大豆植株患病等級采取相應(yīng)措施,對病害有效防治、避免藥物浪費、減少環(huán)境污染、降低經(jīng)濟損失具有重要意義[3]。
隨著計算機視覺和人工智能技術(shù)發(fā)展,相關(guān)技術(shù)在農(nóng)業(yè)領(lǐng)域中越來越被重視,如湯曉東等利用基于HSI空間的三次標記分水嶺算法提取目標葉片,計算形態(tài)參數(shù),使用概率神經(jīng)網(wǎng)絡(luò)分類器實現(xiàn)在復雜背景下識別大豆形態(tài),準確率達到85.37%[4];譚克竹等使用BP神經(jīng)網(wǎng)絡(luò)實現(xiàn)大豆病害識別,準確率達到94%[5];范偉堅闡述傳統(tǒng)病害識別原理和缺陷,總結(jié)卷積神經(jīng)網(wǎng)絡(luò)在農(nóng)作物病害識別中應(yīng)用的優(yōu)勢[6];蔣豐千等通過對大豆病害圖片的二值化和輪廓分割等預(yù)處理構(gòu)建數(shù)據(jù)集,多方面優(yōu)化模型,使得該方法在訓練集上的準確率大幅提升,但測試集上準確率僅78%[7];Gui提出一種基于LeNet的深度卷積網(wǎng)絡(luò)用于大豆葉片病害分類,分類準確率達到93.54%[8]。綜上所述,現(xiàn)有研究主要集中在對大豆葉片病害的分類識別,對具體病害程度的自動分級關(guān)注較少[9],多數(shù)工作主要采用改進或優(yōu)化傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)模型研究,識別精度有待提高[10]。
目前卷積神經(jīng)網(wǎng)絡(luò)技術(shù)應(yīng)用于農(nóng)產(chǎn)品品種、病害識別等方面研究日趨成熟,具備大豆病害分級的可行性[11-12]?,F(xiàn)有研究主要通過優(yōu)化單一卷積神經(jīng)網(wǎng)絡(luò)完成病害分類,對復雜分類問題,識別精度有待改進,針對這一問題,本文以常見大豆灰斑病病害葉片為研究對象,采用卷積神經(jīng)網(wǎng)絡(luò)對大豆灰斑病分級可行性進行分析和研究。通過數(shù)據(jù)增強、數(shù)據(jù)裁剪等方式對大豆葉片灰斑病圖片作預(yù)處理,對比不同卷積神經(jīng)網(wǎng)絡(luò)模型分級性能,將訓練的基礎(chǔ)模型組合和優(yōu)化,受Ayan等提出集成策略啟發(fā)[13],提出一種加權(quán)深度投票模型,通過遷移學習訓練,優(yōu)選傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)模型,利用遺傳算法得出不同模型加權(quán)投票權(quán)重,對傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)模型加權(quán)集成,實現(xiàn)大豆葉片灰斑病分級。
本試驗所用大豆病害葉片圖像拍攝于東北農(nóng)業(yè)大學轉(zhuǎn)基因?qū)嶒灮?。試驗過程中,通過對不同品種大豆進行灰斑病病原菌株接種,獲得不同等級灰斑病大豆葉片,拍攝采集所需圖像數(shù)據(jù)集。
詳細過程如下:通過隨機區(qū)組設(shè)計方法選用本次試驗種植區(qū)域,采用壟作方式對試驗種植大豆,行長1.5 m、寬0.5 m,人工點播,行距0.4 m、株距0.05 m,每個品種、株系單行種植以便圖像采集。種植完成后,實驗室培育大豆灰斑病病原菌株,將菌株從試管內(nèi)移出接種在PDA培養(yǎng)基,置于28℃恒溫培養(yǎng)箱內(nèi)活化7 d繁殖形成菌落,使用無菌打孔器沿菌絲延伸的邊緣處打孔,將菌絲塊的菌絲面緊貼在PDA培養(yǎng)基上擴繁。待菌株培養(yǎng)擴繁后,選取不同品種大豆植株同一位置生長相近的無病斑、無機械損傷、新鮮完全展開葉片接種灰斑病病原菌株,接種15 d充分發(fā)病后,采集圖像,最終采集5 060張圖片數(shù)據(jù),部分數(shù)據(jù)如圖1所示。
圖1 大豆圖像部分采集數(shù)據(jù)Fig.1 Part of the collected data of soybean images
依據(jù)國家市場監(jiān)督管理總局鑒定標準,大豆灰斑病分為五類,劃分結(jié)果如表1所示。
表1 本文灰斑病等級劃分標準Table 1 Grading standard of gray spot disease in this study
每一類分級后圖片見圖2。
圖2 大豆灰斑病分級圖片樣本Fig.2 Image samples of soybean gray spot disease grading
由表1和圖2可看出,不同等級大豆灰斑病葉片表現(xiàn)形式不同,高抗等級葉片病變面積小于1%,葉片圖像與正常葉片相近??沟燃壢~片具有少量病斑區(qū)域,分布較分散。中抗等級葉片表面有較多病斑區(qū)域且分布較分散。感等級葉片表面病斑區(qū)域較多,且分布集中,病斑面積近葉片面積一半。易感等級葉片表面病斑較多,分布于各區(qū)域,面積達到一半以上。
卷積神經(jīng)網(wǎng)絡(luò)模型中有大量參數(shù)需被訓練,為防止發(fā)生過擬合現(xiàn)象,需使用大量圖像樣本進行訓練,本文在數(shù)據(jù)采集完成后,使用圖像增強手段擴充數(shù)據(jù)集,在翻轉(zhuǎn)、調(diào)節(jié)亮度、改變像素值、放縮、扭曲、增加噪聲等增強方法中隨機選擇1~5種進行組合得到不同增強數(shù)據(jù),在擴充數(shù)據(jù)集同時減少重復數(shù)據(jù)出現(xiàn),增強后圖片見圖3。圖3中,A為原始圖片,通過圖像增強手段得到若干圖片,選擇其中4張圖片樣本進行分析。其中,經(jīng)放縮的增強方式得到圖片B,經(jīng)放大和翻轉(zhuǎn)得到圖片C。經(jīng)扭曲得到圖片D,經(jīng)扭曲和翻轉(zhuǎn)得到圖片E。數(shù)據(jù)增強完成后按訓練集、測試集、驗證集1∶1.5∶1.5的比例進行數(shù)據(jù)集劃分,劃分結(jié)果見表2。
表2 數(shù)據(jù)集劃分Table 2 Data set division
圖3 數(shù)據(jù)增強后圖片樣本Fig.3 Image samples after data augmentation
為實現(xiàn)大豆灰斑病自動分級,本文在傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)模型基礎(chǔ)上構(gòu)建一個集成模型,具體包括:訓練7個單一深度卷積神經(jīng)網(wǎng)絡(luò)模型(VGG16、VGG19、Resnet50、Inception-V3、Xception、MobileNet、GoogleNet);選擇其中準確率最高的3個模型。在此基礎(chǔ)上通過遺傳算法加權(quán)集成構(gòu)建深度投票模型。該模型技術(shù)路線如圖4所示。
圖4 技術(shù)流程Fig.4 Technology flowchart
卷積神經(jīng)網(wǎng)絡(luò)是一種帶有卷積結(jié)構(gòu)的深度學習模型,主要包括卷積層、池化層和全連接層。與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)模型相比,CNN使用局部感受野、權(quán)值共享、池化層等思想,有效減少網(wǎng)絡(luò)參數(shù)個數(shù),使神經(jīng)網(wǎng)絡(luò)適應(yīng)性更強,緩解模型的過擬合問題并使得模型具備一定的位移、尺度、縮放、非線性形變穩(wěn)定性。本文以VGG和殘差網(wǎng)絡(luò)為例,簡要介紹其網(wǎng)絡(luò)結(jié)構(gòu)模型[14]。
VGGNet共有5個卷積層,每一個卷積層后鏈接一個最大池化層,最后為3個全連接層和一個soft max層,該網(wǎng)絡(luò)使用3×3卷積核,網(wǎng)絡(luò)中所有池化層采用2×2卷積核[15-16],其中VGG19網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 VGG網(wǎng)絡(luò)結(jié)構(gòu)Fig.5 VGG network structure
RestNet是殘差網(wǎng)絡(luò)(Residual network)縮寫,該系列網(wǎng)絡(luò)廣泛用于目標分類等領(lǐng)域以及作為計算機視覺任務(wù)主干經(jīng)典神經(jīng)網(wǎng)絡(luò)的一部分。Rest-Net對輸入作卷積操作,包含5個殘差塊(Residual Block),最后使用全局平均池化和Softmax代替參數(shù)量巨大的全連接層以便于更好進行分類任務(wù),RestNet網(wǎng)絡(luò)構(gòu)成見圖6[17-18]。本研究使用RestNet50模型結(jié)構(gòu),如圖第5列所示。
圖6 RestNet網(wǎng)絡(luò)結(jié)構(gòu)Fig.6 RestNet network structure
為提高對大豆灰斑病分級準確率,同時綜合傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)模型特征提取優(yōu)勢和分類性能,本文提出一種構(gòu)建加權(quán)深度投票模型方法,即在單一模型基礎(chǔ)上,選擇多個單一深度卷積神經(jīng)網(wǎng)絡(luò)模型,通過遺傳算法學習得出深度投票模型權(quán)重,構(gòu)建一個加權(quán)深度投票模型。
2.2.1 傳統(tǒng)深度投票模型
使用卷積神經(jīng)網(wǎng)絡(luò)模型進行預(yù)測時,通過模型計算圖像所屬病害各等級的概率,并為該圖像分配到具有最高概率值的標簽[19]。對于單個模型,考慮一個n分類的任務(wù),使用O(t)=(p1,p2,p3,…,pn),p1表示模型對于分類任務(wù)第i類的概率,且相加總和為1,若pi為n個概率中最大值,則該圖像被預(yù)測為第i類,集成模型通過多個模型的概率相加,使用公式(1)進行計算:
式中,j-預(yù)測的類別;i-集成的第i個模型;m-集成模型個數(shù);Pij-第i個模型預(yù)測屬于第j類概率;O(j)-集成后的模型預(yù)測屬于第j類概率,所有類別概率相加為1。
若O(j)為n類中最大值,則該集成模型分類結(jié)果為第j類,通過該方法可綜合考慮多個模型的分類結(jié)果,有效提高分類精度。
2.2.2 加權(quán)深度投票模型
由公式(1)可知,傳統(tǒng)深度投票模型是將各模型預(yù)測的概率相加,未考慮每一個模型對于集成后模型的優(yōu)劣性能。故在此基礎(chǔ)上,充分發(fā)揮每一個模型優(yōu)勢同時提高模型性能,為每個模型分配權(quán)重,對構(gòu)建深度投票模型的基礎(chǔ)模型進行加權(quán),加權(quán)后的深度投票模型概率計算方式見公式(2)。
式中,wi-第i個模型的權(quán)重,且m個模型的權(quán)重相加為1;O(j)-加權(quán)后深度投票模型預(yù)測屬于第j類的概率,且所有類別概率相加為1。
對m個模型權(quán)重wi的判定可認為是一個最優(yōu)問題,通過遺傳算法求解。遺傳算法是一種基于進化論、遺傳學和自然選擇原理的啟發(fā)式算法,通常被應(yīng)用于權(quán)值確定,確定初始染色體數(shù)量,通過交叉和變異操作生成新染色體,計算適應(yīng)度,剔除適應(yīng)度最差的染色體,保持染色體數(shù)量不變,迭代若干次后選擇適應(yīng)度最好的染色體即為權(quán)值[20]。
在遺傳算法中,假設(shè)初始群體由n條染色體組成,每條染色體包含w個隨機產(chǎn)生的基因(即權(quán)重值),在0~1之間。將染色體基因和模型在驗證數(shù)據(jù)集上的預(yù)測量相乘,得到預(yù)測標簽。采用均方誤差(MSE)函數(shù)計算適應(yīng)度值。計算各染色體MSE適應(yīng)度值后,通過考慮其適應(yīng)度值,選擇最佳的m條染色體創(chuàng)建新染色體。分別采用交叉和突變技術(shù),從已確定的m條最佳染色體中獲得2m條新染色體。計算新生成染色體的適應(yīng)度值,并將其添加到種群中。為保持種群大小不變,剔除適應(yīng)度最差的2m條染色體。這些操作重復進行k代,確定MSE最小的染色體,最后得到最優(yōu)權(quán)值。所提出的基于遺傳算法的加權(quán)方法步驟如圖7所示。
圖7 本文遺傳算法優(yōu)化流程Fig.7 Flow chart of genetic algorithm optimization in study
為更好分析模型性能,本文所采取評估指標為準確率、精確率、召回率以及F1值。具體計算方式如下:
式中,TP-實際為正且被預(yù)測為正的樣本數(shù)量;FP-實際為負但被預(yù)測為正的樣本數(shù)量;FN-實際為正但被預(yù)測為負的樣本的數(shù)量;TN-實際為負且被預(yù)測為負的樣本的數(shù)量。。
本研究采用7個常見卷積神經(jīng)網(wǎng)絡(luò)模型(VGG16、VGG19、Resnet50、Inception-V3,Xception,MobileNet,GoogleNet)進行訓練與測試。通過圖像工作站(HP Z6)進行模型訓練和測試,圖像工作站顯卡為RTX 5000 16G,支持GPU并行運算,內(nèi)存192GB。訓練所使用的模型基于Tensorflowgpu 2.2.0版本和python3.6版本。
訓練所得曲線與相應(yīng)評價結(jié)果和模型訓練參數(shù)信息見表3。
表3 單一深度卷積神經(jīng)網(wǎng)絡(luò)模型的訓練參數(shù)Table 3 Training parameters of single CNN models
訓練所得模型準確率曲線如圖8所示。
由圖8可看出,單一深度卷積神經(jīng)網(wǎng)絡(luò)模型訓練200次后,訓練集上準確率趨于收斂,VGG16和VGG19在訓練集上收斂速度更快,準確率更高。訓練完成后,針對測試集中7 500張圖像樣本,開展模型評估,結(jié)果見表4。
圖8 7個單一深度卷積神經(jīng)網(wǎng)絡(luò)訓練準確率曲線Fig.8 Training accuracy curve of seven single CNN models
由表4可看出,常見單一深度卷積神經(jīng)網(wǎng)絡(luò)模型中,VGG19在測試集上的準確率最高,達到88.7%。為構(gòu)建集成模型,對訓練7個模型進行評估后,選擇準確率最高的3個模型即VGG16、VGG19和Resnet50,為分析3個模型優(yōu)劣勢以及樣本分類情況,建立模型混淆矩陣見圖9。
表4 單一模型評估結(jié)果Table 4 Evaluation results of 7 single models
由圖9中3個模型混淆矩陣可看出,針對于病害的5個等級,不同模型對于不同等級識別準確率有一定差別。在VGG16模型中,識別出病變較大葉片準確率為89%,對于高抗葉片識別準確率僅為84%,由于病害等級相似導致高抗葉片誤識別成抗性;在VGG19模型中,高抗葉片識別準確率達到97%,相較于VGG16模型提高13%,但其他等級識別準確率為86%,相較于VGG16模型下降3%;RestNet50模型識別易感等級葉片準確率最高,達到91%,因此,針對這些問題,本文將上述3個模型進行集成改進,使每一個模型充分發(fā)揮自身優(yōu)點,部分樣本分級情況如表5所示。
表5 部分分類樣本Table 5 Partial grading samples
圖9 準確率最高的3個模型混淆矩陣Fig.9 Confusion matrix of the three models with the highest accuracy
綜上,選擇VGG16、VGG19和Resnet50 3個模型構(gòu)建集成模型,并使用遺傳算法加權(quán)深度投票模型對其優(yōu)化,在遺傳算法中,初始染色體數(shù)量為8條,每一條上有3個基因,每一次迭代選取4條染色體,為避免陷入局部最優(yōu)解,交叉率設(shè)為0.95,變異率設(shè)為0.005,通過交叉變異等操作生產(chǎn)新的8條染色體,將16條染色體計算MSE,剔除最差的8條染色體,保持不變種群規(guī)模,計算迭代100次的過程中每一個MSE,最終得到最小MSE染色體上3個權(quán)值為:0.31、0.36、0.33,作為3個集成模型權(quán)重,即w1=0.31,w2=0.36,w3=0.33。
對集成后模型,使用原始模型最好的VGG19模型進行對比分析,結(jié)果見表6。
由表6可知,使用深度投票模型在測試集上的準確率相較于傳統(tǒng)單一卷積神經(jīng)網(wǎng)絡(luò)模型VGG19高1.7%,使用遺傳算法自動學習每一個模型加權(quán)權(quán)重后構(gòu)建集成模型準確率提高2.7%,表明使用遺傳算法加權(quán)取得更好效果,同時建立兩個集成模型混淆矩陣如圖10所示。
圖10 深度投票模型的混淆矩陣Fig.10 The confusion matrix of the deep voting model
表6 集成模型評估指標Table 6 Deep voting model evaluation indicators
由圖10可見,采用深度投票模型解決傳統(tǒng)單一模型的弊端,利用各模型優(yōu)點進行訓練和預(yù)測,深度投票模型分級情況見表7。由表7可知,集成模型能夠準確識別部分單一模型中誤分類樣本,但相近病害等級的圖片部分識別有誤,需進一步研究。
表7 部分樣本分級情況Table 7 Grading situation of some samples
本文針對大豆灰斑病5個等級病害圖片樣本,運用卷積神經(jīng)網(wǎng)絡(luò)和深度投票方法,開展大豆灰斑病自動分級研究,提出使用遺傳算法加權(quán),構(gòu)建基于卷積神經(jīng)網(wǎng)絡(luò)的深度投票模型。通過試驗驗證,該模型有效解決大豆灰斑病各等級之間因差距細微導致的準確率低問題,為大豆其他病害分級提供新思路和方法。
a.采用7個卷積神經(jīng)網(wǎng)絡(luò)模型(VGG16、VGG19、Resnet50、Inception-V3,Xception,MobileNet,GoogleNet)進行訓練與測試,試驗結(jié)果準確率分別為:VGG模型88.0%、VGG19模型88.7%、Resnet50模型80.0%、Inception-V3模型73.3%、Xception模型64.9%、MobileNet模型62.0%、Goo-gleNet模型60.5%。結(jié)果表明,使用卷積神經(jīng)網(wǎng)絡(luò)對大豆灰斑病進行分級具有可行性,但傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)模型針對病害分級準確率較低,不同的卷積神經(jīng)網(wǎng)絡(luò)模型對于不同等級準確率差異較大,需綜合不同卷積神經(jīng)網(wǎng)絡(luò)模型用于大豆灰斑病分級研究。
b.基于上述傳統(tǒng)卷積網(wǎng)絡(luò)訓練結(jié)果,提出遺傳算法加權(quán)構(gòu)建深度投票模型,與傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)相比,該模型在7 500張圖片所組成的測試集上分級精度達到93%,相較于傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)中準確率最高的VGG19模型提高4.3%,相較于不加權(quán)深度投票模型也有提高,有效解決傳統(tǒng)模型識別的弊端,為大豆病害分級和病害走勢預(yù)測提供技術(shù)支持。但本文分級結(jié)果中,仍有部分分級有誤,后續(xù)考慮引入注意力機制開展進一步研究。
c.本文提出的基于遺傳算法構(gòu)建加權(quán)深度投票模型,在大豆其他病害或其他農(nóng)作物病害方面是否具有同樣效果需進一步驗證。