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

High Performance Visual Tracking with Siamese Region Proposal Network

Siamese地区建议网络的高性能视觉跟踪

说明

建议对照siamrpn(2018)原文阅读,翻译软件翻译出来的效果不好,整体阅读体验不佳,所以我对译文重新进行了整理,方便大家阅读研究。

【siamrpn论文地址】

High Performance Visual Tracking with Siamese Region Proposal Network | IEEE Conference Publication | IEEE Xplore

摘要

视觉对象跟踪是近年来的一个基本课题,许多基于深度学习的跟踪器在多个基准测试上取得了最先进的性能。然而,大多数这些跟踪器很难获得实时速度的最佳性能。在本文中,我们提出了Siamese区域建议网络(Siamese-RPN),它是基于大规模图像对的端到端离线训练。具体来说,它由用于特征提取的Siamese子网和包括分类分支和回归分支在内的区域建议子网组成。在推理阶段,所提出的框架被表述为一个局部的一次性检测任务。我们可以预先计算Siamese子网络的模板分支,并将相关层表示为平凡的卷积层来进行在线跟踪。受益于提案的改进,传统的多尺度测试和在线微调可以被丢弃。Siamese-RPN以160帧/秒的速度运行,同时在VOT2015、VOT2016和VOT2017实时挑战中取得了领先的性能。

1介绍

视觉目标跟踪是计算机自动驾驶[19]和视频监控[32]等各种视觉任务的基本构件。在照明、变形、遮挡和运动[37,39]引起的大外观差异中具有挑战性。此外,速度在实际应用中也很重要。现代追踪器大致可以分为两个分支。第一个分支是基于相关滤波器,它通过利用循环相关的性质并在傅里叶域中执行操作来训练回归因子。它可以同时有效地进行在线跟踪和更新过滤器的权重。原来的版本是在傅里叶域进行,然后广泛应用于跟踪社区[5,14]。最近的基于相关滤波器的方法利用深度特征来提高精度,但在模型更新过程中很大程度上损害了速度。方法的另一个分支旨在使用非常强的深度特性,而不更新模型[13,4,35]。然而,由于没有使用特定领域的信息,这些方法的性能总是不如基于相关滤波器的方法好。

在本文中,我们证明了经过离线训练的基于深度学习的跟踪器与目前最先进的基于相关滤波器的方法相比,可以获得具有竞争的结果。关键是提议的Siamese地区提案网络(Siamese-RPN)。它由一个模板分支和一个检测分支组成,它们以端到端的方式与大规模图像对进行离线训练。灵感来自于最先进的提案提取方法RPN [27],我们对相关特征图进行建议提取。与标准RPN不同,我们使用两个分支的相关特征图进行建议提取。在跟踪任务中,我们没有预定义的类别,所以我们需要模板分支将目标的外观信息编码到RPN特征图中,以区分前景和背景。

为了进行推理,我们将其表示为一个局部的一次性检测框架,其中第一帧中的边界框是唯一的范例。我们将 模板分支 重新解释为参数 来预测检测内核 作为一个像[2]一样的元学习器。元学习者和检测分支都只在使用RPN的监督下进行端到端训练。在在线跟踪过程中,模板分支被修剪以加速初始帧后的速度。据我们所知,这是第一个将在线跟踪任务制定为一次性检测的工作。

我们在VOT2015、VOT2016和VOT2017实时挑战[17,16,15]中评估了所提出的方法。它可以在所有三个挑战中取得领先的性能。主要有两个原因,为什么我们可以得到最先进的结果,而不需要在线微调。首先,我们的方法可以通过图像对进行离线训练,这可以利用大规模的训练数据,如Youtube-BB [25]。消融研究表明,更多的数据可以帮助获得更好的性能。

其次,我们发现区域建议子网络通常预测准确的规模和比例,得到紧凑的边界框,如图1所示。

图1:将我们的方法与两种最先进的跟踪器进行了比较。当目标的形状发生严重变化时,SiamRPN(Siamese-RPN的缩写)能够比SiamFC(Siamese-FC的缩写)[4],CCOT[10]能够更准确地预测其形状。

这些贡献可以概括为三类。 

1).我们提出了Siamese区域建议网络(SiameseRPN),它是端到端离线训练的大规模图像对的跟踪任务。

