馬倩倩 ,李曉娟 ,施智平
1.首都師范大學 信息工程學院,北京 100048
2.首都師范大學 輕型工業機器人與安全驗證北京市重點實驗室,北京 100048
3.首都師范大學 成像技術北京市高精尖創新中心,北京 100048
近年來,基于深度學習的方法已經在包括視覺識別[1-2]、語音識別和自然語言處理等任務上取得了重大成就。美國康奈爾大學Lenz 等[3]借鑒深度學習在圖像檢測及圖像識別等任務中的成功經驗,提出了基于深度學習的機器人抓取檢測的方法[4-5]。與傳統的依靠人工經驗抽取樣本點特征的方式相比,基于深度學習的機器人抓取檢測的方法可以自動學習如何識別和提取待抓取位置的特定特征。越來越多的機器人學者研究如何將深度學習的方法應用于機器人抓取檢測上,從而使機器人具備更強大的智能。大部分研究學者都是利用深度學習的方法來學習不同形狀和位姿的物體的末端執行器的最佳配置,基于深度學習的深層表達能力學習的參數為每個圖像預測多個抓取位置進行排序來找到最佳抓取位置。
基于深度學習的方法,Lenz等[3]提出了基于稀疏自編碼器的兩步級聯抓取檢測系統,構建兩個大小網絡用于提取RGB-D 輸入數據的抓取特征,采用滑動窗的方法搜索抓取框,最后在網絡頂層添加支持向量機(Support Vector Machine,SVM)作為分類器的網絡結構。在標準康奈爾抓取數據集[6]上達到73.9%的檢測準確率,耗時13.5 s,由于采用類似于窮舉法的搜索機制,需要在不同大小的圖像塊上使用分類器進行重復計算,計算量非常大,且十分耗時。
Redmon 等[7]認為采用滑動窗口的方法來預測抓取位置是一種非常耗時的方法,而且使用單階段的網絡性能優于Lenz等的級聯系統。為了避免在不同大小的圖像塊上重復計算,他們利用卷積神經網絡(Convolutional Neural Network,CNN)強大的特征提取能力將整個圖像輸入網絡中,在整個圖像上直接進行全局的抓取預測,目前大部分學者采用這種方案[5,8]。使用類似于AlexNet[9]的卷積神經網絡模型來實現單階段的檢測方法,以更快的速度達到了更高的檢測精度,但是這種方法由于卷積神經網絡結構的復雜性,仍然存在模型較大的缺陷。
Kumra等[4]也采用將整個圖像輸入卷積神經網絡中進行全局的抓取預測,他們采用網絡結構更復雜、特征提取能力更強的ResNet50[10]提取抓取特征,用SVM 預測抓取配置的參數。該方法可以達到比較好的檢測精度,但是由于模型采用層數較深的殘差網絡,導致網絡模型和計算量都比較大。
Chu 等[5]提出了一種適合于多物體場景的抓取模型,首先使用ResNet50對輸入圖像提取抓取特征,然后使用類似于區域生成網絡(Region Proposal Network,RPN)的模型進行抓取框的推薦,最后經ROI Pooling進行角度參數的分類和抓取框的回歸。這種模型適用于多物體的抓取場景,并且達到了較高的抓取檢測準確率,由于模型較深且類似于級聯系統,導致模型較大。
綜上所述,目前基于神經網絡的機器人抓取位姿預測方法的研究主要集中在結合基礎分類網絡如AlexNet、ResNet等提高抓取檢測準確性上,這些網絡最初是為復雜的分類任務和海量數據的特點而設計的,網絡結構通常具有大量的參數,需要大量的計算和存儲資源。針對上述深度學習抓取檢測方法的不足,本文提出了基于SqueezeNet的輕量級卷積神經網絡抓取預測模型,在不降低準確率的情況下,本文提出的網絡模型更小,需要的存儲資源更少,速度更快,更適合于移動機器人平臺中。類似的設計輕量級模型的工作如文獻[11]。相同準確性的情況下,較小的神經網絡有以下優點[12]:(1)在分布式訓練期間,較小的神經網絡需要較少的服務器間通信;(2)較小的神經網絡需要較少的帶寬就可以將新模型從云端導入到用戶終端,速度快且用時少;(3)較小的神經網絡更易于部署在內存有限的FPGA(Field Programmable Gate Array)或移動機器人等平臺上。因此,本文提出了一種較小更快的深度卷積神經網絡模型SqueezeNet-RM,基于康奈爾抓取數據集,從多模態RGB-D圖像中提取特征來預測抓取位姿。
抓取位姿預測問題(如圖1(a))與普通檢測問題(如圖1(b))的區別在于:抓取位姿預測問題不只是在最佳抓取位置處預測出類似于普通檢測問題形式的回歸框,還要預測出最佳抓取位姿(x,y,h,w,θ)。

