DAMO-YOLO:实时目标检测设计的报告

ReadPaperhttps://readpaper.com/pdf-annotate/note?pdfId=4748421678288076801¬eId=1920373270663763712 

Abstract 

在本报告中,我们提出了一种快速准确的目标检测方法,称为DAMO-YOLO,它比最先进的YOLO系列实现了更高的性能。DAMO-YOLO 通过一些新技术从 YOLO 扩展,包括神经架构搜索 (NAS)、高效的重新参数化广义 FPN (RepGFPN)、具有 AlignedOTA 标签分配的轻量级头和蒸馏增强。特别是,我们使用 MAE-NAS,一种由最大熵原理指导的方法,在低延迟和高性能约束下搜索我们的检测主干,生成具有空间金字塔池和焦点模块的类似 ResNet / CSP 的结构。在颈部和头部的设计中,我们遵循“大颈部、小头部”的规则。导入具有加速后融合的广义FPN构建检测器颈部,并通过高效的层聚合网络(ELAN)和重新参数化升级其CSPNet。然后我们研究检测器头部大小会如何影响检测性能,发现只有一个任务投影层的重颈部会产生更好的结果。此外,提出了AlignedOTA来解决标签分配中的错位问题。并引入蒸馏模式以将性能提高到更高的级别。基于这些新技术,我们构建了一套不同尺度的模型,以满足不同场景的需求。对于一般行业要求,我们提出了 DAMO-YOLO-T/S/M/L。它们可以在COCO上实现43.6/47.7/50.2/51.9 mAP,在T4 GPU上延迟分别为2.78/3.83/5.62/7.95 ms。此外,对于计算能力有限的边缘设备,我们还提出了DAMO-YOLO-Ns/Nm/Nl轻量级模型。它们可以在COCO上实现32.3/38.2/40.5 mAP,在X86-CPU上延迟为4.08/5.05/6.69 ms。我们提出的通用和轻量级模型在各自的应用场景上都优于其他 YOLO 系列模型。该代码可在 https://github.com/tinyvision/damo-yolo 获得。

 1. Introduction

最近,研究人员在巨大的进展中开发了对象检测方法[1,9,11,23,24,27,33]。虽然该行业追求具有实时约束的高性能目标检测方法,但研究人员专注于设计具有高效网络架构 [4,16,17,29,30] 和高级训练阶段的一级检测器 [1,22–24,26]。特别是YOLOv5/6/7[18,32,34]、YOLOX[9]和PP-YOLOE[38]在COCO上取得了显著的AP-Latency权衡,使得YOLO系列目标检测方法在工业中得到了广泛的应用。

尽管目标检测取得了很大进展,但仍有一些新技术可以进一步提高性能。首先,网络结构在目标检测中起着至关重要的作用。暗网在 YOLO 历史 [1, 9, 24- 26, 32] 的早期阶段占有主要地位。最近,一些作品调查了其他有效的网络用于它们的检测器,即 YOLOv6 [18] 和 YOLOv7。但是,这些网络仍然是手动设计的。由于神经架构搜索 (NAS) 的发展,NAS 技术 [4, 16, 30] 可以找到许多对检测友好的网络结构,这与以前的手动设计的网络相比具有很强的优越性。因此,我们利用 NAS 技术并将 MAE-NAS [30]1 导入我们的 DAMOYOLO。MAE-NAS 是一种启发式和无训练神经架构搜索方法,没有 supervised 依赖,可用于在不同尺度上存档主干。它可以生成具有空间金字塔池化和焦点模块的类似 ResNet / CSP 的结构。

其次,检测器在高级语义和低级空间特征之间学习足够的融合信息至关重要,这使得检测器颈部成为整个框架的重要组成部分。在其他著作[10,17,31,36]中也讨论了颈部的重要性。特征金字塔网络(FPN)[10]已被证明可以有效地融合多尺度特征。广义FPN (GFPN)[17]通过一种新的女王融合改进了FPN。在DAMO-YOLO,我们设计了一个重新参数化的广义FPN (RepGFPN)。它基于 GFPN,但涉及加速后融合、高效层聚合网络 (ELAN) 和重新参数化。

