ROI Pooling和ROI Align

简介: ROI Pooling和ROI Align都是为了解决目标检测RPN任务后得到的一系列proposals大小不一致的问题。

ROI Pooling和ROI Align都是为了解决目标检测RPN任务后得到的一系列proposals大小不一致的问题。

首先来介绍两个的思想

1 基本思想

1.1 ROI Pooling

假设有一张特征图大小为8x8(原图大小sxs),一个bbox坐标(0, 3, 7, 8),我们目标是获得大小为2x2的特征图作为后续网络的输入。
1.png
此时bbox的h=5,w=7。无法对半分,因此取整分,h分为2和3,w分为3和4(如果可以对半分即对半分)。然后在每一块内容中做max polling操作,得到2x2大小的输出作为下层网络的输入。

1.2 ROI Pooling的缺陷

既然已经存在ROI Polling为何发展了ROI Algin呢?这与ROI Polling的缺陷有关:

从上面可以看到ROI Polling可能经过了两次取整的操作,得到特征层中bbox坐标将特征层平分时进行的取整操作。
2.png
假设上图,一张800x800的原图,有一个大小为665x665的bbox。第一次取整操作即我们经过特征提取网络时将图像下采样32倍时,bbox大小665/32=20.78,ROI Polling直接量化为20。第二次取整操作即我们把特征层均分时,假设均分为7份,20/7=2.86,ROI Polling量化为20。经过上面两次量化取整,候选区域就会出现明显的偏差,ROI Algin解决了这个问题。

1.3 ROI Align

ROI Aligin为了解决上面的问题,取消了量化取整的操作,大概思想如下:

  1. 首先我们求得bbox在特征图上的坐标,不做量化取整的操作
  2. 将候选区域按照size分为一个个单元格,每个单元的边界也不做量化(例子默认size为2)

3.png

  1. 在每个单元格中取四个点(作者发现四个点效果最好),如上图中的蓝色点。
  2. 针对每一个蓝点,距离它最近的4个真实像素点的值加权(双线性插值),求得这个蓝点的值
  3. 在每个单元内对得到的四个蓝色点的值进行max polling操作,最终得到2x2的输出

1.4 ROI Align反向传播

https://www.pianshen.com/article/69221232781/#3%E3%80%81ROI%E5%B1%80%E9%99%90%E6%80%A7%E5%88%86%E6%9E%90

2 pytorch实现

暂时先总结一下pytorch的调用,以后回来补充怎么实现的!!!

2.1 函数声明

class: torchvision.ops.RoIAlign(output_size, spatial_scale, sampling_ratio)

2.2 参数

参数 可选值 描述
output_size int or Tuple[int, int] 输出大小
spatial_scale float 将输入坐标映射到框坐标的比例因子。默认值1.0。
sampling_ratio int 插值网格中用于计算每个合并输出bin的输出值的采样点数目。如果> 0,则恰好使用sampling_ratio x sampling_ratio网格点。如果<= 0,则使用自适应数量的网格点(计算为cell (roi_width / pooled_w),同样计算高度)。默认值1。

2.3 输入

  1. input:输入张量,Tensor[N, C, H, W]
  2. boxes:Tensor[K, 5] or List[Tensor[L, 4]]
相关文章
|
6月前
|
机器学习/深度学习 PyTorch 算法框架/工具
归一化技术比较研究:Batch Norm, Layer Norm, Group Norm
本文将使用合成数据集对三种归一化技术进行比较,并在每种配置下分别训练模型。记录训练损失,并比较模型的性能。
354 2
|
6月前
|
存储 人工智能 测试技术
图像相似度比较之 CLIP or DINOv2
图像相似度比较之 CLIP or DINOv2
|
4月前
|
计算机视觉
【YOLOv10改进-损失函数】Shape-IoU:考虑边框形状与尺度的指标
YOLO目标检测专栏探讨了边框回归损失的创新方法,强调了目标形状和尺度对结果的影响。提出的新方法Shape-IoU关注边框自身属性,通过聚焦形状和尺度提高回归精度。实验显示,该方法提升了检测效果,超越现有技术,在多个任务中达到SOTA。论文和代码已公开。
|
6月前
|
监控 数据挖掘 UED
ROI
【5月更文挑战第16天】ROI
188 4
|
6月前
|
监控 UED
如何提高ROI?
【5月更文挑战第16天】如何提高ROI?
184 4
|
6月前
|
计算机视觉
【YOLOv8改进】Shape-IoU:考虑边框形状与尺度的指标(论文笔记+引入代码)
YOLO目标检测专栏探讨了边框回归损失的创新方法,强调了目标形状和尺度对结果的影响。提出的新方法Shape-IoU关注边框自身属性,通过聚焦形状和尺度提高回归精度。实验显示,该方法提升了检测效果,超越现有技术,在多个任务中达到SOTA。论文和代码已公开。
|
6月前
|
编解码 计算机视觉
YOLOv8改进 | Conv篇 | 2024.1月最新成果可变形卷积DCNv4(适用检测、Seg、分类、Pose、OBB)
YOLOv8改进 | Conv篇 | 2024.1月最新成果可变形卷积DCNv4(适用检测、Seg、分类、Pose、OBB)
971 0
|
算法 数据挖掘 计算机视觉
目标检测中 Anchor 与 Loss 计算
目标检测中 Anchor 与 Loss 计算
187 0
|
算法
【图像锐化】非锐化掩模 USM(Unsharpen Mask)与锐化掩模 SM(Sharpen Mask)
> 掩膜操作可以提高图像对比度,对比度提高可以增加图像感官度、锐化,让看起来有点模糊的图像更清晰。 > 原理:提取图像的高频分量,再用一个参数放大之后与原图叠加,这样就产生了一个增强了边缘的图像。 > 提取图像的高频分量的做法有两种: > 1.直接使用高通滤波器,得到高频分量。2.通过低通滤波器,再用原图减去低频就得到了高频信息。
536 0
【图像锐化】非锐化掩模 USM(Unsharpen Mask)与锐化掩模 SM(Sharpen Mask)