LoFTR

Sun 2021 · 论文

一句话总结 — 使用Transformer实现无检测器的密集特征匹配:自注意力和交叉注意力使特征同时依赖于两幅图像,即使在特征检测器失效的低纹理区域也能产生可靠的匹配。

问题

经典流水线依次执行特征检测、描述和匹配,因此一切都取决于检测器能否在两幅图像中都产生可重复的兴趣点——而检测器在低纹理区域(空白墙面、地面)和重复图案下众所周知会失败。现有的密集替代方案通过代价体(cost volume)搜索对应关系,这种方式开销大,且仍然依赖局部证据。LoFTR完全跳过检测步骤:先在粗略层级上建立逐像素的密集匹配,然后细化其中好的部分——利用Transformer的全局感受野,同时依据两幅图像来决定匹配内容。

方法与架构

骨干网络。 一个ResNet-18+FPN的CNN以1/8分辨率提取粗特征F~A,F~B\tilde{F}^A, \tilde{F}^B,以1/2分辨率提取细特征F^A,F^B\hat{F}^A, \hat{F}^B

LoFTR模块。 二维正弦位置编码(只添加一次)使特征具有位置依赖性——这对于匹配缺乏区分度的区域至关重要。随后Nc=4N_c = 4个交替的自注意力和交叉注意力层将粗特征转换为F~trA,F~trB\tilde{F}^A_{tr}, \tilde{F}^B_{tr}。普通注意力Attention(Q,K,V)=softmax(QKT)V\mathrm{Attention}(Q,K,V) = \mathrm{softmax}(QK^T)\,V的开销为O(N2)O(N^2),因此LoFTR使用线性Transformer核:

sim(Q,K)=ϕ(Q)ϕ(K)T,ϕ()=elu()+1\mathrm{sim}(Q,K) = \phi(Q)\cdot\phi(K)^{T}, \quad \phi(\cdot) = \mathrm{elu}(\cdot) + 1

利用矩阵乘积的结合性(先计算ϕ(K)TV\phi(K)^T V,特征维度DND \ll N),将开销降至O(N)O(N)

粗匹配。 得分矩阵S(i,j)=1τF~trA(i),F~trB(j)\mathcal{S}(i,j) = \frac{1}{\tau} \langle \tilde{F}^A_{tr}(i), \tilde{F}^B_{tr}(j) \rangle被送入一个最优传输层(如SuperGlue中)或双softmax

Pc(i,j)=softmax(S(i,))jsoftmax(S(,j))i\mathcal{P}_c(i,j) = \mathrm{softmax}\big(\mathcal{S}(i,\cdot)\big)_j \cdot \mathrm{softmax}\big(\mathcal{S}(\cdot,j)\big)_i

粗匹配是在Pc\mathcal{P}_c中互为最近邻且置信度θc=0.2\geq \theta_c = 0.2的点对。

粗到细的细化。 对每个粗匹配,从细特征图中裁剪出w×w=5×5w \times w = 5 \times 5的局部窗口,并通过一个更小的LoFTR模块(Nf=1N_f = 1)进行变换;将查询窗口的中心向量与另一个窗口进行相关运算,得到一个匹配概率热图,其期望值给出亚像素位置j^\hat{j}'

监督。 L=Lc+Lf\mathcal{L} = \mathcal{L}_c + \mathcal{L}_f:对真实粗网格匹配(来自位姿+深度,如SuperGlue中所用)的负对数似然,加上对细偏移量的热图方差加权2\ell_2损失:

Lf=1Mf(i^,j^)Mf1σ2(i^)j^j^gt2\mathcal{L}_f = \frac{1}{|\mathcal{M}_f|} \sum_{(\hat{i},\hat{j}')\in\mathcal{M}_f} \frac{1}{\sigma^2(\hat{i})} \big\lVert \hat{j}' - \hat{j}'_{gt} \big\rVert_2

开销。 在RTX 2080Ti上,使用双softmax处理一对640×480图像耗时116毫秒(使用最优传输时为130毫秒);端到端从头训练,室内模型在64块GTX 1080Ti GPU上训练24小时。

实验结果

对SLAM的意义

室内SLAM在没有可检测目标的地方(空白墙面、地面、重复表面)经常失败。LoFTR证明了具有全局上下文的匹配器仍能在此类场景中产生对应关系,并确立了无检测器范式,RoMa、EfficientLoFTR和许多其他方法都建立在此基础之上。在实践中,当稀疏匹配过于脆弱时,它是室内重建、宽基线重定位和回环检测验证的首选方案,代价是比稀疏匹配器需要更多计算。

相关条目