圖1 抓取位姿檢測表示與普通檢測表示
機器人抓取位姿檢測問題可以被表述為對于給定對象的圖像I找到最佳抓取位姿g。圖1(a)顯示了一個五維抓取表示[3],以便對物體潛在的最佳抓取位姿進行表示,五維抓取位姿g被表示為式(1):

其中,(x,y)是與抓取矩形的中心對應的坐標,h是平行板的高度,w是平行板之間的最大距離,θ是抓取矩形相對于水平軸的取向。藍線h表示二指機器人手爪的平行板,紅線w對應于抓取之前手爪的平行板之間的距離。該五維抓取表示給出了在對物體執行抓取時平行板夾具的位置和方向。Lenz 等表明一個最佳的五維抓取表示可以被映射為一個可以被機器人用來執行抓取的七維抓取表示,還可以降低計算成本。
與以前的方法[3-5]相比,本文使用一個小型輕量級的卷積神經網絡架構SqueezeNet-RM。該架構結合SqueezeNet[12]參數少的優點和DenseNet[13]多旁路連接加強特征復用的思想能提升抓取檢測準確率的優點,在康奈爾抓取數據集檢測任務上,在保證準確率不降低的情況下,網絡模型更小,所需存儲空間更少,模型速度更快。如圖2所示,整體架構的思想是在SqueezeNet網絡模型中引入DenseNet 增加旁路加強特征復用的思想,conv1 和 conv10 之后加入 Batch Normalization,并在最后一層后面添加一個全連接層。全連接層有6 個輸出神經元對應抓取矩形框的坐標,4個神經元對應位置和高度,抓取角度使用兩個附加的參數化坐標,即正弦和余弦的兩倍角。網絡直接從原始圖像回歸出抓取位姿(x,y,h,w,θ)。本文提出的回歸預測模型為SqueezeNet-RM(SqueezeNet Regression Model)。

圖2 SqueezeNet-RM網絡模型
本文提出的SqueezeNet-RM 網絡模型見圖2,以一個獨立的卷積層conv1為開端,相鄰的是8個Fire模塊,之后加一個獨立的卷積層conv10,最后以一個最終的全連接層結束。在層 conv1、Fire4、Fire8 和 conv10 之后使用步長為2 的max-pooling,Fire2、Fire4、Fire6 分別向后面的每一層引出旁路連接,這些相對較后的pooling 和旁路連接有助于提高檢測精度。
類似于Inception[14]和DenseNet[13]的模塊化思想,SqueezeNet神經網絡采用了模塊化的設計思想,它的基礎模塊稱為fire模塊。如圖3所示,Fire模塊含兩部分:squeeze層和expand層。首先使用1×1的卷積操作對輸入特征圖進行壓縮,其卷積核數要少于上一層feature map數,輸出特征圖的數量可以遠比輸入特征圖的數量少,這是squeeze層的設計。然后,采用不同大小的卷積核1×1和3×3進行卷積操作,將這些卷積操作的輸出特征圖concat 起來,這是expand 層操作,最終將特征圖的數量提升上去。將上述Fire模塊堆疊,得到SqueezeNet網絡。

