1. 预备知识
细粒度分类
细粒度图像分析任务相对通用图像(general/generic images)任务的区别和难点在于其图像所属类别的粒度更为精细(通用:狗和袋鼠的区分;细粒度:哈士奇与爱斯基摩犬的区分)。而细粒度图像分析任务也主要以细粒度图像分类为主,细粒度物体的差异仅体现在细微之处。如何有效地对前景对象进行检测,并从中发现重要的局部区域信息,成为了细粒度图像分类算法要解决的关键问题。对细粒度分类模型,可以按照其使用的监督信息的多少,分为“基于强监督信息的分类模型”和“基于弱监督信息的分类模型”两大类。
- 基于强监督信息的分类模型:Part-based R-CNN;Pose Normalized CNN;Mask-CNN
- 基于弱监督信息的分类模型:Two level Attention Model;Constellations;Bilinear CNN
-本文主要研究Part-based R-CNN
卷积神经网络CNNs具体见其他博客,主要了解卷积,池化,特征图和全连接层(多层感知器)。
R-CNNs具体步骤
-一张图像生成1k-2k个候选区域
-对每个候选区域使用深度神经网络提取特征
-特征送入每一类的SVM分类器,判别是否属于该类
-使用回归器精细修正候选框位置
速度:仅在候选区域提取特征,较传统方法会快很多
训练集:传统是在提取人工设定的特征,而这个是使用识别库和检测库进行调优测评[R-CNNs][1]
2. 论文概况
Part-based models for detection and pose localization
传统的[DPM方法][2],直到近期先进的PASCAL方法,对于部分pose的检测和定位都发展的很好,但是它们都存在一个限制,这些方法使用的都是弱特征(如HOG)。
Fine-grained categorization
近期许多计算机视觉研究都把目标放在了细粒度分类问题上(种类和品种,植物种类,人造项目等)。具体的可参考第一部分。本文的主要目标是研究端到端的无信息细粒度分类,本文的part检测自顶向下的卷积特征提取,能够加强part分类。
Convolutional networks
CNNs从最初的数字识别和OCR发展到通用识别任务。而本文研究方法所受启发最大的还是R-CNNs方法,至于具体的原理见第一部分。
fine-grained的核心挑战是定位part,于是这个工作在RCNN上加了part,主体流程见上图:
提取region proposal,这里用的selective search
找到物体的bbox和part的bbox,这里需要用到空间信息进行重打分
之后将bbox的特征提取出来,然后分类
3. Part-based R-CNNs
技术细节
训练一个有part的RCNN,满足了两个条件:
proposal里面覆盖了95%的part
part有标记信息,可进行有监督学习
初始时各part独立,使用SVM一对一进行分类,大于0.7为positive,小于0.3为negitive。
但是这初始部分不包含几何约束,所以之后要加入几何计分函数。
注:之后得到特征后,用SVM训练root和part的分类器。RCNN中没有part分类器。
记分函数