目标检测特殊层:PSROIPooling详解
1. Position Sensitive ROI-Pooling 简介
Position Sensitive ROI Pooling(位置敏感的候选区域池化)是检测框架R-FCN的主要创新点。一般来讲,网络越深,其具有的平移旋转不变性越强,这个性质对于保证分类模型的鲁棒性有积极意义。然而,在检测问题中,对物体的定位任务要求模型对位置信息有良好的感知能力,过度的平移旋转不变性会削弱这一性能。研究发现,对于较深的全卷积神经网络(Inception、ResNet 等),Faster-RCNN检测框架存在着一个明显的缺陷:检测器对物体的位置信息的敏感度下降,检测准确度降低。一般来讲最直观的解决方法是将RPN的位置向浅层移动(比如在ResNet中将RPN嵌入到conv4_x的位置),但这样做会明显增加 Fast-RCNN 部分的计算量,使得检测速度明显变慢。
有鉴于此,R-FCN 这篇文章的作者提出了一种全新的特征聚集方法:Position Sensitive ROI Pooling。其主要思想是在特征聚集时人工引入位置信息,从而有效改善较深的神经网络对物体位置信息的敏感程度。同时,R-FCN的大部分操作都直接对整张图片进行,这也大大优化了网络的运行速度。PS-ROI Pooling 具体操作方法如下图所示(这里仅显示了分类分支,包围框回归分支操作类似,在通道数和损失函数形式上有一些区别):
如上图,每一个候选区域(ROI)被平均分割成 k^2 个矩形单元,前序特征图先通过一层 1*1 的卷积核生成通道数为 k^2*(C+1) 的特征图。这里,k^2 代表一个ROI里所有矩形单元的数量,C+1 代表所有的类别数加上背景。这 k^2*(C+1) 张特征图每 C+1 张分成一组、共包含 k^2 组,每组负责向对应的矩形单元进行响应。池化每一个ROI时,各个点(一共 k^2 个),均由上一层中对应分组的对应位置区域通过平均池化获得。由此获得一组 C+1 张特征图。最后,将这些特征图经过全局平均池化,得到 C+1 维的向量,计算分类损失函数。 全图卷积,降低第二阶段的计算量,推荐窗口只需要经过全局的平均就可以分类;不同的卷积核提取不同位置的特征,可能是人体的一部分,能体现位置信息;
计算反向传播时,遵循“向对应位置回传梯度的原则”,池化后的每一个点回传的梯度传向池化前特征图上对应通道对应区域的特征点上。具体实现可参见源码:PSROI-Pooling 源码
2. PS-ROI Align 的主要思路和实现细节
ROI Align的具体原理和实现细节已在博文中说明得很清楚了。在这一改进思路的启发下,博主尝试将 ROI Align 移植到 PS-ROI Pooling 中,实现了一个 Position Sensitive ROI Align 的算法。主要改进就是两次量化的取消:ROI的边界坐标值和每个ROI中所有矩形单元的边界值保持浮点数形式,在每个矩形单元中计算出固定位置固定数量的采样点的像素值作平均池化。具体的前向传播和反向传播细节如下:
- 前向传播:
a. 遍历池化后特征图上的每一个像素点,在池化前特征图上寻找对应通道上的对应区域;
b. 将每一个候选区域平均划分成 n * n 个单元;
c. 在每一个单元内,按照设置的采样点数目计算出采样点的坐标值;
d. 使用双线性内插的方法计算出特征图上每一个采样点处所对应的值;
e. 依照平均池化的方式计算出 a 步骤中当前点的值,并且记录下所有采样点的位置坐标。 - 反向传播:
a. 遍历池化后特征图上的每一个像素点,在池化前特征图上寻找对应通道上的对应区域;
b. 在a步骤的当前区域中遍历每一个点,分别和前向传播中记录下来的所有采样点坐标比较,如果横纵坐标都小于1,则回传平均后的梯度值。
初步的实验表明,PS-ROI Align 对模型的检测性能有提升,对小物体的感知能力有明显改善,具体的实验结果将过段时间发出。
转载请标明出处:目标检测特殊层:PSROIPooling详解
文章来源: 目标检测特殊层:PSROIPooling详解
目标检测特殊层:PSROIPooling详解相关推荐
- 目标检测算法YOLO-V1算法详解
❝ 前面我们一起学了SSD算法的相关知识,如下: SSD目标检测算法必须知道的几个关键点 目标检测算法SSD结构详解 ❞ 今天我们学习另一系列目标检测算法YOLO(You Only Look Once ...
- 目标检测模型YOLO-V1损失函数详解
❝ 上期我们一起学习了YOLOV1算法的原理框架,如下: 目标检测算法YOLO-V1算法详解 今天我们深入一步,一起学习下关于YOLO-V1算法的损失函数和优缺点. ❞ YOLO-V1损失函数 从上期 ...
- 【动手学PaddlePaddle2.0系列】目标检测理论与YOLOv4详解
对计算机而言,能够"看到"的是图像被编码之后的数字,所以它很难理解高层语义概念,比如图像或者视频帧中出现的目标是人还是物体,更无法定位目标出现在图像中哪个区域.目标检测的主要目的是 ...
- 目标检测网络之SPP-net详解
SPP-net详解: 简要概述:SPP-net网络是基于R-CNN结构改进,且仅在候选区域特征提取,以及特征向量大小转化两个方面做出改进,如详细理解SPP-net请先阅读目标检测开山之作R-CNN详解 ...
- 深度学习-目标检测YOLOV3 YOLOv4原理详解
2.YoloV3核心基础内容 2.1 网络结构可视化 Yolov3是目标检测Yolo系列非常非常经典的算法,不过很多同学拿到Yolov3或者Yolov4的cfg文件时,并不知道如何直观的可视化查看网络 ...
- 基于双目视觉的目标检测与追踪方案详解
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者 | Aimme 出品 | 焉知智能汽车 一直想通过计算机视觉的角度好好地把其在自动驾驶视觉检测 ...
- 谷歌 NAS + 目标检测:SpineNet论文详解
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 作者:bearbee 知乎链接:https://zhuanlan.zhihu.co ...
- 【目标检测】RCNN算法详解
转载自:http://blog.csdn.net/shenxiaolu1984/article/details/51066975 Girshick, Ross, et al. "Rich f ...
- YOLOv7(目标检测)入门教程详解---环境安装
目录 一.前言 二.yolov7环境搭建 直接进入正题,环境搭建开始: Anaconda: Pycharm: cuda: cuda安装: cudnn: 三.虚拟环境安装 创建虚拟python环境: P ...
- 【论文解读】深度学习目标检测的开山鼻祖 |R-CNN详解 | 两阶段目标检测代表
目录 前言 目标检测近年里程碑 深度学习目标检测 1 R-CNN简介 1.1 何为R-CNN? 1.2 摘要 1.2.1 论文综述 1.2.2 优点汇总 1.2.3 缺点汇总 2. RCNN网络结构解 ...
最新文章
- LabVIEW图像灰度分析与变换(基础篇—4)
- scrapy配置文件操作核心API解读
- 给Event handler传递动态参数
- 存储引擎:MySQL系列之七
- 蚂蚁集团董事调整:黄益平等五人新增,彭蕾等三人退出
- javascript-按圆形排列DIV元素(三)实例---- 图片按椭圆形转动
- CentOS7.5 firefox Flash插件更新
- SAP License:SAP精细化的应收付及要素为根设计思想
- jetCache使用
- ThinkPHP3.2.3 语言包切换中英文切换
- FusionCharts图表右键菜单的各种典型示例
- 20170824关于星光级和低照度你了解多少?
- 曙光服务器bios开启vt虚拟化,BIOS怎么开启虚拟化技术VT
- 飞信2009_AfterShip CTO 洪小军—我的移动互联网十年造梦记:飞信时代
- Google Test - Google Testing and Mocking Framework
- 用狼的处世哲学做SOHO(一) (转)
- LinuxC TCP实现简易聊天室
- 对CreateCompatibleDC的粗浅认识
- yum下载软件包报错 you could try using --skip-broken to work aroundthe problem you should tyr running: rpm
- 22021山东高考成绩查询,山东高考成绩今日发布!成绩查询看这里!
热门文章
- boost::mpl::inherit_linearly相关用法的测试程序
- boost::incremental_components用法的测试程序
- boost::geometry::detail::overlay::traverse用法的测试程序
- Boost:线程实例
- ITK:添加点和边到网格
- VTK:简单操作之PerspectiveTransform
- OpenCV放大视频Upscaling video
- Qmake建立常见的项目类型
- C语言在BST中找到最接近目标的值的算法(附完整源码)
- OpenGL point shadow点阴影的实例