《RT-DETR》论文笔记

news2024/9/22 15:40:39

原文出处

[2304.08069] DETRs Beat YOLOs on Real-time Object Detection (arxiv.org)icon-default.png?t=N7T8https://arxiv.org/abs/2304.08069

原文笔记

What

DETRs Beat YOLOs on Real-time Object Detection

1、设计了一种高效混合编码器,通过解耦尺度内交互和跨尺度融合来提高速度来快速处理多尺度特征。(并且高速)

2、通过解耦尺度内交互和跨尺度融合来提高速度来快速处理多尺度特征。然后,我们提出了不确定性最小查询选择来为解码器提供高质量的初始查询,从而提高准确性。

3、此外,RT-DETR 通过调整解码器层的数量来适应各种场景而无需重新训练来支持灵活的速度调整。

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

Why

YOLO系列因其速度和准确性之间的合理权衡而成为实时目标检测最流行的框架。然而,我们观察到 YOLO 的速度和准确性受到 NMS 的负面影响。(这不仅会减慢推理速度,而且还引入了导致速度和准确性不稳定的超参数。(NMS对超参数非常敏感,详见3.1)此外,考虑到不同的场景对召回率和准确率有不同的重视,有必要仔细选择适当的NMS阈值,这阻碍了实时检测器的发展。)

最近,端到端基于变压器的检测器 (DETR) 提供了一种消除 NMS 的替代方案。然而,高计算成本限制了它们的实用性(虽然带有多尺度特征的deformable DETR降低计算成本,但是序列长度急剧增加仍然导致编码器成为计算瓶颈。),阻碍了它们充分利用排除NMS的优势。因此无 NMS 的架构没有表现出推理速度优势。

再者,作者也对多尺度融合的有效性和计算冗余性提出了质疑,并做了一系列消融实验,具体见4.2节

(端到端对象检测器以其精简的流程而闻名。Carion等人[4]首先提出了基于Transformer的端到端检测器DETR,由于其独特的特征,引起了广泛的关注。特别是,DETR 消除了手工制作的锚点和 NMS 组件。相反,它采用二分匹配并直接预测一对一的对象集。尽管 DETR 具有明显的优势,但存在一些问题:训练收敛缓慢、计算成本高、查询难以优化。已经提出了许多 DETR 变体来解决这些问题。加速收敛。Deformable-DETR [45] 通过提高注意力机制的效率来加速多尺度特征的训练收敛。DAB-DETR[23]和DN-DETR[17]通过引入迭代细化方案和去噪训练进一步提高了性能。Group-DETR [5] 引入了分组一对多分配。降低计算成本。高效的DETR[42]和稀疏DETR[33]通过减少编码器和解码器层数或更新查询的数量来减少计算成本。Lite DETR[18]通过交错方式减少低级特征的更新频率来提高编码器的效率。优化查询初始化条件DETR[27]和锚DETR[39]降低了查询的优化难度。朱等人。 [45] 提出了两阶段 DETR 的查询选择,DINO [44] 提出了混合查询选择来帮助更好地初始化查询。当前的 DETR 仍然计算量很大,无法实时检测。)

这启发我们探索DETR是否可以扩展到实时场景,并在速度和准确性上都优于先进的YOLO检测器,消除了NMS对实时目标检测造成的延迟。

以前的工作[42,44,45]表明难以优化的对象查询阻碍了DETR的性能并提出了查询选择方案,将vanilla可学习嵌入替换为编码器特征。然而,我们观察到当前的查询选择直接采用分类分数来选择,忽略了检测器需要同时对对象的类别和位置进行建模的事实,这两者都决定了特征的质量。这不可避免地导致选择定位置信度较低的编码器特征作为初始查询,从而导致相当大的不确定性和损害 DETR 的性能。我们将查询初始化视为进一步提高性能的突破。

Challenge

解决detr的问题

1、减少计算复杂度实现快速计算

2、加快收敛速度

3、多尺度的处理体征

4、之前的obj query阻碍了DETR的性能

