论文解析:V3D: Video Diffusion Models are Effective 3DGenerators

摘要: 

自动三维生成最近引起了广泛关注。最近的方法大大加快了生成速度,但由于模型容量有限或三维数据,生成的物体通常不够精细。在视频扩散模型最新进展的推动下,我们引入了 V3D,利用预训练视频扩散模型的世界模拟能力来促进三维生成。为了充分发挥视频扩散感知三维世界的潜力,我们进一步引入了几何一致性先验,并将视频扩散模型扩展为多视角一致性三维生成器。得益于此,最先进的视频扩散模型可以进行微调,从而在给定单个图像的情况下生成围绕物体的 360° 轨道帧。利用我们量身定制的重建管道,我们可以在 3 分钟内生成高质量的网格或三维高斯。此外,我们的方法还可扩展到场景级新颖视图合成,在输入视图稀疏的情况下实现对摄像机路径的精确控制。广泛的实验证明了所提方法的卓越性能,尤其是在生成质量和多视图一致性方面。我们的代码见 https://github.com/heheyas/V3D。

1.介绍:

随着基于扩散的图像生成技术的进步,自动三维生成技术近来也取得了显著进展。基于分数蒸馏采样[67]的方法直接从文本到图像的扩散模型中提取先验[14, 18,44,58,99] ,在三维生成领域取得了巨大成功。然而,这种基于优化的方法速度相对较慢,而且存在模式崩溃 [93, 99] 和杰纳斯问题 [1, 78]。

随后的研究提出了各种替代途径来解决这些问题,主要包括直接将图像映射为三维表示[30, 32, 40, 63, 85, 117](如 Triplane NeRF [8] 或 3DGS [35]),或首先生成一致的多视角图像,然后进行三维重建以获得底层三维模型[48, 50, 52]。随着三维数据量和模型容量的增加,这些方法已将生成时间从几小时缩短到几分钟。然而,这些模型的训练过程仍有一定的局限性;直接映射到三维表征的方法需要在三维数据集上进行训练,这使得利用更高质量的图像数据和大规模预训练图像扩散模型变得不切实际。同时,基于多视图生成的方法由于需要消耗内存的交叉注意或中间三维结构来确保各视图之间的一致性,因此难以直接生成足够数量的图像进行重建。

最近,视频扩散模型因其生成错综复杂场景和复杂动态的卓越能力以及极高的时空一致性而备受关注[2, 4, 5, 7, 13, 24, 25, 109]。许多视频都包含视角变化,可从不同视角自然观察三维物体[43],使扩散模型能够感知物理三维世界[7]。目前的多视角生成方法基于图像扩散模型,只能生成几个视角(少于 6 个)。相比之下视频扩散模型可以生成数百帧图像,足以满足下游三维任务的需要。这些进步使我们有可能利用视频扩散模型生成一致的多视角图像,然后重建底层三维资产,从而实现高质量的三维生成。然而,从多视角重建对一致性提出了很高的要求,这对当前的视频扩散模型来说是很困难的。在本文中,我们旨在充分释放视频扩散模型感知三维世界的潜力,并在扩散模型成为有效的多视角生成器之前注入几何一致性。有鉴于此,我们提出了利用视频扩散模型生成 3D 的新方法 V3D。具体来说,我们建议在三维数据集上对视频扩散模型进行微调,并附加额外的条件,以便在以物体为中心和场景级场景中生成新颖的视图。对于以物体为中心的三维生成,我们以合成三维物体的 360° 轨道视频为条件,对基础视频扩散模型进行微调。我们发现,微调后的模型可以生成可靠的多视角三维重建。然而,在某些细节上仍存在不一致性,这可能会降低重建质量。为了解决这个问题,我们采用感知损失而不是像素损失作为重建目标。由于高斯拼接法的重建和渲染效率高,我们采用了高斯拼接法作为三维表示。为了进一步加快重建速度,我们提出了一种高斯空间雕刻初始化方法,即把多视角物体遮罩解投影回三维空间,从而在物体表面对高斯进行大致定位,消除了对空白空间的无效优化。考虑到现实世界的应用需求,我们还提出了一种新颖的网格提取方法,该方法最初使用 SDF 提取表面,随后在生成的视图上利用图像级损失完善外观。此外,我们还展示了我们的方法在场景级三维生成中的有效性。为了实现精确的摄像机路径控制并适应多视图输入,我们集成了 PixelNeRF 编码器,利用鲁棒 3D 信号增强视频扩散模型。结合辅助损耗和对真实世界摆拍视频的微调,我们扩展了视频扩散模型,以在给定稀疏视图输入的任意摄像机路径上生成新视图。我们的贡献如下:

  • 我们提出了 V3D 框架,该框架首先采用视频扩散模型,以生成一致的多视角帧,然后重建底层三维内容。通过对三维数据集进行微调,我们成功地提高了视频扩散模型的几何一致性能力。我们的框架普遍适用于对象和场景生成。
  •  我们为视频扩散输出设计了一个重建管道,以便生成高质量的三维高斯或纹理网格。通过我们设计的高效初始化和细化,V3D 可以在 3 分钟内重建精细的三维资产。
  • 我们通过实验验证了 V3D 的有效性。对象中心和场景级实验表明,我们的方法在重建质量和多视角一致性方面达到了最先进的水平。

