FlowFormer

Huang 2022 · 论文

一句话总结 — 首个围绕4D代价体积构建的光流Transformer架构:它将代价体积token化,通过交替分组注意力将token编码为潜在的”代价记忆(cost memory)“,再用动态位置代价查询以循环方式解码光流。

问题

光流估计的是一个逐像素位移场f:R2R2\mathbf{f}:\mathbb{R}^{2}\rightarrow\mathbb{R}^{2},将源图像中的每个位置x\mathbf{x}映射到其在目标图像中的对应点p=x+f(x)\mathbf{p}=\mathbf{x}+\mathbf{f}(\mathbf{x})。RAFT构建了一个H×W×H×WH \times W \times H \times W的4D代价体积,包含所有像素对的相似度,但只从局部窗口中检索代价值,这在大位移和遮挡场景下表现不佳。Transformer提供了全局推理能力,但对代价体积中数千个token做朴素自注意力在计算上是难以承受的——Perceiver IO转而对原始像素做注意力,但需要多出约80倍的训练样本。FlowFormer探究的问题是:如何在保留紧凑代价体积的同时,获得Transformer风格的全局聚合能力。

方法与架构

分三个阶段:构建4D代价体积,将其编码为代价记忆,再循环解码光流。

Kx=Conv1×1(Concat(Fx,PE)),Vx=Conv1×1(Concat(Fx,PE)),Tx=Attention(C,Kx,Vx)\mathbf{K_x}=\mathrm{Conv}_{1\times 1}(\mathrm{Concat}(\mathbf{F_x},\mathrm{PE})),\quad \mathbf{V_x}=\mathrm{Conv}_{1\times 1}(\mathrm{Concat}(\mathbf{F_x},\mathrm{PE})),\quad \mathbf{T_x}=\mathrm{Attention}(\mathbf{C},\mathbf{K_x},\mathbf{V_x})

从而将4D体积转变为一个H×W×KH \times W \times K的token网格(K×DH×WK \times D \ll H \times W;最终模型中为8个128维token)。

Δf(x)=ConvGRU(Concat(cx,qx),tx,f(x))\Delta\mathbf{f}(\mathbf{x})=\mathrm{ConvGRU}(\mathrm{Concat}(\mathbf{c_x},\mathbf{q_x}),\,\mathbf{t_x},\,\mathbf{f}(\mathbf{x}))

最终光流经凸上采样恢复到全分辨率,每次迭代均以递增权重进行监督。

实验结果

对SLAM的意义

稠密光流是现代学习型SLAM前端(DROID-SLAM、DPVO及其后续系统)内部的对应关系引擎,而FlowFormer证明了对匹配代价做全局注意力能够解决对宽基线运动最重要的长程、模糊对应关系问题——恰恰是其代价记忆机制所针对的难例(大位移、遮挡)。它确立了当今这一权衡关系中Transformer一侧的地位——Transformer精度(FlowFormer)对比卷积效率(SEA-RAFT)——这也是SLAM工程师在选择光流骨干网络时要权衡的问题。

相关条目