馬世超, 孫 磊, 何 宏, 郭延華
(天津理工大學電氣電子工程學院,天津 300384)
智能機器人的基礎研究和產業化近年來發展迅速,在工業分揀、農業采摘等[1-3]方面機器人抓取技術具有較高的應用價值,能否抓取成功會受多方面因素的影響,因此機器人的抓取是一個非常具有挑戰性的研究。
傳統的一般采用人工示教的抓取方式實現對位置確定的單一物體抓取,由于抓取位姿憑靠的是記憶且機械臂本身沒有對外物的感知能力,所以在實施抓取操作時易受到來自外界不確定因素的干擾,為了實現在自然環境下機械臂能夠自主抓取物體,計算機視覺技術與機器人技術的結合成為研究的熱點。文獻[4]提出單目立體匹配的機器人抓取方法,主要建立3D模板庫,最優搜索確定檢測位姿實現抓取,但其主要是在單物體下實現的,不能應對多目標環境。文獻[5]提出了一種基于雅克比矩陣估計的視覺伺服控制方案。文獻[6]利用雙目視覺對盤類零件上料物體的位置形狀識別,實現對零件的定位,但光照過強過弱都會使效果下降,其對環境的適應性差。文獻[7]利用深度傳感器并結合顏色信息,通過目標三維重建獲得位姿,雖然其在目標所占比例大的情況下效果好,但由于三維重建耗時長,故實用性不強。以上研究均是基于視覺的。
受Hubel等的生物研究影響,卷積神經網絡(convolutional neural network)被提出,并在目標識別檢測等方面作出突出貢獻,此后深度學習技術逐漸應用到機器人抓取領域。文獻[8]利用神經網絡,對目標物體位置與機器人末端的映射關系進行訓練完成抓取;文獻[9]提出被抓取目標物體在未知姿態下,利用卷積神經網絡學習抓取函數,雖然此方法適應性強,能夠很好地適應新物體,但也只針對單個物體情況;文獻[10]提出基于深度學習的多視圖、自監督方法來估計物體6D位姿,能夠在復雜環境下實現抓取,但其抓取精度依舊不高;文獻[11]提出基于Faster RCNN目標檢測的機器人抓取方法,雖然其滿足多目標的識別并且精度較高,但是識別速度要比YOLOV3慢很多,會影響實時檢測。
針對多目標、目標物體大小不一的情況,提出一種基于感興趣區域的機器人抓取方法。對物體識別定位及機器人抓取進行了研究,利用Kinect V2采集場景信息,通過張正友標定法[12]獲得深度傳感器的內外參數,實現二維圖像與三維空間之間的映射,計算目標物體的坐標信息,建立目標數據庫進行訓練,為了滿足目標實時檢測的需求,選用改進的YOLOV3模型進行識別。最后,通過控制機器人各個關節,實現對目標物體的抓取。
物體抓取系統如圖1所示,共包含目標的識別、定位及抓取3部分。Kinect V2架于實驗臺0.5 m的位置,aubo_i5機械臂固定在實驗臺上,相機不隨機械臂運動,GPU選用NVIDIA GTX 1080Ti,操作系統選用Ubuntu16.04,深度學習框架為TensorFlow。物體檢測系統采用YOLOV3深度學習的方法,采集5種目標物體,對其標記訓練得到適合本系統的權重。YOLOV3調用Kinect V2相機實時采集場景中的圖像信息,同時利用訓練好的改進YOLOV3模型檢測出目標物體,并且得到其類別、二維包絡框和置信度等信息。目標物體的定位系統能夠得到目標的圖像點的像素坐標值和深度值,然后利用手眼轉換,得到目標物在機械臂基坐標系下對應的位置信息;機械臂抓取系統通過求取逆解,得到aubo_i5機械臂6個關節轉動角度值,最終通過對機械臂控制完成抓取任務。

