【动态三维重建】Deformable 3D Gaussians 可变形3D GS用于单目动态场景重建(CVPR 2024)

主页:https://ingra14m.github.io/Deformable-Gaussians/
代码:https://github.com/ingra14m/Deformable-3D-Gaussians
论文:https://arxiv.org/abs/2309.13101

在这里插入图片描述


文章目录

  • 摘要
  • 一、前言
  • 二、相关工作
    • 2.1 动态场景的神经渲染
    • 2.2 神经渲染加速
  • 三、方法
    • 3.1 正则空间三维GS的可微渲染
    • 3.2 可变形的3D高斯
    • 3.3 退火平滑训练
  • 四、实验
    • 4.1 实施细节
    • 4.2 合成数据集的比较
    • 4.3 真实数据集比较
    • 4.4 消融实验
  • *总结与局限性
  • * 一些demo


摘要

提示:这里是大概内容:

  隐式神经表示为动态场景重建和渲染的新方法铺平了道路。尽管如此,先进的动态神经渲染方法很大程度依赖这些隐式表示,经常难以捕捉场景中物体的复杂细节。此外,隐式方法在一般动态场景中实现实时渲染,限制了它们在各种任务中的使用。为了解决这一问题,我们提出了一种可变形的三维高斯分布的splatting 方法,该方法使用三维高斯分布来重建场景,并在具有变形场的规范空间中学习它们,以建模单目动态场景。我们还引入了一种没有额外开销的退火平滑训练机制,它可以减轻不准确的姿态对真实世界数据集中时间插值任务的平滑性的影响。通过微分高斯光栅化器,可变形三维高斯不仅获得更高的渲染质量,而且实时渲染速度。实验表明,我们的方法在渲染质量和速度方面都显著优于现有的方法,使其非常适合于新视图合成、时间插值和实时渲染等任务

一、前言

   从一组输入图像中获得的动态场景的高质量重建和逼真渲染对各种应用都至关重要,包括增强现实/虚拟现实(AR/VR)、3D内容制作和娱乐。以前用于建模这些动态场景的方法在很大程度上依赖于基于网格的表示,如文献[9,14,18,40]的方法所示。然而,这些策略经常面临固有的限制,如缺乏细节和真实性,缺乏语义信息,以及难以适应拓扑变化。随着神经渲染技术的引入,这种范式经历了一个重大的转变。隐式场景表示,特别是由NeRF [28]实现的,在新颖视图合成、场景重建和光分解等任务中显示出了值得称赞的功效。

   为了提高基于NeRF 的静态场景中的推理效率,研究人员开发了多种加速方法,包括基于网格的结构[7,46]和预计算策略[44,52]。值得注意的是,通过合并哈希编码,Instant-NGP[29]已经实现了快速训练。在质量改进方面,MipNeRF [2]率先采用了一种有效的抗混叠方法,后来由ZipNeRF [4]将其纳入到基于网格的方法中。3D-GS [15]最近将基于点的渲染扩展到高效的三维高斯CUDA实现,它可以在匹配甚至超过Mip-NeRF [2]的质量时实现实时渲染。然而,这种方法是为表示静态场景而设计的,其高度定制的CUDA栅格化管道降低了其可伸缩性。

  隐式表示已经被越来越多地用于建模动态场景。 为了处理动态场景中的运动部分entangled(纠缠) 方法[43,49]将NeRF设置在一个时间变量上。相反,disentangled 解纠缠方法[23,30,31,34,39]通过在给定时间映射到该空间的点坐标来建模规范空间中的场景。这种解耦的建模方法可以有效地表示具有非戏剧性动作变化的场景。然而,无论如何分类,对动态场景采用隐式表示往往被证明是低效和无效的(缓慢的收敛速度,以及明显的过拟合敏感性)。从NeRF加速研究中获得灵感,许多关于动态场景建模的研究已经整合了离散的结构,如体素网格[11,38],或plane[6,36]。这种集成提高了训练速度和建模精度。然而,挑战仍然存在。 利用离散结构的技术,面临实时渲染和产生足够细节的高质量输出的双重约束问题 多个方面支撑着这些挑战:首先,射线投射,作为一种渲染模式,经常变得低效,特别是当缩放到更高的分辨率时。其次,基于网格的方法依赖于一个低秩的假设。与静态场景相比,动态场景具有更高的秩,这阻碍了这种方法可达到的质量上限

  本文扩展了静态三维-gs,提出了一个可变形的三维高斯框架来建模动态场景。为了提高模型的适用性,我们特别关注了单目动态场景的建模。不同于逐帧重建场景,我们 以时间为3D高斯的条件,在正则空间中与可学习的三维高斯联合训练纯隐式变形场。这两个分量的梯度是由一个定制的微分高斯栅格化管道得到的。此外, 为了解决在重构过程中由于不准确的姿态而引起的时间序列抖动,我们采用了退火平滑训练(AST)机制。这种策略不仅提高了时间插值任务中帧之间的平滑性,而且还允许渲染更多的细节

  

