Stable Diffusion 模型演进:LDM、SD 1.0, 1.5, 2.0、SDXL、SDXL-Turbo 等

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学。

针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。

合集:

持续火爆!!!《AIGC 面试宝典》已圈粉无数!


一、背景

这里我们继续介绍 Stable Diffusion 相关的三个图像生成工作,Latent Diffusion Model(LDM)、SDXL 和 SDXL-Turbo。这三个工作的主要作者基本相同,早期是在 CompVis 和 Runway 等发表,后两个主要由 Stability AI 发表。

LDM 对应的论文为:[2112.10752] High-Resolution Image Synthesis with Latent Diffusion Models

LDM 对应的代码库为:High-Resolution Image Synthesis with Latent Diffusion Models

SDXL 对应的论文为:[2307.01952] SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis

SDXL 对应的代码库为:Generative Models by Stability AI

SDXL-Turbo 对应的论文为:[2311.17042] Adversarial Diffusion Distillation

SDXL-Turbo 对应的代码库为:Generative Models by Stability AI

图片

二、摘要

2021 年 05 月 OpenAI 发表 Diffusion Models Beat GANs,扩散模型(Diffusion Model,DM)的效果开始超越传统的 GAN 模型,进一步推进了 DM 在图像生成领域的应用。

不过早期的 DM 都直接作用于像素空间,因此如果要优化一个强大的 DM 通常需要花费数百 GPU 天时,并且因为需要迭代多步,推理的成本也很高。为了实现在有效的计算资源上训练 DM,同时保持其质量和灵活性,作者提出将 DM 应用于强大的预训练 AutoEncoder 的隐空间(Latent Space),这也就是为什么提出的模型叫 LDM。与以前的工作相比,这种方式训练 DM 首次实现了在降低复杂性和保留细节之间的平衡,并大大提高视觉的逼真度。

此外,作者还在模型中引入交叉注意力层,可以将文本、边界框等条件很方便地引入到模型中,将 DM 转化为强大而灵活的生成器,实现高分辨率的生成。作者提出的 LDM 模型同样在图像修复、类别条件生成等方面取得很好的效果,同时与基于像素空间的扩散模型相比,大大降低计算要求。

如下图 Figure 5 所示为其文本引导图像生成的结果:

图片

在 Stable Diffusion(LDM)的基础上,SDXL 将 U-Net 主干扩大了三倍:模型参数增加主要是使用了第二个 Text Encoder,因此也就使用更多的 Attention Block 和 Cross Attention 上下文。此外,作者设计了多分辨率训练方案,在多个不同长宽比的图像上训练。作者还引入了一个细化模型,用于进一步提升生成图像的视觉逼真度。结果表明,与之前版本的 Stable Diffusion 相比,SDXL 的性能有了显著提升,并取得与其他非开源模型相当的效果。此次的模型和代码同样完全开源。

如下图所示为 SDXL 生成的图像:

图片

在 SDXL 的基础上,作者提出了对抗性扩散蒸馏技术(Adversarial Diffusion Distillation,ADD),将扩散模型的步数降低到 1-4 步,同时保持很高的图像质量。结果表明,模型在 1 步生成中明显优于现有的几步生成方法,并且仅用 4 步就超越了最先进的 SDXL 的性能。训练出的模型称为 SDXL-Turbo。

如下图 Figure 1 所示为 SDXL-Trubo 生成的图像:

图片

三、Latent Diffusion Model(LDM)

3.1. LDM 模型概览

LDM 和其他扩散生成模型结构类似,整体来说包含三个组件:

  • Auto Encoder:下图左侧部分,包含红框的 Encoder 和蓝框的 Decoder,其中 Encoder 主要用于训练中生成 target z,推理阶段不需要。而 Decoder 用于从隐空间编码(latent code)恢复出图像。

  • Conditioning:下图右侧部分,用于对各种条件信息进行编码,生成的 embedding 会在扩散模型 U-Net 中使用。不同的条件可能会有不同的 Encoder 模型,也有不同的使用方式(对应下图中的 switch),比如:

  • 对于文本类型条件,可以使用 Bert Encoder,也可以使用 CLIP 中的 Text Encoder 将文本编码为 embedding。

  • 对于图像类型条件,比如图像修复、分割条件,可以将其编码后与噪声 Concat 作为输入,而不是通过 Attention 机制交叉。

  • Denoising U-Net:下图中间部分,用于从随机噪声 zT 中通过几步迭代生成 latent code,然后使用 Decoder 恢复出图像。其中的各种条件信息都会通过 Cross Attention 进行交叉融合。需要说明的是,U-Net 生成的目标是 x 经 Encoder 编码后的 embedding,通常也称为隐向量,而不是直接生成图像像素,因此说 U-Net 是作用在隐空间(Latent Space)。

