CV——day79 读论文:基于小目标检测的扩展特征金字塔网络
Extended Feature Pyramid Network for Small Object Detection
- I. INTRODUCTION
- II. RELATED WORK
- A. 深层物体探测器
- B. 跨尺度特征
- C. 目标检测中的超分辨率
- III. OUR APPROACH
- A. 扩展特征金字塔网络
- B. 特征纹理传输
- C. 交叉分辨蒸馏
- IV. EXPERIMENTS
- A. Experimental Settings
- 1)benchmarkdataset
- V. CONCLUSION
数据集:小的交通标志数据集清华腾讯100 K;小类别的通用目标检测数据集MS COCO
I. INTRODUCTION
设计了一种新的特征纹理传输模块(feature texture transfer, FTT),同时用于超分辨特征和提取可信的区域细节。
特征金字塔网络(Feature pyramid network, FPN)是第一个通过融合不同层次的特征并构造特征金字塔来增强特征的方法,上面的特征映射负责较大的目标检测,下面的特征映射负责较小的目标检测。
FPN探测器中金字塔级和提议大小之间的启发式映射机制可能会混淆小目标的检测。如图1(a)所示,小型对象必须与中型对象和一些大型对象共享相同的特征图,而大型对象等简单情况下可以从合适的级别选取特征。

此外,如图1(b)所示,随着目标尺度的减小,FPN底层的检测精度和召回率急剧下降。图1表明,在普通FPN探测器中,跨尺度的特征耦合仍然降低了小目标检测的能力。

II. RELATED WORK
A. 深层物体探测器
A. Deep Object Detectors
一般的检测器倾向于更多地关注于提高更容易的大型实例的性能,因为一般的对象检测的度量是所有尺度的平均精度。专门用于小物体的探测器仍然需要更多的探索。
B. 跨尺度特征
B. Cross-Scale Features
利用跨尺度特征是缓解物体尺度变化问题的有效途径。虽然这些FPN变体提高了多尺度目标检测的性能,但它们仍然使用与原始FPN相同的层数。但是这些层并不适合小目标的检测,导致小目标的性能仍然很差。
C. 目标检测中的超分辨率
C. Super-Resolution in Object Detection
在一些特定的情况下,如卫星图像和拥挤的小人脸图像,存在极小的物体时,采用图像级SR(Super-Resolution)。最新的基于参考图像的SR方法、可以增强参考图像的纹理或内容。在此启发下,我们在参考和扩展FPN的基础上,设计了一种新的超分辨特征模块,从而生成更适合小目标检测的细节可信的特征。
III. OUR APPROACH
由于不同尺度的特征耦合以及金字塔级与目标大小之间的不恰当映射会降低检测器的性能,我们提出了一种扩展特征金字塔网络(EFPN)来解耦不同大小目标的检测,并为小目标分配更合适的特征级别。
首先,我们构建了一个扩展的特征金字塔,它是专门针对小目标的,在底部有一个高分辨率的特征图。由于该层具有丰富的区域信息,因此将小对象分配给该层。为了加强扩展层,我们设计了一种新的特征纹理转移(feature texture transfer, FTT)模块来生成扩展特征金字塔的中间特征。此外,我们采用交叉分辨率蒸馏,其中提出了一个新的前景-背景-平衡损失函数,以进一步加强正像素的学习。第三- a节和第三- b节阐述了EFPN网络和FTT模块的流水线,第三- c节阐述了我们的交叉分辨率精馏设计。
A. 扩展特征金字塔网络
A. Extended Feature Pyramid Network
Vanilla FPN通过对CNN的高层特征图进行上采样,并通过横向连接将其与低层特征图融合,构建4层特征金字塔。我们提出了EFPN,将传统的特征金字塔扩展到一个新的层次,以解决小目标检测和更多区域细节的问题。


扩展特征金字塔网络(EFPN)框架。其中Ci表示CNN结构第i阶段的特征图,Pi表示EFPN/FPN上对应的金字塔级。(b)中C2和C2之间的虚线表示C2和C2在第二段主干上平行,语义信息相似。EFPN的前4层为vanilla FPN层。Feature texture transfer (FTT)模块集成了P3的语义内容和P2的区域纹理。然后,一个类似fpn的自顶向下路径将FTT模块输出向下传递,形成最终的扩展金字塔级p2。扩展后的特征金字塔(P2‘, P2,P3,P4,P5)将被送入下面的检测器进行进一步的目标定位和分类。
- 如表I所示,C2与原来的C2具有相同的表示级别,但由于其更高的分辨率,包含了更多的区域细节。c2较小的接受区域也有助于更好地定位小物体。在数学上,提出的EFPN中扩展的运算可以描述为

B. 特征纹理传输
B. Feature Texture Transfer
我们设计了FTT模块,在超分辨特征的同时,从参考特征中提取区域纹理。所提出的FTT输出综合了高分辨率参考特征的强语义和低分辨率参考特征的关键局部细节,但剔除了参考特征中的干扰噪声。

