李海濤,羅維平
基于深度學習的棉花品種識別
李海濤,羅維平*
(武漢紡織大學 機械工程與自動化學院,湖北 武漢 430200)
棉花作為我國最主要的農產品之一,不僅具有不錯的觀賞價值,更重要的還是工業原料。棉花的花型不同于其他花卉種類,且不同種類其纖維長度還有所差異。為了解決棉花人工區分效率低的問題,本文基于深度學習方法,以棉花原始的圖像數據作為研究對象,通過多層網絡學習棉花的特征信息,更加精確區分不同類型的棉花種類。試驗結果表明:本文所提出的卷積神經網絡CNN-CSC模型相較于傳統機器學習方法識別精度提升大約15%,平均精度達到89.17%,為棉花的自動化管理提供了一種有效的手段。
深度學習;卷積神經網絡;圖像識別;棉花識別
棉花作為我國最主要的農產品之一,其花型美觀,結實結絮,具有不錯的觀賞價值。對棉花種類通過人工進行區分,不僅效率低且識別困難。因此通過計算機技術輔助識別,成為一種有效的處理方法。目前圖像識別技術及其相關理論發展迅速,圖像識別技術已成為國際人工智能領域研究最熱點的方向之一[1]。在國內外植物信息學領域中,基于圖像識別技術對植物進行識別與分類成為研究的熱門。
由于機器學習等關鍵技術的不斷發展,近年來我國學者和研究機構在植物信息識別中也取得重大突破。張帥等[2]分別對單一背景和復雜背景下的植物葉片圖像進行訓練和識別,采用CNN+SVM和CNN+Softmax方法,得到單一背景下圖像識別率為91.11%,復雜背景下圖像識別率為34.38%。袁培森[3]等提出了一種基于卷積神經網絡的端到端菊花花型和品種識別系統,該系統分為離線和在線兩種階段,識別率達到98%。胡錦濤等[4]提出了一種自動預測棉花發育期的深度學習模型,通過卷積神經網絡結合遷移學習提高了棉花發育期識別精度。王見等[5]通過將遷移模型的特征提取與極限學習機結合的方法訓練網絡,進行棉花識別研究。在ResNet-50遷移模型準確率達到93.68%,但在訓練過程中出現了過擬合。沈萍等[6],通過基于深度學習的方法在ImageNet數據集上完成了花卉識別試驗,與傳統神經網絡相比評價識別準確率提升了10%左右。
當下,隨著人工智能領域的興起以及計算機計算能力的提升,深度學習 (deep learning)技術在模式識別、自然語言處理以及圖像處理等方向煥發了強大的活力[7]。深度學習具有強大的特征提取能力,深度學習框架能夠在有限的樣本數據輸入的情況下,獲得更高層次的輸入數據信息。目前,深度學習仍然是未來研究的熱點之一,通過不斷的研究該技術將得到更深層次的發展[8]。
本文以棉花的圖像數據作為研究對象,對棉花的不同類型手動分類和標注,在此基礎上構建棉花數據集的卷積神經網絡模型,該卷積神經網絡對棉花花型實現智能識別和分類。
卷積神經網絡(Convolutional Neural Network, CNN),作為第一個真正成功地采用多層次結構網絡的深度學習方法,具有對平移、比例縮放、傾斜或其他形式的變形不變性等特點[9]。卷積神經網絡整體架構分為4層:第1層是輸入層,第2層為卷積層,第3層為池化層,第4層為全連接層。CNN通過對現有模型訓練卷積網絡,從而得出輸入與輸出之間的非線性關系。
(1)輸入層:將要進行識別的樣本對象作為輸入數據傳入卷積神經網絡中,若為圖像輸入時采樣其像素值,進而轉換成向量輸入。
(2)卷積層:對輸入數據進行特征提取,為得到計算機更容易讀懂的特征。卷積核(filter)是卷積神經網絡中的重要權重參數,當卷積核采用較小的長和寬時,就能提取數量更多的特征。其具體過程如公式(1)所示:



本文模型采用ReLU函數作為激活函數其表達式為公式(2),通過激活函數使得網絡具有非線性。與sigmoid等激活函數相比,ReLU函數計算量少,反向傳播時梯度不易消失,且Relu函數使得一部分神經元輸出為0,增加了網絡的稀疏性,能有效緩解模型過擬合發生。

