APP下载

基于Kinect的环境平面特征提取与重构

2016-05-14王梅于远芳屠大维周华

计算机应用 2016年5期

王梅 于远芳 屠大维 周华

摘要:针对三维场景物体特征识别过程中数据量大、算法复杂等问题,提出一种基于Kinect的环境平面特征提取与重构算法。首先,针对场景的点云分割,采用融合场景几何信息和颜色信息的随机采样一致性(RANSAC)算法,综合二者分割优势,克服几何特征分割过程中分割不足或者过分割,提高分割精度;其次,根据投影变换原理推导出相应的三维坐标变换矩阵,指导分割后独立区域内的三维平面特征信息到二维空间映射,利用凸包概念搜索物体边界信息,实现二维空间的轮廓点提取;最后,通过旋转逆变换,恢复轮廓点的三维信息,完成环境特征重构。采用3组场景数据验证所提算法,实验结果表明,所提算法分割较精确,不容易产生过分割的情况,对不同形状特征的物体,具有较好的重构效果。

关键词:Kinect;平面分割;轮廓提取;平面重构

中图分类号:TP391.41 文献标志码:A

Abstract:Aiming at the problem of the large amount of data and the complicated algorithm in 3D scene feature recognition process, an feature extraction and reconstruction of environmental plane algorithm based on Kinect was proposed. Firstly, a method of RANdom SAmple Consensus (RANSAC) environment segmentation with the combination of geometrical and color information was proposed, which overcame the over segmentation and lacksegmentation based on geometric characteristic and improved the accuracy. Secondly, according to the principle of perspective projection, the threedimensional transformation matrix was derived, which guided the 3D environment mapped into a plane. The extraction of contour points in twodimensional space was realized by searching object boundary information which used convex hull concept. Finally, the 3D information of the contour points was recovered by the rotating inverse transform and the reconstruction of environment features was completed. Three groups of scene data were used to verify the algorithm and the experimental results show the proposed algorithm gains more precise segmentation, reduces over segmentation phenomena, and also has better reconstruction effect for objects with different shape features.

Key words:Kinect; plane segmentation; contour extraction; feature reconstruction

0 引言

环境特征提取是移动机器人导航技术研究热点,机器人要在未知环境中完成导航、自主抓取等服务功能,必须对其周围环境有明确的了解,而室内三维环境特征重构为其提供了更为丰富可靠的环境信息,机器人可以根据重构信息决策自己的任务,实现与周围环境的交互[1-3]。

环境重构的方法根据使用的传感器不同可分为基于结构光的重构和基于机器视觉的重构。基于结构光的扫描设备,如激光扫描仪,是采用非接触式点测量的方法实时获得周围环境的三维空间信息[4-6]。但是此类设备体积大,价格昂贵,而且采集的数据量较大,限制了其在三维场景重构技术中的发展应用。而微软开发的Kinect作为XBOX的一款体感外设,近年来不断被应用于室内机器人环境建模领域[7]。与激光传感器相比,Kinect可以同时快速地获取场景的颜色信息和深度信息,成本更为低廉。Endres等[8]、Somlyai等[9]提出了基于Kinect的环境重构系统,构建了具有点特征的三维环境。但是,利用点信息表示环境特征存储量大,容易造成计算负荷沉重等问题。

在室内环境中,平面是其重要的组成部分,通过对平面特征的提取进行环境重构可减小存储量以及计算负荷,使机器人与周围环境进行交互时更为方便、简捷。本文提出一种面向室内的环境平面特征提取与重构方法。该方法的核心在于融合颜色信息和几何信息对场景中的物体分割以及在二维空间进行边缘轮廓提取进行重构。

1 环境平面特征提取与重构方法

针对机器人三维环境特征重构问题,基于Kinect的环境平面特征提取与重构需要经过点云采集、点云图像分割、轮廓特征识别、平面特征重构等几个步骤(如图1所示)。

利用安装在机器人上的Kinect传感器作为信息采集设备,并使机器人坐标系和Kinect坐标系重合(图2)。Kinect可以同时获取场景的RGB图像和深度图像,其中RGB图像与深度图像按二维图像像素点一一对应,将彩色相机获取的RGB 图像和红外发射器与深度相机获取的深度图像进行融合即可得到彩色三维点云图像。

其后,将采集的点云信息经过改进随机采样一致性(RANdom Sample Consensus, RANSAC)算法进行分割后获取具有平面特征的点云。利用仿射变换对分割后的点云进行坐标变换,通过轮廓边缘提取算法对其轮廓进行轮廓,然后再对其轮廓进行3D信息恢复,从而最终得到三维点云的轮廓信息。利用检测出的轮廓信息进行平面特征重构。

