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