魏英姿,曹雪萍
(沈陽理工大學(xué) 信息科學(xué)與工程學(xué)院,沈陽 110159)
近年來,機(jī)器人自主抓取研究受到人們的密切關(guān)注,主要是因為機(jī)器人缺乏理解感知信息的能力。即使給機(jī)器人提供與人類相同的視覺信息,機(jī)器人也并不知道怎么抓住物體。其次,由于待抓取物體的外形各種各樣,即使同一種類別的物體在外形上也可能有較大的差異,因此視覺感知成為現(xiàn)實機(jī)器人系統(tǒng)的一大瓶頸。
傳統(tǒng)的機(jī)器學(xué)習(xí)主要根據(jù)物體模型進(jìn)行抓取姿態(tài)估計[1-3]。隨著深度學(xué)習(xí)的快速發(fā)展,有學(xué)者提出兩點抓取表示法,選擇最優(yōu)抓取點位置,提高機(jī)器人抓取的成功率。Tanner等[4]通過外形結(jié)構(gòu)以及形態(tài)學(xué)處理的方法提取物體的特征點,從而確定物體的中心定位,但該方法并不適用于形狀和結(jié)構(gòu)復(fù)雜的物體。Maitin-Shepard等[5]利用手工標(biāo)記特征的方法來選擇最優(yōu)抓取點,雖然在一定程度上提高了準(zhǔn)確率,但手工標(biāo)記既耗時,通用性也不強(qiáng)。卷積神經(jīng)網(wǎng)絡(luò)的出現(xiàn),彌補了上述的不足,其結(jié)構(gòu)類似生物神經(jīng)網(wǎng)絡(luò),能夠自主獲取物品的特征。2012年AlexNet卷積神經(jīng)網(wǎng)絡(luò)[6]在ImageNet比賽中脫穎而出,隨后,利用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行物體識別[7]及物體抓取檢測等研究迅速發(fā)展起來。2015年康奈爾大學(xué)的Ian Lenz等[8]利用一個深度網(wǎng)絡(luò)檢測機(jī)器人抓取矩形框并將矩形框中的三維點云映射到抓取參數(shù)。Redom等[9]將一個卷積神經(jīng)網(wǎng)絡(luò)與Jiang等[10]提出的抓取矩形框結(jié)合起來,實現(xiàn)物體抓取框的獲取,但該方法的成功率并不高,還需要進(jìn)一步完善。
本文提出一種基于多模態(tài)卷積神經(jīng)網(wǎng)絡(luò)模型的最優(yōu)抓取位姿檢測的方法。由于單獨使用RGB圖像作為神經(jīng)網(wǎng)絡(luò)輸入時,物體抓取框預(yù)測結(jié)果易被圖像的背景顏色和圖案干擾,針對這個問題,本文對AlexNet卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行了改進(jìn),增加專門處理Depth圖像的神經(jīng)網(wǎng)絡(luò),并將其與處理RGB圖像的神經(jīng)網(wǎng)絡(luò)合并。由于預(yù)測結(jié)果中評判值排名第一的抓取框未必是最利于機(jī)械手抓取操作的,所以還對最佳抓取框的選擇進(jìn)行了優(yōu)化,增加了比較重心的算法。第一階段采用背景減除法,得到物體的掩膜,通過等間距采樣規(guī)則,獲取這個物體所有可能的候選抓取矩形框;第二階段將兩個獨立的AlexNet卷積神經(jīng)網(wǎng)絡(luò)融合作為一個整體進(jìn)行訓(xùn)練,物體的RGB圖像和Depth圖像分別作為兩個網(wǎng)絡(luò)的輸入,然后將所有候選抓取框送入神經(jīng)網(wǎng)絡(luò)打分,找到評判值排名前三的抓取框;第三階段通過比較重心的算法找到中心最接近物體重心的抓取框,從而得到最優(yōu)抓取框。
機(jī)器人在抓取物品時要預(yù)先獲取物品被抓取部位的位姿,并將位姿映射到末端執(zhí)行器進(jìn)行抓取。本文用一個旋轉(zhuǎn)的矩形框表示物品的抓取位姿,采用文獻(xiàn)[10]的方法來定義矩形框。進(jìn)行物體抓取位姿檢測時,輸入到神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)是包含目標(biāo)物體的RGB-D圖像,輸出的是抓取矩形的四個頂點坐標(biāo)和抓取矩形框的旋轉(zhuǎn)角度。矩形框的定義如圖1所示,用五維向量表示抓取位姿。
圖1 抓取框在圖像中的定義
若將抓取矩形框表示為G,則矩形框的定義式為
G={x,y,h,w,θ}
(1)
式中:(x,y)表示抓取矩形框的中心位置;h為機(jī)器人夾持器的寬度;w為夾持器張開的大小;θ為h與水平軸的夾角,表示抓取位置的姿態(tài)。
根據(jù)抓取框G={x,y,h,w,θ}可知,一個抓取框由中心點、長、寬、角度決定。抓取框中心點的確定,如圖2所示,先通過背景減除,得到物體掩膜,然后以一定的等間距在橫向和縱向上標(biāo)記直線,找到既在直線交點上又在物體掩膜上的點,該點即為抓取框的中心點。采樣的間距根據(jù)物體整體在圖像上的像素面積確定,如面積較大,則可適當(dāng)?shù)卦黾硬蓸娱g距;反之,則適當(dāng)?shù)販p小采樣間距。
圖2 抓取框中心點獲取示意圖
根據(jù)康奈爾數(shù)據(jù)集中的物體大小,可大致確定抓取框16組長(w)和寬(h)的組合。
[w,h]=[40,20;50,20;60,20;40,30;50,30;60,30;70,30;50,40;60,40;70,40;80,40;60,50;70,50;80,50;70,60;80,60]
當(dāng)實際值h比夾持器的寬度小時,或?qū)嶋H值w比夾持器張開的最大值大時,該抓取框則被判定為無效。
θ的取值范圍為0°~180°,每改變15°取一個值,這樣既能很大程度上減少抓取框的搜索時間又不會影響抓取框檢測的效果。
通過上述步驟可以確定一個物體上的所有候選抓取框。
采用美國康奈爾大學(xué)提供的抓取數(shù)據(jù)集[11],該數(shù)據(jù)集由240個不同物品的885幅圖像數(shù)據(jù)和點云數(shù)據(jù)組成,圖片和點云數(shù)據(jù)相對應(yīng)。在這些數(shù)據(jù)中,每幅圖像均有多個被標(biāo)記為成功(正)或失敗(負(fù))的抓取矩形框,共標(biāo)注了8019個抓取矩形框,去掉點云缺失嚴(yán)重的數(shù)據(jù)后,共提取出7365個抓取框,其中正樣本數(shù)為4673,負(fù)樣本數(shù)為2692。圖3所示為可抓取框RGB圖像,圖4所示為可抓取框Depth圖像。本文將數(shù)據(jù)集上標(biāo)注的所有可用的抓取框全部提取出來,將RGB圖像和Depth圖像分開作為訓(xùn)練抓取分類器的兩個數(shù)據(jù)集,在進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練時,用提取出來經(jīng)過處理的數(shù)據(jù),將可抓取的矩形框標(biāo)記為1,不可抓取的標(biāo)記為0。
圖3 可抓取框RGB圖像
圖4 可抓取框Depth圖像
以抓取矩形框為學(xué)習(xí)特征,用8層的AlexNet卷積神經(jīng)網(wǎng)絡(luò),建立多模態(tài)神經(jīng)網(wǎng)絡(luò)模型,將整個網(wǎng)絡(luò)作為一個整體來進(jìn)行訓(xùn)練,輸入數(shù)據(jù)是抓取矩形框的RGB數(shù)據(jù)集和Depth數(shù)據(jù)集。多模態(tài)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 多模態(tài)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
整個神經(jīng)網(wǎng)絡(luò)共有8層,前5層是卷積層,完成圖形特征的提?。缓?層是全連通層,實現(xiàn)圖像分類。其中,第1層和第2層包括卷積層、標(biāo)準(zhǔn)化操作和最大池化層;第1層輸出96個特征圖;第2層輸出256個特征圖;第3、4層只有一個卷積層,輸出384個特征圖;第5層包含了一個卷積層和一個池化層,輸出256個特征圖;第6、7層為全連接層,均有4096個隱層;第8層將兩個網(wǎng)絡(luò)進(jìn)行融合;最終輸出層soft-max輸出分類結(jié)果。
實驗平臺采用Anaconda的tensorflow平臺,主要使用GPU型號為GTX 1080Ti、操作系統(tǒng)為Windows10的計算機(jī)進(jìn)行訓(xùn)練;訓(xùn)練數(shù)據(jù)集是從康奈爾抓取數(shù)據(jù)集中提取出來的抓取矩形框RGB-D樣本集。訓(xùn)練參數(shù)如表1所示。
表1 訓(xùn)練參數(shù)
神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練完成后,在樣本數(shù)據(jù)集上的識別成功率只反映模型對樣本特征的學(xué)習(xí)能力,還需要將所有候選抓取框送入神經(jīng)網(wǎng)絡(luò)中評判,檢測top3的抓取框。
若預(yù)測的抓取框為Rect,數(shù)據(jù)集中標(biāo)注的抓取框為Rect*,判斷一個預(yù)測抓取框是否成功有兩個條件:
(1)預(yù)測的抓取框Rect和標(biāo)注的抓取框Rect*之間的夾角小于30°;
(2)預(yù)測的抓取框Rect和標(biāo)注的抓取框Rect*之間的重疊率score大于25%,定義式為
(2)
通過多模態(tài)卷積神經(jīng)網(wǎng)絡(luò)對所有可能候選抓取框進(jìn)行評判打分后,得到評判值排名前三的候選抓取矩形框。為方便對物體進(jìn)行抓取操作,通過比較重心的算法找到中心最接近物體重心的抓取框,即為最優(yōu)抓取框。本文采用以下算法找到最優(yōu)抓取矩形框,如圖6所示。
圖6 算法的流程圖
首先找到評分排名前3名且不同中心位置的矩形框,記為Gt1、Gt2、Gt3,初始化Gt1、Gt2、Gt3后,輸入候選矩形框Gi和該矩形框的評分Ji,然后將矩形框的評分Ji與第1個矩形框的評分Jt1進(jìn)行比較,若Ji>Jt1,則比較其中心值;若中心值相等,則將該候選矩形框Gi賦值給Gt1;若中心值不相等,則依次進(jìn)行以下操作:Gt2賦值給Gt3,Gt1賦值給Gt2,Gi賦值給Gt1,執(zhí)行結(jié)束后進(jìn)入下一循環(huán)。若Ji≤Jt1,則進(jìn)入下一個判斷,依次執(zhí)行下去,直到獲得評分在前3名且不同中心位置的矩形框Gt1、Gt2、Gt3。提取Gt1、Gt2、Gt3,求得中心平均值(x,y),再求出每個矩形框的均方差,則均方差最小的值既為最優(yōu)矩形框。
利用康奈爾大學(xué)的抓取數(shù)據(jù)集對整體網(wǎng)絡(luò)進(jìn)行測試。測試主要從以下兩方面進(jìn)行:①從康奈爾抓取數(shù)據(jù)集中隨機(jī)抽取30種物體的圖像進(jìn)行測試,共抽取10次,求10次抽取結(jié)果的平均值作為最終正確率;②從數(shù)據(jù)集中隨機(jī)抽取100張圖片,同樣抽取10次,求10次抽取結(jié)果的平均值作為最終正確率。圖7為測試得到的正確抓取矩形框,圖8為錯誤抓取矩形框。
圖7 正確抓取矩形框
圖8 錯誤抓取矩形框
將多模態(tài)卷積神經(jīng)網(wǎng)絡(luò)測試結(jié)果同其他方法進(jìn)行對比。結(jié)果表明,使用多模態(tài)卷積神經(jīng)網(wǎng)絡(luò)可使抓取矩形框的正確率提高到90%以上,如表2所示。
表2 測試結(jié)果 %
將多模態(tài)卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用到現(xiàn)實中常見物品上進(jìn)行實驗驗證。實驗共選擇8種非數(shù)據(jù)集中的物體,這些物體均以不同的位置和姿態(tài)進(jìn)行擺放,對每種物體進(jìn)行10次top1抓取框預(yù)測,圖9所示為部分物體top1抓取框預(yù)測。表3為8種物體top1抓取框預(yù)測成功率。結(jié)果顯示,該實驗預(yù)測成功率比較理想,除了在水杯、剪刀、鼠標(biāo)、蘋果上預(yù)測的抓取框比較不穩(wěn)定外,在其它四個物體上預(yù)測的top1抓取框的中心大致在物體的中心處,成功率達(dá)到100%,驗證了多模態(tài)卷積神經(jīng)網(wǎng)絡(luò)能夠?qū)崿F(xiàn)對未知物體的抓取框檢測。
圖9 部分物品top1抓取框預(yù)測
表3 top1抓取框預(yù)測成功率% %
采用多模態(tài)卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)對物品的抓取矩形框檢測,提高了抓取矩形框檢測的成功率,在測試集上抓取框的正確率提高到90%以上,在驗證集上對8種物體分別進(jìn)行10次top1抓取框預(yù)測,其成功率都高達(dá)80%,其中有四種物體的預(yù)測成功率達(dá)到了100%。經(jīng)驗證,不需要對物品進(jìn)行三維建模,也能實現(xiàn)對未知物體的抓取。未來將進(jìn)一步優(yōu)化本文的方法,將兩個網(wǎng)絡(luò)更有效地結(jié)合在一起,更快更準(zhǔn)確地實現(xiàn)最優(yōu)抓取位置的檢測。