基于局部ICP的室内稀疏点云场景的配准方法与流程

文档序号:14475243阅读:670来源:国知局
基于局部ICP的室内稀疏点云场景的配准方法与流程

本发明涉及计算机图形学和三维点云配准领域,尤其是指一种基于局部icp的室内稀疏点云场景的配准方法。



背景技术:

三维场景建模一直是计算机图形学和计算机视觉的一个重要研究领域。近几年来,随着一些成熟的三维深度扫描设备(以下也称rgb-d扫描设备)的上市,如微软发布的kinect,使得室内场景的建模越来越受关注。得益于低成本的rgb-d扫描设备的发展,过去几年,三维数字模型有着较大发展。然而,目前大多数的研究都集中在把rgb-d扫描设备用在单个模型的重构上。然而,室内场景的三维建模仍然是一个具有挑战性的问题。这主要是由两方面的原因引起的:第一,不同于户外建筑立面和普通的单个模型,室内物体往往有更复杂的3d几何形状,不同部分之间存在着杂乱的环境和大量的变化;第二,无论是专业的三维扫描仪还是普通的rgb-d扫描设备获得的深度信息往往带有很大的噪音,可能会失真,与现实的几何信息存在较大的差距。

目前室内场景配准的方法可以分成两类:稀疏映射和稠密映射。稀疏映射就是指稀疏地选择一些关键帧来用于重建,这样可以迅速提供目标场景的粗略结构;而稠密映射,则使用全部rgb-d数据流,只要有足够的可用数据就可以进行相关细节的重建。由于低成本扫描设备获得的深度图像的质量较差,最稀疏的映射系统主要依靠在rgb图像中检测到的显著特征(例如sift、surf、orb)来找到互相对应的点。然而作为现实世界的室内场景通常包含着大量纹理不明显的区域,如墙壁,或重复的图案纹理,如瓷砖地板,采用目前已有的算法仍然很容易产生错误的匹配对应点。相反,在稠密的深度信息流的帮助下,帧与帧的icp配准算法可以为推断相机位姿提供更强的线索。因此,稠密映射r目前更加适合用来处理廉价的rgb-d扫描设备获取的数据,并能提供较为鲁棒的自动化重建的解决方案。然而,这个方案,只能处理像普通模型这样数据量并不大的模型重建,对于室内场景来说,需要采集的数据非常大,使用稠密帧映射的方法,不仅低效,而且容易出现误差累积的情况。

然而经过我们研究发现,通过少量的交互进行引导,并使用局部icp的配准方法可以有效解决以上问题。首先我们使用的方法属于稀疏映射范畴,因此避免了稠密映射中数据量过于庞大,且容易累积误差的问题。同时我们对于重复率较低的两帧点云进入了少量的交互操作,从而较为精确地找出两帧点云间重复的部分,对小区域的重复部分进行icp配准操作,并以配准的结果指导整个场景的配准。从而得到较为高效且精准的配准效果。



技术实现要素:

本发明的目的在于克服现有技术的缺点和不足,提供一种行之有效、科学合理的基于局部icp的室内稀疏点云场景的配准方法。

为实现上述目的,本发明所提供的技术方案为:基于局部icp的室内稀疏点云场景的配准方法,包括以下步骤:

1)使用kincet每隔一定的角度获取一帧点云场景,共获取若干帧;

2)对获取的点云场景进行下采样操作;

3)根据用户输入的角度进行粗配准;

4)通过最近点法或者用户交互框选的方法获取连续两帧点云场景重合的部分;

5)对提取出的点云场景重合的部分使用icp算法进行配准,并得到变换矩阵;

6)使用通过局部icp算法获得的变换矩阵对整个点云场景进行变换;

7)使用贪婪投影法将融合后的点云场景网格化并用拉普拉斯算法平滑网格;

在步骤1)中,用户使用kinect每隔一定的角度拍摄一次(每次拍摄旋转的角度尽量相似,但无需完全相同,但需要保证连续拍摄的两帧点云场景有一定的重合度),获取到rgb图像以及深度图像,通过rgb图像和深度图像合成点云场景,经过若干次的拍摄后得到若干帧点云场景。

在步骤2)中,使用voxelgrid算法对点云场景进行下采样,该算法的核心为将整个点云场景分割若干个小的立方体,以该立方体的重心点代替立方体中的所有点,得到下采样后的点云场景,从而达到下采样的目的。

在步骤3)中,由用户输入大致的旋转角度(无需精确,大概即可),将步骤2)中下采样后的点云场景旋转相对应的角度,获取粗配准结果。

在步骤4)中,获取两帧间的重复部分,是指经过步骤3)的粗配准后,两帧的点云场景中存在一些重复的部分,我们可以使用获取最近点法以及用户框选的方法获取这些重复的部分,为后续的精细配准做指导。

其中,获取最近点法适用于两帧点云的重复部分为平面或者近似平面的曲面(如墙壁),其算法步骤如下:

4.1a)输入连续的两帧经过步骤3)粗配准过后的点云场景,并分别对两帧点云场景建立各自的kd树;