二、相关工作

2.1 动态场景的神经渲染

  最近,NeRF [28]通过使用MLPs促进了逼真的新视图的合成。随后的研究将NeRF的应用扩展到各种应用,包括从图像集合[20,45]中进行网格重建,反渲染[5,25,54],相机参数[21,47,48]的优化和 few-shot学习等任务

  构建动态场景的辐射场是NeRF发展的一个关键分支,对重要的应用意义。渲染这些动态场景的一个主要挑战是对时间信息的编码和有效利用,特别是单目动态场景的重建,一个任务本质上涉及从单一视角的稀疏重建。 一类动态NeRF方法通过将时间 t 作为辐射场的额外输入来模拟场景形变 。然而,这种策略将由时间变化引起的位置变化与辐射场结合起来,缺乏关于时间对现场影响的几何先验信息。因此,需要大量的正则化来确保渲染结果的时间一致性。 另一类方法[30,31,34]引入了一个变形场来解耦时间和辐射场,通过变形场将点坐标映射到与时间t对应的规范空间 。这种解耦的方法有利于学习明显的刚性运动,并且足够多样化,以适应发生拓扑变化的场景。 其他方法从各个方面提高动态神经渲染的质量,包括分割场景[39,42]中的静态和动态对象,结合深度信息[1]引入几何先验,引入2D CNN编码场景先验[22,33],利用多视点视频[19]中的冗余信息设置关键帧压缩存储 ,从而加快渲染速度

  然而,现有的基于MLP(多层感知器)的动态场景建模的渲染质量仍然不理想。在这项工作中,我们将专注于单眼动态场景的重建。我们继续解耦变形场和辐射场。为了提高动态场景中中间状态的可编辑性和渲染质量,我们采用了这种建模方法,以适应基于可微点的渲染框架。

2.2 神经渲染加速

  实时渲染长期以来一直是计算机图形学领域的一个关键目标,这也是神经渲染领域的一个目标。许多致力于NeRF加速的研究已经细致地导航了空间和时间效率之间的权衡。

  预计算的方法[12,35]利用空间加速度结构,如球谐系数[52]和特征向量[13],缓存或从隐式神经表示中提取,而不是直接使用神经表示本身。这一类中一个突出的技术[Mobilenerf]将NeRF场景转换为粗的mesh和特征纹理的合并,从而提高渲染速度。然而,这种预先计算的方法可能需要对单个场景的大量存储容量。虽然它在推理速度方面具有优势,但它需要延长的训练时间,并表现出相当大的开销。

  混合方法[4,7,24,27,41,46]在显式的grid 中包含了一个神经组件,具有双重好处,即加速训练和推理阶段,同时产生与高级框架[2,3]相同的结果。这主要归因于网格的强大的表示能力。这种基于grid或plane的策略已扩展到,动态场景建模和时间条件压缩的四维动态场景建模中的时间条件四维特征的加速或表示

  近年来,一些研究[16,53]已经将连续辐射场从隐式表示发展为可微的基于点的辐射场,显著提高了渲染速度。3D-GS [15]进一步创新了基于点的渲染,引入了一个定制的基于古巴的可微高斯栅格化管道。这种方法不仅在新视图合成和场景建模等任务中取得了优越的结果,而且促进了每分钟量级的快速训练时间,并支持超过100 FPS的实时渲染。然而,该方法采用了一个定制的微分高斯栅格化管道,这使其直接扩展到动态场景变得复杂。受此启发,我们的工作将利用基于点的渲染框架,3D-GS,来加快动态场景建模的训练和渲染速度


