留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

基于极线及共面约束条件的Kinect点云配准方法

叶勤 姚亚会 桂坡坡

叶勤, 姚亚会, 桂坡坡. 基于极线及共面约束条件的Kinect点云配准方法[J]. 武汉大学学报 ● 信息科学版, 2017, 42(9): 1271-1277. doi: 10.13203/j.whugis20150362
引用本文: 叶勤, 姚亚会, 桂坡坡. 基于极线及共面约束条件的Kinect点云配准方法[J]. 武汉大学学报 ● 信息科学版, 2017, 42(9): 1271-1277. doi: 10.13203/j.whugis20150362
YE Qin, YAO Yahui, GUI Popo. Kinect Point Cloud Registration Method Based on Epipolar and Point-to-Plane Constraints[J]. Geomatics and Information Science of Wuhan University, 2017, 42(9): 1271-1277. doi: 10.13203/j.whugis20150362
Citation: YE Qin, YAO Yahui, GUI Popo. Kinect Point Cloud Registration Method Based on Epipolar and Point-to-Plane Constraints[J]. Geomatics and Information Science of Wuhan University, 2017, 42(9): 1271-1277. doi: 10.13203/j.whugis20150362

基于极线及共面约束条件的Kinect点云配准方法

doi: 10.13203/j.whugis20150362
基金项目: 

上海市自然科学基金 13ZR1444300

详细信息
    作者简介:

    叶勤, 博士, 副教授, 主要从事数字摄影测量、计算机视觉的理论与方法研究。yeqin@tongji.edu.cn

  • 中图分类号: P234

Kinect Point Cloud Registration Method Based on Epipolar and Point-to-Plane Constraints

Funds: 

The Natural Science Foundation of Shanghai 13ZR1444300

More Information
    Author Bio:

    YE Qin,PhD, associate professor, specializes in photogrammetry and computer vision. E-mail: yeqin@tongji.edu.cn

图(9) / 表(1)
计量
  • 文章访问数:  1246
  • HTML全文浏览量:  62
  • PDF下载量:  421
  • 被引次数: 0
出版历程
  • 收稿日期:  2016-10-17
  • 刊出日期:  2017-09-05

基于极线及共面约束条件的Kinect点云配准方法

doi: 10.13203/j.whugis20150362
    基金项目:

    上海市自然科学基金 13ZR1444300

    作者简介:

    叶勤, 博士, 副教授, 主要从事数字摄影测量、计算机视觉的理论与方法研究。yeqin@tongji.edu.cn

  • 中图分类号: P234

摘要: Kinect作为轻量级手持传感器,在室内场景恢复与模型重建中具有灵活、高效的特点。不同于大多数只基于彩色影像或只基于深度影像的重建算法,提出一种将彩色影像与深度影像相结合的点云配准算法并用于室内模型重建恢复,其过程包括相邻帧数据的配准与整体优化。在Kinect已被精确标定的基础上,将彩色影像匹配得到的同名点构成极线约束与深度图像迭代最近点配准的点到面约束相结合,以提高相邻帧数据配准算法的精度与鲁棒性。利用相邻4帧数据连续点共面约束,对相邻帧数据配准结果进行全局优化,以提高模型重建的精度。在理论分析基础上,通过实验验证了该算法在Kinect Fusion无法实现追踪、建模的场景中鲁棒性依然较好,点云配准及建模精度符合Kinect观测精度。

English Abstract

