FreeFlow: A Bias-free Hierarchical Transformer for Optical Flow Estimation¶
会议: ECCV 2026
论文: ECCV 原文
代码: https://github.com/msu-video-group/freeflow
领域: 视频理解
关键词: 光流估计 / 视觉Transformer / 无归纳偏置 / 分层注意力 / 高分辨率推理
一句话总结¶
FreeFlow 彻底摒弃了相关体、特征形变与迭代更新等光流任务专用归纳偏置,构建了基于窗口、移动窗口与降采样全局注意力交织的分层前馈 Transformer 编解码架构,在显著降低 1080p 推理显存的同时刷新了 Sintel、KITTI-2015 和 Spring 的 SOTA 记录。
研究背景与动机¶
自 RAFT 以来,现代深度学习光流估计方法几乎全面依赖于高度定制化的特定任务归纳偏置。典型的标准管线通常显式构建 4D 全对相关体(Cost Volume)以捕捉长程匹配候选,依赖迭代更新算子(如 GRU 单元)逐步修正流场,并配合特征形变(Feature Warping)和凸上采样(Convex Upsampling)恢复全分辨率细节。尽管这些人工设计的先验带来了极高的匹配精度,但也导致模型架构极其复杂、计算开销大、超参数耦合紧密,难以自适应扩展到高分辨率图像处理或迁移到更通用的视觉几何任务中。
与此同时,计算机视觉的通用骨干网络正在全面向纯数据驱动的视觉 Transformer(ViT)演进,目标检测、深度估计与 3D 重建等底层与几何任务均证明,大规模自监督预训练搭配通用前馈 ViT 可以自主学习到所需的几何与对应结构。近期虽然有部分工作(如 CroCo-Flow、WAFT、GeoViT)尝试减少对显式模块的依赖,但它们要么仍保留了循环特征形变迭代,要么严重受限于小分辨率训练,在面对 1080p 等高分辨率输入时只能依赖滑动窗口切块(Tiling)或简单的后期融合,导致跨图块长程运动断裂与接缝伪影。
面对计算复杂度与全局上下文建模的核心矛盾,本文探索光流估计能否完全摆脱这些任务专用偏置,仅凭纯粹的前馈 Transformer 实现高分辨率的高精度运动估计。核心 idea:设计一种无需任何显式相关体、形变与迭代细化的分层前馈 Transformer 架构 FreeFlow,通过“局部窗口-跨窗口平移-低分辨率全局”三级注意力交替机制实现密集多尺度特征融合,以极低的显存开销实现原生 1080p 高分辨率光流估计。
方法详解¶
整体框架¶
FreeFlow 采用孪生编码器-解码器架构处理输入图像对 \((I_1, I_2 \in \mathbb{R}^{H \times W \times 3})\)。首先将每张输入图像划分为不重叠的 \(8 \times 8\) Patch,并通过线性投影转换为序列长度为 \(N = \frac{H}{8} \times \frac{W}{8}\) 的 Token 嵌入。两组 Token 序列分别输入权值共享的孪生 Transformer 编码器提取特征表示 \(F^1, F^2 \in \mathbb{R}^{N \times D}\)。
随后,Transformer 解码器交替执行自注意力(Self-Attention)与从 \(F^1\)(Query)到 \(F^2\)(Key/Value)的交叉注意力(Cross-Attention),促使双目视角的特征进行多次深度交互。编码器和解码器的每一层内部均按固定顺序依次串联局部窗口注意力、移动窗口注意力以及降采样全局注意力。解码得到的流场 Token 序列 \(Z \in \mathbb{R}^{N \times D}\) 经由一个轻量级的纯卷积预测头一次性映射为全分辨率光流场与不确定度图,整体流程完全前馈单次完成,不包含任何循环更新迭代。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["双帧输入 I1, I2<br/>8x8 Patch 线性投影"] --> B["孪生分层编码器<br/>共享权重特征抽取"]
subgraph AttentionBlock ["分层注意力复合层 (每层按序执行)"]
direction TB
C1["局部窗口注意力 (Win)<br/>4x4 局部网格独立匹配"] --> C2["移动窗口注意力 (Swin)<br/>半窗口偏移实现跨界交互"]
C2 --> C3["降采样全局注意力 (Global)<br/>2x 步长卷积池化 + 全局自/交叉注意力"]
end
B --> AttentionBlock
AttentionBlock --> D["双目交互解码器<br/>自注意力 + 跨视图交叉注意力"]
D --> E["轻量级前馈流场预测头<br/>转置卷积上采样输出光流与不确定度"]
E --> F["输出: 全分辨率致密光流场 (H x W x 2)"]
关键设计¶
1. 分层三级注意力机制:兼顾高分辨率局部细节与全局长程对应
在高分辨率(如 1080p)下处理全图 Token 时,标准全自注意力的二次方复杂度会导致显存崩溃;而传统的外部切块(Tiling)后平均策略又割裂了全局上下文。为此,FreeFlow 在编码器与解码器的每个 Transformer 层内均设计了按序串联的三种互补注意力子块: - 局部窗口注意力(Win Attention):将大小为 \(\frac{H}{8} \times \frac{W}{8}\) 的 Token 特征图划分为 \(4 \times 4\) 网格的 16 个互不重叠窗口,每个窗口包含 \(\frac{H}{32} \times \frac{W}{32}\) 个 Token,注意力计算严格局限在各自窗口内,负责精细刻画局部纹理与精确运动边界。 - 移动窗口注意力(Swin Attention):为打破固定窗口边界造成的信息孤岛,将特征图在水平方向平移 \(\frac{W}{64}\) 个 Token、垂直方向平移 \(\frac{H}{64}\) 个 Token(恰为半个窗口大小),再次划分为 \(4 \times 4\) 窗口计算注意力后逆向平移复原,实现相邻区域间的高效信息扩散。 - 降采样全局注意力(Global Attention):通过步长为 2 的卷积将特征图空间分辨率减半,在该紧凑特征图上计算覆盖整图的全局全注意力,随后经步长为 2 的转置卷积恢复分辨率并加回残差分支。得益于 2 倍降采样(Token 总数变为原来的 1/4),全局注意力的计算与内存开销被严格限制在与局部窗口注意力相当的水平,赋予模型捕捉跨越大半幅图像的大位移运动能力。
2. 空间位置编码与未归一化对数注意力缩放因子
为了使模型能够精准感知几何坐标并在高分辨率推理时良好外推,FreeFlow 采用旋转位置编码(RoPE)对注意力矩阵进行几何编码。此外,针对训练分辨率与测试分辨率差异导致的高分辨率泛化退化问题,FreeFlow 引入了基于总 Token 数量的未归一化对数缩放因子,对注意力 Logits 进行尺度调整: $\(\text{Attention}(Q, K, V) = \text{Softmax}\left( \frac{\log_2(H/8 \times W/8)}{\sqrt{D}} Q K^T \right) V\)$ 以往方法(如 MemFlow)通常将此系数归一化使得训练基准分辨率下比例为 1,但实验发现直接采用未归一化的绝对对数缩放因子在跨分辨率测试时表现更为稳定,能够有效避免高分辨率下注意力分布过度尖锐化。
3. 轻量化全卷积流场预测头与一次性前馈输出
不同于 RAFT 系列赖以支撑精度的多轮 GRU 迭代更新与计算复杂的凸上采样权重预测,FreeFlow 坚持极简的纯前馈设计。解码器最终输出的 Token 特征 \(F \in \mathbb{R}^{\frac{H}{8} \times \frac{W}{8} \times D}\) 直接进入一个轻量级三层卷积预测头: 首先通过 \(3 \times 3\) 卷积将通道数提升至 \(4D\),再经 \(1 \times 1\) 卷积映射至 4096 维隐空间,最后利用卷积核与步长均为 8 的转置卷积一次性上采样到原图尺寸 \(H \times W\),通道数为 5。其中前 2 个通道乘以 Patch 尺度因子 8 获得像素级光流矢量 \((u, v)\),后 3 个通道用于预测拉普拉斯混合分布的不确定度参数,全程无循环、无反向迭代特征修正。
损失函数 / 训练策略¶
FreeFlow 采用两阶段训练流水线: 1. 跨视角补全自监督预训练(Cross-View Completion):在 ARKitScenes、MegaDepth 和 3DStreetView 共 370 万图对上进行预训练。一张视图被极度掩码,模型通过另一张参考视图预测缺失像素。与 CroCo 在解码器才引入掩码 Token 不同,FreeFlow 在编码器输入端即以可学习 Token \(e_{\text{mask}}\) 替换掩码块,使分层注意力在编码期便学习跨区域交互。由于采用更精细的 \(8 \times 8\) Patch,最佳掩码比例提高至 0.95。 2. 光流微调阶段:在 TaTSKH 混合数据集(TartanAir 0.23, Sintel 0.25, Things 0.24, KITTI 0.09, HD1K 0.19)上训练,沿用 MEMFOF 的 2 倍上采样训练策略以匹配高清运动分布。训练采用可变宽高比与固定 Token 预算的矩形随机裁剪,优化目标为基于拉普拉斯混合模型的负对数似然损失(Mixture-of-Laplace Loss)。
实验关键数据¶
主实验¶
在代表高分辨率真实场景的 Spring 基准、复杂合成特效的 Sintel 基准以及真实驾驶场景 KITTI-2015 上,FreeFlow 与主流光流估计方法进行了全面对比(原论文 Table 3 与 Table 4)。
Spring 基准评测结果(1080p 评测)
| 方法 | 参数量 (M) | 1080p 显存 (GB) | 耗时 (ms) | 1px 误差率 (↓) | EPE (↓) | Fl 异常率 (↓) | WAUC (↑) |
|---|---|---|---|---|---|---|---|
| RAFT | 5.26 | 7.97 | 406 | 6.790 | 1.476 | 3.198 | 90.920 |
| FlowFormer | 16.17 | 1.90 | 2084 | 6.510 | 0.723 | 2.384 | 91.679 |
| SEA-RAFT (M) | 19.67 | 8.12 | 198 | 3.686 | 0.363 | 1.347 | 94.534 |
| DPFlow | 10.02 | 4.26 | 401 | 3.442 | 0.340 | 1.311 | 94.980 |
| CroCo-Flow | 447.47 | 2.73 | 3266 | 4.565 | 0.498 | 1.508 | 93.660 |
| WAFT-DAv2-a2 | 56.93 | 20.58 | 489 | 3.298 | 0.304 | 1.197 | 94.990 |
| FreeFlow-S (本文) | 34.58 | 1.02 | 144 | 5.087 | 0.533 | 1.452 | 90.196 |
| FreeFlow-M (本文) | 102.46 | 1.66 | 325 | 3.392 | 0.346 | 1.171 | 94.919 |
| FreeFlow-L (本文) | 230.72 | 2.58 | 607 | 3.192 | 0.278 | 1.048 | 95.235 |
Sintel 与 KITTI-2015 官方榜单评测结果
| 方法 | Sintel Clean EPE (↓) | Sintel Final EPE (↓) | KITTI-15 Fl-all (↓) | 输入帧数 |
|---|---|---|---|---|
| RAFT | 1.61 | 2.86 | 5.10 | 2 帧 |
| FlowFormer | 1.16 | 2.09 | 4.68 | 2 帧 |
| DPFlow | 1.05 | 1.98 | 3.56 | 2 帧 |
| VideoFlow-MOF | 0.99 | 1.65 | 3.65 | 多帧 (5 帧) |
| MEMFOF | 0.99 | 1.94 | 2.94 | 多帧 |
| CroCo-Flow | 1.09 | 2.44 | 3.64 | 2 帧 |
| WAFT-DAv2-a2 | 0.94 | 2.33 | 3.31 | 2 帧 |
| GeoViT | 0.79 | 1.88 | 3.79 | 2 帧 |
| FreeFlow-S (本文) | 1.03 | 1.99 | 4.06 | 2 帧 |
| FreeFlow-M (本文) | 0.80 | 1.77 | 3.33 | 2 帧 |
| FreeFlow-L (本文) | 0.68 | 1.48 | 3.23 | 2 帧 |
消融实验¶
在 Spring 子验证集(0045 与 0047 序列)上探究自监督掩码率与各注意力子模块(Win/Swin/Global)的配置作用(原论文 Table 5)。
| 掩码率 (Mask Ratio) | 窗口注意力 (Win) | 移动窗口 (Swin) | 全局注意力 (Global) | 1px 离群率 (↓) | EPE 均方误差 (↓) | 说明 |
|---|---|---|---|---|---|---|
| 0.90 | ✓ | ✗ | ✗ | 1.133 | 0.229 | 仅局部窗口,无跨界与长程交互 |
| 0.90 | ✓ | ✗ | ✓ | 0.801 | 0.190 | 局部+全局,缺失相邻窗口过渡 |
| 0.90 | ✓ | ✓ | ✗ | 0.659 | 0.167 | 局部+平移窗口,无宏观长程机制 |
| 0.90 | ✓ | ✓ | ✓ | 0.688 | 0.170 | CroCo 默认掩码比例基准配置 |
| 0.95 | ✓ | ✓ | ✗ | 0.658 | 0.166 | 掩码率提升,缺失全局块时存在隐性断裂 |
| 0.95 (完整配置) | ✓ | ✓ | ✓ | 0.624 | 0.157 | 主模型选用最优配置,误差显著最低 |
| 0.975 | ✓ | ✓ | ✓ | 0.656 | 0.174 | 极高掩码率导致自监督难度失衡 |
关键发现¶
- 分层注意力缺一不可:消融表明从单一窗口(Win)扩充到具备跨边界交互的平移窗口(Swin)带来了最剧烈的性能增益(EPE 从 0.229 骤降至 0.167);虽然在 0.90 掩码率下数值上 Global 模块看似影响不大,但在真实场景定性可视化中,去除 Global 会产生明显的长程运动伪影与不连贯结构。
- 细粒度 Patch 需适配更高自监督掩码率:CroCo 采用 \(16 \times 16\) Patch 搭配 0.90 掩码率,而 FreeFlow 选用更精细的 \(8 \times 8\) Patch,使得掩码区域与周围可见像素距离更近,因此必须将掩码率提升到 0.95 才能让跨视角自监督重建任务保持足够的判别难度,取得 0.157 EPE 的最佳表现。
- 显存与速度优势极端显著:在 1080p 原生分辨率下,强基线 WAFT-DAv2 峰值显存高达 20.58 GB,而 FreeFlow-L 仅需 2.58 GB(降低了约 8 倍),甚至轻量级 FreeFlow-S 仅需 1.02 GB 和 144 ms,具备极强的高清工程实用性。
亮点与洞察¶
- 彻底去除光流专属归纳偏置:打破了过去十余年必须依赖相关体(Cost Volume)、特征形变重采样与 GRU 循环迭代优化的惯性思维,证实纯粹的分层视觉 Transformer 完全有能力自主掌握高精度长程匹配与亚像素级运动边界。
- 2x 降采样全局注意力与移动窗口协同:巧妙利用步长为 2 的卷积将空间全局注意力的计算复杂度降至与局域窗口同阶,用极低的计算开销彻底解决了高分辨率推理下长程对应与边缘接缝难以两全的难题。
- 原生高分辨率高效缩放:采用 \(8 \times 8\) Patch 与无切块全图前馈,配合未归一化对数注意力缩放因子,让模型从小参数量(FreeFlow-S, 35M)到大参数量(FreeFlow-L, 231M)表现出优异且可预测的性能单调增长曲线。
局限与展望¶
- 预训练计算资源消耗大:模型依赖 370 万图对的跨视角补全预训练,最大模型需要 32 张顶级 GPU 训练 4 到 5 天,缺乏公开预训练权重时学术复现门槛较高。
- 极端大位移依赖两倍降采样全局块捕捉:尽管 Global 块有效扩大了感受野,但若运动位移超出极端范围,由于缺乏金字塔粗到细搜索机制,仍可能在低纹理大运动区域出现不确定度增加。
- 多帧时序与立体视觉拓展:当前 FreeFlow 仅针对双帧光流设计,未来可进一步引入多帧时序自注意力机制或向双目立体匹配与三维场景流扩展。
相关工作与启发¶
- vs RAFT / SEA-RAFT: RAFT 系列依靠 4D 相关体和循环 GRU 逐步更新残差,精度高但计算重且无法去除迭代循环;FreeFlow 完全去除相关体与循环结构,单次前馈完成预测,1080p 推理显存降低近一个数量级。
- vs CroCo-Flow / Win-Win: CroCo 架构在测试高分辨率时需依赖繁重的外部滑动窗口切块(Tiling)及后期拼合,耗时长达 3 秒以上;FreeFlow 在网络内部实现无切块的原生高分辨率分层注意力,耗时缩短至 607 ms 且边缘更加锐利平滑。
- vs WAFT / GeoViT: WAFT 与 GeoViT 虽削减了部分偏置,但仍保留了输入或特征层面的循环 Warp 变形;FreeFlow 实现了真正的 Bias-free,在更少的显存消耗下在 Sintel 和 Spring 均大幅领先。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 首次在光流估计领域完全抛弃相关体与特征变形等经典先验,实现纯 Transformer 架构突破。
- 实验充分度: ⭐⭐⭐⭐⭐ 涵盖 Spring、Sintel、KITTI 三大主流榜单及详实的消融与高分辨率显存评测。
- 写作质量: ⭐⭐⭐⭐⭐ 动机阐释清晰有力,架构设计精炼规范,图表详实。
- 价值: ⭐⭐⭐⭐⭐ 为密集几何匹配任务向通用纯 Transformer 范式统一奠定了极其重要的基石。