感受野(receptive field)
定义:在卷积神经网络中,感受野的定义是 卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小。
例子
(1)两层3*3的卷积核卷积操作之后的感受野是5*5,其中卷积核(filter)的步长(stride)为1、padding为0,如下图所示:
(2)三层3*3卷积核操作之后的感受野是7*7,其中卷积核的步长为1,padding为0,如下图所示:
感受野的计算
为了计算每一层的感受野,除了每一维度的特征数量n,还需要一些额外的信息:
- 当前感受野size:r
- 相邻特征的距离(jump):j
- 左上角feature的中心坐标:start
Note that the center coordinate of a feature is defined to be the center coordinate of its receptive field, as shown in the fixed-sized CNN feature map above. (注意,特征的中心坐标被定义为其接受域的中心坐标,如上面的固定大小的CNN feature map所示。)
输出层计算公式:
- 第一个等式,基于输入特征数量和卷积特性,计算输出特征数量。
- 第二个等式,计算输出特征之间的jump,等于输入map的jump乘以输入特征数。
- 第三个等式,计算输出feature map的感受野size,等于覆盖了k个输入特征加其他被输入feature感受野覆盖区域。
- 第四个等式,计算第一个输出feature的感受野center position。等于第一个输入特征的中心位置加上从第一个输入特征到第一个卷积核减去。(乘以jump是为了得到真实的距离/空间)
卷积神经网络中感受野的详细介绍
[CNN感知野]A guide to receptive field arithmetic for CNN
感兴趣区域(ROI,region of interest)
机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,ROI。在图像处理中,我们常常需要设置感兴趣区域(ROI,region of interest),来专注或者简化工作过程。也就是从图像中选择一个图像区域,这个区域是图像分析所关注的重点。在Halcon、OpenCV、Matlab等机器视觉软件上常用到各种算子(Operator)和函数来求得感兴趣区域ROI,并进行图像的下一步处理。 在图像处理领域,感兴趣区域(ROI) 是从图像中选择的一个图像区域,这个区域是你的图像分析所关注的重点。圈定该区域以便进行进一步处理。使用ROI圈定你想读的目标,可以减少处理时间,增加精度。
举个栗子:
import cv2
import numpy as np
img = cv2.imread('.\kenan.jpeg')
num = img[60:180,60:180] #列表中第一个元素表示纵向像素点的起始和终点;第二个元素表示横向。
img[0:120,0:120] = num #将上述区域的图像添加到原图像区域[0:120,0:120]上。注意两个区域的大小要相等。
cv2.namedWindow('McGrady',cv2.WINDOW_NORMAL)
#显示图片
cv2.imshow('McGrady',img)
#当按下ESC键时,退出程序窗口
k = cv2.waitKey(0)
if k == 27:cv2.destroyAllWindows()
ROI-Align
ROI-Align 原理理解
原始图片中的ROI如何映射到到feature map?