黃明輝,程 忠
(長安大學(xué)工程機械學(xué)院,陜西 西安 710064)
經(jīng)過多年的快速發(fā)展,2019 年中國成為世界最大的蘋果生產(chǎn)國,蘋果種植面積和產(chǎn)量均占世界50%以上。目前,我國蘋果采摘作業(yè)仍主要依靠人工完成,但隨著中國城鎮(zhèn)化的發(fā)展,農(nóng)業(yè)從業(yè)人口急劇減少,人工成本大大增加,給蘋果產(chǎn)業(yè)的快速發(fā)展帶來了不利影響[1]。因此,應(yīng)用采摘機器人實現(xiàn)蘋果的自動化采摘是必然趨勢。近年來,計算機視覺技術(shù)已經(jīng)被廣泛地應(yīng)用于農(nóng)業(yè)自動化生產(chǎn)中[2],視覺系統(tǒng)是采摘機器人的重要組成部分,利用視覺系統(tǒng)對目標(biāo)蘋果進行識別與定位,是機器人進行采摘任務(wù)的關(guān)鍵環(huán)節(jié)之一,要想實現(xiàn)采摘機器人的高效采摘必須實現(xiàn)對目標(biāo)蘋果的準(zhǔn)確、快速識別與定位。
目前,許多學(xué)者對蘋果的目標(biāo)識別和定位方法進行了研究。曹春卿等[3]通過融合YOLOv3 和雙目視覺算法,實現(xiàn)了多種自然場景下蘋果的精準(zhǔn)識別和三維定位。趙德安等[4]提出一種基于YOLO 深度卷積神經(jīng)網(wǎng)絡(luò)的復(fù)雜背景下機器人采摘蘋果的定位方法,采用優(yōu)化的YOLOv3 深度卷積神經(jīng)網(wǎng)絡(luò)定位蘋果,實現(xiàn)了復(fù)雜環(huán)境下的蘋果識別與定位。張恩宇等[5]提出了一種SSD 深度學(xué)習(xí)算法與U 分量閾值分割法相結(jié)合的方法,取得了較好的識別效果。上述方法在高性能平臺上都能較為準(zhǔn)確地識別出不同場景下的蘋果目標(biāo),但需要大量的計算能力,難以在算力資源有限的嵌入式設(shè)備上進行快速、準(zhǔn)確的識別與定位。
蘋果采摘機器人識別與定位系統(tǒng)常部署在算力資源有限的嵌入式設(shè)備上,為了實現(xiàn)在算力資源有限的嵌入式設(shè)備上對目標(biāo)蘋果進行快速、準(zhǔn)確的識別與定位,本文提出了一種蘋果采摘機器人目標(biāo)識別與定位方法,對YOLOv4 進行輕量化改進,使用MobileNet V3 替換原有的CSPDarknet53 主干網(wǎng)絡(luò),減少模型的計算量,并結(jié)合ZED 雙目相機與定位算法構(gòu)建一種準(zhǔn)確、快速的蘋果采摘機器人目標(biāo)識別與定位方法。
蘋果目標(biāo)識別與定位的總體實現(xiàn)方法如圖1 所示,首先,進行蘋果數(shù)據(jù)集的收集與處理,并使用數(shù)據(jù)集進行模型訓(xùn)練,對蘋果的特征進行提取;其次,通過改進的YOLOv4 網(wǎng)絡(luò)模型實現(xiàn)蘋果的目標(biāo)檢測;最后,對ZED 相機進行標(biāo)定與校正,并通過立體匹配算法獲取視差圖,得到蘋果目標(biāo)的三維坐標(biāo),從而實現(xiàn)蘋果目標(biāo)的識別與定位。
圖1 總體實現(xiàn)方法
由于果園中蘋果生長的自然環(huán)境較為復(fù)雜,為了提高蘋果識別與定位的準(zhǔn)確性,在收集蘋果數(shù)據(jù)集時需要考慮以下幾種狀況:樹葉對蘋果的遮擋、枝干對蘋果的遮擋、混合遮擋、果實之間的重疊、不同時間與不同角度的蘋果圖像、順光與逆光角度下的蘋果圖像等[6]。本文針對上述幾種狀況,共收集蘋果數(shù)據(jù)集1 600 幅,部分數(shù)據(jù)集樣本如圖2 所示。對數(shù)據(jù)集進行處理,將蘋果圖片統(tǒng)一轉(zhuǎn)化為jpg 格式,使用LabelImg 標(biāo)注工具對數(shù)據(jù)集中每張圖片進行標(biāo)注,將蘋果標(biāo)注為英文單詞apple,并保存標(biāo)注后生成的XML 格式文件。最后將數(shù)據(jù)集按照8∶1∶1 劃分為訓(xùn)練集、驗證集和測試集。
圖2 蘋果樣本圖像
YOLOv4 算法[7]的檢測精度高,在實時檢測模型中具有領(lǐng)先地位。在網(wǎng)絡(luò)結(jié)構(gòu)中,YOLOv4 在上代版本的基礎(chǔ)上主要進行了三大改進:1)將主干網(wǎng)絡(luò)從Darknet53 替換為CSPDarknet53,作為特征提取網(wǎng)絡(luò),增強了特征提取的能力;2)采用空間金字塔池化模塊SPP(Spatial Pyramid Pooling)結(jié)構(gòu),在最后一個特征層的輸出中進行四個不同尺度的最大池化處理,有效提高了感受野,能夠提取出最顯著的上下文特征;3)將特征金字塔網(wǎng)絡(luò)FPN(Feature Pyramid Network)修改為路徑聚合網(wǎng)絡(luò)PANet(Path Aggregation Network),在FPN 的自底向上結(jié)構(gòu)中加入自頂向下結(jié)構(gòu),進一步提取和融合特征信息。
雖然YOLOv4 算法的檢測精度高,但算法本身的總參數(shù)量大,由于蘋果采摘機器人常使用嵌入式設(shè)備進行任務(wù)部署,算力資源有限,影響模型的檢測速度,難以滿足實時性要求。因此,為了有效提高模型的運行速度,本文對YOLOv4模型進行輕量化改進。
MobileNet V3[8]模型是谷歌針對嵌入式設(shè)備提出的一種輕量級的神經(jīng)網(wǎng)絡(luò)模型。本文將YOLOv4原有的CSPDarknet53 網(wǎng)絡(luò)替換為MobileNet V3,作為特征提取的主干網(wǎng)絡(luò)。MobileNet V3 使用特有的bneck 結(jié)構(gòu)進行特征提取,提高了網(wǎng)絡(luò)對于特征通道的敏感程度;同時,在深層網(wǎng)絡(luò)中使用性能更好的h_swish 激活函數(shù),代替?zhèn)鹘y(tǒng)計算耗時較長的swish 激活函數(shù),減少了網(wǎng)絡(luò)的計算量。改進后的網(wǎng)絡(luò)結(jié)構(gòu)圖如圖3 所示,在進行蘋果目標(biāo)檢測時,首先,輸入像素大小為416×416 的圖像,并采用尺度為52×52×40、26×26×112、13×13×160 的特征圖作為有效特征層。其次,將13×13×160 層輸入SPP 層進行最大池化處理,增大感受野,提高檢測精度。最后,將三個特征層輸入PANet 模塊,進一步提取和融合特征信息,并通過Yolo Head 得到預(yù)測結(jié)果[9-10]。
圖3 改進后的YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)圖
本文用平均精度(AP)來評價模型檢測精度的好壞,如公式(1)所示。并使用FPS 評價模型的檢測速度。
式中,P為精確率,R為召回率。
ZED雙目相機是通過左右相機的視差圖來計算深度信息的[9],測距原理如圖4 所示。假設(shè)左右兩個成像平面共面、光軸平行,兩成像點只在x坐標(biāo)軸上存在偏移。某個目標(biāo)點M的深度Z可由公式(2)計算。
圖4 相機測距原理
其中,f為焦距,B為兩相機的基線距離,xl、xr分別為M點在左、右兩個圖像中像素點的橫坐標(biāo),xl-xr為視差值,Ml、Mr是M點在左、右相機成像平面中對應(yīng)的成像點,Ol、Or是左、右相機的光心。由公式可以看出,深度Z的變化與基線成正比,與視差成反比。
由公式(2)計算出的是圖像中某個目標(biāo)點的深度值,若計算出圖像中所有像素點的深度值就可以得到一幅深度圖,通過ZED 相機采集的一幅深度圖如圖5所示。深度圖是以灰度圖的方式展現(xiàn)的,圖中灰度值的范圍為0~255,深度圖像中越白的地方代表著灰度值越大,也代表著距離越近[10]。
圖5 ZED相機獲取深度圖
為了獲取像素坐標(biāo)和世界坐標(biāo)系下的坐標(biāo)變換關(guān)系,需對相機進行標(biāo)定,獲取相機的內(nèi)外參數(shù)。本文使用的相機為ZED 雙目相機,其在生產(chǎn)過程中已預(yù)先對參數(shù)進行了專業(yè)標(biāo)定和校準(zhǔn),通過查閱設(shè)備的官方網(wǎng)站,查詢到通過A P I 函數(shù)getCameraInformation()可獲取相機的標(biāo)定參數(shù),調(diào)用API函數(shù)即可得到相機的標(biāo)定參數(shù),如表1 所示。
表1 ZED雙目相機標(biāo)定參數(shù)
本文提出的模型訓(xùn)練在Ubuntu 18.04 操作系統(tǒng)、GPU為NVIDIA GeForce RTX 3050的計算機上進行,并配置了Cuda 11.3、Cudnn 8.2.1、Pytorch 1.10.2、Python 3.6 等。模型測試平臺除上述高性能計算機外,還配置了一臺搭載了Cuda 10.2、Cudnn 8.0.0 的嵌入式平臺NVIDIA Jetson TX2。
設(shè)置訓(xùn)練輪次為200 輪,初始學(xué)習(xí)率為0.01,處理批次大小為32,使用的是Adam 優(yōu)化算法,記錄訓(xùn)練過程中的損失值(Loss),得到改進的YOLOv4 模型訓(xùn)練的Loss 曲線,如圖6 所示??梢钥闯?,Loss 曲線在訓(xùn)練輪次達到140次左右趨于收斂。
圖6 改進后訓(xùn)練的Loss曲線
模型訓(xùn)練后,得到模型權(quán)重文件的大小以及在測試集上的AP值,模型性能分析如表2所示。
表2 模型性能分析
由表2 可知,雖然改進后的YOLOv4 模型的平均精度較原模型降低了2.95%,但模型的大小降低了79%。其中,部分蘋果目標(biāo)識別結(jié)果如圖7 所示,可以看出,采用改進的YOLOv4 模型對上述不同狀況蘋果目標(biāo)的整體識別精度較好,存在誤檢與漏檢的情況很少。因此,改進的YOLOv4 模型更適合部署在算力有限的嵌入式設(shè)備中進行蘋果采摘任務(wù)。
圖7 蘋果目標(biāo)識別結(jié)果
通過改進的YOLOv4 算法獲取蘋果的類別和邊界框坐標(biāo)后,還需要通過相機獲取蘋果到相機的真實距離。為了驗證ZED 相機對蘋果目標(biāo)定位的可靠性,在嵌入式平臺NVIDIA Jetson TX2 上進行ZED雙目相機測距實驗,部分實驗效果如圖8 所示。在嵌入式平臺上使用改進的YOLOv4 算法后,平均檢測速度為15 FPS 左右,優(yōu)于改進前的6 FPS。因此,改進的YOLOv4 算法能夠更好地進行蘋果采摘任務(wù)。同時,通過多次測距實驗求平均值的方式獲取的測距誤差在0.02 m 以內(nèi),可以有效地獲取蘋果目標(biāo)的距離信息。
1)本文對采摘機器人的目標(biāo)識別與定位方法進行了研究。在目標(biāo)識別方面,以YOLOv4 網(wǎng)絡(luò)模型為基礎(chǔ),對YOLOv4 進行輕量化改進,使用MobileNet V3 作為特征提取的主干網(wǎng)絡(luò)。改進后模型的平均檢測精度為87.32%,模型的大小為53.76 MB,較改進前大小降低了79%,更適合部署在算力有限的嵌入式設(shè)備中進行蘋果采摘任務(wù)。
2)采用ZED 相機結(jié)合測距算法,在嵌入式平臺上進行了蘋果目標(biāo)定位實驗。ZED 雙目相機的測距誤差可控制在0.02 m 以內(nèi),同時改進的YOLOv4 算法的平均檢測速度為15 FPS 左右,能夠滿足蘋果采摘任務(wù)的實時性要求。