如图3所示,FTT模块的主要输入是来自EFPN第三层的feature map P3,参考是来自EFPN第四层的feature map P2。
在参考流中,参考特征P2和超分辨内容特征P3的包装被提供给纹理提取器。纹理提取器的目标是提取出用于小目标检测的可信纹理,并从包装中屏蔽无用的噪声。
最后,纹理和内容元素的添加确保输出集成了输入和引用的语义和区域信息。因此,特征图P3’具有从浅层特征参考P2中选取的可靠纹理,以及从深层特征参考P3中选取的相似语义。
C. 交叉分辨蒸馏
C. Cross Resolution Distillation

使用更高分辨率的输入是提高小目标检测性能的有效方法,如图5所示;然而,检测性能在一定规模时饱和,多尺度测试带来的额外的大量计算资源和运行时间在实际应用中难以承受。为此,我们提出了一种称为交叉分辨率蒸馏的机制,该机制将高分辨率输入的特征作为监督信号引入。
如图4所示:利用2×规模输入的FPN中间层来指导1×-scale输入的学生模型EFPN的训练。为了节省GPU内存,教师模型FPN和学生模型EFPN从EFPN的前4层选取相同的参数权重。
常见的全局LOSS会导致对小目标区域的学习不足,因为小目标只占整个图像的一小部分。前景-背景均衡损失函数通过两个部分来提高背景和前景的特征质量:
1)全局重建损失。global reconstruction loss
**2)正补丁损失。**positive patch loss
将前景-背景-平衡损失函数L_{fbb}定义为:
Lfbb(F,Ft)=Lglob(F,Ft)+λLpos(F,Ft)(8)L_{fbb}(F,F^t)= L_{glob}(F,F^t)+ λL_{pos}(F,F^t) (8) Lfbb(F,Ft)=Lglob(F,Ft)+λLpos(F,Ft)(8)
λ是一个权重平衡因子。平衡损失函数通过提高前景区域的特征质量来挖掘真阳性,通过提高背景区域的特征质量来消除假阳性。
IV. EXPERIMENTS
A. Experimental Settings
1)benchmarkdataset
我们在两个基准上测试了我们的方法,包括用于小物体的交通标志检测场景和一般检测场景。我们将我们的方法与基线和两个场景的其他现状相比较。
- Tsinghua-Tencent 100 K :是用于交通标志检测和分类的数据集。它包含10万张高分辨率(2400 × 2400)图像,以及3万个交通标志实例。重要的是,在测试集中,92%的实例覆盖的区域小于整个图像的0.2%。清华-腾讯100k中绝大多数的小物体使其成为小物体检测的优秀基准。
- Microsoft COCO(MS COCO):它由三个子集组成:包含118 k张图片的列子集,包含5 k张图片的val子集,以及包含20k张图片的测试-开发子集。对象检测在MS COCO面临三个挑战:(1)小对象:约65%的实例的大小小于图像大小的6%。(2)单个图像比其他类似数据集有更多的实例(3)不同光照和不同形状的物体。
V. CONCLUSION
在本文中,我们提出了一种扩展的金字塔网络来解决小目标检测的问题,它是由类似fpn的框架生成一个专门针对小目标的层。在类fpn框架中嵌入一种新的特征纹理传递模块,通过基于参考的特征级SR有效地捕获扩展金字塔级的更多区域细节。此外,我们引入交叉分辨率蒸馏机制来提高SR特征的质量,其中我们设计了前景-背景-平衡的训练损耗来缓解前景和背景的区域不平衡。在各种数据集上的最新性能表明了EFPN在小目标检测方面的优越性。
EFPN可以与各种探测器、各种骨干相结合来加强小目标检测,也就是说,EFPN可以转移到更具体的小目标检测情况,如人脸检测或卫星图像检测。在未来的工作中,我们希望探索EFPN在更多领域的实际应用
相关文章:
CV——day79 读论文:基于小目标检测的扩展特征金字塔网络
Extended Feature Pyramid Network for Small Object DetectionI. INTRODUCTIONII. RELATED WORKA. 深层物体探测器B. 跨尺度特征C. 目标检测中的超分辨率III. OUR APPROACHA. 扩展特征金字塔网络B. 特征纹理传输C. 交叉分辨蒸馏IV. EXPERIMENTSA. Experimental Settings1&…...
智能家居项目(五)测试串口功能
目录 一、写一个单独测试串口的demo 二、直接运行上一篇智能家居的代码 一、写一个单独测试串口的demo 1、TTL串口与树莓派的连接方式 (1)TTL的RXD和TXD针脚连接到树莓的TXD和RXD上(T–>R R–>T),交叉连&…...
2023年全国最新道路运输从业人员精选真题及答案7
百分百题库提供道路运输安全员考试试题、道路运输从业人员考试预测题、道路安全员考试真题、道路运输从业人员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 71.根据《中华人民共和国安全生产法》,生产经营单位…...
python的所有知识点(含讲解),不看就亏死了
目录 简介 特点 搭建开发环境 版本 hello world 注释 文件类型 变量 常量 数据类型 运算符和表达式 控制语句 数组相关 函数相关 字符串相关 文件处理 对象和类,注:不是那个对象!!!!&…...
【Servlet篇】Response对象详细解读
文章目录Response 继承体系Response 设置响应数据设置响应行数据设置响应头数据设置响应体数据Response 重定向Response 响应字符数据Response 响应字节数据Response 继承体系 前面说到,我们使用 Request 对象来获取请求数据,使用 Response 对象来设置响…...
SAP FICO期初开账存货导入尾差
一、问题 1.AFS物料网格级别库存导入先除再乘有尾差: 旧系统数据迁移自两个系统:一个管理数量账(网格级别),一个管理金额账(物料级别) 2.MB52分工厂与MB5L分工厂统计差异: M…...
微信商城小程序怎么做_分享实体店做微信商城小程序制作步骤
各行各业都在用微商城小程序开店,不管是餐饮店还是便利店,还是五金店。都是可以利用微信小程序开一个线上店铺。实现线上跟线下店铺更加全面的结合。维护好自己的老客户。让您的客户给您拉新,带来新客户。小程序经过这几年的快速发展和不断升…...
【moment.js】时间格式化插件
Moment.js 用于在JavaScript中解析,验证,操作和显示日期和时间。是一款在项目中使用频率极高的时间格式化工具,Ant Design Vue 组件中就是使用它来处理时间的。 安装 npm install moment --save # npm yarn add moment # Ya…...
微信小程序开发【壹】
随手拍拍💁♂️📷 日期: 2023.02.24 地点: 杭州 介绍: 2023.02.24上午十点,路过学院的教学楼时🏢,突然看见了一团粉红色。走进一看是一排梅花🌸,赶在它们凋零前,将它们定格在我的相…...
2 k-近邻算法
0 问题引入 想一想:下面图片中有三种豆,其中三颗豆品种未知,如何判断他们类型? 1 KNN概述 1.1 KNN场景 电影可以按照题材分类,那么如何区分 动作片 和 爱情片 呢? 动作片:打斗次数更多爱情…...
深入探究文件I/O
目录Linux 系统如何管理文件静态文件与inode文件打开时的状态返回错误处理与errnostrerror 函数perror 函数exit、_exit、_Exit_exit()和_Exit()函数exit()函数空洞文件概念实验测试O_APPEND 和O_TRUNC 标志O_TRUNC 标志O_APPEND 标志多次打开同一个文件验证一些现象多次打开同…...
【LeetCode】剑指 Offer(9)
目录 题目:剑指 Offer 25. 合并两个排序的链表 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 题目:剑指 Offer 26. 树的子结构 - 力扣&#…...
python 遍历可迭代对象的方法
python 遍历可迭代对象的方法 可迭代(iterable) 迭代(遍历)就是按照某种顺序逐个访问对象中的每一项。 Python中有很多对象都是可以通过for语句来直接遍历的,例如list、string、dict等,这些对象都是可迭代的,被称为可迭代对象。 可以将可迭…...
【数据库】 第11章 并发控制
第11章 并发控制 事务 事务:(从微观角度,或者从DBMS角度)是数据库管理系统提供的控制数 据操作的一种手段,通过这一手段,应用程序员将一系列的数据库操作组合 在一起作为一个整体进行操作和控制,以便数据库管理系统能…...
Python3-数字
Python3 数字(Number) Python 数字数据类型用于存储数值。 数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间。 Python 支持三种不同的数值类型: 整型(int) - 通常被称为是整型或整数,是正或负整数&#x…...
(四十一)Read Committed隔离级别是如何基于ReadView机制实现的?
今天我们来给大家讲一下,基于之前我们说的ReadView机制是如何实现Read Committed隔离级别的,那么当然了,首先就是要先做一些简单的回顾。所谓的Read Committed隔离级别,我们可以用骚气一点的名字,就是简称为 RC 隔离级…...
React echarts封装
做大屏的时候经常会遇到 echarts 展示,下面展示在 React (^18.2.0) 中对 echarts (^5.4.0) 的简单封装。 文章首发于https://blog.fxss.work/react/echarts封装.html,样例查看 echarts 封装使用 props 说…...
【C语言进阶】了解计算机的程序环境和预处理过程 掌握计算机预处理操作
📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:C语言进阶 🎯长路漫漫浩浩,万事皆有期待 文章目录1.编译与链接1.1 程…...
(三十六)大白话数据库幻读,本质到底是个什么问题?
上一讲我们给大家讲解了不可重复读这个问题,这个问题简单来说,就是一个事务多次查询一条数据,结果每次读到的值都不一样,这个过程中可能别的事务会修改这条数据的值,而且修改值之后事务都提交了,结果导致人…...
【算法经典题集】递归(持续更新~~~)
😽PREFACE🎁欢迎各位→点赞👍 收藏⭐ 评论📝📢系列专栏:算法经典题集🔊本专栏涉及到的知识点或者题目是算法专栏的补充与应用💪种一棵树最好是十年前其次是现在1.递归1.1 递归实现…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
