StrongSORT——基于DeepSORT,提高多目标跟踪的准确性和鲁棒性

1、概述

1.1 DeepSORT

DeepSORT算法是在SORT基础上发展起来的一种多目标跟踪算法。SORT算法结合了目标检测器和跟踪器,其中跟踪器的核心是卡尔曼滤波和匈牙利算法

  • 卡尔曼滤波用于预测目标在下一帧的位置和状态
  • 而匈牙利算法则用于将预测状态与实际检测结果进行最佳匹配

这种方法在目标没有被遮挡或丢失时表现良好,但如果目标因为某些原因(如遮挡)在一帧中未被检测到,卡尔曼滤波的预测可能会失败,导致跟踪失败。

DeepSORT算法为了解决这个问题,引入了深度学习中的重识别技术。它不仅关注目标的运动信息,还利用目标的外观特征来增强跟踪的准确性。DeepSORT通过深度学习模型提取目标的外观特征,并将这些特征表示为低维向量。在每帧的检测和跟踪过程中,DeepSORT都会提取当前帧中目标的外观特征,并与之前存储的特征进行比较,以此来判断目标是否为同一物体。

这种方法的优势在于,即使在目标暂时从视野中消失或被遮挡的情况下,DeepSORT也能够通过外观特征的匹配来维持跟踪的连续性。外观特征的引入使得DeepSORT在处理遮挡、相似目标的分辨以及目标再出现时的身份恢复等方面表现得更加鲁棒。

1.2 StrongSORT

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

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

StrongSORT++StrongSORT的一个变体,它进一步引入了:

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

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

StrongSORT通过在特征提取、运动信息处理和成本矩阵计算等方面的改进,提高了多目标跟踪的性能。而StrongSORT++则通过引入AFLink和GSI技术,进一步优化了跟踪的准确性和鲁棒性。这些改进使得StrongSORT能够在复杂的场景中更有效地处理遮挡、目标丢失和重新出现等问题,从而实现最先进的跟踪性能(SOTA)。

在这里插入图片描述

StrongSORT与其说从根本上改变了结构,不如说是改进了跟踪所需的特征提取、运动信息和成本矩阵的处理StrongSORT++将AFLink(离线处理)和GSI插值(后处理)应用于改进的StrongSORT,是一个更加精确的模型。MOT17和MOT20的准确性比较,这表明了StrongSORT的优越性。

论文地址 :https://arxiv.org/abs/2202.13514
源码地址:https://github.com/dyhBUPT/StrongSORT.git

2. 研究背景

StrongSORT是基于DeepSORT算法的改进版本,旨在通过结合最新的技术元素来提升跟踪的准确性。

2.1. DeepSORT的起源与影响:

DeepSORT作为深度学习跟踪方法的先驱,为后续的研究奠定了基础。尽管后续出现了如FairMOTByteTrack等新方法,并在准确性上超越了DeepSORT,但这并不是因为DeepSORT方法本身存在缺陷,而是由于其提出的较早,技术尚未达到最新水平。因此,通过对DeepSORT进行改进,有潜力将其性能提升到新的水平。

2.2. SDE与JDE的对比:

DeepSORT属于单独检测和嵌入(SDE)模型,其检测器是独立于跟踪模型的。相比之下,联合检测和嵌入(JDE)模型如JDE(Joint Detection and Embedding)同时训练检测和跟踪任务,可能会导致模型冲突,限制了准确性。此外,JDE需要一个同时包含检测和跟踪信息的数据集进行训练,这限制了训练数据的多样性和范围。

2.3. 改进DeepSORT的动机:

尽管存在JDE这样的新方法,但它们在训练上的局限性和对复杂运动场景的处理不足表明,仍有很大的改进空间。StrongSORT的提出正是基于这样的动机,即在DeepSORT的SDE框架中充分利用外观特征来提升跟踪性能。

2.4. StrongSORT的定位:

提出StrongSORT的目的是为了证明在SDE方法中结合外观特征进行跟踪是有效的。通过改进DeepSORT,StrongSORT旨在解决ByteTrack等仅基于运动信息的模型在处理复杂运动时的局限性,同时避免JDE模型在训练上的挑战。

