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精选论文+代码合集
码字不易,欢迎大家点赞评论收藏!
相关文章:
ICLR 2023丨3DSQA:3D 场景中的情景问答
来源:投稿 作者:橡皮 编辑:学姐 论文链接:https://arxiv.org/pdf/2210.07474.pdf 主页链接:http://sqa3d.github.io 图 1:3D 场景中情景问答 (SQA3D) 的任务图示。给定场景上下文 S(例如&#…...
ChatGPT的前世今生:从概念到现实的AI之旅
ChatGPT的前世今生:从概念到现实的AI之旅 随着技术的飞速发展,人工智能已经从科幻小说中的概念转变为我们日常生活中不可或缺的一部分。其中,ChatGPT无疑是这个领域的佼佼者。那么,让我们一起探索ChatGPT的发展历程,从…...
MINA架构DEMO
参考:Java中的MINA框架_java mina_小陈拾光的博客-CSDN博客 MINA:一个简洁易用的基于TCP/IP通信的JAVA框架。 <dependency><groupId>org.apache.mina</groupId><artifactId>mina-core</artifactId><version>2.1.5&…...
Linux基础:2:shell外壳+文件权限
shell外壳文件权限 一.shell原理:1.对比:windo GUI 和 shell1.windo GUI2. shell 2.为什么?是什么?怎么办?1.为什么有shell2.是什么?3.怎么办?4.补充: 二.linux权限管理:…...
webpack 解决:TypeError: merge is not a function 的问题
1、问题描述: 其一、存在的问题为: TypeError: merge is not a function 中文为: 类型错误:merge 不是函数 其二、问题描述为: 想执行 npm run dev 命令,运行起项目时,控制台报错 TypeErro…...
datahub 中血缘图的实现分析,在react中使用airbnb的visx可视化库来画有向无环图
背景 做大数据的项目,必不可少的是要接触到数据血缘图,它在大数据项目中有着很重要的作用。 之前在公司也做过一些案例,也看过很多友商的产品,阿里的DataWork,领英的Datahub, datawork的血缘图使用的是 G6…...
二、判断语句
文章目录 1.if语句1)if判断语句基本格式2) 网吧上网3)if语句使用逻辑运算 2.if-else语句1)if-else的使用格式2)网吧上网 3.多重判断elif语句1) 多重判断elif2)例子3)注意点 4.if嵌套…...
龙智汽车行业客户案例:Jira数据中心版助客户解锁高效项目管理
龙智技术支持部负责人、Atlassian认证专家叶燕秀分享了她帮助某汽车企业落地Jira的故事,并详解了该公司选择Jira数据中心版的理由以及工具链的集成情况,为有同样需求的公司提供实践参考。 本文由叶燕秀口述内容整理而成 需求管理:从Excel表格…...
03 vi编辑器
vi编辑器的三种模式: 不同的模式下机键动作解释的意义是不一样的 编辑模式 插入模式 末行模式 文件的打开和关闭保存 移动光标...
Web界面自动化操作工具 - Selenium常见用法
Selenium是一个用于自动化浏览器操作的工具,常用于Web应用程序的测试和爬虫开发。 下面是一些Python Selenium的常见用法和代码示例: 1. 导入Selenium库和WebDriver: from selenium import webdriver2. 创建WebDriver实例: # …...
Openssl数据安全传输平台009:加密理论基础:哈希/非对称加密RSA/对称加密AES
文章目录 0. 代码仓库代码编译时候可能出现的错误 1. 哈希1.1 哈希算法的种类:1.2 使用的头文件1.3 哈希算法API1.3.1 详解md5 API1.3.2 sha1/sha224/sha256/sha384/sha512常用API 1.5 sha1代码测试1.4 在VS中添加预处理器定义1.5 哈希算法C代码封装的思路 2. 非对称加密RSA2.1…...
iPhone开发--Xcode15下载iOS 17.0.1 Simulator Runtime失败解决方案
爆句粗口,升级后公司网络下载iOS 17.0.1 Simulator Runtime一直出错,每次出错后都得重新开始下载,oh,f**k。上一次在在家里的网络升级成功。 解决办法一: 进入网址:https://developer.apple.com/download…...
Galaxy生信云平台|Maftools高效地汇总、分析、注释和可视化肿瘤基因突变MAF文件...
2023-10-25,Galaxy中国镜像站 UseGalaxy.cn 平台新增 5 个工具。 MAF Tools Maftools-突变景观图: 绘制肿瘤基因突变景观图Maftools-突变汇总: 汇总MAF文件中的突变信息Maftools-共突变与互斥突变: 计算共突变和互斥突变Maftools-队列比较:比较两个队列之…...
JS三种常见的存储机制
1.localStorage localStorage是HTML5引入的一种持久化存储机制,用于在浏览器中长期保存数据。localStorage中存储的数据没有过期时间,除非被显式清除或代码删除。存储在localStorage中的数据对于同一个域名下的所有页面都是共享的。localStorage可以存储…...
【Python机器学习】零基础掌握BaggingClassifier集成学习
何提高分类模型的稳定性和准确性? 在金融风控、医疗诊断或者社交媒体推荐等场景中,分类问题是常见的难题。但是,单一的分类模型(如SVM)在处理复杂或不均衡的数据集时可能会表现不佳。那么,有没有一种方法能够提高模型的稳定性和准确性呢? 假设一家银行想要通过机器学习…...
[晕事]今天做了件晕事26;gcc对strcmp/strncmp的优化
今天做了一件晕事,写了一个测试小程序,开头的程序例如下面片段。在后续又写了一些代码,进行编译,使用gdb查看可执行文件,怎么都得不到想要的结果,非常的纳闷,非常的奇怪。 int main() {char a[3]="ab";int b = strncmp(0, a, 1<...
【深度学习】使用Pytorch实现的用于时间序列预测的各种深度学习模型类
深度学习模型类 简介按滑动时间窗口切割数据集模型类CNNGRULSTMMLPRNNTCNTransformer 简介 本文所定义模型类的输入数据的形状shape统一为 [batch_size, time_step,n_features],batch_size为批次大小,time_step为时间步长,n_feat…...
ts | js | 爬虫小公举分享
Curl转Code 快速将curl转为各种语言的代码; 便于提取请求头之类, 或者微改直接使用 https://curlconverter.com/node-axios/ (有点慢, 但是很全)https://www.lddgo.net/convert/curl-to-code (没有axios, 我喜欢用axios) 使用… 抓取地址, 使用浏览器或者其他抓包工具都可, 这…...
实现el-table打印功能,样式对齐,去除滚动条
实现el-table打印功能,样式对齐,去除滚动条 // 整个页面打印 function printTable(id) {// let domId #js_index// if (id) {// domId #${ id };// }// let wpt document.querySelector(domId);// let newContent wpt.innerHTML;// let oldContent document.…...
2022年09月 Python(一级)真题解析#中国电子学会#全国青少年软件编程等级考试
Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 表达式len(“学史明理增信 ,读史终生受益”) > len(" reading history will benefit you ")的…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
【堆垛策略】设计方法
堆垛策略的设计是积木堆叠系统的核心,直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法,涵盖基础规则、优化算法和容错机制: 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则: 大尺寸/重量积木在下…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅!
【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅! 🌱 前言:一棵树的浪漫,从数组开始说起 程序员的世界里,数组是最常见的基本结构之一,几乎每种语言、每种算法都少不了它。可你有没有想过,一组看似“线性排列”的有序数组,竟然可以**“长”成一棵平衡的二…...
2025年低延迟业务DDoS防护全攻略:高可用架构与实战方案
一、延迟敏感行业面临的DDoS攻击新挑战 2025年,金融交易、实时竞技游戏、工业物联网等低延迟业务成为DDoS攻击的首要目标。攻击呈现三大特征: AI驱动的自适应攻击:攻击流量模拟真实用户行为,差异率低至0.5%,传统规则引…...
