超越DragGAN和DragDiffusion!StableDrag:基于点的图像编辑新框架(南大腾讯) 原创 Yutao Cui等 AI生成未来

超越DragGAN和DragDiffusion!StableDrag:基于点的图像编辑新框架(南大&腾讯) 原创 Yutao Cui等 AI生成未来

文章链接:https://arxiv.org/pdf/2403.04437
开源地址:https://stabledrag.github.io/

基于点的图像编辑自DragGAN出现以来就引起了人们的极大关注。最近,通过将这种拖拽技术应用到扩散模型中,DragDiffusion进一步推动了生成质量。尽管取得了巨大的成功,但这种拖拽方案存在两个主要缺点,即不精确的点跟踪和不完整的运动监督,这可能导致令人不满意的拖拽结果。

为了解决这些问题,本文构建了一个稳定且精确的基于拖拽的编辑框架,命名为StableDrag,通过设计一种判别式的点跟踪方法和基于置信度的潜空间增强策略来实现。前者使我们能够精确定位更新的控制点,从而提高了长距离操作的稳定性,而后者负责确保优化的潜空间在所有操作步骤中尽可能高质量。由于这些独特的设计,本文实例化了两种类型的图像编辑模型,包括StableDrag-GAN和StableDrag-Diff,在DragBench上进行了广泛的定性实验和定量评估,实现了更稳定的拖拽性能。

介绍

在过去的几年里,使用生成模型进行可控图像编辑已经取得了显著的成就,可以根据进一步的精细化目的定制生成结果。最近,开创性的DragGAN已经大大推动了准确的图像编辑,通过交互式基于点的操作,即根据用户输入的控制点驱动语义对象朝向相应的目标点。DragGAN提出了一种新颖的拖拽技术,主要包含运动监督和点跟踪,其中前者监督着控制点周围的局部补丁逐步朝向目标点移动,而后者负责在每个步骤中定位更新的控制点。

尽管DragGAN取得了巨大的成功,但其编辑能力仍受制于生成对抗网络的固有模型容量和泛化性。因此,最近的一些工作借助扩散模型进行高质量的拖拽式图像编辑。代表性工作DragDiffusion探索了将拖拽方案适应于扩散模型,即首先微调一个LoRA,然后在单个扩散步骤中优化潜空间,最后基于MasaCtrl对优化的潜空间进行去噪。对于扩散潜空间优化的关键组件,它直接遵循了DragGAN的传统,即迭代地进行运动监督和点跟踪。我们分析当前的拖拽方案仍然存在以下问题。

  • 不准确的点跟踪。这些方法利用特征差异作为相似度度量来跟踪更新的控制点,这不足以从干扰项(即具有相似内容的周围误导性点)中精确地定位正确的控制点。特别是在扩散模型中,由于特征是从具有大量噪声注入的中间扩散过程中采样的,更新的点变得越来越难以与其周围的局部环境区分开来。这可能导致令人不满意的拖拽结果,如图1中蒙娜丽莎肖像和花瓶的示例所示。

  • 不完整的运动监督。在运动监督过程中,潜空间可能在某些步骤上没有充分优化,导致操纵质量的下降(见下图1中大象和女人的示例),以及点跟踪的漂移。在扩散模型中,潜空间比GAN更稳定且更难操纵,特别是在对特定图像微调LoRA时,这可能会加剧问题。

考虑到前面提到的问题,设计一个更稳定的拖拽框架需要两个主要原则。首先,需要一个稳健而高效的点跟踪方法,以避免定位错误点并增加太多的延迟,从而使基于点的拖拽更加精确。其次,应该保证在每个优化步骤中运动监督是完整的,以便在整个操作过程中保持编辑内容尽可能高质量,并充分释放生成模型的强大修复能力。此外,完整的运动监督可以增强给定控制点和更新点之间内容的相似性,防止跟踪错误的积累。

基于以上分析,重新制定了DragGAN和DragDiffusion中的点跟踪和运动监督的拖拽方案,并提出了一个更稳定的基于点的图像编辑的拖拽框架,称为StableDrag。具体而言,受到视觉对象跟踪成功的启发,试图从一个判别式学习损失中推导出一个简单而强大的点跟踪模型,采用卷积滤波器的形式。

