龍 燕,李南南,高 研,何夢菲,宋懷波
(1. 西北農林科技大學機械與電子工程學院,楊凌 712100;2. 農業農村部農業物聯網重點實驗室,楊凌 712100;3. 陜西省農業信息感知與智能服務重點實驗室,楊凌 712100)
中國是世界上最大的蘋果生產國,蘋果產業在中國農業中占有重要地位[1]。傳統的采摘作業效率低、成本高,同時面臨著勞動力短缺的問題,因此開發蘋果采摘機器人具有重要的現實意義和廣闊的應用前景[2]。視覺系統是蘋果采摘機器人的重要組成部分,其主要任務是利用果實顏色、紋理、形狀等特征將果實目標與枝葉、天空等背景區域分開,實現果實的識別。然后利用深度傳感器等獲取深度信息,實現果實的準確定位[3-5],為末端執行器提供數據來源和決策依據。其中,果實的識別是首要任務也是研究難點。在自然環境下,普遍存在背景復雜、光照多變、枝葉遮擋、重疊嚴重等因素,大大增加了果實目標識別難度。如何在復雜環境中提高作業可靠性,保持較高的檢測精度,對實現果實產量估計及機械化采收起著決定作用[6]。因此,本研究主要利用深度學習網絡實現自然環境下蘋果目標的檢測,為后續的果實定位與機械化采摘提供參考。
近年來,深度學習以其局部感知和權值共享的特點,在目標檢測領域得到飛速發展。與傳統機器學習[7-8]相比,基于卷積神經網絡的深度學習算法,可以自動地從圖像中提取特征,獲得目標的類別和位置等信息,學習能力強、精度高、魯棒性好。基于深度學習的目標檢測算法主要分為兩種類型,一種是以卷積神經網絡的特征區域(Region with Convolutional Neural Networks feature,
RCNN)[9]、Fast-RCNN[10]、Faster-RCNN[11]為代表的雙階段檢測(two-stage detection),核心思想是候選框區域產生一系列稀疏的候選框,然后進行回歸。Sa等[12]提出了基于Faster-RCNN的7種水果檢測方法,建立了一個準確、快速、可靠的水果檢測系統。Yu等[13]提出基于Mask-RCNN網絡的草莓檢測模型,在重疊和不同光照下,有很好的檢測性能。Jia等[14]在掩模區域卷積神經網絡(Mask R-CNN)檢測模型基礎上,通過殘差網絡(ResNet)與密接卷積網絡(DenseNet)相結合,實現了蘋果的檢測。王丹丹等[15]針對幼小綠蘋果,以ResNet-44全卷積網絡為基礎網絡,在R-FCN深度卷積神經網絡的基礎上進行改進,實現了疏果前蘋果目標的識別與定位。李林升等[16]以自然光源下的蘋果圖像為研究對象,設置9個候選框,同時增加1個滑動窗口,改進Faster R-CNN目標檢測框架,模型精度高,但是候選框的產生需要大量的計算資源,檢測時間較長。另一種是以單個多框檢測器(Single Shot MultiBox Detector,SSD)[17]、YOLO[18-19]為代表的單階段檢測(one-stage detection),直接回歸出目標框的位置,將目標的定位問題轉換為回歸問題。Tian等[20]用DenseNet方法處理YOLOv3網絡中分辨率較低的特征層,YOLOv3-dense模型能有效地檢測重疊和遮擋條件下的蘋果目標。Kuznetsova等[21]將特殊的前處理和后處理加入YOLOv3算法,用在蘋果果實收獲機器人上。彭紅星等[22]用遷移學習方法和隨機梯度下降算法對SSD模型進行優化,設計了一種四類水果通用檢測模型;趙德安等[23]提出一種基于YOLO深度卷積神經網絡的復雜背景下機器人采摘蘋果定位,構建13層類似用于大規模圖像識別的深度卷積網絡(Very Deep Convolutional Networks for Large-Scale Image Recognition,VGG)的網絡結構,實現了在復雜環境下果實的檢測。武星等[24]提出了一種基于輕量化YOLO卷積神經網絡的蘋果目標檢測方法,采用深度可分離卷積替換普通卷積,設計了一種同構殘差塊串聯的特征提取網絡結構,提出了基于隨機梯度下降(Stochastic Gradient gescent,SGD)和自適應矩估計(Adaptive moment estimation,Adam)的多階段學習優化技術。
以上兩種網絡的目標識別準確度都依賴于預定義錨框(anchor boxes)參數,檢測性能對錨框尺寸、寬高比和數量等比較敏感,模型計算復雜、泛化能力差。Tian等[25]提出了一種單階段無錨點(anchor)目標檢測(Fully Convolutional One-Stage object detection,FCOS)網絡,基于語義分割上的全卷積網絡(Fully Convolutional Networks for semantic segmentation,FCN)[26],實現了逐像素無錨框的目標檢測,避免了錨框尺度、長寬比、超參數的優化設計,極大地減少了訓練所需的內存和時間。
雖然FCOS網絡引入逐像素點回歸策略、特征金字塔網絡(Feature Pyramid Networks,FPN)多級預測和中心點(center-ness)預測等方法提升小目標識別效果,但FCOS網絡在對自然環境下蘋果目標檢測時,對小目標果實、部分遮擋果實、重疊果實和光照不均果實的漏檢測率仍然很高。
因此本文提出了一種改進FCOS網絡設計方法,以適用于自然環境下蘋果目標檢測。首先骨干網絡采用darknet19以減少計算量。在損失函數中加入GIoU,增強多果實定位精度,并引入焦點損失(Focal loss)損失,解決正負難易樣本不平衡的問題。同時,在網絡訓練時加入多尺度訓練,提升對小目標的識別效果。最后利用改進的FCOS網絡對自然環境下不同密集程度、不同光照、不同遮擋的蘋果目標進行檢測,驗證算法的有效性。本文研究提出了一種適用于自然環境下蘋果目標檢測的方法,為實現蘋果生長監測、機械化采摘等提供依據,同時也為其果實的識別提供參考。
FCOS主要采用ResNet50和ResNet101作為骨干網絡,對網絡推斷速度進行優化時,骨干網絡替換為層數更少更輕便的darknet19,本文利用darknet19為骨干網絡來搭建蘋果檢測模型,輸入圖片首先經過C1,C2,C3,C4,C5,5個卷積模塊,每經過一個卷積模塊特征圖變為原來的一半,從darknet19網絡中提取C3,C4,C5的特征圖,C5經過1×1卷積上采樣得到P5,C4經過1×1卷積上采樣與P5相加融合得到P4,C3經過1×1卷積上采樣與P4相加融合得到P3層,P6、P7是P5通過卷積下采樣得到,最后得到P3、P4、P5、P6、P7特征圖,分別對應原圖大小的1/8、1/16、1/32、1/64、1/128。5個特征圖分別經過5個3×3卷積后得到分類、回歸、中心度分支。分類支路輸出的通道數為2,分別表示果實和背景。回歸的目標是(l,t,r,b),即中心點到預測框的左、上、右和下的距離,不同的特征層需要回歸不同的尺寸范圍,并利用max(l,t,r,b)的范圍進行劃分。在回歸分支中加入中心度來濾除遠離目標中心的大量低質量檢測框,網絡結構如圖1所示。
網絡的損失函數L由目標類別損失Lcls,目標位置回歸損失Lreg和目標中心度損失Lcenter-ness組成,即
1.2.1 Focal loss損失
在自然環境中,果實在圖像中的像素占比較小,使模型過于關注訓練簡單的樣本,忽視難分類的樣本,所以需要用一個合適的函數去度量難分類和易分類樣本對總損失的貢獻,Focal loss[27]函數在不影響原檢測速度下,使模型在訓練時更加關注難分類的樣本,從而更有效地優化網絡。Focal loss函數的數學公式如下
式中pt表示蘋果類別的概率,γ是調制系數。γ越大,簡單樣本所占比重降低的速率就越快。γ通過減少訓練時簡單樣本所占的權重,使得模型更專注于難分類的樣本。αt是權重系數,αt取值為[0,1],用來調整正負樣本比例不平衡問題。當γ=1,αt=0時,Focal loss損失函數即為交叉熵損失函數。
pt越大,(1-pt)γ越小,γ越大,調節簡單樣本降低的速率就越快,調制系數γ通過減少訓練時簡單樣本所占的權重,從而使得模型更專注于難分類的樣本。
1.2.2 回歸損失
交并比(Intersection over Union,IoU)是目標檢測任務中最常用的指標,在基于錨框的算法中,IoU不僅可以用來確定正負樣本,而且可以用來反映預測檢測框與真實檢測框的相似性,IoU的計算公式為
式中A,B分別表示預測框與真實框的面積。IoU取值為
[0,1]。
IoU作為損失函數存在兩個問題:1)若兩個目標框無重疊,則IoU為0,損失為0,網絡無法優化。2)IoU無法正確區分兩個目標之間的不同距離。如圖2所示,圖a和圖b的IoU都為0,但是圖2b中預測框與真實框的距離更近,檢測效果更好。
因此本文利用GIoU[28]邊框回歸損失函數,以進一步反映預測框和檢測框的重合程度,提高檢測準確度。GIoU的計算公式為
式中C表示包含A和B的最小矩形面積,GIoU取值范圍為[-1,1],預測框與真實框重合時為1,不重合且距離無限遠時取值為-1。類似于IoU,GIoU作為距離度量可以保留度量的所有屬性,GIoU不僅關注重疊區域,而且GIoU的值可以更好地反映預測框和真實框之間如何發生重疊。
以GIoU作為邊框回歸損失函數,計算公式如下:
1.2.2 中心度損失
中心度損失使用交叉熵損失函數抑制距離目標中心較遠位置產生的很多低質量預測框,快速過濾負樣本,降低非極大值抑制(Non-Maximum Suppression,NMS)負擔,提高召回率和檢測性能。中心損失采用二值交叉損失函數,中心度損失如公式6所示。
式中l*,r*,t*,b*分別為當前像素點到目標框的邊界的左、右、上、下距離。
因此,損失函數L為
圖像數據采集地點位于陜西省咸陽市乾縣宏霖農業蘋果園,采集時間為2020年8月5日(陰天)上午8:00-11:30,8月10日下午(晴天)2:30-5:30,蘋果品種為華碩。采集設備為華為P30,樣本采集過程中,模擬機器人采收流程,攝像頭在果樹單邊固定位置,從樹冠外圍、上部、下部距離果實50 cm左右的距離進行拍攝,采集樹葉遮檔,順光、逆光、側光等情況下的果實,以保證樣本的多樣性。共采集964幅圖像,包含未遮擋果實209幅,枝葉遮擋350幅,果實重疊405幅,其中側光784幅,順光86幅,逆光96幅。使用LabelImg對圖像進行標注,按照PASCAL VOC數據集格式保存圖像的類別和(Xmin,Xmax,Ymin,Ymax),(Xmin,Xmin)為目標果實的左上角坐標,(Ymax,Ymax)為目標果實的右下角坐標,最后生成XML格式的標注文件,原圖大小3 456×4 608像素,為了方便模型的訓練,將圖片壓縮至640×800像素。
數據量過少容易導致深度學習模型過擬合,利用數據增強來擴大訓練集樣本,以提高模型的泛化能力和魯棒性。使用亮度、對比度、色調、飽和度調整、水平鏡像、色彩擾動以及加入噪聲等方式進行數據增強,同時對圖像的標注文件進行相應的變換。最后共獲得10 604幅圖像,按照8∶2的比例劃分訓練集8 484幅,測試集2 120幅。
試驗硬件平臺為深度學習工作站,其配置為AMDW-2245@3.90GHz×12,內存64 GB和顯存11 GB的GeForce RTX 2080 Ti。操作系統為Win10,安裝CUDA和CUDNN,python版本為3.7,pytorch版本為1.5,torchvision版本為0.5。
模型訓練時,采用4個步長樣本作為一批,每迭代一批更新一次損失,迭代2 410次為一期,每期保存一次訓練權重,共訓練24期。本試驗模型訓練使用遷移學習,利用Imgnet上darknet19的預訓練權重進行微調。
網絡多尺度訓練為輸入的圖像大小在(480,800)、(512,800)、(544,800)、(576,800)、(608,800)、(640,800)內隨機選擇。不同尺寸大小的圖片輸入網絡當中,使網絡能夠適應不同大小果實,加強網絡的性能。
權值更新用組標準化(Group Normalization,GN)進行正則化,以減少小批量樣本訓練帶來的精度損失,在模型訓練初期,為了減緩模型在初始階段對小批量樣本的提前過擬合現象并保持模型深層的穩定性,設置了一個熱身階段。模型學習率在第1期時從0線性增加到0.002,采用SGD優化器對網絡進行優化,動量參數為0.9,從第2期到第17期學習率保持為0.002,從第18期到第21期學習率為0.000 2,從第22期到24期學習率為0.000 02,損失函數中αt值為0.75,γ值為2。
本研究在測試集上采取準確率(Precision,P)、檢測精度均值(mean Average Precision,mAP)對檢測性能進行評價。
式中TP表示預測的正實際為正樣本的數量,FP表示預測的正實際為負樣本的數量,FN表示預測的負實際為正樣本的數量,通過P和召回率(Recall,R)可以繪制PR曲線,AP就是PR曲線下的面積,mAP為蘋果和背景的AP的平均值。
從訓練日志得到損失值數據,繪制損失值,如圖3所示。
從圖3可以看出,前1 000次損失值迅速下降,這得益于遷移學習,darknet網絡使用了Imgnet上的預訓練權重。迭代至35 000次后損失曲線漸漸穩定,只有稍許振蕩。
3.2.1 不同密集程度果實的對比試驗
當果實尺寸大,數量少,目標輪廓清晰時,訓練時可獲得更多有用信息,檢測效果好。當果實尺寸小,數量多時,有效信息較小,識別難度大,漏檢概率大。因此本研究對雙果、多果和密集果實進行檢測效果對比試驗。檢測的結果如圖4所示。雙果時,FCOS和改進FCOS網絡均能準確識別蘋果目標,但在多果或密集果實場景中,傳統FCOS網絡出現漏檢情況,如圖中圓圈標記部分。因此改進FCOS網絡在多果和密集果實條件下具有更好的檢測效果。而改進FCOS網絡幾乎檢測到所有果實目標。原因是改進FCOS網絡引入了多尺度訓練,輸入不同尺度圖像訓練能夠使模型適應尺寸較小的果實,因而在多果和密集果實條件下具有更好的檢測效果。
3.2.2 重疊和枝葉遮擋的對比試驗
在自然環境下,會產生果實間相互遮擋和果實被枝葉和枝干遮擋的情況。失去果實部分的輪廓信息,增加了果實檢測的難度。因此本研究對果實間相互重疊和不同程度枝干遮擋情況進行試驗。果實間遮擋檢測結果如圖5所示,可以看到,當遮擋較嚴重時,傳統FCOS網絡出現漏檢,如圖中圓圈標記的果實未檢測出。當果實受枝葉遮擋嚴重時,改進FCOS網絡的目標框大小更接近于果實真實輪廓的大小。改進FCOS網絡則不受影響,檢測到所有果實目標。原因是改進FCOS網絡引入GIoU loss,GIoU不僅關注重疊區域,還關注其他的非重合區域,能更好反映預測框和真實框重合度,使網絡能夠關注那些受到果實遮擋和樹葉遮擋的極難識別的目標,從而提升受到遮擋果實的檢測效果。
3.2.3 不同光照條件下的對比試驗
在順光、逆光和側光條件下,果實會呈現偏亮或偏暗。順光時,蘋果表面的亮度會有一定的增強,紋理不夠清晰。逆光時,圖片整體偏暗,對比度低。側光時,蘋果的輪廓比較明顯,紋理比較清晰。不同光照條件下的檢測效果如圖6所示。順光和逆光條件下,傳統FCOS網絡均有漏檢,而改進FCOS網絡可以實現較好的檢測效果,具有較好的魯棒性。改進FCOS引入Focal loss,網絡能夠關注那些受到果實遮擋和樹葉遮擋的極難識別的目標,從而提升受到遮擋果實的檢測效果,原因是順光和逆光條件下的樣本數量較少,傳統FCOS網絡不能準確提取這兩種光照條件下的果實目標特征,導致漏檢。改進FCOS引入Focal loss,增加對順光、逆光樣本的權重,從而使不同光照條件下的訓練樣本數量趨于均衡,提升光照不均樣本目標的檢測能力。
3.2.4 不同網絡檢測精度對比試驗
本研究對不同改進程度的FCOS網絡進行試驗。僅使用多尺度訓練記為FCOS-A,損失函數僅使用Focal loss的網絡記為FCOS-B,損失函數僅使用GIoU loss作為邊界框損失的記為FCOS-C,同時進行以上所有改進的記為改進FCOS。為了進一步驗證網絡的有效性,加入Faster-RCNN、SSD、YOLOv4進行對比。在同一個蘋果數據集上對以上模型進行訓練和測試。測試集mAP、準確率P如表1所示。