叶勤, 姚亚会, 桂坡坡. 基于极线及共面约束条件的Kinect点云配准方法[J]. 武汉大学学报 ● 信息科学版, 2017, 42(9): 1271-1277. doi: 10.13203/j.whugis20150362
引用本文: 叶勤, 姚亚会, 桂坡坡. 基于极线及共面约束条件的Kinect点云配准方法[J]. 武汉大学学报 ● 信息科学版, 2017, 42(9): 1271-1277. doi: 10.13203/j.whugis20150362
YE Qin, YAO Yahui, GUI Popo. Kinect Point Cloud Registration Method Based on Epipolar and Point-to-Plane Constraints[J]. Geomatics and Information Science of Wuhan University, 2017, 42(9): 1271-1277. doi: 10.13203/j.whugis20150362
Citation: YE Qin, YAO Yahui, GUI Popo. Kinect Point Cloud Registration Method Based on Epipolar and Point-to-Plane Constraints[J]. Geomatics and Information Science of Wuhan University, 2017, 42(9): 1271-1277. doi: 10.13203/j.whugis20150362
  • 随着信息技术的发展,三维模型重建技术受到各行各业的青睐,利用深度传感器获取深度数据(点云)进行三维建模及场景恢复是其中常用且重要的一种方法。三维激光扫描装置是常见的获取点云信息的传感器,但其价格昂贵,限制了点云数据在日常领域的应用。微软推出的一种彩色与深度传感器结合的双镜头传感器(RGB-D) Kinect2.0[1-2],易于携带与操作、价格低廉,在小型物体建模及室内小场景恢复上得到广泛应用[3-5]。Kinect自带开发工具,为研究基于Kinect的物体重建提供了参考与便利[6]

    点云配准是基于点云的三维建模和场景恢复的关键内容,迭代最近点(iterative closest point,ICP)[7]算法是最常用的方法之一。文献[6]采用了ICP算法,利用图形处理器GPU存储全局点云,令当前帧不断与全局点云配准,以提高算法速度;但该算法只利用了深度影像数据,精度有限,在场景趋于平坦时追踪建模极易失败;且该方法重建的模型大小受GPU内存影响,只适合小场景或小模型的重建。另外,基于Kinect的即时定位与地图构建应用(simultaneous localization and mapping,SLAM)侧重于Kinect的位姿估计,对场景或地图精度要求不高,甚至在某些场景中需添加靶标或已知物体来辅助导航[8-9]。由于SLAM应用对实时性要求高,一般只基于彩色或深度相机,极少将两者结合起来应用。

    本文旨在研究一种将相邻彩色影像与深度影像结合的Kinect配准算法,利用两镜头间存在的相互关系及获取数据的特点,对点云ICP配准进行改进。首先对相机进行标定,标定后Kinect彩色影像坐标系与深度影像坐标系可相互转换;然后利用匹配算法对相邻彩色影像匹配得到同名点,构成极线约束;将深度影像转换为点云(深度影像与点云可相互转换,后续将不区分两者),计算各点法线,构建点面约束;再将极线约束与点面约束结合,作为ICP算法的迭代策略。最后对每相邻4帧数据,就其深度影像构建连续四点共面约束,来全局优化配准参数,解决因帧间连续配准带来的累积误差,提高整体配准的精度与可靠性。

    • Kinect传感器帧频为30帧/s,每一帧数据包括彩色影像与深度影像,约定Fn={Icn, Idn}表示一帧影像,其中I表示影像,下标cd分别表示彩色影像与深度影像,上标n泛指第n帧数据。

      定义Kinect坐标系为以深度镜头的中心点为原点,Z轴方向垂直于深度影像平面朝向视场方向为正,X方向垂直Z方向水平向右(相对于Kinect)的右手坐标系(Y轴向下),如图 1所示。

      图  1  Kinect坐标系示意图

      Figure 1.  Kinect Coordinate System

      利用文献[10, 11]中算法对Kinect进行标定,得到标定参数:深度相机的内参数矩阵Kd, 彩色相机的内参数矩阵Kc与畸变参数矩阵Dc, 由深度镜头坐标系转换至彩色镜头坐标系的旋转矩阵R与平移矩阵t。其中:

      $$ \left\{ \begin{array}{l} {\mathit{\boldsymbol{K}}_c} = \left[ {\begin{array}{*{20}{c}} {{f_x}}&0&{{c_x}}\\ 0&{{f_y}}&{{c_y}}\\ 0&0&1 \end{array}} \right]\\ {\mathit{\boldsymbol{D}}_c} = \left[ {\begin{array}{*{20}{c}} {{k_1}}&{{k_2}}&{{p_1}}&{{p_2}}&{{k_3}} \end{array}} \right] \end{array} \right. $$ (1)

      式中,cxcy为像主点在像素坐标系下的坐标值;fxfy分别为xy方向上的等效主距[11]。以I (x, y)表示影像I中的像点坐标,其对应的齐次坐标为xI=[x, y, 1]T。对于深度影像上,已知xI点对应的深度值为d (x, y), 则该点对应的物点的Kinect坐标X为:

      $$ \mathit{\boldsymbol{X}} = d\left( {x,y} \right)\mathit{\boldsymbol{K}}_d^{ - 1}{\mathit{\boldsymbol{x}}_d} $$ (2)

      式中, xd表示xI对应在深度影像上的像点坐标。同时,式(2) 亦可反过来求解xd(注意反算的过程不需要已知d (x, y))。

      $$ \left\{ \begin{array}{l} \mathit{\boldsymbol{u}} = {\mathit{\boldsymbol{K}}_c}\left( {\mathit{\boldsymbol{RX + t}}} \right)\\ \left( {{x_0},{y_0}} \right) = \left( {{u_x}/{u_z},{u_y}/{u_z}} \right)\\ {\mathit{\boldsymbol{x}}_c} = {\mathit{\boldsymbol{D}}_c}\left( {{x_0},{y_0}} \right) \end{array} \right. $$ (3)

      式中,u=[ux, uy, uz]TDc*表示畸变项改正。可利用中心投影关系式(3) 计算物点X对应在彩色影像上的像点坐标xc

      由式(2)、式(3) 可计算深度影像点至彩色影像点的变换,但反算时因d (x, y)未知无法计算。故需建立彩色影像点到深度影像点的映射,为极线约束做准备。具体方法如下。

      1) 遍历每个深度影像点xd,利用式(2)、式(3) 计算其对应的彩色影像点xc(非整数点)。

      2) 遍历彩色影像点,利用双线性插值,计算每个点对应的深度影像点坐标。

      3) 建立深度影像坐标与彩色影像坐标间的索引关系为:

      $$ {\mathit{\boldsymbol{x}}_d} = {\rm{map}}\left( {{\mathit{\boldsymbol{x}}_c}} \right) $$ (4)

      ICP算法配准相邻帧点云的目的是求解相邻帧数据间的转换参数(旋转与平移矩阵) RnTn,建立转换关系如下:

      $$ {\mathit{\boldsymbol{X}}_{n - 1}} = {\mathit{\boldsymbol{R}}_n}{\mathit{\boldsymbol{X}}_n} + {\mathit{\boldsymbol{T}}_n} $$ (5)
    • 对相邻两帧的深度影像Idn-1Idn,由于Kinect采集数据帧率高,且手持移动相对较慢,使得Idn-1Idn重叠度较大。考虑到实际场景或模型的表面连续性(边缘除外),任意点的局部区域可视为平面(尖锐点除外),因此构建点面约束如下:

      1) 对于Idn中任意一点xdn, 根据式(2) 计算Xn

      2) 根据式(5) 计算Xn-1RnTn初始分别为单位阵与零阵,其后每次迭代更新;

      3) 根据式(2) 反算在Idn-1中的对应点xdn-1

      4) 由式(2) 和已知的dn-1重新计算Xn-1

      5) 得到点对<Xn, Xn-1>。

      理想情况下,XnXn-1应为空间同一点,但考虑Rn, Tn为近似值及空间离散采样等原因,两点为空间中不同点。但基本上,XnXn-1点所在的物方平面上,于是提出了点到面的约束条件。XnXn-1所在的局部平面表达式为:

      $$ \left\{ \begin{array}{l} f\left( * \right) = {\mathit{\boldsymbol{N}}_{n - 1}}\left( {{{\mathit{\boldsymbol{X'}}}_n} - {{\mathit{\boldsymbol{X'}}}_{n - 1}}} \right)\\ {{\mathit{\boldsymbol{X'}}}_n} = {\mathit{\boldsymbol{R}}_n}{{\mathit{\boldsymbol{X'}}}_n} + {\mathit{\boldsymbol{T}}_n} \end{array} \right. $$ (6)

      式中,f*为RnTn的函数;Xn为利用式(6) 第二式计算出的第n帧上的物点Xnn-1帧的Kinect坐标;Nn-1为单位向量,表示点Xn-1处的法线,其计算公式为:

      $$ \left\{ \begin{array}{l} {\mathit{\boldsymbol{N}}_{n - 1}} = {\rm{norm}}\left( {{\rm{d}}X \times {\rm{d}}\mathit{\boldsymbol{Y}}} \right)\\ {\rm{d}}\mathit{\boldsymbol{X}} = \mathit{\boldsymbol{X}}_{n - 1}^{\left( {x + 1,y} \right)} - \mathit{\boldsymbol{X}}_{n - 1}^{\left( {x,y} \right)}\\ {\rm{d}}\mathit{\boldsymbol{Y}} = \mathit{\boldsymbol{X}}_{n - 1}^{\left( {x,y + 1} \right)} - \mathit{\boldsymbol{X}}_{n - 1}^{\left( {x,y} \right)} \end{array} \right. $$ (7)

      式中, norm(*)表示对向量进行归一化;Xn-1(x, y)Idn-1(x, y)在Kinect坐标系下的坐标。

      Kinect2.0深度影像分辨率为512像素×424像素,可构建大量点到面约束条件(约20万对),但其中混入了一定量的错误点面对约束(主要在深度图边缘处)。因此,针对点面对的构建提出3点优化:对深度影像进行双边滤波,在保留深度图边界的情况下,光滑点云表面,提高法线的计算精度;舍弃物体边缘处点面对;剔除离群点组成的点面对。

      利用点面对约束求解配准参数:

      $$ \min \frac{1}{N}\sum\limits_{i = 1}^N {f{{\left( { * ,i} \right)}^2}} $$ (8)
    • 精确标定Kinect后,利用匹配构建的极线约束将彩色影像转换至深度影像坐标系中,再与§1.1中约束进行结合,以提高ICP算法的收敛速度与配准精度。将式(2) 代入式(5) 得dn-1Kd-1 ·xdn-1=dnRnKd-1xdn+Tn,两边同时左叉乘Tn,再左点乘(Kd-1xdn-1)T;由Tn×Tn=0,且(dn-1Kd-1xdn-1)TTn×Kd-1xdn-1=0,整理得:

      $$ {\left( {\mathit{\boldsymbol{K}}_d^{ - 1}\mathit{\boldsymbol{x}}_d^{n - 1}} \right)^{\rm{T}}}{\mathit{\boldsymbol{T}}_n} \times {\mathit{\boldsymbol{R}}_n}\mathit{\boldsymbol{K}}_d^{ - 1}\mathit{\boldsymbol{x}}_d^n = 0 $$ (9)

      式(9) 称为极线约束条件。结合式(4) 中的映射关系,构建彩色影像关于RnTn的极线约束方程:

      $$ \left\{ \begin{array}{l} g\left( * \right) = {\left( {\mathit{\boldsymbol{\tilde x}}_d^{n - 1}} \right)^{\rm{T}}}{\mathit{\boldsymbol{T}}_n} \times {\mathit{\boldsymbol{R}}_n}\mathit{\boldsymbol{\tilde x}}_d^n\\ \mathit{\boldsymbol{\tilde x}}_d^m = \left( {\mathit{\boldsymbol{K}}_d^{ - 1}{\rm{map}}\left( {\mathit{\boldsymbol{x}}_c^m} \right)} \right) \end{array} \right. $$ (10)

      式中,g*为RnTn的函数;$\mathit{\boldsymbol{\tilde x}}$dn-1为利用式(10) 第二式计算出的彩色影像点在第n-1帧深度影像上的对应位置;mnn-1。

      极线约束的构建过程如下。

      1) 通过匹配算法(surf或sift等[12-13])对彩色影像Icn-1Icn进行匹配, 并通过随机抽样一致性(RANSAC)算法剔除错误点对,得到正确同名点对xc, in-1, xc, in(i为点对的下标索引号);

      2) 根据式(10) 第二式计算深度影像上的位置$\mathit{\boldsymbol{\tilde x}}$d, in-1、$\mathit{\boldsymbol{\tilde x}}$d, in,再代入第一式得到极线约束的条件;根据场景或模型的纹理情况,每对影像一般可获得几十至几百个不等的极线约束条件。

      利用极线约束求解配准参数使式(11) 最小化:

      $$ \min \frac{1}{N}\sum\limits_{i = 1}^N {g{{\left( { * ,i} \right)}^2}} $$ (11)

      因存在尺度差异,只有极线约束条件无法完全解出配准参数,甚至会得到歧义解。

    • 假设对每相邻两帧数据Fn-1Fn,可获得N个点面约束,M个极线约束。解算时两种约束条件分别等权,为使点面约束的总权重与极线约束的总权重相等,令同名点极线约束的权重为点到面约束权重的N/M倍。

      考虑到ICP的迭代流程,将迭代策略改为:

      $$ \min \left( {\frac{1}{N}\sum\limits_{i = 1}^N {f{{\left( { * ,i} \right)}^2}} + \frac{1}{M}\sum\limits_{i = 1}^N {g{{\left( { * ,i} \right)}^2}} } \right) $$ (12)

      相邻两帧数据配准流程如下。

      1) 初始化旋转矩阵Rn(3×3单位阵)和平移矩阵Tn(3×1零阵);

      2) 匹配相邻帧的彩色影像Icn-1Icn,获取同名点构建极线约束条件;

      3) 利用相邻帧的深度影像Idn-1Idn构建点到面约束条件;

      4) 不断迭代优化式(12),并更新RnTn

      5) 判断是否满足迭代终止条件,若满足,则结束配准,输出RnTn;否则利用更新的RnTn重复步骤3) ~6)。

      迭代收敛的条件有两个,一是迭代次数,一般迭代超过50次则判定为迭代完成;二是令点到面的距离中误差为RMSd(式(13)),若该值小于阈值(根据Kinect的精度,扫描场景或模型距离Kinect在2~3 m时阈值取15 mm),则迭代完成。

      $$ {\rm{RM}}{{\rm{S}}_d} = \sqrt {\frac{1}{N}\sum\limits_{i = 1}^N {f{{\left( { * ,i} \right)}^2}} } $$ (13)

      在一次场景恢复或模型重建时,一般选择第一帧数据的坐标系作为参考,令RnTn分别表示第n帧数据相对于第一帧数据的旋转矩阵与平移矩阵,则R1=I, T1=0

      $$ \left\{ \begin{array}{l} {{\mathit{\boldsymbol{\bar R}}}_n} = {{\mathit{\boldsymbol{\bar R}}}_{n - 1}}{\mathit{\boldsymbol{R}}_n}\\ {{\mathit{\boldsymbol{\bar T}}}_n} = {{\mathit{\boldsymbol{\bar R}}}_{n - 1}}{\mathit{\boldsymbol{T}}_n} + {{\mathit{\boldsymbol{\bar T}}}_{n - 1}} \end{array} \right. $$ (14)

      配准相邻帧数据后,可根据式(14) 计算当前帧(第n帧)数据相对于第一帧数据的旋转与平移矩阵,以下简称第一帧数据所在的Kinect深度坐标系为全局坐标系。

    • 通过相邻帧数据进行配准可得到第n帧相对于第一帧数据的旋转与平移参数,但随着帧数的增多,误差会不断地累积。可以利用彩色影像,通过匹配同名点,采用光束法平差整体优化配准参数。但这种方法需要每张影像都有同名点,由于室内场景或模型重复特征较多,跨帧匹配错误率极高,故本文不采用彩色影像匹配进行光束法平差的方式。

      在构建点到面约束时,假设任意点局部范围内可视为平面,根据连续4帧深度影像Idn-2Idn-1IdnIdn+1,利用式(2) 计算在Idn上的任意点xdn在Kinect坐标系下坐标Xkn,利用式(15) 计算其在全局坐标系下的坐标:

      $$ \mathit{\boldsymbol{X}}_w^n = {{\mathit{\boldsymbol{\bar R}}}_n}\mathit{\boldsymbol{X}}_k^n + {{\mathit{\boldsymbol{\bar T}}}_n} $$ (15)

      式中,Xkn表示Kinect坐标系下的坐标;Xwn表示全局坐标系下的坐标;上标n表示第n帧。

      利用式(15),根据配准得到的各帧在全局坐标系下的平移、旋转矩阵,反算Xwn点在其他3帧深度影像Kinect坐标系下的对应坐标Xkn-2Xkn-1Xkn+1,再由式(2) 反算在Idn-2Idn-1Idn+1上对应的xdn-2xdn-1xdn+1。然后根据xdn-2xdn-1xdn+1,利用式(2)、式(15) 正算出对应的全局坐标Xwn-2Xwn-1Xwn+1。注意这里正算与反算的区别在于正算使用了Kinect量测的深度值d(x, y)且xdn为整数,而反算不使用深度值,得到的xdn为浮点数。

      若4帧影像的旋转平移参数无误差,且忽略取整误差,通过反算和正算得到的4点应为同一点,但因配准及累积误差的存在,参数含有误差,因此算出的4点并非同一点,但应位于同一局部平面内,如图 2所示。

      图  2  四点共面示意图

      Figure 2.  Four-Points Coplanar

      Xwn-2Xwn-1XwnXwn+1四点共面的表达式为:

      $$ \left\{ \begin{array}{l} h\left( * \right) = \mathit{\boldsymbol{N}}\left( {\mathit{\boldsymbol{X}}_w^{n + 1} - \mathit{\boldsymbol{X}}_w^n} \right) = {\bf{0}}\\ \mathit{\boldsymbol{N}} = \left( {\mathit{\boldsymbol{X}}_w^{n + 1} - \mathit{\boldsymbol{X}}_w^n} \right) \times \left( {\mathit{\boldsymbol{X}}_w^{n - 2} - \mathit{\boldsymbol{X}}_w^n} \right) \end{array} \right. $$ (16)

      式中,h*为Rn-2Tn-2Rn-1Tn-1RnTnRn+1Tn+1的函数。

      对每连续4帧深度影像除去边缘及粗差,可列出约10~15万个四点共面条件。对于M帧影像,假设每连续帧可列出平均N个四点共面条件,则优化的目标函数为:

      $$ \min \left( {\frac{1}{N}\sum\limits_{i = 2}^{M - 1} {\sum\limits_{j = 1}^N {h{{\left( { * ,i,j} \right)}^2}} } } \right) $$ (17)

      式中,*表示所有待优化的旋转与平移参数。

      四点共面优化流程如下。

      1) 遍历连续4帧深度影像;

      2) 遍历第n帧影像上所有点xdn

      3) 根据式(2)、式(15) 求解xdn在全局坐标系下的坐标Xwn

      4) 根据式(2)、式(15) 反算Xwn在其他3帧深度影像上对应的xdn-2xdn-1xdn+1,再正算其对应的全局坐标Xwn-2, Xwn-1, Xwn+1;

      5) 构建四点共面条件;

      6) 根据式(17) 优化参数,若满足收敛条件,则输出每帧的旋转与平移参数,否则重复步骤1) ~6);

      收敛的条件为迭代50次或改正值的平方和小于10-6

    • 以同济大学某校区模型(大小约3.5 m×2.5 m)和某建筑物室内机房场景为例进行实验。实验中Kinect2.0以间隔1 s采样获取数据。

    • 实验中共获取96帧数据,因该模型表面趋于平面,采用Kinect Fusion进行重建时,出现多处配准错误,无法正确建出模型。

    • 考虑到相邻两帧数据间差别并不显著,为方便说明本文算法实验效果,现取相差9帧的两帧影像作为相邻帧进行配准。图 3为其中一帧的彩色影像及点云截图,红色部分为点云超出彩色镜头视口范围数据。

      图  3  彩色影像与点云数据

      Figure 3.  Color Image and Point Cloud

      图 4为相差9帧的两帧点云未配准时直接叠加的正面与侧面效果图。由图 4(a)中标记的位置可看出两帧点云明显错开,

      图  4  两帧影像直接叠加效果

      Figure 4.  Two Point Cloud Directly Overlapping Display

      采用Surf方法对Icn-1Icn进行匹配,经RANSAC剔除后,得到197对同名点,可构建197对极线约束。由深度影像(点云),共构建点面对约13万对。联合解算迭代6次后收敛,中误差约0.8 cm,解算得到相对旋转与平移参数。

      配准后的效果如图 5所示(图 5中点云进行了兴趣区裁剪只保留模型区域)。图中的红色四面锥表示深度镜头的拍摄位置及方向(下同)。其中,图 5(a)分别用红绿显示两帧点云,点云红绿相互包融,实现配准;图 5(b)为原始点云配准后的叠加图。

      图  5  配准后的点云叠加图

      Figure 5.  Point Cloud Overlapping Display After Registration

    • 以连续10帧点云影像为例,对位姿恢复后的点云直接叠加。由于连续配准过程中存在误差累积,使得恢复的模型中道路出现错位,如图 6中红色箭头所指。

      图  6  10帧影像点云叠加图

      Figure 6.  Point Cloud Overlapping of Ten Frames

      利用四点共面约束对实验的96帧点云配准结果进行全局优化后,将点云进行坐标转换直接叠加,得到结果如图 7所示。叠加后原来模型中道路的错位被消除(红色箭头所指),图 7左下和右上分别为模型的部分细节展示。

      图  7  点云配准叠加图

      Figure 7.  Point Cloud Overlapping After Registration

      以第一帧影像为基准,其余各帧分别求其到第一帧影像的点到面距离,并计算中误差。经四点共线优化后,点到面距离的中位数趋于一致,中误差优于1 cm。

      实验中同时用不带极线约束的ICP算法对点云进行配准。发现对包括多物体面的场景(如场景中包含墙面、地面、模型表面等)配准结果相对较好;但当场景中物体面单一(如只出现模型表面)时,配准误差较大甚至出现错配准。

    • 对§3.1.2所建模型,通过衡量模型上同一目标在连续多帧数据中的坐标差异,间接评估模型精度。

      采集数据时,在模型上布设3个靶标,记为P1P2P3表 1为3个靶标点的均方差,其中平均深度指连续帧数据中同一点深度的平均值。

      表 1  靶标点均方差

      Table 1.  The MSE of Target Point

      参数 P1 P2 P3
      连续影像数9108
      平均深度/m1.101.511.42
      坐标均方差/mm11.415.214.8

      表 1知,随平均深度值的增加,靶标处均方差也在增大。考虑到Kinect深度测量精度及数据配准误差,在1.5 m处连续点的均方差为15.2 mm,客观反映了Kinect建模精度。

    • 对某机房内部场景进行了跟踪恢复建模,沿着机房中过道绕行进行数据采集,共获取了264帧数据。实验效果如图 8所示,基本恢复了场景。本文算法未作平滑,生成的场景纹理上出现较多斑点噪声。

      图  8  机房场景恢复建模结果

      Figure 8.  Office Scene Recovery Result

      限于算法硬件加速的问题,Kinect Fusion无法实现大场景的实时跟踪恢复建模。实验中选择其中的一部分场景(图 8中红色方框区域)分别利用Kinect Fusion及本文方法进行实验,共获取26帧数据,效果见图 9

      图  9  两种方法对比图

      Figure 9.  Results Comparison Between Kinect Fusion and the Proposed Method

      对比发现,Kinect Fusion跟踪建立的模型纹理更平滑,但模型局部出现失真扭曲,如图 9(a)中箭头所指的“地面”以及“桌面”;而本文方法建模的结果在这些位置都得到了恢复且未发生变形,效果如图 9(b)所示。

    • 针对微软Kinect2.0的特点,本文提出将极线约束与点到面约束相结合用于点云数据ICP算法的迭代策略中,以增强基于Kinect2.0点云的配准算法的鲁棒性,避免匹配初值的计算。同时利用四点共面条件减少连续配准中的误差累积,进而优化了点云的配准参数,提高了位置与姿态的估算精度。

      实验表明,在整个建模的物方表面趋于平面时,本文算法优于KinectFusion,可较好地配准多帧点云。本文算法侧重于点云的配准建模,在点云模型结合纹理的效果表现方面,所建模型的纹理表现不如微软的KinectFusion,出现较多颗粒噪声。当对所建场景的纹理恢复要求比较高时,本文算法还需改进。

      本文算法可用于基于Kinect的三维模型重建或场景恢复,用于追踪Kinect的位置与姿态参数。由于本文研究过程中算法未做GPU加速,因此尚难做到实时点云配准,这将是今后研究的重点。虽然本文是针对Kinect2.0进行的研究,但所获成果也适用于其他光学与深度镜头相结合的双镜头传感器系统,如Creative Senz3D等。

参考文献 (13)

目录

    /

    返回文章
    返回