深圳Yolo 视觉
深圳
立即加入
词汇表

扩散模型

了解扩散模型如何通过创建具有无与伦比的细节和稳定性的逼真图像、视频和数据来彻底改变生成式 AI。

扩散模型是一类 扩散模型是一类生成式人工智能算法,它通过逆转逐渐增加噪音的过程,学习创建新的 数据样本。受非平衡态热力学原理的启发 热力学原理的启发,这些模型已成为 生成高保真图像、音频和视频的最先进技术。与以往的方法不同 不同的是,扩散模型通过迭代将随机静态内容细化为连贯的 内容,从而在计算机视觉任务中实现对细节和语义结构前所未有的控制。 计算机视觉任务中对细节和语义结构的控制。

扩散机制

扩散模型的运行可分为两个不同的阶段:正向过程和反向过程。 过程。

  1. 前向过程(扩散):这一阶段涉及系统地破坏数据结构。 从训练数据中的清晰图像开始、 模型在一系列时间步骤中添加少量高斯噪声。 一系列时间步骤。最终,数据会退化为纯粹的、无结构的随机噪声。这个过程通常是 固定,并遵循马尔科夫链规则。
  2. 逆向处理(去噪):核心 机器学习的核心任务就在这一阶段。A 神经网络--通常是U-Net 架构--被训练来预测和减去每一步中添加的噪声。 训练,以预测和减去每一步添加的噪声。通过逆向学习,模型可以 从纯噪声开始,逐步 "去噪",幻化出崭新、连贯的图像。

基础性研究,如 去噪扩散概率模型(DDPM) 论文等研究建立了数学框架,使这种迭代精炼稳定有效。 数学框架,使这种迭代改进变得稳定而有效。

扩散与 GAN

在扩散模型崭露头角之前、 生成对抗网络(GANs) 是图像合成的主流方法。虽然两者都很强大,但却有着本质的区别:

  • 训练稳定性:扩散模型通常更容易训练。GANs 依靠两个网络(生成器和判别器)之间的对抗性 生成器和判别器)之间的对抗性博弈,这往往会导致模式崩溃或不稳定。 扩散模型使用与噪声预测相关的更稳定的损失函数。 与噪声预测相关的损失函数。
  • 输出多样性:扩散模型擅长生成多样化和高度详细的样本,而 GAN 可能难以覆盖整个数据集的分布。
  • 推理速度:在 GANs 一次生成图像的过程中,需要权衡利弊,从而使其 更快。扩散模型需要多个步骤来完善图像,从而导致较高的 推理延迟。不过,较新的技术 如潜在扩散(用于 稳定扩散)等新技术在一个 在压缩的潜空间中执行该过程,从而大大提高了在 速度。

实际应用

扩散模型的多功能性遍及各行各业,为增强创造力和工程工作流程的工具提供了动力。 工程工作流程的工具。

  • 合成数据生成:获取标注的真实世界数据可能成本高昂或隐私敏感。 扩散模型可以生成大量真实的 合成数据来训练强大的 物体检测模型。例如 工程师可以生成成千上万张罕见工业缺陷的合成图像,以训练 YOLO11以保证质量。
  • 高保真图像制作: DALL-E 3MidjourneyAdobe Firefly等工具利用漫反射技术将文字提示转化为 专业级的艺术作品和资产。
  • 医学成像:在医疗保健领域,扩散模型有助于 超分辨率,从低分辨率输入重建高质量的 核磁共振成像或 CT 扫描,帮助进行精确的医学图像分析。 医疗图像分析
  • 视频和音频合成:这一概念已从静态图像扩展到时态数据。像 模型和 Runway ML的工具应用扩散原理,生成连贯的视频序列和逼真的音景。 逼真的音效。

实施前瞻性进程

要了解扩散模型是如何为训练准备数据的,将前向过程可视化是很有帮助的。以下是 如下 PyTorch代码片段演示了如何将高斯 噪声添加到tensor中,模拟单步降解的过程。

import torch


def add_gaussian_noise(image_tensor, noise_level=0.1):
    """Simulates one step of the forward diffusion process by adding noise.

    Args:
        image_tensor (torch.Tensor): Input image tensor.
        noise_level (float): Standard deviation of the noise.
    """
    noise = torch.randn_like(image_tensor) * noise_level
    noisy_image = image_tensor + noise
    return noisy_image


# Create a dummy tensor representing a 640x640 image
clean_img = torch.zeros(1, 3, 640, 640)
noisy_output = add_gaussian_noise(clean_img, noise_level=0.2)

print(f"Output shape: {noisy_output.shape} | Noise added successfully.")

通过逆转这一过程,模型学会了从噪声中恢复信号,从而能够生成复杂的视觉效果,用于增强下游任务的数据集。 视觉效果,可用于增强下游任务的数据集,如图像分割或分类。 如图像分割或分类。

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入