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

即插即用,无缝集成各种模型,港科大蚂蚁等发布Edicho:图像编辑一致性最新成果!

文章链接:https://arxiv.org/pdf/2412.21079
项目链接:https://ezioby.github.io/edicho/

亮点直击

  • 显式对应性引导一致性编辑:通过将显式图像对应性融入扩散模型的去噪过程,改进自注意力机制与分类器自由引导(CFG),在保持高质量的同时显著提升编辑一致性。

  • 融合无条件嵌入特征:受 NULL-text Inversion 技术启发,提出融合无条件嵌入特征的方法,进一步增强一致性效果,实现更精细的编辑控制。

  • 广泛适用性与优越性能:方法具有训练无关和即插即用特性,适配多种扩散模型与任务场景。通过实验验证,展现出在定量指标与定性评估上的卓越性能。

总结速览

解决的问题
跨图像一致性编辑是计算机视觉和图像处理领域中的重要挑战,尤其是面对多样的姿态、光照条件和拍摄环境时。这种一致性编辑广泛应用于产品展示、个性化内容创作以及主题活动等场景。然而,现有方法在处理多图像一致性时常表现出不稳定性或失真,难以满足实际需求。

提出的方案
本文提出了一种基于扩散模型的训练无关解决方案 Edicho。其核心设计理念是通过显式图像对应性引导编辑过程,避免传统隐式对应性方法的局限性。包括:

  • 注意力操作模块:增强注意力机制,通过图像之间的对应性引导特征传递。

  • 优化的分类器自由引导(CFG)去噪策略:结合预计算的对应性,在编辑过程中保持高质量和一致性。

应用的技术

  • 利用扩散模型的中间特征与生成图像空间的对齐特性,通过显式对应性指导编辑。

  • 在注意力机制中对查询特征进行变换,从源图像借用相关特征,确保编辑一致性。

  • 修改分类器自由引导的计算方式,融合无条件嵌入特征,提升一致性和图像质量。

  • 特别设计处理真实世界场景图像的能力,保证方法对光照、背景、视角和遮挡变化的鲁棒性。

达到的效果

  • 一致性提升:实现了多图像间的一致性编辑,编辑结果在各种场景下保持高度协调。

  • 通用性:作为推理时的算法,可与大多数基于扩散的编辑方法(如 ControlNet 和 BrushNet)无缝兼容。

  • 实用性:适用于个性化内容创作、3D重建以及一致性纹理应用,扩展了编辑工具的适用范围。

  • 高效性:无需训练数据,具备即插即用特性,能够直接应用于实际任务,代码公开以支持进一步研究。

方法

本文专注于一致性图像编辑任务,即同时对多张图像进行操作以实现一致且统一的视觉效果。首先利用现有的视觉理解方法提取图像对之间的显式语义对应性。再借助构建于 Stable Diffusion 之上的预训练编辑模型,通过这些预计算的显式对应性指导去噪过程,从而确保编辑的一致性。

本节首先回顾扩散模型的一些基本概念,随后讨论显式对应性指导的去噪过程,该过程包括两个层次:注意力特征层和噪声隐空间变量层。需要注意的是,这些特征操作仅应用于部分去噪步骤和层级,以保留预训练模型的强生成先验。

预备知识

扩散模型是一类概率生成模型,通过逐步添加和去除噪声的过程进行训练。前向过程将噪声添加到图像中,具体如下:

在此,, 表示噪声调度函数。一个神经网络 被训练用于在反向去噪过程中预测添加的噪声 ,最终从高斯噪声 中完成采样。在隐空间变量扩散模型(LDMs)的公式中,一对预训练的变分编码器 和解码器 用于感知压缩,并允许在该隐空间变量空间中对噪声隐空间变量 进行去噪。

无分类器引导(CFG)
无分类器引导(CFG)是一种创新技术,旨在通过扩散模型在不依赖额外分类器的情况下提高生成图像的质量和多样性。具体而言,CFG 引入了一个混合系数,用于融合去噪模型生成的条件预测和无条件预测。无条件预测通常通过将条件设置为空或默认值来获得。

