YOLO虚幻合成数据生成器

简介: UnrealSynth 基于 UE5 虚幻引擎开发,目前支持 YOLO 系列模型合成数据的生成。

UnrealSynth 虚幻合成数据生成器利用虚幻引擎的实时渲染能力搭建逼真的三维场景,为 YOLO 等 AI 模型的训练提供自动生成的图像和标注数据。UnrealSynth 生成的合成数据可用于深度学习模型的训练和验证,可以极大地提高各种行业细分场景中目标识别任务的实施效率,例如:安全帽检测、交通标志检测、施工机械检测、车辆检测、行人检测、船舶检测等。

1、UnrealSynth 合成数据工具包内容

UnrealSynth 基于 UE5 虚幻引擎开发,目前支持 YOLO 系列模型合成数据的生成,当前版本号 V1.0,主要文件和目录的组织结构如下:

目录 内容
Engine/ 发布本程序的原始软件的编码和资源文件,其中包含构件此程序的二进制编码和一些存放在 content 文件中的原始资产等
UnrealSynth/Binaries/ 本程序兼容系统及其他的二进制文件
UnrealSynth/Content/ 本程序中所使用的所有资产文件已被烘焙成 pak 包
UnrealSynth.exe 运行程序
LICENSE.md 开发包许可协议文件

运行UnrealSynth的推荐配置为:

  • 处理器:13th Gen Intel(R) Core(TM) i5-13400 2.50 GHz
  • RAM:64.0 GB
  • 独显:NVIDIA GeForce RTX 3080 Ti

2、UnrealSynth 合成数据生成

以下是以 YOLO 模型为例,详细讲述如何使用 UnrealSynth 虚幻引擎数据生成器来生成为 YOLO 模型生成训练的合成数据。

打开 UnrealSynth 虚幻引擎合成数据生成器,点击【虚幻合成数据生成器】按钮,进入虚幻场景编辑页面,点击【环境变更】按钮切换合适的场景,输入【模型类别】参数后就可以开始导入模型,点击【导入 GLB 模型】弹出文件选择框,任意选择一个 GLB 文件,这里以抱枕文件为例,添加抱枕 GLB 文件后的场景如下:

将 GLB 文件添加到场景后,接下来就可以配置 UnrealSynth 合成数据生成参数,参数配置说明如下:

  • 模型类别: 生成合成数据 synth.yaml 文件中记录物体的类型
  • 环境变更 : 变更场景背景
  • 截图数量 : 生成合成数据集 image 目录下的图像数量,在 train 和 val 目录下各自生成总数一半数量的图片
  • 物体个数 : 设置场景中的物体个数,目前最多支持 5 个,并且是随机的选取模型的类别
  • 随机旋转 : 场景中的物体随机旋转角度
  • 随机高度 : 场景中的物体随机移动的高度
  • 截图分辨率: 生成的 images 图像数据集中的图像分辨率
  • 缩放 : 物体缩放调整大小

点击【确定】后会在本地目录中...\UnrealSynth\Windows\UnrealSynth\Content\UserData 自动生成两个文件夹以及一个 yaml 文件:images、labels、test.yaml 文件。

UnrealSynth\Windows\UnrealSynth\Content\UserData
    |- images
        |-train
            |- 0.png
            |- 1.png
            |- 2.png
            |- ...
         |-val
            |- 0.png
            |- 1.png
            |- 2.png
            |- ...
    |- labels
        |-train
            |- 0.txt
            |- 1.txt
            |- 2.txt
            |- ...
        |-val
            |- 0.txt
            |- 1.txt
            |- 2.txt
            |- ...
    |- synth.yaml

UnrealSynth 合成数据已生成,可以利用数据集训练 YOLO 模型,会在 images 下生成两个图像目录:train 和 val。

train 目录表示训练图像数据目录,val 表示验证图像数据目录。

例如 train 目录下的图像集合:

同样在 labels 标注目录下也会生成两个标注目录:train 和 val。

train 目录表示标注训练数据目录,val 表示标注验证数据目录。

生成的 labels 标注数据格式如下:

0 0.68724 0.458796 0.024479 0.039815
0 0.511719 0.504167 0.021354 0.034259
0 0.550781 0.596759 0.039062 0.04537
0 0.549219 0.368519 0.023438 0.044444
0 0.47526 0.504167 0.009896 0.030556
0 0.470313 0.69537 0.027083 0.035185
0 0.570052 0.499074 0.016146 0.040741
0 0.413542 0.344444 0.022917 0.037037
0 0.613802 0.562037 0.015104 0.027778
0 0.477344 0.569444 0.017188 0.016667

生成的 synth.yaml 数据格式如下:

path:
train: images
val: images
test:
names:
 0: pear
 1: Fruit tray
 2: apple
 3: papaya
 4: apple

3、利用 UnrealSynth 合成数据训练 YOLOv8 模型

数据集生成后有三个办法可以进行模型训练:使用 python 脚本、使用命令行、使用在线服务。

第一种是使用 python 脚本,需首先安装 ultralytics 包,训练代码如下所示:

