張繼成,李德順
(1. 長江大學工程技術學院,湖北荊州,434020; 2. 海南大學計算機科學與技術學院,海口市,570228)
草莓果實因其香氣、多汁和甜味等特性受到消費者的青睞,中國擁有世界上最豐富的草莓資源[1]。以往成熟草莓由水果專家根據顏色、質地和化學成分等客觀標準進行評估,此方法準確性高,但往往具有破壞性,耗時且需要大量人員。現在智能采摘機器人被引入草莓行業[2],通常由RGB相機或深度相機捕獲成熟草莓圖像,然后中央控制系統根據水果定位算法操作機械手完成草莓采摘。水果識別定位過程在草莓采摘機器人的開發中起著重要作用,成功的識別和定位模型應該避免草莓的誤判,并能夠選擇成熟的水果采摘,因此需要開發一種快速且非破壞性的成熟草莓果實識別方法。
許多研究已經實現了對成熟水果的非破壞性識別。Liu等[3]提出基于邊緣檢測的分水嶺算法從塊中提取蘋果的顏色和紋理特征,實現對塑料袋中蘋果的識別。近年來,深度學習方法廣泛用于水果圖像識別[4-6],AlexNet卷積神經網絡(CNN)架構的提出具有里程碑式的貢獻。Inkyu等[7]使用深層卷積神經網絡檢測7種不同的水果,提出一種基于更快區域的CNN水果檢測方法,有助于水果產量估計和自動采摘。Rahnemoonfar等[8]設計了識別番茄目標的DCNN,可以準確識別由葉子遮蔽和重疊的番茄目標。Yang等[9]基于RGB圖像構建了一個掩模區域卷積神經網絡,用于識別成熟和未成熟的草莓,100張測試圖像的水果識別結果證明了其穩定性。Tian等[10]提出一種用于識別不同生長階段的蘋果改進YOLO-V3算法,可以實現蘋果遮擋和重疊的實時檢測,識別效果良好。閆建偉等[11]提出自然環境中基于殘差網絡的刺梨果實識別方法,識別效果理想。王立揚等[12]提出一種改進型LeNet-5的蘋果自動分級方法,測試集準確率達98.37%,能夠適應工廠智能化分級。張星等[13]提出改進YOLOv3的田間復雜環境下菠蘿拾撿識別方法,算法檢測識別率高達95%左右,檢測速度能夠滿足實時性要求。
本文提出一種基于深度殘差學習的成熟草莓識別方法,以解決一些現有問題,如由于葉子和莖的遮擋,無法獲得草莓的完整圖像。首先,引入深度可分離卷積設計殘差網絡,從不同角度提取成熟草莓特征。其次,壓縮和激勵模塊嵌入學習成熟草莓特征權重,使用特征重新校正改進網絡,并且通過添加空間金字塔池來增強網絡的穩定性。最后,為進一步優化識別結果,采用加權衰減優化方法Adam優化器提高模型的泛化能力。試驗表明提出的方法識別準確率和靈敏度理想。
通過在實地大棚拍攝成熟草莓圖像,同時使用圖片爬蟲工具ImageAssistant爬取成熟草莓的圖像,然后通過人工篩選后的初始數據集共計8 975張圖像,但是這些數據集規模量相對較小。為增加樣本的數量,通過翻轉變換(水平、垂直),隨機旋轉變換(60°、90°、120°),改變對比度(0.6,1.6倍)和亮度(0.6,1.2,1.6倍)等數據增強技術使新的訓練集圖片擴充為原來的8倍,同時對圖片的大小進行歸一化處理。
本文構建一個深度可分離卷積殘差網絡,引入壓縮和激勵模塊從不同視角提取成熟草莓有效特征,通過交叉熵損失函數、添加空間金字塔池、Adam優化器提高網絡模型的穩健性和訓練速度,從而提高成熟草莓圖像識別準確率和靈敏度。其算法流程圖如圖1所示。

