【论文阅读】DETRs Beat YOLOs on Real-time Object Detection

文章目录

  • 摘要
  • 一、介绍
  • 二、相关工作
    • 2.1 实时目标检测器
    • 2.2 端到端目标检测器
  • 三、检测器的端到端速度
    • 3.1 分析 NMS
    • 3.2 端到端速度基准
  • 四、实时 DETR
    • 4.1 模型概述
    • 4.2 高效混合编码器
    • 4.3不确定性最小的查询选择
    • 4.4 缩放的RT - DETR
  • 五、实验
    • 5.1 与SOTA对比
    • 5.2 混合编码器的消融研究
    • 5.3 查询选择的消融研究
    • 5.4 解码器的消融研究
  • 六、局限性与讨论
  • 七、结论


DETRs 在实时物体检测方面击败 YOLOs

在这里插入图片描述

摘要

YOLO系列由于在速度和准确性之间的合理权衡,已成为最受欢迎的实时目标检测框架。然而,我们观察到YOLO的速度和准确性受到NMS的负面影响。最近,基于端到端Transformer的检测器(DETRs)为消除NMS提供了一种替代方案。尽管如此,高计算成本限制了它们的实用性,并阻碍了它们充分发挥排除NMS的优势。在本文中,我们提出了实时检测Transformer(RT - DETR),据我们所知,这是第一个解决上述困境的实时端到端目标检测器。我们借鉴先进的DETR,通过两个步骤构建RT - DETR:首先专注于在提高速度的同时保持准确性,然后在保持速度的同时提高准确性。具体来说,我们设计了一个高效的混合编码器,通过解耦尺度内交互和跨尺度融合来快速处理多尺度特征,从而提高速度。然后,我们提出了不确定性最小的查询选择,为解码器提供高质量的初始查询,从而提高准确性。此外,RT - DETR支持灵活的速度调整,通过调整解码器层数来适应各种场景,而无需重新训练。我们的RT - DETR - R50 / R101在COCO上实现了53.1% / 54.3%的AP,在T4 GPU上达到108 / 74 FPS,在速度和准确性上均优于先前先进的YOLO。此外,RT - DETR - R50在准确性上比DINO - R50高出2.2%的AP(53.1% AP对50.9% AP),在FPS上高出约21倍(108 FPS对5 FPS)。使用Objects365进行预训练后,RT - DETR - R50 / R101实现了55.3% / 56.2%的AP。

论文地址:https://arxiv.org/abs/2304.08069
代码地址:https://github.com/lyuwenyu/RT-DETR

一、介绍

实时目标检测是一个重要的研究领域,具有广泛的应用,如目标跟踪[43]、视频监控[28]和自动驾驶[2]等。现有的实时检测器通常采用基于CNN的架构,其中最著名的是YOLO检测器[1, 10 - 12, 15, 16, 25, 30, 38, 40],因为它们在速度和准确性之间取得了合理的平衡。然而,这些检测器通常需要非极大值抑制(NMS)进行后处理,这不仅减慢了推理速度,还引入了超参数,导致速度和准确性的不稳定。此外,考虑到不同场景对召回率和准确性的重视程度不同,有必要仔细选择合适的NMS阈值,这阻碍了实时检测器的发展。

最近,基于端到端Transformer的检测器(DETRs)[4, 17, 23, 27, 36, 39, 44, 45]因其精简的架构和消除了手工制作的组件而受到学术界的广泛关注。然而,它们的高计算成本使其无法满足实时检测的要求,因此无NMS的架构并没有显示出推理速度的优势。这促使我们探索DETRs是否可以扩展到实时场景,并在速度和准确性上超越先进的YOLO检测器,消除NMS对实时目标检测造成的延迟。

为了实现上述目标,我们重新思考DETRs,并对关键组件进行详细分析,以减少不必要的计算冗余并进一步提高准确性。对于前者,我们观察到,尽管引入多尺度特征有助于加速训练收敛[45],但它导致输入编码器的序列长度显著增加。多尺度特征交互导致的高计算成本使Transformer编码器成为计算瓶颈。因此,实现实时DETR需要重新设计编码器。对于后者,先前的工作[42, 44, 45]表明,难以优化的对象查询阻碍了DETRs的性能,并提出了查询选择方案,用编码器特征代替普通的可学习嵌入。然而,我们观察到,当前的查询选择直接采用分类分数进行选择,忽略了检测器需要同时对对象的类别和位置进行建模的事实,这两者都决定了特征的质量。这不可避免地导致具有低定位置信度的编码器特征被选为初始查询,从而导致相当程度的不确定性并损害DETRs的性能。我们将查询初始化视为进一步提高性能的突破口。