为了在延迟和性能之间取得平衡,我们进行了一系列实验来验证检测器颈部和头部的重要性,发现“大颈部、小头部”会导致更好的性能。因此,我们在以前的 YOLO 系列工作中丢弃了检测器头 [1, 9, 24-26, 32, 38],但只留下任务投影层。保存的计算被移动到颈部部分。除了任务投影模块外,头部没有其他训练层,因此我们将检测器头命名为 ZeroHead。结合我们的 RepGFPN,ZeroHead 实现了最先进的性能,我们相信这将为其他研究人员提供一些见解。

此外,与静态标签分配[43]相比,OTA[8]和TOOD[7]等动态标签分配得到了广泛的宣称,取得了显著的改进。然而,这些工作仍未解决错位问题。我们提出了一种名为 AlignOTA 的更好解决方案来平衡分类和回归的重要性,这可以部分解决这个问题。

最后,知识蒸馏 (KD) 已被证明在通过更大的模型监督来增强小型模型方面是有效的。该技术完全符合实时目标检测的设计。然而,在 YOLO 系列上应用 KD 有时并不能取得显着的改进,因为超参数很难优化,并且特征携带太多噪声。在我们的 DAMO-YOLO 中,我们首先在所有大小的模型上再次进行蒸馏,尤其是在小型模型上。

如图1所示,通过上述改进,我们提出了一系列通用和轻量级的模型,大大超过了现有技术。总之,贡献有三方面:

1.本文提出了一种新的检测器DAMOYOLO,它扩展了YOLO,但有了更多的新技术,包括MAE-NAS主干、RepGFPN颈部、ZeroHead、AlignedOTA和蒸馏增强。

2. DAMO-YOLO 在通用类别和轻量级类别的公共 COCO 数据集上优于最先进的检测器(例如 YOLO 系列)。

3.DAMO-YOLO (tiny/small/medium)提出了一套不同尺度的模型来支持不同的部署。代码和预训练模型在 https://github.com/tinyvision/damooyolo 上发布,支持 ONNX 和 TensorRT。

 图 2. MAE-NAS 的不同构建块。(a) MobBlock是MobileNetV3块的变体,是DAMO-YOLO中轻量级模型的基本块。(b) ResBlock 源自 ResNet。DMO-YOLO-S 和 DMO-YOLO-T 建立在它之上。(c) CSPBlock来源于CSPNet,由于其在深度网络中的优越性能,它被用作DAMO-YOLO-M和DAMO-YOLO-L模型中的基本块。

表3。颈部深度和宽度的消融研究。“深度”表示融合块瓶颈上的重复时间。“Width”表示特征图的通道维度。

2. DAMO-YOLO

在本节中,我们将详细介绍DAMOYOLO的每个模块,包括神经架构搜索(NAS)主干、高效的重新参数化广义FPN (RepGFPN)颈部ZeroHeadAlignedOTA标签分配蒸馏增强。DAMO-YOLO的整个框架如图3所示。

图3。DAMO-YOLO网络架构概述。1) MAE-NAS作为骨干提取多尺度特征图;2)高效RepGFPN作为颈部,对高级语义和底层空间特征进行细化和融合;3)提出了ZeroHead,它只为每个损失包含一个任务投影层。 

2.1. MAE-NAS Backbone

以前,在实时场景中,设计师依靠Flops-MAP曲线作为评估模型性能的简单方法。然而,模型的失败和延迟之间的关系不一定是一致的。为了提高模型在工业部署中的实际性能,DAMO-YOLO在设计过程中优先考虑延迟-MAP曲线。

