理解Faster-RCNN 中的Anchor
先上图看一下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的更多相关文章
- [论文理解] 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 ...
- 对faster rcnn 中rpn层的理解
1.介绍 图为faster rcnn的rpn层,接自conv5-3 图为faster rcnn 论文中关于RPN层的结构示意图 2 关于anchor: 一般是在最末层的 feature map 上再用 ...
- 一个门外汉的理解 ~ Faster R-CNN
首先放R-CNN的原理图 显然R-CNN的整过过程大致上划分为四步: 1.输入图片 2.生成候选窗口 3.对局部窗口进行特征提取(CNN) 4.分类(Classify regions) 而R-CNN的 ...
- 理解Faster R-CNN
首先放R-CNN的原理图 显然R-CNN的整过过程大致上划分为四步: 1.输入图片 2.生成候选窗口 3.对局部窗口进行特征提取(CNN) 4.分类(Classify regions) 而R-CNN的 ...
- tensorflow object detection faster r-cnn 中keep_aspect_ratio_resizer是什么意思
如果小伙伴的英语能力强可以直接阅读这里:https://stackoverflow.com/questions/45137835/what-the-impact-of-different-dimens ...
- 原 CNN--卷积神经网络从R-CNN到Faster R-CNN的理解(CIFAR10分类代码)
1. 什么是CNN 卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Netwo ...
- Object Detection(RCNN, SPPNet, Fast RCNN, Faster RCNN, YOLO v1)
RCNN -> SPPNet -> Fast-RCNN -> Faster-RCNN -> FPN YOLO v1-v3 Reference RCNN: Rich featur ...
- 目标检测 1 : 目标检测中的Anchor详解
咸鱼了半年,年底了,把这半年做的关于目标的检测的内容总结下. 本文主要有两部分: 目标检测中的边框表示 Anchor相关的问题,R-CNN,SSD,YOLO 中的anchor 目标检测中的边框表示 目 ...
- Faster RCNN代码理解(Python)
转自http://www.infocool.net/kb/Python/201611/209696.html#原文地址 第一步,准备 从train_faster_rcnn_alt_opt.py入: 初 ...
- Faster rcnn代码理解(4)
上一篇我们说完了AnchorTargetLayer层,然后我将Faster rcnn中的其他层看了,这里把ROIPoolingLayer层说一下: 我先说一下它的实现原理:RPN生成的roi区域大小是 ...
随机推荐
- Flask中的session操作
一.配置SECRET_KEY 因为flask的session是通过加密之后放到了cookie中.所以有加密就有密钥用于解密,所以,只要用到了flask的session模块就一定要配置“SECRET_K ...
- opencart的语言包安装
语言包复制到对应的目录: 前台:将档案上传至商店根目录\catalog\language\ 后台:将档案上传至商店根目录\admin\language\ 在后台: 增加了中文语言包 ========= ...
- 2-SAT·hihoCoder音乐节
2-SAT·hihoCoder音乐节 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 hihoCoder音乐节由hihoCoder赞助商大力主办,邀请了众多嘉宾和知名乐队 ...
- hdu 4009 最小树形图模板题朱刘算法
#include<stdio.h> /*思路:显然对于每个地方, 只有一种供水方式就足够了,这样也能保证花费最小, 而每个地方都可以自己挖井,所以是不可能出现无解的情况的, 为了方便思考, ...
- mysql优化 explain index
本文章属于转载,尊重原创:http://www.2cto.com/database/201501/369135.html 实验环境: 1.sql工具:Navicat 2.sql数据库,使用openst ...
- Python面向切面编程-语法层面和functools模块
1,Python语法层面对面向切面编程的支持(方法名装饰后改变为log) __author__ = 'Administrator' import time def log(func): def wra ...
- Hadoop入门进阶步步高(一)-环境准备
前言 Hadoop从存储上来说,是相似于冗余磁盘阵列(RAID)的存储方式.将数据分散存储并提供以提供吞吐量,它的存储系统就是HDFS(Hadoop Distuibute Fils System).从 ...
- 自己主动化的在程序中显示SVN版本号
有时候会有这种情况,策划拿着应用过来提一个bug,但我们却不好确定策划的手机上装的应用相应的是那个代码版本号. 为了解决问题.我们希望能在应用上显示出当前应用所相应的代码版本号,即svn版本号. 构想 ...
- java中tcp小样例
服务端: ServerSocket service = new ServerSocket(7777); Socket socket = service.accept(); InputStream in ...
- _DataStructure_C_Impl:链串
//_DataStructure_C_Impl:链串 #include<stdio.h> #include<stdlib.h> #include<string.h> ...