【CVPR小目标检测】- ISNet红外小目标检测

news/2024/5/18 22:38:59/文章来源:https://blog.csdn.net/qq_44859533/article/details/129897554

ISNet:红外小目标探测的形状问题

																					——从分割的角度完成小目标红外检测

红外图像:
在这里插入图片描述

   红外小目标使用红外热成像技术,使得红外目标检测能够全天候工作,可视距离远,抗干扰能力强。当像素距离较远时,目标所占比例小、亮度低,呈现弱小目标。红外图像中,弱小目标所占像素非常少,特征不明显、容易被杂波、热源等噪声干扰。

文章目录

    • ISNet:红外小目标探测的形状问题
      • 贡献
      • 摘要
      • 介绍
      • 设计思路:
      • 相关工作
        • 1跨层特征融合
        • 2 IRSTD的数据集
      • 方法
        • 1总体架构
        • 2 TFD边缘块
        • 3 双向注意力聚合(TOAA)块
        • 4 ISNet
        • 5 损失函数
        • 实验
        • 评估指标
        • 实施细节
        • 消融实验

贡献

  • 提出一个新的想法在IRSTD应对的挑战,即:结合目标形状重建到红外小目标的检测。(分割)
  • 设计两个关键组件命名TFD-inspired边缘块(计算分割的目标边缘)和TOAA块(注意力机制)有效地提取边缘特征和总从嘈杂的横向校正功能,低对比度和可控硅红外图像。
  • 建立一个新的大的基准称为IRSTD-1k促进IRSTD领域的研究,它由1000年的手工标注真实的图像与各种目标的形状、大小不同的目标,和丰富的杂波背景的不同场景。

二阶泰勒有限差分
有限差分法以变量离散取值后对应的函数值来近似微分方程中独立变量的连续取值。

摘要

    红外小目标检测是指从模糊背景中提取弱小目标。红外目标由于信噪比低、对比度低,容易淹没在强噪声和杂波背景中。本文提出了一种新的红外形状网络(ISNet),其中设计了泰勒有限差分(TFD)启发的边缘块和双向注意力聚集(TOAA)块来解决这一问题。TFD启发的边缘块从不同层次聚合和增强综合边缘信息,以提高目标与背景的对比度,同时也为数学解释的形状信息提取奠定基础。TOAA模块利用注意机制计算目标行、列方向的低层信息,并与高层信息融合,实现目标形状特征的捕获和噪声抑制。
   两个新的组件,即TOAA双向注意力聚合块和TFD螺旋边缘块,前者促进跨层次特征融合,以增强高级特征的形状表示能力,而后者提取有用的边缘特征,以帮助预测具有精确形状的精确目标掩模。

介绍

   红外小目标具有以下特点:1)暗淡:红外图像背景中有大量的噪声和杂波,目标容易淹没在背景中,导致对比度低,信杂比(SCR)低。2)小:由于相机与物体的距离较长,红外目标在图像中通常只占大约1 - 10个像素。3)形状变化:根据不同的目标类型,目标的形状和大小在不同的场景和情况下是不同的。
   目前面临的问题:

  • 基于滤波的top-hat filter、max-median/max-mean filter等方法只能抑制均匀背景杂波,而不能抑制复杂背景噪声,虚警率(误报率)高,性能不稳定。
  • 基于HVS的方法,基于谱残差的方法不能有效抑制背景中的杂波。
  • 基于局部对比度的方法只适用于高对比度目标,而不适用于昏暗目标。
  • 基于低秩表示的方法可以适应低SCR红外图像,但在复杂背景下的小目标和形状变化的图像上仍然存在较高的虚警率。

1、准(正)确率 accuracy
   反映对样本判断正确的能力,即能否将样本判断正确 acc=(TP+TN)P+N 缺陷:在负样本占大多数情况下,不能单纯追求准确率(因为如果将全部判断为负样本,这种情况下准确率是非常高的)。
2.精确率 precision
   反映正确预测正样本进度的能力,即预测的正样本中有多少是真实的样本 precision=TP/(TP+FP) 缺陷:如果单纯追求精确率,会使得模型或分类器少预测为正样本,这样FP会比较低,进而提高了precision
3.召回率recall ——真阳率、命中率
   正样本被预测为正样本占总的正样本的比例。 recall=TPR=TP(TP+FN) 缺陷在于:如果全部预测为正样本,那FN会比较低,导致召回率会很高.
4.虚警率falsealarm——误报率、假阳率、误检率
   减少负样本预测为正样本——负样本被预测为正样本占总的负样本的比例。值越小,性能越好。 falsealarm=FP/(FP+TN)
