0 - 背景

  R-CNN中检测步骤分成很多步骤,fast-RCNN便基于此进行改进,将region proposals的特征提取融合成共享卷积层问题,但是,fast-RCNN仍然采用了selective search来进行region proposals的预测,者称为性能的瓶颈(selective search不能在GPU上运行,还没搞懂为何?)。因此faster-RCNN提出采用RPN网络来生成region proposals,且RPN和ROI Pooling之前的特征提取共享特征提取卷积层来加速模型。

  R-CNN/fast-RCNN/faster-RCNN的对比图如下(图来自博客

1 - 整体思路

  

(图来自博客

1.1 - Region Proposal Networks(RPN)

  RPN网络将一张图片(大小不限制)作为输入,输出一系列的proposals,并且每一个都有非背景(前景)得分。

(图来自博客

1.2 - Anchors

  参照图片金字塔思想,对于窗口(sliding windows)的每一个坐标,同时预测k个尺度的proposals,因此CLS有2k个输出(即每一个proposal是否为背景),reg有4k个输出(即对该边框回归偏移量),对于同一个位置的k个proposals称之为anchor,其可以通过面积以及长宽比进行定义。文中采用了9个anchor:三种面积$\{128^2,256^2,512^2\}\times$三种比例$\{1:1,1:2,2:1\}$。

           

  注意到,由于Anchors是对称出现了,所以保证了Translation-Invariant Anchors(翻转不变性),即对于同一个物体被翻转但仍然可以用相同的函数进行预测。

1.3 - 窗口分类&位置精修

  分类层输出每一个位置上anchor属于前景还是背景的概率(从proposal提取出256维特征),窗口回归层输出每一个位置上anchor对应窗口与真实边界框的平移缩放参数(4个平移缩放参数)。

1.4 - 训练

1.4.1 - 样本

  考虑训练集中的每张图片:

  • 对于每个标注了真实边界框的位置,与其IOU最大的anchor记为前景样本
  • 对第一步剩下的anchor,若其与真实边界框的IOU值大于0.7,记为前景样本,如果小于0.3,记为背景样本
  • 对于上述两步剩下的anchor丢弃不用
  • 跨越图像边界的anchor丢弃不用
1.4.2 - 损失函数

$$L({p_i},{t_i})=\frac{1}{N_{cls}}\sum_{i}L_{cls}(p_i,p_i^*)+\lambda \frac{1}{N_{reg}}\sum_{i}p_i^*L_{reg}(t_i,t_i^*)$$

1.4.3 - 近似联合训练

  在SGD过程中,在训练的时候先前向传播,产生proposals后就认为proposlas是固定的,接着用其训练Fast RCNN,损失函数是它们共同的损失函数,这种方法同时迭代两个网络的参数,作者认为效果不好(我认为是将共有的特征抽取分离了?)

1.4.4 - 交替训练
  • 从$W_0$开始,训练PRN,用PRN提取训练集上的proposals
  • 从$W_0$开始,用proposals训练Fast RCNN,参数记为$W_1$
  • 从$W_1$开始,训练PRN

  执行两次迭代,并且在训练时冻结部分共享层,可以达到不错的效果。

2 - 实验

  相比Fast RCNN消除了selective search的性能瓶颈,提高了模型效率。且与使用selective search方法相比,每张图生成的proposals从2000减少到300时,RPN方法(红蓝)的召回率下降不大,这说明RPN目的性更明确。

    

  使用更大的Miscrosoft COCO库训练,直接在PASCAL VOC上测试,准确率提高6%,说明faster RCNN的泛化能力(迁移能力)良好,没有在训练集上过拟合。

        

3 - 参考资料

https://segmentfault.com/a/1190000012789608

https://blog.csdn.net/shenxiaolu1984/article/details/51152614

https://www.cnblogs.com/CZiFan/p/9903518.html

https://www.cnblogs.com/CZiFan/p/9901729.html

https://www.cnblogs.com/CZiFan/p/9901000.html

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(理解)的更多相关文章

  1. 中文版 Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

    Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 摘要 最先进的目标检测网络依靠区域提出算法 ...

  2. 深度学习论文翻译解析(十三):Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

    论文标题:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 标题翻译:基于区域提议(Regi ...

  3. [论文理解] Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

    Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 简介 Faster R-CNN是很经典的t ...

  4. 目标检测(四)Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

    作者:Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun SPPnet.Fast R-CNN等目标检测算法已经大幅降低了目标检测网络的运行时间. ...

  5. 论文阅读笔记二十七:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(CVPR 2016)

    论文源址:https://arxiv.org/abs/1506.01497 tensorflow代码:https://github.com/endernewton/tf-faster-rcnn 室友对 ...

  6. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks论文理解

    一.创新点和解决的问题 创新点 设计Region Proposal Networks[RPN],利用CNN卷积操作后的特征图生成region proposals,代替了Selective Search ...

  7. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

    将 RCN 中下面 3 个独立模块整合在一起,减少计算量: CNN:提取图像特征 SVM:目标分类识别 Regression 模型:定位 不对每个候选区域独立通过 CN 提取特征,将整个图像通过 CN ...

  8. 【CV论文阅读】Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

    由RCNN到FAST RCNN一个很重要的进步是实现了多任务的训练,但是仍然使用Selective Search算法来获得ROI,而FASTER RCNN就是把获得ROI的步骤使用一个深度网络RPN来 ...

  9. 目标检测--Scalable Object Detection using Deep Neural Networks(CVPR 2014)

    Scalable Object Detection using Deep Neural Networks 作者: Dumitru Erhan, Christian Szegedy, Alexander ...

随机推荐

  1. ESP8266远程OTA升级

    https://blog.csdn.net/xh870189248/article/details/80095139 https://www.wandianshenme.com/play/arduin ...

  2. php curl cookie 读写

    普通 curl post 请求 public static function curlPost($url, $post_fields = array(), $timeout = 5) { $timeo ...

  3. Do You Kown Asp.Net Core - 根据实体类自动创建Razor Page CURD页面模板

    Scaffolding Template Intro 我们知道在Asp.Net MVC中,如果你使用的EF的DBContext的话,你可以在vs中通过右键解决方案-添加控制器-添加包含视图的控制器,然 ...

  4. 【学习总结】GirlsInAI ML-diary day-13-Try/Except 异常处理

    [学习总结]GirlsInAI ML-diary 总 原博github链接-day13 认识异常处理 要点小结: try和except是同个等级,注意对齐和缩进 可以把try和except直接理解成另 ...

  5. AngularJS 1.x系列:AngularJS简介及第一个应用(2)

    1. 安装AngularJS 1.1 AngularJS官网 Github源码:https://github.com/angular/angular.js 官网:https://angularjs.o ...

  6. vue 使用小结 2019.03

    v-bind 中使用函数 :attr = 'num' 如上面的例子,通常 num 是 vue 实例中 data 的值,或者是 computed 对象中的值,我们可以在具体函数中计算,改变相应的变量,以 ...

  7. Python 离线 安装requests第三方库

    一.介绍 requests是Python的一个HTTP客户端库,跟urllib,urllib2类似,不过requests的优势在于使用简单,相同一个功能,用requests实现起来代码量要少很多.毕竟 ...

  8. python之函数闭包、可迭代对象和迭代器

    一.函数名的应用 # 1,函数名就是函数的内存地址,而函数名()则是运行这个函数. def func(): return print(func) # 返回一个地址 # 2,函数名可以作为变量. def ...

  9. Win下端口占用问题:OSError: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试

    常见问题:https://www.cnblogs.com/dotnetcrazy/p/9192089.html netstat -ano|findstr 8080 如果不计较端口,换个即可 也可以查找 ...

  10. 洛谷P1072 Hankson 的趣味题(题解)

    https://www.luogu.org/problemnew/show/P1072(题目传送) 数学的推理在编程的体现越来越明显了.(本人嘀咕) 首先,我们知道这两个等式: (a0,x)=a1,[ ...