查看原文
其他

【CVPR2016论文快讯】细粒度视觉分类的最新进展

2016-07-08 徐国智 深度学习大讲堂
点击上方“公众号”可订阅哦!
深度学习大讲堂是高质量原创内容的平台,邀请学术界、工业界一线专家撰稿,致力于推送人工智能与深度学习最新技术、产品和活动信息!

摘要

本文对刚刚落下帷幕的CVPR2016会议中关于细粒度视觉分类问题的论文进行了总结,深入浅出地对涌现的新方法进行了介绍。通过总结、比较CVPR16会议细粒度视觉分类方法的进展,总结了该领域研究的新动向,希望给读者带来思索与启发。

前言

作为新出现的一个研究方向,细粒度视觉分类(Fine-Grained Visual Categorization, FGVC)近年来获得了越来越多的关注。细粒度分类属于目标识别的一个子领域,其主要目的是在相同基本类别下对其繁多的子类别进行区分。与Pascal VOC等对船、自行车和汽车进行分类的任务不同,Fine-Grained是对于视觉上非常相似的目标进行区分。以狗品种分类为例,二哈(哈士奇雪橇犬)与阿拉斯加雪橇犬分别如下图所示,想要对其进行区分必须要有一定的相关先验知识。


再比如法国斗牛犬和波士顿梗犬,对比如下图所示,是不是更傻傻分不清楚?对于没有相关经验的人来说,想要进行准确的分类实属不易,更不要说让计算机自动进行分类了。


对于如此富有挑战性的任务,很多的工作取得了不错的成果。今年的计算机视觉与模式识别会议(CVPR 2016)中,录用了不少对于Fine-Grained识别的文章,从特征的构建到网络结构的改进再到新的训练手段,出现了许多新颖的方案,下面对其中代表性文章进行介绍。


1. Picking Deep Filter Responses for Fine-grained Image Recognition[1]
这篇文章是来自上海交通大学Xiaopeng Zhang等人的工作,该文章提出了一种对深度网络中的filter进行挑选的方法,基于挑选的filter的结果构建复杂特征表达。文章中提出的方法框架如下图所示:

整个方案分两步走:首先,利用深度filter的选择性来挖掘对于某些模式敏感的filter (比如鸟的喙与腿,如下图所示)从而得到一个weak的Part Detector。进而通过该Weak Detector作为初始来训练一个Discriminative Part Detector;

第二步便是利用第一步的Part Detector进行图像patch的检测然后提取deep descriptors,利用提出的Spatially Weighted Fisher Vector (SWFV)对deep descriptors进行pooling,从而得到图像SWFV-CNN特征描述。文章中报告的结果表明,利用该方法在CUB-200-2011和Stanford Dogs两个数据集上都取得了较优异的成果。值得一提的是,该方法并未利用人工标注信息(bbox+parts),在测试集上相比于利用标注信息的方法有了显著提高。该方法并非采用End-to-End的结构,在中间的环节如Spatial weighting, FV pooling需要针对数据分布的不同而做细致调整。

2. SPDA-CNN: Unifying Semantic Part Detection and Abstraction for Fine-grained Recognition[2]
这篇文章是来自罗格斯大学的Han Zhang等人的工作。由题目可知与上一篇文章一样,本文的作者也关注到了富有语义的局部(利用Part,Part,Part,重要事情强调三遍),作者不满足于CUB-2011提供的head和body的定位结果,提出了small semantic parts 生成的方法。结果表明,充分利用了更多的small parts在fine-grained的问题上可以更好的提高分类结果,下面简单介绍作者的思路。整个系统由两个子网络组成,一个是Detection网络,另一个是Classification网络,方法流程如下图所示。

与已有的一些方法不同,作者并没有使用Region+CNN+SVM这样的框架,而是将Detection与Classification构建了一个End-to-End的网络。在Part Proposal阶段,作者利用了全局形状与几何限制条件,通过引入这样的先验知识,生成的proposals与传统方法相比减少了一个数量级(200 vs 2000)。然后基于proposal的结果利用Fast-RCNN生成Head,Back,Belly,Breast,Leg,Wing,Tail七个Parts,部分检测结果如下图所示,结果明显优于Selective Search。

总的来说,文章作者基于鸟的形状特性,在Proposal生成阶段构造了几何限制条件,并基于此提出了一种Part Detection的方法。而Parts在鸟类Fine-Grained分类问题上对结果的提高有明显帮助。作者将Part Detection和Classification结合成一个End-to-End的结构,同时进行训练与测试,取得了优异的结果。

3.Part-Stacked CNN for Fine-Grained Visual Categorization[3]
这篇文章是来自悉尼科技大学Shaoli Huang等人的工作,与前两篇文章的出发点类似,本篇文章也是在Parts上寻找Fine-Grained的线索,但与前两篇文章相比,在框架中人工的参与更少。同其它Fine-Grained分类任务相似,这篇文章也采用两步走,即object parts localization (where pathway)和classification (what pathway),值得一提的是在part定位过程中,利用了FCN(Fully Convolutional Network)。方法的流程如下图所示:

