コンピュータービジョンのトレーニングに最適な合成データツール
手法別に比較するコンピュータービジョン向け合成データツール:3Dシミュレーション、生成モデル、データ拡張、およびUltralytics YOLOでのテスト方法。
Miles Deans14 分で読めます
コンピュータービジョン向けの最適な合成データツールは、実データセットに何が不足しているかによって異なります。3Dシミュレーションツール(NVIDIA Isaac SimとOmniverse Replicator、BlenderProcなど)は、ラベル付きの新しいシーンをレンダリングします。生成ツール(NVIDIA CosmosやUltralytics PlatformのGenerate Similar Images機能など)は、すでにある画像にバリエーションを加えます。データ拡張ライブラリ(Albumentationsなど)は、トレーニング中に実画像を変換します。
どのツールを選ぶ場合も、モデルが一度も見たことのない実画像で評価してください。UltralyticsとNVIDIAが工業用欠陥データセットで実施したテストでは、欠陥を生成データで追加したところ、DAGMのクラスではUltralytics YOLO26xのmAP75が0.11~0.32向上しましたが、Real-IADでは向上幅がわずか0.008でした(テストの詳細)。合成データの効果は、データセットや生成方法によって異なります。
このガイドでは、主なツールを手法別に比較し、それぞれがどのような不足を補うのかを説明するとともに、導入を決める前にUltralytics YOLO26で合成データをテストする方法を紹介します。このテーマを初めて学ぶ場合は、まず合成データとは何か、どのように使われるかをご覧ください。
合成トレーニングデータを作る3つの方法#
このガイドでは、合成データ生成ツールを、実用的な3つの手法に分類します。それぞれ異なる課題を解決するため、まずは同じ手法のツール同士を比較してください。
| 方式 | 機能 | ラベル | 最適な用途 |
|---|---|---|---|
| 3Dシミュレーションとレンダリング | 3Dアセットからシーンを構築してランダム化し、画像をレンダリングします | 画像とともに生成(ボックス、マスク、深度など) | 3Dでモデリングできる物体、場所、センサー、ロボティクス、まれな状況や危険な状況 |
| 生成画像モデル | 画像、プロンプト、またはシミュレーション入力から新しい画像を生成します | 必ずしも含まれません。生成画像には新しいラベルが必要か、元のラベルを生成結果と照合する必要があります | 見た目の多様性(照明、背景、天候など)や、まれな外観の追加 |
| データ拡張 | トレーニング中に実画像を変換します(反転、色調変更、モザイク、コピー&ペーストなど) | 既存のラベルは画像とともに変換されます | すでにある画像をさらに活用 |

