Deep Learning Based Registration文章阅读(十)《Learning Optical Flow from a Few Matches》

本文介绍了CVPR2021年的一篇论文,研究了如何从少量匹配中学习光学流。当前深度学习光流方法常使用密集相关体积,但消耗大量内存和计算资源。论文提出了稀疏相关体积的概念,仅保留每个像素的前k个最大相关值,降低了计算复杂度。实验表明,这种方法在保持效果的同时,缓解了“小物体快速移动问题”。损失函数采用了多次迭代的加权平均L1范数。在Sintel和KITTI-2015数据集上进行了评估,结果显示与RAFT相比有优缺点。关键词包括光流估计、稀疏相关体积、深度学习、计算效率和小物体检测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Deep Learning Based Registration文章阅读(十)

本次文章是CVPR2021年《Learning Optical Flow from a Few Matches》。基于深度学习的光流法的研究一直是CV领域坚持不懈的追求。目前取得sota的RAFT(Recurrent all-pairs field transforms for optical flow)需要计算dense correlation volume,这会带来很大的memory和computation的负担,并且对于first image中的一个像素对应的second image中的dense correlation volume只有一小部分的correlation value很大,所以论文作者认为dense correlation volume是冗余的,并假设只需要top-k个,也就是correlation value最大的k个点的sparse correlation volume就足够,论文结果也是印证了这个假设。
在这里插入图片描述

Motivation

目前基于深度学习的光流估计方法中,correlation (cost) volume是最为流行的表示dense displacement的方法。但是dense correlation volume的计算需要较大的memory和computation,这不利于有效的训练和模型的部署。目前解决该问题的方法是采用类似与PWCNet中coarse-to-fine的策略,在size较小的high-level feature上去计算correlation volume,然后通过上采样加fine-tune最终估计出原图大小的flow field。但是coarse-to-fine的策略会带来一个问题,就是著名的“small objects moving fast problem”,自然的感觉是:如果一个物体很小,那么在high-level feature map中可能一个像素都占不到,那么上采样加卷积fine-tune的时候可能无法“无中生有”的估计出这个object的flow,但是这个object又运动很快,如果没估计出来对于最后的flow field的准确性影响优惠很大,在EPE等指标上可能就非常明显。所以基于这两个考虑,这篇文章在RAFT上做出改进,提出sparse correlation volume一方面可以减轻计算负担,同时因为sparse的特性,相比于RAFT可以用更高分辨率的feature map来计算correlation volume,所以能够取得和RAFT差不多的效果(一定程度上得益于“small objects moving fast problem”的缓解)。但是该方法的局限性也是存在的,就是在局部特征不明显的区域估计的效果不好,这是因为在局部特征不明显的点,它的top-k matches找的不好,但是找特征点的时候一般不是找全图,但是这里必须是对first image的全图进行操作,所以感觉这个问题无法避免。

Framework

先验知识:correlation volume

如下试,计算first image的每个像素与其在second image的对应点(这里对应点的概念,如果是像PWCNet那样还有warping操作,那就是坐标一样的点;如果像本文中没有warping操作,只是靠forward search来估计displacement,那对应点的坐标笔者的理解是first image该像素加上该像素displacement后的坐标)为中心的窗口为d的范围内所有点计算correlation value,是一个4D的tensor
在这里插入图片描述
在这里插入图片描述

Framework

在这里插入图片描述
这里的F1,F2是经过CNN backbone提取后的feature map,本文用的是6个resnet unit的CNN。sparse correlation volume是用KNN将first image的每个像素的前k个matches计算出来,只保留这k个matches,本文中k=8
在这里插入图片描述
在这里插入图片描述
下图是怎么更新sparse correlation volume中的不可学习的中间结果,其他都好理解,只有这个di+1=di−Δfid_{i + 1}=d_i - \Delta f_idi+1=diΔfi稍微难理解:F1中x对应F2中的点是xix_ixi,经过上次迭代后可以得到的flow residualΔfi\Delta f_iΔfi,那很好理解fi+1=fi+Δfif_{i+1}=f_i + \Delta f_ifi+1=fi+Δfi,所以第i+1次迭代的F1中x对应F2中的点是xi+1x_{i+1}xi+1,那原本xxx对应F2中的top-k个mathces的坐标是不会变的,因为整个framework中没有warping操作,所以xi+dix_i + d_ixi+di的位置是不会变的,他相对于xix_ixi的距离是did_idi,在第i+1次迭代中,因为现在的点是xi+1x_{i+1}xi+1,而xi+dix_i + d_ixi+di的位置是不会变的,所以现在的相对距离di+1=xi+di−xi+1=xi+di−(xi+Δfi)=di−Δfid_{i+1} = x_i + d_i - x_{i+1} = x_i + d_i - (x_i + \Delta f_i)=d_i - \Delta f_idi+1=xi+dixi+1=xi+di(xi+Δfi)=diΔfi
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下图解释的是Multi-scale Displacement Encoder,总的思想是把现在的不规则的sparse correlation volume的tensor转为RAFT中的规则的tensor,这里采用的是bilinear splatting策略将coarse-level的不在grid上的matches的correlation value转到grid上,简单理解bilinear splatting就是双线性插值的逆过程。然后使用一个固定大小半径r的window来构建N∗5∗(2r+1)2N*5*(2r+1)^2N5(2r+1)2的规则tensor,这里的N是h*w就是图像的面积,5是有5个level,相比于RAFT的N2N^2N2大小的tensor,计算量和memory都减少了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
GRU是一个类似于LSTM的单元,用来估计flow residual

Loss

在这里插入图片描述
从sparse correlation volume - GRU block updata这个流程迭代N次,本次是8次,loss是每一次迭代后的flow和GT的L1范数的一个加权平均,权值和时间有关,越往后的迭代权值越大

Dataset

Training set: FlyingChairs/Things/Sintel(clean显示颜色、纹理和场景照明的变化,但没有图像退化/Final模拟景深模糊、运动模糊、阳光眩光的变化)/KITTI-2015
Test set: Sintel/KITTI-2015

Evalution

EPE(end-point-error)for Sintel
F1-all for KITTI-2015

Results

下图是文章方法和目前各个做光流方法的比较,最主要比较的还是RAFT方法,可以看到相比于RAFT基本都有掉点
在这里插入图片描述
下图是唯一一个涨点的Sintel Clean (train)数据集的一些可视化结果,涨点的原因解释为因为sparse correlation volume占用内存更小,可以在更高resolution的feature map上计算,所以一定程度上缓解了“small objects moving fast problem”。
在这里插入图片描述
下图是ablation study
在这里插入图片描述
下图是评估memory
在这里插入图片描述

Discussion

下图是failture的例子,红头发区域因为局部特征不明显,所以KNN找到的top-k个matches不好,从而影响了该区域的flow estimation
在这里插入图片描述

疑问

KITTI-2015评价指标中F1-all——光流异常值占的比例,光流异常值的定义是什么?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值