ICLR 2023丨3DSQA:3D 场景中的情景问答

来源:投稿 作者:橡皮
编辑:学姐

论文链接:https://arxiv.org/pdf/2210.07474.pdf

主页链接:http://sqa3d.github.io

图 1:3D 场景中情景问答 (SQA3D) 的任务图示。给定场景上下文 S(例如,3D 扫描图、以自我为中心的视频、鸟瞰图),SQA3D 要求智能体首先从文本描述 s txt 中理解并定位其在 3D 场景中的情况(位置、方向等),然后在这种情况下回答问题q。请注意,理解情景并正确想象相应的以自我为中心的视角对于完成我们的任务是必要的。我们在图 2 中提供了更多示例问题。

摘要:

我们提出了一项新任务来对具身智能体的场景理解进行基准测试:3D 场景中的情境问答 (SQA3D)。给定场景上下文(例如 3D 扫描),SQA3D 要求被测智能体首先按照文本描述了解其在 3D 场景中的情景(位置、方向等),然后推理其周围环境并回答该环境下的问题情况。基于 ScanNet 的 650 个场景,我们提供了一个围绕 6.8k 个独特情况的数据集,以及针对这些情况的 20.4k 个描述和 33.4k 个不同的推理问题。这些问题考察智能代理的广泛推理能力,从空间关系理解到常识理解、导航和多跳推理。 SQA3D 对当前的多模态尤其是 3D 推理模型提出了重大挑战。我们评估了各种最先进的方法,发现最好的方法只能达到 47.20% 的总分,而业余人类参与者可以达到 90.06%。我们相信SQA3D可以通过更强的情境理解和推理能力促进未来的具体人工智能研究。

1.引言

近年来,智能体建设取得了丰硕成果。机器人现在可以按照自然语言命令或对话进行导航并操纵物体。尽管取得了这些有希望的进步,但它们在现实世界的具身环境中的实际表现仍然可能达不到人类的期望,特别是在泛化到需要大量知识密集型推理的不同情况(场景和地点)和任务时。为了研究现实的具体智能体的基本能力,我们研究了具身场景理解的问题,其中智能体需要从动态的自我中心的角度了解其情景和环境中的周围环境,然后感知、推理并采取相应的行动,以完成复杂的任务。

具身场景理解的核心是什么? 从情境认知(一种开创性的具身理论)中汲取灵感,我们预计它有两个方面:

  • 情景理解。 能够想象智能体从 3D 场景中的任意情况(位置、方向等)看到什么,并了解与该情况相关的周围环境,从而泛化到新的位置或场景;

  • 情景推理。 因此,能够根据智能体的当前情况获取有关环境的知识并利用这些知识进行推理,从而进一步促进完成复杂的行动规划任务。

图 2:来自 SQA3D 的示例。我们提供了一些示例问题以及相应的情况(s txt 和 )以及 3D 场景。此处列出的类别并不意味着详尽无遗,一个问题可能分为多个类别。绿色框表示情况描述 s txt 中的相关对象,而红色框表示问题 q。

为了迈向具身场景理解,我们引入了 SQA3D,这是一项新任务,它将双方的最佳状态、情境理解和情境推理协调到具身 3D 场景理解中。图 1 概述了我们的任务:给定 3D 场景上下文(例如 3D 扫描、以自我为中心的视频或鸟瞰图 (BEV) 图片),3D 场景中的代理需要首先理解并定位其情况(位置、方向等),然后回答一个需要从该角度进行实质性情境推理的问题。我们从 Amazon MTurk (AMT) 中众包了情境描述,其中参与者被指示在 3D 场景中选择不同的位置和方向。为了系统地检查智能体的情境推理能力,我们收集了涵盖广泛知识的问题,从空间关系到导航、常识推理和多跳推理。总的来说,SQA3D 包含从 650 个 ScanNet 场景收集的 6800 个独特情况的 20400 个描述以及关于这些情况的 33400 个问题。 SQA3D 的示例如图 2 所示。

