4.2.2 ROI Pooling
ROI Pooling的目的为将获得的ROI特征统一规划为固定尺寸,与RCNN中的CNN框架不同,这里的ROI Pooling接受任意尺寸的特征图并将其转化为统一维度。具体操作见下图。
在下图中我们假设输入的ROI为4x6维度,输出的结果为3x3维度(该维度可以自行修改,Fast-RCNN维度设置不是这样,只是举例说明)。
如上图所示,无论我们输入多大尺寸的ROI特征图,我们最终得到的输出结果必定都是同样尺寸的特征图。
4.3.1 训练流程
- 同RCNN一样,使用分类数据集Pre-train CNN模型,得到Pre-train模型;
- 将Pre-train的CNN模型最后一个Max-Pooling层改为ROI-Pooling;
- 将最后的分类全连接改为(K+1类别,1是背景);
- 给Pre-train模型加入Bbox回归层,回归部分计算方式详见RCNN中Bbox回归部分。
1.4.4 4.4 Fast-RCNN算法优缺点
4.4.1 优点
- 对流程进行修改,只需要做一个CNN前向传递即可;
- 引入ROI Pooling层,使得可以适应不同尺寸的ROI 特征输入;
- 将分类和Bbox回归合并到一个模型中进行计算;
4.4.2 缺点
- 仍旧采用Selective Seach获得兴趣区域(ROIs),这一步操作十分耗时,印象整个算法的实时性。
ROI Pooling改进(ROI Alignment)
6.2.2 ROI Align基本流程
因为在ROI Pooling中由于量化操作会造成各种误差,因此有人提出不需要进行取整操作,如果计算得到小数,也就是没有落到真实的像素(pixel)上,那么就用最近的像素(pixel)对这一点虚拟的像素(pixel)进行双线性插值,从而得到这个点的值,具体操作可以参考上图中b子图:
- 将bbox区域按输出要求的size进行等分(在b图中为进行2x2等分),很可能等分后各顶点落不到真实的像素点上;
- 在每个等分区域中(bin)再取固定的4个点,也就是图b右子图中的蓝色点;
- 针对每一个蓝点,距离它最近的4个真实像素点的值加权(双线性插值),求得这个蓝点的值。图b中右子图中蓝色的点等于图b左子图中黑色的点(𝑥,𝑦)(x,y),而真实的像素点为(𝑥1,𝑦1),(𝑥2,𝑦2),(𝑥3,𝑦3),(𝑥4,𝑦4)(x1,y1),(x2,y2),(x3,y3),(x4,y4);
- 一个bin内会算出4个新值,在这些新值中取max,作为这个bin的输出值;
- 最后就能得到2x2的输出;
6.2.3 ROI Align示例说明
为了进一步理解ROI Align操作,我们将用一个实际案例进行说明。在该示例中,我们对一个ROI区域红色方框部分进行ROI Align操作,希望最后得到一个3𝑋33X3的特征图。该ROI原始区域左上角点坐标为(9.25,6)(9.25,6) ,长宽为别为6.25和4.25。
Step 1 划分区域
按照6.2.2中的步骤,第一步我们要将整个ROI区域按照输出(3𝑋3)(3X3)等份的划分为9个区域,则有划分区域后每一份的宽 𝑤𝑖𝑑𝑡ℎ=2.08width=2.08, 每一份的高为ℎ𝑒𝑖𝑔ℎ𝑡=1.51height=1.51。
Step 2 定位四点
接下来就是找寻每一个区域(bin)中四个点的位置,在此处我们以左上第一个区域(bin)为例进行说明。
这四个点的位置分别由𝑤𝑖𝑑𝑡ℎwidth和ℎ𝑒𝑖𝑔ℎ𝑡height除3得到,即:
同样以左上区域(bin)的第一个采样点,𝑃1=(9.94,6.50)P1=(9.94,6.50)为例进行说明。对于𝑃1P1点,其附近最近的四个真实像素点分别为𝑃𝑟𝑒𝑎𝑙1=(9.50,6.50)Preal1=(9.50,6.50), 𝑃𝑟𝑒𝑎𝑙2=(9.50,7.50)Preal2=(9.50,7.50), 𝑃𝑟𝑒𝑎𝑙3=(10.50,6.50)Preal3=(10.50,6.50), 𝑃𝑟𝑒𝑎𝑙4=(10.50,7.50)Preal4=(10.50,7.50)
为什么第一个点𝑃𝑟𝑒𝑎𝑙1=(9.50,6.50)Preal1=(9.50,6.50)?
从图中我们可以知道,整个ROI的左上角点坐标为(9.25,6)(9.25,6),即9.25其实是在第一个方框(像素栅格,cell)的1/41/4处,而真实的像素点又在第一个方框(像素栅格的中心位置,即1/2),因此克制第一个真实像素点的x坐标与9.25之间差1/4个方框(像素栅格),所以有:
找到四个真实像素点后,我们运用双线性插值公式即可求解得到该点的灰度值为0.14。
重复以上步骤,便利求解𝑃1−𝑃4P1−P4四个点的灰度值。
Step 4 求解𝑃1−𝑃4P1−P4中的Max
改操作就是进行Max取值,不再赘述。
Step 5 得到3X3特征图
不再赘述。
整体操作的流程,可以进一步参考以下动图。