当前位置: 首页 > news >正文

Unifying Top-down and Bottom-up Scanpath Prediction Using Transformers

Abstract

        大多数视觉注意力模型旨在预测自上而下或自下而上的控制,这些控制通过不同的视觉搜索和自由观看任务进行研究。本文提出了人类注意力变换器(Human Attention Transformer,HAT),这是一个能够预测两种形式注意力控制的单一模型。HAT采用了一种新型的基于变换器的架构和简化的视网膜模型,这些共同构建了一种类似于人类动态视觉工作记忆的时空意识。HAT不仅在预测目标呈现和目标缺失视觉搜索中的注视扫描路径以及“无任务”自由观看中表现出色,成为新一代最先进的技术,还使人类注视行为变得可解释。与依赖粗略网格的注视单元并由于注视离散化而导致信息丢失的先前方法不同,HAT采用了顺序密集预测架构,并为每个注视点输出密集热图,从而避免了注视离散化。HAT设定了计算注意力的新标准,强调了其有效性、通用性和可解释性。HAT的广泛适用性和应用范围有望激发新型注意力模型的开发,这些模型能够更好地预测人类在各种需求注意力的场景中的行为。代码可在 GitHub - cvlab-stonybrook/HAT: CVPR 2024 "Unifying Top-down and Bottom-up Scanpath Prediction Using Transformers"

  Introduction

        注意力是一个认知过程,使人类能够将有限的认知资源选择性地分配到视觉世界的特定区域,这在人体感知系统中发挥着至关重要的作用。理解和预测人类(视觉)注意力将带来许多应用,例如:能够预测个人需求和意图的辅助技术,能够优先处理人类关注区域的感知系统,提升各种视觉任务(如物体检测)的准确性和速度,以及图像/视频压缩技术,能够将更多资源分配给编码和传输高关注区域,从而优化带宽的使用。
        人类注意力控制可以分为两种广泛的形式。一种是自下而上的注意力,这意味着注意力显著性信号是从视觉输入中计算出来的,并用于优先考虑注意力的转移。因此,相同的视觉输入应导致相同的自下而上的注意力转移。第二种注意力是自上而下的,这意味着任务或目标用于控制注意力。以厨房场景为例,搜索钟表或微波炉时,人们的注视点会有所不同。这两种类型的注意力控制产生了两种不同的注视点预测文献,一种使用自由观察任务研究自下而上的注意力,另一种使用目标导向任务(通常是视觉搜索)研究自上而下的注意力控制。因此,大多数模型旨在解决自下而上或自上而下的注意力,而不是两者兼顾。一个模型架构能否预测这两种注意力控制?

图1。给定图像,所提出的HAT能够在目标存在预测扫描路径;目标不存在扫描路径;自由观看。重要的是,HAT 在三个设置中在多个数据集上优于以前的最先进的扫描路径预测方法:目标存在、目标缺失视觉搜索和自由观看,分别进行了研究。

        我们对这个问题的回答是HAT(人类注意力变换器),它能够预测注视路径,即可以应用于自上而下的视觉搜索和自下而上的自由观察任务(图一)。设计一个能够预测自下而上和自上而下注意力控制的统一模型架构并非易事:1)预测人类注视路径需要模型对注视图像内容及其与外部目标的关系具有时空理解;2)预测自上而下和自下而上的注意力需要模型捕捉输入图像的低级特征和高级语义。HAT通过采用一种新型变换器设计和简化的中心凹视网膜来解决这些问题。结合这两个组件,形成了一种新的范式,构成一种动态更新的视觉工作记忆。传统方法依赖循环神经网络(RNN)来维持动态更新的隐藏向量,从而在注视之间传递信息。然而,这些方法存在缺陷:RNN牺牲了解释性,而多分辨率模拟在捕捉对注视路径预测至关重要的时间和空间信息方面表现不佳。

        为了解决这些挑战,我们利用计算注意力机制动态地将每次注视获取的空间、时间和视觉信息整合到工作记忆中。这使得HAT能够辨别一组特定任务的注意力权重,以整合工作记忆中的信息并预测人类的注意力控制。这一创新机制揭示了人类注意力与工作记忆之间复杂的关系,使HAT不仅在认知上合理,而且确保了其预测的可解释性。此外,与之前的方法相比,HAT将注视路径预测视为一系列密集预测任务,采用每像素监督,成功避免了注视离散化的需求。这提高了该方法在高分辨率图像场景中的有效性。为了展示HAT的通用性,我们在三种设置下预测注视路径:目标存在(TP)、目标缺失(TA)视觉搜索和自由观察(FV),涵盖了自上而下和自下而上的注意力。在之前的工作中,预测搜索路径时,为TP和TA设置分别训练了不同的模型。而HAT是一个单一模型,在TP和TA搜索路径预测中都建立了新的最先进的水平。当用FV路径训练时,HAT相对于基准模型也取得了顶尖表现。在COCO-Search18数据集和COCO-FreeView数据集上,HAT在TP、TA和FV设置下的cNSS(注意力神经信号)分别提高了95%、94%和104%。