2.相关工作

2.1 3D 生成 

早期的 3D 生成工作主要集中在基于 CLIP 的每个场景优化方法上 [17, 31, 36, 59, 70, 73, 92]。DreamFusion [67]是其中的先驱,它通过引入分数蒸馏采样(Score Distillation Sampling)来利用更强的扩散先验,从而最小化底层三维资产的渲染图像与扩散先验之间的差异。随后的方法进一步在质量[14, 44, 99, 114]、优化速度[58,86]、缓解 Janus 问题[1,18,42,78,80]等方面对这一范例进行了大幅改进,并将其应用扩展到编辑[16, 29, 65, 98, 116]、纹理生成[14, 58, 108]和单图像到三维[69, 82,87, 95]等生成任务。尽管已经取得了巨大成功,但基于优化的方法仍然存在生成速度慢和成功率低的问题。为了克服这些挑战,研究人员探索了一些非优化范例。其中一种方法是首先生成一致的多视角图像,然后利用重建方法获得相应的三维模型 [47, 48, 88, 89]。SyncDreamer [50] 将显式体素和三维卷积与扩散模型相结合,增强了生成的多视图的一致性。Wonder3D [52] 对图像扩散模型进行了微调,以生成具有相应法线图的稀疏视图,并利用 NeuS [94] 重建底层几何图形。Direct2.5 [55] 采用基于重镶嵌的技术,从生成的稀疏法线图中恢复几何图形。另一个研究方向是将稀疏视图直接映射为三维表示[11, 51, 68, 81, 83, 84, 97, 103-105]。LRM[30]、PF-LRM[40]和 Instant3D[41]采用一个巨大的变换器,直接从单一或稀疏视图预测三维平面。TriplaneGaussian [117] 和 LGM [85] 则将稀疏视图映射到内存效率更高的三维高斯拼接中,从而支持更高分辨率的监督。我们的并行工作 IM-3D [56] 也探索了视频扩散模型在以物体为中心的多视图生成中的能力,我们在场景级新颖视图合成中进一步扩展了这一范例,并取得了更好的性能。

2.2 新颖视图合成的生成模型

虽然 NeRF [60] 和 3D Gaussian Splatting [35] 在有足够数量输入的新视图合成中表现出令人印象深刻的性能,但由于所提供的信息不完整,稀疏视图的重建需要额外的先验。早期的工作主要集中在使用基于回归的 [12, 21, 28, 72, 90, 91,96,106,111] 或基于 GAN 的 [8,9,22,23,27,62,64,77,113] 方法进行可通用的场景重建。然而,由于缺乏高质量数据和模型容量有限,生成的新视图往往比较模糊,泛化能力较差。随后的工作进一步整合了扩散前验,以实现更好的场景级新视图合成 [33, 100]。SparseFusion [112] 提出了带有外极性特征变换器的视图条件扩散技术,以合成新视图的稀疏输入。GeNVS [10] 利用 PixelNeRF 编码器纳入几何信息,并利用自动进取生成策略增强多视图一致性。ZeroNVS [74] 将 Zero-1-to-3 [49] 扩展到无边界场景,并通过更好的相机姿态调节解决了比例模糊问题。ReconFusion[102]建议对图像扩散模型进行微调,以适应多视角输入,并利用新颖的样本损失从稀疏的姿态输入重建三维场景。我们从 ReconFusion 和 GeNVS 中汲取灵感,采用基于 PixelNeRF 的调节器来适应任意数量的输入图像,并在场景级生成中提供精确的摄像机路径控制。

