地位和特点
1、RGB-D 重建的开山之作,首次实现实时稠密的三维重建
2、通过融合序列图像重建三维重建,如果显卡满足要求重建的帧率可以跟得上 Kinect 相机的帧率(30Hz)。
3、通过当前帧和模型投影获取的图像之间计算位姿,相当于通过当前帧和上一帧之间计算位姿要更加准确。
重建流程图
重建流程如上图所示:
a) 读入的深度图像转换为三维点云并且计算每一点的法向量;
b) 计算得到的带有法向量的点云和上一帧光线投影算法得到的点云配准用 ICP 算法计算位姿;
c) 根据计算得到的位姿,将当前帧的点云融合到网格模型中去;
d) 光线投影算法计算当前视角下的点云,并且计算其法向量用来对下一帧输入图像配准。
如此是个循环的过程,通过移动相机获取场景不同视角下的点云,重建完整的场景表面。
Depth Map Conversion (深度数据转化)
在已知相机内参情况下,将 Kinect 获取到的深度图像转换成点云。
根据相邻像素点求得每个点的法向量。
转换之后的带有法向量的点云如 a) 图所示
Camera Tracking (相机跟踪)
采用 ICP 算法计算两帧之间位姿,因为这里是实时的三维重建,相邻两帧之间位姿变化很小,R 矩阵可以做线性化,加速求解效率,关于KinectFusion 中的 ICP 算法和 GPU 实现后续的博客会给介绍。
KinectFusion 算法采用 frame-to-model 的形式而不是采用 frame-to-frame 的形式计算两帧位