Idea

1、为了快速处理多尺度特征,我们设计了一个高效的混合编码器来代替普通的Transformer编码器,通过解耦不同尺度特征的尺度内交互和跨尺度融合,显著提高了推理速度。(并且加快了收敛速度)

2、为了避免选择定位置信度较低的编码器特征作为对象查询,我们提出了不确定性最小查询选择,通过显式优化不确定性为解码器提供高质量的初始查询,从而提高准确性。

3、此外,由于 DETR 的多层解码器架构,RT-DETR 支持灵活的速度调整以适应各种实时场景而无需重新训练。

原文翻译

Abstract

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

1. Introduction

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

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

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

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

RT-DETR 在速度和准确性之间实现了理想的权衡。具体来说,RT-DETR-R50 在 COCO val2017 和 T4 GPU 上的 108 FPS 上实现了 53.1%AP,而 RTDETR-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 vs50.9% AP),FPS 约为 21 倍(108FPS vs 5 FPS),显着提高了 DETR 的准确性和速度。在使用Objects365[35]进行预训练后,RTDETR-R50 / R101达到55.3% / 56.2% AP,导致性能惊人。附录中提供了更多实验结果。

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

2. Related Work

2.1. Real-time Object Detectors

YOLOv1[31]是第一个基于cnn的单级目标检测器来实现真正的实时目标检测。经过多年的持续发展,YOLO检测器优于其他单阶段目标检测器[21,24],成为实时目标检测器的同义词。YOLO检测器可以分为两类:基于锚点的[1,11,15,25,29,30,37,38]和无锚点[10,12,16,40],在速度和精度之间实现了合理的权衡,并被广泛应用于各种实际场景中。这些先进的实时检测器产生大量的重叠框,需要NMS后处理,这会减慢它们的速度。

2.2. End-to-end Object Detectors

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

3. End-to-end Speed of Detectors

3.1. Analysis of NMS

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

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

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

3.2. End-to-end Speed Benchmark

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

4. The Real-time DETR

4.1. Model Overview

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

4.2. Efficient Hybrid Encoder

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

  • A → B:变体 B 将单尺度 Transformer 编码器插入到 A 中,它使用一层 Transformer 块。多尺度特征共享编码器进行尺度内特征交互,然后concat作为输出。
  • B → C:变体 C 引入了基于 B 的跨尺度特征融合,并将拼接的特征馈送到多尺度 Transformer 编码器以执行同时尺度内和跨尺度特征交互。
  • C → D:变体 D 通过利用单尺度 Transformer 编码器和PANet-style  [22] 结构解耦尺度内交互和跨尺度融合。(单尺度Transformer Encoder负责尺度内交互,PANet-style负责跨尺度特征融合)
  • D → E:变体 E 增强了基于 D 的尺度内交互和跨尺度融合,采用了我们设计的高效混合编码器。(efficient hybrid encoder)

Hybrid design.

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

4.3. Uncertainty-minimal Query Selection

为了减少在 DETR 中优化对象查询的难度,随后的几项工作 [42, 44, 45] 提出了查询选择方案,它们通常使用置信度分数从编码器中选择前 K 个特征来初始化对象查询(或仅位置查询)

置信度分数表示特征包含前景对象的可能性。然而,检测器需要同时对对象的类别和位置进行建模,这两者都决定了特征的质量。因此,特征的性能分数是一个与分类和定位共同相关的潜在变量。基于分析,当前的查询选择导致所选特征的不确定性相当大导致解码器的初始化次优,阻碍了检测器的性能。

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

Effectiveness analysis.

为了分析不确定性最小查询选择的有效性,我们可视化了COCO val2017上所选特征的分类分数和IoU分数(即分别对应着目标检测任务的分类和定位能力),如图6所示。我们用大于0.5的分类分数绘制散点图。紫色和绿色点分别表示从不确定度最小查询选择和普通查询训练的模型中选择的特征

点越接近图右上角,对应特征的质量越高,即预测类别和框越有可能描述真实对象。图上面和图右侧密度曲线反映了两种类型的点数。

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

