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

【三维生成】StarGen:基于视频扩散模型的可扩展的时空自回归场景生成

在这里插入图片描述


标题:《StarGen: A Spatiotemporal Autoregression Framework with Video Diffusion Model for Scalable and Controllable Scene Generation》
项目:https://zju3dv.github.io/StarGen
来源:商汤科技、浙大CAD、Tetras.AI

文章目录

  • 摘要
  • 一、引言
  • 二、相关工作
    • 2.1 Reconstruction Models
    • 2.2 Generation Models
    • 2.3 Combining Reconstruction and Generation
  • 三、时空自回归(Spatiotemporal Autoregression)
  • 四、时空条件的视频生成(Spatiotemporal-Conditioned Video Generation)
  • 五、下游任务
  • 实验


摘要

  近年来,大型重建和生成模型的研究进展显著改善了场景重建和新的视图生成。然而,由于计算的限制,这些 大型模型的每个推理都局限在一个小的区域内,这使得长期一致的场景生成具有挑战性。为了解决, StarGen使用了一个预训练的视频扩散模型,以自回归的方式进行远程场景生成 每个视频clip 的条件是(空间上)相邻图像和先前生成的clip 的(时间上的)重叠图像的 3D warping,通过精确的姿态控制提高远程场景生成的时空一致性。时空条件与各种输入条件兼容,促进了各种任务,包括稀疏视点插值sparse view interpolation、永久视角生成 perpetual view generation和基于布局的城市生成 layout-conditioned city generation。
  

一、引言

  近年来,大型模型的快速发展推动了在三维重建和生成方面取得的重大进展,这两个领域日益相互交织和互补。在重建方面,大型重建模型[30,70,75]的出现成功地减少了对密集多视图捕获的依赖。与此同时,生成模型已经被用来解决在稀疏捕获的视图[40,61,71]中填充不可见区域的挑战。在生成方面,3D重建技术促进了将2D生成模型提升到3D生成任务,要么通过将2D分布提取为3D表示 [LucidDreamer,DreamFusion,ProlificDreamer] ,要么通过从2D生成的图像 [LucidDreamer Text2RoomText2NeRF] 重建3D表示。此外,大型重建模型也被用来增强生成的二维多视图图像[21,71,81]之间的一致性。

  这些大型重构和生成模型的一个主要限制是,在有限的计算资源下,在单一推理中只能处理有限数量的令牌(token)。因此,目前的方法通常局限于生成单个对象或短程场景,这使得支持远程场景生成具有挑战性。虽然有时间自回归方法将当前视频剪辑的第一帧设置在之前生成的剪辑的最后一帧上,以实现long range视频生成,但它们只在短时间[16,22]内保持时间一致性。随着时间的推移,误差会累积,空间一致性变得难以保持。例如,当在同一区域内来回移动时,每个pass 可能会在同一位置产生不一致的内容

  StarGen是一个long range 的场景生成的时空自动回归框架。如图1,关键思想是将每个视频clip的生成不仅在时间上相邻的图像上,而且在与当前窗口共享共同内容的空间上相邻的图像上。我们引入了一个大型的重建模型,该模型从空间条件化图像中提取三维信息,并将重建的潜在特征渲染到每个新的视图中,通过精确的姿态控制来指导生成。贡献总结如下:

  • StarGen,一种新的自回归框架,它结合了空间和时间条件,以支持long range场景生成和精确的姿态控制。

  • 我们提出了一种新的架构,补充了一个精心设计的大型重建模型预训练的视频扩散模型用于时空条件视频生成

  • 我们通过在框架内实现三个任务来演示StarGen的多功能性,包括稀疏视图插值、永久视图生成和布局条件下的城市生成。
      

在这里插入图片描述

二、相关工作

2.1 Reconstruction Models

2.2 Generation Models

2.3 Combining Reconstruction and Generation

