详细解读SSPNet| 小目标检测该如何进行改进?

简介: 详细解读SSPNet| 小目标检测该如何进行改进?

1简介


随着搜救需求的不断增加,人们对在无人机(UAV)捕获的大尺度图像中检测感兴趣的物体的需求越来越高,由于物体的尺度极小,这非常具有挑战性。大多数现有方法采用特征金字塔网络(FPN)通过组合深层的上下文特征来丰富浅层的特征。然而,在跨层梯度计算不一致的限制下,FPN中的浅层没有被充分利用来检测微小物体。

在本文中提出了一个用于Tiny-Person检测的尺度选择金字塔网络(SSPNet),它由3个组件组成:

  • 上下文注意模块(CAM):CAM 考虑上下文信息以生成分层 Attention Heatmap。
  • 尺度增强模块(SEM):SEM 在不同层突出特定尺度的特征,使检测器专注于特定尺度的物体。
  • 尺度选择模块(SSM):SSM 利用相邻层的关系来实现深层和浅层之间适当的特征共享,从而避免不同层之间梯度计算的不一致。

此外,作者还提出了一种加权负采样(WNS)策略来指导检测器选择更具代表性的样本。Tiny-Person测试表明,本文所提方法优于其他SOTA检测器。


2本文方法


SSPNet主要是基于Faster R-CNN的框架,包括CAM、SEM、SSM,如图2(a)所示。

image.png

2.1 Context Attention Module

为了生成分层的attention heatmap,作者设计了CAM来生成不同层次的attention heatmap。因为上下文信息可以提高检测小目标的性能。

因此,作者首先将backbone在不同stage产生的特征进行上采样,使其与底部的特征具有相同的形状,并将它们cat起来。然后采用多尺度空间金字塔池算法(atrous spatial pyramid pooling, ASPP),提取的多尺度特征来寻找目标线索;ASPP生成的上下文感知特征被传递到一个由多个卷积和sigmoid激活函数组成的激活门,该激活门由多个不同stride的卷积和sigmoid激活函数组成,生成层次attention heatmap  :image.png

其中σ为sigmoid激活函数,为第k层的卷积,为卷积参数,为ASPP生成的上下文感知特征,为卷积步长。

为了指出在SSPNet的每一层中哪些尺度对象可以被指定为正样本,作者采用了supervised attention heatmap来突出SSPNet每一层中特定尺度的目标,避免被背景淹没。

具体地说,supervised attention heatmap与不同层次锚点匹配的对象相关联。如图2(b)所示,supervised attention heatmap在不同的层次上表现出不同的具体比例尺范围,其中红色和绿色虚线框表示对应层锚定不匹配的对象将被视为背景。与之对应的attention heatmap如图2(b)所示,CAM能够生成特定比例尺范围的attention heatmap。

2.2 Scale Enhancement Module

采用SEM增强特定尺度物体的线索。由于不同层的attention heatmap具有不同的尺度偏好,使得SEM能够产生尺度感知特征:

image.png

其中和分别为输入特征图和输出尺度感知特征,为第k层的attention heatmap。

请注意,残差连接用于避免降低目标周围的特征,因为上下文信息可能有助于检测。

2.3 Scale Selection Module

为了从深层为浅层选择合适的特征,作者提出SSM来引导深层向浅层提供合适的特征,在浅层中,合适的特征被优化到同一类,因此不会导致梯度计算不一致。另一方面,如果相邻层的目标都能被检测到,那么深层将提供更多的语义特征,同时与下一层进行优化。SSM可以设计如下:

image.png

其中与的交点为,为最近的上采样操作,为第k层的合并映射,为第(k−1)个残块的输出。

具体来说,SSM扮演着比例选择器的角色。对于下一层尺度范围内的目标对应的特征将被视为合适的特征流入下一层,而其他特征将被弱化,以抑制梯度计算中的不一致性。

2.4 Weighted Negative Sampling

在无人机拍摄的大视场图像中,复杂的背景通常比自然场景图像引入更多的噪声。此外,这些图像中的部分遮挡导致一些物体只被可见部分标注,导致检测器将人的部分视为完整的个体,尤其是在数据集不大的情况下。基于这些考虑,作者提出了小波神经网络,通过更多地观察代表性样本来增强检测器的泛化能力。

首先,hard negative样本通常被检测器视为具有较高置信度的positive样本。因此,置信度是最需要考虑的直觉因素。然后,采用前景交叉准则来量化目标的不完整程度。接下来,构造一个考虑IoF和置信度2个因素的评分融合函数:

image.png

其中和分别表示第个检测结果的置信度和对应的最大IoF, 表示调整置信度与IoF的系数。然后,可以根据调整每个样本的选择概率。

2.5 损失函数

