Extended Feature Pyramid Network for SmallObject Detection

news2024/11/16 5:33:45

摘要

各种尺度的特征耦合会削弱小对象的性能,本文中,我们提出了具有超高分辨率金字塔的扩展特征金字塔网络(EFPN ),专门用于小目标检测。具体来说,我们设计了一个新模块,称为特征纹理转移(FTT ),用于同时超分辨率特征和提取可信的区域细节。此外,我们设计了一个前景 - 背景平衡损失函数来缓解前景和背景的面积不平衡。
总结
设计了一个 特征纹理转移( FTT )新模块 ,它 用于超分辨率特征和提取可信的区域细节
设计了一个 前景 - 背景平衡损失函数 来缓解前景和背景面积不平衡。

1、介绍

由于 CNN 重复使用池化层来提取高级语义,因此可以在 下采样过程中过滤掉小对象的像素
利用低级特征是提取小对象信息的一种方式。在 FPN 中,如图 1 a) 所示,小型对象必须与中型和大型对象共享相同的特征图,而像大型对象这样的简单情况可以从合适的级别提取特征。此外,如图1(b) 所示,随着对象规模的减小,FPN 底层的检测精度和召回率显著下降。图 1 表明,在普通 FPN 检测中,跨尺度的特征融合仍然削弱了小对象检测的能力。
普通的 FPN 中,跨尺度特征融合仍然削弱了小对象检测的能力
补偿小物体信息损失的另一种方法是提高特征分辨率。因此, 一些超分辨率( SR )方法被引入到目标检 测中
本文中,我们提 出了扩展特征金字塔网络( EFPN ),该 网络利用具有丰富区域细节的大规模 SR 特征来 解耦中小型目标检测 EFPN 以专门用于小型物体检测的高分辨率水平扩展了原始 FPN 。为了降低成本,我们的扩展高分辨率特征图是由嵌入特征 SR FPN-like 框架生成
在构建 vanilla 特征之后,所提出的特征纹理转移 FTT )模块首先将来自低分辨率特征的深层语义和来 自高分辨率特征参与的浅区域纹理相结合 。然后, 后续的 FPN-like 横向连接将通过量身定制的中间 CNN 特征图进一步丰富区域特征。
EFPN 的一个优点是,高分辨率特征图的生成依赖于 CNN FPN 产生的原始真实特征,而不是其他类似方法中不可靠的想象。如图1(b) 所示, EFPN 中具有可信细节的扩展金字塔级别显著提高了对小物体的检测性能。
此外,我们引入了由大规模输入图像生成的特征作为监督来优化 EFPN ,并设 计了一个前景 - 背景平衡损 失函数
主要贡献如下:
1 )我们提出了 扩展特征金字塔网络( EFPN ,它提高了小目标检测的性能。
2 )我们设计了一个关键的基于特征参考的 SR 模块, 称为特征纹理转移( FTT ),为扩展的特征金字塔 赋予可信的细节 ,以实现更准确的小目标检测。
(3) 引入了一个前景 - 背景平衡损失函数 ,以引起人们对正像素的关注,缓解前景和背景的面积不平衡。

2、超分辨图像用于目标检测

一些研究将 SR 引入到物体检测中,因为小物体检测总是受益于大尺度,图像级 SR 用于存在极小物体的一些特定情况,如卫星图像和具有拥挤的图像。STDN DenseNet 的顶层采用亚像素卷积来检测小对象, 同时减少网络参数 。最近 基于参考的 SR 方法具有利用参考图像的纹理或内容增强 SR 图像的能力 。受基于参考的SR 的启发,我们设计了一种新的模块来超分辨率参考下的具有可信细节的浅特征,从而生成更适合小物体检测的特征。

3、我们的方法

首先,我们 构建了一个扩展的特征金字塔 ,它专门用于底部有高分辨率特征图的小物体。具体来说,我们设计了一个名为特征纹理转移( FTT )的新模块,为扩展的特征金字塔生成中间特征 。此外,我们采 用了一种新的前景 - 背景平衡损失函数 来进一步加强对正像素的学习。

3.1 扩展特征金字塔网络