在这里插入图片描述

  LangSplat提出了一种预测三维潜在空间中语义高斯的方法,可以通过轻量级生成的2D architecture 进行splat和decode。现有的可推广的三维重建方法要么不能扩展到大的场景和分辨率,要么局限于近距离输入视图的插值。LangSplat结合了基于回归和生成方法的优势,同时纯粹在现成的真实视频数据上进行训练,方法的核心是变分三维高斯,这是一种有效地编码由三维特征高斯组成的潜在空间内的变化不确定性的表示。从这些高斯分布中,特定的实例可以通过高效的喷溅和快速生成的解码器进行采样和渲染。

在这里插入图片描述
  Epipolar Transformer 是一种用于处理稀疏特征的技术,主要用于解决多视图几何中的特征匹配问题。它的核心思想是利用**极线约束(Epipolar Constraint)**来引导特征匹配和特征提取,从而在稀疏特征点(如关键点或角点)的场景中,利用极线约束优化特征的位置和描述符。

  该方法的核心是三维表示,将场景编码为一组语义三维高斯,通过附加的视图相关的特征向量描述场景外观。此外,通过存储球谐系数正态分布的参数µ和σ,而不是显式特征向量,分别对每个语义高斯分布的不确定性进行建模。总的来说,一个场景被表示为N个变分高斯的集合:

在这里插入图片描述

  采样语义高斯。我们区分了高斯表示的两种状态,变分高斯和语义高斯。后者可以通过对所有高斯数分布的重参数化技巧对显式球谐系数进行采样得到:

在这里插入图片描述

  

三、时空自回归(Spatiotemporal Autoregression)

  给定一个长的位姿轨迹,StarGen为每个位姿生成一个图像。与以往基于视频扩散模型 [Streetscapes,Vista] 的时间自回归方法相似,长轨迹生成通过短视频clip的重叠滑动窗口{ W k W_k Wk} k = 1 K ^K_{k=1} k=1K进行,如图1(a).中的虚线框所示。当前(新的)窗口 W k W_k Wk的生成,以前一个(已知)窗口 W k − 1 W_{k−1} Wk1的temporally overlapping image I k t e m p I^{temp}_k Iktemp 为条件,如蓝色实心框所示。为了处理时间上非相邻图像可能与当前窗口共享相同内容的情况,引入空间相邻图像以增强空间一致性。

  具体的,将生成的场景表示为一组稀疏采样的图像{ I i s p a t I^{spat}_i Iispat} i = 1 M ^M_{i=1} i=1M,每个图像与输入位姿 P i P_i Pi和生成的深度图 D i D_i Di配对。首先识别两个当前窗口具有最大公共区域的空间条件图像 ( I i 1 s p a t , I i 2 s p a t ) (I ^{spat}_{i1},I^{spat}_{i2}) Ii1spatIi2spat,如绿色梯形区域。这些时空条件图像 ( I i 1 s p a t , I i 2 s p a t , I k t e m p ) (I ^{spat}_{i1},I^{spat}_{i2},I^{temp}_k) Ii1spatIi2spatIktemp被输入一个时空条件视频生成模型,生成当前的视频clip,如图1(b)所示。最后,从当前clip中均匀采样两个图像,并添加到采样图像集中,窗口向前滑动,继续生成

在这里插入图片描述

四、时空条件的视频生成(Spatiotemporal-Conditioned Video Generation)

在这里插入图片描述

图2.时空条件下的视频生成。给定两幅带pose图像作为空间条件(左边的绿色框),重建模型对它们的深度图和特征图进行回归。两个特征图 F i 1 s p a t F^{spat}_{i1} Fi1spat F i 2 s p a t F^{ spat}_{i2} Fi2spat被渲染成新视图特征 F n o v F^{nov} Fnov,并暂时压缩到CogVideoX的潜在空间,得到 z s p a t z^{spat} zspat。同时,对时间条件图像(右边的蓝框)进行编码,以取代(也可以说成补充) z s p a t z^{spat} zspat 中相应的latent,得到时空条件 z s t − c o n d z^{st-cond} zstcond,通过ControlNe给CogVodoX的生成添加条件。

  

  3D重建模型,与预训练的视频扩散模型相结合,生成一个基于之前生成的内容的视频clip,如图2所示。鉴于空间条件 C s p a t = C^{spat}= Cspat={ I i s p a t , P i I^{spat}_i,P_i Iispat,Pi} i = i 1 , i 2 _{i=i1,i2} i=i1,i2,时间条件 C t e m p = C^{temp}= Ctemp={ I k t e m p I^{temp}_k Iktemp},文本提示 T T T,和新视角 P n o v P^{nov} Pnov = { P j P_j Pj} j = 1 N ^N_{j=1} j=1N,目标是为新视图 x = x= x={ x j x_j xj} j = 1 N ^N_{j=1} j=1N生成图像的条件分布建模:

在这里插入图片描述
其中θ表示模型参数,N表示每个视频clip中的图像数量。该公式使模型能够利用空间和时间条件来指导新视图生成。

   空间条件 。受LatentSplat[60]的启发, 1.【重建】首先利用一个大型重建模型(LRM)从两张空间条件图像 ( I i 1 s p a t , I i 2 s p a t ) (I ^{spat}_{i1},I^{spat}_{i2}) Ii1spatIi2spat中预测场景结构 。与现有的仅依赖颜色信息的方法不同,输入还包含了先验深度图和 Plucker坐标。完整的LRM输入是 { I i s p a t , D ^ i s p a t , P ^ i s p a t I^{spat}_i,\hat{D}^{spat}_i,\hat{P}^{spat}_i Iispat,D^ispat,P^ispat} i = i 1 , i 2 _{i=i1,i2} i=i1,i2,包括RGB图像 I ∈ R H × W × 3 I∈R^{H×W×3} IRH×W×3,Depth Anythinig V2预测的深度图 D ∈ R H × W × 1 D∈R^{H×W×1} DRH×W×1,以及来自输入位姿的Plucker坐标 P ∈ R H × W × 6 P∈R^{H×W×6} PRH×W×6

2.【回归】按照GS-LRM ,我们将LRM的输入stack, patchify, concatenate到一个token序列中,输入一个Transformer网络,回归对应于两个条件视图的 深度图{ D i s p a t D^{spat}_i Dispat} i = i 1 , i 2 _{i=i1,i2} i=i1,i2和 特征图{ F i s p a t F^{spat}_i Fispat} i = i 1 , i 2 _{i=i1,i2} i=i1,i2需要注意的是,与从单目深度预测中获得的无尺度 D ^ i s p a t \hat{D}^{spat}_i D^ispat不同,回归的 D i s p a t D^{spat}_i Dispat 被期望与输入pose进行尺度对齐 。所以我们可以将特征渲染给新的视图(给定新视图 P n o v = P^{nov}= Pnov= { P j P_j Pj} j = 1 N ^N_{j=1} j=1N),获得新的视图特征 F n o v = F^{nov}= Fnov= { F j F_j Fj} j = 1 N ^N_{j=1} j=1N和深度映射 D n o v = D^{nov}= Dnov= { D j D_j Dj} j = 1 N ^N_{j=1} j=1N

在这里插入图片描述

F n o v F^{nov} Fnov 中的不可见区域用零填充。这样,结构、外观、摄像机运动和可见性信息被编码在 F n o v F^{nov} Fnov中,为生成过程提供条件,以确保可见区域与空间条件图像一致,识别和填充不可见区域,并遵循输入的位姿轨迹。为了将条件对齐到SVD模型的潜在空间,设置每个特征映射的维度来匹配潜在维度:训练一个压缩网络,压缩 F n o v ∈ R N × h × w × c F^{nov}∈R^{N×h×w×c} FnovRN×h×w×c 的时间维度从N到n,生成 z s p a t ∈ R n × h × w × c z^{spat}∈R^{n×h×w×c} zspatRn×h×w×c。按照CogVideoX ,除了第一帧外,每四帧都被压缩成一帧,即 n = 1 + ( N − 1 ) / 4 n = 1+(N−1)/4 n=1+(N1)/4

   时空条件 。其他方法通过将backbone T2V模型微调为I2V模型来支持 时间condition,因此需要在不同的位置训练不同的backbone 进行condition。为了在不调整主干的情况下增强多功能性,我们直接替换了 z s p a t z^{spat} zspat中相应的latent frame。