总损失如下:

image.png

RPN损失:

image.png

Head损失:

image.png

其中和对边界框回归均采用smooth L1 loss,但在分类方面,采用了二进制交叉熵(BCE)损失,采用了交叉熵损失。

image.png

对于, i是minibatch中边界框的索引。和分别表示预测类和ground-truth的概率分布。和分别表示预测的边界框和ground-truth box。分类和回归损失由(minibatch)和(box位置的数量)归一化,并由一个平衡参数加权。默认情况下,将和设为1。以类似的方式定义。

表示attention loss,引导CAM生成hierarchical attention heatmaps。attention loss可以表述为:

image.png

其中α和β分别表示dice loss 和BCE loss 的超参数。具体来说,为了避免被背景淹没,使用dice loss来优先考虑前景,因为它只与attention heatmaps和supervised attention heatmap之间的交集相关。

其次,为了弥补attention heatmaps和supervised attention heatmap没有交集时梯度消失的问题,利用BCE损失来处理这种极端情况,提供有效的梯度进行优化。此外,采用OHEM来保证检测器主要聚焦于容易被视为前景的非物体区域,并且将正负极的比例设置为1:3,而不是考虑所有的负样本。具体来说,使用BCE loss来学习分类差的底片,使用dice loss来学习分类分布,以缓解数据的不平衡。


3实验


可视化结果:


4参考


[1].SSPNet: Scale Selection Pyramid Network for Tiny Person Detection from UAV Images

相关文章
|
监控 算法
独立成分分析(Independent Component Analysis,ICA)原理及代码实现
独立成分分析(Independent Component Analysis,ICA)原理及代码实现
独立成分分析(Independent Component Analysis,ICA)原理及代码实现
|
搜索推荐 安全 生物认证
如何使用 FOFA 搜索引擎保姆级教程(附链接)
如何使用 FOFA 搜索引擎保姆级教程(附链接)
|
缓存 前端开发 JavaScript
Vue项目打包部署Nginx配置及前端缓存问题解决
Vue项目打包部署Nginx配置及前端缓存问题解决
1993 0
Vue项目打包部署Nginx配置及前端缓存问题解决
|
存储 API 对象存储
OSS新特性:支持文件上传、复制时,指定Object的存储类型以及修改已有文件的存储类型
用户在上传、复制文件时,可灵活地指定文件的存储类型为Standard、IA、Archive;用户也可以修改实时修改文件的存储类型,比如从低频型(IA)修改为标准型。
5854 0
|
6月前
|
人工智能 数据挖掘 自然语言处理
客户案例 | Salesforce助力海辰储能在国内外加速数字化转型
海辰储能成功在国内上线阿里云上的 Salesforce 项目。海外团队也紧随其后,顺利部署了 Salesforce 国际版,在全球范围内加速了数字化转型的脚步。
客户案例 | Salesforce助力海辰储能在国内外加速数字化转型
|
存储 编解码 缓存
阿里云CDN+点播服务助力云学堂全面提升用户在线学习体验
CDN将云学堂的点播视频资源缓存至阿里云遍布全球的加速节点上,当终端用户请求访问和获取该资源时,无需回源,系统自动调用离终端用户最近的CDN节点上已缓存的资源,提高用户访问效率和访问速度。
2237 57
阿里云CDN+点播服务助力云学堂全面提升用户在线学习体验
|
机器学习/深度学习 自然语言处理 数据库
文本摘要数据集的整理、总结及介绍(持续更新ing...)
文本摘要数据集的整理、总结及介绍(持续更新ing...)
文本摘要数据集的整理、总结及介绍(持续更新ing...)
|
数据可视化 算法 Python
FL Studio20.99最新试用版功能介绍V21正式版
水果的话,我用的版本是去年刚更新20.9,目前支持中文挺友好的,算很新的版本了。水果音乐制作软件FL Studio20中文版是一款非常好用且功能强大的软件音乐制作环境或数字音频工作站(DAW)。FL studio中文版下载地址:http://t.csdn.cn/0A4P6
612 0
|
存储 缓存 Python
Python 技术篇-pip安装的python库缓存位置查看方法,如何查看python库源码
Python 技术篇-pip安装的python库缓存位置查看方法,如何查看python库源码
751 0
Python 技术篇-pip安装的python库缓存位置查看方法,如何查看python库源码
|
存储 缓存 负载均衡
负载均衡实现的各种优缺点
场景&前言 问:什么时候使用负载均衡? 两个方面: a)应对大的流量及外部请求,`单台机器处理和计算遇到瓶颈`,采取多机方案进行负责均衡; b)容灾,避免单点故障,保证服务对外的持续性。 复制代码 负载均衡的概述: 负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个 操作单元上进行运行, 例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作 任务。