圖3 Fire模塊
SqueezeNet通過Fire模塊和自身優化結構,采用了以下幾種常用的策略實現參數的減少。
策略1 使用1×1 過濾器替換3×3 過濾器,因為1×1濾波器具有比3×3 濾波器少86.97%的參數,見圖3 中Squeeze層。
策略2 使用Squeeze層將輸入到3×3過濾器的通道的數量減少。具體而言,對于一個完全由3×3濾波器組成的卷積層,該層中參數的總量是“輸入通道的數量×濾波器的數量×(3×3)”,因此,為了在CNN 中保持小的參數總數,在采用策略1的同時還要減少3×3濾波器的輸入通道的數量。
策略3 延遲降采樣,以使卷積層具有大的激活圖,見圖2 中的Maxpool 位置,大的激活圖(通過延遲降采樣)可以獲得更高的檢測精度,有助于提高任務的準確性[15]。
策略1 和策略2 在試圖保持準確性的同時減少CNN中參數的數量,策略3是在有限的參數運算量上最大化精度。
本文采用在ImageNet 分類問題上表現最佳的SqueezeNet(Simple Bypass Conection)架構[12]。SqueezeNet是一個全卷積網絡,本文在Fire9 層之后添加了一個隨機失活層dropout[16],以避免過擬合,在SqueezeNet 網絡的最后一層添加一個全連接層(Fully Connected Layer)作為輸出層。
何愷明等人在ResNet 提出:若某一較深的網絡多出另一較淺網絡的若干層有能力學習到恒等映射,那么這一較深網絡訓練得到的模型性能一定不會弱于該淺層網絡。通俗地說,就是如果對某一網絡中增添一些可以學到恒等映射的層組成新的網路,那么最差的結果也是新網絡中的這些層在訓練后成為恒等映射而不會影響原網絡的性能。并且DenseNet 提出:相比多次學習冗余的特征,特征復用是一種更好的特征提取方式,通過特征復用和旁路設置,既大幅度減少了網絡的參數量,又在一定程度上緩解了梯度消失問題的產生。
基于此思想,將Fire2 的輸出和其后面的所有層都加一個單獨的旁路連接,使得Fire2 之后的任意層網絡都可以和Fire2 直接互通,見圖2,Fire4、Fire6 分別進行此操作。為了降低模型參數,本文只在Fire2、Fire4、Fire6進行此操作,同時在conv1和conv10后面分別加入BN(Batch Normalization)層來防止梯度消失或梯度爆炸,加快訓練速度。
類似Kinect的低成本立體視覺系統使得RGB-D數據在機器人系統中越來越普遍,并且受Schwarz 等[17]引入的RGB-D 物體識別方法的啟發,由于SqueezeNet 只有3個輸入通道,本文使用深度信息D替換圖像中的藍色通道B 來使用多模態的RGB-D 數據,將三通道RGD圖像輸入到多模態抓取預測模型SqueezeNet-RM(RGD)來直接預測抓取位姿。本文不將多模態融合作為研究重點,將深度信息和RGB 信息多模態融合的方式可參考文獻[18]。
由于在ImageNet 分類問題上,Redmon 等已經對應用類似于AlexNet的網絡模型的抓取位姿預測問題進行了研究,本文也取AlexNet作為比較對象。
為了將本文方法與AlexNet 方法進行比較,在標準的康奈爾抓取數據集上測試了本文的架構和AlexNet網絡。該數據集包含240個不同對象的885個圖像。每個圖像都有多個抓取矩形,標記為成功(正樣本)或失敗(負樣本),總共有8 019 個標記的抓取矩形,5 110 個正樣本和2 909個負樣本,專門為平行板夾持器設計。圖4顯示了部分數據集的矩形度量的Ground truth。與前人的工作類似,本文對所有的實驗都使用五折交叉驗證[19],數據集按圖像分類。按圖像分類是將所有圖像隨機分成五部分,這有助于測試網絡對未見過的物體的抓取位姿的檢測能力。

