DTAM: Dense Tracking and Mapping(一)

目前流行的大多数VSLAM都是基于鲁棒的特征检测和跟踪,DTAM是基于单像素的方法,采用了在稠密地图(densemap)创建和相机位置估计都很有优势的低基线帧(lowbaseline frame)。

像PATM一样,它分为两个部分:姿势跟踪和3d 映射。PTAM仅仅跟踪稀疏的3d点,DTAM保持了对关键帧的稠密深度映射(densedepth map)。

DTAM: Dense Tracking and Mapping(一)_第1张图片

1.Dense Mapping

深度地图由以下组成:一系列短基线参考帧,表示为I_{r}, 为了对深度地图全局优化,提出了代价体积的概念(Cost Volume)C_{r}。

1.1 代价体积

代价体积C_{r}(I_{m})定义为计算当前帧和参考帧m\in I(r)中每个像素的光测误差的逆深度函数(inverse depth)。实际操作中,将逆深度离散化为L个值,如此代价体积便可以存储为一个M\times N\times L的矩阵,M,N分别是图像的行和列。值得一提的是,在亮度恒定的情况下,C_{r}(u,d))可以作为图像I_{r}中像素点u和该图像作任何映射图\mathbb{I}_{r}强度变化的衡量标准。假设I_{r}中像素的逆深度为d,数学上可以描述为:
C_{r}(u,d) = \frac{1}{\mathbb{I}}\sum_{m\in \mathbb{I}}^{ }||\rho (I_{m}),u,d)||_{1}
这个公式看上去很复杂,分解之后其实很简单,here we go.
1.利用相机的内存矩阵K将像素u用逆深度d从像素空间映射到相机空间
\pi ^{-1}(u,d))=\frac{1}{d}K^{-1}\begin{bmatrix}
u_{x}\\ 
u_{y}\\ 
1\end{bmatrix}
2.利用刚体变换将3D点从相机r的坐标系转换到相机m的坐标系
T^{_{mr}}\pi ^{-1}(u,d))
3.将相机m坐标系中的3D点映射到像素坐标系
\pi (KT_{mr}\pi ^{-1}(u,d)))
其中,\pi (x,y,z)=(x/z,y/z)
由于单帧的代价体积存在很多噪声,故采用多帧的平均光测误差作为代价体积。效果图如下: DTAM: Dense Tracking and Mapping(一)_第2张图片


你可能感兴趣的:(Image,Process,Computer,Vison)