目标检测1——RoI Pooling和RoI Align

本文介绍了ROI在目标检测中的作用及其两种实现方式ROIPooling和ROIAlign。ROIPooling通过池化操作解决模型固定大小输入的问题,提升检测性能;ROIAlign则通过双线性插值提高检测精度。


欢迎访问个人网络日志🌹🌹知行空间🌹🌹


1 ROI

首先,何为ROIROIRegion of Interest的缩写,即感兴趣区域。在不同的情况下用户关心的图像区域是不同的,因此ROI所指含义也不同。对于物体检测的目标ROIROI就是要找到对象在图像中Bounding Box区域。如

在这里插入图片描述

对于物体检测的目标,我们关心的是对象是人,则上图中红色的框中人的框选区域就是ROI

而在Fast RCNN中,ROI Pooling作用在backbone和检测头之间,其关心的是物体检测框的候选框proposal boxes,而非真正的target boxes,对proposal boxes经过置信度评分过滤和极大值抑制后才能生成target boxes。因此,此时的ROI指的是候选框proposal boxes所指的区域。如下图,目标框是准确框出图中的两只狗狗,但通过selective searchRPN网络生成的proposal boxes如图中花花绿绿的框所时,ROI PoolingROI Align正是作用在这些proposal boxes所指的ROI上。

图片来源于https://d2l.ai/chapter_computer-vision/anchor.html
在这里插入图片描述

2.ROI Pooling

将深度学习用于目标检测,网络架构一般是分成Backbone基干网络用于提取图像特征,和检测头用来实现分类和检测框位置回归。2015年4月份微软的Ross Girshick发表的Fast RCNN论文中提出了ROI Pooling, 解决了模型固定大小输入的问题,提升了检测的性能,一起来看ROI Pooling到底是怎么回事。

ROI Pooling顾名思意,就是池化操作的一种,只不过这个池化操作是作用在ROI上面,而非整个图像区域。先看fast RCNN的整体架构,

图片来自fast RCNN 论文
在这里插入图片描述

图中Deep ConvNet是深度卷积网络,也就是backbone是用来提取特征得到feature map的,feature map就是对输入的图像经过层层卷积后得到的shape为NCHW的张量,其中feature map的宽高大小通常等于输入图像宽高除以stride,stride是输入图像经过卷积池化得到的feature map的缩放倍数,ROI Pooling正是紧跟在feature map后面,作用在feature map的池化操作。输入图像中红色的框是一个proposal box,这个proposal boxselective searchregion proposal network算法自动生成的ROI区域,还不是物体检测框bounding boxproposal boxes的尺度是相对于输入图像的,因此可根据stride参数,将其映射到feature map尺度上,也就是图中的ROI Projection。得到feature map和经过stride缩放投射到feature map上的proposal box后,就可以开始进行池化操作了。

在这里插入图片描述

从上图中可以看

### 回答1RoIPooling RoIAlign 是两种用于在目标检测中处理 Region of Interest (RoI) 的方法。 RoIPooling 是一种将 RoI 区域采样为固定大小的特征图的方法,它通过对 RoI 区域内的像素进行 max pooling 来实现。 RoIAlign 是一种改进 RoIPooling 的方法,它通过对 RoI 区域内的像素进行双线性插值来精确定位像素位置,从而更准确地处理 RoI 区域的特征。 总的来说,RoIAlignRoIPooling 更精确,但是计算量更大。 ### 回答2: RoIPooling(Region of Interest PoolingRoIAlign(Region of Interest Align)是在目标检测领域中常用的两种处理特征图中感兴趣区域的方法。在 Faster RCNN、Mask RCNN、YOLO等流行的目标检测算法中,都用到了RoIPoolingRoIAlignRoIPooling将图像特征分为多个像素点,然后将感兴趣的区域划分成固定尺寸的子区域,每个子区域将其中的特征点聚合成一个值。这种聚合方式可以使得不同大小的感兴趣区域都可以映射为相同尺寸的特征区域,从而方便以相同尺寸进行后续处理。但是,RoIPooling采用了近似的方式来计算感兴趣区域中特征点的聚合值,可能导致特征点的位置偏移,从而降低了目标检测的精度。 RoIAlign通过双线性插值的方式计算感兴趣区域中每个特征点的值,能够更加准确地计算出感兴趣区域的特征,提高目标检测的精度。RoIAlign对于小目标低分辨率的图像使用效果更好,但由于需要进行双线性插值,计算复杂度也更高,计算时间更长。 综上所述,RoIPooling虽然计算速度较快,但准确度相对较低,适用于更大的感兴趣区域。RoIAlign计算准确度更高,但计算时间更长,适用于更小的感兴趣区域。在实际应用中需要根据具体情况选择平衡二者的使用。 ### 回答3: RoIPoolingRoIAlign是在物体检测领域中广泛使用的两种特征金字塔网络用于从卷积神经网络中提取感兴趣区域(Region of Interest)的技术。 RoIPoolingRoIAlign最初是在Faster R-CNN中提出的,Faster R-CNN是目前最优秀的物体检测算法之一。这两种方法都是为了解决R-CNN中存在的空间量化问题边界偏移问题。 RoIPooling是在特征图中提取感兴趣区域时,使用划分区域(sub-region)的方法。将RoI区域内的像素均匀划分成一个固定大小的子区域,然后在每个子区域内选择最大的值作为该子区域的输出结果。然后将这些划分的子区域进行池化操作,最终形成特征向量。 但是RoIPooling的问题是对于感兴趣区域中边界部分的像素容易丢失,从而造成检测结果误差增加。为了解决这一问题,RoIAlign应运而生。 RoIAlignRoIPooling相比,最显著的改善是在划分子区域时,使用双线性插值法计算划分子区域内的特征值,避免了对子区域中像素的量化损失。另外,RoIAlign还使用了更为精细的采样技术,防止了积累误差的产生,更加准确地提取了感兴趣区域中的特征,从而提高了检测精度。 总之,RoIPoolingRoIAlign是在物体检测中提取感兴趣区域时常用的技术,通过划分子区域采样技术来准确提取感兴趣区域内的特征,提高检测精度,是物体检测中不可或缺的技术手段。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值