热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

EdgeYOLO学习笔记

EdgeYOLO学习笔记EdgeYOLO
EdgeYOLO学习笔记

EdgeYOLO: An Edge-Real-Time Object Detector

Abstract

本文基于最先进的YOLO框架,提出了一种高效、低复杂度、无锚的目标检测器,该检测器可以在边缘计算平台上实时实现。为了有效抑制训练过程中的过拟合,我们开发了一种增强的数据增强方法,并设计了混合随机损失函数来提高小目标的检测精度。在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)的要求。如图1所示,我们还为计算能力较低的边缘计算设备设计了更轻、参数更少的模型,也表现出了更好的性能。我们的源代码、超参数和模型权重都可以在https://github.com/LSH9832/edgeyolo上找到。

Key Words: Anchor-free, edge-real-time, object detector, hybrid random loss

image-20230227200808924

1 Introduction

随着计算硬件性能的不断提高,基于深度神经网络的计算机视觉技术在近十年得到了迅速发展,其中目标检测是自主智能系统[1]应用的重要组成部分。目前,主流的目标检测策略有两种。一种是以R-CNN系列[2,5]为代表的两阶段策略,另一种是以YOLO[9-11]为最流行的框架之一的一阶段策略。对于两阶段策略,在第一阶段采用启发式方法或区域建议生成方法获得多个候选盒,然后在第二阶段对这些候选盒进行筛选、分类和回归。单阶段策略以端到端的方式给出结果,其中目标检测问题转化为全局回归问题。全局回归不仅能够同时为多个候选框分配位置和类别,而且能够使模型更清晰地分离对象和背景。

在常见对象检测数据集(如MS COCO2017[3])上,使用两阶段策略的模型比使用一阶段策略的模型表现稍好。然而,由于两阶段框架的内在局限性,它远远不能满足传统计算设备上的实时性要求,在大多数高性能计算平台上也可能面临同样的情况。相比之下,单级目标检测器可以在实时指标和性能之间保持平衡。因此,它们更受到研究人员的关注,YOLO系列算法以高速迭代更新。从YOLOv1到YOLOv3[9-11]的更新主要是对底层框架结构的改进,之后的YOLO主流版本大多侧重于提高精度和推理速度。此外,他们的优化测试平台主要是具有高性能gpu的大型工作站。然而,他们最先进的模型通常在这些边缘计算设备上以令人不满意的低FPS运行。为此,一些研究人员提出了参数更少、结构更轻的网络结构,如MobileNet和ShuffleNet,以取代原有的骨干网,从而在移动设备和边缘设备上获得更好的实时性,但牺牲了一些精度。在本文中,我们的目标是设计一个具有良好精度的对象检测器,可以实时运行在边缘设备上。

本文的主要贡献如下:

i)设计了一种无锚目标检测器,该检测器可在MS COCO2017数据集上实时运行在边缘设备上,AP精度为50.6%;

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

iii)在我们的模型中使用可以重新参数化的结构,以减少推理时间;

iv)设计损失函数以提高对小目标的精度

2 Related Work


2.1 Anchor-free Object Detector

自YOLOv1问世以来,YOLO系列在实时目标检测领域长期处于领先地位。还有一些其他优秀的检测器,如SSD [4], FCOS[15]等。在测试目标检测任务中的FPS时,以往的研究大多只计算模型推断的时间成本,而一个完整的目标检测任务包含预处理、模型推断和后处理三个部分。由于预处理可以在视频流中完成,因此在计算目标检测的FPS时,需要考虑后处理的时间成本。在高性能GPU工作站或服务器上,预处理和后处理的时间只占很小的比例,而在边缘计算设备上,其延迟时间甚至是其十倍以上。因此,减少后处理计算可以显著提高边缘计算设备的速度。当使用基于锚点的策略时,后处理中的时间延迟几乎与每个网格单元的锚点数量成正比。基于锚的YOLO系列通常为每个网格单元分配3个锚。与基于锚点的检测框架相比,无锚点检测在后处理部分可以节省一半以上的时间

为了保证检测器在边缘计算设备上的实时性,我们选择构建一个基于无锚策略的目标检测器。目前无锚检测器主要有两种类型,一种是基于锚点的检测器,另一种是基于关键点的检测器。在本文中,我们采用了基于锚点的范式

2.2 Data Augmentation

数据增强是神经网络训练中一个重要的数据处理步骤。合理使用数据增强方法可以有效缓解模型过拟合。对于图像数据集,几何增强(随机裁剪、旋转、镜像、缩放等)和光度增强(HSV和亮度调整)通常应用于单个图像。这些基本增强方法通常用于多图像混合和拼接之前或之后。目前主流的数据增强技术,如Mosaic[18]、Mixup[7]、CopyPaste[17]等,通过不同的方法将多张图片的像素信息放在同一张图片中,丰富图像信息,降低过拟合概率。

如图2(b)所示,我们设计了一种更加灵活和强大的组合增强方法,进一步保证了输入数据的丰富性和有效性。

image-20230227201459581

