[论文阅读]DAMO-YOLO——实时目标检测设计报告

本文介绍了一种新型实时目标检测方法DAMO-YOLO,通过集成MAE-NAS、RepGFPN、ZeroHead和AlignedOTA等技术,显著提高了性能,尤其在COCO数据集上超越了YOLO系列。该方法在轻量级和通用场景下表现出色。
摘要由CSDN通过智能技术生成

DAMO-YOLO

DAMO-YOLO : A Report on Real-Time Object Detection Design
实时目标检测设计报告
论文网址:DAMO-YOLO

简读论文

这篇论文介绍了一个名为DAMO-YOLO的新型目标检测方法,相比YOLO系列的其他方法有着更好的性能。该方法的优势来自于几项新技术:

  • 使用了MAE-NAS作为骨干网络,可以自动搜索出不同延迟预算下的优化网络结构。
    MAE-NAS被称为一种启发式的、免训练的神经架构搜索方法,并且不依赖supernet,主要基于以下几点:
    1.启发式:MAE-NAS没有采用复杂的搜索算法,而是利用最大熵原理作为指导,构建了一个代理任务快速评估未训练的候选模型,可以看作是一种启发式的搜索策略。
    2.免训练:传统的NAS需要训练候选模型来获得其性能,这非常昂贵。而MAE-NAS完全免去了训练,只依赖候选模型结构即可评估和搜索,极大减少了计算成本。
    3.不依赖supernet:许多NAS方法需要先构建一个包含所有候选操作的supernet,然后在其上搜索架构。而MAE-NAS不需要构建supernet,直接从离散的候选操作中搜索模型结构,因此不依赖supernet。
    4.搜索策略:MAE-NAS为每个候选模型计算一个最大熵分数,此分数反映了模型的表示能力。然后简单地选择分数最高的模型作为最终架构。
    综上,MAE-NAS相比经典NAS方法更为简单高效,既不需要训练也不需要supernet,只依赖简单的最大熵规则来搜索,所以称其为一种启发式的、免训练的NAS方法。
  • 提出了高效的RepGFPN作为颈部,可以更好地融合不同尺度的语义和空间特征。
    RepGFPN的设计细节如下:
    1.Queen-fusion
    Queen-fusion来自于GFPN,指的是在当前层的上下采样特征图之间进行信息交互,以便在不同尺度特征图之间进行密集的信息流动。
    2.加速Queen-fusion
    原GFPN的Queen-fusion同时包含上采样和下采样操作。为了降低计算量,RepGFPN移除了额外的上采样操作,只保留了下采样操作,以此加速Queen-fusion。
    3.ELAN
    ELAN表示高效的层聚合网络连接方式。RepGFPN导入了CSPNet的连接方式,相比普通卷积可以减少参数量。并在CSPNet的基础上添加了ELAN的连接,即保留了更多的identity mapping,使信息传递更高效。
    4.重参数化
    对CSPNet模块中bottleneck结构应用重参数化操作,可以获得与大型模型相似的表示能力,同时参数量不增加。
    综上,RepGFPN相比GFPN做了以下改进:
    1.加速Queen-fusion,移除上采样
    2.引入CSPNet以减少参数量
    3.在CSPNet中应用ELAN连接以传递更多信息
    4.对CSPNet应用重参数化以增强表达能力
    因此RepGFPN相比GFPN更加高效和轻量,同时保留了GFPN强大的特征表达和信息流动能力。
  • 使用了ZeroHead,只保留每个损失函数对应的一个任务投影层,可以最大限度地节省计算开销。
  • 提出了AlignedOTA标签分配方法,可以平衡分类和回归的重要性,部分解决目标检测中的错位问题。
  • 引入了知识蒸馏技术,可以进一步提升小模型的性能。
    具体在实现上,采用的是基于特征的蒸馏,将教师模型中间层的特征图作为监督信号,迫使学生模型学习相似的特征表示,以此传递教师的知识。
    还设计了Align模块进行特征对齐,和基于channel的动态温度系数,以此增强蒸馏的效果。

    通过这些改进,DAMO-YOLO在公共COCO数据集上,无论是通用还是轻量级模型,都超过了目前状态下的YOLO系列模型。该方法提出了各种规模的系列模型,既适用于常规场景,也适用于资源受限的边缘场景。总体来说,这篇论文提出了一个扩展并优化了YOLO的新型目标检测方法DAMO-YOLO,取得了 state-of-the-art 的性能。