在本文中,我们提出了实时检测Transformer(RT - DETR),据我们所知,这是第一个实时端到端目标检测器。为了快速处理多尺度特征,我们设计了一个高效的混合编码器来取代普通的Transformer编码器,通过解耦不同尺度特征的尺度内交互和跨尺度融合,显著提高了推理速度。为了避免具有低定位置信度的编码器特征被选为对象查询,我们提出了不确定性最小的查询选择,通过明确优化不确定性为解码器提供高质量的初始查询,从而提高准确性。此外,由于DETR的多层解码器架构,RT - DETR支持灵活的速度调整,以适应各种实时场景而无需重新训练。

RT - DETR在速度和准确性之间实现了理想的平衡。具体来说,RT - DETR - R50在COCO val2017上实现了53.1%的AP,在T4 GPU上达到108 FPS,而RT - DETR - R101实现了54.3%的AP和74 FPS,在速度和准确性上均优于先前先进的YOLO检测器的L和X模型,如图1所示。我们还通过缩小编码器和解码器并使用更小的骨干网络开发了缩放的RT - DETR,其性能优于更轻量级的YOLO检测器(S和M模型)。此外,RT - DETR - R50在准确性上比DINO - Deformable - DETR - R50高出2.2%的AP(53.1% AP对50.9% AP),在FPS上高出约21倍(108 FPS对5 FPS),显著提高了DETRs的准确性和速度。在使用Objects365 [35]进行预训练后,RT - DETR - R50 / R101实现了55.3% / 56.2%的AP,实现了令人惊讶的性能提升。更多的实验结果在附录中提供。

在这里插入图片描述

主要贡献总结为:(i)我们提出了第一个实时端到端目标检测器RT - DETR,它不仅在速度和准确性上优于先前先进的YOLO检测器,还消除了NMS后处理对实时目标检测的负面影响;(ii)我们定量分析了NMS对YOLO检测器速度和准确性的影响,并建立了端到端速度基准来测试实时检测器的端到端推理速度;(iii)提出的RT - DETR通过调整解码器层数来支持灵活的速度调整,以适应各种场景而无需重新训练。

二、相关工作

2.1 实时目标检测器

YOLOv1 [31]是第一个基于CNN的一阶段目标检测器,实现了真正的实时目标检测。经过多年的不断发展,YOLO检测器已经超越了其他一阶段目标检测器[21, 24],成为了实时目标检测器的代名词。YOLO检测器可分为两类:基于锚点的[1, 11, 15, 25, 29, 30, 37, 38]和无锚点的[10, 12, 16, 40],它们在速度和准确性之间取得了合理的平衡,并广泛应用于各种实际场景中。

2.2 端到端目标检测器

端到端目标检测器以其精简的流水线而闻名。Carion等人[4]首次提出了基于Transformer的端到端检测器DETR,因其独特的特性而受到广泛关注。特别是,DETR消除了手工制作的锚点和NMS组件,而是采用二分匹配并直接预测一对一的对象集。尽管有明显的优势,但DETR存在一些问题:训练收敛缓慢、计算成本高和查询难以优化。许多DETR变体被提出以解决这些问题。加速收敛:Deformable - DETR [45]通过使用多尺度特征增强注意力机制的效率来加速训练收敛。DAB - DETR [23]和DN - DETR [17]通过引入迭代精化方案和去噪训练进一步提高性能。Group - DETR [5]引入了组式的一对多分配。降低计算成本:Efficient DETR [42]和Sparse DETR [33]通过减少编码器和解码器层数或更新的查询数量来降低计算成本。Lite DETR [18]通过交错方式减少低级特征的更新频率来提高编码器的效率。优化查询初始化:Conditional DETR [27]和Anchor DETR [39]降低了查询的优化难度。Zhu等人[45]为两阶段DETR提出了查询选择,DINO [44]建议混合查询选择以帮助更好地初始化查询。当前的DETR仍然计算量很大,且不是为实时检测而设计的。我们的RT - DETR大力探索降低计算成本,并尝试优化查询初始化,优于最先进的实时检测器。

