当前位置: 首页 > news >正文

【论文解读】EdgeYOLO:一种边缘实时目标检测器(附论文地址)

论文地址:https://arxiv.org/pdf/2302.07483

这篇文章的标题是《EdgeYOLO: An Edge-Real-Time Object Detector》,由中国北京理工大学的Shihan Liu、Junlin Zha、Jian Sun、Zhuo Li和Gang Wang共同撰写。这篇论文提出了一个基于最新YOLO框架的高效、低复杂度且无锚点的目标检测器,能够在边缘计算平台上实时实现。以下是对论文内容的解读:

研究背景与动机

  1. 计算硬件性能提升:随着计算硬件性能的不断提升,基于深度神经网络的计算机视觉技术在过去十年中迅速发展,目标检测作为自主智能系统中的一个重要元素,对于实现自动化和智能化至关重要。

  2. 目标检测策略的演进:目标检测领域存在两种主流策略,即两阶段策略(如R-CNN系列)和一阶段策略(如YOLO框架)。两阶段策略虽然在精度上略胜一筹,但无法满足实时性要求,特别是在传统计算设备上。相比之下,一阶段策略在实时性和性能之间取得了平衡,因此受到了研究者更多的关注。

  3. 边缘计算的兴起:边缘计算允许在数据源附近进行数据处理,减少了数据传输延迟,对于需要快速响应的应用场景(如自动驾驶、无人机监控等)具有重要意义。然而,现有的先进模型在边缘计算设备上通常运行帧率(FPS)较低,无法满足实时性需求。

  4. 模型复杂度与实时性的平衡:为了在边缘设备上实现实时目标检测,需要设计出既保证精度又具有较低计算复杂度的模型。这要求研究者在模型设计时考虑到参数数量、结构复杂度以及推理速度。

  5. 小目标检测的挑战:小目标在图像中所占像素较少,导致用于表达目标的信息量减少,其检测精度通常显著低于大目标。为了提高小目标的检测效果,需要对现有方法进行改进和优化。

  6. 无锚点(Anchor-free)检测器的优势:与传统的基于锚点(Anchor-based)的检测器相比,无锚点检测器在后处理阶段可以节省更多时间,因为它们不需要处理每个网格单元的多个锚点,这有助于提高边缘设备上的目标检测速度。

EdgeYOLO

EdgeYOLO是一种具有良好精度并且能够在边缘设备上实时运行的目标检测器。

  1. 设计了一种Anchor-Free目标检测器,该检测器可以在MS COCO2017数据集中实时运行在边缘设备上,准确率为50.6%AP;

  2. 提出了一种更强大的数据增强方法,进一步确保了训练数据的数量和有效性;

  3. 模型中使用了可重参化的结构,以减少推理时间;

  4. 设计了一个损失函数,以提高小目标的精度。

主要改进

  • 无锚点检测器: 提出了一个无需锚点(anchor-free)的目标检测器,可以减少设计复杂度和计算量。

  • 数据增强方法: 开发了一个增强的数据增强方法,有效抑制训练过程中的过拟合。

  • 混合随机损失函数: 设计了一种新的损失函数,提高小目标的检测精度。

  • 解耦头: 提出了一种更轻量、高效的解耦头,以加速推理过程,同时保持精度。

关键组件

  • 增强的Mosaic & Mixup: 通过结合Mosaic和Mixup数据增强技术,增加了图像的丰富性,并确保输出图像包含足够的有效信息。

  • Lite-Decoupled Head: 一种轻量级解耦头,通过重参数化技术提高推理速度,同时减少推理成本。

  • Staged Loss Function: 分阶段的损失函数设计,根据训练过程的不同阶段调整损失函数,以优化模型性能。

技术细节

  • 数据增强: 通过随机数据增强不可避免地会导致一些标签无效,EdgeYOLO通过增加有效框的数量来解决这个问题。

  • 模型缩减: 通过模型缩减技术减少计算成本,提高模型推理速度。

  • 解耦回归: 与传统的统一回归检测头相比,解耦回归检测头可以提高性能并加速损失收敛。

  • 小目标检测优化: 通过数据增强和损失函数的重新设计,提高小目标的检测效果。

实验与评估

  • 数据集: 在MS COCO2017和VisDrone2019-DET数据集上进行测试,这些数据集包含丰富的标签信息,适合评估模型性能。

  • 训练环境: 使用4个RTX 3090 GPU进行训练,采用ELAN-Darknet作为模型的主干网络。

  • 推理测试: 在NVIDIA Jetson AGX Xavier边缘计算设备上进行推理测试,确保模型满足实时性要求。

  • 性能: EdgeYOLO在MS COCO2017数据集上达到了50.6% AP50:95和69.8% AP50的精度,在VisDrone2019-DET数据集上达到了26.4% AP50:95和44.8% AP50的精度。

  • 实时性: 在Nvidia Jetson AGX Xavier设备上,模型的帧率(FPS)≥30,满足实时要求。

