目标检测特殊层:ROI Align层详解

ROI Align 是在Mask-RCNN这篇论文里提出的一种区域特征聚集方式, 很好地解决了ROI Pooling操作中两次量化造成的区域不匹配(mis-alignment)的问题。实验显示,在检测测任务中将 ROI Pooling 替换为 ROI Align 可以提升检测模型的准确性。

如果roi大小为(7,6),而roipooling是分成了(6,6)的部分,(7,6)到(6,6)的转换必然带来了边缘某像素的损失。而roialign利用双线性插值,将roi(7,6)插值扩充到(12,12),此时再做(6,6)的roipooling,会提高精度,充分利用了roi的像素。

1. ROI Pooling 的局限性分析

在常见的两级检测框架(比如Fast-RCNN,Faster-RCNN,RFCN)中,ROI Pooling 的作用是根据预选框的位置坐标在特征图中将相应区域池化为固定尺寸的特征图,以便进行后续的分类和包围框回归操作。由于预选框的位置通常是由模型回归得到的,一般来讲是浮点数,而池化后的特征图要求尺寸固定。故ROI Pooling这一操作存在两次量化的过程。

  • 将候选框边界量化为整数点坐标值。
  • 将量化后的边界区域平均分割成 k x k 个单元(bin),对每一个单元的边界进行量化。

事实上,经过上述两次量化,此时的候选框已经和最开始回归出来的位置有一定的偏差,这个偏差会影响检测或者分割的准确度。在论文里,作者把它总结为“不匹配问题(misalignment)。

下面我们用直观的例子具体分析一下上述区域不匹配问题。如 图1 所示,这是一个Faster-RCNN检测框架。输入一张800*800的图片,图片上有一个665*665的包围框(框着一只狗)。图片经过主干网络提取特征后,特征图缩放步长(stride)为32。因此,图像和包围框的边长都是输入时的1/32。800正好可以被32整除变为25。但665除以32以后得到20.78,带有小数,于是ROI Pooling 直接将它量化成20。接下来需要把框内的特征池化7*7的大小,因此将上述包围框平均分割成7*7个矩形区域。显然,每个矩形区域的边长为2.86,又含有小数。于是ROI Pooling 再次把它量化到2。经过这两次量化,候选区域已经出现了较明显的偏差(如图中绿色部分所示)。更重要的是,该层特征图上0.1个像素的偏差,缩放到原图就是3.2个像素。那么0.8的偏差,在原图上就是接近30个像素点的差别,这一差别不容小觑。

图 1 
图片标题

2. ROI Align 的主要思想和具体方法

为了解决ROI Pooling的上述缺点,作者提出了ROI Align这一改进的方法(如图2)。ROI Align的思路很简单:取消量化操作,使用双线性内插的方法获得坐标为浮点数的像素点上的图像数值,从而将整个特征聚集过程转化为一个连续的操作,。值得注意的是,在具体的算法操作上,ROI Align并不是简单地补充出候选区域边界上的坐标点,然后将这些坐标点进行池化,而是重新设计了一套比较优雅的流程,如 图3 所示:

  • 遍历每一个候选区域,保持浮点数边界不做量化。
  • 将候选区域分割成k x k个单元,每个单元的边界也不做量化。
  • 在每个单元中计算固定四个坐标位置,用双线性内插的方法计算出这四个位置的值,然后进行最大池化操作。

这里对上述步骤的第三点作一些说明:这个固定位置是指在每一个矩形单元(bin)中按照固定规则确定的位置。比如,如果采样点数是1,那么就是这个单元的中心点。如果采样点数是4,那么就是把这个单元平均分割成四个小方块以后它们分别的中心点。显然这些采样点的坐标通常是浮点数,所以需要使用插值的方法得到它的像素值。在相关实验中,作者发现将采样点设为4会获得最佳性能,甚至直接设为1在性能上也相差无几。事实上,ROI Align 在遍历取样点的数量上没有ROIPooling那么多,但却可以获得更好的性能,这主要归功于解决了misalignment的问题。值得一提的是,在做实验的时候发现,ROI Align在VOC2007数据集上的提升效果并不如在COCO上明显。经过分析为造成这种区别的原因是COCO上小目标的数量更多,而小目标对misalignment问题的影响更为明显(比如,同样是0.5个像素点的偏差,对于较大的目标而言显得微不足道,但是对于小目标,误差的影响就要高很多)

图 2 
图片标题 
图 3 
图片标题

来源:网络


智能推荐

ROI Pooling层解析

ROI Pooling的意义 ROIs Pooling顾名思义,是Pooling层的一种,而且是针对RoIs的Pooling,他的特点是输入特征图尺寸不固定,但是输出特征图尺寸固定。               什么是ROI呢? ROI是Region of Interest的简写,指的是在“特征图上的框”...

学习ROI Pooling层

