kinect fusion基于RGBD相机的实时三维重建算法

1.技术背景

Kinect fusion是微软研究院利用Kinect进行的三维重建项目。用户可以通过Kinect相机进行场景绘制并实时查看3D模型,Kinect fusion在GPU上以交互式速率运行,并且可以在各种硬件上以非交互式速率运行。Kinectfusion使用ICP算法将多帧不同位姿深度数据融合到前帧,并使用TSDF算法进行点云融合和立方体重建,重建结果具有平滑、噪声小、精度高等优点。

2.算法特点

1、基于RGB-D相机三维重建的开山之作,首次实现实时稠密的三维重建。

2、通过融合序列图像重建三维重建,如果显卡满足要求重建的帧率可以跟得上深度相机的帧率(30Hz)。

4、使用 TSDF 模型不断融合深度图像重建三维模型。

3、通过配准当前帧和模型投影获取的图像计算位姿,比通过配准当前帧和上一帧计算位姿要更加准确。

基于上述需求,KinectFusion允许用户手持Kinect设备自由探索室内环境,系统将自动跟踪Kinect摄像头的6DOF姿态,然后融合不同时序的深度图数据并重建出场景的全局模型。由于视角的不断变化,Kinect反馈的深度图也会发生改变,这里采用了类似图像超分辨率技术对深度图进行了细节优化,从而提高模型的重建质量。最后利用Kinect自带的RGB数据进行场景纹理映射。

首先如何利用单Kinect摄像头去跟踪它自己的6DOF姿态?这里采用点云模型的刚性配准对齐来计算摄像头在空间中的6DOF变换,点云配准首选经典的ICP[Besl92, RusinKiewicz01]。之前需要将深度图像数据变换至摄像机的空间坐标系中,并计算其对应点的法线信息;然后逐帧采用基于GPU的ICP实现进行模型配准和6DOF计算;在重建部分,KinectFusion并没有直接融合点云或生成网格模型,而是采用了[Curless96]的体集成算法,最终在全局坐标系中生成一个三维体素网格并进行不断更新,每个体素内最终保存了一段时间内从该体素到物理表面上某一点的平均距离。最后使用Raycast给出隐式表面的渲染结果,另一方面,以摄像机位置作为视点做Raycasting,同样能够得到一个具有真实细节的高质量的合成深度图,然后再对其进行下一轮ICP迭代。这就允许我们能够利用合成深度图与下一帧的深度图进行配准,使重建结果的精度不断提高。

3.算法流程

a) 读入的深度图像转换为三维点云并且计算每一点的法向量;

b) 计算得到的带有法向量的点云,和通过光线投影算法根据上一帧位姿从模型投影出来的点云,利用 ICP 算法配准计算位姿;

c) 根据计算得到的位姿,将当前帧的点云融合到网格模型中去;

d) 根据当前帧相机位姿利用光线投影算法从模型投影得到当前帧视角下的点云,并且计算其法向量,用来对下一帧的输入图像配准。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值