该模型能够抑制干扰项点的跟踪置信度分数,并增强控制点的置信度分数。在操作步骤开始时,根据定制的相似性学习函数监督更新跟踪模型的权重。一旦跟踪模型准备好,将其与原始的特征差异方法结合起来,进行稳健而精确的点跟踪。

值得注意的是,由于我们只需要在初始操作步骤中优化简单的跟踪模型(即单个卷积滤波器),因此这种方法几乎不会增加推理延迟。此外,设计了基于置信度的潜空间增强策略,以确保每个步骤中运动监督的完整性。

具体来说,利用控制点的跟踪置信度分数来评估当前操作过程的质量。通常情况下,使用与DragDiffusion相同的运动监督方式。然而,当质量分数低于可接受的阈值时,将使用模板特征(即给定起始控制点的初始特征)来监督当前控制点的内容,直到其置信度分数令人满意。

由于拖拽方案的独特设计,我们实例化了两种类型的图像编辑模型,包括StableDrag-GAN和StableDrag-Diff,分别构建在GAN和扩散模型上,从而实现了更稳定和精确的拖拽性能。

本文的贡献总结如下:

  • 提出了一个判别式的点跟踪方法,使模型能够准确区分更新的控制点和干扰项点,从而提高了拖拽的稳定性。

  • 设计了一个基于置信度的潜空间增强策略,用于运动监督,可以提高每个操作步骤的优化质量。

  • 在这些设计的基础上,构建了StableDrag,一个基于点的图像编辑框架,基于不同的生成模型,包括GAN和Stable Diffusion。通过在各种示例上进行广泛的定性实验和在DragBench上进行定量评估,证明了StableDrag-GAN和StableDrag-Diff的有效性。

相关工作

图像编辑

图像编辑是一个热门话题,具有广泛的应用。生成对抗网络(GANs)在图像生成领域取得了显著进展,导致了许多先前的图像编辑技术建立在GAN框架之上。然而,GAN的模型容量仍然受到一定限制,以及将真实图像有效地转换为GAN潜空间的挑战,这些方法的实用性不可避免地受到限制。

最近,大规模的文本到图像扩散模型产生了非常逼真的生成结果,这些结果催生了许多基于扩散的图像编辑方法。这些技术主要通过调整与图像相关联的提示来编辑图像。然而,由于许多编辑尝试在文本中传达时具有挑战性,基于提示的策略通常会修改图像的高级语义或风格,因此缺乏实现精确的像素级空间操作的能力。

为了促进细粒度的编辑,已经提出了许多用于执行基于点的修改的研究。特别是,DragGAN通过两个简单的组件展示了显著的基于拖拽的操作:优化潜空间code以将控制点移向其期望的目标点,并通过点跟踪机制定位更新的控制点。

然而,由于GAN的有限容量,其通用性受到限制。DragDiffusion和DragonDiffusion进一步将拖拽方案扩展到扩散模型,以利用其出色的生成能力。FreeDrag提出通过引入一个无需点跟踪的范式来改进DragGAN。在这项工作中,我们通过重新构建一个自信的运动监督模块和一个判别式的点跟踪模块,探索了一种新的拖拽方案,实现了稳定的基于点的图像编辑。

视觉跟踪

由于提出的判别式点跟踪受到了视觉跟踪研究的启发,我们对这些方法进行了简要概述。将这些工作分为三类。

首先,基于相关滤波器的跟踪器利用了在线目标相关的判别模型进行跟踪学习。[5, 21]采用了在线相关滤波器来区分目标和背景,并以高速度获得良好的性能,这在实际中非常实用。

其次,基于孪生网络的跟踪器由于其简单和高效而受到了广泛关注。这些方法将相关操作与孪生网络结合起来,建模了目标和搜索之间的外观相似性和相关性。SiamFC利用孪生网络来衡量模板与搜索区域之间的相似性,具有较高的跟踪速度。SiamRPN++将跨相关改进为深度跨相关,可以提高性能和效率。

最后,一些最近的跟踪器引入了基于Transformer的集成模块,以捕获目标和搜索区域之间的相似性。受到这些发现的启发,我们通过判别式学习设计了一个稳健的点跟踪模型。与这些工作不同的是,将跟踪模型建立在GAN或扩散模型的中间特征之上,以利用它们的判别式,并仅优化跟踪模型,这既有效又高效。

