陳鑫昊 張 鎮 高軼晨 石 建 李佳童
(北京印刷學院,北京 102600)
目前絕大多數工業機器人是依靠示教再現的方式在固定的位置完成抓取和放置作業的,如果環境或工件發生變化,抓取作業將會失敗[1]。將視覺技術與工業機器人相結合,可極大提高機器人的智能化水平。解決抓取任務的前提是目標檢測,目前基于深度學習的目標檢測算法主要分為雙階段檢測算法和單階段檢測算法[2]。雙階段檢測算法是以R-CNN系列為代表的基于候選區域的目標檢測算法;單階段檢測算法是以YOLO、SSD 為代表的基于回歸分析的目標檢測算法。其中YOLOv4[3]目標檢測算法在速度和精度上取得了較好的平衡,可以滿足視覺工業機器人目標檢測高精度、實時性的要求。
該文以深度可分離卷積替換YOLOv4 特征提取部分及中間層的標準卷積,來實現機器人的目標快速識別;采用D-YOLOv4-grasp 網絡進行特征提取,并通過五參數法實現目標的抓取位姿預測;通過坐標變換,將目標抓取坐標轉換到視覺工業機器人坐標系中,以控制機器人完成抓取任務。
視覺工業機器人目標識別與抓取系統主要由圖像采集、計算機處理和機械臂運動控制3 個部分組成,圖像采集部分通過相機采集目標圖像,計算機處理部分負責識別目標并對目標進行抓取預測,機械臂運動控制部分負責機械臂運動的路徑規劃并控制機械臂執行抓取目標的任務。系統總體組成如圖1 所示。
圖1 識別與抓取系統總體組成
該文研究的視覺工業機器人目標識別與抓取系統的工作流程如圖2 所示。首先,將相機采集的圖像進行預處理,輸入D-YOLOv4 目標檢測網絡和D-YOLOv4-grasp 抓取網絡,以實現目標識別和抓取框預測。其次,通過五參數法得到抓取目標的五參數坐標,同時利用坐標變換和標定法實現目標抓取坐標從像素坐標系,到相機坐標系,再到機器人坐標系之間的轉換。最后,機械臂運動控制部分根據所得到的目標位姿信息在ROS 平臺中進行機械臂的逆運動學解算和路徑規劃,得出機械臂各個關節轉動角度及運動距離,并將所得到的運動指令通過Socket 通信傳輸給機械臂控制器,來控制末端機械爪實現抓取作業,同時控制器實時反饋機械臂在空間中的位姿,最終實現整個系統的識別與抓取。
圖2 系統工作流程圖
YOLO(You Only Look Once)的核心思想是將目標檢測問題轉變為一個回歸問題,將整張圖像作為網絡的輸入,通過一個神經網絡直接得到目標邊界框的位置與所屬類別。YOLOv4 網絡是由CSPNet 和Darknet-53 網絡組合而成的CSPDarknet-53 特征提取網絡、空間金字塔池化模塊(Spatial Pyramid Poling,SPP)和路徑聚合網絡(Path Aggregation Network,PANet)組合而成的中間層部分、YOLOv3 的Head部分所組成。該文主要對YOLOv4 的骨干網絡、PANet 網絡結構進行了改進。針對骨干網絡CSPDarknet-53,將最開始的3×3標準卷積層中的第一次3×3標準卷積層均替換成深度可分離卷積層。針對PANet,將所有標準卷積層均替換為深度可分離卷積層。記改進后的YOLOv4 算法為D-YOLOv4。和標準卷積操作相比,深度可分離卷積可以降低參數量,提高運行速度。
使用COCO數據集對原YOLOv4網絡與改進的D-YOLOv4網絡進行訓練測試,得到的性能對比見表1。可以看出改進的D-YOLOv4 網絡的參數量是原網絡的39.05%,檢測速度提高了4.6f/s,雖然mAP 減少了1.5%,但是可以滿足試驗實時性的需求,精度也在可接受范圍之內,改進的D-YOLOv4 算法網絡可以滿足該文試驗要求。
表1 不同模型性能比較
對于目標抓取預測,該文采用端到端的卷積神經網絡模型,與檢測識別類似,通過訓練抓取網絡模型來實現圖像輸入網絡后直接輸出預測抓取位姿。物體的位姿由矩形框的位置和方向表示,該文使用的是五維參數表示法[4],即G=(x,y,w,h,θ),其中包括預測抓取框中心點(x,y)、抓取框寬度和高度(w,y)以及抓取角度θ。其評價指標通常為預測值與真實值之間的差別。該文抓取預測網絡結構如圖3 所示,將改進的D-YOLOv4 網絡中的D-CSPDarknet-53 作為特征提取結構。在D-CSPDarknet-53 進行特征提取之后進行SPP 模塊的最大池化操作,增強感受野并輸出融合的特征層。最后通過D-PANet2 模塊的2 次上采樣輸出進行抓取預測的特征圖。記構建的目標抓取預測網絡為D-YOLOv4-grasp。
圖3 D-YOLOv4-grasp 網絡結構
圖3 中的D-CSPDarknet-53 是抓取網絡的特征提取部分,SPP 是池化層模塊,D-PANet2 是中間層部分的路徑聚合網絡,DConvBNMish、DConvBNLeaky 是指改進后的深度可分離卷積層。假設以大小為608×608×3 的RGB 圖像為輸入,經過D-YOLOv4-grasp 抓取網絡生成一個維度為76×76×128的特征圖,再通過預測模塊輸出預測抓取框,最后通過坐標回歸輸出抓取坐標。
為了提高網絡普適性和調節網絡權重,可以采用遷移學習的方法,先利用開源數據集對D-YOLOv4-grasp 特征提取部分進行預訓練,得到預訓練的權重,再在Cornell grasp 抓取數據集中進行訓練。將訓練數據集中抓取框的4 個頂點坐標通過五參數表示法轉化成抓取數據集中的真實值(X0,Y0,H0,W0,θ0)。五參數表示結果如圖4 所示。
圖4 五參數抓取矩形在圖像中的描述
圖4 中,(X0,Y0)為抓取物體中心在平面坐標系的橫、縱坐標,(H0,W0)為抓取時機械臂末端執行器的開合長度與寬度,θ0為執行器與水平的夾角,[(x1,y1),(x2,y2),(x3,y3),(x4,y4)]為抓取矩形框的4 個頂點坐標。根據圖4,(X0,Y0,H0,W0,θ0)的計算如公式(1)所示。
式中:X0為物體中心橫坐標;Y0為物體中心縱坐標;H0為末端執行器的最大開合長度;W0為末端執行器的寬度;θ0為執行器與水平方向的夾角;[(x1,y1),(x2,y2),(x3,y3),(x4,y4)]為抓取矩形框的4 個頂點坐標。
根據公式(1)可知,為了避免出現預測框與真實框重合的情況,需要將角度值限制在-80°~80°,也可避免W0絕對豎直情況的出現。該文采集的數據集不帶深度信息,在標注過程中將可成功抓取的矩形框記為正樣本,不能成功抓取的矩形框記為負樣本,這些可抓取、不可抓取的標記會受人類經驗的影響,因此樣本越多越好。
網絡的訓練過程,即權重的更新過程主要通過反向傳播實現。要進行反向傳播和優化,就要定義網絡的損失函數,并通過最小化損失函數找到最優解。該文將均方差(MSE)作為損失函數,隨機梯度下降法(SGD)作為優化器。損失函數的定義如公式(2)所示。
式中:Lgp_reg為損失函數;為坐標預測值;Ci為坐標真實值為角度預測值;θi為角度真實值;λ為角度加權值,該文取為10;N為樣本批量。
抓取網絡訓練采用遷移學習的方法,先將D-YOLOv4-grasp 模型在公開數據集PASCAL VOC2007 和COCO 上進行預訓練,只訓練網絡模型前面的特征提取部分。在預訓練階段,首先訓練20 個epoch,初始學習率設為0.001,然后訓練50 個epoch,學習率設置為0.0001,最后完成預訓練。在抓取訓練階段,將預訓練得到的權重參數作為初始值,同時開放網絡所有層,使用Cornell grasp 抓取數據集進行微調訓練,首先訓練20 個epoch,學習率設置為0.001,然后訓練50 個epoch,學習率設置為0.0001 并保持不變,最后完成抓取網絡模型的訓練。
試驗物理樣機由D-YOLOv4 目標檢測算法、D-YOLOv4-grasp 抓取網絡、機械臂及其控制系統,如圖5 所示。
圖5 試驗物理樣機
試驗測試表明,該文研究的D-YOLOv4 目標檢測算法的檢測速度在試驗條件下可以達到0.23s,滿足實時性要求。構建的D-YOLOv4-grasp 抓取網絡可以實現抓取預測,部分正確抓取預測結果如圖6 所示。從圖6 可以看出,無論是規則的物體(小盒子、紙巾包、噴霧瓶)還是不規則的物體(手表、牙膏、剃須刀、梳子、牙刷、護手霜),該文提出的D-YOLOv4-grasp 網絡都可以較好地實現對抓取框的預測,然后通過五參數法就可以計算出抓取框的中心坐標(x,y)和抓取角度θ,再控制機械臂完成抓取。
圖6 部分正確抓取預測結果
無論是規則物體,還是不規則物體,實際最佳抓取中心點位置通常都位于物體的中心軸線上,因此該文將抓取預測中心點的位置與實際抓取物體的中心軸線的最短距離定義為抓取位置偏差,將抓取預測角度與實際抓取物體角度的差值定義為抓取角度偏差。圖6 所示的抓取預測結果與實際最佳抓取位置和角度的偏差見表2。
表2 抓取預測與實際抓取偏差表
根據表2 可知,對不同物體,D-YOLOv4-grasp 網絡預測得到的結果與實際最佳抓取位置的平均位置偏差為0.94mm,平均角度偏差為3.78°,可以滿足精度要求。
該文改進了YOLOv4 算法,以深度可分離卷積替換YOLOv4 特征提取部分及中間層的標準卷積,降低了參數量,提高了網絡速度,實現了視覺工業機器人的目標快速檢測。然后構建了D-YOLOv4-grasp 抓取預測網絡,并通過試驗研究和數據分析證明該網絡可以實現目標抓取框預測。最后搭建了視覺工業機器人目標識別與抓取系統試驗平臺,采用該文提出的D-YOLOv4 目標檢測算法以及D-YOLOv4-grasp 抓取預測網絡,可以實現視覺工業機器人的目標快速識別與抓取。