基于这一设计原则,我们使用MAE-NAS[30]在不同的延迟预算下获得最佳网络。MAE-NAS 构建了一个基于信息论的替代代理,以在没有训练的情况下对初始化网络进行排名。因此,搜索过程只需要几个小时,远低于训练成本。MAE-NAS提供了几个基本搜索块,如Mob-block、Res-block和CSP-block,如图2所示。Mobblock是MobileNetV3[14]块的变体,Res-block来源于ResNet[12],CSP-block来源于CSPNet[35]。完整的支持块列表可以在 MAE-NAS 存储库 2 中找到。

我们发现,在不同尺度的模型中应用不同类型的块可以更好地权衡实时推理。表1列出了CSPDarknet和我们的MAE-NAS骨干在不同尺度下的性能比较。在此表中,“MAE-Res”表示我们在MAENAS主干中应用Res-block,“MAE-CSP”表示我们在其中应用CSPblock。此外,“S”(Small)和“M”(Medium)代表不同尺度的主干。如表1所示,

MAE-NAS技术获得的MAE-CSP在速度和精度方面都优于手动设计的CSP-Darknet,证明了MAE-NAS技术的优越性。此外,从表1可以观察到,在较小的模型上使用Res-block可以在性能和速度之间取得比CSP-block更好的权衡,而使用CSP-block可以在更大更深的网络上显著优于Resblock。因此,我们在最终设置中的“T”(Tiny)和“S”模型中使用“MAE-Res”,在“M”和“L”模型中使用“MAE-CSP”。在处理计算能力或 GPU 有限的场景时,拥有满足计算速度和速度严格要求的模型至关重要。为了解决这个问题,我们设计了一系列使用 Mob-Block 的轻量级模型。Mob-block来源于MobleNetV3[14],可以显著减少模型计算,对CPU设备友好。

2.2.高效RepGFPN

特征金字塔网络旨在聚合从主干中提取的不同分辨率的特征,这已被证明是目标检测的关键有效部分[10,31,36]。传统的FPN[10]引入了一种自顶向下的路径来融合多尺度特征。考虑到单向信息流的局限性,PAFPN[36]增加了一个额外的自底向上路径聚合网络,但计算成本更高。BiFPN [31] 删除了只有一个输入边的节点,并在同一级别上从原始输入中添加 skiplink。在[17]中,提出了广义FPN (GFPN)作为颈部,实现了SOTA性能,因为它可以充分交换高级语义信息和低级空间信息。在 GFPN 中,多尺度特征在前一层和当前层的两级特征融合。更重要的是,log2(n) skip-layer 连接提供了更有效的信息传输,可以扩展到更深的网络。当我们在现代 YOLO 系列模型中直接用 GFPN 替换修改后的 PANet 时,我们实现了更高的精度。然而,GFPN-的延迟基于模型远高于基于修改panet的模型。通过分析GFPN的结构,其原因可以归结为以下几个方面:1)不同尺度的特征图共享相同的信道维数;2)女王融合操作不能满足实时检测模型的要求;3)基于卷积的跨尺度特征融合效率不高。

基于 GFPN,我们提出了一种新颖的 Efficient-RepGFPN 来满足实时目标检测的设计,主要包括以下见解:1)由于不同尺度特征图的 FLOP 差异很大,在有限的计算成本约束下很难控制每个尺度特征图共享的相同维度通道。因此,在我们的颈部的特征融合中,我们采用了不同通道尺寸不同尺度特征图的设置。比较了相同和不同通道的性能以及颈部深度和宽度权衡的精度优势,表3显示了结果。我们可以看到,通过灵活控制不同尺度的通道数,我们可以达到比在所有尺度上共享相同的通道更高的精度。当深度等于 3 且宽度等于 (96, 192, 384) 时,可以获得最佳性能。2) GFPN通过女王融合增强了特征交互,但它也带来了大量额外的上采样和下采样算子。比较了这些上采样和下采样算子的优点,结果如表4所示。我们可以看到,额外的上采样算子导致延迟增加0.6ms,而精度提高仅为0.3mAP,远远小于额外的下采样算子的好处。因此,在实时检测的约束下,我们删除了女王融合的额外上采样操作。3)在特征融合块中,我们首先将原始的基于3x3的卷积特征融合替换为CSPNet,得到4.2 mAP增益。之后,我们通过结合高效层聚合网络(ELAN)[34]的重新参数化机制和连接来升级CSPNet。在不带来额外的巨大计算负担的情况下,我们实现了更高的精度。比较结果如表5所示。

 

