RCNN论文阅读笔记

RCNN论文阅读笔记

1.背景介绍

  • 作者简介
    R-CNN是由 Ross Girshick (RBG 大神),集技与术与一身的男人,2014年提出R-CNN,是将CNN用于目标检测实现工业化的第一人,大大提升了mPA,随后的Fast-RCNN、Faster-RCNN等也出自大神之手,据说不仅算法的设计,并且Code也由他完成。在近几年的ICCV这样的计算机视觉顶级会议的论文中,经常可以看到这位大神的名字。
  • 论文特点
    其一,之前最经典的目标检测算法是使用滑窗法来确定目标(如FCN),缺点多多速度慢效果也一般等等,RCNN中使用Selective Search方法预先提取一系列较可能是物体的候选区域,之后仅在这些候选区域上提取特征,进行判断。
    其二,使用ImageNet ILSVC 2012(一千万张图,1000个类,只有类的标签)做预训练,其实就是直接拿到了该训练集在AlexNet上跑出来的结果,利用迁移学习对PASCAL VOC 2007(一万张图,20个类,标出了目标位置)进行训练微调,最后得出用于检测的模型(方便省事)。

2.基本流程

  • 候选区域生成: 一张图像生成2K个候选区域
  • 特征提取: 对每个候选区域,使用AlexNet提取特征
  • 类别判断: 特征送入每一类的 SVM 分类器,判别是否属于该类
  • 位置精修:使用回归器精细修正候选框位置
    RCNN论文阅读笔记_第1张图片

3.候选区域生成

  • 使用一种过分割手段,将图像分割成小区域 (1k~2k 个)
  • 查看现有小区域,按照合并规则合并可能性最高的相邻两个区域。重复直到整张图像合并成一个区域位置
  • 输出所有曾经存在过的区域,所谓候选区域(这些候选区域要用来做训练)
    Selective Search算法详细介绍

4.特征提取

论文中使用AlexNet进行特征提取(后来有人使用过VGG16进行特征提取,mAP值又可以提升大概10个百分点),这里为了方便仍是介绍论文中的AlexNet。
RCNN论文阅读笔记_第2张图片
特征提取分为两个阶段:第一,使用ImageNet ILSVC 2012数据集进行预训练,输出层是1000个softmax后的分类结果。移除输出层的神经元换为21个(20个为COV数据集的类别数,再增加加一个背景的类),迁移学习真方便。第二:COV中的图经Selective Search后的候选框作为训练集,候选框与图像中标注好的目标框的IoU大于0.5的作为正样本,其他为负样本。由于每一个候选框的大小不同,而AlexNet的输入图像的大小为277×277,所以采用非常暴力的方法(不管图片的长宽比例,管它是否扭曲,进行缩放就是了)将每个候选框的大小变为277×277,论文中有一个细节是在候选框增设一个像素个数为16的外边框。最后将第一步完成的模型拿过来,采用 SGD 训练,初始学习率为 0.001,mini-batch 大小为 128,其中32个为正样本(20个类),96个为负样本(背景),对模型进行微调。
5.SVM训练、BBox回归

  • SVM训练
    这里需要训练为每个类训练一个线性SVM分类器共20个(训练集正样本为COV中标注好的目标框作为正样本,IoU小于0.3的作为负样本)0.3论文中是采用网格搜索得到的,在[0.1,0.2,0.3,0.4,0.5]这几个中实验得到0.3mAP是最高的,比其他要高3、4个百分点。输入的样本是一个4096的特征向量(上图第七层全连接层的神经元数)。训练好20个分类器。将训练好的SVM分类器代替神经网络的输出层,可以对2000个候选框进行打分,每张图片可以得到2000×4096的特征向量,20个分类器的参数是4096×20,点乘后的矩阵即为这一张图片每一个候选框对于每一类的的概率得分。将2000个候选框根据在该类上的得分做一个极大值抑制,最终剩余的候选框即为结果。
  • BBox回归
    对每一类目标,使用一个线性脊回归器进行精修。正则项λ=10000。 输入为AlexNet第五层的特征,输出为xy方向的缩放和平移。 训练样本:IoU大于0.6的候选框。

6.结果
最后的结果当然是非常好的了,精确度相较于之前算是有了质的飞跃,但仍有缺陷,速度还是慢,Selective Search每一张图GPU大概需要13s,后面还需做一次高维度的点乘,为了解决这一问题出现faster-RCNN移除了SVM。个人理解,不对的地方请指正。

你可能感兴趣的:(计算机视觉,深度学习)