结论与贡献

结论

  • 高效率与实时性: EdgeYOLO证明了其能够在边缘设备上以高效率和实时性运行,同时保持了较高的目标检测精度。

  • 小目标检测: 特别指出了EdgeYOLO在小目标检测方面的性能提升,这是通过其创新的数据增强和损失函数设计实现的。

  • 无锚点结构: 由于采用了无锚点(anchor-free)结构,EdgeYOLO简化了设计复杂度和计算复杂度,使得在边缘设备上的部署更为友好。

  • 框架扩展性: 论文提出该框架有潜力扩展到其他像素级识别任务,如实例分割等。

贡献

  1. 实时无锚点目标检测器: 设计了一个能够在边缘设备上实时运行的无锚点目标检测器,该检测器在MS COCO2017数据集上达到了50.6% AP50:95的精度。

  2. 增强的数据增强方法: 提出了一种更强大的数据增强方法,进一步确保了训练数据的量和有效性。

  3. 模型结构优化: 在模型中使用了可重参数化的结构,以减少推理时间。

  4. 混合随机损失函数: 设计了一种新的损失函数,改善了小目标的检测精度。

  5. 不同规模模型: 构建了几个不同大小的模型,以适应不同计算能力的边缘设备,并加速模型推理过程。

  6. 实验验证: 在MS COCO2017和VisDrone2019-DET数据集上进行了广泛的实验验证,证明了EdgeYOLO在不同场景下的有效性。

  7. 开源资源: 提供了源代码、超参数和模型权重,以便研究社区可以访问和进一步研究。

论文强调,尽管EdgeYOLO在目标检测方面取得了显著成果,但仍有改进空间,特别是在小目标检测的准确性方面。未来的工作将集中在进一步提高小目标的检测精度,并探索更有效的优化方法。

相关文章:

【论文解读】EdgeYOLO:一种边缘实时目标检测器(附论文地址)

论文地址:https://arxiv.org/pdf/2302.07483 这篇文章的标题是《EdgeYOLO: An Edge-Real-Time Object Detector》,由中国北京理工大学的Shihan Liu、Junlin Zha、Jian Sun、Zhuo Li和Gang Wang共同撰写。这篇论文提出了一个基于最新YOLO框架的高效、低复…...

xlwings,让excel飞起来!

excel已经成为必不可少的数据处理软件,几乎天天在用。python有很多支持操作excel的第三方库,xlwings是其中一个。 关于xlwings xlwings开源免费,能够非常方便的读写Excel文件中的数据,并且能够进行单元格格式的修改。 xlwings还…...

C语言学习,标准库 <stddef.h>

<stddef.h> C 标准库中头文件&#xff0c;它定义了一些常用的类型定义和宏。这些定义通常用于指针操作、数组处理和其他需要固定大小数据类型的场合。 size_t&#xff1a; 这是一个无符号整数类型&#xff0c;用于表示对象的大小&#xff08;以字节为单位&#xff09;。…...

PyQt5实战——操作台打印重定向,主界面以及stacklayout使用(四)

个人博客&#xff1a;苏三有春的博客 系类往期文章&#xff1a; PyQt5实战——多脚本集合包&#xff0c;前言与环境配置&#xff08;一&#xff09; PyQt5实战——多脚本集合包&#xff0c;UI以及工程布局&#xff08;二&#xff09; PyQt5实战——多脚本集合包&#xff0c;程序…...

React + Vite + TypeScript + React router项目搭建教程

一、创建项目 运行项目 二、目录结构 项目目录&#xff1a; ├─node_modules //第三方依赖 ├─public //静态资源&#xff08;不参与打包&#xff09; └─src├─assets //静态资源├─components //组件├─config //配置├─http //请求方法封装├─layout //页面…...

【ShuQiHere】️ 如何启用 SSH 服务

&#x1f6e0;️ 如何启用 SSH 服务 目录 基础概念 &#x1f331;检查是否已安装 SSH 服务 &#x1f50d;在不同操作系统上安装 SSH 服务 &#x1f4bb; LinuxWindows 11macOS 启动和启用 SSH 服务 &#x1f680;配置防火墙以允许 SSH 连接 &#x1f525;配置 SSH 服务&#…...

【自动化测试】APP UI 自动化(安卓)-本地环境搭建

一、软件准备及版本介绍 软件版本JAVA-SDK1.8.0_181 python 3.10.10 Android SDK Tools 下最新版本即可&#xff0c;无特殊要求 PyCharm 2023.3.5&#xff08;下最新版本即可&#xff0c;无特殊要求&#xff09; 二、安装步骤及环境变量配置 2.1 Java安装及配置 1&am…...

java毕业设计之基于Bootstrap的常州地方旅游管理系统的设计与实现(springboot)

