隨著電子和機械技術的快速發展,以機器人科技為代表的智能產業獲得了飛速發展,已經成為現代科技創新的一個重要標志。現代水果種植迫切需要一種能夠自動采摘的自動設備,以提高采摘和分類的生產效率。為此,提出了一種基于機器視覺及深度學習的采摘機器人目標識別技術,可以實現對橘柑的自動識別。
采摘機器人識別系統的硬件部分是整個系統重要組成部分,包括工業相機、鏡頭、光源和運動控制器。
采摘機器人識別系統由圖像采集、圖像處理識別和運動控制3個部分組成,如圖1所示。

圖1 采摘機器人識別系統框架圖Fig.1 The frame diagram of picking robot recognition system
采摘機器人識別系統各部分功能如下:
1)圖像采集:通過調節光源,使用圖像采摘裝置獲取待識別水果目標。
2)圖像處理識別:對圖像采集系統采集到的水果圖像進行預處理,再利用圖像分析算法對預處理后的圖像進行分析處理,識別圖像上水果目標。
3)運動控制:根據待識別目標位置,圖像采集裝置進行運動,以方便其能獲取清晰的圖像。
采摘機器人識別系統主要包括PC機、工業相機、直流電源、光源和鏡頭,如圖2所示。

圖2 采摘機器人識別系統的硬件架構圖Fig.2 The hardware architecture of picking robot recognition system
1)光源。光源對機器視覺的圖像質量影響非常大,為了工業相機能夠獲取質量好的圖像,需要選擇好合適的光源,確保能獲取穩定的高質量圖片。另外,選擇合適的光源,可以降低周邊環境的影響及圖像處理算法的難度,從而提高整個識別系統的效率和精度。
經過對整個系統的綜合考慮和多次打光調試,選擇了德國Basler公司的60x60-Blue Camera Light。該光源可以將光線均勻地照射在水果目標上,沒有虛影產生,且圖像清晰度高,能夠明顯提高目標和背景之間的對比度,可保證相機能夠獲取較好的圖像。光源實物如圖3所示。

圖3 Basler 60x60-Blue camera light實物圖Fig.3 The physical diagram of Basler 60x60-Blue camera light
2)工業相機。在進行機器視覺系統設計時,工業相機是核心部件,其重要的參數是分辨率和幀率。傳感器是工業相機的核心,目前主要有CCD 和 CMOS 兩種傳感器。在此,選擇德國Basler公司的daA3840-45uc相機,配備USB 3.0接口,內部采用Sony IMX334 CMOS芯片,可在830萬像素的分辨率下提供45fps的幀速率。相機實物如圖4所示。

圖4 Basler daA3840-45uc相機Fig.4 Basler daA3840-45uc camera
深度學習框架是深度學習的工具,采用高效框架設計算法,可以提高算法處理速度。在此,采用深度學習框架對采集到的圖像進行處理分析,主要是使用基于深度學習的目標檢測算法,常用的目標檢測算法有R-CNN、SPPNet、Faster R-CNN、YOLO、SSD及Retina-Net等。
本文采用SSD(Single Shot MultiBox Detector,SSD)算法對水果目標進行目標識別。SSD和其他目標檢測算法不同,其預測真實框并不包括選取候選的目標區域,可采用不同大小的特征圖對目標物體進行標識和測量。SSD是利用小型卷積算法對目標特征邊框偏移和分類進行檢測和識別,通過采用非極大值抑制的算法,對重復框進行反復篩選。而卷積神經網絡排在比較前面的特征圖都比較大,適合識別較小的目標,而隨著網絡深度的逐漸加大,算法會將尺度設置為2或利用池化層,使特征圖減小,以便檢測大目標的特征。不同尺度的特征圖如圖5所示。

圖5 不同尺度的特征圖Fig.5 The characteristic maps of different scales
圖5中,8×8的特征圖容易識別較小的目標,而4×4的特征圖則容易識別較大的目標。
SSD目標檢測算法的特征提取示意如圖6所示。

