張星,高巧明,潘棟,張偉偉
(1. 廣西科技大學機械與交通工程學院,廣西柳州,545616; 2. 廣西科技大學廣西汽車零部件與整車技術重點實驗室,廣西柳州,545616; 3. 上海工程技術大學機械與汽車工程學院,上海市,200240)
隨著智慧農業的提出以及計算機視覺技術的不斷發展,研發農業機器人是農業發展趨勢,而在丘陵山地地區,研發果實拾撿機器人的首要關鍵技術是對復雜環境下果實的快速有效識別成為探討的熱點問題。
近年來,對于自然環境下果實的目標識別問題,針對番茄、獼猴桃、蘋果、柑橘等果實識別算法已有相關研究。在傳統機器視覺領域,多采用GrabCut分割算法[1]、Canny邊緣提取[2-3]、模糊聚類分割算法[4]、構建色彩模型分割的SVM分類器[5]、點云圖像的深度球截線分割[6],但以上這些方法主要基于果實顏色、形狀、紋理特征,在光照不均和復雜環境下算法的魯棒性和通用性差,其識別率無法滿足采摘機器人在多種復雜環境下的對果實的實時檢測。
相比傳統方法,深度學習中卷積神經網絡已廣泛應用于果實目標識別與檢測中,目前深度卷積神經網絡目標檢測模型主要分為兩類,一類是基于區域建議的檢測算法,代表如Faster RCNN[7]、Mask R-CNN[8];另一類直接將目標邊框定位的問題轉化為回歸問題處理,不需要產生候選框,代表如SSD[9]、YOLO[10]等。Yu[11]提出一種基于Mask R-CNN網絡模型和果實形狀的算法實現了成熟和未成熟草莓采摘點的視覺定位;岳有軍[12]提出一種基于原始Mask-RCNN網絡基礎上增加邊界加權損失函數實現復雜環境下的蘋果檢測;武星[13]提出一種同構殘差塊串聯的輕量化(Light-YOLOv3)網絡模型實現對蘋果的檢測;劉芳[14]提出一種改進型多尺度YOLO算法(IMS-YOLO)實現溫室環境下的番茄檢測;閆建偉等[15]提出改進感興趣區域的Faster-RCNN算法實現對自然環境下的刺梨檢測;薛月菊等[16]提出原始YOLOv2網絡基礎上替換密集連接網絡結構實現對遮擋和重疊的未成熟芒果的檢測;穆龍濤等[17]提出基于AlexNet卷積神經網絡模型對獨立獼猴桃的檢測。綜上可以看出深度學習已顯示更好的優越性。由于菠蘿存在人工采摘成本高,且菠蘿果實表面的紋理與周圍土地、枯葉顏色相近,目前還沒有卷積神經網絡應用于菠蘿檢測的相關文獻,基于此本文提出改進的YOLOv3[18]卷積神經網絡模型來實現田間復雜環境下的單類別待拾撿菠蘿的定位,為農業拾撿機器人自主拾撿果實奠定基礎。
本文在研究拾撿機器人在田間拾撿菠蘿等各種環境下的實際采摘畫面后,人工設置菠蘿拾取環境,白天采集待拾撿菠蘿三種干擾狀態下圖像,如圖1所示。由于菠蘿的果實顏色、紋理在不同光照條件下容易受環境干擾,單獨采取R-G色差分割模型(圖2)受不同環境下的光照和背景的干擾,無法適應所有環境下的果實識別。因此考慮采取深度卷積神經網絡的端到端的訓練自適應學習菠蘿識別所需要的特征,最終實現多種環境下的菠蘿定位。

(a) 重疊果實

(a) 重疊果實
如圖3所示,本文對采集的數據進行數據擴增,對原始圖像進行旋轉變換,旋轉角度隨機選取-30°~30°,并通過平移、翻轉、縮放、剪裁等幾何變換方式擴展數據集;通過調整圖像的亮度、對比度、高斯濾波等進行數據增強,篩選出數據集為1 000張。將數據集使用labelImg工具對圖像中果實采用矩形框人工標記,其操作界面如圖4所示,標注信息采用PASCAL VOC數據集的格式存儲,每組數據分別包含識別目標果實的類別序列、目標果實中心點的橫坐標、縱坐標以及目標的寬和高。

(a) 旋轉剪裁

