Extended Feature Pyramid Network for SmallObject Detection

摘要

各种尺度的特征耦合会削弱小对象的性能,本文中,我们提出了具有超高分辨率金字塔的扩展特征金字塔网络(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.rhkb.cn/news/273761.html

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

相关文章

【C++】vector的使用及其模拟实现

这里写目录标题 一、vector的介绍及使用1. vector的介绍2. 构造函数3. 遍历方式4. 容量操作及空间增长问题5. 增删查改6. vector二维数组 二、vector的模拟实现1. 构造函数2. 迭代器和基本接口3. reserve和resize4. push_back和pop_back5. insert和erase5. 迭代器失效问题5. 浅…

Oracle.xs.dll‘ for module DBD::Oracle: load_file:找不到指定的模块

安装Ora2pg时,碰到 异常现象 D:\ProgramFiles\ora2pg>ora2pg -t show_report --estimate_cost -c ora2pg_conf.dist install_driver(Oracle) failed: Cant load D:/ProgramFiles/strawberry/perl/site/lib/auto/DBD/Oracle/Oracle.xs.dll for module DBD::Oracle: load_fil…

聊聊python中面向对象编程思想

面向对象编程思想 1、什么是面向过程 传统的面向过程的编程思想总结起来就八个字——自顶向下,逐步细化! → 将要实现的功能描述为一个从开始到结束按部就班的连续的“步骤” → 依次逐步完成这些步骤,如果某一个步骤的难度较大&#xff…

JavaScript基础6之执行上下文、作用域链、函数创建、函数激活、checkScope的执行过程、闭包、this

JavaScript基础 执行上下文执行上下文中的属性变量对象全局上下文的变量对象函数上下文执行过程进入执行上下文代码执行思考题 作用域链函数创建函数激活checkScope的执行过程总结 闭包分析闭包 this 执行上下文 执行上下文中的属性 每一个执行上下文都有三个核心属性 变量对…

数据库查询操作

数据库查询操作 数据准备查询的基本操作查询部分字段的值取别名去重 条件查询比较运算符逻辑运算符模糊查询范围查询为空判断 排序分组聚合count(*) : 求表的总的记录数max(字段名): 查询对应字段的最大的值min(字段名): 查询对应字段的最小的值sum(字段名): 查询对应字段的值的…

分布式之Ribbon使用以及原理

Ribbon使用以及原理 1、负载均衡的两种方式 服务器端负载均衡 传统的方式前端发送请求会到我们的的nginx上去,nginx作为反向代理,然后路由给后端的服务器,由于负载均衡算法是nginx提供的,而nginx是部署到服务器端的,所…

vue-cli自定义创建项目-eslint依赖冲突解决方式

创建项目步骤 概览: 在安装 npm安装时会报错 npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving: vue/eslint-config-standard6.1.0 npm ERR! Found: eslint-plugin-vue8.7.1 npm ERR! node_modules/eslint-plugin…

C++面试宝典一部分

今天整理书籍资料时,发现多年前打印的面试资料,拍照分享给大家。

Unity ShaderGraph实现地面积水效果

先看看效果 右侧参数,能够控制水高,波纹的速度等,但是这个效果需要修改高度图和凹凸图,毕竟有些模型并不是平面,对于具有斜面的模型就需要修改贴图。 ShaderGraph如下

掌握React中的useCallback:优化性能的秘诀

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

window Zookeeper 启动;

文章目录 前言一、Zookeeper 介绍:二、window 使用:2.1 下载:2.2 启动2.3 连接: 总结 前言 本文对window Zookeeper zk 启动 进行介绍; 一、Zookeeper 介绍: ZooKeeper 是一个开源的分布式协调服务&#…

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

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

数据分析-Pandas如何画图验证数据随机性

数据分析-Pandas如何画图验证数据随机性 数据分析和处理中,难免会遇到各种数据,那么数据呈现怎样的规律呢?不管金融数据,风控数据,营销数据等等,莫不如此。如何通过图示展示数据的规律? 数据表…

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

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

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

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

Docker 配置阿里云镜像加速器

一、首先需要创建一个阿里云账号 二、登录阿里云账号 三、进入控制台 四、搜索容器镜像服务,并选择 五、选择镜像工具中的镜像加速 六 、配置镜像源 注意:有/etc/docker文件夹的直接从第二个命令开始

Apache SeaTunnel社区发布最新Roadmap:定义数据集成未来

随着春节假期的结束,我们迎来了充满希望的龙年,开源社区也呈现出一片繁荣的景象。 今天,我们激动地宣布Apache SeaTunnel社区最新Roadmap现已公开!在不断追求创新和卓越的道路上,我们致力于将SeaTunnel打造成为数据集成…

Vue中的组件:构建现代Web应用的基石

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

手把手教使用静默 搭建Oracle 19c 一主一备ADG集群

一、环境搭建 主机IPora19192.168.134.239ora19std192.168.134.240 1.配置yum源 1.配置网络yum源 1.删除redhat7.0系统自带的yum软件包; rpm -qa|grep yum >oldyum.pkg 备份原信息rpm -qa|grep yum|xargs rpm -e --nodeps 不检查依赖,直接删除…

【Java】仓库管理系统 SpringBoot+LayUI+DTree(源码)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…