SparseInst:Sparse Instance Activation for Real-Time Instance Segmentation论文笔记(1)

724 阅读5分钟

总述: SparseNet提出了一种新的实时实例分割算法。利用了Instance activation maps,该思路受到了CAM的启发,即类激活图,该方法在广泛的应用在弱监督的目标定位领域。在训练阶段,匹配label和IAM采用了二分匹配(收到了DETR的启发)。具体而言,每一个 目标将被指定给一个预测对象即将它的激活图送入匈牙利算法。这就是的在训练阶段,二分匹配促进了实例激活图图重点关注独立的目标对象并且能有效抑制冗余的预测,并进而避免了在推理阶段NMS的介入。

image.png

1.Instance Activation Maps

从直觉上将,实例激活图是具有实例感知和位置感知的。所以,我们直接把实例激活特征作为实例特征。给定输入图片XRDX(HW)X∈R^{DX(HW)},实例激活图可以被表示为:A=FiamRNX(HXW)A=F_{iam}{R^{NX(HXW)}},其中A就是N个实例类激活图的系数集合,Fiam.F_{iam}(.)就是一个简单的带有sigmoid非线性激活函数的网络。然后我们可以获得一个稀疏的实例特征的集合,通过用实例激活图把输入特征X中提取处独特的特征信息:z=A.XTRNXDz=\overline{A}.X^T∈R^{NXD},其中z=(zi)N(z_i)^{N}是一张图片中潜在的N个目标的特征的表征,A\overline{A}是将每一实例特征图正则化到1.这个 系数的实例感知的特征(zi)N({z_i})^N,其可以直接被后续的识别和分割层级利用。

2.Learning Instance Activations

实例激活图并不会为了学到重点的目标而利用任何明确的监督(比如实例mask等)。

3.Sparseinst

如Figure3所示,sparseinst是一个简答,紧凑的统一的框架,它时候backbone,实例语义编码器和一个基于IAM的解码器组成。backbone从原始图片中提取了多个尺度的特征,实例语义编码器紧跟在backbone后,用来增强语义信息并融合多个尺度的特征。为了推理的快速进行,编码器输入一个单层级的特征其分辨率是原始输入图片的1/81/8,该融合特征服会被送入后续的IAM解码器中来生成实例激活图来增强突出前景目标,以便后续的分类和分割。

3.1 PPM

PPM是Pyramid Scene Parsing Network提出的一种用来满足多尺度特征提取的一个模块。

image.png 3.2 基于IAM的实例分割解码器

由Figure3可以看出,基于IAM的分割解码器包含两个分支:分割分支和实例分支。这两个分支是由堆叠的3X3卷积(总共有256个通道或者可以说成每一个层级有256个3X3的卷积核)组成的。实例分支旨在生成实例激活图和N个实例特征用来识别和得到有实例感知能力的核。mask分支则单纯的多,仅仅用来解码处具有实例感知能力的mask feature.

Location-Sensitive Features: 从经验上来讲,目标可以被定位在不同的位置上并且空间位置的信息可以作为区分不同实例的一种依据。因而我们构建了两个通道的特征(x,y)的坐标信息来表征空间信息。显然这和coordconv是相似的。然后我们把编码器的输出(即从backbone输出的完成多尺度特征融合后的单一特征)和构建的两个空间特征图concatenate在一起,从而增强特征图的实例感知表征能力。

Instance Activation Maps: 利用一个简单的3X3的卷积和sigmoid我们就构成了一个标准的FiamF_{iam},它会突出每一个实例用一个单一的激活图。因此,通过激活图可以得到实例特征{ziz_i},这其中每一个潜在目标被编码为一个256维的vector。然后三个线性层被用来做分类,目标分数和mask kernel{wiw_i}^n。进一步的为了获得具有细粒度的实例特征,sparseinst提出了一种grop instance activation maps用来增强每一个目标,具体而言就是对每个目标产生多个(或称一组)实例特征图 。实际中,采用了4组3X3的卷积作为FiamF_{iam},并且把这几个卷积的输出concatenate为一个组。

mask head: 结合实例感知的mask kernel{wiw_i}^N和分割分支可以直接生成每一个实例:mi=wi.Mm_i = w_i .M,其中mim_i是第i个预测mask和它对应的kernelwiR1XDw_i∈R^{1XD},MRDXHXWM∈R^{DXHXW}是掩膜的特征图。最后把分割mask上采样到原始分辨率。

3.3 Label Assignment and Bipartite Matching Loss

sparseinst的匹配策略采用了二分匹配的策略。首先提出了一个对匹配评估指标:C(i,k)用来表示第i个预测和第k个groundtruth对象之间可匹配的能力。

C(i,k)=pi,ck1α.DICE(mi,tk)αC(i,k) = p^{1-α}_{i,c_k} . DICE(m_i,t_k)^α (1)

3.4 Inference

sparseinst的推理非常简单直接,输入一张图片经过整个网络我们可以直接获得N个实例分类得分结果是 {pi~\tilde{p_i}}^N和对应的实例分割掩膜{mim_i}^N,然后我们确定每个实例的类别和置信度并且通过阈值控制来得到二值掩膜。与常规的检测和实例分割算法相比,Sparseinst既不需要NMS而不需要对输出结果进行排序,使得整个推理过程异常的高效。