Siamrpn++论文中文翻译(详细!)

news2024/9/23 7:21:01

SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks

SiamRPN++:具有非常深度网络的Siamese视觉跟踪的进化

【siamrpn++论文地址】

https://arxiv.org/abs/1812.11703

摘要

基于Siamese网络的跟踪器将跟踪表示为目标模板和搜索区域之间的卷积特征互相关。然而,与最先进的算法相比,Siamese追踪器仍然存在精度差距,它们不能利用来自深度网络的特征,如ResNet-50或更深层次的网络。在本文中,我们证明了其核心原因来自于缺乏严格的平移不变性。通过全面的理论分析和实验验证,我们通过一个简单而有效的空间感知采样策略打破了这一限制,成功地训练了一个具有显著性能收益的resnet驱动的跟踪Siamese跟踪器。

此外,我们提出了一种新的模型架构来执行分层和深度聚合,这不仅进一步提高了精度,而且减少了模型的大小。我们进行了广泛的消融研究,以证明所提出的跟踪器的有效性,它目前在五个大型跟踪基准上获得了最好的结果,包括OTB2015、VOT2018、UAV123、LaSOT和跟踪网。我们的模型将被发布,以促进进一步的研究。

1 介绍

视觉物体跟踪在过去的几十年里受到了越来越多的关注,并一直是一个非常积极的研究方向。它在视觉监控[47]、人机交互[26]和增强现实[48]等不同领域都有广泛的应用。虽然最近取得了很大的进展,但由于光照变化、遮挡和背景杂波等诸多因素,它仍然被普遍认为是一项非常具有挑战性的任务。

最近,基于Siamese网络的追踪器[40,1,15,42,41,24,43,52,44]在社区中引起了人们的广泛关注。这些Siamese跟踪器通过为目标模板学习的特征表示和搜索区域之间的互相关,将视觉对象跟踪问题表述为学习一般的相似性地图。为了保证跟踪效率,离线学习到的Siamese相似度函数通常在运行时间[40,1,15]期间被固定下来。CFNet跟踪器[41]和DSiam跟踪器[11]分别通过一个正在运行的平均模板和一个快速转换模块来更新跟踪模型。SiamRNN跟踪器[24]在Siamese网络之后引入了区域建议网络[24],并进行联合分类和回归进行跟踪。DaSiamRPN跟踪器[52]进一步引入了干扰物感知模块,提高了模型的识别能力。

尽管上述Siamese跟踪器获得了出色的跟踪性能,特别是在平衡精度和速度方面,即使是性能最好的Siamese跟踪器,如SiamPRN,在OTB2015 [46]等跟踪基准上,精度仍然与最先进的[5]有显著的差距。我们观察到,所有这些跟踪器都在类似于AlexNet [23]的架构上建立了网络,并多次尝试训练具有像ResNet [14]这样的更复杂架构的Siamese跟踪器,但没有性能提高。受此观察结果的启发,我们对现有的Siamese追踪器进行了分析,发现其核心原因来自于对严格平移不变性的破坏。由于目标可能出现在搜索区域的任何位置,目标模板学习到的特征表示应该保持空间不变,我们进一步从理论上发现,在现代深度架构中,只有AlexNet的零填充变体满足这一空间不变性限制。

为了克服这一限制,并使用更强大的深度架构来驱动Siamese跟踪器,通过广泛的实验验证,我们引入了一个简单的但有效的采样策略打破了Siamese跟踪器的空间不变性限制。我们使用ResNet作为骨干网络,成功地训练了一个基于SiamRPN [24]的跟踪器,并获得了显著的性能改进。得益于ResNet架构,我们提出了一种分层的特征加重结构,它有助于跟踪器从多个层次上学习到的特征中预测相似性图。通过对Siamese网络结构的相互关联分析,发现其两个网络分支在参数数上高度不平衡;因此,我们进一步提出了一种深度可分离的相关结构,它不仅大大减少了目标模板分支的参数数,而且稳定了整个模型的训练过程。此外,还观察到一个有趣的现象,即相同类别的物体在相同的通道上有较高的响应,而其余通道的响应被抑制。正交特性也可以提高跟踪性能。

