張 勤 龐月生 李 彬
(1.華南理工大學(xué)機(jī)械與汽車工程學(xué)院, 廣州 510641;2.華南理工大學(xué)自動(dòng)化科學(xué)與工程學(xué)院, 廣州 510641)
機(jī)器人采摘可降低種植成本、提高生產(chǎn)率、減輕工人勞動(dòng)強(qiáng)度、保證果實(shí)質(zhì)量,且適時(shí)采摘是未來的發(fā)展方向[1-5]。由于番茄串采摘環(huán)境復(fù)雜、品種多樣且個(gè)體差異較大,開發(fā)通用、穩(wěn)定、精確的番茄串視覺定位方法,引導(dǎo)機(jī)械臂以合適姿態(tài)完成采摘,是實(shí)現(xiàn)智能采摘的重要環(huán)節(jié),也是實(shí)現(xiàn)無損、安全、高效、連續(xù)采摘的重要保證。
動(dòng)態(tài)變化的非結(jié)構(gòu)化作業(yè)環(huán)境、果梗纖細(xì)且姿態(tài)多樣、傳感器精度不足等因素,增加了采摘點(diǎn)定位和果梗姿態(tài)預(yù)測(cè)的難度,所以現(xiàn)有的智能采摘設(shè)備在采摘效率、識(shí)別準(zhǔn)確率和穩(wěn)定性等方面遠(yuǎn)低于人工采摘,無法滿足商業(yè)化應(yīng)用需求。
近年來,數(shù)字圖像處理和神經(jīng)網(wǎng)絡(luò)廣泛應(yīng)用于采摘點(diǎn)的識(shí)別與定位中,加速了采摘機(jī)器人的產(chǎn)業(yè)化進(jìn)程[6-10]?,F(xiàn)有的果梗采摘點(diǎn)定位方法主要分為兩類,第1類基于圖像處理技術(shù),根據(jù)果實(shí)顏色、形狀或紋理等基本特征定位采摘點(diǎn)。JI等[11]基于顏色特征2R-G-B識(shí)別番茄果實(shí)與輔助標(biāo)記,將擬合的果梗曲線與輔助標(biāo)記邊緣的交點(diǎn)作為采摘點(diǎn),采摘成功率為88.6%。LUO等[12-13]基于顏色特征分割葡萄串,根據(jù)果梗與果實(shí)的約束關(guān)系定位采摘點(diǎn),準(zhǔn)確率88.33%,平均耗時(shí)0.346 7 s。馮青春等[14]基于黃瓜的形狀特征和HIS空間閾值提取黃瓜輪廓,并從黃瓜輪廓頂部提取采摘點(diǎn),定位精度達(dá)到2 mm。梁喜鳳等[15]基于果梗骨骼線角點(diǎn)定位番茄串采摘點(diǎn)位置信息,成功率為90%。熊俊濤等[16]基于HIS空間對(duì)荔枝果實(shí)和果梗進(jìn)行分割,利用Hough直線擬合確定有效的果梗采摘區(qū)域,通過連續(xù)處理多幀圖像定位采摘點(diǎn),深度誤差小于6 cm。YOSHIDA等[17]利用顏色和點(diǎn)云特征識(shí)別番茄串采摘點(diǎn),單幀圖像耗時(shí)1 s,難以滿足實(shí)時(shí)采摘要求。多特征融合比單特征識(shí)別方法魯棒性更強(qiáng),但兩者都容易受光照變化和障礙物遮擋的影響,對(duì)環(huán)境依賴性強(qiáng)、通用性差且檢測(cè)性能不穩(wěn)定。此類方法多數(shù)要求果實(shí)與果梗的顏色、形態(tài)單一,相對(duì)位置固定。
第2類基于神經(jīng)網(wǎng)絡(luò)識(shí)別果實(shí)或果梗,基于顏色或形狀等特征對(duì)識(shí)別結(jié)果進(jìn)一步處理定位采摘點(diǎn),神經(jīng)網(wǎng)絡(luò)的應(yīng)用極大地提升了采摘點(diǎn)識(shí)別定位的速度和精度。陳燕等[18]基于改進(jìn)YOLO v3與雙目立體視覺對(duì)荔枝串預(yù)定位,處理速度為22 f/s,最大定位絕對(duì)誤差為36 mm。YU等[19]提出了R-YOLO用于識(shí)別并估計(jì)草莓生長(zhǎng)姿態(tài),根據(jù)邊界框軸線旋轉(zhuǎn)角度計(jì)算采摘點(diǎn),平均識(shí)別率為94.43%,采摘成功率為84.35%。XU等[20]基于改進(jìn)的Mask R-CNN識(shí)別距離相機(jī)最近的番茄串作為采摘目標(biāo),準(zhǔn)確率為93.76%,單幀圖像處理時(shí)間為0.04 s。寧政通等[21]基于改進(jìn)Mask R-CNN與顏色特征分割葡萄果梗并定位采摘點(diǎn),單幀圖像耗時(shí)4.9 s。KALAMPOKAS等[22]基于回歸卷積神經(jīng)網(wǎng)絡(luò)識(shí)別葡萄串果梗,結(jié)合識(shí)別結(jié)果的形狀和邊緣特征定位采摘點(diǎn),深度定位誤差10 mm,算法速率為8.3 f/s。張勤等[23]基于YOLO v4與果梗顏色特征,融合深度信息分割果梗,番茄串采摘點(diǎn)定位成功率為 93.83%,單幀圖像耗時(shí)54 ms。番茄串果梗纖細(xì)且顏色與枝葉相似,背景噪聲復(fù)雜,受光照變化影響大,難以精確分割;番茄串形態(tài)差異大,果實(shí)與果梗之間無固定位置關(guān)系,作業(yè)環(huán)境復(fù)雜,增加了預(yù)測(cè)果梗姿態(tài)的難度;采摘過程中植株晃動(dòng),經(jīng)濟(jì)型深度相機(jī)精度不足和深度缺失,難以精確識(shí)別定位采摘點(diǎn);由于果梗姿態(tài)多變,即使成功定位采摘點(diǎn),也會(huì)由于剪刀的剪切姿態(tài)和干涉等問題造成采摘失敗?,F(xiàn)有的研究主要側(cè)重于采摘點(diǎn)的精確定位,忽略了果實(shí)的可采摘性和生長(zhǎng)姿態(tài)多樣化的問題,造成“看到采不到”的現(xiàn)象,影響了采摘成功率和效率,限制了番茄串采摘機(jī)器人在實(shí)際中的廣泛應(yīng)用。
針對(duì)上述問題,本文提出基于實(shí)例分割的串番茄視覺定位與采摘姿態(tài)估算方法。基于YOLACT實(shí)例分割算法[24]的實(shí)例特征標(biāo)準(zhǔn)化和掩膜評(píng)分機(jī)制,輸出番茄串的掩膜和ROI,保證果梗掩膜的連續(xù)性,過濾大量背景噪聲實(shí)現(xiàn)果梗粗分割,基于果梗掩膜信息和ROI位置關(guān)系匹配可采摘果梗;其次,通過細(xì)化算法和膨脹操作對(duì)可采摘果梗進(jìn)行精細(xì)分割,提取果梗骨骼線、定位采摘點(diǎn)圖像坐標(biāo),降低光照和背景噪聲對(duì)分割果梗的影響;基于果梗深度信息填補(bǔ)法與坐標(biāo)系轉(zhuǎn)換,融合深度信息定位采摘點(diǎn)空間坐標(biāo);通過果梗幾何特征,識(shí)別果梗關(guān)鍵點(diǎn)預(yù)測(cè)果梗姿態(tài),估算采摘姿態(tài),引導(dǎo)機(jī)械臂以合適的姿態(tài)完成采摘。
為解決非結(jié)構(gòu)化種植環(huán)境下,番茄串采摘點(diǎn)識(shí)別定位、果梗姿態(tài)預(yù)測(cè)的問題,提出基于實(shí)例分割的串番茄視覺定位與采摘姿態(tài)估算方法,方法流程如圖1所示。
圖1 基于實(shí)例分割的番茄串視覺定位與采摘姿態(tài)估算方法Fig.1 Method for visual positioning and picking pose estimation of tomato clusters based on instance segmentation
數(shù)據(jù)采集地點(diǎn)為廣東省某農(nóng)業(yè)技術(shù)推廣中心數(shù)字設(shè)施館水培區(qū),數(shù)據(jù)集包含4個(gè)品種的番茄串圖像,分別為以色列紅、金玲瓏、粵科達(dá)202和鴻海HH10,每個(gè)品種的圖像分別為1 307、2 942、1 065、1 206幅;上述圖像使用不同設(shè)備、在不同時(shí)間段、從不同角度和不同光照條件下進(jìn)行拍攝,相機(jī)與番茄串之間的距離為0.4~1.2 m,圖像尺寸均為 1 280像素×720像素;每個(gè)品種按20∶3進(jìn)行劃分,然后匯總為訓(xùn)練集和測(cè)試集。測(cè)試集中的果梗數(shù)量為949,可采摘果梗數(shù)量為797,用于測(cè)試模型的識(shí)別準(zhǔn)確率。
使用開源標(biāo)注工具LabelMe[25]對(duì)數(shù)據(jù)集進(jìn)行標(biāo)注,共有2個(gè)標(biāo)注類別,其中“stem”為果梗,“tomato”為成熟番茄串,其余部分均視為“背景”。圖2為以色列紅番茄串標(biāo)注示例,分別使用多邊形和矩形標(biāo)注果梗和成熟番茄串,有效減少數(shù)據(jù)標(biāo)注時(shí)間。為了提高模型的魯棒性和防止訓(xùn)練過程中模型過擬合,標(biāo)注完成后對(duì)訓(xùn)練集進(jìn)行數(shù)據(jù)集增強(qiáng),主要操作包括鏡像、旋轉(zhuǎn)、模糊、調(diào)節(jié)亮度和對(duì)比度等,增強(qiáng)后訓(xùn)練集圖像總數(shù)為15 311幅。對(duì)4個(gè)品種的番茄串圖像數(shù)據(jù)進(jìn)行訓(xùn)練,能夠有效增強(qiáng)番茄串和果梗識(shí)別定位的魯棒性,滿足該模型對(duì)不同番茄品種的適應(yīng)性。
圖2 數(shù)據(jù)標(biāo)注示例Fig.2 Example of data annotation
2.1.1基于YOLACT的 ROI識(shí)別與果梗粗分割
YOLACT實(shí)例分割算法屬于單階段模型,在保持高質(zhì)量分割的同時(shí)有效地減少計(jì)算成本,具有速度快、精度高的優(yōu)點(diǎn),能夠快速識(shí)別番茄串與果梗ROI,有利于在復(fù)雜背景中分割果梗輪廓。采用殘差網(wǎng)絡(luò)(Residual network 101, ResNet101)和特征金字塔網(wǎng)絡(luò)(Feature pyramid network, FPN)作為特征提取網(wǎng)絡(luò)訓(xùn)練番茄串和果梗的檢測(cè)模型,ResNet基于殘差模塊(Residual blocks)允許信息在不同深度之間流動(dòng),使得網(wǎng)絡(luò)能夠更好地提取圖像特征,有助于提高模型的分割精度,具有更快的模型訓(xùn)練速度。
如圖3所示,將圖像調(diào)整為550像素×550像素后輸入特征提取網(wǎng)絡(luò),提取番茄串和果梗的重要特征;預(yù)測(cè)模塊對(duì)特征提取網(wǎng)絡(luò)輸出的重要特征進(jìn)行整合與利用,由預(yù)測(cè)頭分支輸出各類候選框的類別置信度及位置信息、原型掩膜的掩膜系數(shù);原型網(wǎng)絡(luò)分支輸出原型掩膜;原型掩膜和相應(yīng)的掩膜系數(shù)進(jìn)行組合得到番茄串和果梗的掩膜;后處理模塊通過非極大值抑制、掩膜過濾、裁剪和二值化處理得到最終的掩膜結(jié)果與ROI。
圖3 基于實(shí)例分割的番茄串視覺定位方法Fig.3 Method for visual positioning of tomato clusters based on instance segmentation
由于番茄串果梗纖細(xì)且種植環(huán)境復(fù)雜,為了能夠提取完整的果梗輪廓,在后處理模塊通過降低掩膜精度對(duì)果梗進(jìn)行粗分割,使果梗掩膜覆蓋果梗輪廓,保證果梗的連續(xù)性;后續(xù)通過細(xì)化算法與形態(tài)學(xué)操作精確提取果梗輪廓,保證采摘點(diǎn)的識(shí)別定位精度和果梗姿態(tài)預(yù)測(cè)的可靠性。將識(shí)別結(jié)果存儲(chǔ)于容器vector〈ROI〉Result,ROI包含下列參數(shù):x、y、w、h、confidence、category_id;其中(x,y)為ROI左上角頂點(diǎn)坐標(biāo),w和h分別為ROI的寬和高;confidence為預(yù)測(cè)框置信度;category_id為0時(shí)表示果梗ROI,為1時(shí)表示番茄串ROI,果梗ROI與果梗掩膜一一對(duì)應(yīng)。
2.1.2基于ROI位置和掩膜信息匹配可采摘果梗
由于識(shí)別結(jié)果中番茄串和果梗ROI數(shù)量不同,且位置具有隨機(jī)性,需要進(jìn)行匹配確定可采摘果梗,后續(xù)只處理可采摘果梗從而提高算法效率。主要依據(jù)為:①判斷果梗掩膜是否連續(xù),剔除部分可見區(qū)域較小、不利于提取果梗輪廓的番茄串。②果梗與果實(shí)的ROI位置關(guān)系。對(duì)識(shí)別結(jié)果進(jìn)行分析,假設(shè)果梗和番茄串ROI的左上角頂點(diǎn)坐標(biāo)分別為(xi,yi)、(xj,yj),Result[i]和Result[j]分別表示當(dāng)前處理的果梗ROI和番茄串ROI(后文不再重述),具體步驟為:
(1)基于輪廓檢測(cè)判斷果梗掩模是否連續(xù),若果梗掩膜不連續(xù)則剔除Result[i]。
(2)將Result內(nèi)剩余的ROI按x坐標(biāo)值由小到大進(jìn)行排序。
(3)判斷ROI是否有交集:if(Result[i]∩Result[j]≠0 &&yi 在步驟(3)中使果梗ROI下邊框向下偏移0.15hi,番茄串ROI上邊框向上偏移0.15hj,增強(qiáng)該方法對(duì)不同果梗長(zhǎng)度的適應(yīng)性。 2.2.1基于細(xì)化算法和膨脹操作的果梗精細(xì)分割 由于原始果梗掩膜存在番茄果實(shí)、植株主干或葉子等背景噪聲,為了精確提取果梗輪廓,提高采摘點(diǎn)識(shí)別定位精度與穩(wěn)定性,去除背景噪聲的步驟為: (1)基于ZHANG等[26]快速并行細(xì)化算法提取原始果梗骨骼線。 (2)基于果梗ROI長(zhǎng)寬比確定ROI中心線Lmid的取值 (1) (3)求取原始果梗掩膜圖在第Lmid行(或列)像素值非零點(diǎn)的總數(shù),即果梗掩膜寬度L(單位:像素),如圖4紅色線段所示。 圖4 果梗掩膜寬度Fig.4 Mask width of stem (4) 對(duì)原始果梗骨骼線進(jìn)行膨脹操作,獲得新的果梗掩膜:膨脹操作內(nèi)核形狀為MORPH_ELLIPS,以果梗掩膜寬度L為參數(shù)調(diào)整內(nèi)核尺寸。 (5)對(duì)新果梗掩膜進(jìn)行細(xì)化處理提取果梗骨骼線。 2.2.2基于果梗深度信息填補(bǔ)的采摘點(diǎn)定位 首先計(jì)算果梗骨骼線圖第Lmid行(或列)中第1個(gè)像素非零的點(diǎn)(xc,yc),設(shè)定(xi+xc,yi+yc) 為采摘點(diǎn)圖像坐標(biāo)(Px,Py),其中xi和yi分別為果梗ROI左上角頂點(diǎn)的坐標(biāo)值,然后融合配準(zhǔn)后的深度圖信息精確提取采摘點(diǎn)的深度Pz。由于深度相機(jī)獲取細(xì)小物體的深度信息時(shí)誤差較大且不穩(wěn)定,導(dǎo)致某些像素點(diǎn)丟失深度,為保證采摘點(diǎn)圖像坐標(biāo)(Px,Py)深度的可靠性,提出果梗深度信息填補(bǔ)法。設(shè)圖像坐標(biāo)點(diǎn)(u,v)的深度為d(u,v)(單位:mm): (1)新果梗掩膜上所有滿足0 (2) (2)提取點(diǎn)(Px,Py)的原始深度doriginal。 (3)統(tǒng)計(jì)果梗掩膜寬度L上所有像素點(diǎn)的深度d(u,v),記所有滿足0 (3) (4)選取最優(yōu)采摘點(diǎn)深度Pz (4) 步驟(3)中通過計(jì)算線段的平均深度L作為采摘點(diǎn)的平均深度,即使采摘點(diǎn)原始深度異?;騺G失,可以使用采摘點(diǎn)平均深度daverage_2填補(bǔ)原始深度doriginal,以保證采摘點(diǎn)的定位精度和可靠性。 由于番茄串果梗姿態(tài)各異,機(jī)械臂以固定姿態(tài)采摘時(shí)存在采摘效率低、植株或果實(shí)損壞等問題。為了避免采摘過程中末端執(zhí)行器與果實(shí)或植株主干發(fā)生干涉,導(dǎo)致植株晃動(dòng)劇烈影響識(shí)別定位和采摘,需要在實(shí)施采摘任務(wù)前對(duì)果梗生長(zhǎng)姿態(tài)進(jìn)行預(yù)測(cè),從而引導(dǎo)機(jī)械臂以適合的姿態(tài)靠近果梗,提高采摘成功率和效率,保證果實(shí)質(zhì)量。 如圖5所示,以果梗骨骼線圖上的采摘點(diǎn)(綠色圓點(diǎn))圖像坐標(biāo)(xc,yc)為中心,分別向骨骼線兩端各拓展10個(gè)像素值非0點(diǎn),如圖5中虛線框所示。記拓展后所得的上端點(diǎn)和下端點(diǎn)的圖像坐標(biāo)分別為(x1,y1)和(x2,y2),以兩端點(diǎn)構(gòu)成的直線斜率近似代替采摘點(diǎn)處的果梗切線斜率,果梗的傾斜角θ計(jì)算式為 圖5 果梗骨骼線與采摘點(diǎn)處切線Fig.5 Skeleton of stem and tangent line at picking point (5) 根據(jù)果梗的傾斜角θ預(yù)測(cè)垂直生長(zhǎng)的果梗,經(jīng)過現(xiàn)場(chǎng)試驗(yàn)表明,當(dāng)果梗傾斜角滿足θ∈([4π/9, π/2]∪[-π/2,-4π/9]),可判斷果梗為垂直生長(zhǎng),否則按如下方法繼續(xù)預(yù)測(cè)果梗姿態(tài):首先基于八鄰域端點(diǎn)檢測(cè)算法快速提取果梗的關(guān)鍵點(diǎn),即果梗骨骼線的上端點(diǎn)和下端點(diǎn)圖像坐標(biāo)(xu,yu)和(xd,yd),其中yu 圖6 番茄串采摘機(jī)器人結(jié)構(gòu)Fig.6 Structure of tomato cluster harvesting robot1.移動(dòng)平臺(tái) 2.收納筐 3.末端執(zhí)行器 4.機(jī)械臂 5.深度相機(jī) 6.機(jī)械臂控制器 γ=atan2(yd1-yu1,xd1-xu1) (γ∈(-π,π]) (6) 通過γ的取值預(yù)測(cè)果梗相對(duì)于植株主干的生長(zhǎng)姿態(tài)。 2.4.1采摘姿態(tài)估算 由于番茄串果梗木質(zhì)化使其含有大量不易剪斷的纖維,若果梗未被剪斷,機(jī)械臂拖拽果梗會(huì)損傷番茄植株;番茄串生長(zhǎng)姿態(tài)各異,如果末端執(zhí)行器以固定角度進(jìn)行剪切,靠近目標(biāo)時(shí)容易與果?;蚬麑?shí)發(fā)生干涉,同時(shí)干擾了視野中已識(shí)別的可采摘目標(biāo),導(dǎo)致植株晃動(dòng),嚴(yán)重影響番茄串的識(shí)別定位和采摘。因此選擇適合采摘目標(biāo)生長(zhǎng)特點(diǎn)的剪切姿態(tài)是成功采摘的關(guān)鍵。 如圖5所示,通過采摘點(diǎn)處的近似切線計(jì)算果梗的剪切角β(逆時(shí)針為正方向,單位:rad);機(jī)械臂初始狀態(tài)末端執(zhí)行器剪切平面與地面平行,剪切角β=0,如圖5中藍(lán)色虛線所示。由于受果實(shí)重力的影響,大部分果梗的生長(zhǎng)姿態(tài)為斜向下彎曲或垂直的狀態(tài),可以通過果梗傾斜角θ判斷果梗被果實(shí)壓彎的方向,剪切角計(jì)算式為 (7) 式中θs為變量(單位:rad),用于調(diào)節(jié)末端執(zhí)行器的剪切平面(圖5藍(lán)色線段)與果梗切線(圖5黃色線段)的夾角,滿足不同的農(nóng)藝需求和應(yīng)用場(chǎng)景。但對(duì)于不同品種的番茄串,由于果梗直徑、硬度、強(qiáng)度、果實(shí)重量不同等因素,有部分果梗為斜向上生長(zhǎng),如按式(7)計(jì)算剪切角,此時(shí)剪切平面與果梗切線平行,無法成功剪切果梗,或剪切后無法夾持番茄串,導(dǎo)致采摘失敗。此時(shí)需要引入果梗和番茄串ROI的左上角頂點(diǎn)坐標(biāo) (xi,yi)、(xj,yj),以及ROI對(duì)應(yīng)的寬度wi、wj,判斷番茄串和果梗ROI的相對(duì)位置,剪切角計(jì)算式為: 當(dāng)θ≥0時(shí) (8) 當(dāng)θ<0時(shí) (9) 為了保證夾剪一體的末端執(zhí)行器夾持穩(wěn)定性,充分發(fā)揮末端執(zhí)行器的容錯(cuò)性,選擇切割強(qiáng)度最大的剪切姿態(tài),如圖5所示,即末端執(zhí)行器的剪切平面與果梗切線垂直,此時(shí)θs=π/2。 2.4.2采摘機(jī)器人系統(tǒng) 番茄串采摘機(jī)器人主要由工業(yè)控制計(jì)算機(jī)、可升降移動(dòng)平臺(tái)、L515型深度相機(jī)(Intel RealSense)、Aubo-i5機(jī)械臂、末端執(zhí)行器和收納筐組成,如圖6所示。 2個(gè)深度相機(jī)對(duì)稱安裝于機(jī)械臂坐標(biāo)系X軸線上,分別用于識(shí)別軌道兩側(cè)的番茄串;機(jī)械臂的工作半徑為886.5 mm,末端執(zhí)行器為夾持和剪切一體設(shè)計(jì),最大開口寬度為23 mm,可剪切直徑5 mm以內(nèi)的果梗。機(jī)器人通過視覺識(shí)別系統(tǒng)實(shí)時(shí)獲取圖像,輸出采摘點(diǎn)位置和果梗姿態(tài)信息,控制各個(gè)組成模塊的協(xié)調(diào)運(yùn)行,機(jī)械臂通過果梗姿態(tài)自主調(diào)節(jié)剪切姿態(tài)完成采摘;移動(dòng)平臺(tái)通過識(shí)別磁條與RFID實(shí)現(xiàn)自動(dòng)導(dǎo)航與上下軌道,能夠自動(dòng)切換采摘方向并調(diào)節(jié)高度,實(shí)現(xiàn)對(duì)雙側(cè)番茄串的智能化采摘。 2.4.3手眼坐標(biāo)轉(zhuǎn)換 (10) 手眼標(biāo)定測(cè)試中,重復(fù)標(biāo)定誤差控制在1 mm以內(nèi),為機(jī)械臂提供準(zhǔn)確的采摘點(diǎn)位置信息。采摘過程中,機(jī)械臂根據(jù)果梗姿態(tài)預(yù)測(cè)結(jié)果γ和果梗傾斜角θ,即根據(jù)果梗生長(zhǎng)方向,選擇合適的姿態(tài)接近果梗,避免與植株或果實(shí)發(fā)生干涉;將采摘任務(wù)進(jìn)行分解并分段規(guī)劃采摘路徑,同時(shí)利用剪切角β調(diào)整末端執(zhí)行器的剪切姿態(tài),引導(dǎo)機(jī)械臂以合適的姿態(tài)完成采摘[28]。 Windows 10(64位)系統(tǒng)下使用Anaconda3創(chuàng)建訓(xùn)練環(huán)境,Python版本為3.7.13,配備AMD Ryzen 5 1400處理器、16 GB運(yùn)行內(nèi)存、GPU為GeForce GTX 1080Ti,使用構(gòu)建的數(shù)據(jù)集訓(xùn)練模型;訓(xùn)練結(jié)束后將模型文件轉(zhuǎn)換成深度學(xué)習(xí)模型開放格式(Open neural network exchange, ONNX),基于C++部署該模型至采摘機(jī)器人系統(tǒng)并測(cè)試,開發(fā)環(huán)境為AMD Ryzen 5 1400處理器、8 GB運(yùn)行內(nèi)存、GeForce RTX2060 GPU、Qt Creator 4.11.0、VS2017、CUDA 10.2,Opencv-Contrib-4.5.4。 3.2.1模型識(shí)別準(zhǔn)確率 為了測(cè)試模型對(duì)番茄串和果梗ROI的識(shí)別準(zhǔn)確率,以召回率、預(yù)測(cè)精度作為主要評(píng)價(jià)指標(biāo)。為了驗(yàn)證模型的分割精度,以平均交并比(Mean intersection over union, mIOU)作為評(píng)價(jià)指標(biāo)。試驗(yàn)過程中以重疊系數(shù)[29]評(píng)估模型的ROI識(shí)別準(zhǔn)確率,重疊系數(shù)表示預(yù)測(cè)框與實(shí)際目標(biāo)框之間的重疊比例,計(jì)算式為 (11) 式中AT——實(shí)際目標(biāo)框區(qū)域 AD——預(yù)測(cè)框區(qū)域 在試驗(yàn)中設(shè)定重疊系數(shù)大于0.5時(shí),目標(biāo)被正確識(shí)別。對(duì)第1節(jié)構(gòu)建的測(cè)試集進(jìn)行識(shí)別與統(tǒng)計(jì),識(shí)別結(jié)果如表1所示,得到該模型對(duì)番茄串的預(yù)測(cè)精度和召回率分別為97.67%和98.89%,對(duì)果梗的預(yù)測(cè)精度和召回率分別為98.83%和98.00%;得到平均交并比為69.04%。圖像分辨率為1 280像素×720像素時(shí),算法處理速率達(dá)到21 f/s。 表1 模型識(shí)別結(jié)果Tab.1 Model recognition results 3.2.2采摘點(diǎn)識(shí)別成功率 使用同一模型對(duì)不同品種、不同姿態(tài)的番茄串進(jìn)行采摘點(diǎn)識(shí)別定位,如圖7所示。圖7中紅色箭頭表示采摘點(diǎn)搜索方向,綠色圓點(diǎn)表示采摘點(diǎn),若采摘點(diǎn)落入果梗輪廓內(nèi)則采摘點(diǎn)識(shí)別定位成功。測(cè)試集中可采摘果梗實(shí)例測(cè)試結(jié)果如表2所示,以色列紅、金玲瓏、粵科達(dá)202和鴻海HH10番茄串的采摘點(diǎn)識(shí)別成功率分別為98.20%、98.94%、97.25%和97.89%,不同品種的番茄串采摘點(diǎn)平均識(shí)別成功率為98.07%。試驗(yàn)結(jié)果表明,提出方法對(duì)不同品種番茄串采摘點(diǎn)的識(shí)別定位成功率和速度能夠滿足采摘需求。 表2 測(cè)試集采摘點(diǎn)識(shí)別成功率Tab.2 Picking point recognition accuracy of test set 3.2.3采摘點(diǎn)圖像坐標(biāo)定位精度 試驗(yàn)地點(diǎn)位于廣東省某農(nóng)業(yè)技術(shù)推廣中心數(shù)字設(shè)施館水培區(qū)。為了確定采摘點(diǎn)的定位精度,從粵科達(dá)202品種中選取20串可采摘番茄,其中包含不同光照條件和不同姿態(tài)的果梗實(shí)例。機(jī)器人運(yùn)動(dòng)至指定位置后,對(duì)每串番茄連續(xù)拍攝6幀圖像(1 280像素×720像素)并識(shí)別定位采摘點(diǎn),同時(shí)保存拍攝的彩色圖與深度圖,使用文獻(xiàn)[23]方法進(jìn)行采摘點(diǎn)定位精度測(cè)試。 設(shè)最佳采摘點(diǎn)圖像坐標(biāo)為果梗ROI第Lmid行(或列)與果梗中軸線的交點(diǎn),記為(Ox,Oy)。算法識(shí)別的采摘點(diǎn)與最佳采摘點(diǎn)之間的誤差Δe計(jì)算式為 (12) 其中 ex=|Ox-Px| (13) ey=|Oy-Py| (14) 式中ex——采摘點(diǎn)在行方向上的偏差 ey——采摘點(diǎn)在列方向上的偏差 按照2.2.2節(jié)的方法提取采摘點(diǎn)的原始深度doriginal與平均深度daverage_2,當(dāng)兩者均為非零值時(shí),采摘點(diǎn)平均深度與原始深度的誤差ε計(jì)算式為 ε=doriginal-daverage_2 (15) 分別記錄每串番茄的6次采摘點(diǎn)識(shí)別定位結(jié)果,如圖8所示,其中圖8a記錄了采摘點(diǎn)處平均深度誤差的平均值和標(biāo)準(zhǔn)差,可知采摘點(diǎn)處平均深度誤差ε為±6 mm,證明當(dāng)采摘點(diǎn)原始深度異?;騺G失時(shí),可以采用平均深度代替原始深度。由于文獻(xiàn)[23]方法的番茄串檢測(cè)模型和數(shù)據(jù)集差異,有4串番茄未能成功識(shí)別,因此圖8b僅統(tǒng)計(jì)了16組數(shù)據(jù)。由圖8可知,提出方法和文獻(xiàn)[23]方法的采摘點(diǎn)圖像坐標(biāo)最大定位誤差分別為3像素和10像素,平均定位誤差分別為0.84像素和3.62像素,其中輸入圖像中果梗直徑為7~15像素,與文獻(xiàn)[23]方法相比,采摘點(diǎn)平均定位精度提高76.80個(gè)百分點(diǎn)。此外,提出的方法對(duì)同一幀圖像連續(xù)進(jìn)行10次采摘點(diǎn)識(shí)別定位,每次輸出的采摘點(diǎn)坐標(biāo)(Px,Py,Pz)均為定值,表明該方法的定位精度和穩(wěn)定性能夠滿足采摘需求。 圖8 采摘點(diǎn)定位誤差分布Fig.8 Picking point error 3.2.4番茄串視覺定位與果梗分割性能對(duì)比試驗(yàn) 為驗(yàn)證提出方法的有效性,將該方法與文獻(xiàn)[23]提出的方法進(jìn)行對(duì)比試驗(yàn),圖9為兩種方法對(duì)不同形態(tài)的番茄串處理結(jié)果,藍(lán)色圓點(diǎn)為文獻(xiàn)[23]方法識(shí)別結(jié)果,綠色圓點(diǎn)為提出方法的識(shí)別結(jié)果。當(dāng)番茄串背景環(huán)境復(fù)雜或光照不穩(wěn)定時(shí),文獻(xiàn)[23]方法通過深度分割算法,隨機(jī)選取聚類中心進(jìn)行K-means聚類分割果梗,魯棒性較差,難以精確、穩(wěn)定地定位采摘點(diǎn)圖像坐標(biāo)和深度。如圖10所示,文獻(xiàn)[23]方法在相同條件下對(duì)試驗(yàn)2中的番茄串重復(fù)識(shí)別,分割果梗時(shí)存在較多背景噪聲且聚類結(jié)果不穩(wěn)定,導(dǎo)致采摘點(diǎn)定位誤差較大。 圖10 文獻(xiàn)[23]方法重復(fù)識(shí)別試驗(yàn)Fig.10 Repeated recognition of reference[23] method 試驗(yàn)結(jié)果表明,在相同場(chǎng)景下提出的方法具有更高的準(zhǔn)確率和穩(wěn)定性,能夠準(zhǔn)確分割果梗并提取果梗骨骼線,有利于精確定位采摘點(diǎn)和預(yù)測(cè)果梗姿態(tài)。 3.2.5采摘方法對(duì)比試驗(yàn)與誤差分析 以往的采摘方法,基于番茄串和果梗ROI位置關(guān)系,將番茄串生長(zhǎng)姿態(tài)分為向左、向右和垂直生長(zhǎng)3個(gè)類別,經(jīng)常出現(xiàn)果梗姿態(tài)預(yù)測(cè)錯(cuò)誤的情況,且末端執(zhí)行器只有3個(gè)對(duì)應(yīng)的采摘姿態(tài),容易與果實(shí)、果梗或植株主干發(fā)生干涉,存在“看到采不到”的現(xiàn)象(方法1)。提出的采摘方法不局限于3種采摘姿態(tài),機(jī)械臂通過估算的果梗姿態(tài)自主調(diào)節(jié)剪切姿態(tài),以合適的姿態(tài)靠近果梗,避免發(fā)生干涉(方法2)。 基于同一個(gè)番茄串檢測(cè)模型,使用方法1和方法2,對(duì)不同果梗姿態(tài)的番茄串進(jìn)行采摘試驗(yàn),試驗(yàn)對(duì)象為1壟粵科達(dá)202番茄和1壟鴻海HH10番茄。采摘機(jī)器人在軌道上運(yùn)行,通過視覺識(shí)別系統(tǒng)實(shí)時(shí)控制機(jī)器人移動(dòng),識(shí)別到可采摘目標(biāo)后機(jī)器人觸發(fā)制動(dòng)指令,重新獲取最新一幀圖像并識(shí)別定位采摘點(diǎn);機(jī)器人根據(jù)采摘點(diǎn)與果梗姿態(tài)信息調(diào)整采摘姿態(tài),規(guī)劃采摘路徑,采摘完成后或連續(xù)3次采摘失敗,機(jī)器人繼續(xù)向前運(yùn)動(dòng),重復(fù)上述步驟實(shí)現(xiàn)連續(xù)采摘,使用方法2采摘粵科達(dá)202番茄串過程如圖11所示。 圖11 番茄串采摘過程Fig.11 Action sequence of tomato cluster harvesting 兩種方法的采摘試驗(yàn)結(jié)果如表3所示,方法1的采摘成功率為82.98%,平均采摘效率(成功采摘的番茄串總數(shù)量與采摘?jiǎng)幼骺偞螖?shù)的比值)為55.71%。方法2的采摘成功率為98.15%,平均采摘效率為86.89%;相比于方法1,采摘成功率提高15.17個(gè)百分點(diǎn),平均采摘效率提高31.18個(gè)百分點(diǎn)。采摘試驗(yàn)過程中,采摘失敗通常會(huì)導(dǎo)致番茄植株劇烈晃動(dòng),嚴(yán)重影響后續(xù)的番茄串識(shí)別定位和采摘。圖12為方法2采摘失敗案例,試驗(yàn)過程中為了限制機(jī)械臂的運(yùn)動(dòng)范圍,對(duì)獲取的圖像進(jìn)行裁剪。由于該番茄串處于圖像的頂部被裁剪區(qū)域,因此番茄串在距離相機(jī)較遠(yuǎn)時(shí)才進(jìn)入識(shí)別范圍,此時(shí)部分果梗被番茄植株主干遮擋,且相機(jī)成像平面與果梗平面不平行時(shí),相機(jī)深度缺失、誤差較大,使采摘點(diǎn)定位存在較大偏差,導(dǎo)致采摘失敗。 表3 采摘試驗(yàn)結(jié)果Tab.3 Results of picking test 圖13為不同果梗姿態(tài)的剪切角,以末端執(zhí)行器剪切刀刃中點(diǎn)為參考點(diǎn),如圖13a黃色標(biāo)記所示,設(shè)果梗采摘點(diǎn)與參考點(diǎn)的相對(duì)距離為深度誤差Δd;試驗(yàn)過程中選擇切割強(qiáng)度最大的剪切姿態(tài),即末端執(zhí)行器的剪切平面與果梗切線垂直,如圖13b所示,設(shè)末端執(zhí)行器剪切平面與果梗切線正方向(指向植株主干的方向?yàn)檎较?的夾角為α;若剪切平面垂直于果梗切線,即α=90°,此時(shí)剪切角誤差為0°,剪切角誤差評(píng)價(jià)指標(biāo)Δα計(jì)算式為 圖13 不同果梗姿態(tài)的剪切角Fig.13 Cutting angles of different stems Δα=α-90° (16) 對(duì)方法2中成功采摘的番茄串進(jìn)行深度誤差與剪切角誤差分析,誤差分布結(jié)果如圖14、15所示,深度誤差Δd為±4 mm,剪切角誤差Δα為±6°。誤差來源主要包括深度相機(jī)測(cè)量誤差、手眼標(biāo)定誤差、采摘點(diǎn)圖像坐標(biāo)定位誤差、移動(dòng)平臺(tái)振動(dòng)、試驗(yàn)場(chǎng)地排氣扇和采摘過程使植株產(chǎn)生晃動(dòng)等。試驗(yàn)結(jié)果表明,使用方法2進(jìn)行采摘試驗(yàn),即使采摘點(diǎn)識(shí)別定位和果梗姿態(tài)預(yù)測(cè)存在一定誤差,高容錯(cuò)率的末端執(zhí)行器依然能夠成功采摘番茄串。 圖14 采摘點(diǎn)深度誤差分布Fig.14 Distribution of picking point depth value error 圖15 剪切角誤差分布Fig.15 Distribution of shear angle error 考慮番茄串果實(shí)生長(zhǎng)姿態(tài)的多樣性和可采摘性,基于實(shí)例分割提出番茄串的視覺定位與采摘姿態(tài)估算方法。通過果梗的粗分割、精細(xì)分割以及深度信息的填補(bǔ)、融合,精確定位采摘點(diǎn);基于果梗關(guān)鍵點(diǎn)預(yù)測(cè)果梗姿態(tài),并根據(jù)果梗姿態(tài)確定適合采摘的末端執(zhí)行器采摘姿態(tài),有效提高了采摘成功率。研究和試驗(yàn)結(jié)果表明,該方法對(duì)4個(gè)品種的番茄串采摘點(diǎn)平均識(shí)別成功率為98.07%,采摘點(diǎn)圖像坐標(biāo)最大定位誤差為3像素,深度誤差為±4 mm,相對(duì)于果梗的剪切角誤差為±6°,成功識(shí)別后采摘成功率為98.15%,圖像分辨率為1 280像素×720像素時(shí)算法處理速率達(dá)到21 f/s。與現(xiàn)有的同類方法相比,采摘點(diǎn)圖像坐標(biāo)定位精度提高76.80個(gè)百分點(diǎn),采摘成功率提高15.17個(gè)百分點(diǎn),采摘效率提高31.18個(gè)百分點(diǎn)。該研究以番茄串采摘為例提出的視覺定位與姿態(tài)預(yù)測(cè)方法,同樣適用于其他串收果實(shí)的采摘。2.2 采摘點(diǎn)定位方法
2.3 果梗姿態(tài)預(yù)測(cè)方法
2.4 采摘姿態(tài)與采摘方法
3 試驗(yàn)
3.1 模型訓(xùn)練與部署
3.2 番茄串視覺定位方法性能試驗(yàn)
4 結(jié)束語