曹婷翠,何小海,董德良,石恒,熊淑華
(1.四川大學電子信息學院,成都 610065;2.中儲糧成都糧食儲藏科學研究所,成都 610091)
我國是世界上小麥產量大國和消費大國,小麥的質檢分級,對糧食儲備、糧食安全、糧食流通具有重要作用。小麥不完善粒的數量是衡量小麥品級的關鍵指標,目前在不完善粒的檢測識別中采用的是人工感官檢測的方法,該方法具有費時費力、可重復性差、主觀性強和不同質檢員檢測結果不一等缺點,已不能滿足大規模麥粒快速準確檢測的需求,實現麥粒的智能化識別成為必然。隨著科技的發展,利用圖像處理技術來實現麥粒快速準確識別的方法受到了普遍關注,現在已有許多研究成果[1-5],這些研究大多采用了特征提取算法,但人為提取的特征需要通過實驗不斷地進行擇優,過程比較繁雜,而且麥粒品種混合、不完善粒間存在交錯現象(如某單顆破碎麥粒在某個部位有病斑)、圖像采集時難以避免的移位和光照不均等因素導致在實際應用中難以找到準確、穩定的特征,這種方法已經不能滿足需求。
近幾年來,深度學習已成為人工智能研究的熱點方向,作為深度學習中的一項關鍵技術,CNN深度模型已成功應用于人臉識別,手寫漢字識別、車型識別等領域,并取得了優秀的成績。在2013年的ICDAR手寫漢識別競賽中[6],英國華威大學的Graham采用深度稀疏卷積神經網絡的方法[7],獲得了聯機手寫漢字識別的第一名,Ijjina等[8]將遺傳算法和深度卷積神經網絡算法應用于人體行為識別,并且取得了很好的效果,Yu等[9]提出了一種級聯的CNN網絡結構用于人臉識別,在FDDB上達到了當時最高的分數。不同于傳統的圖像識別方法,CNN深度模型的方法避免了依賴于先驗知識的特征提取算法,它具備自主特征學習、自我完善等優點。
本文將CNN深度模型引入到小麥不完善粒識別中,解決傳統圖像處理方法人為提取特征的繁瑣及不準確問題,結合CNN深度模型的理論構建常規的CNN網絡模型,再加入金字塔池化層改進了網絡模型,然后通過擴展樣本集訓練的方法以提高模型泛化能力,最后采用雙面識別方案降低實際應用中麥粒的識別錯誤率。最后驗證該方法的準確性,為小麥不完善粒的快速、智能自動化識別以及小麥品級判定提供重要依據。
因為數據庫也是造成麥粒不完善粒識別研究比較困難的原因之一,所以本文首先初步建立一個小麥不完善粒數據庫并不斷地進行完善以便于后面的研究學習。
研究中的小麥樣本(含有白小麥、紅小麥)由中儲糧成都糧食儲藏科學研究所提供,收集了不同批次不同樣本號的小麥樣本,由專業質檢員挑選出完善粒、病斑粒和破碎粒。為了獲取全面的小麥圖像數據,進行小麥圖像雙面采集。將麥粒以無粘連的方式放置在透明的載物板上,進行上下兩面圖像采集,采集的分辨率設置為800dip,背景板為藍色。小麥有可能只有單面呈現特征(如某單顆病斑粒只有上圖有病斑特征),這種情況下就只保留有特征的一面。
采集后的三類小麥原始圖像需經過分割,分割為每張圖像僅有單粒小麥如圖1所示。分割方法為,首先使用輪廓檢測算法檢測出小麥原始圖像的輪廓,然后以輪廓的大小向外擴展30個像素的尺寸進行裁剪,最后得到圖1所示的分割圖像。從圖中可以看到圖像采集時小麥的擺放是隨機的,且光照不均勻,這樣的采集環境更接近實際應用場景。

圖1 小麥分割圖像
用分割后的圖像建立麥粒圖像數據庫,命名為WheatImage。該數據庫包含5729張完善粒圖像、5000張破碎粒圖像和5999張病斑粒圖像。
深度學習中的深度卷積神經網絡(Convolutional Neural Networks,CNN),是一種多層堆疊的神經網絡,如圖2所示,一個卷積神經網絡由若干卷積層、池化層和全連接層組成。

圖2 簡易卷積神經網絡結構圖
圖2為一個包含兩個卷積層兩個池化層和一個全連接層的卷積神經網絡,按照不同的需求可以設計不同的網絡結構。在圖2的每一個卷積層中,將卷積核和上一層的輸出進行卷積,得到局部特征數據,然后通過激活函數進行激活,即可得到該層的特征圖,如式(1)所示。

