李國進,黃曉潔,李修華,艾矯燕
(廣西大學電氣工程學院,南寧 530004)
采收是水果產業中的一個重要環節,但目前中國的果實采摘作業基本依靠人工完成,需要耗費大量的勞動力,造成果園生產成本較高[1]。要實現水果采摘作業自動化,首要解決的問題是對果實目標快速、精確識別與定位。高效的果實目標檢測方法是實現果實產量估計、精準農業和自動化采摘的關鍵技術之一。基于傳統機器學習或當代深度學習的果實檢測模型很少充分考慮到目標檢測的實時性,不能很好地滿足葡萄采摘機器人快速識別與定位葡萄果實的需求。因此,利用計算機視覺快速、準確地檢測果園場景下的葡萄,研發葡萄采摘機器人具有較大的應用價值與重要的現實意義。
近年來,國內外許多研究者提出了不同的目標識別與定位算法,完成對果園場景下的葡萄檢測任務[2-6]。馬本學等[7]運用不同顏色空間、閾值分割法及形態學運算識別不同顏色和光照強度下的葡萄,在晴天順光、晴天逆光與夜間3種條件下,綠色葡萄的識別率分別為93.3%、86.7%和96.7%,紫色葡萄的識別率分別為90.0%、83.3%和96.7%,但該方法未考慮到陰雨天氣條件下的葡萄識別。Rodrigo等[8]采用定向梯度直方圖作為形狀描述子,利用局部二進制模式獲取紋理信息,最后通過支持向量分類器對葡萄進行分類,葡萄檢測的準確率為88.61%,召回率為80.34%,但該方法的泛化性不高。羅陸鋒等[9]提出一種基于改進K-means聚類圖像分割、輪廓分析與幾何約束建模相結合的雙串疊貼葡萄目標識別算法,對疊貼葡萄識別的成功率達88.89%,算法處理每張圖像的時間在0.59~0.68 s之間,識別速度較慢。Thiago等[10]采用掩碼區域卷積神經網絡(Mask Regions with Convolutional Neural Network,Mask R-CNN)算法完成對田間葡萄的實例分割,在交并比(Intersection over Union,IoU)閾值為0.5的條件下,獲得的F1分數為0.847,但該算法要求對數據集圖像中的葡萄以像素點為單位進行標注,標注工作十分耗時,且實時性一般。此外,基于深度學習的其他各類果實的目標檢測算法依次被提出[11-13]。Tian等[14]采用密集網絡改進YOLOv3算法的低分辨率特征提取卷積層,用于檢測不同生長階段的蘋果,獲得的F1分數為81.7%,每幅圖像的平均檢測時間為0.304 s,檢測速度較低。閆建偉等[15]將Faster R-CNN算法中的感興趣區域池化改進為感興趣區域校準的區域特征聚集方式,算法對11類刺梨果實檢測的F1分數為87.50%~94.99%,平均速度為0.2 s/幅,未達到實時檢測速度。
上述果實檢測方法未能很好地平衡檢測精度與速度,因而適用性不強。為了保證檢測方法具有較高精度的同時,還具備更高的實時檢測速度,實現葡萄果實高效的機器采摘,本研究提出了基于輕量級網絡MobileNetV2的釀酒葡萄檢測模型,該模型對YOLOv3算法的骨干網絡、多尺度檢測模塊和YOLO損失函數進行改進,在檢測葡萄的速度和精度上擁有較高的性價比,可應用于田間釀酒葡萄果實機器采摘的快速視覺檢測。
本研究采用公開的田間釀酒葡萄實例分割數據集(Wine Grape Instance Segmentation Dataset,WGISD)[16]作為試驗對象。該數據集由300幅葡萄圖像和300個用矩形框標注了4 432串葡萄的標注文件構成。其圖像拍攝于2017年4月27日和2018年4月27日,在巴西圣保羅的瓜斯帕里酒莊內的葡萄園采集。葡萄品種分別為霞多麗、品麗珠、赤霞珠、長相思和席拉。使用Canon EOS REBEL T3i DSLR型相機(日本)和Motorola Z2 Play型智能手機(巴西)距離葡萄1~2 m進行拍攝,前者拍攝了240幅包含5個品種的分辨率為2 048×1 365像素的葡萄圖像,后者拍攝了60幅只包含除了席拉以外4種類別的葡萄圖像,分辨率為2 048×1 536像素。WGISD數據集的基本信息如表1所示。部分葡萄數據集圖像如圖1所示,其中包含了不同天氣條件下和不同顏色的葡萄。

