AI学习者 · 2023年06月29日

最强DETR+YOLO | 三阶段的端到端目标检测器的DEYOv2正式来啦,性能炸裂!!!

image.png

本文提出了一种称为DEYOv2的新型目标检测器,这是第一版DEYO(DETR with YOLO)模型的改进版本。与前代类似,DEYOv2采用渐进式推理方法来加速模型训练并提高性能。该研究深入探讨了一对一匹配在优化中的局限性,并提出了有效解决该问题的解决方案,如秩特征和贪婪匹配。

这种方法使DEYOv2的第三阶段能够最大限度地从第一和第二阶段获取信息,而无需NMS,实现端到端优化。通过组合密集查询、稀疏查询、一对多匹配和一对一匹配,DEYOv2充分利用了每种方法的优势。在相同设置下,它的性能优于所有现有的基于查询的端到端检测器。

当在COCO数据集上使用ResNet-50作为Backbone和多尺度特征时,DEYOv2在12个和24个Epoch分别实现了51.1AP和51.8AP。与端到端模型DINO相比,DEYOv2在两个Epoch设置中提供了2.1 AP和1.4 AP的显著性能提升。

据所知,DEYOv2是第一个完全端到端的目标检测器,它结合了经典检测器和基于查询的检测器的各自优势。

1、简介

识别图像中的感兴趣区域并用边界框和类标签对其进行标记是计算机视觉中的一项关键任务,即目标检测。这项任务有许多应用,并且随着深度学习的发展得到了显著改进。在过去的几十年里,已经开发了几种特殊的一阶段和两阶段目标检测模型。R-CNN家族是最著名的两阶段目标检测器,包括Fast R-CNN和Faster R-CNN。

同时,YOLO、SSD和RetinaNet是最受欢迎的单阶段目标检测器模型。经典检测器有一个共同点:它们严重依赖手工设计的组件,如非最大值抑制(NMS)。因为这些检测算法通常输出多个候选框,每个边界框对应于可能存在目标的区域。然而,这些候选框之间往往存在重叠或冗余,需要进行筛选和优化。

尽管NMS是一种有用的目标检测算法,但它确实有一些局限性。一个问题是,它可能会无意中删除与得分最高的边界框明显重叠的边界框,尤其是在目标密集或大小相似的区域。此外,NMS的有效性可能会受到所选IoU阈值的影响,这可能会导致检测结果的显著变化。NMS可能不会影响稀疏场景中的检测器调用,但它可能会成为拥挤场景中经典检测器的性能瓶颈。

Detection Transformer(DETR)提出了一种创新的基于Transformer的目标检测器,该检测器利用了基于Transformer的编码器-解码器框架。DETR不依赖于NMS的手动组件,而是使用匈牙利损失来预测一对一的目标集,从而实现端到端优化。

NMS在拥挤的场景中表现不佳,因为它只根据简单的信息(如IoU和类别)对目标进行集群,可能会将大小相似的不同目标分组为一组。相反,DETR利用查询之间的交互来利用更复杂的信息并区分它们之间的关系。与NMS相比,这种方法使DETR预测一对一目标集的策略更加合理,从而在拥挤的场景中比使用NMS的经典检测器具有更好的性能。

尽管DETR引起了研究界的极大兴趣,但它也存在许多问题。首先,应该注意的是,DETR具有缓慢的收敛速度,需要500个训练Epoch才能实现可接受的性能。然而,DEYO算法从循序渐进的思想中获得了灵感,为改进DETR提供了一个新的视角。DEYO使用低成本和高质量的YOLO预测作为第二阶段类DETR模型的输入,以降低用于预测一对一目标集的类DETR模式的难度水平。DEYO结合了经典检测器和基于查询的检测器各自的优势,从而提高了整体性能。同时,DEYO也发现了一对一标签分配的局限性。由于DETR使用一对一匹配,因此采用了建立分数差距的策略来抑制冗余的边界框。这意味着解码器需要对查询之间的关系进行建模,并区分最佳和冗余边界框。DEYO的实验表明,解码器在处理大量几乎相似的冗余边界框方面非常弱。随着提案查询的拥塞增加,性能逐渐降低,甚至在不使用NMS的情况下训练崩溃。

image.png

如图3所示,随着IoU阈值的升高,这意味着拥挤增加的查询被输入解码器,性能也会下降,并且当不使用NMS时,AP会骤降至0。作者发现,在后处理中使用具有低IoU阈值的NMS并不能缓解这种性能下降。这表明,影响最终性能的不仅是冗余边界框,冗余边界框也严重阻碍了训练过程中检测器的训练和优化。