Vanilla FPN 通过对高级 CNN 特征图进行上采样,并通过横向连接将其与较低的特征融合, 构建了一个 4 层特征金字塔 。不同金字塔级别上的特征负责不同大小的对象, 小对象检测和中等对象检测仍然耦合在 FPN 的统一底层 P2 ,如图所示
为了缓解这个问题,提出了 EFPN vanilla 特征金字塔扩展到了新的层次 ,该层次考虑了具有更多区域细节的小目标检测。
我们 通过嵌入特征 SR 模块的 FPN-like 框架来实现扩展的特征金字塔 。该过程直接从低分辨率图像中生成高分辨率特征,以支持小目标检测。EFPN 的概述如图 2 所示。
顶部 4 个金字塔层由自上而下的路径构建,用于中等和大型对象检测。 EFPN 中的底部扩展包含图 2 中的FTT模块、自上而下的路径和紫色金字塔旨在捕获小物体的区域细节。更具体的说,在扩展中, EFPN 第三和第四金字塔层,分别在图 2 中用绿色和黄色层表示。在特征 SR 模块 FTT 中混合,以产生具有所选区域信息的中间特征P_3^ {'} 其中在图 2中由蓝色菱形表示。然后, 自上而下的路径将P_3^ {'} 定制的高分 辨率CNN特征图C_2^ {'}合并,产生最终的扩展金字塔层P_2^ {'}。我们 ResNet/ResNeXt stage2 中删除了一个最大池化层,并得到C_2^ {'}作为 stage2 的输出,如表 1所示。
C_2^ {'}与原始C2共享相同的表 示级别,但由于其更高的分辨率而包含更多的区域细节。
C_2^ {'}中较小的感受野也有助于更好地定位小物体,从数学上讲,所提出的EFPN中的扩展操作可以描述为
其中 表示通过 最近邻插值的双重放大。
EFPN 检测器中, 建议 size 和金字塔级别之间的映射仍然遵循 [19] 中的方式:
这里 l 表示金字塔级别, w h 表示方框建议的宽度和高度, 224 是规范的 ImageNet 预训练大小, l0 是wxh=224x224的方框方案映射到的级别目标。

3.2 FTT模块

基于图像参考的 SR 的启发 下,我们 设计了 FTT 模块来超分辨率特征,并同时从参考特征中提取区域纹 。如果没有 FTT EFPN 的第 4 P2 中的噪声将直接传递到扩展金字塔级,即淹没有意义的语义。
然而,所提出的 FTT 输出 综合了上低分辨率特征中的强语义 下高分辨率参考特征中的关键局部细节 ,但丢弃了参考中的干扰噪声。
如图 3 所示, FTT 模块的主要输入是来自第三层 EFPN 的特征图 P3 ,参考是来自第四层 EFPN 的特征图 P2。 输出P_3^ {'}可以定义为:
其中E_t(\cdot )表示纹理提取器成分,E_c(\cdot )表示内容提取器部分。 表示通过 sub 像素卷
积的双重放大, 表示特征C串联。内容提取器和纹理提取器都是由残差块组成的。
在主 stream 中,考虑到其效率,我们就将 sub-pixed 卷积 应用于 提高 来自主输入 P3 的内容特征的 空间分 辨率 sub像素卷积通过在通道维度上转移像素来增加宽度和高度维度上的像素。将卷积层生成的特征表示为F \in R^{H \times W\times C\times r^2}。亚像素卷积中的像素混洗算子将特征重新排列为 rH \times rW \times C形状 为的映射。(也就是说 经过 sub-pixed 卷积的特征图,是将原特
征图的宽度和高度放大了 r 倍,通道数不变
该运算在数学上可以定义为
其中,PS(F)_{x,y,c}表示像素混洗操作 PS(.) 之后的坐标 (x,y,c)上的 输出特征像
( 像素坐标 ) ,并且 r 表示放大因子。在我们的 FTT 模块中,为了使空间尺度加倍,我们采用 r=2
在参考 stream 中,参考特征 P2 和超分辨率内容特征 P3 的包裹被馈送到纹理提取器中。纹理提取器旨在提取用于小目标检测的可信纹理,并从包裹中屏蔽无用的噪声。
纹理和内容的最终元素添加确保了输出集成了来自输入和引用的语义和区域信息。因此,特征图 P3’ 具有从浅层特征参考P2 中选择的可靠纹理,以及从深层 P3 中选择的相似语义。

3.3训练损失

前景 - 背景平衡损失 。为了提高 EFPN 的综合质量,设计了前景背景平衡损失。常见的全局丢失会导致小物体区域的学习不足,因为小物体只占整个图像的一小部分。前景背景平衡损失函数通过两个部分提高了前景和背景的特征质量:
1 )全局重建损失
2 )正补丁损失
由于背景像素构成了图像的大部分,因此全局构造损失主要导致与真实背景特征的相似性。在这里,我们采用SR 中常用的 l1 损失作为全局重建损失L_{glob}
其中 F表示生成的特征图,F^t表示目标特征图。
正补丁丢失用于吸引人们对正像素的关注,因为严重的前景 - 背景不平衡会阻碍检测器的性能。我们使用前景区域上的l1损失作为正补丁损失L_{glob}
其中, P_{pos} 表示 ground truth 对象的块, N表示正像素的总数,并且(x,y)表示 特征图上的像
素的坐标。正补丁丢失对对象所在的区域起着更强的约束作用,强制学习这些区域的真实表示。
前景 -背景平衡损失函数L_{fbb}被定义为:
其中 \lambda 是权重平衡因子。平衡损失函数通过提高前景区域的特征质量来挖掘 true positives ,并通过提 高背景区域的特征品质来消除 false positives
总损失 。引入 2X 尺度 FPN 的特征图来监督 EFPN 的训练过程,不仅底部扩展特征金字塔级别受到监督,FTT模块也受到监督。 EFPN 的总体训练目标定义为:
是来自 2x 输入 FPN 的目标P2, 来自 2x 输入 FPN 的目标 P3

4、实验

首先,使用了微调完成实验,在实验过程中通过对有无 FTT 模块,进行了实验,同时在前景 - 背景平衡损
失函数上,通过对不同的损失权重进行设置进行了实验。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智能测径仪的精度主要依赖什么

关键字:智能测径仪镜头洁净度,智能测径仪系统自检,测径仪智能降温,智能测径仪远程升级,智能测径仪算法改进, 智能测径仪的精度保证主要依赖于以下几个方面: 智能监测镜头的洁净度:智…

二,几何相交---4,BO算法---(2)比较和排序

在某一时刻xt,扫描线从左到右时,一部分线段会与扫描线相交,此时此刻,线段可以分成高低顺序, 那么对于给定两条线段,是如何变化的呢?有两个端点,左端点和右端点, 三种情况…

dubbo 总结

1.dubbon 基本使用 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">&l…

计算机网络-第5章 运输层(2)

5.6 TCP可靠传输实现 以字节为单位的滑动窗口。 发送窗口已满&#xff0c;停止发送。 发送和接收的数据都来自缓存。 超时重传时间RTO选择&#xff1a;自适应算法&#xff0c; 选择确认SACK&#xff1a;只传送缺少的数据。大多数实现还是重传所有未被确认的数据块。 5.7 TCP的…

sheng的学习笔记- AI-类别不平衡问题

目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 什么是类别不平衡问题 类别不平衡&#xff08;class-imbalance&#xff09;&#xff0c;也叫数据倾斜&#xff0c;数据不平衡&#xff0c;就是指分类任务中不同类别的训练样例数目差别很大的情况。 例如有998个反例&#xf…

C 嵌入式系统设计模式 24:安全性和可靠性介绍

本书的原著为&#xff1a;《Design Patterns for Embedded Systems in C ——An Embedded Software Engineering Toolkit 》&#xff0c;讲解的是嵌入式系统设计模式&#xff0c;是一本不可多得的好书。 本系列描述我对书中内容的理解。本文章描述嵌入式安全性和可靠性模式之一…

ERP实施顾问面试题目

02什么是BOM和ECN&#xff1f;它们的完整英文拼写是什么&#xff1f;什么是替代料&#xff1f;&#xff08;10分&#xff09; BOM物料清单是英文Bill of Material的简写&#xff1b;ECN工程变更通知单是英文Engineering Change Notice的简写&#xff1b;替代料&#xff1a;由于…

vscode中解决驱动编写的时候static int __init chrdev_init()报错的问题

目录 错误出错原因解决方法 错误 在入口函数上&#xff0c;出现 expected a ; 这样的提示 出错原因 缺少了 __KERNEL __ 宏定义 解决方法 补上__KERNEL__宏定义 具体做法&#xff1a;在vscode中按下ctrlshiftp &#xff0c;输入&#xff1a;C/C:Edit Configurations&#xff0…

JMM(Java Memory Model)内存模型

Java内存模型&#xff0c;规范了计算机内存与java虚拟机之间的协调工作&#xff0c;即规定了 将java 虚拟机中的变量存储到内存中和从内从中取出来的内存细节。 Java内存模型中规定了所有的变量都存储在内存中&#xff0c;每条线程还有自己的工作内存&#xff0c;线程对变量的…

Exception异常处理

1. 两种异常处理机制 1.1 使用 throw 关键字手动抛出异常 使用throw关键字抛出异常&#xff0c;代码会的显得简单明了 如下图所示 1.2 使用 try-catch 捕获异常 使用try-catch进行捕获异常&#xff0c;往往会使代码变得更加笼统&#xff0c;层层包裹 如下图所示 2. 自定义…

大数据 - Spark系列《十三》- spark集群部署模式

Spark系列文章&#xff1a; 大数据 - Spark系列《一》- 从Hadoop到Spark&#xff1a;大数据计算引擎的演进-CSDN博客 大数据 - Spark系列《二》- 关于Spark在Idea中的一些常用配置-CSDN博客 大数据 - Spark系列《三》- 加载各种数据源创建RDD-CSDN博客 大数据 - Spark系列《…

【pycharm使用ssh连接服务器】

2、pycharm使用ssh连接服务器 1、具体流程2、一些需要注意的小问题2.1 更改代码地址2.2 本地代码上传到服务器2.3 在服务器的环境中上新安装库&#xff0c;但是pycharm检测不到 1、具体流程 打开pycharm – File – Setting 输入服务器的IP地址&#xff0c;端口号、登录账号名…

qt如何配置ros环境

在Qt5.7的版本可以使用bash -i -c来启动qt&#xff0c;让Qt自己识别系统环境&#xff0c;不知道为什么Qt在之后的版本&#xff0c;这样使用都失效了。因为它会默认把CMAKE_PREFIX_PATH修改掉。 网上还有安装ros插件版本的qt creator&#xff0c;感觉失去了一些灵活性。 自己测试…

连接端口和连接端口转换OrCAD补丁

来介绍此功能之前先复习一下一些OrCAD的基础知识。 说到连通两个器件&#xff0c;有什么办法呢&#xff1f;最直接的就是用线连通。比如下面这两个器件需要连通&#xff0c;我们可以直接用线Place wire连接。 但是如果这两个器件由于某些原因&#xff0c;他们之间相隔很远&…

Milvus的相似度指标

官网&#xff1a;https://milvus.io/docs/metric.md版本: v2.3.x 在 Milvus 中&#xff0c;相似度度量用于衡量向量之间的相似度。选择良好的距离度量有助于显着提高分类和聚类性能。下表展示了这些广泛使用的相似性指标如何与各种输入数据形式和 Milvus 索引相匹配。 一、浮…

大语言模型:Large Language Models Are Human-Level Prompt Engineers概述

研究内容 如何通过prompt&#xff0c;在不进行微调大语言模型的前提下&#xff0c;增加大语言模型的表现 研究动机 prompt非常有用&#xff0c;但是人工设置的非常不自然&#xff1b;因此提出了要自动使用大语言模型自己选择prompt&#xff1b;取得了很好的效果。 作者主要…

java异常概述及自定义处理

前言 学到异常了&#xff0c;本来以为处理异常只是避免bug&#xff0c;结果发现还可以为了编程需要自定义异常。打好基础&#xff0c;daydayup! 异常 什么是异常 异常就是代表程序出现的问题 异常的体系 异常体系指的是java开发人员为了方便程序员使用所开发的异常类&#xff…

一文彻底搞懂MySQL建表规范

文章目录 1. 表设计规范2. 索引规范3. SQL语句规范4. 散表规范 1. 表设计规范 库名、表名、字段名使用小写字母&#xff0c;使用“_”分割&#xff0c;不超过12个字符。使用InnoDB存储引擎。存储精确浮点数使用DECIMAL替代FLOAT和DOUBLE。使用UNSIGNED存储非负数值&#xff0c…

Linux基础学习:常用命令

目录结构及其常用命令 处理目录的常用命令&#xff1a; ls &#xff1a;列出目录及文件名cd&#xff1a;切换目录pwd&#xff1a;显示目前的目录mkdir&#xff1a;创建一个新的目录rmdir&#xff1a;删除一个空的目录cp&#xff1a;复制文件或目录rm&#xff1a;删除文件或目录…

Redis核心数据结构之字典(一)

字典 概述 字典又称为符号表(symbol table)、关联数组(associative array)或映射(map)&#xff0c;是一种保存键值对(key-value pair)的抽象数据结构&#xff0c;在字典中&#xff0c;一个键(key)可以和一个值(value)进行关联(或者说将键映射为值)&#xff0c;这些关联的键和…