秦志民,高振清,高寶雷,文博宇,杜艷平,李宏峰*,
(1.北京印刷學院 機電工程學院,北京 102600;2.北人智能制造科技有限公司,北京 102600)
隨著深度學習技術(shù)的不斷發(fā)展,視覺識別技術(shù)在機器人領(lǐng)域的應用越來越廣泛,在機械臂抓取領(lǐng)域的研究與應用也成為熱點之一。自2006年以來,基于深度卷積神經(jīng)網(wǎng)絡的圖像識別技術(shù)得到了快速發(fā)展,比較典型的卷積神經(jīng)網(wǎng)絡包括LeNet、AlexNet、VGG、ZFNet、ResNet等。其中,AlexNet的圖像識別檢測過程中通過若干卷積層和池化層,逐步對圖像進行特征提取和分類[1]。VGG16的結(jié)構(gòu)是標準卷積層、池化層和全連接層的迭代,根據(jù)需要可以修改網(wǎng)絡深度,但是每次遍歷整張圖片,包含數(shù)量巨大的權(quán)重數(shù)目,使得擬合能力很高,訓練時間和內(nèi)存要求也相應增加[2]。SSD采用VGG16作為基礎(chǔ)網(wǎng)絡模型,新增了卷積層來獲得更多的特征圖用于檢測,在不增加參數(shù)與模型復雜度的條件下擴大卷積的視野[3]。YOLO 降低了部分準確率,檢測速度得到了極大提升,實時檢測速度達到 50 fps[4],其YOLOv3在準確率和速度上均比SSD更為優(yōu)越[5]。
通常的目標識別方法將物體用矩形框框出,并輸出物體的所屬種類及分類概率。鑒于矩形框無法準確表達物體的形狀和擺放姿態(tài)的區(qū)別,所以需要對物體的位姿進行進一步的預測。對于機械臂抓取過程,早期主要使用分析方法和3D推理預測抓取位置和角度[6]。此類方法要求物體信息完整,比如需要給定物體的完整三維模型,以及物體的表面摩擦特性和質(zhì)量分布等。然而,對物體3D模型和相關(guān)屬性的感知和推斷是非常困難的,比如使用RGB相機不易推斷物體的摩擦力或者質(zhì)量。一些研究工作使用模擬器進行抓取預測[7],但是模擬器的仿真環(huán)境與真實環(huán)境差異較大,遷移效果難以保證。近年來,通過視覺學習直接從RGB或RGB-D圖像預測抓取位置受到研究者們的關(guān)注,比如文獻[8-9]使用邊緣、紋理等視覺特征學習或者邏輯回歸的方法進行抓取預測。
本次研究采用基于深度學習的視覺識別技術(shù),搭建了視覺機械臂抓取系統(tǒng)。研究過程中,采用深度學習算法進行圖像特征的提取,通過DarkNet-53實現(xiàn)圖像識別,進而獲得目標物體的抓取位姿,最后控制機械臂實現(xiàn)抓取。研究過程中,搭建了物理樣機,并進行了實驗分析。
基于深度學習的視覺機械臂目標識別與抓取系統(tǒng)主要由機器視覺單元、機械臂控制單元、計算機控制單元構(gòu)成。機器視覺單元通過控制攝像機傳感器采集目標圖像,機械臂控制單元通過伺服驅(qū)動器控制各關(guān)節(jié)轉(zhuǎn)動,計算機控制單元進行圖像檢測、位置標定等。系統(tǒng)總體組成與工作原理如圖1所示。
圖1 系統(tǒng)總體組成與工作原理
為實現(xiàn)物體抓取,首先要確定目標物體在機械臂坐標系中的位姿。通過相機直接獲取包含物體的圖像,利用圖像識別和檢測算法得到物體在像素坐標系下的坐標。通過標定將物體的位姿從像素坐標系變換到機械臂坐標系下。視覺系統(tǒng)的標定包括相機標定和手眼標定,通過相機標定建立像素坐標系到相機坐標系的變換關(guān)系,通過手眼標定建立相機坐標系到機械臂坐標系的轉(zhuǎn)換關(guān)系。
在完成坐標轉(zhuǎn)換的基礎(chǔ)上,為使機械臂完成物體抓取,需給定機械臂的各關(guān)節(jié)坐標。通過標定得到物體在機械臂坐標系下的位姿,根據(jù)被抓物體的形狀和機械臂末端執(zhí)行器的結(jié)構(gòu),坐標變換得到抓取物體所要求的機械臂末端執(zhí)行器的位姿。根據(jù)機械臂運動學模型,通過計算運動學逆解獲得對應的機械臂關(guān)節(jié)角度,驅(qū)動機械臂各關(guān)節(jié)到達指定的坐標。
目標分類預測的任務是找出圖像中的待操作物體,同時檢測其尺寸及位姿,是目前機器視覺領(lǐng)域的核心問題之一。本次研究使用預訓練好的YOLOv3目標分類算法進行目標的識別分類。為了提高工作效率,使用MSCOCO數(shù)據(jù)集與ImageNet數(shù)據(jù)集進行兩次訓練,提升訓練速度并保證訓練準確。使用MSCOCO數(shù)據(jù)集進行快速訓練,考慮到該數(shù)據(jù)集沒有ImageNet數(shù)據(jù)集中的物體種類全面,如果無法檢測出物體,再使用ImageNet做進一步的訓練。
YOLOv3采用單獨的CNN模型實現(xiàn)端到端的目標檢測,可有效解決R-CNN系列算法采用滑動窗口進行目標檢測所帶來的耗時過長問題。將原始輸入圖像分割成若干個互不重合的單元格。目標物體的中心點所在的單元格用來對該目標物體進行識別預測,每個單元格會給出多個邊界框以及邊界框的置信度。置信度通過預測框與實際框的IOU(交并比)來表征。每個單元格會預測出多個類別概率值,用于表征目標物體屬于各個類別的概率。
YOLOv3采用Darknet-53和分類器,在準確率和速度方面得以保證,并采用類似FPN的上采樣和融合做法,可以顯著提高小目標物體的檢測效果。YOLOv3的網(wǎng)絡結(jié)構(gòu)圖如圖2所示。從圖中可以看出,特定尺寸大小的輸入圖片進入Darknet-53網(wǎng)絡后得到3個分支,這些分支在經(jīng)過一系列的卷積、上采樣以及合并等操作后最終得到了3個不同尺寸的feature map,即y1、y2、y3,其中,y1用于預測大尺寸物體,y2用于預測中等尺寸物體,y3用于預測小尺寸的物體。
圖2 YOLOv3的網(wǎng)絡結(jié)構(gòu)圖
圖2中DBL是YOLOv3的基本組件,由卷積層和BN以及l(fā)eaky relu共同構(gòu)成;YOLOv3采用ResNet的殘差結(jié)構(gòu),可以提升網(wǎng)絡結(jié)構(gòu)的深度,Resn表示res-block里有多少個res-unit,是YOLOv3的大組件;concat表示張量拼接,目的是把Darknet中間層和后面的某一層的上采樣進行拼接。通過以上網(wǎng)絡結(jié)構(gòu)能夠?qū)崿F(xiàn)對大、中、小物體的識別預測。
目標物體的抓取位姿預測是通過回歸模型實現(xiàn)的,將原始RGB圖像送入網(wǎng)絡后直接回歸得到抓取位姿。回歸任務的評價指標通常為預測值與真實值之間的差別。本次研究使用YOLOv3的骨架DarkNet-53進行抓取坐標的回歸。為了微調(diào)原網(wǎng)絡權(quán)重適應抓取檢測的應用,將Cornell Grasp Dataset用于網(wǎng)絡的訓練。然后將訓練集中4個坐標點轉(zhuǎn)成五參數(shù)表示法[10],五參數(shù)表示法給出了在對物體執(zhí)行抓取時二指平行抓手的位置和方向。
五參法表示結(jié)果(X0,Y0,H0,W0,θ0)由訓練數(shù)據(jù)集中給出的正例抓取框的4個頂點坐標計算得到,假設這4個頂點坐標分別為(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4),如圖 3所示。
圖3 抓取矩形的Ground Truth在圖像中的幾何描述
X0,Y0,H0,W0,θ0的計算式為:
(1)
式中:(X0,Y0)是與抓取矩形的中心對應的坐標;H0是二指平行抓手最大高度;W0是二指平行抓手的手指寬度;θ0是抓取矩形相對于水平軸的角度。由式(1)可知,為了計算角度θ0,抓取矩形應避免出現(xiàn)W0絕對豎直的情況(此時正切值無窮大),研究過程中對計算值和預測值進行了限幅,將角度值限制在-85°~85°之間。模型假設每個圖像都包含一個可抓取的目標物體,并且只需要預測最佳抓取位姿(x,y,h,w,θ)。
經(jīng)過計算得到的五維坐標相當于每張圖片的標簽,再將這些信息轉(zhuǎn)換為tf-record格式,即可輸入網(wǎng)絡中進行訓練,如圖4所示。在經(jīng)過Darknet-53特征提取之后,進行平局池化,形成全連接層,并使用dropout防止過擬合,最后輸出抓取位姿的真實坐標值。
圖4 網(wǎng)絡主體框架圖
研究過程中使用均方差(MSE)作為損失函數(shù),隨機梯度下降法(SGD)作為優(yōu)化器。損失函數(shù)的定義為
Lgp-reg=
(2)
式中:(x,y,h,w,θ)為預測值;(X0,Y0,H0,W0,θ0)為真實值;λ為角度加權(quán)值,設為10;N為batch(批量)大小。
對于單物體單抓取,訓練時模型只選擇其中一個Ground Truth(真值框)進行學習。由于每次的選擇都會變化,因此不會過擬合。最后,將預測得到的五維坐標轉(zhuǎn)為抓取預測框的4個頂點即可。具體訓練過程分為3個階段:
1) 第一階段預訓練,只訓練一個epoch,初始學習率為10×10-4,通過預訓練可以一定程度上解決深度網(wǎng)絡中梯度擴散問題以及隨著網(wǎng)絡加深出現(xiàn)的多特征問題,并最終得到比較好的局部最優(yōu)解。
2) 第二階段訓練20個epoch,這一階段做遷移學習,在基礎(chǔ)數(shù)據(jù)集和任務上訓練一個基礎(chǔ)網(wǎng)絡,然后轉(zhuǎn)移到第二個目標網(wǎng)絡并在目標數(shù)據(jù)集和任務上接受訓練,目的是提高訓練的速度以及改善深度學習模型的性能,所以只訓練相關(guān)層。
3) 第三階段訓練30個epoch,開放所有層,使用抓取數(shù)據(jù)集做微調(diào)。這一階段是將預訓練過的模型作用于自己的數(shù)據(jù)集,并使參數(shù)適應數(shù)據(jù)集,所用的深度學習框架為TensorFlow1.13.1-gpu,cuda=10.0,cudnn=7.4,使用的顯卡為Quadro K620,顯存為6 GB。
在以上目標識別與抓取位姿預測的基礎(chǔ)上,搭建了視覺機械臂的硬件平臺。按照標準D-H方法建立機械臂關(guān)節(jié)坐標系[11-13],并根據(jù)需要將圖像坐標、相機坐標等轉(zhuǎn)換到機器人坐標系下,以便機械臂按照控制指令運動。計算機與機器人控制器通訊,得到物體抓取位置坐標,并將其轉(zhuǎn)換到機器人坐標下,利用運動學分析方法得到各個關(guān)節(jié)角度,隨后向控制器發(fā)送運行指令對機器人進行控制動作。
本次研究的對象是平臺放置物體的抓取,待抓取物體都處在同一個平面內(nèi),所以不涉及深度信息。相機和桌面的距離是固定的,根據(jù)預測到的物體在桌面上的坐標,根據(jù)幾何原理得到相機距離物體的距離,進而通過坐標轉(zhuǎn)換可以將物體在桌面的坐標轉(zhuǎn)換到相機坐標中。同理,機器人初始位置與桌面也有固定的距離,由此也可以推算物體與執(zhí)行器末端的坐標轉(zhuǎn)換,最后通過相機與執(zhí)行器末端的標定,將圖像坐標轉(zhuǎn)換到機器人坐標下,再根據(jù)逆運動學求解各個關(guān)節(jié)的轉(zhuǎn)動角度,實現(xiàn)運動控制。
模型訓練及實驗是在CPU為Intel?CoreTMi5-6500 3.20GHz,RAM為4GB,操作系統(tǒng)為Ubuntu16.4的計算機上完成,沒有使用GPU加速。物體圖片由logitech單目USB攝像頭采集,原圖分辨率為1 280×720。軟件部分基于Tensorflow深度學習框架Python編寫。
執(zhí)行抓取運動的機器人為6軸串聯(lián)工業(yè)機器人,具體抓取過程如下:
1) 初始化機械臂位姿及夾持器開度。設機械臂在笛卡兒空間下的初始位姿為(x0,y0,z0,rx0,ry0,rz0),夾持器開度為L;
2) 控制機械臂令末端執(zhí)行器到達抓取點的正上方,并將末端執(zhí)行器旋轉(zhuǎn)至檢測結(jié)果的姿態(tài)角度;
3) 下移末端執(zhí)行器并閉合夾持器以抓取物體;
4) 控制機械臂將目標物體提起后返回初始位姿。
經(jīng)實驗測試,改進的算法在Darknet-53網(wǎng)絡模型下可以快速的檢測識別目標物體,檢測速度可以達到0.52 s,能夠滿足實時性要求。由此可見,對于不同形狀和種類的物體,該方法均可以預測出一個可以完成抓取任務的抓取框如圖5所示。從圖5中可發(fā)現(xiàn),該算法可以根據(jù)物體的形狀特點來預測抓取框,比如中空的環(huán)形線纜、規(guī)則的快遞盒以及帶有邊框的收納盒;對于小物體,該算法也可以得到一個較好的預測結(jié)果,比如小螺絲釘、小工件以及小的螺絲刀等。
圖5 不同種類物體的抓取預測結(jié)果
由第3節(jié)中提到的五參數(shù)法可以計算出以上抓取預測矩形框的中心點位置坐標(x,y)和抓取矩形相對于物體水平軸的角度θ。由于實際最佳抓取位置通常位于物體的中心軸線上,本文定義抓取預測中心點的位置與實際抓取物體中心軸線的最短距離為抓取位置偏差。圖5所示的預測結(jié)果與實際最佳抓取位置和方向的偏差如表1所示。
表1 預測結(jié)果與實際最佳抓取位置和方向的偏差
由表1可得,對于不同的物體,采用Darknet-53深度學習算法預測得到的抓取位置偏差與實際最佳抓取位置平均偏差為1.10 mm,方向偏差為±(3°~5°),能夠滿足精度要求。
結(jié)合以上視覺識別算法,采用六自由度機械臂,開發(fā)的視覺機械臂物理樣機如圖6所示,并進行了實驗分析。
圖6 物理樣機實驗
實驗過程中,采用基于DarkNet-53的五參數(shù)法完成了目標位姿的檢測,檢測速度可以達到0.52 s/張,檢測準確率達到70%。與基于滑動窗口的抓取預測方法相比較,在檢測準確率相當?shù)那闆r下,每個物體的檢測速度提高1.3 s。與七參數(shù)法相比較,檢測準確率提高了10%。實驗結(jié)果表明,本次研究的視覺機械臂的目標識別和抓取兼顧了速度和精度兩個關(guān)鍵指標,該方法有效。
利用深度學習的方法,進行了視覺機械臂的目標識別與抓取預測研究,并搭建了系統(tǒng)硬件平臺,完成了實驗研究和數(shù)據(jù)分析。研究結(jié)果表明,使用深度學習方法可以有效實現(xiàn)對目標物體進行識別檢測,預測機械臂的抓取位姿,實驗數(shù)據(jù)說明本研究方法提高了目標物體的標定和抓取效率。后續(xù)工作將根據(jù)實際抓取成功率對算法以及操作流程進行優(yōu)化。