各手法でラベルの扱いは異なります。いずれもモデルが一度も見たことのない実画像で評価してください。
合成データとデータ拡張には共通点があります。どちらも、自分で収集していないトレーニング例を追加します。実際の違いは、新しい画像の生成元です。データ拡張では既存データを変形しますが、シミュレーションや生成モデルでは、データセットにまったく含まれていないものをモデルに見せることができます。
合成データツールの比較#
ツールはアルファベット順に掲載しています。各項目は2026年11月に、ツールの公式サイトまたはリポジトリで確認しました。
| ツール | 方式 | ラベルの有無 | 実行方法 | 最適な用途 |
|---|---|---|---|---|
| Albumentations | データ拡張 | はい。ラベルは画像とともに変換されます | Pythonライブラリ。AlbumentationsXはAGPL-3.0または商用ライセンスです。元のMIT版はメンテナンスされていません | 既存の画像からバリエーションを増やす |
| Anyverse | 物理ベースのシミュレーション | はい。センサー固有の出力に対応 | クラウドプラットフォーム | 運転、車内モニタリング、防衛。RGB-IR、NIR、lidar、radar、熱画像に対応 |
| BlenderProc | Blenderでの3Dレンダリング | はい。深度、法線、セグメンテーション、COCO、BOPアノテーションに対応 | オープンソース(GPL-3.0)、セルフホスト型 | 独自の3Dアセットを使った物体姿勢推定、ロボティクス、研究 |
| Duality AI Falcon | デジタルツインシミュレーション(Unreal Engineベースのエディター) | 対応フォーマットはベンダーに確認してください | Python APIとROS/ROS 2に対応したクラウドワークフロー | 空中監視、対UAS、オフロード自律走行 |
| Kubric | 3Dレンダリングと物理シミュレーション(Blender、PyBullet) | はい。インスタンスマスク、深度、オプティカルフローに対応 | オープンソース(Apache-2.0)、セルフホスト型。Blender 2.93を対象 | 研究、複数オブジェクトの動画 |
| NVIDIA Cosmos | 深度、セグメンテーション、またはエッジマップを条件とする生成ワールドモデル | 保証されません。元のラベルを生成されたオブジェクトと照合し、必要に応じて修正または再生成してください | NVIDIA GPU上でセルフホストします。Cosmos 3のコードとモデルにはOpenMDW-1.1ライセンスが適用され、以前のリリースには別のライセンスが適用されます | シミュレーションまたは実際のシーンの多様性とリアリティを高める |
| NVIDIA Isaac SimとOmniverse Replicator | OpenUSDシーンでの3Dシミュレーション | はい。Replicatorのアノテーターでボックス、セグメンテーション、深度、法線を生成します | セルフホスト型。リポジトリのコードはApache 2.0ですが、Omniverse KitなどのNVIDIAコンポーネントには別のライセンス条件が適用されます | ロボティクス、倉庫、産業シーン |
| Parallel Domain | 実際の走行ログや飛行ログからの再構築とセンサーシミュレーション | 対応フォーマットはベンダーに確認してください | 既存のCIパイプラインに組み込めるAPI | 自動車、ドローン、ロボティクス、トラック輸送、防衛。カメラ、lidar、radarに対応 |
| Rendered.ai | 物理ベースのシミュレーションプラットフォーム | はい。選択したアノテーション形式で、画像の作成時にラベルが付与されます | 月額5,000ドルからのプラットフォームサービス。マネージドサービスも提供 | 地球観測と不可視光センサー:SAR、赤外線、マルチスペクトル、X線 |
| SKY ENGINE AI | レイトレーシングによる合成データのクラウドサービス | はい。ボックス、セマンティックマスク、3Dキーポイント、深度マップ、法線マップに対応 | クラウド | 車内、ロボティクス、製造、医用画像、ドローン |
| Ultralytics Platform(Generate Similar Images) | 1枚の画像から生成する画像バリエーション | いいえ。画像はラベルなしで追加され、Platformでアノテーションします | ブラウザー上で利用できます。ホスト型モデルは無料ですが、有料プロバイダーモデルの料金はご自身のAPIキーに請求されます | ラベリングとトレーニングのワークフローを維持しながら、実画像を中心にバリエーションを追加 |
| Unity Perception | Unityでの3Dシミュレーション | はい。ラベラーを使用します(SOLO出力。COCOに変換可能) | 提供終了。Unityによるサポートはありません | 既存のUnityプロジェクトのみ |
Ultralytics Platformは3Dシミュレーションツールではありません。Generate Similar Imagesは、入力画像をもとに新しいシーンを考案し、それぞれのシーンにつき1枚の画像を生成します。モデルには、デフォルトのUltralytics Image 4BまたはUltralytics Image 6Bを使用します。新しい画像は元画像の被写体とスタイルを引き継ぎますが、ラベルは付いていないため、トレーニング前にアノテーションが必要です。3Dでモデリングできる物体にピクセル単位で正確なラベルが必要な場合は、シミュレーションツールが適しています。