摘要

本文提出了一种名为DAMO-YOLO的实时目标检测方法,该方法比最先进的YOLO系列具有更高的性能。DAMO-YOLO在YOLO系列的基础上扩展了一些新技术,包括神经架构搜索(NAS),高效的重参数化通用特征金字塔网络(RepGFPN),对齐的动态标签分配(AlignedOTA)以及蒸馏增强。特别是,利用基于最大熵原理的无监督NAS方法MAE-NAS来搜索检测骨干网络,生成类似ResNet和CSPNet的结构。在设计颈部和头部时,遵循“大颈小头”的原则。导入通用特征金字塔网络,并对其进行升级以建立检测器颈部。然后发现,强大的颈部搭配仅含一个任务投影层的头部(ZeroHead中只保留每个损失函数对应的一个线性层(任务投影层),不再包含其它卷积等可训练层)可以取得更好的性能,于是设计了ZeroHead。此外,提出AlignedOTA来解决标签分配中的错位问题。最后,介绍了一种蒸馏方案来进一步提升性能。基于这些新技术,构建了不同规模的模型,在COCO数据集上均超过了YOLO系列的状态下性能。

引言

最近,研究人员在目标检测方法方面取得了巨大进展。虽然业界追求具有实时约束的高性能目标检测方法,但研究人员专注于设计具有高效网络架构和先进的单级检测器训练阶段。特别是YOLOv5/6/7,YOLOX和PP-YOLOE在COCO上实现了显着的AP-Latency权衡,使得YOLO系列目标检测方法在业界得到广泛应用。
尽管目标检测已经取得了很大的进步,但仍然可以引入新技术来进一步提高性能。首先,网络结构在目标检测中起着至关重要的作用。Darknet在 YOLO 历史的早期阶段占据主导地位。最近,一些工作研究了其他有效的检测器网络,即 YOLOv6 和 YOLOv7。然而,这些网络仍然是手动设计的。由于神经架构搜索(NAS)的发展,通过NAS技术发现了许多易于检测的网络结构,这些结构比以前手动设计的网络表现出了巨大的优越性。因此,本文利用 NAS 技术,为DAMOYOLO 引入 MAE-NAS 。 MAE-NAS 是一种启发式、免训练的神经架构搜索方法,不依赖supernet,可用于归档不同规模的主干网。它可以通过空间金字塔池化和焦点模块生成类似 ResNet/CSP 的结构。
其次,检测器学习高级语义和低级空间特征之间的融合信息至关重要,这使得检测器颈部成为整个框架的重要组成部分。其他论文中也讨论了颈部的重要性。特征金字塔网络(FPN)已被证明可以有效地融合多尺度特征。Generalized-FPN (GFPN) 通过一种新颖的queen-fusion改进了 FPN。在DAMO-YOLO中,设计了一个重新参数化的Generalized-FPN(RepGFPN)。它基于 GFPN,但涉及加速queen-fusion、高效层聚合网络 (ELAN) 和重新参数化。
为了在延迟和性能之间取得平衡,进行了一系列实验来验证探测器颈部和头部的重要性,发现“大颈部、小头部”会带来更好的性能。因此,丢弃了之前YOLO系列作品中的检测器头,只留下了一个任务投影层。保存的计算被移至颈部。除了任务投影模块之外,头部没有其他训练层,因此将检测器头部命名为 ZeroHead。与RepGFPN 相结合,ZeroHead 实现了最先进的性能。
此外,动态标签分配,例如OTA和TOOD,受到广泛好评,并且与静态标签分配相比取得了显着的改进。然而,这些工作中的错位问题仍未得到解决。本文提出了一个更好的解决方案,称为AlignOTA,来平衡分类和回归的重要性,可以部分解决问题。
最后,知识蒸馏(KD)被证明可以有效地通过更大的模型监督来提升小模型。这项技术完全符合实时目标检测的设计。然而,在YOLO系列上应用KD有时并不能取得显着的改进,因为超参数难以优化并且特征携带太多噪声。在 DAMO-YOLO 中,首先在各种规模的模型上重新实现了高效的知识蒸馏,特别是在小型模型上。
贡献:

  • 本文提出了一种名为 DAMO-YOLO 的新型检测器,它从 YOLO 扩展而来,但具有更多新技术,包括 MAE-NAS 主干、RepGFPN 颈、ZeroHead、AlignedOTA 和蒸馏增强。
  • DAMO-YOLO 在公共的 COCO 数据集上优于最先进的轻量级类别检测器(例如 YOLO 系列)。
  • DAMO-YOLO(tiny/small/medium)提供了一套不同规模的模型来支持不同的部署。代码和预训练模型发布于 DAMO-YOLO,支持 ONNX 和 TensorRT。