2.3. ZeroHead and AlignOTA 

在目标检测的最新进展中,解耦头被广泛使用[9,18,38]。使用解耦的头部,这些模型实现了更高的 AP,而延迟显着增加。为了权衡延迟和性能,我们进行了一系列实验来平衡颈部和头部的重要性,结果如表6所示。在实验中,我们发现“大颈部、小头部”会带来更好的性能。因此,我们在以前的作品 [9, 18, 38] 中丢弃了解耦的头部,但只留下任务投影层,即用于分类的线性层和用于回归的线性层。我们将头部命名为 ZeroHead,因为我们的头部没有其他训练层。ZeroHead 可以最大程度地节省大量 RepGFPN 颈部的计算。值得注意的是,ZeroHead本质上可以被认为是耦合头,这与其他作品中的解耦头有很大的不同[9,18,32,38]。在头部后的损失中,在GFocal[20]之后,我们使用质量焦点损失(QFL)进行分类监督,并使用分布焦点损失(DFL)和GIOU损失进行回归监督。QFL 鼓励学习分类和定位质量的联合表示。DFL 通过将位置建模为一般分布来提供更多信息和更精确的边界框估计。提出的DAMO-YOLO的训练损失公式为:

除了头部和损失,标签分配是检测器训练期间的至关重要的组件,负责将分类和回归目标分配给预定义的锚点。最近,OTA[8]和TOOD[7]等动态标签分配得到了广泛的宣称,与静态标签分配[43]相比,取得了显著的改进。动态标签分配方法根据预测和基本事实之间的分配成本分配标签,例如OTA[8]。虽然分类和回归在损失中的对齐已被广泛研究 [7, 20],但在目前的工作中很少提及标签分配中的分类和回归之间的对齐。分类和回归的错位是静态分配方法中的一个常见问题[43]。虽然动态分配缓解了这个问题,但由于分类和回归损失的不平衡,如CrossEntropy和IoU Loss[40]仍然存在。为了解决这个问题,我们将焦点损失 [22] 引入分类成本,并使用预测框和地面实况框的 IoU 作为软标签,公式如下:

 

 

通过这个公式,我们能够为每个目标选择分类和回归对齐样本。除了对齐的分配成本,在 OTA [8] 之后,我们从全局角度形成对齐分配成本的解决方案。我们将标签分配命名为 AlignOTA。标签分配方法的比较如表7所示。我们可以看到AlignOTA优于所有其他标签分配方法。 

2.4. Distillation Enhancement(蒸馏增强)

知识蒸馏(KD)[13]是进一步提高口袋尺寸模型的性能的有效方法。然而,在 YOLO 系列上应用 KD 有时并不能取得显着的改进,因为超参数很难优化,并且特征携带太多噪声。在 DAMO-YOLO 中,我们首先在所有大小的模型上再次进行蒸馏,尤其是在小尺寸上。我们采用基于特征的蒸馏来传递黑暗知识,可以提取中间特征图[15]中的识别和定位信息。我们进行快速验证实验,为我们的DAMO-YOLO选择合适的蒸馏方法。结果如表 8 所示。我们得出结论,CWD 更适合我们的模型,而 MGD 比模仿复杂超参数更差,使其不够通用。

我们提出的蒸馏策略分为两个阶段:1)我们的老师在第一阶段(284 个 epoch)提取学生,在强大的马赛克域上。面对具有挑战性的增强数据分布,学生可以在教师指导下平滑地提取信息。2) 学生在第二阶段没有马赛克域上微调自己(16 个 epoch)。我们在这个阶段不采用蒸馏的原因是,在如此短的时间内,当老师想要将学生拉在一个奇怪的领域(即没有马赛克领域)时,老师的经验会损害学生的表现。长期蒸馏会削弱损伤,但成本很高。因此,我们选择权衡来使学生独立。

