牛伯浩
關(guān)鍵詞:黃瓜病害;VGG;檢測(cè)模型;小樣本;模型優(yōu)化
0 引言
黃瓜是我國(guó)重要的農(nóng)作物,黃瓜的病害是影響黃瓜產(chǎn)量的重要因素,黃瓜病害的及時(shí)發(fā)現(xiàn)與診治有助于提高產(chǎn)量。因此,人們開(kāi)始思考如何實(shí)現(xiàn)黃瓜病害的高效檢測(cè)。近幾年,基于深度學(xué)習(xí)的圖像分類(lèi)、檢測(cè)、識(shí)別等任務(wù)均取得了很好的效果。在計(jì)算機(jī)視覺(jué)領(lǐng)域,運(yùn)用深度學(xué)習(xí)的圖像分類(lèi)結(jié)果越來(lái)越符合人類(lèi)的視覺(jué)認(rèn)知,而基于深度學(xué)習(xí)的圖像分類(lèi)方法在小規(guī)模圖像分類(lèi)上效果顯著[1-3]。
在黃瓜的生長(zhǎng)過(guò)程中,葉枯病是危害黃瓜健康生長(zhǎng)的最主要的病害之一。目前雖然已有一些學(xué)者開(kāi)始關(guān)注黃瓜病害圖像的研究,但是與黃瓜葉片葉枯病病害圖像研究相關(guān)的課題并不多。因此本文以黃瓜葉片圖像為數(shù)據(jù)集,以黃瓜的葉枯病分類(lèi)檢測(cè)為例,展開(kāi)算法研究[4-5]。
本文在深度學(xué)習(xí)與卷積神經(jīng)網(wǎng)絡(luò)模型VGG16研究的基礎(chǔ)上,提出了黃瓜病害檢測(cè)模型,然后將此算法應(yīng)用在小數(shù)據(jù)集上實(shí)現(xiàn)了黃瓜葉枯病的分類(lèi)檢測(cè),為黃瓜葉枯病病害的檢測(cè)提供一種有效的方法[6-7]。
1 材料與方法
1.1 黃瓜葉片數(shù)據(jù)集與預(yù)處理
本文以黃瓜病害檢測(cè)為背景,以黃瓜葉片的葉枯病檢測(cè)為例展開(kāi)研究。本文實(shí)驗(yàn)數(shù)據(jù)集一共1 500張黃瓜葉片圖像。其中包括健康和患有黃瓜葉枯病的黃瓜葉片圖像。數(shù)據(jù)集中健康葉片圖像1 200張,患有葉枯病的黃瓜葉片圖像300張,通過(guò)樣本擴(kuò)充的方法解決數(shù)據(jù)分布不均勻的問(wèn)題。
由于本課題數(shù)據(jù)集具有樣本分布不均的特點(diǎn),因此對(duì)數(shù)據(jù)集進(jìn)行有選擇的擴(kuò)充,一般情況下,在第一次訓(xùn)練時(shí),篩選出類(lèi)別概率值比較接近的圖片,這類(lèi)圖片要么病害特征不明顯,要么健康特征不明顯,因此我們將此類(lèi)圖片樣本又稱(chēng)之為“難樣本”。一個(gè)模型最終的分類(lèi)能力,往往取決于其對(duì)難樣本的分類(lèi)能力。在數(shù)據(jù)集樣本數(shù)量有限的情況下,對(duì)于一些特征不明顯樣本再次訓(xùn)練,能夠進(jìn)一步提高模型的分類(lèi)能力。因此,為了提高檢測(cè)精度,選出訓(xùn)練集中類(lèi)別概率差值小于50%的圖片,并作為新的訓(xùn)練集繼續(xù)訓(xùn)練,得出最終的分類(lèi)精度。部分?jǐn)?shù)據(jù)集樣本如圖1所示。
1.2 黃瓜病害檢測(cè)模型
由于VGG16在每一層大的卷積層中又包含了三個(gè)子卷積層,網(wǎng)絡(luò)具有相對(duì)較大感受野,且VGG16具有很好的泛化性能。因此,本文提出的黃瓜病害檢測(cè)模型利用在VGG16模型的卷積層進(jìn)行特征提取。具體工作過(guò)程包括:首先按照設(shè)定的比例將數(shù)據(jù)集分為測(cè)試機(jī)和訓(xùn)練集。然后對(duì)模型展開(kāi)訓(xùn)練,在對(duì)模型進(jìn)行訓(xùn)練時(shí),先使用模型的卷積層來(lái)提取特征,在獲得特征結(jié)果的同時(shí),也提高了該模型卷積層在黃瓜病害檢測(cè)應(yīng)用中的適用性。然后再次使用已訓(xùn)練過(guò)的卷積層進(jìn)行訓(xùn)練,進(jìn)一步提高模型的檢測(cè)精度。
接著單獨(dú)針對(duì)網(wǎng)絡(luò)最后兩層全連接層和sigmoid 層進(jìn)行訓(xùn)練,其中不對(duì)卷積層進(jìn)行訓(xùn)練。在本文數(shù)據(jù)集上進(jìn)行測(cè)試時(shí),由之前保留下來(lái)的卷積層對(duì)測(cè)試集中的圖像數(shù)據(jù)提取特征,然后送到最后二層全連接層和sigmoid分類(lèi)器得到其類(lèi)別及對(duì)應(yīng)概率值。模型結(jié)構(gòu)如圖2所示。
具體步驟如下。
輸入:輸入預(yù)處理后的數(shù)據(jù)集圖片。
特征提取:首先對(duì)VGG16 模型進(jìn)行分解。用VGG16網(wǎng)絡(luò)模型卷積層來(lái)提取黃瓜圖片特征。
訓(xùn)練模型:以上一步提取的特征作為輸入,用來(lái)訓(xùn)練全連接層參數(shù)和sigmoid分類(lèi)器,得到訓(xùn)練模型。
篩選:輸出訓(xùn)練集所有圖片的各類(lèi)預(yù)測(cè)百分比,為了提高精度,篩選出兩類(lèi)預(yù)測(cè)百分比相差小于50%的圖片作為新的數(shù)據(jù)集。
再訓(xùn)練:將上一步選出的圖片作為輸入,再訓(xùn)練全連接層參數(shù),得出最終參數(shù)。
再預(yù)測(cè):再通過(guò)該模型sigmoid分類(lèi)器預(yù)測(cè)輸入圖片類(lèi)別及其對(duì)應(yīng)概率值。
其中VGG16的卷積層作為特征提取器,每段卷積層后連接池化層,最后連接2層全連接層和Softmax分類(lèi)器得到物體類(lèi)別及對(duì)應(yīng)概率值。
黃瓜病害檢測(cè)模型的損失函數(shù)是交叉熵?fù)p失函數(shù),其中附加了L2正則化項(xiàng),目的是針對(duì)權(quán)重參數(shù)進(jìn)行懲罰,減輕過(guò)擬合現(xiàn)象。損失函數(shù)見(jiàn)式(1) 。
式(1) 中J 為訓(xùn)練損失,θ 為權(quán)重參數(shù),λ 為正則項(xiàng)系數(shù),x 為批次訓(xùn)練樣本,p 為期望的類(lèi)別概率,q 為模型預(yù)測(cè)的類(lèi)別概率,類(lèi)別概率由Softmax計(jì)算。
黃瓜如果患有病害,一般情況下都會(huì)在葉片中有所體現(xiàn)。黃瓜葉枯病癥狀包括葉片的顏色和表面紋理特征變化。采用方向梯度直方圖(Histogram of ori?ented gradient,HOG)用來(lái)提取黃瓜葉片的顏色紋理特征,并通過(guò)SVM進(jìn)行分類(lèi)。
2 實(shí)驗(yàn)與討論
2.1 實(shí)驗(yàn)設(shè)置
本實(shí)驗(yàn)是以Anaconda3中的Juypter notebook為運(yùn)行環(huán)境,開(kāi)源深度學(xué)習(xí)框架Tensorflow作為開(kāi)發(fā)環(huán)境,Python作為開(kāi)發(fā)語(yǔ)言,展開(kāi)實(shí)驗(yàn)研究。本文實(shí)驗(yàn)環(huán)境是一臺(tái)CPU內(nèi)存為8GB的系統(tǒng)為Windows10的計(jì)算機(jī),程序語(yǔ)言環(huán)境是深度學(xué)習(xí)框架 Tensorflow,然后進(jìn)行模型初始化工作,接著進(jìn)行訓(xùn)練。其中模型學(xué)習(xí)率為0.001,迭代次數(shù)為100次,批處理大?。˙atch _ size) 為10。用VGG16模型訓(xùn)練黃瓜葉片圖像集進(jìn)而獲得其特征向量,然后將特征向量輸入到Softmax分類(lèi)器中獲得分類(lèi)結(jié)果,并進(jìn)行可視化展示。
2.2 實(shí)驗(yàn)結(jié)果與分析
在未對(duì)訓(xùn)練集進(jìn)行數(shù)據(jù)篩選并再訓(xùn)練之前,本文所用到的兩種算法的基礎(chǔ)實(shí)驗(yàn)結(jié)果如表1所示。從表1中可以看出,關(guān)于黃瓜葉枯病病害的檢測(cè)精度,本文提出的黃瓜病害檢測(cè)模型可以達(dá)到95.4%,而基于SVM的檢測(cè)精度僅為88.3%。
在基于小樣本數(shù)據(jù)集以及樣本分布不均勻的分類(lèi)問(wèn)題中,為了提高模型精度,選出訓(xùn)練集中類(lèi)別概率差值小于50%的圖片,并作為新的訓(xùn)練集繼續(xù)訓(xùn)練。
這種方法首先從某種程度上解決了數(shù)據(jù)分布不均的問(wèn)題,其次,可以減少訓(xùn)練階段的過(guò)度擬合,從而提升網(wǎng)絡(luò)的泛化性能。將篩選出的數(shù)據(jù)送入模型進(jìn)行再訓(xùn)練。為了提高說(shuō)服力,先后在原始數(shù)據(jù)集和擴(kuò)充后的數(shù)據(jù)集上,使用了傳統(tǒng)方法支持向量機(jī)模型和黃瓜病害檢測(cè)模型開(kāi)展實(shí)驗(yàn),性能對(duì)比如表2所示。
由表2可知,將篩選出的數(shù)據(jù)送入模型進(jìn)行再訓(xùn)練之后,基于SVM的檢測(cè)精度為88.6%,黃瓜病害檢測(cè)模型葉枯病檢測(cè)精度可達(dá)96.8%。顯然,黃瓜病害檢測(cè)模型在病害檢測(cè)問(wèn)題中更具有優(yōu)勢(shì)。此外,基于遷移學(xué)習(xí)的VGG16方法與傳統(tǒng)方法相比,節(jié)省了大量的訓(xùn)練時(shí)間,效率更高且取得了更高的檢測(cè)精度。該模型實(shí)驗(yàn)結(jié)果如圖3所示。
圖3是黃瓜病害檢測(cè)模型在測(cè)試集上的檢測(cè)結(jié)果,分類(lèi)檢測(cè)精度均可以達(dá)到96%,而基于SVM分類(lèi)器的黃瓜病害檢測(cè)精度僅為88.6%。根據(jù)在測(cè)試集以及驗(yàn)證集上實(shí)驗(yàn)結(jié)果,本文所提出的黃瓜病害檢測(cè)模型對(duì)黃瓜病害的檢測(cè)取得了較高的精度。因此,該黃瓜病害檢測(cè)模型在小樣本數(shù)據(jù)集上完成病害檢測(cè)任務(wù)是可行的。
此外,由于優(yōu)化器的選擇有助于提高訓(xùn)練的速度和精度,不同的模型匹配不同的優(yōu)化器。機(jī)器學(xué)習(xí)常見(jiàn)的優(yōu)化器包括:Adam、Adadelta 以及GradientDes?cent。其中Adam、Adadelta 為自適應(yīng)學(xué)習(xí)率優(yōu)化算法,GradientDescent為梯度下降法。為了選擇最優(yōu)的優(yōu)化器,將對(duì)這三種優(yōu)化器進(jìn)行對(duì)比試驗(yàn),本文從優(yōu)化器對(duì)模型測(cè)試精度的影響方面展開(kāi)實(shí)驗(yàn)研究,實(shí)驗(yàn)對(duì)比結(jié)果如表3所示。
從表3可以看出,相同的優(yōu)化器算法,在學(xué)習(xí)率不同的情況下,會(huì)對(duì)最終的預(yù)測(cè)精度產(chǎn)生影響。相同的學(xué)習(xí)率,選擇不同的優(yōu)化器算法,也會(huì)對(duì)最終的預(yù)測(cè)精度產(chǎn)生影響。綜合優(yōu)化器算法和學(xué)習(xí)率兩個(gè)因素,在選擇Adam優(yōu)化器算法且定義學(xué)習(xí)率為0.001情況下來(lái)訓(xùn)練模型,訓(xùn)練好的模型預(yù)測(cè)精度最高,為98.79%。
從這三種優(yōu)化器在學(xué)習(xí)率三種不同的取值時(shí)的取得的測(cè)試準(zhǔn)確率來(lái)看,Adam優(yōu)化器取得的最高測(cè)試精度為98.79%,此時(shí)的學(xué)習(xí)率為0.001;Adadelta優(yōu)化器取得的最高測(cè)試精度為92.12%,此時(shí)的學(xué)習(xí)率為0.01;而GradientDescent 優(yōu)化器在學(xué)習(xí)率為0.01 和0.005時(shí)均取得的最高測(cè)試精度為95.76%。因此不同的優(yōu)化器都有與之匹配的學(xué)習(xí)率,選擇與優(yōu)化器相匹配的學(xué)習(xí)率,有助于模型取得更好的效果。
3 結(jié)束語(yǔ)
本文提出了黃瓜病害檢測(cè)模型在原始數(shù)據(jù)集擴(kuò)充的基礎(chǔ)上,完成了特征提取、訓(xùn)練模型、參數(shù)訓(xùn)練、優(yōu)化模型、改進(jìn)損失函數(shù)。實(shí)驗(yàn)結(jié)果表明,本文提出的黃瓜病害檢測(cè)模型與基于SVM分類(lèi)器的方法相比,取得了更高的檢測(cè)精度。因此,本文的研究在小樣本數(shù)據(jù)集和小設(shè)備背景下具有一定的實(shí)用價(jià)值。