APP下载

改进法线方向的点云实时分割提取平面方法研究

2018-05-23,,,

计算机测量与控制 2018年5期
关键词:法线像素平面

,,,

(广东工业大学 机电工程学院,广州 510006)

服务机器人在抓取物体时,需要准确获取物体的几何结构信息以完成抓取点的选取与抓取规划等后续任务。传统二维图像信息的物体识别很难提供物体的几何信息,基于点云数据进行三维目标识别成为视觉领域研究的热点,针对点云数据的处理在许多视觉任务中起到关键的作用[1]。

近些年研究者提出了各种关于点云平面分割提取的算法,这些算法可分为三大类[2-3]:霍夫变换算法、随机一致采样算法和区域生长算法或聚类方法。Nguyen等人[4]使用霍夫变换在嘈杂的环境中对于平面的提取十分稳定,但是这种方法的缺点是耗时长,同时占用大量的计算机内存。Tarsh-Kurdi等人[5]研究表明,在噪声和异常值的点云数据中随机一致采样算法比霍夫变换算法能更有效地分割平面,但其缺点是由随机一致采样方法检测到的平面可能不属于同一平面。尤其在复杂的室内环境中,使用随机一致采样方法连续提取平面时会产生过分割,分割出伪平面的现象。Beksi等人[6]基于区域生长的算法提取分割平面,该方法相对以上两种方法简单,但分割过程需要对点云数据表面进行法线估计,其消耗大量时间无法满足实时性的要求,而且对噪声比较敏感。本文利用区域生长算法对点云数据表面实时法线估计、噪声敏感等问题进行改进,达到平滑点云数据,降低噪声造成的影响,提高法线估计精度的效果。

1 算法流程

本文从点云数据中分割提取平面,主要依据表面法线估计,算法主要流程图如图1。首先,从KinectV2传感器中获取深度图像和RGB图像,通过线性变换转换为世界坐标中有序的三维点云数据。然后,利用积分图像减少对平滑区域内的像素遍历,经过动态分配权重平滑点云数据进行滤波处理,估算点云数据表面的法线。最后,利用区域增长算法对表面法线进行分类,分割提取场景中的点云平面。

图1 点云分割提取平面主流程

分割提取点云平面的精度依赖于法线估计的结果,这是本文分割提取点云平面方法的关键。在表面法线估计的过程中采取以下步骤:首先,选择被估计法线点云数据的兴趣点,并在该兴趣点的邻域内找到上、下、左、右四个相邻点。然后,我们对这四个相邻点采用一个加权平均滤波器,以减少噪声对法线估计的影响。在滤波的过程中,采用积分图像来减少像素遍历的访问;对需要平滑的区域,采用动态分配权重。接着对点云数据的四个相邻点的位置进行平滑滤波,再通过水平方向的左相邻点和右相邻点,垂直方向的上相邻点和下相邻点分别计算向量。最终,将水平方向和垂直方向的向量之间的点积,视为兴趣点区域的表面法线。如图2所示,对室内环境下放置在桌面上的目标物体取得分割的效果。

图2 室内桌面物体分割2点云分割提取平面原理

1.1 积分图像

在估计表面法线的时候,使用传统的方法需要遍历并计算滤波器区域内的像素点总和,非常消耗时间。在实际应用中,服务机器人在识别抓取物体的时候,实时性非常关键。本文提出使用积分图像对获取的深度图像进行遍历,避免传统方法的缺点,可以尽量缩短估计法线的时间,达到实时性的效果。积分图像(integral image)理论由Paul Viola和Michael Jones于2001年提出[7]。如图3所示,积分图像中的任意一点(i,j)的值ii(i,j),表示了原图像相应黑色区域的灰度值或其平方的总和,即:

图3 积分图像原理

(1)

(2)

在等式(1)和(2)中,其(i′,j′)表示原图像中(i′,j′)点的灰度值或其平方值。而ii(i′,j′)点的值可按照以下4种情况进行计算:

1)当i>0,j=0时:

s(i,j)=p(i,j)

(3)

ii(i,j)=ii(i-1,j)+s(i,j)

