張善文, 謝澤奇, 張晴晴
(鄭州大學西亞斯國際學院,河南 鄭州 451150)
黃瓜是一種廣受歡迎的蔬菜,但黃瓜炭疽病、白粉病、霜霉病等多種病害嚴重影響了黃瓜的產(chǎn)量和質量。很多黃瓜病害的癥狀出現(xiàn)在葉片上,病害葉片的顏色、紋理和形狀異常,而且不同類型的病害葉片具有不同的顏色、紋理和形狀特征[1-2]。因此,根據(jù)黃瓜病害葉片特征能夠識別病害類型。基于病害葉片圖像的黃瓜病害識別方法研究一直是生態(tài)學、模式識別和圖像處理等領域的一個重要研究課題[3-5]。Dong等[6]通過提取病斑圖像的顏色和形狀特征以及灰度共生矩陣紋理特征進行黃瓜霜霉病、白粉病和炭疽病病害類型識別。冀曉麗[7]總結了國內外相關研究現(xiàn)狀,提出了一種黃瓜葉部白粉病斑分割方法,并利用病斑正負樣本區(qū)別白粉病斑和其他病斑的特征,研究了基于支持向量機(Support vector machine,SVM)的黃瓜病害類型識別方法。張芳等[8]提出了一種基于超像素和形狀特征的復雜背景下的黃瓜病害葉片圖像分割算法,并利用支持向量機進行黃瓜葉部病害識別。Zhou等[9]提出了一種基于機器視覺系統(tǒng)和SVM的黃瓜霜霉病分類系統(tǒng),該系統(tǒng)包括圖像采集、圖像預處理、特征參數(shù)提取、模式識別等方面。Wei等[10]利用計算機圖像處理技術對黃瓜病害圖像進行預處理和特征提取,從統(tǒng)計、形狀和顏色3個方面提取黃瓜霜霉病的15個特征參數(shù)進行病害識別,取得了較高的識別率。
現(xiàn)有的黃瓜病害識別方法大多是從病害葉片圖像中提取特征,然后利用不同分類器進行病害識別。雖然可以從1幅病害葉片圖像中提取100多種特征,但由于病害葉片圖像的復雜多樣性,很難選擇出對病害類型識別貢獻較大的有用特征。所以,黃瓜病害識別仍然是一個研究熱點。由于病害葉片及其分割出的病斑圖像千變萬化,而且實際病害葉片圖像的背景比較復雜,因此隨著圖像數(shù)據(jù)的快速增長,人工設計的特征越來越難以滿足實際黃瓜病害識別的需求。
近年來,基于深度學習的特征提取與識別方法受到了極大關注,并在自然圖像分類識別中得到了成功應用。大量試驗結果表明,基于深度學習得到的特征表達比手工設計的底層視覺特征(如HOG特征、SIFT特征等)在圖像識別方面具有更大的優(yōu)越性。深度學習的實質是通過構建具有很多隱層的網(wǎng)絡和海量訓練數(shù)據(jù),自動學習更有用的特征,從而最終提升圖像的識別率[11-12]。卷積神經(jīng)網(wǎng)絡(Convolutional neural network, CNN)作為一種簡單有效的深度學習方法,在圖像識別方面得到了廣泛應用。由于CNN特征提取層通過大量訓練數(shù)據(jù)進行特征提取,而不是提取人工設計的特征,CNN避免了人為的特征提取過程,而是自動地從訓練數(shù)據(jù)中學習特征,并且同一特征映射面上的神經(jīng)元權值共享,網(wǎng)絡并行學習可以采用多個GPU訓練網(wǎng)絡,極大地提高了網(wǎng)絡的訓練速度。目前,CNN已被成功應用于植物物種識別中[13]。Jeon等[13]提出了一種基于深度學習的植物病害檢測方法,通過訓練深度學習模式,檢測14種作物的26種病害。Srdjan等[14]提出了一種基于深度神經(jīng)網(wǎng)絡的植物病害識別方法,該方法能夠有效區(qū)分健康葉片和13種不同的病害葉片。Jihen等[15]提出了一種基于深度學習的香蕉病害分類方法,并取得了較高的識別率。本研究擬構建一種深度CNN(Deep convolutional neural network,DCNN)模型,直接從歸一化后的彩色病害葉片圖像中提取高層次的抽象特征,并在輸出層進行病害識別,以建立一種基于CNN的黃瓜病害識別方法。
在陜西省楊凌農(nóng)業(yè)高新技術產(chǎn)業(yè)示范園拍攝黃瓜病害葉片圖像,構建數(shù)據(jù)庫。數(shù)據(jù)庫包含赤霉病、白粉病、霜霉病、炭疽病、斑點病和細菌性角斑病等6種黃瓜常見的病害葉片圖像共1 200幅,每種病害200幅。每幅病害葉片圖像由分辨率 1 200×1 600的佳能A640數(shù)碼相機拍攝。拍攝圖像時,相機設置為手動調節(jié)焦距和光圈,自動白平衡,關閉閃光燈。從病害癥狀能被看見開始,每天上午8∶00到下午18∶00每隔2 h拍攝1次,包含不同光照度和不同角度的各100幅葉片圖像。然后采用Matlab 7.0軟件將每幅圖像的分辨率壓縮為256×256,最后以JPEG格式導入計算機,構建黃瓜葉部病害圖像數(shù)據(jù)庫。部分圖像如圖1所示。
圖1 6種黃瓜病害葉片圖像Fig.1 Six kinds of cucumber diseased leaf images
利用CNN對病害葉片圖像進行特征提取和類型識別的一個最大優(yōu)點是不需要對原始彩色病害葉片圖像進行一些復雜的底層圖像預處理、病斑分割和特征提取等操作,可以把原始彩色圖像直接輸入CNN模型。但由于計算機計算能力有限,一般還不能達到完全依賴增加訓練數(shù)據(jù)來訓練深度CNN模型的程度,而是要對訓練數(shù)據(jù)增加一些預處理和先驗知識以減少訓練過程中的計算量。由于拍攝的病害葉片圖像存在噪聲、失真、干擾和背景等,首先需要對病斑葉片圖像進行降噪、增強和歸一化等預處理[4,7],然后從預處理后的圖像中隨機選取出多幅病斑的圖像塊,并將這些病斑圖像塊進行左右翻轉,得到的圖像塊都作為訓練數(shù)據(jù)的一部分,由此可以減少過擬合。
由于采集的病害葉片圖像大小不一,而且圖像的灰度值范圍也不相同,容易導致網(wǎng)絡收斂慢、訓練時間長,而且圖像灰度值范圍大的輸入在模式分類中的作用可能會偏大,而范圍小的輸入在模式分類中的作用可能會偏小。所以還需要對圖像歸一化處理使灰度值范圍為[0,1]。
病害類型識別的依據(jù)主要是病害葉片圖像中的彩色病斑。為了減少復雜背景對識別率的影響,先從訓練集每幅分辨率為 256×256的病害葉片圖像中的不同位置隨機選取幾個分辨率比原來小的圖像塊,根據(jù)實際拍攝的病害葉片圖像特點,選擇的圖像塊為 227×227。然后利用Matlab 7.0中的reshape()函數(shù)將每幅彩色圖像歸一化為 148×148×3。最后采用10-折交叉驗證法將預處理后的圖像集劃分為訓練集和測試集,即將每種病害的所有葉片圖像隨機劃分為10等份,1等份作為測試集,其余的作為訓練集。訓練集用于訓練CNN模型,測試集用于在訓練好的模型中測試病害識別方法的性能。模型的評價指標為對測試集中的所有病害圖像的病害識別率大小。在模型訓練和測試時,為了降低圖像數(shù)據(jù)之間的相似性,將輸入圖像數(shù)據(jù)減去訓練集中所有圖像的均值,從而可以提高訓練速度。為了得到更多的訓練集,將訓練集中每幅圖像間隔5°進行旋轉1周,并對每次旋轉5°得到的每幅圖像進行水平翻轉,將每幅圖像擴展為144幅圖像,再將訓練集中所有擴展的圖像組成訓練集。由此模擬基于物聯(lián)網(wǎng)監(jiān)控視頻的多種自然環(huán)境條件,則訓練集共得到6種病害的病害圖像6×180×144=155 520幅。在測試過程中,取測試圖像左上、右上、中間、左下以及右下5個圖像塊,并作水平翻轉,對得到的10個圖像上的預測結果取均值,作為測試圖像的預測結果。經(jīng)過10次重復試驗后,每一等份都用作一次測試集,可以得到10個病害識別結果,再將其平均值作為一次10-折交叉驗證試驗的識別率。
在LeNet卷積神經(jīng)網(wǎng)絡的架構基礎上,設計一個包含11個隱層的深度CNN模型,該模型由5個卷積層、3個池化層、2個全連接層和1個Softmax分類器回歸層組成,并將該深度CNN應用于黃瓜彩色病害葉片圖像分類中。
卷積神經(jīng)網(wǎng)絡(CNN)法利用卷積進行局部連接和權值共享,利用降維采樣降低網(wǎng)絡的復雜性和過擬合,通過增加層數(shù)提取更具有鑒別力的分類特征,最后將經(jīng)過全連接層后的特征輸入Softmax分類器得到測試圖像各個類別的概率,由此進行圖像分類識別。CNN結構由一個輸入層、多個卷積層、多個池化層、一個或多個全連接層和一個輸出層組成。輸入層是將一幅或多幅M×M×C的圖像輸入到第一個卷積層,其中M為圖像的高度和寬度,C為網(wǎng)絡的通道數(shù)。若輸入圖像為灰度圖像,則C=1;若輸入圖像為RGB圖像,則C=3。
(1)
每一個卷積層輸出的特征圖給一個額外的偏置,但對于一個特定的輸出特征圖,卷積每個輸入特征圖的濾波器(卷積核)不同。也就是說,若輸入特征圖和輸出特征的特征圖都是從輸入特征圖中卷積求和得到,那么對應的卷積核不一定相同。
不同的激活函數(shù)對應不同的神經(jīng)元。為了簡單起見,一般選取線性閾值函數(shù),其輸出為:
(2)
式(2)中,n表示輸入神經(jīng)元的個數(shù)。這是一種強制輸出為0的方法,訓練后的網(wǎng)絡具備一定的稀疏性,從而減少數(shù)據(jù)冗余,使提取的特征更具表達能力。這種神經(jīng)元也是現(xiàn)在深度神經(jīng)網(wǎng)絡中經(jīng)常用到的神經(jīng)元。
池化層,又叫采樣層或特征映射層。池化操作是對卷積層輸出的特征圖不同位置特征進行二次采樣,可以通過不同的采樣方式對卷積層的輸出特征圖進行更低分辨率的統(tǒng)計表示。對于池化層來說,如果有N個輸入特征圖,就有N個輸出特征圖,只是每個輸出特征圖都變小。池化結果是對卷積層的輸出經(jīng)過下采樣加偏置再經(jīng)過激活函數(shù)得到:
(3)
其中,l表示層數(shù),down為降維采樣操作,w為池化權值,bs為附加偏置。
全連接層常出現(xiàn)在最后幾層,用于對前面設計的特征做加權和。全連接層將學到的特征表示映射到樣本標記空間,可以把高維變到低維,同時把有用的信息保留下來。全連接層可由卷積操作實現(xiàn)。該層輸出層的神經(jīng)元和輸入層的每個神經(jīng)元都連接,將學到的“分布式特征表示”映射到樣本標記空間,在整個卷積神經(jīng)網(wǎng)絡中起到“分類器”的作用。在網(wǎng)絡模型的輸出層一般采用Softmax函數(shù)作為分類器,輸出不同預測結果的概率分布。假設圖像訓練集中有C類N幅圖像,經(jīng)過卷積、下采樣以及全連接操作后,得到的第i幅圖像的特征向量和對應的類別標簽記為(x(i),r(i))(i=1,2,...,N),其中r∈{1,2,...,C}。經(jīng)過前向傳播后,即在數(shù)據(jù)傳到輸出層后,對于單個訓練數(shù)據(jù),Softmax分類器的輸出為:
(4)
式(4)中,wi為全連接層中多個神經(jīng)元與Softmax分類器的i個輸出神經(jīng)元相連接的權重。
利用Softmax分類器的CNN的損失函數(shù)為
(5)
式(5)中,t為由模型的激勵函數(shù)f(x)=max(0,x)輸出的一個的C×1矩陣,tlable為訓練樣本標簽,是一個C×1的二值矩陣。
CNN模型訓練的優(yōu)劣主要由損失函數(shù)確定,訓練與測試的損失值越低,則模型訓練得越好。CNN利用學習率更新網(wǎng)絡權重、優(yōu)化網(wǎng)絡。該參數(shù)在確定網(wǎng)絡收斂和泛化能力方面起著重要作用。學習率過小可能導致收斂緩慢,相反導致發(fā)散。在訓練網(wǎng)絡前,利用一些不同的小隨機數(shù)初始化網(wǎng)絡所有的權。其中,“小隨機數(shù)”保證網(wǎng)絡不會因權值過大而進入飽和狀態(tài)進而導致訓練失敗,“不同”是保證網(wǎng)絡能夠正常地學習特征。實際上,若利用相同的初始化網(wǎng)絡的權矩陣,則網(wǎng)絡無學習能力。
本研究采用彩色圖像的三通道RGB空間分量微調CNN模型。具體操作為:在訓練好的CNN模型上,再利用訓練集對該模型進行再訓練,通過觀察測試集上的分類精度,判斷訓練效果。在深度CNN中,層數(shù)越高,提取分類特征的泛化能力就越差。因此,在微調CNN模型時,需要將輸出層的學習率設置得比其他層稍大,使得訓練速度更快,使模型能夠收斂。
由于黃瓜病害葉片圖像的復雜多樣性,本研究構建了一個具有11個隱層的深度CNN模型。其結構如圖2所示。
圖2 中標出了CNN的參數(shù)變化和特征圖的維數(shù)變化,其中S為步長,P為0元素填充,C為病害類別數(shù)。在卷積層使用較小的濾波器,如3×3或5×5,并在卷積時使用步長S對隱層的輸入進行每次移動1個步長,從輸入圖像或特征圖的左上角開始,上下左右移動,再使用0元素對原來的輸入進行邊界處理。設置了2層全連接,其中第1個全連接層由卷積核為6×6的全局卷積實現(xiàn),第2個全連接層由卷積核為1×1的卷積實現(xiàn)。
圖2 基于深度CNN的黃瓜病害識別模型Fig.2 The model of cucumber disease recognition based on deep convolutional neural network
在基于深度CNN的黃瓜病害識別試驗中,模型的主要參數(shù)設置為:對于彩色病害葉片圖像,初始學習率是1×10-4,當?shù)鷧?shù)為2 000次后減少為1×10-5,權重衰減系數(shù)為0.000 5。其他參數(shù)設置在圖2中標示。由于CNN模型中參數(shù)較多,試驗所用計算機顯卡的內存不夠用,這部分試驗是在CPU上運行的。計算機的配置是intel i5處理器,16 GB內存,GTX7502GB顯卡,訓練時間約為50 h。卷積層的每幅特征圖表示的是圖像的一種特征,層數(shù)越高,特征越抽象,加上全連接層的目的是將底層各特征圖的特征結合到一起,然后采用Softmax分類器進行病害類型識別,輸出測試集中每幅病害葉片圖像屬于6種不同類別病害的概率,選擇其中最大的概率對應的類別作為該病害葉片所屬的病害類別。在試驗過程中,在彩色病害葉片圖像上微調2 000次后得到模型最優(yōu)參數(shù)。當嘗試更多次迭代時,網(wǎng)絡在測試集上的分類率可能不會繼續(xù)上升,反而可能下降,最后維持在一個比較小的值。在理論上,在測試集上的識別率達到一個比較高值后是不會再下降,可能原因是學習率微調得稍大了。若將學習率再調小,模型的收斂速度可能較慢;若RGB彩色病害葉片圖像庫不夠大,則不能使模型收斂。在訓練好的模型上,對測試集進行測試,得到病害類型識別結果。表1中為6種黃瓜病害的平均識別率、方差和識別時間。為了表明本方法的有效性,表1中還列出了其他4種傳統(tǒng)的基于特征提取的黃瓜病害識別方法的平均識別結果。這4種方法分別基于病斑形狀和神經(jīng)網(wǎng)絡法(LSNN)[2]、基于顏色特征和屬性約簡法(CFAR)[3]、基于全局和局部奇異值分解法(GLSVD)[5]、基于葉片圖像處理法(LIP)[10]。
表15種黃瓜病害識別方法的識別率以及訓練和識別時間
Table1Therecognitionrates,trainingtimeandrecognizingtimebyfivecucumberdiseaserecognitionmethods
方法識別率(%)訓練時間(h)識別時間(s)LSNN74.53±2.1515.0004.1CFAR72.43±1.730.0463.6GLSVD81.52±1.660.0273.8LIP72.26±2.230.0847.6DCNN90.32±1.4256.0002.7
LSNN:基于病斑形狀和神經(jīng)網(wǎng)絡的病害識別方法;CFAR:基于顏色特征和屬性約簡的病害識別方法;GLSVD:基于全局和局部奇異值分解的病害識別方法;LIP:基于葉片圖像處理的病害識別方法;DCNN:基于深度卷積神經(jīng)網(wǎng)絡的病害識別方法。
從表1可以看出,本研究提出的方法的識別率最高,盡管基于深度CNN的病害識別方法的訓練時間很長,但識別時間較短。由于基于CNN的圖像識別模型具有較好的魯棒性和穩(wěn)定性,所以只要訓練好模型,就可以較快地進行病害類型識別。因此,本研究提出的方法能夠應用于作物病害識別系統(tǒng)。
針對黃瓜病害葉片圖像的復雜多樣性以及分類特征提取困難的問題,本研究提出一種基于深度CNN的黃瓜病害識別方法,通過深度學習的方式對病害葉片圖像的病斑屬性進行準確分類,利用Softmax分類器進行病害類型識別。本方法的創(chuàng)新點在于:①不需要對每幅病害葉片圖像進行復雜的預處理以及病斑分割和手工設計的特征提取,能夠直接從歸一化后的彩色病害葉片圖像中提取出高層次的抽象特征,并在輸出層進行病害識別,從而極大提高了病害的識別效率;②能夠對大田復雜環(huán)境中利用物聯(lián)網(wǎng)和智能電子設備采集的黃瓜病害葉片圖像進行病害類型識別,極大地擴展了該方法的應用范圍。試驗結果表明,相比于傳統(tǒng)的基于特征提取的作物病害識別方法,本方法準確率更高、識別效果更好。但是深度學習需要海量數(shù)據(jù)庫的支持,因此后續(xù)研究中將增加訓練數(shù)據(jù)量,用更加復雜的深度網(wǎng)絡結構來訓練模型,進一步提高基于深度CNN的黃瓜病害識別方法的準確率。
[1] WEI Y, CHANG R, WANG Y, et al. A study of image processing on identifying cucumber disease[C]. Springer Berlin Heidelberg: Computer and Computing Technologies in Agriculture V, 2012:201-209.
[2] 賈建楠,吉海彥.基于病斑形狀和神經(jīng)網(wǎng)絡的黃瓜病害識別[J].農(nóng)業(yè)工程學報,2013,29(S1):115-121.
[3] 謝澤奇,張會敏,張善文,等.基于顏色特征和屬性約簡的黃瓜病害識別方法[J].江蘇農(nóng)業(yè)學報,2015,31(3):526-530.
[4] GUO P, LIU T H, LI N X. Design of automatic recognition of cucumber disease image[J]. Information Technology Journal, 2014,13(13): 2129-2136.
[5] ZHANG S, WANG Z. Cucumber disease recognition based on Global-Local Singular value decomposition[J]. Neurocomputing, 2016, 205:341-348.
[6] DONG P X, WANG X D. Recognition of greenhouse cucumber disease based on image processing technology [J]. Open Journal of Applied Sciences,2013, 3:27-31.
[7] 冀曉麗. 基于支持向量機的黃瓜葉部白粉病害檢測[D]. 沈陽:東北大學, 2014.
[8] 張 芳,王 璐,付立思,等. 基于支持向量機的黃瓜葉部病害的識別研究[J]. 沈陽農(nóng)業(yè)大學學報, 2014, 45(4):457-462.
[9] ZHOU B Y, XU J W, ZHAO J F. Research on cucumber downy mildew detection system based on SVM classification algorithm[C]. Changsha China: 3rd International Conference on Material, Mechanical and Manufacturing Engineering, 2015:1681-1684.
[10] WEI Y, CHANG R, WANG Y, et al. A study of image processing on identifying cucumber disease[C]. Beijing China: IFIP Advances in Information & Communication Technology, 2016:201-209.
[11] SCHMIDHUBER J. Deep learning in neural networks: An overview[J]. Neural Networks the Official Journal of the International Neural Network Society, 2014, 61:85-117.
[12] GOLOVKO V A. Deep learning: an overview and main paradigms[J]. Optical Memory & Neural Networks, 2017, 26(1):1-17.
[13] JEON W S, RHEE S Y. Plant leaf recognition using a convolution neural network[J]. International Journal of Fuzzy Logic & Intelligent Systems, 2017, 17(1):26-34.
[14] SRDJAN S, MARKO A, ANDRAS A, et al. Deep neural networks based recognition of plant diseases by leaf image classification[J]. Computational Intelligence and Neuroscience,2016,6:1-11.
[15] JIHEN A, BASSEM B, ALSAYED A. A deep learning-based approach for banana leaf diseases classification[C]. Gesellschaft für Informatik, Bonn:Lecture Notes in Informatics, 2017: 79-88.