圖1 抓取系統簡圖Fig.1 Schematic diagram of the grasping system
Kinect v2按照物體不同位置、不同種類,采集500張物體圖像信息,對圖像中目標物體類別進行標注,然后將標注信息與原始圖像信息作為訓練樣本,在YOLOV3網絡中進行訓練,得到權重信息,完成目標物的識別。
實驗中采集了包括水瓶蘋果等共5種待識別的目標。為了識別準確,作為訓練的物體圖像信息既要包含目標物的不同類別,還要包含目標物體不同位置和姿態下的信息;同時,為了快速得到這些信息,實驗中在相機采集的500張圖像的基礎上來增大訓練的數據集,所以對原圖添加高斯噪聲,并且將原圖與噪聲處理后的圖像分別進行順逆時針各轉10°操作,如圖2所示。此時一幅圖像可擴展成6幅,數據集共500×6=3 000幅圖像。

圖2 原圖的增強效果Fig.2 Enhanced effect diagram of the original
快速卷積神經網絡模型的平均精度比YOLOV3高一些,但是其對視頻實時檢測耗費的時間要比YOLOV3長很多。正因為YOLOV3檢測快,能夠滿足視頻的實時處理,因此選用YOLOV3訓練模型并在此模型基礎上完成改進。YOLOV3網絡[13-14]是一個基于回歸的單級檢測器,主干網絡由Darknet-53特征提取器和YOLO交互層構成,損失函數采用交叉熵函數。Darknet-53是一個全卷積網絡,其融合了Darknet網絡和殘差連接方式,并且采用了53個3×3、1×1卷積核的卷積層,通過跳躍性的連接方式構成res層。其中DBL包括二維卷積操作(conv2D)、BN層和局部響應歸一化(Leaky relu)。對圖像進行特征提取,輸出3個不同尺度的特征圖,將其與YOLO交互層進行特征融合構建特征金字塔網絡,提取目標深層語義信息,輸出目標的位置信息、類別及置信度。YOLOV3網絡結構如圖3所示。
對其損失函數進行改進,使用焦點函數(FL)代替傳統的交叉熵函數,得到改進YOLOV3新型回歸單級檢測器,通過物體識別將其與YOLOV3模型進行實驗對比分析,驗證模型的有效性及可靠性。傳統的交叉熵函數整理之后可得:

圖3 YOLOV3網絡結構Fig.3 YOLOV3 network structure
(1)
式(1)中:n的值是正1或負1;m是標簽(label)等于1時預測的概率,其值范圍為0到1,為方便計算,用nt代替n,公式為
(2)
對交叉熵的改進,增加了一個系數αt,跟nt的定義類似,當label=1的時候,αt=α;當label=-1的時候,αt=1-α,α的范圍是0到1,公式為
L(nt)=-αtln(nt)
(3)
在大量數據訓練過程中,容易分類的負樣本占據損失值的大部分,雖然αt能夠平衡正負樣本,但是對于難(易)樣本分類仍具有一定難度,提出在交叉熵函數中加入調制函數(1-nt)γ,γ具有平滑曲線的作用,當γ>0時,則樣本類別失衡,此時nt值為極小值,調制系數趨于1,交叉熵函變化很小;當nt趨向于1時(類別正確),調制系數趨于0,對總損失值影響較小;當γ=0時,焦點損失函數就是傳統的交叉熵,當γ增加時,調制函數也會相應的增加。一般而言當γ增加的時候,α需要減小一點。
最終損失函數公式為
FL(nt)=-αt(1-nt)γln(nt)
(4)
焦點損失函數既能調整正負樣本的權重,又能提高識別精度及穩定性,將改進后的損失函數應用到網絡模型中。
改進YOLOV3結合深度傳感器能夠實時檢測目標物體,基于改進YOLOV3模型的物體檢測技術屬于監督學習,因此需要得到目標類別及其二維包絡框像素位置等標注信息。對得到的3 000幅圖像完成標注之后,為了測試模型的精度,這里將80%的圖像與其相對應標注后得到的.yaml文件作為訓練集,剩余的20%作為驗證集。在目標識別中,對模型參數進行設置,學習率設置為0.000 1,批量大小設置為64,subdivisions設置為16,并將其迭代25 000次,隨著訓練次數增加,損失函數值無限趨于0。最后,使用驗證集測試訓練得到改進YOLOV3模型。
物體的三維坐標與圖像坐標存在線性關系,其中世界、圖像、相機、像素坐標系的關系[15]如圖4所示。一個現實世界中的物體點在世界坐標系下的坐標為P(X,Y,Z),經過相機拍攝得到圖片,在圖片上的像素坐標為m(u,v)。相機的相對位置用(XC,YC,ZC)坐標表示,C即(Cx,Cy),圖像坐標系的坐標值用(x,y)來表示,像素坐標系的坐標值用(u,v)表示,焦距用f表示。