我们的贡献可以总结如下:

  1. 我们提出了HAT,一种新型的变换器架构,通过整合两种不同偏心度的视觉信息(近似视网膜中心凹)来预测人类注意力的空间和时间分配。
  2. 我们将扫描路径预测问题形式化为一个顺序密集预测任务,避免了注视离散化,使得HAT可以应用于高分辨率输入。
  3. HAT架构可以广泛应用于不同的注意力控制任务,且在视觉搜索和自由观看任务中的扫描路径预测达到了最先进水平。
  4. HAT的注意力预测具有很高的可解释性,适用于研究注视行为。

Related Work 


        注意力显著性预测:预测和理解人类注视控制在心理学中已经是一个关注了数十年的主题,但最近才引起计算机视觉领域研究者的关注。特别是Itti的开创性工作引发了计算机视觉社区对人类注意力建模的广泛兴趣,并推动了许多研究,识别和建模图像的显著视觉特征(即显著性预测)。然而,这些研究通常狭隘地集中在无特定视觉任务的自然眼动预测(即自由观看),忽视了另一种重要的注意力控制形式——目标导向注意力。此外,显著性模型仅建模注视的空间分布,而不预测注视之间的时间顺序。扫描路径预测是一个更具挑战性的问题,因为它不仅需要预测注视的位置,还需要预测注视的时间。

        扫描路径预测:许多现有的扫描路径预测深度神经网络主要集中于预测自由观看的扫描路径,这主要是由于其与显著性建模的紧密联系。然而,这些模型在捕捉人类注意力控制的完整谱系方面受到限制,尤其是目标导向注意力——一种基础的认知过程,支持日常视觉任务,如导航和运动控制。尽管目标导向人类注意力在认知科学中研究已久(主要是在视觉搜索的背景下),但针对目标导向扫描路径预测的深度神经网络的发展滞后于自由观看任务模型,部分原因是缺乏数据。为了解决这一问题,Chen等人创建了第一个大型目标导向注视数据集COCO-Search18。在相关研究中,一种逆强化学习模型在COCO-Search18上展示了对目标存在扫描路径的优秀预测性能。随后,Chen等人展示了一种直接优化扫描路径相似度指标的强化学习模型,可以预测视觉问答(VQA)扫描路径以及目标存在的搜索扫描路径。最近,Gazeformer,一个基于变换器的扫描路径预测模型,进一步提升了COCO-Search18上目标存在搜索扫描路径的预测性能。然而,这些研究都未能展示对三种设置(即目标存在、目标不存在和自由观看)的普遍性。在本工作中,我们设计了一种通用的扫描路径模型,能够推广到自由观看和视觉搜索任务。

        扫描路径变换器:变换器的变革性影响在自然语言处理及其他领域被广泛认可。在计算机视觉中,变换器在图像识别、目标检测和图像分割等任务中表现出色。Mondal等人介绍了Gazeformer,一个专门设计用于零-shot视觉搜索扫描路径预测的变换器模型。相比之下,我们提出的模型是通用的,能够预测视觉搜索和自由观看的扫描路径。此外,我们的模型与其他基于变换器的架构不同,受到人类视觉系统的启发,包含一个新颖的视网膜模块,模拟简化的中央凹视网膜,从而建立一个动态视觉工作记忆,以增强扫描路径预测。

Human Attention Transformer 

        在本节中,我们首先将扫描路径预测公式化为一系列密集预测任务,使用行为克隆的方法。然后,我们介绍我们提出的基于变换器的模型 HAT,用于扫描路径预测。最后,我们描述如何训练 HAT 以及如何进行快速推断