三、检测器的端到端速度

3.1 分析 NMS

NMS是目标检测中广泛使用的后处理算法,用于消除重叠的输出框。NMS需要两个阈值:置信度阈值和IoU阈值。具体来说,分数低于置信度阈值的框将被直接过滤掉,每当任何两个框的IoU超过IoU阈值时,分数较低的框将被丢弃。这个过程会一直迭代,直到处理完每个类别的所有框。因此,NMS的执行时间主要取决于框的数量和两个阈值。为了验证这一观察结果,我们使用YOLOv5 [11](基于锚点的)和YOLOv8 [12](无锚点的)进行分析。

我们首先计算在相同输入上用不同置信度阈值过滤输出框后剩余的框的数量。我们从0.001到0.25采样置信度阈值来计算两个检测器剩余框的数量,并将它们绘制在柱状图上,这直观地反映了NMS对其超参数很敏感,如图2所示。随着置信度阈值的增加,更多的预测框被过滤掉,需要计算IoU的剩余框的数量减少,从而减少了NMS的执行时间。

在这里插入图片描述

此外,我们使用YOLOv8在COCO val2017上评估准确性,并测试不同超参数下NMS操作的执行时间。请注意,我们采用的NMS操作指的是TensorRT的efficientNMSPlugin,它涉及多个内核,包括EfficientNMSFilter、RadixSort、EfficientNMS等,我们只报告EfficientNMS内核的执行时间。我们在T4 GPU上使用TensorRT FP16进行测试,输入和预处理保持一致。超参数和相应的结果如表1所示。从结果中我们可以得出结论,EfficientNMS内核的执行时间随着置信度阈值的降低或IoU阈值的增加而增加。原因是高置信度阈值直接过滤掉更多的预测框,而高IoU阈值在每轮筛选中过滤掉的预测框较少。我们还在附录中可视化了YOLOv8在不同NMS阈值下的预测。结果表明,不适当的置信度阈值会导致检测器出现明显的误报或漏报。在置信度阈值为0.001和IoU阈值为0.7时,YOLOv8实现了最佳的AP结果,但相应的NMS时间处于较高水平。考虑到YOLO检测器通常报告模型速度并排除NMS时间,因此需要建立一个端到端速度基准。

在这里插入图片描述

3.2 端到端速度基准

为了能够公平地比较各种实时检测器的端到端速度,我们建立了一个端到端速度基准。考虑到NMS的执行时间受输入的影响,有必要选择一个基准数据集并计算多张图像的平均执行时间。我们选择COCO val2017 [20]作为基准数据集,并为上述的YOLO检测器附加TensorRT的NMS后处理插件。具体来说,我们根据基准数据集上对应准确性的NMS阈值测试检测器的平均推理时间,排除I/O和MemoryCopy操作。我们使用该基准测试基于锚点的检测器YOLOv5 [11]和YOLOv7 [38],以及无锚点的检测器PP - YOLOE [40]、YOLOv6 [16]和YOLOv8 [12]在T4 GPU上使用TensorRT FP16的端到端速度。根据结果(参见表2),我们得出结论,对于YOLO检测器,具有同等准确性的无锚点检测器优于基于锚点的检测器,因为前者需要的NMS时间更少。原因是基于锚点的检测器比无锚点的检测器产生更多的预测框(在我们测试的检测器中多出三倍)。

四、实时 DETR

4.1 模型概述

RT - DETR由骨干网络、高效混合编码器和带有辅助预测头的Transformer解码器组成。RT - DETR的概述如图4所示。具体来说,我们将骨干网络的最后三个阶段{S3, S4, S5}的特征输入到编码器中。高效混合编码器通过尺度内特征交互和跨尺度特征融合将多尺度特征转换为图像特征序列(参见第4.2节)。随后,采用不确定性最小的查询选择来选择固定数量的编码器特征作为解码器的初始对象查询(参见第4.3节)。最后,带有辅助预测头的解码器迭代地优化对象查询以生成类别和框。

