DSAC*

Brachmann 2021 · 论文

一句话总结 — DSAC系列的整合版TPAMI论文:一个统一的场景坐标回归框架,可从RGB或RGB-D图像进行视觉重定位,训练稳定性和效率都大幅提升。

问题

到2020年,DSAC系列已经为不同场景积累了各自独立的方案——RGB与RGB-D输入、有无3D场景模型的训练——每种方案都有自己的初始化阶段和稳定性注意事项。DSAC*将这些变体整合为一个统一、可靠的框架,使场景坐标回归能够在不同输入模态和监督方式下统一应用。

方法与架构

场景坐标回归+鲁棒位姿求解。 一个全卷积网络ff将灰度图像II映射为稠密场景坐标Y=f(I;w)\mathcal{Y}=f(I;\mathbf{w})——即每个像素所观测到的场景空间中的3D点,与相机空间点的关系为yi=hei\mathbf{y}_i = \mathbf{h}\mathbf{e}_i。输出经过8倍下采样,每个预测有81像素的感受野,而这张”地图”实际上就是28MB的网络权重。位姿优化采用经典RANSAC:用最小求解器hj=g(Cj)\mathbf{h}_j = g(\mathcal{C}_j)采样M=64M{=}64个假设——对RGB使用基于2D-3D对应关系的P3P/PnP求解器(残差rRGB(yi,h)=piKh1yir^{\text{RGB}}(\mathbf{y}_i,\mathbf{h}) = ||\mathbf{p}_i - K\mathbf{h}^{-1}\mathbf{y}_i||),对RGB-D使用基于3D-3D对应关系的Kabsch求解器(rRGB-D(yi,h)=eih1yir^{\text{RGB-D}}(\mathbf{y}_i,\mathbf{h}) = ||\mathbf{e}_i - \mathbf{h}^{-1}\mathbf{y}_i||)——然后选择内点数最多的假设s(h,Y)=yiY1[r(yi,h)<τ]s(\mathbf{h},\mathcal{Y})=\sum_{\mathbf{y}_i\in\mathcal{Y}}\mathbf{1}[\,r(\mathbf{y}_i,\mathbf{h})<\tau\,](τ=10\tau{=}10像素RGB / 10厘米RGB-D),并在其内点上迭代精化(Levenberg-Marquardt PnP或Kabsch)。

面向三种设置的统一初始化目标。 DSAC*可在以下任一设置下训练:RGB-D;RGB+3D模型(渲染出真值坐标yi\mathbf{y}^*_i);或仅RGB。统一的逐像素损失一旦预测变得有效,就按像素动态从3D距离切换为重投影误差:

RGB+M(yi,yi,h)={r^RGB(yi,h)if yiVyiyiotherwise,\ell^{\text{RGB+M}}(\mathbf{y}_{i},\mathbf{y}^{*}_{i},\mathbf{h}^{*})=\begin{cases}\hat{r}^{\text{RGB}}(\mathbf{y}_{i},\mathbf{h}^{*})&\text{if }\mathbf{y}_{i}\in\mathcal{V}\\ ||\mathbf{y}^{*}_{i}-\mathbf{y}_{i}||&\text{otherwise},\end{cases}

其中r^RGB\hat{r}^{\text{RGB}}对重投影误差做软钳位(超过100像素后取平方根)。如果没有3D模型,yi\mathbf{y}^*_i会被替换为在恒定10米深度处虚构出的启发式目标yˉi=heˉi\bar{\mathbf{y}}_i = \mathbf{h}^*\bar{\mathbf{e}}_i。这取代了DSAC++中浪费资源的两个独立初始化阶段,将预训练时间从4天减半为2天。

通过可微RANSAC进行端到端训练。 整个流水线随后在位姿损失Pose(h^,h)=t^t+γ(θ^,θ)\ell^{\text{Pose}}(\hat{\mathbf{h}},\mathbf{h}^{*})=||\hat{\mathbf{t}}-\mathbf{t}^{*}||+\gamma\measuredangle(\hat{\bm{\theta}},\bm{\theta}^{*})上训练,γ=100\gamma{=}100。每个组件都被做成可微的:Kabsch通过SVD梯度;PnP通过最后一次Gauss-Newton迭代的解析梯度,Yh(Y)Jr+YrI(Y,ht=)\frac{\partial}{\partial\mathcal{Y}}\mathbf{h}(\mathcal{Y})\approx-J_{\mathbf{r}}^{+}\frac{\partial}{\partial\mathcal{Y}}\mathbf{r}_{\mathcal{I}}(\mathcal{Y},\mathbf{h}^{t=\infty});内点计数通过sigmoid松弛s(h,Y)=iσ[βτβr(yi,h)]s(\mathbf{h},\mathcal{Y})=\sum_{i}\sigma[\beta\tau-\beta r(\mathbf{y}_{i},\mathbf{h})],β=5/τ\beta = 5/\tau;假设选择则通过DSAC——从分数的softmax分布中采样jp(jY)j\sim p(j|\mathcal{Y}),并最小化期望位姿损失

LPose(Y,h)=Ejp(jY)[^Pose(R(),h)],\mathcal{L}^{\text{Pose}}(\mathcal{Y},\mathbf{h}^{*})=\mathbb{E}_{j\sim p(j|\mathcal{Y})}\left[\hat{\ell}^{\text{Pose}}(\mathbf{R}(\cdot),\mathbf{h}^{*})\right],

其梯度结合了得分函数项^Pose()Ylogp(jY)\hat{\ell}^{\text{Pose}}(\cdot)\,\partial_{\mathcal{Y}}\log p(j|\mathcal{Y})与路径导数。训练中还加入了几何数据增强(±30°旋转,66-150%缩放)。

实验结果

对SLAM的意义

重定位——在已建图场景中恢复6自由度相机位姿——是SLAM系统在跟踪丢失后或在已知环境中重启时所需要的能力。DSAC*是场景坐标回归这一方案的成熟形态:地图隐式存储在网络权重中,同时几何PnP/Kabsch+RANSAC求解器仍在闭环中,从单张图像即可实现厘米级室内精度。其稳定、整合的训练方案成为后来ACE系列大幅加速训练的参照基线。

相关条目