其中為 f激活函數,本研究選用ReLU函數,l為層數,MjMj表示選擇的輸入特征圖的集合,為卷積核,*表示二維卷積,表示偏置。然后將得到的特征進行池化降維。一般深度卷積網絡有多個卷積層,通過逐層遞增的方式,從底層最基礎的邊緣特征,不斷到高層最復雜的全局特征。最后經過全連接層進行特征融合后再通過Softmax回歸分類器實現物體多分類。CNN還采用局部連接和權值共享技術,大大減少了卷積神經網絡模型的參數數量。CNN還對二維數據的輸入做了特別的設計,這使得卷積網絡對于圖片的移動、旋轉、形變以及縮放等具有較高的魯棒性。
(1)建立網絡結構模型
對于深度學習的研究,目前已有很多的開源框架例如Theano和TensorFlow等,由于Caffe的上手快、模塊化和速度快等優點,且實驗室條件能運行,所以本文采用Caffe作為研究工具。
根據CNN理論和麥粒圖像數據,通過多次實驗,構建了常規CNN網絡模型。空間金字塔池化(Space Pyramid Pooling,SPP)[10]跟普通池化相比,采用了多個不同尺寸的池化窗,它提取了更多不同的特征,這使得加入了SPP的網絡模型具有更強的表征目標對象的能力,因此本文將SPP引入到構建的常規CNN網絡層中得到WheatNet網絡模型。網絡中SPP算法所采用的尺度為(4×4,2×2,1×1),網絡結構如圖3所示。

圖3 WheatNet網絡結構圖
圖3所示的WheatNet網絡,每層卷積層卷積后都使用了ReLU激活函數進行激活,激活后進行最大池化。不同的是第五層卷積層在激活函數激活后,采用的是SPP算法。每一個卷積層都采用了不同的卷積核,和大小不同的滑動窗,第一層采用了96個卷積核,滑動窗大小為11×11,步長為4,第二個卷積層采用了126個卷積核,滑動窗為5×5,步長為1,第三個和第四個卷積層卷積核都為192,滑動窗大小為3×3,步長為1,第五個卷積層卷積核大小為126,滑動窗大小為3×3,步長為1,經過這些卷積層,機器逐層學習到能夠表征目標物體的全局豐富特征。全連接層1和全連接層2都使用了激活函數進行激活,并使用Dropout技術來減小過擬合的風險,而全連接層3采用Softmax回歸作為分類器。
(2)樣本集擴展
將數據庫中每類4000張圖像作為訓練集,每類1000張作為交叉驗證集,得到原圖樣本集。實際應用中,采集圖像時光照條件無法保證絕對均勻,而且難免會引入噪聲,因此,本文采用改變亮度和引入適量噪聲的方法擴展原圖樣本集,以提高模型泛化能力。
RGB圖像亮度的本質為像素點的亮度,每個像素的亮度本質上為RGB值的大小,RGB值為0時,像素點最暗為黑色,RGB值為255時像素點最亮為白色。因此,文本把圖像的每個像素點的RGB各分量的值加上或者減去一定的值,得到改變亮度的圖像。圖像引入的噪聲為均勻分布的噪聲和高斯分布的噪聲。
將原圖樣本集的訓練樣本采用上述的方法擴展到每類8000張圖像,測試集不變,得到擴展樣本集。
(3)雙面識別方案
為了在實際應用中有更好的識別效果,本文設計了小麥不完善粒識別的方案,如圖4所示,主要分為小麥圖像預處理、WheatNet網絡模型訓練和分類識別三部分。

圖4 小麥不完善粒雙面識別方案
如圖4所示,采用該方案識別需要采集小麥上下兩面的圖像,進行分割,再輸入模型進行識別,最后綜合上下分類識別的結果得到小麥最終所屬類別。雙面識別的準則如下:①上下同時為完善識別結果為完善粒;②若得到某一面識別為完善,另一面識別為病斑或破碎,那么識別結果為病斑粒或破碎粒;③若某一面識別為病斑粒另一面識別為破碎粒,那么識別結果為病斑粒。
首先設置網絡訓練的參數,將batch_size設置為90,初始學習率 base_lr設置為 0.0001,stepsize為100000,即每隔10萬次調整一次學習率,動量系數設置為0.9。為了加快訓練模型的收斂速度,訓練時使用GPU加速。
首先采用原圖數據集進行實驗,實現目前小麥不完善粒識別中傳統的圖像處理方法,因為麥粒在顏色、形狀、和紋理三方面存在著差異,所以提取麥粒這三方面的特征。形狀特征有長、寬、面積、周長、矩形度、圓形度[1]、直徑、等面積圓直徑、最小凸多邊形面積、緊密度、橢圓離心率[2]。顏色特征有RGB、HSV、lab三種顏色空間分量的均值和方差。紋理特征有RGB和HSV各分量的平滑度、三階矩、熵和一致性[2]。共提取了53維特征,將提取的特征輸入經典的SVM、ANN和Ada?Boost分類器,訓練得到3個模型。同時將原圖數據集輸入常規的8層CNN網絡和本文的WheatNet網絡中進行訓練,得到常規CNN模型和WheatNet原圖模型。采用原圖測試集驗證模型的精確度,得到表1所示的結果。

