新一代跟踪器StrongSORT: Make DeepSORT Great Again论文解析—让 DeepSORT 再次伟大

新一代跟踪器StrongSORT: Make DeepSORT Great Again论文解析—让 DeepSORT 再次伟大

时间:2023年 机构:北京邮电大学
发表在:IEEE TRANSACTIONS ON MULTIMEDIA, VOL. 25, 2023
代码源码地址:
pytorch版本:https://github.com/dyhBUPT/StrongSORT
MMTracking版本:https://github.com/open-mmlab/mmtracking.

在这里插入图片描述

在解析论文的内容之前先对StrongSORT模型进行整体的概括。StrongSORT模型是在DeepSORT模型的基础上改进所得到的。(可以理解为是2023年北邮的团队在使用现在的技术,对17年经典的DeepSort算法进行改进。)

StrongSORT它在DeepSORT的基础上进行了一系列的改进,以提高跟踪的准确性和性能。改时以下的几个地方:

  1. BoT(Bag of Tricks): 改进了外观特征提取器,它使用深度学习技术来提取目标的视觉特征,这些特征对于区分和识别不同的目标至关重要。替换了之前简单的CNN而是使用了RestNet50+BOT的结构
  2. EMA(Exponential Moving Average): 通过引入惯性项来平滑特征更新,EMA有助于减少噪声和异常值的影响,使得跟踪更加稳定。使用了指数移动平均的思想
  3. NSA(Neural Network-based Appearance): 这是一种用于非线性运动的卡尔曼滤波器,它通过神经网络来预测目标的状态,以适应更复杂的运动模式。改进了一下卡尔曼滤波的公式
  4. MC(Motion Compensation): 包括运动信息的成本矩阵,这有助于在匹配过程中更好地考虑目标的运动信息,提高匹配的准确性。加入了Motion Compensation实现了两个特征之间的关联
  5. ECC(External Camera Calibration): 摄像机运动更正,它允许算法校正摄像机的外部参数,从而提高跟踪的准确性。图像立体匹配方面的一个算法
  6. woC(Without Cascading): 不采用级联算法,这可能意味着算法避免了在不同阶段使用不同复杂度的检测器,从而提高了处理速度。更换了级联匹配的方式只使用一次匹配。

在StrongSORT模型的基础上提出了自己的两个创新点将其应用到StrongSORT中提出了StrongSORT++模型并取得了良好的成绩。

  1. AFLink(Association Graph Linking): 这是一种仅使用运动信息的全局链接方法,它在离线处理阶段用于改进跟踪结果。

  2. GSI(Gaussian Process-based Interpolation): 通过高斯过程对检测误差进行内插,这是一种后处理技术,用于进一步提高跟踪的精度。

在这里插入图片描述