圖4 康奈爾抓取數據集部分樣本
原圖像大小為480×640×3,將數據輸入網絡之前,對數據進行預處理,既達到了數據增強,又盡量減小對訓練速度的影響。在深度圖像中一些像素由于被遮擋而缺少深度信息,像素被標為NaN 值,使用0 代替這些像素值;深度信息被歸一化為0到255之間;將深度信息D替換圖像的藍色通道B;將圖像四周分別裁剪掉(150,70,150,70)像素,圖像變為341×341×3,這樣可使圖片中物體基本處于居中位置,減少了網絡對圖片中多余信息的處理;對大小為640×480×3的原圖片標注的抓取矩形的Ground truth 四頂點坐標值相應平移(150,70)像素;將數據轉化為TFRecord格式;圖像大小調整為224×224×3作為SqueezeNet-RM神經網絡模型的輸入。
由于參與訓練的圖片大小為341×341×3,標注的抓取矩形的Ground truth 四頂點坐標值也相應進行了平移調整,當圖像以224×224×3 大小輸入網絡訓練時,也一定要對式(2)計算出的(X0,Y0,H0,W0,θ0)值按照系數224/341進行相應縮放,才能作為學習的目標。
神經網絡訓練需要大的數據集,某些特定的領域可用的數據是有限的,如康奈爾抓取數據集,因此使用在ImageNet 上預訓練的SqueezeNet-RM 模型進行遷移學習,神經網絡進行預訓練可以縮短訓練時間,避免過擬合。將構建的現有的模型在ImageNet數據集上訓練出比較好的結果,得到預訓練模型,由于康奈爾數據集與ImageNt 數據集差別較大,重新訓練的過程就變得非常關鍵。而新數據集大小的不足,則是通過凍結預訓練模型的前面幾層進行彌補。

圖5 微調模型不同層損失函數變化曲線

圖6 微調模型不同層準確率變化曲線
神經網絡在網絡參數較多且訓練數據較少時,容易發生過擬合。因為本文提出的輕量級特征提取網絡表達能力較強,而康奈爾抓取數據集相對比較小,所以容易發生過擬合。ImageNet 的預訓練模型已經可以學習到比較好的特征,如果發生過擬合,則會降低學習到的特征的泛化能力,因此本文使用ImageNet 的預訓練模型進行遷移學習時,只對conv10 之后網絡的最后兩層的參數進行微調,特征提取網絡的前幾層不進行參數調整,同時比較了三種不同的微調層數的效果。SqueezeNet-RM_all、SqueezeNet-RM_last1、SqueezeNet-RM_last2分別表示微調SqueezeNet-RM網絡模型所有層的參數,微調SqueezeNet-RM最后一層即全連接層的參數,微調SqueezeNet-RM 最后兩層即global avgpool 和全連接層的參數。如圖5、圖6 所示分別為SqueezeNet-RM_all、SqueezeNet-RM_last1、SqueezeNet-RM_last2 在訓練集驗證集上的損失函數值和預測準確率變化曲線。可以看到SqueezeNet-RM_all的訓練集損失函數值下降很快,說明模型很快收斂,且損失函數值低于只微調部分特征提取網絡參數的SqueezeNet-RM_last1和SqueezeNet-RM_last2,然而驗證集損失函數值卻最高,這表明微調全部參數造成網絡在訓練集上發生了過擬合,破壞了SqueezeNet-RM原有的泛化能力較強的特征表達,使得網絡在驗證集上的表現變差,因此微調預訓練模型的全部參數不適合康奈爾抓取檢測數據。SqueezeNet-RM_last2和SqueezeNet-RM_last1的驗證集上的預測準確率相近,但SqueezeNet-RM_last1 的驗證集損失函數值明顯高于SqueezeNet-RM_last2,說明微調conv10 之后的最后兩層使網絡表現出較好的泛化性能。因此使用預訓練模型進行遷移學習時,本文選擇只調整conv10之后的最后兩層的參數值。先固定預訓練模型中conv10前面所有層中的權重,conv10及之后層的權重使用Xavier 權重來初始化,然后基于康奈爾數據集,重新訓練conv10 后面的層,同時最后一層需要根據相應的輸出格式來進行修改。
首先,訓練階段用到的位姿(X0,Y0,H0,W0,θ0)的Ground truth 值由抓取矩形四頂點像素坐標[(B0,B1),(B2,B3),(B4,B5),(B6,B7)]值(存儲于康奈爾抓取數據集的*cpos.txt文件中)計算得到。
如圖7所示,(X0,Y0,H0,W0,θ0)的計算公式如下:

由式(2)可知,為了能夠計算出角度θ0,抓取矩形應避免出現W0絕對豎直的情況(此時正切值無窮大),本文對計算值和預測值進行了限幅,將角度值限制在(-85°,85°)之間。

圖7 抓取矩形的Ground truth在圖像中的幾何描述
模型假設每個圖像都包含一個可以抓取的目標物體,并且只需要預測最佳抓取位姿(x,y,h,w,θ)。抓取位姿預測問題是一個回歸問題,類似于以前的工作[7],將原始RGB-D 圖像送入網絡后直接回歸得到抓取位姿。本文的回歸問題采用均方差(Mean Square Error,MSE)作為損失函數,采用SGD(Stochastic Gradient Descent)來優化訓練損失。損失函數的計算公式如下:

其中,(x,y,h,w,θ)為網絡預測出的位姿坐標,(X0,Y0,H0,W0,θ0)為計算獲得的Ground truth 值,λ為角度加權值,n為batch大小。
如圖8所示,該算法是在每個可抓物對象上找到一個最佳抓取位姿(Predicted)。由于康奈爾抓取數據集每個對象對應多個Ground truth(4~8 個抓取矩形),在訓練過程中,網絡模型每次預測出的抓取位姿是隨機挑選一個Ground truth進行學習。

圖8 損失函數計算原理
為了訓練和驗證本文的模型,使用了Tensorflow1.1.0深度學習框架,python 2.7.6 版本,在Ubuntu16.04 操作系統和Pycharm 2017社區版軟件上運行。在采用Intel?CoreTMi7-5930K CPU@3.50 GHz×12 的 CUDA 技術的GeForce GTX TITAN X/PCIe/SSE2上進行實驗。訓練參數設置為:learning rate=1E-4;batch=64;dropout=0.5;epoch=40 000;λ=10。
先前的工作有兩種常用的評價方法來評估網絡模型對康奈爾抓取數據集的抓取位姿預測效果:矩形度量[20]和點度量[21]。點度量比較預測抓取的中心點與所有Ground truth 抓取的中心點之間的距離。閾值被用來考慮最佳的抓取,但過去的工作沒有公開這些閾值。而且這個度量沒考慮抓取的一個基本參數——抓取角度,結果會有偏差,因此采用抓取矩形度量準則。矩形抓取度量考慮用抓取矩形進行評價,如果同時滿足以下兩點,則該抓取矩形被認為是一個很好的抓取。
(1)預測抓取角度θ與Ground truth抓取角度θ0之差小于30°,即;
(2)預測的Jaccard相似系數大于25%。
Jaccard 相似系數或Jaccard 指數衡量預測抓取與Ground truth抓取之間的相似性,定義為:

其中,A是Ground truth 抓取矩形區域,B是預測抓取矩形區域。
預測抓取矩形區域B的計算方法如下:
訓練完畢后,根據預測得到的抓取位姿(x,y,h,w,θ) 按照式(5)計算出預測抓取矩形的四頂點坐標[(b0,b1),(b2,b3),(b4,b5),(b6,b7)]。