圖1 算法流程圖
通常增加卷積網絡層數,能夠獲取更多的成熟草莓特征信息,但簡單累積網絡層數容易造成梯度消失問題,其性能逐漸趨于飽和,從而降低識別率。此外,雖然層的深度可以在某種程度上提高網絡性能,但也會造成網絡訓練難度提高。為解決以上問題,本文在殘差網絡中引入深度可分離卷積[14],讓每個通道使用一個濾波器對輸入草莓圖像進行卷積操作,然后基于點的卷積,使用深度卷積的結果來執行1×1的卷積內核操作,獲取輸出結果。區別于標準卷積,此網絡模型的參數量和計算量大大降低,檢測速率進一步提高。
殘差網絡引入殘差學習,其模塊結構如圖2所示,假設H(x)是由幾個堆疊層構建的基映射,映射F(x)=H(x)-x,最優映射可以表示為H(x)=F(x)+x。

圖2 殘差網絡示意圖
殘差單元可以定義為
xl+1=f[xl+F(xl,Wl)]
(1)
式中:xl——第l個殘差單元的輸入;
xl+1——第l個殘差單元的輸出;
F(xl,{Wl})——待學習的殘差映射;
W——卷積核;
f——激活函數,采用ReLU函數,公式如式(2)所示。
ReLU(x)=max(0,x)
(2)
可以看到殘差網絡區別于普通直連的卷積神經網絡,傳統的卷積神經網絡在傳遞信息時,可能會存在信息不完整、耗時等問題。殘差網絡通過直接學習殘差,使學習成熟草莓目標更清晰同時降低了學習難度,保護草莓信息的完整性,提高了網絡的學習能力。
一般卷積層的輸出只針對各個通道做卷積,不會考慮各通道的依賴性。本文讓網絡增強成熟草莓信息量大的特征便于后面的層使用,因此引入壓縮和激勵模塊(Squeeze and Excitation blocks,SE)來篩選成熟草莓圖像中有用的特征。SE就是給不同通道賦不同的權重,其模塊如圖3所示。

圖3 壓縮和激勵模塊
具體操作是對U做壓縮得到一維向量,長度為C,然后做激勵學習參數W來建立通道相關性,得到的結果作為U中C個通道的權重做處理。其目的是增強成熟草莓重要特征,抑制其次要特征。
壓縮和激勵模塊是一個計算單元,可以在Ftr的轉換上建立從輸入X∈RH′×W′×C′到特征映射U∈RH×W×C。把Ftr作為一個卷積算子,用V=[v1,v2,…,vc]表示濾波核的學習集,其中vc是第C個濾波器的參數,可以將輸出寫成U=[u1,u2,…,uc],公式如式(3)所示。
(3)
2.2.1 壓縮:全局信息嵌入
為解決卷積核只在局部空間內操作,U不易獲取大量信息來提取通道之間的關系。順著空間維度來進行特征壓縮,將全局空間信息壓縮到通道描述符中,運用全局平均池生成通道統計信息。統計z∈RC的第c個元素如式(4)所示。
(4)
2.2.2 激勵:自適應重新校正
激勵操作需要完全獲取通道相關性來利用壓縮操作中聚集的信息,通常選擇一個簡單的門控機制和Sigmoid激活函數,激勵操作公式如式(5)所示。
s=Fex(z,W)=σ[W2δ(W1z)]
(5)
式中:δ——ReLU函數;
σ——Sigmoid函數。

(6)

通過把SE塊進行簡單的堆疊,可以構建SE網絡。但把SE塊放到網絡體系結構中的不同位置來替換原始塊,對特征信息的表示效果不同。由SE模塊執行的特征重新校正的好處可以通過網絡累積,本質上有助于多視角增強成熟草莓的特征辨別力,使網絡更有效。
新CNN體系結構的設計和開發較為復雜,通常需要選擇大量新的超參數和層配置。本文把現有的卷積網絡架構中的組件替換為SE對等組件,從而使成熟草莓圖像識別性能提高明顯。SE塊是輕量級的計算,模型的復雜性和計算負擔增加不明顯。
本文提出一種用于成熟草莓識別的識別網絡。網絡中包含二維卷積層2個,深度可分離卷積層15個,5個快捷連接模塊,每個快捷連接模塊由3個深度可分離的卷積層組成,每個快捷連接模塊后面都嵌入一個SE模塊,動態重新校正成熟草莓的有用特征,因此增強網絡的泛化功能。在最后一個卷積層之后,引入空間金字塔池層以消除對網絡固定大小的限制。提供完整的連接層,可以避免在一開始就裁剪網絡。不僅可以輸入任何大小的信息,同時提高準確性并減少整體訓練時間。完全連接層的最后一層使用Softmax作為激活功能,可以用來處理多分類任務。假設有s個類別的多分類問題,訓練樣本的數量為n,樣本的輸入為w維向量,訓練集表示如式(7)所示。
T={(x(1),y(1)),(x(2),y(2)),…,(x(n),y(n))}
(7)
其中y(i)∈{1,2,…,s}是樣本的標簽,x(i)∈R(w+1)是輸入特征向量。任務目標誤差Softmax代價函數如式(8)所示。
(8)
其中θ1,θ2,…,θw為模型參數,1{·}是邏輯函數,Softmax回歸中x樣本中類別為j的概率如式(9)所示。