(3)池化層:池化層一般為下采樣,對通過上一層卷積操作輸入的特征圖進行壓縮,有效減少網絡中數據的計算量,利用最有價值的特征[10]。使得整個網絡有較好的魯棒性。本文采用最經典的池化方法最大池化,其以2x2窗口,步長為2的函數表示為公式(3)。

(4)全連接層:全連接層一般堆疊在卷積層之后,通過一組權重參數將卷積層的輸出與隱藏層聯系到一起,全連接層本質上是一個多層感知器[11],通過級聯多個變換來實現輸入到輸出的映射。
CNN-CSC模型識別棉花種類的流程如下:第一步加載棉花圖像數據,第二步對棉花圖像進行預處理得到227*227像素圖片,第三步將經過預處理后的圖像的RGB三通道像素值轉換為tensor形式,第四步將tensor數據傳入CNN-CSC模型進行訓練,最后根據模型的分類結果完成不同棉花種類的識別。
仿真平臺為64為Window10操作系統,硬件環境為內存16G,AMD Ryzen 5 5600x 6-Core Processor,GPU NVIDIA GeForce RTX 3070。選用深度學習架構為tensorflow V2.0框架[12]。
為解決訓練數據集數量不足的情況,在圖像預處理階段采用:亮度隨機變換,隨機翻轉,對比度隨機變換,隨機剪裁等隨機變換方法來增加訓練數據集的大小。預處理后圖像大小為227*227像素。
本文構建的棉花種類識別網絡模型CNN-CSC如圖1所示。該模型包含1個輸入層,卷積層1后接池化層1,卷積層2后接池化層2,卷積層3、4、5后接池化層3,最后接到全連接層和Softmax分類層。每一層網絡的具體參數規格如表1所示,其中輸入層輸入經過預處理后的棉花圖像數據,像素大小為227*227*3;卷積層作用就是通過卷積操作對輸入圖像進行特征提取。卷積層1共有64個卷積核,卷積核的大小設定為5*5,卷積核切片步長設定為1。
經過卷積層1后,輸出64維數據像素大小為223*223*64;池化層的作用就是一個降采樣的過程,池化層1的卷積核的大小設定為3*3,卷積核切片步長設定為2。經過池化層1后,輸出64維數據像素大小為111*111*64;將池化層1中的數據輸入到卷積層2,卷積層2包含128個卷積核,核的大小設定為3*3,卷積核切片步長設定為1,使用零填充p=1。經過卷積層2后,輸出128維數據像素大小為111*111*128;池化層2的卷積核的大小設定為3*3,卷積核切片步長設定為2。經過池化層2后,輸出數據像素大小為55*55*128。卷積層3、4、5均采用256個3*3卷積核,卷積核切片步長設定為1,使用零填充p=1。池化層3的卷積核的大小設定為3*3,卷積核切片步長設定為2。經

圖1 棉花種類識別的卷積神經網絡CNN-CSC模型
過池化層3后,輸出數據像素大小為27*27*256。使用以此作為全連接層1的輸入;全連接層采用Re LU激活函數,其中全連接層1包括512個神經元,全連接層2包括3個神經元。
分類層的設計,根據識別任務的具體要求確定softmax分類層中神經元數量,如公式(4)所示。

本文CNN-CSC模型訓練集中樣本的種類為3種,所以將分類層神經元個數設定為3個。全連接層2的輸出數據作為softmax分類層的輸入,經過softmax分類層后輸出花型種類的概率,最終完成花型種類識別。CNN-CSC模型結構參數如表1所示。