表1 葡萄數據集基本信息Table 1 General information about the grape dataset
對于果實類的目標檢測算法,應綜合考慮算法檢測目標的準確性和實時性,以滿足采摘機器人進行高效采摘作業的需求。為了更加快速、準確地檢測出田間的葡萄,實現葡萄果實高效的機器采摘,降低人工采摘作業造成的高成本,本研究提出WGDM葡萄檢測模型。該模型首先采用在圖像識別上具有模型小、速度快和精度高的輕量級網絡MobileNetV2[17]作為骨干網絡進行特征提取,在基本不影響檢測精度的同時可大幅度提高檢測速度、減小目標檢測模型和浮點運算量,并參照Res2Net[18]和文獻[19-20]提出的損失函數的思想分別對多尺度檢測模塊和損失函數進行改進,進一步提高目標檢測的準確性。
1.2.1 骨干網絡的選擇
本研究采用MobileNetV2網絡作為改進的骨干網絡,完成對葡萄圖像的目標特征快速提取任務。MobileNetV2網絡是基于MobileNetV1網絡[21]的改進,其繼續沿用了MobileNetV1網絡中的深度可分離卷積(Depthwise Separable Convolutions,DSC),并引入包含線性瓶頸塊的倒殘差模塊,有效提高了應用在移動端的圖像分類和檢測任務的精度。
深度可分離卷積由深度卷積(Depthwise Convolution,DWConv)操作和逐點卷積(Pointwise Convolution,PWConv)操作組成。前者是在輸入的每個通道維度上執行單個卷積核大小為3×3的卷積操作,后者通過執行卷積核大小為1×1的標準卷積操作組合所有輸入通道維度上的特征而構建改進的特征。標準卷積的計算量與DSC相差k2倍(k為卷積核大小)。MobileNetV2網絡使用k=3(即3×3 DSC),因此在不犧牲精度的條件下,其計算量僅為標準卷積的1/9~1/8。
對低維度卷積層做修正線性單元(Rectified Linear Unit,ReLU)激活函數運算,很容易造成特征信息的丟失;而在高維度卷積層進行ReLU激活函數運算,可以減少信息的丟失。因此,MobileNetV2網絡在瓶頸塊的低維度卷積層中不使用激活函數,即采用線性瓶頸層,在其他層采用MobileNetV1網絡中提出的更適合量化網絡的ReLU6激活函數,防止非線性層破壞太多的特征信息。
MobileNetV2網絡的瓶頸塊結構如圖2所示,其中的倒殘差模塊主要用于促進多層特征信息的有效傳遞,增強網絡的特征提取能力。倒殘差模塊的輸入首先經過卷積核大小為1×1的卷積進行通道擴張,然后使用卷積核大小為3×3的深度卷積提取特征,最后通過線性瓶頸層中卷積核大小為1×1的逐點卷積,將通道維度進行壓縮。當MobileNetV2網絡中使用的瓶頸塊數>1時,瓶頸塊中包含倒殘差模塊,否則不含倒殘差模塊。
MobileNetV2網絡的具體參數如表2所示。其中,步長在瓶頸塊中指第一個深度卷積層使用的步長,其他未定義情況下使用的步長為1。