(9)
目前沒有最優算法來最小化J(θ),試驗中為防止過擬合問題,對損失函數添加權重衰減項D,定義如下。
(10)
式中λ為權重衰減參數,試驗設置λ=10-5,添加權重衰減項D的損失函數稱為交叉熵損失函數,如式(11)所示。
(11)
仿真結果表明,在訓練過程中交叉熵損失函數自動調整困難分類樣本,能夠解決成熟草莓訓練數據的不平衡,而且可以提高最終的分類精度。
為提高深度卷積網絡的訓練效果,減少網絡訓練時間,針對傳統的隨機梯度下降更新權重過程中,學習率固定不變,試驗采用自適應梯度下降加權衰減(Adam)優化器來提高網絡的泛化性能。Adam采取對梯度的一階矩和二階矩進行估計來動態地適應每個權重的學習速率,其一階矩估計mt和二階矩估計vt定義如下。
mt=β1mt-1+(1-β1)gt
(12)
vt=β2vt-1+(1-β2)gt2
(13)
式中:gt——梯度;
β1,β2——一階矩及二階矩估計指數衰減率,試驗取值分別為0.9和0.999;
t——迭代次數。
由于Adam優化器存儲了一個歷史梯度進行更新,學習速率的動態調整使草莓圖像訓練更易收斂,更能訓練出適合成熟草莓圖像識別的改進殘差網絡模型。
試驗平臺機器配置處理器Intel i7-8700,顯卡NVIDIA GeForce GTX 1070Ti,Ubuntu 16.04操作系統,TensorFlow深度學習框架。
本文設計的網絡由5個卷積層、6個池化層和3個完全連接層組成,將第二卷積層、第四卷積層和第五卷積層選擇的特征映射分別合并,通過完全連接層進行特征融合,由Softmax對單元特征進行分類和識別。卷積層學習率設置為0.001,全連接層學習率設置為0.01,全連接層丟棄率設置為0.5,迭代次數設置為200。
本文使用準確率(Accuracy)、靈敏度(P)、召回率(Recall)、精度均值(mAP)作為評估標準。其計算公式如式(14)~式(17)所示。
(14)
(15)
(16)

(17)
式中:TP——正確劃分為正例的個數;
FP——錯誤劃分為正例的個數;
TN——正確劃分為負例的個數;
FN——錯誤劃分為負例的個數。
靈敏度表示識別為正例的樣本中,實際上屬于正例的樣本所占的比例。召回率表示所有正例中被劃分正確的比例,其衡量分類器對正例的識別能力。
分類結果混淆矩陣如表1所示。

表1 分類結果混淆矩陣
試驗設置草莓圖像數據集中訓練集和測試集的占比為4∶1,把測試數據集分為五類,其特征如表2所示。

表2 不同測試子集的特征
為驗證所提出的成熟草莓識別檢測算法的有效性,和當前最佳算法DenseNet網絡[15]、SSD網絡[16]、ResNet[17]網絡進行比較。表3和表4分別顯示了在訓練集和測試集下的精度均值(mAP)、召回率和單張圖片檢測耗時的比較。
從表3和表4可以看出,本文算法不論是在訓練集還是在測試集上,在單張圖片檢測耗時較短的情況下,精度均值和召回率都提高不少,優于DenseNet網絡、SSD網絡、ResNet網絡。其中訓練集單張圖片檢測耗時和測試集單張圖片檢測耗時分別為0.003 2 s和0.003 8 s,訓練集mAP和測試集mAP分別為89.78%和83.17%,對比ResNet網絡,訓練集mAP和測試集mAP分別提高3.85%和3.6%。