4.2a)使用kd树分别对两帧点云场景中的每一个点求在另一个点云场景中的最近点,获得两片新的点云,这两片新的点云是两帧点云场景的子集,同时可以代表两帧点云场景的重合部分;

由于两帧点云场景的重合部分为平面,也就意味着这两片新点云是同一个平面,所以只要能够拟合这两篇新点云,即可获取两帧场景间的变换关系;

而用户框选的方法主要适用于两帧点云之间存在着一些重复的物体(如电风扇、电脑等)。由于两帧点云的重合部分未必都是同一个平面,有可能会出现相对复杂的情况(如重合部分含有家具等),此时我们引入交互的方式精确地定位重合的部分。其方法步骤如下:

4.1b)输入连续的两帧经过步骤3)粗配准过后的点云场景,并对两帧点云场景中的每一个点计算它的k近邻;

4.2b)根据步骤4.1b)中计算出来的k近邻结果,为两帧点云场景分别构建其s-t图;

4.3b)用户手动地在两帧点云场景中框选出重复出现的物体,根据用户框选的结果计算出分割的中心和分割半径;

4.4b)计算s-t图中各边的权值,其中,连接图中的普通节点到普通节点的边的权值为:

w1=(c*e^-((d1/s)^2))^2

式中,c为常数值,本方法一般设为5,e为自然指数,d1为s-t图中两个节点所代表的点云场景中的两个点之间的欧氏距离,s为点云场景的密度;

源节点到普通节点的边的权值为:

w2=0.8

普通节点到汇节点的边的权值为:

w3=d2/r

式中,d2为s‐t图中每个节点代表的点云场景中的点到步骤4.3b)中计算得到的分割中心点的欧氏距离,r为步骤4.3b)中计算得到的分割半径;

4.5b)对经过步骤4.4b)中计算过各边的距离的s‐t图,用最大流最小割的方式进行图分割,即可将用户框选的物体分割出来,该物体可代表两帧点云场景的重合部分;

而在后续的步骤中,只需要拟合这两个相同的物体,即可获取两帧场景间的变换关系。由于分割的结果排除了桌面地面等干扰,所以能有效地提高后续配准的准确率。

在步骤5)中,对步骤4)中获取到的重合部分的点云使用icp算法进行配准拟合,获取其变换矩阵。

在步骤6)中,使用步骤5)中获得的变换矩阵对整个场景进行变换,并进行拼接,得到融合后的点云场景。由于连续两帧的重合度不高,所以只要能对重合的小部分进行较好的配准拟合,即可指导整个场景的配准。

在步骤7)中,对步骤6)得到融合后的点云使用贪婪投影法进行网格化,得到一个完整的网格化场景。由于我们针对的是稀疏的点云场景,与稠密映射重构出来的场景相比,点的数量较少,重构为网格之后会出现噪声较大的情况,因此需要进行平滑操作,从而获得一个效果更好的网格化场景。

本发明与现有技术相比,具有如下优点与有益效果:

1、与现有的稀疏映射的方法相比,本发明的配准准确率较好。针对由于现实世界的室内场景通常包含着大量纹理不明显的区域或重复的图案纹理,使得配准过程中很容易产生错误的匹配对应点的问题。我们并不是直接使用对应点进行配准,而是通过最近点法找到同一个面或者通过交互的方式找到同一个物体,对同一个面或者同一个物体进行精确配准,继而引导整个场景的配准,因此配准的准确率得到了比较大的提高。

2、与现有的稠密映射方法相比,本发明的数据采集量更少且效率更高。现阶段稠密映射的方法由于需要相邻两帧的点云场景具有较高的重合率,这也就意味着若要对一个比较大的场景进行重建的话,需要采集的数据量将会非常庞大,而这大量的数据量中存在着大量的冗余,这也就意味着稠密映射的方法会极大地浪费储存空间,同时由于配准次数更多,所以其中产生的误差积累也会更多。而我们的方法仅需要相邻两帧的点云有少量的重合即可,完成一次大场景的配准可能仅需要数十帧点云进行数十次配准即可完成,相比稠密映射动辄成百上千帧的点云数据来说,显得更加的高效。

附图说明

图1为本发明方法的流程图。

图2为本发明利用kinect扫描获得的点云场景。

图3为本发明进行粗配准后的结果图。

图4中a为本发明使用最近点法找到两帧点云重合部分的示意图。

图4中b为本发明使用框选交互找到两帧点云重合部分的示意图。

图5中a为本发明使用局部icp对两帧点云c12和c21配准后的结果。

图5中b为本发明使用局部icp对两帧点云c23和c32配准后的结果。

图6为本发明完成整个场景配准后的点云结果图。

图7为本发明将配准后的点云转化为网格模型后的结果图。

图8为对比实验中要配准的两幅场景的rgb图。

图9为本实验配准后的结果与其他方法的对比图,其中ours为本方法。

具体实施方式

下面结合具体实施例对本发明作进一步说明。

如图1所示,本实施例所提供的基于局部icp的室内稀疏点云场景的配准方法,包括以下步骤:

1)使用kincet每隔一定的角度获取一帧点云数据,共获取若干帧;

