Print

发布时间: 2017-05-16
摘要点击次数:
全文下载次数:
DOI: 10.11834/jig.160602
2017 | Volume 22 | Number 5




    第十八届全国图像图形
学术会议专栏    




  <<上一篇 




  下一篇>> 





面向RGBD深度数据的快速点云配准方法
expand article info 苏本跃1,2, 马金宇1,2, 彭玉升2,3, 盛敏2,3, 马祖长2,4
1. 安庆师范大学计算机与信息学院, 安庆 246133;
2. 安徽省智能感知与计算重点实验室, 安庆 246133;
3. 安庆师范大学数学与计算科学学院, 安庆 246133;
4. 中国科学院合肥智能机械研究所, 合肥 230031

摘要

目的 真实物体的3维重建一直是计算机图形学、机器视觉等领域的研究热点。针对基于RGBD数据的非匀速非固定角度旋转物体的3维重建问题,提出一种利用旋转平台重建物体3维模型的配准方法。 方法 首先通过Kinect采集位于旋转平台上目标物的深度数据和颜色数据,对齐融合并使用包围盒算法去除背景噪声和不需要的外部点云,获得带有颜色信息的点云数据。并使用基于标定物不同角度上的点云数据标定出旋转平台中心轴的位置,从而获得Kinect与旋转平台之间的相对关系;然后通过曲率特征对目标点云进行特征点提取并寻找与相邻点云的对应点;其中对于特征点的选取,首先针对点云中的任意一点利用kd-tree搜寻其$k$个邻近点,对这些点进行曲面拟合,进而计算其高斯曲率,将高斯曲率绝对值较大的$n$个点作为点云的特征点。$n$的取值由点云的点个数、点密度和复杂度决定,具体表现为能反映物体的大致轮廓或表面特征信息即可。对于对应点的选取,考虑到欧氏距离并不能较好反映点云中的点对在旋转过程中的对应关系,在实际配准中,往往会因为点云重叠或距离过远等原因找到大量错误的对应点。由于目标物在扫描过程中仅绕旋转轴进行旋转,因此采用圆弧最小距离寻找对应点可有效减少错误点对。随后,使用二分迭代寻找绕中心轴的最优旋转角度以满足点云间的匹配误差最小;最后,将任意角度获取的点云数据配准到统一的坐标系下并重建模型。 结果 使用斯坦福大学点云数据库和自采集数据库分别对该方法和已有方法在算法效率和配准结果上进行对比实验,实验结果显示在拥有平均75 000个采样点的斯坦福大学点云数据库上与传统ICP算法和改进ICP算法相比,迭代次数分别平均减少86.5%、57.5%,算法运行时间分别平均减少87%、60.75%,欧氏距离误差平方和分别平均减少70%、22%;在具有平均57000个采样点的自采集点云数据库上与传统ICP算法和改进ICP算法相比,迭代次数分别平均减少94%、75%,算法运行时间分别平均减少92%、69%,欧氏距离误差平方和分别平均减少61.5%、30.6%;实验结果显示使用该方法进行点云配准效率较高且配准误差更小;和KinectFusion算法相比在纹理细节保留上也表现出较好的效果。 结论 本文提出的基于旋转平台标定的点云配准算法,利用二分迭代算法能够有效降低算法复杂度。与典型ICP和改进的ICP算法的对比实验也表明了本文算法的有效性。另外,与其他方法在具有纹理的点云配准对比实验中也验证了本文配准方法的优越性。该方法仅采用单个Kinect即可实现对非匀速非固定角度旋转物体的3维建模,方便实用,适用于简单快速的3维重建应用场合。

关键词

RGBD数据; 3维扫描; 点云配准; Kinect; 深度数据

Fast point cloud registration based on RGB-D data
expand article info Su Benyue1,2, Ma Jinyu1,2, Peng Yusheng2,3, Sheng Min2,3, Ma Zuchang2,4
1. School of Computer and Information, Anqing Normal University, Anqing 246133, China;
2. The University Key Laboratory of Intelligent Perception and Computing of Anhui Province, Anqing 246133, China;
3. School of Mathematics and Computational Science, Anqing Normal University, Anqing 246133, China;
4. Institute of Intelligent Machines, Chinese Academy of Sciences, Hefei 230031, China
Supported by: National Natural Science Foundation of China (11471093)

Abstract