表3 不同方法下精度均值和召回率的比較

表4 不同方法下單張圖片檢測耗時的比較
表5顯示了不同數據集下識別準確率的比較。可以看出,在深度學習算法中,本文提出的算法優于DenseNet網絡、SSD網絡、ResNet網絡。由于構建的殘差網絡將深度可分離卷積網絡與本地殘差網絡結構相結合,引入壓縮和激勵模塊有效地提取成熟草莓圖像中的深層特征,然后使用深度網絡分類器進行識別。根據試驗結果,改進的殘差模型可以更好地完成成熟草莓區域的檢測和識別,從而達到了較高的識別準確率,在數據集C中的識別準確率最高,達到了92.46%。由于測試數據集A、B、D中干擾較弱,因此也獲得了較高的識別準確率。
整個測試數據中數據集E最為復雜,圖像中干擾目標較多,特別是紅花或紅葉,影響網絡的檢測效果。從表5試驗結果可以得出,本文算法對數據E上圖像的識別準確率最低,達到了62.38%,但也優于其他深度網絡。

表5 不同數據集下識別準確率的比較
表6顯示了不同算法在不同數據集下識別靈敏度的比較。可以看出,本文提出的算法優于其他深度網絡,在數據集C中識別靈敏度最高,達到94.28%。對成熟草莓圖像,特別是簡單背景圖像具有更高的識別靈敏度和更強的魯棒性。

表6 不同數據集下識別靈敏度的比較
試驗對測試集中的草莓圖像進行仿真和測試。圖4所示為數據集D下不同算法對成熟草莓的識別結果。

(a) SSD
根據圖4中部分成熟草莓被葉子和莖遮擋,存在背景干擾,幾乎所有的對比算法都嚴重地漏檢。尤其是SSD在檢測小物體目標時效果欠佳,表現較為敏感,存在較多小目標漏檢。在使用DenseNet網絡進行成熟草莓識別時,該算法發現的目標盡可能多,但無法較好地識別出一些粘著目標。主要原因是算法只是單視角學習成熟草莓圖像特征,不能從多個角度的特征信息中學習。盡管ResNet引入殘差單元,讓網絡隨深度增加而不退化,同時獲得較好的識別性能,能夠識別到紅色草莓,但幾乎所有紅色區域都被它識別,同時存在較多的錯誤檢測。
本文算法在殘差網絡中引入深度可分離卷積,通過嵌入SE模塊,能夠有效地提取成熟草莓圖像中的深層特征,可以成功地將紅色反射光與水漬上的紅色草莓分離開來,甚至可以準確地識別出被葉子和莖遮擋部分的成熟草莓。試驗結果表明,本文使用深度殘差網絡來識別成熟草莓圖像,識別準確率更高、優點更明顯,草莓檢測網絡能夠有效地檢測各種場景下的草莓,具有一定的抗干擾能力,提高了檢測速度。
1) 在草莓圖像數據集制作過程中運用了翻轉變換、隨機旋轉變換、改變對比度和亮度等數據增強技術,對數據集進行擴充,構建一個草莓圖像數據集。
2) 針對自然狀態下存在的成熟草莓灰度變化和背景干擾、信息丟失等問題,結合深度模型,構建具有殘差特征的成熟草莓檢測模型,提出一種基于深度殘差學習的草莓識別方法。
3) 引入深度可分離卷積降低網絡參數,設計基于殘差網絡的卷積網絡,從不同角度提取成熟草莓特征。嵌入壓縮和激勵模塊來學習特征權重,并通過添加空間金字塔池、交叉熵損失函數增強網絡的魯棒性。為進一步優化識別結果,采用Adam優化器加速網絡模型的收斂,提高模型的泛化能力。試驗結果表明,本文提出的草莓識別方法能夠有效地定位識別復雜背景下不同大小的成熟草莓,不易受到干擾環境的影響。和當前最佳算法DenseNet網絡、SSD網絡、ResNet網絡相比,該方法具有更高的識別準確率和靈敏度,其中在數據集C中的識別準確率和靈敏度最高,分別達到了92.46%和94.28%。減少了網絡計算時間,為農業的智能化發展提供理論基礎。