在 DAMO-YOLO 中,蒸馏配备了两个高级增强:1)对齐模块。一方面,它是一个线性投影层,使学生特征适应与教师相同的分辨率 (C, H, W )。另一方面,与自适应相比,强迫学生直接逼近教师特征和学生特征会带来很小的收益,为了削弱真实值差异带来的效果。在减去平均值后,每个通道的标准偏差将作为 KL 损失中的温度系数发挥作用。

 

 

 4. Comparison with the SOTA

DMO-YOLO 发布了一系列通用模型和轻量级模型,同时满足一般场景和资源有限的边缘场景。为了评估 DAMO-YOLO 通用模型相对于其他最先进模型的性能,我们使用 TensorRT-FP16 推理引擎对 T4-GPU 进行了比较分析。结果如表9所示,表明DAMO-YOLO的一般模型在精度和速度方面都优于竞争对手。此外,我们提出的蒸馏技术显着提高了准确性。为了评估轻量级模型的性能,我们使用 Openvino 作为推理引擎对 Intel-8163 CPU 进行了比较分析。如表2所示,DAMO-YOLO的轻量级模型取得了实质性的领先优势,在速度和准确性方面都大大超过了竞争对手。

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

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

相关文章

红帆OA SQL注入漏洞复现

0x01 产品简介 红帆iOffice.net从最早满足医院行政办公需求(传统OA),到目前融合了卫生主管部门的管理规范和众多行业特色应用,是目前唯一定位于解决医院综合业务管理的软件,是最符合医院行业特点的医院综合业务管理平…

Lnton羚通关于如何使用nanoPC-T4 安装OpenCV?

nanoPC-T4 安装 OpenCV Note: OpenCV has been pre-installed in FriendlyCore/FriendlyDesktop (Version after 201905) and does not require manual installation. Please download the latest FriendlyCore/FriendlyDesktop Image file from the following URL: http://do…

深度分析纳斯达克上市公司慧择的竞争优势和投资价值

来源:猛兽财经 作者:猛兽财经 一、保险行业的现状、竞争与机遇 在疫情期间,很多行业的经营理念与经营方式,甚至客户行为、客户需求都发生了变化,进而催生出新的机遇。保险行业亦是如此,受疫情影响&#xf…

腾讯开启2024校招,主要招聘5大类岗位

近日,腾讯的大动作一个接一个,前脚刚公布2023上半年财报,后脚就开启了2024校招,不得不让人感叹腾讯真速度! 此次招聘对象为毕业时间在2023年9月至2024年8月期间的2024届应届毕业生,覆盖北上广深等多个城市…

环境与能源创新专题:地级市绿色创新、碳排放与环境规制数据

数据简介:推动绿色发展,促进人与自然和谐共生是重大战略举措。绿色发展强调“绿水青山就是金山银山”,人与自然和谐共生重在正确处理生态环境保护与经济发展的关系。在着力于实现绿色发展的过程中,绿色创新是绿色发展的重要驱动因…

WPF的CheckBox中的三个状态

WPF的CheckBox中的三个状态 CheckBox控件和RadioButton控件是继承自ToggleButton类,这意味着用户可切换他们的开关状态,其中IsChecked属性是可空的Boolean类型,这意味着该属性可以设置为true,false或null。 null值表示不确定状态…

GPU Microarch 学习笔记 [1]