2 点云图像分割

在机器人三维环境特征重构过程中,将场景中的点云图像按各自的特征进行正确分割是关键的一点,只有有效的分割才能得到准确的环境特征识别[10-11]。移动机器人工作环境中包含了大量的平面区域,如墙、地面、桌子等,是三维场景分割的重要内容, 因此,本文基于平面特征研究三维点云信息的场景分割。首先通过种子点的选取,确定平面参数初值,然后基于颜色信息和几何信息进行局内点判断,并对平面参数重新估计,提取出平面特征方程。

2.1 种子点的选取

种子点的选取在分割过程中是很关键的步骤。理论上,点云中两个点的距离越近,它们属于同一个模型的概率就越大[12]。环境的三维点云数据集合P={pi|pi=(xi,yi,zi,Ri,Gi,Bi)},(x,y,z)表示某一个点相对于Kinect的三维坐标,(Ri,Gi,Bi)表示该点的颜色信息。在传统的RANSAC算法中,种子点是从原始数据中随机产生的3个点,并由此计算出初始平面模型。但是通过这种方法得到的种子点不在同一个平面上的概率比较大,因此会降低分割的效率。本文在此基础上,对种子点的选取方式进行了改进,将三维空间的距离概念扩展到包含空间几何信息(x,y,z)和颜色信息(R,G,B)的六维空间的距离,根据此距离判断点的相似程度。具体方法为:在点集P随机产生一个点pm,以此点为起始点,寻找与其在六维空间距离满足式(1)的其他种子点pn。

2.2 局内点判断

初步获得平面参数模型[a,b,c,d]之后,要找出数据集合中该模型的其他点局内点,即对剩余点是否属于平面进行判断。理论上,若点到平面的距离di=0则点pi在平面上。但是,由于Kinect采集到的点云数据存在误差,因此难以得到严格意义上的平面,即点及其到平面的距离总是在一定范围内波动。

Kinect获取的点云数据,不仅包含三维空间数据,还具有相应的RGB彩色信息。对于环境中的大多数物体来说,同一物体上的不同点在颜色、材质等方面往往具有一致性。根据这一特性,相较于单纯的几何特征,颜色信息的融入可以为分割提供更为准确的依据, 因此,本文在传统RANSAC算法的只有几何相似性度量的准则中,引入颜色相似性度量标准来度量点与平面的相似性,并通过调节几何和颜色特征在公式中的权重使得分割结果更为准确。

权重α、β的比例关系,需要根据环境特点加以调节。对于办公室等室内环境,物体的颜色均一性较高,则α较大;对于室外自然环境来说,物体颜色均一性较低,可以取α为0,则算法退化为传统的平面空间判别法。只有这样,才能保证分割的准确性,使分割满足用户需求。

利用RANSAC算法对点云进行平面分割时需要进行多次迭代才能分割出所有平面,每次运行完一次,将剩余的点作为原始点云进行下一次分割,不断循环知道提取出所有的平面点集。根据以上分析,本文基于RANSAC方法的点云平面分割流程如图3所示。

3 物体轮廓特征提取

进行平面分割时,虽然利用最小二乘法可以拟合出所属平面的几何参数,但要完整地显现平面,还需进行平面的轮廓特征识别。但是,在三维空间中识别轮廓边界信息,计算难度较大, 因此,本文将三维的平面特征信息映射到二维空间,基于二维空间信息对物体边界轮廓提取,降低计算复杂度。

因而,进行轮廓特征提取时,先通过仿射变换将三维点云数据变换到与机器人坐标系xy面平行的位置;然后利用二维凸包算法进行轮廓边界检测,提取出边界信息;最后,根据仿射变换的逆运算,将二维空间的边界信息恢复成三维信息,从而完成三维轮廓边界提取。

3.1 三维点云图像仿射变换

在Kinect坐标系下,经过分割得到的一三维点云所在平面的方程表示为ax+by+cz+d=0,n=[abc]为平面的法向量。在三维空间中,平面的坐标变换可通过对其向量的操作得到。根据空间坐标变换关系,向量n先绕z轴旋转θz,再绕x轴旋转θx,可得到垂直于xy面的向量n1=[00a2+b2+c2],图4为坐标变换示意图, 由图可得tan θz=a/b,tan θx=a2+b2/c。

3.2 轮廓边缘检测

