段 勇, 盛栋梁, 于 霞
(沈阳工业大学 信息科学与工程学院, 沈阳 110870)
基于Kinect传感器的机器人室内环境检测方法*
段 勇, 盛栋梁, 于 霞
(沈阳工业大学 信息科学与工程学院, 沈阳 110870)
针对移动机器人室内环境检测问题,提出了一种基于Kinect传感器的目标物体检测方法.利用Kinect传感器采集的视频图像和深度数据来实现对机器人工作环境中已知特征目标物体和完全未知目标物体的检测及定位.对于已知特征目标通过颜色特征分析来完成检测,而对于完全未知的物体则通过深度地面消除算法和提取深度图像的轮廓来进行检测.利用传感器成像模型对检测出的目标区域进行三维空间定位,从而获取目标物相对于机器人的空间位置信息.基于移动机器人平台进行实验,结果表明,该方法能够有效地实现室内环境信息的检测及定位.
Kinect传感器;自主移动机器人;颜色特征;三维空间定位;激光成像;深度信息;视频图像;室内环境检测
自主移动机器人作为机器人的一个重要分支,由于它具有移动便捷性,目前已经得到广泛研究和迅速发展,同时在工业、农业、军用和民用等领域也得到了较为广泛的应用.自主移动机器人是指机器人能够自主地在未知结构化或非结构化环境中完成预期工作任务.要使机器人拥有智能并能够在未知环境中自主地完成各种导航任务,必须使机器人具有感知环境的能力,因此,将传感器采集的环境信息加以处理和利用是机器人进行学习和行为决策的基础[1-2].
目前,移动机器人可装配的用于感知环境的传感器种类繁多,同时对相关环境的检测方法有着较为广泛的研究.文献[3]采用基于激光传感器的检测方法,利用激光测距仪虽能比较精确地检测当前环境信息,但是无法识别特定目标而且传感器价格昂贵,性价比不高;文献[4]研究了使用超声传感器的机器人障碍检测方法,但其缺点是获得的环境信息比较粗糙,精度不高;文献[5]提出了一种基于视觉图像特征提取及分割的检测方法,基于HSI颜色分量特征的提取方法能较好地检测周围环境,但其受光照影响比较大且无法便捷、精确地对所检测到的目标进行空间定位.
Kinect传感器是微软公司研制并在2010年推出的一种新的三维激光传感器,它不但能获取环境的光学图像还能获取检测物体的位置信息.该传感器获取的信息量丰富,结构简单、实时性强并且价格较为低廉,因此可以成为机器人环境感知的一种有利工具.
本文利用移动机器人装配的Kinect传感器所采集到的彩色图像和深度图像相结合来进行环境检测.对机器人工作的室内环境信息进行分类,可分为已知特征目标和未知目标.对已知目标采用颜色阈值分割的算法对其进行检测,对未知目标进行地面模型减除法和轮廓识别算法来对其进行检测.
本文使用的实体机器人平台(UP-Voyager IIA)及Kinect感知系统如图1所示.该移动机器人左轮和右轮使用独立电机驱动方式,通过给定两轮速度可以实现机器人的任意方向运动.
图1 机器人实验平台Fig.1 Robot experiment platform
机器人装配Kinect传感器用于感知环境,传感器在视频摄像头左右两侧安装光源发射器和接收器,用于获取深度数据.Kinect传感器通过光源照明编码测量空间实现深度测量,通过激光照射到空间目标物体后形成的具有高度随机性的光斑来达到测量目的.通过对光源标定实现结构光投射空间的标记,当传感器检测到空间中目标表面的光斑就可以获取该目标的深度数据.Kinect传感器采集的信息由机器人自身的计算机进行数据分析和处理以实现环境信息的检测.
Kinect传感器通过彩色摄像头和深度摄像头来采集室内环境的相关信息,通过输出一个RGB图像和深度数据来确定环境中每一个点的颜色信息和深度信息[6].由于Kinect传感器本身的技术限制,其深度数据精度会随着距离的增加而产生更大的随机误差[7].因此,为了准确地检测环境信息并同时满足室内移动机器人工作的需要,本文只讨论在一定有效测距范围内的环境信息检测问题.
1.1 传感器数据采集和处理
通过Kinect所采集到的原始彩色图像如图2所示,其对应的深度数据如图3所示.在深度图中将深度信息映射成颜色来显示.
图2 原始彩色图像Fig.2 Original color image
图3 原始深度映射图Fig.3 Original depth mapping image
由图2、3可知,Kinect采集的原始彩色图像和深度数据图在像素点上并不是一一对应[8].这是由于Kinect彩色摄像头光心和深度光源摄像头光心位置及视角范围不同造成的.为了使传感器采集的彩色图像和深度图像之间相同位置像素点能够一一对应,有必要对两者进行匹配.本文采用的方法是将深度生成器的视角进行平移,使之和彩色生成器的视角重合.图4为视角匹配后的深度图,其中每个像素点与彩色图相对应.
图4 匹配完视角后的深度图Fig.4 Depth image after matching perspective
1.2 深度摄像机标定
摄像机的标定是将图像的像素点与真实世界物理坐标系之间进行联系,从而得到一种二维到三维的映射关系.通过这种映射关系就可以对所检测到的目标进行测量和定位.由于深度摄像头的成像模型和针孔摄像机成像模型类似,图像像素坐标系为O1XY,摄像机坐标系为OCXCYCZC,因此,利用传感器成像模型,通过像素点(u,v)偏离图像中心位置(u0,v0)的三维坐标来计算,其表达式为
(1)
(2)
ZC=depth(u,v)
(3)
式中:fx、fy为摄像机的内参数,表示在x、y方向上的焦距;XC、YC、ZC为像素点(u,v)相对图像中心位置像素(u0,v0)在不同方向上的偏移距离;depth(u,v)为像素点对应的空间深度距离值.
图像特征主要包括颜色、形状、边缘、空间关系和纹理等[9],在机器人工作环境中进行检测路标、跟踪目标物等都需要对颜色特征进行检测和定位.因此,本文采用Kinect传感器对已知颜色特征目标进行检测和定位.
2.1 已知颜色特征目标识别
基于颜色阈值分割识别,首先根据颜色先验知识采集目标物在HSI颜色空间的颜色阈值,然后将Kinect采集到的原始彩色图像进行阈值分割,并生成连续的连通区域,最后记录同一颜色连通区域的质心、像素个数和边界等信息,为后续处理做准备,具体步骤为:
1) 对彩色图像像素进行扫描,并根据颜色阈值分割结果建立行连通区域,顺序进行行扫描得到每一行的连通区.
2) 将不同行的连通区合并得到完整连通区域,其合并原则为:①相邻两行的连通区属于同一颜色阈值;②相邻两行的连通区之间存在某一部分的粘连.
3) 分割出多个连通区域后,保留较大的区域作为分割颜色目标,较小的区域作为噪声处理,最终实现对颜色特征的识别.图5为原始彩色图像,目标物和多颜色路标识别结果如图6、7所示.
图5 Kinect采集的彩色图Fig.5 Color image acquired by Kinect
图6 目标识别结果Fig.6 Recognition result for object
图7 路标识别结果Fig.7 Recognition result for landmark
2.2 已知目标定位
识别出目标后还需要对其进行定位,以获取目标物相对于机器人传感器的位置信息.基于上文对彩色图像和深度图的匹配结果,将分割目标质心在彩色图像中的像素坐标对应到深度图相同位置的像素坐标上,该像素坐标的深度值就是目标质心的相对距离,从而实现了对目标的定位.设特征目标在彩色图像中质心坐标为(xC,yC),对应匹配后深度数据图坐标xd=xC且yd=yC.该点的深度数据即为目标质心相对于机器人传感器的深度距离值.根据Kinect传感器的内参数fx、fy和u0、v0,通过式(1)~(3)即可求得目标质心的三维空间坐标.
机器人需要检测工作环境中的未知目标物体主要是指环境中的障碍物、座椅和墙壁等,这些物体是完全未知的,其尺寸、纹理、形状和颜色等特征也无法定义,使用传统方法对其进行检测和定位难以取得理想效果.因此,本文基于Kinect传感器提出了一种通过轮廓来识别未知目标和边界的方法.
3.1 地面模型建立
根据移动机器人室内工作的实际需求,假设地面是水平的,机器人在二维平面空间中运动.因此,只考虑环境中位于地面以上并和地面接触的物体为待检测的未知目标物体,在传感器检测信息中去除地面即可得到未知障碍物.
Kinect传感器采集的深度数据只与空间物体的距离有关,同时其映射颜色值变化方向与深度传感器视场中z轴方向一致[10-11],因此,可以在Kinect传感器与地面相对高度和俯仰角一定的条件下建立一个稳定的地面模型,该模型用来检测地面以上的未知目标物.传感器获取的原始深度数据图如图8所示.图8中显示为黑色的像素代表无效测量数据,其产生的原因是物体反光、物体边缘复杂、强光或超出感知范围等.
图8 地面深度图Fig.8 Depth image of ground
由于Kinect传感器采集的深度信息只与距离有关,因此,与Kinect传感器距离相同的地面对应的深度数据也是相同的,故选择在传感器检测范围内空旷无障碍物的环境下采集深度数据.Kinect传感器采集的近距离数据比较完整,在远距离处会出现一定的不确定性.深度数据图中每一行记录了与Kinect传感器相同距离下的地面深度数据信息,再进行行扫描后记录每一行的深度信息.在去除无效数据(黑色像素)后,对有效深度数据进行加权平均得到该处地面的深度信息,从而得到基于深度信息的地面模型,如图9所示.该地面模型相对于基于视觉纹理的地面模型,其不受光照条件影响,并不依赖于视觉特征,因此具有较好的稳定性和广泛的适用性.
图9 地面模板深度图Fig.9 Depth image of ground template
3.2 未知目标物识别
移动机器人对未知目标物体的检测方法是使用建立的深度地面模型去除法来删除地面信息,余下的即是环境中的障碍物.对传感器采集的深度数据和建立的深度地面模型做差,当差值小于设定阈值则认为它是地面区域;反之则认为是地面之上的未知目标物.图10为去除地面未知目标物后的初步检测结果,其中,图10a为环境的原始深度信息图,图10b为去除地面后的深度图.
基于上述初步检测目标物结果,本文讨论每个目标物的分割和定位方法,具体步骤为:
1) 利用类似图像处理的方法对Kinect采集的深度数据进行边缘平滑处理,以便后续研究.
2) 对得到的深度数据映射图执行Canny边缘检测,以获得各目标物的边缘特征信息.Canny边缘检测主要包括:①使用一阶偏导的有限差分计算边缘梯度的幅值和方向;②抑制梯度幅值的非极大值;③使用双阈值算法进行检测和连接边缘.
3) 找出所有目标物的边界轮廓,将所有满足条件的连通体存入结构体中,并记录各连通体的顶点坐标信息和外包围的长宽信息.
3.3 未知目标物定位
移动机器人对工作环境的感知需要检测环境中所有未知障碍目标物,并确定每个目标物相对于机器人的空间位置信息.本文提出一种基于边界列扫描的方法来实现目标物完整的信息检测及定位.
机器人工作环境中往往目标边缘处的深度信息比较复杂,并且边缘信息在深度数据图中表示不同距离的目标物,因此,本文采用一种基于边界列扫描的方法确定深度图边缘处的信息,具体步骤如下:
1) 对于初步分割的目标,获取目标物外包围框的各顶点坐标.
2) 在机器人实际工作中,需要获取目标物的左边界和右边界的相对位置信息.以左边界为例,从横坐标x1开始从y1到y2进行列扫描,其中(x1,y1)和(x1,y2)分别表示目标物外包围框左上顶点坐标和左下顶点坐标.当扫描到第一个有效深度值时,记录该数值为第一个目标的种子点,当扫描到第二个有效深度值时,和第一个比较,若两者之差小于一定的阈值则两者合并为一个种子点;若两者之差超过一定的阈值则记录后者为新的目标种子点,直至扫描到y2为止.记录该列所含目标的信息,其中包括目标的个数、不同目标的距离、不同目标所包含的像素点个数、不同目标顶端坐标和不同目标底端坐标.取这一列中所含像素点个数最多的目标视为最终目标并与边界长度进行比较,若目标像素点的个数能够占到整个边界像素点个数总和的80%,则说明已经到达边界处并继续执行步骤3),否则横坐标加1继续进行扫描直至到达边界为止.
3) 对最终目标的所有深度数据进行加权平均,得到的最终值就是目标物边界到机器人的实际深度距离,再通过式(1)~(3)来求得边界处的三维空间坐标信息.
使用UP-Voyager IIA自主移动机器人搭载Kinect传感器进行实验.实验环境为狭小的办公室环境和较空旷的大厅环境.
在办公室环境内进行实验时,Kinect采集到的彩色图像如图11所示,环境中包含纸箱、墙壁、门和书柜等.采集的深度数据映射图如图12所示.基于上述研究方法,通过目标检测得到的多个未知目标物识别定位结果如图13所示.图13中使用白色线框标识出所有检测目标物的边界信息,并给出各边界相对于机器人的空间位置信息.可见机器人能够有效地检测出工作环境中的所有目标物,检测方法对小体积的障碍物和较大体积的门、墙壁等具有较好的检测效果.
图11 室内彩色图Fig.11 Indoor color image
图12 室内深度图Fig.12 Indoor depth image
图13 室内识别结果Fig.13 Indoor recognition result
为了验证算法的有效性,在另外一个空旷的室内大厅进行实验.环境中包含障碍物和远处的墙壁等.Kinect采集的原始视频图像和深度数据如图14、15所示.图16为未知目标物的识别结果.从Kinect所采集的深度图中可以看出,Kinect对于近处的障碍和墙壁能够检测到其深度信息,并进行有效的分割定位.
图14 走廊彩色图Fig.14 Corridor color image
图15 走廊深度图Fig.15 Corridor depth image
图16 走廊识别结果Fig.16 Corridor recognition result
在检测结果中远处的物体边缘会产生部分无效数据,其原因是Kinect传感器检测数据原理和技术限制使得其在检测具有复杂边缘或距离过远的物体时,必然出现具有无效数据的情况.但这不会对目标的识别效果和机器人导航的应用产生影响,应用检测目标的外包围框来描述目标的空间位置信息,而部分无效数据不会使外包围框缩小,对于机器人的障碍物检测不会产生不良效果以导致机器人的危险运行.此外,对于机器人路径规划、避障等导航任务,通常需要在机器人和检测目标之间扩充一定的安全距离,以保证机器人的安全,而机器人和目标又都具有较大的体积,因此物体边缘的无效数据对于移动机器人的实际工作需求是没有影响的.在机器人工作过程中,当其不断接近目标时,环境条件对检测的影响也会随之减弱,边缘的无效数据数量也会减少,使得机器人能够获得更精确的检测结果.
为了验证算法对目标定位的有效性和准确性,采用多组实验数据验证测距精度,检测误差结果如图17所示,其中x轴表示深度距离,y轴表示该深度距离下多次检测的平均误差.图17中两条折线代表了对于已知特征目标和未知目标的定位误差随着深度距离增加而变化的趋势.
图17 不同距离检测误差Fig.17 Measurement errors at different distance
由图17可知,定位误差随着距离的增加而增加.已知目标误差较小的原因是由于已知目标所检测的位置位于目标的中心处,深度信息比较稳定,而未知目标所检测的位置在边缘处,深度信息不稳定.虽然存在着误差,但是随着机器人不断接近目标,误差也会随之减少.相对于移动机器人的体积、运动速度和工作任务的要求,其检查结果和精度可以满足机器人导航的实际要求.
与目前移动机器人常用的感知传感器相比较,本文检测方法能够有效地获得目标物体的完整空间位置信息,为机器人执行导航任务提供依据.与单目视觉相比较,视觉能够分割目标轮廓,但其定位精度低且不稳定(由成像模型决定),此外根据视觉成像原理,需已知目标物三维信息中的某一维精细信息,这在机器人工作环境中是非常受限制的,难以广泛实现.与测距传感器(激光、声纳)相比较,该类型传感器只能进行平面扫描,因此只能检测目标物体的相对距离信息,而无法获取目标的高度信息,因此无法检测目标的三维空间信息.同时本文使用的Kinect传感器价格更为低廉,在机器人等领域有着广泛的应用前景.
本文研究了利用机器人装配的Kinect传感器进行室内已知颜色特征目标和完全未知特征目标物的检测识别方法.对于已知颜色特征目标使用阈值分割和区域连通方法对目标进行识别,并结合深度数据实现目标的空间定位.此外,采用地面模型去除法消除地面对未知目标物检测的影响,通过对轮廓进行识别成功地实现了对未知目标的检测,利用边界列扫描方法实现了对未知目标的定位.实验验证了目标检测和定位的有效性,能够满足移动机器人室内环境工作的需要.
[1]王东署,王佳.未知环境中移动机器人环境感知技术研究综述 [J].机床与液压,2013,41(15):187-197.
(WANG Dong-shu,WANG Jia.Research review of environmental cognition techniques of mobile robots in unknown environment [J].Machine Tool and Hydraulics,2013,41(15):187-197.)
[2]陈宇,温欣玲.基于多传感智能移动机器人环境探测系统研究与设计 [J].核电子学与探测技术,2007,27(6):1242-1245.
(CHEN Yu,WEN Xin-ling.Design and research of intelligent mobile robot environment detection system based on multi-sensor technology [J].Nuclear Electronics &Detection Technology,2007,27(6):1242-1245.)
[3]雷艳敏,朱齐丹,仲训昱,等.基于激光测距仪的障碍物检测的仿真研究 [J].计算机工程与设计,2012,33(2):719-723.
(LEI Yan-min,ZHU Qi-dan,ZHONG Xun-yu,et al.Study on obstacle detection based on laser range finder [J].Computer Engineering and Design,2012,33(2):719-723.)
[4]Cristina D,Alvaro H,Ana J,et al.Ultrasonic array for obstacle detection based on CDMA with Kasami codes [J].Sensors,2012,12(11):11464-11475.
[5]杨杰,张铭钧,尚云超.一种移动机器人视觉图像特征提取及分割方法 [J].机器人,2008,30(4):311-317.
(YANG Jie,ZHANG Ming-jun,SHANG Yun-chao.A visual image feature extraction and segmentation method for mobile robot [J].Robot,2008,30(4):311-317.)
[6]杨东方,王仕成,刘华平,等.基于 Kinect 系统的场景建模与机器人自主导航 [J].机器人,2012,34(5):581-589.
(YANG Dong-fang,WANG Shi-cheng,LIU Hua-ping,et al.Scene modeling and autonomous navigation for robots based on Kinect system [J].Robot,2012,34(5):581-589.)
[7]Kourosh K,Sander O E.Accuracy and resolution of Kinect depth data for indoor mapping applications [J].Sensors,2012,12(2):1437-1454.
[8]余涛.Kinect应用开发实战:用最自然的方式与机器对话 [M].北京:机械工业出版社,2012:92-93.
(YU Tao.Kinect application development practice:dia-logue with machine in the most natural way [M].Beijing:China Machine Press,2012:92-93.)
[9]杨俊友,马乐,白殿春,等.机器人的混合特征视觉环境感知方法 [J].中国图象图形学报,2012,17(1):114-122.
(YANG Jun-you,MA Le,BAI Dian-chun,et al.Robot vision environmental perception method based on hybrid features [J].Journal of Image and Graphics,2012,17(1):114-122.)
[10]魏琳,黄鑫材.Kinect深度信息的研究及其在检测中的应用 [J].杭州电子科技大学学报,2013,33(5):78-81.
(WEI Lin,HUANG Xin-cai.Research on depth information of Kinect and its application in detection [J].Journal of Hangzhou Dianzi Unviversity,2013,33(5):78-81.)
[11]朱涛,芦利斌,金国栋.基于Kinect 深度技术的障碍物在线快速检测算法 [J].电子设计工程,2014,22(12):176-179.
(ZHU Tao,LU Li-bin,JIN Guo-dong.Obstacle detection algorithm online based on Kinect depth technique [J].Electronic Design Engineering,2014,22(12):176-179.)
(责任编辑:钟 媛 英文审校:尹淑英)
Indoor environment detection method of robot based on Kinect sensor
DUAN Yong,SHENG Dong-liang,YU Xia
(School of Information Science and Engineering,Shenyang University of Technology,Shenyang 110870,China)
Aiming at the indoor environment detection problem of mobile robot,a target object detection method based on Kinect sensor was proposed.With the video image and depth data captured by Kinect sensor,the detection and localization of target objects with the known features and the completely unknown target objects in the work environment of robot were realized.For the target objects with the known features,the detection could be implemented with the color feature analysis.For the completely unknown objects,the detection could be implemented through adopting the depth ground elimination algorithm and extracting the contour of depth image.Furthermore,the three dimensional spatial localization for the detected object area was performeed with the sensor imaging model,and thus the relative spatial location information between the subject object and robot was obtained.The experiments were implemented based on a mobile robot platform.The results show the proposed method can effectively achieve the detection and localization of indoor environment information.
Kinect sensor;autonomous mobile robot;color feature;3D space localization;laser imaging;depth information;video image;indoor environment detection
2016-04-27.
国家自然科学基金资助项目(51267009).
段 勇(1978-),男,辽宁沈阳人,副教授,博士,主要从事智能机器人和计算机视觉等方面的研究.
22 17∶39在中国知网优先数字出版.
http:∥www.cnki.net/kcms/detail/21.1189.T.20161222.1739.006.html
10.7688/j.issn.1000-1646.2017.02.10
TP 242
A
1000-1646(2017)02-0170-07