3.DeepSORT

在跟踪任务中,需要将当前帧(记为t)中检测到的物体与过去从0~t-1帧中跟踪到的物体的短期轨迹(tracklet)进行比较和匹配,确保为同一个物体分配相同的ID。这个过程涉及到创建一个成本矩阵,该矩阵基于物体的外观特征和运动信息来衡量当前检测到的物体与已有跟踪点之间的相似性和差异性,目的是找到成本最小的匹配组合。

3.1特征库

特征库用于存储tracklets的外观特征,以便评估新检测到的物体与当前帧中哪个跟踪点的外观最为相似。DeepSORT会保留最近100帧的外观特征,这些特征是通过一个简单的深度模型(如CNN)在MARS数据集上预训练得到的。这个深度模型能够提取物体的外观特征,有助于区分不同的个体。

3.2 卡尔曼滤波器

除了外观特征,运动信息也是跟踪过程中的一个重要因素。卡尔曼滤波器不仅关注物体的当前位置,还能够预测物体在下一帧中可能出现的位置。这种预测基于物体在前一帧的位置和运动状态,预测出的tracklet坐标与当前检测到的物体之间的距离被用作成本矩阵的一个元素。DeepSORT使用的是线性卡尔曼滤波器,并且假设所有物体的噪声特性是相同的。

3.3 匹配级联

在将检测结果与跟踪器进行关联时,DeepSORT使用匈牙利算法来处理位置信息和外观特征的成本矩阵,以找到最优的匹配方案。此外,DeepSORT采用了一种匹配级联的策略,优先考虑将最近的检测结果与当前活跃的轨迹进行匹配。这种策略有助于提高跟踪的实时性和准确性,尤其是在处理快速移动或频繁出现的物体时。

在这里插入图片描述

4. StrongSORT

在这里插入图片描述

4.1 BoT

StrongSORT采用了BoT作为更强大外观特征提取器。与DeepSORT中使用的简单CNN模型不同,BoT使用的是ResNeSt50作为骨干模型,并在DukeMTMCreID数据集上进行了预训练。这种特征提取器能够更有效地区分不同个体之间的特征,因为它利用了更复杂的网络结构和大量的预训练数据。

4.2 EMA

EMA是GIAOTracker中提出的一个特征库:DeepSORT特征库保留了100帧的特征,这使得它效率低下,对每一帧的检测噪声高度敏感。相比之下,EMA将过去的特征作为惯性项保留并更新,如下式所示:f是在第t帧检测到的物体的特征,并分配给小轨道 i,e是到第t-1帧为止的小轨道的特征。通过用α加权,特征被有效地更新,并减少了噪音。

在这里插入图片描述

4.3 NSA Karman

GIAOTracker中也提出了NSA卡尔曼:在DeepSORT中,它是一个简单的线性卡尔曼滤波器,但假设所有检测到的物体具有相同的观测噪声是不现实的。因此,NSA卡尔曼根据检测的置信度,以自适应的方式改变噪声。对于复杂的移动物体,检测器可能对物体的输出信心不足,所以卡尔曼滤波器加强了校正。

在这里插入图片描述
c k ckck代表每个对象的信心水平。通过这种方式,可以对各种复杂的物体运动进行位置估计。

4.4 MC

DeepSORT将位置信息作为一种成本,但实际上只实验了外观特征作为一种成本,其权重设置为零。与这样的DeepSORT不同,StrongSORT生成了一个λ=0.98的成本矩阵,如下式所示。KaTeX parse error: Expected ‘EOF’, got ‘&’ at position 3: Aa&̲是外观特征的成本,Am&是运动(位置)信息的成本。

在这里插入图片描述

4.5 其他

StrongSORT采用了ECC校正算法来处理相机视角的变化。这种算法考虑到了相机的外部参数,如焦距和畸变系数,从而能够更准确地校正图像中的视角变化,这对于在不同视角下保持跟踪的一致性和准确性至关重要。

