当前位置: 代码迷 >> 综合 >> RANet:Ranking attention Network for Fast Video Object Segmentation论文解读
  详细解决方案

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

热度:62   发布时间:2023-10-20 18:56:31.0

这篇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,使得网络学习的是次优模型。
RANet:Ranking attention Network for Fast Video Object Segmentation论文解读
如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

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

overview

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

Correlation

参考帧特征记作I1∈RC?H0?W0I^1 \in R^{C*H_0*W_0}I1RC?H0??W0?,当前帧特征记作 It∈RC?H?WI^t \in R^{C*H*W}ItRC?H?W
先把I1I_1I1?reshape为RH0?W0?(C?1?1)R^{H_0*W_0*(C*1*1)}RH0??W0??(C?1?1),记K=Kj∣j=1...H0?W0K={K_j | j=1...H_0*W_0}K=Kj?j=1...H0??W0?,K是I1I^1I1的单元特征的集合,每一个元素都是C维特征。K中的每一个元素经过L2 normalize之后,去和ItI^tIt做correlation操作。相当于把每一个元素当成卷积核,1*1的卷积核。得到的相似图集合记作S。
S={Sj∣Sj=Kj?It}S = \left\{S_j | Sj=K_j * I^t \right\}S={ Sj?Sj=Kj??It}
S中的每一个元素代表一张相似图,是从模板特征(参考特征)中的一个单元通过correlation得到的。其实建立的是:模板特征的单元向量和当前帧中的特征,哪个位置最相似
RANet:Ranking attention Network for Fast Video Object Segmentation论文解读
如上图,将得到的相似图可视化之后,可以发现某些区域是很亮的,说明这些区域和对应的单元向量(来自参考帧)很相似。

RAM

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

ram模块分三步走:

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

RANet:Ranking attention Network for Fast Video Object Segmentation论文解读
就是根据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大会之后吧

  相关解决方案