圖4 坐標系的關系Fig.4 Relation of coordinate
相機坐標系到圖像坐標系之間的轉換實際上是將三維空間點轉化為二維平面點,如圖4所示,根據三角形法,得到目標物體在圖像坐標系的轉換關系為
(5)
由圖4知,圖像和像素兩坐標系的轉換關系為
(6)
式(6)中:dx和dy分別為在x軸方向和y軸方向上的尺寸變化;(u0,v0)為在像素坐標系下的坐標值。式(6)齊次變換用公式表示為
(7)
由式(5)、式(7)可得相機坐標系到像素坐標系的轉換關系為
(8)
式(8)中:K為相機內參;X為目標物在相機坐標系的坐標。
在對Kinect V2標定時,設世界坐標系與{e}保持一致,即要測得的目標在世界坐標系下的坐標值為Xe=(Xe,Ye,Ze),同時設相機坐標系為{c},基坐標系為{0},則{e}到{c}的變換關系表示為
(9)
式(9)中:R為3行3列的正交旋轉矩陣;t為平移向量。將式(9)代入式(8)可得:
(10)
(11)
由式(10)、式(11)得,像素坐標系到{0}的轉換為
(12)


(13)
假設{c}在{0}中的位姿表示為0Pc=(Pcx,Pcy,Pcz,θcx,θcy,θcz)T,可得{c}到{0}的齊次變換矩陣為
(14)

使用aubo_i5六自由度的機械臂完成抓取操作,機械臂各關節及其坐標系展示在圖5中。機械臂共6個轉動關節,其中關節1~6分別對應坐標系{1}~{6},通過基座與底座連接,可以通過控制1~6關節轉動,使機械臂末端工具移動到不同的位置。由于aubo_i5的結構特點,2、3、4關節軸線符合三軸平行構型,因此機器人擁有逆運動學封閉解。

圖5 機械臂關節及各坐標系簡圖Fig.5 Schematic diagram of mechanical arm joints and each coordinate system
EZGripper機器人夾持器(圖6)通過連接法蘭固定在aubo_i5機械臂的末端,通過機器人操作系統(robot operating system,ROS)上的Python來控制夾持器的張合動作。

圖6 夾持器Fig.6 Gripper
根據aubo_i5機械臂各個關節坐標系的位置及姿態,定義機器人的初始零位位姿與圖5一致,得到機器人的參數如表1所示。表中,i表示關節的序號,ai-1表示前一個連桿長度,αi-1表示連桿i相對于連桿i-1的轉角,di表示第i個關節的偏置距離,θi表示第i個關節的轉角范圍,零位θi時的值分別為[0 -90 0 -90 0 0]。

(15)

(16)
式(6)中:Screwx(αi-1,αi-1)為繞Xi-1軸旋轉αi-1,并且再沿Xi-1軸平移了αi-1;Screwz(di,θi)為繞Z軸旋轉了θi,并且再沿Z軸平移了di。在D-H參數中,θi作為關節變量,其余值均是已知量,將D-H參數中的參數分別代入式(15)和式(16)即得到aubo_i5正向運動學解。
當夾持器安裝在機械臂末端時,為實現手抓到達指定的目標位姿,因此需要求得這一位姿所對應的6個關節的轉角值,即逆運動學解[17-18]。由于aubo_i5機器人2~4關節軸線符合三軸平行結構,所以此機器人具有封閉解。逆解可能不存在,也可能不唯一。對6自由度的遨博機械臂,采用牛頓迭代法來求取逆解,先構造非線性方程組,其公式如下:
F(θ)=0
(17)
F(θ)=(f1,f2,…,fn)T
(18)
θ=(θ1,θ2,…,θn)T
(19)
(20)
其展開式為
(21)
(22)
用牛頓迭代求解方程組表示為
θi+1=θi-J-1F(θi)
(23)

