扩散模型和重新照明的未来

重新照明(relighting)是在给定输入场景的情况下,在指定的目标照明条件下渲染场景的任务。这是计算机视觉和图形学中的关键任务。然而,这是一个不适定问题,因为场景中物体的外观是由光源、几何形状和表面材料属性等因素之间的复杂相互作用产生的。这些相互作用会产生歧义。例如,给定一个场景的照片,物体上的黑点是由于照明投射的阴影造成的,还是材料本身的颜色很暗?区分这些因素是有效重新照明的关键。

在这篇博文中,我们讨论了不同的论文如何通过扩散模型解决重新照明问题。重新照明包含各种子问题,包括简单的照明调整、图像协调、阴影去除和内在分解。这些领域对于优化场景编辑至关重要,例如在合成图像中平衡颜色和阴影或分离材料和照明属性。我们将首先介绍重新照明的问题,并简要讨论扩散模型和控制网络。然后,我们将讨论解决不同场景中重新照明问题的不同方法,这些场景包括从单个物体到肖像再到大型场景。

NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - AI模型在线查看 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割 - 3D道路快速建模 

1、解决重新照明问题

目标是将场景分解为其基本组件(例如几何图形、材质和光线相互作用),并以参数方式对其进行建模。一旦解决,我们就可以根据自己的喜好进行更改。场景中某个点的外观可以通过渲染方程描述如下:

渲染方程。来源

大多数方法旨在求解渲染方程的每个单个组件。一旦解决,我们就可以执行重新照明和材质编辑。由于照明项 L 在两边,因此无法通过分析评估该方程,只能通过蒙特卡洛方法或基于近似的方法求解。

另一种方法是数据驱动学习,它不是明确地建模场景属性,而是直接从数据中学习。例如,网络可以从数据中学习表面的材质属性,而不是拟合参数函数。事实证明,数据驱动方法比参数方法更强大。然而,它们需要大量高质量的数据,而这些数据很难收集,尤其是对于照明和材料估算任务而言。

用于照明和材料估算的数据集很少见,因为它们需要昂贵、复杂的设置(例如灯光舞台)来捕捉详细的照明交互。只有少数组织可以使用这些设置,这限制了用于训练和评估的数据的可用性。目前还没有公开的全身地面真实灯光舞台数据集,这进一步凸显了这一挑战。

2、扩散模型

随着在线上大量图像和视频数据上进行预训练的出现,计算机视觉经历了重大转变。这导致了基础模型的发展,这些模型是强大的通用模型,可以针对各种特定任务进行微调。扩散模型通过学习从独立样本中建模底层数据分布来工作,逐渐逆转噪声添加过程以生成真实数据。通过利用从学习分布中生成高质量样本的能力,扩散模型已成为解决各种生成任务的重要工具。

潜在扩散模型来源

其中一个最突出的例子是稳定扩散 (SD),它是在由 50 亿个图像文本对组成的大规模 LAION-5B 数据集上训练的。它编码了大量关于视觉概念的一般知识,使其适合针对特定任务进行微调。它在训练过程中学习了基本的关系和关联,例如椅子有 4 条腿或识别汽车的结构。这种内在理解使稳定扩散能够生成高度连贯和逼真的图像,并用于微调以预测其他模态。基于这个想法,问题出现了,我们是否可以利用预训练的 SD 来解决场景重新照明的问题。

那么我们如何微调 LDM?一种简单的方法是使用 LDM 进行迁移学习。这将冻结早期层(捕获一般特征)并针对特定任务微调模型。虽然这种方法已被一些论文如 Alchemist(用于材料转移)使用,但它需要大量配对数据才能使模型很好地概括。这种方法的另一个缺点是存在灾难性遗忘的风险,即模型会丢失在预训练期间获得的知识。这会限制其在各种条件下进行推广的能力。

ControlNet 

另一种微调此类大型模型的方法是引入ControlNet。在这里,复制网络并冻结原始网络的权重。在训练期间,仅更新重复的网络权重,并将调节信号作为输入传递给重复的网络。原始网络继续利用其预训练的知识。

虽然这会增加内存占用,但优点是我们不会失去从大规模数据集训练中获得的泛化能力。它确保它保留了在广泛提示中生成高质量输出的能力,同时学习当前任务所需的任务特定关系。