image.png

上述现象表明,基于查询的检测器的过滤能力有限,其对边界框的抑制策略不好,并且对查询初始化有严格的要求,这在一定程度上限制了基于查询检测器的设计。DEYO简单地通过使用NMS过滤掉冗余的边界框来解决这个问题,但如图9所示,由于NMS-IoU阈值的增加,第一阶段的有效信息损失更大,这不仅破坏了DETR的端到端优势,还限制了第一阶段的高效信息传输。就像经典的检测器一样,这个问题在拥挤的场景中无疑会加剧。

「那么,有没有一种方法可以减少信息丢失,实现更优雅,并避免由冗余边界框引起的优化?」

DEYOv2通过引入秩特征和贪婪匹配来解决上述问题。秩特征是指通过置信度对边界框进行排序并通过嵌入进行编码后的秩的特征。将其添加到解码器的查询中可以使检测器容易地学习非最大值抑制策略,从而使检测器面临拥挤的环境。边界框仍然可以保持良好的过滤效果。贪婪匹配可以不使用额外的标签,以GT为基准,对每个边界框进行聚类和监督,并引导模型从每个类中选择排名最大的边界框来保留。秩特征和贪婪匹配使DEYOv2在从一对多标签分配到一对一标签分配的过渡过程中摆脱了对NMS的依赖,解决了Transformer编码器在过滤冗余边界框以实现端到端优化时遇到的优化问题。

image.png

在本文中提出了一种称为DEYOv2的目标检测网络的新范式,结合了经典检测器和基于查询的目标检测器的各自优势。因此,DEYOv2成为端到端目标检测器的新技术。如图1所示,在ResNet50 4-scales的设置下,在COCO2017 val数据集上分别在12个Epoch和24个Epoch获得了51.1 AP和51.8 AP的最佳性能。

本文的主要贡献总结如下:

  1. 提出了完全端到端的目标检测器,它结合了经典检测器和基于查询的目标检测器的各自优点,不仅优于当前最好的端到端检测器,而且不需要依赖手动组件NMS来过滤阶段1的冗余边界框,因此推理速度不会延迟并且保持稳定;
  2. 深入分析了冗余边界框对一图匹配优化的影响,并提出了秩特征和贪婪匹配,以使用更合理的策略来过滤掉大量密集的冗余边界框。
  3. 进行了几个实验,验证了本文的想法,并探索了模型中每个组件的贡献。

2、动机

结合前面的讨论,作者认为DETR的解码器在建立每个边界框之间的关系方面非常成功,因为与拥挤的边界框相比,区分稀疏边界框应该更困难,并且DEYO在低IoU阈值上取得了良好的性能,这表明DETR能够很好地处理稀疏边界框的聚类,因此DETR也应该能够很好的处理拥挤边界框的集群,后者的难度明显低于前者。这启发作者重新审视当前的过滤策略,分析拥挤的边界框阻碍检测器优化的原因,并提出有效的解决方案。

作者猜测,对于几乎相似的边界框,尽管检测器可以很好地对它们进行聚类,但很难学习到从聚类中选择并保留边界框的有效策略。在极端情况下,对于n个相同的边界框来说,使用一对一的标签分配,DETR不可能从原始数据中学习到有效的过滤策略。同时,当边界框过于相似时,也可能导致二进制匹配的不稳定性。进一步阻碍优化。DEYO简单地使用NMS通过建立IoU间隙来避免优化问题。作者认为,建立分数差距也应该取得类似的效果。

3、本文方法

3.1、Rank Feature

image.png

如图4所示,当遇到几乎相同的边界框时,检测器很难学会有效的策略来选择要保留的边界框,这正是NMS所擅长的。非最大值策略可以使NMS从大量几乎相同的冗余边界框中选择一个边界框,而不会造成性能损失。作者尝试了几种策略,让模型直接从原始数据中学习非最大值抑制策略,但都以失败告终。

为了降低模型的训练难度,受之前工作的启发,作者引入了秩特征来解决这个问题。研究发现,添加秩特征比直接将置信度传递给模型表现得更好。作者认为性能更好的原因是秩特征可以使模型更容易地学习非最大值抑制策略。这是因为排名特征可以迫使几乎相同的边界框之间存在差距,因为即使置信度相同,排名仍然存在顺序差距。

根据这种阶差模型很容易学会选择保留的Top边界框,这样对于n个相同的边界框,模型仍然可以根据秩特征来区分它们之间的差异,并选择保留的Top边界框。