3.方法

3.1 总体结构

如图 2 所示,V3D 的核心洞察力在于将密集多视角合成概念化为视频生成,从而利用大规模预训练视频扩散模型的结构和强大先验来促进一致的多视角生成。对于以物体为中心的图像到三维(image-to-3D),我们在以固定圆形摄像机姿势渲染合成三维物体的 360° 轨道视频上微调基础视频扩散模型(第 3.2 节),并为生成的多视图量身定制重建和网格提取管道(第 3.3 节)。对于场景级的新颖视图合成,我们通过加入 PixelNeRF 编码器来增强基础视频扩散模型,使其能够精确控制生成帧的摄像机姿势,并无缝适应任意数量的输入图像(第 3.4 节)。详细的 V3D 方法介绍如下。

3.2 作为视频生成的密集视图预测

以往的多视角生成模型 [15, 89, 101] 通常是从图像扩散模型延伸而来,并结合了多视角交叉注意(如 Wonder3D [52] 等)。和 Zero123-XL [79])或中间三维表示法(例如使用三维体素的 SyncDreamer [50],以及使用三平面 NeRF 的 Viewset Diffusion [84] 和 DMV3D [104]),以提高不同视图下生成图像的一致性。前者由于使用具有二次复杂性的交叉注意,往往涉及有限数量的视图,而后者由于三维表示和体积渲染耗费内存,往往导致图像分辨率较低。为了克服这些弊端,V3D 采用了一种与众不同的方法,在单视图的基础上生成密集的多视图图像。受稳定视频扩散(SVD)[4] 的启发,我们将围绕物体旋转的连续多视角图像解释为视频,从而将多视角生成视为一种以前方视角为条件的图像到视频的生成形式。这种方法利用大规模预训练视频扩散模型对三维世界的全面理解来解决三维数据稀缺的问题,并利用视频扩散模型固有的网络架构来有效生成足够数量的多视角图像。

调节。与 SVD 相似,我们通过交叉注意将相应的 CLIP 嵌入注入扩散 U-Net 来提供前视图的高级语义信息,并通过沿输入的通道维度串联其潜在信息来提示扩散模型的低级信息。为了更好地适应图像到 3D 的转换,我们删除了包括运动桶 ID 和 FPS ID 在内的无关条件,并选择不以仰角为条件。相反,我们随机旋转物体的仰角,使生成模型与非零仰角的输入相兼容。我们对条件的修改源于实验证明,将生成的多视角图像的仰角完全限制在指定角度是不可行的。视频中的摄像机姿态与用于重建的摄像机姿态之间的错位可能会对最终结果造成重大损害。

数据我们在 Objaverse 数据集[19]上微调了以物体为中心的图像到三维的基础视频扩散模型。众所周知,Objaverse 数据集中包含大量低质量的三维物体[47, 52],这可能会大大降低模型的性能[49]。因此,我们首先手工整理了一个质量较高的子集,其中包括约 29 万个合成三维三角形网格。然后,我们通过在 N = 18 个固定摄像机姿势上渲染该过滤子集中的合成三维物体,构建 360° 轨道视频数据集。具体来说,对于每个物体,我们将网格归一化为单位长度,将摄像机距离固定为 2,将仰角设置为 0,并在方位角上均匀移动摄像机 N 次(从 0 到 2π),以生成分辨率为 512 的平滑轨道视频。

训练我们沿用 SVD 方法,采用常用的 EDM [34] 框架,并简化了用于微调的扩散损失。对于训练中使用的噪声分布,我们受文献[46,79]的启发,采用了 P = 1.5 和 P = 2.0 的相对较大的噪声分布。为了实现无分类器引导,我们随机设置了前视图的潜伏嵌入和 CLIP 嵌入独立为零的概率为 20%。为了加快训练速度并节省 GPU VRAM,我们事先对所有视频帧的潜在嵌入和 CLIP 嵌入进行了预处理和存储。在训练过程中,我们直接从磁盘加载这些张量,而不是即时计算。我们对基础扩散模型进行了 22.5k 步的微调,耗时约一天。更详细的训练设置见补充材料。

3.3 鲁棒三维重建和网格提取