Ultralytics PlatformのGenerate Similar Imagesを示す説明用の合成画像です。無料のUltralytics Image 4Bモデルで生成した実際の出力例を4点掲載しています。元の写真:001 Car factory assembly line - Opel factory in Gliwice, Poland、Marek Ślusarczyk (Tupungato)、CC BY 3.0。AIで生成した加工例を表示しています。
合成データツールの選び方#
ツールではなく、データの不足から始めてください。よくある不足と、それに適したツールを紹介します。
まれな欠陥や異常#
まれな種類の欠陥について、実例を収集するのは難しい場合があります。検討に値する方法を2つ紹介します。
- 実画像に欠陥を生成する。 UltralyticsとNVIDIAのテストでは、NVIDIA Cosmos Data Factoryが欠陥画像を生成して自動でラベルを付け、実際のトレーニング画像に追加しました。公開レポートによると、合成データを使ったテストでは、すべてのデータセットで再現率が向上しました。Cosmosの生成処理は現在、サンプルおよびデモとして提供されており、リリース済みの統合機能ではありません。
- コピー&ペーストによるデータ拡張。 ポリゴンラベルを使ったセグメンテーションまたはOBBのトレーニングでは、
copy_pasteを有効にすると、画像内または画像間でオブジェクトをコピーできます。これにより、まれなクラスの出現頻度が高まります。デフォルトでは無効です。
生産ラインにおける欠陥検出の位置付けについては、製造業におけるコンピュータービジョンをご覧ください。
ロボット、倉庫、ピックアンドプレース#
オブジェクトと空間を3Dでモデル化できれば、シミュレーションによって画像ごとのラベルを生成でき、レンダリングごとにポーズ、照明、混雑度を変化させることもできます。これはドメインランダム化と呼ばれます。NVIDIAハードウェアでロボットのシミュレーションを行う場合は、Omniverse Replicatorと組み合わせたNVIDIA Isaac Simを、手元にある3Dモデルからスクリプトでレンダリングする場合はBlenderProcを検討してください。ロボティクスにおけるコンピュータービジョンについて詳しくご覧ください。
自動車、ドローン、マルチセンサーシステム#
カメラ、ライダー、レーダーのシミュレーションやクローズドループテストには、マルチセンサー自律システム向けに構築されたプラットフォームを検討してください。Parallel Domainは、実際の走行・飛行ログから再構成データを作成します。Anyverseは、自動車、車内、そして防衛向けにセンサー固有の出力をシミュレーションします。Duality AI Falconは、空中およびオフロードでの自律動作に重点を置いています。
衛星、SAR、その他の可視光以外のセンサー#
Rendered.aiは、SAR、赤外線、熱、マルチスペクトル、ハイパースペクトル、X線のシミュレーションを掲載しています。Anyverseは、近赤外線および熱の出力を掲載しています。
多様性を増やしたい小規模データセット#
まず、モデルが実際に遭遇する条件を反映したデータ拡張から始めましょう。ラベルを維持できるためです。物体検出の学習では、Ultralytics YOLOでモザイク、色の変更、スケーリング、平行移動、水平方向の反転がデフォルトで有効になっており、独自のAlbumentations変換を追加することもできます。別の照明、背景、視点など、撮影できない条件をデータ拡張でカバーできない場合は、シーンとラベル付けの方法に応じて、生成的なバリエーションやシミュレーションを試してください。
合成データが役立つかをテストする方法#
合成データを使う価値があるのは、実画像でモデルの性能が向上する場合に限られます。学習画像だけを変更し、同じ実験を2回実行してください。
- 実画像のテスト画像を確保します。モデルを実行する環境の実画像でテストセットを作成し、合成画像は一切追加しないでください。
- 実画像のみでベースラインを学習します。
- 実画像と合成画像を使って再度学習します。モデル、エポック数、オプティマイザー、シードは同じにしてください。
- 実画像の検証画像で学習条件を選びます。合成データの量を複数試す場合は、実画像の検証画像で比較してください。その後、未使用の実画像テストセットでベースラインと選択した学習条件のみを評価します。mAP50-95と再現率を確認し、バウンディングボックスの精度が重要な場合はmAP75も確認してください。
Ultralytics YOLOでは、学習用の分割に複数のフォルダーを指定できるため、実画像と合成画像をディスク上で分けておけます。real.yamlを同じ方法で作成し、trainはimages/train_realのみを指定します。類似画像や同じシーンの画像は同じ分割にまとめ、合成画像は学習画像からのみ生成してください。
# real_plus_synthetic.yaml
path: datasets/defects
train: [images/train_real, images/train_synthetic] # real + synthetic training images
val: images/val_real # real images only
test: images/test_real # real images only, never seen in training
names:
0: scratch
1: dentfrom ultralytics import YOLO
runs = {}
for name, data in [("real only", "real.yaml"), ("real + synthetic", "real_plus_synthetic.yaml")]:
model = YOLO("yolo26n.pt")
model.train( # same recipe for both runs
data=data, epochs=100, imgsz=640, batch=16,
optimizer="AdamW", lr0=0.001, seed=0,
)
runs[name] = model.trainer.best # path to the best weights
for name, weights in runs.items():
metrics = YOLO(weights).val(data="real_plus_synthetic.yaml", split="test") # same real test set
print(f"{name}: mAP50-95 {metrics.box.map:.3f}, mAP75 {metrics.box.map75:.3f}")これは、合成画像を使う場合と使わない場合で、同じ学習条件を用い、同じ実画像テスト画像で評価した比較です。エポック数が同じ場合、データセットが大きいほど学習ステップ数も増えるため、小さな差を信頼する前に、複数のシードで繰り返してください。各設定については学習と検証のドキュメントを、結果の読み取り方についてはモデル評価の分析をご覧ください。