在处理匹配成本矩阵时,StrongSORT并未采用DeepSORT中的匹配级联策略。相反,它将匹配问题视为一个简单的线性分配问题,并使用一种更直接的方法来解决。这种方法的优先级是考虑那些具有较近期观测数据的轨迹(tracklets)。这是因为如果跟踪模型本身性能良好,过分复杂的匹配策略反而可能限制跟踪的准确性。通过信任并优先使用优秀的跟踪模型,StrongSORT在匹配过程中避免了不必要的复杂性,从而提高了整体的跟踪准确性。

StrongSORT放弃了级联匹配策略(wOC)。这种改变简化了匹配过程,使得跟踪算法能够更加专注于利用高质量的外观特征和运动信息来进行有效的数据关联,而不是依赖于复杂的级联结构。

5.AFLink

在讨论的在线跟踪中,每一帧图像都会被实时检测并连接追踪单元,这是实时跟踪的过程。然而,在实际应用中,由于检测错误或遮挡等原因,跟踪有时会中断,导致短时间内产生的追踪信息虽然准确但不完整。为了解决这个问题,需要采用一种离线处理方法,也就是所谓的全局链接(Global Linking),它的目的将分散的追踪单元(tracklets)连接在一起,形成一个完整的追踪序列。

AFLink是一种新颖的全局链接方法,它是第一个不依赖外观特征的全局链接机制。在以往的全局链接方法中,例如GIAOTracker中提出的GIModel,通常会使用基于ResNet的深度CNN模型从每个tracklet的帧中提取外观特征,然后将这些特征输入到Transformer Encoder中进行关联性分析。这种方法虽然强大,但模型相对复杂,计算成本高昂,并且由于它依赖于外观特征,容易受到噪声等因素的影响,这也可能成为问题。

相比之下,AFLink在小追踪T中使用的唯一信息是检测到的帧数f和当时的位置(x,y);两个小追踪TiTj的最后30帧的信息Ti=(fk,xk,yk)(k=130)在卷积层中被压缩和特征提取,TiTj是否代表相同的信心水平输出是Ti和Tj是否代表同一个人的轨迹的信心水平。首先,时间块对三个特征``(f、x、y)中的每一个在七帧之间重复压缩时间序列方向。然后应用一个融合块来压缩这三个特征。综合结果被输入到分类器,分类器用AffineReLU将其转换为置信度。整体情况如下图所示。应该注意的是,为这两个小轨道提供了单独的区块。

在这里插入图片描述

在这里插入图片描述

时间块只在时间方向(7帧)对每个f,x,y独立进行卷积。与此相反,融合块压缩了在时间方向上压缩的三维特征。实验中使用的AFLink模型如下图所示。

在这里插入图片描述

6.高斯平滑插值

GSI它在在线和离线跟踪过程完成后进行的后处理阶段中发挥重要作用。后处理的一个重要任务是对那些在跟踪过程中遗漏的检测进行插值,以提高轨迹的完整性和精度。

SDE(Single Detection per Frame per Object)跟踪框架中,如果检测器在某帧中未能检测到某个物体,那么该物体在该帧中的轨迹就会丢失。为了弥补这些遗漏,可以通过插值方法来重建丢失的轨迹。线性插值是一种简单且广泛使用的方法,它通过在已知检测点之间直线连接来估计中间点的位置。然而,线性插值的精度有限,因为它没有考虑物体的运动信息,导致插值结果可能不够自然或不符合实际情况。

在下图中,蓝色线条展示了线性插值的结果,它简单地在检测到的轨迹之间进行直线插值,但这种方法没有考虑到物体的真实运动轨迹(Ground Truth,简称GT),因此可能无法准确地反映物体在场景中的移动。

为了解决这个问题,GSI(Gaussian Process-based Interpolation)插值方法被提出。GSI插值利用高斯过程对检测误差进行建模,并在此基础上进行插值。这种方法可以更准确地估计物体在丢失帧中的位置,因为它考虑了物体的运动信息和轨迹的连续性。

在这里插入图片描述

GSI的核心是一个高斯过程。高斯过程对多维正态分布进行建模,其均值m和协方差K作为a的函数给出,例如,当从a预测b时,对于一些观察到的数据a, b,p(b∣a)=N(m(a),K(a)) 。在这种情况下,我们假设在帧数t tt和位置信息(x、y、w、h) 之间分别有条件的多维正态分布p(x∣t)、p(y∣t)、p(w∣t)和p(h∣t∗∗)。然后,我们估计(x,y,w,h)在检测失误的帧t。请注意,对每个轨迹i应用一个高斯过程,在文中表示为pt。