具体地说,将时间条件图像 I k t e m p I^{temp}_k Iktemp(可以理解为当前已知的帧)输入预训练的VAE编码器,获得一个latent z k t e m p z^{temp}_k zktemp。为了条件化第一帧, z k s p a t z^{spat}_k zkspat中的第一个 latent frame被直接替换为 z k t e m p z^{temp}_k zktemp。对于其他帧的条件化,通过在第 k k k帧处插入三个重复的pose来修改新视图pose轨迹。这四个静态帧将在 z s p a t z^spat zspat中被压缩成一个 ,并被 z k t e m p z^{temp}_k zktemp取代。被替换的latent记为 z s t − c o n d z^{st-cond} zstcond,作为CogVideoX通过ControlNet生成与时空条件一致的视频的条件。

   训练损失

在这里插入图片描述

其中 λ d e p t h λ_{depth} λdepth = 0.05, λ l a t e n t λ_{latent} λlatent = 0.1和 λ d i f f u s i o n λ_{diffusion} λdiffusion = 1.0。第一项 λ d e p t h λ_{depth} λdepth监督渲染的深度图 D n o v D^{nov} Dnov 来训练LRM。使用无尺度损失:

在这里插入图片描述

S n o v S^{nov} Snov表示新视图的均匀采样子集。 ∣ S n o v ∣ = 3 |S^{nov}| = 3 Snov=3 为了提高实验效率。 π ( ⋅ ) π(·) π()将逆深度归一化为[0,1]; λ l a t e n t λ_{latent} λlatent用于监督 latent z s p a t z^{spat} zspat 来同时训练 LRM 和压缩网络; λ d i f f u s i o n λ_{diffusion} λdiffusion 是传统的扩散损失:

在这里插入图片描述
其中,E为预训练的VAE编码器,x为真实的新视图图像; ϵ θ ϵ_θ ϵθ为模型参数为θ的去噪网络, z t z_t zt为被已知噪声 ϵ ϵ ϵ corrupted 的 noisy latent, t t t 表示扩散时间步长。

五、下游任务

   稀疏视图插值 是稀疏视图重建的关键步骤,与我们密切相关的并行工作[40,71]证明了这一点。给定开始帧和结束帧,它将生成中间图像。在StarGen的框架下,我们基于两种输入图像之间的重叠来区分两种情况。在两幅输入图像有较大的重叠区域的情况下,它们同时作为空间和时间条件,输入时空条件视频生成模型,生成插值视频。对于起始帧和结束帧共享最小甚至没有共同区域的远程场景,我们提出了一种双通道方法。在第一个pass中,该过程与之前的方法相似,但相邻生成的图像之间的姿态差比第一种情况大,得到一组稀疏采样的图像。在第二pass中,来自第一通道的每一对相邻图像被视为视频clip的开始帧和结束帧。然后,使用所提出的时空自回归方法按顺序生成所有的片段

  永久视图生成是从单个图像生成一个场景的新视图的任务,同时允许位姿控制[39,71]。在StarGen的框架中,输入图像作为第一个生成的clip的空间和时间条件。剩下的片段然后使用所提出的时空自回归生成。与开始帧和结束帧都提供约束的稀疏视图插值任务相比,永久视图生成只对第一帧有约束。因此,它对错误积累更加敏感,并对生成模型的可伸缩性提出了更高的要求,使其成为StarGen能力的一个优秀演示。

  基于布局条件的城市生成是生成给定城市布局和观测位姿[16,62]的图像的任务。首先根据观察位姿,将城市布局渲染为深度和语义视频。然后分别为深度和语义图训练两个独立的ControlNet,类似于 [Pixart-δ: Fast and controllable image generation with latent consistency models] 。这两个ControlNet被组合起来生成第一个clip。剩下的片段然后使用所提出的时空自回归生成。时空条件可以有效地与深度和语义条件相结合,这要感谢ControlNet的结合能力和我们提出的框架的灵活性。

