李雨龍 陳 松 李 鑫 李昌龍 趙耀耀 李 順
(①遼寧科技大學(xué)機(jī)械工程與自動(dòng)化學(xué)院,遼寧 鞍山 114051;②遼寧科技大學(xué)電子與信息工程學(xué)院,遼寧 鞍山 114051)
管件作為工業(yè)中常見的零件種類之一,應(yīng)用十分廣泛,實(shí)現(xiàn)對(duì)管件的智能化操作意義重大。目前實(shí)現(xiàn)機(jī)器人抓取主要是借助人工和示教器進(jìn)行固定位姿的抓取[1],不能適應(yīng)管件隨機(jī)擺放的情況。近年來也出現(xiàn)了很多傳統(tǒng)視覺引導(dǎo)下的抓取策略,如模板匹配[2-3]、邊緣檢測(cè)[4-5]等,但傳統(tǒng)視覺在非結(jié)構(gòu)環(huán)境下表現(xiàn)不理想,可移植性差、魯棒性不強(qiáng)。隨著國(guó)家對(duì)智能化要求的提高,將基于深度學(xué)習(xí)的識(shí)別及位姿估計(jì)融入到機(jī)器人的抓取中逐漸成為主流。
基于深度學(xué)習(xí)的位姿估計(jì)有很大的優(yōu)勢(shì),通過卷積操作提取圖像特征,網(wǎng)絡(luò)能夠自主學(xué)習(xí)物體的語義信息,估計(jì)6D位姿。如先用單發(fā)多包圍框檢測(cè)器(single shot multibox detector, SSD)檢測(cè)出目標(biāo)的2D位置,再映射到點(diǎn)云圖上提取目標(biāo)點(diǎn)云,最后采用迭代最近點(diǎn)(iterative closest point, ICP)算法估計(jì)鋼板件的位姿[6]。在工業(yè)環(huán)境中,李少飛等[7]基于深度學(xué)習(xí)估計(jì)零件的位姿,首先把采集到的三維點(diǎn)云圖轉(zhuǎn)換為二維深度和法線特征圖,其次把前者送入殘差網(wǎng)絡(luò)Resnet50[8]提取深度特征,后者送入一個(gè)小卷積網(wǎng)絡(luò)提取目標(biāo)點(diǎn)云方向信息,依靠深度學(xué)習(xí)成熟的平面處理能力去處理點(diǎn)云數(shù)據(jù),最后由法線圖輸出目標(biāo)的空間坐標(biāo)、深度圖輸出目標(biāo)的姿態(tài)四元數(shù)組成最終的位姿。眭海剛等[9]基于實(shí)例分割算法,配合圖像多尺度分割進(jìn)行震后建筑物立面損毀檢測(cè),首先在Mask R-CNN實(shí)例分割算法中引入注意力機(jī)制,使模型在訓(xùn)練和預(yù)測(cè)的過程中更好地聚焦于最重要的特征通道和空間位置,其次針對(duì)待檢影像采用多尺度分割算法進(jìn)行分割,最后融合兩次分割結(jié)果作為最終的建筑物立面損毀檢測(cè)結(jié)果。王太勇等[10]首先對(duì)RGB圖像進(jìn)行語義識(shí)別,將每一個(gè)已知類別的對(duì)象掩膜應(yīng)用到深度圖中,按照掩膜的邊界框完成對(duì)彩色圖和深度圖的語義分割;其次在獲得的點(diǎn)云數(shù)據(jù)中采用最遠(yuǎn)點(diǎn)采樣(farthest point sampling,FPS)算法獲取關(guān)鍵點(diǎn),映射到彩色圖像與深度圖像中進(jìn)行關(guān)鍵點(diǎn)特征匹配。但以上方法推理時(shí)間相對(duì)較長(zhǎng),不能滿足實(shí)時(shí)性要求,且對(duì)于估計(jì)管件這種具有對(duì)稱性、低紋理甚至高反光的目標(biāo)效果不好。Tremblay J等[11]提出的DOPE框架在檢測(cè)極端光照中的物體時(shí)具有較強(qiáng)的魯棒性,網(wǎng)絡(luò)不直接預(yù)測(cè)位姿,而是先預(yù)測(cè)2D關(guān)鍵點(diǎn),再經(jīng)過EPnP算法回歸到三維空間。針對(duì)管件的旋轉(zhuǎn)對(duì)稱性和實(shí)時(shí)估計(jì)問題,提出了改進(jìn)的 DOPE框架,面對(duì)管件公開數(shù)據(jù)集少、三維標(biāo)簽難以標(biāo)注、人工標(biāo)注誤差大和標(biāo)注任務(wù)繁重的情況,利用合成數(shù)據(jù)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
首先,介紹了合成數(shù)據(jù)的生成過程,包括物體三維模型的制作以及生成訓(xùn)練集和測(cè)試集圖片、標(biāo)簽;其次,介紹對(duì)網(wǎng)絡(luò)的幾點(diǎn)改進(jìn):①優(yōu)化損失函數(shù),DOPE網(wǎng)絡(luò)的損失函數(shù)估計(jì)管件對(duì)象時(shí)有較大誤差,原因是對(duì)稱性導(dǎo)致兩個(gè)相同的位姿計(jì)算出不同的損失值,給網(wǎng)絡(luò)帶來不必要的懲罰。改進(jìn)后采用預(yù)測(cè)點(diǎn)匹配最近真實(shí)點(diǎn)的方法設(shè)計(jì)損失函數(shù),有效提高了位姿估計(jì)精度。②優(yōu)化特征提取網(wǎng)絡(luò),采用Resnet18提取特征,降低了參數(shù)量(paramters)和 浮 點(diǎn) 計(jì) 算 量(floating point operations,FLOPs) ,加快了網(wǎng)絡(luò)的推理速度。③設(shè)計(jì)對(duì)比試驗(yàn),以AUC作為評(píng)價(jià)指標(biāo),驗(yàn)證了改進(jìn)后的網(wǎng)絡(luò)相較于原網(wǎng)絡(luò)在估計(jì)管件物體時(shí)具有較高的精度和較快的推理速度。
合成數(shù)據(jù)的方式可以獲得大批量標(biāo)注準(zhǔn)確的數(shù)據(jù)。采用英偉達(dá)深度學(xué)習(xí)數(shù)據(jù)集合成器(NVIDIA deep learning dataset synthesizer,NDDS)的方式合成數(shù)據(jù)集,平均每秒可以生成約80張圖片及標(biāo)注。
選取了工業(yè)中常見的兩類管件進(jìn)行訓(xùn)練:①材質(zhì) H62 黃銅直管。黃銅管屬于無縫有色金屬管,由于其熔點(diǎn)高、質(zhì)地牢固、不易腐蝕、耐高溫高壓且質(zhì)地輕盈,常被用在供熱、供冷管道上以及海洋工業(yè)中用到的各種熱交換器和冷凝器。②表面涂鉻的活塞桿?;钊麠U作為發(fā)動(dòng)機(jī)和氣壓液壓傳動(dòng)系統(tǒng)中常見的零件,要求表面粗糙度越小越好,對(duì)其進(jìn)行正確的位姿估計(jì)有利于實(shí)現(xiàn)智能化的機(jī)械臂抓取拋光。
利用 blender 建模軟件按照真實(shí)物理尺寸,分別建立兩個(gè)物體的三維模型,并且還原表面臟跡、凹坑等細(xì)節(jié),盡量貼合實(shí)物。以 H62 黃銅管為例,其三維模型如圖1 所示。
圖1 H62 黃銅管三維模型
參考文獻(xiàn)[12]的制作方式,分別制作了域隨機(jī)化(domain randomization)和真實(shí)照片級(jí)(photorealistic images)數(shù)據(jù)集。前者主要的特點(diǎn)是圖片背景來自于實(shí)驗(yàn)室環(huán)境或單色圖片,且隨機(jī)變換,與實(shí)際風(fēng)格差異較大,作用是迫使網(wǎng)絡(luò)學(xué)習(xí)訓(xùn)練物體的本質(zhì)特征,使實(shí)際驗(yàn)證時(shí)有較高的魯棒性,此外添加了隨機(jī)光照和隨機(jī)干擾物等組件,以豐富訓(xùn)練數(shù)據(jù)使網(wǎng)絡(luò)更加健壯。數(shù)據(jù)集圖片及標(biāo)簽可視化如圖2 所示。
圖2 域隨機(jī)化數(shù)據(jù)集及其標(biāo)簽可視化
真實(shí)照片級(jí)數(shù)據(jù)來自于兩個(gè)虛擬場(chǎng)景,為了擬合現(xiàn)實(shí),分別把訓(xùn)練物體添加到機(jī)器人生產(chǎn)車間和車輛裝配生產(chǎn)線。每個(gè)場(chǎng)景依據(jù)光照、陰影等特征選取3個(gè)不同的采樣點(diǎn),盡量覆蓋整個(gè)場(chǎng)景特征,主要作用是最大限度地還原真實(shí)的物理環(huán)境,包括訓(xùn)練物體的影子和反光等屬性,數(shù)據(jù)集圖片如圖3所示。
圖3 真實(shí)照片級(jí)數(shù)據(jù)集
實(shí)時(shí)估計(jì)物體位姿一直是機(jī)器視覺的研究重點(diǎn)。DOPE框架基于單目可以僅從RGB圖像中估計(jì)6D位姿,具有較快的推理速度。整個(gè)網(wǎng)絡(luò)分為三個(gè)部分:首先,由Vgg19[13]前10層提取目標(biāo)特征;其次,把特征圖輸入兩個(gè)分支-置信圖(beliefmaps)和向量場(chǎng)(vectorfields),生成熱度圖(heatmap);最后,對(duì)熱度圖進(jìn)行尋峰、貪心算法匹配后,采用EPnP算法估計(jì)6D位姿,結(jié)構(gòu)如圖4 所示。但管件具有旋轉(zhuǎn)對(duì)稱性(symmetric),繞軸旋轉(zhuǎn)后產(chǎn)生相同的觀測(cè)結(jié)果,不可能唯一地估計(jì)圖2中黃銅管的方向。針對(duì)此問題優(yōu)化了網(wǎng)絡(luò)的損失函數(shù),同時(shí)兼顧推理時(shí)間,優(yōu)化了網(wǎng)絡(luò)的提取特征模塊,分析了基于改進(jìn)DOPE框架估計(jì)管件位姿的有效性。
圖4 DOPE 網(wǎng)絡(luò)結(jié)構(gòu)
損失函數(shù)用來進(jìn)行誤差的反向傳播,是一個(gè)網(wǎng)絡(luò)的重要參數(shù)之一。DOPE 網(wǎng)絡(luò)的損失函數(shù)由兩方面組成,一是置信圖輸出的預(yù)測(cè)值與標(biāo)簽中的真值之差,如式 (1) 所示;二是向量場(chǎng)輸出的預(yù)測(cè)向量與標(biāo)簽中的真實(shí)向量之差,如式 (2) 所示;最終的損失函數(shù)由兩個(gè)差值相加而成,如式(3) 所示。
式中: M 是 關(guān)鍵點(diǎn)的集合;Pd是預(yù)測(cè)的置信圖;Pt是真實(shí)的置信圖;Pdu是預(yù)測(cè)向量場(chǎng)u方向坐標(biāo)值;Ptu是真實(shí)向量場(chǎng)u方向坐標(biāo)值;Ptv是真實(shí)向量場(chǎng)v方向坐標(biāo)值;Pdv是預(yù)測(cè)向量場(chǎng)v方向坐標(biāo)值;L是最終損失值。
對(duì)于旋轉(zhuǎn)對(duì)稱物體,采用此函數(shù)會(huì)訓(xùn)練出來一個(gè)較差的網(wǎng)絡(luò),因?yàn)榫W(wǎng)絡(luò)收到一個(gè)前后矛盾的損失信號(hào)。例如,當(dāng)正確估計(jì)一個(gè)對(duì)稱目標(biāo)時(shí),在物體方向上會(huì)產(chǎn)生一個(gè)較高的損失,進(jìn)而不必要的懲罰網(wǎng)絡(luò),給出不一致的訓(xùn)練信號(hào)。采用文獻(xiàn)[14]提出來的形狀匹配損失 (shape match-loss, SLoss),如式(4)所示,函數(shù)計(jì)算預(yù)測(cè)點(diǎn)與最近真實(shí)點(diǎn)的三維距離,當(dāng)兩個(gè)目標(biāo)相互匹配時(shí),SLoss被最小化。
式中:m是關(guān)鍵點(diǎn)的個(gè)數(shù);是估計(jì)旋轉(zhuǎn)矩陣;R(q)是真實(shí)旋轉(zhuǎn)矩陣。
深度學(xué)習(xí)中,卷積網(wǎng)絡(luò)逐層整合不同層級(jí)的特征,伴隨著模型前向推演,獲得了更加抽象、更多層級(jí)、更加豐富的圖像特征,進(jìn)而獲得了更好的模型性能,因此傾向于使用更深層次的網(wǎng)絡(luò)結(jié)構(gòu)。
Resnet 網(wǎng)絡(luò)相比較 Vgg 擁有更深的層數(shù)和更少的參數(shù)量,分別采用 Resnet18 前 13 層、Resnet34前 27 層和 Vgg19 前 10 層作為網(wǎng)絡(luò)的提取特征模塊訓(xùn)練網(wǎng)絡(luò),對(duì)比精度和推理速度,并對(duì)試驗(yàn)結(jié)果進(jìn)行分析。Resnet18 前 13 層網(wǎng)絡(luò)如表1 所示。
表1 Resnet18前13層網(wǎng)絡(luò)結(jié)構(gòu)
試驗(yàn)環(huán)境采用NVIDIA Tesla P100,顯存16 GB,內(nèi)存 64 GB。Ubuntu18.04,預(yù)裝 Pytorch1.6、CUDA10.2、cuDNN7.6、Python3.7。試驗(yàn)所用到的訓(xùn)練集和測(cè)試集均采用合成數(shù)據(jù),Vgg19、Resnet18、Resnet34均采用Imagenet預(yù)訓(xùn)練模型,添加高斯噪聲,初始學(xué)習(xí)率0.000 1,采用Adam優(yōu)化器。
對(duì)于6D姿態(tài)估計(jì),評(píng)價(jià)網(wǎng)絡(luò)精度時(shí)常常計(jì)算估計(jì)點(diǎn)與對(duì)應(yīng)真實(shí)點(diǎn)之間的平均三維距離(ADD),如式(5)所示。但對(duì)于旋轉(zhuǎn)對(duì)稱物體,點(diǎn)對(duì)之間的匹配是模糊的。因此,需要計(jì)算估計(jì)點(diǎn)與最近真實(shí)點(diǎn)之間的平均三維距離(ADD-S),如式(6)所示。
式中:R、T為真實(shí)旋轉(zhuǎn)、平移矩陣;為估計(jì)旋轉(zhuǎn)、平移矩陣。
分別采用原DOPE網(wǎng)絡(luò)的損失函數(shù)(DOPELoss)和改進(jìn)后的損失函數(shù)(SLoss) 訓(xùn)練網(wǎng)絡(luò),以AUC作為評(píng)價(jià)指標(biāo),其試驗(yàn)結(jié)果如圖5所示。改進(jìn)后的損失函數(shù)在估計(jì)正確時(shí)計(jì)算能夠得到低損失值,網(wǎng)絡(luò)進(jìn)行誤差反向傳播時(shí)能更準(zhǔn)確的更新權(quán)重,并且優(yōu)化了三維距離的計(jì)算方式,保證在同一個(gè)閾值下改進(jìn)的損失函數(shù)有更高的通過率,H62黃銅管和活塞桿的AUC值分別增加了17%和25%。
圖5 采用不同損失函數(shù)檢測(cè)時(shí)的AUC
浮點(diǎn)計(jì)算量(FLOPs)和參數(shù)量(Params)是衡量網(wǎng)絡(luò)性能的重要指標(biāo)。浮點(diǎn)計(jì)算量低,網(wǎng)絡(luò)擁有更快的推理速度。參數(shù)量少、空間復(fù)雜度低,網(wǎng)絡(luò)更容易部署到移動(dòng)端。分別采用Vgg19、Resnet18、Resnet34作為提取特征模塊訓(xùn)練網(wǎng)絡(luò),試驗(yàn)結(jié)果如表2所示。Resnet18表現(xiàn)最好,所以改進(jìn)DOPE采用Resnet18提取特征,在AUC變化不大的情況下,其擁有更少的參數(shù)量(46.00 M)和更低的浮點(diǎn)計(jì)算量(124.90 G),以及最快的推理速度(203 ms)。
表2 不同特征提取模塊試驗(yàn)結(jié)果
DOPE網(wǎng)絡(luò)在提取特征后使用兩個(gè)分支生成置信圖和向量場(chǎng)熱度圖,每個(gè)分支有6個(gè)階段,其中的卷積操作占用了大部分的推理時(shí)間,因此有必要對(duì)兩個(gè)分支應(yīng)該采用的階段數(shù)進(jìn)行討論。如表3所示,為Resnet18下使用2個(gè)、4個(gè)和6個(gè)分支階段的AUC等指標(biāo)對(duì)比。僅用2個(gè)階段生成熱度圖時(shí),參數(shù)量和浮點(diǎn)計(jì)算量最低,擁有最快的推理速度(102 ms),所以改進(jìn)DOPE網(wǎng)絡(luò)使用2個(gè)階段生成熱度圖。
表3 采用resnet18提取特征時(shí)不同階段數(shù)試驗(yàn)結(jié)果
最后,分別使用DOPE網(wǎng)絡(luò)和改進(jìn)DOPE網(wǎng)絡(luò)實(shí)時(shí)估計(jì)H62黃銅管6D位姿,如圖6所示,DOPE網(wǎng)絡(luò)在估計(jì)角點(diǎn)位置時(shí)有一定的偏差,可能會(huì)導(dǎo)致抓取失敗,改進(jìn)后不僅在精度上有一定的提升,而且大大加快了推理速度,有利于管件的實(shí)時(shí)估計(jì)及抓取。
圖6 實(shí)時(shí)姿態(tài)估計(jì)結(jié)果
(1)針對(duì)管件數(shù)據(jù)集少,并且三維標(biāo)注工作量大、存在標(biāo)注誤差的問題,采用合成數(shù)據(jù)訓(xùn)練網(wǎng)絡(luò),設(shè)計(jì)不同類型的數(shù)據(jù)集風(fēng)格擬合現(xiàn)實(shí)差距,有效解決了數(shù)據(jù)集不足的問題。
(2)對(duì)DOPE網(wǎng)絡(luò)提出兩點(diǎn)改進(jìn):①針對(duì)管件的旋轉(zhuǎn)對(duì)稱性優(yōu)化損失函數(shù),網(wǎng)絡(luò)的估計(jì)精度提高了17%;②針對(duì)Vgg19提取特征模塊復(fù)雜的情況,采用Resnet18提取管件特征,參數(shù)量和浮點(diǎn)計(jì)算量分別減少了9%和20%,有效減輕了網(wǎng)絡(luò)規(guī)模。
(3)探究了分支中不同階段數(shù)對(duì)網(wǎng)絡(luò)性能的影響,在估計(jì)精度變化不大的情況下,僅使用2個(gè)階段生成熱度圖有效加快了網(wǎng)絡(luò)的推理速度,檢測(cè)單張圖片僅需要102 ms。
綜上,改進(jìn)的DOPE網(wǎng)絡(luò)在估計(jì)管件6D位姿時(shí)有更高的精度和更快的推理速度,滿足機(jī)械臂抓取拋光的情況下實(shí)時(shí)估計(jì)管件位姿的要求。