论文地址:https://arxiv.org/abs/2207.11075
开源代码:https://github.com/megvii-research/RealFlow
Introduction
近年来, 基于深度学习的光流算法实现了很高的性能和运算效率。实现这些深度学习方法的一个关键因素是其训练数据集。我们认为, 光流的数据集应具有以下四个关键特性:
1) 有标签数据对的数量多;
2) 光流标签的准确性高;
3) 图像的真实性高;
4) 运动的真实性高。
然而, 我们发现现有的光流数据集很难同时满足这四个特性。
图1. 本文的方法与现有光流数据集生成方法进行对比
如上图所示, 现有的数据集生成方法, 如: FlyingThings[1], AutoFlow[2], 主要使用生成的运动对前景进行裁剪粘贴以获取训练数据对。它们都能够生成大量的数据对同时能够保证光流标签的准确性。但是它们无法满足图像和运动的真实性: 图像不是真实存在的, 运动也不是真实场景中的运动。
近期, Depthstillation[3] 提出从单张图片生成光流数据集: 随机生成一个变换关系, 并根据深度和分割将图像变换成一个新的视角, 以此生成数据对。这样的方法能够一定程度上满足图像的真实性, 但其运动并不是真实的。
针对光流数据集真实性的问题, 本文提出了一个基于EM算法的方法, 从真实的视频数据生成包含真实运动的光流数据集。基于我们生成的数据集, 我们同时实现了强监督和无监督光流的 state-of-the-art 性能。
Method
图2. 本文方法的框架
我们的方法主要基于EM算法, 每次迭代中有两步: E-step和M-step。在 E-step 中, 我们使用光流估计网络和真实视频数据进行数据集生成。在 M-step 中, 我们使用生成的数据集训练光流网络. 经过训练的光流网络的性能能够得到提升, 因此, 我们将它用在下一次 E-step 中进行数据集生成。
经过不断迭代, 光流网络的效果能够得到提升, 同时生成的数据集质量也会更好。这个迭代算法的核心是数据生成的模块。为此, 本文设计了 Realistic Image Pair Rendering (RIPR) 方法来实现数据生成。
其基本思想是: 给定视频的两帧 (和) 以及一个估计得到的光流(), 生成一个新的视角(