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

简介

Faster R-CNN是很经典的two-stage的目标检测方法,前面看了Selective Search以为在这里可以用到,但是作者在这篇文章里面没有采用Selective Search方法得到候选框,而是采用了Edge Boxes方法得到的候选框,好吧,再去看看这个方法到底快在哪里。Faster R-CNN分为两个过程,第一个过程是通过RPN网络得到候选框,第二个过程是利用Fast RCNN网络进行分类,普遍two-stage网络的准确度比one-stage的高,但是速度很慢。

Faster R-CNN

faster rcnn 大致流程图如下

网络结构

Region Proposal Network

RPN网络是用来获取proposals的网络,将任意size的图片输入到网络中,得到多组proposals,这些proposals包含中心点的位置x、y和宽高w、h来唯一确定一个框,而怎么得到这些proposals呢?

文中是先用一个小网络得到feature map,这个feature map是 13✖13✖256的,然后采用一个n✖n的滑窗去滑这个feature map,得到一个256-d的向量,而文章中是使用的n=3的滑窗去滑的。这个滑动过程其实是用一个3✖3✖256✖256的卷积核去卷积的过程。

anchors

在每个滑窗的区域,会同时预测多个region proposals,假定每个sliding window预测k种框,那么regression layer就输出4k个参数,很好理解,就是x、y、w、h;cls层输出2k个scores,即是背景还是不是背景。而文章中的anchor指的就是每个sliding window的中心,文章默认采用了3种scale和3种aspect ratio,也就是9种不同的长宽比放缩比,这样每个anchor对应的就是原图种的1种位置,也就是说一个feature map中的点对应9个anchor。假设feature map是W✖H的,那么我们会得到9WH个anchor。

文中方法最终要的一点就是anchors具有平移不变性。也就是说,如果图像中的某一个物体发生了平移,那么我们应该能够通过同样的方法也能够准确的预测到这个proposal,无论它在任何位置。

最终应该生成这九种anchor box

Loss Function

我们可以知道,输出的是两部分,一部分是是不是背景的分类loss,另一部分是预测的bbox的坐标宽高的regression loss,于是很容易去理解作者下图中的loss function。

参数解释在上图中。其中Ncls和Nreg是归一化的,λ是用来调整两个loss之间权重分配的,也很好理解。

作者在文中采用的是Ncls=256,Nreg约等于2400,这样他的λ设置成了10,这是为了使得两者权重大致相等。而下面又解释了公式中t也就是变换是怎么计算的:

参数解释当然也在图中。

之所以需要求这个t,是因为实际预测到的框和ground-truth box之间是有一定差距的,比如下面这张图:

所以我们通过求得一个线性变换使得A框能够尽可能接近G框,变换的结果就是G'框,这样可以使得结果更接近G。而上面公式的解释呢,我理解的就是分别计算anchor和预测的框之间的变换、anchor和ground truth 框之间的变换,通过这两个变换来计算loss,也就是上面那个公式里的Lreg部分。

标记anchor

我们知道,loss里面关于是不是背景也有个loss,标记规则很简单

  1. 超过1000✖600的anchor box去除
  2. IOU最大,label=1
  3. IOU>0.7,label=1
  4. IOU<0.3,label=0

训练

然后就是训练RPN了。在训练RPN的时候呢,一个Mini batch是我们在一张图中随机选取的256个proposal组成的,正负样本的比例应该是1比1,正样本不足128,就补负样本,负样本不足就补正样本(一般负样本不会不足)。

一个非常透彻的理解:Faster R-CNN中RPN网络的理解
论文原文:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

[论文理解] 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 标题翻译:基于区域提议(Regi ...

  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 摘要 最先进的目标检测网络依靠区域提出算法 ...

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

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

  4. 论文阅读笔记二十七: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 室友对 ...

  5. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(理解)

    0 - 背景 R-CNN中检测步骤分成很多步骤,fast-RCNN便基于此进行改进,将region proposals的特征提取融合成共享卷积层问题,但是,fast-RCNN仍然采用了selectiv ...

  6. 目标检测(四)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等目标检测算法已经大幅降低了目标检测网络的运行时间. ...

  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. [论文理解] Acquisition of Localization Confidence for Accurate Object Detection

    Acquisition of Localization Confidence for Accurate Object Detection Intro 目标检测领域的问题有很多,本文的作者捕捉到了这样一 ...

随机推荐

  1. C++开源库(一) ----libConfig详解

    博主天生患有蛋疼疾病,写博不易,转载注明出处http://www.cnblogs.com/liboBlog/,谢谢! 在写程序的时候必不可少的一个部分就是conf文件的解析,但是如果自己解析的话会比较 ...

  2. ASP.NET Core MVC 视图

    ASP.NET Core MVC中视图的知识和ASP.NET MVC有很多相似之处,学习难度较低.以下内容主要体现了编程中模块化的思想,模块化才应是我们关注的重点. Layout 布局用于提供各个页面 ...

  3. CSS 绝对定位与相对定位的区别

    设置为绝对定位的元素框从文档流完全删除, 并相对于其包含块定位,包含块可能是文档中的另一个元素或者是初始包含块. 元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样. 元素定位后生成一 ...

  4. window安装android打包环境

    1.下载jdkhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载:jdk-8u1 ...

  5. java五行代码导出Excel

    目录 先看代码 再看效果 EasyExcel 附: Java按模板导出Excel---基于Aspose实现 Java无模板导出Excel,Apache-POI插件实现 已经写过两种Excel导出插件了 ...

  6. 笔记-JavaWeb学习之旅17

    1.过滤选择器 首元素选择器:first 获得选择的元素中的第一个元素 尾元素选择器:last获得选择元素中的最后一个元素 非元素选择器:not(selector) 不包括指定内容的元素 偶数选择器: ...

  7. NOIp知识集合 By cellur925

    基本算法 快速幂 ll ksm(ll a,ll b) { ll ans=; while(b) { ) ans=ans*a%p; b>>=; a=a*a%p; } return ans; } ...

  8. python接口自动化(三十九)- logger 日志 - 上(超详解)

    简介 Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用.这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/POST,SMTP, ...

  9. c# Array或List有个很实用的ForEach方法,可以直接传入一个方法对集合中元素操作

    using System; using System.Collections.Generic; namespace demo { class Program { static void Main(st ...

  10. 微信小程序 笔记

    1.Input 输入控件 <input type='digit' placeholder='0.00'></input> 如果要使用单纯的数字控件,使那么可以将type设置为d ...