摘要

https://www.arxiv.org/pdf/2507.12727
小目标检测仍是目标检测领域中的一个挑战性问题。为应对这一挑战,我们提出了一种基于YOLOv8的增强模型SOD-YOLO。该模型在颈部(neck)中集成了ASF(注意力尺度序列融合)机制以增强多尺度特征融合,新增了小目标检测层(命名为P2)以提供更高分辨率的特征图从而提升小目标检测效果,并采用Soft-NMS优化置信度得分以保留真实正例。实验结果表明,在VisDrone2019-DET数据集上,SOD-YOLO相比基线模型,mAP50 : 95\mathrm{mAP}_{50\,:\,95}mAP50:95提升了36.1%,mAP50\mathrm{mAP}_{50}mAP50提升了20.6%。这些改进使SOD-YOLO成为无人机影像小目标检测的一种实用且高效的解决方案。我们的源代码、超参数和模型权重已公开于:https://github.com/iamwangxiaobai/SOD-YOLO。

关键词:小目标检测;注意力尺度序列融合;无人机影像

1 引言

无人机(UAV,俗称无人机)已彻底改变了多个领域,包括野生动物监测、精准农业、搜救行动和基础设施检测[1]。这些应用通常需要检测小目标,如动物、害虫、失踪人员或结构缺陷。无人机能够从难以到达的高空视角捕获高分辨率影像,使其成为极具价值的工具。无人机应用中的一项关键任务是目标检测。

无人机领域的目标检测,尤其是小目标检测,可增强无人机的自主性和有效性。它使无人机能够实时识别和跟踪小目标,从而支持各种关键任务。在众多的目标检测方法中,两种主流策略已成为现代无人机系统的基石:单阶段目标检测和两阶段目标检测。

两阶段目标检测方法以R-CNN(基于区域的卷积神经网络)及其变体[2, 5]为代表,其流程为:首先在输入图像中生成一组候选区域,然后逐个分类这些区域。尽管有效,但这些方法计算量较大,对资源受限的无人机平台的实时应用构成挑战。相比之下,单阶段目标检测方法(如YOLO(You Only Look Once)[6, 13])采用更简化的流程,通过单次遍历整个图像直接预测边界框和类别概率。这种高效性使其特别适用于需要实时处理和低延迟响应的无人机应用。

YOLO能够在单帧中检测多个目标,增强了其在需要全面态势感知的场景中的实用性。然而,YOLO也存在固有局限。与部分两阶段方法相比,其在小目标或密集目标场景下的精度可能较低。此外,YOLO的固定网格单元结构可能难以捕捉目标的细粒度细节,导致某些情境下性能不佳。再者,YOLO依赖预定义的锚框(anchor boxes),可能限制其对无人机操作中常见多样环境和目标尺度的适应性。

本文提出了一种增强的YOLOv8算法,命名为SOD-YOLO(小目标检测YOLO),旨在提升无人机影像中的小目标检测效果。我们的改进针对小目标尺寸微小和背景复杂的挑战。实验结果表明,SOD-YOLO在VisDrone2019-DET[14]数据集上将YOLOv8的性能提升了36.1%(mAP50 : 95\mathrm{mAP}_{50\,:\,95}mAP50:95)和20.6%(mAP50\mathrm{mAP}_{50}mAP50)。我们的主要贡献可总结如下:

  • 集成ASF机制[15],一种新型注意力融合策略,通过颈部(neck)增强模型对目标尺寸变化和复杂背景的处理能力。
  • 引入P2层,即专用的小目标检测头,利用高分辨率特征图显著提升小目标检测精度。
  • 实现Soft-NMS[18],一种优化置信度得分的先进技术,有效保留真实正例并提升目标检测整体性能。

2 相关工作

2.1 实时目标检测器