圖4 labelImg操作界面圖
本文主要針對果實單類別檢測問題,原YOLOv3網絡定義的錨點框和網絡的層數不適用于田間復雜環境下單類別菠蘿的拾撿識別研究,因此,本文首先利用K-mean聚類算法對果實數據集進行聚類分析,然后基于深層殘差網絡對單類別識別果實修改網絡的層級結構。
YOLOv3吸收了當前主流的殘差網絡(ResNet)和特征金字塔(FPN)檢測思想,使用基于殘差網絡改進的Darknet53網絡作為特征提取器,將原始圖片縮小到416×416大小,采用類似FPN結構將特征圖的尺度大小劃分為S×S個等大的單元格后,通過K-means算法對數據集樣本進行聚類分析后,生成13×13、26×26、52×52大小的三個尺度特征圖,分別對應深層、中層與淺層的特征,使用2倍的上采樣使特征圖在相鄰兩尺度上傳遞。且每一個單元格借助3個錨點框(anchor box),一共產生(13×13+26×26+52×52)×3=10 647個邊界框。如圖5所示,卷積神經網絡在每個單元格上的每個邊界框預測4個值分別記為tx,ty,tw,th作為預測目標中心坐標和目標的寬與高,當目標中心在單元格中相對于圖像左上角的存在偏移(cx,cy),對應錨點框的高度和寬度分別為pw,ph,則對應修正的邊界框的預測關系如式(1)。
bx=σ(tx)+cx
by=σ(ty)+cy
bw=pwetw
(1)
bh=pheth
式中:σ——Sigmoid函數,作用是將坐標偏移量轉化到[0,1]區間;
bx,by——預測框的中心坐標;
bw,bh——預測框的寬和高。

圖5 YOLOv3中預測值示意圖
基于YOLOv3中對于初始錨點框的選擇影響網絡對目標的檢測精度和速度,YOLOv3中通過COCO數據集中采用歐式聚類計算得到的9組先驗框維度分別為(10,13),(16,30),(33,23),(30,61),(62,45),(59,119),(116,90),(156,198),(373,326),但不適用于實際中只檢測單類別果實場景,因此本文通過K-means算法采用矩形框的平均交互比(Avg IOU)作為度量,定義聚類的Avg IOU目標函數
(2)
式中:box——單個樣本中果實目標;
centroid——果實目標中心;
nk——第k個聚類中心中樣本的個數;
p——樣本的總數;
k——簇的個數;
IIOU(box,centroid)——簇的中心框和聚類框的重疊比;
m——樣本序號;
n——聚類中心中的樣本序號。
選取合適的IOU值保證果實檢測的速度和精度,分別選取簇的數量k=1~10對果實數據集進行維度聚類分析,得出平均交并比與k的關系如圖6所示。
在k=9時曲線變的平穩,考慮本文果實數據集的尺度變換,選擇數量為9的先驗框:(34,62),(61,114),(86,118),(114,148),(55,73),(46,50),(51,92),(25,37),(74,91),將其面積按從小到大排序后均分到3個不同尺度實現較大、中等、較小的感受野中定位菠蘿圖像區域。

圖6 錨點框數量k與平均交并比(Avg IOU)的關系圖
在田間復雜環境下采集的圖像,雖然受到光照強度、雜草背景等干擾,但由于本文只針對單類別果實進行識別,需要縮減原始YOLOv3網絡結構,考慮殘差網絡[19]的思想,采用深層殘差網絡作為提取網絡,考慮特征金字塔(FPN)原理,構造如表1的網絡結構。

表1 提取單類別果實特征的深度殘差網絡結構

圖7 改進的YOLOv3果實識別算法
表1中Type表示網絡中每一層的類型,Filters表示卷積核的個數,Size表示卷積核的大小,Output表示輸出特征圖的大小,左側1×、2×、3×表示殘差塊堆疊的個數。改進的YOLOv3果實識別算法如圖7所示,首先采用24維度的3×3的卷積核過濾416×416的輸入圖像,然后采用36維度3×3的卷積核,以步長為2個像素卷積操作,通過2倍下采樣實現208×208的特征圖;類似地在網絡中通過1×、2×、3×、3×、2×的5組殘差模塊,殘差模塊間連接步長為2的3×3的卷積核,將下采樣中使用殘差單元的次數減少降低網絡深度,分別獲得52×52、26×26、13×13的特征圖后,與圖7中卷積層分成的3個分辨率相同的特征圖分支進行2倍上采樣后,將相同尺寸的特征圖進行級聯輸出3種不同尺度的圖像,最后通過非極大值抑制(NMS)算法,對輸出圖片上的多個預測框和單個預測框的置信度,采取如下算法。
1) 按照預測框的置信度的得分,對所有預測框降序排列,記錄排列的索引,新建一個列表作為最后篩選的邊框索引結果。
2) 將排序的第一個置信度最大的預測框作為當前框保留在列表中,計算其與剩余預測框的交并比(IOU)值。
3) 設定交并比(IOU)值的閾值,僅保留索引中IOU小于設定閾值的預測框,重復Step2,直到索引中僅剩下最后一個預測框,將其保留到列表中后退出循環。
基于PASCAL VOC數據集識別了80個類別目標,但本文只針對單目標的田間待拾撿的菠蘿定位,不需要預測多類別,因此在原有的YOLOv3損失函數的基礎上,刪除預測類別的損失,改進的損失函數