表1 不同網絡檢測精度對比Table 1 Comparison of the detection accuracies of different network
由表1可知,相比與傳統FCOS網絡,本文改進的FCOS-A、FCOS-B、FCOS-C、改進FCOS檢測性能有一定的提升,并且精度高于Faster-RCNN、SSD和YOLOv4,由此說明多尺度訓練,使用GIoU loss、Focal loss能夠提升網絡的性能。
3.2.4 不同網絡檢測時間對比試驗
對基于ResNet50的FCOS網絡、改進FCOS、Faster-RCNN、SSD、YOLOV4的檢測時間進行試驗。檢測時間,模型大小如表2所示。
由表2可以看出,以darknet19為骨干網絡的改進FCOS的檢測時間比FCOS-ResNet50快15.1 ms,較FCOS-ResNet50檢測速度提升23.0%。

表2 不同網絡檢測時間對比Table 2 Comparison of different network of detection time
改進FCOS的檢測時間比Faster-RCNN和SSD,分別快452.5 ms和69.5 ms,檢測速度分別提升90.0%和57.9%。與目前檢測速度較快的YOLOv4相比,只慢了17.2 ms。改進FCOS的模型大小與Faster-RCNN、SSD和YOLOv4相比減少了47.8%,48.8%和56.6%。
1)為提高自然環境蘋果果實的識別準確度,本研究在傳統FCOS網絡基礎上提出了改進FCOS網絡。該網絡使用體積更小的骨干網絡darknet19來進行特征提取,損失函數使用GIoU損失替代FCOS網絡模型的邊框損失,并在分類損失中使用Focal損失,同時采用多尺度訓練,極大提升了自然環境下蘋果果實的檢測準確度。
2)本研究使用10 604張包含枝葉遮擋、果實重疊、多種光照條件等的蘋果圖像對改進FCOS網絡進行訓練和測試。試驗結果表明,本文提出的網絡對自然環境下的蘋果果實具有良好的檢測能力。在工作站上的檢測準確率和平均精度分別為96.0%和96.3%,優于傳統FCOS網絡、Faster-RCNN、SSD和YOLOv4網絡;檢測速度為每幅圖像50.5 ms,優于傳統FCOS網絡、Faster-RCNN和SSD,稍慢于目前檢測速度較快的YOLOv4網絡。