https://arxiv.org/pdf/2507.12087

摘要

从无人机(UAV)视角对小型敏捷多目标(SMOT)——例如鸟类——进行跟踪是一项极具挑战性的计算机视觉任务。该任务的难点主要源于三个方面:目标外观特征极度稀缺、相机与目标自身复合动态所导致的复杂运动纠缠,以及密集群集行为引发的频繁遮挡与身份模糊问题。本文详细阐述了我们在MVA 2025“寻找鸟类”小目标多目标跟踪挑战赛(SMOT4SB)中夺冠的解决方案,该方案采用基于检测的跟踪范式,并在检测和关联层面进行了针对性创新。在检测方面,我们提出了一种名为SliceTrain的系统性训练增强框架。该框架通过“确定性全覆盖切片”与“切片级随机增强”的协同作用,有效解决了高分辨率图像训练中小目标学习不足的问题。在跟踪方面,我们设计了一种完全不依赖外观信息的鲁棒跟踪器。通过将运动方向维持(EMA)机制和结合边界框扩展与距离惩罚的自适应相似度度量集成至OC-SORT框架中,我们的跟踪器能够稳定处理不规则运动并维持目标身份。本方法在SMOT4SB公开测试集上达到了最先进的性能,SO-HOTA得分为55.205,充分验证了该框架在解决复杂现实世界SMOT问题中的有效性与先进性。源代码将发布于https://github.com/Salvatore-Love/YOLOv8-SM0T。

1 引言

随着无人机(UAV)技术在自主系统领域的普及,其作为空中感知平台的应用已变得日益广泛,特别是在生态监测、农业检查和公共安全等领域[10,13]。尽管无人机为捕捉广域场景提供了前所未有的灵活性和视角,但也给计算机视觉算法带来了严峻挑战。在这些应用中,视频序列中多个小移动目标的持续定位和身份维护,即小目标多目标跟踪(SMOT),是一项特别关键且艰巨的基础任务。

从无人机视角进行SMOT任务,特别是跟踪鸟类等敏捷生物时,比传统的多目标跟踪(MOT)场景[15,30]要复杂得多。这种复杂性源于三个核心挑战的相互作用:

外观信息极度稀缺:目标通常只占据几十个像素,几乎不含可区分的纹理或颜色特征。这从根本上使依赖外观模型进行重识别(Re-ID)的经典跟踪范式失效,例如DeepSORT[22]。

复杂运动纠缠[25]:跟踪器不仅要处理目标在三维空间中的自由非线性运动,还要应对由无人机自身复杂平移、旋转和高度变化引起的剧烈相机运动。这两种运动模式的叠加导致图像平面中目标的表观运动极其复杂且不可预测,使依赖线性运动模型(如卡尔曼滤波器[2])的传统方法频繁出现跟踪失败。

密集集群动态[18]:鸟类独特的集群行为导致目标之间频繁且严重的遮挡,个体之间外观和运动模式高度相似。这仅通过运动信息(不依赖外观特征)来维持个体身份连续性提出了极端考验,极易产生大量身份切换(ID Switch)错误。

尽管基于检测跟踪[2,22]、联合检测与跟踪[21,28]和Transformer[19,26]的范式在一般MOT任务中取得了显著进展,但它们难以直接解决上述三个挑战的累积效应。为系统推进这一领域,MVA 2025组织了"寻找鸟类"小目标多目标跟踪挑战赛(SMOT4SB)[8],提供了首个为这种极端场景设计的大规模数据集和新的评估指标SO-HOTA[9]。