综上所述,这项工作的主要贡献分为四个部分:

•我们对Siamese追踪器进行了深入的分析,并证明了在使用深度网络时,精度的下降是由于严格平移不变性的破坏。

•我们提出了一种简单而有效的采样策略来打破空间不变性限制,成功地训练了由ResNet体系结构驱动的Siamese跟踪器。

•我们提出了一种用于互相关操作的分层特征聚合结构,它帮助跟踪器从多个层次上学习到的特征中预测相似度图。

•我们提出了一种深度可分离的相关结构来增强互相关,以产生与不同语义相关的多个相似性映射。

基于上述理论分析和技术贡献,我们开发了一个高效的视觉跟踪模型,建立了一个新的最先进的跟踪精度,同时在35 FPS的速度下高效运行。提出的跟踪器,称为SiamRPN++,在五个最大的跟踪基准上持续获得最佳跟踪结果,包括OTB2015 [46]、VOT2018 [21]、UAV123 [31]、LaSOT [10]和跟踪网[30]。此外,我们提出了一种使用MobileNet[18]骨干的跟踪器的快速变体,以保持在70帧/秒下运行的竞争性能。为了便于对视觉跟踪方向的进一步研究,我们将发布SiamRPN++跟踪器的源代码和训练模型。

2 相关工作

在本节中,我们将简要介绍最近的跟踪器,特别关注基于Siamese网络的跟踪器[40,1]。此外,我们还描述了深度体系结构的最新发展。

由于构建了新的基准数据集[45,46,19,21,10,30]和改进的方法[16,51,6,7,17,32,9,5,43,52,49],视觉跟踪在过去十年中得到了快速的发展。标准化基准[45,46,10]为与不同算法的比较提供了公平的测试平台。每年举行的跟踪挑战,[22,19,20,21]一直在推动跟踪性能。随着这些进步,许多有前途的跟踪算法已经被提出。Bolme等人[3]的开创性工作将信号处理场的卷积定理引入视觉跟踪,并将对象模板匹配问题转换为频域内的相关操作。通过这种变换,基于相关滤波器的跟踪器不仅可以获得高效的运行速度,而且如果使用适当的特征是[16,50,51,8,6],还可以提高精度。随着深度学习模型在视觉跟踪中的广泛应用,基于深度特征表示的相关滤波的跟踪算法在流行的跟踪基准[45,46]和挑战[22,19,20]中获得了最先进的精度。

近年来,基于Siamese网络的跟踪器因其良好的跟踪精度和效率[40,1,15,42,41,12,24,43,52,44]而受到广泛关注。这些跟踪器将视觉跟踪定义为一个交叉关系问题,并有望更好地利用从端到端学习中获得的深度网络的优点。为了从两个分支的互相关中生成一个相似性图,他们训练了一个y形的神经网络,它连接了两个网络分支,一个用于对象模板,另一个用于搜索区域。此外,这两个分支可以在跟踪阶段[40,1,15,43,24,52]期间保持固定,或在线更新,以适应目标[42,41,12]的外观变化。目前最先进的Siamese跟踪器[24,52]提高了区域提案网络对Siamese网络的跟踪性能,并产生了非常有希望的结果。然而,在OTB基准测试[46]上,他们的跟踪精度仍然与ECO [5]和MDNet [32]等最先进的深度跟踪器留下了相对较大的差距。

随着Alex等人[23]在2012年提出的现代深度体系结构AlexNet,对网络体系结构的研究迅速发展,提出了许多复杂的深度体系结构,如VGGNet [37]、谷歌Net[38]、ResNet [14]和移动网[18]。这些深度的架构不仅提供了对神经网络设计的更深入的理解,而且推动了许多计算机视觉任务的先进水平如图像检测[33],图像分割[4],和人位姿估计[39]。在深度视觉跟踪器中,网络体系结构通常包含不超过5个由AlexNet或VGGNet量身定制的结构层。这一现象解释了浅层特征主要有助于物体[34]的准确定位。在这项工作中,我们认为,如果用整个Siamese网络适当地训练模型,使用更深入的模型可以显著提高Siamese跟踪器的性能。