在这里插入图片描述

4.2 高效混合编码器

计算瓶颈分析:引入多尺度特征加速了训练收敛并提高了性能[45]。然而,尽管可变形注意力降低了计算成本,但序列长度的急剧增加仍然使编码器成为计算瓶颈。正如Lin等人[19]所报道的,在Deformable - DETR中,编码器占GFLOPs的49%,但对AP的贡献仅为11%。为了克服这个瓶颈,我们首先分析了多尺度Transformer编码器中存在的计算冗余。直观地说,包含关于对象丰富语义信息的高级特征是从低级特征中提取的,因此在连接的多尺度特征上进行特征交互是多余的。因此,我们设计了一组具有不同类型编码器的变体,以证明同时进行尺度内和跨尺度特征交互是低效的,如图3所示。特别地,我们使用DINO - Deformable - R50,其中使用了在RT - DETR中更小的数据读取器和更轻的解码器进行实验,并首先删除DINO - Deformable - R50中的多尺度Transformer编码器作为变体A。然后,插入不同类型的编码器以基于A产生一系列变体,详细说明如下(每个变体的详细指标参见表3):

  • A → B:变体B将单尺度Transformer编码器插入A中,该编码器使用一层Transformer块。多尺度特征共享该编码器进行尺度内特征交互,然后连接作为输出。
  • B → C:变体C基于B引入跨尺度特征融合,并将连接的特征输入到多尺度Transformer编码器中进行同时的尺度内和跨尺度特征交互。
  • C → D:变体D通过使用单尺度Transformer编码器进行尺度内交互和使用PANet风格[22]的结构进行跨尺度融合来解耦尺度内交互和跨尺度融合。
  • D → E:变体E基于D增强了尺度内交互和跨尺度融合,采用了我们设计的高效混合编码器。

在这里插入图片描述

在这里插入图片描述

混合设计:基于上述分析,我们重新思考了编码器的结构,并提出了一个高效的混合编码器,由两个模块组成,即基于注意力的尺度内特征交互(AIFI)和基于CNN的跨尺度特征融合(CCFF)。具体来说,AIFI基于变体D进一步降低了计算成本,仅在S5上使用单尺度Transformer编码器进行尺度内交互。原因是将自注意力操作应用于具有更丰富语义概念的高级特征可以捕捉概念实体之间的联系,这有助于后续模块对对象进行定位和识别。然而,由于低级特征缺乏语义概念,并且与高级特征交互存在重复和混淆的风险,因此低级特征的尺度内交互是不必要的。为了验证这一观点,我们在变体D中仅在S5上进行尺度内交互,实验结果如表3所示(参见行DS5)。与D相比,DS5不仅显著降低了延迟(快35%),而且提高了准确性(高0.4% AP)。CCFF基于跨尺度融合模块进行优化,在融合路径中插入了几个由卷积层组成的融合块。融合块的作用是将两个相邻尺度的特征融合为一个新特征,其结构如图5所示。融合块包含两个1×1卷积来调整通道数,N个由RepConv [8]组成的RepBlocks用于特征融合,两条路径的输出通过元素相加进行融合。我们将混合编码器的计算表述为:

在这里插入图片描述

其中Reshape表示将平坦化特征的形状恢复为与S5相同的形状。

在这里插入图片描述

4.3不确定性最小的查询选择

为了降低DETR中优化对象查询的难度,后续的一些工作[42, 44, 45]提出了查询选择方案,它们的共同点是使用置信度分数从编码器中选择前K个特征来初始化对象查询(或仅位置查询)。置信度分数表示特征包含前景对象的可能性。然而,检测器需要同时对对象的类别和位置进行建模,这两者都决定了特征的质量。因此,特征的性能分数是一个潜在变量,与分类和定位都相关。基于此分析,当前的查询选择导致所选特征存在相当程度的不确定性,从而导致解码器的初始化次优,并阻碍了检测器的性能。

为了解决这个问题,我们提出了不确定性最小的查询选择方案,该方案明确构建并优化认知不确定性,以对编码器特征的联合潜在变量进行建模,从而为解码器提供高质量的查询。具体来说,特征不确定性U被定义为定位P和分类C的预测分布之间的差异,如式(2)所示。为了最小化查询的不确定性,我们将不确定性集成到损失函数中,用于基于梯度的优化,如式(3)所示。

