【AI面试】RoI Pooling 和 RoI Align 辨析

news2024/11/26 5:19:12

RoI PoolingRoI Align是两种常用的目标检测中的RoI特征提取方法。它们的主要区别在于:如何将不同大小的RoI对齐到固定大小的特征图上,并在这个过程中保留更多的空间信息

一、RoI Pooling

RoI Pooling最早是在Fast R-CNN中提出的,它的基本思路是:

将一个个大小不同的RoI,变成一个固定大小的网格(比如7*7),然后在每个网格上进行最大池化,输出固定大小的特征图。

RoI Pooling实质上是什么呢?

RoI层只是SPPnets中使用的空间金字塔池化层的特殊情况,其中只有一个金字塔层。(The RoI layer is simply the special-case of the spatial pyramid pooling layer used in SPPnets in which there is only one pyramid level.)

RoI Pooling的步骤:

  1. bounding box区域按输出要求的size进行等分,很可能等分后,各顶点落不到真实的像素点。采取**向上取整(ceil)和向下取整(floor)**到对应的单元尺寸大小;
  2. 在每个bin中的各个像素点,做最大池化,作为这个bin的输出值;
  3. 最后就能得到固定大小的输出。

这个方法的优点是简单快速,但是它的缺点是会造成信息的损失,为什么?

比如,当一个RoI的大小不是网格大小的整数倍时,通过分别采取向上取整(ceil)和向下取整(floor)到对应的单元尺寸大小。这种操作都会对应着轻微的区域特征错位misaligned), 在RoI和提取到的特征之间引入了偏差。

这些偏差可能不会影响对分类任务,但它对预测像素精度掩模有很大的负面影响。

二、RoI Align

为了解决RoI Pooling存在的缺陷,RoI Align被提出。RoI Align的基本思路与RoI Pooling相似,但是它将RoI划分成更小的子区域(比如2x2),然后在每个子区域上进行双线性插值(本质上是目标像素所相邻的四个像素, 分别以像素对应的对角像素与目标像素的构成的矩形区域为权重,像素大小为值的加权和),输出固定大小的特征图。

RoI Align的步骤:

  1. 将bbox区域按输出要求的size进行等分,很可能等分后,各顶点落不到真实的像素点上;
  2. 在每个bin中再取固定等分的4个点(作者实验后发现取4效果较好),每一个蓝点距离它最近的4个真实像素点的值加权(双线性插值),赋值给蓝点像素;
  3. 求得这个蓝点的值一个bin内会算出4个新值,在4个新值中取最大池化,作为这个bin的输出值;
  4. 最后就能得到固定大小的输出。

RoI Align相比于RoI Pooling的优点是更加精确,能够保留更多的空间信息。特别是在处理小的RoI时,RoI Align的效果更加明显。但是RoI Align的缺点是计算量较大,因为需要进行插值操作。

总体来说,RoI Align相比于RoI Pooling更加精确,但是需要付出更多的计算代价。在实际应用中,根据需求和计算资源的限制,可以选择适当的RoI特征提取方法。

在这里插入图片描述

更多图文部分,参考这里:ROI Pooling和ROI Align

三、总结

mask rcnn论文中,作者在Faster R-CNN网络中引入RoI Pooling和RoI Align,对结果进行了对比,如下:
结果

同时,对keypoint detection任务中引入RoI Pooling和RoI Align,结果对比:

key
都能发现,即便是对于对像素点无需非常精确的目标检测任务,换用更优的ROI处理方式,同样都得到了更优的结果,进一步证明了该改进方法的优越性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/525482.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL MHA