此外,它还帮助模型学习控制输入和期望输出之间的稳健且有意义的联系。通过将控制网络与核心模型分离,可以避免过度拟合或灾难性遗忘的风险。它还需要更少的配对数据来训练。

虽然还有其他用于微调基础模型的技术——例如 LoRA(低秩自适应)等——但我们将重点介绍讨论的两种方法:传统迁移学习和 ControlNet。这些方法对于理解各种论文如何使用扩散模型解决基于图像的重新照明特别重要。

3、DiLightNet

DiLightNet:基于扩散的图像生成的细粒度照明控制


这项工作提出了对输入图像重新照明的细粒度控制。输入图像可以生成或作为输入提供。此外,它还可以根据文本提示更改对象的材质。目标是对照明效果施加细粒度控制。

3.1 方法

给定输入图像,应用以下预处理步骤:

  • 使用现成的 SOTA 模型估计背景和深度图。
  • 通过对深度图进行三角测量来提取网格
  • 生成 4 种不同的辐射提示图像。通过为提取的网格分配不同的材质并在目标照明下渲染它们来创建辐射提示图像。辐射提示图像作为编码照明效果(如镜面反射、阴影和全局照明)的基础。

ControlNet

一旦生成这些图像,它们就会训练 ControlNet 模块。输入图像和掩码通过编码器解码器网络,输出 12 通道特征图。然后将其与按通道连接在一起的辐射提示图像相乘。因此,在训练期间,使用这个自定义的 12 通道图像作为调节信号对嘈杂的目标图像进行去噪。

此外,还提供外观种子,以便在不同的照明下获得一致的外观。如果没有它,网络会对光与物质的相互作用做出不同的解释。此外,可以通过文本提供更多提示来改变外观,例如通过添加“塑料/闪亮金属”来改变生成图像的材质。

3.2 实现

数据集是使用来自 Objaverse 的 25K 合成对象策划的。每个对象都从 4 个独特的视图渲染,并使用 12 种不同的照明条件点亮,包括点源照明、多点源、环境地图和区域光。为了进行训练,辐射提示在搅拌机中渲染。

ControlNet 模块使用稳定扩散 v2.1 作为基础预训练模型进行改进。在 8x NVIDIA V100 GPU 上训练大约需要 30 小时。训练数据在 Blender 中以 512x512 分辨率渲染。

3.3 结果

DiLightNet 结果

此图显示了临时图像作为参考,以及对象重新点亮的相应目标照明。

DiLightNet 结果

来此图显示了如何使用文本提示来更改对象的材质。

DiLightNet 结果

此图显示了 AI 生成的临时图像的更多结果,然后在不同的输入环境光条件下进行渲染。

DiLightNet 结果

此图显示了如果外观种子不固定,网络为解决光相互作用而提出的不同解决方案。

3.4 局限性

由于对合成物体进行训练,该方法对真实图像的效果不是很好,而对 AI 生成的临时图像的效果要好得多。此外,材料光交互可能不符合提示的意图。由于它依赖深度图来生成辐射线索,因此可能无法获得令人满意的结果。最后,生成旋转光视频可能不会产生一致的结果。

4、神经 Gaffer

神经 Gaffer:通过扩散重新照亮任何物体

这项工作提出了一种端到端 2D 重新照明扩散模型。该模型从具有基于物理的材料和 HDR 环境图的合成数据集中学习物理先验。它可以进一步用于重新照亮多个视图并用于创建场景的 3D 表示。

4.1 方法

给定一个图像和一个目标 HDR 环境地图,目标是学习一个可以合成图像的重新照明版本(此处为单个对象)的模型。这是通过采用预先训练的 Zero-1-to-3 模型实现的。Zero-1-to-3 是一种扩散模型,它以视图方向为条件来渲染输入图像的新视图。它们丢弃了其新的视图合成组件。为了结合照明条件,它们将输入图像和环境地图编码与去噪潜伏连接起来。

输入 HDR 环境地图 E 分为两个组件:E_l,一种色调映射的 LDR 表示,用于捕获低强度区域的照明细节,以及 E_h,一种对数归一化地图,用于保留整个光谱的信息。它们共同为网络提供了能量谱的平衡表示,确保准确的重新照明,而不会因极端亮度而使生成的输出显得褪色。