Preliminaries 

        为了避免先前注视预测方法中由于网格离散化导致的精度损失 [10, 62, 63, 66],我们将扫描路径预测公式化为像素坐标的序列预测。给定一个 H×W 的图像和一个可选的初始注视点 f0(通常设为图像的中心),扫描路径预测模型预测一系列类似人类的注视位置 f1, ···, fn,其中每个注视点 fi 是图像中的一个像素位置。需要注意的是,n 是可变的,对于不同的人类受试者,由于终止标准不同,可能会有不同的值。

        为了建模人类注意力分配的不确定性,现有方法 [10, 62, 63, 66] 通常在每一步预测一个粗糙网格上注视位置的概率分布。HAT 采用相同的思路,但输出一个密集的注视热图。具体来说,HAT 输出一个热图 Yi ∈ [0, 1]H×W,每个像素值表示下一个注视中该像素被注视的概率。此外,HAT 还输出一个终止概率 τi ∈ [0, 1],表示模型在当前步骤 i 终止扫描路径的可能性。为了采样一个注视点,我们对 Yi 应用 L1 归一化。以下内容中,我们为了简洁起见省略下标 i。

Network Architecture  

图2. HAT概述。

        1. 特征提取编码器-解码器 CNNs:使用这种结构来提取图像的特征图。特征图 P1 和 P4:分别代表不同的空间分辨率。P4:通常是高分辨率特征图,捕捉图像的细节信息。P1:较低分辨率特征图,提供更广泛的背景信息。

        2. 工作记忆工作记忆容量:设计为 λ 个标记(tokens),模拟人类的短期记忆,能够存储与当前视觉任务相关的信息。信息结合:来自 P1 的特征向量:更广泛的背景信息。来自 P4 的特征向量:源自之前注视的位置。中央注视点与周边视野:通过结合这两类信息,模型能够更好地理解当前场景的上下文。

        3. 动态更新机制变换器编码器:每当新的注视点出现时,模型使用变换器编码器来动态更新工作记忆。这意味着模型可以根据视觉输入的变化迅速调整其对环境的理解。

        4. 任务特定查询生成 N 个查询:针对不同的任务(例如,寻找时钟或鼠标),模型生成多个查询。查询的维度 C:表示每个任务特定的特征。聚合任务特定信息:每个查询会从共享的工作记忆中提取与其任务相关的信息,从而更准确地预测相应的注视点。

        5. 热图生成卷积处理:更新后的查询与 P4 进行卷积操作,以生成注视热图。多层感知器(MLP)层:经过 MLP 层处理后,热图显示了可能的注视点位置。终止概率的投影:热图进一步被转换为终止概率,表示在特定位置停止注视的可能性。

        6. 适用范围视觉搜索与自由观看:虽然该图主要展示了视觉搜索的情况,但 HAT 模型同样适用于自由观看任务。这种灵活性表明模型能够适应多种视觉任务,展现出广泛的应用潜力。

 Training and Inference

 

  Experiments

数据集:我们使用四个数据集来训练和评估 HAT:COCO-Search18、COCO-FreeView、MIT1003 和 OSIE。COCO-Search18 是一个大规模视觉搜索数据集,包含人类在搜索 18 种不同物体目标时的扫描路径,并分为目标存在和目标缺失两部分。COCO-Search18 总共有 3101 张目标存在图像和 3101 张目标缺失图像,每张图像由 10 位被试观看。我们将 COCO-Search18 的目标存在部分和目标缺失部分视为两个独立的数据集,分别训练模型。

        COCO-FreeView 是 COCO-Search18 的“兄弟”数据集,包含自由观看的扫描路径。COCO-FreeView 包含与 COCO-Search18 相同的图像,每张图像同样由 10 位被试在自由观看的环境下观看。

        MIT1003 是一个广泛使用的自由观看数据集,包含 1003 张自然图像。

        OSIE 是一个自由观看的注视数据集,具有丰富的语义级注释,包含 700 张自然室内和室外图像。MIT1003 和 OSIE 中的每张图像由 15 位被试观看。

评估指标:为了测量性能,我们主要从两个方面分析扫描路径预测模型:

        1) 预测的扫描路径与人类扫描路径的相似程度;

        2) 模型在给定所有先前注视的情况下预测下一个注视的准确性。我们使用常用的度量指标,序列得分(SS)及其变体语义序列得分(SemSS)来衡量扫描路径的相似性。SS 将扫描路径转换为注视聚类 ID 的序列,并使用字符串匹配算法进行比较。与 SS 不同,SemSS 将扫描路径转换为注视像素的语义标签字符串。

        对于下一个注视预测,我们遵循文献中的方法,报告条件显著性指标 cIG、cNSS 和 cAUC,这些指标衡量模型预测的注视概率图在提供扫描路径的注视历史时,如何有效地预测真实的下一个注视。为了公平比较,我们遵循文献的做法,逐步选择最可能的注视位置作为下一个注视,并为每张测试图像预测一个扫描路径。

