張繼成,李德順
(1. 長江大學(xué)工程技術(shù)學(xué)院,湖北荊州,434020; 2. 海南大學(xué)計算機科學(xué)與技術(shù)學(xué)院,海口市,570228)
草莓果實因其香氣、多汁和甜味等特性受到消費者的青睞,中國擁有世界上最豐富的草莓資源[1]。以往成熟草莓由水果專家根據(jù)顏色、質(zhì)地和化學(xué)成分等客觀標(biāo)準(zhǔn)進(jìn)行評估,此方法準(zhǔn)確性高,但往往具有破壞性,耗時且需要大量人員?,F(xiàn)在智能采摘機器人被引入草莓行業(yè)[2],通常由RGB相機或深度相機捕獲成熟草莓圖像,然后中央控制系統(tǒng)根據(jù)水果定位算法操作機械手完成草莓采摘。水果識別定位過程在草莓采摘機器人的開發(fā)中起著重要作用,成功的識別和定位模型應(yīng)該避免草莓的誤判,并能夠選擇成熟的水果采摘,因此需要開發(fā)一種快速且非破壞性的成熟草莓果實識別方法。
許多研究已經(jīng)實現(xiàn)了對成熟水果的非破壞性識別。Liu等[3]提出基于邊緣檢測的分水嶺算法從塊中提取蘋果的顏色和紋理特征,實現(xiàn)對塑料袋中蘋果的識別。近年來,深度學(xué)習(xí)方法廣泛用于水果圖像識別[4-6],AlexNet卷積神經(jīng)網(wǎng)絡(luò)(CNN)架構(gòu)的提出具有里程碑式的貢獻(xiàn)。Inkyu等[7]使用深層卷積神經(jīng)網(wǎng)絡(luò)檢測7種不同的水果,提出一種基于更快區(qū)域的CNN水果檢測方法,有助于水果產(chǎn)量估計和自動采摘。Rahnemoonfar等[8]設(shè)計了識別番茄目標(biāo)的DCNN,可以準(zhǔn)確識別由葉子遮蔽和重疊的番茄目標(biāo)。Yang等[9]基于RGB圖像構(gòu)建了一個掩模區(qū)域卷積神經(jīng)網(wǎng)絡(luò),用于識別成熟和未成熟的草莓,100張測試圖像的水果識別結(jié)果證明了其穩(wěn)定性。Tian等[10]提出一種用于識別不同生長階段的蘋果改進(jìn)YOLO-V3算法,可以實現(xiàn)蘋果遮擋和重疊的實時檢測,識別效果良好。閆建偉等[11]提出自然環(huán)境中基于殘差網(wǎng)絡(luò)的刺梨果實識別方法,識別效果理想。王立揚等[12]提出一種改進(jìn)型LeNet-5的蘋果自動分級方法,測試集準(zhǔn)確率達(dá)98.37%,能夠適應(yīng)工廠智能化分級。張星等[13]提出改進(jìn)YOLOv3的田間復(fù)雜環(huán)境下菠蘿拾撿識別方法,算法檢測識別率高達(dá)95%左右,檢測速度能夠滿足實時性要求。
本文提出一種基于深度殘差學(xué)習(xí)的成熟草莓識別方法,以解決一些現(xiàn)有問題,如由于葉子和莖的遮擋,無法獲得草莓的完整圖像。首先,引入深度可分離卷積設(shè)計殘差網(wǎng)絡(luò),從不同角度提取成熟草莓特征。其次,壓縮和激勵模塊嵌入學(xué)習(xí)成熟草莓特征權(quán)重,使用特征重新校正改進(jìn)網(wǎng)絡(luò),并且通過添加空間金字塔池來增強網(wǎng)絡(luò)的穩(wěn)定性。最后,為進(jìn)一步優(yōu)化識別結(jié)果,采用加權(quán)衰減優(yōu)化方法Adam優(yōu)化器提高模型的泛化能力。試驗表明提出的方法識別準(zhǔn)確率和靈敏度理想。
通過在實地大棚拍攝成熟草莓圖像,同時使用圖片爬蟲工具ImageAssistant爬取成熟草莓的圖像,然后通過人工篩選后的初始數(shù)據(jù)集共計8 975張圖像,但是這些數(shù)據(jù)集規(guī)模量相對較小。為增加樣本的數(shù)量,通過翻轉(zhuǎn)變換(水平、垂直),隨機旋轉(zhuǎn)變換(60°、90°、120°),改變對比度(0.6,1.6倍)和亮度(0.6,1.2,1.6倍)等數(shù)據(jù)增強技術(shù)使新的訓(xùn)練集圖片擴(kuò)充為原來的8倍,同時對圖片的大小進(jìn)行歸一化處理。
本文構(gòu)建一個深度可分離卷積殘差網(wǎng)絡(luò),引入壓縮和激勵模塊從不同視角提取成熟草莓有效特征,通過交叉熵?fù)p失函數(shù)、添加空間金字塔池、Adam優(yōu)化器提高網(wǎng)絡(luò)模型的穩(wěn)健性和訓(xùn)練速度,從而提高成熟草莓圖像識別準(zhǔn)確率和靈敏度。其算法流程圖如圖1所示。
圖1 算法流程圖
通常增加卷積網(wǎng)絡(luò)層數(shù),能夠獲取更多的成熟草莓特征信息,但簡單累積網(wǎng)絡(luò)層數(shù)容易造成梯度消失問題,其性能逐漸趨于飽和,從而降低識別率。此外,雖然層的深度可以在某種程度上提高網(wǎng)絡(luò)性能,但也會造成網(wǎng)絡(luò)訓(xùn)練難度提高。為解決以上問題,本文在殘差網(wǎng)絡(luò)中引入深度可分離卷積[14],讓每個通道使用一個濾波器對輸入草莓圖像進(jìn)行卷積操作,然后基于點的卷積,使用深度卷積的結(jié)果來執(zhí)行1×1的卷積內(nèi)核操作,獲取輸出結(jié)果。區(qū)別于標(biāo)準(zhǔn)卷積,此網(wǎng)絡(luò)模型的參數(shù)量和計算量大大降低,檢測速率進(jìn)一步提高。
殘差網(wǎng)絡(luò)引入殘差學(xué)習(xí),其模塊結(jié)構(gòu)如圖2所示,假設(shè)H(x)是由幾個堆疊層構(gòu)建的基映射,映射F(x)=H(x)-x,最優(yōu)映射可以表示為H(x)=F(x)+x。
圖2 殘差網(wǎng)絡(luò)示意圖
殘差單元可以定義為
xl+1=f[xl+F(xl,Wl)]
(1)
式中:xl——第l個殘差單元的輸入;
xl+1——第l個殘差單元的輸出;
F(xl,{Wl})——待學(xué)習(xí)的殘差映射;
W——卷積核;
f——激活函數(shù),采用ReLU函數(shù),公式如式(2)所示。
ReLU(x)=max(0,x)
(2)
可以看到殘差網(wǎng)絡(luò)區(qū)別于普通直連的卷積神經(jīng)網(wǎng)絡(luò),傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)在傳遞信息時,可能會存在信息不完整、耗時等問題。殘差網(wǎng)絡(luò)通過直接學(xué)習(xí)殘差,使學(xué)習(xí)成熟草莓目標(biāo)更清晰同時降低了學(xué)習(xí)難度,保護(hù)草莓信息的完整性,提高了網(wǎng)絡(luò)的學(xué)習(xí)能力。
一般卷積層的輸出只針對各個通道做卷積,不會考慮各通道的依賴性。本文讓網(wǎng)絡(luò)增強成熟草莓信息量大的特征便于后面的層使用,因此引入壓縮和激勵模塊(Squeeze and Excitation blocks,SE)來篩選成熟草莓圖像中有用的特征。SE就是給不同通道賦不同的權(quán)重,其模塊如圖3所示。
圖3 壓縮和激勵模塊
具體操作是對U做壓縮得到一維向量,長度為C,然后做激勵學(xué)習(xí)參數(shù)W來建立通道相關(guān)性,得到的結(jié)果作為U中C個通道的權(quán)重做處理。其目的是增強成熟草莓重要特征,抑制其次要特征。
壓縮和激勵模塊是一個計算單元,可以在Ftr的轉(zhuǎn)換上建立從輸入X∈RH′×W′×C′到特征映射U∈RH×W×C。把Ftr作為一個卷積算子,用V=[v1,v2,…,vc]表示濾波核的學(xué)習(xí)集,其中vc是第C個濾波器的參數(shù),可以將輸出寫成U=[u1,u2,…,uc],公式如式(3)所示。
(3)
2.2.1 壓縮:全局信息嵌入
為解決卷積核只在局部空間內(nèi)操作,U不易獲取大量信息來提取通道之間的關(guān)系。順著空間維度來進(jìn)行特征壓縮,將全局空間信息壓縮到通道描述符中,運用全局平均池生成通道統(tǒng)計信息。統(tǒng)計z∈RC的第c個元素如式(4)所示。
(4)
2.2.2 激勵:自適應(yīng)重新校正
激勵操作需要完全獲取通道相關(guān)性來利用壓縮操作中聚集的信息,通常選擇一個簡單的門控機制和Sigmoid激活函數(shù),激勵操作公式如式(5)所示。
s=Fex(z,W)=σ[W2δ(W1z)]
(5)
式中:δ——ReLU函數(shù);
σ——Sigmoid函數(shù)。
(6)
通過把SE塊進(jìn)行簡單的堆疊,可以構(gòu)建SE網(wǎng)絡(luò)。但把SE塊放到網(wǎng)絡(luò)體系結(jié)構(gòu)中的不同位置來替換原始塊,對特征信息的表示效果不同。由SE模塊執(zhí)行的特征重新校正的好處可以通過網(wǎng)絡(luò)累積,本質(zhì)上有助于多視角增強成熟草莓的特征辨別力,使網(wǎng)絡(luò)更有效。
新CNN體系結(jié)構(gòu)的設(shè)計和開發(fā)較為復(fù)雜,通常需要選擇大量新的超參數(shù)和層配置。本文把現(xiàn)有的卷積網(wǎng)絡(luò)架構(gòu)中的組件替換為SE對等組件,從而使成熟草莓圖像識別性能提高明顯。SE塊是輕量級的計算,模型的復(fù)雜性和計算負(fù)擔(dān)增加不明顯。
本文提出一種用于成熟草莓識別的識別網(wǎng)絡(luò)。網(wǎng)絡(luò)中包含二維卷積層2個,深度可分離卷積層15個,5個快捷連接模塊,每個快捷連接模塊由3個深度可分離的卷積層組成,每個快捷連接模塊后面都嵌入一個SE模塊,動態(tài)重新校正成熟草莓的有用特征,因此增強網(wǎng)絡(luò)的泛化功能。在最后一個卷積層之后,引入空間金字塔池層以消除對網(wǎng)絡(luò)固定大小的限制。提供完整的連接層,可以避免在一開始就裁剪網(wǎng)絡(luò)。不僅可以輸入任何大小的信息,同時提高準(zhǔn)確性并減少整體訓(xùn)練時間。完全連接層的最后一層使用Softmax作為激活功能,可以用來處理多分類任務(wù)。假設(shè)有s個類別的多分類問題,訓(xùn)練樣本的數(shù)量為n,樣本的輸入為w維向量,訓(xùn)練集表示如式(7)所示。
T={(x(1),y(1)),(x(2),y(2)),…,(x(n),y(n))}
(7)
其中y(i)∈{1,2,…,s}是樣本的標(biāo)簽,x(i)∈R(w+1)是輸入特征向量。任務(wù)目標(biāo)誤差Softmax代價函數(shù)如式(8)所示。
(8)
其中θ1,θ2,…,θw為模型參數(shù),1{·}是邏輯函數(shù),Softmax回歸中x樣本中類別為j的概率如式(9)所示。
(9)
目前沒有最優(yōu)算法來最小化J(θ),試驗中為防止過擬合問題,對損失函數(shù)添加權(quán)重衰減項D,定義如下。
(10)
式中λ為權(quán)重衰減參數(shù),試驗設(shè)置λ=10-5,添加權(quán)重衰減項D的損失函數(shù)稱為交叉熵?fù)p失函數(shù),如式(11)所示。
(11)
仿真結(jié)果表明,在訓(xùn)練過程中交叉熵?fù)p失函數(shù)自動調(diào)整困難分類樣本,能夠解決成熟草莓訓(xùn)練數(shù)據(jù)的不平衡,而且可以提高最終的分類精度。
為提高深度卷積網(wǎng)絡(luò)的訓(xùn)練效果,減少網(wǎng)絡(luò)訓(xùn)練時間,針對傳統(tǒng)的隨機梯度下降更新權(quán)重過程中,學(xué)習(xí)率固定不變,試驗采用自適應(yīng)梯度下降加權(quán)衰減(Adam)優(yōu)化器來提高網(wǎng)絡(luò)的泛化性能。Adam采取對梯度的一階矩和二階矩進(jìn)行估計來動態(tài)地適應(yīng)每個權(quán)重的學(xué)習(xí)速率,其一階矩估計mt和二階矩估計vt定義如下。
mt=β1mt-1+(1-β1)gt
(12)
vt=β2vt-1+(1-β2)gt2
(13)
式中:gt——梯度;
β1,β2——一階矩及二階矩估計指數(shù)衰減率,試驗取值分別為0.9和0.999;
t——迭代次數(shù)。
由于Adam優(yōu)化器存儲了一個歷史梯度進(jìn)行更新,學(xué)習(xí)速率的動態(tài)調(diào)整使草莓圖像訓(xùn)練更易收斂,更能訓(xùn)練出適合成熟草莓圖像識別的改進(jìn)殘差網(wǎng)絡(luò)模型。
試驗平臺機器配置處理器Intel i7-8700,顯卡NVIDIA GeForce GTX 1070Ti,Ubuntu 16.04操作系統(tǒng),TensorFlow深度學(xué)習(xí)框架。
本文設(shè)計的網(wǎng)絡(luò)由5個卷積層、6個池化層和3個完全連接層組成,將第二卷積層、第四卷積層和第五卷積層選擇的特征映射分別合并,通過完全連接層進(jìn)行特征融合,由Softmax對單元特征進(jìn)行分類和識別。卷積層學(xué)習(xí)率設(shè)置為0.001,全連接層學(xué)習(xí)率設(shè)置為0.01,全連接層丟棄率設(shè)置為0.5,迭代次數(shù)設(shè)置為200。
本文使用準(zhǔn)確率(Accuracy)、靈敏度(P)、召回率(Recall)、精度均值(mAP)作為評估標(biāo)準(zhǔn)。其計算公式如式(14)~式(17)所示。
(14)
(15)
(16)
(17)
式中:TP——正確劃分為正例的個數(shù);
FP——錯誤劃分為正例的個數(shù);
TN——正確劃分為負(fù)例的個數(shù);
FN——錯誤劃分為負(fù)例的個數(shù)。
靈敏度表示識別為正例的樣本中,實際上屬于正例的樣本所占的比例。召回率表示所有正例中被劃分正確的比例,其衡量分類器對正例的識別能力。
分類結(jié)果混淆矩陣如表1所示。
表1 分類結(jié)果混淆矩陣
試驗設(shè)置草莓圖像數(shù)據(jù)集中訓(xùn)練集和測試集的占比為4∶1,把測試數(shù)據(jù)集分為五類,其特征如表2所示。
表2 不同測試子集的特征
為驗證所提出的成熟草莓識別檢測算法的有效性,和當(dāng)前最佳算法DenseNet網(wǎng)絡(luò)[15]、SSD網(wǎng)絡(luò)[16]、ResNet[17]網(wǎng)絡(luò)進(jìn)行比較。表3和表4分別顯示了在訓(xùn)練集和測試集下的精度均值(mAP)、召回率和單張圖片檢測耗時的比較。
從表3和表4可以看出,本文算法不論是在訓(xùn)練集還是在測試集上,在單張圖片檢測耗時較短的情況下,精度均值和召回率都提高不少,優(yōu)于DenseNet網(wǎng)絡(luò)、SSD網(wǎng)絡(luò)、ResNet網(wǎng)絡(luò)。其中訓(xùn)練集單張圖片檢測耗時和測試集單張圖片檢測耗時分別為0.003 2 s和0.003 8 s,訓(xùn)練集mAP和測試集mAP分別為89.78%和83.17%,對比ResNet網(wǎng)絡(luò),訓(xùn)練集mAP和測試集mAP分別提高3.85%和3.6%。
表3 不同方法下精度均值和召回率的比較
表4 不同方法下單張圖片檢測耗時的比較
表5顯示了不同數(shù)據(jù)集下識別準(zhǔn)確率的比較??梢钥闯?,在深度學(xué)習(xí)算法中,本文提出的算法優(yōu)于DenseNet網(wǎng)絡(luò)、SSD網(wǎng)絡(luò)、ResNet網(wǎng)絡(luò)。由于構(gòu)建的殘差網(wǎng)絡(luò)將深度可分離卷積網(wǎng)絡(luò)與本地殘差網(wǎng)絡(luò)結(jié)構(gòu)相結(jié)合,引入壓縮和激勵模塊有效地提取成熟草莓圖像中的深層特征,然后使用深度網(wǎng)絡(luò)分類器進(jìn)行識別。根據(jù)試驗結(jié)果,改進(jìn)的殘差模型可以更好地完成成熟草莓區(qū)域的檢測和識別,從而達(dá)到了較高的識別準(zhǔn)確率,在數(shù)據(jù)集C中的識別準(zhǔn)確率最高,達(dá)到了92.46%。由于測試數(shù)據(jù)集A、B、D中干擾較弱,因此也獲得了較高的識別準(zhǔn)確率。
整個測試數(shù)據(jù)中數(shù)據(jù)集E最為復(fù)雜,圖像中干擾目標(biāo)較多,特別是紅花或紅葉,影響網(wǎng)絡(luò)的檢測效果。從表5試驗結(jié)果可以得出,本文算法對數(shù)據(jù)E上圖像的識別準(zhǔn)確率最低,達(dá)到了62.38%,但也優(yōu)于其他深度網(wǎng)絡(luò)。
表5 不同數(shù)據(jù)集下識別準(zhǔn)確率的比較
表6顯示了不同算法在不同數(shù)據(jù)集下識別靈敏度的比較。可以看出,本文提出的算法優(yōu)于其他深度網(wǎng)絡(luò),在數(shù)據(jù)集C中識別靈敏度最高,達(dá)到94.28%。對成熟草莓圖像,特別是簡單背景圖像具有更高的識別靈敏度和更強的魯棒性。
表6 不同數(shù)據(jù)集下識別靈敏度的比較
試驗對測試集中的草莓圖像進(jìn)行仿真和測試。圖4所示為數(shù)據(jù)集D下不同算法對成熟草莓的識別結(jié)果。
(a) SSD
根據(jù)圖4中部分成熟草莓被葉子和莖遮擋,存在背景干擾,幾乎所有的對比算法都嚴(yán)重地漏檢。尤其是SSD在檢測小物體目標(biāo)時效果欠佳,表現(xiàn)較為敏感,存在較多小目標(biāo)漏檢。在使用DenseNet網(wǎng)絡(luò)進(jìn)行成熟草莓識別時,該算法發(fā)現(xiàn)的目標(biāo)盡可能多,但無法較好地識別出一些粘著目標(biāo)。主要原因是算法只是單視角學(xué)習(xí)成熟草莓圖像特征,不能從多個角度的特征信息中學(xué)習(xí)。盡管ResNet引入殘差單元,讓網(wǎng)絡(luò)隨深度增加而不退化,同時獲得較好的識別性能,能夠識別到紅色草莓,但幾乎所有紅色區(qū)域都被它識別,同時存在較多的錯誤檢測。
本文算法在殘差網(wǎng)絡(luò)中引入深度可分離卷積,通過嵌入SE模塊,能夠有效地提取成熟草莓圖像中的深層特征,可以成功地將紅色反射光與水漬上的紅色草莓分離開來,甚至可以準(zhǔn)確地識別出被葉子和莖遮擋部分的成熟草莓。試驗結(jié)果表明,本文使用深度殘差網(wǎng)絡(luò)來識別成熟草莓圖像,識別準(zhǔn)確率更高、優(yōu)點更明顯,草莓檢測網(wǎng)絡(luò)能夠有效地檢測各種場景下的草莓,具有一定的抗干擾能力,提高了檢測速度。
1) 在草莓圖像數(shù)據(jù)集制作過程中運用了翻轉(zhuǎn)變換、隨機旋轉(zhuǎn)變換、改變對比度和亮度等數(shù)據(jù)增強技術(shù),對數(shù)據(jù)集進(jìn)行擴(kuò)充,構(gòu)建一個草莓圖像數(shù)據(jù)集。
2) 針對自然狀態(tài)下存在的成熟草莓灰度變化和背景干擾、信息丟失等問題,結(jié)合深度模型,構(gòu)建具有殘差特征的成熟草莓檢測模型,提出一種基于深度殘差學(xué)習(xí)的草莓識別方法。
3) 引入深度可分離卷積降低網(wǎng)絡(luò)參數(shù),設(shè)計基于殘差網(wǎng)絡(luò)的卷積網(wǎng)絡(luò),從不同角度提取成熟草莓特征。嵌入壓縮和激勵模塊來學(xué)習(xí)特征權(quán)重,并通過添加空間金字塔池、交叉熵?fù)p失函數(shù)增強網(wǎng)絡(luò)的魯棒性。為進(jìn)一步優(yōu)化識別結(jié)果,采用Adam優(yōu)化器加速網(wǎng)絡(luò)模型的收斂,提高模型的泛化能力。試驗結(jié)果表明,本文提出的草莓識別方法能夠有效地定位識別復(fù)雜背景下不同大小的成熟草莓,不易受到干擾環(huán)境的影響。和當(dāng)前最佳算法DenseNet網(wǎng)絡(luò)、SSD網(wǎng)絡(luò)、ResNet網(wǎng)絡(luò)相比,該方法具有更高的識別準(zhǔn)確率和靈敏度,其中在數(shù)據(jù)集C中的識別準(zhǔn)確率和靈敏度最高,分別達(dá)到了92.46%和94.28%。減少了網(wǎng)絡(luò)計算時間,為農(nóng)業(yè)的智能化發(fā)展提供理論基礎(chǔ)。