我们的任务与最近在 3D 语言标定方面的工作密切相关。然而,这些途径中的大多数都假设对 3D 场景的观察是从一些第三人称视角而不是具体的、以自我为中心的视图进行的,并且它们主要检查空间理解,而 SQA3D 则检查具有广泛知识的场景理解,以及问题必须使用(想象的)第一人称视角来解决。 Embodied QA与 SQA3D 的动机非常相似,但我们的任务采用简化的协议(仅 QA),同时仍然保留对体现场景理解进行基准测试的功能,因此允许更复杂的知识- 密集的问题和更大规模的数据收集。与相关任务和基准的比较如表1所示。

对现有基线进行基准测试:在我们的实验中,我们研究了最先进的多模态推理模型,包括利用 3D 扫描数据的 Azuma 等人的 ScanQA、Clip-BERT和 MCAN利用以自我为中心的视频和 BEV 图片。然而,结果表明,这两个模型仍然大幅落后于人类表现(最佳模型为 47.2%,业余人类测试者为 90.06%)。为了了解故障模式,我们对可以减轻情况理解带来的挑战的设置进行了实验。这些模型的改进证实了当前的模型确实在情境理解方面遇到困难,而情境理解对于具体场景理解至关重要。

最后,我们探索像 GPT-3和统一 QA这样强大的大型语言模型(LLM)是否可以通过将多模态 SQA3D 问题转换为单模态代理来解决我们的任务使用场景字幕。然而,我们的结果显示,这些模型仍然可能因缺乏空间理解和准确的描述而受到瓶颈。

表 1:涵盖基础 3D 场景理解的不同基准数据集概述。一般来说,我们会考虑逼真 3D 场景中的语义基础、语言驱动的导航和问答。在第一行中,“situated”表示基准任务是否应该由具有自我中心视角的“situated”代理完成。导航、常识和多跳推理表明任务是否需要一定的 3D 理解能力或知识水平。 * 学习者需要在模拟器中导航以增量感知 3D 场景,而不是观察场景的完整 3D 扫描。

我们的贡献可总结如下:

  • 我们推出了SQA3D,这是一个具体场景理解的新基准,旨在协调情境理解和情境推理的挑战性能力,并促进智能具体代理的开发。

  • 我们精心策划 SQA3D,以涵盖不同的情况和有趣的问题。这些问题探讨了实体主体的广泛知识和推理能力,从空间关系理解到导航、常识推理和多步骤推理。

  • 我们对最先进的多模态推理模型进行了广泛的分析。然而,实验结果表明这些途径在 SQA3D 上仍然举步维艰。我们的假设表明了正确的 3D 表示的关键作用以及在具体场景理解中对更好的情境理解的需求。

2.3DSQA 数据集

SQA3D 中的问题实例可以表示为三元组S,s,q,其中S表示场景上下文,例如3D扫描、以自我为中心的视频、鸟瞰图(BEV)图片等;s =<s^txt,s^pos,s^rot>表示一种情景,其中文本情况描述 s txt (例如,图 1 中的“坐在床边面向沙发”)描述了场景中智能体的位置 s^pos 和方向 s rot ;注意,假设代理首先按照场景坐标原点的 s rotat 进行旋转,然后平移到 s pos ; q 表示问题。任务是从答案集中检索正确答案 a = {a1,..., aN},同时可选地预测地面真实位置 s^pos, s^rot 来自文本。额外的位置预测可以帮助缓解态势理解带来的挑战。以下小节将详细介绍如何收集和整理数据,然后构建基准。

2.1 数据形成

3D 室内场景选自 ScanNet数据集。我们注意到,某些场景可能过于拥挤/稀疏,或者整体很小,使得情况和问题收集不可行。因此,我们首先根据对象/布局的丰富度和空间体积对这些场景进行手动分类。在删除那些不符合要求的场景后,我们最终保留了 650 个场景。然后,我们开发一个基于网络的交互式用户界面 (UI) 来收集数据。 UI设计的详细信息可以在附录中找到。所有参与者都是在 AMT 上招募的。

图 3:SQA3D 的数据收集管道。由于我们的数据集包含多种类型的注释(情况及其描述、问题、答案等),因此我们发现将单个注释任务分解为三个子任务更易于管理:i)情况识别; ii) 问题准备; iii) 答案收集和人体研究,AMT 招募的参与者一次只需关注一个相对简单的子任务。

与同行相比,单个 SQA3D 问题实例的注释负载可能要重得多,因为参与者需要探索场景、选择情况、进行描述并提出一些问题。所有这些步骤还需要与 3D 场景进行密集交互。为了确保良好的质量,我们引入了多阶段收集管道,它将负载分解为更易于管理的子任务。图 3 描述了这个过程:

一. 情景识别。我们要求工人通过改变地点hs pos来选择5种情况;然后,工作人员被指示编写可以唯一地描述场景中这些情况的描述 s txt。我们还使用示例和奖励来鼓励更自然的句子和人类活动的使用(例如,“我正在等待我的午餐在微波炉前加热”)。所有收集到的情况随后都会经过手动整理,以确保多样性和最少的歧义。如果有必要,我们会用更多的情况来扩充数据,以覆盖场景的不同区域。

二. 问题准备。我们收集了一系列问题。每对3D场景S,以及情况描述s txt(虚拟头像也在hs pos; sroti处渲染)。为了帮助准备需要大量情景推理的问题,我们会在允许工人完成我们的任务之前对他们进行辅导。他们被要求遵守规则并向好的榜样学习。我们还删除和惩罚不依赖于当前情况的响应,例如“房间里有几张椅子?”

三. 答案收集和人类研究。除了随问题收集的答案之外,我们还将问题发送给更多员工并记录他们的回答。除了在场景中显示之外,为这些工作人员提供与第二阶段相同的界面,以确保问答收集之间的一致性。在主要工作开始之前,所有三个步骤中还必须熟悉场景,我们发现这非常有帮助,尤其是对于更拥挤的场景。更多详细信息可以在附录中找到。

2.2 管理、数据统计和指标

策展。 我们的多阶段收集最终包含 6,800 个独特情况的约 21,000 个描述和 35,000 个问题。尽管上述提示确实产生了许多高质量的注释,但其中一些仍然需要进行管理。我们首先应用基本语法检查来清除语言故障。然后,我们遵循 VQAv2和 OK-VQA中的做法,进一步消除省力的描述和问题。具体来说,我们消除并重写类似模板的描述(例如,重复相同的句型)和过于简单或不需要查看场景的问题。我们还注意到 Marino 等人 中报告的类似答案偏差,其中某些类型的问题可能会偏向某些答案。因此,我们删除问题以确保答案分布更加均匀。平衡前后答案分布的比较可以在附录中找到。因此,我们的最终数据集包含 20.4k 个描述和 33.4k 个多样化且具有挑战性的问题。图 2 演示了 SQA3D 中的一些示例问题。

统计数据。 与大多数基于模板的文本生成技术相比,SQA3D 是在 AMT 上众包的,因此具有更自然性和更好的多样性。据我们所知,SQA3D 是最大的基于人类注释问答对的 3D 场景理解数据集(与对应数据集的比较可在表 1 中找到)。表2、图4和图5展示了我们数据集的基本统计数据,包括情景描述的词云和基于前缀的问题分布。可以看出,描述总体符合我们的预期,因为“坐”和“面对”等人类活动是最常见的词语之一。我们的问题也比同行更加多样化和平衡,以“什么”开头的问题占了一半以上,并导致问题存在偏见。更多统计数据,如答案分布和文本长度,可以在附录中找到。

数据集分割和评估指标。 我们遵循ScanNet的做法,将SQA3D分为训练集、验证集和测试集。由于我们无法访问 ScanNet 测试集中的语义注释,因此我们将 ScanNet 验证场景分为两个子集,并分别将它们用作我们的验证集和测试集。这些分割的统计数据可以在表 2 中找到。遵循 VQAv2中的协议,我们通过排除只出现很少次数的答案来提供一组 706 个“top-K”候选答案。随后,我们采用“精确匹配”作为我们的评估指标,即测试集中答案分类的准确性。没有包含进一步的指标,因为我们发现它足以衡量具有“完全匹配”的基线模型之间的差异。

3.SQA3D 模型

一般来说,SQA3D 可以表征为多模态推理问题。受到基于 Transformer的视觉-语言模型最新进展的启发,我们研究了这些方法如何完成我们的任务。具体来说,我们研究了最近基于 Transformer 的问答系统:ScanQA,它将 3D 扫描和问题映射为答案。我们做了一些调整以确保其与 SQA3D 中的协议的兼容性。为了进一步改进该模型,我们考虑在训练期间加入一些辅助任务。对于其他类型的 3D 场景上下文,例如以自我为中心的视频剪辑和 BEV 图片,我们采用相应的最先进模型。最后,我们探讨了最近推出的 LLM(例如 GPT-3)和Unified QA在以零样本方式解决 SQA3D 方面的潜力。这些模型的概述如图 6 所示。

