上篇中简单介绍了kinectfusion的算法流程。本文将流程中的第一步,即如何把深度相机采集到的深度图,转换成点云数据和计算法向量,作详细介绍。
深度图转三维坐标
讲深度图与点云之间的关系,就不得不提相机模型——小孔成像模型。
将该模型简化与等效后,如下图所示。
矩阵表达出来就是,
假定像素坐标为,与之对应的相机坐标系中的坐标为
深度图中的索引对应的就是像素坐标,根据相机的成像原理,我们可以得出像素坐标与相机坐标之间的关系是
根据上面这个式子,我们可以轻易计算出,也就是
那么三维坐标根据深度值便可轻易解出,
法向量计算
经上一段中获取的三维数据,为有序的数据,数据是按照像素坐标排列的。不考虑噪声的话,像素坐标相邻的数据,在空间中也是相邻的。
有序点云的法向量计算有个超级便捷的方式。就像下图1、2、3、4个点云数据,和为同一平面上两个不平行的向量,这两个向量叉乘,可以得到这两个向量所确定的平面的法向量。
因此,法向量。
1 | 2 |
3 | 4 |
参考文献: