RCNN论文的概括理解

原文题目:Rich feature hierarchies for accurate object detection and semantic segmentation

原文地址:https://arxiv.org/abs/1311.2524

   RCNN利用SS算法从一张图片中提取出2000+的候选框,将这些候选框输入到CNN(很类似Alexnet)里面得到4096维的特征(输出层的前一层),然后用这个4096维的特征代表这个候选框。

由于采用的CNN有全连接层,所以输入CNN的图片只能是固定的大小,需要将候选框resize成227*227的尺寸得到输入CNN。每个图片有2000多个候选框,每个候选框resize后输入CNN都会产生4096维的特征。

得到表示候选框的4096维数据后,需要对这些特征进行判断,看哪些特征包含了物体、包含了什么物体,哪些特征没有包含物体。判断的方式是用SVM进行判断。由于采用的数据集里面的标注数据有20类,所以训练20个SVM对每个4096维的特征进行判断。每一个SVM针对一类做一个2分类,即表示是该类或者不是该类。将这2000多个4096维特征分别送入这20个SVM进行判断,就可以得到每个候选框属于每一个类的可能性的大小了,对这2000多个候选框进行NMS就可以得到一张图片中物体的bbox。

得到的bbox都是SS选择出来的,可以对这些bbox进行优化,让输出的bbox与GT更加接近。优化的方式是为每一个类训练一个回归器,输入的也是4096维的特征,优化的目的是每个SS选择出来的bbox进过一些平移(输出)以后与GT更加接近,最后将SS选择的bbox经过上述平移以后最为RCNN的输出。

具体的训练过程如下:先单独训练CNN(数据集ILSVRC 2012),训练完了以后将最后的1000类改成21类(20类物体+背景),其余层的参数保持不变,接着微调CNN(数据集PASCAL VOC 2007),输入是GT resize成227*227的图片,输出是GT标定的属于那一类,这一层训练得到的最后一层也要丢弃是的网络的输入是227*227的图片,输出是4096维的数据。CNN训练好了以后在训练20个SVM。最后在训练回归器。

    更多细节请参考原文。

你可能感兴趣的:(论文理解)