目标检测特殊层:PSROIPooling详解

匿名 (未验证) 提交于 2019-12-03 00:32:02

1. Position Sensitive ROI-Pooling 简介

  Position Sensitive ROI Pooling(位置敏感的候选区域池化)是检测框架R-FCN的主要创新点。一般来讲,网络越深,其具有的平移旋转不变性越强,这个性质对于保证分类模型的鲁棒性有积极意义。然而,在检测问题中,对物体的定位任务要求模型对位置信息有良好的感知能力,过度的平移旋转不变性会削弱这一性能。研究发现,对于较深的全卷积神经网络(Inception、ResNet 等),Faster-RCNN检测框架存在着一个明显的缺陷:检测器对物体的位置信息的敏感度下降,检测准确度降低
  有鉴于此,R-FCN 这篇文章的作者提出了一种全新的特征聚集方法:Position Sensitive ROI Pooling。其主要思想是在特征聚集时人工引入位置信息,从而有效改善较深的神经网络对物体位置信息的敏感程度。同时,R-FCN的大部分操作都直接对整张图片进行,这也大大优化了网络的运行速度

  如上图,每一个候选区域(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中所有矩形单元的边界值保持浮点数形式,在每个矩形单元中计算出固定位置固定数量的采样点的像素值作平均池化。具体的前向传播和反向传播细节如下:






  • e. 依照平均池化的方式计算出 a 步骤中当前点的值,并且记录下所有采样点的位置坐标。


  • b. 在a步骤的当前区域中遍历每一个点,分别和前向传播中记录下来的所有采样点坐标比较,如果横纵坐标都小于1,则回传平均后的梯度值。

初步的实验表明,PS-ROI Align 对模型的检测性能有提升,对小物体的感知能力有明显改善,具体的实验结果将过段时间发出。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!