在这里插入图片描述

RBF核用于核函数k。分母λ决定了轨迹的平滑性,在本文中被设定为10。

在这里插入图片描述

图中显示,帧数和位置坐标用正态分布建模,成功地插值了它们之间的检测误差。StrongSORT++是加入了这种AFLinkGSI插值StrongSORT

7. 实验

7.1 数据集

在评估跟踪算法的性能时,通常会使用公认的基准数据集来进行实验。MOT17和MOT20是两个专门用于人员跟踪的基准数据集。MOT20相比MOT17更具挑战性,因为它包含了更密集的跟踪目标。在进行消融实验时,MOT17训练数据集中每个视频的前半部分用于训练模型,而后半部分则用于验证模型的性能。

7.2 模型设置

StrongSORT算法中使用的外观特征提取器BoT在DukeMTMC数据集上进行了预训练,而检测器YoloX-X则是在COCO数据集上预先训练的。在模型设置中,抑制重复检测的非极大值抑制(NMS)阈值设定为0.8,检测置信度阈值为0.6。AFLink能够在30帧内和75像素范围内将小轨道联系起来,如果输出置信度大于0.95,则认为关联是有效的;GSI内插法将最大可能的插值检测失误设定为20帧。

7.3 评估指标

跟踪准确性的评估通常涉及多个指标,从不同的角度来衡量跟踪的性能:

  • MOTA(Multiple Object Tracking Accuracy)是一个侧重于检测准确性的指标,因为它基于跟踪过程中的假阳性、假阴性和ID切换来计算。ID切换是指在跟踪过程中物体的关联错误。
  • IDF1是一个侧重于追踪过程中ID匹配的指标,例如,相同数量的ID将导致一个长而稳定的追踪。
  • HOTA(Homogeneous Precision, Recall, and F1-score)是一个很平衡的评价指标,它可以同时评估检测精度(DetA)和跟踪方法(AssA)。

7.4 消融实验

为了理解StrongSORT中每个组件的作用,进行了消融实验。通过从基线DeepSORT开始,逐步添加StrongSORT的各个机制,对比在线跟踪的性能变化。这种逐项添加的方式有助于理解每个改进对整体跟踪性能的具体影响,从而验证每个新引入技术的有效性。消融实验是理解算法改进和优化效果的重要步骤,它确保了算法的每个部分都是经过精心设计和测试的。

在这里插入图片描述

改进外观特征提取器(BoT)明显改善了IDF1,这表明了外观特征的重要性;增加ECC略微改善了IDF1和MOTA,而相机校正可以提取准确的运动信息。然后,NSA卡尔曼改进了HOTA,但MOTA和IDF1保持不变。当tracklet特征改为EMA时,不仅代表关联准确性的IDF1增加了,而且FPS也提高了,导致速度加快。包括运动信息的成本(Motion Cost)也证实了StrongSORT准确性的提高。最后,StrongSORT在没有匹配级联的情况下执行正常的线性赋值问题,在IDF1中显示出明显的改善,表明级联是没有必要的。

7.5 AFLink和GSI。

这里使用StrongSORT和现有的SoTA模型来宣称AFLink和GSI的优势。上面的StrongSORT消融有v1~v6的顺序,这里用的是其中的v1/v3/v6,CenterTrack、TransTrack和FairMOT是现有的方法,AFLink和GSI处理分别加入到六个模型中。使用的模型如下。

在这里插入图片描述

AFLink提高了两个模型的准确性。就GSI而言,与AFLink不同,它对更强的跟踪模型更有效。与线性插值(LI)的比较是针对GSI单独进行的,表明GSI在计算成本略有增加的情况下提高了性能。

在这里插入图片描述

如上所述,AFLink和GSI被发现可以提高各种高精度跟踪模型的准确性,而不仅仅是StrongSORT。

7.6 MOTChallenge。

