计算机视觉研究院 | EdgeYOLO:边缘设备上实时运行的目标检测器及Pytorch实现

本文来源公众号“计算机视觉研究院”,仅用于学术分享,侵权删,干货满满。

原文链接:EdgeYOLO:边缘设备上实时运行的目标检测器及Pytorch实现

代码地址:https://github.com/LSH9832/edgeyolo

今天分享的研究者提出了一种基于最先进的YOLO框架的高效、低复杂度和无锚的目标检测器,该检测器可以在边缘计算平台上实时实现。

01 概述

研究者开发了一种增强的数据增强方法来有效抑制训练过程中的过拟合,并设计了一种混合随机损失函数来提高小目标的检测精度。受FCOS的启发,提出了一种更轻、更高效的解耦头,可以在不损失精度的情况下提高推理速度。提出的基线模型在MS COCO2017数据集中可以达到50.6%的AP50:95和69.8%的AP50准确度,在VisDrone2019 DET数据集可以达到26.4%的AP50:95和44.8%的AP50准确度,并且它满足边缘计算设备Nvidia Jetson AGX Xavier的实时性要求(FPS≥30)。

02 介绍

在常见的目标检测数据集(如MS COCO2017)上,使用两阶段策略的模型比使用一阶段策略的要好一点。尽管如此,由于两阶段框架的内部限制,它远远不能满足传统计算设备的实时性要求,并且在大多数高性能计算平台上可能面临同样的情况。相比之下,单级目标检测器可以在实时指标和性能之间保持平衡。因此,他们更受研究人员的关注,YOLO系列算法以高速迭代更新。从YOLOv1到YOLOv3的更新主要是对底层框架结构的改进,YOLO的大多数后期主流版本都专注于提高精度和推理速度

此外,他们的优化测试平台主要是具有高性能GPU的大型工作站。然而,他们最先进的模型在这些边缘计算设备上通常以令人不满意的低FPS运行。为此,一些研究人员提出了参数较少、结构较轻的网络结构,如MobileNetShuffleNet,以取代原有的骨干网络,从而在移动设备和边缘设备上实现更好的实时性能,但要牺牲一定的精度。在今天分享中,研究者的目标是设计一种具有良好精度并可以在边缘设备上实时运行的物体检测器

如下图所示,研究者还为计算能力较低的边缘计算设备设计了更轻、参数更少的模型,这些设备也显示出更好的性能。

03 新框架

随机数据扩充不可避免地会导致一些标签无效,例如(a)中第二张图的右下角和第三张图的左下角。虽然有方框,但它们不能提供有效的目标信息。标签数量过少会对训练产生明显的负面影响,可以通过增加(b)中的有效方框数量来避免这种影响。

Enhanced-Mosaic & Mixup

常用的数据增强策略如下(a)和(b)所示,但是(a)和(b)由于数据变换,容易包含不含有效目标的图像,此外这种情况的概率随着每个原始图像中标签数量的减少而逐渐增加。

作者因此提出的方法(c):

  • 首先,对多组图像使用Mosaic方法(可以根据数据集中单个图片中标签的平均数量的丰富程度来设置组数)

  • 然后,通过Mixup方法将最后一个简单处理的图像与Mosaic处理的图像混合(最后一幅图像的原始图像边界在变换后的最终输出图像的边界内)

Lite-Decoupled Head

解耦头首先在FCOS中提出,然后用于其他Anchor-Free目标检测器,如YOLOX。在最后几个网络层使用解耦结构可以加速网络收敛并提高回归性能。但是由于解耦头采用了导致额外推理成本的分支结构,因此YOLOv6提出了具有更快推理速度的高效解耦头,这将中间3×3卷积层的数量减少到仅一层,同时保持与输入特征图相同的更大数量的通道。

但是这种额外的推理成本随着通道和输入大小的增加也变得更加明显。因此引入重参化的技术增强学习能力的同时加快推理。

04 实验

representative results in VisDrone2019-DET-val

representative results on MS COCO2017-val

THE END!

文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

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

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

相关文章

【LeetCode】升级打怪之路 Day 21:二叉树的最近公共祖先(LCA)问题

今日题目: 236. 二叉树的最近公共祖先1644. 二叉树的最近公共祖先 II235. 二叉搜索树的最近公共祖先 目录 LCA 问题LC 236. 二叉树的最近公共祖先 【classic】LC 1644. 二叉树的最近公共祖先 II 【稍有难度】LC 235. 二叉搜索树的最近公共祖先 ⭐⭐⭐ 今天做了几道有…

python备份库

个人简介 👨🏻‍💻个人主页:九黎aj 🏃🏻‍♂️幸福源自奋斗,平凡造就不凡 🌟如果文章对你有用,麻烦关注点赞收藏走一波,感谢支持! 🌱欢迎订阅我的…

SAM分割 图片bbox提示任意数量目标输出mask

前提条件:labelimg打标签得到bbox 1.代码 import torchfrom segment_anything import SamPredictor, sam_model_registry import cv2 import numpy as np import os import glob import xml.etree.ElementTree as ETcheckpoint "./weight/sam_vit_h_4b8939.…

分布式数据处理MapReduce简单了解

文章目录 产生背景编程模型统计词频案例 实现机制容错机制Master的容错机制Worker的容错机制 产生背景 MapReduce是一种分布式数据处理模型和编程技术,由Google开发,旨在简化大规模数据集的处理。产生MapReduce的背景: 数据量的急剧增长&…

