Faster-RCNN详解

Ross B. Girshick的论文《Faster R-CNN: Towards Real-Time ObjectDetection with Region Proposal Networks》

主要解决两个问题:

1、提出区域建议网络RPN,快速生成候选区域;

2、通过交替训练,使RPN和Fast-RCNN网络共享参数。

另外Faster RCN已经将特征抽取(feature extraction),proposal提取(RPN),bounding box regression,classification都整合在了一个网络中,使得综合性能有较大提高,在检测速度方面尤为明显

1RPN网络

RPN网络的作用是输入一张图像,输出一批矩形候选区域,类似于Selective Search的作用,网络结构是卷积神经网络,输出时包含softmax二类分类器(是否是候选框)和bbox回归得出候选边界框的位置的四个参数(box的中心坐标xy和box长h宽w),

2anchor机制

anchor是rpn网络的核心,RPN网络需要确定每个滑窗中心对应感受野内存在目标与否,但是由于目标大小和长宽比例不一,需要多个尺度的窗。所以Anchor正是给出一个基准窗大小,可以按照倍数和长宽比例可以得到不同大小的窗,论文中基准窗大小为16,给了(8、16、32)三种倍数和(0.5、1、2)三种比例,这样能够得到一共9种尺度的anchor。

例如:在对60*40的特征图map进行滑窗时,以中心像素为基点构造9种anchor映射到原来的1000*600图像中,映射比例为16倍。那么总共可以得到60*40*9大约2万个anchor。

3、训练

对于分类器,采anchor是否有目标,用了这样的规则判断:1)假如某anchor与任一目标区域的IoU最大,则该anchor判定为有目标;2)假如某anchor与任一目标区域的IoU>0.7,则判定为有目标;3)假如某anchor与任一目标区域的IoU<0.3,则判定为背景。

所谓IoU,就是预测box和真实box的覆盖率,其值等于两个box的交集除以两个box的并集。其它的anchor不参与训练。

对于回归器:判定为有目标的anchor,并将其标注的坐标作为ground truth

代价函数为:

代价函数分为两部分,前边对应anchor中是否有目标的分类误差,后边对应bbox回归误差。

4、联合训练

1) 单独训练RPN网络,网络参数由预训练模型载入;

2) 单独训练Fast-RCNN网络,将第一步RPN的输出候选区域作为检测网络的输入。具体而言,RPN输出一个候选框,通过候选框截取原图像,并将截取后的图像通过几次conv-pool,然后再通过roi-pooling和fc再输出两条支路,一条是目标分类softmax,另一条是bbox回归。截止到现在,两个网络并没有共享参数,只是分开训练了;

3) 再次训练RPN,此时固定网络公共部分的参数,只更新RPN独有部分的参数;

4) 那RPN的结果再次微调Fast-RCNN网络,固定网络公共部分的参数,只更新Fast-RCNN独有部分的参数。

5、其他理解

从上图来看:
1) Faster RCNN首先使用一组基础conv layer(conv+relu+pooling层)提取image的feature maps。该feature maps被共享用于后续RPN层和全连接层。

2) RPN(Region Proposal Networks)。RPN网络用于生成region proposals。该层通过softmax判断anchors属于foreground或者background,再利用bounding box regression修正anchors的位置,最终获得精确位置的region proposals(候选框)。

3)RoI Pooling。输入的feature maps和候选框(region proposals),综合这些信息后提取proposal feature maps,送入后面全连接层判定目标类别。

4)Classification and regression。利用proposal feature maps计算region proposal中物体的类别,同时再次bounding box regression获得检测框最终的精确位置。

6、其他理解

I是输入图像,conv是卷积层,H是network head,C使classification即Softmax二分类anchor中是否有目标,B是Bbox回归得到候选框,pool是ROI Pooling

7、其他概念

bounding box regression:对定位不准的边界框进行微调,即寻找一种映射关系是定位不准的边界框经过映射后得到跟ground true接近的边界框。

RPN步骤:生成anchors -> softmax分类器提取fg anchors -> bbox reg回归fg anchors -> Proposal Layer过滤得到最终的proposal  boxs

多通道卷积:对多通道图像做1x1卷积,其实就是将输入图像于每个通道乘以卷积系数后加在一起,即相当于把原图像中本来各个独立的通道“联通”在了一起。