3 Siamese Tracking with Very Deep Networks

这项工作最重要的发现是,如果基于Siamese网络的跟踪算法配备了更深层次的网络,那么它的性能可以显著提高。然而,简单地通过直接使用像ResNet这样更深的网络来训练Siamese跟踪器并不能获得预期的性能提高。我们发现潜在的原因很大程度上涉及到Siamese追踪器的内在限制,因此,在提出SiamRPN++模型之前,我们首先对Siamese追踪网络进行了更深入的分析。

3.1. Analysis on Siamese Networks for Tracking

基于Siamese网络的跟踪算法[40,1]将视觉跟踪定义为一个互相关问题,并从具有Siamese网络结构的深度模型中学习跟踪相似度图,其中一个分支用于学习目标的特征表示,另一个分支用于搜索区域。目标补丁通常在序列的第一帧中给出,可以看作是一个样本z。目标是在语义嵌入空间φ(·)中,从下面的框架x中找到最相似的补丁(实例):

其中,b用于模拟相似度值的偏移量。这个简单的匹配函数自然意味着在设计Siamese跟踪器的两个内在的限制。

• Siamese追踪器中使用的收缩部分和特征提取器具有严格平移不变性的内在限制,

,其中是翻译移位子窗口Operator,保证了高效的训练和推理。

收缩部分对结构的对称性有一个内在的限制,收缩部分对结构对称性具有固有的限制,即f(z,x ,)= f(x ,,z),适用于相似性学习。

经过详细的分析,我们发现防止使用深度网络进行Siamese跟踪的核心原因与这两个方面有关。具体地说,其中一个原因是,深度网络中的填充会破坏严格的平移不变性。另一个问题是,RPN需要不对称的特征来进行分类和回归。我们将引入空间感知采样策略来克服第一个问题,并在Sect.3,4节中讨论第二个问题。

严格的平移不变性只存在于没有填充网络中,如修改后的AlexNet [1]。以前基于Siamese的网络[1,42,41,24,52]被设计为浅层的,以满足这个限制。然而,如果所采用的网络被ResNet或MobileNet等现代网络所取代,填充将不可避免地会使网络更加深入,从而破坏了严格的平移不变性限制。我们的假设是,违反这一限制将导致空间偏差。

我们通过在一个填充网络上的模拟实验来验证我们的假设。位移定义为数据增强中均匀分布所产生的最大平移范围。我们的模拟实验进行如下。首先,在三个分段训练实验中,将目标放置在具有不同移位范围(0、16和32)的中心。收敛后,我们对测试数据集上生成的热图进行聚合,然后将结果可视化到图1中。在第一次零位移的模拟中,边界区域的概率降为零。它表明,尽管出现了测试目标,但仍能学习到强烈的中心偏差。另外两个模拟表明,增加位移范围将逐渐防止模型崩溃到这个平凡的解。定量结果表明,32位移的聚合热图更接近于测试对象的位置分布。空间感知采样策略可以有效缓解了填充网络对严格平移不变性的破坏。

图1.当使用不同的随机翻译时,正样本的先验概率关系的可视化。在±32像素内进行随机翻译后,分布变得更加均匀。

为了避免对物体施加强烈的中心偏差,我们通过空间感知采样策略,用ResNet-50主干来训练SiamRPN。如图2所示,在VOT2018上,零移位的性能降低到0.14,一个合适的移位(±64像素)对于训练深度Siamese跟踪器至关重要。

3.2. ResNet-driven Siamese Tracking

基于以上分析,可以消除中心偏差的影响。一旦我们消除了对中心位置的学习偏差,任何现成的网络(如MobileNet,ResNet)都可以用来在领域适应后进行视觉跟踪。此外,我们还可以自适应地构建网络拓扑结构,揭示了深度网络的视觉跟踪性能。