YOLO在目标检测方法中脱颖而出,因其开创性的单阶段、实时神经网络架构。与传统两阶段检测器(如R-CNN)不同,YOLO通过单次遍历整个图像直接预测边界框和类别概率。这种设计显著减少了计算时间,使其非常适用于实时应用。YOLO已历经多次迭代,其中YOLOv5和YOLOv8是显著进展,同时提升了速度和精度。YOLO的高效性使其在需要低延迟和高吞吐量的领域中广受欢迎。

2.2 小目标检测的先前研究

2.2.1 网络架构增强

目标检测领域通过改进网络架构取得了显著进展。自YOLOv1问世以来,YOLO系列凭借对主干网络(backbone)和检测层的持续优化,始终引领实时目标检测。传统主干网络(如Darknet)被广泛使用,平衡了计算效率与检测性能。更近期的进展包括CSPNet[16]和EfficientNet[17]等先进主干网络,提供了更优的特征提取能力和网络效率。尽管有这些进展,小目标检测的精度仍面临挑战,因为传统主干网络和检测层常难以捕捉必要的细粒度特征。此外,小目标易被背景噪声掩盖或混淆,导致检测率降低和漏检(false negatives)增加。

基于这些基础,我们的工作在YOLOv8框架内引入了多项关键架构改进。我们提出ASF网络作为新型颈部(neck),设计用于根据目标尺度和上下文动态调整空间滤波器。这种自适应机制增强了特征提取能力,捕捉对小目标检测至关重要的细节空间信息。此外,我们集成了专用的小目标检测层,专门针对传统检测层可能忽略的细粒度特征。这些改进显著提升了模型对小目标的敏感度和精度,在复杂环境中实现了更优性能。

2.2.2 后处理技术

后处理技术对优化目标检测模型的结果至关重要。传统非极大抑制(NMS)技术虽有效,但常因硬性抑制准则丢弃真实正例,这对小目标检测尤为不利(小目标的边界框易重叠,导致信息严重丢失)。在密集场景中,这一问题更加突出(小目标紧密聚集)。此外,NMS的硬性阈值策略可能导致精度-召回平衡不佳,难以在多样目标尺寸和密度下实现高精度。近期提出的Soft-NMS等技术旨在解决这些问题。Soft-NMS通过逐步降低重叠边界框的置信度得分(而非直接消除),维持高召回率并提升精度。该方法在密集和杂乱环境中提升目标检测模型整体性能方面展现出潜力。

我们的方法将Soft-NMS集成到YOLOv8框架中,以增强小目标检测效果。Soft-NMS允许对重叠检测进行更精细的抑制,减少真实正例被丢弃的风险。通过引入该技术,我们的模型在小目标检测中实现了更优性能,确保在密集目标场景下结果更准确可靠。这一改进显著增强了检测系统的鲁棒性和有效性,确保在实际应用中具备高精度和召回率。

3 方法

3.1 ASF机制集成

Image
图1:网络结构:SOD-YOLO

标准YOLOv8架构采用序列化颈部(neck)设计,通过卷积(Conv)、C2f(增强残差块)和SPPF(空间金字塔池化融合)层逐步下采样并丰富特征图[19]。其头部(head)拼接多尺度特征(P3、P4、P5),并通过检测层进行目标预测。

针对无人机视角下的小目标检测,我们创新性地将自适应尺度融合(ASF)机制(最初为细胞实例分割开发[15])集成到YOLOv8框架中,如图1所示。改进主要集中在新型尺度序列(ScalSeq)特征融合模块和基于ASF注意力的精化模块。

尺度序列(ScalSeq)特征融合:与YOLOv8采用的简单拼接策略不同,我们的颈部在特征聚合的关键阶段引入两个ScalSeq模块实例。每个ScalSeq单元接收来自不同尺度的三个输入特征图(即YOLOv8架构中定义的P3、P4、P5)。首先,每个特征图通过1×1卷积统一通道维度。随后,P4和P5特征图通过最近邻插值上采样,以匹配P3的空间分辨率。

