这是2019年CVPR的一篇文章,作者来自香港大学和Deepwise AI Lab,该文章是关于细粒度图像分类的
解决的问题
用图像级标签训练的深度神经网络只倾向于聚焦于discriminative parts(有识别力的部分),而忽略了其他object parts。
方法: 我们以弱监督的方式建立互补局部模型(complementary parts model),以检索由卷积神经网络检测到的被domain object parts抑制的信息。
(1)采用基于MASK R-CNN和CRF的分割方法,通过弱监督对象检测和实例分割,提取rough object instances。
(2)估计并搜索每个对象实例的最佳part model
(3)构建双向长短期记忆(LSTM)网络,将这些互补部分的part信息融合并编码成图像分类的综合特征
Weakly Supervised Object Detection and Instance Segmentation
Coarse Object Mask Initialization. 给定一个图像 I I I和它的标签 c c c,分类网络的最后的卷积层的特征图被标记为 ϕ ( I , θ ) ∈ R K × h × w \phi(I,\theta)\in \R^{K\times h\times w} ϕ(I,θ)∈RK×h×w,其中 θ \theta θ代表网络 ϕ \phi ϕ的参数, K K K代表通道数, h , w h,w h,w分别代表特征图的高和宽。接下来,在 ϕ \phi ϕ上使用全局平均池化获得池化的特征 F k = ∑ x , y ϕ ( x , y ) F_k=\sum_{x,y}\phi(x,y) Fk=∑x,yϕ(x,y)。在最后添加分类层,对于类别c的分类激活图(CAM)如下所示:
其中 w k c w_k^c wkc是在全局平均池化层中,对应于第c个类别的第k个通道的权重。获得的类别激活图 M c M_c Mc通过双线性插值被上采样到原始图片的大小 R H × W \R^{H\times W} RH×W。因为一个图片能够有多个对象实例,在类激活图 M c M_c Mc上可以观察到多个局部最大响应。我们对这个图应用multi-region level set分割去分割候选对象实例。接下来,对于每个实例,我们将类激活规范化为[0,1]范围。假设我们在CAM中有 n n n个对象实例,我们通过归一化CAM建立了一个对象概率图 F ∈ R ( n + 1 ) × H × W F\in\R^{(n+1)\times H\times W} F∈R(n+1)×H×W。最开始的 n n n个对象概率图代表在图片中某个类别的概率,第 ( n + 1 ) (n+1) (n+1)个概率图代表背景的概率。背景概率图用下面公式计算
条件随机域(CRF)被用来提取高质量的对象分割。为了使用CRFs,一个标签图 L L L通过下面公式产生。
其中 σ c \sigma_c σc通常被设置为0.8,一种固定的阈值,用来确定某个像素属于某个对象或背景。标签图 L L L被输入到CRF去产生对象实例分割,它被作为一个用于Mask-RCNN训练的伪groundtruth标签。Fig 2 stage 1 展示了整个对象实例分割的过程。
Jointly Detect and Segment Object Instance. 给定一个图像 I I I的分割的对象实例的集合, S = [ S 1 , S 2 , . . . , S n ] S=[S_1,S_2,...,S_n] S=[S1,S2,...,Sn],和他们对应的在前一阶段产生的类别标签,我们得到了每个分割的最小的bounding box去建立一个proposals, P = [ P 1 , P 2 , . . . P n ] P=[P_1,P_2,...P_n] P=[P1,P2,...Pn]。proposal P,segments S 和他们对应的类别标签用于训练Mask R-CNN ,使其对proposal和mask进一步的调优。用这种方法,我们将目标检测和实例分割转换为全监督学习。
CRF-Based Segmentation. 假设有对应于类别c的 m m m个对象proposals, P ∗ = [ P 1 ∗ , P 2 ∗ , . . . , P m ∗ ] P^*=[P_1^*,P_2^*,...,P^*_m] P∗=[P1∗,P2∗,...,Pm∗]和它们对应的分割 S ∗ = [ S 1 ∗ , S 2 ∗ , . . . , S m ∗ ] S^*=[S_1^*,S_2^*,...,S^*_m] S∗=[S1∗,