Kinect Fusion 的处理流程 工作原理

Kinect Fusion 通过对从多个角度获取到的深度影像数据进行融合,来重建物体的单帧
光滑表面模型。当传感器移动的时候,照相机的位置以及姿势信息被记录下来,这些信息包
括位置和朝向。 由于我们知道了每一帧图像的姿势以及帧与帧之间的关联, 多帧从不同角度
采集的数据能够融合成单帧重建好的定点立方体。 我们可以想象下在空间中的一个巨大的虚
拟立方体,里面是我们现实世界的场景,当我们移动传感器的时候,深度数据信息被不断加

入。

第一步是深度影像数据的转换。SDK 将 Kinect 中获取的原始深度帧数据转换为以米为
单位的浮点数据,紧接着对该数据进行优化,通过获取摄像头的坐标信息,将这些浮点数据
转换为和 Kinect 摄像头朝向一致的点云数据。这些点的表面情况通过使用
AlignPointClouds 函数获取。
第二步是计算全局的摄像头的姿势信息, 包括摄像头的位置和朝向, 通过使用交互型的
配准算法在摄像头移动时不断获取其姿势, 这样系统始终知道当前摄像头相对于起始帧时摄
像头的相对姿势。Kinect Fusion 中有两种配准算法。第一种叫
NuiFusionAlignPointClouds,他用来将从重建对象计算得来的点云与从 Kinect 深度影像
数据中获取的点云进行配准。 或者单独的使用比如对同一场景的不同视场角的数据进行配准
; 第二种叫 AlignDepthToReconstruction, 该算法在对重建立方体进行处理时能够获得更
高精度的追踪结果。 但是对于场景内移动的物体该算法可能不够健壮。 如果场景中的追踪被
中断,那么需要将摄像头的位置和上一次的摄像头位置对齐才能继续进行追踪。
第三步是将从已知姿势摄像头产生的深度影像数据融合为代表摄像头视野范围内的景
物的立方体。这种对深度数据的融合是逐帧,连续进行的,同时通过平滑算法进行了去噪,
也处理了某些场景内的动态变化, 比如场景内添加或者移除了小的物体等。 随着传感器的移
动从不同的视场角度观察物体表面。 原始影像中没有表现出来的任何隔断或者空也会被填充
,随着摄像头更接近物体,通过使用新的更高精度的数据,物体表面会被持续优化
最后, 从传感器视点位置对重建立方体进行光线投射, 重建的点阵云能够产生渲染了的
三维重建立方体。
Kinect Fusion 对物体的追踪仅仅使用 Kinect 传感器产生的深度数据流。这种追踪主
要依赖深度影像数据中不同位置深度数据有足够的深度差异。 因此它能够将看到的数据融合
起来以及计算传感器的不同位置差异。如果将 Kinect 对准一个平整的墙面或者又很少起伏
变化的物体,那么追踪可能不会成功。场景中物体分散时效果最好,所以在使用 Kinect
Fusion 对场景进行追踪时如果出现追踪失败的情况,不防试着对场景内的物体进行追踪。
Kinect Fusion 中的追踪有两种算法,他们分别通过
AlignDepthFloatToReconstruction 和 AlignPointClouds 函数实现,他们都可以用于摄
像头位置的追踪,但是,如果我们使用 AlignDepthFloatToReconstruction 函数来创建一
个重建立方体,可能会有更好的追踪精度。相比,AlignPointClouds 方法可以用于单独的
,不需要重建立方体就可以将两个点云进行对齐。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值