在这里插入图片描述

其中ˆY和Y表示预测和真实值,ˆY = {ˆc, ˆb},ˆc和ˆb分别表示类别和边界框,ˆX表示编码器特征。

有效性分析:为了分析不确定性最小的查询选择的有效性,我们可视化了在COCO val2017上所选特征的分类分数和IoU分数,如图6所示。我们绘制了分类分数大于0.5的散点图。紫色和绿色点分别表示从使用不确定性最小的查询选择和普通查询选择训练的模型中选择的特征。

散点图最显著的特征是紫色点集中在图的右上角,而绿色点集中在右下角。这表明不确定性最小的查询选择产生了更多高质量的编码器特征。此外,我们对两种查询选择方案所选的编码器特征进行了定量分析。紫色点比绿色点多138%,即更多绿色点的分类分数小于或等于0.5,这些可以被认为是低质量特征。并且紫色点比绿色点多120%,其分类分数和IoU分数都大于0.5。从密度曲线也可以得出相同的结论,其中紫色和绿色之间的差距在图的右上角最为明显。定量结果进一步表明,不确定性最小的查询选择为查询提供了更多准确分类和精确定位的特征,从而提高了检测器的准确性(参见第5.3节)。

在这里插入图片描述

4.4 缩放的RT - DETR

由于实时检测器通常提供不同规模的模型以适应不同的场景,RT - DETR也支持灵活的缩放。具体来说,对于混合编码器,我们通过调整嵌入维度和通道数量来控制宽度,通过调整Transformer层数和RepBlocks的数量来控制深度。解码器的宽度和深度可以通过操纵对象查询的数量和解码器层数来控制。此外,RT - DETR的速度通过调整解码器层数支持灵活调整。我们观察到,在末尾去除一些解码器层对准确性的影响最小,但大大提高了推理速度(参见第5.4节)。我们将配备ResNet50和ResNet101 [13, 14]的RT - DETR与YOLO检测器的L和X模型进行比较。可以通过应用其他更小的(例如ResNet18/34)或可扩展的(例如CSPResNet [40])骨干网络以及缩放的编码器和解码器来设计更轻的RT - DETR。我们在附录中将缩放的RT - DETR与更轻的(S和M)YOLO检测器进行了比较,它们在速度和准确性上都优于所有S和M模型。

五、实验

5.1 与SOTA对比

表2对比了RT - DETR与当前实时(YOLOs)和端到端(DETRs)检测器的性能,其中仅对比了YOLO检测器的L和X模型,S和M模型的对比在附录中。我们的RT - DETR和YOLO检测器的输入尺寸均为(640, 640),其他DETRs的输入尺寸为(800, 1333)。FPS在T4 GPU上使用TensorRT FP16进行报告,对于YOLO检测器,根据第3.2节中提出的端到端速度基准,使用官方预训练模型进行测试。我们的RT - DETR - R50实现了53.1%的AP和108 FPS,而RT - DETR - R101实现了54.3%的AP和74 FPS,在速度和准确性上均优于具有相似规模的最先进YOLO检测器和具有相同骨干网络的DETRs。实验设置在附录中展示。

在这里插入图片描述

与实时检测器对比:我们比较了RT - DETR与YOLO检测器的端到端速度(参见第3.2节)和准确性。我们将RT - DETR与YOLOv5 [11]、PP - YOLOE [40]、YOLOv6 - v3.0 [16](以下简称YOLOv6)、YOLOv7 [38]和YOLOv8 [12]进行了比较。与YOLOv5 - L / PP - YOLOE - L / YOLOv6 - L相比,RT - DETR - R50在准确性上提高了4.1% / 1.7% / 0.3% AP,在FPS上提高了100.0% / 14.9% / 9.1%,并且在参数数量上减少了8.7% / 19.2% / 28.8%。与YOLOv5 - X / PP - YOLOE - X相比,RT - DETR - R101在准确性上提高了3.6% / 2.0%,在FPS上提高了72.1% / 23.3%,并且在参数数量上减少了11.6% / 22.4%。与YOLOv7 - L / YOLOv8 - L相比,RT - DETR - R50在准确性上提高了1.9% / 0.2% AP,在FPS上提高了96.4% / 52.1%。与YOLOv7 - X / YOLOv8 - X相比,RT - DETR - R101在准确性上提高了1.4% / 0.4% AP,在FPS上提高了64.4% / 48.0%。这表明我们的RT - DETR实现了最先进的实时检测性能。

