孫錚 ,姜濤 ,2
(1.長春理工大學 機電工程學院,長春 130022;2.長春理工大學 重慶研究院,重慶 401135)
工業(yè)領域的快速發(fā)展對生產自動化水平提出了更高的要求。作為視覺SLAM領域與Bin Picking領域的基礎與核心,復雜工業(yè)應用場景中多目標物體精確定位與姿態(tài)估計問題得到了學術界的極大關注。
以LineMode[1]為代表的基于模板匹配的位姿估計方法由于模型投影數據庫大小的限制,在應對遮擋等復雜場景時準確度較低。而基于深度學習理論的位姿檢測方法由于其在光照變化以及場景混疊下的優(yōu)異性能得以廣泛應用,這類方法依據輸入數據形式的不同分為:基于點云配準的位姿估計和基于RGB圖像匹配的位姿估計[2]?;邳c云配準的位姿估計方法依賴于所獲場景點云精度,在采集信息豐富的條件下可獲得較好的位姿估計結果。JOHNSON等人[3]提出利用3D點云空間分布進行特征描述進而進行位姿匹配的方法Spin Images,該方法將定區(qū)域點云轉換為2D的旋轉圖像,度量匹配場景與模型中的2D旋轉圖像相似性。WANG C[4]提出的DenseFusion方法通過特征融合的方法將RGB圖像與深度圖像進行了統(tǒng)一處理,利用二維信息增強每個三維點的信息,該方法在高度混亂的場景具有較高的運算速度。但是,基于點云匹配的位姿估計方法由于點云性質,難以對場景中存在嚴重遮擋的多目標物體產生良好的位姿評估結果,而基于RGB圖像匹配的位姿估計算法由于RGB圖像較小的數據處理量以及相較而言較為穩(wěn)定的信息表征能力在6Dof剛體位姿檢測領域有著較好的表現。RAD等人[5]提出的BB8算法通過兩次分割的方法預測對象3D邊界框角點對應的2D投影進而整體性的回歸3D姿態(tài),訓練過程中使用受限范圍內旋轉對象作為輸入圖片,巧妙地解決了“近似對稱”問題。相較于通過單視角圖片預測評估位姿,融合多視點信息進而評估物體位姿的方法對遮擋場景敏感性更低。SU等人[6]提出的MVCNN利用三維模型在環(huán)形12視角下的二維渲染圖融合提取三維形狀描述子實現對三維圖像的分類識別。
綜上所述,針對工業(yè)遮擋場景中物體位姿難識別問題,提出了一種基于關鍵點數量及分布的融合多視角位姿評估結果的多視角位姿檢測方法。通過相機與UR10機械臂組合所構建的手眼系統(tǒng)采集場景RGB圖像。利用機械臂的移動特性,在根據關鍵點分布生成的觀測位點組下對待檢測物體進行觀測,并融合位姿結果。經實驗驗證,在強遮擋場景下,多視角位姿檢測結果較單視角位姿檢測結果更加可靠。
圖1為提出的基于手眼系統(tǒng)的多視角位姿檢測方法,三維視覺測量系統(tǒng)有三個主要任務:(1)利用手眼系統(tǒng)獲取場景RGB信息,并基于像素投票理論采用深度學習的方式生成關鍵點假設;(2)根據關鍵點數量,選擇視角檢測模式,依據關鍵點分布選擇多視角觀測位點組,控制手眼系統(tǒng)移至觀測位點組拍攝當前幀;(3)利用PnP算法求解目標物體各視點下位姿,并將各位姿統(tǒng)一還原至手眼系統(tǒng)基坐標系下通過回歸算法實現位姿融合。
圖1 基于手眼系統(tǒng)的二次位姿檢測方法
在遮擋場景下推斷具有良好空間表述性能關鍵點的基本思路是:利用深度殘差網絡構建像素級向量場表示并對場景進行語義分割,利用隨機采樣一致性剔除離群值,通過投票得到關鍵點假設。該方法利用剛體局部特征與剛體整體之間的空間關系,使得算法在遮擋下仍可推斷非可視區(qū)域的關鍵點分布,魯棒性較高。
首先,通過最遠點采樣法在異形物體三維模型表面選擇良好空間結構表征能力的關鍵點,在模型點云Ωα選擇初始點及距其最遠點后,可根據歐式距離比較選擇第m點,計算公式如下:
通過遞推的形式減少迭代過程中的重復計算:
為檢測二維場景圖像中目標物體關鍵點,在像素投票網絡[7]的基礎上,選擇 ResNext[8]網絡作為backbone,在保持精度的同時以降低原網絡的復雜度。
網絡對場景圖像進行語義分割,為使其達到像素級精度,對逐個像素計算Softmax分類,使用帶有權重形式的多分類交叉熵損失函數訓練,使得網絡更加針對工業(yè)場景檢測。
式中,y為網絡輸出結果;class為實際類別的索引值,其并不直接參與計算;weight[class]為設置的類別權重。
構建像素級向量場,以向量歸一化的形式τk(xi)表示二維圖像中具有特定語義標簽的像素點xi指向具有相同語義的第k個關鍵點xk的方向:
式中,||·||2為2-范數運算符,表述兩像素間的歐式距離。
選擇對離群點不敏感的smoothl1損失函數來學習單位向量,進一步防止由離群點可能造成的梯度爆炸問題。
在同語義分割區(qū)域隨機選取兩個像素,并將二者對應歸一化向量交點作為關鍵點位置假設,重復n次構建關鍵點假設數據集利用隨機采樣一致性[9]剔除離群預測,得到關鍵點分布,并得到第j次所得關鍵點假設投票得分,其定義為:
式中,Ι為指示函數,表示元素從屬關系;θ為判別閾值。選擇投票得分最高的K個點作為通過圖像檢測的關鍵點。
為降低遮擋造成的影響,BB8、Segmentationdriven[10]與 Oberweger[11]等 算法 通 過 對 輸 入 圖 像網格劃分完成區(qū)域分割,根據分割結果推斷表述目標物體關鍵點,實現了從場景到物體局部特征的表述。
受其啟發(fā),期待通過物體局部特征表述其所處場景空間信息,提出了一種根據可視關鍵點數量及分布推斷空間視角信息豐富程度的方法,并以此來指導手眼系統(tǒng)的移動采集。
設經初始觀測位點下經1.1節(jié)評估所得可視關鍵點數量為Nk,根據可視關鍵點數量判斷視角空間信息豐富度情況,將位姿評估策略分為四種情況:
情況一:目標物體本身存在結構自遮擋,當可視關鍵點數量Nk≥6,屬于單視角無遮擋觀測,直接調用1.3節(jié)位姿回歸算法進行位姿估計。
情況二:6>Nk≥4,其至少包含某一視角下全部信息,屬于單視角觀測弱遮擋觀測,利用可視關鍵點位置判別法為其分配觀測位點組。
情況三:4>Nk>0,其于該視角下所得目標物體結構幾何信息過少,屬于單視角觀測強遮擋觀測,利用可視關鍵點位置判別法為其分配觀測位點組。
情況四:Nk=0,依據FPS算法中最遠距視界信息思想為其分配觀測位點組D2中視點P3,2,重新拍攝計算其中關鍵點并對比情況二與情況三判定其觀測模式。若皆不屬于此二類,則判定該場景下無待檢測對象。
針對第二、三、四種情況下二次觀測需求,融合MVCNN中提出的12個全視角觀測模式以及物體多視圖表示中使用的空間正十二面體投影模式,在空間三維球坐標系下構建三層錯位五邊形視點作為觀測位點組,如圖2(b)所示。記第i層第j個視點為Pi,j。由于考慮到機械臂移動位移極限及視點分布結構特性,舍棄了遠視點P2,3、P2,4、P3,3,P4,3,圖2為手眼系統(tǒng)觀測位點投影分布。
圖2 觀測視點投影分布
觀測位點可由圖2(c)所示的無向圖G(V,E)表示,共分四組:第一組D1={P2,1,P2,2,P3,1,P4,1};第二組D2={P2,2,P3,2,P4,2};第三組D3={P2,5,P3,4,P4,4};第四組D4={P2,5,P2,1,P3,5,P4,5};D1與D4在形狀上構成內心四點視角,D2與D3由于視點限制構成均分內心三點視角,其視角盲區(qū)由空間三維球坐標系漸變特性彌補。
將目標物體根據1.1節(jié)所得可視關鍵點與不可視關鍵點像素坐標(uk,vk)擬合形成邊框包圍盒:
定義?γ為網格分割后的包圍區(qū)域,以矩陣的形式表示包圍盒各網格元素值。將?γ中關鍵點順序連接,構造粗略擬合物體形貌的網格分割單元圖像??。對??中單目標物體可視關鍵點單元、可視網格單元、不可視網格單元、不可視關鍵點單元以及?γ中另包含的無效單元賦不同的矩陣A元素值,如圖3所示。
圖3 目標物體網格單元分割
分別判別粗擬合網格分割單元像素橫坐標uc,k與檢測場景位置分割中線關系,判別公式如下:
式中,Δs為中線右側網格單元投票分數Nr與左側網格單元投票分數Nl數值差值;λc為網格單元性質權重;W為觀測區(qū)像素寬度。
當兩側差值Δs>0時,判定物體于空間右側具有更充分可視信息,選擇右視位點組Dr={D1,D2}。反之選擇左視位點組Dl={D3,D4}。
根據網格單元圖像中不可視關鍵點與1.1節(jié)中檢測所得其他物體語義分割圖像像素位置關系,判別其遮擋情況:
式中,??為粗擬合網格包圍區(qū)域;δs為互遮擋判別閾值;ηc為網格單元性質權重;so(??)為粗擬合類別差 異;分別 為某點下神經網絡對區(qū)域??中真實可視物體OT與待檢測目標物體Op所輸出的歸一化類別概率。
若不滿足判別條件則判定其為結構自遮擋,初視角下結構信息充足,無需考慮其視點深度造成的位點選擇影響,選擇前置觀測位點組Df={D1,D4}。反之待檢測目標物體存在互遮擋,初始視角下結構信息不足,選擇后置觀測位點組Db={D2,D3}。
選擇左右位點判別與前后位點判別交集D?=[Dr∨Dl]∩[Df∨Db]為所選觀測位點組,控制手眼系統(tǒng)采集所選位點組下各視點場景信息,對二次觀測下各視角場景采集圖像使用1.1節(jié)中方法分別評估關鍵點。
對1.2節(jié)所獲二維關鍵點使用EPnP算法構建其與三維關鍵點間的映射關系,完成對各視點下位姿的求解,得到物體坐標系Oobj到相機坐標系Oc間的變換Tobj2c。為保證后續(xù)優(yōu)化過程中數據的一致性,將各視點下位姿求解結果轉換至統(tǒng)一的機械臂基坐標系下進行表示。
在空間變換過程中,通過Kalibr標定相機內參,獲取相機坐標系與像素坐標系變換關系;通過easy_handeye進行手眼標定,獲取末端執(zhí)行器坐標系Oe與相機坐標系Oc間變換關系Tc2e。通過對ROS系統(tǒng)下的直接訪問,獲取末端執(zhí)行器坐標系Oe與機械臂基坐標系Ob關系Te2b。通過鏈式傳遞完成關系變換:
對轉換至統(tǒng)一的機械臂基坐標系下表示的多視角位姿估計結果進行融合,將多視角位姿融合問題拆分為由向量空間描述的位置回歸融合與由特殊正交群表述的姿態(tài)回歸融合。
設位置向量?∈?3,向量描述的位置回歸融合可表示為:
對比黎曼距離與Frobenius標準范數對兩個SO(3)元素之間距離的表述,選擇幾何表述更自然的黎曼距離衡量最短測地線弧長,將姿態(tài)回歸融合問題表述為:
式中,Q∈SO(3)為各視角下姿態(tài)表示;Qp為姿態(tài)回歸值;ωi為各距離值權重;d(Q,Qi)為黎曼距離;log(Q)為旋轉矩陣主對數函數,可表示為:
使用Manton算法[12]將各位姿觀測偏差的so(3)均值作為更新量,迭代求解數值解。
將Karcher均值Qp賦初值:
計算其切空間均值:
更新當前姿態(tài):
式中,exp為矩陣指數函數,表示SO(3)與所對應的so(3)間的指數映射。
重復求解式(16)與式(17),直至切空間均值q的低于初始設定迭代止斷容差ε,并將最終所得Karcher均值Qp作為姿態(tài)回歸結果[13]。對比通過SE(3)直接對多重估計結果回歸的方法,將位姿融合問題先分解后回歸的方法在面對擾動時回歸值與真實值均方根誤差變化更小。
圖4 均方根誤差對比
為驗證網絡在單視角遮擋場景下位姿檢測結果精度,設計驗證實驗。網絡部署在Ubuntu16.04操作環(huán)境,使用i7-10700K CPU以及NVIDIA GeForce RTX 3060(12G)顯卡。利用Pytorch框架運行深度學習檢測算法,主要采用OpenCV計算機視覺庫,Eigen矩陣運算庫等開源視覺庫實現算法。在公開數據集LINEMOD與自建數據集上進行單次位姿檢測網絡訓練,通過TensorboardX實現訓練數據可視化。
網絡訓練過程輸入圖片尺寸640×480,選擇RAdam算法作為優(yōu)化器,并利用其對初始學習率不敏感的特性,設置初始學習率為0.01,迭代輪次設置為240,訓練批大小設置為8。圖5(a)顯示網絡訓練過程中損失值變化,隨迭代增加,訓練損失迅速下降。圖5(b)與圖5(c)顯示了位姿測試精度在訓練過程中的變化,分別度量的是位姿真值與位姿估值下模型點云間的平均距離,符合設定閾值的點數占比和位置姿態(tài)估值與真值符合容差5 cm與5°間占比[14]。觀察可知,訓練圖片空間表征信息充足,所得網絡在無遮擋場景下位姿評估誤差較低。
圖5 網絡訓練損失及位姿度量變化
使用訓練后的模型在Occluded LINEMOD遮擋數據集與上述數據集上分別測試位姿檢測結果,使用邊框包圍盒的方式顯示標注位姿真值與位姿估值,如圖6所示。
圖6 單視角遮擋場景下位姿可視化結果
表1給出了測試過程中各數據集下多種目標檢測物體位姿精度評估均值,觀察可知在無遮擋條件下位姿檢測結果精度較高,在場景遮擋的情況下,僅通過單一視角圖片對位姿進行預估與真實位姿存在較大誤差。
表1 各數據集下位姿評估結果
表2給出了在Occluded LINEMOD遮擋數據集下測試過程中不同關鍵點表示方式對位姿評估精度ADD(-S)與圖片處理速度的影響。BBX-8、FPS-4與FPS-8分別表示8點邊框包圍法、4點最遠采樣法與8點最遠采樣法三種關鍵點表征方法。實驗結果表明,不同關鍵點檢測與表征方式對算法運行速度并無明顯影響,同時通過8點最遠點采樣法所得遮擋位姿評估結果具有更高精度,即該關鍵點檢測法具有更強的空間信息表征能力。
表2 不同關鍵點表示方式下位姿評估結果
為驗證基于關鍵點數量及分布的融合多視角位姿評估結果的二次位姿預估方法相較于單視角位姿檢測方法的精度提升,構建機械臂手眼系統(tǒng)實驗平臺。硬件部分主要由:UR10機械臂、Intel Realsense D435i深度相機組成。系統(tǒng)框架基于ROS機器人控制系統(tǒng)搭建。
圖7展示了二次位姿檢測策略下單組實驗中關鍵點檢測、觀測策略下視點拍攝、位姿結果可視化的過程。如圖7(a)所示,對存在互遮擋與自遮擋的場景物體通過手眼系統(tǒng)進行檢測。將初始視點拍攝結果圖7(b)作為1.1節(jié)構建的網絡輸入,所輸出關鍵點分布情況如圖7(c),可知過少的可視關鍵點無法充分表征物體空間信息。
圖7 實驗場景及結果
基于其關鍵點數量及分布檢測結果,依據1.2節(jié)所述理論為其分配觀測位點組D3,進而控制手眼系統(tǒng)在P2,5、P3,4、P4,4視點下拍攝,對所采集的圖像進行位姿評估。圖7(d)、圖7(e)、圖7(f)為多視角位姿評估中多視點下位姿評估可視化結果。由圖7(f)可知,截斷情況下位姿評估可視化邊框包圍盒與真值包圍盒沒有較好的重合,單視角位姿評估結果存在一定誤差。對多視角下各位姿評估結果進行融合,并與單次位姿識別結果進行對比,精度誤差對比結果如表3所示。
表3 位姿檢測精度對比
表3展示了兩種位姿評估模式所得位置姿態(tài)與ArUco碼標定真值間偏差絕對值,以及通過ADD、ADD-S評估所得位姿準確性。
對比多視角位姿融合結果與初始視點單視角位姿評估結果,同組實驗中位置度量精度提升了0.069 m,姿態(tài)誤差降低了0.155 rad,平均距離度量提高了66.63%??芍嘁暯俏蛔巳诤喜呗詫娬趽鯃鼍爸形恢门c姿態(tài)修正效果明顯。
對比多視角位姿融合結果與多視角觀測模式下P3,4單視點位姿評估結果,采用位姿融合策略后位置度量精度提升了0.004 m,姿態(tài)誤差降低了0.008 rad。對比結果表明,位姿融合策略對于弱互遮擋場景中位姿結果仍有不錯的修正效果。
在相同的實驗平臺下,改變檢測物體的種類及位置姿態(tài),進行20組(8類物體)實驗,實驗結果如表4所示。數據表明,位姿評估過程中姿態(tài)平均偏差相較于位置平均偏差對遮擋更為敏感,所采用的二次位姿檢測方法相較于單視點檢測對姿態(tài)偏差修正效果更為明顯。
表4 位姿檢測精度偏差均值對比
上述檢測實驗驗證了基于關鍵點分布的融合多視角位姿評估結果的二次位姿預估方法在遮擋場景下的算法有效性。在測量操作方面,提出的方法集成于ROS框架下,各檢測移動步驟皆通過手眼系統(tǒng)實現,自動化程度及測量效率更高。
提出了一種基于關鍵點數量及分布的融合多視角位姿評估結果的多視角位姿檢測方法,通過在關鍵點檢測步驟后引入二次網格分割思想,根據其于分割網格上的位置數量及分布選擇手眼系統(tǒng)多視角觀測位點組,并對手眼系統(tǒng)各視點下位姿檢測結果進行融合作為位姿檢測最終結果。相較于傳統(tǒng)的單視角位姿檢測方法,利用手眼系統(tǒng)進行多視角位姿檢測所得結果在復雜場景下算法魯棒性更高。經實驗驗證,在強遮擋場景下,融合多視角位姿檢測結果所得位姿檢測較單視角下位姿檢測結果精度更高。