基线模型:我们首先将我们的模型与几个启发式基线进行比较。根据前人的研究,使用一个观察者的扫描路径来预测另一个观察者的扫描路径的人类一致性被报告为黄金标准模型。其次,我们将其与一个注视启发式方法进行比较——一个训练用来预测人类注视密度图的卷积网络,从中我们按顺序选择注视点,并实施返回抑制。

        对于视觉搜索扫描路径,我们还包括一个检测器基线,该基线类似于注视启发式,但训练于 COCO-Search18 的目标存在图像,以预测目标检测概率图。对于注视启发式和检测器基线,我们使用赢家通吃策略生成扫描路径。此外,我们将 HAT 与之前的最先进的扫描路径预测模型进行比较,包括 IVSN、PathGAN、IRL、Chen 等人、DeepGaze III、FFMs 和 GazeFormer。注意,IVSN 仅适用于视觉搜索任务,且与其他方法不同,IVSN 被设计用于零-shot 搜索扫描路径预测,因此未使用任何注视数据进行训练。DeepGaze III 仅适用于自由观看扫描路径,并使用 SALICON 数据集和 MIT1003 进行训练。

实现细节:我们使用 ResNet-50 作为像素编码器,使用 MSDeformAttn 作为像素解码器。对于聚焦模块,变压器编码器有三层。聚合模块中的变压器解码器有六层(即 L=6)。HAT 中所有变压器编码器和解码器层都有 4 个注意力头。注视预测模块中的多层感知器(MLP)有两个线性层,隐藏维度为 512,使用 ReLU 激活函数。我们使用 AdamW 优化器,学习率为 0.0001,训练 HAT 30 个周期,批量大小为 128。所有图像在训练和推理期间被调整为 320×512,以提高计算效率。按照前人的研究,我们将每个预测扫描路径的最大长度设置为 6(针对目标存在)和 10(针对目标缺失),自由观看的最大扫描路径长度设置为 20。有关更多实现细节,请参见补充材料。

Main Results 

        我们在目标存在(TP)设置下,使用 COCO-Search18 数据集的目标存在部分对 HAT 与之前的扫描路径预测模型进行了比较,结果见表 1。HAT 在几乎所有指标上都持续超越了其他预测方法,能够更准确地预测 TP 人类扫描路径。简单的启发式基线(即检测器和注视启发式)在 TP 扫描路径预测中表现相当不错,因为在 COCO-Search18 的 60% TP 试验中,人类能够在 2 次注视内找到目标。

在 COCO-Search18 的目标存在测试集上进行的比较。我们将最佳结果加粗显示。 

        然而,它们在显著性指标(即 cIG、cNSS 和 cAUC)上得分较低,因为它们忽略了注视点之间的相互依赖性。与 FFMs [63] 和 Chen 等人 [10] 相比,它们在显著性得分上较高,HAT 在所有指标上都显著提高了性能。特别是,HAT 在 cNSS 上比排名第二的 Chen 等人 [10] 高出 95%。HAT 在 SS 上略逊于最近的 GazeFormer [42],但在 semSS 上明显更好。我们还在补充材料中展示了 HAT 从多个受试者那里学习了整个扫描路径分布,而 GazeFormer 过度拟合于“平均人”并且无法预测来自不同受试者的扫描路径。此外,HAT 在 semSS 上超过了人类一致性,这表明 HAT 很好地捕捉了注视背后的语义。

        目标缺失(Target-absent, TA)搜索。对于目标缺失的扫描路径预测,我们在 COCO-Search18 数据集的 TA 测试集上将 HAT 与不同方法进行了对比,结果如表 2 所示。与表 1 中目标存在(TP)搜索结果不同的是,我们在表 2 中发现,启发式方法与人类一致性之间的差距在 TA 搜索中显著更大,这表明 TA 搜索的扫描路径预测比 TP 搜索更具挑战性。实际上,在 TP 搜索中对人类注意力的主要影响因素(即目标)在 TA 搜索中已经不存在【12】,因此锚定物体提供的空间线索【4】、来自全局场景理解的上下文线索【52】以及物体共现性【40】等其他因素变得更加突出。辨别这些因素需要对输入图像进行稳健的语义理解。表 2 显示,HAT 在所有指标上都创下了新的最先进水平(state-of-the-art),cNSS 分数比之前的最佳方法(Chen 等人【10】)提高了 94%。更重要的是,HAT 首次在序列得分上超过了人类一致性。这些结果表明,与其他方法相比,HAT 能更好地捕捉图像的语义,并学习物体与目标之间的关系。

 在 COCO-Search18 的目标缺失测试集上进行的比较。我们将最佳结果加粗显示。

