RANet:Ranking attention Network for Fast Video Object Segmentation论文解读

这篇ICCV2019的论文可算是厉害了。单目标视频目标分割(VOS)中的SOTA效果,并且速度还惊人的快。

官方源码:github
论文地址:arxiv

Idea

近年来,Match based和Propagation based 方法做快速VOS的效果显著。这篇工作就将这两个方法的优点融合进来。为了让读者能快速理解VOS的发展趋势,我简单说下什么是Match based和Propagation based 。

  • Match based:代表有FEELVOS和siammask,通过学习(当前帧和参考帧)两帧之间的像素之间的相似性,用相似图结合卷积特征来帮助目标分割
  • Propagation based:代表有MaskTrack,通过提供前一帧的mask信息,把mask 直接concat到输入图像上,然后送到卷积网络输出目标的分割结果。

作者认为,Propagation based方法会有误差的漂移,而Match based方法会有错误的matching,使得网络学习的是次优模型。
在这里插入图片描述
如a图,圆圈里面有一个叉的符号,代表学习相似性,目前往往是cross correlation操作,(RGMP用的是concat)。b图则就是把mask concat一下。c图就是RANet提出的抽象结构了。输入第t帧作为当前帧,参考帧(或者称作模板)和当前帧学的相似性,得到相似图。Ranking模块为每一个map学的一个score,根据score排序,选出score大的一些map,用这些map送到Deconv当中,得到目标的分割图。

main contributions

  • 作者把matching和propagation都整合进一个框架中,形成了能实时(33fps)的半监督VOS方法。
  • 提出一种Ranking attention Module 来给特征图打分,然后挑选出重要的特征图,用于更加精细的VOS
  • 在DAVIS16,17上测试,得到了state of the art的效果。并且在DAVIS2016,目前是最高的J&F。同时具有30fps的速度

Method

在这里插入图片描述

overview

首先是encoder,通过卷积网络如resnet得到图像的特征。然后送到correlation模块中学习和第一帧的特征的相似性。所以也是一种孪生结构。注意第一帧的特征是经过reshape的。这个也会在后面的小节中细讲。
学习到了相似图有 H 0 ∗ W 0 H_0 *W_0 H0W0个。 H 0 , W 0 H_0,W_0 H0,W0是第一帧得到的卷积特征的分辨率。也就说是,参考帧特征的每一个单元(C维向量)都会和当前帧特征去做相关性学习,参考帧特征图有 H 0 , W 0 H_0,W_0 H0,W0个单元,所以得到的相似图特征的shape是 H ∗ W ∗ ( H 0 ∗ W 0 ) H *W *(H_0*W_0) HW(H0W0)。接下来相似图会分成两个流到两个RAM模块中,一路RAM的目标是挑选出对前景分割有利的相似图,另一路RAM的目标是挑选出对背景分割有利的相似图。
通过挑出出重要的相似图之后,就把两路特征融合一下,融合的方式很简单就不再多说。注意融合的时候,concat了第t-1帧的预测结果。最后把最终的特征送到deconv中,得到最后的分割图。

Correlation

参考帧特征记作 I 1 ∈ R C ∗ H 0 ∗ W 0 I^1 \in R^{C*H_0*W_0} I1RCH0W0,当前帧特征记作 I t ∈ R C ∗ H ∗ W I^t \in R^{C*H*W} ItRCHW
先把 I 1 I_1 I1reshape为 R H 0 ∗ W 0 ∗ ( C ∗ 1 ∗ 1 ) R^{H_0*W_0*(C*1*1)} RH0W0(C11),记 K = K j ∣ j = 1... H 0 ∗ W 0 K={K_j | j=1...H_0*W_0} K=Kjj=1...H0W0,K是 I 1 I^1 I1的单元特征的集合,每一个元素都是C维特征。K中的每一个元素经过L2 normalize之后,去和 I t I^t It做correlation操作。相当于把每一个元素当成卷积核,1*1的卷积核。得到的相似图集合记作S。
S = { S j ∣ S j = K j ∗ I t } S = \left\{S_j | Sj=K_j * I^t \right\} S={SjSj=KjIt}
S中的每一个元素代表一张相似图,是从模板特征(参考特征)中的一个单元通过correlation得到的。其实建立的是:模板特征的单元向量和当前帧中的特征,哪个位置最相似
在这里插入图片描述
如上图,将得到的相似图可视化之后,可以发现某些区域是很亮的,说明这些区域和对应的单元向量(来自参考帧)很相似。

RAM

在得到了相似图之后,相似图被送到两路RAM中。这里仅仅以第一路为例。从总览图中可以清晰的看到,第一路RAM的输入有两个,分别是相似图集合S和第一帧的前景mask。

ram模块分三步走:

  • 之前说了S的shape是 ( H 0 ∗ W 0 ) ∗ H ∗ W (H_0*W_0)*H*W (H0W0)HW,第一个维度是通道维度。现在reshape为 ( H ∗ W ) ∗ H 0 ∗ W 0 (H*W)*H_0*W_0 (HW)H0W0。就是交换一下空间维度和通道维度。然后和mask相乘。mask的分辨率本来和原图一样大,把mask resize到 H 0 ∗ W 0 H_0*W_0 H0W0,作者认为,这一步目的是将不是前景的区域的特征抑制掉。(其实我觉得一步很没道理啊,既不是空间注意力,又不是点积相似性,而且空间维度和通道维度都交换了,怎么还能乘上mask去抑制无关的背景特征呢?)。得到的特征记作 S 1 S^1 S1
  • 然后 S 1 S^1 S1经过一个两层的CNN,同时还有channel-wise 的GMP,得到两个 H 0 ∗ W 0 H_0*W_0 H0W0的map。这两个map相加再reshape为向量的形式,就代表了一组ranking score了
  • 第三步,把ranking score和相似图S送入Rank模块(白色矩形框框)。这个Rank模块的工作机制很简单。

在这里插入图片描述
就是根据score挑选出最大的256个map,组成新的feature。注意如果score中大于0的数的没有256个,则剩下的用0 padding组合成256通道的特征图。

propagation and Deconv

这个部分从示意图中看出,就是concat上一帧预测的mask,(当然这个mask是经过resize的),然后送到分割头网络中得到最终的分割结果。deconv网络具体的结构,作者提交了一份补充说明材料,不在这篇论文上。

details

encoder

采用resnet101,将bn替换为in(instance norm),把后三个stage的特征用卷积层降维,并且通过L2的normalize,这是为了多尺度的融合以及特征裁剪(pruning)

decoder

采用一般的deconv。把encoder的最后三个stage的特征送进来。

training

输入图像resize到480*864。数据增强采用的是随机旋转(-30-+30),随机scaling(0.75-1.25),随机裁剪,还有一个叫做Thin plate Splines(TPS)。(不知道这是啥,没听说过)

experiments

具体实验数据就不说了,总之很强就对了。哈哈
作者的源码还没开放,说是会不久之后到。我估计就是在ICCV2019大会之后吧

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值