旷视研究院 · 9月26日 · 北京市

ECCV 2022 Oral | 基于EM算法从视频中生成真实光流数据集

image.png

论文地址:https://arxiv.org/abs/2207.11075

开源代码:https://github.com/megvii-research/RealFlow

Introduction

近年来, 基于深度学习的光流算法实现了很高的性能和运算效率。实现这些深度学习方法的一个关键因素是其训练数据集。我们认为, 光流的数据集应具有以下四个关键特性: 

1) 有标签数据对的数量多; 

2) 光流标签的准确性高; 

3) 图像的真实性高;

4) 运动的真实性高。

然而, 我们发现现有的光流数据集很难同时满足这四个特性。

image.png

图1. 本文的方法与现有光流数据集生成方法进行对比

如上图所示, 现有的数据集生成方法, 如: FlyingThings[1], AutoFlow[2], 主要使用生成的运动对前景进行裁剪粘贴以获取训练数据对。它们都能够生成大量的数据对同时能够保证光流标签的准确性。但是它们无法满足图像和运动的真实性: 图像不是真实存在的, 运动也不是真实场景中的运动。

近期, Depthstillation[3] 提出从单张图片生成光流数据集: 随机生成一个变换关系, 并根据深度和分割将图像变换成一个新的视角, 以此生成数据对。这样的方法能够一定程度上满足图像的真实性, 但其运动并不是真实的。

针对光流数据集真实性的问题, 本文提出了一个基于EM算法的方法, 从真实的视频数据生成包含真实运动的光流数据集。基于我们生成的数据集, 我们同时实现了强监督和无监督光流的 state-of-the-art 性能。

Method

image.png

图2. 本文方法的框架

我们的方法主要基于EM算法, 每次迭代中有两步:E-step和M-step。在 E-step 中, 我们使用光流估计网络和真实视频数据进行数据集生成。在 M-step 中, 我们使用生成的数据集训练光流网络. 经过训练的光流网络的性能能够得到提升, 因此, 我们将它用在下一次 E-step 中进行数据集生成。

经过不断迭代, 光流网络的效果能够得到提升, 同时生成的数据集质量也会更好。这个迭代算法的核心是数据生成的模块。为此, 本文设计了 Realistic Image Pair Rendering (RIPR) 方法来实现数据生成。 

image.png
图3. 一个简单的 forward warping 样例

上图是一个简单的 forward warping 的例子,通过 forward warping 能够保证生成数据对中光流标签的准确性。但是这个生成过程中存在两个问题: 前景和背景重叠处的遮挡问题(图3中绿色区域), 前景移动后留下的空洞问题(图3中灰色区域)。

  • 针对遮挡问题, 我们使用 splatting[4] 的方法来解决: 根据深度估计的结果在发生遮挡的时候计算融合权重——深度较近的前景像素权重较大而较远的背景像素则权重较小。
  • 针对空洞问题, 我们采用的是双向填补的方法——使用的内容来对空洞区域进行填补。

下图为本文 RIPR 方法的细节实现过程。
image.png

下图为使用 splatting 和本文的双向空洞填充方法的结果。可以看到, 对于遮挡区域, 如果直接简单相加, 效果会很差; 使用 softmax 或者 max 融合会得到较好的结果。对于空洞区域,使用本文的填充方法能够很好地将大片的空洞区域填充完整。

image.png

图5. splatting和空洞填充的结果

Experiments

image.png

图6. 本文的方法生成的数据对

和现有的数据集生成方法进行对比
image.png
为了和 Depthstillation[3] (表中 dDAVIS 和 dKITTI 的方法)进行公平比较, 我们使用了同样的源视频数据 DAVIS 和 KITTI-test 生成数据集并训练相同的网络 RAFT, 在 KITTI 2012 和 2015 的验证集上进行验证,实验结果如上所示,本文的方法比Depthstillation的效果更好。

和无监督方法进行对比
image.png

在使用和无监督方法相同的源视频数据进行数据集生成的情况下, 将本文的方法和无监督方法进行对比。在 KITTI 2015 的验证集上, 本文的方法 EPE为2.16 比 SMURF 的 EPE=2.00 稍差。这是因为 SMURF 使用了多帧进行训练, 而我们只使用了两帧。SMURF 使用两帧训练的情况下 EPE 为 2.45, 这也能够证明本文方法的有效性。

和强监督方法进行对比

image.png

我们首先使用我们生成的 RF-Ktrain 数据集进行预训练, 然后在 KITTI 2015 训练集上进行 finetune, 再提交线上 benchmark 进行测试对比。结果发现, 我们的方法达到了比以前的方法更高的性能。

大数据集的对比实验

image.png

为了训练出具有较好泛化性的网络, 我们使用 ALOV 和 BDD100k 数据集中的视频数据生成了大量的光流训练数据, 即 RF-AB。和现有的大数据集相对比, 我们在真实数据集 KITTI 上的验证效果较好, 在渲染数据集 Sintel能得到比较均衡的结果。其中 C+T 表示 flying chairs 加 flying things 数据集,是常用的渲染数据集, 通常被用作光流网络的预训练。

训练不同的光流网络

image.png

我们使用所生成的数据集训练了不同的光流网络,包括 IRR-PWC, GMA 和 RAFT。为了证明本文方法的有效性, 我们也使用了 Sintel 的视频生成了数据集。从实验结果可以看出, 本文生成的数据集能够提升不同网络的性能。

消融实验

image.png

我们对生成数据集过程中的一些参数进行了消融: Render 表示是否使用 RIPR 生成新的图像; Depth 表示 splatting 过程中的权重 map 选择; Splatting 表示是否遮挡融合的方式; Hole Filling 表示空洞填充的方式; Range of a表示扰动系数的范围选择。

迭代次数

image.png

实验发现, 经过多次迭代, 效果能够得到逐渐提升。其中, Iter.1*4表示使用Iter.1的数据集训练4倍长的时间。

Conclusion

我们提出了一种基于 EM 算法的迭代框架, 其能够有效地从真实视频中生成大量的光流训练数据。针对数据生成过程中的遮挡和空洞问题, 我们设计了 RIPR 模块进行处理。基于生成的数据集, 我们达到了无监督和强监督的 state-of-the-art 性能。

来源:旷视研究院
作者:R

专栏文章推荐

欢迎关注旷视研究院极术社区专栏,定期更新最新旷视研究院成果。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
加入旷视:career@megvii.com
推荐阅读
关注数
7652
内容数
154
专注旷视研究院学术论文解读推送,涵盖计算机视觉,文字识别等
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息