三、方法

  方法的概述如图2。 输入是一组单目动态场景的图像,以及SfM [37]校准的时间标签和相应的相机 pose,也产生稀疏点云 。从这些点出发,我们 创建了一组三维高斯 G(x,r,s,σ),由中心位置x、不透明度σ和由四元数r 和 缩放s得到的三维协方差矩阵Σ。每个三维高斯的视图相关外观通过球谐波(SH)表示。为了模拟随时间变化的动态三维高斯分布,我们解耦了三维高斯分布和变形场。 变形场以三维高斯分布的位置和当前时间t作为输入,输出δx、δr和δs。随后,将变形的三维高斯 G (x+δx, r+δr, s+δs, σ) 放入高效微分高斯栅格化管道中,这是一个基于tile瓦片的光栅化器,允许各向异性splats的α混合。

在这里插入图片描述

  通过跟踪累积的α值,并对高斯密度进行自适应控制,共同优化了三维高斯分布和变形网络。实验结果表明,经过30k的训练迭代,三维高斯分布的形状稳定,正则空间(canonical space)也稳定,间接证明了我们设计的有效性。

3.1 正则空间三维GS的可微渲染

   为了在规范空间中优化三维高斯图像的参数,必须对这些三维高斯图像的二维图像进行可微渲染 。在本工作中,我们采用了原始GS提出的微分高斯栅格化管道。按照论文[Ewa volume splatting],三维高斯分布可以被投影到二维,并使用以下二维协方差矩阵Σ‘对每个像素进行渲染:

在这里插入图片描述

  其中,J为投影变换的仿射近似的雅可比矩阵;V表示视图矩阵,从世界坐标过渡到摄像机坐标;Σ表示三维协方差矩阵

  为了使三维高斯分布的学习更容易,Σ被分为两个可学习的分量:四元数r表示旋转,三维向量s表示缩放。然后将这些分量转换为相应的旋转和缩放矩阵R和s,得到的Σ可以表示为:

在这里插入图片描述

  图像平面上的像素的颜色,用p表示,用基于点的体渲染技术按顺序渲染:

在这里插入图片描述
其中,Ti是由 在这里插入图片描述定义的透射率,ci 表示沿射线的高斯分布的颜色;µi 表示投影到二维图像平面上的三维高斯分布的uv坐标。

  在优化过程中,自适应密度控制成为一个关键的组成部分,使三维高斯分布的渲染能够达到理想的结果。该控制具有双重目的:首先,它要求基于σ对透明高斯分布进行剪枝。其次,它对高斯分布的稠密化 这填补了几何复杂的区域,同时细分了高斯分布较大并表现出显著重叠的区域。值得注意的是,这些区域倾向于显示出明显的位置梯度。按照原始GS,使用tpos = 0.0002给出的阈值来识别需要进行调整的三维高斯分布。对于不足以捕捉几何细节的小高斯分布,我们克隆高斯分布,并在位置梯度的方向上移动一定的距离。相反,对于那些明显大且重叠的,我们将它们分割,并除以超参数ξ = 1.6

  很明显,三维高斯分布只适用于表示静态场景对每个三维高斯分布应用一个时间条件的可学习参数,不仅与可微高斯栅格化管道的原始意图相矛盾,而且会导致 运动的时空连续性的损失 。为了使三维高斯能够表示动态场景,同时保留其个别可学习组件的实际物理意义,我们决定在规范空间中学习三维高斯,并使用一个额外的变形场来学习三维高斯的位置和形状变化。

3.2 可变形的3D高斯

  使用三维高斯模型建模动态场景的一个直观解决方案是在每个时间依赖的视图集合中分别训练3D-GS集,然后在这些集之间执行插值作为后处理步骤。虽然这种方法对于离散时间的MVS捕获是可行的,但无法在一个时间序列内进行连续的单眼捕获 (it falls short for continuous monocular captures)

  我们通过利用一个变形网络和三维高斯分布来解耦运动和几何结构,将学习过程转换为一个正则空间,以获得与时间无关的三维高斯分布。这种解耦方法引入了场景的几何先验,将三维高斯分布位置的变化,与时间和坐标联系起来。变形网络的核心是一个MLP。在我们的研究中,我们没有使用应用于静态NeRF的grid/plane来加速渲染和提高质量。这是因为这种方法是在低秩假设下运行的,而动态场景具有更高的秩。基于显式点的渲染进一步提高了场景的秩

  给定时间 t 和三维高斯的中心位置 x 作为输入,MLP产生偏移量,然后将canonical 3D GS 转换到de formed space:
在这里插入图片描述
在这里插入图片描述

其中,sg(·) 表示停止梯度操作,γ表示位置编码。在合成场景中,x采用L = 10,t的L=6;真实场景中,x和t都为L = 10。变形网络的深度D = 8和隐藏层的维数W = 256。实验表明,对变形网络的输入端应用位置编码可以增强渲染结果的细节。

3.3 退火平滑训练

  真实数据集,在不精确姿态下的训练会导致训练数据的过拟合,动态场景中非常明显。正如HyperNeRF [31]中提到的,真实数据集的不精确pose 会导致每帧的空间抖动;渲染时,测试与Groudtruth明显偏差。以前使用隐式表示的方法得益于MLP固有的平滑性,这使得这种微小的偏移量对最终渲染结果的影响相对不明显。然而,显式的基于点的渲染倾向于放大这种效果 对于单目动态场景,在固定时间内的新视图渲染不受影响。然而,对于涉及插值时间的任务,这种不同时间的不一致场景会导致不规则的渲染抖动。

  为解决问题,提出退火平滑训练(AST)机制,专门为现实世界的单目动态场景设计:

在这里插入图片描述
X(i)表示第i个训练步的线性衰减高斯噪声;N(0,1)是标准高斯,β是经验比例因子(0.1),∆t代表平均时间间隔,τ是退火平滑训练的iteration阈值(经验设为20k)。

  与[D-nerf、Tensor4d]方法引入的平滑损失相比,我们的方法不会产生额外的计算开销。它可以在训练早期增强模型的时间泛化,防止后期过度平滑,从而保留动态场景中对象的细节。同时,它减少了在时间插值任务期间在真实数据集中观察到的抖动。

  


四、实验

  在基准测试上评估,基准包括来自D-NeRF [34]的合成数据集和来自HyperNeRF [31]和NeRF-DS [50]的真实数据集。 训练和测试部分的划分,以及图像分辨率,与原论文完全一致。

4.1 实施细节

   使用PyTorch [32]实现框架,并通过合并深度可视化来修改可微高斯栅格化。训练共40k次迭代,前3k次迭代只训练三维高斯分布来获得相对稳定的位置和形状。随后,我们联合训练三维高斯分布和变形场。对于优化,使用一个Adam优化器[17],但每个组件的学习率不同:三维高斯的学习率与官方实现完全相同,而变形网络的学习率经历指数衰减,从8e-4到1.6e-6。Adam的β值范围设置为(0.9,0.999)。合成数据集的实验都是在黑色背景下进行的,全分辨率为800x800。所有的实验都是在NVIDIA RTX 3090上进行的。

4.2 合成数据集的比较

  D-NeRF 的单目合成数据集,定量比较见表1。图3中提供了定性结果,显示了高保真的动态场景建模能力(确保了增强的一致性,并在新视图渲染中捕获了复杂的渲染细节)
在这里插入图片描述

在这里插入图片描述

4.3 真实数据集比较

  NeRF-DS [50]和HyperNeRF [31]的单目真实数据基线进行了比较。 注意,一些HyperNeRF数据集的相机姿态是非常不准确的。考虑到像PSNR这样的旨在评估图像渲染质量的指标,倾向于惩罚轻微的偏差而不是模糊,我们没有在定量分析中纳入HyperNeRF。详细信息见表2和图5。这些结果证明了我们的方法在应用于真实世界的场景时的鲁棒性,即使相关的pose并不完全准确
在这里插入图片描述
在这里插入图片描述

渲染效率。渲染速度与三维高斯的数量相关。总的来说,当三维高斯数低于250k时,我们的方法可以在NVIDIA RTX 3090上实现超过30 FPS的实时渲染

深度可视化。图6中合成数据集场景的深度可视化,以证明我们的变形网络很好地适合产生 temporal transformation,而不是依赖于基于颜色的硬编码。精确的深度强调了我们的几何重建的准确性,证明了非常有利于新视图合成任务。

4.4 消融实验

  退火平滑训练如图4和表2,这种机制促进了对复杂区域的收敛,有效地减轻了真实数据集中的过拟合趋势。此外,从我们的观察中可以明确地清楚地看出,这种策略显著地支持了变形场的时间平滑性。
在这里插入图片描述

