百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

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

ccwgpt 2024-10-26 08:44 43 浏览 0 评论

关注并星标

从此不迷路

计算机视觉研究院


公众号IDComputerVisionGzq

学习群扫码在主页获取加入方式

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

计算机视觉研究院专栏

作者:Edison_G

今天分享的研究者提出了一种基于最先进的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运行。为此,一些研究人员提出了参数较少、结构较轻的网络结构,如MobileNet和ShuffleNet,以取代原有的骨干网络,从而在移动设备和边缘设备上实现更好的实时性能,但要牺牲一定的精度。在今天分享中,研究者的目标是设计一种具有良好精度并可以在边缘设备上实时运行的物体检测器。

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

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

转载请联系本公众号获得授权


计算机视觉研究院学习群等你加入!


ABOUT

计算机视觉研究院


计算机视觉研究院主要涉及深度学习领域,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。研究院接下来会不断分享最新的论文算法新框架,我们这次改革不同点就是,我们要着重”研究“。之后我们会针对相应领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!


VX:2311123606



??






相关推荐

十分钟让你学会LNMP架构负载均衡(impala负载均衡)

业务架构、应用架构、数据架构和技术架构一、几个基本概念1、pv值pv值(pageviews):页面的浏览量概念:一个网站的所有页面,在一天内,被浏览的总次数。(大型网站通常是上千万的级别)2、u...

AGV仓储机器人调度系统架构(agv物流机器人)

系统架构层次划分采用分层模块化设计,分为以下五层:1.1用户接口层功能:提供人机交互界面(Web/桌面端),支持任务下发、实时监控、数据可视化和报警管理。模块:任务管理面板:接收订单(如拣货、...

远程热部署在美团的落地实践(远程热点是什么意思)

Sonic是美团内部研发设计的一款用于热部署的IDEA插件,本文其实现原理及落地的一些技术细节。在阅读本文之前,建议大家先熟悉一下Spring源码、SpringMVC源码、SpringBoot...

springboot搭建xxl-job(分布式任务调度系统)

一、部署xxl-job服务端下载xxl-job源码:https://gitee.com/xuxueli0323/xxl-job二、导入项目、创建xxl_job数据库、修改配置文件为自己的数据库三、启动...

大模型:使用vLLM和Ray分布式部署推理应用

一、vLLM:面向大模型的高效推理框架1.核心特点专为推理优化:专注于大模型(如GPT-3、LLaMA)的高吞吐量、低延迟推理。关键技术:PagedAttention:类似操作系统内存分页管理,将K...

国产开源之光【分布式工作流调度系统】:DolphinScheduler

DolphinScheduler是一个开源的分布式工作流调度系统,旨在帮助用户以可靠、高效和可扩展的方式管理和调度大规模的数据处理工作流。它支持以图形化方式定义和管理工作流,提供了丰富的调度功能和监控...

简单可靠高效的分布式任务队列系统

#记录我的2024#大家好,又见面了,我是GitHub精选君!背景介绍在系统访问量逐渐增大,高并发、分布式系统成为了企业技术架构升级的必由之路。在这样的背景下,异步任务队列扮演着至关重要的角色,...

虚拟服务器之间如何分布式运行?(虚拟服务器部署)

  在云计算和虚拟化技术快速发展的今天,传统“单机单任务”的服务器架构早已难以满足现代业务对高并发、高可用、弹性伸缩和容错容灾的严苛要求。分布式系统应运而生,并成为支撑各类互联网平台、企业信息系统和A...

一文掌握 XXL-Job 的 6 大核心组件

XXL-Job是一个分布式任务调度平台,其核心组件主要包括以下部分,各组件相互协作实现高效的任务调度与管理:1.调度注册中心(RegistryCenter)作用:负责管理调度器(Schedule...

京东大佬问我,SpringBoot中如何做延迟队列?单机与分布式如何做?

京东大佬问我,SpringBoot中如何做延迟队列?单机如何做?分布式如何做呢?并给出案例与代码分析。嗯,用户问的是在SpringBoot中如何实现延迟队列,单机和分布式环境下分别怎么做。这个问题其实...

企业级项目组件选型(一)分布式任务调度平台

官网地址:https://www.xuxueli.com/xxl-job/能力介绍架构图安全性为提升系统安全性,调度中心和执行器进行安全性校验,双方AccessToken匹配才允许通讯;调度中心和执...

python多进程的分布式任务调度应用场景及示例

多进程的分布式任务调度可以应用于以下场景:分布式爬虫:importmultiprocessingimportrequestsdefcrawl(url):response=re...

SpringBoot整合ElasticJob实现分布式任务调度

介绍ElasticJob是面向互联网生态和海量任务的分布式调度解决方案,由两个相互独立的子项目ElasticJob-Lite和ElasticJob-Cloud组成。它通过弹性调度、资源管控、...

分布式可视化 DAG 任务调度系统 Taier 的整体流程分析

Taier作为袋鼠云的开源项目之一,是一个分布式可视化的DAG任务调度系统。旨在降低ETL开发成本,提高大数据平台稳定性,让大数据开发人员可以在Taier直接进行业务逻辑的开发,而不用关...

SpringBoot任务调度:@Scheduled与TaskExecutor全面解析

一、任务调度基础概念1.1什么是任务调度任务调度是指按照预定的时间计划或特定条件自动执行任务的过程。在现代应用开发中,任务调度扮演着至关重要的角色,它使得开发者能够自动化处理周期性任务、定时任务和异...

取消回复欢迎 发表评论: