论文地址:https://arxiv.org/pdf/2010.14851.pdf
github地址:https://github.com/jytime/DICL-Flow (目前还没把训练好的模型放出来,也还没有训练代码,仅有模型搭建代码)
Motivation:
DICL:
先看一下DICL与其他方式的对比,有较多文章使用传统的点乘或者Cosine距离来代替Learning Matching Costs,这个效果在上图表现比较明显,不容易将峰值提炼出来,整体表现都还比较平; MLP指的是使用简单的3层卷积去Learning Matching Costs,可以看到它的确能够相对比与传统方式的提升,然而还是不够突出; 而在DICL中峰值的突出性较大,这使得能够获得的光流精度较高。具体DICL的操作如下:
对每一个u将src的feature(FxHxW)和ref偏移u的feature(FxHxW) concate起来构造一个Fu(2FxHxW):
然后使用一个2D convolution-based net(G())来对Fu进行操作(不同的u的2D convolution-based net的权重共享),接着输出一个(1xHxW)可以理解成是在u上的cost map,然后将所有的u构造在一起得到(UxVxHxW)的cost volume, 具体公式如下:
DAP:
根据Motivation的介绍,DAP的一个很大的作用是在于将多峰的概率分布能够转换成单峰的概率分布; 如上图所示,DAP的效果还是很明显的。此层的操作也是比较简单的,利用一个1x1的conv对displacement的维度进行加权平均,公式如下:
个人认为这种加权平均很难将所有的多峰情况处理,仅能处理一小部分
Experiments:
本篇博客近去讨论DICL和DAP层的作用:
DICL:Reduced DICL表示DICL的网络使用1x1 conv代替,指标越低越好
将DICL层使用在PWCNet和DICL上的效果如下:
DAP:Ours-w/o DAP就是表示去掉DAP层的结果
整体效果图对比: