论文阅读笔记 SPDA-CNN: Unifying Semantic Part Detection and Abstraction for Fine-grained Recognition
这篇论文来自美国罗格斯大学的 Han Zhang, CVPR2016
1. 简介
相比于一般的目标识别,细粒度识别具有更大的挑战性。其原因是由于姿态与视角的不同,不同图像之间微小的差异很容易被掩盖。一个直观的思路就是,利用目标的 part 去区分不同的子类。当前,一些 state-of-the-art 的方法都是利用 CNN 去检测 目标的 part regions。 但这些方法都只利用了目标的一些大的 part (比如鸟的头和身体),一些更小的语义 part 却被忽视了(比如,鸟的尾巴和翅膀)。(For example, on the CUB-2011 bird dataset, both methods only localized the head and body, i.e., large parts, and they did not utilize other smaller parts such as the tail and wings although these parts can be very useful for recognition)。对于细粒度图像识别,基于part 的CNN方法(part-based CNN methods)一般做法是:单独地为每一个part 训练一个CNN网络,然后从每个part中提取CNN特征,并将他们级联成一个很长的矢量,最后用这个特征矢量去训练一个分类器(比如SVM)。其中,每个part的CNN的结构是相同的,参数也是共享的。然而,这中方法有几个不足之处:(1)训练和测试是多步骤的处理;(2)限制了整个结构去学习不同part之间的相关性。
为了解决上面提到的问题,作者提出了一种嵌入了中层part的抽象层(mid-level part abstraction layers)的CNN网络。这个网络主要由两个子网络组成:检测子网络(detection sub-network) 和 分类子网络(recognition sub-network)。
三个创新点:(1)对于检测子网络,提出了一种新的上-下的方法来生成多个语义part的候选集(A novel top-down proposal method is designed to generate small semantic part candidates for multiple semantic parts detection);(2)对于识别子网络,提出了一种新的基于part层(A new type of part-based layers is proposed in the recognition subnetwork, which provides an abstraction of small semantic parts, extracts part-based features and combines them for recognition.);(3)联合了part的检测是识别,提出了一个端到端的网络结构(We further integrate the part detection and part-based recognition sub-networks into a unified architecture to form an end-to-end system for fine-grained classification)。