图片

3.2. AutoEncoder

AutoEncoder 中的 Encoder 用于对图像 x 进行压缩,假设输入图像分辨率为 HxW,则 f 压缩率对应的 latent code 大小为 H/f x W/f。也就是说,如果图像分辨率为为 512x512,则 f=4 的压缩率对应的 latent code 大小为 64x64,也就是 z 的大小为 64x64。针对不同的压缩率 f,作者也进行了一系列实验,对应的模型为 LDM-{f},总共有 LDM-1,LDM-2,LDM-4,LDM-8,LDM-16,LDM-32。需要说明的是,LDM-1 相当于没有压缩,也就是直接作用于像素空间,LDM-32 相当于 32 倍压缩,512x512 分辨率图像对应的 latent code 只有 16x16。

作者在类别条件生成任务上对几种压缩比进行了实验验证,如下图 Figure 6 所示,可见 LDM-4、LDM-8、LDM-16 获得最好的平衡。LDM-32 的压缩率太高,反而影响了生成质量:

图片

如下图 Table 6 所示,作者同样在图像修复任务上验证了不同压缩率、Cross Attention 的影响,可以看出 LDM-4 的训练、推理吞吐相比 LDM-1 有明显提升,并且 Attention 对吞吐的影响也不大。同时 LDM-4 还获得更好的效果(更低的 FID):

图片

3.3. Latent Diffusion Models

本文中作者使用的 U-Net 模型是基于 OpenAI Diffusion Models Beat GANs 中的 Ablated U-Net 修改而来,具体来说是将其中的 Self-Attention 替换为 T 个 Transformer block,每个 block 中包含一个 Self-Attention,一个 MLP 和一个 Cross-Attention,如下图所示,其中的 Cross Attention 就是用于和其他条件的 embedding 进行交叉融合:

图片

3.4. Conditioning 机制

LDM 支持多种条件类型,比如类别条件、文本条件、分割图条件、边界框条件等。

对于文本条件,可以使用常用的文本 Encoder,比如 Bert 模型,或者 CLIP 的 Text Encoder,其首先将文本转换为 Token,然后经过模型后每个 Token 都会对应一个 Token embedding,所以文本条件编码后变为一个 Token embedding 序列。

图片

图片

对于 layout 条件,比如常见的边界框,每个边界框都会以(l,b,c)的方式编码,其中 l 表示左上坐标,b 表示右下坐标,c 表示类别信息。

图片

对于类别条件,每个类别都会以一个可学习的 512 维向量表示,同样通过 Cross-Attention 机制融合。

图片

对于分割图条件,可以将图像插值、卷积后编码为 feature map,然后作为条件。

图片

图片

其中文本条件和 layout 条件都通过 Transformer Encoder 编码,对应的超参如下图 Table 17 所示,也就是文本最多只能编码为 77 个 Token,Layout 最多编码为 92 个 Token:

图片

所谓的 layout-to-image 生成如下图所示,给定多个边界框,每个边界框有个类别信息,生成的图像要在对应的位置生成对应的目标:

图片

3.5. 实验结果

3.5.1. 无条件生成

如下图 Table 1 所示,作者在多个任务上评估了 LDM-4 和 LDM-8 的无条件图像生成效果,可以看出,在大部分任务上都获得了很不错的结果:

图片

3.5.2. 类别条件生成

如下图 Table 3 所示,作者同样在 ImageNet 上与 ADM(Diffusion Model Beat GANs)等模型进行了类别条件图像生成对比,可见在 FID 和 IS 指标上获得了最优或次优的结果:

图片

3.5.3. LDM-BSR