2.3 Model Reduction

通过模型约简,降低了计算成本,可以有效提高模型推理速度。模型约简方法可分为有损约简和无损约简两类。有损缩减通常通过减少网络层数和信道数来构建更小的网络。无损缩减集成和耦合多个分支模块,通过重新参数化技术[25]构建更精简的等效模块。有损缩减通过牺牲精度来实现更快的速度,并且由于耦合结构容易降低训练效果,一般采用重参数化方法在模型训练完成后进行推理。

本文结合有损约简和无损约简方法,构建了多个不同大小的模型(如图1所示),拟合不同计算能力的边缘器件,加快了模型推断过程。

2.4 Decoupled Regression

从YOLOv1到YOLOv5[9 - 11,18,19],对于每个不同比例比的特征图,回归获得对象的位置、类别和置信度使用统一的卷积核集。一般来说,不同的任务如果关系密切,则使用相同的卷积核。然而,在数值逻辑中,对象的位置、置信度和类别之间的关系还不够密切。而且,相关实验证明,使用解耦的回归检测头[15,23]与直接统一所有任务的回归检测头相比,可以获得更好的结果,并且可以加速损失收敛。尽管如此,解耦的头部会带来额外的推断成本。作为改进,我们设计了一种更轻的解耦头,同时考虑了模型的推理速度和精度

2.5 Small Object Detecting Optimization

自目标检测研究开始以来,小目标检测问题一直受到广泛关注。随着物体在图像中的比例减少,用于表达物体的像素信息也会减少。大物体往往比小物体占用几十倍甚至上百倍的信息,小物体的检测精度往往明显低于大物体。而且,这种差距不能通过位图图像的属性来消除。此外,研究人员发现,在训练[14]时,小物体在总损失中所占的比例总是较小。

为了提高小目标的检测效果,以往的研究提出了以下方法:(a)复制小目标,并随机放置在图像的其他位置,以增加数据增强过程中小目标的训练数据样本,称为复制增强[14]。(b)对图像进行缩放和拼接,将原始图像中较大的物体放大为较小的物体。©损失函数通过增加小物体损失的比例[8],使其更加关注小物体。

由于使用方法(a)处理的图像存在尺度不匹配和背景不匹配的问题,我们仅参考方法(b)和方法©来优化训练过程。我们的数据增强中加入了缩放和拼接方法,并重新设计了损失函数,可以有效提高中小目标的检测和模型的整体精度。

3 Approach


3.1 Enhanced-Mosaic & Mixup

许多实时目标检测器在训练过程中使用Mosaic+Mixup策略进行数据增强,可以有效缓解训练过程中的过拟合情况。如图3(a)和(b)所示,有两种常见的组合方法,当数据集中的单幅图像有相对足够的标签时,它们表现良好。由于数据论证中的随机过程,在图3(a)中,当标签空间有响应时,数据加载器可能会提供没有有效对象的图像,这种情况的概率随着每张原始图像中标签数量的减少而增加

image-20230227202209213

我们设计了如图3©所示的数据增强结构。首先,我们对多组图像使用Mosaic方法,可以根据数据集中单张图片平均标签数量的丰富度来设置组数。然后,利用Mixup方法将最后的简单处理图像与这些经过马赛克处理的图像进行混合。在这些步骤中,我们最后一个图像的原始图像边界在变换后最终输出图像的边界内。这种数据增强方法有效地增加了图像的丰富度以缓解过拟合,并确保输出图像必须包含足够的有效信息

3.2 Lite-Decoupled Head

首先在FCOS[15]中提出了图4中的解耦头,然后应用于其他无锚目标探测器,如YOLOX[23]。最后几层采用解耦结构可以加快网络收敛速度,提高回归性能。

由于解耦头采用分支结构,导致额外的推理成本,因此提出了高效解耦头[20],其推理速度更快,将中间3×3卷积层数减少到只有一层,同时保持与输入特征图相同的较大通道数。然而,在我们的实验测试中,这种额外的推断成本随着通道和输入大小的增加而变得更加明显。因此,我们设计了一个更轻的解耦头部,具有更少的通道和卷积层。此外,我们将隐式表示层[24]添加到所有最后的卷积层,以获得更好的回归性能。采用重新参数化的方法,将隐式表示层集成到卷积层中,以降低推理成本。最后的卷积层盒和置信度回归也合并,使模型可以进行推理与高并行计算。

image-20230227202801046

3.3 Staged Loss Function

对于目标检测,损失函数一般可以写成如下形式

image-20230227202851079

其中Lcls、Liou、Lobj、L∆L_cls、L_iou、L_obj、L_∆LclsLiouLobjL为分类损失、IOU损失、对象损失和调控损失,α、λ、µ、ζα、λ、µ、ζαλµζ为超参数。在实验中,我们将训练过程分为三个阶段。

在第一阶段,我们采用一种最常见的损失函数配置:gIOU损失为IOU损失,分类损失和对象损失为平衡交叉熵损失,调节损失设为零。在最后几个支持数据增强的时代,培训过程进入了第二个阶段将分类损失和目标损失的损失函数替换为混合随机损失

