邱 益, 張志浩, 梁 杰
(鄭州大學(xué)機械與動力工程學(xué)院,鄭州 450001)
機器人抓取技術(shù)是現(xiàn)代工業(yè)生產(chǎn)中重要的組成部分,廣泛應(yīng)用于物流、制造、服務(wù)、醫(yī)療等領(lǐng)域[1-2]。傳統(tǒng)的機器人抓取不能適應(yīng)待抓取目標無序、散亂的分布,將深度學(xué)習(xí)技術(shù)和現(xiàn)有機器人抓取技術(shù)相結(jié)合可解決上述不足[3]。隨著近些年人工智能技術(shù)的發(fā)展,越來越多的算法開始應(yīng)用于生產(chǎn)實踐中,例如目標檢測算法在自動駕駛中的應(yīng)用[4-6]。文獻[7]中采用Tensorflow開源框架實現(xiàn)了基于MobileNet SSD[8]的垃圾分揀實驗平臺,取得良好效果,但文獻僅介紹了如何復(fù)現(xiàn)過去成果。文獻[9]中以人機對弈為背景開發(fā)了工業(yè)機器人實驗教學(xué)平臺,該平臺采用的是傳統(tǒng)機器視覺技術(shù),有待進一步結(jié)合基于深度學(xué)習(xí)的新算法。
本實驗平臺以工業(yè)標準件抓取為研究背景,采用深度卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)了標準件識別、定位以及抓取姿態(tài)預(yù)測。該實驗平臺將算法理論和應(yīng)用結(jié)合,采用開源的神經(jīng)網(wǎng)絡(luò)框架實現(xiàn)算法,采用STM32配合步進滑臺完成硬件搭建,可用于機器人或人工智能的教育實踐,可將人工智能算法和工程實踐相結(jié)合,在實踐中鍛煉學(xué)生對于知識的理解與應(yīng)用[10-12]。
抓取平臺主要由單目工業(yè)攝像機、龍門式抓取平臺、搭載GTX1070顯卡的計算機、STM32單片機等組成。單目工業(yè)攝像機用于采集工作臺上待抓取零件的圖像信息以引導(dǎo)機械手準確抓??;三軸龍門式抓取平臺負責執(zhí)行抓取動作,抓取平臺的末端執(zhí)行器是兩指式氣動機械爪,實現(xiàn)物體的夾??;搭載GTX1070顯卡的計算機負責處理攝像機所采集到的圖像,通過運行目標檢測算法和抓取姿態(tài)預(yù)測算法來返回待抓取目標的類別、位置和機械手的抓取姿態(tài);STM32單片機負責將計算機運算的結(jié)果轉(zhuǎn)換為龍門式抓取平臺的動作指令來控制機械手完成對應(yīng)的抓取動作。抓取平臺的硬件設(shè)計架構(gòu)如圖1所示。
圖1 抓取平臺的硬件架構(gòu)
目標檢測技術(shù)作為機器視覺領(lǐng)域中基本的且極具挑戰(zhàn)性的研究方向,隨著神經(jīng)網(wǎng)絡(luò)的應(yīng)用,目標檢測技術(shù)在當今強大算力支撐下展現(xiàn)出令人驚艷的技術(shù)美學(xué)[13]。應(yīng)用深度卷積神經(jīng)網(wǎng)絡(luò)為計算子的目標檢測框架已經(jīng)能夠在保證檢測精度的同時做到實時檢測。雖然現(xiàn)有框架在通用數(shù)據(jù)集上展現(xiàn)出較優(yōu)的檢測性能,但是對于工業(yè)應(yīng)用領(lǐng)域仍然存在特殊場景下的短板,這表現(xiàn)在低紋理信息微小零件存在難以檢出的缺陷。
為提高現(xiàn)有框架在工業(yè)零件抓取應(yīng)用中的短板并盡可能地提高其檢測速度,本文綜合應(yīng)用以下4種技巧提高現(xiàn)有框架的性能:
(1)為降低卷積運算的參數(shù)量,將內(nèi)卷積作為基本運算子替代SSD目標檢測算法中原有的卷積運算,實現(xiàn)主干特征提取網(wǎng)絡(luò)的重構(gòu);
(2)為緩解小目標零件在淺層檢測時語義信息不足而深層檢測時特征信息丟失嚴重的矛盾,采用雙線性插值將高層特征融合于低層次特征后再作為有效特征層進行位置回歸和分類;
(3)為輕量化目標檢測框架并提高運算速度,在主干特征提取網(wǎng)絡(luò)引入Focus模塊并剪裁掉后3層卷積塊;
(4)為保證先驗框更加契合本項目的實際數(shù)據(jù)集,采用K-means聚類數(shù)據(jù)集,然后將聚類結(jié)果作為依據(jù)重新設(shè)計先驗框的分布。
優(yōu)化后的目標檢測模型網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。圖2中Focus模塊置于輸入張量和卷積塊之間,其目的是在不丟失輸入張量信息的前提下實現(xiàn)下采樣。該計算模塊的計算過程可以描述如下:首先對輸入三通道張量進行切片采樣,其采樣規(guī)則采用間隔采樣,即每隔1個像素進行1次采樣。用這樣的方式采樣出5個小的張量。然后再將采樣后的張量沿通道方向上拼接,拼接起來的圖片相對于原先的RGB三通道模式變成了12個通道,即最終得到了沒有信息丟失情況下的2倍下采樣特征圖。該模塊的計算過程描述如圖3所示。
圖2 目標檢測模型網(wǎng)絡(luò)結(jié)構(gòu)圖
圖3 Focus模塊計算圖
原版SSD目標檢測算法的主干特征提取網(wǎng)絡(luò)采用的是VGG16網(wǎng)絡(luò),該網(wǎng)絡(luò)存在參數(shù)量大且特征提取能力不強的缺點。為實現(xiàn)增效降參的目的,采用內(nèi)卷積替換掉原版中標準的卷積運算子并采用特征金字塔的設(shè)計思想,實現(xiàn)多層級特征圖的融合。主干特征提取網(wǎng)絡(luò)的結(jié)構(gòu)如圖4所示。
圖4 主干特征提取網(wǎng)絡(luò)的結(jié)構(gòu)圖
內(nèi)卷積是對現(xiàn)有標準卷積運算的重構(gòu),內(nèi)卷積與標準卷積所不同的是:它實現(xiàn)了卷積核在通道上的共享,即實現(xiàn)了通道不變性和空間特異性[13]。采用該計算子可以在保證特征提取性能的同時大幅減少卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)冗余,進而實現(xiàn)目標檢測框架的輕量化。內(nèi)卷積可表示為:
式中:H為內(nèi)卷積計算子的卷積核;X為輸入張量;k代表后續(xù)卷積核大?。籊代表involution操作的分組數(shù);C為特征圖的通道數(shù)。
內(nèi)卷積運算的卷積核并非固定,而是依賴于輸入張量。內(nèi)卷積計算子的卷積核生成公式為
式中:W0、W1代表對輸入張量的一系列線性變換,這里采用1×1的卷積核實現(xiàn)對輸入通道的縮放;函數(shù)β為批標準化和非線性激活。內(nèi)卷積的運算過程見圖5。
圖5 內(nèi)卷積計算圖
由于小目標物體在經(jīng)過多次卷積和下采樣后會丟失其信息,特別是對本數(shù)據(jù)集中的小沉頭螺釘,經(jīng)過多次下采樣后僅剩幾個像素。很自然的想法是,將淺層的特征作為有效特征圖進行檢測,但是淺層特征圖的語義信息不足,難以滿足檢測要求。為緩解以上矛盾,設(shè)計了如下計算方法:
式中:Xi為有效特征層,從淺層到高層將主干網(wǎng)絡(luò)的3處節(jié)點作為有效特征層;函數(shù)U為雙線性插值運算;函數(shù)P為最大池化運算,以上2個函數(shù)其目是調(diào)節(jié)輸出特征圖的大小使得兩層特征圖可進行張量拼接;函數(shù)C為卷積核大小為1×1的卷積運算;函數(shù)B為類別預(yù)測計算和包圍框回歸運算,均采用標準卷積運算實現(xiàn)。
由于目標檢測算法僅能夠識別目標物體類別和回歸最小包圍框,針對抓取的工況要求,目標物體相對于機械手的角度對抓取成功率的影響也是巨大的,特別是針對細長類零件,機械手的抓取角度異常重要。以細長類零件螺栓為例,可將其在工作臺上的姿態(tài)離散的分為4個類別,分類情況如圖6所示。由于是離散的真值姿態(tài)空間,所以可將姿態(tài)估計問題轉(zhuǎn)化為圖像分類問題,設(shè)計如圖7所示的卷積神經(jīng)網(wǎng)絡(luò)對工作臺中的零件進行姿態(tài)預(yù)測。
圖6 螺栓姿態(tài)分類
圖7 標準件姿態(tài)預(yù)測網(wǎng)絡(luò)結(jié)構(gòu)圖
該姿態(tài)預(yù)測神經(jīng)網(wǎng)絡(luò)采用在內(nèi)卷積運算子和激活函數(shù)之間布置批歸一化,以保證每個卷積塊的運算結(jié)果處于激活函數(shù)的敏感區(qū),避免由于激活函數(shù)飽和而出現(xiàn)神經(jīng)網(wǎng)絡(luò)模型在訓(xùn)練過程中難以收斂的問題[14]:
為保證該姿態(tài)預(yù)測神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效果,采用交叉熵損失函數(shù)作為該神經(jīng)網(wǎng)絡(luò)訓(xùn)練的損失函數(shù)。由于該標準件數(shù)據(jù)集中零件的姿態(tài)可以離散地分為4種,將這4種的姿態(tài)進行獨熱編碼后即可引入交叉熵損失,即
式中:k為分類的種類數(shù);li為樣本獨熱編碼標簽;yi為神經(jīng)網(wǎng)絡(luò)前向傳播運算結(jié)果。
選擇10個不同類別常見標準件為樣本,拍攝其在工作臺上不同姿態(tài)、位置上的圖片進行標注形成訓(xùn)練數(shù)據(jù)集。訓(xùn)練樣本集信息匯總見表1。
表1 訓(xùn)練樣本集信息匯總表
訓(xùn)練平臺采用GTX1070顯卡,經(jīng)過500輪的訓(xùn)練即可達到較為理想的識別效果。訓(xùn)練結(jié)果和識別效果如圖8、9所示。
圖8 訓(xùn)練樣本集信息匯總
圖9 目標識別效果
由于樣本中長寬比較小的零件的姿態(tài)并不會對抓取造成影響,所以僅需將樣本集中具有細長特性的標準件取出制作樣本集進行抓取姿態(tài)估計即可,訓(xùn)練樣本集信息匯總見表2。
表2 實驗A測量數(shù)據(jù)
本模型采用Tensorflow2神經(jīng)網(wǎng)絡(luò)庫完成搭建,硬件環(huán)境為AMD 3500X處理器和GTX 1070顯卡。訓(xùn)練優(yōu)化方法采用AdaBound優(yōu)化器。訓(xùn)練迭代次數(shù)為600次,批處理參數(shù)設(shè)置為100,初始學(xué)習(xí)率設(shè)置為0.001。該模型的評價方法采用準確率來評價。
訓(xùn)練的損失函數(shù)和驗證集準確率變化曲線如圖10所示。
圖10 損失函數(shù)和驗證集的準確率變化曲線
本工業(yè)零件抓取實驗系統(tǒng)采用三軸龍門式機械手,抓取場景為標準件散亂、不堆疊地分布于平面工作臺上。抓取實驗平臺采用眼在手上的布置方式,通過標準標定板標定出相機內(nèi)參以及像素坐標和機械手坐標之間的映射關(guān)系后即可應(yīng)用于抓取。抓取實驗平臺實物如圖11所示。
圖11 抓取實驗平臺實物
每次將10個不同類別的工業(yè)零件混合后隨機散亂地丟放于平面工作臺上,然后機械手回零點拍照并完成識別,最后通過機械手將零件抓取到對應(yīng)的物料框中。重復(fù)上述實驗過程并記錄抓取、分揀結(jié)果,將實驗結(jié)果匯總于表3(實驗次數(shù)為100)。根據(jù)匯總結(jié)果可知,對于長寬比較小的零件,影響抓取成功率的主要因素是目標檢測算法能否識別出其類別和位置。對于細長類零件,除以上因素外還會受到姿態(tài)預(yù)測是否正確的影響。另外,以上10分類標準件中,自攻螺釘和沉頭螺釘?shù)淖R別率相對較低,考慮是由于自攻螺釘長寬比較大和沉頭螺釘過小的原因所致。
表3 零件抓取實驗結(jié)果匯總表
本文基于深度學(xué)習(xí)的目標檢測技術(shù)和工業(yè)零件抓取相結(jié)合,實現(xiàn)了工業(yè)生產(chǎn)的智能化分揀,改進了傳統(tǒng)工業(yè)機械臂不能自動識別、定位目標物體的不足。該工業(yè)零件抓取實驗系統(tǒng)應(yīng)用了基于內(nèi)卷積的輕量化特征提取網(wǎng)絡(luò)、基于上采樣和特征圖級聯(lián)結(jié)構(gòu)的特征融合機制以及根據(jù)K-means聚類樣本來重設(shè)先驗框等技巧。本文的算法采用TensorFlow深度學(xué)習(xí)框架實現(xiàn)。抓取平臺的硬件部分由單目工業(yè)攝像機、三軸龍門機械臂、搭載GTX1070顯卡的計算機和STM32單片機等部分構(gòu)成。該工業(yè)零件抓取實驗系統(tǒng)將傳統(tǒng)嵌入式控制技術(shù)和人工智能技術(shù)有機結(jié)合,實現(xiàn)了現(xiàn)有工業(yè)生產(chǎn)線抓取的智能化。同時,本實驗系統(tǒng)所采用的算法框架完全開源,可用于研究人員視覺算法驗證和人工智能教學(xué)。