(4)

2)当i>0,j>0时:

s(i,j)=s(i,j-1)+p(i,j)

(5)

ii(i,j)=ii(i-1,j)+s(i,j)

(6)

3)当i=0,j=0时:

s(i,j)=p(i,j)

(7)

ii(i,j)=s(i,j)

(8)

4)当i=0,j>0时:

s(i,j)=s(i,j-1)+p(i,j)

(9)

ii(i,j)=s(i,j)

(10)

在计算一幅图像所对应的积分图像时,只需遍历一次原图像即可得到。然而,在没有采用积分图像的情况下,需要大量地计算一幅图像中矩形区域的灰度值总和,对每一个矩形区域内的像素进行遍历,导致计算复杂度很高。相比之下,在积分图像的基础上计算很方便,它可以避免对区域内像素遍历,计算开销很小。例如,图4所示窗口E(阴影的灰度值总和),可以用积分图像相应点A,B,C,D的取值快速计算出来,即窗口E的灰度值总和等于A+B-(C+D),且其计算速度与窗口的大小无关。

图4 积分图像面积

1.2 平滑区域和权重分配的调整

采用消费级别的KinectV2传感器,其精度必然没有工业级别图像传感器采集数据精度高,获取的深度图像常伴随着大量的噪声,若不进行处理,会对表面法线估计精度造成很大的影响,从而导致后续分割提取平面的鲁棒性较差。估计表面法线的精度,很大程度取决于平滑区域的选择。在传统方法中,法线估计往往选择固定大小的平滑区域,而其对深度图像滤波效果并不理想。而且,在深度图像中并未考虑其图像的深度参数。对深度参数的忽略,将会导致随着深度范围的增大,表面法线估计的误差越来越大。针对这个问题,本文采用随着深度的增加,动态地增加平滑区域的半径,从而提高表面法线估计的精度。使用三角网格作为平滑区域,将平滑的深度范围固定在1~5米,实验结果如图5所示。

图5 识别精度半径平滑

在不同的深度范围内,采用半径不等的平滑区域,图中的曲线显示了表面法线估计的精度。在同样的深度下,使用半径相等的平滑区域,获取的点云数据精度越来越低。反之,随着深度的增加,增大平滑区域的半径,在一定范围内其精度越来越高。采用动态地调整平滑区域半径的方法,可以有效地提高识别精度。由于传感器获取的数据精度有限,虽然尽量提高平滑点云数据的精度,但最终将趋于饱和。

然而,采用动态地平滑区域仅取决于点云数据的深度参数,这样会过度平滑物体的边缘部分,造成物体边缘部分法线估计的错误。为了避免这个现象,在平滑滤波的时候,采用权重分配的方法。具体来说,对不同邻域的像素进行权重分配,依据边缘检测算子检测到的边缘。采用公式(11),依据一阶导数检测到的边缘,对平滑区域内的深度图像进行权重分配:

(11)

其中:M(p)代表深度图像边缘的梯度,w(p)代表平滑区域半径内的像素,t代表边缘步长。然后,再使用阈值th在梯度图中检测深度图像明显的边缘。

(12)

用深度图像中检测到的边缘来确定兴趣点的每个相邻像素的权重。依据兴趣点在平滑区域位置的不同,分为如下两种情况:如果兴趣点在图像的边缘部分,将平滑较小部分的区域,而且在边缘部分的兴趣点的平滑区域权重设置为0;如果兴趣点不在图像的边缘部分,兴趣点的平滑区域权重设置较大。

1.3 点云平面分割提取

对点云数据表面的像素点(u,v)依据右手定则计算其表面法线n(u,v)。将每个像素点邻域的相互垂直的矢量之间的叉乘,如等式(13),视为兴趣点区域的表面法线。

n(u,v)=h(u,v)×v(u,v)

(13)

其中:h(u,v)代表像素点左右邻域的水平方向矢量,v(u,v)代表像素点上下邻域的垂直方向矢量。依据检测到的边缘对平滑区域权重分配,使用水平方向矢量h(u,v)和垂直方向的矢量v(u,v),可以计算出三维点云数据表面法向矢量:

