SPP-Net中的特征映射关系

转载自https://zhuanlan.zhihu.com/p/24780433,原文作者讲解的很清晰。

一、什么是感受野?

答:卷积神经网络CNN中,某一层输出结果中一个元素所对应的输入层的区域大小,被称作感受野receptive field。感受野的大小是由kernel size,stride,padding , outputsize 一起决定的。下面这个图来感受一下!
SPP-Net中的特征映射关系_第1张图片
卷积过程中的词语含义:
•28*28的输入图片—-(输入图片尺寸)W =28
•5*5的local receptive fields(局部感受野,也叫滑窗,卷积核)—–(卷积核大小)K=5
•滑动步长(stride)
当W=28,K=5,stride=1时,可以得到24*24的隐层神经元。
推出公式:隐藏层边长=(W-K)/S +1

注意:不过有时候为了控制输出的隐藏层空间分布会在输入层外围做零填充,假设填充P个像素,此时:边长=(W-K+2P)/S+1,特别的当S=1时,设置零填充为P=(K-1)/2,可以保证输入层与输出层有相同的空间分布 。

SPP-Net中的特征映射关系_第2张图片

综上所述:隐藏层边长(输出的边长)= (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 + kernelsize
再重申一下:卷积神经网络CNN中,某一层输出结果中一个元素所对应的输入层的区域大小,被称作感受野receptive field。感受野的大小是由kernel size,stride,padding , outputsize一起决定的。

二、感受野上的坐标映射

  通常,我们需要知道网络里面任意两个feature map之间的坐标映射关系(一般是中心点之间的映射),如下图,我们想得到map 3上的点p3映射回map 2所在的位置p2(橙色框的中心点)。

SPP-Net中的特征映射关系_第3张图片

计算公式:
(1)对于Conv或pooling层:p(i)=s(i)*p(i+1)+[(k(i)-1)/2-padding]
(2)对于Neuronlayer(ReLU/Sigmoid/…):p(I)=p(i+1)
上面是计算任意一个layer输入输出的坐标映射关系,如果是计算任意feature map之间的关系,只需要用简单的组合就可以得到,下图是一个简单的例子:
SPP-Net中的特征映射关系_第4张图片
对下面图的解释:
SPP-Net中的特征映射关系_第5张图片
问题:如何计算感受野区域的中心?
一个简单的解决方案是:对每一层,填充零元素P=F/2向下取整,这样的话,在每一个特征图上坐标为(0,0)的响应点的感受野是以输入图像坐标为(0,0)的点为中心的,坐标为(x,y)的点的感受野是以(Sx,Sy)为中心的,S为步长。
SPP-Net中的特征映射关系_第6张图片

三、SPP-Net中ROI映射做法详解
SPP-Net中的特征映射关系_第7张图片
SPP-Net中的特征映射关系_第8张图片
SPP-Net中的特征映射关系_第9张图片
SPP-Net中的特征映射关系_第10张图片
SPP-Net中的特征映射关系_第11张图片
SPP-Net中的特征映射关系_第12张图片
这里写图片描述

四、如何理解Bounding box regression?
输入的不是region proposal的坐标,而是该proposal窗口对应的CNN特征,也就是后面得到的特征向量,(训练阶段的输入还包括Ground truth),输出是需要进行的平移变换和尺度缩放(4个值),然后直接可以计算出精修后的预测边界框。
其实就是在全连接层后面加了一个含有4个神经元的输出层,每一个神经元的输出对应平移变换和尺度缩放参数。需要训练的只是全连接层与输出层之间的连接权重矩阵。利用梯度下降法或最小二乘法就可以得到。

Vgg16结构:
卷积层:K=3,padding=1,stride=1
池化层:K=2,padding=0,stride=2
都符合 这个计算坐标的映射公式。

长短期更新:
Long-term: 在固定的帧数进行训练更新
Short-term: 当估计的目标被分类成非跟踪目标,发生错误时,即候选中概率最大的那个也小于0.5时,需要更新模型参数。怎么更新呢?在估计的目标位置处,选取正负样本,与目标边界框的IOU分别为>0.7和<0.3。

你可能感兴趣的:(目标识别与跟踪)