本文介绍了我们在该挑战赛中的冠军解决方案。我们认为,要解决这个问题,必须构建一个能够协同解决检测和关联瓶颈的框架。为此,我们提出了一种高效的基于检测跟踪系统,其核心贡献体现在两个方面,每个方面都精确针对上述挑战:

  1. 针对信息稀缺的检测器优化:为从根本上解决小目标检测问题,我们提出了一种称为SliceTrain的系统性训练数据增强框架。通过"确定性全覆盖切片"和"切片级随机增强"的两阶段过程,该框架在不牺牲信息完整性的情况下显著丰富了训练样本的多样性和信息密度。这使得检测器(YOLOv8)能够在有限计算资源下以更大的批量大小高效训练,从而显著增强其对微小目标的特征捕获和定位能力[17]。

  2. 针对复杂动态的鲁棒跟踪器:为解决运动纠缠和集群行为带来的关联挑战,我们设计了一种完全不依赖外观特征的跟踪器。我们在OC-SORT[31]框架中深度增强,引入了运动方向维持机制以平滑非线性运动中的噪声,并设计了一种自适应相似性度量。该度量结合了边界框扩展和距离惩罚,有效解决了由目标尺寸小和频繁近距离交叉引起的匹配困难。

我们的方法在SMOT4SB数据集上取得了最先进的性能,在公共测试集上达到55.205的SO-HOTA分数,验证了我们的框架在解决复杂现实世界SMOT任务方面的先进性和有效性。

2 相关工作

多目标跟踪(MOT)。MOT领域的主导范式是"基于检测跟踪"[2,22],它将检测和关联解耦,允许独立优化每个模块。SORT[2]和DeepSORT[22]等经典算法使用卡尔曼滤波器进行运动预测,并结合IoU或外观特征进行数据关联。近年来,研究人员提出了联合检测和跟踪框架[21,28]和端到端Transformer架构[19]以提高效率和准确性。然而,这些一般MOT方法大多依赖于MOTChallenge系列[15]等数据集,其中主要目标是行人或车辆,通常较大且具有明显的外观特征,与SMOT场景有显著差异。

小目标检测(SOD)。小目标检测(SOD)旨在解决目标尺寸小导致的外观线索有限问题[13]。传统方法通过多尺度特征融合(如特征金字塔网络FPN[12])和数据增强[31]来提高性能。在航拍图像等场景中,目标微小且密集,对检测器的要求特别严格。VisDrone[30]等基准数据集的出现推动了该领域的发展。在数据层面,虽然传统随机裁剪可以增加数据多样性,但其采样过程是随机的。对于高分辨率图像中稀疏的小目标,可能在多次迭代中无法有效采样它们,导致信息利用不足。像Slicing Aided Hyper Inference (SAHI)[1]等方法主要关注使用切片辅助推理,其训练阶段的切片相对简单。

相比之下,我们提出的SliceTrain框架专注于构建更优的训练范式。它不是简单的随机裁剪,而是通过系统性的全覆盖切片确保100%利用原始数据。它不仅用于数据分割,还在切片后应用细粒度增强变换,创建具有高信息密度和多样性的训练集。该设计旨在解决传统方法中数据利用全面性与多样性之间的固有冲突。

小目标多目标跟踪(SMOT)。SMOT任务的核心挑战是如何在外观特征几乎无法使用时进行可靠的跨帧关联[13]。现有的SMOT数据集,如UAVDT[5]和VisDrone[30],主要关注城市环境中运动受限的目标。然而,SMOT4SB数据集是首个系统引入"运动纠缠"[25]挑战的数据集,其中相机和目标都在三维空间中自由移动。这种复杂的相对运动模式使仅依赖运动预测变得极其困难,对跟踪器的鲁棒性提出了更高要求。这促使我们设计一种不依赖外观信息的跟踪算法,而是深度挖掘和利用运动一致性和相似性度量。

3 方法

我们的跟踪框架按照基于检测跟踪范式设计,该范式将检测和跟踪匹配过程解耦。这种范式允许我们分别优化检测器和跟踪器,以构建接近最优的MOT模型。

3.1 检测器

我们的检测模块基于强大的YOLOv8模型,其性能飞跃主要归功于我们设计的SliceTrain框架。该框架在训练前预处理数据,其核心机制分为两个关键步骤:首先,通过高质量微调增强模型对细微细节的感知,然后在原始全尺寸图像上进行高效推理。
在这里插入图片描述