空间对齐后,三个特征图沿新引入的“尺度”维度视为序列。沿此维度应用核大小为(1,1,1)的3D卷积,使模型能够学习跨尺度语义融合和上下文表征。该操作后接沿尺度维度的批归一化和LeakyReLU激活函数。最后,采用核大小为(3,1,1)的3D最大池化压缩尺度维度,得到标准2D特征图。ScalSeq模块的输出替代了YOLOv8颈部中常用的传统拼接机制,提供更具表达力和结构化的多尺度信息融合。

基于ASF注意力的精化:在每个ScalSeq模块后,我们引入名为attention_model的轻量级注意力块,进一步精化融合特征。该块实现自适应尺度融合(ASF)注意力机制。它接收两个特征图作为输入,并依次对第一个输入特征图应用通道注意力模块。通道注意力的结果与第二个输入特征图相加。最后,对相加后的特征图应用局部注意力模块。这种通道与局部注意力的顺序应用,使网络能够选择性强调无人机影像中普遍存在的信息性特征并抑制噪声。精化后的ASF增强特征随后用于颈部的后续层或作为跳接连接的一部分,改善最终预测阶段前上采样特征的质量。

相较于YOLOv8,颈部结构的这些修改实现了更复杂的多尺度特征融合,使SOD-YOLO在保持实时无人机应用所需计算效率的同时,更好地保留了检测小目标所需的细节信息。

3.2 小目标检测层

为增强无人机影像中小目标的检测能力,我们在网络P2层引入额外检测头,如图1所示。与标准检测头(P3、P4、P5)不同,后者对应更深层、更抽象且空间分辨率更低的特征表示,而P2层基于主干网络早期阶段的高分辨率特征图。这些浅层保留了更多细粒度空间信息(如目标边界、纹理和边缘),这些是航拍场景中检测小尺度目标的关键线索[21][22]。

引入P2检测层的理论依据在于小目标的固有特性:在高空无人机影像中,小目标通常仅占极少数像素,且易被深层下采样稀释或淹没[23]。尽管P3已提供中等分辨率,但可能因步幅卷积丢失关键局部细节。相比之下,P2保留更精细的空间粒度,并捕获更适合识别小目标的低层视觉特征,尤其在复杂背景和遮挡情况下。

为有效利用这些高分辨率特征,我们首先对主干网络选定的特征图进行上采样,并与浅层输出拼接,形成结合空间细节和上下文深度的丰富特征集。该复合特征通过C2f模块精化——C2f是一种增强残差块,旨在保留关键边缘和形状信息的同时实现有效特征融合[16]。

随后,处理后的P2特征图通过尺度序列(ScalSeq)模块,聚合多尺度信息并强调小目标表征。最终,精化后的P2输出与现有P3-P5检测头集成,形成多分辨率检测头组合。该设计确保了对目标尺度的全面覆盖,特别提升了模型对小目标和密集分布目标的敏感度和精度。

总体而言,P2检测层的引入为模型提供了早期阶段的空间线索,增强了无人机视觉应用中典型小目标检测任务的鲁棒性。它桥接了高分辨率局部特征与深层语义理解之间的鸿沟,显著提升了杂乱和尺度变异航拍环境中的检测精度。

表1:不同目标检测器在VisDrone2019-DET验证集上的对比。
模型$\mathrm{mAP_{50:95}}$$\mathrm{mAP_{50}}$参数(百万)FLOPs(十亿)
YOLOv5-m(2020)[10]0.2250.38520.848.1
YOLOv7-m(2022)[11]0.2650.47236.9103.5
YOLOv8-m(2023)0.2580.43625.878.7
YOLOv9-gelan-c(2024)[12]0.3050.48925.2101.8
YOLOv10-l(2024)[13]0.2860.46225.7126.4
SOD-YOLO(我们的)0.3510.52622.694.9
表2:消融实验
模型$\mathrm{mAP_{50:95}}$$\mathrm{mAP_{50}}$FLOPs(十亿)
基线(YOLOv8-m)0.2580.43678.7
+ASF0.265(+0.007)0.440(+0.004)82.7(+4.0)
+ASF+P20.294(+0.036)0.476(+0.040)94.9(+16.2)
+ASF+P2+Soft-NMS0.352(+0.094)0.526(+0.090)94.9