Qualitative Analysis

        扫描路径可视化。在本节中,我们定性地比较了不同方法预测的扫描路径与真实人类扫描路径在目标存在(TP)、目标缺失(TA)和自由观看(FV)设置下的表现。如图 4 所示,在 TP 设置中寻找瓶子时,HAT 不仅准确预测了被严重遮挡的目标的终点注视点,还像人类一样对所有与目标相似的干扰物进行了预测。其他方法要么遗漏了干扰物,要么未能找到目标。同样,在寻找停车标志的 TA 设置中,HAT 是唯一一个像人类一样查看道路两侧的模型,展示了使用语义和上下文线索来引导注意力的能力。在 FV 设置中,HAT 还在(1)注视位置(哪里)、(2)语义(是什么)和(3)注视顺序(何时)方面预测了最接近人类的扫描路径。更多的扫描路径可视化可以在补充材料中找到。

 

 图 4. 真实人类扫描路径与不同方法预测的扫描路径可视化(列)。从上到下显示了三种不同的设置:目标存在的瓶子搜索、目标缺失的停车标志搜索和自由观看。每条扫描路径的最终注视点用红色圆圈突出显示。对于没有终止预测的方法,如 IRL、检测器和注视启发式方法,我们可视化了视觉搜索的前 6 次注视和自由观看的前 15 次注视。最右侧一列显示了启发式方法(视觉搜索的检测器 630 和自由观看的注视启发式)的预测扫描路径。

        模型可解释性。HAT 的一个显著特点在于其可解释性,这得益于其计算注意力机制和中央凹模块设计。HAT 可以定量衡量周边视野(peripheral)和中央凹(foveal)特征对注视分配的贡献。特征的贡献通过 HAT 聚合模块中最后一个交叉注意力层的注意力权重计算得出。通过计算每个周边特征的归一化贡献,我们生成了一张周边贡献图,这为理解人类注视行为提供了新的见解。我们进一步分析了周边贡献图在一系列注视中的演化过程。

 

图 7 展示了 HAT 在 TP 笔记本搜索任务中的预测扫描路径、周边贡献图和预测注视热图。我们发现,编码的周边特征不仅与下一次注视的位置一致(例如,当被遮挡的笔记本在左下方周边被编码时,模型将注视移动到目标并终止搜索),还提供了目标可能位于某些位置的上下文线索(例如,通常在键盘和显示器附近可能找到笔记本)。我们在 TA 场景中也观察到了类似的模式(详见补充材料)。此外,在补充材料中,我们还系统分析了周边和中央凹特征在预测人类注意力控制中的综合贡献,结果表明周边视野在不同场景下扮演着不同的角色。

这些研究表明,HAT 能够进行高度可解释的预测。

相关文章:

Unifying Top-down and Bottom-up Scanpath Prediction Using Transformers

Abstract 大多数视觉注意力模型旨在预测自上而下或自下而上的控制,这些控制通过不同的视觉搜索和自由观看任务进行研究。本文提出了人类注意力变换器(Human Attention Transformer,HAT),这是一个能够预测两种形式注意力…...

JavaSE(十四)——文件操作和IO

文章目录 文件操作和IO文件相关概念Java操作文件文件系统操作文件内容操作字节流FileOutputStreamFileInputStream代码演示 字符流FileWriterFileReader代码演示 缓冲流转换流 案例练习 文件操作和IO 文件相关概念 文件 通常指的是包含用户数据的文件,如文本文件、…...

【视觉SLAM】4b-特征点法估计相机运动之PnP 3D-2D

文章目录 0. 前言1. PnP求解1.1 直接线性变换DLT1.2 P3P1.3 光束平差法BA2. 实现0. 前言 透视n点(Perspective-n-Point,PnP)问题是计算机视觉领域的经典问题,用于求解3D-2D的点运动。换句话说,当知道 N N N个世界坐标系中3D空间点的坐标以及它们在图像上的投影点像素坐标…...