Objective Three-dimensional reconstruction of real objects has always been a hot topic in computer graphics, computer vision, and other fields. In response to the 3D reconstruction of an object obtained with non-uniform rotating from non-fixed angle, a registration method to reconstruct an object 3D model based on RGB-D data is presented by using a rotating platform. Method Initially, the depth data and color data of the target on the rotating platform are collected by Kinect, and the bounding box algorithm is used to remove the background noise and external points to obtain the required point cloud data with color information. Subsequently, we use point cloud data calibration in different angles to calibrate the center axis of the rotating platform, thereby obtaining the relative relationship between Kinect and the rotating platform. Next, the curvature feature of the target point cloud is used to extract the feature points and find the corresponding points of adjacent point cloud, and then the feature points in non-overlapping regions. For the selection of feature points, we first use k-d tree to search for k neighboring points at any point in the point cloud, apply the surface fitting to these points, and then calculate the Gaussian curvature. The n points of the Gaussian curvature are larger as the characteristic points of the point cloud. The value of n is determined by the number of points, the density, and the complexity of the point cloud. Therefore, n points can reflect the approximate contours or surface features of the object. The Euclidean distance must be considered when selecting corresponding points to better reflect the rotation corresponding relationship of a pair of points in the point cloud in the process of rotation. In the actual registration, a large number of wrong correspondence points are frequently found using Euclidean distance because the point cloud overlap or points are too far away. The use of the arc minimum distance to find the corresponding point can effectively reduce the false point pairs because the target is rotated only around the axis of rotation during the scanning process. Third, the dichotomy iterations method is introduced to find the optimal rotation angle around a central axis, which meets the minimum of the registration error between the two points cloud. Finally, take the point cloud data acquired from any angle to obtain registration under the unified coordinate system and rebuild the model. Result The experimental results with Stanford University's point cloud database and self-collected database were compared with the existing methods. Compared with the traditional ICP algorithm and the improved ICP algorithm on the Stanford's point cloud database with an average of 75 000 sampling points, the iterative times are reduced by 86.5% and 57.5% respectively, and the running time of the two algorithms are reduced by 87% and 60.75% respectively. The mean square of the Euclidean distance error of the two algorithms is reduced by 70% and 22% respectively. Compared with the traditional ICP and the improved ICP algorithms on the self-collected database with an average of 57 000 sampling points, the average number of iterations is reduced by 94% and 75%, the running time of the algorithm is reduced by 92% and 69%, and the average mean squared of the Euclidean distance error is reduced by 61.5% and 30.6%. Experimental results show that the proposed method is more efficient and has less registration error. Compared with KinectFusion algorithm, this method also has good effects on texture detail preservation. Conclusion In this paper, the registration algorithm of point cloud based on rotating platform calibration is proposed, and the bisection iterative algorithm can effectively reduce the registration complexity. The comparison of the proposed algorithm and the traditional ICP and improved ICP algorithms also shows the effectiveness of the proposed algorithm. In addition, the superiority of this method is verified by comparing it with other methods in point cloud registration experiments with texture. In this method, only a single Kinect can be used to understand the 3-D modeling of non-uniform rotating objects with non-uniform rotation angles. This method is convenient, practical, and suitable for simple and rapid 3-D reconstruction applications.

Key words

RGBD data; 3D scanning; point cloud registration; Kinect; depth data

0 引言

获取真实物体的3维模型一直都是计算机图形学、机器视觉等领域中研究热点。早期的设备通过接触式扫描、深度感应或激光扫描获取物体的3维几何信息,但这类设备存在操作复杂,价格昂贵等缺点。与传统的3维扫描设备相比,微软推出的RGB-D传感器Kinect不仅能获得物体表面深度信息,同时能够提供颜色纹理信息,且价格低廉、结构小巧、方便使用。然而目前此类深度相机普遍存在获取深度信息分辨率低、噪声大、建模范围小等问题。

近些年,很多研究者开始使用RGB-D数据进行室内场景和单个物体对象的3维重建[1-5],Izadi、Newcombe等人[6]构建了KinectFusion系统,对小范围静态场景和单独物体进行3维重建,但重建效率较低,且在颜色匹配上有光斑效应。Yang等人[7]利用KinectFusion扫描得到人体模型,提出一种针对深度相机的纹理自动贴图算法,通过将RGB数据映射到模型上取得了较好的效果,但对深度扫描仪的初始位置要求较高。Pan等人[8]结合了深度信息和RGB信息,扩大了Kinect建模范围,该方法虽能较好解决目标物超出扫描仪有效距离时的建模问题,但颜色和纹理信息丢失较为严重。Zhou等人[9]提出一种针对自动旋转平台获取3维点云数据的配准方法,能够实现将多个视角的点云数据自动配准到统一坐标系中,但此方法需要提前获取旋转平台的精确旋转角度,且对扫描得到的点云精度要求较高,不适用于高噪声的深度数据。Mihalyi等人[10]使用带有颜色的AR标记点对点云进行配准,并通过标记点的姿态估计提高配准的一致性,该方法鲁棒性较高但工作量较大,需要提前做好标记点且配准精度有待提高。Liu等人[11]针对有干扰的外部环境,提出一种基于RGB-D数据的目标分割与重建方法,但在纹理质量上有所欠缺。

本文利用Kinect深度相机获取物体表面的深度数据和RGB颜色数据,提出了一种利用旋转平台重建物体3维模型的配准方法。首先利用不同角度位于标定物上的点云数据标定出旋转平台中心轴的位置,从而获得Kinect与旋转平台之间的相对关系。然后使用Kinect获取位于旋转平台上目标物的表面深度信息和颜色信息,并用包围盒算法对获取的深度数据进行去噪处理。对于相邻两个角度获取的两组点云数据,通过曲率特征对目标点集进行特征点提取,并在参考点集中寻找对应点。随后对特征点点集使用二分迭代寻找绕旋转轴的最优旋转角度,以满足特征点与对应点间的圆弧距离平方和最小。最后,将多个角度获取的点云数据配准到统一的坐标系下并重建模型。实验结果显示,该方法对比ICP算法和改进ICP算法在算法效率和配准精度上有明显优势。

1 相关算法

迭代最近点 (ICP) 算法[12]是3维点云配准中使用最多的一种匹配算法,由Besl和Mckay于1992年提出。它通过迭代不断优化矩阵,在每次迭代过程中,对目标点集上的每个点,在参考点集中寻找最近点,并利用这样的对应关系,计算相应的旋转矩阵和平移向量,将其应用于目标点集上,得到新的目标点集并进入下次迭代过程,最终得到最佳的旋转和平移变换,实现两点集的精确配准。

由ICP算法描述可知,该算法的运行速度以及全局收敛性在很大程度上依赖于给定的初始位置和迭代过程中的对应关系,同时存在计算量较大、迭代可能会陷入局部最优等问题。为了适应不同的环境并克服ICP算法自身的部分缺陷,许多研究者对其进行了改进,出现了一系列的ICP改进算法。如Park等人[13]将点到切平面距离与点到投影距离结合起来,提出一种新的点到面距离计算方法,达到了快速、高效的目的。Sharp等人[14]基于不变量特征提出一种ICPIF算法,此算法使用被测物体的欧氏空间不变量 (曲率、矩不变量、球谐函数不变量等) 确定对应点对,提高了寻找对应点的正确率。Dai等人[15]使用曲率特征点和kd-tree加速寻找最近点,提高了ICP算法的效率。Chen等人[16]提出了HT-ICP算法,使用去除错误点对的方法使得配准精度有所提高。Wei等人[17]为提高ICP算法的性能,提出了一种基于点云单应性的迭代最近点配准算法。Xie等人[18]通过具有动态权重的成本函数来解决ICP算法在多视角配准中的不足,并使用稀疏SIFT特征点的空间距离来排除异常点对。

