馬倩倩 ,李曉娟 ,施智平
1.首都師范大學(xué) 信息工程學(xué)院,北京 100048
2.首都師范大學(xué) 輕型工業(yè)機(jī)器人與安全驗(yàn)證北京市重點(diǎn)實(shí)驗(yàn)室,北京 100048
3.首都師范大學(xué) 成像技術(shù)北京市高精尖創(chuàng)新中心,北京 100048
近年來,基于深度學(xué)習(xí)的方法已經(jīng)在包括視覺識(shí)別[1-2]、語音識(shí)別和自然語言處理等任務(wù)上取得了重大成就。美國(guó)康奈爾大學(xué)Lenz 等[3]借鑒深度學(xué)習(xí)在圖像檢測(cè)及圖像識(shí)別等任務(wù)中的成功經(jīng)驗(yàn),提出了基于深度學(xué)習(xí)的機(jī)器人抓取檢測(cè)的方法[4-5]。與傳統(tǒng)的依靠人工經(jīng)驗(yàn)抽取樣本點(diǎn)特征的方式相比,基于深度學(xué)習(xí)的機(jī)器人抓取檢測(cè)的方法可以自動(dòng)學(xué)習(xí)如何識(shí)別和提取待抓取位置的特定特征。越來越多的機(jī)器人學(xué)者研究如何將深度學(xué)習(xí)的方法應(yīng)用于機(jī)器人抓取檢測(cè)上,從而使機(jī)器人具備更強(qiáng)大的智能。大部分研究學(xué)者都是利用深度學(xué)習(xí)的方法來學(xué)習(xí)不同形狀和位姿的物體的末端執(zhí)行器的最佳配置,基于深度學(xué)習(xí)的深層表達(dá)能力學(xué)習(xí)的參數(shù)為每個(gè)圖像預(yù)測(cè)多個(gè)抓取位置進(jìn)行排序來找到最佳抓取位置。
基于深度學(xué)習(xí)的方法,Lenz等[3]提出了基于稀疏自編碼器的兩步級(jí)聯(lián)抓取檢測(cè)系統(tǒng),構(gòu)建兩個(gè)大小網(wǎng)絡(luò)用于提取RGB-D 輸入數(shù)據(jù)的抓取特征,采用滑動(dòng)窗的方法搜索抓取框,最后在網(wǎng)絡(luò)頂層添加支持向量機(jī)(Support Vector Machine,SVM)作為分類器的網(wǎng)絡(luò)結(jié)構(gòu)。在標(biāo)準(zhǔn)康奈爾抓取數(shù)據(jù)集[6]上達(dá)到73.9%的檢測(cè)準(zhǔn)確率,耗時(shí)13.5 s,由于采用類似于窮舉法的搜索機(jī)制,需要在不同大小的圖像塊上使用分類器進(jìn)行重復(fù)計(jì)算,計(jì)算量非常大,且十分耗時(shí)。
Redmon 等[7]認(rèn)為采用滑動(dòng)窗口的方法來預(yù)測(cè)抓取位置是一種非常耗時(shí)的方法,而且使用單階段的網(wǎng)絡(luò)性能優(yōu)于Lenz等的級(jí)聯(lián)系統(tǒng)。為了避免在不同大小的圖像塊上重復(fù)計(jì)算,他們利用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)強(qiáng)大的特征提取能力將整個(gè)圖像輸入網(wǎng)絡(luò)中,在整個(gè)圖像上直接進(jìn)行全局的抓取預(yù)測(cè),目前大部分學(xué)者采用這種方案[5,8]。使用類似于AlexNet[9]的卷積神經(jīng)網(wǎng)絡(luò)模型來實(shí)現(xiàn)單階段的檢測(cè)方法,以更快的速度達(dá)到了更高的檢測(cè)精度,但是這種方法由于卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜性,仍然存在模型較大的缺陷。
Kumra等[4]也采用將整個(gè)圖像輸入卷積神經(jīng)網(wǎng)絡(luò)中進(jìn)行全局的抓取預(yù)測(cè),他們采用網(wǎng)絡(luò)結(jié)構(gòu)更復(fù)雜、特征提取能力更強(qiáng)的ResNet50[10]提取抓取特征,用SVM 預(yù)測(cè)抓取配置的參數(shù)。該方法可以達(dá)到比較好的檢測(cè)精度,但是由于模型采用層數(shù)較深的殘差網(wǎng)絡(luò),導(dǎo)致網(wǎng)絡(luò)模型和計(jì)算量都比較大。
Chu 等[5]提出了一種適合于多物體場(chǎng)景的抓取模型,首先使用ResNet50對(duì)輸入圖像提取抓取特征,然后使用類似于區(qū)域生成網(wǎng)絡(luò)(Region Proposal Network,RPN)的模型進(jìn)行抓取框的推薦,最后經(jīng)ROI Pooling進(jìn)行角度參數(shù)的分類和抓取框的回歸。這種模型適用于多物體的抓取場(chǎng)景,并且達(dá)到了較高的抓取檢測(cè)準(zhǔn)確率,由于模型較深且類似于級(jí)聯(lián)系統(tǒng),導(dǎo)致模型較大。
綜上所述,目前基于神經(jīng)網(wǎng)絡(luò)的機(jī)器人抓取位姿預(yù)測(cè)方法的研究主要集中在結(jié)合基礎(chǔ)分類網(wǎng)絡(luò)如AlexNet、ResNet等提高抓取檢測(cè)準(zhǔn)確性上,這些網(wǎng)絡(luò)最初是為復(fù)雜的分類任務(wù)和海量數(shù)據(jù)的特點(diǎn)而設(shè)計(jì)的,網(wǎng)絡(luò)結(jié)構(gòu)通常具有大量的參數(shù),需要大量的計(jì)算和存儲(chǔ)資源。針對(duì)上述深度學(xué)習(xí)抓取檢測(cè)方法的不足,本文提出了基于SqueezeNet的輕量級(jí)卷積神經(jīng)網(wǎng)絡(luò)抓取預(yù)測(cè)模型,在不降低準(zhǔn)確率的情況下,本文提出的網(wǎng)絡(luò)模型更小,需要的存儲(chǔ)資源更少,速度更快,更適合于移動(dòng)機(jī)器人平臺(tái)中。類似的設(shè)計(jì)輕量級(jí)模型的工作如文獻(xiàn)[11]。相同準(zhǔn)確性的情況下,較小的神經(jīng)網(wǎng)絡(luò)有以下優(yōu)點(diǎn)[12]:(1)在分布式訓(xùn)練期間,較小的神經(jīng)網(wǎng)絡(luò)需要較少的服務(wù)器間通信;(2)較小的神經(jīng)網(wǎng)絡(luò)需要較少的帶寬就可以將新模型從云端導(dǎo)入到用戶終端,速度快且用時(shí)少;(3)較小的神經(jīng)網(wǎng)絡(luò)更易于部署在內(nèi)存有限的FPGA(Field Programmable Gate Array)或移動(dòng)機(jī)器人等平臺(tái)上。因此,本文提出了一種較小更快的深度卷積神經(jīng)網(wǎng)絡(luò)模型SqueezeNet-RM,基于康奈爾抓取數(shù)據(jù)集,從多模態(tài)RGB-D圖像中提取特征來預(yù)測(cè)抓取位姿。
抓取位姿預(yù)測(cè)問題(如圖1(a))與普通檢測(cè)問題(如圖1(b))的區(qū)別在于:抓取位姿預(yù)測(cè)問題不只是在最佳抓取位置處預(yù)測(cè)出類似于普通檢測(cè)問題形式的回歸框,還要預(yù)測(cè)出最佳抓取位姿(x,y,h,w,θ)。
圖1 抓取位姿檢測(cè)表示與普通檢測(cè)表示
機(jī)器人抓取位姿檢測(cè)問題可以被表述為對(duì)于給定對(duì)象的圖像I找到最佳抓取位姿g。圖1(a)顯示了一個(gè)五維抓取表示[3],以便對(duì)物體潛在的最佳抓取位姿進(jìn)行表示,五維抓取位姿g被表示為式(1):
其中,(x,y)是與抓取矩形的中心對(duì)應(yīng)的坐標(biāo),h是平行板的高度,w是平行板之間的最大距離,θ是抓取矩形相對(duì)于水平軸的取向。藍(lán)線h表示二指機(jī)器人手爪的平行板,紅線w對(duì)應(yīng)于抓取之前手爪的平行板之間的距離。該五維抓取表示給出了在對(duì)物體執(zhí)行抓取時(shí)平行板夾具的位置和方向。Lenz 等表明一個(gè)最佳的五維抓取表示可以被映射為一個(gè)可以被機(jī)器人用來執(zhí)行抓取的七維抓取表示,還可以降低計(jì)算成本。
與以前的方法[3-5]相比,本文使用一個(gè)小型輕量級(jí)的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)SqueezeNet-RM。該架構(gòu)結(jié)合SqueezeNet[12]參數(shù)少的優(yōu)點(diǎn)和DenseNet[13]多旁路連接加強(qiáng)特征復(fù)用的思想能提升抓取檢測(cè)準(zhǔn)確率的優(yōu)點(diǎn),在康奈爾抓取數(shù)據(jù)集檢測(cè)任務(wù)上,在保證準(zhǔn)確率不降低的情況下,網(wǎng)絡(luò)模型更小,所需存儲(chǔ)空間更少,模型速度更快。如圖2所示,整體架構(gòu)的思想是在SqueezeNet網(wǎng)絡(luò)模型中引入DenseNet 增加旁路加強(qiáng)特征復(fù)用的思想,conv1 和 conv10 之后加入 Batch Normalization,并在最后一層后面添加一個(gè)全連接層。全連接層有6 個(gè)輸出神經(jīng)元對(duì)應(yīng)抓取矩形框的坐標(biāo),4個(gè)神經(jīng)元對(duì)應(yīng)位置和高度,抓取角度使用兩個(gè)附加的參數(shù)化坐標(biāo),即正弦和余弦的兩倍角。網(wǎng)絡(luò)直接從原始圖像回歸出抓取位姿(x,y,h,w,θ)。本文提出的回歸預(yù)測(cè)模型為SqueezeNet-RM(SqueezeNet Regression Model)。
圖2 SqueezeNet-RM網(wǎng)絡(luò)模型
本文提出的SqueezeNet-RM 網(wǎng)絡(luò)模型見圖2,以一個(gè)獨(dú)立的卷積層conv1為開端,相鄰的是8個(gè)Fire模塊,之后加一個(gè)獨(dú)立的卷積層conv10,最后以一個(gè)最終的全連接層結(jié)束。在層 conv1、Fire4、Fire8 和 conv10 之后使用步長(zhǎng)為2 的max-pooling,F(xiàn)ire2、Fire4、Fire6 分別向后面的每一層引出旁路連接,這些相對(duì)較后的pooling 和旁路連接有助于提高檢測(cè)精度。
類似于Inception[14]和DenseNet[13]的模塊化思想,SqueezeNet神經(jīng)網(wǎng)絡(luò)采用了模塊化的設(shè)計(jì)思想,它的基礎(chǔ)模塊稱為fire模塊。如圖3所示,F(xiàn)ire模塊含兩部分:squeeze層和expand層。首先使用1×1的卷積操作對(duì)輸入特征圖進(jìn)行壓縮,其卷積核數(shù)要少于上一層feature map數(shù),輸出特征圖的數(shù)量可以遠(yuǎn)比輸入特征圖的數(shù)量少,這是squeeze層的設(shè)計(jì)。然后,采用不同大小的卷積核1×1和3×3進(jìn)行卷積操作,將這些卷積操作的輸出特征圖concat 起來,這是expand 層操作,最終將特征圖的數(shù)量提升上去。將上述Fire模塊堆疊,得到SqueezeNet網(wǎng)絡(luò)。
圖3 Fire模塊
SqueezeNet通過Fire模塊和自身優(yōu)化結(jié)構(gòu),采用了以下幾種常用的策略實(shí)現(xiàn)參數(shù)的減少。
策略1 使用1×1 過濾器替換3×3 過濾器,因?yàn)?×1濾波器具有比3×3 濾波器少86.97%的參數(shù),見圖3 中Squeeze層。
策略2 使用Squeeze層將輸入到3×3過濾器的通道的數(shù)量減少。具體而言,對(duì)于一個(gè)完全由3×3濾波器組成的卷積層,該層中參數(shù)的總量是“輸入通道的數(shù)量×濾波器的數(shù)量×(3×3)”,因此,為了在CNN 中保持小的參數(shù)總數(shù),在采用策略1的同時(shí)還要減少3×3濾波器的輸入通道的數(shù)量。
策略3 延遲降采樣,以使卷積層具有大的激活圖,見圖2 中的Maxpool 位置,大的激活圖(通過延遲降采樣)可以獲得更高的檢測(cè)精度,有助于提高任務(wù)的準(zhǔn)確性[15]。
策略1 和策略2 在試圖保持準(zhǔn)確性的同時(shí)減少CNN中參數(shù)的數(shù)量,策略3是在有限的參數(shù)運(yùn)算量上最大化精度。
本文采用在ImageNet 分類問題上表現(xiàn)最佳的SqueezeNet(Simple Bypass Conection)架構(gòu)[12]。SqueezeNet是一個(gè)全卷積網(wǎng)絡(luò),本文在Fire9 層之后添加了一個(gè)隨機(jī)失活層dropout[16],以避免過擬合,在SqueezeNet 網(wǎng)絡(luò)的最后一層添加一個(gè)全連接層(Fully Connected Layer)作為輸出層。
何愷明等人在ResNet 提出:若某一較深的網(wǎng)絡(luò)多出另一較淺網(wǎng)絡(luò)的若干層有能力學(xué)習(xí)到恒等映射,那么這一較深網(wǎng)絡(luò)訓(xùn)練得到的模型性能一定不會(huì)弱于該淺層網(wǎng)絡(luò)。通俗地說,就是如果對(duì)某一網(wǎng)絡(luò)中增添一些可以學(xué)到恒等映射的層組成新的網(wǎng)路,那么最差的結(jié)果也是新網(wǎng)絡(luò)中的這些層在訓(xùn)練后成為恒等映射而不會(huì)影響原網(wǎng)絡(luò)的性能。并且DenseNet 提出:相比多次學(xué)習(xí)冗余的特征,特征復(fù)用是一種更好的特征提取方式,通過特征復(fù)用和旁路設(shè)置,既大幅度減少了網(wǎng)絡(luò)的參數(shù)量,又在一定程度上緩解了梯度消失問題的產(chǎn)生。
基于此思想,將Fire2 的輸出和其后面的所有層都加一個(gè)單獨(dú)的旁路連接,使得Fire2 之后的任意層網(wǎng)絡(luò)都可以和Fire2 直接互通,見圖2,F(xiàn)ire4、Fire6 分別進(jìn)行此操作。為了降低模型參數(shù),本文只在Fire2、Fire4、Fire6進(jìn)行此操作,同時(shí)在conv1和conv10后面分別加入BN(Batch Normalization)層來防止梯度消失或梯度爆炸,加快訓(xùn)練速度。
類似Kinect的低成本立體視覺系統(tǒng)使得RGB-D數(shù)據(jù)在機(jī)器人系統(tǒng)中越來越普遍,并且受Schwarz 等[17]引入的RGB-D 物體識(shí)別方法的啟發(fā),由于SqueezeNet 只有3個(gè)輸入通道,本文使用深度信息D替換圖像中的藍(lán)色通道B 來使用多模態(tài)的RGB-D 數(shù)據(jù),將三通道RGD圖像輸入到多模態(tài)抓取預(yù)測(cè)模型SqueezeNet-RM(RGD)來直接預(yù)測(cè)抓取位姿。本文不將多模態(tài)融合作為研究重點(diǎn),將深度信息和RGB 信息多模態(tài)融合的方式可參考文獻(xiàn)[18]。
由于在ImageNet 分類問題上,Redmon 等已經(jīng)對(duì)應(yīng)用類似于AlexNet的網(wǎng)絡(luò)模型的抓取位姿預(yù)測(cè)問題進(jìn)行了研究,本文也取AlexNet作為比較對(duì)象。
為了將本文方法與AlexNet 方法進(jìn)行比較,在標(biāo)準(zhǔn)的康奈爾抓取數(shù)據(jù)集上測(cè)試了本文的架構(gòu)和AlexNet網(wǎng)絡(luò)。該數(shù)據(jù)集包含240個(gè)不同對(duì)象的885個(gè)圖像。每個(gè)圖像都有多個(gè)抓取矩形,標(biāo)記為成功(正樣本)或失敗(負(fù)樣本),總共有8 019 個(gè)標(biāo)記的抓取矩形,5 110 個(gè)正樣本和2 909個(gè)負(fù)樣本,專門為平行板夾持器設(shè)計(jì)。圖4顯示了部分?jǐn)?shù)據(jù)集的矩形度量的Ground truth。與前人的工作類似,本文對(duì)所有的實(shí)驗(yàn)都使用五折交叉驗(yàn)證[19],數(shù)據(jù)集按圖像分類。按圖像分類是將所有圖像隨機(jī)分成五部分,這有助于測(cè)試網(wǎng)絡(luò)對(duì)未見過的物體的抓取位姿的檢測(cè)能力。
圖4 康奈爾抓取數(shù)據(jù)集部分樣本
原圖像大小為480×640×3,將數(shù)據(jù)輸入網(wǎng)絡(luò)之前,對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,既達(dá)到了數(shù)據(jù)增強(qiáng),又盡量減小對(duì)訓(xùn)練速度的影響。在深度圖像中一些像素由于被遮擋而缺少深度信息,像素被標(biāo)為NaN 值,使用0 代替這些像素值;深度信息被歸一化為0到255之間;將深度信息D替換圖像的藍(lán)色通道B;將圖像四周分別裁剪掉(150,70,150,70)像素,圖像變?yōu)?41×341×3,這樣可使圖片中物體基本處于居中位置,減少了網(wǎng)絡(luò)對(duì)圖片中多余信息的處理;對(duì)大小為640×480×3的原圖片標(biāo)注的抓取矩形的Ground truth 四頂點(diǎn)坐標(biāo)值相應(yīng)平移(150,70)像素;將數(shù)據(jù)轉(zhuǎn)化為TFRecord格式;圖像大小調(diào)整為224×224×3作為SqueezeNet-RM神經(jīng)網(wǎng)絡(luò)模型的輸入。
由于參與訓(xùn)練的圖片大小為341×341×3,標(biāo)注的抓取矩形的Ground truth 四頂點(diǎn)坐標(biāo)值也相應(yīng)進(jìn)行了平移調(diào)整,當(dāng)圖像以224×224×3 大小輸入網(wǎng)絡(luò)訓(xùn)練時(shí),也一定要對(duì)式(2)計(jì)算出的(X0,Y0,H0,W0,θ0)值按照系數(shù)224/341進(jìn)行相應(yīng)縮放,才能作為學(xué)習(xí)的目標(biāo)。
神經(jīng)網(wǎng)絡(luò)訓(xùn)練需要大的數(shù)據(jù)集,某些特定的領(lǐng)域可用的數(shù)據(jù)是有限的,如康奈爾抓取數(shù)據(jù)集,因此使用在ImageNet 上預(yù)訓(xùn)練的SqueezeNet-RM 模型進(jìn)行遷移學(xué)習(xí),神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練可以縮短訓(xùn)練時(shí)間,避免過擬合。將構(gòu)建的現(xiàn)有的模型在ImageNet數(shù)據(jù)集上訓(xùn)練出比較好的結(jié)果,得到預(yù)訓(xùn)練模型,由于康奈爾數(shù)據(jù)集與ImageNt 數(shù)據(jù)集差別較大,重新訓(xùn)練的過程就變得非常關(guān)鍵。而新數(shù)據(jù)集大小的不足,則是通過凍結(jié)預(yù)訓(xùn)練模型的前面幾層進(jìn)行彌補(bǔ)。
圖5 微調(diào)模型不同層損失函數(shù)變化曲線
圖6 微調(diào)模型不同層準(zhǔn)確率變化曲線
神經(jīng)網(wǎng)絡(luò)在網(wǎng)絡(luò)參數(shù)較多且訓(xùn)練數(shù)據(jù)較少時(shí),容易發(fā)生過擬合。因?yàn)楸疚奶岢龅妮p量級(jí)特征提取網(wǎng)絡(luò)表達(dá)能力較強(qiáng),而康奈爾抓取數(shù)據(jù)集相對(duì)比較小,所以容易發(fā)生過擬合。ImageNet 的預(yù)訓(xùn)練模型已經(jīng)可以學(xué)習(xí)到比較好的特征,如果發(fā)生過擬合,則會(huì)降低學(xué)習(xí)到的特征的泛化能力,因此本文使用ImageNet 的預(yù)訓(xùn)練模型進(jìn)行遷移學(xué)習(xí)時(shí),只對(duì)conv10 之后網(wǎng)絡(luò)的最后兩層的參數(shù)進(jìn)行微調(diào),特征提取網(wǎng)絡(luò)的前幾層不進(jìn)行參數(shù)調(diào)整,同時(shí)比較了三種不同的微調(diào)層數(shù)的效果。SqueezeNet-RM_all、SqueezeNet-RM_last1、SqueezeNet-RM_last2分別表示微調(diào)SqueezeNet-RM網(wǎng)絡(luò)模型所有層的參數(shù),微調(diào)SqueezeNet-RM最后一層即全連接層的參數(shù),微調(diào)SqueezeNet-RM 最后兩層即global avgpool 和全連接層的參數(shù)。如圖5、圖6 所示分別為SqueezeNet-RM_all、SqueezeNet-RM_last1、SqueezeNet-RM_last2 在訓(xùn)練集驗(yàn)證集上的損失函數(shù)值和預(yù)測(cè)準(zhǔn)確率變化曲線??梢钥吹絊queezeNet-RM_all的訓(xùn)練集損失函數(shù)值下降很快,說明模型很快收斂,且損失函數(shù)值低于只微調(diào)部分特征提取網(wǎng)絡(luò)參數(shù)的SqueezeNet-RM_last1和SqueezeNet-RM_last2,然而驗(yàn)證集損失函數(shù)值卻最高,這表明微調(diào)全部參數(shù)造成網(wǎng)絡(luò)在訓(xùn)練集上發(fā)生了過擬合,破壞了SqueezeNet-RM原有的泛化能力較強(qiáng)的特征表達(dá),使得網(wǎng)絡(luò)在驗(yàn)證集上的表現(xiàn)變差,因此微調(diào)預(yù)訓(xùn)練模型的全部參數(shù)不適合康奈爾抓取檢測(cè)數(shù)據(jù)。SqueezeNet-RM_last2和SqueezeNet-RM_last1的驗(yàn)證集上的預(yù)測(cè)準(zhǔn)確率相近,但SqueezeNet-RM_last1 的驗(yàn)證集損失函數(shù)值明顯高于SqueezeNet-RM_last2,說明微調(diào)conv10 之后的最后兩層使網(wǎng)絡(luò)表現(xiàn)出較好的泛化性能。因此使用預(yù)訓(xùn)練模型進(jìn)行遷移學(xué)習(xí)時(shí),本文選擇只調(diào)整conv10之后的最后兩層的參數(shù)值。先固定預(yù)訓(xùn)練模型中conv10前面所有層中的權(quán)重,conv10及之后層的權(quán)重使用Xavier 權(quán)重來初始化,然后基于康奈爾數(shù)據(jù)集,重新訓(xùn)練conv10 后面的層,同時(shí)最后一層需要根據(jù)相應(yīng)的輸出格式來進(jìn)行修改。
首先,訓(xùn)練階段用到的位姿(X0,Y0,H0,W0,θ0)的Ground truth 值由抓取矩形四頂點(diǎn)像素坐標(biāo)[(B0,B1),(B2,B3),(B4,B5),(B6,B7)]值(存儲(chǔ)于康奈爾抓取數(shù)據(jù)集的*cpos.txt文件中)計(jì)算得到。
如圖7所示,(X0,Y0,H0,W0,θ0)的計(jì)算公式如下:
由式(2)可知,為了能夠計(jì)算出角度θ0,抓取矩形應(yīng)避免出現(xiàn)W0絕對(duì)豎直的情況(此時(shí)正切值無窮大),本文對(duì)計(jì)算值和預(yù)測(cè)值進(jìn)行了限幅,將角度值限制在(-85°,85°)之間。
圖7 抓取矩形的Ground truth在圖像中的幾何描述
模型假設(shè)每個(gè)圖像都包含一個(gè)可以抓取的目標(biāo)物體,并且只需要預(yù)測(cè)最佳抓取位姿(x,y,h,w,θ)。抓取位姿預(yù)測(cè)問題是一個(gè)回歸問題,類似于以前的工作[7],將原始RGB-D 圖像送入網(wǎng)絡(luò)后直接回歸得到抓取位姿。本文的回歸問題采用均方差(Mean Square Error,MSE)作為損失函數(shù),采用SGD(Stochastic Gradient Descent)來優(yōu)化訓(xùn)練損失。損失函數(shù)的計(jì)算公式如下:
其中,(x,y,h,w,θ)為網(wǎng)絡(luò)預(yù)測(cè)出的位姿坐標(biāo),(X0,Y0,H0,W0,θ0)為計(jì)算獲得的Ground truth 值,λ為角度加權(quán)值,n為batch大小。
如圖8所示,該算法是在每個(gè)可抓物對(duì)象上找到一個(gè)最佳抓取位姿(Predicted)。由于康奈爾抓取數(shù)據(jù)集每個(gè)對(duì)象對(duì)應(yīng)多個(gè)Ground truth(4~8 個(gè)抓取矩形),在訓(xùn)練過程中,網(wǎng)絡(luò)模型每次預(yù)測(cè)出的抓取位姿是隨機(jī)挑選一個(gè)Ground truth進(jìn)行學(xué)習(xí)。
圖8 損失函數(shù)計(jì)算原理
為了訓(xùn)練和驗(yàn)證本文的模型,使用了Tensorflow1.1.0深度學(xué)習(xí)框架,python 2.7.6 版本,在Ubuntu16.04 操作系統(tǒng)和Pycharm 2017社區(qū)版軟件上運(yùn)行。在采用Intel?CoreTMi7-5930K CPU@3.50 GHz×12 的 CUDA 技術(shù)的GeForce GTX TITAN X/PCIe/SSE2上進(jìn)行實(shí)驗(yàn)。訓(xùn)練參數(shù)設(shè)置為:learning rate=1E-4;batch=64;dropout=0.5;epoch=40 000;λ=10。
先前的工作有兩種常用的評(píng)價(jià)方法來評(píng)估網(wǎng)絡(luò)模型對(duì)康奈爾抓取數(shù)據(jù)集的抓取位姿預(yù)測(cè)效果:矩形度量[20]和點(diǎn)度量[21]。點(diǎn)度量比較預(yù)測(cè)抓取的中心點(diǎn)與所有Ground truth 抓取的中心點(diǎn)之間的距離。閾值被用來考慮最佳的抓取,但過去的工作沒有公開這些閾值。而且這個(gè)度量沒考慮抓取的一個(gè)基本參數(shù)——抓取角度,結(jié)果會(huì)有偏差,因此采用抓取矩形度量準(zhǔn)則。矩形抓取度量考慮用抓取矩形進(jìn)行評(píng)價(jià),如果同時(shí)滿足以下兩點(diǎn),則該抓取矩形被認(rèn)為是一個(gè)很好的抓取。
(1)預(yù)測(cè)抓取角度θ與Ground truth抓取角度θ0之差小于30°,即;
(2)預(yù)測(cè)的Jaccard相似系數(shù)大于25%。
Jaccard 相似系數(shù)或Jaccard 指數(shù)衡量預(yù)測(cè)抓取與Ground truth抓取之間的相似性,定義為:
其中,A是Ground truth 抓取矩形區(qū)域,B是預(yù)測(cè)抓取矩形區(qū)域。
預(yù)測(cè)抓取矩形區(qū)域B的計(jì)算方法如下:
訓(xùn)練完畢后,根據(jù)預(yù)測(cè)得到的抓取位姿(x,y,h,w,θ) 按照式(5)計(jì)算出預(yù)測(cè)抓取矩形的四頂點(diǎn)坐標(biāo)[(b0,b1),(b2,b3),(b4,b5),(b6,b7)]。
抓取矩形的Ground truth 四頂點(diǎn)坐標(biāo)值是已知的,根據(jù)矩形的四頂點(diǎn)坐標(biāo),可以計(jì)算Jaccard相似系數(shù),從而對(duì)模型準(zhǔn)確率進(jìn)行評(píng)估。
與以前的工作一樣,對(duì)康奈爾抓取數(shù)據(jù)集使用五折交叉驗(yàn)證的方式進(jìn)行實(shí)驗(yàn),并對(duì)數(shù)據(jù)進(jìn)行了兩種不同方式的劃分:
(1)Image-wise splitting:將圖像隨機(jī)劃分。
(2)Object-wise splitting:將相同物體的所有圖像(比如多個(gè)形狀和顏色略有不同的太陽鏡)放入同一個(gè)的交叉驗(yàn)證子集中。
Image-wise splitting測(cè)試模型體現(xiàn)出網(wǎng)絡(luò)模型對(duì)于它曾經(jīng)見過的新物體的抓取檢測(cè)的泛化能力。Objectwise splitting 測(cè)試模型體現(xiàn)出網(wǎng)絡(luò)模型對(duì)于它未見過的新物體的抓取檢測(cè)的泛化能力。
表1顯示了在康奈爾抓取數(shù)據(jù)集上AlexNet與本文提出的SqueezeNet-RM 輕量級(jí)網(wǎng)絡(luò)在抓取檢測(cè)準(zhǔn)確率與參數(shù)量方面的實(shí)驗(yàn)結(jié)果,以及不同卷積神經(jīng)網(wǎng)絡(luò)抓取檢測(cè)模型的準(zhǔn)確率和速度。本文提出的多模態(tài)抓取檢測(cè)模型,使用歸一化后的深度信息D替換輸入圖像的藍(lán)色通道B,將多模態(tài)RGD信息作為網(wǎng)絡(luò)的輸入。按Imagewise 方式訓(xùn)練出的網(wǎng)絡(luò)模型,SqueezeNet-RM(RGD)輕量級(jí)抓取檢測(cè)模型的檢測(cè)準(zhǔn)確率為90.00%,準(zhǔn)確率超過了Lenz、Redmon、Kumra 等的典型方法,表現(xiàn)出最高的泛化性能;按Object-wise 方式訓(xùn)練出的網(wǎng)絡(luò)模型,本文提出的輕量級(jí)抓取檢測(cè)模型遠(yuǎn)高于基于AlexNet網(wǎng)絡(luò)的方法及 Lenz、Redmon 的典型方法,稍低于 Kumra 基于ResNet的方法,保持較高的檢測(cè)準(zhǔn)確率??傊诜夯阅苌?,無論按Image-wise方式還是Object-wise方式劃分,本文提出的網(wǎng)絡(luò)模型均達(dá)到了較高的檢測(cè)準(zhǔn)確率,并表現(xiàn)出較高的泛化性能,但模型大小比基于AlexNet的抓取檢測(cè)方法減少了86.97%,平均檢測(cè)速度快3倍,大大降低了硬件存儲(chǔ)成本和運(yùn)算成本??傮w而言,本文提出的輕量級(jí)抓取預(yù)測(cè)網(wǎng)絡(luò)與經(jīng)典的抓取檢測(cè)方法相比,在保證檢測(cè)準(zhǔn)確率不降低的情況下,占用更少的存儲(chǔ)空間,表現(xiàn)出更快的檢測(cè)速度,有更高的泛化性能,滿足資源受限系統(tǒng)的使用要求,同時(shí)滿足機(jī)器人抓取檢測(cè)對(duì)模型準(zhǔn)確率和實(shí)時(shí)性的要求。
表1 Cornell數(shù)據(jù)集上的矩形度量參數(shù)量、速度和檢測(cè)準(zhǔn)確率
圖9 展示了各抓取預(yù)測(cè)模型的預(yù)測(cè)效果的部分圖片。使用本文提出的SqueezeNet-RM 預(yù)測(cè)模型檢測(cè)出的抓取位姿靠近中間位置,這種位置更穩(wěn)定,更符合實(shí)際情況,使用類似AlexNet 的網(wǎng)絡(luò)檢測(cè)出的抓取位姿趨向于兩端的位置,抓取位置不穩(wěn)定,也證明了本文改進(jìn)模型SqueezeNet-RM的有效性。
圖9 不同抓取預(yù)測(cè)模型的預(yù)測(cè)效果
實(shí)驗(yàn)結(jié)果表明,本文提出的SqueezeNet-RM(RGD)模型在保證檢測(cè)精度不降低的情況下,能大大減少模型大小,占用更少的存儲(chǔ)空間,且滿足實(shí)時(shí)性要求。本文提出的輕量級(jí)卷積神經(jīng)網(wǎng)絡(luò)減少運(yùn)算量的同時(shí)能夠確保精度的架構(gòu)設(shè)計(jì)有以下特點(diǎn):(1)采用輕量級(jí)模型架構(gòu)的設(shè)計(jì)策略,在最大化精度的同時(shí)大大減少CNN 中參數(shù)的數(shù)量,降低了計(jì)算量(詳見3.1節(jié))。(2)添加FC層保證預(yù)訓(xùn)練模型特征表達(dá)能力的遷移。微調(diào)是深度學(xué)習(xí)領(lǐng)域最常用的遷移學(xué)習(xí)技術(shù)。針對(duì)微調(diào),若目標(biāo)域(康奈爾抓取數(shù)據(jù)集)中的圖像與源域(ImageNet 數(shù)據(jù)集)中圖像差異巨大,不含F(xiàn)C的網(wǎng)絡(luò)微調(diào)后的結(jié)果要差于含F(xiàn)C的網(wǎng)絡(luò)[22]。(3)引入DenseNet的多旁路設(shè)置和充分進(jìn)行特征復(fù)用的思想來保證檢測(cè)精度。
檢測(cè)速度有較大提升的原因有以下幾點(diǎn):(1)預(yù)測(cè)抓取位置的方法上,采用全局抓取預(yù)測(cè),將整個(gè)圖像輸入卷積神經(jīng)網(wǎng)絡(luò)中直接輸出抓取矩形參數(shù),這種端對(duì)端的方式具有速度快的優(yōu)點(diǎn)。(2)濾波器結(jié)構(gòu)上,使用1×1的緊湊型濾波器替換3×3的過參型濾波器,可以降低相關(guān)的計(jì)算成本。利用緊湊型濾波器構(gòu)成的SqueezeNet形成一個(gè)更緊湊的網(wǎng)絡(luò),從而實(shí)現(xiàn)了整個(gè)網(wǎng)絡(luò)不降低精度的同時(shí)進(jìn)行整體加速。(3)網(wǎng)絡(luò)架構(gòu)上,輕量級(jí)卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)使參數(shù)量大大減少,從而減少了網(wǎng)絡(luò)計(jì)算時(shí)間,有效提升了抓取檢測(cè)速度。
本文提出了一種基于輕量級(jí)卷積神經(jīng)網(wǎng)絡(luò)的機(jī)器人抓取位姿檢測(cè)模型。該系統(tǒng)使用改進(jìn)的SqueezeNet-RM神經(jīng)網(wǎng)絡(luò)提取RGB-D 圖像中物體的特征,預(yù)測(cè)二指平行板機(jī)器人手爪對(duì)于新物體的可抓取位姿。在康奈爾抓取數(shù)據(jù)集上的實(shí)驗(yàn)證明了本文模型的有效性,本文提出的低功耗的回歸模型大小比AlexNet減少了86.97%,速度提升了3倍,極大滿足低功耗或資源受限系統(tǒng)的要求。且檢測(cè)精度超過了AlexNet,達(dá)到了和ResNet 相當(dāng)?shù)木?。后續(xù)工作嘗試將該輕量級(jí)位姿抓取網(wǎng)絡(luò)用在移動(dòng)機(jī)器人等資源受限的硬件設(shè)備上,實(shí)現(xiàn)對(duì)物體的抓取檢測(cè)。