王樂石,楊文彬,胡云龍,鄭 屹
(中國礦業(yè)大學(xué),江蘇 徐州 221116)
在傳統(tǒng)農(nóng)業(yè)中,人們通過累積下來的先驗(yàn)知識(shí)對病害進(jìn)行識(shí)別,對一些外來病蟲害無法做出相應(yīng)的應(yīng)對措施,從而不能早發(fā)現(xiàn)并根治。通過查閱資料最后做出判斷時(shí),已經(jīng)錯(cuò)過了防治的最佳時(shí)間,對中晚期病害進(jìn)行根治的代價(jià)十分巨大,導(dǎo)致經(jīng)濟(jì)效益降低。
對于面積較大的農(nóng)田,對每個(gè)區(qū)域的農(nóng)作物都進(jìn)行人工監(jiān)測是一項(xiàng)既耗時(shí)又耗力的工作。如果忽視了某一小塊農(nóng)田的病害,可能會(huì)導(dǎo)致周圍作物患病,這導(dǎo)致的損失也是巨大的。
Ishak等討論了植物葉片質(zhì)量分析的方法,過程從圖像采集、圖像處理和分類開始。利用8兆像素的智能手機(jī)攝像頭進(jìn)行圖像采集,然后將圖像樣本分為健康和不健康各50張。圖像處理方法由對比度增強(qiáng)、分割和特征提取3個(gè)部分組成。采用人工神經(jīng)網(wǎng)絡(luò)和多層前饋神經(jīng)網(wǎng)絡(luò)進(jìn)行分類,并對多層感知器(MLP)和徑向基函數(shù)(RBF)兩種網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了比較。RBF網(wǎng)絡(luò)性能優(yōu)于MLP網(wǎng)絡(luò)。該搜索將植物葉片圖像分為健康和不健康兩類,不能檢測出病害類型。Sabrol et al.對番茄葉片的識(shí)別和分類方法進(jìn)行了探討。CIE XYZ顏色空間分析,顏色矩、直方圖和顏色一致性。最佳分類準(zhǔn)確率達(dá)87.2%。Rangarajan et al.提出了一種可行的解決方案,利用兩個(gè)預(yù)先訓(xùn)練的網(wǎng)絡(luò)(AlexNet和VGG16網(wǎng))對番茄作物病害進(jìn)行分類。使用AlexNet和VGG16net對13262幅圖像進(jìn)行分類,獲得的最佳分類精度為97.49%。Coulibaly et al.實(shí)現(xiàn)了一個(gè)檢測和診斷侵染小米作物的疾病的系統(tǒng)。他們的方法是基于CNN模型的遷移學(xué)習(xí)技術(shù)來提取葉子的特征。一個(gè)預(yù)先訓(xùn)練的網(wǎng)絡(luò)VGG16模型被用來將其學(xué)習(xí)能力轉(zhuǎn)移到他們建議的神經(jīng)網(wǎng)絡(luò)中,其中最好的準(zhǔn)確率達(dá)到95%。
圖1中的分類器模型結(jié)構(gòu)由4個(gè)主要階段組成。第一階段,獲取植物病蟲害數(shù)據(jù)集。從數(shù)據(jù)集中獲取的所有圖像都要進(jìn)行必要的調(diào)整。然后將經(jīng)過調(diào)整的數(shù)據(jù)圖片分為訓(xùn)練樣本和測試樣本兩類。最后,搭建卷積神經(jīng)網(wǎng)絡(luò)(包含卷積層、池化層、全連接層)對圖像進(jìn)行分類。
圖1 分類器模型
本文使用的數(shù)據(jù)集來自于網(wǎng)絡(luò)和實(shí)地采集到的圖片。該數(shù)據(jù)集包含使用的4516張圖像,共有20種常見的病蟲害類型(每一種病蟲害類型按照病害程度分為健康、一般、嚴(yán)重3種情況,共計(jì)60組)如圖2。其中包含常見病害類型為, 蘋果黑星病、玉米灰斑病、葡萄黑腐病、馬鈴薯早疫病、草莓葉枯病等。所有圖像都是在RGB顏色空間,其格式為JPG。
圖2 不同程度蘋果黑星病圖片
本文將從數(shù)據(jù)集中獲取的圖像尺寸大小調(diào)整為100×100×3,從而減少訓(xùn)練時(shí)間并提高訓(xùn)練的精度。
神經(jīng)網(wǎng)絡(luò)在使用真實(shí)數(shù)據(jù)進(jìn)行測試之前,必須先在一組數(shù)據(jù)中進(jìn)行訓(xùn)練以提高網(wǎng)絡(luò)的準(zhǔn)確性。因此,數(shù)據(jù)集應(yīng)分為訓(xùn)練組和測試組來避免增加相關(guān)性。數(shù)據(jù)集可分為(60%~80%)訓(xùn)練和(40%~20%)。為了進(jìn)行測試,有時(shí)會(huì)增加訓(xùn)練數(shù)據(jù),以提高網(wǎng)絡(luò)的效率。在圖3經(jīng)驗(yàn)的基礎(chǔ)上,本文采用數(shù)據(jù)集中80%的圖像用于訓(xùn)練,20%用于測試。
圖3 測試集與訓(xùn)練集選取比例對精度的影響
利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)可以對植物病害進(jìn)行檢測和分類。本文采用基于TensorFlow框架搭建的卷積神經(jīng)網(wǎng)絡(luò)模型,網(wǎng)絡(luò)總共包含7層,前四層為卷積層,后三層為全連接層。卷積層由3個(gè)部分組成,分別為卷積、激活和池化。卷積的目的是為了獲取圖片的特征,通過設(shè)置卷積核的大小、步長、填充等參數(shù),對圖片的特征信息進(jìn)行提取,比如不同種類葉片的形狀、顏色以及不同病蟲害之間存在差異的某些特征。本項(xiàng)目使用卷積核的維度為5×5×3,5×5代表每個(gè)卷積核的大小,3代表RGB3個(gè)通道;步長設(shè)置為1;由于數(shù)據(jù)集中圖片在邊緣位置包含的信息量過少,填充大小設(shè)置為不填充。其中,卷積計(jì)算采用的是TensorFlow自帶二維卷積函數(shù)。
利用卷積運(yùn)算可以從圖像中提取顏色、邊緣等特征。在本文的模型中,在所有的卷積層中,濾波器的大?。?×5)是固定的,但濾波器的數(shù)量是改變的。比如,在第一層卷積層中,濾波器的個(gè)數(shù)為32,而在第二和第三卷積層中,濾波器個(gè)數(shù)分別為64個(gè)和128個(gè)。
我們在對圖像進(jìn)行卷積操作的方式來處理時(shí),樣本的整體不一定都是線性的。為了解決線性模型不能解決的非線性問題,我們只能通過線性變換或使用非線性函數(shù)。神經(jīng)網(wǎng)絡(luò)中常用sigmoid、tanh作為非線性函數(shù),本文采用了ReLU(線性整流函數(shù)),作為至下一層神經(jīng)元或作為整個(gè)神經(jīng)網(wǎng)絡(luò)的輸出。線性整流函數(shù)是為了消除負(fù)值,可由式(1)和圖4表示。
圖4 ReLU(線性整流函數(shù))
每一層池化層緊跟卷積層,用于簡化卷積的輸出結(jié)果,降低對不重要特征的敏感度。同時(shí),將卷積層的輸出結(jié)果進(jìn)行壓縮,在不丟失特征信息的前提下壓縮數(shù)據(jù)量的大小。常用的池化方法有最大池化(max-pooling)和均值池化(mean-pooling)。根據(jù)相關(guān)理論,特征提取的誤差主要來自兩個(gè)方面:第一,鄰域大小受限造成的估計(jì)值方差增大;第二,卷積層參數(shù)誤差造成估計(jì)均值的偏移。兩種方法相對來說,mean-pooling能減小第一種誤差,更多保留的是圖像的背景信息,而對本文來說,背景信息對病害的識(shí)別幾乎沒有意義。而max-pooling能減小第二種誤差,更多的保留紋理信息,它所提取的特征正是病害的特征。因此,本文采用最大池化(maxpooling)的池化方法,通過選擇最大值來消除剩余值,從而減少樣本數(shù)量,如圖5所示。
圖5 max pooling layer
后四層為全連接層,主要作用是實(shí)現(xiàn)分類,通過將卷積層得到的高維數(shù)據(jù)鋪平以作為輸入,同樣使用激活函數(shù)進(jìn)行非線性變化,最終得到分類結(jié)果。
農(nóng)作物病害對農(nóng)民收入和國家經(jīng)濟(jì)產(chǎn)生了不良影響,如果這些疾病沒有在感染的早期階段被發(fā)現(xiàn),治療將非常昂貴,并導(dǎo)致作物產(chǎn)量減少。因此,這項(xiàng)工作的重點(diǎn)是檢測植物上的初級(jí)感染,神經(jīng)網(wǎng)絡(luò)已經(jīng)被訓(xùn)練來監(jiān)測葉子的顏色或形狀的變化。深度學(xué)習(xí)方法被認(rèn)為是一種識(shí)別和檢測圖像顏色和形狀變化的現(xiàn)代技術(shù),也可以成功地用于識(shí)別植物葉片的病害。本文構(gòu)建了一種基于TensorFlow框架的卷積神經(jīng)網(wǎng)絡(luò)。該網(wǎng)絡(luò)使用數(shù)據(jù)集(4516張圖像)進(jìn)行訓(xùn)練,訓(xùn)練比例為80%,測試比例為20%,識(shí)別準(zhǔn)確度可達(dá)到80%,基本滿足對病蟲害的識(shí)別要求。