这是我看的第一篇无监督视频目标分割的方法(UVOS),是一篇CVPR2019,之前一直看的是半监督VOS,因为思路卡壳,在无监督VOS方法中寻求一下灵感。相较于半监督已经开始在保持精度的情况重视推理速度,无监督还是看重精度,不过毕竟UVOS没有给要分割哪一个目标。
官方代码
作者提出一种co-attention,基于一个视频序列全局角度,来提升UVOS的精度。(确实领先目前的很多模型,davis官网的数据)。以往的一些方法,有通过显著性检测得到所要分割的目标,或者通过有限帧之间计算出的光流信息。COSNet则从整个视频序列中考虑哪个目标是需要分割的。在测试阶段,COSNet会综合所有前面的帧得到的信息,推理出当前帧中哪个目标是显著的同时还是经常出现的。Co-attention模块挖掘了视频帧之间丰富的上下文信息。基于co-attention,作者提出了COSNet(co attention Siamese)来从一个全局视角建模UVOS 。现在可能读者还是不能理解这个全局视角是什么,在method部分会解释。
这个section,将分为两个部分,一个是training stage的网络是如何工作的。另一部分是模型在test stage的行为。
两个帧 F a , F b F_a, F_b Fa,Fb经过backbone得到两个特征 V a , V b V_a, V_b Va,Vb,这两个特征经过Co-attention模块,得到两个新的特征 X a , X b X_a, X_b Xa,Xb,新的特征带有两帧的联系性,这两个特征用于计算loss。从结构框图中,我们可以看出,关键的地方就是在于Co-attention模块。
作者提出三种co-attention 变体(variants) 前文提到的 V a , V b V_a, V_b Va,Vb默认被reshap为 R C × H W R^{C \times HW} RC×HW
记仿射矩阵S,
S = V b T W V a ∈ R W H × W H S = V_b^T W V_a \in R^{WH \times WH} S=VbTWVa∈RWH×WH
W ∈ R C × C W \in R^{C \times C} W∈RC×C是需要学习的权重矩阵,S的每一个元素代表了两个特征中的两列的相似程度(向量乘积是一个标量)。把W对角化:
W = P − 1 D P W = P^{-1}D P W=P−1DP
P是可逆矩阵,S可以写成
S = V b T P − 1 D P V a S = V_b^TP^{-1}DPV_a S=VbTP−1DPVa
如果W是一个对称矩阵,那么W一定可以正定对角化,
S = V b T P T D P V a S = V_b^TP^TDPV_a S=VbTPTDPVa
S = ( P V b ) T D P V a S = (PV_b)^TDPV_a S=(PVb)TDPVa$
P是正定矩阵,先将两个特征投影到正交空间中,然后在计算相似距离,这样子可以消除通道之间的联系,使得特征不是冗余的。
如果P是一个单位矩阵I,那么D可以被分解为两个对角矩阵。
S = V b T I − 1 D I V a = ( D a V b ) T D b V a S = V_b^T I^{-1}DIV_a = (D_a V_b)^T D_b V_a S=VbTI−1DIVa=(DaVb)TDbVa
其中 D = D a T D b D = D_a^T D_b D=DaTDb,D_a,D_b$都是对角矩阵。那么一个对角矩阵和一个矩阵相乘,得到的结果其实是对角矩阵对角线的值乘以对应的列。可以视作增强了某一个通道。和SENet有异曲同工之效果。也是减小了冗余度。
介绍完获得S的三种方式,接下来就介绍作者的co-attention.
得到S,对应第二行中间的部分,之后就分成两条路。左边得到 S c S^c Sc,往右边走得到 S r S^r Sr。这两个S分别反映了两个特征图Va,Vb之间的联系。想想它们的计算方式。接下来计算 Z a , Z b Z_a,Z_b Za,Zb
Z a = V b S c Z_a = V_b S^c Za=VbSc
Z b = V a S r Z_b = V_aS^r Zb=VaSr
作者引入Gated(门限),给学到的Z用同样大小的map reweights,算是空间注意力吧。
之后concat 从backbone得到的特征X
得到的两个重构的X,这个X是带有帧与帧之间的联系这个信息的, 送到各自的seg Head中。
整个训练方式如上图:
首先选出N张参考帧集合 F b = { F b 1 . . . , F b n } F_b = \left\{F_{b1}...,F_{bn}\right\} Fb={Fb1...,Fbn}
和当前帧 F a F_a Fa, F a F_a Fa和 F b F_b Fb中的所有参考帧都做成pair,得到一系列的 Z a Z_a Za,然后按照
得到 携 带 所 有 参 考 帧 和 当 前 帧 联 系 的 特 征 Z a 携带所有参考帧和当前帧联系的特征Z_a 携带所有参考帧和当前帧联系的特征Za,然后concat Va,送到分割网络中。
后处理使用了CRF