YOLO合成數(shù)據(jù)生成器【UnrealSynth】

UnrealSynth 虛幻合成數(shù)據(jù)生成器利用虛幻引擎的實時渲染能力搭建逼真的三維場景,為 YOLO 等 AI 模型的訓(xùn)練提供自動生成的圖像和標(biāo)注數(shù)據(jù),官方下載地址:UnrealSynth虛幻合成數(shù)據(jù)生成器?。

UnrealSynth 生成的合成數(shù)據(jù)可用于深度學(xué)習(xí)模型的訓(xùn)練和驗證,可以極大地提高各種行業(yè)細(xì)分場景中目標(biāo)識別任務(wù)的實施效率,例如:安全帽檢測、交通標(biāo)志檢測、施工機(jī)械檢測、車輛檢測、行人檢測、船舶檢測等。


1、UnrealSynth 合成數(shù)據(jù)工具包內(nèi)容

UnrealSynth 基于 UE5 虛幻引擎開發(fā),目前支持 YOLO 系列模型合成數(shù)據(jù)的生成,當(dāng)前版本號 V1.0,主要文件和目錄的組織結(jié)構(gòu)如下:

- Engine/:發(fā)布本程序的原始軟件的編碼和資源文件,其中包含構(gòu)件此程序的二進(jìn)制編碼和一些存放在 content 文件中的原始資產(chǎn)等

- UnrealSynth/Binaries/:本程序兼容系統(tǒng)及其他的二進(jìn)制文件

- UnrealSynth/Content/:本程序中所使用的所有資產(chǎn)文件已被烘焙成 pak 包

- UnrealSynth.exe:運行程序

- LICENSE.md:開發(fā)包許可協(xié)議文件

運行UnrealSynth的推薦配置為:

- 處理器:13th Gen Intel(R) Core(TM) i5-13400 2.50 GHz

- RAM:64.0 GB

- 獨顯:NVIDIA GeForce RTX 3080 Ti

2、UnrealSynth 合成數(shù)據(jù)生成

以下是以 YOLO 模型為例,詳細(xì)講述如何使用 UnrealSynth 虛幻引擎數(shù)據(jù)生成器來生成為 YOLO 模型生成訓(xùn)練的合成數(shù)據(jù)。

打開 UnrealSynth 虛幻引擎合成數(shù)據(jù)生成器,點擊【虛幻合成數(shù)據(jù)生成器】按鈕,進(jìn)入虛幻場景編輯頁面,點擊【環(huán)境變更】按鈕切換合適的場景,輸入【模型類別】參數(shù)后就可以開始導(dǎo)入模型,點擊【導(dǎo)入 GLB 模型】彈出文件選擇框,任意選擇一個 GLB 文件,這里以抱枕文件為例,添加抱枕 GLB 文件后的場景如下:

將 GLB 文件添加到場景后,接下來就可以配置 UnrealSynth 合成數(shù)據(jù)生成參數(shù),參數(shù)配置說明如下:

- 模型類別: 生成合成數(shù)據(jù) synth.yaml 文件中記錄物體的類型

- 環(huán)境變更 : 變更場景背景

- 截圖數(shù)量 : 生成合成數(shù)據(jù)集 image 目錄下的圖像數(shù)量,在 train 和 val 目錄下各自生成總數(shù)一半數(shù)量的圖片

- 物體個數(shù) : 設(shè)置場景中的物體個數(shù),目前最多支持 5 個,并且是隨機(jī)的選取模型的類別

- 隨機(jī)旋轉(zhuǎn) : 場景中的物體隨機(jī)旋轉(zhuǎn)角度

- 隨機(jī)高度 : 場景中的物體隨機(jī)移動的高度

- 截圖分辨率: 生成的 images 圖像數(shù)據(jù)集中的圖像分辨率

- 縮放 : 物體縮放調(diào)整大小

點擊【確定】后會在本地目錄中...\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 合成數(shù)據(jù)已生成,可以利用數(shù)據(jù)集訓(xùn)練 YOLO 模型,會在 images 下生成兩個圖像目錄:train 和 val。train 目錄表示訓(xùn)練圖像數(shù)據(jù)目錄,val 表示驗證圖像數(shù)據(jù)目錄。

例如 train 目錄下的圖像集合:


同樣在 labels 標(biāo)注目錄下也會生成兩個標(biāo)注目錄:train 和 val。train 目錄表示標(biāo)注訓(xùn)練數(shù)據(jù)目錄,val 表示標(biāo)注驗證數(shù)據(jù)目錄。

生成的 labels 標(biāo)注數(shù)據(jù)格式如下:

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 數(shù)據(jù)格式如下:

path:

train: images

val: images

test:

names:

0: pear

1: Fruit tray

2: apple

3: papaya

4: apple

3、利用 UnrealSynth 合成數(shù)據(jù)訓(xùn)練 YOLOv8 模型

數(shù)據(jù)集生成后有三個辦法可以進(jìn)行模型訓(xùn)練:使用 python 腳本、使用命令行、使用在線服務(wù)。

第一種是使用 python 腳本,需首先安裝 ultralytics 包,訓(xùn)練代碼如下所示:

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 命令行工具,訓(xùn)練代碼如下:

# 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?或者其他在線訓(xùn)練工具。



原文鏈接:UnrealSynth虛幻合成數(shù)據(jù)生成器 - NSDT

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容