3D模型。 我们使用术语 3D 模型来指 ScanQA模型的修改版本,如图 6 的蓝色方框所示。它包括一个基于 VoteNet的 3D 感知模块,该模块提取以对象为中心的特征,用于处理问题 q 和情况描述 s txt 的基于 LSTM 的语言编码器,以及一些交叉注意力transformer块。以对象为中心的特征标记依次关注 s txt 和 q 的语言标记。最后,这些特征将被融合并映射以预测答案。或者,我们可以添加一个头来预测位置 hs pos;代理的 sroti。由于 VoteNet 模块是从头开始训练的,因此我们还采用了对象检测目标(图中未显示)。

辅助任务。 正如我们之前提到的,情境理解在完成 SQA3D 任务中起着至关重要的作用。为了更好地理解特定情况,我们引入了两个辅助任务:模型需要对情况的 s pos 和 s rot 进行预测。我们对这些任务使用均方误差(MSE)损失。因此,我们问题的总体损失变为 L = Lans + αLpos + βLrot,其中 Lans、Lpos 和 Lrot 描述了主任务和辅助任务的损失,α 和 β 是平衡权重。

基于视频和图像的模型。 图 6 中间的橙色框演示了基于视频和图像的输入模型。当选择将 3D 场景上下文 S 表示为以自我为中心的视频剪辑或 BEV 图片时,SQA3D 在很大程度上类似于视频问答或视觉问答问题。然而,SQA3D还要求模型将问题q和新添加的情况描述s txt作为输入。因此,我们遵循基于上下文的 QA 任务中的实践,并将 txt 作为上下文添加到问题中。对于该模型,我们使用最先进的视频 QA 系统 ClipBERT和 VQA 系统 MCAN。我们采用他们的大部分默认超参数,详细信息可以在附录中找到。 零样本模型。 我们探索 GPT-3和Unified QA等LLM可以在多大程度上解决我们的任务。遵循将 GPT-3 应用于 VQA 的先前实践,我们建议使用一种称为 3D 字幕的新兴技术将 3D 场景转换为文本。我们提供标题、s txt 和 q 作为提示的一部分,并要求这些模型完成答案。对于 GPT-3,我们进一步发现在提示中提供少量示例有助于获得更好的结果。还需要进行少量的后处理以确保答案质量。

4.实验

4.1 设置

我们对第 3 节中介绍的模型进行基准测试,以评估它们在SQA3D上的性能。如前所述,我们检查三种类型的场景上下文 S:3D 扫描(点云)、以自我为中心的视频和 BEV 图片。每个场景的 3D 扫描和自我中心视频均由ScanNet提供。然而,我们对视频进行下采样,以便根据ClipBERT模型的要求进行更有效的计算。 BEV 图片是通过将自上而下的相机放置在每个 3D 场景的扫描顶部来渲染的。我们还进行了额外的实验,调查可能影响结果的因素,例如情况和辅助任务。在我们的早期实验中,我们发现3D模型总体性能优于基于视频或图像的模型。因此,由于计算资源的限制,我们仅使用 3D 模型的变体进行这些额外的实验。我们使用ScanQA、ClipBERT和MCAN的官方实现,并包含我们对SQA3D的修改。

对于零样本模型,我们从两个来源提取 3D 场景字幕:ScanRefer和 ReferIt3D。考虑到输入提示长度的限制,这些 3D 字幕也进行了下采样。Unifeid QA 模型权重来自其Huggingface官方存储库。所有模型均使用验证集进行调整,我们仅报告测试集的结果。有关模型实现的更多详细信息可以在附录中找到。

4.2 定量结果

我们在表 3 中提供了我们的 SQA3D 基准上所考虑的模型(第 3 节中详细介绍)的定量结果。结果总结如下:

问题类型。 在表 3 中,我们根据前缀展示了六种类型问题的准确性。大多数模型往往在“是”和“可以”问题上表现更好,而在“什么”问题上表现较差,这可能是由于候选答案数量较少——大多数具有二元答案的问题以“是”和“可以”开头,为随机猜测提供了更好的机会。此外,我们观察到盲测(没有 3D 场景上下文输入的模型)与我们在“什么”和“哪个”类别上的最佳模型之间存在巨大差距,这表明这两类问题需要更多的视觉信息。这也部分呼应了 Lei 等人报告的发现。

情境理解和推理。 SQA3D 基准测试的核心是情境理解和推理的要求。正如我们在 2.1 节中提到的,如果忽略问题所依赖的情况(例如“我面前的东西”在不同情况下可能有完全不同的答案),模型将更容易出现错误的答案预测。在表 3 中,从输入中删除情境描述 s txt 会导致更糟糕的结果,而添加辅助情境预测任务会提高整体性能,尤其是在具有挑战性的“什么”问题上。唯一的例外是“如何”问题,其中大部分与计数有关。我们假设每个 ScanNet 场景中的大多数对象只有相对少量的实例,并且该数量也可能与对象类别相关。因此,如果情境理解和推理还不完善,基于问题的猜测/记忆只能比以情境为输入的模型提供更好的结果。此外,我们还在 4.3 节中使用注意力可视化来检查情境理解和 QA 之间的关系。

3D 场景的表示。 事实上,SQA3D 并不将输入限制为仅 3D 扫描,因为我们还提供以自我为中心的视频和 BEV 图片的选项。与以 3D 扫描作为输入的模型相比,使用其他 3D 表示(即 MCAN 和 ClipBERT)的测试模型提供的结果要差得多,这意味着当推理模型使用时,迄今为止的 3D 扫描仍然可以更好地表示 3D 场景。被调查的问题需要对场景有全面的了解。另一方面,MCAN 和 ClipBERT 是通用 QA 系统,而 ScanQA 是针对 3D 语言推理任务而设计的。通才与专业之间的权衡也可以部分解释这一差距。最后,与盲测相比,BEV 和基于自我中心视频的模型的较差结果也可能是由于提供视觉输入时额外的“视觉偏差”造成的。请注意,可以通过更好的视觉表示来减轻视觉偏差,这意味着 ScanQA 似乎比使用 BEV 和自我中心视频的同行更少受到视觉偏差的影响,而更好的视觉表示则推动了 ScanQA在对抗数据集偏差方面。

零样本与从头开始训练。 像 GPT-3 这样的预训练法学硕士在无数具有挑战性的推理任务上取得的成功a)表明这些模型也可能通过仅语言输入来理解具体的 3D 场景。然而,SQA3D对这些模型提出了巨大的挑战。强大的统一 QA(大变体)和 GPT-3 都无法为我们的任务提供合理的结果。此外,我们假设瓶颈也可能出现在 3D 字幕上,因为结果验证了不同字幕源 (ScanRefer!ReferIt3D) 对模型性能带来的一致影响。然而,我们仍然相信这些模型具有巨大的潜力。例如,一种零样本模型(GPT-3 + ScanRefer)在具有挑战性的“什么”问题上表现得相当好(39.67%),甚至比最好的 ScanQA 变体还要好。

人类vs机器。 最后,所有机器学习模型在很大程度上落后于业余人类参与者(ScanQA + 辅助任务的 47.2% vs. 90.06%)。值得注意的是,在向测试人员发送 SQA3D 问题之前,我们仅向他们提供有限数量的示例。我们的参与者迅速掌握如何与3D场景交互,从文字描述中了解情况,并回答具有挑战性的问题。人类的表现对于不同的问题类型也没有表现出明显的偏见。

4.3 定性结果

最后,我们在图 7 中提供了 3D 模型变体的一些定性结果。我们主要关注于可视化答案预测和Transformer 对VoteNet生成的以对象为中心的特征标记(边界框)的注意力骨干。我们突出显示基于Transformer模型的所有预测中最受关注的边界框,希望更好地理解这些模型如何感知 3D 场景以理解情况并回答问题。在图 7 中,正确的预测始终与对情境描述文本和问题中相关对象的关注相关。此外,如果同一对象类别有多个实例,识别正确的实例也至关重要。

例如,仅 ScanQA+aux。任务对第一个问题做出正确的预测,并且还关注后面的正确椅子,而ScanQA则关注错误的实例。这些结果证实了我们在第 4.2 节中关于情境理解的关键作用的发现。我们还在附录中提供了一些故障模式。

