热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

理解RoIPooling和RoIAlign作用和实现方式

1.RoIPoolingRoIPooling顾名思义对Roi进行Pooling操作,主要用于目标检测任务。RoI(Regionofinterest&#

1.RoIPooling

RoIPooling顾名思义对Roi进行Pooling操作,主要用于目标检测任务。RoI(Region of interest)指的是一张图片中认为有存在目标的区域,例如下图中的蓝色和红色区域,这里我们不用去管Roi是如何提取的。他的特性是输入特征图的大小不确定,输出的特征图的大小固定

一般使用到RoIPooling的流程为: 输入图片->多层卷积->得到共享特征图->候选框坐标(相对于输入网络图片的坐标)在共享特征图上做映射->得到候选框区域在共享特征图上对应的区域->在对应的区域上进行max 或者average pooling操作->得到fix feature map(这个fix feature map的size是我们设定好的,例如7×7)->多层全连接(进行分类或者回归)

 

对Roi的max pooling操作的kernel size记作A,  即A = 多层卷积后的feature map的size / fix feature map 的size 

因此这里的A有可能不是整数 ,那么该如何处理呢?

第一种办法:对A进行四舍五入(最近邻插值法),然后一次从左到右对多层卷积后的feature map进行max pooling操作,这样做相当与丢弃了feature map右边的一些值。(faster R-CNN中使用的一种方式)

第二种办法: 不直接丢弃feature map的值,即改变A的值为多个不同的整数,使得划分多层卷积后的feature map的区域的个数等于fix feature map size 例如7×7, 然后对划分的每一个区域取最大值,即得到fix feauture map, 这样做相当将池化核(正方形)a×a变成了不同的(长方形)m1×n1,m2×m2,.... 如何确定这些值,比较难以处理。

RolPooling的优点:可以重用多层卷积后的feature map,加快了训练和测试时间,可以实现end-to-end训练

 

2.RoIAlign

RoIAlign针对第一种方法进行改进,何凯明在Mask RCNN中指出第一种方法会损失空间对称性 ,从而将最近邻插值法替换为双线性插值,并且命令为RoIAlign。双线性插值法可以参考下面的链接。

参考链接:RoIPooling ,SPP,双线性插值


推荐阅读
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文介绍如何在 Android 中通过代码模拟用户的点击和滑动操作,包括参数说明、事件生成及处理逻辑。详细解析了视图(View)对象、坐标偏移量以及不同类型的滑动方式。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文详细探讨了KMP算法中next数组的构建及其应用,重点分析了未改良和改良后的next数组在字符串匹配中的作用。通过具体实例和代码实现,帮助读者更好地理解KMP算法的核心原理。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • Java 中 Writer flush()方法,示例 ... [详细]
author-avatar
心灵de倾斜
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有