android 性能分析工具(04)Asan 内存检测工具

1 Asan工具简介 1.1 Asan工具历史背景 AddressSanitizer(ASan)最初由Google开发,并作为LLVM项目的一部分。ASan的设计目的是帮助开发者检测并修复内存错误,如堆栈和全局缓冲区溢出、使用已释放的内存等,这些问题可能…...

html中select标签的选项携带多个值

搜索参考资料&#xff1a;SELECT标签中的选项可以携带多个值吗&#xff1f; 【摘抄】&#xff1a; 它可能有一个select选项中的多个值&#xff0c;如下所示。 <select id"ddlEmployee" class"form-control"> <option value"">-- S…...

Lambda表达式如何进行调试

一、概述 Java8提供了lambda表达式&#xff0c;方便我们对数据集合进行操作&#xff0c;我们使用lambda表达式的时候&#xff0c;是不是有这样的疑问&#xff0c;如何对执行过程中的中间数据进行调试呢&#xff1f; 二、例子 在下面的例子中&#xff0c;我们实现随机最多生成…...

C++ —— 剑斩旧我 破茧成蝶—C++11

江河入海&#xff0c;知识涌动&#xff0c;这是我参与江海计划的第2篇。 目录 1. C11的发展历史 2. 列表初始化 2.1 C98传统的{} 2.2 C11中的{} 2.3 C11中的std::initializer_list 3. 右值引用和移动语义 3.1 左值和右值 3.2 左值引用和右值引用 3.3 引用延长生命周期…...

HTML5好看的音乐播放器多种风格(附源码)

文章目录 1.设计来源1.1 音乐播放器风格1效果1.2 音乐播放器风格2效果1.3 音乐播放器风格3效果1.4 音乐播放器风格4效果1.5 音乐播放器风格5效果 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 作者&…...

C++设计模式行为模式———迭代器模式中介者模式

文章目录 一、引言二、中介者模式三、总结 一、引言 中介者模式是一种行为设计模式&#xff0c; 能让你减少对象之间混乱无序的依赖关系。 该模式会限制对象之间的直接交互&#xff0c; 迫使它们通过一个中介者对象进行合作。 中介者模式可以减少对象之间混乱无序的依赖关系&…...

FFmpeg 4.3 音视频-多路H265监控录放C++开发十五,解码相关,将h264文件进行帧分隔变成avpacket

前提 前面我们学习了 将YUV数据读取到AVFrame&#xff0c;然后将AVFrame通过 h264编码器变成 AVPacket后&#xff0c;然后将avpacket直接存储到了本地就变成了h264文件。 这一节课&#xff0c;学习解码的一部分。我们需要将 本地存储的h264文件进行帧分隔&#xff0c;也就是变…...

力扣 LeetCode 104. 二叉树的最大深度(Day7:二叉树)

解题思路&#xff1a; 采用后序遍历 首先要区别好什么是高度&#xff0c;什么是深度 最大深度实际上就是根节点的高度 高度的求法是从下往上传&#xff0c;从下往上传实际上就是左右中&#xff08;后序遍历&#xff09; 深度的求法是从上往下去寻找 所以采用从下往上 本…...

如何高效实现汤臣倍健营销云数据集成到SQLServer

新版订单同步-&#xff08;Life-Space&#xff09;江油泰熙&#xff1a;汤臣倍健营销云数据集成到SQL Server 在企业信息化建设中&#xff0c;数据的高效集成和管理是提升业务运营效率的关键。本文将分享一个实际案例——如何通过新版订单同步方案&#xff0c;将汤臣倍健营销云…...

Vue3中使用:deep修改element-plus的样式无效怎么办?

前言&#xff1a;当我们用 vue3 :deep() 处理 elementui 中 el-dialog_body和el-dislog__header 的时候样式一直无法生效&#xff0c;遇到这种情况怎么办&#xff1f; 解决办法&#xff1a; 1.直接在 dialog 上面增加class 我试过&#xff0c;也不起作用&#xff0c;最后用这种…...

具身智能之Isaac Gym使用

0. 简介 Isaac Gym 是由 NVIDIA 提供的一个高性能仿真平台&#xff0c;专门用于大规模的机器人学习和强化学习&#xff08;RL&#xff09;任务。它结合了物理仿真、GPU加速、深度学习框架互操作性等特点&#xff0c;使得研究人员和开发者可以快速进行复杂的机器人仿真和训练。…...