在图像识别、图像分析以及机器视觉等过程中,图像边缘提取是非常关键的一步,图像的边缘轮廓提取除去了非相关信息,同时也保留了图像的重要结构特性[13]。为了有效检测图像边缘,必须要区分出边缘点和非边缘点。

本文引入凸包的概念来定义图像的轮廓边缘。凸包是计算几何里的一个概念,是指包含平面点集内所有点的最小简单凸多边形[14-19]并且任意两顶点的连线都在该多边形的内部,如图5中的凸多边形即为所求的最小凸多边形,组成该多边形的顶点成为凸点。

根据上述算法可得到物体在三维空间的平面方程参数以及物体的轮廓信息,从而使环境中的物体可以以面特征的形式表示出来。相对于之前海量的点云信息,以平面特征表示环境描述紧凑、存储量小,有利于位置信息的估计、环境状况的描述,为后续的机器人碰撞检测与自主运动打下良好基础,大幅减轻计算负荷;同时,平面重构也有利于物体在计算机中三维显示。

4 实验结果及分析

本文将在图9所示的xPartner机器人平台上进行相关实验,三维信息获取设备Kinect安装在机械臂上。为了验证提出算法的可行性和效果,构建由移动机器人、Kinect等构成的人机器人交互的可视化软件界面(如图10)。该软件将机器人运动控制、点云数据获取和显示、平面分割、轮廓检测、平面重构等多功能集于一体。软件的三维显示是基于OpenGl图形函数库实现的。用户通过交互界面向机器人发送运动指令,机器人根据接收到的指令信息完成相应的任务。在本实验中,用户通过界面控制机器人前进、后退、旋转,采集当前视点下的环境。

本文分别以圆形、三角形、墙壁为检测对象,验证平面检测和轮廓边缘提取算法的有效性,最终实验结果如图11所示。具体实现步骤如下:

1)点云图像采集。Kinect的最佳使用距离为0.8m~2.0m,因此三组场景信息的采集控制在与机器人距离1.2m范围内。图11中的(b)图为通过对Kinect采集的RGB图和深度图融合得到的场景点云图;

2)点云分割。根据本文第2章提出的算法对物体分割,其中种子点有效性判断阈值Tth=20mm,平面有效性判断阈值Snum=10000;

3)平面特征重构。确定物体边缘轮廓,根据空间坐标变换矩阵,完成三维空间点集与二维之间的映射。其中,图中(a)是实验对象的真实场景,(b)是Kinect检测到的环境三维点云显示结果。经过平面分割,可以获得(c)中所示的平面(在圆形和三角形平面实验中,省略背景墙壁的提取结果)。在分割的基础上,通过凸包轮廓检测算法,得到(d)中所示的边缘结果。利用OpenGL重构出的完整平面显示在图(e)中。

在分割过程中,采用融合几何信息和颜色信息进行分割,为说明该算法的有效性,以圆形场景为例,与只有几何信息的算法(称方法1)对比实验,图12为两种分割方法通过Matlab仿真得到的结果图。

在图12中,第一行为基于颜色信息和几何信息分割结果,第二行为基于几何信息的分割结果。其中,图12(b)和(c)为分割情况,从图中可以看出:基于几何信息的分割算法造成了分割不足,破坏了后面墙壁的完整性,需要进一步分割;而本文算法的分割结果相对于方法1,可以很好地分割出各部分平面物体,而且保证了各部分的完整性。

图13为运用本文算法对圆形场景的完整特征重构。综合上述实验可以看到,本算法能有效进行点云数据分割,检测出场景中的平面,对于形状不同的平面,其轮廓都可以被很好地检测出来,重构结果可以较好地反映真实场景的情况,说明了本文算法具有较高的可行性。

5 结语

围绕移动机器人三维场景平面重构问题,重点研究了对重构过程有重要意义的平面分割、边缘轮廓检测方法。提出了一种基于Kinect的机器人环境特征提取与重构系统。首先通过Kinect获取环境三维点云信息,然后利用改进RANSAC算法场景进行分割,再通过仿射变换把三维轮廓边界检测转化为二维检测,降低了三维边界检测的难度和复杂性,最后进行了3D信息的恢复,并利用OpenGL将平面绘制显示。从实验结果看出,算法对环境特征重构具有较好的效果,对于基于平面特征的三维环境重构具有一定的应用价值。

参考文献:

[1]QIAN K, MA X, FANG F. 3D environmental mapping of mobile robot using a lowcost depth camera[C]// Proceedings of the 2013 IEEE International Conference on Mechatronics and Automation. Piscataway, NJ: IEEE, 2013: 507-512.