针对不同的点云数据也出现了不同的配准方法,如Zheng等人[19]提出的基于几何特征约束的建筑物点云配准算法。Gong等人[20]针对不完整的点云数据,利用互联网上的同类3维模型进行建模等。

2 本文算法流程

本文算法流程如图 1所示,通过Kinect采集位于旋转平台上目标物的深度数据和颜色数据,对齐融合[21]并使用包围盒算法去除背景噪声和不需要的外部点云,获得带有颜色信息的点云数据。通过获取正面和背面两个角度的标定物点云数据计算出旋转平台旋转轴的方位。使用曲率特征寻找目标点云的特征点,并在相邻点云上寻找其对应点。在将点云平移到新的旋转轴坐标系后使用二分迭代算法可得到最优旋转角度。据此进一步将相邻两片点云配准到一起。最后将其应用于多个角度的相邻点云进行全局配准得到完整的重建模型。

图 1 算法框图
Fig. 1 Algorithm frame

本文使用如图 2所示的转盘和Kinect建立简易实用的点云数据采集系统。通过Kinect获取位于旋转平台上物体的表面深度信息$d$和颜色信息$c$($r$$g$$b$),重叠对齐深度信息和RGB颜色信息后,得到带有颜色信息的点云数据$p$($x$($d$),$y$($d$),$z$($d$),$r$$g$$b$)。通过旋转平台即可得到物体多个角度的点云数据。由于物体在旋转平台上仅绕旋转轴旋转,因此相邻两片点云间只有旋转关系没有位移,我们只需获得旋转轴的位置和转盘旋转角度即可配准相邻的点云数据。

图 2 数据采集系统
Fig. 2 Data acquisition system

3 算法原理

3.1 标定原理

由于Kinect采集的RGBD数据具有低质高噪声特点,在高噪声的干扰下采用在点云匹配过程中自适应计算旋转轴的办法并不可行,因此采用旋转平台并标定出固定旋转轴是必要的。

由于旋转平台很难准确旋转到任意给定的固定角度,而180°的旋转可以做到精确度量,因此将长宽高为$l$×$m$×$h$的标定块放置于旋转平台上,分别对其正面和旋转180°后的背面进行扫描,得到两组点云数据。图 3(a)阴影部分$S_1$$S_2$为被扫描面,图 3(b)为得到的2组点云数据$S_{1}^{'}$$S_{2}^{'}$

图 3 标定示意图
Fig. 3 Calibration schematic ((a) scanning plane; (b) point cloud data)

图 3左图所示,由于Kinect采集到的点云数据都是以Kinect中心为原点建立的坐标系$O$($x$$y$$z$) 下的坐标,因此需要获得旋转轴$\;y'$在Kinect坐标系中的位置。以旋转平台中心为原点建立坐标系$O' \left( {x', {\rm{ }}y', {\rm{ }}z' } \right)$,标定块绕旋转轴旋转180°后,标定块的中心由$A$点转到$B$点,$C$点为线段$AB$的中点,则$C$点在$\;y'$轴上。由于$\;y'$轴与$AB$垂直且与面$S_1$平行,因此只要得到$A$点和$B$点在$O$($x$$y$$z$) 坐标系下的位置就可以得到旋转轴$\;y'$轴相对于Kinect的位置关系。由于标定块的宽高已知,所以通过计算$S_1$$S_2$的中心点就能得到$A$点和$B$点的坐标。

首先对标定块旋转前后的两片点云分别做拟合平面处理,设拟合方程为$z = {a_0}x + {a_1}y + {a_2}$,点云中$n$个点的坐标为$({x_i}, {\rm{ }}{y_i}, {\rm{ }}{z_i})$$i$=1,2,…,$n$,根据最小二乘法可得

$ {\rm{min}}\;S = \sum\limits_{i = 1}^n {{{\left( {{a_0}{x_i} + {a_1}{y_i} + {a_2} - {z_i}} \right)}^2}} $ (1)

若使$S$最小,应满足$\frac{{\partial S}}{{\partial {a_k}}} = 0, l = 0, 1, 2$,即

$ \left\{ \begin{array}{l} \sum {\left( {{a_0}{x_i} + {a_1}{y_i} + {a_2}-{z_i}} \right){x_i} = 0} \\ \sum {\left( {{a_0}{x_i} + {a_1}{y_i} + {a_2}-{z_i}} \right){y_i} = 0} \\ \sum {\left( {{a_0}{x_i} + {a_1}{y_i} + {a_2}-{z_i}} \right) = 0} \end{array} \right. $ (2)

求得

$ \left( \begin{array}{l} {a_0}\\ {a_1}\\ {a_2} \end{array} \right) = {\left( {\begin{array}{*{20}{c}} {\sum {x_i^2} }&{\sum {{x_i}{y_i}} }&{\sum {{x_i}} }\\ {\sum {{x_i}{y_i}} }&{\sum {y_i^2} }&{\sum {{y_i}} }\\ {\sum {{x_i}} }&{\sum {{y_i}} }&n \end{array}} \right)^{-1}}\left( \begin{array}{l} \sum {{x_i}{z_i}} \\ \sum {{y_i}{z_i}} \\ \sum {{z_i}} \end{array} \right) $ (3)

即得到平面方程$z = {a_0}x + {a_1}y + {a_2}$。将2次标定得到的点云分别垂直映射到拟合平面上,得到$S_{1}^{'}$$S_{2}^{'}$对应的面$S_1$$S_2$,设$C$点在$O$($x$$y$$z$) 坐标系下坐标为 ($a$$b$$c$)。$C$点为$AB$中点,标定物宽度为$m$,得

$ \left\{ \begin{array}{l} a = \left( {mean\left( {{S_1}, {\rm{ }}1} \right) + mean\left( {{S_2}, {\rm{ }}1} \right)} \right)/2\\ b = \left( {mean\left( {{S_1}, {\rm{ }}2} \right) + mean\left( {{S_2}, {\rm{ }}2} \right)} \right)/2\\ c = \left( {mean\left( {{S_1}, {\rm{ }}3} \right) + mean\left( {{S_2}, {\rm{ }}3} \right) + m} \right)/2 \end{array} \right. $ (4)

式中,$mean$($S$1,1) 和$mean$($S$2,1) 分别为$S_1$$S_2$$x$轴上的中点,即$A$点和$B$点在$x$轴上的坐标,$mean$($S$1,2) 和$mean$($S$2,2) 分别为$A$点和$B$点在$y$轴上的坐标,$mean$($S$1,3) 和$mean$($S$2,3) 分别为$S_1$$S_2$$z$轴上与$O$点的距离平均。

$O' $点在坐标系$O$($x$$y$$z$) 下坐标为$\left( {a', {\rm{ }}b', {\rm{ }}c' } \right)$,标定物高度为$h$,则有

$ \left| {\overrightarrow {O' C} } \right| = \sqrt {{{\left( {a-a' } \right)}^2} + {{\left( {b-b' } \right)}^2} + {{\left( {c-c' } \right)}^2}} = \frac{h}{2} $ (5)