圖6 SSD目標檢測算法的特征提取示意圖Fig.6 The schematic diagram of feature extraction of SSD target detection algorithm
SSD算法根據不同像素點選擇不同尺寸的特征圖檢測框,這些檢測框包括不同大小和長寬比。在檢測算法訓練過程中,需要采用不同的檢測框和圖像中標注的檢測框進行算法匹配,從而實現對目標圖像的樣本提取。
SSD的基礎是VGG-16網絡,為了獲取更多的特征圖,在此基礎上引入了新的卷積層,從而獲得更多尺度的特征圖。經過卷積處理后,得到了類別置信度和邊界框的位置。SSD算法的網絡結構如圖7所示。
SSD算法對目標圖像的預測流程如下:
1)過濾算法背景的預測框;
2)選擇有橘柑真實背景的矩形框,將置信度高的保留下來,并將其作為置信度值;
3)手動設置閾值為0.58,將閾值小于0.58的橘柑矩形框去掉;
4)根據橘柑果實的置信度,選擇置信度較高的前k個橘柑預測框;
5)利用非極大值抑制(Non-Maximum Suppression,NMS)算法,過濾掉重疊較大的橘柑果實的預測框;
6)最后留下的預測框,就是橘柑果實的最終預測框。

圖7 SSD算法的網絡結構圖Fig.7 The network structure diagram of SSD algorithm
SSD目標檢測算法的損失函數L(x,c,l,g)是用于衡量模型所作出的預測離真實值(Ground Truth)之間的偏離程度,包括類別置信損失Lconf和定位回歸損失Lloc,為二者的分類和回歸的帶權加和,其損失函數L(x,c,l,g)表達式為
(1)

類別置信算損失函數Lconf(x,c)為多類別置信度熵的softmax loss,是基于Softmax歸一化指數函數推導出來的,表達式為
(2)

定位回歸損失L(x,l,g)則是基于范數平滑L1損失推導出來的,用來表示預測檢測框和真實標簽框的相關性。其表達式為
(3)
范數平滑L1是為了讓loss對于離群點更加魯棒,可以控制整個算法模型的梯度,確保模型在訓練過程中不易發生跑飛的情況,表達式為
(4)
采用SSD算法對目標水果圖像進行檢測,不需要從候選區域提取特征網絡,使能在單網絡結構中通過小幅度降低精度來提高檢測速度,實現對目標物體的快速識別。
為了驗證基于機器視覺及深度學習的采摘機器人目標識別技術,對其識別效果和識別準確率進行試驗研究。試驗在某橘柑種植基地進行,橘柑圖像在室外正常光線下采集。系統硬件環境:揚天P600,Basler daA3840-45uc工業相機,8核CPU 4.9 GHz,內存16GB,512G固態硬盤+1T機械硬盤,采摘機器人機械手平臺。軟件環境:Visual Studio 2015,OpenCV。其部分圖片如圖8所示。

圖8 顏色篩選和目標識別后的圖像Fig.8 The image after color filtering and target recognition
基于以上試驗平臺,拍取200幅橘柑圖像,選擇出100幅,將其中60幅作為算法訓練,40幅用來驗證目標識別算法。對提取到的顏色、形狀、輪廓半徑進行組合后,輸入到SSD算法進行訓練,結果如表1所示。
試驗中,分別對橘柑有枝葉和無枝葉遮擋的目標果實進行識別研究,且針對有枝葉遮擋的目標增加有外部光源補光的試驗,對以上3種情況的識別率和識別時間進行統計,結果如表2所示。

表1 SSD算法訓練結果Table 1 The training results of SSD algorithm

表2 橘柑目標識別試驗結果Table 2 The experimental results of orange target recognition
經過試驗分析可知:該采摘機器人目標識別技術在室外自然光線下對無遮擋橘柑的識別準確率為95%,對有枝葉遮擋的橘柑識別率為80%;在增加外部光源補光后,有枝葉遮擋的橘柑識別率有一定的提高;另外,3種試驗分別處理的時間為75ms,能夠滿足系統要求,證實了該方法的可行性。
為了實現對目標水果的準確識別,設計了一套基于機器視覺及深度學習的采摘機器人目標識別技術,結合SSD深度學習算法,可以實現對橘柑的精準識別。試驗結果表明:采摘機器人目標識別技術在室外自然光線下對無遮擋橘柑的識別準確率為95%,對有枝葉遮擋的橘柑識別率為80%,在增加外部光源補光后,有枝葉遮擋的橘柑識別率有一定的提高,證實了該方法的可行性。