*总结与局限性

  局限性:通过实验评估,观察到三维高斯分布的收敛性受到视角多样性的深刻影响。因此,具有稀疏视点和有限视点覆盖范围特征的数据集可能会导致我们的方法遇到过拟合的挑战 。此外, 我们的方法的有效性取决于姿态估计的准确性 。当我们的方法在Nerfes/HyperNeRF数据集上没有达到最优PSNR值时,这种依赖性很明显,这归因于COLMAP姿态估计的偏差。此外, 我们的方法的时间复杂度与三维高斯分布的量成正比。在具有大量3D高斯函数数组的场景中,训练时间和记忆消耗都有潜在的升级。最后, 我们的评估主要围绕着具有中等运动动力学的场景。这种方法在处理复杂的人体动作,如微妙的面部表情,仍然是一个悬而未决的问题

提示:这里对文章进行总结:

  本文介绍了一种新的可变形的三维GS方法,专门为单目动态场景建模而设计,它在质量和速度上都超过了现有的方法。通过在正则空间中学习三维高斯分布,我们增强了动态捕获单目场景的三维-gs可微渲染管道的通用性。与隐式表示相比,基于点的方法更加重要,它更易于编辑,更适合于后期生产任务。此外,我们的方法结合了一个退火平滑训练策略,旨在减少与时间编码相关的过拟合,同时保持复杂的场景细节,而不增加任何额外的训练开销。


* 一些demo

1.D-NeRF Datasets:

在这里插入图片描述
在这里插入图片描述

2.HyperNeRF Datasets:

在这里插入图片描述

3.真实场景:

在这里插入图片描述

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

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

相关文章

【Web应用技术基础】HTML(3)——表格

目录 题目1:原始表格 题目2:width、height 题目3: cellpadding 题目4:cellspacing、cellpadding 题目5:caption 题目6:rowspan 题目7:colspan 题目8:汇总题 题目1&#xff1…

从零到一构建短链接系统(八)

1.git上传远程仓库(现在才想起来) git init git add . git commit -m "first commit" git remote add origin OLiyscxm/shortlink git push -u origin "master" 2.开发全局异常拦截器之后就可以简化UserController 拦截器可以…

彻底讲透:如何写sql能够有效的使用到复合索引?

在MySQL中,有效的使用复合索引需要确保查询条件按照索引定义的列顺序进行。以下是一个具体的例子: 假设我们有一个sales表,它有四个字段:customer_id、product_category、sale_date和amount。为了优化包含这些字段查询的性能&…

Maxwell监听mysql的binlog日志变化写入kafka消费者

一. 环境: maxwell:v1.29.2 (从1.30开始maxwell停止了对java8的使用,改为为11) maxwell1.29.2这个版本对mysql8.0以后的缺少utf8mb3字符的解码问题,需要对原码中加上一个部分内容 :具体也给大家做了总结 : 关于v1.…

【Godot4.2】随机数入门指南

概述 计算机程序是精确的艺术,现实生活却充满了随机性。如果你的游戏缺乏了随机性,也就缺乏了最基础的乐趣。 我们在很多场景下需要使用随机数,来为已经非常刻意和规整的设计带来一些变化和趣味。 比如打怪、打完Boss或开宝箱后随机掉落不…

在MongoDB建模1对N关系的基本方法

“我在 SQL 和规范化数据库方面拥有丰富的经验,但我只是 MongoDB 的初学者。如何建立一对 N 关系模型?” 这是我从参加 MongoDB 分享日活动的用户那里得到的最常见问题之一。 我对这个问题没有简短的答案,因为方法不只有一种,还有…

软件系统开发设计的基本流程

一、前言 经过年的工程实践软件系统开发的流程演变有很多种,但是最基本的还是瀑布模型。但是由于近几年演变了很多种模型,现在很多公司的研发流程并不遵循瀑布模型。主要原因是无法满足市场竞争的需求。比如在哪某个节日需要敏捷上线活动等这样的场景。没…

ASP .Net Core 配置集合 IConfiguration 的使用

🐳简介 IConfiguration 是 ASP.NET Core 中的一个接口,用于表示配置集合。以下是关于 IConfiguration 的详细介绍: 作用:IConfiguration 允许开发人员从各种来源(如文件、环境变量、命令行参数等)读取应用…

ASP.NET中的GridView和DataList控件:功能、应用与比较

