计算机视觉研究院 | 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.hqwc.cn/news/539011.html

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

相关文章

MTK的flash_tool.exe中,“Format-Download”、“Firmware-Upgrade”和“Download”是三种不同的刷机模式

在MTK的flash_tool.exe中,“Format-Download”、“Firmware-Upgrade”和“Download”是三种不同的刷机模式。具体分析如下: Format-Download:这种模式会执行全擦除,即清除存储器中的所有数据,然后下载新的固件。这种方…

【Java并发知识总结 | 第二篇】乐观锁和悲观锁详讲

文章目录 2.乐观锁和悲观锁详讲2.1悲观锁2.2乐观锁2.3如何实现乐观锁2.3.1版本号机制2.3.2CAS算法2.3.3CAS底层 2.4乐观锁存在的问题2.4.1ABA问题(1)问题描述(2)解决 2.4.2循环时间长、开销大2.4.3只能保证一个共享变量的原子操作…

【微服务】nacos注册中心

Nacos注册中心 国内公司一般都推崇阿里巴巴的技术,比如注册中心,SpringCloudAlibaba也推出了一个名为Nacos的注册中心。 1.1.认识和安装Nacos Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在…

【Flutter 面试题】await for 如何使用?

【Flutter 面试题】await for 如何使用? 文章目录 写在前面解答补充说明完整代码示例运行结果详细说明 写在前面 🙋 关于我 ,小雨青年 👉 CSDN博客专家,GitChat专栏作者,阿里云社区专家博主,51…

想转行【高薪】自动化运维工程师?你必备的20个Python技能

自动化运维工程师主要的技能要求是Python、shell、Linux、数据库、openpyxl 库等; 如果大家的运维阶段还处于一个中级水平,那么在Linux原理和基础知识熟练掌握之后,可以对上层的应用和服务进行深入学习,其中涉及到的网络相关知识…

SpringBoot注解--08--注解@JsonInclude

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 JsonInclude注解是jackSon中最常用的注解之一,是为实体类在接口序列化返回值时增加规则的注解 1.JsonInclude用法2.JsonInclude注解中的规则有 案例需求…

基于51单片机的数控直流可调电源设计[proteus仿真]

181基于51单片机的数控直流可调电源设计[proteus仿真] 电源系统这个题目算是课程设计和毕业设计中常见的题目了,本期是一个基于51单片机的数控直流可调电源设计 需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】,赞赏任意文章 2&#xffe…

代码学习记录17

随想录日记part17 t i m e : time: time: 2024.03.12 主要内容:今天的主要内容是二叉树的第六部分,主要涉及二叉搜索树的最小绝对差 ;二叉搜索树中的众数;二叉树的最近公共祖先。 530.二叉搜索树…

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

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

SE园区综合实验(未补齐版)

实验要求: 1.局域网存在vlan10和vlan20两个业务vlan,ip网段分别对应192.168.1.0/24和192.168.2.0/24 2.业务vlan可以在所有链路上传输数据 3.sw1和sw2之间的直连链路上配置静态链路聚合实现链路冗余,并提高链路带宽 4.sw3为某接入点二次交…

windows批处理脚本(cmd指令)

一、简介 最早期的电脑系统是DOS系统,DOS系统只有一个黑漆漆的窗口,需要自己输入命令,所以学习命令是很有必要的,那么CMD命令大全是什么?直到今天的Windows系统,还是离不开DOS命令的操作。如今懂得使用windows批处理脚…

ThreadLocal基本原理

ThreadLocal基本原理 一、定义 ThreadLocal是java中所提供的线程本地存储机制,可以利用改机制将数据缓存在线程内部,该线程可以在任意时刻、任意方法中获取数据 二、底层原理 ThreadLocal底层是通过ThreadLocalMap来实现的,每个Thread对象中…