趙景波 邱騰飛 朱敬旭輝 劉信潮
(青島理工大學(xué) 山東 青島 266000)
人類可以準確、快速抓取任意姿態(tài)的不規(guī)則物體,但這對機器人而言卻是一個重大的挑戰(zhàn)。自然環(huán)境下機器人快速抓取不同樣式、姿態(tài)的物體是實現(xiàn)人機協(xié)作的重要步驟,這一問題的解決不僅將推動機器人技術(shù)在部件裝配、搬運等工業(yè)領(lǐng)域廣泛應(yīng)用,也將增強輔助機器人的可使用性。機器人抓取包括感知、計算和抓取。作為起點,知道要抓取哪個對象以及如何抓取是必不可少的。因此,機器人準確而快速地檢測候選對象,將有助于更好地規(guī)劃抓取路徑,提高基于抓取操作任務(wù)的整體性能。
深度學(xué)習(xí)的提出對機器人抓取研究起到了巨大的推動作用。Jiang等[1]為基于特定物體設(shè)計視覺特征,使用機器學(xué)習(xí)的方法完成機器人抓取任務(wù);Lenz等[2]是第一個使用深度學(xué)習(xí)的方法并提出使用滑動窗口完成抓取點檢測,與傳統(tǒng)方法相比,該方法可以自主完成抓取特征的學(xué)習(xí)。上述方法在Cornell[3]數(shù)據(jù)集上達到73.9%的準確率。然而采用滑動窗口的方法會導(dǎo)致搜索抓取區(qū)域耗費時間長且計算量大。
Redmon等[4]摒棄了傳統(tǒng)的抓取框預(yù)測方法,充分利用AlexNet[5]網(wǎng)絡(luò)在圖像識別上特有的能力,從輸入圖像整體上獲得抓取框圖,完成檢測任務(wù)。Kumra等[6]沿用了Redmon等[4]的檢測方法,使用了最新提出的ResNet- 50[7]檢測目標物的抓取特征,抓取準確率提高了1.21%。這兩種方法都使用了較為復(fù)雜的網(wǎng)絡(luò),利用網(wǎng)絡(luò)強大的特征提取能力,有效提升了抓取準確率。
Chu等[8]提出旋轉(zhuǎn)抓取框的方法達到96%的準確率,平均檢測時間為120 ms,在小目標抓取識別上效果較差。
Ren等[9]提出的faster-rcnn在fast-rcnn[10]的基礎(chǔ)上將feature extraction、proposal提取、bounding box、regression、classification都整合在了一個網(wǎng)絡(luò)中,使得綜合性能有較大提高,在檢測速度方面尤為明顯。其中區(qū)域全卷積網(wǎng)絡(luò)(Region-based fully convolutional network)使深度神經(jīng)網(wǎng)絡(luò)對特征信息的利用進入了一個新的臺階。文獻[11-13]在整幅圖像上共享計算,在數(shù)據(jù)集的訓(xùn)練與實驗中取得了較好的效果,目前已經(jīng)應(yīng)用到目標識別中。
Redmon等[14]提出的YOLOv3網(wǎng)絡(luò)是由Darknet53和YOLO層兩部分,分別用于提取物體特征與多尺度預(yù)測。檢測精度達到了96.51%,因其107層的網(wǎng)絡(luò)深度使其檢測時間達到了0.13 s,雖然改進后的Ligth-YOLOv3網(wǎng)絡(luò)大大縮短了檢測時間,但是檢測精度卻受到了影響。
國際上涌現(xiàn)了大量的優(yōu)秀網(wǎng)絡(luò)模型,具有代表性的包括AlexNet[5]、ZF[15]、VGG[15]、GoogleNet[16]、ResNet[7]和YOLOv3等,所有網(wǎng)絡(luò)模型都可根據(jù)需要設(shè)計成不同的深度以適應(yīng)實際的需要。國內(nèi)外學(xué)者的抓取檢測算法已經(jīng)達到了不錯的效果,但是仍然存在兩個問題:(1) 高準確率下檢測抓取框時間過長,無法滿足抓取檢測實時性的要求;(2) 容易忽略目標物的小部位信息,檢測抓取框偏大,精度不足。
為解決上述問題,設(shè)計一種區(qū)域建議實時抓取檢測網(wǎng)絡(luò)(RP-ResNet)。該網(wǎng)絡(luò)以殘差網(wǎng)絡(luò)ResNet- 50為基礎(chǔ),在區(qū)域抓取建議(RPN)[9]思想的啟發(fā)下,將ResNet- 50的前30層作為特征提取的第一階段,其目的在于生成整幅圖像的抓取建議,加強對低層次信息的利用,第30層后加入SENet[17]結(jié)構(gòu)和金字塔池化結(jié)構(gòu)[18]增加了小物體檢測抓取的準確性。在確保檢測精度的前提下,充分融合高低層的特征信息,加強了檢測抓取框的能力。
給定一個新物體的RGB圖像,識別目標潛在的最優(yōu)抓取配置。圖1所示的是5維抓取矩形抓取表示法,它簡化了7維表示法,描述了一個平行抓取器在抓取物體之前的位置、夾爪打開距離和方向。公式表示如下:
G={x,y,h,w,θ}
(1)
圖1 圖像空間中的抓取框描述
圖1中,(x,y)表示為平行抓取器的中心位置,h和w分別表示為平行夾爪的位置和夾爪張開距離,θ為w方向和水平方向的夾角。機械手抓取的準確性除了與抓取框的標注點有關(guān)外,還與框圖的大小有一定聯(lián)系,過大的抓取框直接影響了機械夾板的實際張開大小以及機械夾板抓取中心位置的選取,進而降低了目標物抓取的成功率。
深度相機獲取含有抓取物體的RGB和RGD圖像,將RGB圖像信息經(jīng)過數(shù)據(jù)增強、調(diào)整輸入大小等操作后輸入給PR-ResNet網(wǎng)絡(luò),生成抓取框圖,機械臂根據(jù)網(wǎng)絡(luò)輸出信息定位抓取點完成抓取操作。
圖2 目標抓取區(qū)域算法實時檢測流程
其中,RP-ResNet模型如圖3所示。
圖3 RP-ResNet網(wǎng)絡(luò)模型
RP-ResNet模型第一階段的檢測受區(qū)域建議網(wǎng)絡(luò)(RPN)[10]的啟發(fā),共享ResNet- 50的中間卷積層(第30層)的特征圖。將共享卷積層與區(qū)域建議網(wǎng)絡(luò)輸出一起輸入到ROI中,取消了ROI區(qū)域?qū)Ω信d趣區(qū)域的再次計算。
第二階段在網(wǎng)絡(luò)第30層后按照圖4所示加入SENet-改進型金字塔池化結(jié)構(gòu),在每個殘差模塊后加入SENet模塊,增強通道間的聯(lián)系,并使用改進型空間金字塔池化結(jié)構(gòu)融合高低層信息,增強網(wǎng)絡(luò)特征的利用率,強化小物體的檢測精度,達到提高檢測準確率的目的。
圖4 SPPN-ResNet
區(qū)域建議網(wǎng)絡(luò)模型如圖5所示。
圖5 區(qū)域建議網(wǎng)絡(luò)模型
傳統(tǒng)的區(qū)域建議網(wǎng)絡(luò)會進行兩次任務(wù)分類和邊框回歸任務(wù),第一次是在RPN內(nèi)部,使用k×k的滑動窗口,產(chǎn)生2k(類別)的分類圖和4k(邊界框)的通道分數(shù)圖;將分類結(jié)果與共享特征圖譜一起送入ROI之后,會進行第二次任務(wù)分類和邊框回歸。為了更有效地處理區(qū)域建議,減小計算量,將ROI池化層集成到RP-ResNet網(wǎng)絡(luò),共享前一層的特征圖譜,避免了ROI對感興趣區(qū)域的再次計算。
抓取建議網(wǎng)絡(luò)的工作原理是在特征映射的每個錨定處,使用k×k比例的滑動窗口(本文使用的是3×3)檢測邊界框形狀,并把輸入特征圖的維度轉(zhuǎn)化為256維,然后進行same padding操作,進而輸出兩個特征圖,分別是2k通道的特征圖和4k通道的邊界框。實驗中發(fā)現(xiàn),使用較小的滑動窗口可以對物體細節(jié)以及小物體進行掃描,使區(qū)域提議更準確。
經(jīng)過處理的響應(yīng)圖按得分的高低劃分成不同的通道,得分高的通道(所在區(qū)域的相對空間位置通道中)分成K2個區(qū)域,所有區(qū)域單獨進行平均池化操作后再一次整體平均池化。對于大小為w×h的ROI,一個bin的大小為W/h×W/h,最后一層卷積層生成每類大小為K2個得分圖,ROI第(i,j)個bin區(qū)域(0≤i,j≤k-1),第c個類別的池化響應(yīng)如式(2)所示。
式中:(i,j)是第c類rc(i,j)的bin的池化響應(yīng);zi,j,c為k2(c+1)個得分圖的輸出;(x0,y0)為ROI的左上角坐標;n為bin里的像素總數(shù);Θ為網(wǎng)絡(luò)參數(shù)。
SENet結(jié)構(gòu)如圖6所示,SENet通過增強模塊之間的聯(lián)系、強化特征信息提高檢測準確度。為進一步減少、壓縮每個特征圖的參數(shù)量,在整體上使用平均池化,把輸出的特征圖經(jīng)擠壓轉(zhuǎn)換為能夠體現(xiàn)全局特征的實數(shù)。然后通過兩個卷積層完成降維與升維操作,第一個卷積層將特征維度降低到原來的C/r,為了增加它的非線性的目的,使用了ReLU激活函數(shù);第二層卷積操作是為了將特征圖恢復(fù)到原有的維度,為了得到歸一化權(quán)重,在模塊的末端使用了Sigmoid激活函數(shù),最后通過通道加權(quán)恢復(fù)到原有的特征通道,對原始特征進行重標定。轉(zhuǎn)換公式如下:
sc=Fex(z,W)=σ(W2δ(W1,zc))
(4)
式中:zc為第c層特征壓縮后的特征;uc為第c層的特征u;δ為激活函數(shù)。
圖6 SENet結(jié)構(gòu)模型
圖像空間金字塔是圖像的多尺度處理,利用多分辨率分解并表征圖像的強有力簡單結(jié)構(gòu),針對深度神經(jīng)網(wǎng)絡(luò)低層次語義信息弱、位置清晰,高層次語義信息強、位置模糊的特點,增強小目標物抓取識別的效果,使用了改進型空間金字塔池化結(jié)構(gòu)[18],如圖7所示。傳統(tǒng)特征金字塔特征提取過程中,使用統(tǒng)一尺寸圖像作為輸入,多尺度提取出固定大小的特征向量。為了適應(yīng)深度神經(jīng)網(wǎng)絡(luò)不同位置圖像尺寸的變化,獲取更加豐富的特征信息,改進型空間金字塔池化層分別使用了2×2、2×2、4×4不同的分辨率對池化層進行了特征提取,經(jīng)過max polling分別得到4、4、16個不同維度的特征向量,級聯(lián)后輸出24維度融合金字塔池化信息。改進后的空間金字塔池化結(jié)構(gòu)提升了網(wǎng)絡(luò)模型的輸出尺寸,在特征重構(gòu)的結(jié)果中保留了大量的目標物低級形狀、紋理等特征,最終經(jīng)過不同層級的信息融合,有效提高了物體細節(jié)的辨識精度。
圖7 改進型空間金字塔池化結(jié)構(gòu)
在深層網(wǎng)絡(luò)提取特征信息之后,最后一個階段為確定抓取配置,設(shè)αl表示Softmax層后的第l類概率,βl表示相應(yīng)的預(yù)測抓取邊界框。定義抓取形態(tài)預(yù)測的損失函數(shù)(gcr)為:
式中:Lgcr-cls是抓取角分類的交叉熵損失(gcr-cls);Lgcr-reg是權(quán)重為λ2的抓取邊界框(gcr-reg)的l1回歸損失;βc是真值抓取邊界框。
點度量和矩形度量是兩種常用的衡量抓取效果的方法。文中采用的是矩形度量方法,當(dāng)滿足以下兩個條件時,候選框抓取配置正確:
(1) 預(yù)測的抓取角度與標注真值框的抓取角度之差小于30°。
(2) Jaccard相似系數(shù)大于0.25,其中計算如式(7)所示。
式中:gp為抓取角度;gt為標注真值框角度。
實驗數(shù)據(jù)集是以Cornell數(shù)據(jù)集為基礎(chǔ),其中包含244個不同物體的885幅圖像,每個物體都在不同方位或者姿態(tài)下拍攝了多幅圖像,每個不同的圖像都被多次標記,對應(yīng)于物體的抓取可能。
為了擴充數(shù)據(jù)集,獲取更加全面的實驗數(shù)據(jù)進一步測試網(wǎng)絡(luò)的性能,對Cornell數(shù)據(jù)集進行了以下兩種方式劃分:
方式1:按照數(shù)據(jù)集中排列的順序進行隨機劃分成訓(xùn)練集和驗證集,驗證集中包含模型訓(xùn)練中出現(xiàn)過的不同擺放角度的同一物體,用來驗證網(wǎng)絡(luò)檢測物體能力的泛化性。
方式2:將Cornell數(shù)據(jù)集中的物體按照種類的不同進行劃分,驗證集不包含在訓(xùn)練集中,驗證集的種類是模型從未見過的,用來驗證網(wǎng)絡(luò)對新物體的檢測能力。
在數(shù)據(jù)準備方面,對Cornell數(shù)據(jù)集進行了廣泛的數(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,以適應(yīng)ResNet- 50體系結(jié)構(gòu)的輸入。
網(wǎng)絡(luò)的訓(xùn)練環(huán)境為Ubuntu系統(tǒng),使用顯卡GTX980進行加速,學(xué)習(xí)率的初值設(shè)置為0.001;學(xué)習(xí)衰減策略為“step”,步長為3 000;學(xué)習(xí)變化率為0.1,最大迭代次數(shù)為43 000;使用梯度下降法作為整個模型的訓(xùn)練方法。當(dāng)網(wǎng)絡(luò)接近最優(yōu)值時,為減小因?qū)W習(xí)率過大產(chǎn)生的震蕩,因此當(dāng)?shù)螖?shù)在40 000到43 000時,學(xué)習(xí)率衰減為原先的十分之一,即為0.000 1,確保網(wǎng)絡(luò)進一步地收斂,逐步逼近最優(yōu)值。為了提高訓(xùn)練效率,首先對Cornell數(shù)據(jù)集進行了預(yù)處理,以適應(yīng)ResNet- 50網(wǎng)絡(luò)的輸入格式,然后使用COCO2014數(shù)據(jù)集上的ResNet- 50的預(yù)訓(xùn)練權(quán)重。其他參數(shù)的使用標注高斯分布作為初始值。
圖8為Cornell數(shù)據(jù)集在RP-ResNet網(wǎng)絡(luò)運行的結(jié)果中預(yù)測的部分正確抓取結(jié)果。
圖8 模型預(yù)測的部分抓取框圖
為了豐富實驗數(shù)據(jù),進一步對比、驗證RP-ResNet網(wǎng)絡(luò)的可行性,進行了以下幾個方面的對比:
(1) 原ResNet模型和RP-ResNet模型檢測效果對比見表1。
表1 原ResNeT與RP-ResNet實驗結(jié)果對比
可以看出,RP-ResNet網(wǎng)絡(luò)模型在準確率、參數(shù)量、檢測時間上都有了明顯的提升,檢測效果優(yōu)于原模型。雖然參數(shù)量相較于原模型增加了1%,但是模型的準確率提高了1.25百分點,而且檢測時間縮短了0.07 s。
實驗分析可知,深度神經(jīng)網(wǎng)絡(luò)的底層網(wǎng)絡(luò)有著清晰的物體位置信息,使用區(qū)域建議網(wǎng)絡(luò)能夠快速定位目標位置,完成初步位置定位和抓取區(qū)域建議;嵌入的SENet機構(gòu)有助于增強特征圖的感受視野,加強了通道間的聯(lián)系;而改進型空間金字塔結(jié)構(gòu)能夠有效地融合高低層特征信息,加強低層次信息的表達能力,有助于增強小物體及物體細節(jié)的辨識能力。由于主要采用最大池化,因此模型參數(shù)量基本保持不變,并且有效提高了檢測精度。
(2) RP-ResNet算法與其他算法比較見表2。
表2 RP-ResNet算法與其他算法比較
將RP-ResNet網(wǎng)絡(luò)按照兩種不同數(shù)據(jù)集劃分方式進行訓(xùn)練、實驗,并且與其他網(wǎng)絡(luò)算法進行對比。對比結(jié)果如表2所示。實驗結(jié)果表明,兩種不同劃分方式下RP-ResNet網(wǎng)絡(luò)檢測準確率優(yōu)于其他檢測算法,雖然檢測時間相比Redmon檢測網(wǎng)絡(luò)長,但是檢測精度有了大幅度的提升。
圖9為RP-ResNet算法與文獻[8]算法復(fù)現(xiàn)對同一物體的抓取效果對比。
(a) 其他算法檢測效果
(b) RP-ResNet算法檢測效果圖9 其他算法與RP-ResNet算法檢測對比
圖9的對比效果表明,對于檢測同一種物體抓取位置,RP-ResNet預(yù)測的抓取框更加精細,抓取框居于物體中間,主要原因在于RP-ResNet使用的區(qū)域建議網(wǎng)絡(luò)和改進型金字塔池化結(jié)構(gòu)都能夠很好地挖掘圖像中的信息,增強了網(wǎng)絡(luò)對目標細節(jié)信息的敏感度,加強檢測效果。
(3) 在區(qū)域建議網(wǎng)絡(luò)中,滑動窗口的尺寸通常為3×3、5×5、7×7三種,因此對比不同大小滑動窗口檢測效果如表3所示。
表3 不同大小滑動窗口提取效果對比
可以看出,隨著滑動窗口尺寸的增大,測試損失值越來越高,檢測精度上也有所下滑,在檢測時間上,3×3窗口優(yōu)于其他兩個尺寸。因此綜合考慮測試損失、檢測精度、檢測時間三項數(shù)據(jù),3×3的滑動窗口能夠在損失值最小的情況下,達到最高的檢測精度并且檢測時間最少,實現(xiàn)最優(yōu)的檢測效果。
(4) 改進型空間金字塔池化結(jié)構(gòu)與原模型比較見表4。
表4 改進型空間金字塔池化結(jié)構(gòu)與原模型對比
改進型空間金字塔池化結(jié)構(gòu)與其他模型的對比中可以看出,改進型空間金字塔池化結(jié)構(gòu)與不含金字塔池化結(jié)構(gòu)相比,準確率比不含改進型空間金字塔的模型提高了1.11百分點,參數(shù)量基本沒有改變,檢測時間上縮短了0.061 s;比含有原金字塔池化結(jié)構(gòu)的模型準確率提高了0.54百分點,檢測時間縮短了0.09 s。實驗數(shù)據(jù)表明改進型空間金字塔結(jié)構(gòu)使用不同分辨率對特征圖進行池化,保留更多圖像原始信息,有效提升了網(wǎng)絡(luò)性能。
根據(jù)對YOLO系列網(wǎng)絡(luò)[14,21]以及文獻[22-27]的分析對比,提高復(fù)雜場景下的物體檢測準確率和檢測效率需要對網(wǎng)絡(luò)進行以下幾個方面的改進:
(1) 從YOLOv2[14]開始,YOLO就將歸一化、加速收斂和避免過擬合的方法改變?yōu)锽N(Batch Normalization),將BN層和Leaky ReLU層接到每一層卷積層之后。因此網(wǎng)絡(luò)使用BN層會對輸入每一層的數(shù)據(jù)進行歸一化處理,防止產(chǎn)生過擬合現(xiàn)象;同時增加訓(xùn)練時梯度,避免梯度消失產(chǎn)生問題;從而能使用更大的學(xué)習(xí)率,大幅提高訓(xùn)練速度。
(2) 提高模型對檢測點位置的敏感度。從文獻[19-23]中可知,合理引入損失權(quán)重,采用不同的損失權(quán)重比可以有效提高位置敏感度,提升檢測效能。
(3) 優(yōu)化特征金字塔錨點框數(shù)量及尺寸。從實驗四可以看出,優(yōu)化錨點框大小對精度影響較大,而對檢測速度影響較小。結(jié)合文獻[24-26]中改變錨點框數(shù)量可知,合理增加錨點框數(shù)量、改變錨點框尺寸,可以極大提高檢測精度。
(4) 使用全卷積網(wǎng)絡(luò)代替全連接層。取消輸入圖像的尺寸限制,從文獻[25-26]可知根據(jù)網(wǎng)絡(luò)深度、結(jié)構(gòu)合理修改輸入圖像尺寸,可以有效提高檢測精度。
為了加強機器人對不同類型、大小目標的抓取效率,適應(yīng)更加復(fù)雜的環(huán)境,提出一種高精度、高實時性的RP-ResNet神經(jīng)網(wǎng)絡(luò)模型,在傳統(tǒng)ResNet- 50深度神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上進行了改進,一方面,通過區(qū)域建議網(wǎng)絡(luò)充分挖掘低層次圖像特征信息、目標物位置信息,增強小目標檢測的效果;另一方面,通過使用SENet-空間金字塔池化結(jié)構(gòu),有效地提升了網(wǎng)絡(luò)結(jié)構(gòu)后半部分對物體細節(jié)的抓取能力和通道與通道之間的相互依賴關(guān)系,融合了不同層級之間的特征信息,提高了模型的泛化性和檢測準確率。該模型在Cornell數(shù)據(jù)集上的表現(xiàn)明顯優(yōu)于其他模型,精準度達到了96.7%。RP-ResNet網(wǎng)絡(luò)模型準確率高、泛化性強,基本實現(xiàn)實時識別。
然而,Cornell數(shù)據(jù)集每幅圖像只有一個抓取目標,相對于復(fù)雜的生活場景太過簡單,所以,下一階段的任務(wù)是根據(jù)以上分析設(shè)計網(wǎng)絡(luò),實現(xiàn)復(fù)雜場景的高效、實時抓取預(yù)測。