与端到端检测器对比:我们还将RT - DETR与使用相同骨干网络的现有DETRs进行了比较。我们根据在COCO val2017上对应准确性的设置测试了DINO - Deformable - DETR [44]的速度进行对比,即使用TensorRT FP16进行速度测试,输入尺寸为(800, 1333)。表2显示,RT - DETR在速度和准确性上均优于所有具有相同骨干网络的DETRs。与DINO - Deformable - DETR - R50相比,RT - DETR - R50在准确性上提高了2.2% AP,在速度上提高了21倍(108 FPS对5 FPS),两者都有显著提高。

5.2 混合编码器的消融研究

我们评估了第4.2节中设计的变体的指标,包括AP(使用1×配置进行训练)、参数数量和延迟,如表3所示。与基线A相比,变体B在准确性上提高了1.9% AP,延迟增加了54%。这证明了尺度内特征交互是重要的,但单尺度Transformer编码器的计算成本很高。变体C比B在准确性上提高了0.7% AP,延迟增加了20%。这表明跨尺度特征融合也是必要的,但多尺度Transformer编码器需要更高的计算成本。变体D比C在准确性上提高了0.8% AP,但延迟减少了8%,这表明解耦尺度内交互和跨尺度融合不仅降低了计算成本,而且提高了准确性。与变体D相比,DS5延迟减少了35%,但准确性提高了0.4% AP,这表明低级特征的尺度内交互是不必要的。最后,变体E比D在准确性上提高了1.5% AP。尽管参数数量增加了20%,但延迟减少了24%,使编码器更加高效。这表明我们的混合编码器在速度和准确性之间实现了更好的平衡。

5.3 查询选择的消融研究

我们对不确定性最小的查询选择进行了消融研究,结果在RT - DETR - R50上使用1×配置进行报告,如表4所示。RT - DETR中的查询选择根据分类分数选择前K(K = 300)个编码器特征作为内容查询,所选特征对应的预测框作为初始位置查询。我们比较了两种查询选择方案在COCO val2017上选择的编码器特征,并计算了分类分数大于0.5和分类分数与IoU分数都大于0.5的比例。结果表明,不确定性最小的查询选择所选的编码器特征不仅提高了高分类分数的比例(0.82%对0.35%),而且提供了更多高质量的特征(0.67%对0.30%)。我们还评估了在COCO val2017上使用两种查询选择方案训练的检测器的准确性,其中不确定性最小的查询选择实现了0.8% AP的提高(48.7% AP对47.9% AP)。

在这里插入图片描述

5.4 解码器的消融研究

表5展示了使用不同数量的解码器层训练的RT - DETR - R50的推理延迟和准确性。当解码器层数设置为6时,RT - DETR - R50实现了最佳准确性53.1% AP。此外,我们观察到相邻解码器层之间的准确性差异随着解码器层索引的增加而逐渐减小。以列RT - DETR - R50 - Det6为例,使用第5个解码器层进行推理仅在准确性上损失0.1% AP(53.1% AP对53.0% AP),同时延迟减少了0.5 ms(9.3 ms对8.8 ms)。因此,RT - DETR通过调整解码器层数支持灵活的速度调整而无需重新训练,从而提高了其实用性。

在这里插入图片描述

六、局限性与讨论

局限性:尽管提出的RT - DETR在速度和准确性上优于具有相似规模的最先进实时检测器和端到端检测器,但它与其他DETRs存在相同的局限性,即对小物体的性能仍然不如强大的实时检测器。根据表2,RT - DETR - R50比L模型中最高的APval S(YOLOv8 - L)低0.5% AP,RT - DETR - R101比X模型中最高的APval S(YOLOv7 - X)低0.9% AP。我们希望这个问题在未来的工作中得到解决。