图1: 模型概述。

3.1.1 SliceTrain框架:克服分辨率-多样性困境

高质量小目标检测在处理高分辨率图像时,通常面临一个核心困境:分辨率-多样性困境。一方面,高分辨率输入(例如3840×2160)是捕获微小目标细节的关键。另一方面,巨大的内存开销将批量大小限制为极小值(例如1或2),导致训练样本单调、梯度更新不稳定,模型难以学习泛化特征[17,1]。

为克服这一困境,我们设计了SliceTrain,一个系统性的训练数据增强框架。它不是简单的切片操作,而是通过两个互补的核心步骤构建具有极高信息密度和多样性的数据流:确定性全覆盖平铺和切片级随机增强。

步骤1:确定性全覆盖平铺 该原则旨在将高分辨率图像无损分解为模型可处理的单元,同时确保信息完整性。我们使用重叠滑动窗口确定性地将每个高分辨率图像分割为一组"平铺"(例如,切成1280×1280的平铺,具有一定的重叠比例)。与随机裁剪不同,这种确定性网格划分确保原始图像的每个像素都被至少一个平铺覆盖,实现空间信息的无损利用。重叠设计确保位于切片边界的对象完全包含在至少一个平铺中,从根本上防止因分割而导致的目标信息丢失。

步骤2:切片级随机增强 该原则旨在向模型注入最大数据多样性。获得全覆盖平铺集后,框架将每个平铺视为独立的图像样本,并应用一系列强随机数据增强(例如Mosaic、颜色抖动、随机几何变换)。关键是增强在切片级别独立应用。这意味着在构建训练批次时,模型看到的不仅是来自不同源图像的平铺,还有经过不同视觉变换的样本。

框架效果:构建高密度、高多样性训练批次 SliceTrain框架的最终输出是一个高质量训练数据流,在信息密度和场景多样性方面都超越传统方法。当模型从此数据流中采样一个批次时,它不再暴露于少数完整、相对稀疏的图像,而是由来自不同源图像、不同空间位置并经过不同视觉变换的平铺组成的高密度样本集。这种设计将每次梯度更新转变为信息丰富、多维度的学习事件,从根本上加速模型收敛并增强其对复杂现实场景的泛化能力。

3.1.2 全尺寸推理

尽管模型是在SliceTrain框架上训练的,但在推理阶段,我们直接将其应用于原始、未切片的全尺寸测试图像。

这种"训练切片、推理全尺寸"的不对称策略是我们的检测器高效且高精度的关键。它巧妙地绕过了推理时的切片、预测和拼接的复杂过程,从而避免了额外的计算开销和图像拼接引入的潜在错误。通过在子图像上进行高强度微调,我们的模型对小目标变得异常敏感。当它在全尺寸图像上进行推理时,这种"放大"的感知能力使其能够准确定位在广阔背景中容易被忽视的那些微小目标。该方法保留了场景的全局上下文,同时充分利用了细粒度训练的优势,最终形成一个既快速又准确的检测过程。

3.2 跟踪器

3.2.1 预备知识

我们提出的跟踪器是Observation-Centric SORT (OC-SORT)框架[31]与ByteTrack[27]的增强,它们在目标太小时通常不可靠,因此实现不依赖外观特征的匹配。为明确我们的贡献,我们首先简要概述OC-SORT的预备概念,它通过优先考虑检测器观测而非模型预测的多阶段策略改进传统跟踪器,特别是在具有挑战性的场景中。

为简化说明,我们用TTT表示可能的跟踪检测,并根据检测置信度分数将其分为3种类型:

τhigh={t∣t∈T and score(x)≥thresholdtrack−high}τlow={t∣t∈T and thresholdhigh>score(x)≥thresholdlow}τdiscard={t∣t∈T and score(x)<thresholdlow}\begin{array}{r l}{\tau_{\mathrm{high}}}&{=\{t\mid t\in T\mathrm{~and~}\mathrm{score}(x)\geq\mathrm{threshold}_{\mathrm{track-high}}\}}\\ {\tau_{\mathrm{low}}}&{=\{t\mid t\in T\mathrm{~and~}\mathrm{threshold}_{\mathrm{high}}>\mathrm{score}(x)\geq\mathrm{threshold}_{\mathrm{low}}\}}\\ {\tau_{\mathrm{discard}}}&{=\{t\mid t\in T\mathrm{~and~}\mathrm{score}(x)<\mathrm{threshold}_{\mathrm{low}}\}}\end{array}τhighτlowτdiscard={ttT and score(x)thresholdtrackhigh}={ttT and thresholdhigh>score(x)thresholdlow}={ttT and score(x)<thresholdlow}

OC-SORT通过一系列专门的过滤和更新阶段改进了标准的基于检测跟踪范式:

增强关联:在主要匹配步骤中,OC-SORT补充了标准IoU成本,为匹配τhigh\tau_{\mathrm{high}}τhigh使用了基于历史观测计算的运动方向得出的观测中心动量(OCM)。与来自卡尔曼滤波器的嘈杂速度估计相比,这提供了更稳定的关联线索。

二次匹配:在下一个匹配步骤中,跟踪器专注于τlow\tau_{\mathrm{low}}τlow。这些通常是目标被遮挡的轨迹。关联仅使用IoU作为相似性度量进行。此步骤对于维持轨迹连续性至关重要,因为它通过"拯救"低分但有效的检测,有效地将轨迹链接通过部分或完全遮挡期。此阶段后仍未匹配的检测(除τhigh\tau_{\mathrm{high}}τhigh外)被丢弃为可能是背景噪声。

启发式恢复:作为最后一步,观测中心恢复(OCR)阶段对剩余未匹配的高置信度轨迹进行第二次更简单的匹配尝试。它尝试基于轨迹最后已知观测将任何剩余未匹配的轨迹和检测关联起来,有效地恢复可能已停止或短暂被遮挡的对象。

尽管OC-SORT假设跟踪目标在时间间隔内具有恒定速度,称为线性运动假设,但我们发现76.2%的标注鸟类实例的速度与前一帧相比变化不超过±20%,64.2%与前4帧相比也是如此,如图2所示。更多结果见表1。因此,我们可以认为大多数鸟类运动满足线性运动假设,OC-SORT是此MOT任务的合理选择。
在这里插入图片描述

图2: 训练数据集中所有实例的速度分布。实例比例为ttt帧和t−1t-1t1帧之间的速度与t−1t-1t1t−2t-2t2帧之间的平均速度或最后4帧的比值。

在这里插入图片描述

表1: 训练数据集上恒定速度假设的分析。该表显示速度比VV‾\frac{V}{\overline{V}}VV落在[0.8,1.2]范围内的样本百分比,表示近似匀速运动。参考速度VVV使用NNN个先前帧的窗口计算。

3.2.2 运动方向维持

外观特征信息的缺乏使小目标跟踪成为一项挑战性任务。为缓解此问题,我们需要充分利用运动特征。然而,鸟类运动的特征是缺乏规律性,反映在速度和运动方向上。这意味着对运动建模可能需要大量参数,因为人类也很难预测远处鸟类下一时刻的运动。这将导致实时性能显著下降。

作为折衷,我们提出应用指数移动平均(EMA)技术来维持历史速度方向。我们认为,EMA维持的历史速度是比简单使用目标帧前第kkk帧计算更精确的余弦方向成本的更好选择。EMA产生的额外成本不会成为实时应用的负担,并且可以避免突然转向的干扰。通过将瞬时速度表示为vinstv_{\mathrm{ins}}^{t}vinst,将历史EMA速度表示为vEMAtv_{\mathrm{EMA}}^{t}vEMAt,更新过程公式化为:

vEMAt=αvEMAt−1+(1−α)vinst−1v_{\mathrm{EMA}}^{t}=\alpha v_{\mathrm{EMA}}^{t-1}+(1-\alpha)v_{\mathrm{ins}}^{t-1}vEMAt=αvEMAt1+(1α)vinst1