2).在在线跟踪过程中,所提出的框架被制定为一个局部的热点检测任务,它可以改进该方案,以放弃昂贵的多尺度测试。

3).它以160f/1秒的速度在VOT2015、VOT2016和VOT2017实时挑战中取得了领先的性能,证明了其在精度和效率方面的优势。

2 相关工作

由于本文的主要贡献是作为局部一次性检测任务的SiameseRPN,我们简要回顾了与我们的工作相关的三个方面:基于Siamese网络结构的跟踪器、检测中的RPN和一次性学习。

2.1Trackers based on Siamese network structure

Siamese网络由两个分支组成,它们隐式地将原始补丁编码到另一个空间,然后将它们与一个特定的张量融合,产生一个输出。它通常用于比较隐式嵌入空间中的两个分支的特征特别是对比任务。近年来,Siamese网络因其平衡的精度和速度的[13,12,4,35,36]而引起了视觉跟踪社区的广泛关注。GOTURN [13]采用Siamese网络作为特征提取器,采用全连接层作为融合张量。通过使用最后一帧的预测边界框作为唯一的建议,可以看作是一种回归方法。Re3 [12]采用递归网络来获得模板分支产生的更好的特性。受基于相关的方法的启发,Siamese-FC [4]首先引入了相关层作为融合张量,大大提高了精度。它成功的原因是与GOTURN的一个建议回归相比,密集监督的热图,这使Siamese-fc对快速移动的对象更健壮。CFNet [35]向模板分支添加了一个相关滤波器,使Siamese网络更浅但更有效。然而,siamesce和CFNet都缺乏边界盒回归,需要进行多尺度测试,因此不那么优雅。这些实时跟踪器的主要缺点是,与最先进的相关滤波器应用程序相比,它们的精度和鲁棒性都不太理想。

2.2 RPN in detection

区域提案网络(RPN)首先是在更快的R-CNN [27]中提出的。在RPN之前,传统的提案提取方法是耗时的。例如,选择性搜索[34]需要2秒钟来处理一个图像。此外,这些建议还不够好。多个锚点[27]的枚举和共享卷积特征使建议提取方法的时间效率,同时实现高质量。由于对前景-背景分类和边界盒回归的监督,RPN能够提取出更精确的建议。使用RPN的R-CNN的变体。R-FCN [6]考虑了组件的位置信息,FPN [21]采用了特征金字塔网络来提高小目标的检测性能。与两级探测器相比,改进版的RPN,如SSD [22]和YOLO9000 [26],是有效的探测器。RPN由于其速度和良好的性能,在检测方面有许多成功的应用,但在跟踪方面尚未得到充分利用。

2.3 One-shot learning

近年来,深度学习中的一次性学习课题越来越受到人们的重视。基于贝叶斯统计的方法和元学习方法是解决该问题的两种主要方法。在[20]中,对象类别由概率模型表示,在推理阶段采用贝叶斯估计。通过另一种方式,元学习方法旨在获得学习学习的能力,也就是说,意识到并控制自己的学习。具体的,[1] 利用一种预测目标网络在反向传播过程中的梯度的神经网络。[30]学习一个网络,该网络将一个小标记的支持集和一个未标记的例子映射到它的标签。虽然这些基于元学习的方法取得了竞争性的结果,但这些方法通常在分类任务上进行评估,很少有扩展到跟踪任务。Learnet [2]是第一个利用元学习方法解决跟踪任务的工作,该任务从一个样本中预测学生网络的参数。然而,Learnet 的性能不能与现代基于DCF的方法竞争,例如在多个基准测试中的CCOT。

3 Siamese-RPN framework

在本节中,我们将详细描述所提出的Siamese-RPN框架。如图2所示,该框架由一个用于特征提取的Siamese子网和一个用于建议生成的区域建议子网组成。具体来说,在RPN子网中有两个分支,一个负责前景-背景分类,另一个用于提案的细化。将包含目标对象的图像补丁输入到所提出的框架中,并对整个系统进行末端到训练。

图2:Siamese-RPN的主要框架:左侧是特征提取子网。区域建议子网位于中间,它有两个分支,一个用于分类,另一个用于回归。采用成对相关法得到两个分支的输出。这两个输出特性图的详细信息在右侧。在分类分支中,输出特征图有2k个通道,分别对应于k个锚点的前景和背景。在回归分支中,输出特征图有4k个通道,对应4个坐标,用于k个锚的建议细化。在图中,⋆为相关算子。

