畢 松 隗朋峻 劉仁學(xué)
(北方工業(yè)大學(xué)電氣與控制工程學(xué)院,北京 100041)
隨著國內(nèi)人工成本的快速增長,現(xiàn)有以人工作業(yè)為主的種植和管理模式,已成為制約草莓產(chǎn)業(yè)發(fā)展的重要因素之一。提高生產(chǎn)過程的自動化和智能化程度,能夠有效降低草莓生產(chǎn)過程的人力需求。
采摘作業(yè)是草莓生產(chǎn)過程中人力需求集中的環(huán)節(jié),因此采摘作業(yè)自動化能夠有效降低草莓生產(chǎn)過程的人力需求。果實自動采摘的基礎(chǔ)是能夠穩(wěn)定的獲得草莓目標(biāo)空間位置,自然環(huán)境存在光照強度變化、果實重疊、枝葉遮擋等干擾因素,因此在自然環(huán)境下草莓目標(biāo)識別、定位與空間姿態(tài)估計是草莓自動采摘裝備的關(guān)鍵技術(shù)。
自然環(huán)境獲得的草莓圖像存在背景變化、果實光照不均、枝葉遮擋、果實重疊等干擾因素,識別和定位草莓目標(biāo)受到國內(nèi)外相關(guān)領(lǐng)域?qū)<业年P(guān)注。在自然環(huán)境下草莓目標(biāo)的識別研究方面,趙世達(dá)[1]設(shè)計了基于圖像對比度分析的草莓識別方法;謝志勇等[2]基于Lab顏色空間模型和Hough圓變換設(shè)計了成熟草莓識別方法;CAO等[3]利用Lab顏色模型的灰色圖像提取草莓并計算位置、方向和形狀;XU等[4]基于圖像HOG特征和SVM分類器完成草莓目標(biāo)檢測;劉小剛等[5]基于伽馬變換增強的圖像實現(xiàn)了夜間草莓識別;李鑫[6]使用CaffeNet網(wǎng)絡(luò)完成了成熟草莓目標(biāo)的檢測;張繼成等[7]提出一種基于深度殘差學(xué)習(xí)的草莓識別方法,解決了自然狀態(tài)下成熟草莓存在背景干擾、信息丟失情況下的草莓目標(biāo)識別問題;GE等[8]基于DCNN解決了由于枝葉遮擋引起的果實檢測不準(zhǔn)確問題;YU等[9]基于Mask R-CNN提高了非結(jié)構(gòu)環(huán)境下水果的檢測精度;王雪光等[10]基于K均值聚類算法實現(xiàn)了成熟草莓的識別;陳軍等[11]使用目標(biāo)輪廓長寬比區(qū)間窗口來提高草莓識別準(zhǔn)確率;侯貴洋等[12]使用顏色識別和特征識別結(jié)合的方法計算草莓質(zhì)心坐標(biāo);胡慶勝等[13]基于Mask R-CNN解決了復(fù)雜環(huán)境下草莓目標(biāo)識別率低的問題。
自然環(huán)境下草莓目標(biāo)識別存在識別精度和速度較低、易受背景干擾的問題。對圖像中草莓區(qū)域的識別精度較低,不利于草莓姿態(tài)識別和采摘點定位。
在自然環(huán)境下果實目標(biāo)定位研究方面,房愛青等[14]基于單目視覺結(jié)合測距傳感器提高了視覺定位精度;張凱良等[15]使用圖像結(jié)合激光測距有效檢測了長圓錐形草莓的果軸;郭峰等[16]通過計算草莓二值化圖像的慣性主軸來判斷草莓姿態(tài);JIN等[17]利用點云數(shù)據(jù)獲得的葡萄簇和水平-棚架環(huán)境特征實現(xiàn)采摘點定位策略;ZHONG等[18]基于主果枝檢測實現(xiàn)了自然環(huán)境下荔枝采摘點的檢測;張勤等[19]融合深度信息和顏色特征實現(xiàn)了無遮擋情況下果實采摘點識別;麥春艷等[20]設(shè)計了基于點云的果實三維球體形狀提取和質(zhì)心計算方法;劉德兒等[21]使用改進的YOLACT算法分割臍橙果實,外形擬合后得到其相機坐標(biāo)系下的采摘點;姬麗雯等[22]利用R-FCN目標(biāo)檢測網(wǎng)絡(luò)結(jié)合雙目視覺實現(xiàn)成熟無遮擋草莓的檢測及定位;羅陸鋒等[23]根據(jù)目標(biāo)質(zhì)心坐標(biāo)和葡萄簇邊緣信息確定采摘點;王丹丹等[24]提出基于平滑輪廓對稱軸法的蘋果目標(biāo)采摘點定位方法;司永勝等[25]建立面積特征結(jié)合極線幾何實現(xiàn)了圓形果實的定位。
上述方法根據(jù)空間幾何原理估計草莓目標(biāo)的坐標(biāo)和采摘點,但缺少對草莓目標(biāo)三維空間位姿分析,從而不能為采摘設(shè)備的末端提供精準(zhǔn)采摘姿態(tài)信息。
目前草莓識別定位的局限性體現(xiàn)在:只能識別到圖像中草莓的大概位置,無法獲得草莓目標(biāo)的準(zhǔn)確區(qū)域;空間定位方法不完整,無法獲得草莓的位姿,僅有采摘點信息使采摘動作的準(zhǔn)確性和靈活性受限,采摘效率降低。
本文設(shè)計基于圖像和深度信息估計草莓位姿從而實現(xiàn)草莓定位的方法。首先,基于成熟草莓目標(biāo)的圖像特征先驗信息,設(shè)計草莓目標(biāo)預(yù)定位方法,獲得圖像中潛在的草莓區(qū)域。其次,基于圖像目標(biāo)識別網(wǎng)絡(luò)進一步定位圖像中的草莓目標(biāo),由于卷積神經(jīng)網(wǎng)絡(luò)定位目標(biāo)區(qū)域不夠具體,無法準(zhǔn)確獲取框選區(qū)域中草莓所屬的像素區(qū)域。因此在草莓目標(biāo)區(qū)域中利用語義分割網(wǎng)絡(luò)對草莓目標(biāo)進行語義分割,從而在自然圖像中獲得草莓的準(zhǔn)確像素區(qū)域。再次,通過草莓區(qū)域點云信息和草莓的形態(tài)特性完成草莓位姿的估計并根據(jù)草莓位姿提取草莓的采摘點。最后,基于本文方法獲得的采摘點在大族Elfin-10機器人平臺完成自然環(huán)境下高架基質(zhì)栽培方式的草莓采摘實驗。
本文方法主要由4部分組成:自然圖像草莓區(qū)域分割、草莓目標(biāo)可采摘性識別、草莓位姿估計、采摘動作生成,方法結(jié)構(gòu)如圖1所示。
圖1 方法整體結(jié)構(gòu)圖
首先,在自然圖像草莓區(qū)域分割模塊中,以優(yōu)化的對草莓顏色適應(yīng)性較高閾值對圖像進行閾值分隔獲得草莓圖像區(qū)域預(yù)定位;基于預(yù)定位結(jié)果利用訓(xùn)練好的圖像目標(biāo)識別網(wǎng)絡(luò)對圖像中草莓區(qū)域進行快速定位;利用訓(xùn)練好的圖像分割網(wǎng)絡(luò)提取精確的草莓目標(biāo)區(qū)域并提取圖像目標(biāo)區(qū)域形狀特征。其次,在草莓目標(biāo)可采摘性識別模塊中,使用提取出的圖像區(qū)域形狀特征對草莓的可采摘性進行識別。然后,在草莓位姿估計模塊中,基于草莓區(qū)域的點云數(shù)據(jù)和草莓的可采摘性結(jié)果估計草莓位姿和采摘點空間位置坐標(biāo);最后,在采摘動作生成模塊中,基于計算得到的采摘點序列計算最短采摘路徑并控制機器人完成采摘作業(yè)。
本文設(shè)計了自然環(huán)境下草莓目標(biāo)點云的精確分割方法,精確分割的草莓目標(biāo)點云可為后續(xù)的草莓位姿估計提供數(shù)據(jù)基礎(chǔ)。首先,在HSV空間對草莓目標(biāo)進行預(yù)定位,確定圖像中草莓目標(biāo)潛在區(qū)域;其次,利用圖像目標(biāo)識別模型,在預(yù)定位結(jié)果基礎(chǔ)上檢測草莓位置區(qū)域;再次,利用語義分割網(wǎng)絡(luò)在草莓位置區(qū)域圖像基礎(chǔ)上對草莓區(qū)域進行像素分割;使用像素分割后的草莓目標(biāo)區(qū)域圖像提取特征進行草莓的成熟性判斷;最后,使用成熟草莓的草莓目標(biāo)區(qū)域圖像在深度數(shù)據(jù)中匹配獲得草莓目標(biāo)點云。自然環(huán)境圖像草莓區(qū)域點云分割的方法流程如圖2所示。
圖2 草莓區(qū)域點云分割流程圖
(1)目標(biāo)預(yù)定位
溫室環(huán)境下高架基質(zhì)草莓目標(biāo)顏色與背景差異較大,與背景相比其飽和度較高,色度范圍較大。由于溫室環(huán)境下,光照、紋理等參數(shù)變化范圍較大,設(shè)置較大的色度和飽和度區(qū)間有助于提高圖像中草莓區(qū)域預(yù)分割效果。因此在HSV色彩空間中,同時使用S通道閾值目標(biāo)顏色分割可較好地完成草莓目標(biāo)的預(yù)定位。利用區(qū)域形態(tài)學(xué)操作完成孔洞填充,去除圖像噪聲后,獲得草莓圖像預(yù)定位。
(2)識別模塊
完成對草莓目標(biāo)的預(yù)定位處理后,需要對草莓目標(biāo)進行目標(biāo)定位和檢測。YOLO系列網(wǎng)絡(luò)是單階段網(wǎng)絡(luò),在檢測速度上有天然的優(yōu)勢,與農(nóng)業(yè)智能裝備應(yīng)用更加適配;YOLO v3相較于之前版本的YOLO,采用了多尺度檢測的策略,可以檢測更小的目標(biāo),適用于草莓小目標(biāo);相較于之后的YOLO版本,YOLO v3網(wǎng)絡(luò)在結(jié)構(gòu)上更加輕量化,在同時都滿足目標(biāo)識別準(zhǔn)確度需求的情況下,推理速度更快。因此,本文使用YOLO v3標(biāo)準(zhǔn)網(wǎng)絡(luò)構(gòu)造識別模塊。
首先,計算每個預(yù)定位目標(biāo)區(qū)域的質(zhì)心,以區(qū)域質(zhì)心作為中心剪裁圖像并使用識別模塊從原始圖像中搜索草莓目標(biāo)。對于預(yù)定位過程中正確找到的草莓目標(biāo)區(qū)域,網(wǎng)絡(luò)會輸出草莓目標(biāo)的預(yù)測位置以及置信度;對于預(yù)定位過程中誤識別的區(qū)域,網(wǎng)絡(luò)無輸出,同時也代表著此區(qū)域無草莓,不再參與后續(xù)流程的計算。
(3)分割模塊
由于目標(biāo)識別網(wǎng)絡(luò)輸出的圖像中,既包含草莓目標(biāo)又包含目標(biāo)附近的背景,因此無法確定獲取草莓目標(biāo)區(qū)域,該問題將導(dǎo)致后續(xù)基于點云分析的草莓目標(biāo)空間定位誤差較大,因此利用語義分割方法獲得草莓目標(biāo)像素級分割結(jié)果,為草莓姿態(tài)識別提供有效的三維點云數(shù)據(jù)。將目標(biāo)圖像輸入到分割模塊之前,對圖像進行預(yù)處理,以保證整個草莓都能被輸入到分割模塊之中。
(4)成熟性分析
獲得草莓目標(biāo)的區(qū)域分割圖像后,應(yīng)對草莓的成熟性做出分析,以完成后續(xù)對成熟草莓目標(biāo)點云的分割。成熟草莓與未成熟草莓的區(qū)域目標(biāo)圖像如圖3所示。
圖3 成熟草莓與未成熟草莓目標(biāo)區(qū)域圖像
草莓的成熟與否在成熟區(qū)域特征上有明顯差異。如圖3所示,成熟草莓圖像的凸包面積在區(qū)域目標(biāo)圖像中,占比較大且較為集中;未成熟草莓圖像的凸包面積,在區(qū)域目標(biāo)圖像中占比較小。區(qū)域目標(biāo)圖像是由識別模塊輸出區(qū)域經(jīng)填補后等比縮放至固定尺寸,再由草莓目標(biāo)分割模塊確定圖像中草莓區(qū)域,因此利用目標(biāo)區(qū)域和草莓區(qū)域進行成熟度評價時圖像尺度具有一致性。因此,設(shè)S1為草莓目標(biāo)區(qū)域凸包像素面積,S2為目標(biāo)圖像像素面積,以F1=S1/S2作為草莓的成熟區(qū)域度特征。在未成熟草莓分割圖像中,背景噪聲會對草莓真實區(qū)域造成一定干擾(如圖3b中黃色圈所示),因此在計算目標(biāo)區(qū)域面積時,通過圖像形態(tài)學(xué)操作去除圖像中的細(xì)小碎塊區(qū)域后,再計算圖像的目標(biāo)區(qū)域面積和凸包。通過對464幅草莓樣本圖像的分析,獲取其目標(biāo)區(qū)域并計算區(qū)域度特征,特征數(shù)據(jù)F1的箱型圖如圖4所示。
圖4 草莓類別分布箱型圖
從圖4可以觀察到未成熟草莓的區(qū)域度特征分布集中度較高,均分布在0.08左右。而成熟草莓的區(qū)域度較為分散,從最小值0.18到最大值0.72均有分布,相對集中在0.35~0.50區(qū)間。因草莓樣本的多樣性及其品質(zhì)的隨機性,所得數(shù)據(jù)中有個別離群點(紅色十字),但圖中數(shù)據(jù)分布仍能反映出可通過區(qū)域度特征閾值方法成功區(qū)分成熟草莓與未成熟草莓。當(dāng)把閾值設(shè)定在0.2時,對成熟草莓分類的準(zhǔn)確率為96.03%,對未成熟草莓分類的準(zhǔn)確率為91.67%,滿足實際場景的應(yīng)用需求。
(5)點云分割
成熟草莓中,以草莓目標(biāo)精確分割區(qū)域為索引,結(jié)合配準(zhǔn)的深度信息矩陣,計算草莓區(qū)域的點云數(shù)據(jù),獲得精確分割的草莓目標(biāo)區(qū)域點云數(shù)據(jù)。為了去除點云數(shù)據(jù)在獲取階段受到環(huán)境干擾導(dǎo)致的誤差,需要對點云數(shù)據(jù)進行預(yù)處理。本文使用雙邊濾波方法對草莓目標(biāo)點云區(qū)域進行濾波去噪,雙邊濾波算法通過使用當(dāng)前數(shù)據(jù)點與臨近點的距離權(quán)重和臨近點沿當(dāng)前點法向量的投影權(quán)重來修正當(dāng)前采樣中心點的位置,從而達(dá)到保持點云數(shù)據(jù)原特征的目的。
自然生長條件下草莓空間位姿估計是獲取草莓采摘點的前提,本文設(shè)計了基于草莓幾何體形態(tài)的中心位姿線估計方法。完整草莓的幾何體形狀近似一個錐形,因此在點云空間中可把完整草莓曲面看作半個圓錐面。估計草莓的位姿就是從點云提取的半個錐面曲面中估計完整錐面的長軸向量。本文設(shè)計的草莓位姿估計方法,以每個數(shù)據(jù)點為中心,相鄰點為鄰域擬合平面,依次計算每一個數(shù)據(jù)點的平面法向量。以數(shù)據(jù)點坐標(biāo)為射線起點,數(shù)據(jù)點法向量方向為射線方向,構(gòu)造射線,把每一條射線看作圓錐曲面與圓錐中心長軸向量的連線。尋找所有射線之間的交點作為潛在的草莓位姿點,最終對潛在草莓位姿點濾波后使用最小二乘法進行直線擬合,作為草莓的空間位姿向量。具體流程如圖5所示。
圖5 完整草莓位姿估計流程圖
(1)生成z軸方向一致的表面法向量
由于草莓位姿方向和圓錐中心線方向一致且在圓錐內(nèi)部,為了獲取草莓位姿數(shù)據(jù)點的潛在區(qū)域,需要先獲取目標(biāo)點云曲面每一個點的法向量。對于平滑去噪后目標(biāo)點云數(shù)據(jù)中的每個數(shù)據(jù)點使用最小二乘法來擬合局部平面,并確定中心數(shù)據(jù)點的平面法向量。具體過程如下:
平面方程的一般表達(dá)為
Ax+By+Cz+D=0 (C≠0)
(1)
則有
(2)
記a0=-A/C,a1=-B/C,a2=-D/C,那么
z=a0x+a1y+a2
(3)
(4)
求解線性方程組(4),可得到a0、a1、a2,則z=a0x+a1y+a2。令D=1,解得參數(shù)A、B、C,故得到參考點的法向量N(A,B,C)。
為了符合圓錐體長軸向量在圓錐內(nèi)部的特性,z軸遠(yuǎn)點設(shè)置一個基準(zhǔn)點,把每個法向量的方向都與此基準(zhǔn)點進行比較,以保證每個數(shù)據(jù)點的法向量z軸分量指向圓錐內(nèi)部。法向量方向確定的具體方法如下:
設(shè)基準(zhǔn)點坐標(biāo)為P0(x0,y0,z0),待判斷方向的數(shù)據(jù)點為P1(x1,y1,z1),點P1的法向量為N1(A1,B1,C1),則數(shù)據(jù)點指向基準(zhǔn)點方向向量為Pk(x1-x0,y1-y0,z1-z0),因此
(5)
(2)點云質(zhì)心分區(qū)
對于保留了完整草莓曲面的無遮擋情況草莓,由于圓錐體沿中心線截面左右對稱,草莓目標(biāo)點云也基本符合左右對稱的性質(zhì)。因此,以草莓目標(biāo)區(qū)域圖像的質(zhì)心坐標(biāo)標(biāo)定出的點云數(shù)據(jù)點為原點,x軸、y軸方向把草莓曲面分為4個區(qū)域,如圖5點云質(zhì)心分區(qū)結(jié)果所示,4個區(qū)域內(nèi)點云數(shù)據(jù)法向量的x和y方向應(yīng)指向圓錐體中心方向。
(3)位姿交點計算
為了找到圓錐的長軸向量,將點云劃分為4個區(qū)域后,依次以每個數(shù)據(jù)點為起點,數(shù)據(jù)法向量方向為射線方向生成射線。在質(zhì)心分區(qū)的區(qū)域1、2、3、4之間互相尋找射線交點,作為潛在的草莓位姿點。草莓位姿交點的軸向示意圖如圖6所示。
圖6 草莓位姿交點軸向示意圖
如圖6所示,三維空間中計算目標(biāo)曲面射線交點的推導(dǎo)過程如下:
設(shè)數(shù)據(jù)點a的空間坐標(biāo)為Pa,由a擬合的局部平面法向量為v1,射線L1以點Pa為原點沿v1方向的長度為t1,則L1的表達(dá)式為
L1(t1)=Pa+v1t1
(6)
設(shè)數(shù)據(jù)點b的空間坐標(biāo)為Pb,由b擬合的局部平面法向量為v2,射線L2以點Pb為原點沿v2方向的長度為t2,則L2的表達(dá)式為
L2(t2)=Pb+v2t2
(7)
若兩射線在空間中存在交點,則交點滿足
Pa+v1t1=Pb+v2t2
(8)
等式兩邊叉乘v2,有
(v1×v2)t1=(Pb-Pa)×v2
(9)
等式兩邊再點乘v1×v2,得
t1(v1×v2)·(v1×v2)=[(Pb-Pa)×v2]·
(v1×v2)
(10)
解得
(11)
同理可得
(12)
式(11)、(12)中,Det為Determinant的縮寫,表示行列式的數(shù)值。
兩射線之間最短距離D=|(Pb-Pa)·(v2×v1)|2,當(dāng)D=0時,兩射線相交。由于傳感器采樣精度原因,和草莓幾何體與標(biāo)準(zhǔn)圓錐體的偏差,精確相交很少出現(xiàn),需要設(shè)定一個范圍,達(dá)到設(shè)定的范圍D<|ξ|,則認(rèn)為兩直線相交,本文選取的范圍為ξ=0.001。
(4)錯誤位姿點剔除
由于深度相機受本身的精度和環(huán)境干擾等影響,初步計算得到的位姿交點會存在離群點等難以反映草莓真實位姿,會對后續(xù)的位姿估計造成干擾。因此,需要剔除錯誤的位姿點以及離群點數(shù)據(jù)。本文以位姿點數(shù)據(jù)質(zhì)心為中心,r為半徑,剔除位姿點數(shù)據(jù)。
對于N(N≥3)個位姿點(xi,yi,zi)(i=1,2,…,N),設(shè)其質(zhì)心點為Pc(xc,yc,zc),則x-z平面內(nèi),計算數(shù)據(jù)點到質(zhì)心的距離為
(13)
當(dāng)d>r時,位姿點被剔除,d≤r時,位姿點保留。
(5)空間位姿估計
對去除離群點和錯誤點后的位姿點數(shù)據(jù)使用最小二乘方法進行直線擬合,把直線擬合的向量作為草莓的空間位姿。推導(dǎo)過程如下:
空間直線的點向式方程為
(14)
(m,n,p)為直線方程的方向向量;(x0,y0,z0)為直線上一個點坐標(biāo),對方程進行等價轉(zhuǎn)換得
(15)
其中
k1=m/pb1=x0-mz0/p
k2=n/pb2=y0-nz0/p
于是空間直線就可看作由上面兩個平面相交得到,因此對空間直線擬合就是對這兩個平面方程擬合,方程的殘差平方和為
(16)
根據(jù)最小二乘法擬合原理,使殘差平方和最小得出模型中的參數(shù),求得
(17)
(6)遮擋草莓位姿估計
成熟草莓中,除了有無遮擋的完整草莓,還有被枝葉不同程度遮擋的草莓。由于自然環(huán)境中的枝葉遮擋,得到的點云并不能完整反映草莓曲面情況,無法使用上述完整草莓位姿估計的方法。因此需要根據(jù)遮擋草莓情況,設(shè)計針對遮擋草莓的位姿估計方法。要實現(xiàn)遮擋草莓的位姿估計,則需要首先對草莓目標(biāo)是否被遮擋做出判斷。成熟草莓中,遮擋草莓與未遮擋草莓如圖7所示。
圖7 成熟草莓的遮擋情況示例
圖7a為成熟且未遮擋草莓,草莓目標(biāo)區(qū)域輪廓基本為凸形,草莓目標(biāo)區(qū)域面積與凸包面積相近;圖7b為成熟但存在部分遮擋草莓,草莓目標(biāo)區(qū)域輪廓多為凹形且存在非連通的多個目標(biāo)區(qū)域情況,草莓目標(biāo)區(qū)域面積小于凸包面積;因此,在提出了成熟區(qū)域度特征F1的基礎(chǔ)上,提出草莓的遮擋區(qū)域度特征F2。設(shè)草莓目標(biāo)區(qū)域面積為S3,草莓目標(biāo)區(qū)域凸包面積為S1,則遮擋區(qū)域度特征F2=S3/S1。本文使用目標(biāo)成熟區(qū)域度特征F1、目標(biāo)遮擋區(qū)域度特征F2作為區(qū)分草莓是否遮擋的判斷依據(jù),基于SVM構(gòu)造成熟草莓遮擋情況分類器判別草莓遮擋情況。對全部成熟草莓樣本提取特征值,特征分布及分類結(jié)果如圖8所示。
根據(jù)圖8可知,成熟未遮擋草莓特征值F2在0.9~1.0區(qū)間較為集中,成熟且遮擋草莓的特征值F2多分布在0.6~0.9區(qū)間,與未遮擋草莓相比其分布相對分散。遮擋草莓與未遮擋草莓在F1-F2特征平面可被一條分界線成功分開,其混淆矩陣如表1所示。
表1 成熟草莓遮擋類型判斷SVM模型混淆矩陣
根據(jù)表1可知,SVM模型的準(zhǔn)確率為92.69%、精確率為93.67%、召回率為96.1%,基于精確率和召回率的調(diào)和平均值為94.87%。
草莓是否被遮擋的判別流程算法偽代碼為:
Algorithm草莓遮擋識別方法
Input:草莓目標(biāo)區(qū)域圖像
Output:草莓是否被遮擋
function草莓遮擋識別
圖像區(qū)域二值化 ∥獲得區(qū)域?qū)傩?/p>
圖像輪廓檢測 ∥尋找目標(biāo)輪廓邊緣
凸包輪廓檢測 ∥尋找輪廓凸包邊緣
計算目標(biāo)區(qū)域面積、輪廓凸包面積 ∥提取草莓目標(biāo)特征值
分類器檢測 ∥將特征值輸入分類器
return分類器檢測結(jié)果
end
遮擋草莓的位姿估計流程如圖9所示。
圖9 遮擋草莓位姿估計流程圖
根據(jù)圖9目標(biāo)點云可知,由于遮擋位置的隨機性,遮擋草莓曲面點云并不完全符合沿圓錐中心線左右對稱,無法使用針對完整草莓目標(biāo)的點云質(zhì)心分區(qū)步驟來劃分區(qū)域,但是未遮擋部分草莓點云也一定程度上擬合了不完整的圓錐表面。因此,去掉在完整草莓位姿估計方法中的質(zhì)心分區(qū)步驟,直接使用所有曲面數(shù)據(jù)點兩兩計算射線交點,獲取到所有潛在的草莓位姿點之后,對離散位姿點進行剔除,使用最小二乘法對剩余的位姿點做直線擬合,將擬合出的直線作為草莓空間位姿向量。
(7)采摘點獲取
草莓采摘點根據(jù)本文方法獲取的草莓位姿得到,如圖10所示。
圖10 采摘點獲取示意圖
設(shè)位姿數(shù)據(jù)質(zhì)心點空間坐標(biāo)為Pc(xc,yc,zc),草莓曲面點云數(shù)據(jù)y方向最大值為hmax、最小值為hmin、草莓高h(yuǎn)=hmax-hmin,位姿估計向量經(jīng)歸一化后為p=(,,)。
對于無遮擋草莓,根據(jù)圖10a可知,位姿點質(zhì)心處沿位姿方向向上,垂直距離3h/4處作為采摘點Ph(xh,yh,zh),則Ph為
(18)
對于遮擋草莓,根據(jù)圖10b所示,由于遮擋情況較復(fù)雜且無法預(yù)知遮擋部位,無法通過點云信息估計完整草莓高,故將h替換為hk計算采摘點,本文中設(shè)hk=0.03 m。
為了驗證本文提出的草莓位姿估計和采摘點定位方法的準(zhǔn)確性和魯棒性,在訓(xùn)練、測試自然圖像草莓目標(biāo)分割模塊和草莓可采摘性識別模塊性能的基礎(chǔ)上,進一步估計果實的位姿和采摘點,在實際機器人系統(tǒng)上測試并驗證本文所提方法的有效性。
采用Intel RealSense D415作為圖像采集設(shè)備,RGB傳感器使用卷簾快門,最大分辨率為1 920像素×1 080像素,視場為69°×42°;深度傳感器使用紅外結(jié)構(gòu)光技術(shù),深度視野為65°×40°,最高深度輸出分辨率為1 280像素×720像素,最高輸出幀率為90 f/s。
數(shù)據(jù)采集地位于北京市昌平區(qū)萬德草莓種植園,該草莓種植園的種植方式為溫室大棚環(huán)境下的A架種植,平均行間距為2 m,受光照、種植波次等因素影響,草莓的生長和成熟狀況也存在一定差異性,數(shù)據(jù)集包含了多種拍攝角度和位置的圖像數(shù)據(jù),具有較強代表性。本文構(gòu)造了包含上述情況的樣本集,樣本集數(shù)量為2 000幅,其中1 600幅用作訓(xùn)練,400幅用作測試,使用Matlab R2021b環(huán)境下的Image Labeler工具進行草莓目標(biāo)區(qū)域標(biāo)注。訓(xùn)練平臺為Intel Core i9-9900K CPU 3.60 GHz,Nvidia Quadro P4000 GPU,32 GB RAM。
2.2.1自然環(huán)境圖像草莓區(qū)域點云分割實驗
在測試數(shù)據(jù)中,選用了不同環(huán)境條件下,以及不同成熟程度、不同遮擋情況下的草莓圖像來評估草莓目標(biāo)區(qū)域分割模塊的性能,測試結(jié)果如圖11所示。
圖11 不同條件下草莓區(qū)域分割測試結(jié)果
對于弱光照條件下的草莓目標(biāo)區(qū)域點云分割測試結(jié)果,得到了正確的草莓目標(biāo)區(qū)域并精準(zhǔn)分割目標(biāo)點云。對于有枝葉遮擋的情況,本文設(shè)計的點云分割模塊獲得了合理的預(yù)測結(jié)果,還原了圖像中草莓所屬的像素區(qū)域,并成功獲得遮擋草莓的目標(biāo)點云。對于強光照射情況,模塊也表現(xiàn)出了較好的分割能力,沒有受到光斑的影響。對于強光照射且有枝葉遮擋的條件下,模塊的分割結(jié)果仍較為準(zhǔn)確。從以上測試結(jié)果看,本文設(shè)計的方法對溫室環(huán)境下圖像的草莓目標(biāo)點云分割具有較好的適應(yīng)性。
2.2.2自然環(huán)境下草莓位姿估計實驗
對不同遮擋情況下的草莓目標(biāo)點云進行位姿估計實驗,實驗結(jié)果如圖12所示。
圖12 不同遮擋條件下草莓位姿估計測試結(jié)果
根據(jù)圖12可知,本文設(shè)計的草莓位姿估計方法受非結(jié)構(gòu)性環(huán)境干擾因素較小。對于無遮擋草莓,本文方法成功估計出未遮擋的完整草莓位姿;對于從輕微到較嚴(yán)重程度的遮擋,基于本文設(shè)計的位姿估計方法,也能根據(jù)已知點云信息,較合理估計出遮擋草莓的位姿;對于較密集草莓,可知通過完整草莓質(zhì)心分區(qū)這一步驟,可以成功剔除不屬于該草莓的點云區(qū)域并檢測出真實草莓的真實位姿。
設(shè)機器人采摘末端中心對準(zhǔn)草莓上方莖時的空間位置Pr(xr,yr,zr)為真實采摘參考點,機器人采摘末端中心對準(zhǔn)草莓最下端時的空間位置Pd(xd,yd,zd),草莓的真實位姿向量Vr=Pd-Pr,歸一化后Vr=Vr/‖Vr‖=(u,v,w),本文方法估計的位姿向量為p=(,,);則位姿估計誤差為
(19)
其中
(20)
(21)
(22)
式中ex——x軸方向估計誤差
ey——y軸方向估計誤差
ez——z軸方向估計誤差
e——位姿估計綜合誤差
圖12中草莓位姿估計值及其誤差如表2所示。
表2 草莓位姿估計值及其誤差
根據(jù)圖12和表2中數(shù)據(jù)可知,本文提出的方法在無遮擋、遮擋以及果實密集情況下均能準(zhǔn)確地計算位姿。其中,對于無遮擋草莓和較密集草莓,位姿
估計平均誤差為4.03%;對于不同程度的遮擋草莓,位姿估計平均誤差為9.06%;根據(jù)估計位姿獲取采摘點數(shù)據(jù),真實采摘點Pr(xr,yr,zr)與估計采摘點Ph(xh,yh,zh)對比如表3所示。
表3 采摘點估計值及其誤差
由表3可知,本文設(shè)計的采摘點獲取方法可以較準(zhǔn)確地估計草莓采摘點位置。在x方向上的平均誤差為2.57 mm,最大誤差為4.3 mm;在y方向上的平均誤差為1.83 mm,最大誤差為3.1 mm;在z方向上的平均誤差為2.45 mm,最大誤差為4.9 mm;采摘點的x、y、z方向綜合誤差為2.3 mm,符合實際應(yīng)用場景需求,可以為草莓采摘機器人系統(tǒng)提供指導(dǎo)。
經(jīng)分析,誤差主要來源于采摘點參考值的測量和相機系統(tǒng)。首先,采摘點參考值由機器人采摘末端中心點確定,關(guān)節(jié)和采摘末端的結(jié)構(gòu)精度會導(dǎo)致最終測定值存在累計誤差。其次,本文采用的相機獲取深度信息原理為紅外結(jié)構(gòu)光,環(huán)境干擾也會對深度信息的精度造成誤差。
在實驗數(shù)據(jù)的采集地北京市昌平區(qū)萬德草莓種植園,將本文方法應(yīng)用在大族El-fin10機器人平臺上,進行了算法的實際采摘測試。算法運行的硬件平臺為Intel i9-9900K CPU,Nvidia Quadro P4000 GPU,軟件平臺為Win10 環(huán)境下的Matlab 2021b,對草莓園9號棚中的500個草莓進行實驗,最終成功識別草莓空間位姿找到草莓目標(biāo)位置并驅(qū)動機械手到達(dá)果莖位置完成采摘動作的有463個,采摘成功率為92.6%,單草莓平均計算耗時約為92 ms,在把機械臂的運行速度設(shè)置在中速時,單個草莓采摘動作的執(zhí)行平均耗時約為5.7 s,符合草莓采摘的實際情況和需求。經(jīng)分析,部分草莓采摘失敗的原因主要有:待采摘草莓與傳感器距離過近,低于傳感器深度最小獲取距離,導(dǎo)致無法成功獲取草莓目標(biāo)曲面點云;待采摘草莓與傳感器距離過遠(yuǎn),導(dǎo)致點云分辨率下降,曲面與真實情況差異較大,導(dǎo)致計算出的采摘點偏離真實值過多;目標(biāo)被遮擋的過于嚴(yán)重,獲得的點云信息無法擬合出草莓空間位姿,進而無法獲得采摘點。
真實采摘測試場景如圖13所示。如圖13a所示,采摘機器人在觀察視角姿態(tài)獲取到圖像數(shù)據(jù)和深度信息后,通過本文設(shè)計的方法對當(dāng)前視野中的草莓目標(biāo)進行采摘點估計。由圖13b可知,測試場景包含了未成熟草莓、成熟未遮擋草莓以及成熟遮擋情況的草莓。對于遮擋情況草莓,采摘機器人對準(zhǔn)草莓目標(biāo)并運動到草莓莖處,完成草莓采摘動作。對于無遮擋草莓,算法給出了準(zhǔn)確的草莓采摘點空間坐標(biāo)位置,指引機器人完成了對草莓目標(biāo)的對準(zhǔn)以及采摘動作。機器人運動過程如圖14所示。
圖13 真實場景測試
圖14 機器人運動過程
由實際場景采摘實驗的結(jié)果可以看出,本文設(shè)計的方法可以準(zhǔn)確地估計出成熟草莓的空間位置坐標(biāo),且對于遮擋較為嚴(yán)重的草莓,也能做出較為合理的采摘點估計,指引采摘機器人完成采摘動作。
使用草莓顏色和飽和度信息對草莓目標(biāo)進行預(yù)定位,并結(jié)合卷積神經(jīng)網(wǎng)絡(luò)對草莓目標(biāo)完成精確區(qū)域點云分割;基于草莓目標(biāo)區(qū)域圖像,完成對草莓目標(biāo)的成熟性判斷和是否遮擋判斷;基于分割得到的目標(biāo)點云,對草莓進行位姿估計和采摘點估計。實驗結(jié)果表明:本文方法的完整草莓位姿估計平均誤差為4.03%、遮擋草莓位姿估計平均誤差為9.06%,采摘定位綜合誤差為2.3 mm,該方法可以估計出不同遮擋條件下的成熟草莓并成功提取草莓采摘點,指引草莓采摘機器人完成草莓采摘動作。