【目标检测】从RCNN到fasterRCNN

本文详细梳理了R-CNN系列的目标检测算法,包括R-CNN、fast R-CNN和Faster R-CNN。R-CNN通过Alexnet提取特征,SVM分类和NMS筛选;fast R-CNN引入RoIPooling,提高效率;Faster R-CNN则进一步提出区域提案网络(RPN),实现端到端训练。每一代改进都着重解决了前代的速度和效率问题。
摘要由CSDN通过智能技术生成

【论文】

R-CNN:https://arxiv.org/abs/1311.2524  Ross Girshick

fast-RCNN: https://arxiv.org/pdf/1504.08083.pdf

faster-RCNN:https://arxiv.org/pdf/1506.01497.pdf

(研读很多最新的算法后总是会模糊对基础框架的概念,要不断复习才行 (๑•̀ㅂ•́)و✧ !此处复现RCNN系列论文,仅供自己梳理)


一、R-CNN(Region with CNN fearure)

在这里插入图片描述  

算法流程

  1. 从图片中提取 2000 个region proposal (selective search方法)
  2. 变换到227x227输入Alexnet提取特征(4096维)
  3. 用SVM分类器分类,并产生分数
  4. 通过IOU指标和非极大值抑制(NMS),筛除重叠区域
  5. 对NMS处理后的proposal进一步筛选(只保留和gt有交集且iou>threshold的proposal)
  6. 用回归器(bbox regression)修正边界信息

算法细节

  1.  验证了模型可迁移性,且通过fine-tune可以提升末端FC层性能从而提升模型能力
  2. selective search

    分割原始图像为n小块,迭代计算相邻区域相似度并合并最相似的两块,不断得到图像的分层表示。

    相似度s = a1*色彩距离+a2*纹理距离+a3*优先合并小区域+a4*区域外界矩形重合面积要大(吻合度)

    选择区域:给区域打分、排序

  3. 模型速度慢,主要在于提取候选框、候选框的特征提取操作冗余、SVM和bbox回归器需要另外训练。


二、fast R-CNN

 算法流程

  1. 从图片中提取 2000 个region proposal (selective search方法)
  2. 变换到224*224输入VGG16,经过5个卷积层和2个降采样层得到特征图,SS算法生成的proposal投影到特征图获得特征矩阵。(参考SPPNet)
  3. conv5层的输出和region proposal同时输入ROIPooling层,特征图被缩放到7*7,将特征图展平并经过两个都是output是4096的全连接层,再经过output个数是21和84的两个全连接层(并列,分布是分类和回归的输出),最后是softmax交叉熵损失层(分类)和smoothL1损失层(回归)。

 算法细节

  1. mini-batch sample:从2000个proposal只选择64个,且包含正负样本
  2. 关于回归器的实现

图片参考1.1Faster RCNN理论合集_哔哩哔哩_bilibili

另外Gt框的真实回归参数可由公式逆推得到d',用于损失计算。损失计算公式如下。


三、 faster-RCNN

 算法流程

  1. 图片输入到特征提取CNN网络
  2. 特征图输入RPN网络得到候选框,候选框投影到特征图生成prorpsal对应的特征矩阵
  3. 特征矩阵输入ROIPooling层缩放到7*7特征图,展平后通过一系列全连接层,后续与fast-RCNN一致。

算法细节

1.  主要在于加入了RPN网络 

【RPN网络】 

  • 以固定步长取中心点,每个中心点取K个anchor(大小形状为经验所得),文中是3种尺度*3种长宽比=9
  •  anchor会经过边界矫正后、iou非极大值抑制,才得到proposal
  • cls layer的2K是多分类交叉熵损失得到,分别为前景背景的概率。而pytorch实现中直接用了二分类交叉熵损失,此时应该为k scores.

2.  训练样本的采样:

  • 正负样本共256个,比例尽量为1:1,正样本不足时负样本补足。
  • 正样本:与gt相交的iou>0.7的样本;当没有样本超过0.7,则选一个iou最大的正样本
  • 负样本:与所有gt相交的iou都<0.3

3. 原文中faster-RCNN的训练 【note:现在一般直接联合训练啦】

  • 初始化前置CNN网络参数,先训练RPN网络
  • 固定RPN网络参数,重新初始化前置CNN网络参数,训练整个网络
  • 固定上一步的前置CNN网络参数,微调RPN网络
  • 同样固定上一步的前置CNN网络参数,微调faster-RCNN全连接层

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值