利用微调视频扩散模型获得物体的密集视图后,我们的下一步是根据这些视图重建底层三维物体。虽然获得的多视图图像分辨率高且一致性令人满意,但要确保不同视图之间像素与像素严格对齐是一项挑战。在这种情况下,直接应用像素损耗进行三维重建往往会导致浮点或纹理模糊等假象 [3,45,66]。对此,我们建议使用图像级感知损失来解决多个输入图像之间的不一致问题。为了支持图像级损失,我们选择了三维高斯拼接技术,因为它训练速度快,内存效率高,能以最低成本渲染完整图像。我们采用 LPIPS [110] 作为感知损失,并将其与 3DGS 的原始损失相结合,即

其中,I 和 I 分别代表渲染图像和地面实况图像(我们生成的视图),λ 和 λ 指损失权重。

初始化。初始化是三维高斯拼接技术取得良好效果的关键[35, 115]。由于在以物体为中心的重建中没有可用的稀疏点云,原始的 3DGS 使用高斯球(Gaussianblob)对高斯进行初始化,并通过重置不透明度去除不必要的高斯。这需要多次优化迭代才能消除浮点,而且当输入图像不完全一致时,可能会出现伪影。为了加快重建速度,我们建议通过空间雕刻来初始化高斯[38,55]。具体来说,我们首先使用现成的背景去除模型对生成帧的前景进行分割,从而获得每个视图的对象掩码。然后,通过将体素投影到图像平面来确定投影像素是否属于物体,并汇总所有视图下的所有投影结果,从而建立占用网格。最后,我们利用行进立方体[54],根据占据网格获得一个曲面,并在曲面上均匀采样 N 个点作为高斯的初始化位置。 

网格提取。针对现实世界的应用需求,我们还提出了一个生成视图的网格提取管道。与文献[50, 52, 88]类似,我们采用 NeuS[94] 和多分辨率哈希网格[61]进行快速曲面重建。

虽然 V3D 可以生成相当数量的视图,但与 NeuS 的典型使用案例相比,它的数量仍然不多,因为后者通常涉及 40 多张摆好姿势的图像 [53, 94]。因此,我们采用了正常平滑损失和稀疏正则化损失,以确保合理的几何形状。此外,由于我们生成的图像并不完全一致,而 NeuS 利用图像级损失又因渲染成本较高而不可行,因此 NeuS 提取的网格纹理往往比较模糊。针对这一问题,我们在保持几何图形不变的情况下,利用 LPIPS 损失进一步细化 NeuS 提取的多视图网格纹理,从而大大降低了渲染成本,提高了最终输出的质量。由于可微分网格渲染的高效性[39],这一细化过程可在 15 秒内完成。

3.4 场景级新颖视图合成

除了以物体为中心的生成外,我们还将视频扩散进一步扩展到场景级的新颖视图合成。与生成物体视图不同,新颖视图合成需要沿着给定的摄像机路径生成图像,这就需要精确控制摄像机的姿势并适应多个输入图像。

调节。以前的方法,如 Zero-1-to-3 [49],通过引入摄像机嵌入,将摄像机姿态纳入图像扩散。然而,这种方法并没有明确利用三维信息,因此在确保多个视图的一致性和精确控制摄像机姿势方面具有挑战性[48, 102]。为了更好地将三维先验信息纳入视频扩散并精确控制生成帧的姿势,我们从 GeNVS [10] 和 ReconFusion [102] 中汲取灵感,将 PixelNeRF [106] 特征编码器集成到视频扩散模型中。具体来说,给定一组姿势图像作为条件π,I = {(I, π)},我们采用 PixelNeRF 通过以下方式渲染目标摄像机姿势 {π} 的特征图:

其中,{π} 指的是我们要生成的帧的摄像机姿态。然后,我们将此特征图连接到 U-Net 的输入中,以明确编码相对相机姿态信息。这种方法可无缝支持任意数量的图像输入。其他条件与以对象为中心的生成方法类似,只是 CLIP 图像嵌入的数量从一个增加到了多个。 

数据为了进行场景级的新颖视图合成,我们在 MVImgNet [107] 上对基础视频扩散模型进行了微调。为了使 MVImgNet 中的视频与视频扩散的输入大小相匹配,我们使用现成的背景移除工具获取物体遮罩,然后根据前景遮罩裁剪、重新调整图像的中心点和焦距。