(24)
通過式(24)求解六自由度空間機械臂的逆運學。
采用5 m×7 m×0.03 m的標準棋盤,為保證其穩定,將相機固定。共采集了上、下、左、右、前、后等不同方位的40張用于彩色圖像和深度圖像的校正圖像,提取其棋盤角點,根據采集后圖像的圖像坐標與棋盤角點的世界坐標系關系,求解Kinect V2的內外參數,最終完成相機標定(圖7)。其彩色相機內參(Krgb)、紅外相機內參(Kir)矩陣為
相機外參旋轉矩陣R和平移向量t分別為
t=[-0.04709 0.00004 0.00302]
計算得到{c}到{0}的齊次變換為

圖7 點云配準前后對比Fig.7 Comparison before and after point cloud registration
圖7(a)展示相機的RGB圖像和Depth圖像是沒有進行配準的圖像,可知道其點云圖在其邊緣位置存在明顯的錯位現象。圖7(b)展示配準后相機下的點云圖像,可以看出,矯正后,其三維點云圖的邊緣輪廓完好對齊,很好地去除在模型之間的位置偏差問題,從而使得到的相機下的同一個三維物體模型具有一定的完整性和一致性。
收集3 000張包含香蕉、蘋果、杯子、書、鼠標等圖像制作數據集MAC,訓練并測試,隨機選取2 400張圖像作為訓練時的數據集,剩余600張作為驗證集。采用Darknet53基礎網絡在MAC數據集上訓練,將其迭代25 000次,經訓練得到的權重作為測試的權重,再利用驗證集評估模型精度。為了驗證模型權重的有效性和可靠性,圖8(a)顯示訓練的迭代次數改進前后的平均損失曲線,通過曲線圖可以看出,隨著訓練次數的增多,雖然二者的平均損失值逐漸趨于平穩,最終基本保持不變,但是改進后模型比改進前下降快,說明在訓練過程中模型具有很快的收斂性。圖8(b)所示為精確率召回率曲線對比,從曲線圖中看出,在保持高精度的條件下,改進后模型的召回率可以達到90%,而當召回率為90%時,精確率仍然能夠達到80%,改進前召回率為90%時,其精確率已經下降到60%,說明改進YOLOV3模型的性能高。

圖8 平均損失曲線和P-R曲線Fig.8 Average loss curve and P-R urve
分別用YOLOV3和改進YOLOV3對Kinect拍攝的場景物體進行實時測試,得到物體的類別、準確率及邊框位置信息。其識別結果如圖9、圖10所示,每種物體識別的正確率如表2所示。
由圖9可以看出,圖9(a)沒能識別出蘋果和鼠標,而圖9(b)將場景下的5種物體全部正確識別。所測場景中的物體具有遮擋的特點(鼠標與香蕉特征遮擋),導致識別信息重疊,減少可區分性,增大了識別難度。經實驗結果得出,改進YOLOV3解決了由于遮擋造成的不能有效識別的問題。

圖9 遮擋環境下物體識別對比試驗Fig.9 Comparative test of object recognition under occlusion environment

圖10 改變物體位置的情況下識別對比Fig.10 Recognition and contrast under changing object position
改變物體位置的情況下,分別再用YOLOV3和改進YOLOV3對Kinect場景下的物體進行檢測,分別提取第57幀和163幀進行測試,如圖10所示,可以看出,當物體位姿發生變化時,用YOLOV3和改進的模型測試結果差別很多,對于視頻中不同的幀,YOLOV3檢測出的物體總是在發生變化,有時能檢測出,有時則需要晃動目標物體才能檢測到,而改進后的YOLOV3能夠穩定地檢測出物體,對環境變化的適應性強。在57幀時,如圖10(a)所示,只識別出了鼠標,在163幀時,如圖10(c)所示,識別出鼠標和蘋果;而圖10(b)、圖10(d)在57幀和163幀時,全部正確識別。從實驗結果中能夠得出,改進的YOLOV3有效提升了物體識別的穩定性。