表1 CNN-CSC模型結構參數
由于深度學習需要大量的高質量標記數據,而在本研究棉花數據集圖像數量不足的情況下,采用遷移學習預訓練的ImageNet對模型進行初始化。ImageNet項目是目前計算機視覺系統識別中最大的數據庫,其中包括大約1500萬張圖像被人工篩選與手動注釋包含2.2萬多個類別。作為一個大型公開數據集,其對于初學者深度學習提供了重要的數據支撐。首先在ImageNet數據集上預訓練CNN-CSC模型,屏蔽掉模型的輸出層,訓練網絡剩余的模型參數,最后應用到本文的棉花數據集上[13]。棉花圖像數據集較小,且數據相似度不高,重新訓練的過程就變得非常關鍵。在第一次迭代訓練中,先固定1-4層的權重,重新訓練第5層;在第二次迭代訓練中,固定1-3層的權重,重新訓練4-5層;最后一次迭代訓練中,固定1-2層權重,重新訓練3-5層。通過以上迭代訓練,能夠在小樣本數據集上加速網絡的收斂過程,并作用于最后棉花種類識別精度的測試。
訓練過程步驟如下:
(1)首先系統采用kaiming正態分布初始化權重,前向傳播的時候,每一層的卷積計算結果的方差為1。反向傳播的時候,每一層的繼續往前傳的梯度方差為1(因為每層會有兩個梯度的計算,一個用來更新當前層的權重,一個繼續傳播, 用于前面層的梯度的計算。)
(2)每次從訓練數據采樣一個batch的樣本,對樣本進行預處理后作為網絡訓練的輸入。
(3)在前向傳播過程中,輸入的訓練樣本數據經過多層卷積層的卷積和池化處理,提取特征向量,將特征向量傳入全連接層中,得出輸出值。
(4)求出目標值與實際輸出值之間的偏量e。當達到設定的迭代次數時,訓練完成,否則繼續進行訓練。
(5)在反向傳播過程中,將誤差一層層返回,計算網絡層中神經元的誤差和誤差梯度。
(6)進行權值更新,然后再進入第二步,循環訓練。

圖2 CNN-CSC的訓練流程圖
本文數據集共6720張棉花圖像,共分為3種類型:粗絨棉、細絨棉、長絨棉。整個數據集中6000張棉花圖像構建訓練集,360張構建驗證集,另外360張構建測試集。所有棉花圖像數據都根據其不同類型進行人工標注和分類,其中三種類型的棉花的訓練集、驗證集和測試集的圖片數量分別為2000張、120張、120張。

圖3 預處理后棉花圖像

圖4 特征響應圖
系統中dropout參數設置為0.25,卷積層初始學習率設置為0.01當系統損失在當前學習率不再下降時將學習率手動縮小10倍,迭代次數設置為30 000次,當使用驗證集驗證系統時每12張圖片比較系統精度并保存模型中的所有參數。
為了更好地評價該系統在棉花種類識別方面的精度和性能,選擇典型機器學習方法支持向量機(SVM)與本文卷積神經網絡進行比較。SVM方法需要手動提取具體圖片的特征,再將提取到的形狀、紋理等特征構成分類器的輸入,最后輸入到SVM中完成棉花種類的識別。
測試集在兩種模型中的識別結果如表2所示,在本系統中棉花種類識別的準確度達到88.24%,識別精度為89.47%,召回率和F1值分別87.71%和87.97%。相較于SVM方法,系統整體的性能和穩定性均明顯提高,其中識別精度大約提升15%。試驗結果說明本文建立的卷積神經網絡模型在棉花的識別上具有更高的識別精度,能更好完成棉花種類的識別。
本文所使用的方法在識別棉花種類識別上有以下優越性:(1)相較于人工特征提取,基于深度學習的棉花種類識別方法能夠自動學習特征提取的過程,能有效提高模型整體準確度;(2)基于深度學習的方法更容易觀察并獲取棉花圖片中更加細粒度的差別,用于區分不同的花型;(3)基于深度學習的方法在模型訓練好后,可以對不同場景條件下(光照、拍攝角度、遮擋等)獲取的樣本都能有效的進行識別。