hx(u,v)=[Px(u,v+d(u,v))-Px(u,v-d(u,v))]/2

(14)

hy(u,v)=[Py(u,v+d(u,v))-Py(u,v-d(u,v))]/2

(15)

其中:

H1=A(IZ,G,u,v+d(u,v),d(u,v))

(17)

H2=A(IZ,G,u,v+d(u,v),d(u,v))

(18)

vx(u,v)=[Px(u,v+d(u,v),v)-

Px(u,v-d(u,v),v)]/2

(19)

vy(u,v)=[Py(u,v+d(u,v),v)-

Py(u,v-d(u,v),v)]/2

(20)

vz(u,v)=[V1-V2]/2

(21)

其中:

V1=A(IZ,G,u+d(u,v),v,d(u,v))

(22)

V2=A(IZ,G,u-d(u,v),v,d(u,v))

(23)

Px,Py,Pz代表三维有序点云数据在笛卡尔坐标中的x,y,z的坐标值;d(u,v)可代表动态的平滑区域,由于使用KinectV2获取数据,伴随着大量的噪声,可以以提高估计表面法线的精度;IZ,G代表积分图像z方向的数据。使用积分图像避免了对平滑区域的像素遍历,同时采用动态地分配权重得到了点云数据的法线数据,提高了法线估计的精度。根据平面的基本特征,分割提取的平面点云满足两个基本条件:

1)同向性点云数据的法线方向一致或夹角小于预先设定的阈值。

2)共面性点云数据局部拟合平面之间的距离小于预先设定的阈值。

依据估计法线方向的特点,设置一定的限制条件,对法线进行分类从而提取平面。区域生长算法是一种图像分割方法,它将具有某种相似性质的像素或体素聚集起来构成区域。其思想是:首先,在感兴趣的区域中找到一个种子点像素作为生长的起点;其次,将种子像素周围邻域中与该种子像素有相同或相似的像素区域合并到该种子像素所在的区域中;最后,连续重复以上步骤,直到没有满足条件的像素包含进去为止。本文针对深度图像估计法线的方向的特点,利用区域生长算法分割点云平面,步骤如下:首先,依据选择平面区域手动初始化选者种子点;然后,检查邻域像素点周表围面法线方向的夹角,也就是同向性;其次,设置邻域内法线方向相似的邻域为内点集,也就是共面性;最后,重复以上步骤,直到没有新的种子点集存在。完成区域生长之后,可以有效地把估计的法线分类,从而分割提取平面,为下一步的聚类分割与物体识别定位做准备。

2 测试与结果分析

用C++实现了本文平面分割提取算法,运行平台为ubuntu 14.04 64位操作系统,Qt为开发环境,主要硬件配置为Inter core i7-6700 CPU及8 G内存。采用如图6所示的Kinect2.0深度传感器获取点云数据。

图6 MicrosoftKinect 2.0

2.1 处理速度

为了验证本文基于法线估计分割算法的有效性,使用了网络公共数据库RGB-D数据集[8],选择同一组点云数据进行平面分割提取,将本文提出的方法和点云库算法Point Cloud Library(PCL)[9]中的随机采样一致性(RANSAC)方法和基于优化分割(Optimization-Based)方法进行对比。上述方法分割提取平面所需计算处理时间如下表:

表1 点云分割时间

从以上表1中可以看出,采用本文提供的方法分割提取平面约600毫秒,比采用Optimization-Based方法快1.5倍左右。此外,采用积分图像的方式去估计深度图像表面法线,计算所需要的时间与动态平滑区域大小无关。在室内环境中,使用KinectV2采集深度图像转换为点云数据,其深度图像像素为640×480,对点云数据分割提取平面耗时时间为1.86秒;采用深度图像像素为,对点云数据分割提取平面耗时仅为500毫秒左右,可以满足实时性的需求。

2.2 分割精度