训练除了视频扩散模型中使用的简化扩散损耗外,我们按照 ReconFusion [102] 的方法,用向下采样的光度损耗来调节 PixelNeRF 编码器的参数: 

其中,f 指的是 PixelNeRF 编码器的另一个颜色分支,该分支可预测降采样图像,x 指的是降采样目标帧。 

正如文献[102]所述,我们在实验中发现这一损失对于避免局部最小值至关重要。我们遵循 InstructPix2Pix [6],将扩散 U-Net 第一层中新添加的 PixelNeRF 特征输入通道初始化为零,以最好地保持预先训练的先验。在输入视图调节方面,我们随机选择 1 到 4 幅图像作为输入,并以 20% 的概率将条件独立设置为零。我们将在补充材料中介绍场景级模型的更多训练细节。

4.实验

在本节中,我们将介绍验证所提方法在以对象为中心和场景级三维生成方面有效性的实验。具体来说,我们将 V3D 与之前图像到 3D 和新型视图合成的最先进方法进行了定量和定性比较。此外,我们还进行了多项消融研究,以评估模型设计的重要性,包括噪声分布、微调步骤数量、预训练先验和相机调节。详细结果如下。

4.1 以对象为中心的三维生成

定性比较。我们评估了所提出的 V3D 在图像到 3D 方面的性能,并将结果与最先进的方法进行了比较。图 3 的上半部分展示了我们的方法与基于 3DGS 的 TriplaneGaussian [117] 和 LGM [85] 方法之间的定性比较。我们的方法展示了令人印象深刻的质量改进,而 TriplaneGaussian 和 LGM 由于能生成的高斯数量有限,往往会产生更加模糊的外观。图 3 的下部显示了基于 SDS 的先进方法之间的比较,包括 Magic123 [69] 和 ImageDream [95]。V3D 在前视对齐和保真度方面都胜出一筹。相比之下,Magic123 生成的对象显示出不准确的几何形状和模糊的背面,而 ImageDream 生成的资产往往具有过度饱和的纹理。重要的是,我们的方法能在 3 分钟内实现这些结果,与需要 30 分钟以上的基于优化的方法相比,速度明显加快。图 4 展示了与 SyncDreamer [50] 和 Wonder3D [52] 在多视图生成方面的比较,我们的方法始终能以更高的 512 分辨率和更精细的细节获得更出色的结果。SyncDreamer 生成的多视图图像往往几何形状简单,纹理过于饱和。我们将此归因于 SyncDreamer 与原始稳定扩散模型在结构上的显著差异,因此未能充分利用图像预训练的信息。至于 Wonder3D,我们的模型生成的多视图数量增加了三倍,分辨率提高了一倍,在纹理质量和多视图一致性方面都取得了显著改善。

定量比较。在定性比较方面,我们进行了一项用户研究,通过人工评分对生成的 3D 资产进行评估。具体来说,我们请 58 名志愿者通过观看渲染的 360° 螺旋视频,在 30 张条件图像下对 V3D 和其他方法生成的物体进行评估,并在以下方面选择最佳方法:(a)对齐度:三维资产与条件图像的对齐程度;(b)逼真度:生成物体的逼真程度。表 1表 1 显示了每种方法在这两个标准中的胜出率。V3D 被认为是最有说服力的模型,在图像对齐和逼真度方面都明显优于其他竞争者。 

4.2 新观点合成

在场景级新颖视图合成方面,我们在 CO3D 数据集的 10 类子集上测试了所提出的 V3D 的性能。为了与之前方法的设置保持一致,我们只在每个类别的视频上对 V3D 进行了一次历时微调(记为 "微调")。结果如表 3 所示。3.我们的方法

 

在图像指标方面,V3D 的性能始终优于之前最先进的新视角合成器,这证明了在场景级新视角合成中使用预训练视频扩散模型的有效性。此外,V3D 还显示出令人印象深刻的泛化能力,因为零镜头版本的 V3D(仅在 MVImgNet 上训练)击败了大多数竞争对手。 

定性比较。图 5 显示了 SparseFusion [112] 在 CO3D 数据集[71]的消防栓子集上生成的多视图的定性比较。为了更好地进行比较,我们使用 COLMAP [75, 76] 对给定的相机姿态进行多视角立体重建,并在图 5 中展示了获得的点云中的点数以及与地面实况图像重建的点云之间的倒角距离。由 V3D 生成的图像重建的点云包含更多的点,而且更接近于由真实图像重建的点云。这表明我们的方法在重建质量和多视角一致性方面都具有显著优势。