3.2.3 相似性度量自适应

OC-SORT的默认相似性度量是IoU,当两个边界框不相交时变得无效,而这种情况在小目标上经常发生。小目标的这一特性使跟踪过程中的匹配变得困难。但我们提出利用这一特性:考虑到目标较小,重叠和大幅位移的可能性相对某些MOT任务较低。基于此假设,我们扩展边界框的大小以模拟普通对象匹配任务,然后再计算IoU。边界框扩展的主要思想如图3所示,与[24]类似。
在这里插入图片描述

图3: 扩展边界框后对象A和对象B的IoU计算示例。蓝色部分是检测或预测的边界框,灰色部分是扩展的边界框。IoU计算基于扩展的边界框,即灰色边界框。

此外,考虑到对象在帧之间不会表现出显著位移,我们将IoU度量与距离作为惩罚项结合,这实际上类似于DIoU[29]。为规范化此度量,可表示为:

Similarity=ExpandedIoU−NormalizedDistance+12\mathrm{Similarity}=\frac{\mathrm{ExpandedIoU}-\mathrm{NormalizedDistance}+1}{2}Similarity=2ExpandedIoUNormalizedDistance+1

4 实验

在本节中,我们使用不同参数的YOLOv8评估我们的跟踪器。我们比较了几种检测器的效果,并进行消融研究以验证我们的改进在不同场景中的鲁棒性和泛化能力。

4.1 数据集和指标

数据集。我们在SMOT4SB[9]数据集上进行了所有实验,其中大多数对象很小并呈现不规则运动模式。SMOT4SB是由UAV捕获的视频组成的数据集,包含128个训练序列、38个验证序列和45个测试序列。与普通MOT数据集[16,4]不同,SMOT4SB具有更高的难度,包括:1)目标的不规则运动,2)突然和大幅的相机移动,以及3)小目标的有限外观信息。

指标。在实验中,我们选择官方指标SO-HOTA指标(即SO-HOTA、SO-DetA和SO-AssA)[9],该指标源自HOTA指标(即HOTA、DetA和AssA)[14]。SO-HOTA引入了点距离(Dot Distance, DotD)[23]用于相似性评分,比较精确的点状对象表示。

4.2 实现细节

检测器。我们的检测器YOLOv8-SOD基于YOLOv8[7]的三种不同尺寸(L、M、S)构建。我们采用SliceTrain策略进行微调:原始高分辨率训练图像(例如2160×3840)被切成1280×1280的重叠子图像,重叠比例为20%。该策略使单个Nvidia RTX 3090 GPU上的训练批量大小从1(全图像)有效增加到6(切片图像)。所有模型都在训练集上训练,推理直接在原始全尺寸图像上执行,以确保效率和全局上下文。

跟踪器。为确定匹配中使用的IoU阈值以及与阶段2和3匹配的该阈值减少相关的超参数的最佳值,我们采用了网格搜索方法。此过程确定了0.25的最优IoU阈值和0.08的递减值。关于与置信度分数相关的跟踪阈值,我们将其设定为0.25,基于我们在训练数据集上的检测结果观察。我们在训练数据集上通过交叉验证将EMA的α\alphaα设为0.8。为简单起见,我们选择了2的扩展比例。这一决定源于我们的经验观察:当小于边界框较短维度30%的位移被忽略为相对静止运动时,大多数目标边界框的帧间x轴和y轴位移不超过其各自宽度和高度的两倍。图4提供了这些边界框运动的统计说明。
在这里插入图片描述

图4: 训练数据集中边界框水平(左)或垂直(右)位移与宽度(左)或高度(右)的比率。

4.3 基准评估

我们在公共测试数据集上进行实验。我们在表2中比较了使用相同跟踪器的不同检测器,以证明我们的跟踪器可以实现令人满意的性能和实时任务的能力。
在这里插入图片描述

