Mask-CNN: Localizing Parts and Selecting Descriptors for Fine-Grained Image Recognition

Mask-CNN: Localizing Parts and Selecting Descriptors for Fine-Grained Image Recognition


image-20210901195343589

参考

Introduction

  • 作者:魏秀参,Chen-Wei Xie,Jianxin Wu

  • 来自:南京大学新型软件技术国家重点实验室

  • https://arxiv.org/pdf/1605.06878.pdf

  • 本文针对细粒度图像识别问题,提出了一种新颖的端到端Mask-CNN模型,它不需要完全连接层来进行细粒度识别。该模型基于细粒度图像的部分标注,由完全卷积网络构成,用于定位可识别的部分(如头部和躯干),更重要的是生成obj Mask以及part Mask,用于选择有用和有意义的卷积描述符。然后,建立一个四流Mask-CNN模型,用于同时聚合选定的obj级和part级描述符。与先进的细粒度方法相比,所提出的Mask-CNN模型具有最小的参数数最小的特征维数最高的识别精度

  • 主要贡献:

    • Mask-CNN是第一个端到端的选择深度卷积描述符用于细粒度识别的模型。
    • 基于区域的四流模型,放弃了全连接层,且与之前的方法相比,M-CNN有最少的参数量和最小的特征维数,通过SVD whitening方法,特征表示被压缩到4096-d,同时精确度提高到85.5%。
    • 局部区域定位的表现优于其他需要标注框的方法。

The Mask-CNN Model

  • image-20210901200103181
  • 模型整体如上图所示,整体有四路,也就是上文说到的四流模型,
    • 分别对整张图片、头、肢体、整个目标进行一波卷积池化(b)
    • 完成后不做全连接操作,而是做卷积放大的操作(其实这里包括之前的卷积是用了FCN,这个放大在FCN中叫做Transposed conv),目的是把图像放大并得到对应的Mask(c)
    • 然后进行描述符选择(d),这里是使用了此前FCN模型的预先学习到的Mask,去除background相关信息,只保留对象相关的描述符
    • 然后同时做averaged and max pooled,各池化成512维的向量,紧接着进行 l2-normalization,然后拼接起来(e)
    • 而后四个部分拼接起来进行FC+softmax分类(f),得到最终的细粒度分类结果
Learning Object and Part Masks
  • 关于如何学习Mask,作者使用了FCN,关于FCN模型大概就是在最后的时候吧FC替换成Transposed conv,将feature map放大,这样就可以得到mask,更详细的部分等看了再补充
  • image-20210901202717434
  • 下面是FCN的检测效果
  • image-20210901202943557
Training Mask-CNN
  • 训练细节补充:
    • 使用VGG-16作为baseline,并保留pool5之前的层(包括pool5)。当输入图像为224 × 224时,pool5的激活张量为7 × 7 × 512。因此,我们有49个512-d的深度卷积描述符
    • Mask是1-0矩阵,选择实现的过程就是和Mask矩阵之间的乘积运算

总结

  • 总之,这篇大致就是用4流的FCN提取的特征进行分类,可知分类前具有丰富的特征股效果比之前的要好(虽然FCN本身在语义分割中并不成熟)

猜你喜欢

转载自blog.csdn.net/symuamua/article/details/120052178