此外,输入图像的 CLIP 嵌入也作为输入传递。因此,模型的输入是输入图像、LDR 图像、归一化 HDR 图像和图像的 CLIP 嵌入,所有这些都调节去噪网络。然后,该网络被用作进一步 3D 对象重新照明的先验。

4.2 实现

该模型在包含 90K 个对象的自定义 Relit Objaverse 数据集上进行训练。对于每个对象,有 204 张在不同照明条件和视点下渲染的图像。总的来说,数据集包含 18.4 M 张分辨率为 512x512 的图像。

该模型从 Zero-1-to-3 的检查点进行微调,并且只对去噪网络进行微调。输入环境图被下采样到 256x256 分辨率。该模型在 8 个 A6000 GPU 上训练了 5 天。可以实现进一步的下游任务,例如基于文本的重新照明和对象插入。

4.3 结果

它们显示了与不同背景的比较以及与其他作品(如 DilightNet 和 IC-Light)的比较。

Neural Gaffer 结果

此图比较了他们的方法与另一种基于 ControlNet 的方法 IC-Light 的重新照明结果。他们的方法可以通过旋转环境地图产生一致的照明和颜色。

Neural Gaffer 结果

此图比较了他们的方法与另一种基于 ControlNet 的方法 DiLightnet 的重新照明结果。他们的方法可以产生镜面高光和准确的颜色。

4.4 局限性

一个主要的限制是它只能产生低图像分辨率(256x256)。此外,它仅适用于物体,并且在肖像重新照明方面表现不佳。

5、重新照明协调

重新照明协调:照明感知肖像背景替换

图像协调是将前景主体的颜色和照明特征与背景对齐以使其成为合理构图的过程。这项工作提出了一种基于扩散的方法来解决该任务。

5.1 方法

给定输入合成图像、alpha 蒙版和目标背景,目标是预测重新点亮的肖像图像。这是通过训练 ControlNet 来预测协调图像输出来实现的。

在第一阶段,我们训练一个背景控制网络模型,该模型以合成图像和目标背景为输入并输出重新点亮的肖像图像。在训练期间,去噪网络将噪声目标图像与合成图像连接起来并预测噪声。背景通过控制网络作为条件提供。由于背景图像本身是 LDR,因此它们无法提供足够的信号用于重新点亮。

在第二阶段,训练环境地图控制网络模型。HDR 环境地图为重新点亮提供了更多信号,这给出了更好的结果。然而在测试时,用户只提供 LDR 背景。因此,为了弥补这一差距,2 个控制网络模型相互对齐。

最后,使用环境地图 ControlNet 模型生成更多数据,然后对背景 ControlNet 模型进行微调以生成更逼真的结果。

5.2 实现

用于训练的数据集由使用 100 个 lightstage 策划的 400k 个图像对样本组成。在第三阶段,生成了另外 200k 个合成样本,用于微调以实现照片级真实感。

该模型是从 InstructPix2PIx 检查点微调的。该模型在 8 个 A100 GPU 上以 512x512 分辨率进行训练。

5.3 结果

Relightful Harmonization 结果

该图显示了该方法如何中和输入中通常难以去除的明显阴影。左边是输入,右边是重新点亮的图像。

Relightful Harmonization 结果

这些图显示了现实世界测试对象的结果。与其他方法相比,他们的方法能够去除阴影并使构图更合理。

5.4 局限性

虽然这种方法能够合理地重新照亮主体,但它在身份保存方面表现不佳,并且难以保持血凝块的颜色

他或头发。此外,它可能很难正确消除阴影。此外,它也无法估计对复杂光相互作用至关重要的反照率。

6、多照明合成

使用多照明合成的辐射场重新照明的扩散方法


这项工作提出了一种 2D 重新照明扩散模型,该模型进一步用于重新照明场景的辐射场。它首先训练 ControlNet 模型来预测新光方向下的场景。然后,该模型用于生成更多数据,最终用于拟合可重新照明的辐射场。我们将在本节中讨论 2D 重新照明模型。

6.1 方法