摘要核心概况

  1. 论文首先重新审视了经典的跟踪器 DeepSORT,然后从目标检测特征嵌入轨迹关联等多个角度进行了显着改进从而提出了StrongSORT。

  2. 提出了两种轻量级、即插即用的算法来解决 MOT 两个固有的“缺失”问题:关联失败和没检测到(没有关联到检测框的轨迹、没有关联到轨迹的检测框

具体来说,与大多数方法不同,大多数方法以高计算复杂度将短轨迹关联成完整轨迹

  1. 提出了一种无外观链接模型(AFLink),可以在没有外观信息的情况下执行全局关联,并在速度和准确性之间取得良好的平衡。

这里的使用外观信息而进行轨迹的关联从而减少计算量是后来论文用很大的篇幅去描述的部分。

  1. 提出基于高斯过程回归的高斯平滑插值(GSI)来减少丢失检测 (插值过程中忽略了运动信息提出了这种方法来进行后处理的操作。

在这里插入图片描述

这篇论文的整个摘要部分就基本介绍完了整个论文提出的核心的工作。概括的十分简洁易懂。

引言与相关工作总结

运动特征与外观特征

在介绍解析这篇论文的过程中我们会回顾并总结一些基础的相关概念加深对MOT领域的一些理解。

  1. 运动特征与外观特征的解读:运动特征和外观特征是两种主要的特征类型,它们分别描述了目标在视频中的不同属性
  • 定义:运动特征是指目标在视频序列中随时间变化的位置、速度和加速度等动态属性。

其类型包括了:

  • 位置信息:目标在每一帧中的位置坐标。

  • 速度:目标从一个帧移动到另一个帧的速度。

  • 加速度:目标速度变化的速率。

  • 光流:描述场景中所有点的运动矢量场。

之前看的并解析的光流估计,和点跟踪相关的论文更多的使用的是运动特征来进行运动状态的估计的。

  • 应用:运动特征常用于预测目标在下一帧的位置,以及处理遮挡和相似目标的问题。

优点:对光照变化和背景变化具有较好的鲁棒性。缺点:可能受到快速运动和复杂场景中遮挡的影响。

外观特征(Appearance Features):外观特征是指目标的视觉外观,包括颜色、纹理、形状等静态属性。
其类型包括了:

  • 颜色特征:目标的颜色分布,如直方图、颜色矩等。
  • 纹理特征:目标的纹理信息,如局部二值模式(LBP)、Gabor特征等。
  • 形状特征:目标的轮廓或几何形状,如边缘检测、轮廓跟踪等。

这里可以这么理解Reid特征也就是DeepSort中Reid网络用来进一步提取128维度的外观特征向量,通过级联匹配来进行配对这里更多用到的就是外观特征
E
应用:外观特征用于描述和识别目标的外观,有助于在相似目标中区分特定目标 对光照变化、遮挡和视角变化较为敏感。出现遮挡很难提取外观的特征

TBD与JDE范式

MOT任务一直以检测跟踪(TBD)范式为主 Tracking by Detection的模式。

  1. 它执行每帧检测并将MOT问题表述为数据关联任务。 TBD 方法倾向于首先提取外观和/或运动嵌入,然后执行二分图匹配。受益于高性能的目标检测模型,TBD方法因其优异的性能而受到青睐

很依赖与检测器的性能条件。

  1. 向于使用各种检测器和 ReID 模型来提高 MOT 性能 [18, 39],这使得很难在它们之间构建公平的比较

这里作者就说他提出的StrongSORT可以作为新的一种基线模型?

  1. 提到了DeepSORT 的表现不佳是因为其技术过时,而不是其跟踪范式
  • 为DeepSORT配备了强大的检测器YOLOX
  • 一个新的重识别技术
  • 一个数据关联的改进方法
  1. 提出模型的动机作者自己总结为了:
  1. 它可以作为不同跟踪方法之间公平比较的基线,特别是对于通过检测进行跟踪的跟踪器。
  2. 与弱基线相比,较强的基线可以更好地证明方法的有效性。
  3. 精心收集的推理技巧可以应用于其他跟踪器,而无需重新训练模型。这可以有利于学术界和工业界的一些任务。

在这里插入图片描述

  1. 读完引言的第一个部分之后我产生了一些问题,并结合的查询了一些资料进行补充和说明。
  1. JDE这种联合跟踪的范式指的是什么呢?

联合跟踪器(Joint Detection and Tracking)指的是一种多目标跟踪(MOT)算法框架,它在一个共享神经网络中同时学习目标检测(Detection)和目标嵌入(Embedding),即同时进行检测和跟踪。这种框架通过多任务学习的思路共享特征学习网络参数并设置损失函数,实现目标检测和重识别(ReID)的交互和促进。与基于检测的跟踪(Detection-based Tracking)方法不同,联合跟踪器将检测和跟踪过程集成在一个端到端的模型中,从而提高了目标跟踪的效率和准确性。

端到端的一种模型

  1. ByteTrack也是一种典型的TBD范式核心是关联一个低分框从背景信息中对轨迹进行建模 它没有用REid网络提取特征而是之间用强大的YOLOX检测器 为什么依赖于外观特征的跟踪方法会带来很高的计算成本?

Reid特征虽然可以提高识别的精准度但也会产生一下的问题。

  • 特征提取的复杂性:外观特征通常包括颜色、纹理、形状等视觉信息,提取这些特征需要复杂的计算过程。例如,使用深度学习模型(如卷积神经网络)来提取特征时,需要进行大量的矩阵运算和反向传播,这些操作计算量大,耗时较长

  • 高分辨率处理:为了获得更准确的外观特征,往往需要处理高分辨率的图像,这进一步增加了计算负担。高分辨率图像意味着更多的像素和更复杂的特征提取网络,导致计算成本呈平方增长

  • 实时性要求:在多目标跟踪中,实时性是一个重要要求。依赖外观特征的方法需要在每一帧图像中都进行特征提取和匹配,这在实时处理中尤为具有挑战性,尤其是在目标数量多或场景复杂时。

  • 对抗环境变化:外观特征容易受到光照变化、遮挡和目标姿态变化的影响,这要求算法必须能够处理这些变化,增加了额外的计算成本来适应这些变化

  • 数据关联的复杂性:在多目标跟踪中,需要将提取的外观特征用于数据关联,即确定哪些检测到的目标对应于哪些跟踪对象。这个过程涉及到计算和比较大量的特征向量,当场景中目标数量增多时,计算成本呈指数增长。

  • 深度学习模型的参数量:使用深度学习模型提取外观特征时,模型参数众多,需要大量的计算资源进行训练和推理,尤其是在使用如ResNet这样的复杂网络时。

  • 特征匹配的计算成本:在跟踪过程中,需要对每一帧中的目标进行特征匹配,这涉及到大量的相似性度量和比较操作,尤其是当使用复杂的特征(如基于深度学习的ReID特征)时,计算成本非常高在这里插入图片描述

两个主要创新点提出的背景

MOT任务中存在两个“缺失”问题,即缺失关联和缺失检测。缺少关联意味着同一对象分布在多个 tracklet 中。这个问题在在线跟踪器中尤其常见,因为它们缺乏关联的全局信息。漏检,也称为漏报,是指将物体识别为背景,通常是由遮挡和低分辨率引起的。

下面我们概括两个创新点所提出的背景。

  1. 缺失关联问题,有几种方法提出使用全局链接模型将短轨迹关联到轨迹中。他们通常首先生成准确但不完整的轨迹,然后以离线方式将它们与全局信息关联起来。尽管这些方法显着提高了跟踪性能,但它们依赖于计算密集型模型,尤其是外观嵌入

  2. 其次,线性插值被广泛用于补偿丢失的检测。然而,它在插值过程中忽略了运动信息,这限制了插值位置的准确性。

针对改进所提出的创新点

  1. 提出了一种无外观链接模型(AFLink),它仅利用时空信息来预测两个输入轨迹是否属于同一 ID。没有外观模型,AFLink在速度和准确性之间实现了更好的权衡

目标存在,但是没有检测到,也就导致没有匹配ID原因:通常是因为遮挡导致没检测到。或者是由于分辨率较低导致的现有解决方法:线性插值.

  1. 提出了高斯平滑插值算法(GSI),它使用高斯过程回归算法来修复插值边界框。 GSI也是一种检测噪声滤波器,可以产生更准确和稳定的定位。

在这里插入图片描述

广泛的实验旨在证明所提出方法的有效性。此外,所提出的 StrongSORT 和 StrongSORT++ 在多个基准上实现了 SOTA 性能,包括 MOT17、MOT20、DanceTrack 和 KITTI

在这里插入图片描述

相关工作分层总结

相关工作的部分更多是分层的介绍,我这里只通过标题进行总结大部分的内容之前是以及提到过的。

  1. Separate and Joint Trackers

在这里插入图片描述

MOT方法分类:单独的跟踪器(检测跟踪分离)、联合跟踪器(检测跟踪不分离)

单独的跟踪器:方法:先定位目标,再根据外观运动信息进行帧间关联优点:检测高速发展

联合跟踪器:方法:联合训练检测和其他组件优点:计算成本低

最近的几项研究[42,43,63,7]放弃了外观信息,仅依靠高性能检测器和运动信息,在MOTChallenge基准上实现了高运行速度和最先进的性能[31, 9] ]。然而,放弃外观特征会导致在更复杂的场景中鲁棒性较差。在本文中,我们采用类似DeepSORT的[55]范式,并从各个方面为其配备先进技术,以证实这个经典框架的有效性。

  1. 因此读到这里我就产生了第三个问题即:为什么检测器的高速发展可以放弃外观特征只用运动特征?
  • 检测器性能的提升:随着深度学习技术的发展,目标检测器的性能得到了显著提升,尤其是在准确性和鲁棒性方面。这意味着检测器能够更可靠地识别和定位目标,从而使得跟踪过程中可以依赖于检测结果的运动信息

  • 遮挡和相似目标问题:在复杂场景中,外观特征容易受到遮挡和相似目标的影响,导致跟踪失败。而运动特征相对更加稳定,能够在目标被遮挡或目标之间外观相似时,仍然保持跟踪的连续性。

  • 联合跟踪器的发展:一些联合跟踪器(Joint Detection and Tracking)能够在一个模型中同时进行目标检测和跟踪,减少了对外观特征的依赖。这些跟踪器通过优化检测和跟踪的联合性能,提高了整体跟踪的准确性和效率。

  1. Global Link in MOT MOT中的全局链接(AFLink)

方法:首先使用时空或外观信息生成准确但不完整的轨迹。然后通过离线的方式链接这些轨迹

  • TNT方法:设计了多尺度TrackletNet 测量两个不完整轨迹之间的连接性。使用多尺度卷积核在统一网格中对运动和外观信息进行编码。
  • TPM 方法:提出了一个轨迹平面的概念。将容易混淆的轨迹推入不同的轨迹平面。
  • ReMOT 方法:将不完美的整体的轨迹分割成多个小的完美的轨迹,然后再通过外观特征进行合并
  • GIAOTracker 方法:使用ResNet50-TP模型编码了完美部分轨迹的外观特征,然后使用时空成本将他们关联起来。
    问题:依赖于外观特征,计算成本较高

论文中改进的方法

  • 特点:仅利用运动信息预测两个完美部分轨迹之间的链接置信度。
  • 方法:LGMTracker(也是仅使用运动信息)设计的复杂,我们设计的更简单、更轻量
  • 效果:AFlink 在 MOT17 上训练仅需十几秒,测试仅需十秒(离线模型)。

在这里插入图片描述
3. Interpolation in MOT

它下面提到的一些论文自己都不太懂就不过多的进行概述了。

  • 方法:基于高斯过程回归(GPR)算法对非线性运动进行建模
  • 效果:在准确率和效率之间形成了良好的平衡。

STRONGSORT的核心

Review of DeepSORT

  1. DeepSORT 简单总结为一个双分支框架,即具有外观分支和运动分支 其实就是对应级联匹配的两个匹配过程

  2. 在外观分支中,给定每帧中的检测,深度外观描述符( simple CNN),在行人重识别数据集 MARS [65] 上进行预训练,用于提取他们的外观特征。它利用特征库机制来存储每个 tracklet 最后 100 帧的特征。随着新检测的到来,第 i 个轨迹的特征库 Bi 与第 j 个检测的特征 fj 之间的最小余弦距离计算为

d ( i , j ) = min ⁡ { 1 − f j T f k ( i ) ∣ f k ( i ) ∈ B i } d(i, j)=\min \left\{1-f_{j}^{T} f_{k}^{(i)} \mid f_{k}^{(i)} \in B_{i}\right\} d(i,j)=min{1fjTfk(i)fk(i)Bi}

在运动分支主要就用卡尔曼滤波公式同时结合级联匹配。

x ^ k ′ = F k x ^ k − 1 , P k ′ = F k P k − 1 F k T + Q k \begin{aligned} \hat{x}_{k}^{\prime} & =F_{k} \hat{x}_{k-1}, \\ P_{k}^{\prime} & =F_{k} P_{k-1} F_{k}^{T}+Q_{k} \end{aligned} x^kPk=Fkx^k1,=FkPk1FkT+Qk

K = P k ′ H k T ( H k P k ′ H k T + R k ) − 1 , K=P_{k}^{\prime} H_{k}^{T}\left(H_{k} P_{k}^{\prime} H_{k}^{T}+R_{k}\right)^{-1}, K=PkHkT(HkPkHkT+Rk)1,

x k = x ^ k ′ + K ( z k − H k x ^ k ′ ) , P k = ( I − K H k ) P k ′ \begin{array}{l} x_{k}=\hat{x}_{k}^{\prime}+K\left(z_{k}-H_{k} \hat{x}_{k}^{\prime}\right), \\ P_{k}=\left(I-K H_{k}\right) P_{k}^{\prime} \end{array} xk=x^k+K(zkHkx^k),Pk=(IKHk)Pk

在这里插入图片描述

在这里插入图片描述

Strongsort的改进

在这里插入图片描述

结构的改进
  1. 检测器:Faster RCNN------>YOLOX-X
  2. 外观特征提取器:simple CNN------>BoT
EMA

虽然 DeepSORT 中的特征库机制可以保留长期信息,但它对检测噪声很敏感。为了解决这个问题,我们用中提出的特征更新策略替换特征库机制,该策略以指数移动平均(EMA)方式更新帧 t 处第 i 个轨迹的外观状态 eti

e i t = α e i t − 1 + ( 1 − α ) f i t , e_{i}^{t}=\alpha e_{i}^{t-1}+(1-\alpha) f_{i}^{t}, eit=αeit1+(1α)fit,

ECC

这个图像配置的相关部分其实没太看懂

相机移动存在于多个基准中 [31,44,19]。与[20,43,25,21]类似,我们采用增强相关系数最大化(ECC)[13]模型进行相机运动补偿。它是一种参数化图像对齐技术,可以估计相邻帧之间的全局旋转和平移。具体来说,基于以下标准来量化扭曲变换的性能:

E E C C ( p ) = ∥ i ‾ r ∥ i ‾ r ∥ − i ‾ w ( p ) ∥ i ‾ w ( p ) ∥ ∥ 2 , E_{E C C}(\mathbf{p})=\left\|\frac{\overline{\mathbf{i}}_{\mathbf{r}}}{\left\|\overline{\mathbf{i}}_{\mathbf{r}}\right\|}-\frac{\overline{\mathbf{i}}_{\mathbf{w}}(\mathbf{p})}{\left\|\overline{\mathbf{i}}_{\mathbf{w}}(\mathbf{p})\right\|}\right\|^{2}, EECC(p)= ir ir iw(p) iw(p) 2,

NSA Kalman

该算法提出了一个自适应计算噪声协方差 ̃ Rk 的公式:

R ~ k = ( 1 − c k ) R k , \widetilde{R}_{k}=\left(1-c_{k}\right) R_{k}, R k=(1ck)Rk,

其中Rk是预设的常数测量噪声协方差,ck是状态k处的检测置信度分数。
当噪声较少时,检测得分 ck 较高,从而导致 ̃ Rk 较低。根据公式4-6,较低 ̃Rk意味着检测在状态更新步骤中将具有较高的权重,反之亦然。这有助于提高更新状态的准确性。

源自:GIAOTracker 这个论文
贡献:提出了自适应计算噪声协方差的公式
公式解释:利用计算出来的Rk和检测置信度ck来得到一个新的自适应的 ̃Rk。检测置信度越高, ̃ Rk越低,则检测在状态更新步骤中将具有较高的权重

Motion Cost

DeepSORT在第一个关联阶段仅使用外观特征距离作为匹配成本,其中运动距离仅用作门。相反,我们用外观和运动信息来解决分配问题。成本矩阵C是出现成本Aa运动成本Am的加权和,如下:

C = λ A a + ( 1 − λ ) A m , C=\lambda A_{a}+(1-\lambda) A_{m}, C=λAa+(1λ)Am,

其中权重因子 λ 设置为 0.98

在这里插入图片描述
我自己感觉就是对应这里的连线的部分,这里它更改了成本矩阵后面自然也会更改级联匹配的方式。也就是最后一个部分

Vanilla Matching

在这里插入图片描述
尽管匹配级联算法在 DeepSORT 中并不简单,但随着跟踪器变得更强大,它限制了性能。原因是,随着跟踪器变得更强,它对令人困惑的关联也变得更加鲁棒。因此,额外的先验约束限制了匹配精度。

Vanilla Matching我们将级联匹配替换为了全局线性分配:

STRONGSORT++核心

AFLink

  1. 过度依赖外观特征可能容易受到遮挡的影响。受此启发,我们设计了一个无外观模型 AFLink,仅依靠时空信息来预测两个轨迹之间的连接性

这里自己读论文的时候产生了第四个问题,轨迹连接性是什么呢?因此结合一些查找的资料总结如下:

在目标跟踪中,预测两个轨迹之间的连接性通常指的是评估两个轨迹段(tracklets)之间是否存在着连续性或者它们是否属于同一个目标。这种预测对于多目标跟踪(MOT)尤其重要,因为它涉及到如何将分散在不同帧中检测到的目标正确地关联起来,形成完整的轨迹。

以下是几种体现预测轨迹连接性的方法和特征:

  1. 基于外观和运动信息的全局链接模型:
  2. 基于时空特征的链接预测:
  3. 基于图模型的轨迹关联:

在这里插入图片描述
2 . AFLink 模型的两分支框架。它采用两个轨迹 Ti 和 Tj 作为输入

T ∗ = { f k ∗ , x k ∗ , y k ∗ } k = k ∗ k ∗ + N − 1 T_{*}=\left\{f_{k}^{*}, x_{k}^{*}, y_{k}^{*}\right\}_{k=k^{*}}^{k^{*}+N-1} T={fk,xk,yk}k=kk+N1

在这里插入图片描述

由帧 id fk* 和位置 (最近 N = 30 帧的 xk*, yk*)。零填充用于短于 30 帧的轨迹。应用时间模块通过沿时间维度与 7 × 1 内核进行卷积来提取特征,该内核由四个“Conv-BN-ReLU”层组成。然后,融合模块(具有 BN 和 ReLU 的单个 1 × 3 卷积层)用于集成来自不同特征维度(即 f、x 和 y)的信息。得到的两个特征图被池化并压缩为特征向量,然后连接起来,其中包含丰富的时空信息。最后,使用 MLP 来预测关联的置信度得分。请注意,时间模块和融合模块中两个分支的权重不共享

在这里插入图片描述
在这里插入图片描述

在训练期间,关联过程被制定为二元分类任务。然后,用二元交叉熵损失对其进行优化

L n B C E = − ( y n log ⁡ ( e x n e x n + e 1 − x n ) + ( 1 − y n ) log ⁡ ( 1 − e 1 − x n e x n + e 1 − x n ) ) \begin{aligned} L_{n}^{B C E}= & -\left(y_{n} \log \left(\frac{e^{x_{n}}}{e^{x_{n}}+e^{1-x_{n}}}\right)\right. \\ & \left.+\left(1-y_{n}\right) \log \left(1-\frac{e^{1-x_{n}}}{e^{x_{n}}+e^{1-x_{n}}}\right)\right) \end{aligned} LnBCE=(ynlog(exn+e1xnexn)+(1yn)log(1exn+e1xne1xn))

GSI

我们将第 i 个轨迹的 GSI 模型制定如下:

p t = f ( i ) ( t ) + ϵ , p_{t}=f^{(i)}(t)+\epsilon, pt=f(i)(t)+ϵ,

其中 t ∈ F 是帧 id,pt ∈ P 是帧 t 处的位置坐标变量(即 x, y, w, h),E∼ N (0, σ2) 是高斯噪声。给定跟踪和线性插值轨迹

S ( i ) = { t ( i ) , p t ( i ) } t = 1 L S^{(i)}=\left\{t^{(i)}, p_{t}^{(i)}\right\}_{t=1}^{L} S(i)={t(i),pt(i)}t=1L

,长度为 L,非线性运动建模的任务通过拟合函数 f (i) 来解决。我们假设它服从高斯过程:

f ( i ) ∈ G P ( 0 , k ( ⋅ , ⋅ ) ) , f^{(i)} \in G P(0, k(\cdot, \cdot)), f(i)GP(0,k(,)),

其中

k ( x , x ′ ) = exp ⁡ ( − ∥ x − x ′ ∥ 2 2 λ 2 ) k\left(x, x^{\prime}\right)=\exp \left(-\frac{\left\|x-x^{\prime}\right\|^{2}}{2 \lambda^{2}}\right) k(x,x)=exp(2λ2xx2)

是径向基函数核。根据高斯过程的性质,给定一个新的帧集 F*,其平滑位置 P* 预测为

P ∗ = K ( F ∗ , F ) ( K ( F , F ) + σ 2 I ) − 1 P , P^{*}=K\left(F^{*}, F\right)\left(K(F, F)+\sigma^{2} I\right)^{-1} P, P=K(F,F)(K(F,F)+σ2I)1P,

此外,超参数 λ 控制轨迹的平滑度,这应该与其长度有关。我们简单地将其设计为适应长度l的函数,如下所示:

λ = τ ∗ log ⁡ ( τ 3 / l ) \lambda=\tau * \log \left(\tau^{3} / l\right) λ=τlog(τ3/l)

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

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

相关文章

windows下安装jdk并配置环境

【1】安装jdk 这里建议傻瓜式安装,不要自定义路径,直接下一步下一步。 在Windows系统中安装JDK并设置环境变量(包括JAVA_HOME和CLASSPATH)是一个常见的任务。 1. 下载并安装JDK 访问Oracle官方网站或其他可信来源下载JDK安装包…

云安全真知实践 国内头部能源企业全面灵活云安全方案大公开

能源与安全,是两个紧密相连的齿轮,驱动着当今社会的运转与发展。能源是动力源泉,而安全则是守护这一动力的坚实支撑,保障着能源系统的运作与敏感数据的安全。 亚信安全一直以来为国内能源行业提供着安全保障,从石油、…

Photoshop 2025重磅来袭 :全新功能炫耀安装!Adobe全家桶

2024年10月,备受期待的Adobe Photoshop 2025正式版如约而至。每年的十月份,Adobe都会带来其软件的重要更新,而今年的Photoshop 2025则在改进和新功能方面做出了重磅升级,让创意工作者和设计师们倍感振奋。 新界面与核心功能 Ph…

【Java面试——计算机基础——网络——一篇就够了!!!】

1. 网络分层模型 1.1 OSI七层模型 OSI 七层模型 是国际标准化组织提出的一个网络分层模型,其大体结构以及每一层提供的功能如下图所示: 每一层都专注做一件事情,并且每一层都需要使用下一层提供的功能比如传输层需要使用网络层提供的路由和…

C#/.NET/.NET Core技术前沿周刊 | 第 11 期(2024年10.21-10.31)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。 欢迎投稿、推荐…

(C#面向初学者的 .NET 的生成 AI) 第 3 部分-ChatGPT 简介

在本部分中,将简要介绍ChatGPT。我们将了解ChatGPT是什么,稍微探讨一下ChatGPT中的角色分工,聊天和消息历史记录的作用。最后我们将查看一个使用OpenAI .NET SDK的ChatGPT代码示例。 1、ChatGPT是什么呢? ChatGPT中的GPT部分来…

Java中的日期与时间的间隔:Period类、Duration类

1、Period 类 在 Java 中,Period 类和 Duration 类都是用于表示时间间隔的类,但它们有不同的使用场景和特性。Period 类位于 java.time 包中,主要用于表示基于日期的时间间隔,即年、月、日的差异。它常用于处理日期之间的计算&am…

算法: 链表题目练习

文章目录 链表题目练习两数相加两两交换链表中的节点重排链表合并 K 个升序链表K 个一组翻转链表 总结 链表题目练习 两数相加 坑: 两个链表都遍历完后,可能需要进位. class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode cur1 l1;ListNode…

交替传译收费标准

交替传译是一种高端口服务,常用于国际会议、商务洽谈、学术交流等多语言会议场合,演讲者的发言一般不超过15分钟,交替传译员和演讲者采取接力式交替发言,在这种模式下,口译员需要具备优秀的记忆能力和翻译功底。其价格…

灵动AI视频:重塑视频创作,智启无限灵感!

🚀 在这个视觉为王的时代,视频创作已成为展现创意与才华的重要舞台。然而,繁琐的剪辑流程、有限的创意资源往往成为制约创作者发挥的瓶颈。灵动AI视频,一款集智能、高效、创意于一体的视频编辑神器,正为视频创作领域带…

生物信息学R语言

检查R语言安装包和依赖 .libPaths() 这里有一个简单的生物信息学分析案例,使用R语言处理基因表达数据。这个示例中,我们将导入模拟的基因表达数据,进行数据预处理(如归一化),并使用主成分分析&#xff08…

基于VsCode platformio的stm32开发环境搭建

背景 VsCode作为当下流行的编辑器,且不单单是一个编辑器里面集成了很多插件,使用这些插件可以完成很多功能。 STM32开发环境除了KEIL与IAR,其实还有很多其他的开方方式,ST官方提供了很多的开发软件,基于Eclipse也可以…

【题解】【排序】—— [NOIP2017 普及组] 图书管理员

【题解】【排序】—— [NOIP2017 普及组] 图书管理员 [NOIP2017 普及组] 图书管理员题目背景题目描述输入格式输出格式输入输出样例输入 #1输出 #1 提示 1.思路解析2.AC代码 [NOIP2017 普及组] 图书管理员 通往洛谷的传送门 题目背景 NOIP2017 普及组 T2 题目描述 图书馆中…

华为和思科的配置

vrrp和mstp 思路 vrrp是用来虚拟网关,噢,是虚拟一条虚拟网关 优先级,priority越大越优先,优先级相同,哪个的路由器的vrrp先起来,谁就是主 mstp是快速生成树协议,防止环路用的 优先级越小越优…

React 前端如何通过组件完成 “下载 Excel模板” 和 “上传 Excel 文件并读取内容生成可使用的对象数组”

文章目录 一、Excel 模板下载01、代码示例 二、Excel 文件上传01、文件展示02、示例代码03、前端样式展示04、数据结果展示 三、完整代码 本文的业务需求是建立在批量导入数据的情况下,普通组件只能少量导入,数据较多的情况都会选择 Excel 数据导入&…

『统计检验』一篇文章入门置信区间

文章目录 置信区间点估计和区间估计置信度置信区间的计算置信区间计算的具体例子 参考文献 置信区间 置信区间是总体参数落在测量结果周围的程度 点估计和区间估计 点估计:通过样本数据估计总体参数 ⇒ \Rightarrow ⇒使用样本统计量(如样本均值、样本…

ESRALLY安装与使用

ESRALLY安装与使用 geonames、geopoint:都是和地理位置相关的,如果需要测试ES在地理位置处理的性能可以选用 http_logs:是http_server的,如果要测服务器日志、redis日志、apache日志可以选用 说明:esrally 自带的测试数据即为 rally_track 文件夹中的内容,主要包括: Ge…

SpringMvc day1101

ok了家人们,今天我们继续 studying springMvc,let‘me see see 四.SSM整合 SpringMVC Spring MyBatis WebConfig SpringConfigMybatisConfig SpringMvcSupport jdbc.properties 表现层 业务层持久层 EmpController EmpServiceEmpMapper EmpServiceIm…

关于基于 GA102 核心的显卡及主要参数

基于 GA102 核心的显卡的主要参数: 主要用途 高端游戏, 专业图形处理 高端游戏, 专业图形处理 高端游戏, 专业图形处理 高端游戏, 专业图形处理 专业图形处理, 数据中心 数据中心, AI 计算 解释 CUDA 核心数:更多的 CUDA 核心意味着更强的并行计算能力。…

C++ 多态 (详解)

多态的概念 通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。举个栗子:比如买票这个行为,当普通人买票时,是全价买票;学生买票时,是半价…