实验

  实验细节 StarGen由一个大型的重建模型(LRM)、一个普通压缩网络(CCN)和一个带有ControlNet的视频扩散模型(VDM)组成。LRM,使用ViT架构[17],它包括12层,隐藏大小为768,MLP大小为4096,和12个注意头,总计114M参数;CCN使用了一个Conv3d层,输入和输出通道都设置为16,内核大小为(3、3、3),步幅为(1、1、1),空洞为(1、1、1),padding为(0、0、0);VDM使用预训练的CogVideoX-2B-T2I [68],没有进行任何微调。ControlNet模型包含6层模型,是CogVideoX- 2B-T2I前6层的可训练副本。

   为了提高训练的效率,所提出的模型在分辨率为256×256的情况下进行了训练。训练过程包括: 1)预热 使用batchsize 384的连续帧从头开始训练LRM+CCN,从1K热身步骤开始,共持续40K步;2)间隔训练 使用1∼3帧间隔训练LRM+CCN,batchsize 为384,训练20k步;3)联合训练,也使用1∼3帧间隔,15K步为240步。对于布局条件的城市生成任务,我们另外训练了两个深度和语义控制网,使用128个超过20K步的批大小。我们还微调了我们的模型,在11K步中训练16的LRM+CCN,然后在另外11K步中分别训练80的ControlNet

  数据集 训练数据包括RealEstate-10K[79]、ACID [39]和DL3DV-10K [38]。我们过滤掉了较短的视频剪辑,最终得到了66,859个视频的数据集。对于具有布局条件的城市生成任务,我们另外使用了来自CityDreamer[62]的城市生成数据集,该数据集包括来自开放街道地图[2]的城市布局数据和来自Google Earth Studio [1]的渲染。该数据集包括400个轨迹,每个轨迹最初有60帧,我们将其插值到600帧

  


在这里插入图片描述

RealEstate-10K数据集上,稀疏视图插值的结果

  


在这里插入图片描述

在这里插入图片描述

  


在这里插入图片描述

相关文章:

【三维生成】StarGen:基于视频扩散模型的可扩展的时空自回归场景生成

标题:《StarGen: A Spatiotemporal Autoregression Framework with Video Diffusion Model for Scalable and Controllable Scene Generation》 项目:https://zju3dv.github.io/StarGen 来源:商汤科技、浙大CAD、Tetras.AI 文章目录 摘要一、…...

线反转法实现矩形键盘按键识别

由于行、列线为多键共用,各按键彼此将相互发 生影响,必须将行、列线信号配合起来并作适当的处 理,才能确定闭合键的位置。 线反转法 第1步:列线输出为全低电平,则行线中电平由高变低 的所在行为按键所在行。 第2步&…...

在 Element Plus 的 <el-select> 组件中,如果需要将 <el-option> 的默认值设置为 null。 用于枚举传值

文章目录 引言轻松实现 `<el-option>` 的默认值为 `null`I 实现方式监听清空事件 【推荐】使用 v-model 绑定 null添加一个值为 null 的选项处理 null 值的显示引言 背景:接口签名规则要求空串参与,空对象不参与签名计算 // 空字符串“” 参与签名组串,null不参与签…...

大白话面试中应对自我介绍

在面试中&#xff0c;自我介绍是开场的关键环节&#xff0c;它就像你递给面试官的一张“个人名片”&#xff0c;要让面试官快速了解你并对你产生兴趣。下面详细讲讲应对自我介绍的要点及回答范例。 一、自我介绍的时间把控 一般面试中的自我介绍控制在1 - 3分钟比较合适。时间…...

Pytorch构建LeNet进行MNIST识别 #自用

LeNet是一种经典的卷积神经网络&#xff08;CNN&#xff09;结构&#xff0c;由Yann LeCun等人在1998年提出&#xff0c;主要用于手写数字识别&#xff08;如MNIST数据集&#xff09;。作为最早的实用化卷积神经网络&#xff0c;LeNet为现代深度学习模型奠定了基础&#xff0c;…...

