FlowNet
Dosovitskiy 2015 · 论文
一句话总结 — 首个用于光流估计的端到端CNN,引入了相关层(correlation layer)和成为该领域标准的合成训练数据集Flying Chairs。
问题
到2015年,CNN已经改变了识别类任务,但光流并不在其成功范围之内:Horn-Schunck谱系下的变分方法(DeepFlow、EpicFlow)仍占主导地位,每帧耗时数秒到数分钟。光流与此前的CNN应用有本质区别:它不仅需要逐像素定位,还需要在两张图像之间进行特征匹配。有两个障碍阻碍了对它的学习:没有人知道什么架构能够表达稠密的双帧对应关系,也没有数据集能在CNN所需的规模上提供稠密的真值光流(真实场景的真实对应关系几乎不可能获得;当时最大的数据集Sintel也只有1,041对训练图像)。FlowNet同时攻克了这两个障碍。
方法与架构
两种编码器-解码器架构,每种都有9个卷积层(其中6层步长为2,每层后接ReLU,没有全连接层因此输入尺寸可任意;滤波器尺寸从缩小到再到,而通道数在每个步长为2的层大致翻倍):
- FlowNetSimple将两张图像堆叠为6通道输入,让一个通用网络自行学习如何提取运动信息。
- FlowNetCorr用两个相同的独立分支分别处理两张图像,再用一个显式的相关层——本文的关键架构贡献——比较它们的特征图。以和为中心的图块之间的相关性为
其中图块大小——这在结构上等同于卷积的一步操作,但它是数据与数据的卷积,因此没有可训练权重。比较所有个图块对是不可行的,因此位移被限制在以内(邻域),步长为,相对位移按通道组织,得到一个的输出。所选参数为:,,,。
精化:“上卷积”层(反池化+卷积)扩展粗糙特征;在每一步中,上卷积后的特征会与对应的收缩部分特征图以及上采样后的更粗糙光流预测拼接在一起,分辨率翻倍4次达到四分之一分辨率,再通过双线性上采样恢复到全分辨率。可选的变分精化(‘+v’)运行20次由粗到细的无匹配变分求解器迭代,加上5次全分辨率迭代,并采用尊重边界的平滑项。
训练:损失为终点误差(EPE——预测光流与真值光流之间的欧氏距离,按像素平均);使用Adam优化器(,),批大小8,学习率,在30万次迭代后每10万次迭代减半(FlowNetCorr需要从进行预热以避免梯度爆炸)。数据是专门构建的Flying Chairs数据集:809种渲染椅子(每种62个视角)在964张Flickr背景图上做仿射运动,其位移统计特性与Sintel相匹配——共22,872对图像及其精确的稠密光流。激进的在线数据增强(平移±20%,旋转±17°,缩放0.9–2.0,噪声、亮度/对比度/gamma/颜色扰动)仍然至关重要。
实验结果
- 仅在不真实的Flying Chairs上训练,网络仍能泛化到真实数据,超越LDOF:Sintel Clean测试集EPE为7.28(FlowNetC)/7.42(FlowNetS),而LDOF为7.56;经Sintel微调加变分精化后,FlowNetS+ft+v在Sintel Final测试集上达到7.22——与DeepFlow(7.21)相当——在KITTI测试集上为7.6,而EPPM为9.2,LDOF为12.4。
- 在Flying Chairs测试集上,网络击败了所有经典方法:FlowNetC的EPE为2.19,而EpicFlow为2.94,DeepFlow为3.53——在这种情况下变分精化反而有害,暗示在真实训练数据充足的情况下,神经网络在其他场景也能取胜。
- 在GTX Titan上每帧运行时间为0.08秒(FlowNetS)/0.15秒(FlowNetC)——在Sintel全分辨率下为5到10 fps,而EpicFlow/DeepFlow在CPU上每帧需16–17秒;在实时方法中精度最高。
- 消融实验:去掉数据增强会使Sintel上的EPE增加约2像素;仅在Sintel上训练比”Chairs预训练+微调”差约1像素。FlowNetC略微更容易过拟合,且在极大位移下表现较差(s40+误差为48像素,而FlowNetS+ft为43.3像素),因为相关操作的位移上限限制了可检测的运动范围。
对SLAM的意义
FlowNet开启了整个深度光流领域,其后代(RAFT及其变体)如今作为学习型视觉里程计和SLAM系统(例如DROID-SLAM)中的稠密对应关系引擎。它的两个核心成果十年后依然发挥着重要作用:相关层(被PWC-Net、RAFT以及几乎所有后续光流网络复用)以及合成数据方案——在带精确真值的渲染数据上训练、在Sintel/KITTI上评测——这一方案被FlyingThings3D、AutoFlow和Kubric悉数沿用。
相关条目
- FlowNet 2.0 — 达到经典方法精度水准的堆叠式精化方案
- PWC-Net — 紧凑的金字塔/变形/代价体积继任者
- RAFT — 取代该谱系的全对相关性架构
- FlowNet3D — 将同一思想移植到3D点云上