5 局限性和结论

局限性。虽然 V3D 在三维生成方面达到了最先进的性能,但对于某些复杂的物体或场景,例如多个视图之间的不一致性或不合理的几何形状,V3D 会产生令人不满意的结果。具体的失败案例和分析将在补充材料中讨论。

结论在本文中,我们提出了 V3D,这是一种利用图像到视频扩散模型生成一致的多视角图像的新方法。通过在三维数据集上微调基础视频扩散模型,我们将视频扩散模型扩展为有效的三维生成器。具体来说,对于以物体为中心的三维生成,我们在合成三维物体的 360° 视频时对视频扩散进行微调,以预测给定单张图像的密集视图。为了从生成的视图中获取底层三维资产,我们提出了一种具有设计初始化和纹理细化功能的定制重建管道,从而能够重建高质量的三维视图。

三维高斯或精细纹理网格,只需 3 分钟。我们进一步将框架扩展到场景级的新颖视图合成,实现了对摄像机路径的精确控制和多视图一致性。我们进行了大量实验来验证所提方法的有效性,证明它在生成一致的多视图和泛化能力方面表现出色。我们希望我们的方法能成为高质量三维生成的一种高效而强大的方法,并为视频扩散模型在三维任务中的更广泛应用铺平道路。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣17. 电话号码的字母组合

Problem: 17. 电话号码的字母组合 文章目录 思路及解法复杂度Code 题目描述 思路及解法 1.将电话号码和对应的数组存入数组中创建映射关系; 2.编写,并调用回溯函数,当决策阶段等于digits的长度时,将当前的决策路径添加到结果集合中…

自学Python第二十九天-feapder框架创建爬虫

自学Python第二十九天-feapder框架创建爬虫 安装feapder 的设计架构feapder 框架的简单使用简单创建爬虫简单爬取数据简单的数据保存 中间件校验浏览器渲染使用浏览器渲染获取接口数据 feapder是一款上手简单,功能强大的 Python爬虫框架,内置 AirSpide…

linux安装WordPress问题汇总,老是提示无法连接到FTP服务器解决方案

最近在做一些建站相关的事情,遇到一些大大小小的问题都整理在这里 1.数据库密码和端口,千万要复杂一点,不要使用默认的3306端口 2.wordpress算是一个php应用吧,所以安装流程一般是 apache http/nginx——php——mysql——ftp &…

嵌入式学习第二十九天!(数据结构的概念、单向链表)

数据结构: 1. 定义: 一组用来保存一种或者多种特定关系的数据的集合(组织和存储数据) 1. 程序设计: 将现实中大量而复杂的问题以特定的数据类型和特定的数据结构存储在内存中,并在此基础上实现某个特定的功…

Python深度学习技术教程

原文链接:Python深度学习技术教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247597949&idx4&sn65c0d353d02b060fec98ec799f217ae1&chksmfa823e9acdf5b78cd71cfcb060e3b60125b17afbe3e19ef423d4709d2df7fc93d90ce3097253&token14787…

【K8S】docker和K8S(kubernetes)理解?docker是什么?K8S架构、Master节点 Node节点 K8S架构图

docker和K8S理解 一、docker的问世虚拟机是什么?Docker的问世?docker优点及理解 二、Kubernetes-K8SK8S是什么?简单了解K8S架构Master节点Node节点K8S架构图 一、docker的问世 在LXC(Linux container)Linux容器虚拟技术出现之前,业…

汽车功能安全整体方法

摘 要 ISO26262道路车辆功能安全标准已经制定实践了多年,主要目标是应对车辆的电子和电气(E/E)系统失效。该方法践行至今,有些系统功能安全方法已经成熟,例如电池管理系统(BMS),并且…

Javaweb学习记录(三)请求响应案例

下面为一个请求响应案例,postman发送请求,服务器响应将一个xml文件中的数据通过读取解析,将其用Result类标准的格式返回前端,在前端用json的方式显示 后端Controller代码 1、通过本类的字节码文件得到类加载器并寻找到需要解析的…

vue2使用webSocket双向通讯