4.4. Scaled RT-DETR

由于实时检测器通常提供不同尺度的模型以适应不同的场景,RT-DETR还支持灵活的缩放。具体来说,对于混合编码器,我们通过调整嵌入维度和通道数来控制宽度,并通过调整 Transformer 层和 RepBlock 的数量来控制深度。

解码器的宽度和深度可以通过操纵对象查询和解码器层的数量来控制。此外,RT-DETR 的速度通过调整解码器层的数量来支持灵活的调整。我们观察到,最后删除几个解码器层对准确性的影响最小,但大大提高了推理速度(cf.第 5.4 节)。我们将配备 ResNet50 和 ResNet101 [13, 14] 的 RT-DETR 与 YOLO 检测器的 L 和 X 模型进行比较。Lighter RT-DETR 可以通过应用其他更小的(例如 ResNet18/34)或可扩展的(例如 CSPResNet [40])主干来设计,该主干具有缩放编码器和解码器。我们将缩放的 RT-DETR 与附录中的较轻 (S 和 M ) YOLO 检测器进行比较,它们在速度和准确性上都优于所有 S 和 M 模型。

5. Experiments

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

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

相关文章

保障速度与安全合规的前提下,如何传文件到国外?

伴随着经济全球化,数据跨境活动日益频繁,数据出境场景越来越多,防范数据出境安全风险,保障数据依法有序自由流动成为我国关注的重要方面。涉及数据出海的行业多种多样,像跨国运营、全球研发、金融服务等领域的企业都涉…

音乐制作工具:Studio One 6 (WinMac)

Studio One 6是由PreSonus公司开发的一款专业音乐制作软件,它提供了丰富的功能,以满足音乐创作、录制、混音和母带处理的需求。 Studio One 6以其人性化的用户界面、强大的音频性能、以及丰富的功能,成为了音乐制作领域中一个非常受欢迎的选择…

JAVA练习(五)对象封装

选择题 1、【static使用】 如果有以下程序片段: public class Some{private Some some;private Some(){}public static Some create(){if(some null){some new Some();}return some;} }以下描述哪个正确: A、编译错误 B、客户端必须使用new Some()产…

政务数据共享交换平台的逻辑架构

政务数据共享交换平台基于主流大数据技术和政务数据共享交换规范,提供大数据工作门户、工单系统、资源目录管理平台、数据交换平台和API管理平台,如 政务数据共享交换平台主要包括大数据工作门户、数据资源目录管理平台、共享交换管理平台、API管理平台、…

Python07:循环结构 --> for-in循环

如果循环次数已经确定, for循环 """ eg05 - 循环结构 --> for-in循环Author: mimo_yy Date: 2024/5/15 """ # 如果循环次数已经确定 for循环 for i in range(100): # 产生0到100范围的整数,从0开始取数,1…

【Impala】学习笔记