(3)
式中:s——劃分的網格數;
B——每個網格中預測的先驗框的個數;
λc o o rd——調節樣本中心點位置損失的權重,減少邊界框不包含果實目標的置信度預測損失,這里設置為5;
obj——該框對應了果實區域;

xi、yi、wi、hi——預測框果實目標的中心點橫縱坐標、寬、高;


式(3)中第一項為果實樣本中心點坐標的損失,第二項為果實樣本寬高的損失,第三項為樣本置信度損失。
本文試驗基于Darknet神經網絡框架實現果實定位網絡。試驗的計算機配置為PC Intel(R)Xeon(R)CPU E5-2673v3@2.40 GHz、11 GB的GPU GeForce GTX 1080Ti和32 GB的運行內存。果實識別程序基于Python語言編寫在TensorFlow框架下并調用CUDA、Cudnn、Opencv庫在Windows10系統下運行,訓練參數設置每批量樣本個數為64,動量因子設置為0.9,權值衰減設置為0.000 5,起始學習率設為0.001,非極大抑制設為0.5。
本文針對田間待拾撿果實識別結果作出評價,主要由召回率R、準確率P和精度均值mAP來評價模型檢測單類別果實的性能,其計算公式如式(4)~式(6)所示。

(4)

(5)

(6)
式中:TP——被模型正確識別果實數量的正樣本;
FN——果實數目被模型識別為干擾環境的正樣本;
FP——被模型識別干擾環境為果實數目的負樣本。
模型訓練過程中的損失變化如圖8所示,改進的YOLOv3模型剛開始迭代時損失值很大,但經過大約100次迭代后逐步趨于穩定,震蕩幅度很小。

圖8 損失(Loss)值隨迭代次數的變化曲線
將本文算法模型與原YOLOv3網絡模型對比,識別效果如表2所示。由表2可以看出,減少網絡復雜度的情況下,本文算法在不降低檢測速度和檢測精度的情況下,試驗訓練環境下準確率達到了95.5%,召回率達到了93.4%,對比原網絡模型準確率、召回率分別提高了3.2%和2.8%,且本文算法檢測速度可以達到17.64幀/s,滿足后期農業機器人實際工況下的模型部署檢測要求。

表2 測試結果的算法對比

(a) 重疊果實
從圖9可以看出,本文改進的單類別果實識別YOLOv3算法,在重疊、雜草遮擋、密集條件下果實都能很好地被識別,模型具有很好的魯棒性。
1) 針對復雜環境下的田間路邊單類別菠蘿果實的拾撿識別,基于菠蘿的顏色、紋理、形狀等特征的傳統算法識別魯棒性、準確性和適應性不足情況下,本文提出采用深層殘差網絡和特征金字塔改進YOLOv3網絡結構,并基于果實數據集中果實目標框的K-means 聚類分析改進先驗框的尺度,通過減少殘差單元次數降低網絡深度,降低了計算量。
2) 通過檢測精度和檢測速度等評判依據,本文算法在減少網絡復雜度的情況下,試驗訓練環境下保證了檢測速度和檢測精度,準確率達到了95.5%,召回率達到了93.4%,對比原網絡模型分別提高了3.2%和2.8%,且可以達到17.64幀/s的檢測速度,本文提出的改進算法具有一定的可行性和優越性。
3) 為了提高果實拾撿機器人的對多目標識別定位能力,后續將考慮在數據集的多樣性和平衡性上擴增數據集,提高小目標果實的識別正確率和識別實時性,并考慮田間多類別果實的識別作為下一步研究方向。