劉文海,胡 潔,王偉明
(上海交通大學(xué) 機(jī)械與動力工程學(xué)院, 上海 200240)
機(jī)器人抓取是機(jī)器人操作的重要組成部分,也一直是機(jī)器人研究的重點.傳統(tǒng)剛性手爪的抓取已廣泛應(yīng)用于各行各業(yè),用來執(zhí)行工業(yè)場景中重復(fù)的、笨重的和較為結(jié)構(gòu)化的任務(wù).而對于外形可變和表面易碎物體的分揀和抓取,軟體手顯現(xiàn)出了更高的柔順性[1].同時,這些工作環(huán)境往往是非結(jié)構(gòu)化的,相比于固定的工業(yè)環(huán)境,具有更多不確定性,例如物體種類以及物體表面的柔軟程度.因此,如何提高軟體手抓取的自主性和智能性便成為一項極為重要的課題.
近年來,隨著深度學(xué)習(xí)的發(fā)展,越來越多的研究將深度學(xué)習(xí)應(yīng)用在基于視覺的抓取規(guī)劃中[2].這種方法通過擬合從感知到抓取的直接映射來自動提取預(yù)示穩(wěn)定抓取的特征,對未知物體同樣具有良好的泛化性,這一類方法的關(guān)鍵是將抓取規(guī)劃問題轉(zhuǎn)化成深度學(xué)習(xí)能解決的分類或者回歸問題,同時搜集大量與模型輸入輸出相對應(yīng)的有標(biāo)簽數(shù)據(jù).Lenz等[3]首次將深度學(xué)習(xí)應(yīng)用在二指手的抓取規(guī)劃中,并開源了其模型對應(yīng)的抓取數(shù)據(jù)集.Redmon和Kumra等[4-5]在其開源數(shù)據(jù)集的基礎(chǔ)上分別通過改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)和采用具有更優(yōu)異分類性能的深度殘差基網(wǎng)絡(luò)(ResNet-50),提高了抓取檢測的準(zhǔn)確性和速度.Liu等[6]針對散堆多物體的機(jī)器人分揀提出用于吸盤的吸附點檢測網(wǎng)絡(luò).Zeng等[7]則提出了與物體類別無關(guān)的全卷積抓取檢測網(wǎng)絡(luò).以上研究主要針對二指夾手和吸盤等剛性手爪,而將深度學(xué)習(xí)應(yīng)用在軟體手爪抓取規(guī)劃的研究則相對較少.多指軟體手的抓取大多停留在已知物體位姿抓取或者人工操作的水平[8].這是因為視覺引導(dǎo)的軟體手抓取需要視覺提供更多抓取預(yù)測量,例如軟體手的穩(wěn)定抓取除了像吸盤需要準(zhǔn)確的抓取位置預(yù)測.除此之外,還需要考慮軟體手的開合角度、抓取深度和寬度的影響,完備的抓取構(gòu)型是實現(xiàn)軟體手抓取的關(guān)鍵.
本文針對視覺引導(dǎo)的4指軟體手的自主抓取,提出一種新的基于深度學(xué)習(xí)的抓取檢測方法,利用網(wǎng)絡(luò)結(jié)構(gòu)VGG16上分別提取彩色圖和深度圖的卷積特征,并在融合層融合輸出多模特征圖,以多模特征圖為基礎(chǔ)設(shè)置預(yù)測錨點,并級聯(lián)抓取預(yù)測網(wǎng)絡(luò),分別輸出抓取質(zhì)量、抓取角度和抓取深度預(yù)測.最后,構(gòu)建軟體手抓取數(shù)據(jù)集,對比分析影響抓取預(yù)測準(zhǔn)確性的因素,并通過抓取實驗驗證本方法的有效性.
綜上,圖像空間的抓取表示可通過下式轉(zhuǎn)換到世界坐標(biāo)系:
(1)
式中:RTC為攝像頭坐標(biāo)系到機(jī)器人坐標(biāo)系的坐標(biāo)轉(zhuǎn)換,由攝像頭外參標(biāo)定可得;f為2維圖像坐標(biāo)到3維攝像頭坐標(biāo)系的轉(zhuǎn)變,由攝像頭內(nèi)參標(biāo)定可得.
圖1 軟體手的4維抓取構(gòu)型表示Fig.1 4-dimension grasp configuration of soft gripper
圖像空間到抓取指令的映射需要滿足穩(wěn)定抓取準(zhǔn)則,這依賴于抓取標(biāo)簽的有效構(gòu)建,抓取標(biāo)簽的標(biāo)記過程見下文2.2.這種映射可直接采用深度網(wǎng)絡(luò)模型進(jìn)行學(xué)習(xí)擬合,即Mθ:I→G,其中:Mθ為參數(shù)化的網(wǎng)絡(luò)模型;θ為網(wǎng)絡(luò)參數(shù)矩陣.學(xué)習(xí)的過程是基于有標(biāo)簽抓取的數(shù)據(jù)S:IT→GT,以多任務(wù)損失函數(shù)L作為誤差函數(shù)的學(xué)習(xí)映射Mθ(I)=G的參數(shù)θ,即
(2)
圖2 網(wǎng)絡(luò)模型與“錨點”旋轉(zhuǎn)框Fig.2 Network architecture and anchor based rotating block
根據(jù)上述完備抓取構(gòu)型,為學(xué)習(xí)從圖像空間到抓取指令的映射,提出一種基于“錨點”旋轉(zhuǎn)框的多階段抓取檢測網(wǎng)絡(luò),整體結(jié)如圖2所示.網(wǎng)絡(luò)組成包括卷積神經(jīng)網(wǎng)絡(luò)(CNN)特征融合層和抓取預(yù)測層.特征融合層使用VGG16網(wǎng)絡(luò)作為特征提取網(wǎng)絡(luò).網(wǎng)絡(luò)分別以480像素×640像素大小的彩色圖像和深度圖像作為單模態(tài)輸入網(wǎng)絡(luò).其中,彩色圖像包含R、G、B3個通道,深度圖像擴(kuò)展為D、D、D3個重復(fù)通道.特征提取網(wǎng)絡(luò)分別生成通道為512、大小為15像素×20像素的單模態(tài)特征圖,特征圖進(jìn)行通道疊加后銜接3×3卷積層完成特征融合,最終形成512通道的融合特征圖.抓取預(yù)測層分為2個階段:第1階段進(jìn)行抓取點的二值分類,預(yù)先選出可抓取的候選點;第2階段在候選點進(jìn)行抓取角度分類和抓取深度回歸.受文獻(xiàn)[11]的啟發(fā),特征融合層與抓取預(yù)測層的連接采用基于“錨點”的滑動網(wǎng)絡(luò)形式,如圖2右側(cè)所示.每個“錨點”是融合特征層滑窗的中心點,滑窗大小設(shè)置為2像素×2像素.因此,第1階段在每個“錨點”處判斷是否為可抓取點.第2階段以第1階段為基礎(chǔ),選出第1階段預(yù)測概率最大的m個“錨點”(此處m取為5)進(jìn)行角度分類和抓取深度回歸,即以“錨點”為中心,以90°/N的角度旋轉(zhuǎn)N次(N為角度旋轉(zhuǎn)次數(shù),此處N取為9)獲得N個滑窗.這相當(dāng)于將R、G、B和深度圖分別旋轉(zhuǎn)N次后送入融合卷積層得到N個對應(yīng)“錨點”位置的特征窗.若抓取角度經(jīng)過旋轉(zhuǎn)變?yōu)?° 或者180°,則此時特征窗的抓取角度類別為可抓取,其他特征窗為非可抓取.抓取預(yù)測網(wǎng)絡(luò)的2個階段均采用全卷積形式,這種滑動網(wǎng)絡(luò)相當(dāng)于依次進(jìn)行2×2以及 1×1 卷積操作,最后在階段1輸出15×20大小的抓取二值分類c1,階段2在階段1的基礎(chǔ)上計算m×N個滑窗的角度分類c2和抓取深度d回歸.所有的卷積激活函數(shù)采用Relu函數(shù),抓取預(yù)測分類采用 Sigmoid 激活函數(shù),回歸預(yù)測采用線性激活函數(shù).
由于卷積操作是一種參數(shù)共享的模型,可看作是15×20個全卷積小網(wǎng)絡(luò)的計算.所以其訓(xùn)練過程可看作簡化模型的訓(xùn)練,同樣分為2個階段的網(wǎng)絡(luò)訓(xùn)練,如圖3所示.其中:Conv為卷積層;CB為卷積模塊.階段1是二分類,階段2是角度分類和抓取深度回歸,模型輸入為64像素×64像素圖像塊.
圖3 模型簡化與訓(xùn)練Fig.3 Model simplification and training
抓取預(yù)測層的輸入是前層特征圖2×2滑窗的卷積,轉(zhuǎn)換到圖像空間即是64像素×64像素的圖像塊.因此,簡化模型的輸入變?yōu)?4像素×64像素的圖像塊.這種轉(zhuǎn)變得益于特殊的抓取網(wǎng)絡(luò)設(shè)計,且有利于進(jìn)行樣本增強(qiáng),更容易訓(xùn)練.整個多階段網(wǎng)絡(luò)模型參數(shù)個數(shù)為3.44×107.訓(xùn)練采用Adam優(yōu)化方法,基于Keras框架,訓(xùn)練平臺包含2塊GTX 1080Ti GPU,整個訓(xùn)練時間為0.5 h,15×20個錨點的整體預(yù)測時間為850 ms.
目前,有多個公開抓取數(shù)據(jù)集可用于抓取檢測網(wǎng)絡(luò)訓(xùn)練,包括Connell二指手抓取數(shù)據(jù)集[3]和Dexnet系列數(shù)據(jù)集[12],這些數(shù)據(jù)集主要用于二指夾手或者吸盤.本文構(gòu)建了用于軟體手抓取的機(jī)器人系統(tǒng).抓取實驗以6類水果作為抓取對象,如圖4所示.采用 Intel 的RGB-D攝像頭D435,視野范圍是480像素×640像素.在數(shù)據(jù)搜集過程中,6類物體被隨機(jī)放置在桌子上,總共拍攝了18張圖片(包括深度圖和彩色圖,分辨率為480像素×640像素),其中一張圖片的密集程度如圖5所示.18張圖片共894個抓取標(biāo)記,其中正標(biāo)記474個,正樣本示例如圖5(a)所示,負(fù)樣本示例如圖5(b)所示.每個標(biāo)記以標(biāo)記位置為中心截取64像素×64像素的圖像塊作為簡化模型的輸入,如圖5(c)所示.數(shù)據(jù)集搜集過程可在30 min內(nèi)完成,可快速應(yīng)用在其他物體類別,這是該模型的優(yōu)勢.
圖5 抓取數(shù)據(jù)集的建立Fig.5 Establishment of grasp dataset
圖4 抓取水果類別Fig.4 Fruit categories for grasping
圖5(a)上的紅線代表正樣本標(biāo)記,黑點為手爪中心像素點s=(u,v),紅線(黑點到青點)的旋轉(zhuǎn)角度為抓取角度φ,考慮到軟體手4個手指的對稱性,抓取角度范圍為[-45°,45°],這是前文選擇90°/N的原因.藍(lán)點和黑點的深度差h標(biāo)記為抓取深度d,若h≥0.8HGri,則d=0.8HGri,HGri為軟體手指的高度.圖5(b)為負(fù)樣本標(biāo)記,負(fù)樣本的抓取位置標(biāo)記為青色,主要為水果邊緣和桌面.正標(biāo)記的抓取質(zhì)量q統(tǒng)一記為1,負(fù)樣本的抓取質(zhì)量記為0.
為擴(kuò)大訓(xùn)練樣本,提高樣本的利用效率,對采集的數(shù)據(jù)集進(jìn)行數(shù)據(jù)增強(qiáng).主要采用旋轉(zhuǎn)的方式進(jìn)行數(shù)據(jù)增強(qiáng),如圖6所示.一個64像素×64像素的抓取圖像塊可看作一個訓(xùn)練樣本,以抓取位置點為中心,旋轉(zhuǎn)36次可將樣本擴(kuò)大36倍.對于階段1的訓(xùn)練,即擴(kuò)大到 32 184 個樣本,樣本標(biāo)簽不發(fā)生改變;階段2的標(biāo)簽包含兩部分,抓取角度的二分類和抓取深度回歸,若抓取角度經(jīng)過旋轉(zhuǎn)變?yōu)?°或者180°,則抓取角度預(yù)測為1,其他為0,抓取深度標(biāo)簽不變.數(shù)據(jù)增強(qiáng)后的數(shù)據(jù)集按1∶4的比例分為訓(xùn)練集和測試集.
圖6 數(shù)據(jù)增強(qiáng)示意圖Fig.6 Data augmentation
不同于其他文獻(xiàn)采用單一損失函數(shù)的方式[13],不同階段采用不同的損失函數(shù),階段1采用二元交叉熵,階段2采用多任務(wù)損失函數(shù),角度分類同樣采用二元交叉熵,抓取深度回歸采用L2函數(shù)作為損失函數(shù),對于參數(shù)化網(wǎng)絡(luò)Mθ,定義如下回歸損失:
(3)
階段1抓取分類和階段2的角度分類,采用二元交叉熵作為損失函數(shù),定義如下:
(4)
(5)
式中:平衡權(quán)重α是一個超參數(shù),由實驗確定;B為訓(xùn)練批大小.
為驗證本文所提算法的有效性,通過公開數(shù)據(jù)集和自建數(shù)據(jù)集對比驗證模型結(jié)構(gòu)性能.公開數(shù)據(jù)采用Cornell 二指夾手?jǐn)?shù)據(jù)集,與文獻(xiàn)[13]的單一均方誤差損失函數(shù)進(jìn)行對比分析.在自建數(shù)據(jù)集上對比分析影響抓取檢測準(zhǔn)確率的因素,同時通過實際機(jī)器人進(jìn)行軟體手抓取實驗,以驗證所提方法的有效性.
Cornell抓取數(shù)據(jù)集885張圖片,240個可抓物體,抓取標(biāo)簽為5參數(shù)抓取矩形.文獻(xiàn)[13]對其中的抓取角度,抓取寬度和抓取質(zhì)量3個標(biāo)簽進(jìn)行抓取回歸預(yù)測,采用的是單一均方誤差(MSE)損失函數(shù),抓取構(gòu)型的輸出量與本文預(yù)測量相似(抓取角度、抓取深度、抓取質(zhì)量).作為對比,將其MSE單一損失函數(shù)與本文的多任務(wù)損失函數(shù)進(jìn)行比較.同樣的,將Cornell數(shù)據(jù)集按4∶1∶1的比例分為訓(xùn)練集、測試集和驗證集,在測試數(shù)據(jù)集對比損失函數(shù)的訓(xùn)練效果.為全面衡量網(wǎng)絡(luò)的學(xué)習(xí)效果,采用均值平均精度(mAP)值作為網(wǎng)絡(luò)檢測結(jié)果的性能評價指標(biāo).抓取質(zhì)量以不同閾值作為抓取成功的標(biāo)準(zhǔn)會有不同的mAP,超參數(shù)α也會影響網(wǎng)絡(luò)最后的mAP,給出了單一損失函數(shù)和不同α的多任務(wù)損失函數(shù)的閾值mAP變化圖,如圖7所示.其中:δ為閾值;M-L為多任務(wù)損失函數(shù);MES-L為均方誤差損失函數(shù).由圖7可知,多任務(wù)損失函數(shù)具有更優(yōu)異的預(yù)測性能,抓取質(zhì)量的判斷閾值設(shè)置為0.3,超參數(shù)α設(shè)置為2時,多任務(wù)損失函數(shù)獲得的最好預(yù)測結(jié)果為91.9,單一MSE損失函數(shù)的最好預(yù)測結(jié)果只有85.7.根據(jù)圖7,可以選出不同閾值設(shè)置下最合適的超參數(shù)α,從圖7中的曲線也可以看出,在不同閾值設(shè)置下,單一損失函數(shù)都不是最好的誤差函數(shù).以閾值0.5為閾值時的各損失函數(shù)的mAP曲線如圖8所示.其中:ε為召回率;μ為精準(zhǔn)率.由圖8可知,從mAP曲線中可具體知道多任務(wù)損失函數(shù)具有更高的預(yù)測精確率和召回率,相比單一MSE損失函數(shù)更適合作為多輸出抓取構(gòu)型的損失函數(shù).
圖8 多任務(wù)和單一損失函數(shù)在δ=0.5時的mAP比較Fig.8 Comparison of mAP between multi-task and single loss function at δ=0.5
本文的完備輸出包含抓取角度、抓取深度和抓取質(zhì)量,只有這3項同時預(yù)測正確才能實現(xiàn)成功的抓取.本文設(shè)計了一個針對多輸出的評價指標(biāo),即對于預(yù)測結(jié)果,若抓取質(zhì)量預(yù)測錯誤,則網(wǎng)絡(luò)判定為預(yù)測錯誤;若抓取質(zhì)量預(yù)測正確,同時抓取角度與真值相差10° 以內(nèi),抓取深度與真值相差10 mm以內(nèi),預(yù)測結(jié)果判定為正確.作為對比,以單階段模型作為基準(zhǔn)模型,即直接以階段2的模型對抓取進(jìn)行預(yù)測.兩種模型在測試集上的對比結(jié)果如表1所示.其中:eac為網(wǎng)絡(luò)整體準(zhǔn)確率;eer,a為抓取角度錯誤率;eer,d為深度預(yù)測錯誤率;eer,m為抓取質(zhì)量錯誤率.
由表1可知,本文模型具有82.8%的整體預(yù)測準(zhǔn)確率,明顯高于單階段模型.深度預(yù)測錯誤率給出了只有深度預(yù)測錯誤的比例,抓取角度錯誤率給出了階段2角度分類錯誤的比例,抓取質(zhì)量錯誤率給出了階段1抓取質(zhì)量分類的錯誤率.表1中的結(jié)果顯示,分為2個階段進(jìn)行抓取檢測可以獲得更好的性能.2個階段模型的抓取角度錯誤率明顯低于單階段模型,這說明將抓取預(yù)測分為2個階段可以使角度預(yù)測主要集中于階段2進(jìn)行,能夠獲得更好的角度預(yù)測.抓取深度回歸的錯誤率小于5%,說明網(wǎng)絡(luò)對抓取深度學(xué)到了相應(yīng)的映射.
表1 單階段和多階段模型對比Tab.1 Comparison of single-stage and multi-stage models
以6自由度UR5機(jī)械臂、Intel RGB-D攝像頭D435和4指軟體手爪構(gòu)建了機(jī)器人自主抓取實驗系統(tǒng),D435固定在機(jī)械臂外部,視角朝下垂直桌面高度為800 mm,如圖9所示.
抓取檢測結(jié)果如圖10所示,圖10(a)為“錨點”步長為18像素的檢測結(jié)果,圖10(b)為“錨點”步長為9像素的檢測結(jié)果,藍(lán)點為抓取位置,“工字形”紅線代表抓取方向.從檢測結(jié)果來看,雖然步長18像素比9像素具有更稀疏的輸出點,但并沒有丟失對于水果的檢測結(jié)果,所以實驗采用“錨點”為18像素的步長.
圖9 機(jī)器人抓取系統(tǒng)Fig.9 Robotic grasping system
圖10 “錨點”步長為18和9像素的抓取檢測結(jié)果Fig.10 Grasp detection results with anchor step 18 and 9 pixels
輸入為480像素×640像素的情況下,步長為18像素的整體檢測時間為850 ms左右.各個水果的抓取結(jié)果如表2所示.由表2可知,整體抓取成功率達(dá)到96%.為便于定量分析各個水果抓取成功率的影響因素,在自建數(shù)據(jù)庫上(見表2)還比較了不同水果的網(wǎng)絡(luò)檢測結(jié)果.
表2 不同水果抓取成功率和網(wǎng)絡(luò)檢測準(zhǔn)確率
Tab.2 Grasp success rate and model accuracy of different fruits
水果抓取總次數(shù)成功次數(shù)成功率/%預(yù)測準(zhǔn)確率/%黃瓜 50459081柿子 505010085橘子 505010083香蕉 50388680西紅柿505010084獼猴桃505010084
從表2不同水果的抓取成功率來看,圓形水果的抓取成功率普遍比棒狀水果的成功率高,這是因為圓形水果對抓取角度分類的結(jié)果不敏感,并且對于位置定位誤差也具有較高的容差.表2中的抓取成功率普遍高于預(yù)測準(zhǔn)確率,這是因為軟體手對預(yù)測結(jié)果具有一定容差,即使預(yù)測偏離正確值,仍然可以成功抓起水果.此外,數(shù)據(jù)標(biāo)記主要根據(jù)人的經(jīng)驗進(jìn)行標(biāo)注,和實際機(jī)器人的抓取略有不同.從預(yù)測準(zhǔn)確率來看,圓形水果的準(zhǔn)確率同樣高于棒狀水果,和抓取成功率結(jié)果吻合.不同水果的抓取結(jié)果如圖11所示(抓取視頻參見https:∥github.com/liuwenhai/softGrasping.git).如圖11(a)中的西紅柿抓取圖,顯示了在視覺定位存在誤差的情況下西紅柿依然可以被抓取.而棒狀水果,如黃瓜和香蕉,依賴網(wǎng)絡(luò)輸出正確的抓取角度和視覺定位的精度,只有抓取角度和抓取位置同時滿足一定準(zhǔn)確度才可以被成功抓取.黃瓜和香蕉的預(yù)測準(zhǔn)確率差異不大,黃瓜的抓取成功率卻明顯高于香蕉.這是因為,相較于黃瓜,香蕉的質(zhì)量較大,抓取香蕉的中心具有更高的抓取成功率,而黃瓜質(zhì)量較小,即使抓取到黃瓜兩側(cè)也能被成功抓取,所以黃瓜成功率比香蕉更高.試驗中還發(fā)現(xiàn),對于大小不同的橘子,抓取網(wǎng)絡(luò)能夠輸出合適的抓取深度,有助于提高不同大小水果抓取的成功率,如圖11(b)所示.
實驗中發(fā)現(xiàn),即使對于堆疊的水果皮,網(wǎng)絡(luò)也可以輸出正確的抓取檢測結(jié)果,并被成功抓取,如圖11(c)所示,這說明網(wǎng)絡(luò)對于水果皮同樣具有很好的泛化能力.
圖11 不同水果的抓取結(jié)果Fig.11 Grasp results for different fruits
針對視覺引導(dǎo)的軟體手智能抓取,本文提出了基于“錨點”旋轉(zhuǎn)框的多階段抓取預(yù)測網(wǎng)絡(luò),設(shè)計了針對4指軟體手的完備抓取構(gòu)型,包含抓取質(zhì)量、抓取角度和抓取深度,并采用多任務(wù)損失函數(shù)提高了多輸出抓取網(wǎng)絡(luò)的預(yù)測準(zhǔn)確率.通過開源數(shù)據(jù)庫和自建數(shù)據(jù)庫驗證了所提抓取模型的有效性.最后,通過機(jī)器人抓取實驗驗證了所提方法可以有效地實現(xiàn)軟體手的智能抓取.實驗結(jié)果表明,所提方法對不同水果能夠達(dá)到平均96%的抓取成功率,此外,對于水果皮同樣具有很好的泛化效果,進(jìn)一步提高了所提方法的應(yīng)用范圍.