由于$A$点绕$\;y'$轴旋转180°到$B$点,所以$\overrightarrow {AB} $${\overrightarrow {O' C} }$垂直,有

$ \begin{array}{*{20}{c}} {\overrightarrow {AB} \cdot \overrightarrow {O' C} = }\\ {\left( {mean\left( {{S_2}, 1} \right)-mean\left( {{S_1}, 1} \right)} \right)\cdot\left( {a-a' } \right) + }\\ {\left( {mean\left( {{S_2}, 2} \right)-mean\left( {{S_1}, 2} \right)} \right)\cdot\left( {b - b' } \right) + }\\ {\left( {mean\left( {{S_2}, 3} \right) - mean\left( {{S_1}, 3} \right)} \right)\cdot\left( {c - c' } \right) = 0} \end{array} $ (6)

$S_1$上任意取3点并由这3个点得到平面的法向量$\boldsymbol{n}$。由于标定物为标准立方体,$\;y'$轴与$S_1$所在平面平行,所以向量${\overrightarrow {O' C} }$与法向量$\boldsymbol{n}$垂直,有

$ \overrightarrow {O' C} \cdot \boldsymbol{n} = 0 $ (7)

由式 (4) 求出$C$点坐标 ($a$$b$$c$) 后分别代入式 (5)(6)(7) 即可求出${O' }$点的坐标$\left( {a', {\rm{ }}b', {\rm{ }}c' } \right)$,从而得到${O' C}$$O$($x$$y$$z$) 坐标系下的位置,即得到了$\;y'$轴与Kinect坐标系$y$轴的相对关系。其中位移关系$T = \left[{a', {\rm{ }}b', {\rm{ }}c' } \right]$$\;y'$轴与$y$轴偏移角度$θ$

$ \theta = \arccos \left( {\frac{{\overrightarrow {O' C} \cdot \boldsymbol{N}}}{{\left| {\overrightarrow {O' C} } \right|}}} \right) $ (8)

式中,$\boldsymbol{N}$=[0,1,0]。

标定过程只需进行1次,在不改变旋转平台和Kinect相对位置的前提下可以对多个物体进行多次数据采集,并使用标定出的旋转轴进行配准。注意到在实际标定过程中,由于Kinect采集数据的噪声问题对标定结果也不可避免会产生一些误差,但一方面,标定之前需要对数据进行去噪处理,并在标定完成后对标定物的2片点云进行180°匹配可检验标定结果的正确性,且本文仅采用一类简易标定系统,较好的物理标定平台可进一步有效克服标定误差。另一方面实验结果表明采用固定旋转轴进行点云配准,其误差比起自适应动态选取旋转轴办法得到的高噪声点云配准误差要小得多。

3.2 特征点选取

对于大规模数据的点云配准,特征点的选取可以大大减少运算时间提高算法效率。设点云$\boldsymbol{P}$中任意一点为$p$,以$p$为原点建立局部右手坐标系 ($p$$xyz$)。对$p$点利用kd-tree搜寻其$k$个邻近的点,这些点在局部坐标系 ($p$$xyz$) 下的坐标为$({x_i}, {\rm{ }}{y_i}, {\rm{ }}{z_i})$,设由$k$个邻点组成的曲面方程为

$ S\left( {x, {\rm{ }}y} \right) = \delta {x^2} + \varepsilon xy + \varphi {y^2} $ (9)

可得曲面方程组

$ \left( {\begin{array}{*{20}{c}} {x_1^2}&{{x_1}{y_1}}&{y_1^2}\\ {x_2^2}&{{x_2}{y_2}}&{y_2^2}\\ \vdots &{}& \vdots \\ {x_k^2}&{{x_k}{y_k}}&{y_k^2} \end{array}} \right)\left( \begin{array}{l} \delta \\ \varepsilon \\ \varphi \end{array} \right) = \left( \begin{array}{l} {z_1}\\ {z_2}\\ \vdots \\ {z_k} \end{array} \right) $ (10)

用最小二乘法求解方程组,即可求得曲面方程组$S$($x$$y$)。根据曲面的第一、第二基本公式可求出点$p$处的主曲率$k$1($p$),$k$2($p$),即

$ \left\{ \begin{array}{l} {k_1}\left( p \right) = \left( {\delta + \varphi } \right) + \sqrt {{{\left( {\delta-\varphi } \right)}^2} + {\varepsilon ^2}} \\ {k_2}\left( p \right) = \left( {\delta + \varphi } \right)-\sqrt {{{\left( {\delta-\varphi } \right)}^2} + {\varepsilon ^2}} \end{array} \right. $ (11)

$p$点的高斯曲率$K$($p$)=$k$1($p$$k$2($p$)。高斯曲率反映了曲面的一般弯曲程度,其绝对值可以用来衡量曲面的特殊程度。因此选取$K$值绝对值较大的$n$个点作为点云$\boldsymbol{P}$的特征点。$n$的取值由点云的点个数、点密度和复杂度决定,具体表现为能反映物体的大致轮廓或表面特征信息即可。图 4所示为对同一点云分别选取500个特征点和2 000个特征点的分布情况。本文在对雕塑点云进行配准实验中取$n$=2 000。

图 4 特征点选取
Fig. 4 Feature points selection ((a) original point cloud; (b) 500 feature points; (c) 2 000 feature points)

3.3 对应点选取

计算两片点云间的旋转关系首先需要找到点云间点与点的对应关系,因此需要在相邻点云中寻找特征点的对应点。如图 5(a)所示,传统的ICP算法选择欧氏距离最近点作为对应点,但在对旋转平台上目标物点云的配准中,往往会因为点云重叠或距离过远等原因找到大量错误的对应点。由于目标物在扫描过程中仅绕旋转轴进行旋转,因此本文采用圆弧最小距离寻找对应点。如图 5(b)所示,曲线$l$绕旋转轴旋转后得到曲线${l' }$${p_1}, {p_2}, {p_3}$分别为$l$上的点,${p_1}, {p_2}, {p_3}$分别绕旋转轴旋转找到最近点$p{' _1}, p{' _2}, p{' _3}$即为其对应点。

图 5 对应点选取
Fig. 5 Corresponding points selection ((a) closest point via Euclidean distance; (b) closest point via arc distance)

图 6所示,对于点云$\boldsymbol{P}$中的一个特征点$p$($u$$v$$w$),绕旋转轴即$\;y'$轴旋转一周形成一个半径为$r$的圆。

图 6 圆弧距离
Fig. 6 Arc distance

在相邻点云中寻找与$p$($u$$v$$w$) 在同一圆上的点$p'\left( {u', v', w'} \right)$,即满足$u{'^2} + w{'^2} = {r^2}$$v' = v$的点,$p$$p' $点在圆弧上的距离$L$

$ L = {\rm{arrcos}}\left( {\frac{{uu' + ww'}}{{\sqrt {\left( {{u^2} + {w^2}} \right)} \cdot \sqrt {\left( {u{'^2} + w{'^2}} \right)} }}} \right) \cdot r $ (12)

圆弧距离$L$最小的点即为该特征点的对应点。但由于在扫描过程中相邻点云只有部分重合,所以不是所有特征点在相邻点云上都有正确的对应点,因此使用平均圆弧距离来排除非重叠区域的对应点。对于有$n_t$个点的特征点集$\boldsymbol{P}_t$,其对应点点集为$\boldsymbol{Q}_t$,每个点对间的圆弧距离分别为$L_i$$i$=1,2,…,$n_t$。对于第$i$个点,若${L_i} > \frac{1}{{{n_t}}}\sum\limits_{i = 1}^{{n_t}} {{L_i}} $,则认为这个点为非重叠区域对应点,排除此特征点和对应点。遍历特征点集$\boldsymbol{P}_t$,剩下的特征点和对应点即为最终的点对集合。

3.4 迭代旋转算法

对于扫描得到相邻点云$\boldsymbol{P}$$\boldsymbol{Q}$,它们之间只有旋转变化,且在扫描时为了有更多的重合部分每次旋转角度均小于90°。因此对点集$\boldsymbol{P}$向点集$\boldsymbol{Q}$方向进行旋转,并求得旋转后两点集间的圆弧距离和,当圆弧距离和最小时即为两点集重合度最大。

首先根据标定得到的旋转轴位置,得到点云$\boldsymbol{P}$$\boldsymbol{Q}$在旋转轴坐标系$O' \left( {x', {\rm{ }}y', {\rm{ }}z' } \right)$下的新坐标。接着使用二分迭代算法快速寻找最佳旋转角度,算法如下:

1) 使用本文的特征点和对应点选取算法分别找到点云$\boldsymbol{P}$$\boldsymbol{Q}$的含有$n_t$个点的特征点集$\boldsymbol{P}_t$和对应点集$\boldsymbol{Q}_t$

2) 初始旋转角度${\alpha _0} = 0, {\beta _0} = {\rm{\pi }}/2, i = 0$,开始循环。

3) 中值旋转角度${\theta _i} = \left( {{\alpha _i} + {\beta _i}} \right)/2$

4) 将$\boldsymbol{P}_t$旋转${{\alpha _i}}$角度得到新的特征点集${\boldsymbol{P}_{t{\alpha _i}}}$,四元数旋转向量$q\left( \alpha \right) = [{\rm{cos}}\left( {{\alpha _i}/2} \right), {\rm{sin}}\left( {{\alpha _i}/2} \right) \cdot N]$,其中$\boldsymbol{N}$=[0,1,0]。对${\boldsymbol{P}_{t{\alpha _i}}}$寻找新的对应点集,由式 (12) 求出第$j$个点对的圆弧距离$L_j$,则两点集间的圆弧距离和${D_{L{\alpha _i}}}$

$ {D_{L{\alpha _i}}} = \sum\limits_{j = 1}^{{n_t}} {{L_j}\left( {{\boldsymbol{P}_{t{\alpha _i}}}} \right)} $ (13)