表2: 在SMOT4SB公共测试数据集上不同检测器的比较。内存占用和推理速度在单个Nvidia RTX 3090 GPU上测量,分辨率为$2160\times3840$。基线模型[8]以1792×3264的分辨率测试。最佳结果以粗体显示。

如表2所示,我们的评估展示了YOLOv8检测器不同规模下模型性能与计算效率之间的明确权衡。最大的模型YOLOv8-L实现了最高的跟踪精度(SO-HOTA为55.205),但速度最低(5.70 FPS)。相比之下,最小的模型YOLOv8-S将推理速度提高了近三倍,达到17.61 FPS,并显著减少了内存使用。这种显著的效率提升仅以SO-HOTA 1.397的微小性能下降为代价,验证了其适用于需要近实时性能的应用。

此外,通过应用高级量化感知训练(QAT)方法如GPLQ[11],或实用的训练后量化(PTQ)技术如QwT[6]和QwT-v2[20],可以进一步增强我们模型的效率。这将使我们的高性能跟踪框架能够在低功耗边缘设备上部署,同时保持实时处理能力。

4.4 消融实验

为验证我们提出改进的有效性,我们进行了全面的消融研究。小目标跟踪的主要挑战之一是标准交并比(IoU)度量的不可靠性,即使对象在帧之间只有微小位移,它也经常失效。
在这里插入图片描述

表3: 训练集上不同IoU计算方法的统计结果。相邻帧位移不超过较短维度30%的边界框不包括在内。

为精确量化此问题,我们针对具有挑战性但常见的跟踪场景进行了统计分析。我们过滤了训练集,筛选出帧间位移小于边界框较短维度30%的地面真实边界框对,代表相对稳定但对标准IoU来说困难的对象。结果如表3所示,令人震惊。默认IoU度量表现极差,在第10百分位仅得0.048分。相比之下,当使用我们的边界框扩展和中心距离方法时,第10百分位分数上升到0.621,中位数分数达到0.848。这证明我们的提议度量在标准IoU失效的确切条件下提供了明显更稳健和一致的相似性信号。

这种强化度量对整体跟踪性能的直接影响在表4中详细说明。从基线SO-HOTA 44.200开始,我们逐步添加了我们的贡献。在集成用于运动稳定性的指数移动平均(EMA)后(SO-HOTA提高到47.916),我们引入了我们完整的增强相似性度量,分两步进行。首先,添加边界框扩展将SO-HOTA提升到51.387。其次,添加距离惩罚提供了最大的提升,将最终SO-HOTA提高到55.205。这证实了针对挑战性低位移条件设计并验证的稳健相似性信号(如表3所示),直接转化为卓越的跟踪精度。
在这里插入图片描述

表4: 跟踪器的演进轨迹。所有模型与YOLOv8-L一起在SMOT4SB公共数据集上评估。默认跟踪器是OC-SORT。最佳结果以粗体显示。

5 结论

在本文中,我们介绍了YOLOv8-SMOT,这是我们针对MVA 2025 SMOT4SB挑战赛的冠军解决方案,用于从UAV跟踪小而敏捷的目标。我们的基于检测跟踪方法具有两个关键创新:用于卓越小目标检测的SliceTrain框架,以及通过运动方向维持和自适应相似性度量增强的鲁棒、无外观跟踪器。以55.205的SO-HOTA分数达到最先进的性能,我们的方法展示了强大的性能。然而,我们认识到其对运动启发式的依赖是一个限制,特别是在极端运动或长时间遮挡的情况下。因此,未来工作可以探索更先进的动态模型或最小特征提取技术。我们希望这项工作为推进具有挑战性的SMOT领域的研究提供一个强大的基线和有价值的见解。

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

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

相关文章

深入理解QLabel:Qt中的文本与图像显示控件

在Qt框架中&#xff0c;QLabel是一个功能强大且灵活的控件&#xff0c;主要用于在用户界面上显示文本或图像。无论是在简单的信息提示&#xff0c;还是在复杂的图形界面中&#xff0c;QLabel都能发挥重要作用。本文将详细介绍QLabel的主要功能、使用方法以及一些高级技巧&#…