表1 不同方法的識別結果
由表1可知常規CNN方法平均識別率比傳統圖像識別方法提高了10%左右,由此可見CNN深度模型應用于麥粒不完善粒的識別,能夠很大地提升識別正確率,而融入了SPP的WheatNet模型的識別率比常規CNN方法提高了5%左右,相對于傳統的方法提高了15%左右。結果表明,對于小麥不完善粒的識別,WheatNet模型具有最佳的識別效果。
特征是影響識別率的重要因素,在傳統圖像處理方法中,特征是靠人為提取設計的,人為難以提取能刻畫麥粒本質的穩定特征,而且特征提取需經過觀察麥粒圖像在顏色形態紋理等這些方面的差異,然后嘗試提取能刻畫這些差異的特征,再驗證特征的有效性優化特征,過程比較繁瑣。然而采用了CNN深度模型的麥粒識別方法,可以自主的進行特征提取和選擇,避免了傳統方法繁瑣的特征設計過程,而且從實驗結果來看,CNN深度模型的方法對麥粒的識別效果優于傳統圖像處理方法,證明了CNN深度模型自主學習的特征比人為提取的特征具有更強的刻畫麥粒本質特征的能力,將CNN深度模型引入到麥粒不完善粒識別中是有效的。在常規CNN的基礎上,本文引入了金字塔池化層,金字塔池化層不同于普通的池化層,它采用了多個不同尺寸的池化窗,提取了多個不同的特征,因此融入了SPP的WheatNet模型具有比常規CNN模型更強的表征特征的能力,它的識別效果最佳。
將擴展數據集輸入WheatNet網絡進行訓練,得到WheatNet擴展數據模型。使用不同質量的6組圖像對該模型和上一步實驗得到的WheatNet原圖模型進行測試,得到表2所示的結果,表中第1組數據為不經過任何處理的圖像數據,第2組和第3組數據為經過不同程度改變亮度處理的圖像數據,第4組為引入高斯分布噪聲的圖像,第5組為引入均勻分布噪聲的圖像,第6組為同時改變亮度和引入高斯分布噪聲的圖像。

表2 兩個不同模型對6組不同質量圖像的識別結果
由表2結果可知,對于改變亮度的圖像,原圖模型識別效果有所下降,而擴展數據模型下降并不大,仍能夠有效地識別。對于引入了噪聲的圖像,原圖模型的識別效果急劇下降,而經過擴展數據訓練后的模型,雖然識別率有所下降,但是識別率仍能夠達到90%,而且對同時改變了亮度和引入噪聲的圖像都能有效地識別,識別效果遠遠優于原圖模型,由此可見本文的數據擴展方法有效地提高了模型的泛化能力。
使用本文識別方案對100粒完善粒、100粒病斑粒和100粒破碎粒進行識別,首先采集小麥圖像(包含上下圖像),經過分割得到上下分割圖像。然后輸入網絡進行識別,得到雙面識別結果,根據雙面識別準則得出最終結果。本文采用的是雙面識別,而一般多采用單面識別,因此本文也實現僅用上圖或者下圖來進行識別的方法,得到表3的結果。