WARP GPU的线程从thread grid 到thread block,一个thread block在CUDA Core上执行时,会分成warp执行,warp的颗粒度是32个线程。比如一个thread block可能有1024个线程,分成32个warp执行。 上图的CTA(cooperative thre…

Codeforces Round 893 (Div. 2)B题题解

文章目录 [The Walkway](https://codeforces.com/contest/1858/problem/B)问题建模问题分析1.分析所求2.如何快速计算每个商贩被去除后的饼干数量代码 The Walkway 问题建模 给定n个椅子,其中有m个位置存在商贩,在商贩处必须购买饼干吃,每隔…

Python程序设计——字符串处理的特殊方法

学习目标: 学习如何创建字符串使用len、min和max函数获取一个字符串的长度、串中的最大和最小的字符使用下标运算符([])访问字符串中的元素使用截取运算符str[ start:end]从较长的字符串中得到一个子串使用运算符连接两个字符串,通过*运算符复制一个字符…

快速入门vue3新特性和新的状态管理库pinia

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 Vue3.3新特性 defineOptions defineModel pinia 介绍 与 Vuex 3.x/4.x 的比较 安装 核心概念 定义…

【腾讯云Cloud Studio实战训练营】使用Cloud Studio社区版快速构建React完成点餐H5页面还原

陈老老老板🦸 👨‍💻本文专栏:生活(主要讲一下自己生活相关的内容) 👨‍💻本文简述:生活就像海洋,只有意志坚强的人,才能到达彼岸。 👨‍💻上一篇…

成集云 | 用友U8采购请购单同步钉钉 | 解决方案

源系统成集云目标系统 方案介绍 用友U8是中国用友集团开发和推出的一款企业级管理软件产品。具有丰富的功能模块,包括财务管理、采购管理、销售管理、库存管理、生产管理、人力资源管理、客户关系管理等,可根据企业的需求选择相应的模块进行集…

数据结构之队列详解(包含例题)

一、队列的概念 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操…

【Windows 常用工具系列 5 -- Selenium IDE的使用方法 】

文章目录 Selenium 介绍Selenium IDE 介绍 Selenium IDE安装Chrome 浏览器安装Selenium IDE使用 Selenium 介绍 Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。 Selenium家庭成员有三个,分别是S…

腾讯云国际站代充-阿里云ECS怎么一键迁移到腾讯云cvm?

今天主要来介绍一下如何通过阿里云国际ECS控制台一键迁移至腾讯云国际CVM。腾讯云国际站云服务器CVM提供全面广泛的服务内容。无-需-绑-定PayPal,代-充-值腾讯云国际站、阿里云国际站、AWS亚马逊云、GCP谷歌云,官方授权经销商!靠谱&#xff0…

视频汇聚集中存储EasyCVR平台调用iframe地址视频无法播放,该如何解决?

安防监控视频汇聚平台EasyCVR基于云边端一体化架构,具有强大的数据接入、处理及分发能力,可提供视频监控直播、云端录像、视频云存储、视频集中存储、视频存储磁盘阵列、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、AI算法中台智能分析无缝…

【SpringBoot】中的ApplicationRunner接口 和 CommandLineRunner接口

1. ApplicationRunner接口 用法: 类型: 接口 方法: 只定义了一个run方法 使用场景: springBoot项目启动时,若想在启动之后直接执行某一段代码,就可以用 ApplicationRunner这个接口,并实现接口…

xollam勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复

引言: 数字时代的繁荣与便捷,也孕育着各种网络安全威胁。其中,.xollam勒索病毒以其毒害性和隐蔽性引发了广泛关注。本文91数据恢复将为您深入解析.xollam勒索病毒的威胁,探讨解密方法,同时分享预防.xollam勒索病毒的关…

【Tomcat】(Tomcat 下载Tomcat 启动Tomcat 简单部署 基于Tomcat进行网站后端开发)

文章目录 Tomcat下载Tomcat启动Tomcat简单部署 基于Tomcat进行网站后端开发 Tomcat Tomcat 是一个 HTTP 服务器.HTTP 协议就是 HTTP 客户端和 HTTP 服务器之间的交互数据的格式. HTTP 服务器我们可以通过 Java Socket 来实现. 而 Tomcat 就是基于 Java 实现的一个开源免费,也是…

Synopsys EDA数字设计与仿真

搭建EDA环境 参考如下博文安装Synopsys EDA开发工具 https://blog.csdn.net/tugouxp/article/details/132255002?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22132255002%22%2C%22source%22%3A%22tugouxp%22%7D Synopsys ED…