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. 扩展thinkphp5的redis类方法

    笔者在开发时发现,thinkphp5的自带redis类方法,只有简单的读取缓存.写入缓存的基本方法,远不能满足我们业务的需求.redis本身支持五种数据类型,string(字符串).hash(哈希). ...

  2. LabVIEW - 破解加密vi

    步骤 使用二进制阅读软件打开加密vi 查找字段"00 00 00 30",其后的16位即可能是密码(可能查找到多个位置带有该字段,只有其中之一为密码位置) 将查找到的密码复制到MD ...

  3. 钉钉/支付宝小程序和微信小程序的区别及转换方案

    最近接到一个工作任务,是把钉钉小程序转微信小程序... 对,居然还有这种操作,之前只听过微信小程序转支付宝小程序的,钉钉转微信是什么鬼

  4. Git 时光穿梭鸡 撤销修改

    工作区内容修改了, 但是并未add到暂存区, 想 回退到上一个版本 在readme.txt中添加了一行: Git is a distributed version control system. Gi ...

  5. ue4 bp singleton

    .h UCLASS(Blueprintable) class USingletonBP: public UObject { GENERATED_UCLASS_BODY() /** * Singleto ...

  6. JS 上拉加载

    $(document).ready( function(){ $contentLoadTriggered = false; $("#mainDiv").scroll(functio ...

  7. MySQL最佳客户端工具 -- SQLyog 13.1.1.0 安装与注册

    一.前言 SQLyog是一个易于使用的.快速而简洁的图形化管理MYSQL数据库的工具,它能够在任何地点有效地管理你的数据库!SQLyog是业界著名的 Webyog 公司出品的一款简洁高效.功能强大的图 ...

  8. PAT甲级——1107 Social Clusters (并查集)

    本文同步发布在CSDN:https://blog.csdn.net/weixin_44385565/article/details/90409731 1107 Social Clusters (30  ...

  9. Django之extra

    extra过滤 extra extra(select=None, where=None, params=None, tables=None, order_by=None, select_params= ...

  10. list remove元素

    public class TestList { public static void main(String[] args) { List<Integer> list = new Link ...