Fast R-CNN 论文笔记
一、为什么提出Fast R-CNN
因为Fast R-CNN的前任R-CNN和SPP-net不给力。
R-CNN训练分为多个阶段,步骤繁琐: 微调网络+训练SVM+训练边框回归器; 训练耗时又耗内存; 目标检测又慢。
SPP-net虽然比R-CNN快一些,但和R-CNN同样存在训练步骤繁锁的问题,而且无法更新SPP-net之前的卷积层。
二、Fast R-CNN的框架
Fast R-CNN的输入: 一整张图像和一系列目标候选区域(object proposal)。
1)首先用conv
和max_pooling
层处理整张图像,生成一张特征图(feature map)。
2)然后RoI_pooling
层对感兴趣的部分区域(a region of interest)提取固定长度的特征向量。
3)特征向量通过全连接层后,分别输出到softmax
层和bbox_regressor
层。
注意:
1)RoI_pooling
层用的方法是,把
h×w
的感兴趣区域(RoI
)分到固定大小的
H×W
网格中,然后对每一个网格取其最大值,这样得到的特征向量也是固定长度的,实际上这是SPP-net
的一种特殊情况。
2)softmax
层输出目标属于各类的概率大小,这里背景算额外的一类。
3)bbox_regressor
层输出4维向量,描述一个框,即框的左顶点、长、宽。
三、Fast R-CNN的优点
1)相比较于R-CNN
和SPP-net
,Fast检测质量更高(mAP
)。
2)训练只有一个阶段,使用了多任务损失函数。
3)相比较于SPP-net
,训练可以更新所有的层。
4)缓存特征时不需要硬盘存储。
四、Fast R-CNN的缺点
我若能发现就能先写出下一篇的Faster R-CNN了~_~
发现论文中的不足,是我急需要提升的能力。
五、Fast R-CNN的补充
作者在文中研究了一些问题。
1)多任务训练能起到帮助吗?
答:能。它能提高分类准确率。
2)尺度不变性:单尺度 or 多尺度?
答:实验表明单尺度检测几乎与多尺度检测同样好,说明深度卷积网络本身就能擅长直接学习尺度不变性。
3)需要更多的数据吗?
答:实验表明,更多的数据的确提高了准确率。
4)SVMs
比softmax
好?
答:实验表明,softmax
表现还稍胜SVMs
一筹。
5)候选区域是越多越好吗?
答:不见得。