ROI-Align 原理理解

转载:https://blog.csdn.net/gusui7202/article/details/84799535
转载:https://www.cnblogs.com/ranjiewen/articles/8869703.html
前面一个理解较为深刻,后面讲的详细点。

roi-pooling的两次量化对小目标的物体会有很大的误差,因此有人提出不需要进行取整操作,如果计算得到小数,也就是没有落到真实的pixel上,那么就用最近的pixel对这一点虚拟pixel进行双线性插值,得到这个“pixel”的值。

具体做法如下图所示:
在这里插入图片描述
1、将bbox区域按输出要求的size进行等分,很可能等分后各顶点落不到真实的像素点上
2、没关系,在每个bin中再取固定的4个点(作者实验后发现取4效果较好),也就是图二右侧的蓝色点
3、针对每一个蓝点,距离它最近的4个真实像素点的值加权(双线性插值),求得这个蓝点的值
4、一个bin内会算出4个新值,在这些新值中取max,作为这个bin的输出值
5、最后就能得到2x2的输出

下面来看一下roi-pooling和roi-align的反向传播公式来加深理解。

首先是roi-pooling的反向传播公式:
在这里插入图片描述
对于RoI Pooling的反向传播公式可以类比max pooling的反向传播公式理解。不同的是,对于每个mini-batch 的RoI r 和每个pooling单元 j 及其输出 y r j y_{r j} yrj ​ ,偏导数 ∂ L / ∂ y r j \partial L / \partial y r j L/yrj​ is accumulated if i is the argmax selected for ​ by max pooling(xi被候选区域r的第j个输出节点选为最大值)。在反向传播过程中, 偏导数 ∂ L ∂ y r j \frac{\partial L}{\partial y_{r j}} yrjL​ 已经被RoI pooling层之后的层通过反向传播计算好了。

这里为什么要求和,是因为如图1所示,当不同roi的不同区域出现重叠的情况。如下图,也就是不同roi区域之间会有重叠(因为NMS只能滤掉大于阈值的部分。)
在这里插入图片描述
RoI Align反向传播
在这里插入图片描述
类比于ROI Pooling,ROI Align的反向传播需要稍作修改:因为在ROIAlign中, i ∗ ( r , j ) i^{*}(r, j) i(r,j) 是一个浮点数的坐标位置(前向传播时计算出来的采样点),所以在池化前的特征图中,每一个与 i ∗ ( r , j ) i^{*}(r, j) i(r,j) 横纵坐标均小于1的点都应该接受与此对应的点 y r j y_{r j} yrj 回传的梯度,故ROI Align 的反向传播公式如上式所示。 其中, d表示两点之间的距离, Δ h \Delta h Δh Δ w \Delta w Δw 表示 i i i i ∗ ( r , j ) i^{*}(r, j) i(r,j) 横纵坐标的差值,这里作为双线性内插的系数乘在原始的梯度上。直观的理解就是离采样点越近的整数坐标点比重越大,极端的例子是 Δ h \Delta h Δh Δ w \Delta w Δw 都等于0的时候,就是当前采样点的值。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值