Ultralytics YOLOモデルでトレーニング、検証、予測、エクスポート、ベンチマークを行う方法
Ultralytics YOLOモデルで、トレーニング、検証、予測、エクスポート、ベンチマークを行う方法をご紹介します。

Ultralyticsの世界を掘り下げ、さまざまなYOLOモデルで利用できる各種モードについて見ていきましょう。カスタム物体検出モデルのトレーニングでも、セグメンテーションの作業でも、これらのモードを理解することは重要なステップです。さっそく始めましょう。
Ultralyticsのドキュメントでは、モデルに利用できる複数のモードを確認できます。これらは、トレーニング、検証、推論、エクスポート、ベンチマーク、トラッキングなどに利用できます。各モードには固有の目的があり、モデルのパフォーマンスとデプロイを最適化するのに役立ちます。
トレーニングモード#
まずはトレーニングモードを見ていきましょう。ここではモデルを構築し、改良します。ドキュメントには詳細な手順と動画ガイドが掲載されているため、カスタムモデルのトレーニングを簡単に始められます。
モデルのトレーニングでは、新しいデータセットをモデルに与え、さまざまなパターンを学習させます。トレーニング済みのモデルは、学習した新しい物体をリアルタイムで検出するために使用できます。トレーニングを開始する前に、データセットにYOLO形式でアノテーションを付けることが重要です。
検証モード#
次に、検証モードを見ていきましょう。検証は、ハイパーパラメータの調整とモデルが適切に動作することの確認に不可欠です。Ultralyticsでは、自動設定、複数のメトリクスへの対応、Python APIとの互換性など、さまざまな検証オプションを提供しています。以下のコマンドを使用すれば、コマンドラインインターフェース(CLI)から直接検証を実行することもできます。
なぜ検証するのか#
検証が重要な理由:
- 精度:モデルが物体を正確に検出できることを確認します。
- 利便性:検証プロセスを効率化します。
- 柔軟性:複数の検証方法を提供します。
- ハイパーパラメータのチューニング:より優れたパフォーマンスが得られるようにモデルを最適化します。
Ultralyticsでは、Pythonスクリプトにコピーして貼り付けられるユーザー向けのサンプルも提供しています。これらのサンプルには、画像サイズ、バッチサイズ、デバイス(CPUまたはGPU)、交差オーバーユニオン(IoU)などのパラメータが含まれています。
推論モード#
モデルのトレーニングと検証が完了したら、予測を行います。推論モードでは、新しいデータに対して推論を実行し、モデルの動作を確認できます。このモードは、実世界のデータでモデルのパフォーマンスをテストするのに最適です。以下のPythonコードスニペットを使えば、画像に対して予測を実行できます。
エクスポートモード#
検証と予測の後、モデルをデプロイしたい場合があります。エクスポートモードでは、モデルをONNXやTensorRTなどのさまざまな形式に変換できるため、異なるプラットフォームへのデプロイが容易になります。
ベンチマークモード#
最後に、ベンチマークモードがあります。ベンチマークは、さまざまなシナリオでモデルのパフォーマンスを評価するために不可欠です。このモードは、リソース配分、最適化、コスト効率について、十分な情報に基づいて判断するのに役立ちます。
ベンチマークの実行方法#
ベンチマークを実行するには、ドキュメントに掲載されているユーザー向けサンプルを使用できます。これらのサンプルでは、ONNXやTensorRTを含む主要なメトリクスとエクスポート形式を扱っています。また、整数量子化(INT8)や浮動小数点量子化(FP16)などのパラメータを指定して、設定の違いがパフォーマンスに与える影響を確認することもできます。
実世界でのベンチマーク例#
実世界でのベンチマーク例を見てみましょう。PyTorchモデルをベンチマークすると、RTX 3070 GPU上で推論速度が68ミリ秒であることが分かります。TorchScriptにエクスポートした後は推論速度が4ミリ秒に短縮され、大幅な改善が見られます。
ONNXモデルでは、推論速度が21ミリ秒になります。これらのモデルをCPU(Intel i9第13世代)でテストすると、結果にばらつきが見られます。TorchScriptは115ミリ秒で動作する一方、ONNXは84ミリ秒と、より優れた結果を示します。最後に、Intelハードウェア向けに最適化されたOpenVINOでは、わずか23ミリ秒を達成します。

図1. Nicolai NielsenがUltralytics YOLOモデルでベンチマークを実行する方法を実演しています。
ベンチマークの重要性#
ベンチマークによって、異なるハードウェアやエクスポート形式がモデルのパフォーマンスにどのような影響を与えるかを確認できます。特にカスタムハードウェアやエッジデバイスへのデプロイを予定している場合は、モデルのベンチマークが重要です。このプロセスにより、モデルが対象環境向けに最適化され、可能な限り最高のパフォーマンスを発揮できることが保証されます。
結論#
まとめると、Ultralyticsのドキュメントにある各モードは、YOLOモデルのトレーニング、検証、推論、エクスポート、ベンチマークを行うための強力なツールです。各モードがモデルの最適化とデプロイの準備において重要な役割を果たします。
コミュニティをぜひご覧いただき、参加してください。また、提供されているコードスニペットをプロジェクトで試してみてください。これらのツールを使えば、高性能なモデルを作成し、どのような環境でも効率的に実行できるようにすることができます。