作者同样将 BSR-degradation 应用到超分模型的训练,获得了更好的效果,BSR degradation Pipeline 包含 JPEG 压缩噪声、相机传感器噪声、针对下采样的不同图像插值方法,高斯模糊核以及高斯噪声,并以随机顺序应用于图像(具体可参考代码 https://github.com/CompVis/stable-diffusion/blob/main/ldm/modules/image_degradation/bsrgan_light.py),最终获得了不错的效果:

图片

3.6. 计算需求

作者与其他模型对比了训练和推理的计算需求和相关的参数量、FID、IS 等指标,提出的模型在更小的代价下获得更好的效果:

图片

四、SDXL

4.1. SDXL 模型概览

如下图所示,SDXL 相比 SD 主要的修改包括(模型总共 2.6B 参数量,其中 text encoder 817M 参数量):

  • 增加一个 Refiner 模型,用于对图像进一步地精细化

  • 使用 CLIP ViT-L 和 OpenCLIP ViT-bigG 两个 text encoder

  • 基于 OpenCLIP 的 text embedding 增加了一个 pooled text embedding

图片

图片

4.2. 微条件(Micro-Conditioning)

4.2.1. 以图像大小作为条件

在 SD 的训练范式中有个明显的缺陷,对图像大小有最小长宽的要求。针对这个问题有两种方案:

  • 丢弃分辨率过小的图像(例如,SD 1.4/1.5 丢弃了小于 512 像素的图像)。但是这可能导致丢弃过多数据,如下图 Figure 2 所示为预训练数据集中图像的长、宽分布,如果丢弃 256x256 分辨率的图像,将导致 39% 的数据被丢弃。

  • 另一种方式是放大图像,但是可能会导致生成的样本比较模糊。

图片

针对这种情况,作者提出将原始图像分辨率作用于 U-Net 模型,并提供图像的原始长和宽(csize = (h, w))作为附加条件。并使用傅里叶特征编码,然后会拼接为一个向量,把它扩充到时间步长 embedding 中并一起输入模型。

如下图所示,在推理时指定不同的长宽即可生成相应的图像,(64,64)的图像最模糊,(512, 512)的图像最清晰:

图片

4.2.2. 以裁剪参数作为条件

此外,以前的 SD 模型存在一个比较典型的问题:生成的物体不完整,像是被裁剪过的,如下图 SD1.5 和 SD 2.1 的结果。作者猜测这可能和训练阶段的随机裁剪有关,考虑到这个因素,作者将裁剪的左上坐标(top, left)作为条件输入模型,和 size 类似。如下图 Figure 4 中 SDXL 的结果,其生成结果都更加完整:

图片

如下图 Figure 5 所示,在推理阶段也可以通过裁剪坐标来控制位置关系:

图片

4.3. 多分辨率训练

真实世界的图像会包含不同的大小和长宽比,而文本到模型生成的图像分辨率通常为 512x512 或 1024x1024,作者认为这不是一个自然的选择。受此启发,作者以不同的长宽比来微调模型:首先将数据划分为不同长宽比的桶,其中尽可能保证总像素数接近 1024x1024 个,同时以 64 的整数倍来调整高度和宽度。如下图所示为作者使用的宽度和高度。在训练过程中,每次都从同样的桶中选择一个 batch,并在不同的桶间交替。此外,和之前的 size 类似,作者会将桶的高度和宽度 (h, w)作为条件,经傅里叶特征编码后添加到时间步 embedding 中:

图片

4.4. 训练

SDXL 模型的训练包含多个步骤:

  • 基于内部数据集,以 256x256 分辨率预训练 6,000,000 step,batch size 为 2048。使用了 size 和 crop 条件。

  • 继续以 512x512 分辨率训练 200,000 step。

  • 最后使用多分辨率(近似 1024x1024)训练。

根据以往的经验,作者发现所得到的的模型有时偶尔会生成局部质量比较差的图像,为了解决这个问题,作者在同一隐空间训练了一个独立的 LDM(Refiner),该 LDM 专门用于高质量、高分辨率的数据。在推理阶段,直接基于 Base SDXL 生成的 Latent code 继续生成,并使用相同的文本条件(当然,此步骤是可选的),实验证明可以提高背景细节以及人脸的生成质量。

4.5. 实验结果

如下图所示,作者基于用户评估,最终带有 Refiner 的 SDXL 获得了最高分,并且 SDXL 结果明显优于 SD 1.5 和 SD 2.1。

图片

如下图 Figure 10 所示为 SDXL(没有 Refiner) 和 Midjourney 5.1 的对比结果,可见 SDXL 的结果略胜一筹:

图片

如下图 Figure 11 所示为 SDXL(带有 Refiner) 和 Midjourney 5.1 的对比结果,可见 SDXL 的结果同样略胜一筹:

图片

五、SDXL-Turbo

5.1. SDXL-Turbo 方法

SDXL-Turbo 在模型上没有什么修改,主要是引入蒸馏技术,以便减少 LDM 的生成步数,提升生成速度。大致的流程为:

  • 从 Tstudent 中采样步长 s,对于原始图像 x0 进行 s 步的前向扩散过程,生成加噪图像 xs。

  • 使用学生模型 ADD-student 对 xs 进行去噪,生成去噪图像 xθ。

  • 基于原始图像 x0 和去噪图像 xθ 计算对抗损失(adversarial loss)。

  • 从 Tteacher 中采样步长 t,对去噪后的图像 xθ 进行 t 步的前向扩散过程,生成 xθ,t。

  • 使用教师模型 DM-student 对 xθ,t 进行去噪,生成去噪图像 xψ。

  • 基于学生模型去噪图像 xθ 和教师模型去噪图像 xψ 计算蒸馏损失(distillation)。

  • 根据损失进行反向传播(注意,教师模型不更新,因此会 stop 梯度)。

图片

需要说明的是,通常 ADD-student 模型需要预训练过程,然后再蒸馏。此外,Tstudent 的 N 比较小,作者设置为 4,而 Tteacher 的 N 比较大,为 1000。也就是学生模型可能只加噪 1,2,3,4 步,而教师模型可能加噪 1-1000 步。

此外,作者在训练中还用了其他技巧,比如使用了 zero-terminal SNR;教师模型不是直接作用于原始图像 x0,而是作用于学生模型恢复出的图像 xθ,否则会出现 OOD(out of distribution) 问题;作者还应用了 Score Distillation Loss,并且与最新的 noise-free score distillation 进行了对比。

5.2. 消融实验

作者进行了一系列的消融实验:

  • (a) 在判别器(Discriminator)中使用不同模型的结果。

  • (b) 在判别器中使用不同条件的效果,可见使用文本+图像条件获得最好结果。

  • © 学生模型使用预训练的结果,使用预训练效果明显提升。

  • (d) 不同损失的影响。

  • (e) 不同学生模型和教师模型的影响。

  • (f) 教师 step 的影响。

图片

5.3. 实验结果

如下图所示,作者与不同的蒸馏方案进行了对比,本文提出的方案只需一步就能获得最优的 FID 和 CLIP 分数:

图片

如下图 Figure 5 和 Figure 6 所示为性能和速度的对比,ADD-XL 1 步比 LCM-XL 4 步的效果更好,同时 ADD-XL 4 步可以超越 SDXL 50 步的结果,总之,ADD-XL 获得了最佳性能:

图片

图片

六、演进

6.1. Latent Diffusion

Stable Diffusion 之前的版本,对应的正是论文的开源版本,位于代码库 High-Resolution Image Synthesis with Latent Diffusion Models 中。

该版本发布于 2022 年 4 月,主要包含三个模型:

  • 文生图模型:基于 LAION-400M 数据集训练,包含 1.45B 参数。

  • 图像修复模型:指定区域进行擦除。

  • 基于 ImageNet 的类别生成模型:在 ImageNet 上训练,指定类别条件生成,获得了 3.6 的 FID 分数。使用了 Classifier Free Guidance 技术。

代码实现参考了 OpenAI 的 Diffusion Models Beat GANs 代码实现。

6.2. Stable Diffusion V1

Stable Diffusion 的第一个版本,特指文生图扩散模型,位于代码库 GitHub - CompVis/stable-diffusion: A latent text-to-image diffusion model 中。

该版本发布于 2022 年 8 月,该模型包含 2 个子模型:

  • AutoEncoder 模型:U-Net,8 倍下采样,包含 860M 参数。

  • Text Encoder 模型:使用 CLIP ViT-L/14 中的 Text encoder。

模型首先在 256x256 的分辨率下训练,然后在 512x512 的分辨率下微调。总共包含 4 个子版本:

  • sd-v1-1.ckpt:

  • 在 LAION-2B-en 数据集上以 256x256 分辨率训练 237k step。

  • 在 LAION-high-resolution(LAION-5B 中超过 1024x1024 分辨率的 170M 样本)上以 512x512 分辨率继续训练 194k step。

  • sd-v1-2.ckpt:

  • 复用 sd-v1-1.ckpt,在 LAION-aesthetics v2 5+(LAION-2B-en 中美观度分数大于 5.0 的子集) 上以 512x512 分辨率继续训练 515k step。

  • sd-v1-3.ckpt:

  • 复用 sd-v1-2.ckpt,在 LAION-aesthetics v2 5+ 上以 512x512 分辨率继续训练 195k step,使用了 Classifier Free Guidance 技术,以 10% 概率删除文本条件。

  • sd-v1-4.ckpt:

  • 复用 sd-v1-2.ckpt,在 LAION-aesthetics v2 5+ 上以 512x512 分辨率继续训练 225k step,使用了 Classifier Free Guidance 技术,以 10% 概率删除文本条件。

对应的 FID 和 CLIP 分数如下图所示,可见从 v1-1 到 v1-2,再到 v1-3 提升都很明显,v1-3 和 v1-4 差距不大:

图片

6.3. Stable Diffusion V1.5

Stable Diffusion 的 V1.5 版本,由 runway 发布,位于代码库 GitHub - runwayml/stable-diffusion: Latent Text-to-Image Diffusion 中。

该版本发布于 2022 年 10 月,主要包含两个模型:

  • sd-v1-5.ckpt:

  • 复用 sd-v1-2.ckpt,在 LAION-aesthetics v2 5+ 上以 512x512 分辨率继续训练 595k step,使用了 Classifier Free Guidance 技术,以 10% 概率删除文本条件。

  • sd-v1-5-inpainting.ckpt:

  • 复用 sd-v1-5.ckpt,在 LAION-aesthetics v2 5+ 上以 512x512 分辨率以 inpainting 训练了 440k step,使用 Classifier Free Guidance 技术,以 10% 概率删除文本条件。在 U-Net 的输入中额外加了 5 个 channel,4 个用于 masked 的图像,1 个用于 mask 本身。

对应的 FID 和 CLIP 分数如下图所示,可以看出,v1.5 相比 v1.4 的提升也不是很明显:

图片

如下图所示为图像修复的示例:

图片

6.3. Stable Diffusion V2

Stable Diffusion 的 V2 版本,由 Stability-AI 发布,位于代码库 GitHub - Stability-AI/stablediffusion: High-Resolution Image Synthesis with Latent Diffusion Models 中。

V2 包含三个子版本,分别为 v2.0,v2.1 和 Stable UnCLIP 2.1:

  • v2.0:

  • 发布于 2022 年 11 月,U-Net 模型和 V1.5 相同,Text encoder 模型换成了 OpenCLIP-ViT/H 中的 text encoder。

  • SD 2.0-base:分别率为 512x512

  • SD 2.0-v:基于 2.0-base 微调,分辨率提升到 768x768,同时利用 [2202.00512] Progressive Distillation for Fast Sampling of Diffusion Models 提出的技术大幅降低 Diffusion 的步数。

  • 发布了一个文本引导的 4 倍超分模型。

  • 基于 2.0-base 微调了一个深度信息引导的生成模型。

  • 基于 2.0-base 微调了一个文本信息引导的修复模型。

  • v2.1:

  • 发布于 2022 年 12 月,模型结构和参数量都和 v2.0 相同。并在 v2.0 的基础上使用 LAION 5B 数据集(较低的 NSFW 过滤约束)微调。同样包含 512x512 分辨率的 v2.1-base 和 768x768 分辨率的 v2.1-v。

  • Stable UnCLIP 2.1:

  • 发布于 2023 年 3 月,基于 v2.1-v(768x768 分辨率) 微调,参考 OpenAI 的 DALL-E 2(也就是 UnCLIP),可以更好的实现和其他模型的联合,同样提供基于 CLIP ViT-L 的 Stable unCLIP-L 和基于 CLIP ViT-H 的 Stable unCLIP-H。

如下图所示为 v2.0 和 v2.0-v 与 v1.5 的对比,可见其都有明显提升:

图片

6.4. Stable Diffusion XL

Stable Diffusion 的 XL 版本,由 Stability-AI 发布,位于代码库 Generative Models by Stability AI。

该版本发布于 2023 年 06 月,主要包含两个模型:

  • SDXL-base-0.9:基于多尺度分辨率训练,最大分辨率 1024x1024,包含两个 Text encoder,分别为 OpenCLIP-ViT/G 和 CLIP-ViT/L。

  • SDXL-refiner-0.9:用来生成更高质量的图像,不应直接使用,此外文本条件只使用 OpenCLIP 中的 Text encoder。

2023 年 07 月发布 1.0 版本,同样对应两个模型:

  • SDXL-base-1.0:基于 SDXL-base-0.9 改进。

  • SDXL-refiner-1.0:基于 SDXL-refiner-0.9 改进。

2023 年 11 月发表 SDXL-Trubo 版本,也就是优化加速的版本。

七、参考链接

  1. https://arxiv.org/abs/2112.10752

  2. https://github.com/CompVis/latent-diffusion

  3. https://arxiv.org/abs/2307.01952

  4. https://github.com/Stability-AI/generative-models

  5. https://arxiv.org/abs/2311.17042

  6. https://github.com/Stability-AI/generative-models

  7. https://jalammar.github.io/illustrated-stable-diffusion/

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

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

相关文章

【openlayers系统学习】1.4 交互-绘制新要素

四、绘制新要素 Drawing new features 绘制新要素 我们的特征编辑器现在可用于加载数据和修改特征。接下来,我们将添加 Draw​ 交互,以允许人们绘制新功能并将其添加到我们的源中。 首先,导入 Draw​ 交互(在 main.js​ 中&…

Qt笔记:动态处理多个按钮点击事件以更新UI

问题描述 在开发Qt应用程序时,经常需要处理多个按钮的点击事件,并根据点击的按钮来更新用户界面(UI),如下图。例如,你可能有一个包含多个按钮的界面,每个按钮都与一个文本框和一个复选框相关联…

论文AIGC降重

在这个人工智能横行的时代,AI写作工具被使用到论文写作中也已是常态。可AI写出来的东西怎么能逃得过AIGC检测呢?让我带大家了解,如何让你的论文在AI的包围下依旧保持那份独特的“人类气息”,成功通过AIGC检测。 AI写作工具是个好…

vue.js基础组件4--下

1.动态组件 1.定义动态组件 利用动态组件可以动态切换页面中显示的组件。使用<component>标签可以定义动态组件&#xff0c;语法格式如下。 <component is"要渲染的组件"></component>上述语法格式中&#xff0c;<component>标签必须配合i…

实战之快速完成 ChatGLM3-6B 在 GPU-8G的 INT4 量化和本地部署

ChatGLM3 (ChatGLM3-6B) 项目地址 https://github.com/THUDM/ChatGLM3大模型是很吃CPU和显卡的&#xff0c;所以&#xff0c;要不有一个好的CPU&#xff0c;要不有一块好的显卡&#xff0c;显卡尽量13G&#xff0c;内存基本要32GB。 清华大模型分为三种(ChatGLM3-6B-Base&…

海山数据库(He3DB)从方法到实践,构建以场景为中心的体验管理体系

编者按&#xff1a;体验优化的过程中设计师经常会遇到几个阶段&#xff0c;发现问题、定义问题、优化问题、查看反馈&#xff0c;但在产品快速迭代的过程中&#xff0c;体验的问题经常被归类到“不紧急”需求中&#xff0c;并逐步转为长尾问题&#xff0c;这些不被重视的问题聚…

区块链钱包如果丢失了私钥或助记词,资产还能恢复吗?

如果你丢失了区块链钱包的私钥或助记词&#xff08;通常是用于恢复钱包的短语或种子&#xff09;&#xff0c;那么你的资产在大多数情况下是无法恢复的。私钥是访问和控制你在区块链上资产的唯一凭证&#xff0c;而助记词&#xff08;如BIP39标准中的12、18、24个单词的短语&am…

​16种常用的数据分析方法-时间序列分析

​时间序列&#xff08;time series&#xff09;是系统中某一变量的观测值按时间顺序&#xff08;时间间隔相同&#xff09;排列成一个数值序列&#xff0c;展示研究对象在一定时期内的变动过程&#xff0c;从中寻找和分析事物的变化特征、发展趋势和规律。它是系统中某一变量受…

ARM|DSP+FPGA+NVIDIA AI摄像头定制

信迈拥有高性能的摄像头全栈能力&#xff1a;掌握车载模组光学设计能力&#xff0c;具有多名经验丰富光学设计专家&#xff1b;具备丰富的车载摄像模组硬件设计经验&#xff1b;掌握目前市面上大部分车载平台的ISP图像画质服务能力&#xff0c;能自主开发图像ISP和增强算法&…

网络流量分析与网络流量采集:深入了解与实用指南

目录 什么是网络流量分析&#xff1f; 网络流量采集的重要性 网络流量分析的常用方法 包捕获和解码 协议分析 流量统计与趋势分析 AnaTraf网络流量分析仪 应用场景与实际案例 企业网络性能监控 数据中心安全防护 了解更多 在当今数字化时代&#xff0c;网络流量分析…

Word怎么画图?这5个方法收藏好!

“我需要在Word文档中画一些图&#xff0c;想问下Word应该怎么画图呢&#xff1f;有没有朋友可以帮我看看怎么操作呢&#xff1f;” 在今天的数字化时代&#xff0c;信息爆炸式增长&#xff0c;人们越来越需要高效、直观地传递和接收信息。而Word画图功能正是这一需求的完美体现…

TSMaster发送CAN报文

打开TSMaster工程 从菜单栏打开CAN报文发送窗口&#xff1a;【分析】->【报文发送】->【添加CAN/CAN FD发送】 可以选择【从CAN数据库添加报文】或者是【添加新的原始报文】 方法一 添加新的原始报文 可以配置报文发送的触发方式&#xff0c;有【手动】和【周期】两种。…

【LeetCode算法】第69题:x的平方根

目录 一、题目描述 二、初次解答 三、官方解法 四、总结 一、题目描述 二、初次解答 1. 思路&#xff1a;第一次想到的是让i从1开始遍历&#xff0c;看i*ix是否成立&#xff0c;但是这样就会导致i*i超出了int的范围&#xff0c;无法正常求解。第二次&#xff0c;想着比较x/…

【css】引入背景图时候,路径写入@会报错

看报错信息 我的写法 解决办法 在前面加个~

表现层框架设计之表现层设计模式_3.MVVM模式

1.MVVM模式 MVVM模式正是为解决MVP中UI种类变多&#xff0c;接口也会不断增加的问题而提出的。 MVVM模式全称是模型-视图-视图模型&#xff08;Model-View-ViewModel&#xff09;&#xff0c;它和MVC、MVP类似&#xff0c;主要目的都是为了实现视图和模型的分离&#xff0c;不…

无线通信的穿墙能力主要取决于哪些指标

无线通信的穿墙能力是指无线信号在穿越建筑物墙壁时&#xff0c;其信号衰减程度以及能否维持足够强度以进行稳定通信的能力。穿墙能力的好坏直接影响到无线通信在室内环境中的覆盖范围和使用体验。 一、无线信号的频率 无线信号的频率是影响穿墙能力的重要因素之一。一般来说…

mybatisPlus-DB静态工具

方法跟mybatisplus的service接口非常像&#xff0c;静态工具可以避免依赖循环注入。

Github 2024-05-24 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-05-24统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目3非开发语言项目2TypeScript项目2JavaScript项目1Kotlin项目1C#项目1C++项目1Shell项目1Microsoft PowerToys: 最大化Windows系统生产…

解密短链接数据分析功能,看这篇就够了!

如今&#xff0c;短链接工具那可是越来越成熟了&#xff0c;生成短链接这事儿基本都深入人心了。不管是企业还是个人&#xff0c;在把长链接转成短链接的这个过程里&#xff0c;都得用到数据统计来进行分析。 先说说对企业的好处&#xff0c;短链接数据统计能助力企业摸透用户…

为什么我们应该放弃定义敏感数据?

个人数据与人以及其他个人数据深深地交织在一起&#xff0c;它就像一幅巨大的挂毯&#xff0c;而这些线是无法轻易拆开的。尝试定义敏感数据就像徒劳地试图从挂毯中找出不同的线头一样&#xff0c;线头与其他线头交织在一起&#xff0c;一旦开始拆线&#xff0c;整个挂毯就会散…