基于SICK和Kinect的植株点云超限补偿信息融合
2018-10-20潘成凯
刘 慧 潘成凯 沈 跃 高 彬
(江苏大学电气信息工程学院, 镇江 212013)
0 引言
近年来,对目标的精确三维彩色点云的获取在数字城市、三维建模等方面应用越来越多[1-4]。激光扫描仪可以获取目标高精度点云3D坐标和距离信息,视觉图像能直观展示2D高分辨率真彩色信息。两者的融合可以得到客观世界的3D纹理点云, 促进VR、三维重建、3D打印和农业机器人等领域的研究发展[5-8]。因此,组合探测点云融合成为目前备受关注的研究热点。
目前,点云和图像融合主要分为时间匹配和特征匹配2种[9]。时间匹配自动化程度高,但是精度较差且对设备要求高;更加通用的基于特征匹配的方法又可分为2种情况:一种是确定点云数据和图像的转换模型,进行叠加;另一种是通过控制点进行摄像机标定,借助相机内外参数确定点云和图像的相互关系。文献[10]提出了一种基于点云深度图像的融合算法,匹配深度图像和数字图像的特征线,确定两者的转换关系,该方法的局限性是相机和激光扫描仪需在同一位置。文献[11]首先利用安装摄像机的三维激光扫描仪同时对贴了靶标的场景拍照和获取点云,采用主动视觉相机序列标定解算相机的位置和姿态,之后确定相机和扫描仪的空间转换关系。该方法需要相机固定在扫描仪上,且需要空间靶标,主动视觉自标定过程比较复杂。文献[12-14]利用全景图像和车载激光获取车辆行走过程中的点云,并根据空间关系对其进行过着色,实现点云信息的融合,但是全景图像在获取过程中存在很大的畸变,且对装备之间相对位置要求较高,存在很大缺陷。
本课题组曾研究了基于Kinect传感器的彩色植株点云配准改进SIFT-ICP方法,通过获取不同视角下Kinect植株彩色图像和深度图像合成原始植株彩色点云,提高了点云配准的准确性和快速性,但是对Kinect室外受光照影响获取点云出现边缘缺失的问题没有进行修复[15]。本文以仿真植株作为研究对象,提出一种基于SICK和Kinect的植株点云信息融合方法。
1 试验材料及方法
1.1 植株信息组合探测试验平台
植株目标组合探测平台如图1所示,在长6 m的试验平台上,滑块搭载SICK激光传感器(SICK LMS151)和Kinect传感器(Kinect V2.0)以恒定速度在平台上匀速前进,实时扫描目标植株,获得Kinect深度图像和彩色图像数据,并对激光数据进行重构获得植株的激光三维深度图。试验对象为仿真绿色植株,树高1.8 m, 冠层直径1.4 m(图2) ,传感器距离目标植株1.5 m。在日光灯照射下,光强约100 lx。Kinect通过微软公司提供的软件开发包Kinect for Windows SDK以及点云库(Point cloud library,PCL)[16]和OpenCV获取植株的彩色、深度图像,并合成彩色点云。
图1 SICK和Kinect组合探测平台Fig.1 SICK and Kinect combined detection platform1.SICK激光传感器 2.控制台 3.滑块 4.Kinect传感器
图2 仿真绿色植株Fig.2 Simulated green plants
1.2 植株三维点云预处理
1.2.1激光传感数据三维重构及预处理
图3 SICK激光传感器扫描范围示意图Fig.3 Schematic diagram of working state of SICK laser sensor
SICK激光传感器的安装示意图及工作状态如图1、3所示。图3中每格长度为20 m,正下方90°区域为扫描盲区,通过内轴高速旋转持续不断地获取点,工作时每扫描一圈获取1 080个点,相邻两点之间间隔0.25°,工作频率25 Hz。激光传感器原始数据是在极坐标系下的距离数据,需对其进行坐标系转换,得到激光传感器在直角坐标系下的距离数据。但是这是一个二维数据,要想进行三维重构,还需要添加X轴方向信息。激光传感器测试平台具有速度实时检测功能,在运行时对速度进行实时记录[17-19]。
经过以上过程即可完成二维激光数据的三维重构,得到激光传感器数据三维重构后的原始数据。
由于原始数据中包含了大量的无效信息,因此需要对原始数据进行滤波操作。基于目标的三维坐标信息,根据目标深度信息d(x,y)(单位:mm)去除植株背景信息。通过设定目标植株的三维坐标取值范围,将取值范围外的点全部视为无用点并去除[20]。根据试验条件,目标植株距离传感器有效距离设定为1 200~2 500 mm。预处理后获取只包含目标植株所在有效深度区间的点云。
至此,完成对SICK激光传感器数据的预处理。
1.2.2Kinect彩色点云映射与数据预处理
通过Kinect相机可以获取目标的深度图像和彩色图像,通过Kinect开发包中的彩色图像和深度图像的映射函数,得到彩色图像和深度图像之间空间映射关系,深度图像经过映射之后获得彩色信息,再通过所处位置和角度信息即可得到世界坐标系下点云坐标。在原始的彩色点云中存在大量无效点和冗余背景信息以及少量的噪声,因此需要先去除背景和噪声。Kinect点云通过阈值滤波后去除背景信息,此时点云中还包含了少量的噪声点及离群点,这些点通常由外界干扰以及设备采集测量误差等原因造成。通过分析点云数据可知,离群点比较稀疏且点数较少,因此本文采用圆内点数量统计的方法滤除这些干扰点。通过统计半径r的圆内点数量,将小于阈值k的点删除,保留满足条件的点。根据试验效果,r设定为1 cm,k设定为10。
1.3 SICK激光点云与Kinect彩色点云融合
ICP算法自1992年发表以来就受到学者的广泛关注[21-23],以点集对点集的配准方法为基础,阐述了一种曲面拟合方法,该方法是基于四元数的点集到点集配准方法。虽然经过十几年的发展,效果得到了很大的改进,但是对于初始位置相差较大及重叠区域较少的情况仍然无法得到较好的结果,因此,本文采用了初始配准加二次配准的方法实现两片点云之间较好的配准。
首先,对SICK激光点云和Kinect彩色点云进行体素栅格下采样(Voxel grid downsample),使点云数量降低的同时较好地保持了点云的原有特征。然后对每个点求其法线并计算每个点的快速点特征直方图(Fast point feature histograms, FPFH)[24]进行特征提取,之后对两片点云进行采样一致性初始配准(Sample consensus-initial alignment, SAC-IA),求取两片点云之间的转换矩阵,将SICK激光点云利用转换矩阵变换后,两片点云之间即可有较好的空间位置关系,然后利用ICP算法完成二次配准。
1.3.1植株点云SAC-IA初始配准
滤波后的点云中,点的数量仍然非常庞大,如果直接对其求法线精算特征来进行初始配准的话会浪费大量的时间,因此本文采用了体素栅格的方法对点云进行下采样,该方法能够在点数量大量减少的情况下仍然较好地保持点云特征,加快了配准的速度。具体过程如下:首先通过输入的点云数据创建一个三维体素栅格,然后在每个体素,即三维立方体内用体素中所有点的重心来近似表示体素中其他点,这样该体素内所有点就用这一个重心点来最终表示,再把所有体素的重心放到输出点云中即完成了点云的下采样。
完成点云下采样后,需要对每个点进行法线估计。由于点云数据没有几何表面,可以利用某一点邻域范围内的其他点云来近似估计该点的表面法向量。假设有点云数据P{p1,p2,…,pn},对于其中某一点pi(xi,yi,zi),取其邻域内h个相邻点,协方差矩阵为
(1)
CVj=λjVj(j=0,1,2)
(2)
λj——第j个特征值
Vj——第j个特征向量
计算出的最小特征值对应的特征向量即为点pi处最小二乘拟合曲面的法向量。
仅仅只是求取点的法线还无法较好地表达点与周围点之间的关系。FPFH算法在点特征直方图(Point feature histograms, PFH)[25]算法的基础上进一步改进,对PFH算法得到的权重进行重新计算,捕获更大范围内临近点对的几何信息,同时忽略部分临近点,其计算特征更快、信息更多。本文利用FPFH算法对带有法线信息的点云进行快速点特征估计,并采用降维后的33维特征向量来表示点周围的信息,保证了较好的描述性,兼顾了快速性。
通过采样一致性初始配准算法(SAC-IA),通过下采样后的点云和其特征描述子为基础计算两幅点云之间的对应点对,通过SAC-IA中的筛选规则不断进行优化得到最佳对应点对集,通过这些点集得到两幅点云之间的空间转换矩阵,完成点云的初始配准。
1.3.2植株点云ICP精确配准
很多学者通过对原始的ICP算法进行剖析,将算法分成6部分,然后分别进行了改进,效果显著。ICP算法的配准精度很大程度上取决于两幅点云图像之间的初始位置关系和重叠区域大小。
经过初始配准之后,两幅点云图像之间有了较接近的初始位置,这样的初始位置可以有效地避免ICP算法配准时陷入局部最优解的状态,从而提高ICP的配准质量。
1.3.3植株点云超限补偿信息融合
完成点云的初次配准与精确配准之后,两幅点云之间点位置信息很接近,利用近似最近邻[26](Approximate nearest neighbors, ANN)算法,对激光点云在Kinect彩色点云中逐点近似最近邻搜索,搜索到的点即为对应点,将对应点的彩色信息赋予正在进行搜索的点完成两幅点云之间的信息融合。
Kinect 2.0在阳光直射时会出现目标边缘严重丢失的情况,因此,对于部分SICK激光传感器三维重构出的点云在进行近似最近邻搜索时,会出现找不到对应点或找到的对应点并非实际物理意义上的对应点,为此本文提出了一种超限补偿方法来对无法找到对应点或者错误对应点的搜索点进行补偿,通过这种方法可以有效地对SICK激光重构点云中部分漏检对应点和错误对应点的搜索点进行着色,完成信息融合。
本文所述的超限补偿算法是对融合点云中超过阈值限定的部分进行重新融合的过程,其具体过程如下:首先对配准后激光点云中的每个点逐个遍历Kinect彩色点云进行最近邻搜索,当搜索到的Kinect彩色点云对应点和激光点之间的欧氏距离小于设定阈值时,则将Kinect彩色点云对应点的彩色信息赋予到激光点,形成彩色点;当搜索不到Kinect彩色点云对应点或搜索到的对应点和激光点之间的欧氏距离大于设定阈值时,则判定搜索失败,可能是由Kinect传感器受光照条件影响出现目标边缘缺失而引起。Kinect检测中由于光照条件等引起的对应目标缺失点云,此时,将搜索的激光点云的深度信息和空间坐标信息填充进去,然后根据Kinect微软开发包中提供的深度图像和彩色图像对应关系的函数,获取到对应彩色信息并将其赋值给对应的激光点形成彩色点;遍历整个目标所有激光点云,完成激光点云的融合点云赋值。
超限补偿点云信息融合方法具体步骤如下:首先,对于完成点云配准后的SICK激光点云P(p1,p2,…,pn)中的任意一点pi,在Kinect彩色点云中进行近似最近邻搜索,若返回值为false或者搜索点与对应点之间的欧氏距离超过阈值,则认为没有找到对应点,此时认为搜索点与Kinect彩色点云具有相同的空间位置,调用Kinect开发包中的MapDepthToColorImagePoint()函数找到彩色图像中的对应点的坐标(x,y),然后将坐标(x,y)的彩色信息赋予搜索点。超限补偿点云信息融合流程图如图4所示。
图4 超限补偿点云信息融合流程图Fig.4 Flow chart of overlimit compensation
SICK激光三维重构点云和Kinect彩色点云之间的信息融合的具体流程如图5所示。
图5 SICK激光三维重构和Kinect彩色点云信息融合流程图Fig.5 Flow chart of information fusion of 3D reconstruction of SICK laser and Kinect color point cloud
2 试验与结果分析
2.1 室内光照条件下算法验证
2.1.1SICK激光传感器点云获取与处理
通过滑块带动SICK LMS151二维激光传感器匀速运动进行试验,经过坐标系转换后,彩色渲染图如图6所示。经过三维重构后,点云图像如图7所示。
图6 SICK彩色渲染图Fig.6 Color rendering image of SICK data
图7 SICK三维重构点云图Fig.7 3D reconstruction of SICK data point cloud image
从图6和图7可以看出,数据中除了目标植株外还有复杂背景数据以及桌子等。对原始点云进行阈值滤波和离群点去除,得到仅含有目标植株的点云图像。图8为预处理后的激光点云图像。
图8 预处理后的激光点云图像Fig.8 Point cloud images after preprocessing
2.1.2Kinect传感器点云获取与处理
通过PCL将Kinect传感器获取的植株深度图像和彩色图像进行融合,得到彩色点云图像,如图9所示。
图9 Kinect点云图像Fig.9 Kinect point cloud images
同样,对Kinect获取到的彩色植株点云进行阈值滤波和圆内数据统计滤波后得到仅含植株信息的点云图像。
从图8及其构造原理可知,两幅点云空间位置相差较大,因此先采用初始配准。对点云进行体素栅格滤波以进一步减少点云数量,加快配准速度,然后对各点计算法线,求取快速点特征直方图,利用SAC-IA完成点云初始配准,最后利用ICP算法进行进一步配准。图10展示了点云的配准过程。为方便看清,将每个点放大了3倍。
图10 激光和Kinect点云配准过程Fig.10 Process of point cloud registration
2.1.3超限补偿点云融合
将激光点云和Kinect点云图像配准后,两幅点云图像近乎重合,采用1.3.3节的近似最近邻搜索和超限补偿方法完成点云信息融合。融合前后对比如图11所示。
图11 超限补偿点云信息融合前后对比Fig.11 Contrast diagrams of point cloud information
超限补偿后局部细节图如图12所示。可见超限补偿后,有效点云数量增加,边缘缺失的点云得到了有效补充。
图12 融合前后局部细节图Fig.12 Images of local detail after fusion
2.2 强光干扰条件下算法验证
然而Kinect在阳光下采集图像深度信息时会出现严重的边缘缺失,如图13所示。因此,若不采取有效措施进行补救,则会引起边缘信息缺失,造成较大误差,如图14所示。
图13 Kinect采集的边缘缺失点云Fig.13 Edge missing point cloud collected by Kinect
图14 边缘信息缺失融合效果Fig.14 Fusion effect with edge information missing
采用超限补偿融合方法后,点云信息融合明显改善,效果与室内几乎相同。图15为超限补偿后的点云信息融合效果。
图15 植株A点云超限补偿融合图Fig.15 Final effect maps after point cloud information fusion of plant A
在对植株A验证的基础上,对另一植株B进行了同样的点云融合试验,如图16所示。
图16 植株B超限补偿点云融合过程Fig.16 Point cloud fusion process with overlimit compensation of plant B
为测试本文超限补偿算法的可靠性,对植株A和植株B进行了不同角度(0°、90°、180°和270°)数据采集并进行数据融合,并且引入相似度评价本文方法效果。相似度描述如下:对Kinect植株彩色点云和融合后的激光彩色点云进行尺度不变特征转变(Scale-invariant feature transform,SIFT)关键点搜索,然后将关键点进行对比,得到相同关键点占关键点总数的百分比。
基于相似度的对比研究,每组试验进行10次,试验结果如表1所示。对于植株A,将超限补充融合后的植株彩色点云与未融合前的室内Kinect点云进行对比,相似度平均值为95%。而未采用超限补偿前的融合点云与室内Kinect点云对比,相似度只能达到70%。类似地, 对于植株B,利用本文超限补偿融合方法与Kinect点云对比,相似性达到92%,而未采用超限补偿的直接融合方法与Kinect点云对比,相似度仅为65%。
为验证本文组合探测方法相对于传统方法的优越性,将本文SICK和Kinect组合探测点云融合算法与Kinect单相机探测自身彩色和深度点云融合算法结果进行了对比。在有效点云数量方面,本文组合探测方法较传统方法有效点云数量大大提升。以文中仿真植株A为目标,以传感器与树中心距离2.2 m为测试基准,本文方法与只采用Kinect自身彩色深度数据融合方法进行对比,每组试验10次,并对室内外融合后点云数量和精度进行对比。试验结果表明,在检测精度方面,当测量距离为2.2 m时,采用Kinect传感器检测的平均绝对误差为35 mm,深度误差为1.5%;而本文方法的传感器与树干中心平均距离为2.196 m,深度误差小于0.5%。以植株A为例,当SICK激光传感器以0.25 m/s的前进速度运行时,激光探测植株点云数量为348 523,Kinect室内探测植株点云数量为217 088,Kinect传感器室外探测植株点云数量为191 464。应用SICK和Kinect组合探测点云融合后,相比于Kinect传感器,探测植株点云数量室内和室外分别增加了60.42%和81.89%。
表1 点云超限补偿信息融合方法可靠性分析Tab.1 Reliability analysis of point cloud fusion
3 结论
(1) 提出了一种基于SICK和Kinect组合探测的植株点云超限补偿信息融合方法,该方法无需保持2个传感器之间的位置恒定和繁琐的标定程序,仍然可以较好地实现点云信息的融合,边缘信息融合较好,平均相似度较高。
(2)提出了超限补偿方法,有效点云数量增加,边缘缺失的点云得到了有效补充,且减小了深度误差。