【大数据学习 | Spark】spark-shell开发

spark的代码分为两种 本地代码在driver端直接解析执行没有后续 集群代码&#xff0c;会在driver端进行解析&#xff0c;然后让多个机器进行集群形式的执行计算 spark-shell --master spark://nn1:7077 --executor-cores 2 --executor-memory 2G sc.textFile("/home/ha…...

《Python制作动态爱心粒子特效》

一、实现思路 粒子效果&#xff1a; – 使用Pygame模拟粒子运动&#xff0c;粒子会以爱心的轨迹分布并运动。爱心公式&#xff1a; 爱心的数学公式&#xff1a; x16sin 3 (t),y13cos(t)−5cos(2t)−2cos(3t)−cos(4t) 参数 t t 的范围决定爱心形状。 动态效果&#xff1a; 粒子…...

Jmeter 如何导入证书并调用https请求

Jmeter 如何导入证书并调用https请求 通过SSL管理器添加证书文件 支持添加的文件为.p12&#xff0c;.pfx&#xff0c;.jks 如何将pem文件转换为pfx文件&#xff1f; 在公司内部通常会提供3个pem文件。 ca.pem&#xff1a;可以理解为是根证书&#xff0c;用于验证颁发的证…...

Python程序15个提速优化方法

目录 Python程序15个提速优化方法1. 引言2. 方法一&#xff1a;使用内建函数代码示例&#xff1a;解释&#xff1a; 3. 方法二&#xff1a;避免使用全局变量代码示例&#xff1a;解释&#xff1a; 4. 方法三&#xff1a;使用局部变量代码示例&#xff1a;解释&#xff1a; 5. 方…...

足球虚拟越位线技术FIFA OT(二)

足球虚拟越位线技术FIFA OT&#xff08;二&#xff09; 在FIFA认证测试过程中&#xff0c;留给VAR系统绘制越位线的时间只有90秒&#xff08;在比赛中时间可能更短&#xff09;&#xff0c;那么90秒内要做什么事呢&#xff0c;首先场地上球员做出踢球动作&#xff0c;然后VAR要…...

centos7.9单机版安装K8s

1.安装docker [rootlocalhost ~]# hostnamectl set-hostname master [rootlocalhost ~]# bash [rootmaster ~]# mv /etc/yum.repos.d/* /home [rootmaster ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo [rootmaster ~]# cu…...

图像编辑一些概念:Image Reconstruction与Image Re-generation

图像编辑本质上是在“图像重建”&#xff08;image reconstruction&#xff09;和“图像再生成”&#xff08;image re-generation&#xff09;之间寻找平衡。 1. Image Reconstruction&#xff08;图像重建&#xff09; 定义&#xff1a;图像重建通常是指从已有的图像中提取信…...

【STM32】在 STM32 USB 设备库添加新的设备类

说实话&#xff0c;我非常想吐槽 STM32 的 USB device library&#xff0c;总感觉很混乱。 USB Device library architecture 根据架构图&#xff1a; Adding a custom class 如果你想添加新的设备类&#xff0c;必须修改的文件有 usbd_desc.cusbd_conf.cusb_device.c 需要…...

【Redis】Redis实现的消息队列

一、用list实现【这是数据类型所以支持持久化】 消息基于redis存储不会因为受jvm内存上限的限制&#xff0c;支持消息的有序性&#xff0c;基于redis的持久化机制&#xff0c;只支持单一消费者订阅&#xff0c;无法避免消息丢失。 二、用PubSub【这不是数据类型&#xff0c;是…...

# Spring事务

Spring事务 什么是spring的事务&#xff1f; 在Spring框架中&#xff0c;事务管理是一种控制数据库操作执行边界的技术&#xff0c;确保一系列操作要么全部成功&#xff0c;要么全部失败&#xff0c;从而维护数据的一致性和完整性。Spring的事务管理主要关注以下几点&#xf…...

Java学习笔记--数组常见算法:数组翻转,冒泡排序,二分查找

一&#xff0c;数组翻转 1.概述:数组对称索引位置上的元素互换&#xff0c;最大值数组序号是数组长度减一 创建跳板temp&#xff0c;进行min和max的互换&#xff0c;然后min自增&#xff0c;max自减&#xff0c;当min>max的时候停止互换&#xff0c;代表到中间值 用代码实…...

ARM 架构(Advanced RISC Machine)精简指令集计算机(Reduced Instruction Set Computer)

