RCNN论文阅读笔记
原文:Rich feature hierarchies for accurate object detection and semantic segmentation
时间:2014年
文章解决了什么问题
目标检测发展停滞,通过复杂的ensemble模型才能勉强提高一些精度
用了什么方法
两个 insights
- 在bottom-up region proposals中应用卷积神经网络(AlexNet)
- 提出当标签数据少的时候训练神经网络的模式——“supervised pre-training/domain-specific fine-tuning”
三个模块
- category-independent的region proposals
- 提取特征的CNN,在ImageNet上pre-train,然后在目标检测数据集上fine-tune
- 对每个类的SVM二分类器
训练过程
- 在ImageNet上训练AlexNet
- 用wrap的proposal region来fine-tuning,将最后一层1000的全连接层换成 N + 1 N+1 N+1层的全连接层,其中 N N N是检测目标的类别,额外的1代表背景
- 得到proposal和特征后,使用SVM分类
- 使用proposal和特征进行bounding box regression,得到更好的bounding box
效果如何
- 在VOC 2010 test上将mAP提升到了53.7%,在VOC 2013上mAP为31.4%,第二OverFeat是24.3%
- 当时相对快 13s/image on a GPU 53s/image on a CPU
- 内存占用小,用CNN提取4096维特征,占用的内存小
存在什么不足
- 慢,CNN对每个proposal提取特征
- multi stage,麻烦
- 需要disk memory
其他
一些解释
- PASCAL VOC dataset
- DPM
- bounding box regression
- selective search
- hard negative mining method
为什么不直接使用fine-tune之后的CNN来进行分类?
作者做了这样的实验,在VOC2007上mAP从54.2%降低到了41.3%,作者推测可能因为fine-tune时给的数据的定位可能没有做的很好
发现
作者通过在未经fine-tuning的网络上分析,发现去掉最后的两层fc层网络表现反而更好,这时去掉了大量的参数,前面的特征仅仅是用6%的网络参数得到的,因此发现CNN的表示能力主要来自于它的卷积层