5) 将$\boldsymbol{P}_t$旋转${{\beta _i}}$角度得到新的特征点集${\boldsymbol{P}_{t{\beta _i}}}$,四元数旋转向量$q\left( \beta \right) = \left[{{\rm{cos}}\left( {{\beta _i}/2} \right), {\rm{sin}}\left( {{\beta _i}/2} \right) \cdot \boldsymbol{N}} \right]$,对${\boldsymbol{P}_{t{\beta _i}}}$寻找新的对应点集,得到圆弧距离和

$ {D_{L{\beta _i}}} = \sum\limits_{j = 1}^{{n_t}} {{L_j}\left( {{\boldsymbol{P}_{t{\beta _i}}}} \right)} $ (14)

6) 将$\boldsymbol{P}_t$旋转${\theta _i}$角度得到新的特征点集${\boldsymbol{P}_{t{\theta _i}}}$,四元数旋转向量$q\left( \theta \right) = \left[{{\rm{cos}}\left( {{\theta _i}/2} \right), {\rm{sin}}\left( {{\theta _i}/2} \right) \cdot \boldsymbol{N}} \right]$,对${\boldsymbol{P}_{t{\theta _i}}}$寻找新的对应点集,计算得到圆弧距离和

$ {D_{L{\theta _i}}} = \sum\limits_{j = 1}^{{n_t}} {{L_j}\left( {{\boldsymbol{P}_{t{\theta _i}}}} \right)} $ (15)

7) 若$\left| {{D_{L{\theta _i}}}-{D_{L{\alpha _i}}}} \right| < \left| {{D_{L{\beta _i}}}-{D_{L{\theta _i}}}} \right|$,则${\beta _{i + 1}} = {\theta _i}$${\alpha _{i + 1}} = {\alpha _i}$,否则${\alpha _{i + 1}} = {\theta _i}$${\beta _{i + 1}} = {\beta _i}$

8) 判断是否达到精度值$\xi $,即若$\left| {{D_{L{\beta _i}}}-{D_{L{\alpha _i}}}} \right| < \xi $,则得到最佳旋转角度${\theta _i}$,迭代完成。否则$i$=$i$+1,返回第3) 步。

点云$\boldsymbol{P}$绕旋转轴旋转${\theta _i}$角度即可将点云$\boldsymbol{P}$$\boldsymbol{Q}$配准。在全局配准中,对于从目标物$N$个不同角度获取的$N$组点云数据,分别找到相邻点云间的最佳旋转角度${\theta _j}$$j$=1,2,…,$N$,旋转角度需满足约束条件$\sum\limits_{j = 1}^N {{\theta _j} = 2{\rm{\pi }}} $

4 实验结果及分析

实验均在一台CPU为Intel Core i5-3470,主频3.2 GHz,4 GB内存,AMD Radeon HD 7400显卡的计算机上进行,深度数据和颜色数据获取使用一台Microsoft Kinect for Windows 1.0,操作系统Windows 7,算法使用Matlab编程实现,点云可视化使用Meshlab软件。

本文算法是针对非匀速非固定角度旋转物体的3维重建展开研究的,与文献[9]相比,本文使用的标定方法更具有鲁棒性。由于使用的是高噪声的Kinect深度相机,在物体表面会产生噪声和不规则点,相比文献[9]使用的圆柱标定物,本文使用立方体标定具有更好的拟合效果。且本文使用的是非自动旋转任意角度的旋转平台,在无法获得旋转角度的情况下可以很好地配准各个角度的点云数据。

采用斯坦福大学点云数据库的Bunny和Dragon点云,将本文配准方法与ICP算法[12]改进的ICP算法[15]进行对比实验。其中Bunny点云为从4个角度采集4组点云,Dragon点云为从15个角度采集15组点云。bun000与bun090,dragonStR_0与dragonStR_24的配准实验结果如表 1所示。由表 1可知,本文算法在迭代次数和运行时间上明显优于传统ICP算法,在取相同的特征点个数时在匹配误差上与改进的ICP算法相当且在运行时间上有所提高。

表 1 不同点云配准算法比较
Table 1 Compare with different point cloud registration algorithm

下载CSV
点云方法2片点云
总个数
特征点个数迭代次数算法运行
时间/s
欧氏距离
误差平方和
局部配准
效果图
bun000和
bun090
ICP算法70 63513468.58.747 1图 7(c)
改进ICP算法2 0003519.22.486 2图 7(b)
本文算法2 000135.671.758 4图 7(a)
dragonStR_0和
dragonStR_24
ICP算法76 6777536.72.485 9图 9(c)
改进ICP算法2 0002713.41.158 6图 9(b)
本文算法2 000136.590.988 3图 9(a)

图 7为Bunny和Dragon点云使用3种算法的局部配准效果。

图 7 局部配准效果
Fig. 7 Part matching results ((a) proposed algorithm; (b) improved ICP algorithm; (c) ICP algorithm)

图 8所示为图 7 Bunny两点云重合部分的最小距离图,图中每个网格点表示点云中的一个点,网格高度表示此点与相邻点云中最小距离点的距离值,网格中峰值越少即为匹配效果越好。由图 8可以看出,本文算法配准结果重合部分较多,误差较小,改进ICP算法配准误差较多,ICP算法有明显错位情况。

图 8 Bunny点云局部最小距离
Fig. 8 The minimum distance of the part of Bunny points
((a) proposed algorithm; (b) improved ICP algorithm; (c) ICP algorithm)

图 9所示为图 7 Dragon两点云重合部分的最小距离图,由图 9可以看出,3种算法中本文算法配准结果重合部分较多,误差较小。

