这篇文章是来自悉尼科技大学Shaoli Huang等人的工作,与前两篇文章的出发点类似,本篇文章也是在Parts
上寻找Fine-Grained的线索,但与前两篇文章相比,在框架中人工的参与更少。同其它Fine-Grained
分类任务相似,这篇文章也采用两步走,即object parts localization (where pathway)和classification (what pathway),值得一提的是在part定位过程中,利用了FCN(Fully Convolutional Network)。
论文提出的新方法是既可以得到不错的分类准确率,也能提供一个可以解释得了的模型,并且效率也更加高,非常适用于实际应用中。
下面是方法提出的网络结构的示意图:
接下来会介绍该方法的实现细节。
Part-Stacked CNN
论文将提出的新的CNN结构命名为Part-Stacked CNN,这个网络结构分为两个子网络,分别是定位网络(Localization Network)和分类网络(Classification Network)。采用的是Caffe
框架和经典的AlexNet
网络结构作为整个网络的基本结构。
作者提出与基于部件的R-CNN相比,一个最大不同点是,从定位网络到分类网络的一个信息转换运算,也就是使用定位网络中得到的部件位置进行分类的操作,是直接在数据的前向传播过程中直接使用在第五个卷积层输出的特征图上(A unique design in our architecture is that the message transferring operation from the localization network to the classification network, i.e. using detected part locations to perform part-based classification, is conducted directly on the conv5 output feature maps within the process of data forwarding.)。
1. Localization Network
定位网络的整体结构如下图所示:
定位网络主要目的是检测到物体部件的位置,论文是使用了最简单的部件标注–每个部件中心位置标注的二维关键点。这里假设M
表示数据集中物体部件标签的数量。然后采用全卷积网络(fully convolutional network,FCN)来生成密集的特征图输出。这里使用FCN
的理由给出了三点:
1)FCN
得到的特征图输出可以直接作为部件定位的结果用于分类网络;
2)FCN
可以同时获取多个物件部件的结果;
3)FCN
在学习和预测阶段都非常高效。
1.1 Learning阶段
由上图可以知道,定位网络最终的输出是一个带有M
个位置点的 h×w 的特征图。定位网络的前5层跟经典的AlexNet
网络结构一样,然后在第五个卷积层后面加一个卷积核大小是