[2]HWANG Y S, LEE D J, KIM H W, et al. 3D map building for slopes based on modeling of mobile robot[C]// Proceedings of the 2014 IEEE International Conference on Industrial Technology. Piscataway, NJ: IEEE, 2014: 796-799.

[3]务战威.基于特征信息的场景重构及其在遥操作机器人中的应用[D].绵阳:西南科技大学,2012:4-8.(WU Z W. Scene reconstruction based on feature information and its application in teleoperation robot[D]. Mianyang: Southwest University of Science and Technology, 2012:4-8.)

[4]李庆华.基于RGBD数据的环境特征提取与场景重构[D]. 大连:大连理工大学,2014:1-10.(LI Q H. Environmental features extraction and scene reconstruction based on RGBD data[D]. Dalian: Dalian University of Technology, 2014:1-10.)

[5]叶迪. 移动机器人基于激光测距的三维场景重构[D].大连:大连理工大学,2008:5-8.(YE D. Mobile robot 3D scene reconstruction based on laser scanning[D]. Dalian: Dalian University of Technology, 2008:5-8.)

[6]YU C H. A new 3D map reconstruction based mobile robot navigation[C]// Proceedings of the 2006 8th International Conference on Signal Processing. Piscataway, NJ: IEEE, 2006:16-20.

[7]DIFILIPPO N M, JOUANEH M K. Characterization of different Microsoft Kinect sensor models[J]. IEEE Sensors Journal, 2015,15(8):99-102.

[8]ENDRES F, HESS J, STURM J. 3D mapping with an RGBD camera[J]. IEEE Transactions on Robotics, 2014,30(1):177-187.

[9]SOMLYAI L, VAMOSSY Z. Map building with RGBD camera for mobil robot[C]// Proceedings of the IEEE 16th International Conference on Intelligent Engineering Systems. Piscataway, NJ: IEEE, 2012:489-493.

[10]魏永超,刘长华. 基于曲面分割的三维点云物体识别[J]. 光子学报,2010,39(12):2268-2272.(WEI Y C, LIU C H. 3D point cloud object recognition based on surface segmentation[J]. Acta Photonica Sinica, 2010,39(12):2268-2272.)

[11]张强. 基于点云库的服务机器人视觉识别[D].合肥:中国科学技术大学,2014:15-16.(ZHANG Q. Research of visual recognition algorithm for service robot based on PCL[D]. Hefei: University of Science and Technology of China, 2014: 15-16.)

[12]DEAN J, GHEMAWAT S. MapReduce: simplified data processing on large clusters[J]. Communications of the ACM, 2008,51(1):107-113.

[13]王芳,钱炜,李文超.基于数学形态学的图像边缘提取方法[J].机械工程与自动化,2015(1):46-48.(WANG F, QIAN W, LI W C. Edge detection algorithm based on mathematical morphology[J].Mechanical Engineering & Automation,2015(1):46-48.)

[14]WANG S, SUN S F. Image edge detection based on rotating Kernel transformation[C]// Proceedings of the 2014 7th International Congress on Image and Signal Processing. Piscataway, NJ: IEEE, 2014:397-402.

[15]CHIN U, CHHABRA A. A hybrid approach for color based image edge detection[C]// Proceedings of the 2014 Communications and Informatics Communications and Informatics. Piscataway, NJ: IEEE, 2014:2443-2448.

[16]PAVITHRA C, KAVITHA M, KANNAN E. An efficient edge detection algorithm for 2D3D conversion[C]// Proceedings of the 2014 International Conference on Computation of Power, Energy, Information and Communication. Piscataway, NJ: IEEE, 2014:434-436.

[17]POPPINGA J, VASKEVICIUS N, BIRK A. Fast plane detection and polygonalization in noisy 3D range images[C]// Proceedings of the 2008 IEEE/RSJ International Conference on Intelligent Robots and Systems. Piscataway, NJ: IEEE, 2008:3378-3383.

[18]曾筝, 陈晓,周宏,等. 基于凸包算法的三维表面重建中边缘轮廓提取[J].微机发展,2004,14(12):39-42.(ZENG Z,CHEN X,ZHOU H,et al. Extracting contour in 3D surface reconstruction based on convex hull algorithm[J]. Microcomputer Development, 2004,14(12):39-42.)

[19]张林. 改进的多边形凸包算法[J].长春工业大学学报,2013,34(5):560-563.(ZHANG L. An improved algorithm of polygon convex hull[J]. Journal of Changchun University of Technology,2013,34(5):560-563.)