RCNN Fast-RCNN Faster-RCNN

R-CNN(regions with CNN features)

   RCNN是RBG在2014年提出的一种目标检测算法,RCNN借助CNN良好的特征提取和分类性能,通过RegionProposal方法实现目标检测。

RCNN采用的特征区域提取的方法为selective search,通过计算区域集中每个相邻区域的相似度,经一系列操作,框出图像上的特征区域,这些

相似度主要考虑的是颜色、纹理、尺寸、交叠四个方面。

 

算法流程:

        

 

  1. 选择一个分类模型(VGG-16用的较多、AlexNet等)

      

  2. 去掉最后一个全连接层,将分类数改为N+1,并对模型的参数进行优化

                     

  3. 对每一个候选区域进行特征提取:Resize区域大小,然后做一次前向运算,将第五个池化层的输出(即提取到的特征)保存

      

  4. 训练阶段:使用输出的图像特征训练SVM分类器来判断这个候选框里面的物体类别

   测试阶段: 每个类别对应一个SVM,判断是不是属于这个类别

      

  5. 训练阶段:使用图像特征训练一个回归器(dx, dy, dw, dh),分别代表在各个方向和尺度的变换调整

   测试阶段: 使用回归器调整候选框位置

    

 

 

SPP-Net

  RCNN的瓶颈是2000个候选区域都要经过一次CNN,速度慢。SPP-Net改进成仅需将原图进行一次卷积操作即可得到每个区域的特征。

    

  特征映射:原图的特征在conv后也在同一位置

    

  金字塔池化层:

    

  速度比RCNN提升了100倍。

 

Fast-RCNN

  Fast-RCNN吧bbox regression放进了神经网络内部,与region分类合并成了一个multi-task模型,实际实验也证明,这两个任务能够共享卷积特征,并相互促进,这个结构的优化

极大的提升了模型的训练和预测速度,也为后来的Faster-RCNN做下了铺垫。

  

 

Faster-RCNN

  是RBG团队于2015年的又一力作,简单网络目标的检测速度达到了17fps,复杂网络达到5fps。Fast-RCNN存在一个比较大的问题,就是selective search,他只能运行在CPU上,所以

加入了一个专门生成候选区域的神经网络,叫做Region Proposal Network(RPN)。

  

  可将Faster-RCNN简单的看成” 区域生成网络 + fast-RCNN “的系统,以代替ss算法。

  

  RPN神经网络的结构:

  

  RPN的计算流程:

  1. 最后一个卷积层输出的特征图再进行一次卷积得到新的特征图

  2. 新的特征图上每个点都对应到原图上,并给出9个先验框,共约2000个

  3. 计算所有候选区的scores

  4. 把超出图片的候选区限制在图片区域内,选scores最大的12000个

  5. 进行NMS,固定NMS的IoU为0.7,再选出scores最大的前2000个,这2000个若与标定区域的IoU大于0.7,即为正样本,小于0.3为负样本,中间值去掉

  6. 训练RPN层分类回归时,随机抽256个区域,正负候选区为1:1,若正样本不够则用负样本补充

  7. 训练最后输出时,随机抽取64个与真实区IoU≥0.5的作为前景,256-64个小于0.5且≥0.1的作为背景

  

  k anchors boxes中的k一般取9,即有9个不同大小的先验框,将把每个特征点周围加上anchors boxes

 

 

Faster-RCNN的损失函数定义

  

  

 

posted @ 2021-06-05 11:47  Liang-ml  阅读(88)  评论(0)    收藏  举报