1、ROI pooling
比较早出现这个是Kaiming He的"Spatial Pyramid Pooling in Deep convolutional Networks for Visual Recognition"。之所以要提出这个东东,主要是因为深度卷积网络的输入图像需要固定的大小,这是因为要满足最后的全连接层输入需要固定长度的需求。
上图就是作者实现roi pooling的方法。把最后一个卷积层和全连接层之间的池化层改造成spatial pyramid pooling(SPP)层。每个spatial bin采用池化操作(文章中采用最大值池化)。SPP输出的维度是kMkMkM,kkk是最后一层卷积层输出的通道数,MMM是bin的个数。这就可以固定任意大小输入图像的输出维数。roi pooling涉及到量化。
Fast rcnn中roi pooling计算方法和spp计算类似。
2、ROI align
roi align是mask r-cnn文章中提出了,在图像分割任务中,roi pooling由于量化的存在,使得特征图中点的坐标和输入图像中点的坐标不能一一对应,因此才提出roi align方法的。
方法也很简单,和roi pooling过程一样,只是没有量化,计算的浮点数的值采用双线性插值进行计算。