【论文精读】CAM:基于上下文增强和特征细化网络的微小目标检测

在这里插入图片描述


文章目录

  • 🚀🚀🚀摘要
  • 一、1️⃣ Introduction---介绍
  • 二、2️⃣Related Work---相关工作
    • 2.1 🎓 基于深度学习的对象检测器
    • 2.2 ✨多尺度特征融合
    • 2.3 ⭐️数据增强
  • 三、3️⃣提议的方法
    • 3.1 🎓 具有上下文增强和特征细化的特征金字塔网络
      • 3.1.1 ☀️上下文增强模块
      • ☀️3.1.2 特征细化模块


🚀🚀🚀摘要

微小的物体由于其低分辨率和小尺寸而很难被探测到。微小目标检测性能差的主要原因是网络的局限性和训练数据集的不平衡性。提出了一种结合上下文增强和特征细化的新型特征金字塔网络。将多尺度展开卷积的特征从上到下融合注入到特征金字塔网络中,补充上下文信息。引入通道和空间特征细化机制,抑制多尺度特征融合中的冲突形成,防止微小目标淹没在冲突信息中。此外,提出了一种数据增强方法copy-reduce-paste,该方法可以增加训练过程中微小对象对损失的贡献,保证训练更加均衡。实验结果表明,所提网络VOC数据集上目标目标的平均精度达到16.9% (IOU=0.5:0.95),比YOLOV4高3.9%,比CenterNet高7.7%,比RefineDet高5.3%。


一、1️⃣ Introduction—介绍

微小目标检测作为目标检测领域的一个挑战,被广泛应用于自动驾驶、医疗领域、无人机导航、卫星定位、工业检测等视觉任务中。近年来,基于深度学习的目标检测器取得了很大的进展,以yolo、SSD为代表的一阶段算法可以通过前向卷积神经网络直接快速访问到感兴趣的目标。然而,两阶段算法根据生成的候选框获得RoI(感兴趣区域),具有更高的准确性。尽管这些目标检测算法在精度和速度上取得了很大的进步,但在检测微小目标(小于32×32像素)时,其性能仍然很不理想。在大多数公开数据集上,微小物体的检测精度甚至不到较大目标的一半。因此,微小物体检测仍有很大的改进空间。

微小目标检测性能不佳主要是由于网络本身的局限性和训练数据的不平衡造成的。为了获得可靠的语义信息,现代检测器试图叠加越来越多的池化和下采样操作,使得像素较少的微小物体特征在转发传播中逐渐丢失,限制了微小物体的检测性能。FPN可以在一定程度上缓解信息扩散问题,通过水平融合低分辨率特征图和高分辨率特征图。然而,直接融合不同密度的信息会产生语义冲突,限制了多尺度特征的表达,使微小物体容易淹没在冲突信息中。同时,在目前的经典公共数据集中,微小目标的标注数量远远少于较大目标的标注数量。因此,在训练过程中,网络的收敛方向不断向较大的目标倾斜,导致微小目标的性能不佳。因此,我们认为从以上两个方面提高微小物体的检测率是可行的。

为了解决微小目标的特征分散和层与层之间的语义差异问题,本文提出了一种结合上下文增强和特征细化的特征金字塔复合神经网络结构。提出的算法框架如图1所示。
在这里插入图片描述
图1:整体网络结构。CAM和FRM是网络的主要组成部分。CAM将上下文信息注入FPN, FRM过滤FPN冲突信息。

它结合了上下文增强模块(CAM)和特征细化模块(FRM)。CAM融合多尺度展开卷积特征,获得丰富的上下文信息,用于特征增强。FRM在通道和空间维度上引入特征细化机制,抑制冲突信息,防止微小目标淹没在冲突信息中。同时,为了保证网络在训练过程中不会倾向于较大的目标,提出了一种称为复制-减少-粘贴的方法来增加训练中微小目标的损失贡献。我们在标准公共数据集PASCAL VOC上进行训练和测试,并通过对比实验和烧蚀实验验证了我们的方法检测微小物体的有效性。本文提出的算法在VOC数据集上的精度达到83.6% (IOU=0.5),高于大多数比较算法,对微小物体的精度达到16.9% (IOU=0.5:0.95),高于YOLOV4、CenterNet等前沿网络。