文章目录 1、ARM 架构ARM 架构的特点ARM 架构的应用ARM 架构的未来发展 2、RISCRISC 的基本概念RISC 的优势RISC 的应用RISC 与 CISC 的对比总结 1、ARM 架构 ARM 架构是一种低功耗、高性能的处理器架构&#xff0c;广泛应用于移动设备、嵌入式系统以及越来越多的服务器和桌面…...

7.STM32之通信接口《精讲》之USART通信---多字节数据收发(数据包的模式:HEX数据包和文本数据包)

根据上一节的HEX数据包的设计完成&#xff0c;本节将完成文本数据包的编写&#xff0c;&#xff08;HEX数据包其实本质就是原始数据&#xff0c;文本数据包我么要接收到还要对照ASCll进行解析封装&#xff09; 有不懂的可参考上一节的讲解&#xff01;&#xff01;&#xff…...

基于Vue+SpringBoot的求职招聘平台

平台概述 本平台是一个高效、便捷的人才与职位匹配系统&#xff0c;旨在为求职者与招聘者提供一站式服务。平台内设三大核心角色&#xff1a;求职者、招聘者以及超级管理员&#xff0c;每个角色拥有独特的功能模块&#xff0c;确保用户能够轻松完成从信息获取到最终录用的整个…...

WebRTC 和 WebSocket

WebRTC 和 WebSocket 是两种不同的技术&#xff0c;虽然它们都用于在浏览器之间进行通信&#xff0c;但它们的设计目标和使用场景有所不同。以下是它们之间的主要区别&#xff1a; 目的和使用场景 WebRTC: 主要用于实现实时音视频通信。 支持点对点&#xff08;P2P&#xff09…...

小车综合玩法--5.画地为牢

一、实验准备 前面我们利用四路巡线模块巡线&#xff0c;现在我们利用这个特性&#xff0c;用黑线将小车围起来&#xff0c;让小车一直在我们围的圈内运动。 1.小车接线已安装&#xff0c;且安装正确 2.调试四路巡线模块遇黑线时指示灯亮。不是黑线时指示灯灭。 二、实验原理…...

wordpress数据字典/百度seo公司一路火

UIApplicationDelegate 是最常见的 协议之一 这个协议声明了继承于单例模式下UIApplication对象的委托方法。这些方法提供了有关在应用程序执行时或发生重要变化时 进行响应的机会。比如&#xff08;在应用程序执行时&#xff0c;完成启动时&#xff0c;内存低时……&#xff…...

做网站要哪些人员/前端seo怎么优化

树的操作 前中后遍历、位置增删改查、值增删改查 增删改遍历代码 public class TreeTest {public static void main(String[] args) {TreeNode node1new TreeNode(1);TreeNode node2new TreeNode(2);TreeNode node3new TreeNode(3);TreeNode node4new TreeNode(4);TreeNode …...

园区 网站建设方案/平台推广是做什么

冒泡排序 介绍 重复遍历要排序的元素列&#xff0c;依次比较两个相邻的元素&#xff0c;前一个元素若比后一个元素大则互换位置。以升序排序为例&#xff0c;最大的元素会在第一次遍历后“冒泡”到数组的末端。假如数组长度为n&#xff0c;在n-1次遍历后可完成排序。 实现 let …...

怎么用flash做网站/百度客服怎么转人工

前言5分钟学会使用Charles在IOS抓取HTTPS在学习Charles在IOS抓包时&#xff0c;死活抓不到https&#xff0c;又不知道是什么原因。踩过不少坑之后&#xff0c;我决定把这些写下来分享给有需要的小伙伴。软件准备Win10操作系统IOS版本—13.3.1Charles版本—4.5.6小程序或app备注…...

wordpress记录/事件营销

近三年博士研究生各专业招生人数统计表近三年博士研究生各专业招生人数统计表学院名称 专业名称 2015 年 2016 年 2017 年通信学院 信息与通信工程 6 8 12计算机学院 计算机科学与技术 4 9 13合计 10 17 25近三年硕士研究生各专业招生人数统计表2015 年 2016 年 2017 年学院名称…...

做儿童业态招商要去哪些网站/推广一般去哪发帖

SpringBoot使用注解方式开启定时任务 1&#xff09;启动类里面 EnableScheduling开启定时任务&#xff0c;自动扫描 2&#xff09;定时任务业务类 加注解 Component被容器扫描 3&#xff09;定时执行的方法加上注解 Scheduled(fixedRate20…...