基于webSocket实现双向通信,使用webworker保持心跳。 由于浏览器的资源管理策略会暂停或限制某些资源的消耗,导致前端心跳包任务时效,后端接收不到webSocket心跳主动断开,因此需要使用webworker保持心跳 引入webworker npm insta…

【Ubuntu】Ubuntu的安装和配置

下载ubuntu镜像 https://releases.ubuntu.com/22.04.4/ubuntu-22.04.4-desktop-amd64.iso 一、Ubuntu安装 1.新建虚拟机 1.1按照它的提示创建用户;后面一直下一步就好 2.启动Ubuntu虚拟机 2.1设置为中文键盘 2.2默认即可;若是有低需求也可以选择最小…

Coursera上Golang专项课程3:Concurrency in Go 学习笔记(完结)

Concurrency in Go 本文是 Concurrency in Go 这门课的学习笔记,如有侵权,请联系删除。 文章目录 Concurrency in GoMODULE 1: Why Use Concurrency?Learning Objectives M1.1.1 - Parallel ExecutionM1.1.2 - Von Neumann BottleneckM1.1.3 - Power W…

Python基础(六)之数值类型元组

Python基础(六)之数值类型元组 1、简介 元组: 在Python中是内置的数据结构之一,是一个不可变的序列,切可以是任何类型数据。元组的元素放在()小括号内。一般我们希望数据不改变的时候使用 不可变与可变的…

Day69:WEB攻防-Java安全JWT攻防Swagger自动化算法签名密匙Druid泄漏

目录 Java安全-Druid监控-未授权访问&信息泄漏 黑盒发现 白盒发现 攻击点 Java安全-Swagger接口-导入&联动批量测试 黑盒发现 白盒发现 自动化发包测试 自动化漏洞测试 Java安全-JWT令牌-空算法&未签名&密匙提取 识别 JWT 方式一:人工识…

web渗透测试漏洞复现:Elasticsearch未授权漏洞复现

web渗透测试漏洞复现 Elasticsearch未授权漏洞复现Elasticsearch简介Elasticsearch复现Elasticsearch漏洞修复和加固措施 Elasticsearch未授权漏洞复现 Elasticsearch简介 Elasticsearch 是一款 Java 编写的企业级搜索服务,它以分布式多用户能力和全文搜索引擎为特…

使用jenkins-pipeline进行利用项目文件自动化部署到k8s上

Discard old builds:丢弃旧的构建,目的是管理存储空间、提升性能以及保持环境整洁 Do not allow concurrent builds: 禁止并发构建是指同一时间内只允许一个构建任务执行,避免多个构建同时运行可能带来的问题 Do not allow the pipeline to resume if the controller resta…

RPC学习笔记一

什么是RPC RPC(Remote Procedure Call,远程过程调用)是一种用于实现分布式系统中不同计算机或进程之间进行通信和调用的技术和模式。 在传统的过程调用中,当一个程序需要调用另一个程序的函数或方法时,通常是在同一台…

ChatGPT4的Dalle-3 生成电影海报及升级教程

引言 首先DALL E3首先需要升级为ChatGPT4才能使用,接下来从以下几个方面进行介绍: 一、ChatGPT4中的DALL E3 的电影海报二、ChatGPT4下的DALL E3的实例三、ChatGPT4的升级教程 一、ChatGPT4中的DALL E3 的电影海报 DALLE 3可以直接在画面中识别和生成…

【Qt图形界面引擎(一)】:第一个Qt程序

跨平台图形界面引擎,接口简单,易上手,一定程度简化内存。 Qt发展史 1991年由Qt Company开发的跨平台C图形用户界面应用程序开发框架2008年,Qt Company科技被诺基亚公司收购,Qt也因此成为诺基亚旗下的编程语言工具2012…

【vue elementUI】修改el-dropdown样式

实现效果如下&#xff1a; 代码如下&#xff1a; <el-dropdown trigger"click" command"handleCommand" active-text-color"#606266"><span class"product-card">{{getCategoryName(categoryId)}}</span><el-dro…

一文解决内网传外网sftp没跑满带宽问题

随着企业网络的日益复杂&#xff0c;内部网络与外部网络之间的文件传输需求不断增长。然而&#xff0c;标准的SFTP协议在跨网络传输时常常无法充分运用可用带宽&#xff0c;导致传输效率不尽人意。本文旨在探讨影响内网至外网SFTP传输效率的因素&#xff0c;并结合一种高效的解…