二、2️⃣Related Work—相关工作

2.1 🎓 基于深度学习的对象检测器

目标检测是一项基本的计算机视觉任务,它包含分类和定位两个方面,可以看作是一个回归问题。早期,手工设计的特征被广泛应用于目标检测。然而,手工设计的特征是一种浅特征,在基于cnn的特征出现后逐渐被取代。R-CNN作为两阶段算法的先驱,采用不同大小的先验盒对不同大小的目标进行匹配,然后通过CNN选择候选区域。为了减少训练时间,FastRCNN提取整幅图像的特征图,然后使用空间金字塔池化和RoI池化来生成区域特征并过滤候选区域。为了进一步提高微小目标的精度,EFPN提出了超分辨率特征金字塔结构来放大微小目标特征。与两级网络相比,一级网络速度更快,但精度较低。SSD在图像上密集地放置锚盒来获取目标盒,同时充分利用不同尺度的特征来检测较小的目标。YOLOV3选择基于特征金字塔的三个输出分别检测大、中、微小物体,显著提高了微小物体的检测性能。在FPN中引入了一种高分辨率注意机制,以挖掘微小目标的最有用信息。本文选择YOLOV3作为基准,并在此基础上进行改进。RefineDet引入了一种新的损失函数来解决简单样本和困难样本之间的不平衡问题。最近,基于无锚架构的检测器变得越来越流行。尽管目标检测算法在不断发展和更新换代,但在微小物体检测领域并没有大的突破,微小物体的检测精度仍然较低。

2.2 ✨多尺度特征融合

利用多尺度特征是提高微小物体检测精度的有效方法。 SSD是首次尝试利用多尺度特征来预测目标的位置和类别。 FPN从上到下合并不同粒度的相邻特征图,可以大大提高特征的表达能力,大量类似于FPN的变体结构已经出现。PANet在 FPN的基础上添加了额外的自下而上连接,以更有效地将信息从下层传输到上层。NAS-FPN通过神经架构搜索技术找到了一种新的连接方法。BiFPN改进了 PANet的连接方法,使其更加高效,并在连接点引入了简单的注意力机制。虽然上述结构极大地提高了网络的多尺度表达能力,但它们忽略了不同尺度特征之间冲突信息的存在,而上下文信息的缺乏可能会阻碍性能的进一步提升,尤其是对于微小物体,,很容易被冲突信息淹没,本文充分考虑了冲突信息和上下文信息对检测精度的影响。

2.3 ⭐️数据增强

训练集的预处理一直是深度学习中不可或缺的一部分,例如旋转、变形、随机擦除、随机遮挡、光照扭曲、MixUp等。,最近,一些针对微小物体的数据增强方法被提出。将损失视为一种反馈。将四张图像缩放至相同尺寸并拼接在一起,以增强反馈引导下微小物体检测的性能。与(Chen et al., 2020)不同,(Yu &Koltun, 2015)将 4 张图像缩放为不同尺寸并将它们拼接成一张。(Kisantal et al., 2019)尝试通过复制并粘贴微小对象来实现微小对象数据增强到原始图像。该方法只能增加微小物体的数量,而不能增加包含微小物体的训练图像的数量,一定程度上也会造成训练的不平衡。由于较大的目标广泛分布在每批训练中,本文保证了每批训练中微小目标对损失的贡献,使训练更加平衡。

三、3️⃣提议的方法

