打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
卷积神经网络物体检测之感受野大小计算

  学习RCNN系列论文时, 出现了感受野(receptive field)的名词, 感受野的尺寸大小是如何计算的,在网上没有搜到特别详细的介绍, 为了加深印象,记录下自己对这一感念的理解,希望对理解基于CNN的物体检测过程有所帮助。

1 感受野的概念

  在卷积神经网络中,感受野的定义是 卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小。

  

  RCNN论文中有一段描述,Alexnet网络pool5输出的特征图上的像素在输入图像上有很大的感受野(have very large receptive fields (195 × 195 pixels))和步长(strides (32×32 pixels) ), 这两个变量的数值是如何得出的呢?

2 感受野大小的计算

 感受野计算时有下面的几个情况需要说明:

  (1)第一层卷积层的输出特征图像素的感受野的大小等于滤波器的大小

  (2)深层卷积层的感受野大小和它之前所有层的滤波器大小和步长有关系

  (3)计算感受野大小时,忽略了图像边缘的影响,即不考虑padding的大小,关于这个疑惑大家可以阅读一下参考文章2的解答进行理解

这里的每一个卷积层还有一个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表示卷积层滤波器的大小  

用python实现了计算Alexnet  zf-5和VGG16网络每层输出feature map的感受野大小,实现代码:

receptiveField.py

执行后的结果如下:

参考:

http://stackoverflow.com/questions/35582521/how-to-calculate-receptive-field-size

2 http://stackoverflow.com/questions/37136829/receptive-fields-on-convnets-receptive-field-size-confusion/37143998#37143998 

3 CNN感受野的计算

4 Convolutional Feature Maps: Elements of Efficient (and Accurate) CNN-based Object Detection

5 Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

http://blog.cvmarcher.com/posts/2015/05/17/cnn-trick/

   

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
卷积神经网络中感受野的详细介绍
深度学习基础知识之卷积
更深更宽的孪生网络,有效提升目标跟踪精度,代码开源
手磕实现 CNN卷积神经网络!- 《深度学习入门:基于Python的理论与实现》系列之三
机器不学习:卷积神经网络笔记,你想要的最基础的卷积神经网络
智能图像识别初探系列(三)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服