在本小节中,我们将讨论如何将一个深度网络转移到我们的跟踪算法中。特别是,我们主要针对ResNet-50 [14]进行实验。原始的ResNet有32像素的大步幅,不适合密集的Siamese网络预测。如图3所示,我们通过将conv4和conv5块修改为单位空间步幅,将最后两个块的有效步幅从16像素和32像素减少到8像素,并通过扩张卷积[27]增加其接受域。在每个块输出上附加一个额外的1×1的卷积层,以将信道减少到256。

在[24]之后,我们使用互相关层和完全卷积层的组合来组装一个头模块来计算分类分数(用S表示)和边界框回归变量(用B表示)。Siamese人的RPN块用P表示。

此外,我们发现对ResNet仔细微调将提高性能。通过将ResNet提取器的学习速率设置为比RPN部分小的10倍,使特征表示更适合于跟踪任务。与传统的Siamese方法不同,深度网络的参数是以端到端方式联合训练的。据我们所知,我们确实是第一个在深度Siamese网络(> 20层)上实现端到端学习,以进行视觉跟踪。

3.3. Layer-wise Aggregation(分层聚合)

在利用了像ResNet-50这样的深层网络后,聚合不同的深层就成为可能了。直观地说,视觉跟踪需要丰富的表示,能够跨越从低到高的级别,从小到大的尺度,以及从精细到粗的分辨率。即使在卷积网络中使用特征的深度,隔离一层也是不够的:复合和聚合这些表示可以提高识别和定位的推理。

在之前的工作中,只使用像AlexNet这样的浅层网络,多层次特性不能提供非常不同的表示。然而,考虑到接受域的差异很大,ResNet的不同层更有意义。早期层的特征主要集中于颜色、形状等低层次信息,对于定位至关重要,而缺乏语义信息;后者的特征具有丰富的语义信息,在运动模糊、巨大变形等挑战场景中是有益的。假设使用这种丰富的层次信息有助于帮助跟踪。

在我们的网络中,提取多分支特征来协同推断目标定位。对于ResNet- 50,我们探索了从最后三个残差块中提取的多层次特征,用于我们的多层聚合。我们将这些输出分别称为F3(z)、F4(z)和F5(z)。如图3所示,将conv3、conv4、conv5的输出分别输入三个SiameseRPN模块。

图3.我们所提议的框架的说明。给定一个目标模板和搜索区域,该网络通过融合来自多个Siamese区域建议(SiamRPN)块的输出来输出一个密集的预测。每个SiamRPN块显示在右边。

由于三个RPN模块的输出尺寸具有相同的空间分辨率,因此直接对RPN输出采用加权和。一个加权融合层结合了所有的输出。

由于组合权重的域不同,因此将分离组合权重进行分类和回归。该权重与网络一起离线地进行端到端优化。

与以前的工作相比,我们的方法没有明确地结合卷积特征,而是分别学习分类和回归。请注意,随着主干网络深度的显著增加,我们可以从足够的视觉-语义层次结构的多样性中获得实质性的收益。

3.4. Depthwise Cross Correlation

互相关模块是嵌入两个分支信息的核心操作。SiamFC [1]利用交叉相关层获得目标定位的单通道响应图。在SiamRPN [24]中,通过添加一个巨大的卷积层来扩展通道(UP-Xcorr),交叉关联被扩展到嵌入更高层次的信息,如锚点。较重的上通道模块使参数分布严重不平衡(即RPN模块包含20M参数,而特征提取器在[24]中只包含4M参数),这使得SiamRPN的训练优化困难。

在本小节中,我们提出了一个轻量级的互相关层,称为深度互相关(DW-XCorr),以实现有效的信息关联。DW-XCorr层包含的参数比SiamRPN中使用的UP-XCorr少10倍,而性能与之相当。为了实现这一点,我们采用了一个conv-bn块来调整每个残差块的特征,以适应跟踪任务。至关重要的是,边界盒预测和基于锚点的分类都是不对称的,这与SiamFC不同(见See Sect. 3.1). 为了编码差异,模板分支和搜索分支通过两个非共享的卷积层。然后对两个具有相同信道数的特征图进行逐信道的相关操作。附加了另一个conv-bn-relu块来融合不同的通道输出。最后,附加了分类或回归输出的最后一个卷积层。