元宇宙崛起:区块链与金融科技共绘数字新世界

文章目录 一、引言二、元宇宙与区块链的深度融合三、区块链在元宇宙金融中的应用四、金融科技在元宇宙中的创新应用五、面临的挑战与机遇《区块链与金融科技》亮点内容简介获取方式 一、引言 随着科技的飞速发展&#xff0c;元宇宙概念逐渐走进人们的视野&#xff0c;成为数字…...

React Native 实现滑一点点内容区块指示器也滑一点点

效果图如上&#xff0c;内容滑一点点&#xff0c;指示器也按比例话一点点&#xff0c;列表宽度跟数据有关。 实现思路如下&#xff1a; 1.监听列表滑动事件&#xff0c;获取列表横向滑动距离&#xff0c;假设为A&#xff1b; 2.获取列表的宽度&#xff0c;及列表可滑动的宽度…...

怎么写C#命令行参数程序,及控制台带参数案例(程序完整源码)下载

C#命令行参数解析控制台带参数编写案例&#xff08;程序完整源码&#xff09;下载链接 https://download.csdn.net/download/luckyext/90434790 在CMD命令窗口&#xff0c;输入ping 、ipconfig等这样的命令&#xff0c;大家应该都知道&#xff0c;但很多同学可能不知道怎么写…...

全国青少年航天创新大赛各项目对比分析

全国青少年航天创新大赛各项目对比分析 一、比赛场地对比 项目名称场地尺寸场地特点组别差异筑梦天宫虚拟三维场景动态布局&#xff0c;小学组3停泊处&#xff0c;初高中组6停泊处&#xff1b;涉及传送带、机械臂、传感器等虚拟设备。初中/高中组任务复杂度更高&#xff0c;运…...

基于RAG的法律条文智能助手

文章目录 前言一、 项目背景与需求设计二、 数据收集与整理三、 核心实现流程1. 配置与模型初始化1. 配置区2. 模型初始化&#xff08;init_models 函数&#xff09;3. 数据加载与验证&#xff08;load_and_validate_json_files 函数&#xff09;4. 节点生成&#xff08;create…...

智能对讲机:5G+AI赋能下的石油工业新“声”态

在浩瀚的能源版图上&#xff0c;中国正以非凡的“深度”探索着石油资源的奥秘。随着5G技术的不断成熟与普及&#xff0c;曾经“满山遍野找信号”的石油工人&#xff0c;如今已步入了一个全新的通信时代。在这个时代里&#xff0c;智能对讲机成为了连接指挥中心与一线工人的桥梁…...

leetcode日记(77)子集Ⅱ

不知道为什么看到这道题就很头痛…… 其实只要掌握nums不包含重复元素的情况下的代码就行了。 若nums不能包含重复元素&#xff0c;那么使用回溯很容易就能写出来&#xff1a; class Solution {void hs(vector<int> v,int x,vector<int> r,vector<vector<…...

Linux tar命令

压缩解压缩 1. tar 命令 语法&#xff1a; tar [主选项 辅选项] 文件或目录 参数功能-c创建新的归档文件&#xff08;打包&#xff09;-x从归档文件中提取文件&#xff08;解包&#xff09;-f <文件名>指定归档文件名-v显示操作的详细信息-z通过gzip压缩归档文件-j通…...

【nodeJS】服务端连接mysql、定义一个接口,并在前端调用

服务端连接数据库&#xff0c;并简单使用 服务器连接mysql后端定义接口前端调用接口封装axios&#xff08;简易版&#xff09;解决前端请求接口返回了一个html 定义api请求vue中调用接口 服务器连接mysql 安装mysql2&#xff1a;npm install mysql2启动服务&#xff1a;npm sta…...

驱动开发系列40 - Linux 显卡KMD驱动代码分析(一) - 设备初始化过程