本章将详细介绍我们的微小物体检测网络。,如图 1 所示,{C2, C3, C4, C5} 表示输入图像被下采样 {4, 8, 16, 32} 次后的不同级别。 ,{F1,F2,F3}通过一层卷积表示为与{C3,C4,C5}对应的新生成的特征级别,而C2由于杂乱的噪声而被丢弃。 {L1,L2,L3}表示为FPN生成的特征级别,{P1,P2,P3}表示为FRM生成的特征级别。该网络主要由CAM和FRM组成。CAM 的灵感来自于人类识别物体的模式。例如,人类很难区分很高的天空中的鸟,但是当将天空作为上下文信息时,人类就很容易区分。因此,我们认为上下文信息有助于微小物体检测。CAM应用不同空洞卷积率的空洞卷积来获取不同感受野的上下文信息,并将其自上而下注入到FPN中以丰富上下文信息。但由于不同层次FPN之间的语义差异,在共享信息的同时会引入冗余信息和冲突信息。因此,提出FRM来过滤冲突信息,减少语义差异。,通过自适应融合不同层之间的特征,消除层间的冲突信息,防止微小物体特征淹没在冲突信息中。

同时,鉴于微小物体产生的正样本数量较少以及微小物体对丢失的贡献有限,提出了一种称为复制-减少-粘贴的数据增强方法。具体来说,复制训练集中较大的目标,缩小它们,然后将它们粘贴回原始图像。在粘贴过程中,需要保证粘贴的目标不与已有的目标重叠。,上述方法将在下面的章节中详细解释。

3.1 🎓 具有上下文增强和特征细化的特征金字塔网络

3.1.1 ☀️上下文增强模块

微小目标检测需要上下文信息。我们提出使用不同空洞卷积速率的空洞卷积来获取不同感受野的上下文信息,以丰富FPN的上下文信息。结构如图2所示。
在这里插入图片描述
图2:CAM的结构:特征分别以1、3、5的速率进行空洞卷积处理。语境信息是通过融合不同感受野的特征得到的

图2是cam的结构(Yu &Koltun, 2015)。我们在C5上以不同的空洞卷积速率进行空洞卷积,得到不同感受野的上下文信息。核大小为3×3,空洞卷积速率为1、3和5。可能的融合方式如图3 (a)、(b)和(c)所示。
在这里插入图片描述
图3:融合方式。

方法(a)和(c)分别为加权融合和拼接操作。即直接在空间维度和通道维度上添加特征映射。方法(b)是一种自适应融合方法。具体来说,假设输入的大小可以表示为(bs, C, H, W),我们可以通过卷积、拼接和Softmax操作获得(bs, 3, H, W)的空间自适应权值。三个通道一对一地对应三个输入,通过计算加权和可以将上下文信息聚合到输出。我们通过消融实验验证了每种融合方法的有效性,结果如下表1所示。 AP ⁡ s \operatorname{AP}_{\mathrm{s}} APs AP ⁡ m \operatorname{AP}_{\mathrm{m}} APm AP ⁡ l \operatorname{AP}_{\mathrm{l}} APl分别定义为微小、中等和大型目标的精度。 AR ⁡ s \operatorname{AR}_{\mathrm{s}} ARs AR ⁡ m \operatorname{AR}_{\mathrm{m}} ARm AR ⁡ l \operatorname{AR}_{\mathrm{l}} ARl分别表示小、中、大目标的召回率。由表1可以看出,(c)对微小物体的优势最大。 AP ⁡ s \operatorname{AP}_{\mathrm{s}} APs AR ⁡ s \operatorname{AR}_{\mathrm{s}} ARs均增长1.8%。方法(b)对于大中型目标改善最大。方法(a)带来的改进基本上介于两者之间。

在这里插入图片描述
表1:CAM的消融实验结果

☀️3.1.2 特征细化模块