image-20230227203220745

其中p代表预测结果,t代表ground truth, r是0到1之间的随机数。对于一个图像中的所有结果,我们有这个

image-20230227203237666

这表明小物体的精度和总精度之间有更好的平衡。第三阶段,我们关闭数据扩充,将L1损耗作为我们的调节损耗,将gIOU损耗替换为cIOU损耗。下一节将介绍更多细节。

4 Experiments

image-20230227203451501

image-20230227203500999

image-20230227203557556

image-20230227203618595

image-20230227203633847

image-20230227203646244

image-20230227203659493

5 Conclusion

我们提出了一种边缘实时无锚的一级检测器EdgeYOLO,其代表性结果如图5和图6所示。实验表明,EdgeYOLO可以在边缘设备上实时高精度运行,对小物体的检测能力得到了进一步提高。由于EdgeYOLO采用无锚结构,降低了设计复杂度和计算复杂度,在边缘设备上的部署更加友好。此外,我们相信该框架可以扩展到其他像素级识别任务,如实例分割。在未来的工作中,我们将进一步提高框架对小目标的检测精度,并对高效优化进行探索。


推荐阅读
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
  • 本文旨在探讨Swift中的Closure与Objective-C中的Block之间的区别与联系,通过定义、使用方式以及外部变量捕获等方面的比较,帮助开发者更好地理解这两种机制的特点及应用场景。 ... [详细]
  • Python3爬虫入门:pyspider的基本使用[python爬虫入门]
    Python学习网有大量免费的Python入门教程,欢迎大家来学习。本文主要通过爬取去哪儿网的旅游攻略来给大家介绍pyspid ... [详细]
  • 使用Matlab创建动态GIF动画
    动态GIF图可以有效增强数据表达的直观性和吸引力。本文将详细介绍如何利用Matlab软件生成动态GIF图,涵盖基本代码实现与高级应用技巧。 ... [详细]
  • 吴石访谈:腾讯安全科恩实验室如何引领物联网安全研究
    腾讯安全科恩实验室曾两次成功破解特斯拉自动驾驶系统,并远程控制汽车,展示了其在汽车安全领域的强大实力。近日,该实验室负责人吴石接受了InfoQ的专访,详细介绍了团队未来的重点方向——物联网安全。 ... [详细]
  • 本文将深入探讨 Unreal Engine 4 (UE4) 中的距离场技术,包括其原理、实现细节以及在渲染中的应用。距离场技术在现代游戏引擎中用于提高光照和阴影的效果,尤其是在处理复杂几何形状时。文章将结合具体代码示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 深入解析国内AEB应用:摄像头和毫米波雷达融合技术的现状与前景
    本文作者程建伟,武汉极目智能技术有限公司CEO,入选武汉市“光谷3551人才计划”。文章详细探讨了国内自动紧急制动(AEB)系统中摄像头与毫米波雷达融合技术的现状及未来前景。通过分析当前技术的应用情况、存在的挑战以及潜在的解决方案,作者指出,随着传感器技术的不断进步和算法优化,AEB系统的性能将大幅提升,为交通安全带来显著改善。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 【图像分类实战】利用DenseNet在PyTorch中实现秃头识别
    本文详细介绍了如何使用DenseNet模型在PyTorch框架下实现秃头识别。首先,文章概述了项目所需的库和全局参数设置。接着,对图像进行预处理并读取数据集。随后,构建并配置DenseNet模型,设置训练和验证流程。最后,通过测试阶段验证模型性能,并提供了完整的代码实现。本文不仅涵盖了技术细节,还提供了实用的操作指南,适合初学者和有经验的研究人员参考。 ... [详细]
  • 中国学者实现 CNN 全程可视化,详尽展示每次卷积、ReLU 和池化过程 ... [详细]
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
  • 浅层神经网络解析:本文详细探讨了两层神经网络(即一个输入层、一个隐藏层和一个输出层)的结构与工作原理。通过吴恩达教授的课程,读者将深入了解浅层神经网络的基本概念、参数初始化方法以及前向传播和反向传播的具体实现步骤。此外,文章还介绍了如何利用这些基础知识解决实际问题,并提供了丰富的实例和代码示例。 ... [详细]
  • 本文介绍了在 iOS 开发中设置图片和视图圆角的几种方法,包括通过 layer 设置圆角、使用贝塞尔曲线和 Core Graphics 框架,以及使用 CAShapeLayer 和 UIBezierPath。每种方法都有其优缺点,适用于不同的场景。 ... [详细]
  • 理工科男女不容错过的神奇资源网站
    十一长假即将结束,你的假期学习计划进展如何?无论你是在家中、思念家乡,还是身处异国他乡,理工科学生都不容错过一些神奇的资源网站。这些网站提供了丰富的学术资料、实验数据和技术文档,能够帮助你在假期中高效学习和提升专业技能。 ... [详细]
author-avatar
kingjade999
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有