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. vc++图像显示

    显示资源中的图片 (1)从资源中装入位图 ● 定义位图对象数据成员CBitmap m_Bitmap; ● 调用CBitmap成员函数LoadBitmap(),如m_Bitmap.LoadBitmap( ...

  2. CodeForces - 633B A Trivial Problem 数论-阶乘后缀0

    A Trivial Problem Mr. Santa asks all the great programmers of the world to solve a trivial problem. ...

  3. 浏览器版本低于IE10跳转到指定网页

    var userAgent = navigator.userAgent; var ie6 = (/msie\s*(\d+)\.\d+/g.exec(userAgent.toLowerCase()) | ...

  4. [Xcode 实际操作]七、文件与数据-(11)数据持久化存储框架CoreData的使用:创建CoreData实体并插入数据

    目录:[Swift]Xcode实际操作 本文将演示[CoreData]数据持久化存储框架的使用. 点击[Create a new Xcode project]创建一个新的项目 ->[Single ...

  5. 立个flag---每天一篇博客

    从今天开始,需要更努力的学习了.开始写博客.锻炼自己,提高自己,争取可以从前端小菜鸟变成技术大牛.加油!

  6. 详解环境搭建SSM

    1.概述: SSM即为spring 4 +spring mvc +mybatis 3.4.6 推荐使用maven或者gradle 来配置 下面给出maven配置方式 2.项目结构: 新建web项目 这 ...

  7. .NET 基础 一步步 一幕幕[Winform应用程序]

    时隔半载,重回博客园,一切从头再来,今天只是开始,原谅我这一生放荡不羁爱自由. 进入今天得主题曲:Winform应用程序(简介) 1.      winform应用程序是一种智能客户端技术,我们可以使 ...

  8. Sonya and Matrix Beauty Codeforces - 1080E

    https://codeforces.com/contest/1080/problem/E 比赛时候一个多小时码不出来... 来看遇到的困难: 1.没有能用的随机unsignedlonglong函数 ...

  9. Roslyn 编译器和RyuJIT 编译器

    Roslyn 编译器 https://msdn.microsoft.com/zh-cn/library/mt162308.aspx https://blogs.msdn.microsoft.com/d ...

  10. python 遇到的一些问题和解决方法

    安装crypto  python3里面这个改成了pycryptodome 1. pip3 install pycryptodome 或者 pip3 install -i https://pypi.do ...