5.漏报率 missrate —— 漏警率、漏检率
    减少正样本预测为负样本——正样本被预测为负样本占总正样本的比例。值越小,性能越好。 missrate=FNR=FN/(TP+FN)

设计思路:

    设计了一种新的红外形状网络(ISNet),该网络具有IRSTD(红外小目标探测)的两个关键组件。首先,我们设计了一个受泰勒有限差分(TFD)启发的边缘块,通过从神经常微分方程(neural ODE)区域汲取灵感来聚合边缘特征,其中ODE被解释为二阶泰勒有限差方程。然后,我们设计了一个双向注意力聚合(TOAA)块,通过从行和列方向提取低级特征并将其与高级特征集成来提取跨级别特征。之后,将交叉级特征馈送到受TFD启发的边缘块,以重建目标边缘。通过在序列中堆叠多个受TFD启发的边缘块和TOAA块,还可以捕获目标的长程上下文信息。此外,我们还构建了一个新的基准,由1000幅不同目标形状、不同目标尺寸和丰富杂波背景的逼真图像组成,并带有精确的像素级注释,称为IRSTD-1k。在流行的NUAA-SIRST数据集和IRSTD-1k上的实验结果表明,所提出的ISNet在虚警率、概率检测率、交集对并集(IoU)比率和归一化交集对并并集(nIoU)比率方面优于最先进的(SOTA)IRSTD方法。

相关工作

可以检测轮廓清晰的小型红外目标,这有利于许多后续任务,例如识别目标类型。

1跨层特征融合

   设计了一个ACMNet和ALCNet来从不同的层提取上下文特征。然而,红外小目标通常很暗,形状各异,很难从多个特征层次提取和融合有用的形状特征,其中深层可能具有清晰的语义,但缺乏红外目标的精细细节。与上述方法相反,我们设计了一个双向注意力聚合块,该块可以合并到U-Net结构中,以有效地聚合来自不同级别的特征。

2 IRSTD的数据集

   MFIRST中的大多数图像都是合成的,而NUAA-SIRST中只有有限数量的图像。其次,这两个数据集都不太关注目标形状的注释,这可以提供信息性的监督信号,并且对许多下游任务很重要。在本文中,我们通过收集1000幅不同目标的逼真图像,并用精确的像素级掩模对其进行注释,建立了一个名为IRSTD-1k的新数据集。

方法

1总体架构

在这里插入图片描述

2 TFD边缘块

   基于二阶泰勒有限差分方程设计了一种新的受TFD启发的边缘块,该边缘块能够聚合不同级别的边缘信息,并有助于获得精细的目标边缘。
二阶泰勒有限差分:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

   门控卷积可以被认为是一种部分可学习的卷积,其中使用软门控机制来更好地学习目标的边缘信息,同时抑制背景信息。ugate的输入是uj+1和来自U-Net的相应特征(表示为p(x))的总和,例如图1中的x4、x7和x10。
门控卷积:
在这里插入图片描述

   这里的I是特征图,σ 是sigmoid()函数,ϕ是激活函数,可以是ReLU。实际就是对I分别做两次卷积,然后其中一个卷积用sigmoid()函数,将其值全部限制在0-1之间,然后与另外一个卷积得到的特征图进行逐像素的相乘。

3 双向注意力聚合(TOAA)块

在这里插入图片描述

由于低级特征通常包含目标的精细细节,而这些细节在高级特征中是不存在的.
在这里插入图片描述

T OAA(·)表示TOAA块学习的映射函数。alow和ahigh分别表示U-Net编码器和解码器的低级和高级特征。arow和acolumn是在行和列方向上的注意特征。
在这里插入图片描述
在这里插入图片描述

    S(·)表示S形函数。Fb(·)代表瓶颈结构,包括两个1×1卷积层来约束高频噪声。瓶颈结构类似于非负矩阵分解(NMF-矩阵分解是指将一个矩阵分解成两个或者多个矩阵的乘积。)的作用,它可以在滤除冗余高频噪声的同时保留有用的特征。Fr表示在行方向上的1×k可变形卷积,而Fc表示列方向上的k×1可变形卷积。TOAA块中的这种双向注意力机制促进了从两个方向的低级特征中提取形状信息,并相应地指导高级特征的细化。将TOAA块插入U-Net解码器以执行跨级别特征融合。

4 ISNet

    首先,输入红外图像,由编码器中的干块处理,该干块由卷积层和最大池化层组成,每个层的步长为2,以对图像进行下采样。输出x2定义为:
在这里插入图片描述

    然后,我们通过两个残差块进行非线性变换,以获得具有较少噪声和杂波的特征x3和x4。
