Pengpeng Liu, Michael Lyu, Irwin King
The Chinese University of Hong Kong, § Tencent AI Lab
一篇来自2019年CVPR的自监督光流估计---SelFlow
作者提出一种从无标注数据中学习光流的自监督训练框架。
1)利用Noc-Model 从未遮盖区域,学习可靠的光流信息;
2)利用Noc-Model学习到的可靠的光流信息,去指导OCC-Model 学习被遮挡像素的光流(这些被遮盖的像素,俗称Occlusion是利用随机遮盖超像素的方法产生的);
3)设计一个可以利用多帧图像时序连续性的网络结构更好地学习光流。
首先介绍几个标注信息:
文章利用连续的 I t-1、l t、l t+1 三帧图像作为网络的输入;
wi->j 表示i、j 之间的光流信息;
backward warp 则表示把t+1 warping 成 t 利用 Spatial Transformer Network(其实就是反向warp)[46]
Oi->j 表示 i、j之间的遮盖信息,标为1的表示在 i 中出现但没有在 j 中出现的;
看正文的Fig 1 :
First row: (a) t时刻图像,(b)t+1时刻图像,(c) t、t+1 时刻的真实光流信息,(d)把t+1 warped 成 t 。
Second row: 为主题网络结构:1)Noc-Model 这一行表示,从3个连续帧中学习p 的光流信息,类似学习全局的光流信息,得到Flow;
2)OCC-Model 这一行表示,作者首先 生成 Superpixel , 随机选取几个超像素区域,并进行遮盖,利用Noc-Model 学习到的一种全局的光流信息,以及后续的Mask(i) 操作共同指导 OCC-Moedel 生成光流,且对遮盖区域进行一个预测。
这种方式类似于DDFlow 里的teacher-studenr structure 与SelFlow 为同一作者:
1)对Teacher Model , 学习I1、I2 间的光流信息,图中的点p(x1,y1);
2)对Student Model , 对I1、I2 进行裁剪,那么对I1 中的p点,并不会在裁剪后的I2中出现,那么就发生的遮盖, 利用Teacher Model 指导Student Model 学习并预测全像素的光流信息(当然,也包括被遮盖区域)。
接下来,到文章主线
CNNs for Multi-Frame flow estimate:
上图是NOC-Model 、OCC-Model 的具体作用,不再细说。
就到了NOC-Model 、OCC-Model网络结构:
是由PWC-Net 改造的:
首先 ,l+1 level 的光流信息W ,经过上采样分辨率和大小校正,保持和l level 一致;
要知道,整个网络就是对 t-1 t t+1 的迭代循坏。所以F的信息只是尺度不同。
利用 w t->t-1 和 F t-1 进行warp ,让F t-1 变成 warped 的 F t-1 , 然后再利用 F t 进行 cost volume 计算。同理得到 F t+1 的 cost volume 。
把上面的得到的一起放入Estimator Network 就可以得到 l level 光流信息。至于为什么有 -w 是为了计算 occlusion estimation.
由于这个网络是改的PWC-Net .所以把一部分pwc-net 也放上来:
下图是PWC-Net 的网络结构
将frame 2 warping 到 frame1 上去,为后续和frame1 计算cost volume.
代价体积的计算。
接下来,作者利用更好的获得遮挡信息,利用五帧来估计三帧的遮挡信息,如下图:
通过t-2、t-1、t、t+1、t+2五个时刻,或者t-1、t、t+1 三个时刻的遮挡信息,且能保证一定时序性。
下面为作者结果,仅供参考,毕竟19年的文章。
Loss Function:
由于看这片文章是2个月之前,有点忘记Loss了,大概就是L1
作者说where ψ(x) is a robust loss function,当时去DDFlow文章中找了也是如此解释,估计是绝对值的作用吧。