概述 什么是 MHA MHA(Master High Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点的问题。 MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切换的过程中…

JAVA语言-比较器Comparator(java中Comparable和Comparator的区别)

文章目录 一、什么是Comparator二、Java compare方法和compareTo方法三、java中Comparable和Comparator的区别 Comparator的例子三、demo:java8使用Lambda表达式比较器Comparator给List对象排序,按时间、数字、字典排序 一、什么是Comparator Comparato…

Unittest单元测试框架之unittest_执行用例的详细信息

unittest_执行用例的详细信息 用unittest.main()执行测试集 这里的verbosity是一个选项,表示测试结果的信息复杂度,有三个值:0 (静默模式): 你只能获得总的测试用例数和总的结果 比如 总共100个 失败20 成功801 (默认模式): 非常类似静默模式 只是在每…

MySQL数据库从入门到精通学习第3天(查看,选择,修改,删除数据库)

查看,选择,修改,删除数据库 查看数据库选择数据库修改数据库删除数据库 查看数据库 创建完数据库,可以通过SHOW命令来查看所有的数据库信息,语法: SHOW DATABASES [LIKE %模式% WHERE 条件]; >>>…

MySQL进阶-索引

本文介绍MySQL索引的结构、语法、使用规则等 文章目录 索引介绍索引结构二叉树B-TreeBTreeHash 索引分类思考题 语法SQL性能分析SQL的执行频率慢查询日志PROFILE详情EXPLAIN执行计划 索引使用规则最左前缀法则索引失效情况索引列运算字符串不加引号模糊查询or连接的条件数据分布…

(免费分享)基于微信小程序的旅游系统

目 录 1绪论 1 1.1概述 1 1.2课题意义 2 1.3主要内容 2 2 相关技术简介 3 2.1 HBuilder X技术介绍 4 2.2 JAVA简介 5 2.3 MYSQL数据库 6 2.4 SSM框架 7 3 系统分析 8 3.1 系统需求分析 9 3.1.1系统功能需求 10 3.1.2系统技术需求 11 3.1.3系统安全需求 12 3.2 可行性分析 13 3…

postgresql 词法/语法(scanner/parser)中flex/bison介绍

专栏内容:postgresql内核源码分析个人主页:我的主页座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 目录 前言 词法分析与语法分析的关系 工具介绍 flex的介绍 bison的介绍 flex的…

【云原生进阶之PaaS中间件】第一章Redis-2.2Redis IO模型

1 IO模型 linux系统也是一种应用,它是基于计算机硬件的一种操作系统软件。当我们接收一次网络传输,计算机硬件的网卡会从网络中将读到的字节流写到linux的buffer缓冲区内存中,然后用户空间会调用linux对外暴露的接口,将linux中的b…

将虚拟机dmesg日志内容通过串口输出到windows下文件中

将虚拟机dmesg日志内容通过串口输出到windows下文件中 文章目录 将虚拟机dmesg日志内容通过串口输出到windows下文件中a. 设置vmware添加serial port, 使用文件作为串口b. 启动ubuntu,修改/etc/default/grubc. ubuntu使用root用户登录d. 修改printk优先级&#xff0…

数据科学中使用的17 种相似性和相异性度量之欧氏距离

目录 1简介 2距离函数 2.1 L2范数(欧氏距离) 1简介 在数据科学中,相似性度量是一种衡量数据样本如何相互关联或相互接近的方法。另一方面,相异性度量是告诉数据对象有多少是不同的。此外,当相似的数据样本被分组到一…

异常检测专栏(一)异常检测概述

前言 异常检测一直是机器学习中一个活跃的研究领域,由于风险管理、合规、安全、将抗和医疗风险以及人工智能安全等广泛领域的需求和应用不断增加,异常检测发挥和越来越重要的总用。近年来,随着深度学习和计算机视觉技术的不断发展&#xff0c…

零死角玩转stm32中级篇4-ADC和DAC

本篇博文目录: 一.ADC的基础概念1.什么是ADC2.在单片机中我们一般使用ADC技术来做什么?3.怎么查看单片机的某一个引脚是否具有ADC功能4.ADC采集和引脚数据的读取有什么区别5.单片机内部采用的是数字信号,为什么还要采用ADC进行转换6.ADC的分类7.ADC的工作原理8.ADC…

多目标应用:MOGWO求解环境经济负荷分配问题(IEEE-30bus)提供MATLAB代码

一、多目标灰狼优化算法 MOGWO MOGWO原理参考文献:S. Mirjalili, S. Saremi, S. M. Mirjalili, L. Coelho, Multi-objective grey wolf optimizer: A novel algorithm for multi-criterion optimization, Expert Systems with Applications, in press, DOI: http:/…

基础篇007. 串行通信

目录 1. 串行通信 1.1 串行通信概述 1.2 串行通信协议 2. 实验任务 3. 硬件原理 4. 利用STM32CubeMX创建MDK工程 5. 串行通信实验 5.1 UART串口printf,scanf函数串口重定向 5.2 UART串口printf输出实验 5.3串口控制LED实验 6.调试与验证 7.总结 串口调…

Redis主从复制是怎么实现的

如果数据都是存储在一台服务器上,如果出事就完犊子了,比如: 如果服务器发生了宕机,由于数据恢复是需要点时间,那么这个期间是无法服务新的请求的;如果这台服务器的硬盘出现了故障,可能数据就都…

Java注解方式实现aop,切点切面实战

注解方式实现aop我们主要分为如下几个步骤(有更好的方法的话,欢迎交流): 1.在切面类(为切点服务的类)前用Aspect注释修饰,声明为一个切面类。 2.用Pointcut注释声明一个切点,目的是…

STM32 10个工程篇:1.IAP远程升级(三)

本想着周六去更新IAP远程升级(三),但是周三单位突然通知团建周六去爬水长城,晚上回来已经精疲力竭,打开电脑不由地点开网易云音乐听着听着感觉很乏,去床上躺了会可一觉醒来已经夜里三点,于是调整…

【人工智能】— 贝叶斯网络、概率图模型、全局语义、因果链、朴素贝叶斯模型、枚举推理、变量消元

【人工智能】— 贝叶斯网络 频率学派 vs. 贝叶斯学派贝叶斯学派Probability(概率):独立性/条件独立性:Probability Theory(概率论):Graphical models (概率图模型)什么是图模型(Grap…

深度学习之图像分类识别(一):AlexNet

本专栏介绍基于深度学习进行图像识别的经典和前沿模型,将持续更新,包括不仅限于:AlexNet, ZFNet,VGG,GoogLeNet,ResNet,DenseNet,SENet,MobileNet&#xff0c…

基于matlab使用麦克风阵列进行声波束成形

一、前言 此示例说明了麦克风阵列波束成形,以便在干扰为主的嘈杂环境中提取所需的语音信号。此类操作可用于增强语音信号质量以进行感知或进一步处理。例如,嘈杂的环境可以是交易室,麦克风阵列可以安装在交易计算机的显示器上。如果交易计算机…