跳转至

MegaFlow: Zero-Shot Large Displacement Optical Flow

会议: ECCV2026
作者: Dingxi Zhang, Fangjinhua Wang, Marc Pollefeys, Haofei Xu
论文: ECCV 原文
PDF: 论文全文
项目: MegaFlow
领域: 视频理解
关键词: 光流估计、大位移、全局匹配、零样本泛化、点跟踪

一句话总结

MegaFlow 用预训练视觉几何先验建立跨帧特征,以全局匹配确定大运动的落点,再用局部与时序信息细化,在四帧 Sintel Final 零样本评测取得 1.83 EPE,并支持无需跟踪监督的点跟踪迁移。

研究背景与动机

光流要为源图像的每个像素找到下一帧的位置,困难不只是预测运动方向,而是同时处理远距离对应、遮挡、外观变化和亚像素细节。 RAFT 一类方法通过迭代更新细化光流,但相关性查询围绕当前估计展开;即使预先构建了全对相关性,也不等于直接在整张目标图像中完成匹配。 当初值距离正确位置很远时,局部证据容易被重复纹理或遮挡干扰,迭代次数增加也不保证能找到真正的落点。 这解释了为什么普通位移上的高精度不能直接外推到超过 40 像素的大位移区间。

另一类瓶颈来自训练分布:面向特定光流数据学习的特征,往往需要针对 Sintel、KITTI 等域继续微调。 预训练视觉模型提供了更广泛的语义和几何表征,但如果只用一个预测头直接回归位移,或仍把它限制在局部查询中,这些先验并不必然转化为大范围对应能力。 VGGT 等模型已经能通过帧内与跨帧注意力组织静态场景的几何关系,因此本文探索将这种初始化迁移到包含动态物体的视频。 这里的“零样本”不是没有光流训练,而是完成源域光流训练后,不再用目标评测域适配;点跟踪的零样本则指没有使用跟踪监督。

MegaFlow 的取舍是先解决“在哪里”,再解决“精确到什么程度”:全局匹配承担跨越大空间距离的工作,循环更新只处理剩余误差。 不过,patch 表征会丢失细线条和边界,因此还需要可训练 CNN 把局部结构补回匹配特征和细化过程。 多帧上下文提供额外运动证据,但它并非越长越好;目标迅速离开视野时,增加帧数也可能增加遮挡干扰。 核心 idea:将可迁移的视觉几何先验转化为显式全局对应,再以局部细节与时序上下文联合细化,让大位移初始化和高精度修正各自承担明确职责。

方法详解

整体框架

输入为一段 \(T\) 帧视频,光流模式输出相邻帧之间的 \(T-1\) 个稠密二维位移场。 先验特征融合把冻结 DINOv2 的 patch token、可训练跨帧 Transformer 和 CNN 局部特征结合,生成适合匹配的多帧表示。 全局匹配在每一对相邻帧间搜索全部目标位置,得到低分辨率初始光流。 时空循环细化将初值上采样到 CNN 特征尺度,通过局部相关性、空间卷积与时间注意力逐步提高精度。 点跟踪模式沿用这些模块,只把配对方式由“相邻帧”改为“查询帧到各目标帧”,而不是新增一个跟踪网络。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
        Input["视频帧与帧配对"] --> Fusion["先验特征融合"]
        Fusion --> Matching["全局匹配"]
        Matching --> Refinement["时空循环细化"]
        Fusion -->|局部特征与跨帧上下文| Refinement
        Refinement --> Output["相邻光流或查询点轨迹"]
        Truth["训练:光流或轨迹真值"] -.->|监督初值| Matching
        Truth -.->|监督逐次预测| Refinement

关键设计

1. 先验特征融合:把几何知识与像素细节放进同一匹配空间

DINOv2 逐帧产生 patch token,其图像编码器在光流训练中保持冻结。 这些 token 经过沿用 VGGT 设计的 24 层交替帧内与全局注意力,前者组织单帧结构,后者建立跨帧关系。 注意“冻结 DINOv2”不等于“冻结整个 Transformer”:后续注意力骨干需要更新,才能把静态几何先验适配到动态运动。 论文用 VGGT 权重初始化图像编码器、Transformer 和部分融合模块,而不是从零学习全部对应关系。 这种初始化让帧间比较从较好的表示出发,减少仅靠有限光流数据训练大型骨干的困难。