方法

初识基于点的拖拽

首先,简要回顾最近关于GAN和扩散模型背后基于点的拖拽框架的文献,这是本工作的基础。

DragGAN。给定由GAN模型生成的图像,结合用户输入的控制点和目标点,DragGAN旨在驱动每个控制点的内容向其相应的目标点移动。

在这个意义上,主要关注点级编辑如何精确控制,同时保持高图像保真度。为了实现这一目标,DragGAN量身定制了一种新颖的范例,涉及重复的运动监督和点跟踪。考虑到生成器的特征,中间特征非常具有辨别力,他们利用简单的在线运动监督损失来优化潜空间code。当将周围的局部区域表示为,即距离小于半径的像素时,损失可以定义为:

其中,F表示当前优化步骤的中间特征,是初始步骤的特征,n是控制点的数量,是一个偏差向量,M是预定义的mask,用于控制变化区域。特别地,由于被分离,当前的内容将被激励向迈出一小步。然而,由于优化的固有不确定性,很难保证接近 + 。因此,他们利用简单的特征差异方法作为点跟踪,确定的更新状态。上述优化过程迭代直至每个控制点都收敛到各自的目标点。

DragDiffusion。DragDiffusion将基于点的编辑框架扩展到扩散模型,如Stable Diffusion(SD-V1.5),以释放其高稳定性和优越的生成质量的强大能力。该编辑方法涉及三个子过程,即在真实图像上对LoRA进行微调,在特定扩散步骤上优化潜空间并对更新的潜空间进行去噪以生成编辑后的图像。

具体来说,他们采用了相同的拖拽公式,即在单个中间扩散步骤上进行重复的运动监督和点跟踪来操纵潜空间。此外,采用了一种LoRA微调策略,通过整个操作过程保留图像的身份。最后,使用了自我注意力控制机制MasaCtrl来增强原始图像与编辑后图像之间的一致性。

概述

如前面图1所示,由于不精确的点跟踪和不完整的运动监督,DragGAN和DragDiffusion可能导致编辑图像质量下降。因此,在本工作中,我们关注当前的拖拽技术,以实现更稳定和精确的图像操作。所开发的拖拽流程如下图2所示,包括一个判别式点跟踪模块和一个自信的运动监督模块。

具体而言,设计了一种新的点跟踪方法,将原始的特征差异与来自学习的判别式跟踪模型产生的跟踪分数相结合,从而提高了点跟踪的准确性和拖拽的精度。基于跟踪分数,进一步探索了一种基于置信度的潜空间增强策略,以实现足够完整的运动监督。

还观察到,DragGAN在短时间内掌握了大变形和创造性内容(例如,将嘴闭合的狮子转化为吼叫状态)。而DragDiffusion擅长生成优质和高保真度的编辑结果。为了使拖拽模型能够适应各种情景,基于DragGAN和DragDiffusion构建了StableDrag,并设计了相应的拖拽方案。在本节中,我们将详细介绍所提出的拖拽方法。

判别式点跟踪

点跟踪在识别更新的控制点中发挥着关键作用,以避免拖拽错误点并产生不满意的编辑结果。在DragGAN和DragDiffusion中采用的普遍方法是直接进行最近邻搜索,通过识别与的初始特征模板的特征差异最小的位置来进行。然而,这完全忽略了背景外观信息,这对于在复杂场景中将控制点与相似点区分开来至关重要。

特别是,在扩散模型中,由于监督特征是从中间扩散阶段提取的,其中包含大量噪声,逐渐难以辨别更新的点。例如,如前面图1中蒙娜丽莎肖像的情况所示,鼻子的控制点与相邻点具有相似的外观,这导致了DragDiffusion中误导性位置的产生。因此,在本工作中,我们探索了一种实现更具辨别能力但简单的点跟踪的替代方法。

通过使用可学习的判别式跟踪模型,可以将给定的控制点与干扰因素区分开来。在我们的设计中,点跟踪模型由卷积层的权重组成,将点分类分数作为输出。具体而言,建议学习一个函数 ,其中 g 表示卷积函数, 是当前控制点 周围的局部区域, 是学习的跟踪模型,如果跟踪模型 与某个位置的内容匹配并将其识别为更新的控制点 ,则返回高分数;否则返回低分数。

