DepthAI v2 has been superseded by DepthAI v3. You are viewing legacy documentation.

本页目录

  • 快速开始
  • 概述
  • 功能特性
  • 安装
  • 可用模型
  • 示例
  • 实用技巧

DataDreamer

DataDreamer 示例

快速开始

DataDreamer 使您能够使用生成式 AI 和基础计算机视觉模型从头创建带标注的数据集。这样,您就可以为边缘 AI 应用(如目标检测)训练自己的模型,而无需真实世界数据。要使用自定义类别生成数据集,只需执行两个命令:
Command Line
1pip install datadreamer
2datadreamer --class_names person moon robot

概述

DataDreamer 原理图
DataDreamer 是一个高级工具包,旨在促进边缘 AI 模型的开发,无论初始数据是否可用。DataDreamer 的独特功能包括:
  • 合成数据生成:消除 AI 训练对大量数据集的依赖。DataDreamer 使用户能够利用先进的 AI 算法从零开始生成合成数据集,这些算法能够产生高质量、多样化的图像。
  • 从基础模型中提取知识DataDreamer 利用强大的预训练 AI 模型中蕴含的潜在知识。这种能力允许将来自这些“基础模型”的广泛理解转移到更小的定制模型中,显著增强其性能。
  • 高效且强大的模型DataDreamer 的主要目标是创建既小巧(适合集成到任何设备)又在特定任务上性能强劲的紧凑模型。

功能特性

  • 提示生成:使用强大的语言模型自动创建图像提示。提供的类别名称:["horse", "robot"]生成的提示:"A photo of a horse and a robot coexisting peacefully in the midst of a serene pasture."(注:提示本身为英文,通常保持原样,但为完整理解,此处保留英文)
  • 图像生成:使用最先进的生成模型生成合成数据集。
生成的图像
  • 数据集标注:利用基础模型自动标注数据集。
已标注的图像
  • 边缘模型训练:训练高效的小规模神经网络用于边缘部署。(不属于本库范围)

安装

您可以通过 pip 安装 DataDreamer:
Command Line
1pip install datadreamer

可用模型

模型类别模型名称描述/备注
提示生成Mistral-7B-Instruct-v0.1语义丰富的提示
TinyLlama-1.1B-Chat-v1.0小型语言模型
简单随机生成器随机组合所选对象名称
图像生成SDXL-1.0慢速且准确(1024x1024 图像)
SDXL-Turbo快速但精度较低(512x512 图像)
SDXL-Lightning快速且准确(1024x1024 图像)
图像标注OWLv2开放词汇目标检测器

示例

Command Line
1datadreamer --save_dir path/to/save_directory --class_names person moon robot --prompts_number 20 --prompt_generator simple --num_objects_range 1 3 --image_generator sdxl-turbo
该命令为指定对象生成图像,并将它们及其标注保存到给定目录。该脚本允许通过多个参数自定义生成过程,以适应不同的需求和硬件配置。

实用技巧

  • 批量生成:为加快生成过程,请考虑使用 --batch_size_prompt--batch_size_image--batch_size_annotation 参数增加批量大小。如果遇到内存不足,请尝试减小批量大小。
  • 更佳图像质量:为获得更好的图像质量,请考虑调整以下参数:
    • --image_generator:选择图像质量更高的模型。SDXL-Turbo → SDXL-Lightning → SDXL(从最快到最慢,从最低质量到最高质量)。
    • --use_image_tester--image_tester_patience:启用迭代图像生成,并使用 CLIP 模型选择最佳图像。考虑增加耐心阈值以获得更好的结果。
  • 每张图像的对象数量:要生成具有不同对象数量的图像,请使用 --num_objects_range 参数。例如,--num_objects_range 1 3 生成包含 1、2 或 3 个对象的图像。不建议使用大于 3 的值,因为当前模型生成复杂场景的能力有限。
  • 提示生成:要生成更多样化的提示,请考虑使用 --prompt_generator tiny 生成器,它使用小型语言模型生成提示。