DAMO-YOLO

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

MAE-NAS Backbone

以前,在实时场景中,设计人员依靠 Flops-mAP 曲线作为评估模型性能的简单方法。然而,模型的flops和latency之间的关系并不一定一致。为了提高模型在工业部署中的实际性能,DAMO-YOLO在设计过程中优先考虑latency-MAP曲线。
基于这个设计原则,本文使用MAE-NAS 来获得不同latency预算下的最佳网络。 MAE-NAS 基于信息论构建替代代理,无需训练即可对初始化网络进行排名。因此,搜索过程只需要几个小时,远低于训练成本。 MAE-NAS提供了几种基本搜索块,例如Mob-block、Res-block和CSP-block,如下图所示。 Mobblock 是 MobileNetV3 块的变体,Res-block 源自 ResNet ,CSP-block 源自 CSPNet 。
在这里插入图片描述
在这里插入图片描述
实验表明,在较小的模型上使用Res-block可以比CSP-block在性能和速度之间实现更好的权衡,而在更大和更深的网络上使用CSP-block可以显着优于Resblock。因此,在最终设置中在“T”(Tiny)和“S”模型中使用“MAE-Res”,在“M”和“L”模型中使用“MAE-CSP”。
当处理计算能力有限或没有GPU的场景时,满足计算和速度严格要求的模型至关重要。为了解决这个问题,使用Mob-Block设计了一系列轻量级模型。 Mob-block源自MobleNetV3,可以显着减少模型计算量,并且对CPU设备友好。

Efficient RepGFPN

特征金字塔网络旨在聚合从主干提取的不同分辨率特征,这已被证明是目标检测的关键且有效的部分。传统的 FPN 引入了一种自上而下的路径来融合多尺度特征。考虑到单向信息流的限制,PAFPN增加了一个额外的自下而上的路径聚合网络,但计算成本较高。 BiFPN 删除只有一个输入边的节点,并在同一级别的原始输入中添加skiplink。在[Giraffedet-2022]中,提出了Generalized-FPN(GFPN)作为颈部并实现了SOTA性能,因为它可以充分交换高层语义信息和低层空间信息。在 GFPN 中,多尺度特征融合在先前层和当前层的级别特征中。更重要的是,log2(n) skip-layer连接提供了更有效的信息传输,可以扩展到更深的网络。当在现代 YOLO 系列模型上直接用 GFPN 替换改进的PANet 时,获得了更高的精度。然而,基于 GFPN 的模型的延迟远高于基于改进 PANet 的模型。通过分析GFPN的结构,原因可以归结为以下几个方面:1)不同尺度的特征图共享相同的通道维度; 2)queen-fusion的运行不能满足实时检测模型的要求; 3)基于卷积的跨尺度特征融合效率不高。
基于GFPN,本文提出了一种新颖的Efficient-RepGFPN来满足实时目标检测的设计,主要包括以下见解:1)由于不同尺度特征图的FLOPs差异较大,因此难以控制在有限计算成本的约束下,每个尺度特征图共享相同维度的通道。因此,在颈部的特征融合中,采用不同尺寸通道的不同尺度特征图的设置。比较了相同和不同通道的性能以及颈部深度和宽度权衡带来的精度优势,实验表明,通过灵活控制不同尺度的通道数量,可以获得比在所有尺度共享相同通道更高的精度。当深度等于 3、宽度等于 (96, 192, 384) 时,可获得最佳性能。 2)GFPN通过queen-fusion增强了特征交互,但也带来了大量额外的上采样和下采样算子。比较了这些上采样和下采样算子的优点,实验显示,额外的上采样算子导致延迟增加了0.6ms,而精度提升仅为0.3mAP,远远小于额外的下采样算子带来的好处。因此,在实时检测的约束下,删除了queen-fusion中额外的上采样操作。 3)在特征融合块中,首先用CSPNet替换原来的基于3x3卷积的特征融合,并获得4.2 mAP增益。随后,通过结合重新参数化机制和高效层聚合网络(ELAN)的连接来升级 CSPNet 。在不带来额外巨大计算负担的情况下,获得了更高的精度。

