樊湘鵬 許 燕,2 周建平,2 劉新德 湯嘉盛 魏禹同
(1.新疆大學機械工程學院, 烏魯木齊 830047; 2.新疆維吾爾自治區(qū)農(nóng)牧機器人及智能裝備工程研究中心, 烏魯木齊 830047)
新疆是中國第二大核桃主產(chǎn)區(qū),種植面積達35萬hm2,年產(chǎn)量近70萬t,核桃產(chǎn)業(yè)收入占產(chǎn)區(qū)農(nóng)民總收入的40%以上,已成為新疆地區(qū)國民經(jīng)濟支柱之一[1]。傳統(tǒng)依靠人工用長桿對核桃枝敲打使其振落的方式勞動強度大且效率低、成本高。采用大型振動機收獲時,如果振動幅度和頻率過小則落果效能低,若振動過大則損傷樹枝樹體。利用機器人采摘系統(tǒng)可以減輕果園勞動者的負擔,提高核桃收獲效率,避免對核桃樹體的損傷。在自然條件下,核桃園林存在光線變化大、相互遮擋等現(xiàn)象,對核桃的精準檢測至關(guān)重要。
傳統(tǒng)機器視覺方法雖然可以實現(xiàn)基本的果實識別[2],但復雜環(huán)境中的目標特征提取困難、準確率低且魯棒性差,通常情況下一次只能識別單個果實目標,很難滿足實際工作需求。隨著深度學習和GPU技術(shù)的不斷發(fā)展,基于卷積神經(jīng)網(wǎng)絡的機器視覺目標檢測方法表現(xiàn)出巨大的優(yōu)越性[3],已被廣泛應用于非線性目標檢測和圖像識別領(lǐng)域[4-6],在植物分類[7]、病蟲害草識別[8-10]、表型信息解析[11]和果實識別分類[12-13]等方面均有較大進展。
研究人員利用卷積神經(jīng)網(wǎng)絡及其改進算法對果實進行檢測識別,并取得了較好的成果[2,14-20],但在該領(lǐng)域仍然存在以下問題:現(xiàn)有研究多集中于桃子、蘋果、柑橘、番茄等較大目標,對于自然環(huán)境下的青皮核桃識別鮮有研究,核桃目標小且顏色與背景相近,上述方法直接用于核桃識別效果不佳;多數(shù)研究方法未能將建立的方法和模型部署到采集設備中,缺乏實際應用的效果檢驗。因此,本文以自然環(huán)境下的青皮核桃為研究對象,以Faster R-CNN模型作為卷積神經(jīng)網(wǎng)絡主體,利用預訓練的VGG16作為Faster R-CNN的特征提取器,對模型結(jié)構(gòu)進行適應性改進并開展核桃檢測試驗驗證。
試驗所需圖像在新疆維吾爾自治區(qū)葉城縣巴仁鄉(xiāng)核桃產(chǎn)業(yè)研究示范園中采集,利用華為Honor play手機拍攝,采集周期為20 d,分別在晴天和陰天的早、中、晚不同時刻(10:00—18:00)進行。畫面背景包括均勻光照、不均勻光照、重疊、遮擋、風沙覆蓋等類型,拍攝時相機和最近的目標距離保持在30~70 cm,圖像保存格式為JPG,尺寸為4 608像素×3 456像素(寬高比為4∶3),選取符合條件的圖像共3 000幅。
卷積神經(jīng)網(wǎng)絡往往需要大量的訓練樣本才能有效提取圖像特征輸出識別結(jié)果。為增加數(shù)據(jù)特征多樣性和數(shù)據(jù)庫的大小,采用有監(jiān)督的幾何變換、顏色變換等增強方式擴充數(shù)據(jù)集(增強后的樣本效果如圖1所示),將相應的數(shù)據(jù)集擴充到原來的8倍,圖像數(shù)量為24 000幅。通過數(shù)據(jù)增強可以減少模型訓練階段的過擬合現(xiàn)象,提升網(wǎng)絡的泛化性能。利用LabelImg工具標注出核桃,按照PASCAL VOC2007標準存儲,將圖像尺寸縮放至768像素×576像素??倶颖镜?0%用于模型訓練,剩余的20%用于測試。
Faster R-CNN算法是REN等[21]提出的二階段檢測算法,該算法采用快速的RPN代替費時的Select research算法。Faster R-CNN模型結(jié)構(gòu)和原理如圖2所示,其主要包括特征提取器(Feature extractor)、RPN和Fast R-CNN模塊。特征提取器能夠自動提取圖像目標特征,并將所得特征共享給后續(xù)的RPN和Fast R-CNN,從而將RPN與Fast R-CNN組合成一個網(wǎng)絡,有效提高了候選框的生成速度和檢測效率。在Faster R-CNN模型框架下,常用的特征提取器結(jié)構(gòu)有ZFNet、VGGNet、ResNet和Inception等系列[22]。VGG16特征提取器采用了相對較小的卷積核尺寸(3×3)和最大池化尺寸(2×2),在保證感受野的同時可有效提取細粒度特征,因此選取VGG16作為模型的特征提取器。
準確檢測自然條件下獲取圖像中的核桃目標的關(guān)鍵是提取目標的多種有效特征。將Faster R-CNN直接用于自然環(huán)境下的核桃目標檢測時效果不佳,原因在于:①Faster R-CNN雖然具有較高的精度,但是速度上并不能滿足實時的要求。②Faster R-CNN區(qū)域建議網(wǎng)絡在選擇感興趣區(qū)域后的ROI Pooling操作過程中對采樣點的取整量化會導致精度損失。③在自然條件下,核桃的顏色和葉片的顏色具有很高的相似性,容易導致識別錯誤。因此,本文對這些方面進行改進,來加快網(wǎng)絡收斂速度,提高模型精度和泛化能力。
2.2.1批歸一化處理
通過在每層卷積層后加入批歸一化處理層,對圖像特征值進行歸一化處理,可以把逐漸在非線性函數(shù)映射后向取值區(qū)間極限飽和區(qū)靠攏的輸入分布強制拉回到均值為0、方差為1的標準正態(tài)分布范圍,能夠有效避免梯度消失和梯度爆炸,提高收斂速度和準確率,起到增益網(wǎng)絡的作用。
2.2.2雙線性插值算法改進區(qū)域建議網(wǎng)絡
區(qū)域建議網(wǎng)絡在ROI Pooling操作時會對縮放后的非整數(shù)采樣點坐標進行2次取整量化,導致小數(shù)點后的精度損失,使得特征圖上映射的區(qū)域建議框產(chǎn)生偏差。因此,本文采用HE等[23]提出的雙線性插值算法處理特征圖來改進區(qū)域建議網(wǎng)絡。如圖3所示,雙線性插值算法基本原理是將某點的坐標值先在x軸方向上進行一次線性插值,再在y軸方向上進行一次線性插值。雙線性插值算法最大的優(yōu)點在于計算得到的目標點坐標值可以保留浮點數(shù),減少特征圖尺度標準化過程中因取整量化產(chǎn)生的精度損失,提高目標檢測精度。
在已知周圍4個點坐標的條件下,利用雙線性插值算法求點P坐標值f(x,y)的表達式為
(1)
式中M11——坐標為(x1,y1)的點
M12——坐標為(x1,y2)的點
M21——坐標為(x2,y1)的點
M22——坐標為(x2,y2)的點
2.2.3混合損失函數(shù)
青皮核桃與葉片的顏色相近,即目標和非目標物的特征類間差異不大,這會導致不規(guī)則生長的核桃無法被準確識別。為了解決這一問題,實現(xiàn)特征類內(nèi)差距最小化、類間差距最大化效果,本文引入中心代價函數(shù)(Center loss,LC)與Softmax損失函數(shù)構(gòu)建混合損失函數(shù),增大類間特征差異,加強類內(nèi)特征內(nèi)聚,提高模型的特征區(qū)分能力。LC函數(shù)表達為
(2)
式中N——訓練中的小批量(mini-batch)數(shù)量
F(xi)——RPN生成的第yi類第i個感興趣區(qū)域的特征
cyi——第yi類特征的中心值
卷積神經(jīng)網(wǎng)絡的訓練是損失函數(shù)最優(yōu)化的過程,在訓練過程中LC逐漸變小,即F(xi)逐漸接近第yi類特征的中心,隨著迭代訓練的增加,每類特征的分布將向其對應的特征中心聚集,從而實現(xiàn)類內(nèi)特征聚合性和類間差異最大化?;旌蠐p失函數(shù)(C-S函數(shù))的表達式為
L=LS+λLC
(3)
式中L——混合損失函數(shù)
LS——Softmax損失函數(shù)
λ——中心代價函數(shù)的權(quán)重
λ的作用為平衡2個函數(shù)值,較小的值會使得中心代價損失項對網(wǎng)絡幾乎沒有影響,而較大值會導致網(wǎng)絡出現(xiàn)不收斂的情況。本文經(jīng)過多次試驗,將λ設為0.02。
2.3.1試驗環(huán)境
試驗運行環(huán)境為Windows 7(64位)操作系統(tǒng),安裝Anaconda 3.5.0和CUDA 8.0,采用cuDNN 6.0深度學習庫,利用Python 3.6進行編程,搭載Intel(R) Xeon(R) CPU E5-2630 v4 @2.20 GHz處理器,使用開源深度學習框架Tensorflow作為開發(fā)環(huán)境,計算機內(nèi)存為16 GB。
2.3.2模型訓練方式
在深度學習型網(wǎng)絡訓練過程中,不同的訓練策略對模型的優(yōu)化性能有所不同,為探究更適合于本研究的訓練方式,本文分別采用帶動量的隨機梯度下降算法(Stochastic gradient descent, SGD)和Adam優(yōu)化器分別訓練模型的參數(shù)。訓練結(jié)束后,利用測試集對模型效果進行驗證,并且在測試集的圖像數(shù)據(jù)中輸出核桃目標的位置和概率。SGD算法是目前使用最多的一種梯度下降型優(yōu)化方法,該方法依據(jù)每個訓練數(shù)據(jù)計算誤差,并立即調(diào)整權(quán)重。Adam優(yōu)化器是結(jié)合AdaGrad和RMSProp兩種優(yōu)化算法所提出的利用梯度一階矩和二階矩計算參數(shù)的自適應學習率方法[24],和PID控制器的思想有相通之處。
為了評價所提方法對青皮核桃檢測的效果,對樣本進行測試后分別計算精度(Precision)和召回率(Recall),利用綜合評價指標F1值作為準確率和召回率的評估值,同時引入單幅圖像檢測耗時t作為檢測速度的評價指標。
在相同網(wǎng)絡結(jié)構(gòu)下,以預訓練的VGG16作為Faster R-CNN的特征提取器,分別利用SGD和Adam優(yōu)化器訓練改進后的模型,最大迭代次數(shù)設為5 000,兩種訓練方式的初始學習率均設為0.01,輸入圖像尺寸為768像素×576像素。圖4為改進Faster R-CNN模型在兩種訓練方式下的損失值和精度隨迭代次數(shù)的變化情況。可以發(fā)現(xiàn)利用Adam優(yōu)化器訓練的模型損失值最先達到收斂,在3 500次迭代時趨于平穩(wěn),收斂后的損失值最終為0.032;而利用SGD方法訓練的模型收斂較慢,在迭代4 500次后開始收斂,收斂后的損失值最終為0.061,高于利用Adam優(yōu)化器訓練的模型損失值。由于SGD訓練算法是針對每個數(shù)據(jù)點調(diào)整權(quán)重,網(wǎng)絡的性能在訓練過程中存在較多上下波動的情況,而Adam優(yōu)化器由于采用了自適應學習率調(diào)節(jié)方法,在迭代訓練中平穩(wěn)性較好。利用Adam優(yōu)化器訓練的模型精度最先收斂,模型最終達到的精度為97.71%,SGD訓練方法得到的模型精度始終低于前者,最終達到的精度僅為92.97%??傮w來看,Adam優(yōu)化器算法比SGD訓練算法具有使模型更快達到收斂的性能且更穩(wěn)定,因此訓練模型選用Adam優(yōu)化器。
為驗證改進Faster R-CNN模型的有效性,將改進Faster R-CNN模型與Faster R-CNN模型進行對比,均采用VGG16特征提取器,除加入批歸一化處理層、利用雙線性插值算法改進區(qū)域建議網(wǎng)絡和構(gòu)建混合損失函數(shù)之外,其他結(jié)構(gòu)和參數(shù)均保持一致,均利用Adam優(yōu)化器訓練模型。改進Faster R-CNN模型精度為97.71%,召回率為94.58%,綜合指標F1值為96.12%,單幅圖像檢測耗時為0.227 s,與未改進的Faster R-CNN模型相比,精度提高了5.04個百分點,召回率提高了4.65個百分點,F(xiàn)1值提升了4.84個百分點,單幅圖像檢測耗時降低了0.148 s。綜合來看,改進后的模型單幅圖像識別速度的提升不大,但是當圖像數(shù)量增多時,模型處理速度可大幅提高。改進模型對自然環(huán)境中的核桃目標的檢測精度和召回率有顯著提升,原因是利用雙線性插值算法對RPN中滑動窗口進行了改進,避免了目標像素標準化過程中的精度損失;另外,引入中心代價函數(shù)構(gòu)建混合損失函數(shù)后提高了核桃類內(nèi)特征的內(nèi)聚性,使核桃和背景葉片的類間差異最大化,有效降低了核桃的漏檢率和錯誤識別率。
改進Faster R-CNN模型和Faster R-CNN模型對在自然環(huán)境中獲取的不同光照條件和不同生長狀態(tài)的核桃識別結(jié)果如圖5、6所示。從圖中可以發(fā)現(xiàn),F(xiàn)aster R-CNN模型在不同環(huán)境條件下的核桃識別漏檢的情況較多,且定位框偏移較大。改進Faster R-CNN可以對核桃進行更加精準的定位,且漏檢的核桃目標較少。圖6c中因個別核桃果實過小、遮擋嚴重或者模糊不清而未能檢測到,但總體而言,改進Faster R-CNN模型在不同光照條件、噪聲影響以及遮擋、重疊較多的條件下對核桃識別有著較強的魯棒性,可以滿足對自然園林環(huán)境中核桃的識別與檢測。
為進一步探究輸入圖像尺寸對模型性能的影響,分別選取5種不同分辨率的圖像作為輸入對象進行對比試驗,試驗結(jié)果如表1所示。由表1可知,模型精度隨輸入圖像像素數(shù)的增大逐漸升高,單幅圖像檢測耗時也相應增加。當訓練圖像分辨率為128像素×96像素時,精度最低,為83.26%,單幅圖像識別耗時為0.176 s;當分辨率由512像素×384像素提升至768像素×576像素時,雖然模型的檢測耗時增加了0.022 s,但精度有明顯提升,增加了5.86個百分點。當輸入圖像尺寸變?yōu)? 024像素×768像素時,模型精度僅比768像素×576像素圖像提高了0.33個百分點,單幅圖像識別耗時增加了0.232 s。因此,綜合考慮精度和實時性的要求,選擇輸入圖像尺寸為768像素×576像素。
表1 不同輸入圖像尺寸的模型性能結(jié)果Tab.1 Influence of different input training sets on model performance
為檢驗噪聲干擾下的模型性能,在測試集中選取500幅核桃圖像作為測試子集,圖像尺寸為768像素×576像素,分別添加不同程度的高斯噪聲模擬自然環(huán)境中的干擾因素,以評估模型在自然環(huán)境中的魯棒性。圖7為改進Faster R-CNN模型和Faster R-CNN模型在測試子集中的精度對比結(jié)果。從圖7可以看出,兩種模型受噪聲干擾較大,識別精度均隨著噪聲級別的增大呈現(xiàn)明顯的下降趨勢。改進Faster R-CNN模型應對噪聲干擾的能力強于Faster R-CNN,表明Faster R-CNN的改進可以提高模型的魯棒性。
為進一步驗證本文方法在自然環(huán)境中實時獲取圖像的應用效果,將訓練好的模型保存至NVIDIA Jetson TX2嵌入式開發(fā)板并集成在收獲機自動采摘系統(tǒng)中,如圖8所示,該收獲機自動采摘系統(tǒng)還包括機械臂、通信線纜、視覺感知模塊(攝像頭)和末端執(zhí)行器等,在自然環(huán)境中開展核桃識別與定位采摘試驗。分別利用Faster R-CNN和改進Faster R-CNN算法進行驗證,通過采摘成功率和檢測耗時評價試驗效果,最終試驗結(jié)果如表2所示。
由表2可知,F(xiàn)aster R-CNN模型成功率僅為82.83%,單幅圖像檢測耗時為0.638 s,所提基于改進Faster R-CNN模型試驗時成功率為91.25%,單幅圖像檢測耗時為0.474 s,具有更高的魯棒性。兩種模型在自然環(huán)境下的試驗結(jié)果比3.2節(jié)的試驗性能均有所下降,原因在于攝像頭拍攝畫面時含有的噪聲比用手機拍攝時多,且存在一定的抖動,降低了識別定位效果、減小了檢測速度。
表2 自然環(huán)境下的核桃識別試驗結(jié)果Tab.2 Recognition experiment results of walnuts under natural condition
(1)本文方法能夠在不同光照、具有重疊遮擋等復雜背景的圖像中檢測出核桃,為核桃果實生長信息監(jiān)測和自動化采摘提供了技術(shù)支撐。利用預訓練的VGG16卷積神經(jīng)網(wǎng)絡作為Faster R-CNN模型的特征提取器,在卷積層加入批歸一化處理層加快網(wǎng)絡收斂,利用雙線性插值算法改進模型中的區(qū)域建議網(wǎng)絡提高網(wǎng)絡精度,并構(gòu)建混合損失函數(shù)以實現(xiàn)類內(nèi)特征的內(nèi)聚性和類間差異的最大化,建立了適用于自然環(huán)境下的青皮核桃識別模型。
(2)對采集核桃圖像進行數(shù)據(jù)增強和人工標注后,選擇損失值更低、更穩(wěn)定的Adam作為訓練優(yōu)化器,得到的改進Faster R-CNN模型測試精度為97.71%,召回率為94.58%,F(xiàn)1值為96.12%,平均檢測時間為0.227 s,與Faster R-CNN模型相比,精度提高了5.04個百分點,召回率提高了4.65個百分點,F(xiàn)1值提升了4.84個百分點,單幅圖像檢測時間降低了0.148 s。
(3)利用不同分辨率的輸入圖像分別訓練相同結(jié)構(gòu)的模型,模型的精度隨著輸入圖像像素的增大而升高,平均檢測時間也相應加長。經(jīng)試驗對比,在兼顧模型精度和實時性的情況下,選擇尺寸為768像素×576像素的圖像作為本模型的輸入樣本;利用訓練好的模型在自然環(huán)境下進行試驗驗證,模型成功率可達91.25%,平均檢測時間為0.474 s,可以保持較高的準確率和實時性;在測試集中添加噪聲處理后,模型性能有所降低,但改進Faster R-CNN模型對噪聲的抗干擾能力強于Faster R-CNN模型,表明本文方法更適合于復雜自然環(huán)境下的青皮核桃機器人識別和定位采摘。