from ultralytics import YOLO
# Load a model
model = YOLO('yolov8n.yaml')  # build a new model from YAML
model = YOLO('yolov8n.pt')  # load a pretrained model (recommended for training)
model = YOLO('yolov8n.yaml').load('yolov8n.pt')  # build from YAML and transfer weights
# Train the model
results = model.train(data='synth.yaml', epochs=100, imgsz=640)

第二种是使用命令行,需安装 YOLO 命令行工具,训练代码如下:

# Build a new model from YAML and start training from scratch
yolo detect train data=coco128.yaml model=yolov8n.yaml epochs=100 imgsz=640
# Start training from a pretrained *.pt model
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640
# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco128.yaml model=yolov8n.yaml pretrained=yolov8n.pt epochs=100 imgsz=640

第三种是使用ultralytics hub 或者其他在线训练工具。

合成数据生成器:UnrealSynth虚幻合成数据生成器 - NSDT


转载:https://www.mvrlink.com/unrealsynth-unreal-synthetic-data-generator/

目录
相关文章
|
8月前
|
机器学习/深度学习 存储 自然语言处理
使用预先训练的扩散模型进行图像合成
使用预先训练的扩散模型进行图像合成
96 1
|
8月前
|
存储 机器学习/深度学习 编解码
使用训练分类网络预处理多分辨率图像
说明如何准备用于读取和预处理可能不适合内存的多分辨率全玻片图像 (WSI) 的数据存储。肿瘤分类的深度学习方法依赖于数字病理学,其中整个组织切片被成像和数字化。生成的 WSI 具有高分辨率,大约为 200,000 x 100,000 像素。WSI 通常以多分辨率格式存储,以促进图像的高效显示、导航和处理。 读取和处理WSI数据。这些对象有助于使用多个分辨率级别,并且不需要将图像加载到核心内存中。此示例演示如何使用较低分辨率的图像数据从较精细的级别有效地准备数据。可以使用处理后的数据来训练分类深度学习网络。
104 0
|
9月前
|
机器学习/深度学习 编解码 人工智能
深度学习应用篇-计算机视觉-图像增广1:数据增广、图像混叠、图像剪裁类变化类等详解
深度学习应用篇-计算机视觉-图像增广1:数据增广、图像混叠、图像剪裁类变化类等详解
深度学习应用篇-计算机视觉-图像增广1:数据增广、图像混叠、图像剪裁类变化类等详解
|
10月前
|
机器学习/深度学习 编解码
从单幅自然图像学习扩散模型,优于GAN,SinDiffusion实现新SOTA
从单幅自然图像学习扩散模型,优于GAN,SinDiffusion实现新SOTA
291 0
|
10月前
|
机器学习/深度学习 编解码 数据可视化
从4K到16K仅用一张图像训练,首个单样本超高分辨率图像合成框架来了
从4K到16K仅用一张图像训练,首个单样本超高分辨率图像合成框架来了
134 0
|
10月前
|
机器学习/深度学习 编解码 语音技术
视频生成无需GAN、VAE,谷歌用扩散模型联合训练视频、图像,实现新SOTA
视频生成无需GAN、VAE,谷歌用扩散模型联合训练视频、图像,实现新SOTA
206 0
|
11月前
|
机器学习/深度学习 数据可视化 算法
基于深度学习的瓶子检测软件(UI界面+YOLOv5+训练数据集)
基于深度学习的瓶子检测软件(UI界面+YOLOv5+训练数据集)
201 0
|
机器学习/深度学习 编解码 达摩院
【OpenVI-图像超分实战篇】别用GAN做超分了,快来试试基于扩散模型的图像超分吧!
近10年来,深度学习技术得到了长足进步,在图像增强领域取得了显著的成果,尤其是以GAN为代表的生成式模型在图像复原、老片修复,图像超分辨率等方面大放异彩。图像超分辨率是视频增强方面,用于提升画质的典型应用。生成对抗网络GAN使得在图像分辨率增加的同时,保持细节特征,补充生成真实的纹理,其中应用广泛的工作是Real-ESRGAN。 扩散模型DiffusionModel在图像超分辨率这方面的新的应用,展现出其超过GAN的生成多样性和真实性。看完后,你会发现,还在用GAN做图像超分辨率吗?已经OUT了,快来试试DiffusionModel吧!
25183 3
【OpenVI-图像超分实战篇】别用GAN做超分了,快来试试基于扩散模型的图像超分吧!
|
数据采集 机器学习/深度学习 算法
【图像分类】基于yolov5的钢板表面缺陷分类(附代码和数据集)
基于yolov5的钢板表面缺陷分类(附代码和数据集)
【图像分类】基于yolov5的钢板表面缺陷分类(附代码和数据集)
|
机器学习/深度学习 存储 数据挖掘
使用PyTorch实现鸟类音频检测卷积网络模型(上)
使用PyTorch实现鸟类音频检测卷积网络模型
394 0
使用PyTorch实现鸟类音频检测卷积网络模型(上)

相关产品

  • 物联网平台
  • 物联网络管理平台
  • IoT设备身份认证