先上图看一下Faster R-CNN操作流程:


 图片说明:Faster R-CNN=Fast R-CNN+RPN,其中Fast R-CNN结构不变;RPN负责生成proposals,配合最后一层的feature map,使用ROI Pooling,生成fixed length的feature vector。我们详细讨论一下RPN的操作过程

图片说明,红框只是一个滑窗的操作过程,注意这里的anchor是原图像像素空间,而不是feature map上的。这样
anchor是RPN的核心:

       假设我们现在得到的feature map为W * H * C(13 * 13 * 256就是feature map的width=13,height=13,channel=256),我们如何产生网络需要的proposals呢?我们在feature map使用滑动窗口的操作方式(stride=1,padding=1),当前滑窗的中心在原像素空间的映射点称为anchor,以此anchor为中心,生成k(paper中default k=9, 3 scales and 3 aspect ratios)个proposals。
在此feature map滑动一个mini-network,这个network输入是3 * 3 * 256,经过3 * 3 * 256 * 256的卷积,得到1 * 1 * 256的低维向量;接下来进行分类:①Classification:经过1 * 1 * 256 * 18的卷积核,得到1 * 1 * 18的feature vector,分别代表9个proposals的是/不是Object的概率(这里有一个疑惑,为什么要生成一对?生成一个是Object的概率不就好了?也许是为了设计方便?);②Regression:经过1 * 1 * 256 * 36的卷积核,得到1 * 1 * 36的feature vector,分别代表9个proposals的(center_x,center_y,w,d)。
上述操作只是一个3 * 3的滑动窗口的操作过程,实际操作过程中,必须将13 * 13的feature map均执行一边;于是在RPN中,产生了两个损失函数:①Classification loss②Regression loss。
这样的话,通过滑动窗口和anchor机制,我们就可以找到固定比例、一定大小的proposals:①物体大小不同导致的proposal被覆盖②物体aspects ratios不同导致proposals也被覆盖
由上可知,NRP可以代替Selective Search产生proposals,而且最关键的一点是RPN 更快
ROI pooling V.S. SSP Pooling 
ROI是只有一层的

SSP Pooling:ROI Pooling将proposal在feature map上的对应区域分为W * H 份,每一份取Max/Avg 将其放到固定位置
SSP Pooling是将proposal分为(4 * 4 / 2 * 2 / 1 * 1份,然后进行拼接,得到fixed length=21的feature vector)

对于Faster-RCNN的解读:https://zhuanlan.zhihu.com/p/31426458

理解Faster-RCNN 中的Anchor的更多相关文章

  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 简介 Faster R-CNN是很经典的t ...

  2. 对faster rcnn 中rpn层的理解

    1.介绍 图为faster rcnn的rpn层,接自conv5-3 图为faster rcnn 论文中关于RPN层的结构示意图 2 关于anchor: 一般是在最末层的 feature map 上再用 ...

  3. 一个门外汉的理解 ~ Faster R-CNN

    首先放R-CNN的原理图 显然R-CNN的整过过程大致上划分为四步: 1.输入图片 2.生成候选窗口 3.对局部窗口进行特征提取(CNN) 4.分类(Classify regions) 而R-CNN的 ...

  4. 理解Faster R-CNN

    首先放R-CNN的原理图 显然R-CNN的整过过程大致上划分为四步: 1.输入图片 2.生成候选窗口 3.对局部窗口进行特征提取(CNN) 4.分类(Classify regions) 而R-CNN的 ...

  5. tensorflow object detection faster r-cnn 中keep_aspect_ratio_resizer是什么意思

    如果小伙伴的英语能力强可以直接阅读这里:https://stackoverflow.com/questions/45137835/what-the-impact-of-different-dimens ...

  6. 原 CNN--卷积神经网络从R-CNN到Faster R-CNN的理解(CIFAR10分类代码)

    1. 什么是CNN 卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Netwo ...

  7. Object Detection(RCNN, SPPNet, Fast RCNN, Faster RCNN, YOLO v1)

    RCNN -> SPPNet -> Fast-RCNN -> Faster-RCNN -> FPN YOLO v1-v3 Reference RCNN: Rich featur ...

  8. 目标检测 1 : 目标检测中的Anchor详解

    咸鱼了半年,年底了,把这半年做的关于目标的检测的内容总结下. 本文主要有两部分: 目标检测中的边框表示 Anchor相关的问题,R-CNN,SSD,YOLO 中的anchor 目标检测中的边框表示 目 ...

  9. Faster RCNN代码理解(Python)

    转自http://www.infocool.net/kb/Python/201611/209696.html#原文地址 第一步,准备 从train_faster_rcnn_alt_opt.py入: 初 ...

  10. Faster rcnn代码理解(4)

    上一篇我们说完了AnchorTargetLayer层,然后我将Faster rcnn中的其他层看了,这里把ROIPoolingLayer层说一下: 我先说一下它的实现原理:RPN生成的roi区域大小是 ...

随机推荐

  1. 修改oracle数据库时间

    1.修改前需要先停止 oracle 数据库服务 2.修改 oracle 数据库所在的服务器时间 3.再次启动 oracle 数据库,即可 以上就是小编修改 oracle 数据库的时间,修改完之后,其他 ...

  2. [bzoj1090][SCOI2003]字符串折叠_区间dp

    字符串折叠 bzoj-1090 SCOI-2003 题目大意:我说不明白...链接 注释:自己看 想法:动态规划 状态:dp[i][j]表示从第i个字符到第j个字符折叠后的最短长度. 转移:dp[l] ...

  3. 洛谷 P2728 纺车的轮子 Spinning Wheels

    P2728 纺车的轮子 Spinning Wheels 题目背景 一架纺车有五个纺轮(也就是五个同心圆),这五个不透明的轮子边缘上都有一些缺口.这些缺口必须被迅速而准确地排列好.每个轮子都有一个起始标 ...

  4. git merge和git rebase的区别和异同

    1.git  merge和git rebase作用差不多,都是将远程代码和本地代码合并 2.git  merge和git rebase作用差不多,都是将远程代码和本地代码合并 3.git  merge ...

  5. How to pass external configuration properties to storm topology?

    How to pass external configuration properties to storm topology? I want to pass some custom configur ...

  6. SecureCRTPortal保存的密码位置

    SecureCRTPortal保存的密码位置 Options> Global Options > Configuration Folder 一般为:C:\Users\Administrat ...

  7. 什么是鸭子类型(duck typing)

    "当看到一仅仅鸟走起来像鸭子.游泳起来像鸭子.叫起来也像鸭子,那么这仅仅鸟就能够被称为鸭子." 我们并不关心对象是什么类型,究竟是不是鸭子,仅仅关心行为. 比方在python中.有 ...

  8. php study80端口被占用

    php study80端口被占用 在网上找了各种办法,说是用命令查看占用端口的软件,将其停止,我发现我的端口是被system进程占用,而且这进程还结束不了. 1.打开PHPstudy,如图:打开端口常 ...

  9. 关于Spring中的<context:annotation-config/>配置作用

    转自:https://www.cnblogs.com/iuranus/archive/2012/07/19/2599084.html 当我们需要使用BeanPostProcessor时,直接在Spri ...

  10. SwiftUI 官方教程(一)

    完整中文教程及代码请查看 https://github.com/WillieWangWei/SwiftUI-Tutorials   创建和组合 View 此部分将指引你构建一个发现和分享您喜爱地方的 ...