ZeroHead and AlignOTA

在目标检测的最新进展中,解耦头被广泛使用。通过解耦头,这些模型实现了更高的 AP,同时延迟显着增加。为了权衡延迟和性能,本文进行了一系列实验来平衡颈部和头部的重要性。从实验中发现“大脖子、小头”会带来更好的表现。因此,丢弃了之前的工作[yolox,yolov6,pp-yoloe]中的解耦头,只留下了一个任务投影层,即一个用于分类的线性层和一个用于回归的线性层。将本文的头部命名为 ZeroHead,因为本文的头部没有其他训练层。 ZeroHead可以最大程度地节省RepGFPN颈部的计算量。值得注意的是,ZeroHead本质上可以被认为是一个耦合头,这与其他作品中的解耦头有很大的不同。在head后的损失中,遵循GFocal ,本文使用Quality Focal Loss(QFL)进行分类监督,使用Distrivution Focal Loss(DFL)和GIOU损失进行回归监督。 QFL 鼓励学习分类和定位质量的联合表示。 DFL 通过将边界框位置建模为一般分布来提供信息更丰富且更精确的边界框估计。所提出的 DAMO-YOLO 的训练损失公式为:
Loss
除了head和loss之外,标签分配是检测器训练期间的重要组成部分,它负责将分类和回归目标分配给预定义的锚点。最近,诸如OTA和TOOD之类的动态标签分配受到广泛好评,并且与静态标签分配相比取得了显着的改进。动态标签分配方法根据预测和真实情况之间的分配成本来分配标签,例如 OTA 。尽管损失中分类和回归的对齐被广泛研究,但当前的工作中很少提及标签分配中分类和回归的对齐。分类和回归的错位是静态分配方法中的一个常见问题。尽管动态分配缓解了这个问题,但由于分类和回归损失的不平衡,例如 CrossEntropy 和 IoU Loss ,该问题仍然存在。为了解决这个问题,本文将focal loss引入到分类成本中,并使用预测和地面真值框的IoU作为软标签,其公式如下:
在这里插入图片描述
通过这个公式,能够为每个目标选择分类和回归对齐的样本。除了对齐分配成本之外,遵循OTA,从全局角度形成了对齐分配成本的解决方案。本文将标签分配命名为 AlignOTA。AlignOTA 优于所有其他标签分配方法。

Distillation Enhancement