编辑的参考网络
最近的编辑方法 [25, 60] 通过在预训练的大型扩散模型上学习一个额外的参考网络来实现编辑,同时保持预训练骨干网络固定。这种网络拓扑结构保持的设计成功地将控制信号与预训练的生成先验分离开。

对应性比较与预测

对应性比较
为了实现一致性编辑的目标,首先从显式和隐式对应性之间的比较开始匹配。显式提取器通过单次前向过程从输入图像中预测对应性,并将此预测应用于所有目标网络层和去噪步骤。而隐式提取器则通过计算每一层和去噪步骤中注意力查询与键的相似性来预测对应性。如同之前的无训练编辑方法,这些对应性随后被应用于当前层和步骤以进行编辑。

下图2展示了使用显式和隐式方法的对应性预测结果。对于显式预测,在案例 (a) 和 (b) 中,采用了 DIFT,在案例 (c) 中使用了 Dust3R。对于隐式方法,遵循 Cross-Image-Attention 的方法,通过查询匹配图像的注意力键,基于注意力相似性计算对应性,公式为 ,并将具有最大相似性的对应位置进行可视化,其中 和 表示图像索引。

此外,对于案例 (a)、(b) 和 (c),选择了不同的网络层和去噪步骤 (1, 10)、(2, 15)、(4, 25) 进行提取,以实现更全面的探索,其中 表示扩散模型的解码器层编号和去噪步骤编号。上面图 2 中的可视化结果表明,通过显式预测获得的对应性明显比隐式方法更准确。而且,隐式方法的预测结果随着网络层和去噪步骤的变化往往变得不稳定。这些结果与之前的研究 [50, 59] 一致,表明只有生成模型的特定层或步骤适合有效的视觉理解,例如点匹配。

不准确的对应性匹配会在执行跨图像注意力时引入不准确的特征,这阻碍了仅基于隐式注意力的编辑方法的编辑一致性。这进一步强化了本文引入更稳健的显式对应性来指导去噪过程的动机。

对应性预测
为了实现图像 和 的一致性编辑,本文的方法的第一步是使用预训练的对应性提取器(如 [50, 55])从输入图像中提取稳健的对应性:

其中, 和 分别表示提取器和对应性。实践中,提取器实例化为 DIFT 的形式。为了进一步优化效率,实施了一种策略,以避免重复计算对应性,特别是在相同的图像或图像组被多次处理的情况下。通过使用 MD5 哈希函数对每个图像组进行编码,创建一个唯一标识符。然后将标识符(键)和对应性(值)存储在一个小型数据库中,输入图像组在编辑之前首先检索该数据以加速处理。

使用对应性的注意力操作

回顾一下,在自注意力模块中,中间特征 首先通过学习的投影矩阵 、 和 投影为查询 、键 和值 。然后,根据 [53] 的方法,通过自主计算和评估这些特征表示的相关性,可以计算注意力特征 。

受显式和隐式对应性比较的启发,本文提出用显式对应性来引导自注意力,以实现一致性编辑,这种方法称为 Corr-Attention。对于输入图像中的一对 ,我们基于显式对应性从查询矩阵 借用特征到 ,以形成一个新的查询矩阵 :

其中,Warp 函数表示通过根据对应位置将对应的标记变换到源位置来借用特征的过程。考虑到(1) 的token是从 借用的,(2)为了进一步提高一致性,在编辑 时查询的是 而不是 :

其中, 表示 和 的维度, 表示 的注意力输出。通过从源头转移注意力特征,我们有效地在去噪过程中实现了编辑一致性。

无分类器引导与对应关系

为了在编辑后的图像中保持更精细的一致性,从注意力特征控制进一步着手,聚焦于无分类器引导(CFG) 中的噪声隐空间变量。本文扩展了传统的 CFG 框架,通过利用显式的对应关系促进多个图像的同步编辑,并提出了 Corr-CFG。NULL-text 反演 证明了优化无条件词嵌入可以实现精确的图像反演和语义编辑。受到该方法的启发,我们的主要目标是在一致性编辑过程中保留预训练模型强大的生成先验的完整性。为了实现这一点,我们提出仅在对应关系的引导下操控 CFG 框架中的无条件分支 。