图 9 Dargon点云局部最小距离
Fig. 9 The minimum distance of the part of Dargon points
((a) our algorithm; (b) improved ICP algorithm; (c) ICP algorithm)

图 10所示为使用3种方法全局配准后的Bunny点云和Dargon点云。由图 10可以看出,本文算法对比ICP算法和改进ICP算法都取得了较好的效果。

图 10 点云全局配准效果
Fig. 10 Point cloud global matching results
((a) our algorithm; (b) improved ICP algorithm; (c) ICP algorithm)

为了验证本文方法的实际重建效果,使用1台Kinect对雕塑模型从16个角度进行扫描,分别得到16片有部分重合的点云数据,每片点云含有约30万个点,每次采集需5 s左右,如图 11(a)所示为部分角度点云数据。首先对Kinect和旋转平台进行标定,分别从正面和背面扫描获取标定物点云数据,通过标定算法得到旋转轴与Kinect坐标系的相对关系。其中标定物点云含有约20万个点,标定算法的运行时间约为6 s。

图 11 匹配效果
Fig. 11 Matching results
((a) part of the point cloud data, serial number were 1, 2, 5, 6; (b) reconstruction model)

获得旋转轴与Kinect坐标系的相对关系后,将各个角度扫描得到的点云坐标通过平移旋转全部转换成以旋转中心为原点的新坐标系下的坐标,此时相邻点云通过绕旋转轴旋转即可完成配准。分别使用本文算法求得相邻点云的最佳旋转角度并对相应点云进行旋转,全局配准后重建模型效果如图 11(b)所示。

图 11(a)所示点云分别使用3种算法进行对比实验,实验结果如表 2所示。由表 2可知,本文算法迭代速度较快,运行时间较少,且在误差上与改进ICP算法相当。

表 2 自采样不同点云配准算法比较
Table 2 Compare with different self sampling point cloud registration algorithm

下载CSV
算法点云
序号
2片点云
总点数
特征点个数迭代次数算法运行
时间/s
欧氏距离
误差平方和
局部配准
效果图
ICP1,2628 83622695.6311.370 9图 13(c)
5,6514 91418761.118.747 1图 15(c)
改进ICP1,2628 8362 0005723.396.798 3图 13(b)
5,6514 9142 0004815.054.373 5图 15(b)
本文1,2628 8362 000136.144.632 8图 13(a)
5,6514 9142 000135.883.121 3图 15(a)

图 12所示分别为图 11(a)中的点云1、2和点云5、6使用3种算法的局部匹配效果。

图 12 图 11点云局部配准效果
Fig. 12 Part matching result of fig. 11 (a) points
((a) our algorithm; (b) improved ICP algorithm; (c) ICP algorithm)

图 13所示为图 12中点云1、2重合部分的最小距离图。由图 13可以看出,本文算法配准结果重合部分较多,误差较小,改进ICP算法匹配误差较多,ICP算法有明显错位情况。

图 13 点云1、2局部最小距离
Fig. 13 The minimum distance of the part of points 1 and 2
((a) our algorithm; (b) improved ICP algorithm; (c) ICP algorithm)

图 14所示为图 12中点云5、6重合部分的最小距离图,由图 14可以看出,3种算法中本文算法配准结果重合部分较多,误差较小。

图 14 点云5、6局部最小距离
Fig. 14 The minimum distance of the part of points 5 and 6
((a) our algorithm; (b) improved ICP algorithm; (c) ICP algorithm)

其中点云1和点云2的配准迭代误差收敛图如图 15所示。可以看出,本文采用二分迭代算法在10次迭代后即达到收敛趋势,在收敛速度上有明显优势。

图 15 迭代速度
Fig. 15 Iterative speed

本文同样在表面纹理复杂的物体上进行了配准实验,分别对花盆、示波器和披上围巾的雕像进行了扫描并对得到的RGBD数据进行重建模型。使用KinectFusion[6]算法的重建效果如图 16(a)所示,有明显的花斑现象,且模型平滑处理过多细节有所丢失。本文方法重建结果如图 16(b)所示,纹理细节保持较好且在纹理拼接上没有明显的错位情况,取得了较好的重建效果。

图 16 具有纹理细节的配准结果
Fig. 16 Matching results with texture details objects
((a) reconstruction effect of KinectFusion; (b) reconstruction effect of this proposed method)

5 结论

本文提出了一种基于RGBD数据进行3维重建的配准方法。该方法仅用单个Kinect即可实现对非匀速非固定角度旋转物体的3维建模,实现简单,方便实用。实验结果表明,本文方法算法稳定,效率较高,拼接精度较ICP配准方法有一定的改善,对于表面纹理复杂的物体也有较好的重建效果。同时本文方法也存在一些局限性,由于Kinect视角有限,因此单一旋转无法扫描到物体720°的点云数据,接下来的工作可以考虑将Kinect垂直移动从而获取物体全方位的点云数据。