特别地,跟踪模型 在潜空间优化之前学习,并在所有操作步骤中保持不变。在这个意义上,这种方法几乎不会增加编辑运行时。最后,我们将跟踪模型产生的分类分数与原始特征差异分数合并,以实现既具有判别能力又精确的点定位。判别式点跟踪的详细过程如前面图2所示。

形式上,给定局部区域 ,跟踪到的控制点 更新为:

这里,代表局部区域的跟踪置信度分数图,λ是加权因子,是step-0时初始控制点的原始特征,是当前步骤中的最大跟踪置信度分数,用于指导运动监督。在的术语中,前者衡量了模板与搜索区域之间的特征差异。尽管它在大多数情况下可以提供准确的点定位,但可能会被干扰因素所误导。因此,第二项负责通过判别式学习提高跟踪的鲁棒性,即在的初始优化过程中抑制周围点的分数。与简单的特征差异方法不同,这个跟踪模型能够利用背景信息,并利用中间特征的判别式特征,从而对原始方法进行有价值的增强。

跟踪模型的学习。在操作过程之前,对点跟踪模型进行学习,该模型是一个大小为1×C×1×1的卷积滤波器。学习过程的概述如图3所示。

使用来初始化,并在以下损失的监督下更新权重:

这里,表示step-0的初始特征,代表真值标签,即每个位置的期望置信度分数,通常设为以为中心的高斯函数。在学习过程中,梯度不会通过进行反向传播。换句话说,只需要优化跟踪模型,从而实现快速收敛。通过优化,我们突出了控制点,同时抑制了背景点的置信度分数。然后,在后续的操作步骤中,跟踪模型保持不变以确保效率。

自信运动监督

运动监督是逐步鼓励点向其预期目的地移动的核心。DragGAN使用方程(1)中的在线损失来实现这一目标,但在长程拖拽中可能会产生不理想的结果。

相反,我们设计了一个基于自信的运动监督组件,其核心原则是,不仅要在每一步确保高质量和全面的监督,而且还要允许适当的修改以适应更新状态的新内容创建。例如,图1中一个穿着裙子的女人的案例显示了维持视觉连贯性的完整监督的重要性。

为了实现上述目标,我们提出了一种基于置信度的潜空间增强策略,如前面图2所示。首先,我们引入了跟踪分数的最大值,即,来表示当前的监督置信度,以及step-1处的置信度分数来生成增强策略的阈值。通常情况下,当我们确定当前状态足够自信时,会使用方程(1)中的原始运动监督。如果当前的置信度分数低于预定义的阈值,会回退到初始模板进行监督。具体的增强监督定义为:

这里的是一个固定的模板,不进行梯度反向传播,它可以强制更新点的内容模仿初始状态。此外,是否使用这种潜空间增强监督是根据以下准则确定的。

这里,τ是一个阈值率,用于控制增强的强度。通过这种方式,可以防止控制点当前的内容明显偏离原始模板,从而实现自信的运动监督。另一方面,当置信度分数超过阈值时,依赖于动态的运动监督来维持高的可编辑性。为了更好地阐明自信的运动监督的见解,我们与FreeDrag中提出的方法进行了比较,该方法使用自适应模板和线性搜索来释放点跟踪模块。

首先,在FreeDrag中预设的线性搜索可能会对潜空间优化的灵活性施加限制,从而显著增加拖拽的难度。正如图4的左上角示例所示,FreeDrag的控制点经常沿着预定义路径振荡,并需要进行320步的优化。然而,我们的方法允许控制点沿着更为优化的非线性路径向目的地移动,仅需46步。

此外,如下图4的左下角示例所示,FreeDrag在生成创意和超出分布范围的内容方面遇到困难,因为它主要依赖于模板特征进行监督,即使采用了更新策略。相比之下,我们的StableDrag-GAN在给定长程拖拽路径的情况下可以生成令人满意的创意内容,展示了更好的可编辑性。

实验

实现细节

