丁 亮
(杭州電子科技大學(xué) 計(jì)算機(jī)學(xué)院,浙江 杭州 310018)
基于Kinect的實(shí)時(shí)障礙物檢測(cè)
丁 亮
(杭州電子科技大學(xué) 計(jì)算機(jī)學(xué)院,浙江 杭州 310018)
傳統(tǒng)的傳感器在移動(dòng)機(jī)器人障礙物檢測(cè)領(lǐng)域都有其各自的局限性。文章提出基于Kinect的障礙物檢測(cè)方法:利用Kinect傳感器獲取環(huán)境深度圖像;通過(guò)Kinect標(biāo)定配準(zhǔn)之后獲取校準(zhǔn)參數(shù);通過(guò)該參數(shù)獲得圖像像素點(diǎn)與空間三維坐標(biāo)的對(duì)應(yīng)關(guān)系;通過(guò)空間三維坐標(biāo)確定地平面與障礙物區(qū)域,并將障礙物區(qū)域作為感興趣區(qū)域;通過(guò)三維坐標(biāo)在x軸和z軸的連續(xù)性對(duì)感興趣區(qū)域進(jìn)行處理,分割出各個(gè)障礙物。實(shí)驗(yàn)結(jié)果表明,文中算法可以有效且實(shí)時(shí)地檢測(cè)到障礙物信息。
Kinect;障礙物檢測(cè);實(shí)時(shí)
移動(dòng)機(jī)器人是機(jī)器人學(xué)中的一個(gè)重要分支,指通過(guò)自身的傳感器獲取周圍的環(huán)境信息和自身狀態(tài),實(shí)現(xiàn)在有障礙物的環(huán)境中自主向目標(biāo)移動(dòng),最終完成任務(wù)的機(jī)器人。
關(guān)于獲取環(huán)境信息,眾多科研工作者目前的嘗試可以概括為以下五方面:基于超聲波的檢測(cè)方法[1-2]、基于激光雷達(dá)的檢測(cè)方法[3]、基于紅外的檢測(cè)方法[4]、基于視覺(jué)的檢測(cè)方法[5-6]以及基于傳感器組合的檢測(cè)方法[7]。
這些方法都可以有效地感知周圍環(huán)境信息,但也都有其局限性。本文使用微軟的Kinect傳感器,其不同于一般的視覺(jué)傳感器,Kinect除了具有RGB彩色攝像頭可提供二維視覺(jué)圖像外,還具有深度傳感器可以獲取距離信息。Kinect屬于主動(dòng)探測(cè),其探測(cè)深度信息使用“光編碼”技術(shù)[8]。Kienct價(jià)格低廉,獲取信息豐富,非常適用于移動(dòng)機(jī)器人實(shí)時(shí)障礙物檢測(cè)。
1.1 Kinect標(biāo)定
使用 Kinect 傳感器進(jìn)行深度信息測(cè)量前,需要先對(duì)Kinect 傳感器進(jìn)行標(biāo)定[9]。標(biāo)定之后所獲取的校準(zhǔn)參數(shù)是從原始深度圖像坐標(biāo)計(jì)算3D坐標(biāo)所必需的。其深度測(cè)量的三角測(cè)量原理如圖1所示,圖中顯示了待測(cè)量物體的點(diǎn)k相對(duì)于參考平面的距離與測(cè)量的視差d之間的關(guān)系。為了表示對(duì)象點(diǎn)的3D坐標(biāo),本文采用深度坐標(biāo)系,其原點(diǎn)在左下角紅外攝像機(jī)的透視原點(diǎn)。z軸正交于朝向物體的像平面;x軸在基線b的方向上并垂直于z軸,y軸與x軸正交。
圖1 相對(duì)深度和測(cè)量差異之間的關(guān)系
假設(shè)物體在距離傳感器距離為Z0的參考平面上,并且在紅外相機(jī)的圖像平面上捕獲物體的斑點(diǎn),如果物體移動(dòng)得離傳感器更近或者更遠(yuǎn),則在圖像平面上的斑點(diǎn)位置將在x方向上移位。這在圖像空間中被測(cè)量為對(duì)應(yīng)對(duì)象空間中點(diǎn)k的視差d。從三角形相似性可知:
(1)
(2)
其中Zk表示物體空間中點(diǎn)k的距離(深度),b是基本長(zhǎng)度表示兩個(gè)相機(jī)之間的距離,f是紅外相機(jī)的焦距,D是點(diǎn)k在物體空間中的位移,且d是在圖像空間觀察到的視差。將D從式(2)代入式(1),并根據(jù)其他變量,得到:
(3)
其中(xk,yk)是點(diǎn)的圖像坐標(biāo),(x0,y0)是圖像坐標(biāo)的原點(diǎn),(δx,δy)是透鏡畸變的校正參數(shù)。
綜上所述,用于從原始圖像坐標(biāo)測(cè)量計(jì)算3D坐標(biāo)的數(shù)學(xué)模型中涉及的校準(zhǔn)參數(shù)包括:焦距(f)、主點(diǎn)偏移(x0,y0)、透鏡畸變系數(shù)(δx,δy)、基底長(zhǎng)度(b)、參考圖案的距離(Z0)。這些校準(zhǔn)參數(shù)完全限定了圖像測(cè)量(x,y,d)與每一個(gè)點(diǎn)空間坐標(biāo)(X,Y,Z)之間的關(guān)系。
在標(biāo)定完成之后,可以把深度圖像的像素點(diǎn)坐標(biāo)與投影到Kinect三維空間的點(diǎn)坐標(biāo)進(jìn)行轉(zhuǎn)換。轉(zhuǎn)換后,該Kinect三維空間坐標(biāo)系,即是以Kinect傳感器為坐標(biāo)原點(diǎn),x軸沿水平方向,y軸與x軸垂直,且平行于像素點(diǎn)成像平面,z軸垂直于xy平面。
1.2 深度圖像和RGB圖像的配準(zhǔn)
由圖2可以看到,Kinect的彩色攝像頭和紅外攝像頭并不在同一個(gè)位置且視角不同,所以Kinect的彩色圖像和深度圖像的每一幀的數(shù)據(jù)空間坐標(biāo)系是不同的,前者的原點(diǎn)是RGB攝像頭,后者的原點(diǎn)是紅外攝像頭,因此兩者之間會(huì)有相應(yīng)的誤差。
圖2 Kinect深度相機(jī)和RGB攝像機(jī)視角
可以在代碼處理時(shí)把深度生成器的視角設(shè)定為彩色生成器的視角,讓它們的視角保持一致。最主要的處理過(guò)程是實(shí)現(xiàn)兩個(gè)映射函數(shù):DepthToWorld從深度相機(jī)(x,y,d)映射到世界坐標(biāo),WorldToColor將世界坐標(biāo)中的點(diǎn)映射到彩色攝像機(jī)中的像素索引。經(jīng)過(guò)深度圖像與彩色圖像對(duì)準(zhǔn)之后,彩色圖像的每一個(gè)像素點(diǎn)都能在深度圖像中找到對(duì)應(yīng)點(diǎn)的深度信息。
在經(jīng)過(guò)1.1節(jié)和1.2節(jié)的步驟之后,相當(dāng)于在每一幀RGB圖像的每一個(gè)像素上又包含了高度信息。以此為基礎(chǔ),就可以進(jìn)一步獲取每一幀圖像中的障礙物與地平面區(qū)域。其處理過(guò)程如圖3所示。
圖3 深度信息障礙物獲取流程
(1)在圖像上提取地平線。因?yàn)楸疚恼J(rèn)為阻礙移動(dòng)機(jī)器人運(yùn)動(dòng)軌跡的障礙物為在地面上的凸障礙物,所以可以認(rèn)為障礙物與地面之間的交界線就是地平線。場(chǎng)景中高于地平線的距離超過(guò)一個(gè)閾值的即可以認(rèn)為是障礙物。所以,可以計(jì)算各行像素在移動(dòng)機(jī)器人坐標(biāo)系的高度平均值:
(4)
式中,N表示列的數(shù)目。
(2)識(shí)別地平面。通常像素如果處在同一個(gè)平面上,其高度變化的趨勢(shì)是緩慢的,當(dāng)出現(xiàn)障礙物時(shí),高度會(huì)出現(xiàn)階躍性的變化??梢詮膱D像由下至上遍歷每一行像素的高度值,如果某一行的高度的平均值大于其下面區(qū)域的高度平均值時(shí),該行就被認(rèn)為是地平線,而地平線以下的區(qū)域即被認(rèn)為是地平面,如:
(5)
式中,l1、ln分別表示起始行和結(jié)束行。
(6)
式中,C(i,j)表示像素點(diǎn)(i,j)的灰度值,yi,j表示該像素點(diǎn)的高度。
同時(shí),由于深度相機(jī)隨距離增加的隨機(jī)誤差,需要使用類似的方式標(biāo)記出2.5m以外的遠(yuǎn)景區(qū)域,即如果深度值大于閾值DA,則將該點(diǎn)的像素灰度值置為0。
C(i,j)=0, Ifzi,j>DA
(7)
式中,zi,j表示該像素點(diǎn)的高度。
(4)障礙物檢測(cè)。經(jīng)過(guò)步驟(3)標(biāo)記之后,即非感興趣的區(qū)域的灰度值已經(jīng)被置為0,余下的就是感興趣的區(qū)域。接下來(lái)就需要對(duì)感興趣區(qū)域做進(jìn)一步處理,以檢測(cè)障礙物。文中使用一個(gè)3×3結(jié)構(gòu)對(duì)二進(jìn)制感興趣區(qū)域進(jìn)行擴(kuò)張(腐蝕)操作,以閉合障礙物像素之間的間隙,這樣就初步得到了障礙物的區(qū)域。不過(guò)還不能區(qū)分不同深度的障礙物與同一深度不相連的障礙物。還需要在初步得到的障礙物區(qū)域的基礎(chǔ)上,查看其點(diǎn)的x軸和z軸坐標(biāo),在z軸與x軸不連續(xù)的位置進(jìn)行分割,將不同深度與同一深度不相連的障礙物分離出來(lái),這樣就獲得了障礙物個(gè)體。
為了進(jìn)一步說(shuō)明該障礙物檢測(cè)算法的流程,下面將在一個(gè)場(chǎng)景中應(yīng)用這個(gè)算法來(lái)說(shuō)明,場(chǎng)景選擇為實(shí)驗(yàn)室樓梯口,如圖4所示。其中(a)為場(chǎng)景圖,包括貼近地面的障礙物、普通障礙物和貼有反光帶具有反射干擾的障礙物;(b)為1.1小節(jié)Kinect標(biāo)定后,深度圖像各點(diǎn)對(duì)應(yīng)空間的三維坐標(biāo),為了易于查看,使用AntTweakBar將結(jié)果渲染出來(lái);(c)為預(yù)處理之后的深度圖;(d)中實(shí)線部分為提取的地平線;(e)顯示了標(biāo)記遠(yuǎn)景和地面的結(jié)果,因?yàn)樵搱?chǎng)景為室內(nèi)場(chǎng)景,所以沒(méi)有遠(yuǎn)景,只是標(biāo)記了地平面區(qū)域;(f)為經(jīng)過(guò)x軸、z軸不連續(xù)區(qū)域的分割,得到分離后的障礙物。
圖4 障礙物檢測(cè)算法流程
從圖4可以看到,本文算法可以基于Kinect有效檢測(cè)到障礙物。
本文研究了基于Kinect傳感器的障礙物檢測(cè)方法。首先經(jīng)過(guò)Kinect標(biāo)定與配準(zhǔn)之后,可以獲得RGB圖像像素點(diǎn)的三維空間坐標(biāo);第二,根據(jù)每一行像素點(diǎn)高度的平均值確定地平面;第三,以地平線為基礎(chǔ),確定地平面和障礙物區(qū)域,把障礙物區(qū)域作為感興趣區(qū)域;最后,在感興趣區(qū)域中,根據(jù)像素的空間坐標(biāo)的x、z值的連續(xù)性進(jìn)行切分,分割出障礙物。通過(guò)實(shí)驗(yàn)驗(yàn)證了本文算法的有效性。
[1] SANTANA P,GUEDES M, CORREIA L, et al. Stereo-based all-terrain obstacle detection using visual saliency[J]. Journal of Field Robotics, 2011, 28(2):241-263.
[2] MANSO L J, BUSTOS P, BURGOS P B, et al. Multi-cue visual obstacle detection for mobile robots[J]. Journal of Physical Agents, 2010, 4(1): 3-10.
[3] 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.
[4] YIN T W,THAR H H,AFZULPURKAR N,et al. Ultrasonic system approach to obstacle detection and edge detection[J].Sensors & Transducers,2011,127(4):124-135.
[5] SAHBA K,ALAMEH K E,SMITH C L. Obstacle detection andspectral discrimination using multi-wavelength motionlesswide angle laser scanning[J]. Optics Express,2008,16 (8):22-31.
[7] 劉海波,董玉杰,皇甫彩虹,等. 基于多傳感器信息融合的移動(dòng)機(jī)器人障礙物檢測(cè)算法研究[C].Proeeedings of the 31st Chinese Control Conferenee, Hefei, China,2012:25-27.
[8] VENTROUX N, SCHMIT R, PASQUET F, et al. Stereovision-based 3D obstacle detection for automotive safety driving assistance[C]. 12th International IEEE Conference on Intelligent Transportation Systems, 2009: 394-399.
[9] FRASER C S. Digital camera self-calibration[J]. Isprs Journal of Photogrammetry & Remote Sensing, 1997, 52(4):149-159.
[10] 李務(wù)軍, 吳斌. 基于Kinect深度圖像的三維重建[J]. 微型機(jī)與應(yīng)用, 2016, 35(5):54-57.
意法半導(dǎo)體(ST)聯(lián)手訊飛開放平臺(tái)提供中文語(yǔ)音識(shí)別
中國(guó),2017年3月15日——橫跨多重電子應(yīng)用領(lǐng)域、全球領(lǐng)先的半導(dǎo)體供應(yīng)商、世界頂級(jí)MEMS供應(yīng)商意法半導(dǎo)體(STMicroelectronics,簡(jiǎn)稱ST;紐約證券交易所代碼:STM)與國(guó)際領(lǐng)先的語(yǔ)音識(shí)別云服務(wù)提供商中國(guó)科大訊飛有限公司(深交所代碼: 002230),共同推出市場(chǎng)上首款支持中文語(yǔ)音識(shí)別服務(wù)的物聯(lián)網(wǎng)開發(fā)平臺(tái)。
新開發(fā)平臺(tái)整合了意法半導(dǎo)體的SensorTile多傳感器模塊、STM32 ODE(開放式開發(fā)環(huán)境)以及含有科大訊飛語(yǔ)音識(shí)別技術(shù)的Open.software軟件包。這項(xiàng)解決方案,讓智能家居、智能駕駛、物聯(lián)網(wǎng)硬件、機(jī)器人等行業(yè)的產(chǎn)品設(shè)計(jì)人員能夠快速開發(fā)出具有語(yǔ)音識(shí)別功能的應(yīng)用系統(tǒng)。
SensorTile模塊采用數(shù)字MEMS麥克風(fēng)(MP34DT04)捕獲語(yǔ)音輸入信號(hào),Bluetooth?Low-Energy收發(fā)器(BlueNRG-MS)通過(guò)智能手機(jī)將語(yǔ)音數(shù)據(jù)發(fā)送到科大訊飛的云平臺(tái),訊飛云服務(wù)器則在200 ms內(nèi)反饋語(yǔ)音識(shí)別結(jié)果。科大訊飛開放平臺(tái)市場(chǎng)負(fù)責(zé)人表示:“在智能家居、智能工業(yè)、智能駕駛領(lǐng)域,意法半導(dǎo)體SensorTile是聲控應(yīng)用開發(fā)人員可選擇的最佳載體之一。訊飛開放平臺(tái) (www.xfyun.cn)為開發(fā)者們提供一站式的人工智能解決方案,包括語(yǔ)音識(shí)別、語(yǔ)音合成、語(yǔ)音硬件等等。我們與意法半導(dǎo)體合作,給SensorTile平臺(tái)接入了全球第一的中文語(yǔ)音識(shí)別功能,同時(shí)也借助SensorTile平臺(tái)讓更多的用戶體驗(yàn)到科大訊飛的產(chǎn)品。我們期待未來(lái)雙方在智能家居方面有更多的合作,借助科大訊飛的人工智能核心優(yōu)勢(shì)、借助訊飛開放平臺(tái)上28萬(wàn)開發(fā)人員的人才優(yōu)勢(shì)、借助意法半導(dǎo)體的智能物聯(lián)網(wǎng)開發(fā)載體,共同為開發(fā)者提供更優(yōu)質(zhì)的服務(wù)?!?/p>
意法半導(dǎo)體大中華與南亞區(qū)模擬器件和MEMS產(chǎn)品部市場(chǎng)總監(jiān)吳衛(wèi)東表示:“SensorTile接入科大訊飛的自動(dòng)語(yǔ)音識(shí)別服務(wù)后,可以加快并簡(jiǎn)化具有語(yǔ)音功能的物聯(lián)網(wǎng)設(shè)計(jì)。同時(shí)利用強(qiáng)大的開放式軟件生態(tài)系統(tǒng),包括STM32TM的開放式開發(fā)環(huán)境,SensorTile平臺(tái)可縮短產(chǎn)品研發(fā)周期,讓設(shè)計(jì)人員開發(fā)出更加簡(jiǎn)約時(shí)尚的產(chǎn)品?!?/p>
(意法半導(dǎo)體 供稿)
Real-time obstacle detection based on Kinect
Ding Liang
(School of Computer Science and Technology, Hangzhou Dianzi University, Hangzhou 310018, China)
Traditional sensors have their own limitations in the field of obstacle detection for mobile robots. In this paper, an obstacle detection method based on Kinect is proposed. The Kinect sensor is used to obtain the depth image of the environment; The calibration parameters are obtained after Kinect calibration and registration; By these parameters, the correspondence between the image pixel points and the spatial three-dimensional coordinates is obtained; The ground plane and the obstacle area are determined by the spatial three-dimensional coordinates, and the obstacle area is regarded as the region of interest; The region of interest is processed by the continuity of the x and z axes in three-dimensional coordinates, and each obstacle is segmented. Finally, the experimental results show that the proposed algorithm can detect the obstacle information efficiently and in real time.
Kinect; obstacle detection; real time
TP311
A
10.19358/j.issn.1674- 7720.2017.07.006
丁亮.基于Kinect的實(shí)時(shí)障礙物檢測(cè)[J].微型機(jī)與應(yīng)用,2017,36(7):19-21,25.
2016-12-15)
丁亮(1989-),男,碩士研究生,主要研究方向:人工智能,智能算法。