该文提出一种基于深度图的可以在大场景情景下以30Hz帧率进行实时稠密重建的方法。Tracking使用frame-to-model ICP进行位姿估计,Mapping使用了TSDF进行模型表示。
Surface reconstruction update:根据估计出的位姿,将新生成的surface集成到场景模型中。
Surface prediction:将场景模型的SDF投射到当前估计位姿表示的帧中,以得到稠密的表面预测。
Sensor pose estimation:在predicted surface和当前深度测量间使用多尺度ICP进行配准。基于GPU的实现可以以帧率进行配准。
3.1 Preliminaries
:刚体变换矩阵,从相机坐标系转换到全局坐标系
:在时刻k获取到相机坐标系下的点
:全局坐标系下的点
K:相机内参矩阵
,透视投影函数
,点代表矩阵齐次表达式
3.2 Surface Measurement
原始深度图像提供了矫正的深度测量
,其中
为图像像素。
深度图像到3D点的转换公式为:。
运用双边滤波得到降噪的深度图
,双边滤波提高了normal map的质量和tracking中的数据关联性。
通过将深度图反投影到3D空间中,得到vertex map ,
。
通过vertex map求Normal map:
其中,,用来归一化向量。
vertex掩码:则
,否则
。
构建L=3的图像金字塔,金字塔底层是双边滤波后的深度图像,是
分辨率的二分之一,通过块平均进行下采样。只有方差在
以内才能取平均值,以确保不会把边缘部分给平滑掉。 然后通过上面的公式求
,通过变换矩阵和旋转矩阵将相机坐标系下的图转换到全局坐标系下:
,
3.3 Mapping as Surface Reconstruction
:表示从第k帧融合的TSDF,p为世界坐标系下的点。
TSDF以固定分辨率离散化存储在显存中,每个TSDF内存储两个值:当前的TSDF值和权重
。
稠密的表面测量对表面重建提供了两个约束条件:假设真实值存在于测量值的范围内,
是沿着像素射线方向的缩放量,r是沿着像素射线方向的距离值,则:
1、表示的是自由空间;
2、表示的是遮挡的空间。
呢么只有是SDF需要表示的不确定空间。
(论文里的式子应该是打错了),其中
,
,
。
表示最近邻搜索,因为TSDF是离散表示,p点映射后需要去寻找最近邻的像素(不使用插值法,以免把边界平滑掉)。
权重与
成正比,其中
是关联像素的射线与法向量的夹角。
获得每帧的SDF的值后,我们把每帧融合在一起用最小二乘法表示的形式为:,其中
和
可以增量式获得,
,s.t.
虽然Wk(p)提供了TSDF与表面测量不确定度成比例的权重,但作者发现,在实践中,简单地让WRk(p) = 1,得到一个简单的平均值,可以提供良好的结果。
另外,使用对权重进行截断可以重建动态场景(盲猜动态物体会使权重增大,截断后使其接近于静态物体).
场景重建用的是原始深度图,而不是滤波过后的深度图,作者给出的解释是:滤波去除所需的高频结构和噪声,这将降低重建更精细结构的能力。
3.4 Surface Prediction from Ray Casting the TSDF
表面预测将的零水平集合用当前估计的位姿
渲染在虚拟相机坐标系中,表面预测以vertex map和normal map的形式存储,用于接下来的相机位姿估计中。
在的点p对TSDF求导,其梯度正交于零水平集合,所以normal map可以用数值求导的方式计算:
。
ray casting加速:只在的块内进行 marching,自由空间可以忽略。
近似三线性插值获取更高质量的零交叉点:若t和分别在零交叉点的两侧,则
获得的交点更准确。
3.5 Sensor Pose Estimation
使用基于frame-model的深度ICP进行匹配。
点面能量公式:,其中
由上一帧位姿
预测得到:点集关联
通过计算透视投影得到,
用到了帧间变换
,
。
初始化为上一帧的位姿
,当
时,通过
小角度增量变换得到,其中
,6个自由度写成参数向量
。
对于的像素,将其对应的vertex转换到世界坐标系
。
vertex的增量变换:,其中
。
将上式带入能量公式,得目标函数:,
。
目标函数对参数向量X求导得到对称线性公式:,
,
,然后用Cholesky分解进行求解。
系统由粗到精进行数据关联和位姿估计,从最粗的level3开始,在vertex和normal图像金字塔levels[3,2,1]分别最多进行次迭代,最终获得相机位姿
。
位姿变换更新可靠性和稳定性检测:1、对零空间进行检查,以确保线性系统具有充分的约束。(帧间运动增加会导致点面度量误差和投影数据关联的线性化假设被打破,或者当前的表面几何没有提供能约束6个自由度的点面对都会导致重建效果差和跟踪失败)。
2、对增量变换参数x的大小进行阈值检查,确保小角度假设没有被打破。
如果检查失败,则系统进入重定位模式。
重定位:当传感器跟踪失败,则用最新的位姿提供surface prediction,并与新来的深度帧进行配准,进行位姿优化,如果稳定性和有效性检测能通过,则跟踪和建图恢复正常。
4 实验
略。