结论
在SPP-net中,假设(x’,y’)表示特征图上坐标点,(x,y)表示该坐标点在原始输入图像上的对应点。则有结论 (x,y)=(S * x’,S * y’) 其中S代表所有卷积层和池化层的stride 乘积
则有: 左上角点 x’= ⌊x/S ⌋+1 右下角点 x’=⌈x/S⌉-1 (为了处理有小数的情况 同时左上角点和右下角点都向图像内侧近似,所以左上角加一 右下角减一 同时为了减小这种近似产生的误差 所以左上角向下取整 右下角向上取整)
关键点
上述结论是如何得到的,下面进行详细的推导,在此之前需要明确如下关键点:
- 在原始图形ROI映射到feature map上的过程中 映射的是左上角点和右下角点 这两个点可以确定ROI的boundingbox
- 之所以存在映射关系 是因为在卷积和池化操作中带来了feature map维度的变化 而维度变化产生的原因是卷积核size以及卷积操作和池化操作中stride造成的。其中stride可以类比为图像降采样,步长越大 采样越粗糙 则经过这一过程的feature map维度变化越大,因此stride在这一过程中起到了缩放因子的作用;同理卷积核的size起到了feature map中像素点位移的作用。
由上图可知经过卷积核操作之后feature map会产生位移,位移大小为(kernelsize-1)/2(kernel size -1 表示将中心点所在的那一行减去 除以2 可得到一侧的像素点个数 而这个就是产