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

合成数据

释放合成数据在 AI/ML 中的强大功能!克服数据稀缺、隐私问题和成本,同时促进模型训练和创新。

合成数据是指模仿真实世界数据的统计属性和模式而人为生成的信息。 真实世界的数据。在 机器学习(ML)和 在机器学习ML)和计算机视觉(CV)领域,它是一种强大的 在机器学习(ML)和计算机视觉(CV)领域,当获取真实数据困难、昂贵或受到隐私限制时,它是开发高性能模型的强大资源。 隐私方面的考虑。与从物理事件中收集的传统数据集不同,合成数据是经过编程或模拟的。 不同,合成数据是经过编程或模拟的,允许开发人员根据需要创建大量完美标注的 训练数据。行业分析师 Gartner 预测 到 2030 年,人工智能模型中的合成数据将超越真实数据,从而推动智能系统构建方式的重大转变。 的重大转变。

如何生成合成数据

创建高质量的合成数据集涉及复杂的技术,从经典的计算机图形学 到现代生成式人工智能。这些方法可确保 人工数据的多样性足以帮助模型很好地泛化到新的、未见过的场景中。

  • 3D 模拟和渲染游戏引擎,如 游戏引擎 虚幻引擎等游戏引擎允许开发人员构建 逼真的虚拟环境。在这里,物理引擎可以模拟光线、重力和物体之间的相互作用,从而生成看起来逼真的图像。 生成看起来真实的图像。这通常与 三维物体检测工作流程。
  • 生成模型:高级算法,如 生成对抗网络(GANs)扩散模型等先进算法可学习小型真实世界数据集的 生成无限的新变化。像 Stable Diffusion)这样的工具就很好地诠释了这些模型如何从零开始创建复杂的视觉数据。 从零开始。
  • 领域随机化:为防止 为防止过度拟合特定的模拟外观,开发人员 使用领域随机化。这种技术可以随意改变参数,如 光照、纹理和摄像机角度等参数,迫使人工智能学习物体的基本特征,而不是背景噪音。 背景噪音。

实际应用

合成数据正在彻底改变数据收集成为瓶颈的行业。

  • 自动驾驶汽车:训练自动驾驶汽车需要让它们经历数百万个驾驶 场景,包括罕见的危险事件,如行人闯入车流或恶劣天气条件。 通过物理方式收集这些数据并不安全。Waymo等公司利用 模拟来测试他们的 自动驾驶汽车 虚拟里程,改进他们的 物体探测系统,而不会危及生命。
  • 医疗保健和医学影像:病人记录受严格的法规保护,如 HIPAA。共享真实的 X 射线或核磁共振成像扫描结果用于研究通常在法律上比较复杂。 法律上很复杂。合成数据可让研究人员生成逼真的 医学影像分析数据集 保留了疾病的统计标记,而不包含任何个人身份信息 (PII)。 个人身份信息 (PII)。这样既能保护 数据隐私,同时又能促进诊断工具的发展。

合成数据 vs. 数据增强

必须将合成数据与 数据增强,因为两者都用于增强 数据集

  • 数据扩增(Data Augmentation)采用现有的真实世界图像并对其进行修改--翻转、旋转或改变色彩平衡--以增加多样性、 或改变色彩平衡,以增加多样性。您可以在 YOLO 数据扩增指南
  • 合成数据是从零开始创建的。它不依赖于修改特定的源图像,而是 生成全新的实例,从而可以创建可能从未被相机拍摄到的场景。 相机拍摄到的场景。

与Ultralytics YOLO集成

合成数据集的格式与真实数据集相同,通常带有图像和相应的注释文件。您可以 可以无缝地训练最先进的模型,如 YOLO11等先进模型 等先进模型进行无缝训练,从而提高利基任务的性能。

下面的示例演示了如何使用代码生成简单的合成图像,并使用 的 ultralytics 包装

import cv2
import numpy as np
from ultralytics import YOLO

# 1. Generate a synthetic image (black background, white rectangle)
# This mimics a simple object generation process
synthetic_img = np.zeros((640, 640, 3), dtype=np.uint8)
cv2.rectangle(synthetic_img, (100, 100), (400, 400), (255, 255, 255), -1)

# 2. Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")

# 3. Run inference on the synthetic data
# The model attempts to detect objects within the generated image
results = model.predict(synthetic_img)

# Display result count
print(f"Detected {len(results[0].boxes)} objects in synthetic image.")

加入Ultralytics 社区

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

立即加入