通过OceanBase 3.x中not in无法走hash连接的变化,来看OB优化器的发展

作者简介: 张瑞远,曾从事银行、证券数仓设计、开发、优化类工作,现主要从事电信级IT系统及数据库的规划设计、架构设计、运维实施、运维服务、故障处理、性能优化等工作。 持有Orale OCM,MySQL OCP及国产代表数据库认证。 获得的专业技能与认…

C#,数值计算,矩阵相乘的斯特拉森(Strassen’s Matrix Multiplication)分治算法与源代码

Volker Strassen 1 矩阵乘法 矩阵乘法是机器学习中最基本的运算之一,对其进行优化是多种优化的关键。通常,将两个大小为N X N的矩阵相乘需要N^3次运算。从那以后,我们在更好、更聪明的矩阵乘法算法方面取得了长足的进步。沃尔克斯特拉森于1969年首次发表了他的算法。这是第…

【刷题】双指针进阶

请看入门篇 :双指针入门 送给我们一句话: 如今我努力奔跑,不过是为了追上那个曾经被寄予厚望的自己 —— 约翰。利文斯顿 双指针进阶 Leetcode 611 有效三角形的个数Leetcode LCR179.查找总价格为目标值的两个商品Leetcode 15.三数之和Thanks…

手把手教你使用Python第三方模块

1.第三方模块 一般是别人解决特定问题的功能进行了封装,可以通过安装直接使用 注意 第三方模块需要先安装,才能使用 常见的安装方式:通过pip工具或者通过pycharm编辑器进行安装 2.pip指令安装 pip -V # 查看pip的版本 pip 23.2.1 fr…

基于PHP的数字化档案管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的数字化档案管理系统 一 介绍 此数字化档案管理系统基于原生PHP,MVC架构开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 php(mvc)mysqlbootstrapphpstudyvscode 二 功能 …

网络原理(网络协议初识)

目录 1.网络通信基础 1.1IP地址 1.2端口号 1.3认识协议 1.4五元组 1.5 协议分层 2.TCP/IP五层(或四层)模型 2.1网络设备所在分层 2.2网络分层对应 3.封装和分用 1.网络通信基础 网络互连的目的是进行网络通信,也即是网络数据传输&#…

手写简易操作系统(九)--实现打印函数

前情提要 前面我们已经进入内核程序了,中间穿插了一点特权级的知识,现在我们开始准备一个打印函数 很不幸,还有汇编程序 一、C调用规约 因为涉及到C与汇编的联合编程,我们这里简述一下调用规约,调用规约就是约定参…

Node.js 学习笔记 fs、path、http模块;模块化;包;npm

Node.js学习 Node.js一、定义1.前端工程化2.Node.js 为何能执行 JS?3.安装nodejs、删除之前的nodejs4.使用 Node.js 二、fs模块 \- 读写文件三、path 模块案例 - 压缩前端html四、HTTP相关URL中的端口号常见的服务程序http 模块-创建 Web 服务案例:浏览时…

Python二级备考

考试大纲如下: 基本要求 考试内容 考试方式 比较希望能直接刷题,因为不懂的比较多可能会看视频。 基础操作刷题: 知乎大头计算机1-13题 import jieba txtinput() lsjieba.lcut(txt) print("{:.1f}".format(len(txt)/len(ls)…

XIAO ESP32S3部署Edge Impulse模型

在上一篇文章中我们介绍了如何使用edge impulse训练一个图片分类模型并导出arduino库文件。在这篇文章中我们将介绍如何在esp32s3中部署这个训练好的图片分类模型。 添加进Arduino库 有两种方法将下载的文件添加进Arduino库。 在Arduino IDE程序中,转到项目选项卡…

✅技术社区—集成xxl-job实现定时任务的管理和执行

xxl-job是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。(其中XXL是作者许雪里的简称) xxl-job是对老牌调度平台Quartz进行的封装。在开始介绍xxl-job之前我来先简单…

Jmeter —— jmeter中元件的执行顺序作用域

元件的执行顺序: 配置元件-->前置处理程序-->定时器-->取样器-->后置处理程序(除非Sampler 得 到的返回结果为空)-->断言(除非Sampler 得到的返回结果为空)-->监听器 (除非Sampler 得到…

【Redis系列】深入了解 Redis:一种高性能的内存数据库

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

微信小程序-day01

文章目录 前言微信小程序介绍 一、为什么要学习微信小程序?二、微信小程序的历史创建开发环境1.注册账号2.获取APPID 三、下载微信开发者工具1.创建微信小程序项目2.填写相关信息3.项目创建成功 四、小程序目录结构项目的主体组成结构 总结 前言 微信小程序介绍 微信小程序&…

新 树莓派4B 温湿度监测 基于debian12的树莓派OS

前言 本文旨在完成通过外接温湿度传感器至树莓派使得树莓派不断记录并存储温湿度数据 这个领域有很多文章,但是部分文章已经缺乏了时效性,在最新系统不适用,本文目前适用 硬件 硬件连接 温湿度传感器常选用DHT11和DHT22,淘宝…

HelpLook AI 升级!一键生成SEO设置关键要素

| 现代SEO营销为何选择与AI同行 众多企业面临SEO优化日趋复杂的挑战,投入的时间和资源不断攀升。然而,HelpLook利用AI技术,一键完成SEO关键词和描述的生成,无需额外付费或繁琐操作,轻松提升网站曝光和点击率&#xff…