【光流估计】自监督模型与方法-DDFlow

本博文目的在于讨论无监督光流估计中的自监督方法

本博文是光流估计的第三篇文章,因此一些重复问题不再赘述。下面给出前两篇文章的链接:

无监督学习的LOSS

无监督学习中的遮挡区域

目录

自监督的基本思想

DDFlow的核心思想

DDFlow的整体框架 

整体框架

损失函数

小结

参考文献


自监督的基本思想

        自监督方法在光流估计中有着广泛应用。这里我希望一些刚接触计算机视觉的小白能理解,我们不是为了无监督/自监督而去做无监督/自监督。就以光流估计为例,为什么大量学者研究无监督方法,因为光流的真实标签很难获取,而合成数据集毕竟是合成的。如果能实现高精度的无监督模型,将对光流的实际应用产生重要作用。如果有读者搞过深度估计,可以发现深度估计中半监督更多,因为密集深度标签很难获得,但稀疏深度标签很容易获得。

        上面简单说了下自监督的意义(说了些废话)。回到正题,谈一谈自监督的基本思想:光流估计的自监督是将学习到的模型应用于一对图像上,首先对图像A预测生成光流标签,然后对图像进行裁减等修改,再训练模型恢复原来的估计结果(光流标签)。一般会称原始图像为“教师”流,裁减图像为“学生”流。

        不是所有的自监督都是上述思想,但这一思想属于最普遍的。今天介绍自监督方法中的一种:Ddflow: Learning optical flow with unlabeled data distillation》[1]。选择这篇文章是因为我认为它的方法很经典,以至于之后的UFlow和UPFlow的方法都与之类似。

DDFlow的核心思想

        这里我先介绍DDFlow的核心内容,整体框架的内容后面再说。如下图是DDFlow最核心的部分。之前也提到过,对无监督光流学习最难的部分就是遮挡区域。该论文选择了自己仿制出遮挡区域去指导训练。

        例如下图 I_1 存在像素 (x,y) 并且在 I_2 中存在,那它就是非遮挡区域,如果将这对图片统一裁减至比之前小的图像(定义为\widetilde{I_1} 和 \widetilde{I_2}),那该像素可能在 \widetilde{I_2}中就没有了,其实这对于裁减图像来说不就是遮挡区域吗?但因为该像素在原始图像中是非遮挡的,因此可以通过原始图像预测出该像素的光流,而这一光流可以用来指导裁减图像遮挡区域的学习。即,“教师”指导“学生”。 

DDFlow的整体框架 

        想简单说一下我为什么先把核心思想拿出来讲,然后再说它的整体框架。我在学习时喜欢先掌握其核心思想,然后再看整体上的一些细节,其实DDFlow最具有创新性的部分就是上一个部分提到的,如果你已经在光流估计中接触了一段时间,那看到这里就可以走了(或是自行阅读原文),剩下的都是光流估计中一些共通或者是一些相对应的细节了。(我还是鼓励大家去看原文或是源代码

整体框架

        下面给出论文的整体框架:

        该网络其实细看的话和主流的无监督光流估计没什么大区别,一些内容我在前面的文章也提到了,因此这一部分我会以一条一条的形式列出一些我觉得值得注意的细节问题。 

  • 教师网络和学生网络的模型是一样的,只是训练时的输入数据和指导时的损失函数不同。
  • 遮挡区域的判断使用前后流一致性判断。
  • 在教师网络中,得到遮挡mask后需要以相同的裁剪方式对mask进行裁减,主要用于制作Valid Mask。该Mask目的在于后续专门针对相应像素进行训练,该Mask的定义如下:

         \widetilde{O_f} 表示学生网络中的遮挡mask,O_{f}^{p} 表示原始图像的裁减mask。得到的Mask中值为1时代             表在裁减图像中属于遮挡区域,但在原始图像中属于非遮挡区域。

  • 教师网络的训练只使用光度损失,学生网络的训练使用光度损失+针对伪遮挡像素的光流损失(这个是我自己起的名,原文统称为occluded pixel,为了具有区分我是这么叫的)。

损失函数

        我认为这篇文章对损失函数的理解非常清晰(其实有一些论文会把各种各样的损失函数全堆上去)。对于非遮挡区域,使用光度损失。对于遮挡区域,使用自监督的光流损失。平滑损失作为可选项。

        因为前面由专门针对损失函数的文章,这里就直接给出原文的公式,不再过多说明。

 该式为非常常见的光度损失,对于教师网络和学生网络共同适用。

 该式为针对伪遮挡像素的光流损失。其中w_{f}^{p} 和 \widetilde{w_f} 分别是教师网络预测的前向流(裁剪版)和学生网络预测的前向流。

小结

        DDFlow的方法其实是一种数据驱动的,在之后其实也有一些网络和这个思想是一样的。在我看来,他们的方法简单而又有效,尤其是在看论文时,一下子就能明白他们的想法是什么。当然这一方法我认为还是存在一些小缺陷的,这种方法可以容易的解决因运动引起的边缘遮挡区域,但对于内部的一些遮挡区域预测仍有不足。另外自监督的方法往往依赖于初始伪标签的精度。

        其实这篇文章拖了好久,本来是想用一篇文章总结自监督方法的,结果发现整理起来非常琐碎且麻烦,就决定针对一篇一篇论文单独写文章了。这也就要求对这些论文精读(我不希望直接把论文原文直接摘抄过来,如果能先自己理解掌握再写给其他人会更有总结性),而一些论文在我的研究中本身是不需要精读的,所以写起来也就比较耗时。后续的文章更新可能也会比较慢(但愿这不是这个系列的最后一篇文章,笑)。


参考文献

[1] Liu P, King I, Lyu M R, et al. Ddflow: Learning optical flow with unlabeled data distillation[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2019, 33(01): 8770-8777.


光流估计的相关研究我目前也仍有不足,如有问题或错误欢迎指出讨论!

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值