?
1.2.2 多尺度檢測模塊改進
為了更有效地進一步提取小目標的葡萄特征,本研究借鑒Res2Net模塊的思想[18],并將Res2Net模塊的快捷連接修改為串聯拼接,以獲取更多的葡萄特征,由此得到的M-Res2Net模塊用于替換多尺度檢測模塊中的部分卷積層,加強網絡的多尺度特征提取能力,從而提高小目標識別的精度。Res2Net模塊、M-Res2Net模塊分別如圖3a、3b所示,其中Conv1×1的通道維度為C,Conv3×3的通道維度為C/4。在M-Res2Net模塊中,輸入特征圖X0經過Conv1×1操作后被分為通道維度(即特征圖個數)相等的4組特征圖X1、X2、X3和X4;X1輸入到Conv3×3操作進行特征提取得到特征圖Y1,而Y1和X2同時輸入到另一個Conv3×3操作后輸出特征圖Y2;以此類推,可得到特征圖Y3;最后將特征圖Y1、Y2、Y3、Y4(即X4)和輸入X0進行串聯拼接后輸出。M-Res2Net模塊的輸出特征圖Y含有2C個特征圖,特征圖個數是Res2Net模塊輸出的2倍,因而特征信息更豐富。
1.2.3 定位損失函數改進
由于目標檢測任務需要解決目標的分類和定位問題,所以在網絡的訓練過程中,必須平衡分類損失和定位損失。針對WGDM模型訓練中出現定位損失函數相對分類損失函數較大并且定位不準確的問題,在YOLO損失函數[22]中,采用平衡損失函數[19]作為改進的定位損失函數,在分類和定位之間實現更加平衡的訓練,從而提高目標定位的準確性。平衡損失函數Lbl1定義如式(1)所示:
式中x為預測邊界框坐標與真實標記邊界框坐標的差值。
為縮小模型性能在訓練與測試階段產生的差距,在定位損失函數中除了使用平衡損失外,增加IoU損失函數,促進模型檢測準確率的提升。IoU、IoU損失函數LIoU和改進的定位損失函數LNloc定義如式(2)~(4)所示:
式中b1和b2分別為用于定位目標的2個矩形邊界框。
1.2.4 WGDM網絡結構
WGDM網絡將YOLOv3算法[23]中的DarkNet53網絡替換為MobileNetV2網絡,并在多尺度檢測模塊中,將3組卷積核大小為1×1、3×3的卷積層改為M-Res2Net模塊。原始的YOLOv3網絡結構和本研究提出的WGDM網絡結構如圖4所示。在WGDM網絡中,輸入圖像經過MobileNetV2網絡進行特征提取后,輸出32個分辨率為76×76像素、96個分辨率為38×38像素和320個分辨率為19×19像素3種尺度的特征圖;在改進的多尺度檢測模塊中通過3組M-Res2Net模塊、一系列Conv1×1、Conv3×3操作、2倍上采樣和串聯拼接等操作,實現相鄰尺度的特征融合和多尺度預測。
YOLO檢測過程包括模型訓練和測試階段。在訓練階段,WGDM模型將網絡輸出的預測框信息與輸入的真實標記框信息建立損失函數,并通過訓練極小化損失函數。在測試階段,模型對輸入的每張測試集圖像進行預測,輸出包含目標類別和位置的預測框信息,完成對田間葡萄的目標識別與定位任務。
本試驗采用Python 3.7.4環境下的PaddlePaddle 1.8.4深度學習開發框架,計算機配置為Intel Xeon(R) Gold 6271C CPU、英偉達Tesla V100顯卡、2.6 GHz主頻和32 GB內存。使用的操作系統為Ubuntu16.04.10,NVIDIA 418.67驅動,CUDA 10.1版本。
在模型訓練階段,使用的9個錨框大小分別為25×29、33×41、29×59、53×47、41×65、42×87、59×79、55×117和80×140像素,設定網絡中的動量優化器的動量大小為0.9,衰減系數為0.000 5,訓練迭代次數為9 000次,初始學習率為0.001,使用余弦學習率策略更新學習率,目標類別數為1,每個迭代訓練輸入的樣本數(即批次大小)為16,并從多尺度集{320,352……608}中隨機選擇一個尺度作為輸入圖像的大小進行訓練。在測試階段,輸入圖像的分辨率為608×608像素,批次大小為8,IoU閾值為0.5,類別分數閾值為0.133。
本試驗采用目標檢測中常用的F1分數[24]、平均精度(Average Precision,AP)、浮點運算量[25](Floating-point operations,FLOPs)、每幅圖像的平均檢測時間和網絡結構大小作為模型的評價指標。其中,F1分數為平衡準確率(Precision,P,正確預測框在所有預測框中所占的比例)與召回率(Recall,R,正確預測框在所有真實標記框中所占的比例)的度量函數。準確率P、召回率R和F1分數的計算如式(5)~(7)所示:
式中TP表示模型預測正確的預測框數量;PT表示所有預測框數量;GT表示所有真實標記框數量。
AP的計算方式與準確率和召回率有關。根據每一個不同的R值(包括0和1),選取其大于或等于該R值時所對應的最大P值,得到P-R曲線,然后通過式(8)近似計算P-R曲線下的面積作為AP值[26]。
式中N表示數值不相等的召回率個數;Ri表示第i個召回率。
消融研究試驗是為驗證各種改進策略對目標檢測模型產生的有效性而采取的一系列試驗。為展示模型采用每個改進方法的有效性,本研究以遞增的方式利用測試集的58幅葡萄圖像進行驗證,結果如表3所示。其中,模型A表示原始YOLOv3算法;模型B表示在原始YOLOv3算法中采用輕量級網絡MobileNetV2替換DarkNet53網絡作為骨干網絡;模型C表示在方法B的基礎上,在多尺度檢測模塊中采用了Res2Net模塊;模型D表示在模型B的基礎上,在YOLOv3算法的多尺度檢測模塊中采用了M-Res2Net模塊;本研究提出的WGDM模型在模型D的基礎上,采用平衡損失和IoU損失函數作為改進的定位損失函數。與模型A相比,模型B雖然檢測葡萄的F1分數降低了0.006 3,但是平均精度提高了0.73個百分點,浮點運算量和網絡結構分別為模型A的27.34%和36.60%,平均檢測一幅葡萄圖像的時間反為模型A的48.15%。模型C模型的浮點運算量、網絡結構、平均檢測時間達到了最小,分別為9.55×109、41 MB和6.06 ms,但平均精度與模型A、B相差較大;模型D通過采用本研究提出的M-Res2Net模塊獲取更多的葡萄特征,與模型C相比,雖然浮點運算量和網絡結構大小分別增加了5.9×108和3 MB,但F1分數和平均精度分別提高了0.010 7和2.57個百分點。本研究提出的WGDM模型浮點運算量和網絡結構較小,平均精度僅比方法D低了0.42個百分點,而召回率和F1分數達到最高,分別為84.82%和0.856 3,表明其更好地平衡了檢測精度、浮點運算量、網絡結構大小和檢測速度。

