ITADN
yunxiangfu2001/DreamDA · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

DreamDA

这是 DreamDA: Generative Data Augmentation with Diffusion Models 的官方仓库。我们将很快发布完整代码。

简介

DreamDA 生成合成图像以扩展数据集,并提出一种自训练方法,以有效地从合成图像中学习。为了生成符合目标训练数据分布的多样化合成图像,目标训练数据集中的每张图像都被视为一个种子,并通过以下方式生成种子图像的多样化变体:

  1. 使用预训练的扩散模型将种子图像的扩散潜变量 $`x_0`$ 反演为 $`x_T`$
  2. 在由反演后的扩散潜变量初始化的反向扩散过程的每一步中,向扩散模型的 U-Net 瓶颈特征添加高斯噪声

依赖项

可以使用 conda 和我们的 environment.yml 文件安装依赖项:

conda env create -f environment.yml

请注意,需要配置 accelerate

accelerate config

数据准备

可以通过以下链接下载数据集:

请注意,您可以使用此 脚本 提取 ImageNet。

生成合成图像

我们利用 CycleDiffusion 作为我们的反演流程。例如,要为 Oxford-IIIT Pets 生成合成图像,请运行

cd latent_perturbation
bash generate_synthetic_data.sh

使用合成数据和真实数据进行训练

在论文中,我们使用合成数据和原始真实数据的组合集来训练我们的模型。在训练之前,通过相应地更新 cp_real.py 中的路径来整理组合训练数据集,并运行:

python cp_real.py

我们提供了使用组合数据集进行训练的脚本。例如,train_noAMST.sh 在不使用 AMST 的情况下训练 ResNet50。这假设合成图像具有与种子图像相同的标签。

bash train_noAMST.sh

我们将很快发布 AMST 的脚本。

引用

如果您发现本项目对您的研究有用,请考虑引用:

@article{fu2024dreamda,
  title={DreamDA: Generative Data Augmentation with Diffusion Models},
  author={Fu, Yunxiang and Chen, Chaoqi and Qiao, Yu and Yu, Yizhou},
  journal={arXiv preprint arXiv:2403.12803},
  year={2024}
}

致谢

我们的实现主要基于 pytorch-image-modelsCycleDiffusion。我们衷心感谢作者们的出色工作。