郭 雨, 許德章
(1安徽工程大學(xué)人工智能學(xué)院,安徽 蕪湖 241000;2 蕪湖安普機(jī)器人產(chǎn)業(yè)技術(shù)研究院有限公司,安徽 蕪湖 241007)
位姿估計(jì)對于增強(qiáng)現(xiàn)實(shí)、虛擬現(xiàn)實(shí)、機(jī)器人抓取技術(shù)等應(yīng)用至關(guān)重要[1]。位姿估計(jì)是求解世界坐標(biāo)系與像素坐標(biāo)系之間的旋轉(zhuǎn)和平移關(guān)系,因此實(shí)現(xiàn)位姿估計(jì)不僅要檢測目標(biāo)位置,還要得到姿態(tài)信息。隨著CNN的迅速發(fā)展,深度學(xué)習(xí)在位姿估計(jì)中發(fā)揮著重要作用。Pose-CNN[2]通過對輸入的彩色圖片進(jìn)行分割,預(yù)測待檢測目標(biāo)的中心坐標(biāo),提取特征圖的ROI區(qū)域,輸出四元數(shù),表征3D旋轉(zhuǎn)矩陣。SSD-6D[3]以單幀RGB圖像為輸入,基于擴(kuò)展的SSD,預(yù)測目標(biāo)2D bounding box以及目標(biāo)種類、離散視點(diǎn)和面內(nèi)旋轉(zhuǎn)在每個特征圖位置的得分,通過射影幾何特性構(gòu)建目標(biāo)的6D姿態(tài)池,最終通過姿態(tài)池優(yōu)化得到精確的位姿結(jié)果。BB8[4]使用一個CNN 粗略分割對象,用另一個CNN預(yù)測給定分割對象3D邊界框投影的2D位置,然后使用 PnP 求解目標(biāo)位姿。但這些算法都只能對指定的數(shù)據(jù)集做離線的位姿估計(jì),不能實(shí)時檢測目標(biāo)信息,導(dǎo)致精度較低?;谏鲜鰡栴}和機(jī)器人動態(tài)抓取技術(shù)研究,采用自制幾何體模型數(shù)據(jù)集作為研究對象,提出一種基于改進(jìn)的YOLOv3[5]與EPnP結(jié)合的算法求解幾何體模型的位姿。首先利用改進(jìn)的YOLOv3算法檢測目標(biāo),其次預(yù)測幾何體模型3D虛擬控制點(diǎn)的2D像素坐標(biāo),使用EPnP算法求解3D-2D的旋轉(zhuǎn)矩陣和平移矩陣,最終得到目標(biāo)的位姿估計(jì)結(jié)果,滿足后續(xù)機(jī)器人動態(tài)抓取的精度。
YOLOv3作為一階段(one-stage)檢測算法,主要是由主干特征提取網(wǎng)絡(luò)(Darknet-53)和特征融合預(yù)測網(wǎng)絡(luò)(FPN和Yolo Head)組成,如圖1所示。
通過網(wǎng)絡(luò)模型得到預(yù)測調(diào)整參數(shù),將預(yù)測調(diào)整參數(shù)與真實(shí)框調(diào)整參數(shù)代入損失函數(shù)進(jìn)行計(jì)算。損失函數(shù)由三部分組成,分別是預(yù)測框定位誤差、置信度誤差和分類誤差。損失函數(shù)公式為式(1):
(1)
為了提高YOLOv3算法的檢測精度,改進(jìn)算法的位置回歸損失函數(shù),采用完全交并比損失函數(shù)(CIOU)計(jì)算位置回歸損,同時引入輕量模塊通道注意力機(jī)制(ECAnet),運(yùn)用網(wǎng)絡(luò)自適應(yīng)注意重要信息,調(diào)整特征圖,提升算法的檢測效果。
圖1 YOLOv3網(wǎng)絡(luò)模型
YOLOv3中,采用IOU衡量預(yù)測框的檢測效果,具有尺度不變性。IOU為預(yù)測框和真實(shí)框兩者重疊面積與總面積的比值,公式為式(2):
(2)
為了克服梯度無法回傳問題,鄭朝輝等[6]提出了CIOU的概念。CIOU兼顧預(yù)測框與真實(shí)框的重疊率、尺度問題和檢測框長寬比一致性的計(jì)算。其損失函數(shù)公式為式(3),(4):
(3)
(4)
式(4)中v為度量長寬比的相似性,b,bgt為預(yù)測框和真實(shí)框的中心點(diǎn),ρ為計(jì)算兩個中心點(diǎn)的歐氏距離,c為同時包圍預(yù)測框和真實(shí)框的最小閉包區(qū)域的對角線距離。
由于通過自制目標(biāo)數(shù)據(jù)集,沒有對數(shù)據(jù)集進(jìn)行圖像增強(qiáng)處理,放入原始的YOLOv3網(wǎng)絡(luò)模型中訓(xùn)練得到的預(yù)測效果不太理想。為了讓網(wǎng)絡(luò)集中學(xué)習(xí)目標(biāo)所在的位置區(qū)域,使其能夠關(guān)注到目標(biāo)的特征點(diǎn),快速有效地學(xué)習(xí)圖像信息。為此引入ECANet注意力機(jī)制。ECANet為改進(jìn)版的通道注意力機(jī)制,它去除原有的全連接層模塊,直接在全局平均池化之后的特征上通過1D卷積跨通道交互,避免了數(shù)據(jù)降維。將其加入到Y(jié)OLOv3網(wǎng)絡(luò)模型,自適應(yīng)判斷重要特征數(shù)據(jù),提高網(wǎng)絡(luò)模型的性能。圖2為引入ECANet注意力機(jī)制的網(wǎng)絡(luò)模型。
圖2 YOLOv3改進(jìn)網(wǎng)絡(luò)模型
通過改進(jìn)YOLOv3算法,提高了對模型的檢測精度,為后續(xù)位姿估計(jì)提供了基礎(chǔ),所用的位姿估計(jì)方法將在下一節(jié)闡述。
PnP問題于1981年首次提出,在物體位姿估計(jì)方面有重要應(yīng)用價值,引起人們廣泛重視[7]。對于許多強(qiáng)紋理的目標(biāo),一般采用關(guān)鍵點(diǎn)和基于邊緣的方法,通過對ROI區(qū)域分割,特征點(diǎn)提取,最后用PnP算法得到3D坐標(biāo)與2D圖像坐標(biāo)對應(yīng)關(guān)系進(jìn)行目標(biāo)的位姿求解。PnP算法易受噪聲影響或者存在誤差匹配則無法求解位姿,對于弱紋理或無紋理的幾何體模型目標(biāo),沒有明顯的特征關(guān)鍵點(diǎn),難以求解位姿。
EPnP算法是PnP算法的非迭代形式,其原理是利用虛擬控制點(diǎn)線性加權(quán)的結(jié)果表示真實(shí)物體上特征點(diǎn)在相機(jī)坐標(biāo)系下的坐標(biāo)。根據(jù)自制的不同紋理的幾何體模型的數(shù)據(jù)集,通過預(yù)測目標(biāo)模型3D虛擬控制點(diǎn)的2D像素坐標(biāo),然后利用EPnP算法求解目標(biāo)的位姿。采用9個虛擬控制點(diǎn)來參數(shù)化目標(biāo)模型,求解不同紋理的目標(biāo)位姿。
(5)
目標(biāo)世界坐標(biāo)系下的3D坐標(biāo)可用虛擬控制點(diǎn)線性加權(quán)表示(n>=5),aij為加權(quán)系數(shù)。
目標(biāo)的3D坐標(biāo)和虛擬控制點(diǎn)的坐標(biāo)之間的關(guān)系在相機(jī)坐標(biāo)系下如式(6):
(6)
兩個坐標(biāo)系下的虛擬控制點(diǎn)關(guān)系如式(7):
(7)
假設(shè)目標(biāo)的3D坐標(biāo)在像素坐標(biāo)系下的投影坐標(biāo)為(ui,vi),則投影坐標(biāo)與3D虛擬控制點(diǎn)之間的關(guān)系如式(8):
(8)
式(8)中Zc為坐標(biāo)點(diǎn)的投影深度,K為相機(jī)內(nèi)參矩陣,fx,fy,u0,v0為相機(jī)內(nèi)部參數(shù)。
通過建立目標(biāo)的3D虛擬控制點(diǎn)與像素坐標(biāo)之間的關(guān)系,將3D點(diǎn)與2D點(diǎn)之間一一對應(yīng),再利用EPnP算法將3D虛擬控制點(diǎn)線性加權(quán)求和對目標(biāo)進(jìn)行位姿求解,并得出目標(biāo)的旋轉(zhuǎn)矩陣R和平移矩陣t。
利用Intel D415深度相機(jī)采集六種幾何體模型(圓,六棱柱,錐體,正方體,圓錐,圓柱)圖像作為數(shù)據(jù)集,數(shù)據(jù)集共有1000張圖像,以9:1的比例隨機(jī)制作(訓(xùn)練集與驗(yàn)證集)和測試集,900張圖像進(jìn)行網(wǎng)絡(luò)的訓(xùn)練與驗(yàn)證,其中訓(xùn)練集與驗(yàn)證集的比例為9:1,100張用于測試訓(xùn)練完成的網(wǎng)絡(luò)。利用labelimg軟件對數(shù)據(jù)集中帶檢測目標(biāo)進(jìn)行標(biāo)注。實(shí)驗(yàn)的參數(shù)如表1所示。
表1 實(shí)驗(yàn)設(shè)備配置參數(shù)表
實(shí)驗(yàn)訓(xùn)練包括凍結(jié)階段和非凍結(jié)階段,動量為0.9,衰減為0.0005,總共訓(xùn)練100個Epoch。前50個Epoch的batch_size為8,學(xué)習(xí)率為1×10-3;后50個Epoch的batch_size為4,學(xué)習(xí)率為1×10-4。
使用mAP和F1分?jǐn)?shù)作為算法的評價指標(biāo)。mAP 是計(jì)算每個類別的平均精度(AP),再對所有類別的平均精度求取均值得到,其公式為(9):
(9)
式(9)中C為數(shù)據(jù)集的目標(biāo)種類,APi為每一類的AP,P為精準(zhǔn)率,R為召回率。
F1分?jǐn)?shù)(F1Score)是精準(zhǔn)率和召回率調(diào)和均值的2倍。往往作為模型泛化能力的評價指標(biāo),F(xiàn)1 分?jǐn)?shù)為 0-1 之間的小數(shù),F(xiàn)1 分?jǐn)?shù)越大表明模型泛化能力越強(qiáng),其公式為(10):
(10)
將YOLOv3算法與改進(jìn)的算法進(jìn)行對比實(shí)驗(yàn),利用自制幾何體模型數(shù)據(jù)集進(jìn)行訓(xùn)練測試得到每一種幾何體模型類別AP值,對比結(jié)果如表2所示。
表2 兩種算法的AP值對比
圖3為網(wǎng)絡(luò)訓(xùn)練損失圖。從圖中可以看出,隨著訓(xùn)練次數(shù)的增加,兩者的驗(yàn)證集損失都逐漸降低。在50個Epoch時,由于網(wǎng)絡(luò)中所有參數(shù)都參與訓(xùn)練,損失值會上升,后續(xù)逐漸趨于穩(wěn)定。而且改進(jìn)的YOLOv3算法比原算法的初始Epoch驗(yàn)證集損失值降低,收斂速度更快,收斂穩(wěn)定后損失值降低了34.9%。
圖3 網(wǎng)絡(luò)訓(xùn)練損失圖
進(jìn)一步對兩種算法的mAP和F1分?jǐn)?shù)整體評價指標(biāo)進(jìn)行對比,結(jié)果如表3所示。
表3 整體檢測網(wǎng)絡(luò)性能對比
從表3可以看出,在設(shè)置mAP@0.5時,相較于YOLOv3算法,改進(jìn)的YOLOv3的mAP與F1分別提高了約6%,3%,提升了網(wǎng)絡(luò)模型的檢測精度,增強(qiáng)了整體泛化能力,為后續(xù)目標(biāo)的位姿估計(jì)提供了準(zhǔn)確的類別信息。
圖4和圖5分別為YOLOv3和改進(jìn)的YOLOv3的實(shí)際檢測結(jié)果圖。從圖中可以看出,改進(jìn)后的YOLOv3的預(yù)測框與真實(shí)框的重合度更高,對物體的定位更加準(zhǔn)確,檢測效果更好。
圖4 YOLOv3檢測結(jié)果圖
圖5 YOLOv3改進(jìn)檢測結(jié)果圖
圖6 位姿估計(jì)效果圖
圖6為位姿估計(jì)效果圖。從圖中可以看出,能夠較好的得到目標(biāo)的質(zhì)心和3D邊界框尺寸。
通過自制的幾何體模型LINEMOD數(shù)據(jù)集,將其代入EPnP算法網(wǎng)絡(luò)模型中,得到每種幾何體位姿平移誤差、旋轉(zhuǎn)誤差和像素誤差的結(jié)果,結(jié)果如表4所示。
表4 位姿估計(jì)誤差結(jié)果表
由表4可知,得到的六種幾何體模型位姿估計(jì)的平移誤差均小于5mm,旋轉(zhuǎn)誤差均小于7°,特征點(diǎn)像素誤差均小于5pixel。能夠?qū)ο鄼C(jī)與目標(biāo)之間的相對位姿進(jìn)行較為精確的檢測,進(jìn)而可以認(rèn)為,能夠?qū)缀误w模型的位姿進(jìn)行較為精確的估計(jì),滿足后續(xù)機(jī)器人動態(tài)抓取的精度。
基于改進(jìn)的YOLOv3算法和EPnP算法對幾何體模型進(jìn)行目標(biāo)檢測和位姿估計(jì),實(shí)驗(yàn)結(jié)果表明,改進(jìn)的YOLOv3算法能夠快速實(shí)現(xiàn)幾何體模型的檢測定位和位姿估計(jì),有較高的檢測精度,驗(yàn)證了該算法的有效性。
佳木斯大學(xué)學(xué)報(自然科學(xué)版)2022年6期