基于PyTorch实现了该方法,包括StableDrag-GAN和StableDrag-Diff。在优化潜空间代码的过程中,对StableDrag-Diff使用了学习率为0.01的Adam优化器,对StableDrag-GAN使用了学习率为0.001的Adam优化器,这遵循它们的默认设置。在大多数情况下,超参数λ和τ分别设为0.3和0.4。对于其他参数和模型设置,我们遵循DragGAN和DragDiffusion中的默认设置。实验在NVIDIA V100 GPU上进行。

定性比较

下图5展示了DragGAN和StableDrag-GAN、DragDiffusion和StableDrag-Diff、FreeDrag-Diff和StableDrag-Diff之间的定性结果,以进行公平比较。

为了评估方法的通用性,对于基于GAN的模型,输入图像是从StyleGAN2生成的。而对于基于扩散的模型,我们输入真实图像并使用DDIM反演来重建它们。可以看出,我们的方法可以更精确地将控制点移动到目标点,如山顶、狮子的下巴、鹿的前额和小灯。

此外,我们的StableDrag可以生成更高质量和更高保真度的编辑结果,例如保持包、眼镜、马和秦始皇兵马俑雕塑的外观。还将我们的StableDrag-Diff与基于扩散模型的FreeDrag进行了比较。可以看出,我们的Diff产生了更精确的结果,并保持了初始图像的细节。这证明了所提出的判别式点跟踪和自信的运动监督的有效性,能够实现更稳定的拖拽性能。

定量结果

在DragBench 上对我们的方法进行定量评估,其中包括205个样本,具有预定义的拖动点和mask。注意到,在DragBench中,有许多例子与适当的StyleGAN2模型不兼容,因此我们只对DragDiffusion和我们的Diff模型进行实验。

将StableDrag-Diff与DragDiffusion进行比较,并使用相同的LoRA权重和通用超参数进行公平比较。如下表1所示,在三种不同的优化步骤设置下,StableDrag-Diff始终优于DragDiffusion,特别是在60步优化下,Mean Distance得分超过基线3.22,Image Fidelity得分超过基线0.017。

这进一步表明,通过所提出的自信的运动监督和判别式点跟踪,StableDrag可以在编辑准确性和内容一致性方面取得有希望的结果。

探索性研究

为了验证本文提出的方法的有效性并进行彻底的分析,通过基于GAN和扩散模型的定性可视化以及基于扩散模型的DragBench上的定量评估进行了详细的消融研究。

自信的运动监督。这里研究了我们的自信的运动监督组件的效果。首先,对基于StableDrag-GAN的马的编辑进行实验。从下图6中可以看出,随着置信度逐渐降低,没有自信的运动监督模块的StableDrag产生了低质量的编辑图像。

这表明在每个步骤中进行自信的监督的重要性,并且还表明跟踪分数可以反映运动监督的质量。如表2所示,将自信的运动监督替换为DragGAN中的原始监督方法时,图像保真度降低了0.018,进一步证实了上述结论。

判别式点跟踪。在下图7和表2中,评估了StableDrag和没有判别式跟踪模型的StableDrag。可以看到,没有判别式跟踪模型的StableDrag可能会受到背景干扰点的误导,导致结果不准确。

特别是,没有我们判别式跟踪模型的StableDrag-Diff将平均距离增加了2.27。从结果中,可以得出结论,所提出的判别式跟踪模型有助于使拖动模型实现更准确的基于点的图像编辑。

跟踪模块的实用性。所提出的点跟踪器在公式和实现上都很简洁。如表3所示,跟踪器的训练过程(约1秒)远比拖动过程花费的时间少得多。对于每次监督步骤之前的点跟踪,它运行非常快,因为只需要执行一个卷积操作。

值得注意的是,在点跟踪过程中,我们使用局部搜索策略来避免在全局区域中识别两个完全相似的对象(例如,两个几乎完全相同的狗)。此外,核心代码实现简单,易于适应其他相关方法,因为只需向基线添加大约60行代码。代码后续将会发布。

对 τ 和 λ 的敏感性分析。为了更好地理解所提出的方法的鲁棒性,对 τ 和 λ 进行了敏感性分析,如下表4和表5所示。通过结果,我们可以得出结论

  • 自信的运动监督对于稳定的拖动至关重要,适当的阈值很重要

  • 将所提出的跟踪器与原始特征差异合并可以获得最佳的拖动性能。

的学习过程可视化

