江 勵(lì),熊達(dá)明,湯健華,黃 輝
(五邑大學(xué)智能制造學(xué)部,廣東 江門 529099)
新冠肺炎疫情發(fā)展至今,不少人工智能防疫應(yīng)用涌現(xiàn)。在醫(yī)療手術(shù)、診治、體溫檢測、配送和消毒殺菌等眾多場景中,機(jī)器人能有效代替相關(guān)人員進(jìn)行作業(yè),從而減少或降低了很多不必要的風(fēng)險(xiǎn)。面對(duì)機(jī)器人代替人工越來越廣泛的迫切需求,機(jī)器人需要更強(qiáng)的適應(yīng)能力應(yīng)對(duì)各種更加復(fù)雜的工作環(huán)境。機(jī)器人的自主抓取任務(wù)中,基于視覺的定位控制[1-3]已經(jīng)能夠在工業(yè)光源環(huán)境下較好的完成。但是,當(dāng)將其放在日常光線環(huán)境下時(shí),視覺定位精度往往會(huì)大幅度降低而導(dǎo)致任務(wù)失敗,使得機(jī)器人的應(yīng)用范圍大大縮小。本文針對(duì)這一問題,提出一種新的智能抓取算法,能夠有效改善光線變化對(duì)抓取精度所帶來的影響。
通常來說,對(duì)于空間物體的自主抓取一般需要完成識(shí)別、實(shí)例分割和定位3個(gè)步驟。在目標(biāo)物的識(shí)別與實(shí)例分割上目前主要采用的是深度學(xué)習(xí)算法,根據(jù)數(shù)據(jù)的形式可分為圖像的識(shí)別與實(shí)例分割、點(diǎn)云[4]的識(shí)別與實(shí)例分割;然后分別利用圖像和點(diǎn)云數(shù)據(jù)進(jìn)行目標(biāo)物體的定位。
圖像的識(shí)別與實(shí)例分割[5],目前非常成熟,且應(yīng)用廣泛。彭秋辰等[6]提出了采用雙目實(shí)例分割與定位的方法,需要將左右目分別做識(shí)別和實(shí)例分割,再對(duì)實(shí)例分割的結(jié)果用ICP[7]算法進(jìn)行視差計(jì)算,完成對(duì)目標(biāo)物體的識(shí)別、分割和定位,取得了不錯(cuò)的效果。但該方法仍然受限于環(huán)境光源的影響,同時(shí)雙目所產(chǎn)生的大量圖像數(shù)據(jù)需要強(qiáng)大的計(jì)算力才能夠?qū)崟r(shí)計(jì)算出結(jié)果,實(shí)驗(yàn)結(jié)果測距誤差理論值達(dá)到2%。Liu等[8]提出了基于單目視覺和圖像編碼的移動(dòng)平臺(tái)室內(nèi)定位,定位方法需要事先對(duì)物體貼相應(yīng)的標(biāo)簽而耗時(shí)耗力且定位精度不高。Ruan等[9]提出了平行雙目立體視覺系統(tǒng),取得了不錯(cuò)的效果,實(shí)驗(yàn)測試中單位距離最大誤差達(dá)到1.695%,廣泛應(yīng)用于移動(dòng)機(jī)器人的定位和地圖構(gòu)建等任務(wù)中??傮w來看,目前基于視覺圖像的定位方法,還是無法解決光線對(duì)定位精度的影響這一瓶頸問題。
點(diǎn)云的識(shí)別與實(shí)例分割中,Qi等[10-11]提出的處理點(diǎn)云數(shù)據(jù)的深度學(xué)習(xí)模型PointNet,已經(jīng)能夠較好做到點(diǎn)云的分割。PointNet模型是利用深度學(xué)習(xí)模型的方法直接對(duì)三維的點(diǎn)云進(jìn)行分類和分割,這對(duì)場景分割來說非常實(shí)用。但激光雷達(dá)所產(chǎn)生的點(diǎn)云數(shù)據(jù)十分龐大,基于這些數(shù)據(jù)完成物體識(shí)別和實(shí)例分割需要龐大的計(jì)算力,導(dǎo)致該方法實(shí)時(shí)性較差,應(yīng)用相對(duì)較少。
針對(duì)以上問題,本文提出了一種基于深度學(xué)習(xí)的視覺和光學(xué)雷達(dá)融合定位算法。該方法能夠有效解決環(huán)境光線變化問題,同時(shí)大大降低所需計(jì)算力,能夠較好地應(yīng)用于機(jī)器人的智能抓取任務(wù)中。
本文主要是通過在RGB圖中識(shí)別并分割出目標(biāo)物體,利用Mask R-CNN[12-13]框架開展目標(biāo)識(shí)別和對(duì)象實(shí)例分割。如圖1所示,卷積骨干架構(gòu)用于特征提取,網(wǎng)絡(luò)頭對(duì)每個(gè)Rol單獨(dú)應(yīng)用邊界框識(shí)別和掩碼預(yù)測。
圖1 用于實(shí)例分割的Mask R-CNN框架
為驗(yàn)證Mask R-CNN在通用對(duì)象實(shí)例分割方面的有效性,本文隨機(jī)選擇了10個(gè)物體不同組合地進(jìn)行了100多次的識(shí)別率測試,結(jié)果如表1所示。
表1 識(shí)別率測試
結(jié)果表明Mask R-CNN有較好的識(shí)別率,識(shí)別與分割效果如圖2所示,可以發(fā)現(xiàn)Mask掩碼能很好地覆蓋識(shí)別的物體。
圖2 Mask R-CNN的識(shí)別與分割效果
目標(biāo)物的實(shí)例分割主要分為數(shù)據(jù)采集、掩碼獲取和Mask分割,流程如圖3所示。
圖3 目標(biāo)物分割流程
本文同時(shí)采集同一場景下的深度圖和RGB圖,并且像素坐標(biāo)是對(duì)應(yīng)的。采集的RGB圖經(jīng)過Mask R-CNN算法后會(huì)得到3個(gè)輸出,分別是目標(biāo)的類別、包圍框的位置和物體的掩碼。另外,對(duì)傳感器得到的深度數(shù)據(jù)進(jìn)行了必要的濾波處理。
深度圖的分割使用Mask掩碼,由于RGB圖像與深度數(shù)據(jù)對(duì)齊存在誤差,所以需要對(duì)Mask進(jìn)行腐蝕處理,以便分割區(qū)域完全落在目標(biāo)物上,處理效果如圖4所示。
圖4 Mask掩碼腐蝕對(duì)目標(biāo)物深度圖的效果
經(jīng)過傳感器獲取RGB數(shù)據(jù)和深度數(shù)據(jù)與深度學(xué)習(xí)算法后,就完成了對(duì)目標(biāo)物的識(shí)別與實(shí)例分割。
確定物體的空間位置需要相應(yīng)的點(diǎn)云數(shù)據(jù),點(diǎn)云數(shù)據(jù)可由深度數(shù)據(jù)轉(zhuǎn)化,即圖像坐標(biāo)系轉(zhuǎn)換為世界坐標(biāo)系。變換的約束條件是傳感器內(nèi)參,即
(1)
x、y、z為點(diǎn)云坐標(biāo)系;x′、y′為圖像坐標(biāo)系;D為深度值。
在世界坐標(biāo)到圖像的映射過程中,考慮世界坐標(biāo)點(diǎn)映射到圖像點(diǎn)的過程,表示為
(2)
μ、v分別為圖像坐標(biāo)系下的任意坐標(biāo)點(diǎn);μ0、v0分別為圖像的中心坐標(biāo);xw、yw、zw為世界坐標(biāo)系下的三維坐標(biāo)點(diǎn);zc為傳感器坐標(biāo)的z軸值,即目標(biāo)到傳感器的距離;R、T分別為外參矩陣的旋轉(zhuǎn)矩陣和平移矩陣。
傳感器坐標(biāo)系和世界坐標(biāo)系的坐標(biāo)原點(diǎn)重合,因此R為單位陣,T為零矢量,深度值z(mì)0與世界坐標(biāo)系中的zw相同。
由以上的變換矩陣公式,可以計(jì)算得到圖像點(diǎn)[μv]T到世界坐標(biāo)點(diǎn)[xwywzw]T的變換式為
(3)
因此,利用此模型就可以將深度圖上的二維點(diǎn)坐標(biāo)轉(zhuǎn)換成三維空間點(diǎn)。
本文將實(shí)例分割完的目標(biāo)物的深度數(shù)據(jù),融合RGB信息,利用攝像機(jī)模型,即式(3)就可以將其每個(gè)二維點(diǎn)坐標(biāo)轉(zhuǎn)換成基于傳感器坐標(biāo)系的三維空間點(diǎn),得到的效果如圖5所示,這樣得到了目標(biāo)物空間位置的彩色點(diǎn)云數(shù)據(jù)。
圖5 目標(biāo)物的空間點(diǎn)云顯示
本文先用均值法和中值法綜合計(jì)算分割獲得的點(diǎn)云的幾何中心,對(duì)目標(biāo)物體進(jìn)行較粗的空間定位,根據(jù)誤差的分析對(duì)定位算法進(jìn)行了修正,從而精準(zhǔn)定位目標(biāo)物體。
在均勻分布的點(diǎn)云中,均值法常用來計(jì)算重心,然而在不均勻分布的點(diǎn)云或有缺失的點(diǎn)云中,均值法并不能完全勝任求物體的中心。因此,本文通過幾組數(shù)據(jù)分別用均值法和中值法與真實(shí)值進(jìn)行對(duì)比,如圖6所示,其中真實(shí)值是手動(dòng)用刻度尺設(shè)定的物體位置。
圖6 中值法和均值法對(duì)目標(biāo)物中心各坐標(biāo)測距和絕對(duì)誤差
通過與真實(shí)值對(duì)比發(fā)現(xiàn),在水平面的x軸方向和y軸方向使用均值法能更好地接近真實(shí)值。而在垂直的z軸方向中值法更能接近真實(shí)值,其中值法值與真實(shí)值相差無幾,最大誤差僅3.73 mm。
這主要是獲取的目標(biāo)物點(diǎn)云不均勻和不完整導(dǎo)致的,也是傳感器單一視角拍攝所不可避免的。尤其在y軸方向越靠近傳感器部分點(diǎn)云越密集,顯然均值法無法近似為物體中心,而中值法卻避免了這個(gè)問題。在水平面上的x軸和y軸方向,物體與環(huán)境的交接處有明顯的拖尾現(xiàn)象,遠(yuǎn)離傳感器中心軸部分的點(diǎn)云被拉長,此時(shí)用中值法無法近似物體中心,而均值法卻可以消除部分誤差。
如圖7a,目標(biāo)物在傳感器的右下角位置,得到的目標(biāo)物空間點(diǎn)云如圖7b,可以發(fā)現(xiàn),目標(biāo)物點(diǎn)云存在明顯的拖尾現(xiàn)象。這是由傳感器的拍攝角度和深度數(shù)據(jù)的噪聲以及濾波處理所造成的。經(jīng)過多次實(shí)驗(yàn)發(fā)現(xiàn),越偏離傳感器中心軸拖尾現(xiàn)象越明顯。
圖7 目標(biāo)物點(diǎn)云的拖尾現(xiàn)象
基于以上原因,粗定位采用綜合算法即z軸方向采用中值法近似物體中心,x軸和y軸方向本文采用均值法近似物體中心。
雖然x軸和y軸方向用均值法近似物體的中心較為準(zhǔn)確,但越偏離傳感器中心誤差也越大,也越無法滿足抓取精度的要求。測試中的最大絕對(duì)誤差為10.89 mm,因此,需要對(duì)近似值進(jìn)行修正。
如圖8所示,根據(jù)x軸和y軸測距的真實(shí)值與絕對(duì)誤差的曲線,可以較為簡單高效地將其擬合成二次曲線。
圖8 固定水平面上各坐標(biāo)軸均值法測距的絕對(duì)誤差
首先,定義x軸的絕對(duì)誤差為xer,即
xer=xm-xt
(4)
xm為x軸測距的中值法值;xt為x軸測距的真實(shí)值。令二次函數(shù)為
(5)
(6)
其次,為了得到修正值xa,本文將式(4)和式(5)中的xt用xa替代,即
xa→xt
(7)
從而可以計(jì)算得到x軸上的修正值表達(dá)式為
(8)
同理,y軸上的修正值表達(dá)式為
由此,可以計(jì)算得到固定水平面上各坐標(biāo)軸測距修正值。為了直觀比較真實(shí)值、原值和修正值,本文用7組實(shí)驗(yàn)數(shù)據(jù)繪制了表2。結(jié)果表明修正值能更好地接近真實(shí)值,最大絕對(duì)誤差僅3.34 mm,與修正前的最大絕對(duì)誤差10.90 mm相比,誤差減少了69.4%,能滿足抓取精度的要求。
表2 修正前后對(duì)目標(biāo)物中心各坐標(biāo)測距和絕對(duì)誤差
本文實(shí)驗(yàn)包含2個(gè):第1個(gè)是基于本文算法對(duì)目標(biāo)物定位的精度驗(yàn)證實(shí)驗(yàn);第2個(gè)是環(huán)境光線對(duì)目標(biāo)物測量精度的影響實(shí)驗(yàn)。
本文使用的傳感器是Intel生產(chǎn)的Real Sense光學(xué)雷達(dá)攝像頭L515,該設(shè)備含有RGB彩色傳感器和固態(tài)光學(xué)雷達(dá)深度傳感器,9 m深度誤差為5~14 mm,適用于需要高分辨率和高精度深度數(shù)據(jù)的室內(nèi)應(yīng)用領(lǐng)域,可以同時(shí)獲取場景內(nèi)的深度信息及RGB信息。
另外,為驗(yàn)證精度,使用激光跟蹤儀Leica AT930,如圖9b所示。此款激光跟蹤儀是一款精密、穩(wěn)定的便攜式三維測量設(shè)備。其他實(shí)驗(yàn)器材有可調(diào)光照度光源、照度計(jì)等。
圖9 Leica激光跟蹤儀AT930驗(yàn)證算法精度實(shí)驗(yàn)
實(shí)驗(yàn)程序運(yùn)行的系統(tǒng)環(huán)境是Ubuntu ROS機(jī)器人操作系統(tǒng),配備Titan X顯卡,使用的執(zhí)行器是Aubo i5機(jī)械臂。
在驗(yàn)證精度中,本文使用激光跟蹤儀來進(jìn)行對(duì)比驗(yàn)證。首先從Mask R-CNN識(shí)別并分割出物體點(diǎn)云,然后用修正后的綜合法計(jì)算得到物體的中心坐標(biāo)值,與此同時(shí)用激光跟蹤儀Leica AT930記錄L515傳感器與目標(biāo)物體的相對(duì)位置,并換算出物體的坐標(biāo)值。
如圖9a所示,首先進(jìn)行激光跟蹤儀坐標(biāo)系與傳感器坐標(biāo)系的相對(duì)坐標(biāo)系轉(zhuǎn)換,使測量得到的物體坐標(biāo)值在同一個(gè)坐標(biāo)系下。然后在對(duì)角線上取5個(gè)具有代表性的位置放置目標(biāo)物并分別測量,這5個(gè)位置分別離傳感器坐標(biāo)原點(diǎn)的距離為1 031.83 mm、937.46 mm、913.11 mm、952.23 mm、1 062.12 mm。最后用本文算法得到的值與跟蹤儀測量得到的值用作精度對(duì)比,記錄對(duì)比如表3所示。
表3 精度對(duì)比
由表3可以知道,綜合修正法得到的定位坐標(biāo)值與激光跟蹤儀得到的測距值基本相吻合,差值波動(dòng)在±5 mm范圍內(nèi),z軸方向的波動(dòng)較大,這是由于在深度上受目標(biāo)物本身遮擋程度影響。整體上單位距離定位誤差在0.5%以內(nèi),定位精度較高。
為了驗(yàn)證環(huán)境光照對(duì)目標(biāo)物測量精度的影響,本文使用可調(diào)不同光照度的光源來測試測量結(jié)果。實(shí)驗(yàn)使用200 W、分20個(gè)擋位的LED燈源,通過照度計(jì)測得照在物體上的實(shí)際光照度。在不同擋位的光照下進(jìn)行固定位置目標(biāo)物的定位,如圖10所示。
圖10 可調(diào)光源與照度計(jì)測光照度
在不同光照度下依次獲得固定目標(biāo)物中心各坐標(biāo)軸的對(duì)應(yīng)值。光照度與目標(biāo)物體坐標(biāo)值的變化關(guān)系如圖11所示。
圖11 不同光照度下目標(biāo)物中心各坐標(biāo)測距及精度對(duì)比
由圖11可知,不同光照度對(duì)目標(biāo)物測量的精度幾乎無影響,各軸測距的波動(dòng)范圍在2 mm內(nèi)。在較弱的光照下,物體也能很好地被識(shí)別和精準(zhǔn)定位。
本文在自然光線環(huán)境中使用了光學(xué)雷達(dá)深度傳感器與深度學(xué)習(xí)算法相結(jié)合,以及用修正的綜合法計(jì)算目標(biāo)物的空間位置,達(dá)到了對(duì)目標(biāo)物的識(shí)別、實(shí)例分割與三維空間定位的目的。該算法自主識(shí)別率高,空間定位精度高,受照明亮度影響小,單位距離定位誤差在0.5%以內(nèi),增強(qiáng)了機(jī)械臂自主定位的實(shí)時(shí)性和實(shí)用性,對(duì)機(jī)械臂智能抓取的研究具有較為重要的意義。