提出FPN(Lin et al., 2017)来融合不同尺度的特征。然而,不同尺度的特征具有不可忽视的语义差异。直接融合不同尺度的特征会带来大量的冗余信息和冲突信息,降低了多尺度的表达能力。因此,提出FRM来过滤冲突信息,防止微小目标特征被淹没在冲突信息中。FRM的整体结构如图4所示。
在这里插入图片描述
图4:建议的FRM:(a) FRM的框架。(b) (a)中实线表示的结构


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/502787.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录——删除有序数组中的重复项(Leetcode26)

题目链接 双指针思想&#xff0c;和上一篇Leetcode27类似 class Solution {public int removeDuplicates(int[] nums) {int slow 0;for(int fast 1; fast < nums.length; fast){if(nums[fast] ! nums[slow]){nums[slow] nums[fast];}}return slow 1;} }

【文末 附 gpt4.0升级秘笈】超越Sora极限,120秒超长AI视频模型诞生

120秒超长AI视频模型发布&#xff1a;开启视频生成新纪元 随着人工智能技术的迅猛发展&#xff0c;AI视频生成领域也取得了令人瞩目的突破。近日&#xff0c;一项名为“StreamingT2V”的120秒超长AI视频模型正式发布&#xff0c;标志着文生视频技术正式进入长视频时代。这一技…

python实现目录打印及辅助定位特定目录中满足条件的文件

python实现目录文件打印 用tuple进行当前目录下子目录及文件名的获取&#xff0c;代码如下&#xff1a; # 导入模块 import os# 生成一个元组 ret_tuple ()ret_tuple os.walk(.\\, topdownTrue) print(ret_tuple)执行上面代码&#xff0c;我们发现print(ret_tuple)的打印结…

江苏开放大学2024年春《液压与气压传动060246》第2形考作业占形考成绩的25%参考答案

​答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 电大搜题 多的用不完的题库&#xff0c;支持文字、图片搜题&…

如何计算KST指标,昂首资本一个公式计算

在上一篇文章中&#xff0c;Anzo Capital昂首资本和各位投资者一起了解了KST指标&#xff0c;今天我们继续分享如何计算KST指标。 首先投资者可以在时间范围9、12、18和24分析变化率值。 前三个值(时间帧9、12、18)用EMA 26平滑&#xff0c;最后一个值用EMA 39平滑。 然后&…

实习管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文&#xff08;设计&#xff09;学生选题参考合集推荐收藏&#xff08;包含Springboot、jsp、ssmvue等技术项目合集&#xff09; 1. 前台功能…

Python之Opencv教程(1):读取图片、图片灰度处理

1、Opencv简介 OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个用于计算机视觉和图像处理的开源库&#xff0c;提供了丰富的图像处理、计算机视觉和机器学习功能。它支持多种编程语言&#xff0c;包括C、Python、Java等&#xff0c;广泛应用于图像处…

《VMamba》论文笔记

原文链接&#xff1a; [2401.10166] VMamba: Visual State Space Model (arxiv.org) 原文笔记&#xff1a; What&#xff1a; VMamba: Visual State Space Model Why&#xff1a; 多年以来CNN和VIT作为视觉特征提取的主流框架 CNN具有模型简单&#xff0c;共享权重&…

Java基础之运算符(整合)

文章目录 一.运算符算数运算符练习: 二.算术运算符的高级用法""操作的三种情况数字相加字符串相加字符相加 三.自增自减运算符基本用法 四.赋值运算符&关系运算符赋值运算符关系运算符逻辑运算符 五.短路逻辑运算符六.三元运算符 一.运算符 运算符: 对字面量或…

36.HarmonyOS鸿蒙系统 App(ArkUI) 创建第一个应用程序hello world

36.HarmonyOS App(ArkUI) 创建第一个应用程序helloworld 线性布局 1.鸿蒙应用程序开发app_hap开发环境搭建 3.DevEco Studio安装鸿蒙手机app本地模拟器 打开DevEco Studio,点击文件-》新建 双击打开index.ets 复制如下代码&#xff1a; import FaultLogger from ohos.fau…