为了更全面地了解判别式跟踪模型,下图8中可视化了跟踪模型在学习过程中的预测结果。可以看到,随着训练迭代次数的增加,背景点(即远离中心的点)逐渐被抑制,从而得到一个更健壮和具有判别式的点跟踪模型,可以帮助拖动模型生成更准确的编辑结果。

结论

本文通过设计一种判别式点跟踪方法和基于置信度的潜空间增强策略,构建了一个稳定的基于拖动的编辑框架,命名为StableDrag。

通过所提出的点跟踪方法,可以精确地定位更新的控制点,从而提高了长距离操作的稳定性。而后者可以确保在所有操作步骤中优化的潜空间尽可能高质量。得益于这些独特的设计,我们实例化了两种类型的模型,包括StableDrag-GAN和StableDrag-Diff,以展示其通用性。

通过对各种示例进行广泛的定性和定量实验,StableDrag实现了稳定而精确的拖动性能。期望我们的发现和分析能促进精确图像编辑的发展。

参考文献

[1] StableDrag: Stable Dragging for Point-based Image Editing

 更多精彩内容,请关注公众号:AI生成未来

欢迎加群交流AIGC技术,添加小助手

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

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

相关文章

【计算机视觉】图像处理算法(其他篇)

来源:《OpenCV3编程入门》,怀念毛星云大佬🕯️ 说明:本系列重点关注各种图像处理算法的原理、作用和对比 漫水填充 漫水填充法是一种用特定的颜色填充连通区域,通过设置可连通像素的上下限以及连通方式来达到不同的填…

MyBatisPlus理解

MyBatisPlus是mybatis的增强,mybatis是数据库持久化的框架,但mybatisplus并不是替代mybatis,而是相辅相成的关系 MyBatisPlus不会对以前使用mybatis开发的项目进行影响,引入后仍然正常运行。 使用方法: 1.在引入了对…

使用Spring的AOP

使用Spring的AOP 一、AOP 的常用注解1.切面类Aspect2.Pointcut3.前置通知Before4.后置通知AfterReturning5.环绕通知Around6.异常通知AfterThrowing7.最终通知After8.切面顺序Order9.启用自动代理EnableAspectJAutoProxy 二、AOP注解方式开发三、AOP 全注解开发四、基于XML配置…

5G网络助力智慧文旅发展:实现旅游资源的优化配置与高效利用

目录 一、5G网络在智慧文旅中的关键作用 1、高速率传输提升数据处理能力 2、低时延助力实时决策与调度 3、大连接实现全面覆盖与精细化管理 二、5G网络助力实现旅游资源的优化配置 1、精准匹配游客需求与旅游资源 2、促进旅游资源的跨区域合作与共享 三、5G网络助力实现…

【Python】科研代码学习:七 TrainingArguments,Trainer

【Python】科研代码学习:七 TrainingArguments,Trainer TrainingArguments重要的方法 Trainer重要的方法使用 Trainer 的简单例子 TrainingArguments HF官网API:Training 众所周知,推理是一个大头,训练是另一个大头 之…

XSS-Labs靶场“11-13、15-16”关通关教程

君衍. 一、第十一关 referer参数注入二、第十二关 user-agent参数注入三、第十三关 cookie参数绕过四、第十五关 ng-include文件包含五、第十六关 回车代替空格 点击跳转: XSS-Labs靶场“1-5”关通关教程 XSS-Labs靶场“6-10”关通关教程 一、第十一关 referer参数…

[uni-app ] createAnimation锚点旋转 及 二次失效问题处理

记录一下: 锚点定位到左下角, 旋转动画 必须沿Z轴,转动 但是,此时会出现 后续动画在微信小程序失效问题 解决: 清空 this.animationData

201912青少年软件编程(Scratch)等级考试试卷(一级)

201912 青少年软件编程(Scratch)等级考试试卷(一级) 第1题:【 单选题】 关于造型和背景,下面说法不正确的是? A:造型编号从1开始 B:有四个背景,删除第二个背景,背景编…

11_Http

文章目录 HttpHttp协议网络模型Http协议的工作流程Http请求报文请求行请求方法请求资源协议版本 请求头空行请求体抓包软件:Fiddler Http响应报文响应行状态码 响应头响应体 请求完整的处理流程 Https 整体流程图: 前端:负责获取数据&#xf…