讨论:现有的大型DETR模型[3, 6, 32, 41, 44, 46]在COCO test - dev [20]排行榜上展示了令人印象深刻的性能。提出的RT - DETR在不同规模上保留了与其他DETRs同质的解码器,这使得我们可以用高精度预训练的大型DETR模型来蒸馏我们的轻量级检测器。我们相信这是RT - DETR相对于其他实时检测器的优势之一,并且可能是未来探索的一个有趣方向。

七、结论

在这项工作中,我们提出了一种实时端到端检测器,称为RT - DETR,它成功地将DETR扩展到实时检测场景,并实现了最先进的性能。RT - DETR包括两个关键改进:一个高效的混合编码器,能够快速处理多尺度特征;以及不确定性最小的查询选择,提高了初始对象查询的质量。此外,RT - DETR支持无需重新训练的灵活速度调整,并消除了两个NMS阈值带来的不便,使其在实际应用中更加便捷。RT - DETR及其模型缩放策略拓宽了实时目标检测的技术途径,为超越YOLO的各种实时场景提供了新的可能性。我们希望RT - DETR能够投入实际应用。

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

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

相关文章

【重构获得模式 Refactoring to Patterns】

重构获得模式 Refactoring to Patterns 面向对象设计模式是“好的面向对象设计”,所谓“好的面向对象设计”指的是那些可以满足“应对变化,提高复用”的设计。 现代软件设计的特征是“需求的频繁变化”。设计模式的要点是“寻找变化点,然后…

大语言模型LLM权重4bit向量量化(Vector Quantization)/查找表量化基本原理

参考 https://apple.github.io/coremltools/docs-guides/source/opt-palettization-overview.html https://apple.github.io/coremltools/docs-guides/source/opt-palettization-algos.html Apple Intelligence Foundation Language Models 苹果向量量化: DKM:…

在VMware虚拟机中编译文件的时候报错:找不到头文件ft2build.h

以下是报错内容&#xff0c;提示说找不到头文件ft2build.h freetype_show_font.c:12:10: fatal error: ft2build.h: No such file or directory #include <ft2build.h> ^~~~~~~~~~~~ compilation terminated. 在编译之前已经交叉编译了freetype&#xff0c;…