本文采用的分割提取平面的方法,主要依赖对点云数据表面的法线估计的精度。例如在图7中显示了使用本文对点云数据分割提取的方法估计法线,和基于优化分割(Optimization-Based)方法对桌面估计法线做出的对比。分割该点云数据是室内桌面摆放物体的场景,场景由深度图像数据经过坐标变换与RGB图像对齐,生成的三维点云数据。从a)和b)中展示的估计桌子平面的边角部分可以看出:基于优化分割方法估计的法线估计并未垂直桌面,法线方向明显倾斜。而采用本文方法有效地估计滤除噪声的干扰,桌子表面法线垂直于桌面,法线方向平行一致,从而有效地对点云数据分割提取平面。从c)和e)中可以看出:基于优化分割方法估计的法线方向不一致性,对点云数据表面法线方向估计的误差较大,下一步基于区域生长算法对估计的法线的方向进行分类,造成点云数据平面过分割现象。从c)和e)中可以看出:使用动态的分配权重去平滑点云数据,对桌面上的物体与桌面之间实现了较好的分割效果,尤其对整个平面的提取。

图7 实验结果

图7中,(a)、(c)为基于优化分割方法的法线估计;(b)、(d)为基于本文方法的法线估计;(e)、(f)为依据法线方向区域生长分割效果图。

3 结论

本文提出了一种针对室内环境下能够从三维有序点云数据中高效、实时分割提取平面的方法,并且就如何提高实时性、准确性展开研究。针对消费级别的传感器获取的点云数据进行处理,采用积分图像降低法线估计时间,使用动态地分配权重的方法平滑点云数据的噪声。测试实验表明,对像素为的深度图像,分割提取平面耗时时间仅为1.86秒左右,完全满足室内服务机器人对物体的识别与定位的需求,有助于实现家庭环境下服务机器人的物体抓取,对促进服务机器人进入家庭具有实际意义。

参考文献:

[1] 薛彦涛,吕洪波,孙启国. 基于Kinect深度数据的移动机器人障碍检测方法研究[J]. 计算机测量与控制, 2017, 61-63.

[2] Li L, Yang F, Zhu H, et al. An Improved RANSAC for 3D Point Cloud Plane Segmentation Based on Normal Distribution Transformation Cells[J]. Remote Sensing, 2017, 9(5).

[3] Ambrus R, Claici S, Wendt A. Automatic Room Segmentation from Unstructured 3D Data of Indoor Environments[J]. IEEE Robotics & Automation Letters, 2017, PP(99):1-1.

[4] Nguyen A,Le B. 3d Point Cloud Segmentation: a Survey[A].Robotics, Automation and Mechatronics (ram), 2013 6th IEEE Conference on[C]. IEEE, 2013: 225-230.

[5] Tarsha-kurdi F,Landes T,Grussenmeyer P, et al. Model-driven and Data-driven Approaches Using LidarData:Analysis and Comparison[A].Isprs Work shop, Photogrammetric Image Analysis[C]. 2007: 87-92.

[6] Beksi W J, Papanikolopoulos N. 3D region segmentation using topological persistence[A].IEEE/RSJ International Conference on Intelligent Robots and Systems[C]. IEEE, 2016:1079-1084.

[7] Viola P,Jones M. Rapid Object Detection Using a Boosted Cascade of Simple Features[A].Computer Vision and Pattern Recognition, 2001. Cvpr 2001. Proceedings of the 2001 IEEE Computer Society Conference on: IEEE[C]. 2001: 0-0.

[8] Lai K,Bo L,Ren X, et al. A Large-scale Hierarchical Multi-view Rgbd Object Dataset[A].IEEE Intern ational Confe-rence on Robotics and Automation[C]. 2011: 1817-1824.

[9] Miknis M, Davies R, Plassmann P, et al. Efficient Point Cloud Pre-processing using The Point Cloud Library[J]. International Journal of Image Processing, 2016, 10(2): 63.

猜你喜欢

法线像素平面
赵运哲作品
基于定位法线的工件自由度判定方法及应用
像素前线之“幻影”2000
“像素”仙人掌
椭圆法线定理的逆定理
参考答案
关于有限域上的平面映射
高像素不是全部
双曲螺线的副法线曲面的相关性质研究*
参考答案