改进小目标检测!SSPNet:微小目标检测的尺度选择金字塔网络

2023-12-25 21:50

本文主要是介绍改进小目标检测!SSPNet:微小目标检测的尺度选择金字塔网络,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击下方卡片,关注“CVer”公众号

AI/CV重磅干货,第一时间送达

转载自:Smarter

SSPNet: Scale Selection Pyramid Network for Tiny Person Detection from UAV Images

论文:https://arxiv.org/abs/2107.01548

SSPNet:从无人机图像中检测微小目标的尺度选择金字塔网络,其由上下文注意模块(CAM)、尺度增强模块(SEM)和尺度选择模块(SSM)组成,在Tiny-Person上表现SOTA!性能优于Swin-T、NAS-FPN等网络。
作者单位:四川大学

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)所示。

2.1 Context Attention Module

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

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

其中σ为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能够产生尺度感知特征:

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

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

2.3 Scale Selection Module

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

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

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

2.4 Weighted Negative Sampling

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

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

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

2.5 损失函数

总损失如下:

RPN损失:

Head损失:

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

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

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

其中α和β分别表示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实验

可视化结果:

SSPNet论文PDF资料下载后台回复:SSPNet,即可下载上述论文PDF
CVPR和Transformer资料下载后台回复:CVPR2021,即可下载CVPR 2021论文和代码开源的论文合集
后台回复:Transformer综述,即可下载最新的两篇Transformer综述PDF
CVer-目标检测交流群成立
扫码添加CVer助手,可申请加入CVer-目标检测 微信交流群,方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。
一定要备注:研究方向+地点+学校/公司+昵称(如目标检测+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
▲长按加小助手微信,进交流群▲点击上方卡片,关注CVer公众号
整理不易,请点赞和在看

这篇关于改进小目标检测!SSPNet:微小目标检测的尺度选择金字塔网络的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/537073

相关文章

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

基于Python实现多语言朗读与单词选择测验

《基于Python实现多语言朗读与单词选择测验》在数字化教育日益普及的今天,开发一款能够支持多语言朗读和单词选择测验的程序,对于语言学习者来说无疑是一个巨大的福音,下面我们就来用Python实现一个这... 目录一、项目概述二、环境准备三、实现朗读功能四、实现单词选择测验五、创建图形用户界面六、运行程序七、

前端知识点之Javascript选择输入框confirm用法

《前端知识点之Javascript选择输入框confirm用法》:本文主要介绍JavaScript中的confirm方法的基本用法、功能特点、注意事项及常见用途,文中通过代码介绍的非常详细,对大家... 目录1. 基本用法2. 功能特点①阻塞行为:confirm 对话框会阻塞脚本的执行,直到用户作出选择。②

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

Python 中 requests 与 aiohttp 在实际项目中的选择策略详解

《Python中requests与aiohttp在实际项目中的选择策略详解》本文主要介绍了Python爬虫开发中常用的两个库requests和aiohttp的使用方法及其区别,通过实际项目案... 目录一、requests 库二、aiohttp 库三、requests 和 aiohttp 的比较四、requ