合成データがテストされ、効果が確認されたデータセットにおける、実画像のみの場合と生成した欠陥を含めた場合のmAP75。UltralyticsとNVIDIAのテストより。
Ultralyticsによる測定結果#
- 生成した欠陥(UltralyticsとNVIDIAのテスト)。ポリゴンラベルを持つ産業検査データセットで、NVIDIA Cosmos Data Factoryが生成した欠陥と実画像を使って学習したUltralytics YOLO26xを、実画像のみで学習した同じモデルと比較しました。DAGMの各クラスではmAP75が0.11~0.32上昇し、たとえばDAGMのクラス9では0.650から0.966に上昇しました。Real-IADでの向上幅は0.008でした。どちらのモデルも同じ学習条件を使用し、同じホールドアウトテストセットで評価しました(全結果)。
- 合成深度データ。YOLO26の深度モデルは、約219万枚の画像を組み合わせて事前学習されています。このデータには、レンダリングされたシーンから密な深度の正解データを提供するHypersimなどの合成データセットが含まれており、窓や空などの無効なピクセルはマスクされています。合成データは、ノイズの多い実環境のセンサーデータを置き換えるのではなく、補完します。
- オープンデータセット内の生成画像。Ultralytics Construction-PPEは、人が収集した画像と生成画像を組み合わせたデータセットで、1,000枚の画像と12クラスを含み、CC BY 4.0で公開されています。独立したテスト分割はなく、ドキュメントでは、実際のデプロイ環境から取得した独立画像で評価することを推奨しています。
追加する合成データの量#
万能な比率はないため、検証する設定の一つとして扱ってください。UltralyticsとNVIDIAのテストでは、合成画像の数を実画像の学習画像の25%または100%に制限しました。これは、実画像4枚につき合成画像1枚、または実画像1枚につき合成画像1枚に相当します。生成した11,448枚のうち、採用されたのは1,481枚のみでした。少量から始め、実画像の検証画像で比率を選び、最終比較には未使用の実画像テストセットを使用してください。
Ultralyticsの活用方法#
Ultralyticsは3Dシミュレーションエンジンを販売していません。合成データに関する以下の工程をサポートしています。
- 学習と比較。Ultralytics YOLOは、YOLO形式の実画像と合成画像を任意の割合で組み合わせて、独自のハードウェア上でも、Ultralytics PlatformのクラウドGPU上でも学習できます。
- 実画像にバリエーションを追加。Ultralytics Platformの「Generate Similar Images」では、1回のバッチで画像のバリエーションを最大16個生成でき、「照明を変える」「雨を追加する」といった指示も任意で指定できます。
- 生成した画像にラベルを付ける。Ultralytics Platformのスマートアノテーションは、SAM 3.1、YOLO、YOLOEを使用して新しい画像にラベルを付けます。データセット全体を対象にバッチ処理することもできます。
- デフォルトでデータ拡張。Ultralytics YOLOの学習には組み込みのデータ拡張が含まれており、カスタムのAlbumentations変換もサポートされています。
よくある質問
BlenderProc(GPL-3.0)とKubric(Apache-2.0)は、Blenderの3Dシーンからラベル付き画像を生成するオープンソースツールです。ロボティクス向けには、NVIDIA Isaac SimとOmniverse Replicatorも選択肢になります。Omniverseの依存関係には個別のライセンス条件があります。3Dアセットを使わずに多様性を加えるには、データ拡張が無料で、Ultralytics YOLOの学習に組み込まれています。
どのような場合でも、評価には実データを使用してください。学習では、合成画像で実画像の一部を置き換えられるかどうかを判断する前に、実画像のみ、合成画像のみ、両者を混合したデータセットを比較してください。UltralyticsとNVIDIAの欠陥テストでは、生成した欠陥による向上幅はDAGMの各クラスでは大きく、Real-IADではわずかでした。そのため、必ず自分のデータで測定してください。
テストしてください。UltralyticsとNVIDIAのテストでは、合成画像の数を実画像の学習画像の25%または100%に制限しました。少量から始め、実画像の検証画像で比率を選び、最終確認用に実画像のテストセットを分けておいてください。
手法によって異なります。3Dシミュレーションツールは画像ごとにラベルを生成します。データ拡張では既存のラベルが変換されます。生成ツールは既存のシーンを元にする場合でも、オブジェクトの形状が変わったり移動したりする可能性があるため、ラベルの確認が必要です。Ultralytics Platformの「Generate Similar Images」はラベルのない画像を追加するため、学習前にアノテーションを行ってください。
UnityはPerceptionパッケージを廃止し、サポートを終了しています(GitHubリポジトリを参照)。2023年8月、Calcalistは、合成データ企業のDatagenが残っていた従業員のほぼ全員を解雇した後、閉鎖の危機にあると報じました。現在ツールを選ぶ場合は、現在もメンテナンスされていることを確認してください。
両者には重なる部分がありますが、同じではありません。データ拡張は、画像の反転、色の変更、合成など、すでにある画像を変換します。合成データは、3Dシーンのレンダリングや生成モデルによって新しい画像を作成します。両者を組み合わせ、日常的な変化にはデータ拡張を、特定の不足を補うには合成データを使うことができます。
執筆者
コメント
質問したり、結果を共有したり、ほかの人をサポートしたりできます。