在 CFG 中,去噪过程被分为条件分支和无条件分支,噪声通过神经网络 进行估计:

其中, 表示条件(文本提示), 表示空文本。具体来说,我们修改了 的无条件噪声部分,并在去噪过程中将 中的信息合并到其中,从而确保一致的编辑。

其中, 表示融合函数,用于对齐无条件噪声, 表示时间步长。

这里的和是可调参数。函数表示在的部分范围内随机选择的隐空间变量,并将其注入到中。最后,像先前的范式一样应用引导,并融合条件和无条件预测。

其中表示引导尺度。最终生成的隐空间变量将发送到VAE解码器,以解码为图像。

实验

实验设置

设置:使用Stable Diffusion 作为基础模型,并采用BrushNet 和ControlNet 作为编辑的参考网络。采用DDIM调度器,并进行50步的去噪。默认情况下,提出的基于对应关系的去噪策略应用于第4步到第40步,并从第8个注意力层开始应用,以确保一致性并保持强大的生成先验。需要注意的是,在使用不同基础模型时,这些选择的最优设置可能有所不同。测试样本部分来自互联网,其他样本来自DreamBooth和Custom Diffusion的数据集。

评估指标:遵循Custom Diffusion的方法,采用流行的多模态模型CLIP来评估各种方法在文本对齐(TA)和编辑一致性(EC)方面的表现。具体来说,一方面,通过计算目标提示和模型输出的特征相似度来判断文本对齐;另一方面,通过计算编辑图像的特征相似度来评估编辑一致性。此外,还纳入了用户研究(US)来进一步评估实际应用性和用户满意度。

基准:包含了局部和全局编辑任务,并且与众多先前的图像编辑方法进行了全面对比。具体来说,对于局部编辑任务,包括了Adobe Firefly 、Anydoor和Paint-by-Example等先前的工作进行比较。

在上述方法中,Firefly是Adobe开发的最先进的商业图像修复工具,可以根据给定的文本提示重新绘制输入图像的局部区域。为了实现一致的编辑任务,该组图像将根据相同的详细提示进行修复。Anydoor和Paint-by-example都是支持根据给定参考图像重新绘制目标区域的隐空间变量扩散模型(LDM)。因此,我们将修复后的图像发送给这些模型作为参考,期望得到一致的编辑结果。

对于全局编辑,将本文的方案与MasaCtrl、StyleAlign和Cross-image attention进行比较。上述方法通过操作和融合来自不同源的注意力特征来实现编辑。与本文的方法不同,它们通过计算注意力权重中的隐式对应关系来确保编辑结果的一致性。

评估

定性结果:本文展示了对一致性编辑方法的定性评估,重点关注局部编辑(图像修复)和全局编辑(图像转换)。在下图4中的局部编辑比较中,本文的方法、Adobe Firefly (AF)、Anydoor (AD)和Paint-by-Example (PBE)的结果进行了展示。结果表明,本文的方法通过引入显式的对应关系,始终保持了输入图像在不同修改下的完整性,包括衣物纹理、面罩和领口外观,甚至鞋子的孔眼数量。

全局编辑的基准主要包括仅由隐式注意力预测的方案——MasaCtrl (MC)、StyleAligned (SA)和Cross-Image-Attention (CIA)。如下图5所示,本文的方法也在编辑过程中取得了更好的一致性和主题一致性,如猫的裙子。与之相比,隐式方法(如MasaCtrl)在汽车车顶、精灵的高领以及机器人的孔洞数量方面未能实现一致的编辑。

定量结果:对本文提出的方法进行了全面的定量评估,重点关注文本对齐(TA)和编辑一致性(EC)指标。正如下表1所示,在局部编辑任务中,本文的方法在TA和EC得分上均取得了最佳成绩,展示了相较于其他方法的显著改进。在全局编辑任务中,本文的方法继续超越其他对比方法,达到了0.3228的TA得分和0.9355的EC得分。这些结果清楚地证明了本文的方法在实现局部和全局编辑场景中的高文本对齐和编辑一致性方面的有效性。