目录 一、引言 二、GridView控件 三、DataList控件 四、GridView与DataList的比较 五、结论 一、引言 ASP.NET是微软公司开发的一款强大的Web应用程序开发框架,它提供了丰富的控件库,使得开发人员能够更快速、更高效地构建功能强大的Web应用程序。…

【工具类】vscode 常用功能

1. vscode 常用功能 1. vscode 常用功能 1.1. 关闭右侧预览功能1.2. 快捷键(右键或者菜单栏多看看就记住了)1.3. 常用插件 1.1. 关闭右侧预览功能 点击文件-首选项-设置,搜索 “editor.minimap.enabled” ,默认值为打钩,我们只需要把钩去掉即可; 1.2. 快捷键(右…

上传日志到aws日志服务

安装包 <dependency><groupId>software.amazon.awssdk</groupId><artifactId>cloudwatchlogs</artifactId><version>2.16.60</version></dependency>使用 HashMap<String, Object> map new HashMap<>();map.put(…

inner join,left join,right join,outer join的区别

INNER JOIN&#xff1a;内连接是最常见的连接操作&#xff0c;它返回两个表中满足连接条件的交集。即只返回条件匹配的记录。 LEFT JOIN&#xff1a;左连接返回左表记录和右表记录匹配后组成的记录。以及左表中未与右表匹配的记录&#xff0c;右边用null显示。 RIGHT JOIN&…

如何正确关闭MySQL

一、介绍 MySQL是一个广泛使用的开源关系型数据库管理系统&#xff0c;由于其高性能、稳定性和可靠性&#xff0c;被广泛应用于互联网应用等领域。然而&#xff0c;当我们需要停止或关闭MySQL实例时&#xff0c;很多人并不清楚如何做到正确、安全地关闭MySQL&#xff0c;这将会…

好就业三种专业#信息安全#云计算#网络工程

一、信息安全专业 根据2021年网络安全宣传周白皮书的观察结果&#xff0c;网络安全产业对于人才的需求正以高速增长的趋势呈现&#xff0c;当前网络安全行业存在着巨大的人才缺口&#xff0c;平均供求比例约为1:2。这一现象导致了资深人才的储备不足&#xff0c;并且新人才的培…

AWS Sagemaker详解

Sagemaker各个组件的介绍 Ground Truth Sagemaker Ground Truth Labeling platform。图片语义分析 Amazon SageMaker Ground Truth semantic segmentation labeling taskGround Truth Active Learning will require human labelling only when needed, works well with small…

如何画好架构图

什么是架构图&#xff1f; 架构图 架构的表达 架构在不同抽象角度和不同抽象层次的表达 架构可以从很多个角度去看&#xff0c;比如&#xff1a;业务架构、应用架构、技术架构、代码架构、数据架构等。 从架构级别来分类&#xff0c;使用金字塔的说明&#xff0c;上层级别…

图像分割论文阅读:Adaptive Context Selection for Polyp Segmentation

这篇论文的主要内容是关于一种用于息肉分割的自适应上下文选择网络&#xff08;Adaptive Context Selection Network&#xff0c;简称ACSNet&#xff09; 1&#xff0c;模型的整体结构 模型的整体结构基于编码器-解码器框架&#xff0c;并且包含了三个关键模块&#xff1a;局部…

贵州省二级分类土地利用数据(矢量)

贵州省&#xff0c;地处中国西南腹地&#xff0c;地貌属于中国西南部高原山地&#xff0c;境内地势西高东低&#xff0c;自中部向北、东、南三面倾斜&#xff0c;平均海拔在1100米左右。贵州高原山地居多&#xff0c;素有“八山一水一分田”之说。全省地貌可概括分为&#xff1…

列表(list)篇(二)

文章目录 2.10 insert()函数2.11 list()函数2.12 pop() 函数2.13 remove()函数2.14 reverse()函数2.15 sort()函数2.16 sorted()函数2.17 sum()函数 2.10 insert()函数 在Python中&#xff0c;list.insert()是一个列表方法&#xff0c;用于在指定索引位置插入一个元素。这个方…

【鸿蒙HarmonyOS开发笔记】通知模块之为通知添加行为意图

概述 WantAgent提供了封装行为意图的能力&#xff0c;这里所说的行为意图主要是指拉起指定的应用组件及发布公共事件等能力。HarmonyOS支持以通知的形式&#xff0c;将WantAgent从发布方传递至接收方&#xff0c;从而在接收方触发WantAgent中指定的意图。例如&#xff0c;在通…