表3 不同模型消融研究試驗結果Table 3 Ablation study of different models
在測試階段,采用本研究提出的WGDM模型利用葡萄測試集的圖像進行測試,其中檢測葡萄目標的可視化過程如圖5所示,不同自然場景葡萄串檢測的部分結果如圖6所示。由圖5可知,MobileNetV2網絡對輸入的葡萄圖像進行了初步的特征提取,輸出的3種不同尺寸的特征圖只包含了局部的特征識別信息;而隨著改進的多尺度檢測模塊的進一步特征提取,網絡獲取了包括葡萄位置的全局特征信息,最終經過YOLO層預測輸出帶有類別和位置信息的葡萄圖像;說明了提出的WGDM模型能夠有效檢測出葡萄目標。
由圖6可知,本研究提出的WGDM模型對于不同天氣、不同光照、顏色和形狀等條件下的葡萄圖像,均具有較準確的識別和定位效果。
為驗證本研究模型的可行性和有效性,在相同的試驗條件下,采用SSD[27]、YOLOv3、YOLOv4[28]和Faster R-CNN[29]4種不同模型對葡萄數據集進行訓練與測試,其檢測性能與本研究模型WGDM的比較如表4所示。由于模型的浮點運算量(即FLOPs)與輸入圖像分辨率相關,根據輸入圖像分辨率的最大值(800×800像素)和最小值(1 333×1 333像素),可計算出Faster R-CNN模型的浮點運算量范圍為66.14×109~185.11×109。由表4可知,YOLOv3模型檢測葡萄的準確率最高,為88.15%;SSD模型的召回率最低,只有79.94%;YOLOv4模型的召回率最高,為85.53%,準確率卻最低,為77.75%;而本研究提出的WGDM模型獲得的F1分數最高,達到了0.856 3,說明了本研究模型更好地平衡了檢測的準確率與召回率。另外,SSD模型的平均精度僅有73.05%,模型浮點運算量較大,而其檢測速度較快,網絡結構較小;YOLOv3模型的平均精度較高,為80.10%,但其網絡結構最大,同YOLOv4模型一樣為235 MB;YOLOv4和Faster R-CNN模型的平均精度和檢測速度較低,其復雜的網絡結構可能不適用于單一類別的葡萄目標檢測,并且Faster R-CNN模型平均每幅圖像的檢測時間為164.49 ms,檢測速度最慢;本研究提出的WGDM模型的平均精度為81.20%,檢測一幅圖像的平均耗時為6.29 ms,比SSD、YOLOv3、YOLOv4分別減少了4.91、7.75、14.84和158.20 ms,說明其檢測的實時性更佳,并且浮點運算量僅有10.14×109,網絡結構大小只有44 MB。與其他4種主流的目標檢測模型相比,本研究提出的WGDM模型在檢測的精度、速度、浮點運算量與網絡結構大小方面都具有更大的優勢,能夠滿足對葡萄果實的高效檢測任務。