最后是与许多SoTA的比较:用MOT17和MOT20进行验证;没有进行FPS的比较,因为很难比较JDE和SDE,因为在SDE模型中检测阶段的处理时间基本上被忽略了。

首先是MOT17,在所有方法中,StrongSORT++在HOTA/AssA/DetA方面取得了第一名,在MOYA/IDs方面取得了第二名,远远领先于第二名的精确度。

在这里插入图片描述

MOT20处理更拥挤的情况。其中,StrongSORT++在HOTA/IDF1/AssA中同样取得了第一名的成绩。特别是,它显示了非常低的ID数量。

在这里插入图片描述

这些结果是在没有对每个数据的参数进行任何调整的情况下实现的,这表明了该方法的多功能性。

8.训练与部署

源码地址:https://github.com/dyhBUPT/StrongSORT.git

8.1 环境安装:

conda create -n strongsort python=3.8 -y
conda activate strongsort
conda install pytorch==2.0.0 torchvision==0.15.0 torchaudio==2.0.0 pytorch-cuda=11.7 -c pytorch -c nvidia
pip install opencv-python
pip install scipy
pip install scikit-learn==0.19.2

数据集可以从这里下载:https://motchallenge.net/
百度网盘地址:https://pan.baidu.com/s/1EtBbo-12xhjsqW5x-dYX8A?pwd=sort

8.2 训练与测试

  1. 在MOT17-val上运行DeepSORT:
python strong_sort.py MOT17 val
  1. 在MOT17-val上运行StrongSORT:
python strong_sort.py MOT17 val --BoT --ECC --NSA --EMA --MC --woC
  1. 在MOT17-val上运行StrongSORT++:
python strong_sort.py MOT17 val --BoT --ECC --NSA --EMA --MC --woC --AFLink --GSI
  1. 在MOT17-test上运行StrongSORT++:
python strong_sort.py MOT17 test --BoT --ECC --NSA --EMA --MC --woC --AFLink --GSI
  1. 在MOT20-test上运行StrongSORT++:
python strong_sort.py MOT20 test --BoT --ECC --NSA --EMA --MC --woC --AFLink --GSI

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linksys RE7000 “AccessControlList ”命令执行漏洞(CVE-2024-25852 )

声明: 本文仅用于技术交流,请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。 简介 Linksys RE7000 是由 Linksys 公司生产的一款 Wi-F…

Netty学习——实战篇5 Netty 心跳监测/WebSocket长连接编程 备份

1 心跳监测 MyServer.java public class MyServer {public static void main(String[] args) {NioEventLoopGroup bossGroup new NioEventLoopGroup(1);NioEventLoopGroup workerGroup new NioEventLoopGroup();try {ServerBootstrap serverBootstrap new ServerBootstrap…

DevOps文化对团队有何影响?

DevOps文化对团队有很多积极影响,包括提高团队效率、促进沟通与协作、提高产品质量和推动创新等方面。然而,实施DevOps文化也需要一定的挑战,如改变团队成员的观念、引入新的工具和流程等。因此,团队需要充分了解DevOps文化的价值…

【Ant-Desgin-React 穿梭框】表格穿梭框,树穿梭框的用法

Antd Desgin 穿梭框 普通用法高级用法-表格穿梭框组件高级用法-树穿梭框组件 普通用法 /* eslint-disable no-unused-vars */ import React, { useEffect, useState } from react import { Space, Transfer } from antd// Antd的穿梭框组件Mock数据 const mockData Array.fro…

CJSON工具类

4.4.3.CJSON工具类 OpenResty提供了一个cjson的模块用来处理JSON的序列化和反序列化。 官方地址: https://github.com/openresty/lua-cjson/ 1)引入cjson模块: local cjson require "cjson"2)序列化: …

记录海豚调度器删除工作流实例失败的解决办法(DolphinScheduler的WebUI删除失败)

本博客记录以下问题解决办法:使用dolphinscheduler的WebUI运行工作流后出现内存占用过高导致的任务阻塞问题,并且在删除工作流实例时总是报错无法删除 解决步骤 在前端页面无法删除,于是搜索资料,发现可以登录数据库进行工作流实…

Day05-docker-compose与私有仓库

Day05-docker-compose与私有仓库 3.4 Docker Compose1)compose极速上手指南案例28-初步上手docker-compose2)compose文件的常用指令3)案例29-docker-compose部署kodexp5)小结 3.5 docker镜像仓库之registry仓库1)仓库选…