目录 一:概述 二:显卡内核态驱动的主要功能 1. 设备初始化 2. 内存管理 3. 中断处理 4. 显示管理 5. 电源管理 三:Linux显卡内核态驱动的架构 四:PCI设备初始化过程 五:显卡设备初始化 一:概述 显卡内核态驱动(KMD)负责与GPU硬件直接交互,提供底层接口、管理显存…...

玩转大语言模型——Ubuntu系统环境下使用llama.cpp进行CPU与GPU混合推理deepseek

系列文章目录 玩转大语言模型——使用langchain和Ollama本地部署大语言模型 玩转大语言模型——三分钟教你用langchain提示词工程获得猫娘女友 玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 玩转大语言模型—…...

20250301在chrome中安装CRX猫抓

20250301在chrome中安装CRX猫抓 2025/3/1 18:08 百度&#xff1a;猫抓 CRX https://www.crx4chrome.com/crx/49597/ 猫抓 (cat-catch) Crx File 2.5.9 for Chrome (Latest Version) Get Latest Version of 猫抓 (cat-catch) from Web Store Developer Tools > cat-catch / E…...

Docker 深度解析:适合零基础用户的详解

此博客涵盖 Docker 的基本概念和作用、架构和核心组件、与传统虚拟机的对比、安装与基本操作&#xff0c;以及在实际开发和运维中的应用场景。 首先&#xff0c;详细解释了 Docker 的基本概念&#xff0c;包括它的诞生背景、作用及其如何解决传统应用部署中的问题。然后&#…...

LeetCode 分割回文串(回溯、dp)

131.分割回文串 给你一个字符串 s&#xff0c;请你将 s 分割成一些 子串&#xff0c;使每个子串都是 回文串 。返回 s 所有可能的分割方案。 示例 1&#xff1a; 输入&#xff1a;s "aab" 输出&#xff1a;[["a","a","b"],["a…...

期权帮|股指期货入门知识:什么是股指期货基差?什么是股指期货价差?

锦鲤三三每日分享期权知识&#xff0c;帮助期权新手及时有效地掌握即市趋势与新资讯&#xff01; 股指期货入门知识&#xff1a;什么是股指期货基差&#xff1f;什么是股指期货价差&#xff1f; 股指期货的基差与价差是两个重要的价格关系指标&#xff0c;它们反映了现货市场…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 &#xff1a;主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 &#xff1a;确保数据的完整性&#xff0c;便于数据的查询和管理。 示例 &#xff1a;在学生信息表中&#xff0c;学号可以作为主键&#xff…...

如何配置一个sql server使得其它用户可以通过excel odbc获取数据

要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据&#xff0c;你需要完成以下配置步骤&#xff1a; ✅ 一、在 SQL Server 端配置&#xff08;服务器设置&#xff09; 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到&#xff1a;SQL Server 网络配…...

快速排序算法改进:随机快排-荷兰国旗划分详解

随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...

数据结构:泰勒展开式:霍纳法则(Horner‘s Rule)

目录 &#x1f50d; 若用递归计算每一项&#xff0c;会发生什么&#xff1f; Horners Rule&#xff08;霍纳法则&#xff09; 第一步&#xff1a;我们从最原始的泰勒公式出发 第二步&#xff1a;从形式上重新观察展开式 &#x1f31f; 第三步&#xff1a;引出霍纳法则&…...

深度解析云存储:概念、架构与应用实践

在数据爆炸式增长的时代&#xff0c;传统本地存储因容量限制、管理复杂等问题&#xff0c;已难以满足企业和个人的需求。云存储凭借灵活扩展、便捷访问等特性&#xff0c;成为数据存储领域的主流解决方案。从个人照片备份到企业核心数据管理&#xff0c;云存储正重塑数据存储与…...

【Java】Ajax 技术详解

文章目录 1. Filter 过滤器1.1 Filter 概述1.2 Filter 快速入门开发步骤:1.3 Filter 执行流程1.4 Filter 拦截路径配置1.5 过滤器链2. Listener 监听器2.1 Listener 概述2.2 ServletContextListener3. Ajax 技术3.1 Ajax 概述3.2 Ajax 快速入门服务端实现:客户端实现:4. Axi…...