消融实验

为了验证所提出的基于对应关系的注意力操作(Corr-Attention)和基于对应关系的CFG(Corr-CFG)的有效性,我们通过分别禁用其中一个方法,并在一致性编辑任务上进行测试来进行消融实验。当禁用所提出的基于对应关系的注意力操作(Corr-Attention)时,扩散模型依赖于隐式注意力对应关系来保持一致性,类似于之前的方法[1,7]。如下图6(a)所示,生成模型会产生错误数量的花朵,并且位置不当。花朵的数量和纹理的不一致证明了引入显式对应关系到注意力操作中的有效性。

基于对应关系的CFG(Corr-CFG)旨在通过在LDM的潜空间中进行更精细的一致性控制,这一点在图6(b)中得到了验证,Corr-CFG生成了更一致的花朵纹理和碗底的条纹。

额外的应用和结果

基于一致性编辑的定制化:为了进一步展示所提方法的实际应用,我们展示了一个集成DreamBooth和低秩适应(LoRA)技术的定制化图像生成应用示例。利用我们方法生成的编辑输出,我们采用DreamBooth对生成模型进行500步的微调,以进行概念注入。同时,我们还整合了LoRA技术,通过引入低秩矩阵作为适应参数,进一步提高了这一过程的效率。如下图7所示,微调后的生成模型能够生成与编辑对应的理想图像。因此,新的概念生成和概念编辑可以通过这种方式实现,成为一致性编辑的应用示例。

基于一致性编辑的3D重建:一致性编辑还能够促进编辑内容的3D重建。我们通过神经回归器实现了3D重建,该回归器能够根据一致的图像对预测准确的3D场景表示。以编辑后的图像为输入,学习到的神经回归器能够预测3D点云模型和2D匹配点,而不需要其他输入,如相机参数。重建和匹配结果如下图8所示,结果也进一步表明了我们方法的编辑一致性。该回归器分别为两组编辑获取了11,515对和13,800对匹配点,且仅展示了其中的一部分以便清晰理解。

额外结果:我们提供了通过所提方法实现的多图像修复和转换的多样结果,如下图9(a)和(b)所示。图9(c)展示了包含三张图像的图像集的编辑结果。

结论

本文提出了Edicho,一种新颖的免训练的方法,通过利用不同图像之间的显式对应关系,实现一致性的图像编辑。本文的方法通过将对应关系信息整合到去噪过程中,增强了自注意力机制和无分类器引导计算,从而确保了编辑的一致性。方法的即插即用特性使其能够无缝集成到各种模型中,且适用于广泛的任务。

在局限性方面,有时由于对应关系的错位,生成的纹理可能不一致,预计随着更好的对应关系提取器的出现,这一问题能够得到改进。并且,由于继承了预训练的编辑模型,偶尔会生成失真纹理。

参考文献

[1] Edicho: Consistent Image Editing in the Wild

相关文章:

即插即用,无缝集成各种模型,港科大蚂蚁等发布Edicho:图像编辑一致性最新成果!

文章链接:https://arxiv.org/pdf/2412.21079 项目链接:https://ezioby.github.io/edicho/ 亮点直击 显式对应性引导一致性编辑:通过将显式图像对应性融入扩散模型的去噪过程,改进自注意力机制与分类器自由引导(CFG&…...

鸿蒙开发(29)弹性布局 (Flex)

概述 弹性布局(Flex)提供更加有效的方式对容器中的子元素进行排列、对齐和分配剩余空间。常用于页面头部导航栏的均匀分布、页面框架的搭建、多行数据的排列等。 容器默认存在主轴与交叉轴,子元素默认沿主轴排列,子元素在主轴方…...

华为 Sensor 省电策略调研

华为EMUI 9.0.0.187(C00E57R1P15) 无该功能 华为EMUI 9.1.0.321(C00E320R1P1) 之后有sensor管控 一、华为 Sensor 省电策略 1. Sensor 类别只配置非唤醒类Sensor 2. 手机静止情况,应用不可见时达到1分钟&#xff0…...

Kotlin语言的网络编程