图4。不同的互相关层的说明。(a)交叉相关(XCorr)层预测了SiamFC [1]中目标模板和搜索补丁之间的单通道相似性图。(b)上行通道交叉相关(UP-XCorr)层通过在SiamRPN [24]中级联一个重卷积层和几个独立的XCorr层来输出多通道相关特征。(c)深度交叉相关(DW-XCorr)层预测了模板和搜索补丁之间的多通道相关特征。

通过将互相关替换为深度相关,我们可以大大降低计算成本和内存使用。这样,模板和搜索分支上的参数数量就得到了平衡,从而使训练过程更加稳定。

此外,图5中还说明了一个有趣的现象。同一类别的物体在同一通道上有较高的响应(148通道的车,222通道的人,226通道的脸),而其余通道的响应被抑制。这一性质可以理解为由深度互相关所产生的通道级特征几乎是正交的,每个通道都代表一些语义信息。我们也分析了热图时,当使用上通道互相关和反应图是较少解释的。

图5。conv4中深度相关输出的通道。conv4共有256个通道,但只有少数通道在跟踪过程中具有高响应。因此,我们选择了第148、222、226个通道作为演示,即图中的第2、3、4行。第一行包含来自OTB数据集[46]的6个相应的搜索区域。不同的通道代表不同的语义,第148通道对汽车的响应较高,而对人和脸的响应较低。第222频道和第226频道对人物和面孔分别有较高的反应。

4 实验结果

4.1 培训数据集和评估

训练:我们的架构[14]的主干网络在ImageNet [36]上进行了预训练,用于图像标记,这已经被证明是对其他任务[13,27]的一个非常好的初始化。我们在COCO [25]、ImageNet DET [36]、ImageNet VID和YouTube边界盒数据集[35]的训练集上训练网络,并学习如何测量一般对象之间的相似性的通用概念。在训练和测试中,我们使用127像素的模板补丁,255像素的搜索区域。

评价:我们专注于在OTB2015 [46]、VOT2018 [21]和UAV123 [31]上的短期单目标跟踪。我们使用VOT2018-LT [21]来消除长期设置。在长期跟踪中,物体可能会离开视野或长时间被完全遮挡,这比短期跟踪更具挑战性。我们还分析了我们的方法在LaSOT [10]和TrackeingNet[30]上的推广,这是最近两个最大的单目标跟踪基准。

4.2 实施细节

网络架构。在实验中,我们遵循[52]来进行训练和推理设置。我们将两个兄弟卷积层连接到减步的ResNet-50(部分。3.2)使用5个锚点进行方案分类和边界盒回归。三个随机初始化的1×1卷积层附加到conv3、conv4、conv5上,将特征维数降到256。

优化器。最优化SiamRPN++采用随机梯度下降(SGD)进行训练。我们使用超过8个GPU的同步SGD,每个小批总共128对(每个GPU16对),这需要12个小时才能收敛。我们使用前5步的热身学习率为0.001来训练RPN刹车。在最后的15个学习周期中,对整个网络进行端到端训练,学习率从0.005呈指数衰减到0.0005。重量衰减为0.0005,动量为0.9。训练损失是分类阳离子损失和回归的标准平滑L1损失的总和。

4.3 消融实验

骨干体系结构。特征提取器的选择是至关重要的,因为参数的数量和层的类型直接影响跟踪器的内存、速度和性能。我们比较了不同的网络架构的视觉跟踪。图6显示了使用AlexNet、ResNet-18、ResNet-34、ResNet-50和MobileNet-v2作为骨干的性能。我们报告了OTB2015上成功面积曲线下(AUC)与ImageNet上前1精度的性能。我们观察到,我们的SiamRPN++可以受益于更深层次的卷积神经网络。

图6 . ImageNet的最高精对比。2015年OTB的预期平均重叠(EAO)得分。