hintcon2025 Verilog OJ

#web题目要求我们执行 /readflag give me the flagif ((strcmp(argv[1], "give") | strcmp(argv[2], "me") | strcmp(argv[3], "the") | strcmp(argv[4], "flag")) ! 0) {puts("You are not worthy");return 1; }首先&#…

佳易王钟表维修养护管理系统:开启钟表维修高效管理新篇章​就#软件操作教程

前言&#xff1a; &#xff08;一&#xff09;试用版获取方式 资源下载路径&#xff1a;进入博主头像主页第一篇文章末尾&#xff0c;点击卡片按钮&#xff1b;或访问左上角博客主页&#xff0c;通过右侧按钮获取详细资料。 说明&#xff1a;下载文件为压缩包&#xff0c;使用…

mysql组提交

Binlog Group Commit1. 背景&#xff1a;没有组提交时的问题&#xff08;MySQL 5.7及更早版本的痛点&#xff09;在早期版本的MySQL中&#xff0c;为了保证二进制日志&#xff08;Binlog&#xff09; 和 存储引擎&#xff08;如InnoDB&#xff09; 之间的一致性&#xff08;即一…

C#简单组态软件开发

C#简单组态软件开发 组态软件(SCADA/HMI)是工业自动化领域的核心软件&#xff0c;用于监控和控制工业过程。 系统架构设计 一个基本的组态软件应包含以下模块&#xff1a; 图形界面编辑器设备通信模块实时数据库运行时引擎报警系统历史数据存储 开发环境搭建开发工具&#xff1…

Maya绑定:人物绑定详细案例(创建骨骼、镜像骨骼、IK创建、IK打组、IK控制器、FK控制器、烘焙动画、导出)

目录 壹 创建骨骼 1 准备一个模型 2 创建骨骼 腿部骨骼 躯体骨骼 嘴巴骨骼 披风骨骼 手臂骨骼 手指骨骼 3 给骨骼命名 4 调整关节的坐标轴 测试 5 镜像骨骼 贰 控制器 一 脚部控制 IK 1 脚部IK创建 腿部IK 脚掌IK 2 脚部IK打组 动作1&#xff1a;脚掌着地&…

手写MyBatis第46弹:多插件责任链模式的实现原理与执行顺序奥秘--MyBatis插件架构深度解析

&#x1f942;(❁◡❁)您的点赞&#x1f44d;➕评论&#x1f4dd;➕收藏⭐是作者创作的最大动力&#x1f91e;&#x1f496;&#x1f4d5;&#x1f389;&#x1f525; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4dd;欢迎留言讨论&#x1f525;&#x1f525;&am…

宜春城区光纤铺设及接口实地调研

一、研究方向与近期关注 因为课题研究的原因&#xff0c;最近对城市骨干网非常感兴趣。前期我讨论了5G&#xff0c;WiFi及自组网等无线通信网络情况&#xff0c;感兴趣的朋友可以移步我的博客阅读&#xff1a; 5G无线通信网络场景&#xff08;日常、工业&#xff09;及拓扑结…

Tomcat 企业级运维实战系列(六):综合项目实战:Java 前后端分离架构部署

Tomcat 企业级运维实战系列&#xff08;六&#xff09;&#xff1a;综合项目实战&#xff1a;Java 前后端分离架构部署一&#xff1a;概述二&#xff1a;部署1&#xff09;环境准备2&#xff09;部署数据库3&#xff09;部署后端4&#xff09;部署前端总结&#x1f680; Tomcat…

《Unity Shader入门精要》学习笔记四(高级纹理)

1、立方体纹理解释&#xff1a;站在一个完全透明的玻璃盒子中心&#xff0c;就可以看到6个面。把这个玻璃盒子的6个面都贴上一张照片。这6张照片合起来&#xff0c;就记录了周围360度的环境&#xff0c;比如蓝天、地面、建筑、树木等。在2D纹理中&#xff0c;使用坐标来找颜色&…

