R-CNN论文笔记

论文地址:http://www.rossgirshick.info/#girshick2014rcnn
前记: R-CNN系列的开山之作,发表于2014cvpr,将神经网络用于目标检测之中,在VOC2010测试数据集上取得了53.7%的准确率,而当时主流的基于HOG特征的DPM算法为33.4%,虽然后续有了更多的改进诞生了Fast R-CNN以及Faster R-CNN系列,但是此篇文章仍然值得研究

一、解决的主要问题

  1. 使用深度神经网络进行目标检测
  2. 在缺乏标注的小批量数据集上训练大型网络

二、 模型结构
Region proposal + CNN + SVM

三、训练

  1. 采用Alexnet网络在ILSVRC2012图像分类数据集上进行预训练,网络包含5个卷积层和两个全连接层
  2. 采用selective search方法对每张图片提取region proposal,每张图片提取两千个region proposal
  3. 每张图片的两千个region proposal与图片的ground truth进行IOU计算,取IOU大于0.5的为正例,反之为负例
  4. fine-tuning CNN网络,也就是进行迁移训练,将网络的最后一层替换成N+1个神经元,N 为VOC物体类别数,再加上background,即预训练的1000维softmax层改成21维,进行微调训练,只训练最后一层参数,网络的输入为每一个resize成227x227的固定大小region proposal(这一步和第一步解决了上述第二个问题,这一步也将准确率提高了8个百分点)
  5. 对每一个类别训练一个SVM二分类器,输入是f7的特征,f7的输出维度是2000x4096,输出的是是否属于该类别,训练结果是得到SVM的权重矩阵W,W的维度是4096x20,此处正样本为ground thuth,负样本定义为IOU<0.3的region proposal
  6. 训练一个线性回归模型用于对bounding box回归,采用的是pool5的输出特征,目的是对bounding box进行矫正

四、测试

  1. 对每一张图片先通过selective search提取出2000个region proposal
  2. 将这些region proposal resize成固定尺寸输入CNN网络,的到f7层的特征输出,即维度为2000x4096维特征矩阵
  3. 将输出的特征作为svm分类器的输入,得到每一个region proposal的分类结果,输出维度2000x20,要注意是20个类别的输出,不是21个
  4. 对每一个类别进行非极大值抑制(NMS), 剔除每一类别的region proposal,保留下来的就是该类别的bounding box
  5. 使用之前训练好的bounding box regresion模型对这些bounding box进行回归,得到修正后的bounding box,即最终的定位框

五、性能
在VOC2010 test数据集上的表现如下表所示
R-CNN论文笔记_第1张图片
六、算法不足
整个模型流程过多,有region proposal的提取,CNN的训练,SVM的训练,bounding box regression的训练,训练耗时较长。而且每一张图片提取两千个region proposal进行卷积计算,其中有大量的重复内容,增加了计算量。

你可能感兴趣的:(计算机视觉)