给定一组图像 X_i 和相应的深度图 D(通过现成的方法计算)和光方向 l_i,目标是预测光方向 l_j 下的场景。在训练期间,去噪网络的输入是随机照明下的 X_i、深度图 D 与嘈杂的目标图像 X_j 连接。光方向用 4 阶 SH 编码并通过 ControlNet 模型进行调节。

虽然这会产生不错的结果,但也存在一些重大问题。它无法保留颜色并导致对比度损失。此外,它会产生扭曲的边缘。为了解决这个问题,他们将预测与输入图像进行颜色匹配以补偿色差。这是通过将图像转换为 LAB 空间然后进行通道归一化来完成的。然后在真实值和去噪输出之间计算损失。为了保留边缘,解码器在图像修复任务上进行了预训练,这有助于保留边缘。然后使用该网络在新的光方向下创建相应的场景,进一步用于创建可重新照明的辐射场表示。

6.2 实现

2D 重新照明模块的推理图

该方法是在多照明数据集上开发的。它包括在 25 个照明方向下拍摄的 1000 个室内场景的真实场景。这些图像还包含一个漫反射和一个金属球,可用于获取世界坐标中的光方向。此外,在 Blender 中渲染了一些场景。该网络在分辨率为 1536x1024 的图像上进行训练,训练包括 1015 个室内场景中的 18 个非正面光方向。

ControlNet 模块使用 Stable Diffusion v2.1 模型作为主干进行训练。它在多个 A6000 GPU 上进行了 150K 次迭代训练。

6.3 结果

此处漫反射球显示测试时间光方向。可以看出,该方法可以呈现合理的重新照明结果

该图显示了随着光方向的变化,镜面高光和阴影如何移动,如水壶上的闪亮高光所示。

该图将结果与其他可重新照明的辐射场方法进行了比较。与其他方法相比,他们的方法显然更好地保留了颜色和对比度。

6.3 局限性

该方法不强制物理准确性,可能会产生不正确的阴影。此外,它还难以以完全准确的方式完全去除阴影。此外,它对于光照差异不大的分布场景也确实有效。

7、LightIt

LightIt:扩散模型的照明建模和控制

这项工作提出了一种单视图阴影估计方法来生成配对图像及其相应的直接光阴影。然后可以使用此阴影来指导场景的生成并重新照亮场景。他们将问题视为内在分解问题,其中场景可以分为反射和阴影。我们将在这里讨论重新照明组件。

7.1 方法

给定输入图像、其对应的表面法线、文本条件和目标直接阴影图像,它们会生成重新照明的风格化图像。这是通过训练 ControlNet 模块实现的。

在训练期间,将噪声目标图像与文本条件一起传递到去噪网络。将法线和目标直接阴影图像连接起来并通过残差控制编码器。然后使用特征图来调节网络。此外,它还通过残差控制解码器重建以规范训练

7.2 实现

数据集由户外 Laval 数据集组成,该数据集由户外真实世界 HDR 全景图组成。从这些图像中,裁剪了 250 张 512x512 图像并应用了各种相机效果。数据集由 51250 个 LDR 图像和文本提示样本以及估计的法线和阴影图组成。法线图是根据使用现成估计器估计的深度图估计的。

ControlNet 模块从稳定扩散 v1.5 进行了微调。网络训练了两个时期。其他训练细节不共享。

7.3 结果

结果图

该图显示,生成的图像具有与自定义风格化文本提示的目标着色一致的一致照明。这与其他讨论的论文不同,这些论文的唯一重点是照片写实主义。

该图显示了不同照明条件下的身份保存。

该图显示了在变化的照明条件下对不同风格和场景的结果。

该图将重新照明与另一种方法进行了比较。利用扩散先验有助于泛化和解决着色歧义。

7.4 局限性

由于此方法假设定向照明,因此它可以在任意方向上跟踪光线。它需要着色提示来生成不易获得的图像。此外,他们的方法不适用于肖像和室内场景。

8、要点

我们讨论了一份非详尽的论文清单,这些论文利用 2D 扩散模型进行重新照明。我们探索了不同的方法来调节扩散模型以进行重新照明,包括辐射提示、直接阴影图像、光方向和环境地图。这些方法中的大多数都在合成数据集上显示结果,并且不能很好地推广到分布外的数据集。每天都有更多论文出现,基础模型也在改进。最近发布了 IC-Light2,这是一个基于 Flux 模型的 ControlNet 模型。由于保持身份很棘手,因此它采取哪个方向将会很有趣。


