热门标签 | 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,双线性插值


推荐阅读
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社区 版权所有