首页 > 其他 > 详细

RoI Pooling -> RoI Align

时间:2020-06-01 09:43:14      阅读:57      评论:0      收藏:0      [点我收藏+]

 

4 Mask RCNN Arc.(Part3) - How RoI Pooling, RoI

技术分享图片

 

 

分类任务(Fast-CNN、Faster-CNN):两次  quantized,损失精度;

Mask-CNN:RoI Pooling -> RoI Align

 

技术分享图片

 

 

 技术分享图片

 

4)假定采样点数为4,即表示,对于每个2.97*2.97的小区域,平分四份,每一份取其中心点位置,而中心点位置的像素,采用双线性插值法进行计算,这样,就会得到四个点的像素值,如下图

技术分享图片

 

上图中,四个红色叉叉‘×’的像素值是通过双线性插值算法计算得到的

最后,取四个像素值中最大值作为这个小区域(即:2.97*2.97大小的区域)的像素值,如此类推,同样是49个小区域得到49个像素值,组成7*7大小的feature map

双线性插值法

 

双线性插值法

在两个方向分别进行一次线性插值。

这里写图片描述

技术分享图片技术分享图片

在图像处理的时候,我们先根据

srcX = dstX* (srcWidth/dstWidth)
srcY = dstY * (srcHeight/dstHeight)

来计算目标像素在源图像中的位置,这里计算的srcX和srcY一般都是浮点数,比如 f(1.2, 3.4)这个像素点是虚拟存在的,先找到与它临近的四个实际存在的像素点

(1,3) (2,3)
(1,4) (2,4)

写成 f(i+u,j+v) 的形式,则 u=0.2,v=0.4, i=1, j=3 。

f(i+u,j+v) = (1-u)(1-v)f(i,j) + (1-u)vf(i,j+1) + u(1-v)f(i+1,j) + uvf(i+1,j+1) 

保证了 空间对称性(Alignment),在 RoI Align 中使用。

 

 

ROI Align

因此有人提出不需要进行取整操作,如果计算得到小数,也就是没有落到真实的pixel上,那么就用最近的pixel对这一点虚拟pixel进行双线性插值,得到这个“pixel”的值。

具体做法如下图所示:

技术分享图片
  1. 将bbox区域按输出要求的size进行等分,很可能等分后各顶点落不到真实的像素点上
  2. 没关系,在每个bin中再取固定的4个点(作者实验后发现取4效果较好),也就是图二右侧的蓝色点
  3. 针对每一个蓝点,距离它最近的4个真实像素点的值加权(双线性插值),求得这个蓝点的值
  4. 一个bin内会算出4个新值,在这些新值中取max,作为这个bin的输出值
  5. 最后就能得到2x2的输出
 
--> mask 边界 & 非边界(检测象素梯度变化),分别处理   

 

 

 

 

RoI Pooling -> RoI Align

原文:https://www.cnblogs.com/cx2016/p/13023162.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!