Kotlin语言的网络编程 Kotlin作为一种现代的编程语言,其简洁、安全和高效的特性使得在开发各种应用时得到广泛认可。尤其是在网络编程方面,Kotlin凭借其与Java的高度兼容性以及丰富的库支持,使得网络操作变得更加简单易用。本文将详细探讨Ko…...

redis:安装部署、升级以及失败回退

安装部署 一、准备工作 1. 检查系统要求 确保你的服务器满足 Redis 的基本要求: 操作系统:支持的 Linux 发行版(如 Ubuntu, CentOS)内存:至少 4GB(根据实际应用需求调整)CPU:单核或多核 CPU磁盘空间:足够的磁盘空间用于数据存储和日志记录2. 更新系统软件包 在开始…...

3. ML机器学习

1.人工智能与机器学习的关系 机器学习是人工智能的一个重要分支,是人工智能的一个子集。它无需显式编程,而是通过数据和算法使机器能够自动学习和改进,从而实现智能行为。机器学习依赖于算法来识别数据中的模式,并通过这些模式做出…...

在高德地图上加载3DTilesLayer图层模型/天地瓦片

1. 引入必要的库 Three.js:一个用于创建和显示3D图形的JavaScript库。vuemap/three-layer:一个Vue插件,它允许你在高德地图中添加Three.js图层。vuemap/layer-3dtiles:一个用于处理3D Tiles格式数据的Vue插件,可以用来…...

用户使用LLM模型都在干什么?

Anthropic 对用户与 Claude 3.5 Sonnet 的大量匿名对话展开分析,主要发现及相关情况如下: 使用用途分布 软件开发主导:在各类使用场景中,软件开发占比最高,其中编码占 Claude 对话的 15% - 25%,网页和移动应…...

2 抽象工厂(Abstract Factory)模式

抽象工厂模式 1.1 分类 (对象)创建型 1.2 提出问题 家具店里有沙发、椅子、茶几等产品。产品有不同风格,如现代、北欧、工业。希望确保客户收到的产品风格统一,并可以方便地添加新产品和风格。 1.3 解决方案 提供一个创建一…...

数据结构-串

串的实现 在C语言中所使用的字符串就是串的数据类型的一种。 串的存储结构 定长顺序存储表示 类似于线性表的顺序存储结构,用一组连续的存储单元存储串值的字符序列。 #define MAXLEN 255 //预定义最大串长为255 ​ typedef struct SString {char ch[MAXLEN]; …...

C#,图论与图算法,有向图(Direct Graph)广度优先遍历(BFS,Breadth First Search)算法与源程序

1 图的广度优先遍历 图的广度优先遍历(或搜索)类似于树的广度优先遍历(参见本文的方法2)。这里唯一需要注意的是,与树不同,图可能包含循环,因此我们可能再次来到同一个节点。为了避免多次处理节…...

使用ElasticSearch查询