MQ-2烟雾传感器详解(STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 3.工作原理介绍 三、程序设计 main.c文件 mq2.h文件 mq2.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 MQ-2气体传感器是一种常用的气体传感器&#xff0c;用于检测空气中的烟雾浓度。工作原理是基于半导…

Java项目: 基于SpringBoot+mybatis+maven+mysql图书馆管理系统(含源码+数据库+任务书+答辩PPT+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismavenmysql图书馆管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操…

网络安全应急响应技术原理与应用

网络安全应急响应概述 概念 为应对网络安全事件&#xff0c;相关人员或组织机构对网络安全事件进行监测、预警、分析、响应和恢复等工作 网络安全应急响应组织建立与工作机制 网络安全应急响应预案内容与类型 常见网络安全应急事件场景与处理流程 应急演练&#xff1a;对假定…

一台手机一个ip地址吗?手机ip地址泄露了怎么办

在数字化时代&#xff0c;‌手机作为我们日常生活中不可或缺的一部分&#xff0c;‌其网络安全性也日益受到关注。‌其中一个常见的疑问便是&#xff1a;‌“一台手机是否对应一个固定的IP地址&#xff1f;‌”实际上&#xff0c;‌情况并非如此简单。‌本文首先解答这一问题&a…

Web3社交新经济,与 SOEX 实现无缝交易的高级安全性

出于充分的理由&#xff0c;安全性是交易中至关重要的考虑因素。每个人都应该确保自己的资金在交易时是安全的。由于 &#xff33;&#xff2f;&#xff25;&#xff38; 充当您与交易所的最佳连接&#xff0c;因此必须强调的是&#xff0c;该系统不会引发任何安全问题。 &a…

模型 涌现思想

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。整体产生新特性&#xff0c;超越部分之和。 1 涌现思想的应用 1.1 蚁群算法中的涌现思想 蚁群算法&#xff08;Ant Colony Optimization, ACO&#xff09;是一种模拟蚂蚁觅食行为的计算模型&#xf…

QT项目实战之音乐播放器2.0版本

该版本相较于1.0版本最主要的不同在于连接数据库实现类似于歌曲收藏和取消收藏的功能。 详细情况看我的这篇文章http://t.csdnimg.cn/WS5s8。 效果展示 VSMyMusicShow2.0 define.h UseMySQL.h musicInfo.h VSMyMusicPlayer.h

PMP–一、二、三模–分类–14.敏捷–技巧–帮助团队交付价值的执行实践迭代和增量如何帮助交付工作产品

文章目录 技巧一模14.敏捷--实践--帮助团队交付价值的执行实践--持续集成--在不同层面测试、验收测试驱动开发 (ATDD) 、测试驱动开发和行为驱动开发、刺探 。90、 [单选] 敏捷项目的第一次迭代即将开始。发起人召集团队、Scrum主管、产品负责人和其他项目干系人参加启动会议。…

木舟0基础学习Java的第二十六天(JavaWeb)

设置响应头 resp.setHeader("key","nihao");//推荐使用英文 中文会乱码 案例&#xff1a;模拟登录 jdbc.properties driverClasscom.mysql.jdbc.Driver urljdbc:mysql://localhost:3306/test?verifyServerCertificatefalse&useSSLfalse nameroot p…

第十三届山东省ICPC

vp链接&#xff1a;https://codeforces.com/gym/104417 A. Orders 根据题意模拟&#xff0c;分别按照 a&#xff0c;b 排序&#xff0c;排序后再判断该订单是否能完成。 #include <bits/stdc.h> using namespace std;#define int long longconst int N 105; int n, k…

pikachu文件包含漏洞靶场

本地文件包含 1、先随意进行提交 可以得出是GET传参 可以在filename参数进行文件包含 2、准备一个2.jpg文件 内容为<?php phpinfo();?> 3、上传2.jpg文件 4、访问文件保存的路径uploads/2.jpg 5、将我们上传的文件包含进来 使用../返回上级目录 来进行包含木马文件 …

备战秋招60天算法挑战,Day33

题目链接&#xff1a; https://leetcode.cn/problems/longest-increasing-subsequence/ 视频题解&#xff1a; https://www.bilibili.com/video/BV1RRvheFEog/ LeetCode 300. 最长递增子序列 题目描述 给你一个整数数组nums &#xff0c;找到其中最长严格递增子序列的长度。 …

自幂数判断c++

题目描述 样例输入 3 152 111 153样例输出 F F T 代码如下&#xff1a; #include<bits/stdc.h> using namespace std; long long m,a; int main(){cin>>m;for(int i1;i<m;i){cin>>a;long long ta,n[10],cc0,s0;while(t!0){//求位数与拆位n[cc]t%10;tt/…

多线程篇(并发相关类- 原子操作类)(持续更新迭代)

目录 前言 一、原子变量操作类&#xff08;AtomicLong为例&#xff09; 1. 前言 2. 实例 二、JDK 8新增的原子操作类LongAdder 三、LongAccumulator类原理探究 前言 JUC包提供了一系列的原子性操作类&#xff0c;这些类都是使用非阻塞算法CAS实现的&#xff0c;相比使用…

dubbo 服务消费原理分析之应用级服务发现

文章目录 前言一、MigrationRuleListener1、迁移状态模型2、Provider 端升级3、Consumer 端升级4、服务消费选址5、MigrationRuleListener.onRefer6、MigrationRuleHandler.doMigrate6、MigrationRuleHandler.refreshInvoker7、MigrationClusterInvoker.migrateToApplicationFi…

初识命名空间

1.创建两个命名空间 ip netns add host1 ip netns add host2 2. 查看命名空间 ip netns ls 3 、 创建veth ip -netns host1 link add veth0 type veth peer name host1-peer 4、 查看命名空间接口 ip -netns host1 address 5、 把host1-peer移动到host2命名空间 ip -ne…

ctfshow-nodejs

什么是nodejs Node.js 是一个基于 Chrome V8 引擎的 Javascript 运行环境。可以说nodejs是一个运行环境&#xff0c;或者说是一个 JS 语言解释器 Nodejs 是基于 Chrome 的 V8 引擎开发的一个 C 程序&#xff0c;目的是提供一个 JS 的运行环境。最早 Nodejs 主要是安装在服务器…