目标检测RCNN阅读随笔
RCNN
RCNN是将CNN运用于目标检测的开山之作,跟以前日渐接近瓶颈的传统方法相比,RCNN在性能上有巨大的提升。
RCNN主要结构:
1、生成候选区域region proposals
2、对于每个proposal都使用CNN提取特征
3、将提取的特征送入SVM分类器,判断类别
4、使用回归器精修候选边框位置
Introduction
过去十年多的时间,在目标检测上人们的关注的点都在运用HOG、SIFT上,不过大多数研究都没有明显的提高检测效果,即使有所提高也都是基于原先优秀技术的小变体。直到有一天,RCNN出现了…
获取Region proposal
本文是先选取2000个Region proposal,再对每一个Region proposal进行卷积操作提取特征。那如何确定Region proposal呢?
选择Region proposal的方法是Selective rearch,首先将整张image 分割成很多小块,然后将具有相似纹理(梯度直方图)。颜色(颜色直方图)的邻近小块儿合并在一起,最后输出合并之后的所有区域。(感觉有点像区域生长呢)
提取出Region proposal之后并不能直接送入CNN提取特征,之前要加一个warp操作,为什么呢?因为CNN只能输入固定大小的图像(选取2000个Region proposal,再分别warp,是不是颇为麻烦呢,听说紧接着有一篇SPP-NET优化了这里)
Region proposal选完并warp之后在CNN中进行前向传播,CNN具有参数共享同时维度更低的的优点,降低了计算量,之后通过SVM 计算各个Region proposal的score,根据非最大值抑制(NMS)的方式去除score低的Region proposal。
Training
训练使用Supervised Pre-training+fine-tuning的方式,现在具有1000类的大型数据集ILSVRC 2012上进行预训练,然后再讲训练的模型参数运用于新的较小的数据集VOC中,把1000分类层改为21(20类+1背景)随机初始化的输出层。Region proposal的IOU大于0.3(实验显示选取0.3最好)的为正样本,其余为负。(cut:后面的Visualization, ablation, and modes of error就不说了)