目标检测之RoI Pooling及其改进RoI Align

本文详细解析了RoIPooling的概念及其在RCNN系列算法中的应用,阐述了其存在的量化问题,并深入探讨了RoIAlign的提出背景及解决策略,通过双线性插值有效改善了目标检测的精度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接:https://www.jianshu.com/p/670a3e42107d

一、什么是RoI Pooling

RoI是Region of Interest的简写,是指对一张图片的“感兴趣区域”,用于RCNN系列算法当中,输入图片在经过卷积网络得到feature maps后,利用选择搜索或者RPN算法来得到多个目标候选框,这些以输入图片为参考坐标的候选框在feature maps上的映射区域,即为目标检测中所说的RoI。

RoI Pooling的过程如上图所示,其中有两个计算细节的问题有:

问题1、以输入图片为参考坐标的候选框在feature maps上如何映射?

scale = Sf / Si, Xf = scale * Xi,Yf = scale * Yi,其中 Sf 为feature map的Size,Si 为输入image的Size,(Xf,Yf)为feature map上的坐标点,(Xi,Yi)为输入image的坐标点。

问题2、如何把形状和大小各异的候选区域归一化为固定大小的目标识别区域?

通过对feature map分块池化实现归一化到固定大小,假设ROI Pooling层的输出大小为 Wr * Hr,输入候选区域的大小为 Wi * Hi,ROI Pooling的过程包括两个步骤:

  • 以Wr * Hr的尺寸大小把输入候选区域划分为多个子网格,每个窗口的大小是

( Hi / Hr) * (Wi / Wr),这里会有一个取整量化的操作;

  • 对每个子网格窗口取最大元素作为输出,最终得到大小为Wr * Hr 的输出。

二、RoI Pooling存在的问题

候选框从原图坐标映射到的feature map坐标时,位置坐标可能存在浮点数,此时进行取整操作从而出现第一次量化;其次,在ROI Pooling求取每个小网格的位置时也同样存在浮点数取整的情况。这两次量化的结果都使得候选框的位置出现了偏差。

三、RoI Align

为了解决RoI Pooling两次量化问题,RoI Align不再采用取整量化操作,而是保留了浮点数的运算,并使用双线性插值的方式来求取像素值。具体的过程步骤如下:

假设需要输出2x2的fixed size feature map:

  • 首先将ROI切分成2x2的单元格;
  • 如果采样点数是4,将每个单元格子均分成四个小方格,以每个小方格的中心作为采样点;
  • 对采样点像素进行双线性插值,得到该像素点的值;
  • 对每个单元格内的四个采样点进行max pooling,得到最终的ROI Align结果。

 

 

 

### 回答1: RoIPoolingRoIAlign 是两种用于在目标检测中处理 Region of Interest (RoI) 的方法。 RoIPooling 是一种将 RoI 区域采样为固定大小的特征图的方法,它通过对 RoI 区域内的像素进行 max pooling 来实现。 RoIAlign 是一种改进 RoIPooling 的方法,它通过对 RoI 区域内的像素进行双线性插值来精确定位像素位置,从而更准确地处理 RoI 区域的特征。 总的来说,RoIAlignRoIPooling 更精确,但是计算量更大。 ### 回答2: RoIPooling(Region of Interest Pooling)和RoIAlign(Region of Interest Align)是在目标检测领域中常用的两种处理特征图中感兴趣区域的方法。在 Faster RCNN、Mask RCNN、YOLO等流行的目标检测算法中,都用到了RoIPoolingRoIAlignRoIPooling将图像特征分为多个像素点,然后将感兴趣的区域划分成固定尺寸的子区域,每个子区域将其中的特征点聚合成一个值。这种聚合方式可以使得不同大小的感兴趣区域都可以映射为相同尺寸的特征区域,从而方便以相同尺寸进行后续处理。但是,RoIPooling采用了近似的方式来计算感兴趣区域中特征点的聚合值,可能导致特征点的位置偏移,从而降低了目标检测的精度。 RoIAlign通过双线性插值的方式计算感兴趣区域中每个特征点的值,能够更加准确地计算出感兴趣区域的特征,提高目标检测的精度。RoIAlign对于小目标和低分辨率的图像使用效果更好,但由于需要进行双线性插值,计算复杂度也更高,计算时间更长。 综上所述,RoIPooling虽然计算速度较快,但准确度相对较低,适用于更大的感兴趣区域。RoIAlign计算准确度更高,但计算时间更长,适用于更小的感兴趣区域。在实际应用中需要根据具体情况选择和平衡二者的使用。 ### 回答3: RoIPoolingRoIAlign是在物体检测领域中广泛使用的两种特征金字塔网络用于从卷积神经网络中提取感兴趣区域(Region of Interest)的技术。 RoIPoolingRoIAlign最初是在Faster R-CNN中提出的,Faster R-CNN是目前最优秀的物体检测算法之一。这两种方法都是为了解决R-CNN中存在的空间量化问题和边界偏移问题。 RoIPooling是在特征图中提取感兴趣区域时,使用划分区域(sub-region)的方法。将RoI区域内的像素均匀划分成一个固定大小的子区域,然后在每个子区域内选择最大的值作为该子区域的输出结果。然后将这些划分的子区域进行池化操作,最终形成特征向量。 但是RoIPooling的问题是对于感兴趣区域中边界部分的像素容易丢失,从而造成检测结果误差增加。为了解决这一问题,RoIAlign应运而生。 RoIAlignRoIPooling相比,最显著的善是在划分子区域时,使用双线性插值法计算划分子区域内的特征值,避免了对子区域中像素的量化损失。另外,RoIAlign还使用了更为精细的采样技术,防止了积累误差的产生,更加准确地提取了感兴趣区域中的特征,从而提高了检测精度。 总之,RoIPoolingRoIAlign是在物体检测中提取感兴趣区域时常用的技术,通过划分子区域和采样技术来准确提取感兴趣区域内的特征,提高检测精度,是物体检测中不可或缺的技术手段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值