3.2、Greedy Matching

在处理几乎相同的冗余边界框时,由于一对一匹配的局限性,与一对一的匹配一样,基于最小化二分匹配矩阵的成本来确定边界框保留是不合理的。作者提出了一种称为贪婪匹配的标签分配方法,其中为每个边界框分配一个匹配损失最小的GT标签,并且成本矩阵计算方法与阶段3的一对一匹配一致。

作者根据GT对边界框进行聚类,并在每个聚类中只保留排名最高的边界框,为保留的边界框分配标签1,为过滤掉的边界框指定标签0。由于置信度与IoU呈正相关,因此目前很难实现。这导致了如图5所示的情况,其中高排名并不一定意味着良好的定位。仅仅依靠等级进行选择可能会影响模型选择更好边界框的能力,导致选择位置不佳的高分红色边界框,最终损害模型性能。

image.png

为了解决这一现象,作者引入了一个θ值来调整标签分配。具体而言,作者将秩-1分配给具有所分配的GT的IoU小于且秩小于θ的目标,并且仅保留秩大于1的目标。这种方法允许更合理的标签分配和更高的性能。此外,通过基于边界框各自的GT对其进行聚类,作者的方法引导模型放弃具有较差定位目标的聚类,这降低了任务难度,并加速了过滤策略的学习。

4、DEYOv2

image.png

4.1、Model Overview

作者的模型使用YOLOv5x作为第一阶段,使用DINO作为第二和第三阶段,提供了一个新的基于渐进推理的三阶段模型。YOLOv5x是经典YOLO系列的检测器;它包含Backbone、包括FPN+PAN的Neck和输出三尺度预测的Head。作为一个类似DETR的模型,DINO包含一个Backbone、一个多层Transformer编码器、一个多级Transformer解码器和多个预测头。它使用Anchor边界框的静态查询和动态初始化,并涉及用于比较去噪训练的额外CDN分支。

image.png

DEYOv2和DINO之间最大的区别在于,DEYOv2的第3阶段使用来自第2阶段的高质量建议查询来初始化查询。整个DEYOv2模型如图6所示。

4.2、Dense Query to Sparse Query

由于Transformer的计算复杂度随着查询数量的增加而二次增加,因此基于查询的数量通常为300900,并且以YOLOv5为例,它可以提供数以万计的查询,这比基于查询的检测器多几个数量级,并且与基于查询的检测设备相比,维护单个查询的成本低得多。

作者认为,密集查询中包含的信息可以大大减轻后续稀疏查询检测的负担,从而使第2阶段和第3阶段在密集检测场景中获得更好的性能。然而,由于Transformer的计算复杂度与序列具有二次关系,这限制了阶段2和阶段3中的查询数量。

因此,作者使用查询选择器来选择高质量的查询,并在有限的查询中尽可能多地保留原始密集查询中包含的信息。第3阶段的查询比第1阶段少,这使得作者可以对查询之间的关系进行建模,并且作者可以向稀疏查询中注入更多信息;即使维护单个稀疏查询的成本高于密集查询的成本,该成本也可以是准确性和速度之间的良好权衡。作者使用一个简单的top-k和适配器模块来完成从密集查询到稀疏查询的转换。作者相信适配器模块可以最大限度地保留原始密集查询的信息,并使不同输出层查询的维度与稀疏查询的维度一致。

4.3、Query Selector

对于端到端优化,作者只需使用top-k来完成从密集查询到稀疏查询的转换。然而,应该注意的是,NMS仍然是最大程度地保留阶段1信息的过渡方法。

image.png

如图7所示,由于stage1中存在大量冗余边界框,因此直接使用top-k选择策略会导致所选查询中存在大量信息冗余。NMS可以解决这个问题。DEYOv2中采用NMS的动机与DEYO不同,只是为了尽可能地过滤掉冗余信息。由于查询过滤器的存在,作者不必担心IoU阈值的设置不合理,这使得模型的优化变得困难。这使作者能够基于PRE Matching快速调整IoU阈值参数,而不是像DEYO那样只有在得到训练的最终结果后才能评估IoU阈值的质量。

4.4、Query Filter

DEYOv2使用查询过滤器,摒弃了NMS对过滤冗余边界框的依赖,完全实现了端到端。查询过滤器只需要像大多数端到端检测器一样设置一个置信阈值来过滤候选边界框,就可以完成冗余边界框的过滤。