3.1 Siamese特征提取子网络

在Siamese网络中,我们采用了一个无填充的完全卷积网络。设Lτ表示平移算子(Lτx)[u] = x[u−τ],然后去掉所有的划条,以满足步幅k的完全卷积的定义:

这里我们使用修改的AlexNet [18],其中conv2和conv4的组被删除[4]。

Siamese特征提取子网由两个分支组成。其中一个被称为模板分支,它在历史框架中接收目标补丁作为输入(记为z)。另一种称为检测分支,它在当前帧中接收目标补丁作为输入(记为x)。这两个分支在CNN中共享参数,因此这两个补丁通过相同的转换进行隐式编码,这适合于后续的任务。为方便起见,我们将ϕ(z)和ϕ(x)表示为Siamese子网的输出特征图。

3.2 Region proposal subnetwork

区域建议子网由成对相关部分和监督部分组成。监督部分有两个分支,一个用于前背景分类,另一个用于建议回归。如果有k个锚点,网络需要输出2k个信道进行分类,输出4k个信道进行回归。因此,成对相关部分首先将ϕ(z)的通道增加到两个分支(ϕ(z)cls和[ϕ(z)reg,它们的两个卷积层分别有2k和4k次。ϕ(x)也被两个卷积层分为两个分支(ϕ(x)]cls和ϕ(x)reg,但保持通道不变。[ϕ(z)]以一种“组”的方式作为[ϕ(x)]的相关核,也就是说,一组[ϕ(z)]中的信道数与[ϕ(x)]的总体信道数相同。在分类分支和回归分支上都计算了相关性:

模板特征映射[ϕ(z)]cls和[ϕ(z)]reg被用作内核,⋆表示卷积操作。如图2所示,××2k中的每个点表示为(˜w,˜,˜h,:)包含一个2k通道向量,表示每个锚在原始地图上相应位置的负激活和正激活。采用Softmax损失来监督分类分支。同样,记录×4k中的每个点表示为(ˆw,ˆh,:)包含一个4×通道向量,表示dx,dy,dw,dh,测量锚与相应的地面真相之间的距离。

当使用几个锚点训练网络时,我们使用了在更快的R-CNN [27]中使用的损失函数。分类损失是交叉熵损失,采用归一化坐标的平滑L1损失进行回归。设Ax、Ay、Aw、Ah表示锚盒的中心点和形状,设Tx、Ty、Tw、Th表示地面真盒的中心点和形状,标准化距离为:

然后它们通过平滑的L1损失,可以写如下,

最后,我们对损失函数进行了优化

其中,λ是用来平衡这两个部分的超参数。Lcls为交叉熵损失,Lreg为:

3.3 Training phase: End-to-end train SiameseRPN

在训练阶段,从随机间隔的ILSVRC [29]和连续从Youtube-BB [25]中提取样本对。从同一视频的两帧中提取模板和检测补丁。在使用成像网对Siamese子网络进行预训练后,我们使用随机梯度下降(SGD)对Siamese-RPN进行端到端训练。由于需要训练回归分支,采用了仿射变换等数据扩充。我们在跟踪任务中选择的锚点比在检测任务中更少,因为我们注意到在相邻的两个帧中相同的对象不会有太大的变化。因此,我们只采用了一个不同锚比例的尺度,我们采用的锚比例为[0.33、0.5、1、2、3]。

在我们提出的框架中,选择正训练样本和负训练样本的策略也很重要。这里采用了在目标检测任务中使用的标准,即我们将IoU与两个阈值thhi和thlo一起用作测量。阳性样本被定义为具有IOU>thhi其相应的地面真相的锚点。负的被定义为满足thlo<的锚点。我们将thlo设置为0.3,thhi设置为0.6。我们还限制了最多16个阳性样本和总共64个样本。

4 作为一次性检测进行跟踪

在本小节中,我们首先将跟踪任务制定为一个局部的一次性检测任务。然后,对该解释下的推理阶段进行了详细的分析和简化,以加快推理速度。最后,介绍了一些具体的策略,使该框架适合于跟踪任务。

4.1配方

我们认为一次性检测作为一个鉴别任务,如在[2]。它的目标是找到使预测函数ψ(x;W)的平均损失L最小化的参数W。它是在n个样本xi和相应的标签ℓi的数据集上计算的:

一次性学习的目标是从感兴趣类别的单一模板z中学习W。区分一次性学习的挑战是找到一种将类别信息纳入学习者的机制,即学习学习。为了解决这一挑战,我们提出了一种方法,使用元学习过程从单个模板z中学习预测器的参数W,即将(z;W‘)映射到W的前馈函数ω。让zi作为一批的模板样本,那么问题可以表述为:

我们现在可以将Siamese子网中的模板分支重新解释为训练参数来预测局部检测任务的核心,这是典型的学习学习过程。在这种解释中,使用模板分支将类别信息嵌入到内核中,而检测分支使用嵌入的信息进行检测。在训练阶段,学习者不需要任何其他的监督,除了成对的边界框监督。在推理阶段,Siamese框架被修剪,只剩下检测分支,从而导致高速。从第一帧开始的目标补丁被发送到模板分支中,并预先计算检测核,以便我们可以在其他帧中进行一次性检测。由于局部检测任务仅基于模板在初始帧上给出的类别信息,因此可以视为一次性检测。

4.2 推理阶段:进行一次性检测

作为第二节中的公式4.1,我们将模板分支的输出视为本地检测的内核。这两个内核都是在初始帧上预先计算出来的,并在整个跟踪期间进行固定。将当前的特征图由预先计算好的核进行卷积,检测分支进行在线推理,作为一次性检测,如图3所示。

图3:将跟踪视为一次性检测:模板分支使用第一帧预测区域建议子网络内核的权值(灰色)。然后修剪模板分支,只保留检测分支。因此,该框架被修改为一个本地检测网络。

对检测分支进行前向传递,得到分类和回归输出,从而得到最高的M个建议。具体来说,在我们在等式中定义的符号之后2、我们将分类和回归特征图表示为点集:

自奇数通道分类特性地图代表积极激活,我们收集所有克隆的K点

奇数,表示点集,I,J,L是一些索引集。变量i和变量j分别编码对应的锚点的位置,和l编码的相应的锚比率,因此我们可以导出相应的锚点集为

,此外,我们发现ANC∗的激活关于

,为了得到相应的细化坐标为

在生成前K个提案后,我们使用一些提案选择策略,使它们适合于跟踪任务,我们将在下一节中进行讨论。

4.3.方案选择

为了使一次性检测框架适合于跟踪任务,我们提出了两种策略来选择建议。

第一个方案选择策略是丢弃由远离中心的锚点产生的边界框。例如,我们只保留

分类特征图上的中心g×g子区域,以得到g×g×k锚,而不是m×n×k锚。因为附近的帧总是没有很大的运动,所以丢弃策略可以有效地去除异常值。图4为分类特征图中选择距离中心不超过7的目标锚点。

图4:RPN特征图中中心尺寸为7的图示,每个网格表示相应位置的k个锚点的编码特征。例如,在分类特征图中有2k个通道代表前景和背景激活。锚点的中心大小表示模型的搜索区域。

第二种提案选择策略是使用余弦窗口和尺度变化惩罚对提案的分数进行重新排序,得到最好的分数。在丢弃离群值后,添加一个余弦窗口来抑制大的位移,然后添加一个惩罚来抑制大小和比例的大变化:

这里的k是一个超参数。r表示提案的高度和宽度之比,r‘表示最后一帧的比例。s和s‘表示方案和最后一帧的总体规模,计算方法如下:

其中,w和h表示目标的宽度和高度,p表示等于w+h 2的填充物。在这些操作之后,在将分类得分乘以时间惩罚后,将前K个建议重新排序。然后执行非最大抑制(NMS),得到最终的跟踪边界框。在选择最终的边界框后,通过线性插值更新目标大小,以保持形状的平稳变化。

5 实验

实验在四个具有挑战性的跟踪数据集上进行: VOT2015、VOT2016、VOT2017实时数据集,每个数据集有60个视频,OTB2015有100个视频。所有的跟踪结果都使用报告的结果来确保公平的比较。

5.1 实施细节

我们使用从ImageNet [28]预训练的改进的AlexNet,其中前三个卷积层的参数固定,并且只对Siamese-RPN中的最后两个卷积层进行微调。这些参数是通过优化等式5中的损失函数借助SGD得到的。总共执行了50个学习周期,在日志空间中,学习率从10−2降低到10−6。我们通过选择间隔小于100的帧来提取图像对,并从VID和Youtube-BB中进行进一步的裁剪程序。如果目标的边界框的大小表示为(w,h),我们以大小为A×A的历史帧为中心进行裁剪,定义如下。

其中p=(w+h)/2。之后它被调整到127×127。以同样的方式,检测补丁在当前帧上被裁剪,其大小是模板补丁的两倍,然后在255×255中调整大小。在推理阶段,由于我们将在线跟踪定义为一次性检测任务,因此没有在线自适应。我们的实验是使用PyTorch实现的,使用英特尔i7,12G内存,Nvidia GTX 1060。

5.2 Result on VOT2015

VOT2015数据集由60个序列组成。性能根据准确性(成功跟踪时的平均重叠)和鲁棒性(故障时间)来评估。总体性能使用预期平均重叠(EAO)来评估,它考虑了这两种准确性和健壮性。此外,用归一化速度(EFO)来评估速度。

图5:在2015年VOT挑战中,我们的追踪器、Siamese人组和前10名追踪器的预期重叠。

表1:关于2015年VOT中最先进的跟踪器的细节。红、蓝、绿分别代表第1、2、3位

根据最新的VOT规则,我们将我们的跟踪器与前10个跟踪器进行了比较(将MDNet [24]从板上删除,因为它是用OTB序列生成的数据进行训练的)。Siameseese-fc作为我们的基线。图5显示了Siamese-RPN能够超过VOT2015和Tab中的跟踪器。1.1列出了关于跟踪器的详细信息。如标签页中所示。1、Siamese-RPN在EAO、准确性、失败和EFO等方面排名第一。在VOT2015报告中的所有跟踪器中,只有少数跟踪器能够以实时速度进行跟踪,但它们的预期重叠度相对较低。Siamese-FC是2015年视频点播大会上的顶级跟踪器之一,它可以以超过实时的帧率运行,并达到最先进的性能。Siamese-RPN能够在160 FPS下进行,这几乎是Siamese-FC(86 FPS)的两倍,而EAO相对增加了23%。

5.3 Result on VOT2016

在VOT2016挑战中,序列与VOT2015相同,而边界框被重新注释。性能评价与VOT2015相同。我们将我们的跟踪器与2016年VOT中的前25个跟踪器进行了比较。Siamese-RPN可以在挑战中超过所有的参赛作品。图6显示了EAO的排名和标签。表2显示关于一些最先进的跟踪器的详细信息。如图6所示,我们的跟踪器在160 FPS下运行时,可以根据EAO排名第一,比CCOT快500倍。如标签页中所示。2、Siamese-RPN在EAO、准确性和EFO方面排名第一,在失败方面排名第三。图7显示了最先进的跟踪器的性能和速度。这表明,我们的跟踪器可以在高速运行的同时实现优越的性能。

图6:VOT2016挑战中的预期重叠分数,越大越好。

表2:2016年VOT中已发布的最先进跟踪器表现的详细信息。

图7:我们的跟踪器的性能和速度,以及一些最先进的跟踪器在VOT2016。越接近到上意味着精度越高,越接近向右意味着越快。Siamese-RPN能够在160帧/秒的情况下在EAO中排名第一。

5.4 Result on VOT2017 real-time experiment

在VOT2017 [15]中,至少10个具有挑战性的序列被10个困难的序列所取代。此外,还进行了一个新的实时实验,其中跟踪器需要处理与实时视频流至少25 FPS。这意味着,如果跟踪器不能在40 ms中处理结果,评估器将使用最后一帧的边界框作为当前帧的结果。这对几乎所有最先进的追踪器来说都是一项挑战。在无限速条件下,原始EAO排名前10的跟踪器在实时实验中得到较低的EAO。

图8显示了Siamese-RPN以及2017年VOT报告中列出的几个实时跟踪器。相比之下,Siamese-RPN可以根据EAO排名第一。具体来说,第二名CSRDCF++14%,第二名Siamesefc33%。

5.5. Result on OTB2015

OTB2015 [37]包含从常用的跟踪序列中收集到的100个序列。该评估基于两个指标:精度和成功图。精度图显示了跟踪结果在距离目标20个像素范围内的帧的百分比。成功图显示了当阈值从0到1变化时的成功帧的比率,其中一个成功的帧意味着其重叠大于给定的阈值。利用成功图的曲线下面积(AUC)进行排序跟踪算法。

在本实验中,我们将我们的方法与几种代表追踪器进行了比较,包括PTAV [11],CREST[31],SRDCF [8],SINT [33],CSR-DCF [23],Siamese-FC [4]、Staple [3]、CFNet [35]和DSST [9].如图9所示,所提出的Siamese-RPN能够同时排名第一在过程图和精度图。

5.6.讨论

在本小节中,我们将讨论对我们的性能至关重要的因素,包括数据大小、锚定比率和位置。

5.6.1 Data size

由于我们的跟踪框架只需要图像对,而不是连续的视频流,因此我们能够从大规模的稀疏标记的视频中获益。与ILSVRC [29]由大约4000个逐帧注释的视频组成相比,Youtube-BB [25]由超过10万个视频组成,每30帧注释一次。我们通过逐步添加更多来自Youtube-BB的更多数据来训练具有不同数据集大小的Siamese-RPN。

图10:使用来自ILSVRC [29]和Youtube-BB [25]的越来越多的视频对跟踪器性能的影响。添加来自Youtube-BB的数据可以逐步提高性能。性能不饱和,这意味着随着更多的训练数据,跟踪器的性能可能会变得更好。

5.6.2 Anchor selection

这里我们将讨论锚的两个因素:训练过程中的锚比选择和推理过程中的位置选择。

在第sec.3.3节中讨论的锚定比率,我们在固定锚的比例时只考虑锚的不同比例,因为目标的比例在相邻的两个帧中不会有很大的变化。尝试了三种比率:[0.5、1、2]、[0.33、0.5、1、2、3]、[0.25、0.33、0.5、1、2、3、4](分别记为A3、A5、A7)。

如标签页中所示。3、A5的跟踪器比A3的表现更好,因为它更容易预测形状通过更多的锚,高度和宽度比例较大的目标。然而,使用A7的跟踪器并不能持续提高性能,我们认为这可能是由于过拟合造成的。当添加更多来自Youtube-BB的训练数据时,A7和A5之间的EAO差距从0.013下降到0.007。

锚定位置在我们的实验中,中心的大小(在4.3中去定义)与搜索区域的大小有关。从图4中可以看出,中心尺寸越大,跟踪器可以选择距离中心距离较大的锚点,从而扩大搜索区域。如图11所示,当使用Youtube-BB训练网络时,随着中心大小的增大,性能就会提高。但是,如果只使用ILSVRC进行训练,其性能并没有像预期的那样提高,这意味着RPN的识别能力不足以使用大的搜索区域。

图11:中心大小对不同数据集的影响。虚线和实线分别表示未使用youtubb-bb训练的模型的变化。圆点和交叉点分别显示了VOT2015和VOT2016的变化。当添加Youtube-BB数据集时,我们设置的中心大小越大,我们得到的EAO就越好。当仅使用VID数据集时,锚点的最佳中心大小为4,说明区域建议子网的识别能力不足以使用大的搜索区域。

6 结论

在这项工作中,我们提出了Siamese区域提案网络(Siamese-RPN),该网络使用来自ILSVRC和YoutubeBB的大规模图像对进行端到端离线训练。Siamese-RPN可以通过应用框细化程序得到更精确的边界框。在在线跟踪过程中,将所提出的框架制定为一个局部的热点检测任务。在实验中,我们的方法可以在160 FPS运行的VOT2015、VOT2016和VOT2017实时挑战中达到领先的性能。

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

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

相关文章

开源免费的NTFS for mac工具mounty

开源免费的NTFS for mac工具mounty 安装依赖 brew install gromgit/fuse/ntfs-3g-macbrew install --cask macfuse安装mounty 如果已经安装macFUSE和ntfs-3g-mac&#xff0c;可以直接点击下载的dmg安装包&#xff0c;安装升级。第一次启动mounty&#xff0c;你需要接受一系列…

《TCP/IP详解 卷一》第4章 地址解析协议ARP

目录 4.1 引言 4.2 一个例子 4.3 ARP缓存 4.4 ARP帧格式 4.5 ARP例子 4.6 ARP缓存超时 4.7 代理ARP 4.8 免费ARP和地址冲突检测 4.9 ARP命令 4.10 使用ARP设置嵌入式设备IPv4地址 4.11 与ARP相关攻击 4.12 总结 4.1 引言 地址解析&#xff1a; IPv4&#xff1a;AR…

Android LinearLayout 如何让子元素靠下居中对齐 center bottom

Android LinearLayout 如何让子元素靠下居中对齐 center bottom 首先你需要知道两个知识点&#xff1a; android:layout_gravity 指定的是当前元素在父元素中的位置android:gravity 指定的是当前元素子元素的排布位置 比如&#xff1a; 有这么一个布局&#xff0c;我需要让…

基于生成扩散模型的分子对接程序-DiffDock安装及使用

欢迎浏览我的CSND博客&#xff01; Blockbuater_drug …点击进入 文章目录 前言一、DiffDock是什么&#xff1f;二、DiffDock安装步骤1. 下载2.创建conda环境并安装STEP 1. 创建conda环境并配置STEP 2. 配置ESM和OpenFoldSTEP 3. 检查cuda和pytorch geometric安装STEP 4. 检查p…

AIGC 实战:Ollama 和 Hugging Face 是什么关系?

Ollama和 Hugging Face 之间存在着双重关系&#xff1a; 1. Ollama是 Hugging Face 开发并托管的工具&#xff1a; Ollama是一个由 Hugging Face 自行开发的开源项目。它主要用于在本地运行大型语言模型 (LLM)&#xff0c;特别是存储在 GPT 生成的统一格式 (GPT-Generated Un…

单片机02_寄存器_GPIO设置__点灯

芯片概述 C51&#xff1a;0口、1口、2口、3口&#xff0c;P00~p07、P10~P17、P20~P27、P30~P37 STM32&#xff1a;A口、B口、C口、D口&#xff0c;PA0~PA15/PA5 GPIOA.5 STM32F407ZGT6有7组GPIO端口&#xff0c;分别是&#xff1a;A B C D E F G&#xff0c;每组均有16个GPIO端…

js设计模式:备忘录模式

作用: 封装的对象可以在对象触发行为时进行状态的记录与保存 也可以进行状态的回退,恢复之前的状态 示例: class Editor{constructor(){this.allText }edit(text){this.allText text}saveNow(){return new EditorText(this.allText)}backspacing(editorText){this.allText…

【k8s资源调度-StatefulSet】

1、部署对象StatefulSet资源&#xff08;无状态应用&#xff09; StatefulSet针对的是有状态应用&#xff0c;有状态应用会对我们的当前pod的网络、文件系统等有关联。 2、配置文件如下 StatefulSet资源的配置文件粗略如下&#xff0c;如下的配置信息包含了数据卷&#xff0c;…

python 3.7.3的安装

参考 Linux安装Python3.7-良许Linux教程网 (lxlinux.net) 1、Index of /ftp/python/3.7.9/ 1、安装gcc&#xff0c;yum -y install gcc 2、 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel…

有趣的CSS - 文字加载动画效果

大家好&#xff0c;我是 Just&#xff0c;这里是「设计师工作日常」&#xff0c;今天分享的是用 css 实现多字符模拟加载动画效果。 《有趣的css》系列最新实例通过公众号「设计师工作日常」发布。 目录 整体效果核心代码html 代码css 部分代码 完整代码如下html 页面css 样式页…

容器_Docker ( 06 )

容器_Docker ( 05 ) Kubernetes 资源对象管理 资源对象文件 模板与帮助信息 资源对象文件优势 命令无法实现高级复杂的功能某些资源对象使用命令无法创建方便管理 , 保存 , 追溯历史 资源对象文件太长 , 记不住怎么办 使用命令创建模板查询帮助信息查询官方手册 生成资源…

2024-02-21 作业

作业要求&#xff1a; 复习课上内容 //已完成结构体字节对齐&#xff0c;64位没做完的做完&#xff0c;32位重新都做一遍&#xff0c;课上指定2字节对齐的做一遍&#xff0c;自己验证 //已完成两种验证大小端对齐的代码写一遍复习指针内容 //已完成完善顺序表已写出的…