深度学习之学习(1-2)感受野(receptive field)
参见:原始图片中的ROI如何映射到到feature map? - 知乎
1 感受野的概念
在卷积神经网络中,感受野的定义是 卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小。
2、感受野的计算
感受野计算时有下面的几个情况需要说明:
(1)第一层卷积层的输出特征图像素的感受野的大小等于滤波器的大小
(2)深层卷积层的感受野大小和它之前所有层的滤波器大小和步长有关系
(3)计算感受野大小时,忽略了图像边缘的影响,即不考虑padding的大小,关于这个疑惑大家可以阅读一下参考文章2 machine learning - Receptive Fields on ConvNets (Receptive Field size confusion) - Stack Overflowhttp://stackoverflow.com/questions/37136829/receptive-fields-on-convnets-receptive-field-size-confusion/37143998#37143998 的解答进行理解
这里的每一个卷积层还有一个strides的概念,这个strides是之前所有层stride的乘积。
即strides(i) = stride(1) * stride(2) * ...* stride(i-1)
关于感受野大小的计算采用top to down的方式, 即先计算最深层在前一层上的感受野,然后逐渐传递到第一层,使用的公式可以表示如下:
RF = 1 #待计算的feature map上的感受野大小
for layer in (top layer To down layer):
RF = ((RF -1)* stride) + fsize
stride 表示卷积的步长; fsize表示卷积层滤波器的大小
在文【卷积神经网络(CNN)简介 - 知乎】
隐藏层边长(输出的边长) = (W - K + 2P)/S + 1
(其中 W是输入特征的大小,K是卷积核大小,P是填充大小,S是步长(stride))
即 output field size = ( input field size - kernel size + 2*padding ) / stride + 1
(output field size 是卷积层的输出,input field size 是卷积层的输入)
反过来问你: 卷积层的输入大小(也即前一层的感受野) = ?
答案必然是: input field size = (output field size - 1)* stride - 2*padding + kernel size
再重申一下:卷积神经网络CNN中,某一层输出结果中一个元素所对应的输入层的区域大小,被称作感受野receptive field。感受野的大小是由kernel size,stride,padding , outputsize 一起决定的。
比如我们第一层是一个3*3的卷积核,那么我们经过这个卷积核得到的featuremap中的每个节点都源自这个3*3的卷积核与原图像中3*3的区域做卷积,那么我们就称这个featuremap的节点感受野大小为3*3
如果再经过pooling层,假定卷积层的stride是1,pooling层大小2*2,stride是2,那么pooling层节点的感受野就是4*4
有几点需要注意的是,padding并不影响感受野,stride只影响下一层featuremap的感受野,size影响的是该层的感受野。
至于如何计算感受野,我的建议是top to down的方式。下面我拿一个例子来算算
pool3的一个输出对应pool3的输入大小为2*2
依次类推,对应conv4的输入为4*4,因为2*2的每个角加一个3*3的卷积核,就成了4*4,当然这是在stride=1的情况下才成立的,但是一般都是stride=1,不然也不合理
对应conv3的输入为6*6
对应pool2的输入为12*12
对应conv2的输入为14*14
对应pool1的输入为28*28
对应conv1的输入为30*30
所以pool3的感受野大小就是30*30
对于Convolution/Pooling layer
其中
r_i表示第i层layer的输入的某个区域,
s_i表示第i层layer的步长,
k_i表示kernel size,注意,不需要考虑padding size。
对于 Neuronlayer(ReLU/Sigmoid/..)
参见【深度】Deep Visualization:可视化并理解CNN - 云+社区 - 腾讯云
计算公式:
- 对于 Convolution/Pooling layer:
- 对于Neuronlayer(ReLU/Sigmoid/..) :
上面是计算任意一个layer输入输出的坐标映射关系,如果是计算任意feature map之间的关系,只需要用简单的组合就可以得到,下图是一个简单的例子:
3、SPP-net 的ROI映射
SPP-net 是把原始ROI的左上角和右下角 映射到 feature map上的两个对应点。 有了feature map上的两队角点就确定了 对应的 feature map 区域(下图中橙色)。
如何映射?
左上角的点(x,y)映射到 feature map上的 : 使得 在原始图上感受野(上图绿色框)的中心点 与(x,y)尽可能接近。
对应点之间的映射公式是啥?
深度学习之学习(1-2)感受野(receptive field)相关推荐
- 深度CNN感受野(Receptive Field)的计算
参考 如何计算感受野(Receptive Field)--原理 FOMORO AI -> 可视化计算感受野的网站,可以用来验证自己计算的结果 Python代码 这里使用的是从后向前的计算方法,简 ...
- 什么是感受野 Receptive Field 感受野是什么意思
有一个人写的很好,放上他写的文章 彻底搞懂感受野的含义与计算 - 知乎 然后嘞,如果你点进去不想看,那你就适合看我写的哈哈 比较浮躁,那就我来吧 首先我们得知道感受野的英文名字哈 洋气 感受野 Rec ...
- 感受野(receptive field)
学习RCNN系列论文时, 出现了感受野(receptive field)的名词, 感受野的尺寸大小是如何计算的,在网上没有搜到特别详细的介绍, 为了加深印象,记录下自己对这一感念的理解,希望对理解基于 ...
- 感受野-Receptive Field的理解
之前在阅读yolov1的论文时,发现yolov1用到了Resnet,于是找到了Resnet论文,在研究Resnet的时候,发现自己对卷积的相关操作理解还不够深刻,于是研究卷积,发现其中一个比较重要的概 ...
- 如何计算感受野(Receptive Field)
一.感受野的概念 感受野指的是一个特定的 CNN 特征(特征图上的某个点)在输入空间所受影响的区域. 感受野计算时有下面的几个情况需要说明: a)第一层卷积层的输出特征图像素的感受野的大小等于滤波器的 ...
- 深度学习笔记~感受野(receptive field)的计算
以前对CNN中的感受野(receptive field)已经有了一些认识,基本上是从概念理解上得到的. 本篇文章给出了receptive field的计算过程和相应的python代码,对recepti ...
- 池化层(pooling layer) 感受野(Receptive Field) 神经网络的基本组成
目录 (1)本文涉及的函数 (2)池化层 (3)感受野 (4)代码示例(含注释) 承接上两篇博客:卷积层(空洞卷积对比普通卷积).激活函数层 (1)本文涉及的函数 import torch impor ...
- 如何计算感受野(Receptive Field)——原理
本文转载自知乎专栏:https://zhuanlan.zhihu.com/p/31004121 写这篇文章的初衷是自己需要计算感受野,但是在今天之前只对感受野有感性认识,并不知道如何定量计算.所以在网 ...
- 神经网络中的感受野(Receptive Field)
在机器视觉领域的深度神经网络中有一个概念叫做感受野,用来表示网络内部的不同位置的神经元对原图像的感受范围的大小.神经元之所以无法对原始图像的所有信息进行感知,是因为在这些网络结构中普遍使用卷积层和po ...
最新文章
- 2020.12.07.记录
- P3374 【模板】树状数组 1
- Linux_RHEL7_YUM
- Python基础教程:赋值、深拷贝与浅拷贝(内存地址)
- javascript一句话技巧
- Android Studio 小提示,新建Activity
- 《python透明人士,他是凭什么成为主流编程的宠儿?!》python基础语法
- linux 安装监控系统,CentOS7安装性能监控系统
- ORA-00257:archiver error问题处理方法
- Ubuntu MySQL 配置 ip binding
- ANTLR实现的SQL解析器 - OQL
- 向量积计算三角形面积
- 更换帝国cms默认文章内容编辑器fckeditor
- 南非认证_南非2008-与孩子和婴儿长途旅行
- favicon.ico在线转换网站
- 概率论考点之概率的性质(全概公式及贝叶斯公式)
- 计算机内存错误 要降频,win7系统出现内存自动降频的解决方法
- ubuntu18截图快捷键和其他快捷键设置
- 网盘搜索工具整理2020.8
- fprint函数与print函数
热门文章
- 如何解决上班下午3:00发困的事情
- Cadence 简易使用教程
- 华为od77 python最大消费金额
- html添加markdown,为自己的网站添加Markdown——showdown.js使用教程
- Linux之问题详解(一):Linux怎么创建一个html文件通过CentOS部署html网站到服务器
- CHERRY 键盘 alt 组合键失灵或开始菜单键失灵
- 站内信设计(群发)实现
- 获取电信天邑TEWA-700E光猫超级密码相近系列通用方法
- torch cosine_similarity 批量两两计算cos值
- 使用js+css样式实现淘宝详情页图片放大镜的效果