丁亮
(杭州電子科技大學(xué) 計算機學(xué)院,浙江 杭州 310018)
摘要:傳統(tǒng)的傳感器在移動機器人障礙物檢測領(lǐng)域都有其各自的局限性。文章提出基于Kinect的障礙物檢測方法:利用Kinect傳感器獲取環(huán)境深度圖像;通過Kinect標(biāo)定配準之后獲取校準參數(shù);通過該參數(shù)獲得圖像像素點與空間三維坐標(biāo)的對應(yīng)關(guān)系;通過空間三維坐標(biāo)確定地平面與障礙物區(qū)域,并將障礙物區(qū)域作為感興趣區(qū)域;通過三維坐標(biāo)在x軸和z軸的連續(xù)性對感興趣區(qū)域進行處理,分割出各個障礙物。實驗結(jié)果表明,文中算法可以有效且實時地檢測到障礙物信息。
關(guān)鍵詞:Kinect;障礙物檢測;實時
中圖分類號:TP311文獻標(biāo)識碼:ADOI: 10.19358/j.issn.1674-7720.2017.07.006
引用格式:丁亮.基于Kinect的實時障礙物檢測[J].微型機與應(yīng)用,2017,36(7):1921,25.
0引言
移動機器人是機器人學(xué)中的一個重要分支,指通過自身的傳感器獲取周圍的環(huán)境信息和自身狀態(tài),實現(xiàn)在有障礙物的環(huán)境中自主向目標(biāo)移動,最終完成任務(wù)的機器人。
關(guān)于獲取環(huán)境信息,眾多科研工作者目前的嘗試可以概括為以下五方面:基于超聲波的檢測方法[12]、基于激光雷達的檢測方法[3]、基于紅外的檢測方法[4]、基于視覺的檢測方法[56]以及基于傳感器組合的檢測方法[7]。
這些方法都可以有效地感知周圍環(huán)境信息,但也都有其局限性。本文使用微軟的Kinect傳感器,其不同于一般的視覺傳感器,Kinect除了具有RGB彩色攝像頭可提供二維視覺圖像外,還具有深度傳感器可以獲取距離信息。Kinect屬于主動探測,其探測深度信息使用“光編碼”技術(shù)[8]。Kienct價格低廉,獲取信息豐富,非常適用于移動機器人實時障礙物檢測。
1Kinect障礙物檢測
1.1Kinect標(biāo)定
使用 Kinect 傳感器進行深度信息測量前,需要先對Kinect 傳感器進行標(biāo)定[9]。標(biāo)定之后所獲取的校準參數(shù)是從原始深度圖像坐標(biāo)計算3D坐標(biāo)所必需的。其深度測量的三角測量原理如圖1所示,圖中顯示了待測量物體的點k相對于參考平面的距離與測量的視差d之間的關(guān)系。為了表示對象點的3D坐標(biāo),本文采用深度坐標(biāo)系,其原點在左下角紅外攝像機的透視原點。z軸正交于朝向物體的像平面;x軸在基線b的方向上并垂直于z軸,y軸與x軸正交。
圖1相對深度和測量差異之間的關(guān)系假設(shè)物體在距離傳感器距離為Z0的參考平面上,并且在紅外相機的圖像平面上捕獲物體的斑點,如果物體移動得離傳感器更近或者更遠,則在圖像平面上的斑點位置將在x方向上移位。這在圖像空間中被測量為對應(yīng)對象空間中點k的視差d。從三角形相似性可知:
其中Zk表示物體空間中點k的距離(深度),b是基本長度表示兩個相機之間的距離,f是紅外相機的焦距,D是點k在物體空間中的位移,且d是在圖像空間觀察到的視差。將D從式(2)代入式(1),并根據(jù)其他變量,得到:
其中(xk,yk)是點的圖像坐標(biāo),(x0,y0)是圖像坐標(biāo)的原點,(δx,δy)是透鏡畸變的校正參數(shù)。
綜上所述,用于從原始圖像坐標(biāo)測量計算3D坐標(biāo)的數(shù)學(xué)模型中涉及的校準參數(shù)包括:焦距(f)、主點偏移(x0,y0)、透鏡畸變系數(shù)(δx,δy)、基底長度(b)、參考圖案的距離(Z0)。這些校準參數(shù)完全限定了圖像測量(x,y,d)與每一個點空間坐標(biāo)(X,Y,Z)之間的關(guān)系。
在標(biāo)定完成之后,可以把深度圖像的像素點坐標(biāo)與投影到Kinect三維空間的點坐標(biāo)進行轉(zhuǎn)換。轉(zhuǎn)換后,該Kinect三維空間坐標(biāo)系,即是以Kinect傳感器為坐標(biāo)原點,x軸沿水平方向,y軸與x軸垂直,且平行于像素點成像平面,z軸垂直于xy平面。
1.2深度圖像和RGB圖像的配準
由圖2可以看到,Kinect的彩色攝像頭和紅外攝像頭并不在同一個位置且視角不同,所以Kinect的彩色圖像和深度圖像的每一幀的數(shù)據(jù)空間坐標(biāo)系是不同的,前者的原點是RGB攝像頭,后者的原點是紅外攝像頭,因此兩者之間會有相應(yīng)的誤差。
可以在代碼處理時把深度生成器的視角設(shè)定為彩色生成器的視角,讓它們的視角保持一致。最主要的處理過程是實現(xiàn)兩個映射函數(shù):DepthToWorld從深度相機(x,y,d)映射到世界坐標(biāo),WorldToColor將世界坐標(biāo)中的點映射到彩色攝像機中的像素索引。經(jīng)過深度圖像與彩色圖像對準之后,彩色圖像的每一個像素點都能在深度圖像中找到對應(yīng)點的深度信息。
2基于深度信息障礙物獲取
在經(jīng)過1.1節(jié)和1.2節(jié)的步驟之后,相當(dāng)于在每一幀RGB圖像的每一個像素上又包含了高度信息。以此為基礎(chǔ),就可以進一步獲取每一幀圖像中的障礙物與地平面區(qū)域。其處理過程如圖3所示。
(1)在圖像上提取地平線。因為本文認為阻礙移動機器人運動軌跡的障礙物為在地面上的凸障礙物,所以可以認為障礙物與地面之間的交界線就是地平線。場景中高于地平線的距離超過一個閾值的即可以認為是障礙物。所以,可以計算各行像素在移動機器人坐標(biāo)系的高度平均值:
Hi=∑N-1j=0yi,jN(4)
式中,N表示列的數(shù)目。
?。?)識別地平面。通常像素如果處在同一個平面上,其高度變化的趨勢是緩慢的,當(dāng)出現(xiàn)障礙物時,高度會出現(xiàn)階躍性的變化??梢詮膱D像由下至上遍歷每一行像素的高度值,如果某一行的高度的平均值大于其下面區(qū)域的高度平均值時,該行就被認為是地平線,而地平線以下的區(qū)域即被認為是地平面,如:
式中,l1、ln分別表示起始行和結(jié)束行。
(3)標(biāo)記遠景和地面。如果像素的高度值與G的差的絕對值小于閾值GA,即可以認為是地面,則將該點的像素值灰度值置為0。
C(i,j)=0, If |yi,j-G|<GA(6)
式中,C(i,j)表示像素點(i,j)的灰度值,yi,j表示該像素點的高度。
同時,由于深度相機隨距離增加的隨機誤差,需要使用類似的方式標(biāo)記出2.5 m以外的遠景區(qū)域,即如果深度值大于閾值DA,則將該點的像素灰度值置為0。
C(i,j)=0, If zi,j>DA(7)
式中,zi,j表示該像素點的高度。
?。?)障礙物檢測。經(jīng)過步驟(3)標(biāo)記之后,即非感興趣的區(qū)域的灰度值已經(jīng)被置為0,余下的就是感興趣的區(qū)域。接下來就需要對感興趣區(qū)域做進一步處理,以檢測障礙物。文中使用一個3×3結(jié)構(gòu)對二進制感興趣區(qū)域進行擴張(腐蝕)操作,以閉合障礙物像素之間的間隙,這樣就初步得到了障礙物的區(qū)域。不過還不能區(qū)分不同深度的障礙物與同一深度不相連的障礙物。還需要在初步得到的障礙物區(qū)域的基礎(chǔ)上,查看其點的x軸和z軸坐標(biāo),在z軸與x軸不連續(xù)的位置進行分割,將不同深度與同一深度不相連的障礙物分離出來,這樣就獲得了障礙物個體。
為了進一步說明該障礙物檢測算法的流程,下面將在一個場景中應(yīng)用這個算法來說明,場景選擇為實驗室樓梯口,如圖4所示。其中(a)為場景圖,包括貼近地面的障礙物、普通障礙物和貼有反光帶具有反射干擾的障礙物;(b)為1.1小節(jié)Kinect標(biāo)定后,深度圖像各點對應(yīng)空間的三維坐標(biāo),為了易于查看,使用AntTweakBar將結(jié)果渲染出來;(c)為預(yù)處理之后的深度圖;(d)中實線部分為提取的地平線;(e)顯示了標(biāo)記遠景和地面的結(jié)果,因為該場景為室內(nèi)場景,所以沒有遠景,只是標(biāo)記了地平面區(qū)域;(f)為經(jīng)過x軸、z軸不連續(xù)區(qū)域的分割,得到分離后的障礙物。
從圖4可以看到,本文算法可以基于Kinect有效檢測到障礙物。
3結(jié)論
本文研究了基于Kinect傳感器的障礙物檢測方法。首先經(jīng)過Kinect標(biāo)定與配準之后,可以獲得RGB圖像像素點的三維空間坐標(biāo);第二,根據(jù)每一行像素點高度的平均值確定地平面;第三,以地平線為基礎(chǔ),確定地平面和障礙物區(qū)域,把障礙物區(qū)域作為感興趣區(qū)域;最后,在感興趣區(qū)域中,根據(jù)像素的空間坐標(biāo)的x、z值的連續(xù)性進行切分,分割出障礙物。通過實驗驗證了本文算法的有效性。
參考文獻
[1] SANTANA P,GUEDES M, CORREIA L, et al. Stereobased allterrain obstacle detection using visual saliency[J]. Journal of Field Robotics, 2011, 28(2):241-263.
?。?] MANSO L J, BUSTOS P, BURGOS P B, et al. Multicue visual obstacle detection for mobile robots[J]. Journal of Physical Agents, 2010, 4(1): 3-10.
?。?] CRISTINA D, LVARO H, ANA J, et al. Ultrasonic array for obstacle detection based on CDMA with Kasami codes[J]. Sensors, 2011, 11(12):11464-11475.