Impala学习笔记 【一】Impala介绍【1】简介(1)简介(2)优点(3)缺点 【2】架构(1)Impalad(守护进程)(2)Statestore(存储状态…

【智能控制】第8章 典型神经网络 ,单神经元网络,BP神经网络,RBF神经网络,Hopfield神经网络(北京航天航空大学)

目录 第8章 典型神经网络 1. 单神经元网络 2. BP神经网络 3. RBF神经网络 4. Hopfield神经网络 第8章 典型神经网络 根据神经网络的连接方式,神经网络可分为三种形式:前馈型神经网络、反馈型神经网络和自组织网络,。典型的前馈型神经…

嵌入式边缘计算软硬件开发实训室解决方案

一、 引言 随着5G通信技术、人工智能算法和大数据分析方法的迅猛发展,物联网(IoT)设备的数量正以前所未有的速度增长,这些设备每天产生着海量的数据。据预测,到2025年,全球将有超过750亿个连接的IoT设备。这些设备不仅包括常见的智…

ArcGIS基础:标注转注记及简单处理

注记是一个静态的标签图层,能够独立的保存为文件,并且具有计算功能; 标注是一个动态的标签图形,无法以文件的形式进行存储和计算; 2者各有优势和劣势,根据具体需求进行选择 需要注意的是注记要存储在GDB…

Spring-MyBatis整合:No qualifying bean of type ‘XXX‘ available: ...

1.看一下核心配置中有没有导入myBatis配置 2.看一下service和dao有没有相应注解 3.看一下MyBatisConfig中有没有对sqlSessionFactory和mapperScannerConfigurer注释成bean对象以及有没有配置映射文件路径

天机学堂 第七天 积分系统

签到 签到最核心的包含两个要素: 谁签到:用户id 什么时候签的:签到日期 同时要考虑一些功能要素,比如: 补签功能,所以要有补签标示 按照年、月统计的功能:所以签到日期可以按照年、月、日分…

2024年TI杯E题-三子棋游戏装置方案分享-jdk123团队-第一弹赛题的选择与前期方案的准备

赛前准备 本来我们团队前几个月的准备都在小车上,赛前也完成了 STM32,树莓派4B,Openmv等几款常见主控板来对小车完成基本的模块封装控制。我们团队的大部分精力以及预算都准备在了小车上面。 赛题选择 由于在赛题公布的的那一天,我们发现H…

张邱建 百鸡问题 python 求解

“百鸡问题”是一个著名的古典数学问题,来源于中国古代数学著作《张邱建算经》。问题是这样的:公鸡每只5钱,母鸡每只3钱,小鸡3只1钱,用100钱买100只鸡,问公鸡、母鸡、小鸡各有多少只? from sym…

【学习笔记】卫星网络(NTN)的窄带物联网(NB-IoT)/增强型机器类型通信(eMTC)研究 -- 3GPP TR 36.763(一)

引言 在RAN#86会议上,针对物联网非陆地网络(IoT NTN)批准了一个新的研究项目,并在RAN#91中进行了修订[4]。在RAN#91中,有一封关于[91E][42][NTN_IoT_Roadmap]的电子邮件讨论,其中包括主持人的总结和GTW输入…

NOI Linux 2.0 的安装说明以及使用指南

关于 NOI Linux 2.0 NOI Linux 是 NOI 竞赛委员会基于 Ubuntu 操作系统开发的一款 Linux 桌面发行版,是一套免费的、专门为信息学奥林匹克竞赛选手设计的操作系统,是 NOI 系列赛事指定操作系统,适用于常见笔记本电脑和桌面电脑。 新建虚拟机…

lvs加keepalive高可用集群

lvs集群当中的高可用架构只是针对调度器的高可用 基于vrrp来实现调度器的主和备 高可用的HA架构 主调度器和备调度器(多台) 在主调度器正常工作的时候,备完全处于冗余状态(待命),不参与集群的运转&…

深入解析Nginx限流策略:如何高效控制访问频率

摘要:本文将详细介绍Nginx限流模块的使用方法,包括基于IP地址的限流、基于并发连接的限流以及如何应对突发流量。通过实际案例,帮助读者掌握Nginx限流策略,确保服务器在高并发场景下的稳定运行。 一、引言 在高并发场景下&#x…

Vscode下ESP32工程函数定义无法跳转

1.删除.vscode 2.按下 ctrlshiftp,搜索 ESP-IDF:Add vscode Configuration Folder

SwinIR速读

SwinIR发表在ICCV21,它核心创新在于使用了SwinTransformer(同年ICCV best paper)进行图像修复,由ETH的CVL提出,大组还是抓前沿抓得好,不仅能想到,还能做出来性能,而且性能还是稳定的增益,通用性强。 目前&a…

TCP Window Full TCP Zero Window

TCP window Full & TCP Zero Window 注: 192.168.60.67 是客户端IP10.250.251.223是服务端IP 当客户端向服务发送多个280大小应用层数据时,在No 45帧数据时发生TCP Window Full,应用发送280字节,实际发出去只有67个字节。28…