局部分支采用 ImageNet 预训练 ResNet 的前两个块,提供 \(1/2\) 与 \(1/4\) 分辨率特征。 \(1/4\) 特征通过 pixel unshuffle 把空间信息重新组织到通道维,再与中间 Transformer token 拼接。 DPT 风格融合头对齐两种表示,输出约 \(H/7 \times W/7\)、通道数为 128 的特征图,供全局匹配使用。 这样,匹配描述子不仅知道较大范围的物体和场景关系,也保留了边界、细结构等局部线索。 局部 CNN 特征还进入后续细化,因此这不是只在输入端附加一次纹理信息。 表 6 的去融合与冻结 Transformer 实验支持这两部分都需要参与适配,但没有单独证明某个空间尺度最优。

2. 全局匹配:让初始位移直接覆盖整张目标图像

对源位置 \(u\),模型计算其融合特征与目标帧每个位置 \(v\) 的点积,并沿目标位置做 softmax。 得到的是一张对应候选分布,而非某个小窗口里的局部偏移。 目标坐标的概率加权平均给出匹配位置,再减去源坐标,就得到初始光流。 下面按第 3.2 节式 (1)–(3) 及其文字整理核心关系;缓存中的排版已损坏,这不是逐字符转录。

\[ f_i^{\mathrm{init}}(u)=\sum_v M_i(u,v)G(v)-G(u),\qquad M_i(u,v)=\operatorname{softmax}_v\!\left(\langle F_i(u),F_{i+1}(v)\rangle\right). \]

其中 \(G\) 是特征图坐标网格,\(F\) 是融合特征,\(M\) 表示归一化后的匹配权重。 位移是否很大,不改变目标点能否进入候选集;这与先在错误初值周围反复查局部窗口有本质区别。 另一方面,全局候选并不保证唯一正确匹配:重复纹理或遮挡会使概率分布分散,加权平均也可能落在多个候选之间。 因此它更适合提供一个可进一步校正的初值,而不是独立承担最终像素级精度。 本节强调的是预训练表示如何服务显式匹配,而非声称全局匹配本身由本文首创;该操作沿用了 GMFlow 等工作的思路。

3. 时空循环细化:围绕全局初值修细节,并利用其他帧消除歧义

初始光流先双线性上采样到 \(1/4\) 分辨率的 CNN 特征尺度,再围绕当前对应位置查询目标特征。 局部相关性比较源特征与位移落点附近的候选,偏移范围在正文中写为 \([-r,r]^2\);所读正文未给出具体半径值。 这一阶段保留局部搜索,但搜索中心已经由全局匹配提供,不再承担从零跨越大位移的职责。 更新网络包含两个 ConvNeXt 块和两个时间注意力块,空间分支聚合相关性与 CNN 细节,时间分支整合序列中的运动证据。 每次迭代预测位移修正量并加到当前光流上,训练使用 4 次更新,评测使用 8 次。

时间注意力的价值是借助其他帧降低当前帧模糊或部分遮挡造成的不确定性,而不是简单地对邻帧光流求平均。 该设计支持可变帧数,默认四帧推理,训练随机采样 2–6 帧;不需要为不同窗口重新搭建网络。 但快速前向行驶可能让物体在后续帧中离开视野,新增上下文便不再提供有效对应,KITTI 的帧数消融体现了这一点。 用于点跟踪时,全局匹配和细化都改为直接估计查询帧到每个目标帧的位移,而非逐对累加相邻光流。 这减少了窗口内部连续光流串接带来的误差传播,但跨窗口仍依赖前一窗口的预测,不能理解为完全无漂移。 长序列采用长度为 8 的滑动窗口,当前窗口轨迹初始化下一窗口;第 3.5 节明确不依赖显式可见性启发式或置信度分数传播轨迹。

一个完整示例

考虑四帧输入中,一个像素对应的物体在下一帧移动到远离原位置的区域;这里是流程示例,不是新增实验。 先验特征融合同时查看四帧,将语义、局部轮廓和跨帧关系编码到各帧特征中。 全局匹配让该像素与整张目标图像比较,先获得大致落点;即使距离超过 40 像素,也不会被候选窗口排除。 时空循环细化随后围绕这个落点检查局部纹理,并利用其他帧的证据修正模糊边缘或局部遮挡造成的误差。 光流模式最终产生三组相邻帧位移;跟踪模式则固定查询帧,让该像素分别与其他目标帧匹配。 第 3.5 节用下式把预测位移转换为轨迹,\(x\) 是查询坐标,\(p_t\) 是目标帧坐标。