从一个query body开始 {"query": {"bool": {"disable_coord": true,"must": [{"match": {"enabled": "1"}},{"range": {"effectTime": {"lt": "2017-06-13 13:33:…...

PyCharm+RobotFramework框架实现UDS自动化测试——(一)python-can 库的安装与环境配置

从0开始学习CANoe使用 从0开始学习车载测试 相信时间的力量 星光不负赶路者,时光不负有心人。 文章目录 1. 概述2.安装 python-can 库—基于pycharm在对应的工程下3. 在任意盘中安装环境4. 导入 can 模块语法5. 配置 CAN 接口6.CANoe设备连接语法 1. 概述 本专栏主…...

C# 值类型和引用类型详解

简介 在 C# 中,值类型和引用类型是两个基础的数据类型类别,它们的主要区别在于 存储位置 和 赋值方式。 值类型 值类型存储的是数据本身,分配在 栈 (Stack) 中。当一个值类型变量被赋值给另一个变量时,会复制值。 值类型的特点…...

计算机网络 —— 网络编程(TCP)

计算机网络 —— 网络编程(TCP) TCP和UDP的区别TCP (Transmission Control Protocol)UDP (User Datagram Protocol) 前期准备listen (服务端)函数原型返回值使用示例注意事项 accpect (服务端)函数原型返回…...

[Unity Shader] Shader基础光照3:环境光与自发光

在Unity中,光照是场景渲染的关键组成部分。正确使用环境光和自发光能够大大提高场景的真实感和视觉效果。本篇文章将详细介绍Unity中的环境光和自发光的基本概念,以及如何在编辑器和Shader中进行操作和实现。 1. 环境光(Ambient Light) 1.1 环境光的定义 环境光是场景中…...

云原生安全风险分析

一、什么是云原生安全 云原生安全包含两层含义: 面向云原生环境的安全具有云原生特征的安全 0x1:面向云原生环境的安全 面向云原生环境的安全的目标是防护云原生环境中基础设施、编排系统和微服务等系统的安全。 这类安全机制不一定具备云原生的特性…...

Redis 安装与配置指南

Redis 安装与配置指南 目录 安装说明 Linux 安装 Redis 3.0 压缩包上传服务器编译和安装修改配置启动 Redis关闭 Redis 卸载 RedisRedis 集群配置 Master 主库配置启动 Master 节点的 Redis 和 Sentinel客户登录验证Slave 从库配置查看集群数据验证 安装说明 Linux 安装 R…...

C语言Day13(c程序设计小红书+pta)

目录 (一)用函数调用实现,把最小的数字放在最前面,把最大的放在最后边 (二)使数字向后移m位 (三)用户自定义数据类型: (四)候选人计票数 &am…...

C++二十三种设计模式之迭代器模式

C二十三种设计模式之迭代器模式 一、组成二、特点三、目的四、缺点五、示例代码 一、组成 抽象聚合类:存储集合元素,声明管理集合元素接口。 具体聚合类:实现管理集合元素接口。 抽象迭代器类:声明访问和遍历聚合类元素的接口。 …...

【AI游戏】使用强化学习玩 Flappy Bird:从零实现 Q-Learning 算法(附完整资源)

1. 引言 Flappy Bird 是一款经典的休闲游戏,玩家需要控制小鸟穿过管道,避免碰撞。虽然游戏规则简单,但实现一个 AI 来自动玩 Flappy Bird 却是一个有趣的挑战。本文将介绍如何使用 Q-Learning 强化学习算法来训练一个 AI,使其能够…...

VSCode 中的 launch.json 配置使用

VSCode 中的 launch.json 配置使用 在 VSCode 中,launch.json 文件用于配置调试设置,特别是用来定义如何启动和调试你的应用。它允许你配置不同的调试模式、运行参数和调试选项。 基本结构 launch.json 文件位于 .vscode 文件夹内,可以通过…...

深度学习算法:开启智能时代的钥匙

引言 深度学习作为机器学习的一个分支,近年来在图像识别、自然语言处理、语音识别等多个领域取得了革命性的进展。它的核心在于构建多层的神经网络,通过模仿人脑处理信息的方式,让机器能够从数据中学习复杂的模式。 深度学习算法的基本原理…...

Clojure语言的并发编程

Clojure语言的并发编程 引言 在现代软件开发中,并发编程成为了处理多个任务、提高应用效率和响应速度的重要手段。尤其是在多核处理器逐渐成为主流的今天,如何高效利用这些计算资源是每个开发者面临的挑战。Clojure作为一种函数式编程语言,…...

MySQL学习记录1【DQL和DCL】

SQL学习记录 该笔记从DQL处开始记录 DQL之前值得注意的点 字段 BETWEEN min AND max 可以查询区间[min, max]的数值如果同一个字段需要满足多个OR条件,可以采取 字段 IN(数值1, 数值2, 数值3....)LIKE语句 字段 LIKE ___%%% 表示模糊匹配,_匹配一个字段…...

EasyExcel的应用

一、简单使用 引入依赖: 这里我们可以使用最新的4.0.2版本,也可以选择之前的稳定版本,3.1.x以后的版本API大致相同,新的版本也会向前兼容(3.1.x之前的版本,部分API可能在高版本被废弃)&…...

JS控制对应数据隐藏

首先需要获得到所有的input框,并声明一个空对象来存放,遍历所有的复选框,将他们中选中的放入对象,并设置键值为true,然后执行checkFalseValues(result)函数 function hideItem() {let checkboxes $(.setting_box inp…...

【剑指Offer刷题系列】数据流中的中位数

目录 问题描述示例示例 1: 思路解析方法一:使用两个堆(最大堆和最小堆)核心思路详细步骤示例分析优势适用场景 代码实现Python 实现(方法一:使用两个堆) 测试代码复杂度分析方法一:使…...

RabbitMQ高级篇之MQ可靠性 数据持久化

文章目录 消息丢失的原因分析内存存储的缺陷如何确保 RabbitMQ 的消息可靠性?数据持久化的三个方面持久化对性能的影响持久化实验验证性能对比Spring AMQP 默认持久化总结 消息丢失的原因分析 RabbitMQ 默认使用内存存储消息,但这种方式带来了两个主要问…...

C 语言奇幻之旅 - 第16篇:C 语言项目实战

目录 引言1. 项目规划1.1 需求分析与设计1.1.1 项目目标1.1.2 功能需求1.1.3 技术实现方案 2. 代码实现2.1 模块化编程2.1.1 学生信息模块2.1.2 成绩管理模块 2.2 调试与测试2.2.1 调试2.2.2 测试2.2.4 测试结果 3. 项目总结3.1 代码优化与重构3.1.1 代码优化3.1.2 代码重构 3.…...

[笔记] 使用 Jenkins 实现 CI/CD :从 GitLab 拉取 Java 项目并部署至 Windows Server

随着软件开发节奏的加快,持续集成(CI)和持续部署(CD)已经成为确保软件质量和加速产品发布的不可或缺的部分。Jenkins作为一款广泛使用的开源自动化服务器,为开发者提供了一个强大的平台来实施这些实践。然而…...

Git最便捷的迁移方式

#当公司要求git需要迁移时,你是不是感觉到束手无策。今天带来给大家最快,最便捷的迁移方式 这个命令是用于重命名git仓库中的远程仓库名。在这个命令中,我们将远程仓库的名字从"origin"改为"old-origin"。 git remote …...

【颜色分类--荷兰国旗问题】

问题 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums , 原地 对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。必须在不使用库内置的 sort 函数的情况下…...

xrdp连接闪退情况之一

错误核查 首先使用命令vim ~/.xsession-errors,当里面的报错信息为WARNING **: Could not make bus activated clients aware of XDG_CURRENT_DESKTOPGNOME environment variable:Failed to execute child process “dbus-launch” (No such file or directory)&am…...

KubeVirt 进阶:设置超卖比、CPU/MEM 升降配、在线磁盘扩容

前两篇文章,我们分别介绍 Kubevirt 的安装、基本使用 以及 将 oVirt 虚拟机迁移到 KubeVirt,我们留了两个ToDo,一个是本地磁盘的动态分配,一个是固定 IP 的需求,本期我们先解决第一个,本地磁盘的动态分配。…...

(回溯法)leetcode39组合总和

第一个2开头,下面的子节点的集合元素均为2,5,3 但是在5开头,下面的子节点集合元素均为5,3 带着这个图的思路确定i和index的传递值 backtracking(i, nums,8,sum);用的是i而不是i1 // ConsoleApplication3.cpp : 此文件包含 "main" 函数。程序…...

【数据结构】二叉搜索树

目录 1. 二叉搜索树的概念 2. 二叉搜索树的性能分析 3.二叉搜索树的实现 3. 1.二叉搜索树的插入 3.2. 二叉搜索树的查找 3.3. 二叉搜索树的删除 3.4. 二叉搜索树的实现代码 4. 二叉搜索树key和key/value两种使用场景 4.1 key搜索场景: 4.2 key/value搜索场…...

高可用虚拟IP-keepalived

个人觉得华为云这个文档十分详细:使用虚拟IP和Keepalived搭建高可用Web集群_弹性云服务器 ECS_华为云 应用场景:虚拟IP技术。虚拟IP,就是一个未分配给真实主机的IP,也就是说对外提供数据库服务器的主机除了有一个真实IP外还有一个…...

CSS语言的多线程编程

CSS语言的多线程编程 引言 在现代Web开发中,CSS(层叠样式表)被广泛用于给网页添加样式。然而,CSS本身是一种声明性语言,在设计上并没有直接支持多线程编程的功能。实际上,CSS的解析和应用是由浏览器的渲染…...

电脑之一键备份系统(One Click Backup System for Computer)

电脑之一键备份系统 相信使用电脑的的人都遇到过,电脑系统崩溃,开机蓝屏等原因,这个时候你急着用电脑办公,电脑却给你罢工是多么气人了,其实可以给电脑做一个系统备份。 最近每天都有系统蓝屏崩溃,这个实难…...

R语言的正则表达式

R语言中的正则表达式深度解析 正则表达式(Regular Expressions,简称Regex)是一种用于描述字符串匹配规则的工具,广泛应用于数据处理、文本分析、数据清洗等多个领域。在R语言中,正则表达式被广泛应用于字符串的处理和…...

解决el-table表格数据量过大导致页面卡顿问题 又名《umy-ui---虚拟表格仅渲染可视区域dom的神》

后台管理系统的某个页面需要展示多个列表 数据量过多 页面渲染dom卡顿 经调研发现两个组件 pl-table和umy-ui (也就是u-table) 最终决定使用umy-ui 它是专门基于 Vue 2.0 的桌面端组件库 流畅渲染表格万级数据 而且他是对element-ui的表格做了二次优化…...

《机器学习》——贝叶斯算法

贝叶斯简介 贝叶斯公式,又称贝叶斯定理、贝叶斯法则,最初是用来描述两个事件的条件概率间的关系的公式,后来被人们发现具有很深刻的实际意义和应用价值。该公式的实际内涵是,支持某项属性的事件发生得愈多,则该属性成…...

零基础 监控数据可视化 Spring Boot 2.x(Actuator + Prometheus + Grafana手把手) (上)

一、安装Prometheus Releases prometheus/prometheus GitHubhttps://github.com/prometheus/prometheus/releases 或 https://prometheus.io/download/https://prometheus.io/download/ 1. 下载适用于 Windows 的二进制文件: 找到最新版本的发布页面&#xf…...

4.STM32F407ZGT6-独立看门狗

参考: 1.正点原子 前言: 看门狗是一个项目或者产品中肯定需要的功能部分,必须会。常见的两种看门狗类型,独立看门狗和窗口看门狗,各有使用的场景。总结记录独立看门狗一些知识点: 1.独立看门狗的概念。&am…...

RHCE实验-nfs及autofs

本次实验的目的:实现服务端的网络文件共享(配置nfs),且实现客户端的自动挂载(配置autofs) 服务端配置: 关闭防火墙和selinux: 安装软件 [rootlocalhost ~]# yum install nfs-utils -y 创建需要被挂载的目…...

docker代理设置

最近遇到国内镜像无法下载的问题,因此需要配置docker代理来使其能够下载镜像 代理设置方法如下: 编辑 /etc/docker/daemon.json 文件: 配置 HTTP 和 HTTPS 代理: {"proxies": {"http-proxy": "http:/…...

死信交换机

什么是死信?什么是死信交换机? 在MQ中未能成功被消费的消息就被称之为死信,而死信交换机就用于存放死信消息。 消息转变成死信消息的原因: 消息被消费者拒绝或者需要重发(nack、reject) nack:消…...

cat命令详解

🏝️专栏:https://blog.csdn.net/2301_81831423/category_12872319.html 🌅主页:猫咪-9527-CSDN博客 “欲穷千里目,更上一层楼。会当凌绝顶,一览众山小。” cat 是 Linux/Unix 中的一个非常常用的命令&…...

路由器的转发表

【4-24】 已知路由器R₁ 的转发表如表T-4-24 所示。 表T-4-24 习题4-24中路由器R₁的转发表 前缀匹配 下一跳地址 路由器接口 140.5.12.64/26 180.15.2.5 m2 130.5.8/24 190.16.6.2 ml 110.71/16 ----- m0 180.15/16 ----- m2 190.16/16 ----- ml 默认 11…...