层次特征聚合。为了研究分层特征聚合的影响,我们首先要在ResNet-50上训练三个具有单一RPN的变体。我们的经验发现,conv4单独在EAO中可以达到0.374的竞争性能,而较深层和较浅层的性能下降了4%。通过结合conv4和conv5这两个分支获得了改善,但对其他两种组合没有观察到改善。尽管如此,健壮性还是增加了10%,这是我们的跟踪器的关键漏洞。这意味着我们的跟踪器还有改进的空间。在聚合所有三层后,准确性和稳健性都稳步提高,VOT和OTB的收益在3.1%到1.3%之间。总的来说,分层特征聚合在VOT2018上产生了0.414的EAO得分,比单层基线高出4.0%。

深度相关性。我们将原来的上通道交叉相关层与所提出的深度交叉相关层进行了比较。如表1所示,所提出的深度相关性在VOT2018年VOT上提高了2.3%,在OTB2015年OTB上提高了0.8%证明了深度相关性的重要性。这在一定程度上是由于两个分支的参数分布平衡,使学习过程更加稳定,收敛性更好。

表1。在VOT2018和OTB2015上对提议的跟踪器的消融研究。L3、L4、L5分别代表conv3、conv4、conv5。微调表示骨干是否被离线训练。Up/DW表示Up通道相关和深度相关。

4.4 与最先进技术的比较

这部分直接看论文原文效果更好。

5 结论

在本文中,我们提出了一个统一的框架,称为SiamRPN++,用于端到端训练一个深度Siamese网络进行视觉跟踪。我们展示了理论和经验的证据,如何训练一个深度网络的Siamese跟踪器。我们的网络由一个多层聚合模块组成,它组装连接的层次来聚合不同层次的表示,以及一个深度相关层,这允许我们的网络减少计算成本和冗余参数,同时也导致更好的收敛。使用SiamRPN++,我们实时获得了VOT2018的最新结果,显示了SiamRPN++的有效性。SiamRPN++还在LaSOT和跟踪网等大型数据集上获得了最先进的结果,显示了其通用性。

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

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

相关文章

基于ssm疫情期间高校防控系统+vue论文

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,学生信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广大…

贪吃蛇(C语言)步骤讲解

一:文章大概 使用C语言在windows环境的控制台中模拟实现经典小游戏 实现基本功能: 1.贪吃蛇地图绘制 2.蛇吃食物的功能(上,下,左,右方向控制蛇的动作) 3.蛇撞墙死亡 4.计算得分 5.蛇身加…

【LeetCode:230. 二叉搜索树中第K小的元素 + 二叉树 + 递归】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

YOLOv9:Learning What You Want to Learn Using Programmable Gradient Information

YOLOv9:Learning What You Want to Learn Using Programmable Gradient Information 摘要 今天的深度学习方法关注的是如何设计最合适的目标函数,使模型的预测结果最接近ground truth的真实情况。同时,必须设计一个适当的体系结构&#xff…

CSS 【详解】响应式布局(含 rem 详解)

响应式布局: 同一页面在不同的屏幕上有不同的布局,即一套代码自适应不同的屏幕。 为什么 rem 能用于实现响应式布局? px 绝对长度单位,不同客户端表现都相同,不具有响应式em 相对长度单位,相对于父元素的 f…

【博图TIA-Api】通过Excel自动新建文件夹和导入FB块

【博图TIA-Api】通过Excel自动新建文件夹和导入FB块 说明思路准备获取Excel表格内文件名和FB块名等信息新建文件夹部分筛分获取的文件夹数据,去掉重复内容创建文件夹 导入FB块导出FB块的xml文件查找需要放置的文件夹导入块 说明 续上一篇文章,这次是根据…

Python爬虫——Urllib库-3

目录 ajax的get请求 获取豆瓣电影第一页的数据并保存到本地 获取豆瓣电影前十页的数据 ajax的post请求 总结 ajax的get请求 获取豆瓣电影第一页的数据并保存到本地 首先可以在浏览器找到发送数据的接口 那么我们的url就可以在header中找到了 再加上UA这个header 进行请…

【Easyx】easyx从入门到精通 — 初步入门

