ROI详解

1. ROI pooling

在Faster RCNN中用以将rpn生成的候选框region proposal,映射为固定大小的feature map

工作原理为

img

  • Conv layers使用的是VGG16,feat_stride=32(即表示,经过网络层后图片缩小为原图的1/32),原图800*800,最后一层特征图feature map大小:25*25
  • 假定原图中有一region proposal,大小为665*665,这样,映射到特征图中的大小:665/32=20.78,即20.78*20.78,如果你看过Caffe的Roi Pooling的C++源码,在计算的时候会进行取整操作,于是,进行所谓的第一次量化,即映射的特征图大小为20*20
  • 假定pooled_w=7,pooled_h=7,即pooling后固定成7*7大小的特征图,所以,将上面在 feature map上映射的20*20的 region proposal划分成49个同等大小的小区域,每个小区域的大小20/7=2.86,即2.86*2.86,此时,进行第二次量化,故小区域大小变成2*2
  • 每个2*2的小区域里,取出其中最大的像素值,作为这一个区域的‘代表’,这样,49个小区域就输出49个像素值,组成7*7大小的feature map

反向传播方法

常规的ROI Pooling的反向传播公式如下:

这里, $x_i$ 代表池化前特征图上的像素点;$y_{rj}$ 代表池化后的第r个候选区域的第j个点;$i^{*}(r,j)$ 代表点 $y_{rj}$ 像素值的来源(最大池化的时候选出的最大像素值所在点的坐标)。由上式可以看出,只有当池化后某一个点的像素值在池化过程中采用了当前点 $x_i$ 的像素值(即满足 $i=i^{*}(r,j)$),才在 $ x_i $ 处回传梯度。

总结:

通过上面可以看出,经过两次量化,即将浮点取整,原本在特征图上映射的20*20大小的region proposal,偏差成大小为7*7的,这样的像素偏差势必会对后层的回归定位产生影响。

2. ROI Align

在Mask RCNN中用以将rpn生成的候选框region proposal,映射为固定大小的feature map,后来广泛被应用,解决了ROI pooling两次量化带来的误差。

工作原理为

img

  • Conv layers使用的是VGG16,feat_stride=32(即表示,经过网络层后图片缩小为原图的1/32),原图800*800,最后一层特征图feature map大小:25*25
  • 假定原图中有一region proposal,大小为665*665,这样,映射到特征图中的大小:665/32=20.78,即20.78*20.78,此时,没有像RoiPooling那样就行取整操作,保留浮点数
  • 假定pooled_w=7,pooled_h=7,即pooling后固定成7*7大小的特征图,所以,将在 feature map上映射的20.78*20.78的region proposal 划分成49个同等大小的小区域,每个小区域的大小20.78/7=2.97,即2.97*2.97
  • 假定采样点数为4,即表示,对于每个2.97*2.97的小区域,平分四份,每一份取其中心点位置,而中心点位置的像素,采用双线性插值法进行计算,这样,就会得到四个点的像素值,如下图

具体双线性插值的做法

img

上图中,四个红色叉叉’×’的像素值是通过双线性插值算法计算得到的。(此处的操作,就是将小区域分成四个小正方形,每个正方形中心的’x’的值是根据正方形四个边所在区域的值做双线性插值得到的)

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

可以参考这篇文章https://zhuanlan.zhihu.com/p/73138740

反向传播方法

类比于ROI Pooling,ROI Align的反向传播需要作出稍许修改:首先,在ROI Align中, $x_{i^{*}(r,j)}$ 是一个浮点数的坐标位置(前向传播时计算出来的采样点),在池化前的特征图中,每一个与 $x_{i^{*}(r,j)}$ 横纵坐标均小于1的点都应该接受与此对应的点 $y_{rj}$ 回传的梯度,故ROI Align 的反向传播公式如下:

总结

消除了ROI pooling两次量化带来的误差,提升了精度。

参考

https://www.cnblogs.com/wangyong/p/8523814.html

https://blog.csdn.net/thisiszdy/article/details/89058768

https://zhuanlan.zhihu.com/p/73138740