\[ p_t(x)=x+f_{0\to t}(x). \]

损失函数 / 训练策略

光流训练对全局初值使用 smooth L1,对逐次细化结果使用 L1,并以 \(\gamma=0.9\) 的指数权重更重地监督后期预测。 缓存中的式 (6)、(7) 有严重字符错位,因此不猜补求和上下标;以上仅保留相邻文字能够确认的训练机制。 跟踪微调把监督对象换为有标注查询点的轨迹坐标误差,仍同时监督初值和细化结果。 源域训练依次为 FlyingChairs 20K、TartanAirV1 30K、FlyingThings 30K 次迭代;最后一项由 15K 双帧和 15K 多帧训练组成。 表 1 的零样本评测使用上述训练后的模型,不使用后续混合域阶段。 在线基准与跟踪迁移还使用 30K 次混合光流训练,数据为 FlyingThings、HD1K、Sintel、KITTI;这不等于对各基准分别微调。 正文先写“3 stages”却列出四项;这里按实际列出的训练流程区分源域阶段和混合域阶段,不把编号笔误解释为额外配置。 优化采用 AdamW,批量大小 128,梯度范数裁剪阈值 1.0,并使用 bfloat16、梯度检查点和 FlashAttention-3。 完整模型含 936M 参数,作者报告在 64 张 NVIDIA GH200 上训练四天;“轻量”主要描述细化模块,不代表整个系统小巧。 跟踪监督版本在混合光流训练后继续用 Kubric 微调 20K 次,必须与零样本跟踪版本区分。

实验关键数据

主实验

表 1(论文第 8 页)在 Sintel train 与 KITTI train 上做跨域零样本评测;EPE 是预测与真值位移的平均欧氏距离,越低越好。 KITTI Fl-all 是异常光流像素比例,单位为百分比;不同方法的训练数据并不完全相同,不能把差距全部归因于架构。

方法 帧数 Sintel Clean EPE Sintel Final EPE KITTI Fl-epe KITTI Fl-all (%)
RAFT 2 1.43 2.71 5.04 17.4
UFM 2 1.15 2.01 2.96 11.0
MemFlow-T 3 0.85 2.06 3.38 12.8
MegaFlow 2 0.89 2.07 3.00 10.6
MegaFlow 4 0.85 1.83 3.20 10.7

四帧 MegaFlow 的 Sintel Final 为 1.83,而两帧为 2.07;KITTI 却以两帧的 3.00/10.6 优于四帧的 3.20/10.7。 第 8 页正文把四帧 Fl-all 10.7 与两帧 Fl-epe 3.00 放在同一句,笔记保留表 1 的逐行对应关系。 表 2(第 9 页)进一步按真值位移划分区间:\(s_{0-10}\)、\(s_{10-40}\)、\(s_{40+}\) 分别表示 0–10、10–40、超过 40 像素,表中均为 EPE。

方法 Clean \(s_{40+}\) Clean \(s_{10-40}\) Clean \(s_{0-10}\) Final \(s_{40+}\) Final \(s_{10-40}\) Final \(s_{0-10}\)
MemFlow-T 5.239 0.980 0.211 13.670 2.224 0.371
UFM 6.836 1.209 0.259 12.963 2.129 0.399
WAFT-DINOv3-a2 8.870 1.218 0.217 13.192 1.966 0.324
MegaFlow 4.729 0.909 0.314 11.175 1.941 0.480

MegaFlow 的优势集中在中大位移,小位移并非最优;例如 Final 小位移 0.480 高于 WAFT 的 0.324。 表 3(第 10 页)的零样本点跟踪平均准确率为 73.6%,Kubric 微调后为 79.6%;后者不是零样本结果。 该跟踪指标 \(\delta_{\mathrm{avg}}\) 在 \(384\times512\) 输入下,对误差小于 \(k\in\{1,2,4,8,16\}\) 像素的正确率求平均,不等于可见性预测质量。 表 4(第 12 页)在没有 Spring 专项微调时给出四帧 EPE 0.349;这是混合光流训练后的跨域结果,不能与表 1 当作同一训练检查点。 表 5 同页的 Sintel test Final EPE 为 2.43,弱于 VideoFlow-MOF 的 1.65,因此“零样本领先”不意味着所有测试集指标领先。

消融实验

表 7(第 14 页)比较时间注意力与输入帧数,其训练和评测采用零样本设置;三个指标均越低越好。

