Object Detection Networks on Convolutional Feature Maps
算法背景
大多数目标检测器包含两个重要的组件,分别为特征提取器和分类器。传统的目标检测方法的特征提取器是手工设计的,例如HOG,分类器一般是svm等。另一种目标检测策略是使用卷积层提取与区域无关的特征,然后按区域划分的多层感知机进行分类,本文中,作者从功能之外的分类器的角度对目标检测系统进行深入研究。专注于在与区域无关的贡献卷积特征之上,并称为NoC
网络结构
卷积特征图由共享卷积层生成,一个特征图被提取后经过pool合并为固定分辨率的特征,然后设计一个NoC网络,并就这些特征进行训练。在此图中NoC结构由两个卷积层和三个全连接层组成。
通过ss算法,提取2000个Region proposal,然后使用ROi-pooling 从共享的卷积特征图中合并区域特征,ROI pooling为每个区域生成一个固定分辨率(mxm)的特征图,代替了预训练模型的最后一个池化层,可以将合并的特征图区域视为小的多通道图像。
然后这些mxm大小的特征图作为新的数据源输入后方的NoC网络进行分类,。NoC的结构有多层,,最后一层是一个(n+1)类的分类器,用于分类n个目标和1个背景,由(n+1)维的全链接层和softmax实现,每个NoC都通过反向传播和SGD进行训练。
经过网络训练后,作者使用NOC的倒数第二个全链接层从区域中提取特征,并使用这些特征训练每个类别的线性SVM分类器或者其他网络
总结
作者提出了一种方法想搞明白
1、有没有比 MLP 更好的 region classifier ?
2、fine tuning 有多重要?
于是先用一个fixed, pre-trained ConvNet对输入的图像得到卷积的 feature maps。
在得到的feature map上再训练网络做分类,该网络作者称为NoCs ,即Network on Convolutional feature maps)。这里就不局限于MLP了,可以是各种网络。
作者尝试了三种网络:各种深度的MLP, 各种深度的 ConvNet, ConvNet with maxout.这是回答问题(1)。
在训练网络时,每种网络又分随机初始化,和来自 pre-trained 两种初始化策略,回答问题(2)。
最后得出
在相同的网络下,pre-training + fine-tuning work的最好。
精心设计的网络获得的性能提升要比 pre-training + fine-tuning 获得的性能提升大,作者的三种网络中,ConvNet with maxout 最好。
HOG + NoC > HOG + DPM/boosted,说明NoC的发现具有可推广性。
R-CNN 比 Hybrid 效果好,主要是由于其classfier占优势。