ROI Pooling的意义 ROIs Pooling顾名思义,是Pooling层的一种,而且是针对RoIs的Pooling,他的特点是输入特征图尺寸不固定,但是输出特征图尺寸固定; 什么是ROI呢? ROI是Region of Interest的简写,指的是在“特征图上的框”; 1)在Fast RCNN中, RoI是指Selective Search完成后得到的&ldqu...

CAM350 Align叠层(NOT UNDO-able! Align layer: 1 to base pt:)

CAM350叠层时出现NOT UNDO-able! Align layer: 1 to base pt: 这个并不是错误,按照如下操作步骤使用Align功能可以顺利叠层。 1、将刻度设置为0.001:0.001 2、点击Align,箭头会变成选择状态。 3、左键双击钢网层PAD→右键单击→左键单击,此时PAD会变白→左键双击GERBER层相同处PAD,PAD会变白,右...

ResNet-50特殊层详解

最近在做图像风格迁移,尝试了用预训练的ResNet-50来代替VGG-19,结果自己学艺不精失败了,好在对ResNet-50还是有比较多的了解的,其他博文一般都是一个大框架,我自己做了一些特殊层详解,分享给大家,做点好事,保佑我毕设早点通过。 Conv2-2的输入为(56,56,256),stride=1 则conv4_2的输如为(14,14,1024),stride=1,后边相同 再附加一个有R...

ROI (Region of interest pooling) Pooling 层详解

参考:https://blog.deepsense.ai/region-of-interest-pooling-explained/ 目标检测typical architecture通常分为两个阶段: 1)region proposal: 给定一个输入图像,找出可找到对象的所有可能位置。这个阶段的输出应该是bounding box列表,这些通常被称为region proposal,或感兴趣的地区。...

猜你喜欢

ROI (Region of interest pooling) Pooling 层详解

感兴趣区域(Region of interest) 原文链接 目标检测典型结构通常分为两个阶段: 1)region proposal: 给定一个输入图像,找出可找到对象的所有可能位置。这个阶段的输出应该是bounding box列表,这些通常被称为region proposal,或感兴趣的地区。 2)final classification: 对于每一阶段的region proposal,决定属于...

详解ROI Polling和 ROI Align 的基本原理和实现细节

尊重作者 ROI Polling来自 转载地址1 ROI Align来自  转载地址2 文中图片来源 转载地址3 何凯明 Mask RCNN演讲 目录 1、为何需要ROI Polling? 2、ROI Polling原理及具体实现 3、ROI Polling局限性分析 4、ROI Align 的主要思想和具体方法 5、ROI Align 的反向传播 1、为何需要ROI...

faster-rcnn中添加Mask中的RoiAlign层,使回归框更精确( roi_align_layer.cu:240] Check failed: error == cudaSuccess *)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/e01528/article/details/80265118 具体的操作为什么这样做,可参照: 1.Caffe学习之自定义创建新的Layer层   2.如何在caffe中自定义网络层 ROI pooling层 说起ROI Alignment,就要说道faster-rcnn的ROI pool...

ROI Pooling和ROI Align

这两个问题一直不求甚解,今天又遇到了,是时候把它解决了 参考https://www.cnblogs.com/wangyong/p/8523814.html https://blog.csdn.net/yychentracy/article/details/100172729 看了一些博客,好多都没讲清楚,直接就一个bin取四个点然后取最大值,都没说这个bin是怎么来的,为什么要取最大值,这篇博客讲...

如何创建你的ico图标(一个含有多种尺寸的ico)

一、下载ps下能存ico格式的插件 因为我们要在Photoshop中创建这个图标,所以,首先要下载能将图片保存为.ico格式的Photoshop插件。Photoshop本身是不支持将图片保存为.ico格式的,有了这个插件,你才能轻松的将做好的图片保存为我们所需要的格式。 下载好以后,安装到你相应的文件夹中一般来说是你ps安装位置的我的是7.0,我给放这里了Program Files\Adobe\P...

问答精选

Render Section Without reloading Layouts MVC

I'm using Two layouts 1- Main Layout : "~/Views/Shared/_Layout.cshtml" 2- Left Side layout "~/Views/Shared/_LeftSide.cshtml" (this view also contains main layout) In left Side Layo...

Different results using numpy.in1d() with an array and with its single elements

I'm writing a code in Python and I'm having a few problems. I have two arrays, let's say A and B, both of them containing IDs. A has all IDs, and B has IDs belonging to a group. What I'm trying to do ...

How can I pass multiple std::filesystem options?

Here is my recursive copy line: I want to have it be both recursive and update existing. So something like: The above is invalid. How do I achieve this? Thank you. From https://en.cppreference.com/w/c...

RFC 4175 support in ffmpeg?

As of today, is RFC 4175 (aka SMPTE 2110-20) currently supported in the released version of ffmpeg (4.1)? Surfing the web I am only able to find these two references: https://patchwork.ffmpeg.org/patc...

How to add custom list item in action bar searchview

I've added a searchView to the toolbar, and added the search suggestions. The problem is I want to add a custom list-item to the search suggestions as the last item to clear the suggestions(search his...

相关问题

相关文章

热门文章

推荐文章

相关标签

推荐问答