原文链接:扩散模型和重新照明的未来 - BimAnt

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

想学习海量数据的管理方法?听这节课就够了

在大模型时代,由于模型规模的升级,需要处理的数据量也大幅增加,因此对数据管理提出了更高的要求。 首先,分布式存储系统对于企业来说至关重要,将数据分散存储在多个节点上,可以提高数据的访问速度和处理能…

Works With线上开发者大会将提供物联网行业深入的专业知识和技能

Silicon Labs2024年Works With线上开发者大会定于11月20日至21日举行,将汇集全球各地的物联网开发人员、设备制造商、无线技术专家、工程师和商业领袖,观众可免费注册参加。同时,为了方便中文观众,所有在线视频均配有中文字幕。 芯…

2024 年(第 7 届)“泰迪杯”数据分析技能赛B 题 特殊医学用途配方食品数据分析 完整代码 结果 可视化分享

一、背景特殊医学用途配方食品简称特医食品,是指为满足进食受限、消化吸收障碍、代谢素乱或者特定疾病状态人群对营养素或者膳食的特殊需要,专门加工配置而成的配方食品,包括0月龄至12月龄的特殊医学用途婴儿配方食品和适用于1岁以上的特殊医…

【日记】总感觉搞这些才回到了自己的老本行……(1179 字)

正文 前两天忘记写了几件事。 一是,周五晚上打开自己的博客,准备翻自己的笔记,然后…… 我发现,博客的子列表打不开了。我知道,完蛋了。Mdbook 它又双叒叕更新了。这次不知道又把 index.hbs 哪里给改了。 反正&#xf…

2024年11月11日历史上的今天大事件早读

700年11月11日宰相狄仁杰逝世 1821年11月11日《罪与罚》的作者陀思妥耶夫斯基诞辰 1844年11月11日清政府在五口通商口岸解除天主教禁 1851年11月11日御史王茂荫提出请变科举 1861年11月11日清皇太子载淳即皇帝位 1891年11月11日热河金丹教杨悦春发动反洋教起义 1918年11月…

【ESP】一小时速通入门笔记

【ESP】一小时速通入门笔记 前言: 之前上学时就用过一次esp32, 当时初次使用搭建编译环境费了老大功夫.在我第一篇esp32笔记中也有说明.以至于我好像忘记记录完整的入门笔记了.最近因为工作需要又开始接触esp32才发现,现在已经方便得多了.顺利的话一小时速通. 前排提醒: 本笔记…

海量小文件挑战下的CephFS:优化策略与实践探索

文章目录 1.背景2.基本概念2.1 CephFS IO流程2.2 Ceph-FUSE 3. 问题3.1 问题源起3.2 理论分析3.3 原因排查3.3.1 Ceph-FUSE日志分析3.3.2 提出猜想3.3.3 代码验证3.3.3.1 MDS端3.3.3.2 Ceph-FUSE端 3.4 小结 1.背景 随着大数据、人工智能技术的蓬勃发展,人类对于算…

团队发展与个人价值的共生

一、团队属性 团队的本质属性,在很大程度上表现为一种选择性和甄别性,即排外与排异。这意味着团队需要筛选出具有相同目标、价值观以及能力互补的成员,以达成高效的协作与共同进步。在团队运作的过程中,首要任务是明确并深入理解…

git命令及原理

git: 目录则被称之为“树” 文件被称作 Blob 对象. git help <command>: 获取 git 命令的帮助信息 git init: 创建一个新的 git 仓库&#xff0c;其数据会存放在一个名为 .git 的目录下 git status: 显示当前的仓库状态 git add <filename>: 添加文件到暂存区 git …

大模型的记忆困境:平衡持续学习与灾难性遗忘

1. 引言 持续学习是智能的关键方面。它指的是从非平稳数据流中增量学习的能力&#xff0c;对于在非平稳世界中运作的自然或人工智能体来说是一项重要技能。人类是优秀的持续学习者&#xff0c;能够在不损害先前学习技能的情况下增量学习新技能&#xff0c;并能够将新信息与先前…