表2 基于卷積神經網絡CNN-CSC與支持向量機SVM方法識別準確度對比
本文基于卷積神經網絡構建了一個8層的深度學習棉花種類識別系統CNN-CSC,實現了三種棉花花型的識別。首先采集并標注棉花花型和類別數據集,然后探討棉花圖像預處理的思路和預處理的必要性。在ImageNet數據集上預訓練卷積神經網絡CNN-CSC模型,通過三次迭代訓練有針對性的學習棉花圖像的特點,能夠在樣本數據不足的情況下,提高網絡的收斂速度,并作用于最后棉花種類識別精度的測試。并且通過試驗與SVM方法進行對比,證明了在棉花種類的識別方面基于深度學習的方法優于傳統的機器學習分類方法, 證明了深度學習方法在棉花種類識別中具有更好的分類性能。
本文所構建的8層深度學習棉花種類識別系統依然存在不足之處,在數據集收集方面本文共有三類棉花種類圖片共6720張,樣本數據并不充足無法滿足更加深層的模型需求。后期進一步收集不同場景的棉花圖像擴充數據集,能夠有利于提高模型識別性能。同時,研究使用更復雜、更深層的網絡模型進行圖像識別會使識別精度得到進一步提高,這也是未來基于深度學習方法在植物識別領域的研究方向之一。
[1] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[A]// Proceedings of the IEEE conference on computer vision and pattern recognition[C]. 2016. 770-778.
[2] 張帥, 淮永建. 基于分層卷積深度學習系統的植物葉片識別研究[J]. 北京林業大學學報, 2016, 38(09): 108-115.
[3] 袁培森, 黎薇, 任守綱, 等. 基于卷積神經網絡的菊花花型和品種識別[J]. 農業工程學報, 2018, 34(05): 152-158.
[4] 胡錦濤, 王苗苗, 李濤, 等. 基于深度學習的棉花發育期自動觀測[J]. 安徽農業科學, 2019, 47(11): 237-240 +243.
[5] 王見, 田光寶, 周勤. 基于遷移學習的棉花識別[J]. 浙江農業學報, 2020, 32(08): 1457-1465.
[6] 沈萍, 趙備. 基于深度學習模型的花卉種類識別[J]. 科技通報, 2017, 33(03):115-119.
[7] 孫志遠,魯成祥,史忠植,等. 深度學習研究與進展[J]. 計算機科學,2016,43(2):1-8.
[8] KIM J, LEE J K, LEE K M. Deeply-recursive convolutional network for image super-resolution[A].Proceedings of the IEEE conference on computer vision and pattern recognition[C]. Las Vegas, NV, SUA: IEEE, 2016. 1637- 1645.
[9] Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[J]. Advances in neural information processing systems, 2012, 25 (2) :1097-1105.
[10] Xie G S, Zhang X Y, Yang W. LG-CNN:From local parts to global discrimination for fine-grained recognition[J]. Pattern Recognition, 2017, 71:118-131
[11] Cheng X, Zhang Y, Chen Y. Pest identification via deep residual learning in complexbackground[J]. Computers & amp; Electronics in Agriculture, 2017, 141:351-356
[12] Abirami K Rama, ManojKumar M, Insaf Mohammed, et al. Deep learning based Food Recognition using Tensorflow[J]. Journal of Physics: Conference Series, 2021, 1916(1).
[13] 張建華, 孔繁濤, 吳建寨, 等. 基于改進VGG卷積神經網絡的棉花病害識別模型[J]. 中國農業大學學報, 2018, 23(11):161-171.
Cotton Variety Identification based on Deep Learing
LI Hai-tao, LUO Wei-ping
(School of Mechanical Engineering and Automation, Wuhan Textile University, Wuhan Hubei 430200, China)
Cotton, as one of the most major agricultural products in our country, not only has a good ornamental value, but also is more important and an industrial raw material. The flower type of cotton is different from those of other floral species, and the fiber lengths of the different species also differ. To solve the problem of low efficiency of artificial discrimination of cotton, in this paper, based on deep learning method, the original image data of cotton is used as a research object to learn the characteristic information of cotton through multi-layer network and distinguish different types of cotton species more precisely. Test results: the cnn-csc model of the convolutional neural network proposed in this paper improves the identification accuracy by approximately 15% and the average accuracy reaches 89.17% compared to traditional machine learning methods, which provides an effective means for automated management of cotton.
deep learning; convolution neural network; image recognition; cotton recognition
TP391
A
2095-414X(2022)04-0022-05
通訊作者:羅維平(1967-),女,教授,研究方向:檢測技術與智能控制、信號與信息處理,先進技術工業制造等.