徐巖 劉林 李中遠 高照 李曉振
摘要:為了解決傳統(tǒng)算法中人工提取特征的缺陷,提出了基于卷積神經網絡的玉米品種識別算法。以登海518、浚單20和鄭單958 3個玉米品種為研究對象,制作數據集并進行分類標簽,分別標記為0、1、2。使用Keras學習框架搭建網絡模型,包括1個輸入層、5個連續(xù)的卷積池化結構、3個全連接層和1個輸出層。卷積層提取有效的特征信息,結合Leaky ReLU激活函數傳遞至下一層,輸出層采用Softmax函數實現(xiàn)玉米品種的識別。使用完成訓練的模型對預測集進行預測。結果表明:登海518、浚單20、鄭單958的識別率分別達到100.00%、93.99%、92.49%,平均識別率達到95.49%。
關鍵詞:玉米;品種識別;卷積神經網絡;Keras學習框架
中圖分類號:TP391文獻標識碼:A文章編號:1000-4440(2020)01-0018-06
Abstract:In order to overcome the shortcomings of artificial featur extraction in traditional algorithm, a maize variety recognition algorithm based on convolutional neural network was proposed in this study. Taking maize variety Denghai 518, Jundan 20 and Zhengdan 958 as the research objects, the data sets were created and classified with labels of 0, 1, and 2. Keras learning framework was selected to build the network model, which included one input layer, five continuous convolution pooling structures, three full connection layers and one output layer. The convolution layer extracted effective feature information and transmitted it to the next layer with Leaky ReLU activation function. The output layer used Softmax function to realize the identification of maize varieties. The prediction set was predicted by the completed training model. The prediction results showed that the recognition rates of Denghai 518, Jundan 20 and Zhengdan 958 were 100.00%, 93.99% and 92.49% respectively, with an average recognition rate of 95.49%.
Key words:maize;variety recognition;convolutional neural network;Keras learning framework
中國是世界上主要的玉米生產國和消費國,玉米作為中國主要的農作物,在食品、飼料、醫(yī)療和工業(yè)原料等行業(yè)中備受關注[1]。玉米種子的質量直接關系到玉米的產量及品質,但假種子事件頻發(fā)給農業(yè)造成了巨大的損失。隨著科學技術的發(fā)展,計算機視覺技術和機器學習技術已廣泛應用于棉花、小麥、玉米、花生等種子的破損識別以及水稻、棉花、大豆、番茄等種子的品種識別。在玉米品種識別中,學者們主要通過提取玉米種子的多個有效特征,如形態(tài)特征、顏色特征、紋理特征、胚部特征、光譜特征等,結合人工神經網絡或支持向量機實現(xiàn)玉米品種的有效識別[2-9]。
傳統(tǒng)的機器學習方法需要人工總結規(guī)律并設計特征量,在圖像預處理及評估提取特征的有效性上耗費大量時間,而深度學習可以有效解決這一問題。卷積神經網絡是深度學習中非常典型且重要的網絡模型,能夠實現(xiàn)局部連接和權值共享,從而減少大量參數,有效降低計算難度和減少運算時間[10]。1989年,Yann構建了應用于圖像分類的卷積神經網絡,即LeNet的最初版本,并于1998年構建了更加完備的卷積神經網絡模型——LeNet-5。LeNet-5加入了池化層對輸入特征進行篩選,但由于數據集規(guī)模及軟硬件基礎設施的限制,使得在大規(guī)模數據集分類任務中并未取得良好的效果。2006年以來,卷積神經網絡得到迅速發(fā)展,2012年Krizhevsky等提出了一種與LeNet-5類似但具有更深結構的卷積神經網絡模型——AlexNet,該模型奪得2012 ImageNet大規(guī)模視覺識別競賽的冠軍[11]。隨著AlexNet的成功構建,卷積神經網絡成為研究的熱點,學者們通過對其進行改進,不斷提出新的卷積神經網絡模型,如:VGG模型、GoogLeNet模型、ResNet模型等[12-14];同時,卷積神經網絡的應用快速增長,但多用于各領域的識別分類問題。2016年,魏英姿[15]等將卷積神經網絡應用于玉米種子的完整性識別,但卷積神經網絡在玉米種子品種識別中的應用還比較少。本研究將使用Keras深度學習框架搭建卷積神經網絡模型,對登海518、浚單20和鄭單958 3個玉米品種進行識別。
1材料與方法
1.1試驗材料
以登海518、浚單20和鄭單958三個玉米品種為研究對象,均為華北地區(qū)高產玉米品種。從每個品種中選取150粒正常種子,共計450粒。按固定順序與方向將種子擺放于ECOSYS M6530cdn多功能一體機的玻璃平臺上,為了使掃描背景為黑色,種子上方覆蓋黑色吸光布。具體參數設置如下:分辨率為600 DPI,色彩模式為彩色,圖像格式為png。掃描獲取的試驗樣本的數字化圖像。基于PhotoShop軟件獲取像素為100×100單粒種子數據。由于神經網絡模型需要大量的數據進行訓練,以降低模型對某些屬性的依賴,提高神經網絡模型的泛化能力,本研究主要通過2種方式的翻轉處理(鏡像翻轉、垂直翻轉)和不同角度的旋轉處理(90°、180°、270°)進行數據增強,經過處理的數據有效信息會發(fā)生改變,從而對試驗結果有所影響。數據增強后每個玉米品種的數據量為1 200個,總數據量達到3 600個。
1.2試驗方法
1.2.1卷積神經網絡常見的卷積神經網絡通常由輸入層、卷積層、池化層、全連接層和輸出層構成(圖1)。其中,連續(xù)的卷積、池化結構和全連接層構成了卷積神經網絡的隱含層[16]。
卷積層是卷積神經網絡的核心,通過卷積運算提取圖像的不同特征。卷積層由多個特征圖構成,同一特征圖的所有神經元共享同一個卷積核參數,而每一個神經元通過卷積核與上一層特征圖的部分神經元連接,用來學習局部特征[17]。將卷積核的每個元素作為一個權值參數與輸入特征圖進行卷積運算,每項卷積求和并加上偏置作為激活函數的輸入特征圖,通過激活函數的非線性映射得到卷積層的輸出特征圖[18]。池化層緊跟在卷積層之后,主要是通過對輸入的特征圖進行壓縮,簡化網絡計算的復雜度,同時進行特征壓縮,提取有效的特征信息。在經過多個連續(xù)的卷積池化結構之后,連接著一個或多個全連接層。全連接層中的每個神經元與其前一層的所有神經元全部連接,用于獲取卷積池化結構中具有類別區(qū)分性的局部信息。
1.2.2卷積神經網絡的構建Keras是一個高度模塊化的深度學習程序庫,由神經網絡模塊、損失函數模塊、激活函數模塊等18個模塊組成,只要將所需模塊自由組合在一起就可以設計神經網絡。Keras同時支持卷積神經網絡和循環(huán)神經網絡,從CPU切換到GPU加速計算不需要對代碼作任何更改。以TensorFlow為后端,使得Keras訓練模型的性能相比于TensorFlow基本上沒有任何損耗,只是極大程度地簡化了編程的復雜度。近年來,Keras在工業(yè)界和學術界得到廣泛應用,其應用率高于除TensorFlow之外的任何深度學習框架。
使用Python在Keras中搭建深度學習神經網絡雖然非常簡單,但需要嚴格遵循模型的生命周期,其生命周期由選擇模型、構建網絡層、編譯、訓練和測試5個步驟組成(圖2)。
Keras的核心數據結構是模型,它是一種組織網絡層的方式。使用Keras搭建網絡模型的方法有2種:一種是單輸入單輸出,多個神經網絡層線性堆疊,層與層之間只存在相鄰關系的序貫模型(Sequential);另一種是多輸入多輸出,層與層之間可以任意連接,編譯速度較慢,是模型復雜度較高的函數式模型(Model)。序貫模型可以看作是函數式模型的一種特殊情況。在選用序貫模型后,序貫模型的第一層需要接受一個關于輸入數據狀態(tài)的參數,后面各層可以自動推導出數據狀態(tài),因此不需要為每個層都指定這個參數。網絡層的構建只需要使用add函數加入需要的每一層。本研究搭建的模型由輸入層、5個連續(xù)的卷積池化結構、平坦層、3個全連接層和輸出層組成。
模型搭建完成之后需要對模型進行編譯和訓練。通過調用compile方法編譯學習過程,編譯需要接收3個重要參數:優(yōu)化函數、損失函數和性能評估。優(yōu)化函數用來計算和更新影響模型訓練和輸出的網絡參數,使其逼近或達到最優(yōu)值;損失函數用來度量神經網絡輸出的預測值與真實值之間的誤差,通過誤差的反向傳播指導網絡參數學習;性能評估用于監(jiān)控網絡訓練,對于分類問題,一般將性能評估指標設置為accuracy。調用fit函數對模型進行訓練,模型訓練不僅需要輸入數據及標簽,還需要指定batch_size、epochs及validation_split。batch_size是指進行梯度下降時每一批次數據包含的樣本數量,在訓練過程中,1個batch樣本會被計算1次梯度下降,使目標函數優(yōu)化一步;epochs是訓練的輪數,每個epoch是對整個輸入數據的一次迭代;validation_split用來指定訓練集中一定比例的數據作為驗證集,驗證集不參與訓練,在每輪迭代結束后用來測試模型的損失函數、精確度等指標。最后,使用測試數據集評估模型的準確率,當模型準確率達到所需要的水平時,使用該模型進行預測。
1.2.3網絡模型參數輸入圖像均為100×100像素的3通道圖片,網絡共25層,具體網絡結構及其參數如圖3所示。
式中,a為1到正無窮的一個固定參數,本研究取a為0.001。Leaky ReLU函數具有ReLU激活函數的所有優(yōu)點,并且Leaky ReLU函數在x<0時有一個很小的斜率,解決Relu函數進入硬飽和區(qū)導致神經元不學習的問題[19]。為了抑制SGD震蕩,SGDM是在SGD的基礎上引入一階動量,也就是常說的“慣性”,使得下降方向由當前時刻的梯度方向和累積的動量方向共同決定。下降初期,梯度方向與動量方向一致,可以起到加速的作用;下降中后期,在局部最小值震蕩,累積的動量能使權重更新幅度加大,容易跳過局部最優(yōu)值。SGDM的相關參數設置如下:學習速率初始化為0.000 5,動量參數設置為0.96,并且每次更新后的學習率衰減值為學習率與迭代次數的比值。
1.2.4對比試驗在20世紀80年代,MLP(多層感知器,Multilayer Perceptron)是一種受歡迎的機器學習模型,尤其在圖像識別、語音識別等多個領域[20]。20世紀90年代,MLP受到來自更簡單的模型(例如支持向量機)強烈競爭。近年來,隨著深度學習的發(fā)展,MLP又重新受到業(yè)界的重視。將MLP應用于玉米品種識別,輸入層的輸入數據是100×100的數字圖像,以reshape轉換為一維的向量,也就是10 000個浮點數,作為10 000個神經元的輸入;隱含層共有3層,各層包含的神經元數分別為4 096、4 096、1 000;輸出層含有3個神經元,對應預測的3個品種。輸入層和隱含層的激活函數均選用Leaky ReLU函數,輸出層選用Softmax函數,可以實現(xiàn)對預測數據的分類。
2結果與分析
在進行模型訓練之前,隨機選取數據集中85%的數據作為訓練集,剩下的15%的數據作為測試集, 訓練集共有3 060個數據樣本,測試集共有540個數據樣本。取訓練集的20%作為驗證集供模型訓練使用。當模型訓練完成后,使用該模型對測試集進行測試,測試結果如表1所示:
利用MLP和卷積神經網絡模型對相同數量的樣本進行訓練、測試,多層感知器模型的平均識別率僅為74.26%,卷積神經網絡模型是在多層感知器的基礎上加入連續(xù)的卷積、池化結構,將平均識別率提高到95.49%(表1)。兩個網絡對鄭單958的識別率都最低,但在表現(xiàn)較好的卷積神經網絡模型中,識別率達到92.49%。在對卷積神經網絡模型進行訓練時,將訓練過程中的數據保存并上傳至Tensorflow的可視化工具Tensorboard,得到準確率和損失率的變化曲線(圖4、圖5)。
由圖4可知,訓練在前50次迭代時,識別準確率上升較快,經過80次迭代后達到一個穩(wěn)定狀態(tài),識別準確率可以達到100%。由圖5可知,訓練過程中前100次迭代使得誤差以較快的速率下降,隨后的600次迭代是一個平穩(wěn)收斂的過程,當迭代次數為700次時,總誤差趨近于0。因此,本研究設計的卷積神經網絡模型能夠完成對玉米品種的識別工作。將本研究結果與前人的研究結果進行對比(表2),由表2可知,本研究獲得的識別率最高,且解決了傳統(tǒng)算法中需要人工提取特征的缺陷。
3結論
玉米品種識別是機器視覺技術在農業(yè)領域的一個重要研究方向。傳統(tǒng)玉米品種識別方法需要人工提取特征,存在操作復雜、識別率低等缺陷。本研究提出了一種基于卷積神經網絡的玉米品種識別方法,該方法能自動提取圖像特征,克服了人工提取特征的缺陷,試驗結果表明其平均識別率高達95.49%,高于傳統(tǒng)玉米品種識別算法。說明該方法在玉米品種識別上準確可靠,對今后研究種子識別具有重要指導性意義。
參考文獻:
[1]傅兆翔. 中國糧食消費現(xiàn)狀分析及展望[J]. 農業(yè)展望,2017,13(5):91-94.
[2]王玉亮,劉賢喜,蘇慶堂,等. 多對象特征提取和優(yōu)化神經網絡的玉米種子品種識別[J]. 農業(yè)工程學報, 2010,26(6): 199- 204.
[3]張云麗,韓憲忠,王克儉. 基于深度顏色特征的灰度直方圖玉米品種識別研究[J]. 作物雜志, 2015(1):156-159.
[4]程洪,史智興,馮娟,等. 基于玉米胚部特征參數優(yōu)化的玉米品種識別研究[J]. 中國糧油學報, 2014, 29(6): 22-26.
[5]DENG L M , LUAN T , MA W J . Research on maize varieties recognition system based on image processing[J]. Applied Mechanics and Materials, 2013, 397-400:2335-2339.
[6]寧紀鋒. 玉米品種的計算機視覺識別研究[D]. 咸陽:西北農林科技大學,2002:25-40.
[7]陳建,陳曉,李偉,等. 基于近紅外光譜技術和人工神經網絡的玉米品種鑒別方法研究[J]. 光譜學與光譜分析,2008 (8):1806-1809.
[8]楊蜀秦,寧紀鋒,何東健. BP人工神經網絡識別玉米品種的研究[J]. 西北農林科技大學學報(自然科學版), 2004,32(S1):162-164.
[9]程洪,史智興,么煒,等. 基于支持向量機的玉米品種識別[J]. 農業(yè)機械學報, 2009, 40(3):180-183.
[10]BENGIO Y. Learning deep architectures for AI[J]. Foundations and Trends Machine Learning, 2009, 2(1):1-127.
[11]KRIZHEVSKY A, SUTSKEVER I, HINTON G. Image net classification with deep convolutional neural networks[C]//PEREIRA F, BUTGES C J C, BOTTOU L, et al. Advances in neural information processing systems 25. Lake Tahoe, Nevada, USA: Curran Associates Inc, 2012:1097-1105.
[12]SIMONYAN K, ZISSERMAN A. Very deep convolutional networks for large-scale image recognition[J]. Computer Science, 2014, 14(9):1409-1556.
[13]SZEGEDY C, LIU W, JIA Y, et al. Going deeper with convolutions[C]//COHEN N, SHARIR O, SHASHUA A. 2015 IEEE conference on computer vision and pattern recognition (CVPR).Boston: IEEE, 2015:1-9.
[14]HE K, ZHANG X, REN S, et al. Deep residual learning for image recognition[C]//COHEN N, SHARIR O, SHASHUA A. 2016 IEEE conference on computer vision and pattern recognition (CVPR). Las Vegas: IEEE, 2016:770-778.
[15]魏英姿,譚龍?zhí)?,歐陽海飛,等. 玉米籽粒完整性識別的深度學習方法[J]. 沈陽理工大學學報, 2016, 35(4):1-6.
[16]許偉棟,趙忠蓋. 基于卷積神經網絡和支持向量機算法的馬鈴薯表面缺陷檢測[J].江蘇農業(yè)學報,2018,34(6):1378-1385.
[17]龔丁禧,曹長榮. 基于卷積神經網絡的植物葉片分類[J].計算機與現(xiàn)代化,2014(4):12-15.
[18]張善文,謝澤奇,張晴晴. 卷積神經網絡在黃瓜葉部病害識別中的應用[J].江蘇農業(yè)學報,2018,34(1):56-61.
[19]張順,龔怡宏,王進軍. 深度卷積神經網絡的發(fā)展及其在計算機視覺領域的應用[J]. 計算機學報,2019,42(3):453-482.
[20]林大貴. TensorFlowo +Keras 深度學習人工智能實踐應用[M]. 北京: 清華大學出版社, 2018: 67-107.
(責任編輯:張震林)