对于解码器,我们在x4上以2的步长执行反卷积,使图像大小加倍,并获得高级特征x5。然后,我们通过TOAA块将x5和具有相同大小的低级别特征x3融合以获得细化的特征x6。
在这里插入图片描述

类似地,我们将TOAA块应用于低级特征x2和高级特征x8以获得x9,
在这里插入图片描述

    在底部路径上,通过对输入图像应用Sobel算子获得的粗略边缘x11与来自U-Net编码器的特征x4一起被馈送到TFD螺旋边缘块中以提取边缘特征。类似地,使用两个额外的这样的块来利用从U-Net解码器中的TOAA块获得的高级特征进一步细化边缘特征。最后,将边缘特征输入到卷积层中,以获得精细的边缘预测。它还用于生成注意力以细化U-Net解码器的输出特征,分割头进一步使用该输出特征来预测最终目标掩码。

5 损失函数

    Dice Loss:骰子损失是一种常用的衡量标准,用于评估掩模预测和地面实况之间的差异,定义为:dice loss 对正负样本严重不平衡的场景有着不错的性能正负样本不平衡的情况就是前景占比较小。

在这里插入图片描述

    Edge Loss:边缘损失是二进制交叉熵(BCE)损失(对输出向量的每个元素单独使用交叉熵损失函数)也用于测量预测掩码和地面实况之间的差异。我们利用Dice损失LDice和BCE损失LBCE来监督边缘预测:
在这里插入图片描述

    其中λ是用于平衡两种损失的超参数,并根据经验设置为10。最终的训练目标是LEdge和骰子在掩码预测上的损失的组合:
在这里插入图片描述

实验

    NUAA-SIRST包含427幅红外图像,而IRSTD-1k包含1000幅红外图像。对于每个数据集,我们以50:30:20的比例将其分为训练集、验证集和测试集。

评估指标

并集上的交集(IoU):IoU定义为:(其中Ai和Au分别表示相交区域和并集区域的大小)
在这里插入图片描述

并集上的归一化交集(nIoU):nIoU是IoU的归一化

在这里插入图片描述

实施细节

采用AdaGrad作为优化器,学习率为0.04。训练过程总共持续500个时期,重量衰减为10−4,批量大小为8。

消融实验

在这里插入图片描述

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

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

相关文章

记录如何把postman变成为中文版

首先点击下方这个链接,进入gitee,在里面下载一个插件 Releases hlmd/Postman-cn GitHub 进来是这个样子: 看一下自己的postman是什么版本的,然后在gitee下载对应的APP包 应该怎么查看我的postman版本号呢? ~~看下…

代理模式:JDK动态代理和静态代理回顾

背景:Spring主要有两大思想:IoC、AOP。对于IoC依赖注入不多说了,对于Spring的核心AOP来说,我们需要了解其底层的实现原理:java的动态代理机制。 本篇随笔就是对java的动态机制进行一个回顾。 代理模式的理解 类型&…

三甲医院手术麻醉系统源码, C# .net 桌面软件 C/S版源码

手术麻醉管理系统源码,手麻系统源码,大型医院手术麻醉系统源码 相关技术:C#语言 前端框架:Winform 后端框架:WCF 数 据库:sqlserver VS2019 文末获取联系 手术麻醉系统是面向医生实际工作情况开发的专…

Excel宏(VBA)密码破解

