丁 亮
(杭州电子科技大学 计算机学院,浙江 杭州 310018)
基于Kinect的实时障碍物检测
丁 亮
(杭州电子科技大学 计算机学院,浙江 杭州 310018)
传统的传感器在移动机器人障碍物检测领域都有其各自的局限性。文章提出基于Kinect的障碍物检测方法:利用Kinect传感器获取环境深度图像;通过Kinect标定配准之后获取校准参数;通过该参数获得图像像素点与空间三维坐标的对应关系;通过空间三维坐标确定地平面与障碍物区域,并将障碍物区域作为感兴趣区域;通过三维坐标在x轴和z轴的连续性对感兴趣区域进行处理,分割出各个障碍物。实验结果表明,文中算法可以有效且实时地检测到障碍物信息。
Kinect;障碍物检测;实时
移动机器人是机器人学中的一个重要分支,指通过自身的传感器获取周围的环境信息和自身状态,实现在有障碍物的环境中自主向目标移动,最终完成任务的机器人。
关于获取环境信息,众多科研工作者目前的尝试可以概括为以下五方面:基于超声波的检测方法[1-2]、基于激光雷达的检测方法[3]、基于红外的检测方法[4]、基于视觉的检测方法[5-6]以及基于传感器组合的检测方法[7]。
这些方法都可以有效地感知周围环境信息,但也都有其局限性。本文使用微软的Kinect传感器,其不同于一般的视觉传感器,Kinect除了具有RGB彩色摄像头可提供二维视觉图像外,还具有深度传感器可以获取距离信息。Kinect属于主动探测,其探测深度信息使用“光编码”技术[8]。Kienct价格低廉,获取信息丰富,非常适用于移动机器人实时障碍物检测。
1.1 Kinect标定
使用 Kinect 传感器进行深度信息测量前,需要先对Kinect 传感器进行标定[9]。标定之后所获取的校准参数是从原始深度图像坐标计算3D坐标所必需的。其深度测量的三角测量原理如图1所示,图中显示了待测量物体的点k相对于参考平面的距离与测量的视差d之间的关系。为了表示对象点的3D坐标,本文采用深度坐标系,其原点在左下角红外摄像机的透视原点。z轴正交于朝向物体的像平面;x轴在基线b的方向上并垂直于z轴,y轴与x轴正交。
图1 相对深度和测量差异之间的关系
假设物体在距离传感器距离为Z0的参考平面上,并且在红外相机的图像平面上捕获物体的斑点,如果物体移动得离传感器更近或者更远,则在图像平面上的斑点位置将在x方向上移位。这在图像空间中被测量为对应对象空间中点k的视差d。从三角形相似性可知:
(1)
(2)
其中Zk表示物体空间中点k的距离(深度),b是基本长度表示两个相机之间的距离,f是红外相机的焦距,D是点k在物体空间中的位移,且d是在图像空间观察到的视差。将D从式(2)代入式(1),并根据其他变量,得到:
(3)
其中(xk,yk)是点的图像坐标,(x0,y0)是图像坐标的原点,(δx,δy)是透镜畸变的校正参数。
综上所述,用于从原始图像坐标测量计算3D坐标的数学模型中涉及的校准参数包括:焦距(f)、主点偏移(x0,y0)、透镜畸变系数(δx,δy)、基底长度(b)、参考图案的距离(Z0)。这些校准参数完全限定了图像测量(x,y,d)与每一个点空间坐标(X,Y,Z)之间的关系。
在标定完成之后,可以把深度图像的像素点坐标与投影到Kinect三维空间的点坐标进行转换。转换后,该Kinect三维空间坐标系,即是以Kinect传感器为坐标原点,x轴沿水平方向,y轴与x轴垂直,且平行于像素点成像平面,z轴垂直于xy平面。
1.2 深度图像和RGB图像的配准
由图2可以看到,Kinect的彩色摄像头和红外摄像头并不在同一个位置且视角不同,所以Kinect的彩色图像和深度图像的每一帧的数据空间坐标系是不同的,前者的原点是RGB摄像头,后者的原点是红外摄像头,因此两者之间会有相应的误差。
图2 Kinect深度相机和RGB摄像机视角
可以在代码处理时把深度生成器的视角设定为彩色生成器的视角,让它们的视角保持一致。最主要的处理过程是实现两个映射函数:DepthToWorld从深度相机(x,y,d)映射到世界坐标,WorldToColor将世界坐标中的点映射到彩色摄像机中的像素索引。经过深度图像与彩色图像对准之后,彩色图像的每一个像素点都能在深度图像中找到对应点的深度信息。
在经过1.1节和1.2节的步骤之后,相当于在每一帧RGB图像的每一个像素上又包含了高度信息。以此为基础,就可以进一步获取每一帧图像中的障碍物与地平面区域。其处理过程如图3所示。
图3 深度信息障碍物获取流程
(1)在图像上提取地平线。因为本文认为阻碍移动机器人运动轨迹的障碍物为在地面上的凸障碍物,所以可以认为障碍物与地面之间的交界线就是地平线。场景中高于地平线的距离超过一个阈值的即可以认为是障碍物。所以,可以计算各行像素在移动机器人坐标系的高度平均值:
(4)
式中,N表示列的数目。
(2)识别地平面。通常像素如果处在同一个平面上,其高度变化的趋势是缓慢的,当出现障碍物时,高度会出现阶跃性的变化。可以从图像由下至上遍历每一行像素的高度值,如果某一行的高度的平均值大于其下面区域的高度平均值时,该行就被认为是地平线,而地平线以下的区域即被认为是地平面,如:
(5)
式中,l1、ln分别表示起始行和结束行。
(6)
式中,C(i,j)表示像素点(i,j)的灰度值,yi,j表示该像素点的高度。
同时,由于深度相机随距离增加的随机误差,需要使用类似的方式标记出2.5m以外的远景区域,即如果深度值大于阈值DA,则将该点的像素灰度值置为0。
C(i,j)=0, Ifzi,j>DA
(7)
式中,zi,j表示该像素点的高度。
(4)障碍物检测。经过步骤(3)标记之后,即非感兴趣的区域的灰度值已经被置为0,余下的就是感兴趣的区域。接下来就需要对感兴趣区域做进一步处理,以检测障碍物。文中使用一个3×3结构对二进制感兴趣区域进行扩张(腐蚀)操作,以闭合障碍物像素之间的间隙,这样就初步得到了障碍物的区域。不过还不能区分不同深度的障碍物与同一深度不相连的障碍物。还需要在初步得到的障碍物区域的基础上,查看其点的x轴和z轴坐标,在z轴与x轴不连续的位置进行分割,将不同深度与同一深度不相连的障碍物分离出来,这样就获得了障碍物个体。
为了进一步说明该障碍物检测算法的流程,下面将在一个场景中应用这个算法来说明,场景选择为实验室楼梯口,如图4所示。其中(a)为场景图,包括贴近地面的障碍物、普通障碍物和贴有反光带具有反射干扰的障碍物;(b)为1.1小节Kinect标定后,深度图像各点对应空间的三维坐标,为了易于查看,使用AntTweakBar将结果渲染出来;(c)为预处理之后的深度图;(d)中实线部分为提取的地平线;(e)显示了标记远景和地面的结果,因为该场景为室内场景,所以没有远景,只是标记了地平面区域;(f)为经过x轴、z轴不连续区域的分割,得到分离后的障碍物。
图4 障碍物检测算法流程
从图4可以看到,本文算法可以基于Kinect有效检测到障碍物。
本文研究了基于Kinect传感器的障碍物检测方法。首先经过Kinect标定与配准之后,可以获得RGB图像像素点的三维空间坐标;第二,根据每一行像素点高度的平均值确定地平面;第三,以地平线为基础,确定地平面和障碍物区域,把障碍物区域作为感兴趣区域;最后,在感兴趣区域中,根据像素的空间坐标的x、z值的连续性进行切分,分割出障碍物。通过实验验证了本文算法的有效性。
[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] 刘海波,董玉杰,皇甫彩虹,等. 基于多传感器信息融合的移动机器人障碍物检测算法研究[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] 李务军, 吴斌. 基于Kinect深度图像的三维重建[J]. 微型机与应用, 2016, 35(5):54-57.
意法半导体(ST)联手讯飞开放平台提供中文语音识别
中国,2017年3月15日——横跨多重电子应用领域、全球领先的半导体供应商、世界顶级MEMS供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)与国际领先的语音识别云服务提供商中国科大讯飞有限公司(深交所代码: 002230),共同推出市场上首款支持中文语音识别服务的物联网开发平台。
新开发平台整合了意法半导体的SensorTile多传感器模块、STM32 ODE(开放式开发环境)以及含有科大讯飞语音识别技术的Open.software软件包。这项解决方案,让智能家居、智能驾驶、物联网硬件、机器人等行业的产品设计人员能够快速开发出具有语音识别功能的应用系统。
SensorTile模块采用数字MEMS麦克风(MP34DT04)捕获语音输入信号,Bluetooth®Low-Energy收发器(BlueNRG-MS)通过智能手机将语音数据发送到科大讯飞的云平台,讯飞云服务器则在200 ms内反馈语音识别结果。科大讯飞开放平台市场负责人表示:“在智能家居、智能工业、智能驾驶领域,意法半导体SensorTile是声控应用开发人员可选择的最佳载体之一。讯飞开放平台 (www.xfyun.cn)为开发者们提供一站式的人工智能解决方案,包括语音识别、语音合成、语音硬件等等。我们与意法半导体合作,给SensorTile平台接入了全球第一的中文语音识别功能,同时也借助SensorTile平台让更多的用户体验到科大讯飞的产品。我们期待未来双方在智能家居方面有更多的合作,借助科大讯飞的人工智能核心优势、借助讯飞开放平台上28万开发人员的人才优势、借助意法半导体的智能物联网开发载体,共同为开发者提供更优质的服务。”
意法半导体大中华与南亚区模拟器件和MEMS产品部市场总监吴卫东表示:“SensorTile接入科大讯飞的自动语音识别服务后,可以加快并简化具有语音功能的物联网设计。同时利用强大的开放式软件生态系统,包括STM32TM的开放式开发环境,SensorTile平台可缩短产品研发周期,让设计人员开发出更加简约时尚的产品。”
(意法半导体 供稿)
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的实时障碍物检测[J].微型机与应用,2017,36(7):19-21,25.
2016-12-15)
丁亮(1989-),男,硕士研究生,主要研究方向:人工智能,智能算法。