表2 測試結果識別的正確率Table 2 The accuracy of test result recognition
由表2可知,改進前識別到香蕉的正確率為78.3%,而改進后香蕉的識別正確率達到79.6%,與模型改進前相比提升了1.3%,改進前識別到蘋果的正確率為54.2%,而改進后識別其正確率達到55.4%,與改進前相比正確率提升了1.3%,改進前識別到杯子的正確率為65.1%,改進后較改進前提升了3%,對于書、鼠標,改進前識別正確率分別為80.2%和57.6%,二者相比于改進前分別提升了5.1%和1.2%。根據表中數據得出改進YOLOV3模型與YOLOV3模型的平均精度相比,改進YOLOV3模型平均精度大約提升了2.36%,其模型性能優于改進前。
根據理想相機成像的原理,通過坐標系之間的變換剖析了物體三維坐標計算的全過程,Kinect V2傳感器根據其發出紅外光線的飛行時間來計算其相應的深度信息,計算某一點處的深度值為Z,其他參數已經由相機標定獲得,代入下式計算:
實驗中利用改進YOLOV3識別到5種目標物體,其可視化采集點如圖11所示,分別計算1~5的中心位置(圖中紅點標記的位置),并在表3中展示得到的像素坐標數據。通過表3可以看出,所測得的坐標值在0.5~1.5金字塔視場,其深度誤差較小,深度誤差平均絕對值為0.010 8,精度較高。

圖11 目標物可視化Fig.11 Target visualization

表3 圖像點的像素坐標值和深度值Table 3 Pixel coordinate values and depth values of image points
實驗中抓取系統采用眼在手外模式,在光照充足的條件下進行物體抓取實驗,一共選取了5種物體,并且其位置和姿態不同,對每種物體分別進行抓取15次測試,總抓取75次。實驗中分別用YOLOV3和改進YOLOV3模型對物體進行識別,程序計算物體中心點的位置對其實施抓取,實驗抓取過程如圖12所示。

圖12 物體抓取過程Fig.12 Object grasping process
抓取實驗結果如表4所示。改進前由于抓取過程中不能有效地識別出目標物體,所以易造成抓取失敗的情況。其中蘋果、杯子和鼠標3個物體的抓取成功率分別為87%、93%、80%,而應用改進YOLOV3能穩定地識別到物體,抓取成功率均能達到100%。然而書的抓取成功率比較低,由于其材質影響,造成抓取過程容易脫落,改進前為73%,改進后為80%,而香蕉抓取成功率改進前為67%,改進后成功率達到87%,其改進后未成功抓取的原因主要是香蕉中間形狀不規則導致相機在對其進行測量時得到的深度信息不準確,造成定位時香蕉的位置出現了偏差。75次抓取實驗中,改進前共成功抓取60次,改進后則成功抓取70次,改進前平均成功抓取率為80%,改進后成功率達到93.4%。實驗結果可以看出,改進YOLOV3應用在物體識別中并根據坐標系轉換實現抓取的方法是有效的,且抓取成功率較改進前提升了13.4%。

表4 物體抓取實驗結果Table 4 Experimental results of object capture
基于感興趣區域的機器人抓取系統采用張正友標定法完成深度傳感器的標定,消除了模型在邊緣處存在的錯位問題,然后利用深度學習方法實現目標物體的檢測,依據相機成像原理實現定位,最后根據坐標系轉換及機器人逆運動學求解完成抓取任務,得到以下結論。
(1)基于感興趣區域的機器人抓取系統將深度傳感器、深度學習方法與抓取檢測問題結合在一起,實現對檢測待抓取目標物體端到端實時檢測。
(2)針對識別準確率問題,對YOLOV3進行改進,將傳統的交叉熵函數替換成焦點函數,并通過圖像增強及圖片正負旋轉10°處理來擴充數據集。改進后較改進前模型的平均精度值大約提升了2.36%,在一定程度上提高了識別的準確率。
(3)依據相機三維定位理論,計算三維坐標,所測得的坐標值在0.5~1.5金字塔視場之間,且深度誤差較小,深度誤差平均絕對值為0.010 8,能很好地對改進YOLOV3識別到的物體的中心進行定位。
(4)結合(2)和(3)及參照機器人D-H參數,通過坐標坐標系變化及運動學解控制機器人完成抓取,機器人抓取實驗驗證改進后較改進前提升了13.4%。實驗結果證明,改進的YOLOV3能夠有效提高抓取成功率,基于感興趣區域的機器人抓取系統可以對多目標實時可靠的抓取任務。