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

Ultralytics YOLOモデルのトレーニング、検証、予測、エクスポート、ベンチマークの方法をご紹介します!
Ultralyticsの世界に飛び込んで、さまざまなYOLOモデルで利用可能なさまざまなモードを探ってみましょう。カスタムオブジェクト検出モデルをトレーニングするにしても、セグメンテーションに取り組むにしても、これらのモードを理解することは非常に重要なステップです。さっそく飛び込んでみましょう!
Ultralyticsのドキュメントには、トレーニング、検証、 予測、エクスポート、ベンチマーク、追跡など、モデルに利用できるいくつかのモードが記載されています。これらのモードはそれぞれユニークな目的を持ち、モデルのパフォーマンスとデプロイメントを最適化するのに役立ちます。
まずはトレインモードを見てみよう。ここでモデルを構築し、改良していきます。ドキュメントには詳しい説明やビデオガイドが掲載されているので、カスタムモデルのトレーニングを簡単に始めることができます。
モデルのトレーニングでは、モデルに新しいデータセットを与え、様々なパターンを学習させる。一度学習されたモデルは、学習された新しいオブジェクトを検出するためにリアルタイムで使用することができる。学習プロセスを開始する前に、YOLO形式でデータセットに注釈を付けることが不可欠だ。
次に、検証モードに入りましょう。検証は、ハイパーパラメータをチューニングし、モデルの性能を保証するために不可欠です。Ultralyticsには、自動設定、マルチメトリックのサポート、Python APIとの互換性など、さまざまな検証オプションが用意されています。以下のコマンドで、コマンドラインインターフェイス(CLI)から直接検証を実行することもできます。
バリデーションは非常に重要である:
Ultralyticsは、Pythonスクリプトにコピー&ペーストできるユーザー例も提供しています。これらの例には、画像サイズ、バッチサイズ、デバイス(CPUまたはGPU)、交差オーバーユニオン(IoU)などのパラメータが含まれています。
モデルの学習と検証が完了したら、いよいよ予測を行います。Predictモードでは、新しいデータに対して推論を実行し、モデルの動作を確認することができます。このモードは、実際のデータでモデルのパフォーマンスをテストするのに最適です。
以下の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ミリ秒という驚異的なパフォーマンスを達成した。
ベンチマークは、異なるハードウェアやエクスポートフォーマットがモデルのパフォーマンスにどのような影響を与えるかを示します。モデルをベンチマークすることは、特にカスタムハードウェアやエッジデバイスに展開する予定がある場合には極めて重要です。このプロセスにより、モデルがターゲット環境に最適化され、可能な限り最高のパフォーマンスを提供できるようになります。
要約すると、Ultralyticsドキュメントのモードは、YOLOモデルのトレーニング、検証、予測、エクスポート、およびベンチマークを行うための強力なツールです。各モードは、モデルを最適化し、展開の準備をする上で重要な役割を果たします。
私たちのコミュニティに参加し、提供されたコード・スニペットをあなたのプロジェクトで試すことを忘れないでください。これらのツールを使えば、高性能なモデルを作成し、どのような環境でも効率的に動作させることができます。