这是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. 给定一个图像III和它的标签ccc,分类网络的最后的卷积层的特征图被标记为ϕ(I,θ)∈RK×h×w\phi(I,\theta)\in \R^{K\times h\times w}ϕ(I,θ)∈RK×h×w,其中θ\thetaθ代表网络ϕ\phiϕ的参数,KKK代表通道数,h,wh,wh,w分别代表特征图的高和宽。接下来,在ϕ\phiϕ上使用全局平均池化获得池化的特征Fk=∑x,yϕ(x,y)F_k=\sum_{x,y}\phi(x,y)Fk=∑x,yϕ(x,y)。在最后添加分类层,对于类别c的分类激活图(CAM)如下所示:
其中wkcw_k^cwkc是在全局平均池化层中,对应于第c个类别的第k个通道的权重。获得的类别激活图McM_cMc通过双线性插值被上采样到原始图片的大小RH×W\R^{H\times W}RH×W。因为一个图片能够有多个对象实例,在类激活图McM_cMc上可以观察到多个局部最大响应。我们对这个图应用multi-region level set分割去分割候选对象实例。接下来,对于每个实例,我们将类激活规范化为[0,1]范围。假设我们在CAM中有nnn个对象实例,我们通过归一化CAM建立了一个对象概率图F∈R(n+1)×H×WF\in\R^{(n+1)\times H\times W}F∈R(n+1)×H×W。最开始的nnn个对象概率图代表在图片中某个类别的概率,第(n+1)(n+1)(n+1)个概率图代表背景的概率。背景概率图用下面公式计算
条件随机域(CRF)被用来提取高质量的对象分割。为了使用CRFs,一个标签图LLL通过下面公式产生。
其中σc\sigma_cσc通常被设置为0.8,一种固定的阈值,用来确定某个像素属于某个对象或背景。标签图LLL被输入到CRF去产生对象实例分割,它被作为一个用于Mask-RCNN训练的伪groundtruth标签。Fig 2 stage 1 展示了整个对象实例分割的过程。
Jointly Detect and Segment Object Instance. 给定一个图像III的分割的对象实例的集合,S=[S1,S2,...,Sn]S=[S_1,S_2,...,S_n]S=[S1,S2,...,Sn],和他们对应的在前一阶段产生的类别标签,我们得到了每个分割的最小的bounding box去建立一个proposals,P=[P1,P2,...Pn]P=[P_1,P_2,...P_n]P=[P1,P2,...Pn]。proposal P,segments S 和他们对应的类别标签用于训练Mask R-CNN ,使其对proposal和mask进一步的调优。用这种方法,我们将目标检测和实例分割转换为全监督学习。
CRF-Based Segmentation. 假设有对应于类别c的mmm个对象proposals,P∗=[P1∗,P2∗,...,Pm∗]P^*=[P_1^*,P_2^*,...,P^*_m]P∗=[P1∗,P2∗,...,Pm∗]和它们对应的分割S∗=[S1∗,S2∗,...,Sm∗]S^*=[S_1^*,S_2^*,...,S^*_m]S∗=[S1∗,S