抓取矩形的Ground truth 四頂點坐標值是已知的,根據矩形的四頂點坐標,可以計算Jaccard相似系數,從而對模型準確率進行評估。
與以前的工作一樣,對康奈爾抓取數據集使用五折交叉驗證的方式進行實驗,并對數據進行了兩種不同方式的劃分:
(1)Image-wise splitting:將圖像隨機劃分。
(2)Object-wise splitting:將相同物體的所有圖像(比如多個形狀和顏色略有不同的太陽鏡)放入同一個的交叉驗證子集中。
Image-wise splitting測試模型體現出網絡模型對于它曾經見過的新物體的抓取檢測的泛化能力。Objectwise splitting 測試模型體現出網絡模型對于它未見過的新物體的抓取檢測的泛化能力。
表1顯示了在康奈爾抓取數據集上AlexNet與本文提出的SqueezeNet-RM 輕量級網絡在抓取檢測準確率與參數量方面的實驗結果,以及不同卷積神經網絡抓取檢測模型的準確率和速度。本文提出的多模態抓取檢測模型,使用歸一化后的深度信息D替換輸入圖像的藍色通道B,將多模態RGD信息作為網絡的輸入。按Imagewise 方式訓練出的網絡模型,SqueezeNet-RM(RGD)輕量級抓取檢測模型的檢測準確率為90.00%,準確率超過了Lenz、Redmon、Kumra 等的典型方法,表現出最高的泛化性能;按Object-wise 方式訓練出的網絡模型,本文提出的輕量級抓取檢測模型遠高于基于AlexNet網絡的方法及 Lenz、Redmon 的典型方法,稍低于 Kumra 基于ResNet的方法,保持較高的檢測準確率。總之,在泛化性能上,無論按Image-wise方式還是Object-wise方式劃分,本文提出的網絡模型均達到了較高的檢測準確率,并表現出較高的泛化性能,但模型大小比基于AlexNet的抓取檢測方法減少了86.97%,平均檢測速度快3倍,大大降低了硬件存儲成本和運算成本。總體而言,本文提出的輕量級抓取預測網絡與經典的抓取檢測方法相比,在保證檢測準確率不降低的情況下,占用更少的存儲空間,表現出更快的檢測速度,有更高的泛化性能,滿足資源受限系統的使用要求,同時滿足機器人抓取檢測對模型準確率和實時性的要求。

表1 Cornell數據集上的矩形度量參數量、速度和檢測準確率
圖9 展示了各抓取預測模型的預測效果的部分圖片。使用本文提出的SqueezeNet-RM 預測模型檢測出的抓取位姿靠近中間位置,這種位置更穩定,更符合實際情況,使用類似AlexNet 的網絡檢測出的抓取位姿趨向于兩端的位置,抓取位置不穩定,也證明了本文改進模型SqueezeNet-RM的有效性。

圖9 不同抓取預測模型的預測效果
實驗結果表明,本文提出的SqueezeNet-RM(RGD)模型在保證檢測精度不降低的情況下,能大大減少模型大小,占用更少的存儲空間,且滿足實時性要求。本文提出的輕量級卷積神經網絡減少運算量的同時能夠確保精度的架構設計有以下特點:(1)采用輕量級模型架構的設計策略,在最大化精度的同時大大減少CNN 中參數的數量,降低了計算量(詳見3.1節)。(2)添加FC層保證預訓練模型特征表達能力的遷移。微調是深度學習領域最常用的遷移學習技術。針對微調,若目標域(康奈爾抓取數據集)中的圖像與源域(ImageNet 數據集)中圖像差異巨大,不含FC的網絡微調后的結果要差于含FC的網絡[22]。(3)引入DenseNet的多旁路設置和充分進行特征復用的思想來保證檢測精度。
檢測速度有較大提升的原因有以下幾點:(1)預測抓取位置的方法上,采用全局抓取預測,將整個圖像輸入卷積神經網絡中直接輸出抓取矩形參數,這種端對端的方式具有速度快的優點。(2)濾波器結構上,使用1×1的緊湊型濾波器替換3×3的過參型濾波器,可以降低相關的計算成本。利用緊湊型濾波器構成的SqueezeNet形成一個更緊湊的網絡,從而實現了整個網絡不降低精度的同時進行整體加速。(3)網絡架構上,輕量級卷積神經網絡架構使參數量大大減少,從而減少了網絡計算時間,有效提升了抓取檢測速度。
本文提出了一種基于輕量級卷積神經網絡的機器人抓取位姿檢測模型。該系統使用改進的SqueezeNet-RM神經網絡提取RGB-D 圖像中物體的特征,預測二指平行板機器人手爪對于新物體的可抓取位姿。在康奈爾抓取數據集上的實驗證明了本文模型的有效性,本文提出的低功耗的回歸模型大小比AlexNet減少了86.97%,速度提升了3倍,極大滿足低功耗或資源受限系統的要求。且檢測精度超過了AlexNet,達到了和ResNet 相當的精度。后續工作嘗試將該輕量級位姿抓取網絡用在移動機器人等資源受限的硬件設備上,實現對物體的抓取檢測。