【对象检测】--- RoI常用方法

  • 前言
  • RoI执行的步骤
    • RoI Pooling

      • Why RoI Pooling
        • 优点
        • 缺点
      • 过程量
      • 例子
    • RoI Align

      • Why RoI Align
      • RoI Align流程
      • RoI Align优势
  • 参考

前言

RoI,Region of Interest,感兴趣的区域,通常指的是image经过一定的图像处理后,通过以圆、方框、不规则多边形等方式够了出所需要进行某些处理的区域

RoI执行的步骤

RoI Pooling

将在Faster RCNN过程中将生成的候选框的region proposal映射成固定大小的feature map

【对象检测】--- RoI常用方法_第1张图片

Why RoI Pooling

优点
  • 可加速训练过程和测试过程的速度,提高准确率
  • 得到相同尺度的feature map利于进行后续分类等操作
缺点

RoI Pooling根据候选框的位置坐标在feature map中将相应区域池化为固定尺寸的feature map,以便进行后续的classification和feature box的回归操作。但是在这一个操作过程中,由于分割会常常产生浮点数,当最终都会量化成整数。这一量化过程产生的候选框和最开始回归出来的位置会有一定的偏差,可能会影响准确性。

其实存在两次量化:

  • 候选框的边界量化成整数点坐标值(边界量化
  • 区域分割成k × m 的单元,需要对每一个单元进行量化(单元量化

看例子可以较好的理解

过程量

输入部分

  • 任意尺寸的Feature map
  • RoI

输出部分

  • 大小固定的feature map

转换过程

若是觉得纯文字理解困难可以看后面的例子

  • 将输入的任意尺寸的feature map均等分成输出的feature map的网格尺寸
    • 意味着每个分割后的一个网格尺寸可能包含多个1×1的
  • 对每个输入的feature map的每个切割的网格进行最大池化操作
    • 每个网格经过最大池化后得到的便是1×1
  • 于是乎得到了输出的feature map的size,直接输出便可

例子

来自AUTO1993的博客

考虑一个:

  • 一个8×8大小的feature map
  • 一个尺寸为5×7的ROI
  • 一个输出大小为2×2的feature map
(1)输入的固定大小的feature map
【对象检测】--- RoI常用方法_第2张图片


(2)region proposal 投影之后位置(左上角,右下角坐标):(0,3),(7,8)
【对象检测】--- RoI常用方法_第3张图片


(3)将其划分为(22)个sections(因为输出大小为22),我们可以得到:
【对象检测】--- RoI常用方法_第4张图片


(4)对每个section做max pooling,可以得到:
【对象检测】--- RoI常用方法_第5张图片


RoI Align

取消量化操作,并使用双线性内插的方法来获取坐标为浮点数的像素上的图像数值,使得整个特征聚集过程转化为一个连续的操作

Why RoI Align

可以很好的解决由于RoI Pooling操作中在两次量化的过程造成的区域不匹配(mis-alignment)导致的精度下降问题,可以更好的提升模型的准确性!

RoI Align流程

  1. 遍历每一个候选区域,不对浮点数边界做量化操作,使其保持浮点数状态
    • 如,对一个大小为665×665候选框,通过feat_stride=32的卷积层后得到的是665/32=20.78,则映射到的feature map大小为20.78×20.78(不进行第一次量化得到20×20)
  2. 将候选去分割成要求的输出feature map的尺寸的网格,同样,每个单元的网格不做量化操作
    • 需要的feature map的大小是7×7
    • 则对20.78个进行分割形成7×7的网格,则需要形成49个同等大小的小区域,由20.78/7=2.97得每个小区域的大小为2.97×2.97
  3. 在每个单元中计算固定的4个坐标位置,使用双线性内插的方法计算出这4个位置的值,再对整个单元进行最大池化的操作
    • 对每个2.97×2.97的小区域均分成4份(上下左右)进行采样,每一份取中心点的位置,而中心点位置的像素则有双线性插值法进行计算
    • 【对象检测】--- RoI常用方法_第6张图片
      • 其中的红×位置处的像素就是由双线性内插的方法计算得到的
    • 从这四个红×处取最大值作为这个小区域的像素,于是得到了49个像素点,即可输出7×7的feature map

RoI Align优势

  • 对于大目标的检测,RoIPooling和RoIAlign这两种方法效果差不多
  • 对于小目标的检测,RoIAlign则精确度更高

参考

[1]. https://blog.csdn.net/auto1993/article/details/78514071
[2]. https://www.cnblogs.com/wangyong/p/8523814.html
[3]. http://blog.leanote.com/post/[email protected]/b5f4f526490b

你可能感兴趣的:(图像分割)