知识蒸馏(KD)是进一步提高小模型性能的有效方法。然而,在YOLO系列上应用KD有时并不能取得显着的改进,因为超参数难以优化并且特征携带太多噪声。在DAMO-YOLO中,首先在各种规模的模型上重新实现了高效的知识蒸馏,特别是在小型模型上。采用基于特征的蒸馏来转移暗知识,它可以在中间特征图中蒸馏识别和定位信息。本文进行快速验证实验,为DAMO-YOLO 选择合适的蒸馏方法。结果如下表所示。得出的结论是,CWD 更适合我们的模型,而 MGD 比 Mimicking 更差,因为复杂的超参数使其不够通用。
在这里插入图片描述
本文提出的蒸馏策略分为两个阶段:1)老师在强马赛克域的第一阶段(284 epoch)对学生进行蒸馏。面对具有挑战性的增强数据分布,学生可以在老师的指导下进一步顺利地提取信息。 2)学生在第二阶段(16个时期)在无马赛克域上进行自我微调。现阶段不采用蒸馏的原因是,在这么短的时间内,当老师想把学生拉到一个陌生的领域(即无马赛克领域)时,他的经验会损害学生的表现。长期蒸馏会减轻损害,但成本高昂。所以本文选择一种权衡来让学生独立。
在DAMO-YOLO中,蒸馏配备了两个高级增强功能:1)对齐模块。一方面,它是一个线性投影层,用于使学生特征适应与教师相同的分辨率(C、H、W)。另一方面,强迫学生直接逼近教师特征,与自适应特征和学生特征相比,收益较小,削弱了真实值差异带来的影响。减去平均值后,每个通道的标准差将充当 KL 损失中的温度系数。
此外,还提出了更好地利用蒸馏的两个关键观察结果。一是蒸馏和任务损失之间的平衡。当更多地关注蒸馏(权重=10)时,学生的分类损失收敛速度较慢,从而产生负面影响。因此,小损失权重3(权重=0.5)对于在蒸馏和分级之间取得平衡是必要的。另一个是探测器的浅头。本文发现,适当减小头部深度有利于颈部特征的蒸馏。原因是,当最终输出与蒸馏后的特征图之间的差距更接近时,蒸馏可以对决策产生更好的影响。
在实践中,以DAMO-YOLO-S为老师,蒸馏出DAMO-YOLO-T,以DAMO-YOLO-M为老师,蒸馏出DAMO-YOLO-S,以DAMO-YOLO-L为老师,蒸馏出DAMO-YOLO- M,而DAMO-YOLO-L是自行蒸馏的。

通用级DAMO-YOLO模型

本节介绍 General Class DAMOYOLO 模型,该模型已经在多个大型数据集上进行了训练,包括 COCO、Objects365 和 OpenImage。本文的模型包含多项改进,可实现高精度和泛化。首先,通过创建统一的过滤标签空间来解决不同数据集之间重叠类别造成的歧义,例如“mouse”,它可以指 COCO/Objects365 中的计算机鼠标和 OpenImage 中的啮齿动物。这将原来的 945 个类别(COCO 中的 80 个、Objects365 中的 365 个、OpenImage 中的 500 个)减少到 701 个。其次,提出了一种多项式平滑和加权采样的方法,以解决数据集大小的不平衡问题,这通常会导致批量采样对较大数据集的偏差。最后,实现了一种类感知采样方法来解决 Objects365 和 OpenImage 数据集中的长尾效应问题。这将为包含数据点较少的类别的图像分配更大的采样权重。
通过改进的模型,在大规模数据集上训练了 DAMO-YOLOS,与 COCO 上的 DAMO-YOLO-S 基线相比,mAP 提高了 1.1%。此外,这个预训练的模型可以针对下游任务进行微调。将其应用到 VisDrone 数据集上 300 个 epoch,取得了 26.6% 的 mAP,超过了在 COCO 上预训练的模型的性能。这些结果凸显了大规模数据集训练的优势及其为模型提供的鲁棒性。

实施细节

本文的模型使用 SGD 优化器训练了 300 轮。权重衰减和 SGD 动量分别为 5e-4 和 0.9。初始学习率为 0.4,批量大小为 256,学习率按照余弦时间表衰减。以下 YOLO 系列 使用指数移动平均线 (EMA) 和分组权重衰减模型。为了增强数据多样性,Mosaic和 Mixup 增强是一种常见的做法。然而,最近的进展表明,正确设计的框级增强对于目标检测至关重要。受此启发,应用 Mosaic 和 Mixup 进行图像级增强,并在图像级增强之后采用 SADA的框级增强以获得更鲁棒的增强。

结论

本文提出了一种新的目标检测方法,称为DAMO-YOLO,其性能优于YOLO系列中的其他方法。其优势来自于新技术,包括MAE-NAS骨干、高效的RepGFPN颈、ZeroHead、AlignedOTA标签分配和蒸馏增强。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一朵小红花HH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值