4.4 用于定位的额外任务

如图 1 所示,代理可以根据情况描述 s txt 和当前 3D 场景上下文 S 选择性地预测当前位置。因此,我们提供了一些额外的指标来帮助评估这些预测。具体来说,智能体需要预测当前位置 s pos 在3D 坐标<x, y, z>(单位是米)和四元数中的方向<x, y, z, w>。然后将使用以下指标单独评估这些预测:

  • Acc@0.5m:如果预测位置与GT位置在0.5米范围内,则预测正确。然后我们报告:

  • Acc@1.0m:与 Acc@0.5m 类似,但范围限制为 1.0 米。

  • Acc@15°:如果预测方向与地面真实方向的偏差在 15° 范围内,则预测将被视为正确。

  • Acc@30°:与 Acc@15° 类似,但范围限制为 30°。

请注意,对于位置预测,我们只考虑预测的 x, y 和方向预测,仅沿z轴的旋转计数。我们将随机预测的结果报告如下作为参考。

5.相关工作

具身智能。 具身人工智能的研究源于“与环境的持续物理交互是智能系统设计约束的主要来源”的假设。为此,研究人员提出了无数的人工智能任务,以研究智能是否会通过在虚拟或逼真的环境中行动而出现。值得注意的任务包括机器人导航和视觉基于的操纵。随着指令或自然对话被进一步用作条件,这些任务变得更具挑战性。还开发了复杂的模型来应对这些挑战。早期的努力通常包括多模态融合并从头开始训练,而最近的努力将采用预先训练的模型。然而,与训练任务的结果相比,智能体对于新颖且更复杂的测试任务的泛化能力仍然较差。更详细的检查仍有待进行,这也激发了我们的 SQA3D 数据集,该数据集研究了当前实体智能体可能需要改进的一项关键能力:实体场景理解。

标定3D 理解。 视觉基础被视为将人类知识(可能以我们的语言编码)连接到视觉世界的关键,从而使智能体能够更好地理解现实环境并在现实环境中采取行动。将这种能力扩展到 3D 数据是很自然的,因为它提供了更加身临其境的世界呈现。早期的工作已经通过 3D 数据的检测和分割任务检查了词级基础。最近的研究开始涵盖具有复杂语义的句子级基础。最近,新的基准将复杂的视觉推理引入 3D 数据。然而,这些任务大多采用被动的第三人称视角,而我们的 SQA3D 需要以自我为中心的观点解决问题。这为需要第一人称视角的任务带来了挑战和机遇,例如体现人工智能。

多模态问答。 构建通用问答(QA)系统一直是人工智能的目标。随着多模态机器学习的进步,VQA率先致力于促进更加人性化的多模态 QA 系统的开发。它已扩展为更多类型的知识,例如常识和事实知识。最近的研究还引入了视频上的 QA 任务和 3D 数据。我们提出 SQA3D 基准也是希望促进具有具体场景理解能力的多模态 QA 系统。值得注意的是,SQA3D 模型可以从 3D 扫描、以自我为中心的视频或 BEV 图片中选择输入,这使得我们的数据集与各种现有的 QA 系统兼容。

6.总结

我们推出了 SQA3D,这是一个基准测试,通过结合最佳的情境理解和情境推理来研究具体场景理解的能力。我们精心策划我们的数据集,以包含不同的情况和有趣的问题,同时保留相对较大的规模(20.4k 情况描述和 33.4k 问题)。我们的问题探讨了具体代理的广泛知识和推理能力,特别是导航、常识和多跳推理。我们研究了许多最先进的多模态推理系统,但迄今为止最好的机器学习模型与人类表现之间的差距仍然很大。我们的研究结果表明正确的 3D 表示和更好的情况理解的关键作用。通过 SQA3D,我们希望加强研究工作,开发更好的具体场景理解方法,并最终促进更智能的具体代理的出现。

关注下方《学姐带你玩AI》🚀🚀🚀

回复“智能体”获取agent精选论文+代码合集

码字不易,欢迎大家点赞评论收藏!

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

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

相关文章

并发编程 - 并发可见性,原子性,有序性 与 JMM内存模型

