BA-Net

Tang 2019 · 论文

一句话总结 — BA-Net(ICLR 2019)将光束法平差变成了一个可微的网络层,通过带有学习特征金字塔和紧凑基深度图参数化的特征度量BA(feature-metric BA)来求解稠密SfM问题,并实现端到端训练。

问题

传统SfM流水线是模块化的——特征提取、匹配和光束法平差是各自独立设计和优化的——因此特征从未针对其所服务的几何估计任务进行过优化。几何BA只使用角点/斑点特征,并受困于匹配外点;光度(直接法)BA使用所有像素,但其目标函数高度非凸,因此对初始化、曝光变化和运动物体十分敏感。将学习与BA统一起来的障碍在于,BA是一个迭代的Levenberg–Marquardt(LM)过程,其中包含两个不可微的if-else判断:收敛阈值终止条件,以及阻尼因子 λ\lambda 的升/降更新。BA-Net提出的问题是:能否通过一个可微的BA层来求解稠密SfM,使来自重建损失的梯度直接训练特征本身?

方法与架构

网络接收多张图像,输出相机位姿 T\mathbb{T} 和稠密深度图 D\mathbb{D};一个共享的DRN-54骨干网络接入两个头,其输出在BA层中汇合。

ei,jf(X)=Fi(π(Ti,djqj))F1(qj),e^{f}_{i,j}(\mathcal{X}) = F_i\big(\pi(\mathbf{T}_i,\, d_j \cdot \mathbf{q}_j)\big) - F_1(\mathbf{q}_j),

其中 π\pi 将3D点投影到图像上,qj\mathbf{q}_j 是图像 I1I_1 中一个带深度 djd_j 的归一化像素,Ti\mathbf{T}_i 是图像 IiI_i 的位姿。经过BA训练后,学到的特征会形成一个具有平滑盆地的清晰全局最小值(不同于RGB距离或预训练分类特征),从而扩大了收敛半径。

D=ReLU(wB),\mathbb{D} = \mathrm{ReLU}(\mathbf{w}^{\top}\mathbf{B}),

因此BA只需优化组合权重 w\mathbf{w}(带有学习到的初始值 w0\mathbf{w}_0),同时ReLU保证深度非负,而稠密的逐像素深度依然可以被恢复。

ΔX=(J(X)J(X)+λD(X))1J(X)E(X).\Delta\mathcal{X} = \big(J(\mathcal{X})^{\top}J(\mathcal{X}) + \lambda D(\mathcal{X})\big)^{-1} J(\mathcal{X})^{\top} E(\mathcal{X}).

两个不可微的判断被去除的方式是:(i)固定迭代次数(“不完全优化”:每个金字塔层5次LM迭代,3层从粗到细共15次迭代,每次迭代都进行特征warp),以及(ii)用一个MLP来预测 λ\lambda:对 E(X)|E(\mathcal{X})| 在像素上进行全局平均池化,得到一个128维向量,送入四个带ReLU的全连接层。这样每一步都成为一个可微函数 ΔX=g(X;F)\Delta\mathcal{X} = g(\mathcal{X}; \mathbb{F}),而解的更新 Xk=g(Xk1;F)Xk1\mathcal{X}_k = g(\mathcal{X}_{k-1};\mathbb{F}) \circ \mathcal{X}_{k-1}(深度权重用加法,位姿用SE(3)指数映射)可以从位姿/深度一路反向传播到特征金字塔。位姿被初始化为单位旋转和零平移。

实验结果

对SLAM的意义

BA-Net是”可微光束法平差”这一方向的开创性论文:它证明了SfM/SLAM核心的经典几何优化可以存在于网络内部并被端到端训练,将多视角几何硬编码为结构,同时只学习几何本身无法提供的部分(特征和深度基)。这一方案成为DROID-SLAM和DPVO(可微稠密BA层)以及诸如Theseus这类通用可微优化库的核心,而其低维可优化深度的思想与CodeSLAM风格的潜在深度编码密切相关。如果你想理解现代学习式SLAM后端,这里是一个很好的起点。

相关条目