雷赛控制卡获取轴当前位置的值不正确问题处理

现像 从雷赛控制卡中获取当前轴位置值时发现轴在向零点的右边走时显示的值是负数。正常来就一般是要反馈正数的。一般轴零点右边是正方向,限位是正限位,反馈的位置也应该是正数。 如果雷赛软件中的【单轴参数】中的基本设置中的【脉冲模式】设置的是对的…

【C语言基础】:深入理解指针(终篇)

文章目录 深入理解指针一、函数指针变量4.1 函数指针变量的创建4.2 函数指针变量的使用4.3 typedef关键字 二、函数指针数组三、转移表四、回调函数4.1 什么是回调函数4.2 qsort使用举例4.2.1 使用qsort函数排序整形数据4.2.2 使用qsort排序结构数据4.2.3 qsort函数的模拟实现 …

elasticsearch 深度分页查询 Search_after(图文教程)

Search_after使用 一. 简介二. 不带PIT的search_after查询2.1 构造数据2.2 search_after分页查询2.2 问题 三. 带PIT的search_after查询3.1 构建第一次查询条件3.2 进行下一页查询3.3 删除PIT 四.参考文章 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注…

傅里叶变换pytorch使用

参考视频:1 傅里叶变换原理_哔哩哔哩_bilibili 傅里叶变换是干嘛的: 傅里叶得到低频、高频信息,针对低频、高频处理能够实现不同的目的。 傅里叶过程是可逆的,图像经过傅里叶变换、逆傅里叶变换后,能够恢复到原始图像…

【管理干部竞聘上岗】某星级酒店中层干部竞聘上岗管理咨询项目纪实

在这次项目合作中,我们的目的主要是设计一次公开、透明的竞聘活动,通过科学、公正的方法选拔出公司管理级岗位的最佳候选人。基于华恒智信的专业性,我们再次选择与其合作开展项目。在项目合作中,专家团队为我们进行了专业性的培训…

AIGC实战——GPT(Generative Pre-trained Transformer)

AIGC实战——GPT 0. 前言1. GPT 简介2. 葡萄酒评论数据集3. 注意力机制3.1 查询、键和值3.2 多头注意力3.3 因果掩码 4. Transformer4.1 Transformer 块4.2 位置编码 5. 训练GPT6. GPT 分析6.1 生成文本6.2 注意力分数 小结系列链接 0. 前言 注意力机制能够用于构建先进的文本…

【网络原理】TCP 协议中比较重要的一些特性(一)

目录 1、TCP 协议 2、确认应答 2.1、确认序号 3、超时重传 4、连接管理 4.1、建立连接(三次握手) 4.2、断开连接(四次挥手) 1、TCP 协议 TCP 是工作中最常用到的协议,也是面试中最常考的协议,具有面…

Electron程序如何在MacOS下获取相册访问权限

1.通过entitiment.plist,在electron-builder签名打包时,给app包打上签名。最后可以通过codesign命令进行验证。 TestPhotos.plist electron-builder配置文件中加上刚刚的plist文件。 通过codesign命令验证,若出现这个,则说明成…

Fortran语法介绍(三)

个人专栏—ABAQUS专栏 Abaqus2023的用法教程——与VS2022、oneAPI 2024子程序的关联方法 Abaqus2023的用法教程——与VS2022、oneAPI 2024子程序的关联方法Abaqus有限元分析——有限元网格划分基本原则 Abaqus有限元分析——有限元网格划分基本原则各向同性线弹性材料本构模型…

《手把手教你》系列技巧篇(二十七)-java+ selenium自动化测试- quit和close的区别(详解教程)

1.简介 尽管有的小伙伴或者童鞋们觉得很简单,不就是关闭退出浏览器,但是宏哥还是把两个方法的区别说一下,不然遇到坑后根本不会想到是这里的问题。 2.源码 本文介绍webdriver中关于浏览器退出操作。driver中有两个方法是关于浏览器关闭&…

SQL28 计算用户8月每天的练题数量

👨‍💻 大唐coding:个人主页 🎁 个人专栏: 《力扣高频刷题宝典》《SQL刷题记录》 ⛵ 既然选择远方,当不负青春,砥砺前行! 大家好,我是大唐,今天我们来做一道牛客题库SQL…