项目简介 基于Bootstrap的常州地方旅游管理系统的设计与实现有下功能&#xff1a; 基于Bootstrap的常州地方旅游管理系统的设计与实现的主要使用者分为用户功能模块和管理员功能模块两大部分&#xff0c;用户可查看景点信息、景点资讯等&#xff0c;注册登录后可进行景点订票…...

《机甲崛起》

第一章&#xff1a;觉醒 在遥远的未来&#xff0c;地球的面貌已被人类科技彻底改变。蓝天被高耸的摩天大楼和闪烁的飞行器撕裂&#xff0c;城市的光辉仿佛能照亮整个星球。然而&#xff0c;繁华背后隐藏着深重的危机&#xff1a;生态环境的恶化、资源的匮乏&#xff0c;已成为…...

Windows10:Linux Reader

Linux Reader Access files and folders on Ext, UFS, HFS, ReiserFS, or APFS file systems from Windows DiskInternals 发布的 Linux Reader 是一款能在 Windows 系统环境下读取 Linux 分区文件的免费软件&#xff0c;提供了资源管理器式的浏览模式。它使用只读模式挂载 L…...

一、k8s快速入门之学习Kubernetes组件基础

一、三个容器管理器平台 Apache MESOS 开源的分布式资源管理框架&#xff0c;被推特选为基础平台&#xff0c;2019年推特换位k8s&#xff0c;MESOS最新版可以在MESOS上管理k8sDOCKER SWARM docker总部发行的&#xff0c;实现docker的集群方案&#xff0c;和docker捆版一起&…...

PostgreSQL 到 PostgreSQL 数据迁移同步

简述 PostgreSQL 是一个历史悠久且广泛使用的数据库&#xff0c;不仅具备标准的关系型数据库能力&#xff0c;还具有相当不错的复杂 SQL 执行能力。用户常常会将 PostgreSQL 应用于在线事务型业务&#xff0c;以及部分数据分析工作&#xff0c;所以 PostgreSQL 到 PostgreSQL …...

RestTemplate 常用方法(提供了多种方法来发送 HTTP 请求)

RestTemplate 是 Spring 框架中用于同步客户端 HTTP 请求的一个类&#xff0c;它提供了多种方法来发送 HTTP 请求。以下是一些常用的 RestTemplate 方法及其代码案例&#xff1a; 1.postForObject() 该方法用于发送 POST 请求&#xff0c;并期望返回一个对象。以下是一个使用…...

常量和变量

常量 常量是指在程序中使用的一些具体的数、字符。在程序运行过程中&#xff0c;其值不能被更改。如123,145.88,m,TRUE等。常量&#xff0c;用于记录程序中不可更改的数据。 分类 1、整型常量&#xff0c;表示整数的常量。 表示形式&#xff1a;   1&#xff09;十进制形…...

Go语言的使用

在安装Go和配置镜像时&#xff0c;可以根据操作系统和网络环境来选择适合的步骤。以下是详细的安装步骤和镜像配置&#xff1a; 1. 安装Go 1.1 通过官方下载 访问 Go的官方下载页面 下载适合操作系统的安装包&#xff08;Windows、macOS 或 Linux&#xff09;。安装包下载完…...

详解CRC校验原理以及FPGA实现

文章目录 一、什么是CRC校验&#xff1f;二、实现CRC校验原理以及步骤2.1 用多项式表示二元码数据2.2 选择一个生成多项式作为校验2.3 计算CRC校验码 三、CRC判断数据是否错误的原理以及步骤3.1 将收到的数据与生成多项式求余3.2 数据发生错误再进行CRC校验判断 四、FPGA实现CR…...

企业如何通过架构蓝图实现数字化转型

数字化转型的关键——架构蓝图的力量 在当今的商业世界&#xff0c;数字化转型已经不再是一个选择&#xff0c;而是企业生存与发展不可回避的战略行动。企业希望通过数字化提高效率、增强灵活性&#xff0c;并为客户提供更好的体验。然而&#xff0c;数字化转型不仅仅涉及技术…...

React第十三章(useTransition)

useTransition useTransition 是 React 18 中引入的一个 Hook&#xff0c;用于管理 UI 中的过渡状态&#xff0c;特别是在处理长时间运行的状态更新时。它允许你将某些更新标记为“过渡”状态&#xff0c;这样 React 可以优先处理更重要的更新&#xff0c;比如用户输入&#x…...

IDEA使用Maven Helper查看整个项目的jar冲突

在插件市场安装Maven Helper&#xff0c;安装好后&#xff0c;重启IDEA&#xff1b;双击打开可能存在jar冲突的pom文件&#xff1b;在右侧面板查看冲突,text是引入的依赖明细&#xff0c;点击Dependecy Analyzer选项卡即可查看冲突的jar。...

uniapp项目 存储数据到手机本地

打开manifest.json&#xff0c;在App权限配置中&#xff0c;添加读取和写入的权限 <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE"/&g…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...