实时高效,全面测评快递100API的物流查询功能

一、引言 你是否曾经在网购后焦急地等待包裹&#xff0c;频繁地手动刷新订单页面以获取最新的物流信息&#xff1f;或者作为一名开发者&#xff0c;正在为如何在自己的应用程序中高效地实现物流查询功能而发愁&#xff1f;其实&#xff0c;有一个非常好用的解决方案——快递10…

HR人才评价系统软件选择攻略

企业对人力资源管理价值的日益认同&#xff0c;人才评价系统软件市场迎来了蓬勃发展的春天。在数字化转型的浪潮中&#xff0c;企业对人才的多元化需求愈发明显&#xff0c;传统的评价手段已难以跟上时代的步伐。因此&#xff0c;人才评价系统软件应运而生&#xff0c;迅速成为…

蓝桥杯真题——good-sequence(C语言)

问题描述 一个序列 [b1,b2,...,bm] 若对于 2≤i≤m 满足 bi≤b1 &#xff0c;则称为好序列。 现在给定 [a1,a2,...,an] &#xff0c;求对于该序列的每一个后缀 [ak,ak1,...,an](1≤k≤n)最少能划分成多少个好序列。 输入格式 第一行包含一个整数 n &#xff0c;表示数组 a …

智慧煤矿可视化管理平台

通过图扑可视化平台集成实时数据采集&#xff0c;提供对煤矿生产、安全及环境监测等多方面的二三维动态展示。通过优化资源调度和风险预警&#xff0c;提高了煤矿运营效率和安全性&#xff0c;支持科学决策与管理。

华为ISC供应链服务运营:流程、组织、治理与绩效管理的综合框架

华为整合物流服务&#xff08;Integrated Logistics Services&#xff0c;简称ILS&#xff09;是华为推出的一项旨在提升供应链效能和敏捷性的创新举措。以下是关于华为ILS运营模式设计的详细分析&#xff1a; 一、运营模式设计的核心目标 华为ILS运营模式设计的核心目标是实…

优化时钟网络之时钟偏移

Note&#xff1a;文章内容以Xilinx 7系列FPGA进行讲解 1、基本介绍 所谓时钟偏移&#xff08;Clock Skew&#xff09;&#xff0c;是指在同步时序电路中&#xff0c;同一个时钟信号到达各个寄存器时钟端口的时间不一致的现象。如下图所示&#xff1a; 时钟从源端到达寄存器FF1的…

华为ENSP路由器出现41解决方法之一

我解决这个问题的方法&#xff1a; 这个方法很简单 一&#xff0c;首先我们打开电脑上的Oracle VM VirtualBox&#xff0c;找到AR_Base(ARse_Link) ,右键删除 二&#xff0c;打开ENSP模拟器&#xff0c;选择一个AR系列路由器并启动&#xff0c;在时候ENSP会提示&#xff1a;未…

17RAL_Visual-Inertial Monocular SLAM with Map Reuse

文章目录 累啊Abstract1.Introduction2.视觉-惯性基本原理 (VISUAL-INERTIAL PRELIMINARIES)3. 视觉惯性 ORB-SLAM (VISUAL-INERTIAL ORB-SLAM)A.TrackingB. Local MappingC. Loop Closing 4.IMU INITIALIZATIONA. 陀螺仪偏置估计B. 尺度和重力的近似&#xff08;无加速度计偏置…

鸿蒙应用开发实践示例:创建首页

鸿蒙应用开发实践示例&#xff1a;创建首页 效果示例图示例代码 效果示例图 示例代码 import { window } from kit.ArkUI;Entry Component struct Index {//Provide和Consume&#xff0c;应用于与后代组件的双向数据同步&#xff0c;应用于状态数据在多个层级之间传递的场景Pr…

StringUtils 工具类

在日常的编程工作中&#xff0c;字符串&#xff08;String&#xff09;处理是一个非常常见且重要的任务。无论是字符串的判空、截取、转换大小写、分隔、比较&#xff0c;还是去除多余空格、拼接、使用正则表达式等操作&#xff0c;都需要我们编写大量的代码来处理各种边界情况…