吳 蓓,肖 黎
(武漢工程科技學院,武漢 430200)
農作物智能圖像識別在農業生產中具有廣泛的應用,不僅可以應用于采摘機器人,實現對目標果實的采摘,而且還可用于水果等級分類以及水果成熟度的識別分類。在實際的農作物識別應用中,作業環境比較復雜,需要對目標對象形成系統的認知,以方便提取有效特征。為此,本文通過卷積神經網絡實現了番茄識別測試,能夠準確地對番茄進行成熟度分類。
1)結構。卷積神經網絡是一個3D容量的神經元,每個神經元都可以用一個三維結構對寬度、高度和深度進行排列。卷積神經網絡是一種前反饋網絡,包含卷積層、池化層和全連接層,如圖1所示。

圖1 卷積神經網絡結構框架圖Fig.1 The structure frame diagram of convolutional neural network
2)卷積層。卷積層是一種運算方法,在卷積神經網絡中發揮著重要的作用,能實現對輸入圖像的特征提取。離散的卷積定義為
(1)

(2)
卷積計算過程示意圖如圖2所示。

圖2 卷積計算過程示意圖Fig.2 The structure frame diagram of convolutional neural network

(3)
池化層包括均值和最大值兩種計算方法。本文采用最大值處理方法,其操作示意圖如圖3所示。

圖3 池化最大值操作示意圖Fig.3 The schematic diagram of pooled maximum operation
4)Relu激活函數。Relu函數是卷積神經網絡最常用的激活函數,主要用于對每個輸入值執行閾值運算,然后將激活函數矩陣的閾值簡單地設置為0,用于實現該函數。對于大于或者等于0的輸入值,采用線性函數進行填充。由于該方法具有線性和不飽和的特點,Relu函數可以較大程度地加快隨機梯度下降的收斂速度。Relu激活函數的計算表達式為
Relu(x)=max(0,x)
(4)
Relu函數的處理如圖4所示。

圖4 Relu激活函數的處理示意圖Fig.4 The processing diagram of Relu activation function
采用卷積神經網絡對圖像進行處理,還需要采用目標檢測算法對圖像進行檢測。目前,有one stage和two stage兩種檢測算法:前者檢測速度快,精度低;后者則檢測速度慢,精度高。在此,采用two stage的Retina-Net算法對目標圖像進行識別。該算法采用ResNet、FPN和FCN融合算法,并采用Focal loss為損失函數。Focal loss主要是解決目標檢測過程中由于正負樣本區域不平衡導致的目標檢測loss被負樣本影響的問題。Retina-Net目標檢測算法的結構如圖5所示。

圖5 Retina-Net目標檢測算法的結構圖Fig.5 The structure diagram of Retina-Net target detection algorithm
實現對農作物的智能識別時,提取合適的農作物圖像特征對識別率影響很大。本文以番茄識別為例,其特征提取過程如圖6所示。

圖6 番茄特征提取流程圖Fig.6 The flow chart of tomato feature extraction
在對圖像預處理過程中,先對用相機采集到的番茄圖像進行歸一化處理為120×120的格式。相機采集到的圖像由于環境因素會有一些噪聲,還需要提前對圖片進行濾波處理,預處理后的圖像便可以進行特征提取。番茄顏色變化是反映其是否成熟的關鍵,顏色直方圖可以反映圖像的顏色特性,但無法直接表示這些顏色在番茄中位置信息,而這個對番茄成熟程度的判斷至關重要。因此,采用了番茄局部直方圖的提取策略,該圖像的環形劃分如圖7所示。

圖7 番茄圖像環形劃分示意圖Fig.7 The schematic diagram of circular division of tomato image
圖7中:首先,在果實上選擇1個以R為半徑的圓心,剛好將番茄完全包圍在圈內;然后,將R等分為N等份,每一份的長度為R/N;在圓心分別以k×R/N(1≤K≤N)為半徑作K個圓,將其環形分為N份,再提取各個環形區域的顏色直方特征圖(x-μ)/σ;從內至外將其首尾相連地組合成向量P=(S1,S2,…,Si,…,SN),作為此番茄圖片的顏色直方圖特征。該方法提取的顏色直方圖能夠非常好地反映番茄顏色的空間特性,經過主成分降維處理后便可以作為分類器的特征輸入。
采用卷積神經網絡對番茄成熟程度進行分判斷分類,其整體模型體系結構如圖8所示。

圖8 番茄成熟度分類模型架構圖Fig.8 The structure diagram of tomato maturity classification model
其中,卷積神經網絡包括4個卷積層、4個池化層、2個全連接層、1個Relu激活函數層和3個卷積核。池化層大小設定為2×1,步長為2×1。為了使搜索過程變得更加簡單,采用批歸一化進行處理,設定的參數為momentum=0.99,ε=0.001。將以上模型按照1個卷積層、1個池化層、1個批歸一化順序組成的結構重復4次。其中,第1次的卷積層步長為2×1,后面是3個的卷積層步長為1×1。結構重復4次后,后面接著兩個連續的全連接層。最后,使用Relu激活函數進行成熟、待成熟和未成熟3種分類。
為了對該卷積神經網絡模型安排合適的參數,批歸一化大小(batch size)設置為16、32、64、128,時期(epoch)為55、65、75、85,然后進行實際的實驗。實驗中,每次選擇1個epoch作為訓練集樣本進行訓練,結果如表1所示。

表1 不同參數下番茄成熟度分類準確率Table 1 The classification accuracy of tomato maturity under different parameters %
由表1可以看出:當批歸一化大小和時期分別為64和75時,番茄成熟度分類準確率最高。因此,選擇的卷積神經網絡的參數如表2所示。優化器選擇Adam用于學習權值,網絡模型的學習率為=0.001,β1= 0.9,β2=0.999。損失函數選擇Focal loss,網絡模型評價標準為是否準確。

表2 卷積神經網絡參數表Table 2 The parameter table of convolutional neural network
選擇了未成熟、待成熟和成熟(見圖9)3種憑借人工經驗標定好的番茄圖像進行實際的試驗,每種成熟度的圖像準備500張。其中,各有300張作為訓練樣本,剩下的600張作為測試樣本去測試算法的有效性和準確性。

圖9 各種成熟度的番茄Fig.9 The tomatoes of various maturity
將準備好的番茄圖片分為8個環形區域,先提取出顏色直方特征圖,再利用主成分方法進行降維處理;經過交叉校驗后,當主成分設置為32維時效果會比較好。
為了驗證基于卷積神經網絡的農作物智能圖像識別分類算法的有效性和準確性,將訓練好的模型算法移植到實際的農機平臺上,對番茄植株上的果實進行實際的識別測試,結果如圖10所示。

圖10 實際測試結果Fig.10 The actual test results
由圖10可知:該識別算法可以精準地對番茄枝上的番茄進行測試,且準確率較高,驗證了系統的有效性和準確性。若將該算法應用到其他的農作物成熟度識別上,重新進行訓練和識別,也可以達到相同的效果。
以農作物為研究對象,采用深度學習和卷積神經網絡對圖像處理進行了深入研究,通過Retina-Net目標檢測算法和建立顏色直方圖特征提取算法,實現了農作物智能圖像識別算法,可以根據番茄圖像的成熟度進行識別和分類。實驗結果表明:該算法可以精準地對番茄枝上的番茄進行測試,且準確率較高,驗證系統的有效性和準確性,能夠滿足實時果實識別的應用需要。