Qt中常用对话框

Qt中的对话框(QDialog)是用户交互的重要组件,用于向用户提供特定的信息、请求输入、或进行决策。Qt提供了多种标准对话框以及用于自定义对话框的类。以下将详细介绍几种常用对话框的基本使用、使用技巧以及注意事项,并附带C示例代…

SV-7041T IP网络有源音箱 教室广播多媒体音箱(带本地扩音功能)教学广播音箱 办公室背景音乐广播音箱 2.0声道壁挂式网络有源音箱

SV-7041T IP网络有源音箱 教室广播多媒体音箱(带本地扩音功能) 教学广播音箱 办公室背景音乐广播音箱 一、描述 SV-7041T是深圳锐科达电子有限公司的一款2.0声道壁挂式网络有源音箱,具有10/100M以太网接口,可将网络音源通过自带…

学习指导|在改变

备忘在这里啦。潦草本草

黑马微服务课程2

课程地址:2024最新SpringCloud微服务开发与实战,java黑马商城项目微服务实战开发(涵盖MybatisPlus、Docker、MQ、ES、Redis高级等)_哔哩哔哩_bilibili 课程名称:2024最新SpringCloud微服务开发与实战,java…

【1429】招生管理管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java 招生管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&…

android脱壳:一种使用native进行抽取壳脱壳的方法,native版本的frida-fart

前言 写rxposed的时候,搞了很多模块,其中有一个远程调用脱壳的,但是当时使用的是rmi远程调用,因为一些问题无法使用,可能是对抗问题,也有可能是技术问题,所以我又换了一种远程调用方式。 概述…

21-22 - 线性表的链式存储结构 单链表的具体实现

---- 整理自狄泰软件唐佐林老师课程 文章目录 1. 线性表的链式存储结构1.1 定义1.2 逻辑结构1.3 专业术语的统一 2. 链表的基本概念2.1 单链表中的结点定义2.2 单链表中的内部结构2.3 在目标位置处插入数据元素2.4 在目标位置处删除数据元素 3. 链式存储结构线性表的实现3.1 设…

排列对称串

Description:很多字串,有些是对称的,有些是不对称的,请将那些对称的字事按从小到大的顺序输出,字事先以长度论大小,如果长度相同,再以ASCI码值为大小标准 Input.输入数据中含有一些字串(1≤串长≤256)。 #…

linux文件句柄数满,linux文件句柄数超出系统限制怎么办?

1、问题阐述: too many open files:顾名思义即打开过多文件数。 不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle),这个错误通常…

Rust腐蚀服务器搭建架设教程ubuntu系统

Rust腐蚀服务器搭建架设教程ubuntu系统 大家好我是艾西一个做服务器租用的网络架构师。Rust腐蚀游戏对于服务器的配置有一定的要求很多小伙伴就思考用linux系统搭建的话占用会不会小一点,有一定电脑基础的小伙伴都知道Linux系统和windows系统相比较linux因为是面板…

coreldraw2024精简版绿色版安装包免费下载

CorelDRAW 2024是一款矢量图形设计软件,于2024年3月5日正式在全球范围内发布。这款软件在多个方面进行了更新和改进,为用户提供了更多高效、灵活和便捷的设计工具。 首先,CorelDRAW 2024新增了绘画笔刷功能,这些笔刷不仅模拟了传…

算法学习001-圆桌问题 中小学算法思维学习 信奥算法解析 c++实现

目录 算法学习001-圆桌问题 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、推荐资料 算法学习001-圆桌问题 一、题目要求 1、编程实现 圆桌边围坐着2n个人,其中n个人是好人&#xff0c…

【199.二叉树的右视图】_二叉树_day01

1 题目描述 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。199.二叉树的右视图 2 解题思路 此题是二叉树层序遍历的拓展。 创建一个队列que (Queue)起到中介的作用&#xff0c…
最新文章