肖賢鵬,胡 莉,張 靜,2,李樹春,張 華
1.西南科技大學(xué) 信息工程學(xué)院,四川 綿陽 621010 2.中國科學(xué)技術(shù)大學(xué) 信息科學(xué)技術(shù)學(xué)院,合肥 230026
盡管機器人對操作物體相對容易,但對任意物體的可靠抓取[1-3]仍然是機器人面臨的一個難題。這一問題的解決將推動機器人技術(shù)在工業(yè)領(lǐng)域的應(yīng)用,比如零件裝配、裝箱和分類[4-5]。同樣,它也將推動輔助機器人領(lǐng)域的發(fā)展,即機器人與周圍環(huán)境進行交互,以滿足人類的需求。機器人抓取包括感知、計劃和控制[6-7]。作為一個起點,知道抓取哪個對象以及如何做是必要的研究方向。因此,對目標(biāo)物體的機器人抓取候選對象進行準確多樣的檢測,將有助于實現(xiàn)更好的抓取路徑規(guī)劃[8],提高基于抓取操作任務(wù)的整體性能。
目前,隨著深度學(xué)習(xí)在各種任務(wù)中的廣泛應(yīng)用,基于深度學(xué)習(xí)的抓取位姿估計也取得了一定的研究成果。Redmon等人[9]提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的機器人抓取檢測的精確、實時方法,對可抓取邊界框執(zhí)行單階段回歸,而不使用標(biāo)準滑動窗口或區(qū)域建議技術(shù),通過使用一個局部受限的預(yù)測機制來預(yù)測每個對象的多個抓取候選;Kumra等人[10]提出利用場景RGB-D圖像預(yù)測平行板機器人抓取未知物體的最佳抓取位姿,該模型使用深度卷積神經(jīng)網(wǎng)絡(luò)從場景中提取特征,然后使用淺層卷積神經(jīng)網(wǎng)絡(luò)預(yù)測目標(biāo)的抓取候選;Guo等人[11]提出了一種融合視覺和觸覺感知的融合深度體系結(jié)構(gòu),用于機器人抓取檢測,該模型使用觸覺數(shù)據(jù)輔助網(wǎng)絡(luò)更好地完成學(xué)習(xí)機器人抓取檢測任務(wù)的視覺特征;Chu等人[12]提出一種兩階段的深度學(xué)習(xí)架構(gòu)來預(yù)測機器人的可抓取位置,將學(xué)習(xí)問題定義為零假設(shè)競爭分類問題而不是回歸問題進行預(yù)測。上述提到的深度網(wǎng)絡(luò)從不同方面解決抓取中的定位問題,但都使用單個高層特征圖進行回歸,使用的特征較少,會降低檢測準確率,基于此引入多尺度特征[13]來預(yù)測抓取候選,并將抓取網(wǎng)絡(luò)中的ROI Pooling替換為ROI Align來消除量化誤差。
抓取位姿[14]采用五維抓取矩形框表示,描述了平行板夾持器在抓取物體之前的位置、姿態(tài)和打開距離。如圖1所示,紅線表示平行板夾持器,(x,y)表示夾持器的中心點坐標(biāo),θ表示夾持器相對于水平方向的角度,w表示夾持器的開口距離,h為夾持器寬度。
圖1 五維抓取框表示Fig.1 Five-dimensional grasp box representation
為引入更豐富的特征表示,學(xué)習(xí)更多的結(jié)構(gòu)線索,本文采用ResNet-50作為主干網(wǎng)絡(luò),設(shè)計一個更深層次的網(wǎng)絡(luò)模型,以改進機器人抓取檢測的特征提取。ResNet設(shè)計的殘差網(wǎng)絡(luò)解決了網(wǎng)絡(luò)加深所造成的梯度爆炸和梯度消失的問題。殘差網(wǎng)絡(luò)[15]由跳躍連接和標(biāo)準卷積神經(jīng)網(wǎng)絡(luò)組成,該設(shè)計允許網(wǎng)絡(luò)繞過輸入,并激勵卷積層作為殘差網(wǎng)絡(luò)的最終映射函數(shù),以此來預(yù)測殘差。
抓取網(wǎng)絡(luò)具體結(jié)構(gòu)如圖2所示,該網(wǎng)絡(luò)以RGD圖像作為輸入,并為圖像中的抓取對象預(yù)測具有方向和矩形邊框的多個抓取候選。其中藍色塊表示網(wǎng)絡(luò)層,灰色塊表示特征圖,抓取建議網(wǎng)絡(luò)(grasp proposal network,GPN)預(yù)測的輸出邊框中,黑線表示兩指夾持器的開口長度,紅線表示夾持器的平行板。
圖2 抓取網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.2 Grasp network structure diagram
抓取檢測中,由于小目標(biāo)本身具有的像素信息較少,容易在下采樣過程中丟失特征,若直接利用單個高層特征進行邊框回歸和角度分類,會降低檢測準確率。為提升檢測效果,引入特征金字塔網(wǎng)絡(luò)(feature pyramid networks,F(xiàn)PN)進行多尺度融合,處理檢測過程中的尺度變化問題,提高小目標(biāo)檢測的魯棒性。
如圖3所示,左側(cè)為ResNet特征提取網(wǎng)絡(luò),選取該網(wǎng)絡(luò)的2~4卷積層的最后一個殘差塊特征作為FPN的特征,從高層特征上采樣實現(xiàn)特征融合,這樣既可以利用頂層的高語義信息,又可以利用底層的高分辨率信息。為了使所有級別的特征層通道數(shù)保持一致,先使用1×1卷積壓縮通道數(shù),再與2倍上采樣后的上層特征圖相加。
圖3 FPN結(jié)構(gòu)圖Fig.3 FPN structure chart
作為抓取網(wǎng)絡(luò)的重要組成部分,抓取建議網(wǎng)絡(luò)(GPN)主要在整個圖像中生成抓取建議。和區(qū)域建議網(wǎng)絡(luò)(region proposal network,RPN)類似,抓取建議網(wǎng)絡(luò)在特征圖上滑動一個3×3的卷積核,使用卷積網(wǎng)絡(luò)構(gòu)建與類別無關(guān)的候選區(qū)域。由于每個真實框具有不同的角度,為降低其在生成抓取建議時的難度,將每個有方向的邊框重置為具有垂直高度和水平寬度的矩形,如圖4所示,底部為真實框,頂部為重置后的邊框。
圖4 抓取邊框Fig.4 Grasp frame
GPN對網(wǎng)絡(luò)預(yù)測的邊框進行調(diào)整,利用變換參數(shù)得到和真實框更為接近的候選框,平移參數(shù)t x、t y和伸縮參數(shù)t w、t h具體表示如下:
式中,G、P、G*分別表示真實框、預(yù)測框和候選框,x、y表示邊框中心點坐標(biāo),w、h表示寬高。
用t i表示第i個抓取邊框的四維向量(x,y,w,h),p i表示對應(yīng)邊框的預(yù)測概率,對于所有抓取建議,定義其損失為:
其中,Lgp_cls為抓取建議分類的交叉熵損失,Lgp_reg為抓取建議的L1回歸損失,Ncls和Nreg是歸一化因子,λ1是兩者之間的權(quán)重。
在常見的檢測網(wǎng)絡(luò)中,ROI Pooling的作用是使生成的候選框映射為固定尺寸的特征圖。這一操作存在兩次將浮點數(shù)量化為整數(shù)的過程,分別發(fā)生在對ROI坐標(biāo)和對ROI劃分為等大子區(qū)域上的量化,導(dǎo)致最后的邊框定位存在一定的偏差。因此,本文采用RoI Align來進行區(qū)域特征映射。ROI Align取消了量化操作,對于量化中產(chǎn)生的坐標(biāo)為浮點數(shù)的像素,采用了雙線性內(nèi)插的方法來獲取像素值,從而將感興趣區(qū)域歸一化的過程轉(zhuǎn)化為一個連續(xù)的操作,解決了ROI Pooling操作中兩次量化造成的區(qū)域不匹配的問題。
如果將RGB-D輸入圖像回歸到一個單一的5維抓取表示g={x,y,w,h,θ},在預(yù)測非歐幾里德(非凸)空間中的坐標(biāo)時會導(dǎo)致其回歸和標(biāo)準L2損失表現(xiàn)不佳?;诖?,將抓取表示的方向坐標(biāo)θ量化為18個等長間隔,并將輸入/輸出映射為抓取方向的分類任務(wù)。并添加了一個非抓取收集定向類,用于使用零假設(shè)進行顯式競爭。如果所有方位分類器輸出的得分均低于非抓取類,則認為抓取建議不正確并拒絕。
用ρl表示經(jīng)過Softmax層后得到l類的概率,βl表示對應(yīng)的預(yù)測抓取框,則抓取框損失函數(shù)定義為:
其中,Lgrc_cls是抓取建議分類的交叉熵損失,Lgrc_reg是抓取框的L1回歸損失,λ2是回歸損失的權(quán)重,β*是真實抓取框。整個網(wǎng)絡(luò)總的損失函數(shù)為:
為了有效處理抓取建議方案,將ROI Align層集成到網(wǎng)絡(luò)中,這樣可以避免在感興趣區(qū)域內(nèi)重新計算特征。ROI Align將抓取建議的所有特征疊加在一起,然后將這些特征反饋給兩個全連接層進行邊界框回歸和方向參數(shù)分類。
本文使用康奈爾抓取數(shù)據(jù)集,該數(shù)據(jù)集是最常用的抓取檢測數(shù)據(jù)集,由224個不同對象共885張圖像組成,每個物體在不同方向或姿勢上拍攝了若干幅圖像。
為適應(yīng)ResNet-50網(wǎng)絡(luò)的輸入格式,用深度通道替換原圖中的藍色通道,深度圖由數(shù)據(jù)集中的點云數(shù)據(jù)進行歐式距離變換并進行深度圖修補得到。由于RGB數(shù)據(jù)在0~255之間,深度信息被歸一化到相同的范圍。同時,在訓(xùn)練之前對數(shù)據(jù)進行擴充。首先,對圖像進行中央裁剪,得到一個351×351的區(qū)域,然后將裁剪后的圖像在0到360°之間隨機旋轉(zhuǎn),中間裁剪為321×321。旋轉(zhuǎn)后的圖像在x和y方向上隨機平移最多50個像素。預(yù)處理為每張圖像生成1 000個增強數(shù)據(jù)。最后,將圖像大小調(diào)整為227×227,送入網(wǎng)絡(luò)進行訓(xùn)練。
對整個網(wǎng)絡(luò)進行端到端的訓(xùn)練,計算機采用Precision T7610工作站,E5-2600 V2處理器,32 GB內(nèi)存,單nVidia Titan-XP卡。操作系統(tǒng)為Ubuntu16,在Tensorflow-GPU1.14、cuda-9.0、cudnn7.1下進行訓(xùn)練,epochs和初始學(xué)習(xí)率分別設(shè)置為5和0.000 1,每10 000次迭代將學(xué)習(xí)率除以10。
抓取參數(shù)[9-12]的精度根據(jù)預(yù)測框和真實框的接近度進行評估,具體指標(biāo)如下:
(1)預(yù)測抓取框gp和真實框gt的夾角在30°以內(nèi);
(2)預(yù)測抓取框和真實抓取框的Jaccard指數(shù)大于0.25。
Jaccard指數(shù)如式(5)所示:
為驗證網(wǎng)絡(luò)中各模塊的表現(xiàn)力,設(shè)計三組不同網(wǎng)絡(luò)結(jié)構(gòu)進行訓(xùn)練,并對訓(xùn)練好的網(wǎng)絡(luò)模型進行測試,選擇所有抓取候選輸出中預(yù)測得分最高的邊框作為最終輸出。對實驗結(jié)果的計算使用五折交叉驗證集,將數(shù)據(jù)集劃分為5份,選取1份作為測試集,剩下4份用來訓(xùn)練。分別逐圖像和物體兩種方法進行拆分。逐圖像拆分即把所有數(shù)據(jù)隨機劃分,可以驗證模型的泛化能力;逐物體拆分即把所有圖像中相同的物體分到相同的交叉驗證集中,可以測試網(wǎng)絡(luò)對新物體的泛化能力。測試結(jié)果如表1所示。
表1 不同網(wǎng)絡(luò)模型抓取檢測結(jié)果Table 1 Grasp detection results of different network models
由表1可以看出,在網(wǎng)絡(luò)結(jié)構(gòu)中增加FPN結(jié)構(gòu),兩種測試精度分別提升0.5個百分點和0.6個百分點,將原結(jié)構(gòu)中的ROI Pooling替換為ROI Align,檢測精度分別提升0.4個百分點和0.5個百分點,說明FPN和ROI Align可以提高網(wǎng)絡(luò)的檢測精度。
真實場景下,可行的抓取操作一般與物體自身的形狀和放置角度有關(guān),僅給出一個抓取候選框可能完成不了抓取操作。因此,網(wǎng)絡(luò)輸出多個高置信度的候選抓取,以供后續(xù)計劃選擇。圖5為網(wǎng)絡(luò)輸出的檢測結(jié)果,其中圖(a)為不同測試對象輸出多個候選抓取框的檢測結(jié)果,圖(b)為輸出最高置信度候選框的檢測結(jié)果,圖(c)為同一個抓取對象不同角度放置的檢測結(jié)果。
圖5 抓取網(wǎng)絡(luò)檢測結(jié)果Fig.5 Grasp network detection results
表2為康奈爾RGB-D抓取數(shù)據(jù)集的矩形抓取檢測精度與之前工作的比較結(jié)果,所有實驗均在相同數(shù)據(jù)集和相同評價指標(biāo)下完成,可以看到本文算法在以RGD圖像作為輸入時,預(yù)測精度均高于其他算法。逐圖像拆分時檢測精度為96.9%,逐對象拆分時,對新目標(biāo)的檢測精度達到了97.2%。此外,在沒有深度信息的RGB圖像上進行實驗,圖像和對象拆分的檢測結(jié)果都低于RGD圖像,說明了深度圖像在檢測中的有效性。
表2 不同算法抓取檢測結(jié)果Table 2 Grasp detection results of different algorithms
比較表2的指標(biāo)參數(shù)發(fā)現(xiàn),本文算法為達到較高的抓取檢測精度,采用的抓取網(wǎng)絡(luò)結(jié)構(gòu)相對復(fù)雜,計算速率比表中Kumra等人所提出單結(jié)構(gòu)網(wǎng)絡(luò)有所下降。但本文算法檢測一幅圖像耗時約0.098 s,可滿足在真實場景下進行實時檢測和抓取操作的應(yīng)用要求。
表3為檢測模型中不同Jaccard指數(shù)下的結(jié)果。隨著Jaccard指數(shù)的升高,抓取檢測的精度會逐漸下降,但即使在0.40 IOU的情況下,檢測精度仍具有競爭力。
表3 不同Jaccard指數(shù)下檢測準確率Table 3 Detection accuracy under different Jaccard indexes
為評估真實場景下視覺檢測和隨后執(zhí)行的抓取運動的性能,搭建了實物實驗抓取系統(tǒng),如圖6所示。該系統(tǒng)主要由UR5機械臂、工作臺和Inter Realsense D415深度相機三部分組成,其中深度相機被固定在剛性支架上,與機械臂形成Eye-to-Hand手眼結(jié)構(gòu),并進行手眼標(biāo)定,完成相機坐標(biāo)系和機械臂末端坐標(biāo)系的轉(zhuǎn)換工作。
為了較全面地評估系統(tǒng)性能,實際抓取操作抽樣得到以下12種實驗對象。如圖7所示,將實驗對象分為手動工具和生活用品兩組,每組6種實驗對象,手動工具組有鉗子、活動扳手、扳手、卷尺和大小螺絲刀,生活用品有美工刀、紙盒、紙杯、鼠標(biāo)、網(wǎng)球和瓶子。
圖8為目標(biāo)抓取流程圖。首先深度相機獲取工作臺上物體的彩色信息和深度信息,將深度信息進行深度圖修復(fù)后和彩色圖融合得到目標(biāo)對象的RGD圖;然后將圖像以中心點為中點裁剪為227×227的圖像輸入網(wǎng)絡(luò)模型進行抓取框預(yù)測,得到多個預(yù)測框;最后通過手眼轉(zhuǎn)換矩陣將相機坐標(biāo)系下的預(yù)測框信息轉(zhuǎn)換到機械臂末端工具坐標(biāo)系執(zhí)行抓取。
實物實驗時,將每個物體按不同角度不同方向放置在工作臺上進行視覺檢測和實物抓取,每個物體進行50次實驗,視覺檢測以物體是否被預(yù)測出抓取框為檢測標(biāo)準,抓取檢測以實際抓取成功與否作為評價指標(biāo)。圖9為不同物體的檢測結(jié)果,其中圖(a)展示了抓取對象中較為典型的幾個物體的檢測結(jié)果,這幾個對象具有厚度小、形狀小、不規(guī)則的特征;圖(b)展示了同一對象在不同方向下的檢測結(jié)果。
圖9 實物檢測結(jié)果Fig.9 Physical test results
為了從多個候選框中選取具有代表性的抓取框進行一次性實物抓取,對一次視覺檢測中所有抓取框分別做置信度排序和距離中心點距離排序,選擇最高置信度和最靠近中心點的兩個框分別做抓取檢測,檢測結(jié)果如表4所示。
表4 實物抓取結(jié)果Table 4 Object grasp results %
從表中可以看出,實物抓取實驗中物體平均檢測精度為95.8%,最高置信度和靠近中心點的平均抓取精度分別為88.3%和90.2%,且中心點抓取比最高置信度抓取平均精度高1.9個百分點,除鉗子外的其他物體中心點抓取精度均高于最高置信度抓取。這是因為鉗子的手柄開合度會隨機變化,對抓取位姿的估計帶來了較大的干擾。
為進一步分析表4中不同目標(biāo)檢測成功率、抓取成功率與目標(biāo)特性之間的關(guān)系,繪制了圖10所示的物體檢測-抓取成功率折線圖。從圖中可以清晰看到:(1)目標(biāo)檢測精度方面,紙盒、紙杯、鼠標(biāo)、瓶子這幾種物體的檢測精度明顯優(yōu)于螺絲刀和扳手,原因是同樣距離成像時,前者外形尺寸大,圖像中有效像素占比高(扳手和螺絲刀因金屬鏡面反光,導(dǎo)致有效像素降低);(2)在抓取精度上,紙盒、紙杯、鼠標(biāo)、瓶子、卷尺這幾種物體的抓取精度明顯優(yōu)于扳手、美工刀、鉗子,前者相比后者,物體形態(tài)固定,且由于目標(biāo)物體外形對稱性較強,外觀較為規(guī)則,擺放姿態(tài)有限,抓取成功率高。
圖10 物體檢測-抓取成功率折線圖Fig.10 Line graph of object detection-grasp success rate
本文針對機器人抓取成功率優(yōu)化問題,提出一種融合多尺度特征的抓取位姿估計方法,以改善抓取目標(biāo)多樣性、位姿隨機性對機器人抓取任務(wù)適應(yīng)性的不利影響。實驗結(jié)果表明,與當(dāng)前主流算法相比,本文所提算法目標(biāo)檢測準確率有明顯提升,在基于康奈爾抓取數(shù)據(jù)集開展的抓取位姿估計實驗中,仿真抓取位姿估計準確度達到了96.9%;實物抓取實驗中抓取目標(biāo)檢測成功率達95.8%,機器人抓取成功率為90.2%,抓取成功率得到明顯改善。在接下來的工作中,將圍繞如何提高檢測準確率和抓取成功率繼續(xù)展開具體研究。