劉 飛, 董 偉, 高海濤
(1. 安徽科技學(xué)院 機(jī)械工程學(xué)院,安徽 鳳陽 233100;2.安徽省農(nóng)業(yè)科學(xué)院,安徽 合肥 230001; 3.安徽科技學(xué)院 電氣與電子工程學(xué)院,安徽 鳳陽 233100)
馬鈴薯是世界上第四大糧食產(chǎn)物[1]。在不同生長時期會產(chǎn)生各種病害,其中早疫病、晚疫病發(fā)病率較高,危害程度嚴(yán)重。馬鈴薯早疫病和晚疫病在發(fā)病期間葉片出現(xiàn)黑褐色病斑,兩種病害癥狀相似,很難區(qū)分。傳統(tǒng)識別方式依靠專家判斷為主[2-3],需要大量的專業(yè)知識,受主觀因素影響較大且比較耗時,不能及時對馬鈴薯病害進(jìn)行高效診斷。因此,研究一種高效、準(zhǔn)確的馬鈴薯病害智能識別方法具有重要的現(xiàn)實意義[4-5]。
隨著計算機(jī)視覺的興起,卷積神經(jīng)網(wǎng)絡(luò)[6](Convolutional Neural Network,CNN)在人臉識別[7-8]、圖像分類[9-10]、以及目標(biāo)檢測[11-12]等領(lǐng)域得到了廣泛的應(yīng)用,在農(nóng)業(yè)作物病害識別中取得了很大的進(jìn)展。馬浚誠等[13]和劉婷婷等[14]基于CNN建立了針對溫室黃瓜和水稻的病害識別系統(tǒng),得到了較高的準(zhǔn)確率。張建華等[15]提出改進(jìn)VGG16模型對自然條件下的棉花和蘋果進(jìn)行病害識別。楊晉丹等[16]以草莓葉部白粉病為研究對象,優(yōu)化CNN網(wǎng)絡(luò)結(jié)構(gòu),識別率為98.61%。Li等[17]基于SE-Inception模型對粉虱病,白粉病,黑穗病,棉花疫病進(jìn)行識別,測試準(zhǔn)確率為98.29%。邱靖等[18]建立水稻病害識別模型,通過設(shè)置不同的卷積核尺寸和池化函數(shù),經(jīng)過5次迭代,識別準(zhǔn)確率達(dá)到90%以上。Qiu等[19]對水稻的10種病害通過VGG16遷移學(xué)習(xí)的方式構(gòu)建識別模型,采用線性判別和參數(shù)微調(diào)優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),并與其它兩種模型進(jìn)行對比,測試準(zhǔn)確率為97.08%。徐巖等[20]通過以馬鈴薯葉片病害為研究對象,提出基于注意力和殘差思想的RANet模型對病害進(jìn)行訓(xùn)練,RANet平均識別率為93.86%。吳云志等[21]構(gòu)建了F1-DenseNet網(wǎng)絡(luò),對38種植物病害進(jìn)行識別,試驗表明,F1-DenseNet網(wǎng)絡(luò)的魯棒性好,識別準(zhǔn)確率為98.97%。
本研究基于深度學(xué)習(xí)理論對馬鈴薯病害的智能識別方法進(jìn)行研究,構(gòu)建一個新的卷積神經(jīng)網(wǎng)絡(luò)模型,對馬鈴薯早疫病、晚疫病和健康葉片進(jìn)行智能識別,將識別結(jié)果與典型網(wǎng)絡(luò)模型進(jìn)行比較與分析來驗證模型的準(zhǔn)確性和高效性。
研究選用的樣本數(shù)據(jù)主要來源于kaggle的公共數(shù)據(jù)集New Plant Diseaset Dataset。從庫中選取馬鈴薯圖片構(gòu)成試驗數(shù)據(jù)集,經(jīng)數(shù)據(jù)增強后共計7 128張RGB病害圖像,包括健康馬鈴薯葉片樣本、馬鈴薯早疫病葉片樣本和馬鈴薯晚疫病葉片樣本,其中早疫病2 424張,晚疫病2 424張,健康葉片2 280張。
針對不同類型的葉片將馬鈴薯RGB圖像分為3部分設(shè)置樣本標(biāo)簽評,標(biāo)簽數(shù)組采用2D的one-hot編碼標(biāo)簽。將重復(fù)的病害圖像去除,并按照8∶2的比例分配訓(xùn)練集和測試集,加快模型訓(xùn)練速度,對原始圖片做歸一化處理,然后對病害圖像進(jìn)行數(shù)據(jù)增強,將病害圖像進(jìn)行隨機(jī)旋轉(zhuǎn)25%,水平和垂直方向隨機(jī)平移10%,隨機(jī)縮放設(shè)置為0.2,對所有數(shù)據(jù)集進(jìn)行隨機(jī)翻轉(zhuǎn)。最后將所有樣本圖像的尺寸統(tǒng)一調(diào)整為256×256。
1.3.1 卷積神經(jīng)網(wǎng)絡(luò) CNN是神經(jīng)網(wǎng)絡(luò)模型的典型算法之一,在圖像識別或分類中表現(xiàn)突出,主要由卷積層、池化層和全連接層等組成。
1.3.1.1 卷積層 卷積層是用于提取圖像特征。其中卷積層包括多個卷積核,通過卷積運算可獲得多個圖像的特征圖。卷積層運算公式如式(1)所示:
(1)
1.3.1.2 池化層 池化層實質(zhì)是降低特征圖的維度,本文采用式(2)所示的最大池化,down(·)表示池化函數(shù)。
(2)
1.3.1.3 全連接層 全連接層中所有神經(jīng)元的輸入以全連接形式接受前一層神經(jīng)元的輸出。神經(jīng)元公式如式(3)所示:
(3)
式中:b為偏置項;w為權(quán)重參數(shù)。
1.3.1.4 輸出層 采用如式(4)所示的Softmax分類器進(jìn)行分類,輸出最大值作為分類結(jié)果。
(4)
式中:y(i)為圖像數(shù)量標(biāo)簽;m為圖像類別總數(shù);x(i)為圖像特征向量;θ為訓(xùn)練模型參數(shù)集。
1.3.2 馬鈴薯病害識別模型設(shè)計 本文基于卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)構(gòu)建一種馬鈴薯病害識別模型,該模型由5個卷積模塊和1個全連接模塊組成,包括卷積層、池化層、批歸一化層、Dropout層、全連接層和輸出層。用于對馬鈴薯早疫病和晚疫病的智能識別,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 馬鈴薯病害識別模型結(jié)構(gòu)
考慮到模型的運行的效率[22],病害圖像應(yīng)選擇相對應(yīng)的尺寸,其輸入圖像尺寸為256×256。本研究構(gòu)建了5個卷積層(Conv1~Conv5),Conv1~Conv5所包含的卷積核個數(shù)分別為32、64、64、128、128,卷積核尺寸均設(shè)計為3×3大小,步長S為1,用于提取病害圖像的特征,生成對應(yīng)的特征圖。構(gòu)建了3個在池化層(Pooling1~3),采用最大池化進(jìn)行采樣,尺寸大小分別設(shè)計為3×3和2×2,步長為2,經(jīng)過Max-pooling后特征圖的尺寸減少為原來的一半,減少網(wǎng)絡(luò)訓(xùn)練參數(shù),降低計算復(fù)雜度。將卷積層和池化層運算得到的特征圖轉(zhuǎn)化為一維向量作為全連接層與輸出層的輸出,連接一個1 024個神經(jīng)元的全連接層,采用Softmax函數(shù)作為輸出層的分類器,計算病害類別概率。輸出樣本共有3種,因此輸出層的神經(jīng)元設(shè)置為3。
本試驗中,卷積模塊和全連接模塊中采用添加Relu激活函數(shù)來增強網(wǎng)絡(luò)模型的擬合能力,并在激活函數(shù)之后加入了批歸一化層對得到的特征圖進(jìn)行批歸一化處理,解決了隱藏層數(shù)據(jù)分布發(fā)生變化的問題,提升模型訓(xùn)練過程的穩(wěn)定性[23-24]。通過在模型的卷積模塊和全連接模塊中設(shè)計了Dropout層,使模型在訓(xùn)練過程中的神經(jīng)元輸出值隨機(jī)丟棄[25],設(shè)Dropout參數(shù)值分別為0.25和0.5,避免訓(xùn)練過程中過擬合現(xiàn)象的發(fā)生。
試驗硬件環(huán)境:GeForce GTX 1650 GPU;軟件環(huán)境:python3.6.2;深度學(xué)習(xí)框架:Tensorflow-gpu 1.14、Keras版本為 2.2.4。
試驗采用預(yù)先準(zhǔn)備好的馬鈴薯病害訓(xùn)練集對本文建立的模型進(jìn)行訓(xùn)練。訓(xùn)練過程中,訓(xùn)練輪數(shù)epochs設(shè)為15,每個批量大小(Batch size)為32個樣本,采用SGD(Stochastic gradient descent,SGD)優(yōu)化網(wǎng)絡(luò)參數(shù),使損失函數(shù)達(dá)到最小值。由于SGD在每次迭代過程中出現(xiàn)很大的噪音,陷入局部最優(yōu)解,引入動量(Momentum)概念,Momentum加強更新與上一次梯度方向相同的參數(shù),使網(wǎng)絡(luò)在一定程度上擺脫局部最優(yōu)解。設(shè)學(xué)習(xí)率為0.001,動量參數(shù)為0.9,參數(shù)更新后學(xué)習(xí)率衰減值(Decay)設(shè)為0.001。
2.3.1 趨勢分析 為全面分析模型特征,本研究與LeNet、AlexNet和GooLeNet模型進(jìn)行了試驗對比,得到試驗結(jié)果如表1和圖2所示。
表1 不同訓(xùn)練網(wǎng)絡(luò)模型的評價結(jié)果
圖2 不同網(wǎng)絡(luò)模型的準(zhǔn)確率和損失率
從表1和圖2可以看出,訓(xùn)練到第10個輪次時,各個網(wǎng)絡(luò)模型均已完全收斂,與LeNet和AlexNet模型相比,自建模型收斂速度較快,與GooLeNet模型相當(dāng),訓(xùn)練準(zhǔn)確率為98.53%,優(yōu)于LeNet和AlexNet模型,但準(zhǔn)確率比GooLeNet模型稍差。隨著epochs次數(shù)不斷的增加,各模型損失值均在不斷下降,自建模型的訓(xùn)練損失率為0.038 6,介于LeNet、AlexNet與GooLeNet之間。
最后,將訓(xùn)練好的模型經(jīng)測試集去預(yù)測。由此可知,各個網(wǎng)絡(luò)模型的測試準(zhǔn)確率和損失值。從表2和圖3得知,本研究自建模型測試準(zhǔn)確率為97.76%,高于LeNet(95.37%)、AlexNet(96.52%)和GooLeNet(92.40%)網(wǎng)絡(luò)模型準(zhǔn)確率,模型測試損失率也低于其它3種模型。
2.3.2 指標(biāo)評價分析 采用Precision(精準(zhǔn)度)、Recall(召喚率)和F1-Score(調(diào)和平均值)作為模型的評價指標(biāo)分別對試驗網(wǎng)絡(luò)模型性能進(jìn)行評價。設(shè)TP被正確劃分為正類的個數(shù),TN被正確劃分為負(fù)類的個數(shù),FP被錯誤劃分為正類的個數(shù),FN被錯誤劃分為負(fù)類的個數(shù)。則評價指標(biāo)計算表達(dá)式如式(5)~(7)所示:
(5)
(6)
(7)
通過對馬鈴薯病害測試集進(jìn)行測試,自建模型與參與對比的模型對馬鈴薯早疫病、晚疫病、健康葉片的精準(zhǔn)率、召喚率、調(diào)和均值評價指標(biāo)如表2所示,Precision、Recall和F1-Score各個值越高,說明模型的識別效果就越好,模型的預(yù)測準(zhǔn)確率就越高??梢钥闯?本研究模型相對于其他模型評價指標(biāo)更高,具有更好的魯棒性和泛化能力,能更好地提取病害顯著特征。
表2 不同訓(xùn)練網(wǎng)絡(luò)的評價指標(biāo)
本研究以馬鈴薯早疫病和晚疫病為研究對象,設(shè)計一種馬鈴薯病害識別網(wǎng)絡(luò)模型,結(jié)果表明該模型能夠?qū)Σ『颖具M(jìn)行有效識別。試驗環(huán)境下,利用預(yù)先構(gòu)建好的數(shù)據(jù)集對模型進(jìn)行訓(xùn)練和試驗對比驗證,由不同網(wǎng)絡(luò)訓(xùn)練和測試迭代次數(shù)、測試平均準(zhǔn)確率、Precision、Recall和F1-Score等指標(biāo)得知,自建模型具有識別精度高,收斂速度快,泛化能力與魯棒性強等優(yōu)點,可以用于馬鈴薯早疫病、晚疫病和健康狀況的智能識別,以克服傳統(tǒng)馬鈴薯病害特征提取復(fù)雜、綜合識別效率低等問題。