1. 并发三大特性 并发编程Bug的源头&#xff1a; 原子性 、 可见性 和 有序性 问题 1.1 原子性 一个或多个操作&#xff0c;要么全部执行且在执行过程中不被任何因素打断&#xff0c;要么全部不执行。 在 Java 中&#xff0c;对基本数据类型的变量的读取和赋值操作是原子性操…

常用字符串函数拓展

文章目录 字符串拓展函数strncpystrncatstrncmpstrstrstrtokstrerrormemcpymemmovememcmpmemset 库函数模拟实现memmoveqsort 我们在学习C语言时已经学习了一些常见的字符串函数&#xff0c;但这还不能满足我们的需求&#xff0c;为此我们拓展了几个常用的字符串函数。 字符串拓…

Maven项目转为SpringBoot项目

Maven项目转为SpringBoot项目 前言创建一个maven项目前的软件的一些通用设置Maven仓库的设置其他的设置字符编码编译器注解支持 创建的Maven项目修改为Spring Boot项目修改pom.xml文件修改启动类-Main新建WAR包所需的类 添加核心配置文件 测试的控制器最后整个项目的目录结构![…

ce从初阶到大牛(两台主机免密登录)

一、配置ssh远程连接 实现两台linux主机之间通过公钥验证能够互相实现免密登陆 1.确认服务程序是否安装 rpm -qa | grep ssh 2.是否启动 ps -aux | grep ssh 3.生成非对称公钥 ssh-keygen -t rsa 4.公钥发送到客户端 cd /root/.ssh/ ssh-copy-id root192.168.170.134 因为…

OpenCV学习(五)——图像基本操作(访问图像像素值、图像属性、感兴趣区域ROI和图像边框)

图像基本操作 5. 图像基本操作5.1 访问像素值并修改5.2 访问图像属性5.2 图像感兴趣区域ROI5.3 拆分和合并图像通道5.4 为图像设置边框&#xff08;填充&#xff09; 5. 图像基本操作 访问像素值并修改访问图像属性设置感兴趣区域&#xff08;ROI&#xff09;分割和合并图像 …

本来打算做功能测试的,但是发现playwright太好玩了,玩了一天,功能测试进度为空

本文是作者的自言自语&#xff1a;//todo 未完待续 https://blog.csdn.net/lineuman 微软果然有大牛啊&#xff01;有能人的公司总是令人敬佩。 playwright这种级别的工具简直就是核弹级别的。 当我开始使用playwright的时候&#xff0c;嘭的一下&#xff0c;我的世界炸了&…

javaEE -10(11000字详解5层重要协议)

一&#xff1a;应用层重点协议 1.1&#xff1a; DNS DNS&#xff0c;即Domain Name System&#xff0c;域名系统。DNS是一整套从域名映射到IP的系统。 TCP/IP中使用IP地址来确定网络上的一台主机&#xff0c;但是IP地址不方便记忆&#xff0c;且不能表达地址组织信息&#x…

2023年正版win10/win11系统安装教学(纯净版)

第一步&#xff1a;准备一个8G容量以上的U盘。 注意&#xff0c;在制作系统盘时会格式化U盘&#xff0c;所以最好准备个空U盘&#xff0c;防止资料丢失。 第二步&#xff1a;制作系统盘。 安装win10 进入windows官网 官网win10下载地址&#xff1a;https://www.microsoft.c…

Oracle数据库设置归档模式(超级简单)

1、打开监听 查看监听的状态&#xff0c;如果没打开监听需要打开监听&#xff0c;如果打开直接下一步 lsnrctl status 打开监听 lsnrctl start 2、启动数据库 首先进入数据库 sqlplus /nolog 然后连接管理员 conn / as sysdba 3、查看当前模式 archive log list 可以…

图像特征Vol.1:计算机视觉特征度量|第一弹:【纹理区域特征】

目录 一、前言二、纹理区域度量2.1&#xff1a;边缘特征度量2.2&#xff1a;互相关和自相关特征2.3&#xff1a;频谱方法—傅里叶谱2.4&#xff1a;灰度共生矩阵(GLCM)2.5&#xff1a;Laws纹理特征2.6&#xff1a;局部二值模式&#xff08;LBP&#xff09; 一、前言 &#x1f…

【C++】C++入门(下)--内联函数 auto关键字 nullptr

目录 一 内联函数 1 内联函数概念和定义 2 内联函数特性 二 auto关键字 1 auto概念 2 auto 的使用细则 (1) auto与指针和引用结合起来使用 (2) 在同一行定义多个变量 3 auto不能推导的场景 (1) auto不能作为函数的参数 (2) auto不能直接用来声明数组 4 基于范围的fo…

使用 excel 快速拼接省市区镇街村居五级区划完整名称

你知道的越多&#xff0c;你不知道的越多 点赞再看&#xff0c;养成习惯 如果您有疑问或者见解&#xff0c;欢迎指教&#xff1a; 企鹅&#xff1a;869192208 文章目录 前言数据准备excel 函数附件 前言 之前做了国家区划的映射关系&#xff0c;在其过程中&#xff0c;使用代码…

JAVA设计模式详解(独家AI解析)

JAVA设计模式详解&#xff08;独家AI解析&#xff09; 一、JAVA介绍二、JAVA设计模式六大原则三、JAVA设计模式介绍四、JAVA设计模式详解4.1 单例模式4.1.1 懒汉式&#xff08;Lazy Initialization&#xff09;4.1.2 饿汉式&#xff08;Lazy Initialization&#xff09; 4.2 代…

Kubernetes - Ingress HTTP 负载搭建部署解决方案(新版本v1.21+)

在看这一篇之前&#xff0c;如果不了解 Ingress 在 K8s 当中的职责&#xff0c;建议看之前的一篇针对旧版本 Ingress 的部署搭建&#xff0c;在开头会提到它的一些简介Kubernetes - Ingress HTTP 负载搭建部署解决方案_放羊的牧码的博客-CSDN博客 开始表演 1、kubeasz 一键安装…

【3D 图像分割】基于 Pytorch 的 VNet 3D 图像分割6(数据预处理)

由于之前哔站作者整理的LUNA16数据处理方式过于的繁琐&#xff0c;于是&#xff0c;本文就对LUNA16数据做一个新的整理&#xff0c;最终得到的数据和形式是差不多的。但是&#xff0c;主要不同的是代码逻辑比较的简单&#xff0c;便于理解。 对于数据集的学习&#xff0c;可以…

在3分钟内使用AI-Chat生成精美PPT(附AI工具)

前言 在人工智能的大趋势下&#xff0c;AI-Chat是一款令人惊叹的技术。它用强大的自然语言处理技术帮助我们快速生成PPT&#xff0c;提高工作效率。本文将介绍使用ChatAI-Chat生成PPT的方法&#xff0c;以及使用Mindshow转换为炫酷的演示文稿。让技术为我们节省时间&#xff0c…

cuda卸载

去查看你的电脑显卡对应的cuda版本&#xff0c;不然还是一整个用不到gpu的情况嘿嘿. 啊啊啊啊打开控制面板看一下&#xff0c;驱动不要乱卸载&#xff1a; 这些东西不能全部卸载了哦&#xff0c;只能卸载含有“CUDA”的那几个&#xff08;其实其他的可能也没有用 但是不懂的哇 …

SpringMVC Day 05 : Spring 中的 Model

前言 欢迎来到 SpringMVC 系列教程的第五天&#xff01;在之前的教程中&#xff0c;我们已经学习了如何使用控制器处理请求和返回视图。今天&#xff0c;我们将深入探讨 Spring 中的 Model。 在 Web 应用程序开发中&#xff0c;数据的传递和展示是非常重要的。SpringMVC 提供…

docker部署prometheus+grafana服务器监控(三) - 配置grafana

查看 prometheus 访问 http://ip:9090/targets&#xff0c;效果如下&#xff0c;上面我们通过 node_exporter 收集的节点状态是 up 状态。 配置 Grafana 访问 http://ip:3000&#xff0c;登录 Grafana&#xff0c;默认的账号密码是 admin:admin&#xff0c;首次登录需要修改…

SpringMVC Day 01:入门案例

前言 在我们的日常工作和学习中&#xff0c;Web 开发是一个无法回避的重要环节。而在 Java Web 开发领域&#xff0c;SpringMVC 无疑是一个重量级选手。它以其灵活性、强大功能和清晰的 MVC 结构&#xff0c;赢得了大量开发者的青睐。但是&#xff0c;对于初学者来说&#xff…