参考文献

  • [1] Liu Z B, Qin H L, Bu S H, et al. 3D real human reconstruction via multiple low-cost depth cameras[J]. Signal Processing, 2015, 112: 162–179. [DOI:10.1016/j.sigpro.2014.10.021]
  • [2] Hernandez M, Choi J, Medioni G. Near laser-scan quality 3-D face reconstruction from a low-quality depth stream[J]. Image and Vision Computing, 2015, 36: 61–69. [DOI:10.1016/j.imavis.2014.12.004]
  • [3] Stückler J, Behnke S. Multi-resolution surfel maps for efficient dense 3D modeling and tracking[J]. Journal of Visual Communication and Image Representation, 2014, 25(1): 137–147. [DOI:10.1016/j.jvcir.2013.02.008]
  • [4] Li J, Xu W W, Cheng Z Q, et al. Lightweight wrinkle synthesis for 3D facial modeling and animation[J]. Computer-Aided Design, 2015, 58: 117–122. [DOI:10.1016/j.cad.2014.08.016]
  • [5] Mei F, Liu J, Li C P, et al. Improved RGB-D camera based indoor scene reconstruction[J]. Journal of Image and Graphics, 2015, 20(10): 1366–1373. [梅峰, 刘京, 李淳芃, 等. 基于RGB-D深度相机的室内场景重建[J]. 中国图象图形学报, 2015, 20(10): 1366–1373. ] [DOI:10.11834/jig.20151010]
  • [6] Newcombe R A, Izadi S, Hilliges O, et al. KinectFusion:real-time dense surface mapping and tracking[C]//2011 10th IEEE International Symposium on Mixed and Augmented Reality. Basel:IEEE, 2011:127-136.[DOI:10.1109/ISMAR.2011.6092378]
  • [7] Yang H Z, Lu Y, Fang Q, et al. Automatic 3D scanning system via depth camera[J]. Journal of Computer-Aided Design & Computer Graphics, 2015, 27(11): 2039–2049. [杨红庄, 陆炎, 方清, 等. 全自动深度相机三维扫描系统[J]. 计算机辅助设计与图形学学报, 2015, 27(11): 2039–2049. ]
  • [8] Pan H L, Guan T, Luo Y W, et al. Dense 3D reconstruction combining depth and RGB information[J]. Neurocomputing, 2016, 175: 644–651. [DOI:10.1016/j.neucom.2015.10.104]
  • [9] Zhou L M, Zheng S Y, Huang R Y. A registration algorithm for point clouds obtained by scanning objects on turntable[J]. Acta Geodaetica et Cartographica Sinica, 2013, 42(1): 73–79. [周朗明, 郑顺义, 黄荣永. 旋转平台点云数据的配准方法[J]. 测绘学报, 2013, 42(1): 73–79. ]
  • [10] Mihalyi R G, Pathak K, Vaskevicius N, et al. Robust 3D object modeling with a low-cost RGBD-sensor and AR-markers for applications with untrained end-users[J]. Robotics and Autonomous Systems, 2015, 66: 1–17. [DOI:10.1016/j.robot.2015.01.005]
  • [11] Liu J J, Qiao W B, Shan W B, et al. Object segmentation and real-time reconstruction approach based on RGB-D data[J]. Computer Applications and Software, 2015, 32(4): 215–221. [刘骏捷, 乔文豹, 单卫波, 等. 基于RGB-D数据的目标分割与实时重建方法[J]. 计算机应用与软件, 2015, 32(4): 215–221. ] [DOI:10.3969/j.issn.1000-386x.2015.04.051]
  • [12] Besl P J, McKay N D. A method for registration of 3-D shapes[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1992, 14(2): 239–256. [DOI:10.1109/34.121791]
  • [13] Park S Y, Subbarao M. An accurate and fast point-to-plane registration technique[J]. Pattern Recognition Letters, 2003, 24(16): 2967–2976. [DOI:10.1016/S0167-8655(03)00157-0]
  • [14] Sharp G C, Lee S W, Wehe D K. ICP registration using invariant features[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2002, 24(1): 90–102. [DOI:10.1109/34.982886]
  • [15] Dai J L, Chen Z Y, Ye X Z. The application of ICP algorithm in point cloud alignment[J]. Journal of Image and Graphics, 2007, 12(3): 517–521. [戴静兰, 陈志杨, 叶修梓. ICP算法在点云配准中的应用[J]. 中国图象图形学报, 2007, 12(3): 517–521. ] [DOI:10.11834/jig.20070323]
  • [16] Chen J, Wu X J, Wang M Y, et al. 3D shape modeling using a self-developed hand-held 3D laser scanner and an efficient HT-ICP point cloud registration algorithm[J]. Optics & Laser Technology, 2013, 45: 414–423. [DOI:10.1016/j.optlastec.2012.06.015]
  • [17] Wei S B, Wang S Q, Zhou C H, et al. An iterative closest point algorithm based on biunique correspondence of point clouds for 3D reconstruction[J]. Acta Optica Sinica, 2015, 35(5): #515003. [韦盛斌, 王少卿, 周常河, 等. 用于三维重建的点云单应性迭代最近点配准算法[J]. 光学学报, 2015, 35(5): #515003. ]
  • [18] Xie J, Hsu Y F, Feris R S, et al. Fine registration of 3D point clouds fusing structural and photometric information using an RGB-D camera[J]. Journal of Visual Communication and Image Representation, 2015, 32: 194–204. [DOI:10.1016/j.jvcir.2015.08.007]
  • [19] Zheng D H, Yue D J, Yue J P. Geometric feature constraint based algorithm for building scanning point cloud registration[J]. Acta Geodaetica et Cartographica Sinica, 2008, 37(4): 464–468. [郑德华, 岳东杰, 岳建平. 基于几何特征约束的建筑物点云配准算法[J]. 测绘学报, 2008, 37(4): 464–468. ] [DOI:10.3321/j.issn:1001-1595.2008.04.011]
  • [20] Gong Y S, Zhang Y, Wen Y, et al. Kinect-based data-driven 3D modeling[J]. Journal of Computer-Aided Design & Computer Graphics, 2014, 26(11): 1957–1965. [宫钰嵩, 张岩, 文艳, 等. Kinect扫描数据驱动的几何建模方法[J]. 计算机辅助设计与图形学学报, 2014, 26(11): 1957–1965. ]
  • [21] Mikhelson I V, Lee P G, Sahakian A V, et al. Automatic, fast, online calibration between depth and color cameras[J]. Journal of Visual Communication and Image Representation, 2014, 25(1): 218–226. [DOI:10.1016/j.jvcir.2013.03.010]