基于球体及平面模型的双Kinect空间位置的标定方法 下载: 1435次
1 引言
随着计算机图形学以及3D技术的发展,3D电影、虚拟现实(VR)游戏以及逆向工程都对3D建模提出了更高要求。除了价格昂贵的高精度3D扫描仪,微软公司推出的RGB-Depth深度视频摄像机Kinect也在近年崭露头角,这款设备可以基于获取的深度图像形成3D点云数据,从而为3D模型的建立提供了一种崭新的方式[1]。利用单个Kinect进行3D模型重建时,帧间的移动距离较小,可利用迭代最近点(ICP)算法及其改进算法[2]逐步进行点云配准。但在大场景下采用双Kinect同步移动扫描大型物体时,Kinect间的距离及角度变化较大,捕捉到的多帧点云模型的非重叠区域也较大。这种情况下直接利用ICP算法进行配准会导致无法快速选定好的配准初值[3],同时也容易造成ICP算法收敛于局部最小以及配准速度缓慢的问题。此时,可以先标定双Kinect的外参,将两个Kinect统一到一个坐标系后再进行点云配准。
目前,在双Kinect间的旋转平移矩阵标定方面,传统的方法是在红外光源下利用张正友标定法[4]标定两个深度摄像头,先得到其内参,进而估计其外参,并将其视为Kinect间的位置关系,文献[ 5]就基于此方法将两个深度摄像头间的位置变换关系视为点云间的位置变换关系,这种方法非常依赖于红外光源以及靶标,同时忽略了不同Kinect从深度图转化成点云的差别。利用点云信息进行标定时,更多的研究者利用ICP配准算法直接将建模物体作为模型,提取配准时的位姿变换矩阵作为Kinect间的位置变换关系,如文献[ 6],此方案要求Kinect间的距离很近,否则会没有较好的配准初值用来迭代,结果会进入局部收敛。文献[ 7]通过引入自适应阈值对传统ICP方法进行了改进,改善了有大量非重合区域的点云的配准,主要用于解决几何匹配问题,但不能利用扫描设备获取颜色信息,故而算法的复杂度很高,针对20000个点的点云配准标定时间已将近20 s。本文通过简化配准模型,利用模型表面的颜色及几何信息,提取直观、准确的点云位姿变换参数,摆脱了红外光源及ICP算法的限制[8],实现了双Kinect便捷准确的位姿标定。
2 标定原理
2.1 实验设备
实验用深度传感器为XBOX360 Kinect 1.0,其有效探测距离为0.8~3.5 m,水平有效视场角为58°,垂直有效视场角为45°,含彩色RGB传感器与红外深度传感器,传感器的分辨率为640 pixel×480 pixel。深度传感器利用光编码技术对目标的空间深度信息进行计算。该技术通过红外传感器结合红外光源获取深度信息,在传感器的有效距离内,每隔一段距离取参考平面,记录下参考平面上红外光源产生的衍射散斑图案,当光源在待测物体上产生衍射图样后,将该图像与几百张参考图像作运算得到一系列的相关度图像。依据相关图像中的峰值得到测量图像的深度信息,这也就是其获得模型3D点云的原理[9-10]。
2.2 标定原理
提出了一种利用3D点云进行双Kinect间的空间位置关系标定方法。首先利用3个互不平行的空间平面及1个球体形成标定模型,2个Kinect从不同角度进行拍摄形成点云(此时输出的点云坐标系为2个Kinect的自身坐标系),如
图 1. 两视角下的标定模型及参数简图。(a)视角1;(b)视角2
Fig. 1. Diagrams of two-view calibration model and parameters. (a) View 1; (b) view 2
在
获取两个视角的点云后,分别进行关键参数的提取,利用每个视角下的点云模型可以获取一组关键参数:3个互不平行的平面法向量及一个球心坐标。再使用四元数方法进行解算,已知法向量集合
2.3 关键参数的提取
Kinect最初采集的点云数据为无序的点云数据,而且它们的密度不均匀,故建立3D k-d Tree[11]以方便查找点的近邻及索引,然后根据3
在法向量提取方面,本研究采用随即采样一致性(RANSAC)[14]方法,并针对实验情况进行了改进,引入余弦抖动值的概念:利用不同的邻域范围计算法向量,获得不同邻域范围内的法向量后,计算每组每个点的法向量与这一组迭代获取的最终法向量
算法如
使用最小二乘法提取球心,将多点拟合球心的过程转化为超定方程的求解[15-16]。如果获得平移向量的过程中不使用球心坐标,而是直接利用3个平面计算交点的方式获取1个点的具体坐标,进而进行计算,则无法避免Kinect噪声对平面位置提取的影响,交点位置通常存在平移误差,配准效果相对于利用球心的方式会有0.3 cm左右的误差,如
表 1. 法向量提取算法
Table 1. Extraction algorithm of normal vector
|
表 2. 利用平面交点与球心获取固定点的误差
Table 2. Error between fixed points obtained by plane intersection and sphere center
|
2.4 外参解算
求解过程中利用四元数方法,四元数是一种拓展复数的表示方法[17-18],与复数十分类似,表示1个四维空间。依据四元数的表示方式,可以将两坐标系之间的旋转变化从按次序绕3个轴分别旋转一定的角度变为绕1个特定的轴旋转1个角度。若某个旋转轴经过原点,其单位方向向量为
式中
故由(1)式可以将一点
如果可以求出四元数
已知旋转矩阵
由(4)式可以看出,当
可知当
求解过程中易知矩阵
式中
则依据(6)式,矩阵
式中
求出
3 实验结果及分析
以下主要展示经上述处理后的法向量、球心的提取结果,将计算出的旋转平移矩阵后不同视角点云的配准效果以及不同实现方案的耗时进行对比。
3.1 关键参数的提取结果
实验模型选取黄黑白平面及一个红色球体,如
图 2. 不同Kinect视角的点云配准模型。(a)点云1;(b)点云2
Fig. 2. Point cloud calibration models with different Kinect's views. (a) Point cloud 1; (b) point cloud 2
3.2 配准效果
图 3. 点云的平面分割及法向量提取结果
Fig. 3. Plane segmentation and normal vector extraction results of point cloud
图 4. 点云法向量提取效果。(a) RANSAC算法;(b)改进后的RANSAC算法
Fig. 4. Extraction results of point cloud normal vector. (a) RANSAC algorithm; (b) improved RANSAC algorithm
图 5. 点云中球面的(a)提取及(b)拟合效果
Fig. 5. (a) Sphere extraction and (b) sphere fitting result of point cloud
分别根据ICP算法、改进的ICP算法以及本文标定方法获取两个Kinect间的外参变换矩阵
图 6. 经典ICP算法的配准效果。(a)未配准的点云;(b)配准效果
Fig. 6. Registration results of classic ICP algorithm. (a) Un-registrated point cloud; (b) registrated point cloud
图 7. (a)自适应阈值ICP的配准效果;(b)本研究的配准效果
Fig. 7. (a) Registration result of adaptive threshold ICP; (b) registration result of proposed method in the paper
在算法耗时对比方面,文献[
3]与文献[
7]中所述的ICP算法与自适应阈值的ICP算法均是利用所有的点云信息进行迭代计算的,每一次迭代都要计算所有最近点对之间的距离,对比之后更新
表 3. 不同算法的标定精度
Table 3. Calibration accuracy of different algorithms
|
表 4. 不同算法的耗时
Table 4. Time consuming of different algorithms
|
4 结论
在现有深度设备间标定方案的基础上,深入研究了视角位移变化较大的标定情况,提出了一种新的深度设备间的标定方式,并进行了验证,解决了深度设备间视角位移变化较大时的快速标定问题。结果表明:本研究所提标定方案可以实现双Kinect的外参的准确标定;基于点云颜色与法向量信息的点云平面分割及法向量提取的方法是有效的,且基于改进的RANSAC算法计算得到的平面点集法向量的一致性很好;相较于利用经典ICP及改进ICP算法直接对点云进行配准进而标定深度设备外参的方法,本研究所提标定算法更简洁,耗时更短,标定精度更高。
主要验证了基于球体及平面的点云信息可以标定视角位置变化较大的深度设备间的旋转平移矩阵。在双Kinect标定下的标定效果很好,配准的准确程度与自适应阈值ICP算法基本一致,但设备数量增多时容易存在累积误差,这是后续需要解决的问题。
[1] Zhang Z. Microsoft Kinect sensor and its effect[J]. IEEE MultiMedia, 2012, 19(2): 4-10.
[3] 张宗华, 彭翔, 胡小唐. 获取ICP匹配深度图像初值的研究[J]. 工程图学学报, 2002, 23(1): 78-84.
Zhang Z H, Peng X, Hu X T. The research on acquiring the initial value of registering range images by ICP[J]. Journal of Engineering Graphics, 2002, 23(1): 78-84.
[4] Zhang Z Y. A flexible new technique for camera calibration[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2000, 22(11): 1330-1334.
[5] 陈晓明, 蒋乐天, 应忍冬. 基于Kinect深度信息的实时三维重建和滤波算法研究[J]. 计算机应用研究, 2013, 30(4): 1216-1218.
Chen X M, Jiang L T, Ying R D. Research of 3D reconstruction and filtering algorithm based on depth information of Kinect[J]. Application Research of Computers, 2013, 30(4): 1216-1218.
[6] 乔思航. 基于多Kinect的个性化虚拟人三维建模[D]. 长沙: 国防科学技术大学, 2013: 1- 14.
Qiao SH. Personalized virtual human 3D modeling based on multiple Kinect[D]. Changsha: National University of Defense Science and Technology, 2013: 1- 14.
[8] 丁少闻, 张小虎, 于起峰, 等. 非接触式三维重建测量方法综述[J]. 激光与光电子学进展, 2017, 54(7): 070003.
[10] 欧攀, 吴帅, 周锴. 基于深度传感器骨骼追踪的快速人体测量方法[J]. 激光与光电子学进展, 2017, 54(12): 121206.
[12] 卢明腾, 苏显渝, 曹益平, 等. 同步扫描的调制度测量轮廓术三维面形重建算法[J]. 中国激光, 2016, 43(3): 0308006.
[13] 许幸芬, 曹益平, 彭旷. 基于相位预测的在线三维测量像素匹配方法[J]. 光学学报, 2016, 36(6): 0612005.
[15] Ahn S J, Rauh W, Warnecke H J. Least-squares orthogonal distances fitting of circle, sphere, ellipse, hyperbola and parabola[J]. Pattern Recognition, 2001, 34(12): 2283-2303.
[16] Landa J, Procházka D. ?tastn y' J. Point cloud processing for smart systems [J]. Acta Universitatis Agriculturae et Silviculturae Mendelianae Brunensis, 2013, 61(7): 2415-2421.
[19] Zhan QM, YuL, Liang YB. A point cloud segmentation method based on vector estimation and color clustering[C]. 2nd International Conference on Information Science and Engineering, Hangzhou, 2010: 3463- 3466.
欧攀, 周锴, 吴帅. 基于球体及平面模型的双Kinect空间位置的标定方法[J]. 激光与光电子学进展, 2018, 55(4): 042802. Pan Ou, Kai Zhou, Shuai Wu. Dual-Kinect Spatial Position Calibration Method Based on Sphere and Plane Model[J]. Laser & Optoelectronics Progress, 2018, 55(4): 042802.