局域网中使用Nginx部署https前端和后端

目录 一.前端部署https 二.后端部署https 一.前端部署https 1.前端正常创建项目即可,打包后,文件夹的格式是dist 2.下载认证的证书 也可以使用其他软件,这里推荐使用mkcert,下载地址如下: Releases FiloSottile/mkcert GitHub 3.输入 mkcert -install

K8s卷机制:数据持久化与共享

在 Kubernetes&#xff08;K8s&#xff09;中&#xff0c;卷&#xff08;Volume&#xff09; 是用于解决容器内数据持久化、容器间数据共享以及与外部存储交互的核心机制。它本质上是一个可供 Pod 中容器访问的存储目录&#xff0c;生命周期独立于容器&#xff08;容器重启或销…

线性回归原理推导与应用(十一):多重共线性

多重共线性的定义与影响 多重共线性&#xff08;Multicollinearity&#xff09;是指线性回归模型中的解释变量之间由于存在精确相关关系或高度相关关系而使模型估计失真或难以估计准确。 根据定义和影响程度&#xff0c;可以将多重共线性分为极端共线性和一般共线性。极端共线…

day082-初识ElasticStack

文章目录0. 老男孩思想-人性十大需求1. ElasticStack介绍1.1 ELK&#xff08;**Elastic Stack**&#xff09;1.2 logstash和filebeat的区别2. ElasticSearch单点部署2.1 下载ElasticSearch软件包2.2 安装软件并修改配置文件2.3 启动并测试服务3. ElasticSearch集群部署3.1 安装…

软考 系统架构设计师系列知识点之杂项集萃(139)

接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(138) 第257题 系统工程利用计算机作为工具,对系统的结构、元素、()和反馈等进行分析,以达到最优()、最优设计、最优管理和最优控制的目的。霍尔(A.D.Hall)于1969年提出了系统方法的三维结构体系,通常称为霍…

solidity地址、智能合约、交易概念

目录地址address 的两种子类型&#xff08;Solidity 0.5.0&#xff09;address分类address 的常用操作和属性总结交易交易的基本结构&#xff08;由外部发起&#xff09;Gas交易生命周期函数调用与交易常见交易场景总结地址 在 Solidity 中&#xff0c;地址&#xff08;addres…

jwt原理及Java中实现

一、JWT 是什么&#xff1f;解决什么问题&#xff1f; 我们先来一张图看一下这个过程&#xff1a;JWT&#xff08;JSON Web Token&#xff09;是一种把“认证信息&#xff08;Claims&#xff09; 完整性校验”打包成 自包含 的字符串的规范。 它主要用于无状态认证&#xff1a;…

大数据在UI前端的应用深化研究:用户行为数据的跨平台关联分析

大数据在UI前端的应用深化研究&#xff1a;用户行为数据的跨平台关联分析每天&#xff0c;你在手机 App 里点了一个按钮、在网页上滑了两屏、又在小程序里停留了 3 秒&#xff0c;这些看似零散的动作&#xff0c;其实都在被悄悄记录。过去&#xff0c;这些数据只能各自躺在自己…

C++11基础——— 右值引用和移动语义

1. C11的发展历史 C11是C的第⼆个主要版本&#xff0c;并且是从C98起的最重要更新。它引入了大量更改&#xff0c;标准化了既有实践&#xff0c;并改进了对C程序员可用的抽象。在它最终由ISO在2011年8月12日采纳前&#xff0c;人们曾使用名称“C0x”&#xff0c;因为它曾被期待…

【一】Django框架版本介绍

【一】Django框架版本介绍 【一】Django框架版本 ● Django 是一个高级的Python Web框架&#xff0c;由荷兰人Armin Ronacher创建。 ● 随着版本的迭代和功能的不断优化&#xff0c;Django在处理异步请求方面也有了显著的进步。 【1】Django1.x ● 默认不支持异步 ● Django 1.…