方法的特点在于,在分类阶段利用了Two-stream的结构在object-level和part-level进行特征提取,进而对feature map进行拼接,由此构建包含有全局与局部的特征描述。作者命名该架构为PS-CNN,为了兼顾性能与效率,作者采用基于AlexNet的CNN模型。在object-level与part-level特征拼接过程中,由于两部分输入数据尺度存在差异,因此需要在feature map中进行尺度调整。对于Object-level,抽取了pool5层的feature map(6×6),而Part-level则提取了conv5的feature map(27×27),并在conv5的基础上根据part定位的结果进行crop得到相应的feature map(6×6)。最后拼接过的feature map送入全连接层,得到4096维的特征向量。
由此我们可以发现,定位的part直接影响特征的描述结果,那么part-localization网络的结果如何呢?下图给出了测试集上的部分结果

而且最终分类结果表明,利用了part的结果要远远优于仅适用BBox的结果(76.7% vs 69%),当然本文章所给出的启发并不局限于鸟类的分类。文章所提出的PS-CNN架构不仅可以用于鸟类等Fine-grained任务,还可以用于别的分类任务,框架比较general,而且在测试阶段在GPU K80平台上可以达到20 frames/sec,满足实时性的要求。

4. Mining Discriminative Triplets of Patches for Fine-Grained Classification[4]
除了以上几种基于深度框架的Fine-Grained方法之外,来自马里兰大学的Yaming Wang等人提出了挖掘mid-level patch 的一种方法 [4],文章中提出了基于mid-level representation的特征构建方法并结合SVM分类器进行分类,提出了一种基于顺序与形状条件限制的Triplet Mining方法。其中所谓的Triplets与两种限制如下图所示:

A、B、C可以被看做patch的Appearance model,利用顺序限制(左)和形状限制(右)进行中层特征的表示,构建了Bag of Triplets特征表达,方法流程如下图所示

文章的实验主要在车辆数据集(BMVC-14, Cars-196),实验结果中表明,仅仅使用HOG特征的分类准确率就超过了fine-tune的AlexNet。在结合深度特征的基础上,该方法取得了state-of-the-art的结果。这篇文章并没有采用End-to-End的结构,而是挖掘Mid-level中有信息价值的表达,除了手动挖掘,深度网络是否也可以自动挖掘呢?这是否可以对我们做Fine-Grained任务引发一些思考呢?

5. 应对Fine-grained训练数据有限等问题的系列工作

部分Fine-Grained分类结果(笔者已经看的饿了),在深度模型训练过程中,除了常见的crop、rotate等data augmentation手段,Feng Zhou他们利用Bootstrapping来增加训练数据,为了解决类内-类间的问题,利用了基于Triplet loss的的Deep metric learning方法。更具体的细节笔者就不在这里详述,感兴趣的读者可以关注对应的文章

结语

参考文献
[1]      Zhang, X., Xiong, H., Zhou, W., Lin, W., & Tian, Q. Picking Deep Filter Responses for Fine-Grained Image Recognition.
[2]      Zhang, H., Xu, T., Elhoseiny, M., Huang, X., Zhang, S., Elgammal, A., & Metaxas, D. SPDA-CNN: Unifying Semantic Part Detection and Abstraction for Fine-grained Recognition.
[3]      Huang, S., Xu, Z., Tao, D., & Zhang, Y. Part-Stacked CNN for Fine-Grained Visual Categorization.
[4]      Wang, Y., Choi, J., Morariu, V. I., & Davis, L. S. Mining Discriminative Triplets of Patches for Fine-Grained Classification.
[5]      Zhou, Feng, & Yuanqing Lin. Fine-grained Image Classification by Exploring Bipartite-Graph Labels.
[6]      Zhang, X., Zhou, F., Lin, Y., & Zhang, S. Embedding Label Structures for Fine-Grained Feature Representation.
[7]      Cui, Y., Zhou, F., Lin, Y., & Belongie, S. Fine-grained categorization and dataset bootstrapping using deep metric learning with humans in the loop.

致谢:在此感谢中科院计算所博士生刘昕,在准备深度学习暑期研讨班的繁杂事务中仍抽出时间对本文提出了建设性的修改意见,感谢腾讯优图实验室对本文工作的支持。

该文章属于“深度学习大讲堂”原创,如需要转载,请联系loveholicguoguo。
作者简介:
 

往期精彩回顾
深度学习你不可不知的技巧(上)
深度学习你不可不知的技巧(下)
【机器人的双眸】视觉SLAM导论
深度强化学习导引
【大规模图像检索的利器】Deep哈希算法介绍
Deep learning for arts
 
  
欢迎关注我们!
深度学习大讲堂是高质量原创内容的平台,邀请学术界、工业界一线专家撰稿,致力于推送人工智能与深度学习最新技术、产品和活动信息!
深度学习大讲堂

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存