3.3 Soft-NMS集成

NMS是目标检测模型中的关键后处理技术,用于移除冗余重叠边界框。传统NMS算法在当前检测框与最高分框的IoU超过阈值时,将当前框的得分置为0[25]。这种方法可能导致包含目标的检测框因重叠而被丢弃,降低小目标的召回率。

为解决潜在丢弃含目标检测框的问题,本研究采用Soft-NMS算法[18]。与传统NMS不同,Soft-NMS通过加权函数调整当前检测框的得分,降低与最高分框重叠的邻近框得分。重叠程度越高,得分衰减越快。该方法避免了移除含目标的框,也防止了两个相似框同时检测同一目标的情况。本研究采用的Soft-NMS算法考虑了检测框之间的重叠,相比传统NMS减少了漏检(false negative)的可能性,从而提升了小目标检测的准确性和可靠性。

传统NMS算法可用分数重置函数表示为:

Si={siIoU(A,Bi)<Nt0IoU(A,Bi)≥NtS_{i}=\begin{cases}{s_{i}} & {\mathrm{IoU}(A,B_{i})<N_{t}}\\ {0} & {\mathrm{IoU}(A,B_{i})\geq N_{t}}\end{cases}Si={si0IoU(A,Bi)<NtIoU(A,Bi)Nt

Soft-NMS算法可用分数重置函数表示为:

Si={siIoU(A,Bi)<Ntsi(1−IoU(A,Bi))IoU(A,Bi)≥NtS_{i}=\begin{cases}{s_{i}} & {\mathrm{IoU}(A,B_{i})<N_{t}}\\ {s_{i}(1-\mathrm{IoU}(A,B_{i}))} & {\mathrm{IoU}(A,B_{i})\geq N_{t}}\end{cases}Si={sisi(1IoU(A,Bi))IoU(A,Bi)<NtIoU(A,Bi)Nt

在方程(1)和(2)中,SiS_{i}Si表示第iii个检测框的得分;AAA表示感兴趣区域内最高置信度的检测框;BiB_{i}Bi表示第iii个检测框;IoU\mathrm{IoU}IoU表示第iii个检测框与AAA的重叠度;NtN_{t}Nt表示校准后的重叠阈值。

4 实验

4.1 实验设置概述

为验证我们提出的SOD-YOLO模型在无人机影像小目标检测中的有效性和鲁棒性,我们在多种场景下开展了广泛实验。实验设置的设计目标如下:

  • 评估目标:评估SOD-YOLO在复杂航拍场景中检测小目标和密集目标的能力,并验证其对基线YOLOv8-m模型的改进效果。
  • 评估指标:我们主要报告IoU阈值为0.5(mAP@0.5\mathrm{mAP@0.5}mAP@0.5)和0.5:0.95(mAP@0.5:0.95\mathrm{mAP@0.5:0.95}mAP@0.5:0.95)的平均精度(mAP),以及数据集定义的小目标检测专项指标。
  • 对比基线:我们将SOD-YOLO与基线YOLOv8-m及其他先进方法对比。为确保公平性,所有模型在相同设置下训练和评估。

4.2 数据集

VisDrone2019-DET。我们在广泛使用的VisDrone2019-DET数据集[14]上评估模型,该数据集是无人机目标检测的权威基准。数据集包含来自中国多城市的10,209张静态图像和288段无人机视频的261,908帧,涵盖多样场景(城市与乡村)、目标尺度和密度。静态图像集划分为6,471张训练集、548张验证集和1,610张测试集。

VisDrone定义了10个目标类别:行人、人群、自行车、汽车、厢式车、卡车、三轮车、遮阳三轮车、公交车和摩托车。值得注意的是,超过75%的标注目标面积小于图像的0.1%,凸显了小目标和微小目标的占比。目标分布还呈现明显的中心偏置,这支持了中心聚焦增强策略的合理性。

4.3 实现细节

训练环境。所有实验在配备单块NVIDIA RTX 4090 GPU的工作站上开展。模型主干为CSPDarknet53,使用随机梯度下降(SGD)优化器训练,采用余弦学习率调度和预热策略。

主要超参数

  • 初始学习率:3个epoch内线性预热至0.005
  • 权重衰减:0.0005
  • 动量:0.937
  • 总训练轮数:200
  • 输入图像尺寸:640×640
  • 批量大小:8

更多超参数设置和实现细节请参考我们的GitHub仓库:https://github.com/iamwangxiaobai/SOD-YOLO。

Image
图2:YOLOv8与SOD-YOLO检测性能对比。

4.4 评估准则

目标检测算法的常用评估指标包括交并比(IoU)、精确率(Precision)、召回率(Recall)和平均精度(mAP)。详细定义如下:

  1. IoU(交并比):IoU通过计算预测区域(AAA)与真实标注(BBB)的重叠面积除以两者的并集面积得到,公式为:
    IoU=∣A∩B∣∣A∪B∣\mathrm{IoU} = \frac{|A \cap B|}{|A \cup B|}IoU=ABAB
    IoU取值范围为0到1。值越大表示预测越精准。分子(重叠部分)越小说明预测未准确覆盖真实目标,分母(并集)越大说明预测区域过广,导致IoU降低。

  2. 精确率(Precision):精确率表示预测为正的样本中实际为正的比例,定义为:
    Precision=True PositivesTrue Positives+False Positives\mathrm{Precision} = \frac{\mathrm{True~Positives}}{\mathrm{True~Positives} + \mathrm{False~Positives}}Precision=True Positives+False PositivesTrue Positives

  3. 召回率(Recall):召回率表示实际为正的样本中被正确预测的比例,计算公式为:
    Recall=True PositivesTrue Positives+False Negatives\mathrm{Recall} = \frac{\mathrm{True~Positives}}{\mathrm{True~Positives} + \mathrm{False~Negatives}}Recall=True Positives+False NegativesTrue Positives

  4. mAP(平均精度):平均精度(AP\mathrm{AP}AP)是精确率-召回率(PR)曲线上不同召回阈值处的精确率平均值。mAP是所有类别AP\mathrm{AP}AP的均值。其中,mAP50\mathrm{mAP_{50}}mAP50表示IoU阈值为0.5时的mAP,mAP50:95\mathrm{mAP_{50:95}}mAP50:95表示IoU阈值从0.5到0.95的均值mAP。

4.5 结果与对比

我们选择YOLOv8-m作为基线模型,并在以小目标为主的VisDrone2019-DET数据集上与多种先进目标检测器对比。VisDrone2019-DET验证集的结果如表1所示。对比YOLOv8-m与改进后的SOD-YOLO算法可知,SOD-YOLO在小目标检测上显著优于基线。具体而言,SOD-YOLO的mAP50:95\mathrm{mAP_{50:95}}mAP50:95达到0.351,较YOLOv8-m的0.258提升0.093;mAP50\mathrm{mAP_{50}}mAP50达到0.526,较YOLOv8-m的0.436提升0.09。这表明SOD-YOLO在小目标检测上性能更优,尤其在更高IoU阈值下表现出更好的精度和召回平衡。此外,对比YOLOv9-gelan-c和YOLOv10-l等模型,SOD-YOLO仍具竞争力:其mAP50:95\mathrm{mAP_{50:95}}mAP50:95(0.351)和mAP50\mathrm{mAP_{50}}mAP50(0.526)均超过YOLOv9-gelan-c(0.305和0.489),尽管两者参数量相近。这凸显了SOD-YOLO在检测精度与计算成本间的平衡优势。同时,SOD-YOLO保持了较低的参数量(22.6M)和有竞争力的FLOPs(94.9G),相比YOLOv7-m(36.9M参数,103.5G FLOPs)等模型更高效。因此,SOD-YOLO以适中的计算需求实现了小目标检测性能的提升。

图2展示了基线YOLOv8-m与SOD-YOLO在同一城市无人机图像上的检测结果。对比可见,SOD-YOLO在小目标和部分遮挡目标的检测能力上显著提升。例如,SOD-YOLO成功识别了YOLOv8-m漏检或误分类的多个路边行人(如靠近人行横道和路缘的儿童),而YOLOv8-m对此类目标存在漏检或误判为其他类别。此外,SOD-YOLO对中远距离的车辆和摩托车检测置信度更高,而YOLOv8-m对此类目标常遗漏或赋予低置信度边界框。SOD-YOLO在边界框定位和类别区分上的优势体现在其能正确区分卡车、厢式车和汽车,而YOLOv8-m对相似尺寸的车辆类别存在混淆。

这些视觉对比证实,SOD-YOLO中引入的ASF模块、P2检测层和Soft-NMS等改进,有效提升了无人机场景下密集、小目标和遮挡目标的检测性能。

4.6 消融实验

我们通过消融实验评估SOD-YOLO各组件的贡献,结果如表2所示。表中红色数值表示性能提升,绿色表示下降。基线模型YOLOv8-m的mAP50:95\mathrm{mAP_{50:95}}mAP50:95为0.258,mAP50\mathrm{mAP_{50}}mAP50为0.436,计算复杂度为78.7 GFLOPs。在模型颈部引入注意力融合策略(ASF)后,mAP50:95\mathrm{mAP_{50:95}}mAP50:95提升至0.265(+0.007),mAP50\mathrm{mAP_{50}}mAP50提升至0.440(+0.004),但FLOPs增至82.7G。进一步添加P2层(利用高分辨率特征图的小目标专用检测头)后,mAP50:95\mathrm{mAP_{50:95}}mAP50:95增至0.294(+0.036),mAP50\mathrm{mAP_{50}}mAP50增至0.476(+0.040),FLOPs升至94.9G。最后,集成Soft-NMS(通过软惩罚重叠框优化置信度)后,性能显著提升,mAP50:95\mathrm{mAP_{50:95}}mAP50:95达到0.352(+0.094),mAP50\mathrm{mAP_{50}}mAP50达到0.526(+0.090),且FLOPs保持在94.9G。结果表明,各组件均对模型性能有贡献,ASF、P2和Soft-NMS的联合作用带来了显著提升。

5 结论

本文提出了SOD-YOLO,一种针对无人机影像小目标检测的增强型YOLOv8算法。通过集成ASF机制、引入专用P2检测层和实施Soft-NMS,检测性能显著提升。ASF机制通过聚焦关键区域增强空间特征提取,使模型更好检测小目标和密集目标;P2检测层利用更低特征尺度捕捉更精细细节,提升小目标检测能力;Soft-NMS通过软惩罚重叠框而非直接丢弃,减少假阳性。在VisDrone2019-DET数据集上的实验表明,SOD-YOLO的mAP50:95\mathrm{mAP_{50:95}}mAP50:95mAP50\mathrm{mAP_{50}}mAP50较基线YOLOv8分别提升36.1%和20.6%,验证了其在复杂无人机场景下处理小目标的有效性。

尽管取得显著改进,我们的工作仍存在局限。首先,ASF机制和P2检测层虽提升了小目标检测精度,但增加了模型计算复杂度,可能影响实时性能,尤其在计算资源受限的场景下。因此,未来工作可聚焦通过轻量化设计优化模型计算效率,确保实时应用中的性能。

致谢

本研究由国家自然科学基金(项目编号:72101189)资助。

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

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

相关文章

监督微调-指令微调-偏好微调

有监督微调 有监督微调是使用输入及其标签对的典型情况。例如&#xff0c;判断邮件是垃圾邮件还是非垃圾邮件&#xff0c;判断情感是积极还是消极。根据文档的主要主题对其进行分类也是一种常见应用。模型会将输入文本的相应表示&#xff08;隐藏状态或嵌入向量&#xff09;作为…

楼宇自控系统对建筑碳中和目标的实现具重要价值

随着全球气候变化问题日益严峻&#xff0c;建筑行业作为碳排放的重要来源之一&#xff0c;其节能减排工作备受关注。楼宇自控系统&#xff08;Building Automation System&#xff0c;BAS&#xff09;作为智能建筑的核心组成部分&#xff0c;通过集成控制、监测和管理建筑内的各…

【YOLO学习笔记】YOLOv5详解

一、数据增强 mosaic仿射变换与透视变换Mixup mosaic代码位置仿射变换 与 透视变换​代码片段位置 二、网络结构 1. 网络不同尺寸 nsmlx与网络深宽度 yolov5 官方提供了5个目标检测的网络版本&#xff1a;yolov5n、yolov5s、yolov5m、yolov5l、yolov5x &#xff0c;早年是…

WebRTC前处理模块技术详解:音频3A处理与视频优化实践

一、WebRTC前处理模块概述 WebRTC&#xff08;Web Real-Time Communication&#xff09;作为实时音视频通信的核心技术&#xff0c;其前处理模块是提升媒体质量的关键环节。该模块位于媒体采集与编码之间&#xff0c;通过对原始音频/视频数据进行优化处理&#xff0c;解决实时…

ssm复习

Spring Framework系统架构核心容器的学习IOC/DIIOC容器IOC使用对象时,由主动new产生的对象转换为由外部提供对象,此过程中对象的创建的控制权交由外部,此思想称为控制反转, (实现了自己new的解耦) 对象创建的控制权Spring提供一个容器,称为IOC容器 用来充当IOC思想的外部Bea…

ESP32:2.搭建UDP服务器

硬件&#xff1a;ESP32-Devkit-V4 MODEL:ESP32-32U 库&#xff1a;ESP-IDF v5.4.1 系统&#xff1a;windows中的虚拟机 ubuntu 22.04 实现STA&#xff0c;主动连接AP后&#xff0c;打印IP地址&#xff0c;获取IP后&#xff0c;创建socket&#xff0c;搭建UDP 服务器&#xff0…

【Linux】动静态库制作

&#x1f43c;故事背景假设今天你有一位舍友。你需要帮助他完成老师的作业。而他写的代码依赖两个文件&#xff08;mymath.h,mystdio.h&#xff09;。但是这两个文件的功能他不会写&#xff0c;他只会调用。他的调用代码:#include"mystdio.h" #include"mymath.h…

使用Database Navigator插件进行连接sqlite报错invalid or incomplete database

解决方案 &#xff0c;将这个db.sqlite3文件拷贝到盘的文件中 &#xff0c;修改文件夹名字&#xff0c;重新使用绝对路径访问 db.sqlite3&#xff0c;将路径名字的中文去掉 &#xff0c;不能有中文

【Linux】重生之从零开始学习运维之主从MGR高可用

MGR集群部署12、15、18主机环境准备ssh免密码登录\rm -rf .ssh/* ssh-keygen ssh-copy-id 127.1 scp -r .ssh 10.0.0.12:/root/ ssh root10.0.0.12还原基础环境systemctl stop mysqld \rm -rf /var/lib/mysql/* id mysqlvim /etc/my.cnf.d/mysql-server.cnf [mysqld] datadir/v…

如何在虚拟机(Linux)安装Qt5.15.2

1.进入到阿里的网站下载在线安装包 qt-official_releases-online_installers安装包下载_开源镜像站-阿里云 https://mirrors.aliyun.com/qt/official_releases/online_installers/?spma2c6h.13651104.d-5201.2.60ad4773ZZNPNm 2.下载完毕后&#xff0c;进入到下载地址&…

【运维进阶】DHCP服务配置和DNS域名解析

DHCP服务配置和DNS域名解析 DHCP 服务介绍 在大型网络中&#xff0c;系统静态分配IP地址面临问题&#xff1a; 确保不要同时在多个系统上使用同一个地址。部署新系统通常需要手动分配其IP地址。在云环境中&#xff0c;实例的网络是自动化配置的。 动态主机配置协议&#xff08;…

VisionPro MR环境下虚拟物体与现实的透明度混合

display.rgb (virtualcontent.rgb*1)(passthrough.rgb*(1 - vistualcontent.a) viirtualcontent预乘过a值了&#xff0c;跟透明度混合公式一致 人头检测挖孔不清晰问题&#xff0c;这个a值变成设备层动态检测人头的a值&#xff0c;当面前的渲染压力过大时&#xff0c;会导致…

css怪异模式(Quirks Mode)和标准模式(Standards Mode)最明显的区别

文章目录css怪异模式&#xff08;Quirks Mode&#xff09;和标准模式&#xff08;Standards Mode&#xff09;最明显的区别详细对比示例对比&#xff08;盒模型&#xff09;标准模式&#xff08;Standards Mode&#xff09;怪异模式&#xff08;Quirks Mode&#xff09;如何触发…

一种简单的3dnr去噪算法介绍

一段未经过插补的视频图像可以分解为若干帧&#xff0c;为了能正确地找到并去除图像帧中的噪声污染&#xff0c;由于视频图像各帧的连续性&#xff0c;在去噪的过程中就必须考虑帧图像的空间性和时间性&#xff0c;一个简单的例子&#xff0c;在去噪算法中就必须考虑&#xff0…

【数据结构初阶】--排序(四):归并排序

&#x1f525;个人主页&#xff1a;草莓熊Lotso &#x1f3ac;作者简介&#xff1a;C研发方向学习者 &#x1f4d6;个人专栏&#xff1a; 《C语言》 《数据结构与算法》《C语言刷题集》《Leetcode刷题指南》 ⭐️人生格言&#xff1a;生活是默默的坚持&#xff0c;毅力是永久的…

GaussDB 并行创建索引

1 背景当业务数据在单表存储达到一定的数量级时&#xff0c;此时对表创建索引是要花费时间的。GaussDB为了解决这个问题采用并行创建索引技术&#xff0c;以提高创建索引的效率。2 示例步骤1&#xff1a;根据实际情况调整maintenance_work_mem参数该大小。[Rubydtest1 ~]$ gsq…

LOOP Finance:一场 Web3 共和国中的金融制度实验

LOOP Finance 是建构于币安智能链&#xff08;BNB Chain&#xff09;上的定投型DEFI理财协议。 它以凯因斯经济学为启发&#xff0c;设计出一套长期、安全、稳定收益的全新DEFI玩法&#xff0c;兼顾稳健利息回报与DEFI高速成长的潜力。 通过生态机制&#xff0c;LOOP要求每位参…

【golang面试题】Golang递归函数完全指南:从入门到性能优化

引言&#xff1a;递归的本质与挑战 在Golang中&#xff0c;递归函数是一把锋利的双刃剑。它通过函数自身调用实现问题分解&#xff0c;让代码变得简洁优雅&#xff0c;但也容易因无限递归、栈溢出或性能问题让开发者陷入困境。本文将从基础到高级&#xff0c;全面解析Golang递归…

功能安全和网络安全的综合保障流程

摘要网络物理系统是控制机械部件的计算机化系统。这些系统必须既功能安全又网络安全。因此&#xff0c;已建立的功能安全与网络安全标准需求创建网络安全档案&#xff08;ACs&#xff09;&#xff0c;以论证系统是功能安全与网络安全的&#xff0c;即所有功能安全与网络安全目标…

数据科学首战:用机器学习预测世界杯冠军

数据科学首战&#xff1a;用机器学习预测世界杯冠军Scikit-learn实战&#xff1a;从数据清洗到冠军预测的完整指南一、足球预测&#xff1a;数据科学的终极挑战​​世界杯数据价值​​&#xff1a;历史比赛数据&#xff1a;44,000场球队特征指标&#xff1a;200球员数据点&…