表4 不同檢測模型性能對比Table 4 Performance comparison of with different detection models
SSD、YOLOv3、YOLOv4、Faster R-CNN和本研究的WGDM幾種模型對于文件名為CFR_1666.jpg的圖像(簡稱圖像1)和文件名為SVB_1959.jpg的圖像(簡稱圖像2)的檢測結果如表5所示。由表5可知,在圖像1和圖像2兩幅圖像中,YOLOv3模型能正確檢測出的葡萄數量最少,為29串;YOLOv4模型沒有漏檢葡萄,但其錯誤檢測出的葡萄數量最多,為10串;本研究提出的WGDM模型雖然漏檢了一串葡萄,但能正確檢測出的葡萄數量最多,達到了32串,并且沒有錯誤檢測葡萄,說明其檢測葡萄目標效果更好。

表5 不同模型葡萄圖像檢測結果對比Table 5 Detection results of grape images with different models
1)本研究針對果園場景下的葡萄,提出了一種基于輕量級網絡的釀酒葡萄檢測模型(Wine Grape Detection Model,WGDM)。采用目標識別速度快、精度高的MobileNetV2網絡完成對葡萄圖像的特征提取,加強多層特征信息的有效傳遞和減小模型計算量,增大了目標檢測速度;在多尺度檢測模塊中將部分卷積層改為M-Res2Net模塊,使模型獲取更多的葡萄特征,并在定位損失函數中使用平衡損失函數和交并比(Intersection over Union,IoU)損失函數,在保持高速度檢測的同時,提高了目標識別精度。
2)提出的WGDM模型最終在釀酒葡萄測試集上獲得81.20%的平均精度,F1分數為0.856 3,平均每幅葡萄圖像的檢測時間僅需6.29 ms,浮點運算量僅有10.14×109,網絡結構大小為44 MB,均優于單發檢測器(Single Shot Detector,SSD)、YOLOv3、YOLOv4和快速區域卷積神經網絡(Faster Regions with Convolutional Neural Network,Faster R-CNN)模型。
本研究提出的WGDM模型對于重疊面積超過一半的葡萄串的定位還不夠理想,今后將深入研究如何提高嚴重重疊的小目標檢測性能。