最近在研究一个Excel宏,想查看VBA代码但是有密码,于是想着能不能移除密码。网上查找一番资料后进行了尝试。 一,准备工具 ExcelHex Editor Neo 二,开始实践 首先将.xlsm后缀名的文件改为.zip文件 然后双击zip文件(不用解压文件…

字节跳动CVPR 2023论文精选来啦(内含一批图像生成新研究)

计算机视觉领域三大顶会之一的 CVPR 今年已经开奖啦。 今年的 CVPR 将于六月在加拿大温哥华举办,和往年一样,字节跳动技术团队的同学们收获了不少中选论文,覆盖文本生成图像、语义分割、目标检测、自监督学习等多个领域,其中不少…

AUTOSAR SecOC的CAN FD应用

20多年来,CAN一直是并且仍然是车辆中的主导通信系统。 随着车载功能日益复杂,传统CAN已无法满足对有效数据速率日益增长的需求。 因此,引入了CAN FD—它允许高达64字节的有效载荷以实现2 Mbit/s 和5 Mbit/s的数据速率。为了将这一主要优势用于…

【CocosCreator入门】CocosCreator组件 | Mask(遮罩)组件

Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中Mask组件可用于创建如圆形、矩形和任意形状的遮罩效果,以限制节点显示的范围。这对于创建具有复杂布局的UI元素非常有用,例如只显示图片的一部分或控制文本显示…

C++相关面试题总结一——内存、关键字、STL、指针、排序、Lambda

面试题总结 基础 C是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C支持多种编程范式:面向对象编程、泛型编程和过程化编程。其编程领域众广,常用于系统开发,引擎开发等应用领域,是最受广大程序员受用的最强…

JavaSE——方法的使用

目录 一、方法的概念及使用 1、什么是方法(method) 2、方法定义 3、方法调用的执行过程 4、实参和形参的关系 二、方法重载 1、为什么需要方法重载 2、方法重载概念 3、方法签名 三、递归 1、递归的概念 2、递归执行过程分析 3、递归练习 一、方法的概念及使用 1、…

【进阶C语言】内存函数(详解)

前言 上一期讲的函数都是和字符串相关的,但是我们在操作数据的时候,不仅仅是操作字符串的数据,还得需要内存函数的应用 内存函数的应用1. memcpy1.1 memcpy的介绍1.2 memcpy的使用1.3 模拟实现memcpy库函数1.4 我想在1,2后面打印1…

web学习---Vue---笔记(1)

该笔记是记录尚硅谷的Vue学习视频的笔记,视频地址为:学习视频地址 初始Vue Vue组件化的特点 组件化声明式编码虚拟DOMDiff算法,尽量复用DOM节点 H5的组件,是把某一个模块封装,里面写HTML\CSS\JS等,算是一…

关于软件发布等一系列注意事项

我们以VS for Qt 开发为案例 1、软件图标的使用: this->setWindowIcon(QIcon("写入路径"));注意这里的路径,一般需要你先添加图片到资源文件中 那么如何将图片添加到资源文件中呢? 1、打开qrc文件 2、添加前缀,添…

【Linux】八、Linux进程信号详解(一)

目录 一、认识信号 1.1 生活中的信号 1.2 将1.1的概念迁移到进程 1.3 信号概念 1.4 查看系统定义信号列表 1.5 man 7 signal 1.6 解释1.2的代码样例 1.7 信号处理常见方式概览 二、产生信号 2.1 signal函数 2.2 通过终端按键产生信号 2.3 调用系统函数向进程发信号…

Java小课堂:自定义注解(案例:自定义DecimalFormat注解)

文章目录 引言I 预备知识1.1 元注解1.2 Target注解的ElementType枚举1.3 Retention注解的RetentionPolicy枚举II 自定义注解2.1 基本条件2.2 注解自定义属性的格式III 案例3.1 自定义DecimalFormat注解3.2 自定义json序列化解析引言 需求: 编辑费率限制的值时填写几位就保存几…

动力节点王鹤SpringBoot3学习笔记——第五章 说说Web服务

目录 第五章 说说Web服务 5.1 高效构建Web应用 5.1.1 html页面视图 5.1.2 JSON视图 5.1.3 给项目加favicon 5.2 Spring MVC 5.2.1 控制器Controller 5.2.1.1 匹配请求路径到控制器方法 5.2.1.2 RequestMapping 5.2.1.3 控制器方法参数类型与可用返回值类型 5…

【从零开始学习 UVM】11.5、UVM Register Layer —— 后门访问 实战项目(RAL实战,交通灯为例)

文章目录 后门访问是什么?定义后门 HDL 路径示例sequence中的后门访问示例UVM寄存器模型允许使用前门访问DUT寄存器,就像我们之前在寄存器环境中看到的那样。 这意味着环境中的所有寄存器读写操作都会转换为总线事务,并驱动到设计的总线接口,就像典型系统中的任何其他硬件…

大数乘法【极简思路、代码模板】

793. 高精度乘法 - AcWing题库 极简思路 大数乘法可能和前面我们提到的大数减法 和 大数加法 的分治 思路不太一样,对于大数乘法我们可以有更加简单的思路。 这里提到的大数乘法,是针对与 一个很大的数 * 一个正常的整数 而不是两个超大整数相乘 所以这…

C学习:一个百思不得其解的无符号数移位问题

C学习:一个百思不得其解的无符号数移位问题问题背景验证分析参考资料问题背景 在做一个算法定点化移位过程中,遇到个奇怪问题:分别按无符号数和有符号数进行右移,竟然不管啥输入,res1和res2结果都一样。代码如下&#…

【Android】系统源码的上传

前言 在之前的文章中,写了如何下载系统源码:【Android】系统源码下载及编译 这篇文章就写写系统源码的上传。 为了对 Android 代码质量进行管控,Google 采用 Gerrit 进行 CodeView,并利用 Jenkins 做代码静态检测和自动化验证。…

Redis篇之Redis事务

Redis事务 Redis事务的本质是一组命令的集合 一个事务中所有命令会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。 事务执行三阶段: 开启:以 MULTI 开始一个事务 入队:将多个命令入队…