在DEYOv2中,作者将置信阈值设置为0.1。作者使用贪婪匹配为查询过滤器的输出分配标签。作者使用Focal Loss来监督查询过滤器对冗余边界框的过滤。通过一个简单的策略:0表示过滤掉,1表示保留,并将大量高置信度的类似冗余目标返回到低置信度。

image.png

基于这种策略,可以将建立的分数差距传递给阶段3,这便于阶段3进一步过滤出边界框。由于过滤查询的数量不是恒定的,如图8所示,作者将过滤查询插入解码器的init查询中;可以保证批量训练。

4.5、One-to-Many with One-to-One Matching

正如本文前面所分析的,IoU和置信度之间的严格正相关是检测器的一个困难条件。在贪婪匹配中,作者用实际边界框过滤掉所有IoU<0.6的边界框,使模型获得更好的性能。其次,贪婪匹配聚类围绕着GT,这两者都会导致对一些定位不佳的边界框进行过滤。查询过滤器过滤掉了一些冗余的边界框,代价是一些定位不好的边界框的召回率,这在一定程度上影响了最终的性能,所以作者使用具有一对一匹配的stage3来补偿这部分性能损失。

同时,由于查询过滤器为stage3提供了一对一目标集中的大部分目标,这使得stage3的任务难度低于传统的DETR初始化查询任务。同时,stage3还可以进一步过滤掉stage2没有正确过滤掉的边界框。第二阶段和第三阶段相辅相成,使DEYOv2实现了更好的性能。

5、实验

5.1、SOTA对比

image.png

image.png

5.2、消融实验

image.png

如表3所示,作者对强基线DEYOv2进行了消融研究,它在第一个阶段显示出41.0 AP。其中,NMS意味着查询选择器使用NMS而不是top-k,而选择符号使用一个额外的二进制分类分支来帮助查询过滤器过滤出冗余的框。通过比较1、2和3的结果,可以看出贪婪匹配和秩特征对密集冗余边框的过滤是至关重要的,而且两者都是必不可少的。

通过比较3和4,作者发现虽然添加选择符号可以改善阶段2的结果,但选择符号阻止了分数差距被传递到阶段3,从而降低了性能。4和5的结果表明,与top-k选择相比,NMS仍然是一种能够最大程度地保留密集查询信息并向稀疏查询信息过渡的算法。

image.png

图9中的结果还表明,高阈值阶段1用于传递到阶段2,潜在的信息是最大的。对于对端到端没有严格要求的场景,选择高阈值的NMS和查询过滤器也是一个很好的选择。

5.3、分析

1、比较查询过滤器与NMS

查询过滤器和NMS之间有一个共同点,它们都以调用为代价过滤掉冗余的边界框。然而,NMS通过简单的类别和边界框信息完成了区分真阳性(TP)和假阳性(FP)这一具有挑战性的步骤,但查询过滤器与匹配过滤器一样,可以组合更复杂的查询信息,以选择更好的策略来过滤多余的边界框。查询过滤器牺牲的召回率通常是那些定位不好的边界框,而NMS取决于真实数据中目标拥挤的程度。

查询过滤器的性能会随着检测器定位性能的提高而提高,而NMS只能在特定数据中表现良好。作者相信,随着检测器的功能越来越强大,两者之间的性能差距将越来越明显。

NMS的优点之一是,使用NMS相当于向检测器添加了强大的过滤策略的先验。它可以在没有训练的情况下获得良好的结果,这是查询过滤器所不能做到的,但这正是NMS的缺陷。它无法从数据中学习,这使得NMS成为检测器的性能瓶颈之一。随着大模型时代的到来,作者相信随着模型参数和计算数量的增加,查询过滤器的性能会越来越好。

2、为什么是YOLOv5x?

YOLOv5x的使用只是为了方便验证DEYOv2三个阶段的有效性。作者认为,像DEYOv2这样好的三阶段范式检测器需要在每个阶段仔细设计和权衡,但同时它也具有极高的灵活性。YOLOv5x和DINO只是一个特例;作者的方法并不是设计成与所有经典检测器兼容;采用其他模式是否有效超出了本文的范围。

DEYOv2的实现可能并不优雅,但毫无疑问,它所展示的性能证明了这种范式的有效性。总的来说,DEYOv2为视觉社区提供了一个新的选择。与其他新方法一样,DEYOv2也需要经过工程应用的测试。

作者: 小书童
文章来源:集智书童

推荐阅读

更多嵌入式AI干货请关注嵌入式AI专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
18839
内容数
1375
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息