配置 帧数 Sintel Clean EPE Sintel Final EPE KITTI Fl-epe
无时间注意力 2 0.88 2.09 3.12
无时间注意力 4 0.95 1.99 4.22
无时间注意力 6 0.98 2.04 4.56
有时间注意力 2 0.89 2.07 3.00
有时间注意力 4 0.85 1.83 3.20
有时间注意力 6 0.94 1.92 3.67

同为四帧,时间注意力使 Sintel Final 从 1.99 降至 1.83;扩展到六帧反而回升到 1.92。 表 6(第 13 页)中,冻结 Transformer 的 KITTI Fl-all 为 14.7,去特征融合为 13.9,完整模型为 10.9,支持适配和局部结构融合的重要性。 表 6 完整模型的双帧 Sintel Final/KITTI Fl-all 是 2.08/10.9,表 1 和表 7 对应位置却为 2.07/10.6 或只给 2.07;正文没有解释该跨表差异,不能自行合并。

关键发现

  • 大位移改善与全局初始化的设计目标一致,但本文所列消融没有单独删除全局匹配,不能据此量化它独自贡献多少。
  • 多帧收益受数据运动模式影响:Sintel 偏好四帧,KITTI 两帧更好,帧数应视为部署配置而非固定越大越优。
  • 表 6 在 RTX 3090、\(540\times960\)、双帧条件下测得 327.9 ms 延迟与 6.08 GB 峰值显存,不应外推为长视频或全高清的开销。

亮点与洞察

  • 先验的使用位置比“是否接入大模型”更关键。它先塑造全局可匹配表示,再指导局部细化,使几何迁移有明确的中间接口。
  • 光流和点跟踪共享位移场,只改变帧配对与监督对象。其统一性来自任务参数化,而非把两个独立预测头放进同一系统。
  • 读者启发:迁移到其他稠密对应任务时,可以先检查初始化是否覆盖真实对应,再判断是否需要更复杂的迭代器;这不是本文已经验证的新任务结果。

局限与展望

  • 作者承认稠密多帧建模在长序列上开销增加,并计划改善序列级效率及统一预训练;936M 参数也限制轻量部署。
  • 小运动精度、快速自运动下的多帧退化和 Sintel Final 测试结果说明方法仍有明确适用边界,不能只引用大位移优势。
  • 作者把 Sintel Final 的部分问题归因于 Ambush 1,并将排除该序列后的比较放在补充材料;本次提供的正文缓存不含该证据,笔记不据此改写完整测试排名。
  • 不显式预测可见性让跟踪接口更简单,但所报位置准确率并不足以证明遮挡判断能力,后续可同时评估可见性与轨迹误差。
  • 缓存公式提取损坏及数值跨表差异已分别标注;正文也不足以确定局部搜索半径等全部复现细节。

相关工作与启发

  • RAFT,原文参考文献 [54]:采用循环相关性查询和更新。MegaFlow 保留细化的优势,但先用显式全局匹配提供非零初始化,不能把 RAFT 简化为完全没有全局相关性。
  • GMFlow / UniMatch,原文 [65,66]:提供全局匹配及统一对应估计的基础。本文进一步结合 VGGT 先验、局部融合和多帧细化,而非首次提出 softmax 坐标匹配。
  • VGGT / DINOv2,原文 [56,38]:提供几何初始化和视觉表征。MegaFlow 冻结图像编码器、训练后续骨干,体现“保留通用知识”与“适配动态任务”的分工。
  • AllTracker,原文 [14]:面向稠密长程跟踪。本文沿用滑窗衔接思路,但展示光流训练后直接转为跟踪的能力;79.6 对 79.5 的平均准确率差距不宜描述为压倒性领先。
  • 分类判断:核心输出是视频帧间光流与二维点轨迹,保持 video_understanding 合理;借用几何预训练并不使它成为 3D 重建论文。

评分

  • 新颖性: 4/5。单个部件已有前例,价值在于先验、全局对应与多帧细化的组合及跨任务统一。
  • 实验充分度: 4/5。包含跨域、位移分桶、跟踪及结构消融,但缺少独立全局匹配消融和统计不确定性报告。
  • 写作质量: 3/5。方法主线清楚,但训练阶段编号、跨表数字及较强结论措辞需要谨慎阅读。
  • 价值: 4/5。对大位移和通用运动表示具有参考价值,但计算成本与小运动表现需纳入实际选型。