表3 雙面識別和單面識別的識別結果
表3中的結果可知,雖然對完善粒的識別,本文方案沒有絕對的優勢,但對于破碎粒若僅采用上圖識別,那么識別正確粒數為81粒,僅采用下圖識別,識別正確粒數為83粒,而上下綜合判斷識別正確粒數為95粒,這是因為其中部分的小麥破碎面僅在某一面,病斑粒中也有相同的情況。如果僅僅采用上圖識別,那么破碎粒的錯誤率為0.19,病斑粒為0.2,而采用雙面識別的方法,破碎粒的識別錯誤率為0.05,病斑粒為0.06,可以看到雙面識別的方法可以大大降低識別的錯誤率。小麥不完善粒中存在部分小麥破碎面或者病斑面僅存在于某一面,另一面呈現為完善,對于這部分小麥,僅靠某一面識別,往往會錯誤地識別為完善粒,而雙面識別方案能很好的將這一部分小麥正確的識別出來,從而降低識別錯誤率,這種方案更適用于小麥不完善粒的實時檢測識別。
在麥粒的圖像識別研究中,沒有準確的圖像數據庫也是造成研究困難的原因之一,而本文初步建立的小麥完善粒、破碎粒和病斑粒的圖像數據庫WheatIm?age,將有利于麥粒不完善粒的學習和研究。針對目前已有的麥粒不完善粒圖像識別方法需要進行特征提取并且所提特征不能很好的表征麥粒的特性從而導致的識別效果不佳的問題,本文將CNN深度模型的方法引入到麥粒不完善粒識別中,構建了常規的CNN網絡模型并取得了優于傳統圖像處理方法的識別效果,然后在常規CNN的基礎上加入了金字塔池化層得到WheatNet網絡模型,進一步提高了識別率。在研究中,發現通過原圖訓練集訓練得到的網絡對于亮度變化和引入噪聲的圖像不能很好地識別,然而實際應用情景中,是無法保證絕對均勻的光照條件和杜絕噪聲的引入,因此本文通過改變亮度和引入部分噪聲的方式擴展樣本集進行訓練的方法來提高模型泛化能力,實驗證明該方法很好地提高了模型的泛化能力,使得模型對亮度變化和引入噪聲的圖像都能很好的識別。考慮到部分麥粒只有某一面呈現特征的特殊情況,設計了小麥不完善粒雙面識別的方案,有效降低了識別的錯誤率,有利于麥粒的實際場景檢測識別。
[1]陳豐農.基于機器視覺的小麥并肩雜與不完善粒動態實時監測研究[D].杭州:浙江大學,2012:1-121
[2]張玉榮,陳賽賽,周顯青,等.基于圖像處理和神經網絡的小麥不完善粒識別方法研究[J].糧油食品科技,2014,22(3):59-63.
[3]付玲.小麥質量快速測定與評價技術的研究[D].鄭州:河南工業大學,2013:8-51
[4]陳賽賽.小麥質量指標機器視覺技術研究[D].鄭州:河南工業大學,2014:14-50.
[5]Manley M,Toit G D,Geladi P.Tracking Diffusion of Conditioning Water in Single Wheat Kernels of Different Hardnesses by Near Infrared Hyperspectral Imaging[J].Analytica Chimica Acta,2011,686(1-2):64-75.
[6]Yin F,Wang Q F,Zhang X Y,et al.ICDAR 2013 Chinese Handwriting Recognition Competition[C].Document Analysis and Recognition(ICDAR),2013 12th International Conference on.IEEE,2013:1464-1470.
[7]Graham B.Spatially-Sparse Convolutional Neural Networks[J].Computer Science,2014,34(6):864-867.
[8]Ijjina E P,Chalavadi K M.Human Action Recognition Using Genetic Algorithms and Convolutional Neural Networks[J].Pattern Recognition,2016,59(11):199-212.
[9]Yu J H,Sim K B.Face Classification Using Cascade Facial Detection and Convolutional Neural Network[J].2016,26(1):70-75.
[10]He K,Zhang X,Ren S,et al.Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition[J].IEEE Transactions on Pattern Analysis&Machine Intelligence,2015,37(9):1904-1916.
[11]Gatys L A,Ecker A S,Bethge M.Image Style Transfer Using Convolutional Neural Networks[C].Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.2016:2414-2423.
[12]Maggiori E,Tarabalka Y,Charpiat G,et al.Convolutional Neural Networks for Large-Scale Remote-Sensing Image Classification[J].IEEE Transactions on Geoscience and Remote Sensing,2017,55(2):645-657.
[13]鄧柳,汪子杰.基于深度卷積神經網絡的車型識別研究[J].計算機應用研究,2016,33(3):930-932.
[14]Zhu J,Yu J,Wang C,et al.Object Recognition Via Contextual Color Attention[J].Journal of Visual Communication&Image Representation,2015,27(C):44-56.
[15]Russakovsky O,Deng J,Su H,et al.ImageNet Large Scale Visual Recognition Challenge[J].International Journal of Computer Vision,2015,115(3):211-252.
[16]馬彧廷,郭敏.基于極限學習與蜻蜓算法的小麥碰撞聲信號檢測與識別[J].電子設計工程,2016,24(5):8-11.
[17]楊楠.基于Caffe深度學習框架的卷積神經網絡究[D].石家莊:河北師范大學,2016:6-48.
[18]湯一平,韓國棟,魯少輝,等.基于CNN的火炮身管全景圖像疵病識別方法[J].儀器儀表學報,2016,37(4):871-878.