Faster-RCNN的一些记录。相关推荐

  1. 使用Faster R-CNN(linux-pytorch)训练自己的数据集过程记录

    目录 准备工作 源码下载 配置环境 制作VOC数据集 data目录结构 训练 编译CUDA依赖环境 预训练模型 修改pascal_voc.py文件 进行训练 遇到的问题 主要参考文章 准备工作 源码下 ...

  2. Faster RCNN训练自己数据集报错记录及解决

    Faster R-CNN源码网址:https://github.com/dBeker/Faster-RCNN-TensorFlow-Python3.5点击打开链接 环境:python3.6 tenso ...

  3. wider face data 在 faster rcnn 上的实践记录(caffe)

    按照githup上playerkk的工程进行实践,地址为:https://github.com/playerkk/face-py-faster-rcnn/blob/master/README.md 1 ...

  4. 后 R-CNN时代, Faster R-CNN、SSD、YOLO 各类变体统治下的目标检测综述:Faster R-CNN系列胜了吗?,(知乎ChenJoya大佬,讲的挺好的,记录一下)

    我们检测到你可能使用了 AdBlock 或 Adblock Plus,它的部分策略可能会影响到正常功能的使用(如关注). 你可以设定特殊规则或将知乎加入白名单,以便我们更好地提供服务. (为什么?) ...

  5. faster rcnn tensorflow版本遇到的问题记录

    1. fatal error: nsync_cv.h: No such file or directory a. 找到~/tensorflow/venvpy27/lib/python2.7/site- ...

  6. 目标检测——Faster R-CNN论文阅读

    论文阅读--Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks 文章目录 论文阅读--Faste ...

  7. 里程碑式成果Faster RCNN复现难?我们试了一下 | 附完整代码

    作者 | 已退逼乎 来源 | 知乎 [导读]2019年以来,除各AI 大厂私有网络范围外,MaskRCNN,CascadeRCNN 成为了支撑很多业务得以开展的基础,而以 Faster RCNN 为基 ...

  8. 你真的理解Faster RCNN吗?捋一捋Pytorch官方Faster RCNN代码

    作者丨白裳@知乎 来源丨https://zhuanlan.zhihu.com/p/145842317 编辑丨极市平台 目前 pytorch 已经在 torchvision 模块集成了 FasterRC ...

  9. 【技术综述】万字长文详解Faster RCNN源代码

    文章首发于微信公众号<有三AI> [技术综述]万字长文详解Faster RCNN源代码 作为深度学习算法工程师,如果你想提升C++水平,就去研究caffe源代码,如果你想提升python水 ...

  10. Faster RCNN代码理解(Python) ---训练过程

    最近开始学习深度学习,看了下Faster RCNN的代码,在学习的过程中也查阅了很多其他人写的博客,得到了很大的帮助,所以也打算把自己一些粗浅的理解记录下来,一是记录下自己的菜鸟学习之路,方便自己过后 ...

最新文章

  1. TSM简介(一)- 原理与特点
  2. beats 耳机 android,Beats耳机app
  3. 分享--关于学习的一些事儿
  4. mysql启动warning: World-writable config file
  5. P3527-[POI2011]MET-Meteors【整体二分,树状数组】
  6. 各个行业纷纷瞅准了这块大蛋糕
  7. 机器学习模型导出为PMML的方法
  8. ACDU活动回顾:@DBA,前辈指路不迷茫
  9. 繁体中文转换为简体中文的PHP类
  10. SQL数据库实战之查找当前薪水详情以及部门编号dept_no
  11. OpenCV-图像处理(13、图像上采样和降采样)
  12. 深透研究病毒2—冲击波病毒
  13. 搜索引擎基本工作原理
  14. 8.如何在idea打开一个已有项目
  15. 3.3.3 Camelot亚瑟王的宫殿 USACO
  16. visio2019画思维导图
  17. 三菱FX3U与欧姆龙E5CZ温控器485通讯案例
  18. 【实习之路】三本的我字节实习转正,终于尘埃落定——分享我的大学四年
  19. 东方财富通快捷键一览
  20. 用小白鼠试验毒水问题

热门文章

  1. H5移动端开发学习总结
  2. CentOS 6.7 FTP安装配置之pure-ftpd
  3. swift3.0 Runtime 增加属性
  4. android LinearLayout添加分隔线
  5. 科学家公布地球“裸照”
  6. IEEE R10 SAC Special Call for Proposals
  7. cambridge sharing note 1
  8. 亲测可用的github只下载一个文件夹的方法
  9. 2021第三封拒信来自哈佛大学计算机科学与技术专业~
  10. 使用Apple的感受