使用kinect顺时针每隔大约三十度采集一次数据,共采集四帧,根据rgb图像和深度图像获得四帧点云场景,分别为c1、c2、c3和c4。如图2所示,其中图2中的a、b、c和d分别对应点云场景c1、c2、c3和c4。

2)对获取的点云进行下采样操作

对步骤1)采集得到的四帧点云分别进行下采样,将其点数从三十万下采样至十万以内。

3)根据用户输入的角度进行粗配准

对步骤2)得到的四帧点云分别做以下处理:c1保持不变,c2顺时针旋转三十度,c3顺时针旋转六十度,c4顺时针旋转九十度,粗配准的结果如图3所示。

4)通过获取最近点或者用户交互框选的方式获取两帧间重复的部分

观察可知,c1和c2的重合部分是墙壁,即为一个平面,所以采用最近点法获取重合的部分(图4a中圈出的部分),最近点法的步骤如下:

4.1a)输入连续的两帧经过步骤3)粗配准过后的点云场景c1和c2,并分别对两帧点云场景建立各自的kd树;

4.2a)使用kd树分别对两帧点云场景中的每一个点求在另一个点云场景中的最近点,获得两片新的点云c12和c21,其中c12是指c1中与c2重合的部分,是c1的一个子集,c21同理;

而c2和c3具有重复出现的物体(风扇)如图4b中圈出的部分所示,所以我们使用用户框选的方法获取这个重合的部分,用户框选的方法的步骤如下:

4.1b)输入连续的两帧经过步骤3)粗配准过后的点云场景c2和c3,并对两帧点云场景中的每一个点计算它的k近邻;

4.2b)根据步骤4.1b)中计算出来的k近邻结果,为两帧点云场景分别构建其s-t图;

4.3b)用户手动地在两帧点云场景中框选出重复出现的物体,即风扇,根据用户框选的结果计算出分割的中心和分割半径;

4.4b)计算s-t图中各边的权值,其中,连接图中的普通节点到普通节点的边的权值为:

w1=(c*e^-((d1/s)^2))^2

式中,c为常数值,本方法一般设为5,e为自然指数,d1为s-t图中两个节点所代表的点云场景中的两个点之间的欧氏距离,s为点云场景的密度;

源节点到普通节点的边的权值为:

w2=0.8

普通节点到汇节点的边的权值为:

w3=d2/r

式中,d2为s-t图中每个节点代表的点云场景中的点到步骤4.3b)中计算得到的分割中心点的欧氏距离,r为步骤4.3b)中计算得到的分割半径;

4.5b)对经过步骤4.4b)中计算过各边的距离的s-t图,用最大流最小割的方式进行图分割,即可将用户框选的物体分割出来,即c23和c32,其中c23是指c2中与c3重合的部分,是c2的一个子集,c32同理;

同理,我们可用用户框选的方法求出c3和c4的重合部分c34和c43。

5)对重复的部分使用icp算法进行配准,并得到变换矩阵;

对步骤4)提取出的重合部分使用icp算法配准,首先配准c12和c21(配准结果如图5a所示),并获取旋转矩阵m1。随后依次配准c23和c32(配准结果如图5b所示)以及c34和c43,分别获得获得旋转矩阵m2和m3。

6)使用局部icp获得的变换矩阵对整个场景进行变换;

对c1以步骤5)中获得的矩阵m1进行旋转变换,后与c2进行拼接融合,获得融合后的点云c12;对融合后的点云c12以步骤5)中获得的矩阵m2进行变换,并与c3进行融合拼接,获得融合后的点云c123;对c123以步骤5)中获得的旋转矩阵m3进行变换,并与c4进行融合拼接,获得c1234。最终配准结果如图6所示。

7)使用贪婪投影法将融合后的点云场景网格化;

对步骤6)获得的配准融合后的点云c1234使用贪婪投影法进行网格化获得配准后的网格,并对其做拉普拉斯平滑,得到最终的网格g1234。平滑后的网格如图7所示。

本发明经过实验证明其可行性,能广泛应用于各种室内场景的配准。图9展示的是本发明与根据图像特征点进行稀疏配准和稠密配准两种方法的结果比对,实验配准的场景如图8所示(仅展示起始帧和结束帧,中间还有数帧点云数据并未展示)。可见,相比于基于图像特征点配准的稀疏映射方法,我们的算法的配准精确度显然更好。而相对于稠密映射的配准方法,我们的数据量显然更少,我们仅仅使用起始帧和结束帧两帧点云场景数据,而基于稠密映射的方法则使用了包含起始帧和结束帧在内的连续的36帧点云场景数据,最终点云场景的点数是我们方法的数十倍。而且稠密配准的配准结果存在一定的噪声毛刺,这是大量冗余数据的所产生的误差积累,而从图9可以看出,我们的方法产生的结果明显更加的干净整洁。

综上所述,本发明的基于局部icp的室内稀疏点云场景的配准方法,可以在保证采集数量较少、重复率较低的数据的情况下,依然能提供准确性较好、配准质量较高的配准结果。通过本方法配准得到的网格模型,可以用在室内重建、虚拟看房等一系列应用,具有广泛的应用前景,值得推广。

以上所述实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1