easyx 初步入门 1 安装easyx图形库2 如何使用Easyx3 效果初试4 基本图形绘制4.1 绘制点4.2 绘制直线4.3 绘制圆形4.4 绘制矩形4.5 绘制椭圆4.6 绘制圆角矩形4.7 绘制扇形 Thanks♪(・ω・)ノ谢谢阅读!!!下一篇…

mTSL: netty单向/双向TLS连接

创建证书 不管是单向tls还是双向tls(mTLS),都需要创建证书。 创建证书可以使用openssl或者keytool,openssl 参考 mTLS: openssl创建CA证书 单向/双向tls需要使用到的相关文件: 文件单向tls双向tlsServer端Client端备注ca.key----需要保管好&#xff0…

Linux高负载排查最佳实践

在Linux系统中,经常会因为负载过高导致各种性能问题。那么如何进行排查,其实是有迹可循,而且模式固定。 本次就来分享一下,CPU占用过高、磁盘IO占用过高的排查方法。 还是那句话,以最佳实践入手,真传一句话…

mysql 常用命令练习

管理表格从表中查询数据从多个表查询修改数据sql变量类型 管理表格 创建一个包含三列的新表 CREATE TABLE products (id INT,name VARCHAR(255) NOT NULL,price INT DEFAULT 0,PRIMARY KEY(id) // 自增 ); 从数据库中删除表 DROP TABLE product; 向表中添加新列 ALTER TAB…

使用Xftp连接CentOS 7进行文件的传输

一、查看虚拟机IP地址 在虚拟机中打开终端输入 ifconfig : 我的虚拟机IP为192.168.23.131 二、打开XFtp 7连接虚拟机 其余设置为默认,点击连接后输入你的用户名和密码: 输入密码后弹出如下界面表示连接成功~ 三、传输文件 传输文件只需用鼠…

【Linux杂货铺】调试工具gdb的使用

目录 🌈前言🌈 📁背景介绍 📁 使用 list [行号] / [函数名] run/r break/b [行号] / [函数名] info break disable break enable break delete break [断点编号] next/n step/s continue/c finish print/p [变量…

Leetcode438. 找到字符串中所有字母异位词 -hot100

题目&#xff1a; 代码(首刷看解析 2024年3月2日&#xff09;&#xff1a; 感觉自己这个ac率根本不可能找得到实习 class Solution { public:vector<int> findAnagrams(string s, string p) {int plen p.size(), slen s.size();if (slen < plen) return {};vector…

LeetCode 热题 100 | 图论(一)

目录 1 200. 岛屿数量 2 994. 腐烂的橘子 2.1 智障遍历法 2.2 仿层序遍历法 菜鸟做题&#xff0c;语言是 C 1 200. 岛屿数量 解题思路&#xff1a; 遍历二维数组&#xff0c;寻找 “1”&#xff08;若找到则岛屿数量 1&#xff09;寻找与当前 “1” 直接或间接连接在…

sqlserver保存微信Emoji表情

首先将数据库字段&#xff0c;设置类型为 nvarchar(200)一个emoji表情&#xff0c;占4字节就可以了&#xff0c;web前端展示不用改任何东西&#xff0c;直接提交数据保存&#xff1b;回显也会没有问题&#xff0c;C#代码不用做任何处理&#xff1b; 不哭不闹要睡觉&#x1f31…

基于springboot+vue的抗疫物资管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

2023人机交互期末复习

考试题型及分值分布 1、选择题&#xff08;10题、20分&#xff09; 2、填空题&#xff08;10题、20分&#xff09; 3、判断题&#xff08;可选、5题、10分&#xff09; 4、解答题&#xff08;5~6题、30分&#xff09; 5、分析计算题&#xff08;1~2题、20分&#xff09; 注意&…

maven的私服

什么是maven的私服就是把自己写的工具类共享给别人这样大家都能用到你写的工具类不用重复写提示效率 maven的上传与下载示意图 1.什么是发行版本&#xff1f;发行版本指定的是功能稳定可以共大家使用的版本 2.什么是快照版本&#xff1f;快照版本指定的是指正在开发的版本 3…

[计算机网络]--五种IO模型和select

前言 作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接受失败&#xff0c;但我不能接受放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、五种IO…