kaggle竞赛宝典 | 最新时间序列统一大模型,秒杀各类时序任务!

本文来源公众号“kaggle竞赛宝典”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;最新时间序列统一大模型&#xff0c;秒杀各类时序任务 作者&#xff1a;Fareise 最新时间序列统一大模型UniTS&#xff0c;秒杀各类时序任务&…

ubuntu20.04安装截图工具flameshot

ubuntu20.04 自带的截图工具&#xff0c;可以使用快捷键“shift printScreen” ,但是它不能对截图进行编辑。 现在安装截图工具 flameshot&#xff0c;使用以下命令&#xff1a; sudo apt install flameshot 安装完成后&#xff0c;使用以下命令打开&#xff1a; flamesho…

Flutter 开发学习笔记(1):第一个简单的Flutter项目(上)

文章目录 前言相关链接初始化项目设置键盘映射建议使用AnLink链接物理机。 项目配置日志打印官方案例添加依赖主函数更换添加最简单的按钮Flutter 项目结构Flutter项目入口Flutter的MyApp函数 更新视图直接修改浅拷贝父节点数据思考 修改布局子节点重构子节点布局重构多次扩展布…

操作系统--死锁

目录 说明使用互斥锁时死锁是如何发生的。 系统模型&#xff1a; 死锁的特性&#xff1a; 处理死锁的方法&#xff1a; 死锁的预防&#xff1a; 死锁避免&#xff1a; 说明使用互斥锁时死锁是如何发生的。 我们先来看一个例子&#xff1a; 当两列火车在十字路口逼近时&am…

linux忘记mysql的root密码,强制修改

1、登录linux后编辑mysql的配置文件&#xff1a;vi /etc/my.cnf 2、添加如下代码&#xff0c;表示跳过授权表登录mysql 编辑完成后&#xff0c;按Esc键&#xff0c;":wq"退出编辑并保存修改内容。 3、使用命令&#xff1a;service mysqld restart 重启mysql服务. …

【No.21】蓝桥杯组合数学|数位排序|加法计数原理|乘法计数原理|排列数|组合数|抽屉原理|小蓝吃糖果|二项式定理|杨辉三角|归并排序(C++)

组合数学 数位排序 【问题描述】 小蓝对一个数的数位之和很感兴趣,今天他要按照数位之和给数排序。当两个数各个数位之和不同时,将数位和较小的排在前面,当数位之和相等时,将数值小的排在前面。 例如,2022 排在 409 前面, 因为 2022 的数位之和是 6,小于 409 的数位 之和 13。…

【Web应用技术基础】JavaScript(1)——案例:猜数字

上一个博客发了视频。这个博客因为不能插入视频&#xff0c;所以给大家一张一张截图的 点击“重新开始一局游戏” <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"…

Java类与对象:从概念到实践的全景解析!

​ 个人主页&#xff1a;秋风起&#xff0c;再归来~ 文章专栏&#xff1a;javaSE的修炼之路 个人格言&#xff1a;悟已往之不谏&#xff0c;知来者犹可追 克心守己&#xff0c;律己则安&#xff01; 1、类的定义格式 在java中定义类时需要用到…

Spring: 在SpringBoot项目中解决前端跨域问题

这里写目录标题 一、什么是跨域问题二、浏览器的同源策略三、SpringBoot项目中解决跨域问题的5种方式&#xff1a;使用CORS1、自定 web filter 实现跨域(全局跨域)2、重写 WebMvcConfigurer(全局跨域)3、 CorsFilter(全局跨域)4、使用CrossOrigin注解 (局部跨域) 一、什么是跨域…

matlab 点云可视化(6)——点云按强度进行可视化

目录 一、功能概述1、算法概述2、主要函数二、代码示例三、结果展示四、参考链接本文由CSDN点云侠原创原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、功能概述 1、算法概述 点云按强度进行可视化 2、主要函数