Ultralytics YOLO モデルのトレーニング、検証、予測、エクスポート、およびベンチマークの方法を学びます!
Ultralytics の世界に飛び込み、YOLO モデルごとに利用可能なさまざまなモードを探検してみよう。カスタムオブジェクト検出モデルをトレーニングするにしても、セグメンテーションに取り組むにしても、これらのモードを理解することは非常に重要なステップです。さっそく飛び込んでみよう!
Ultralytics 、トレーニング、検証、 予測、エクスポート、ベンチマーク、追跡など、モデルに利用できるモードがいくつかあります。これらのモードはそれぞれユニークな目的を持ち、モデルのパフォーマンスと展開を最適化するのに役立ちます。
まずはトレインモードを見てみよう。ここでモデルを構築し、改良していきます。ドキュメントには詳しい説明やビデオガイドが掲載されているので、カスタムモデルのトレーニングを簡単に始めることができます。
モデルのトレーニングでは、モデルに新しいデータセットを与え、様々なパターンを学習させる。一度学習されたモデルは、学習された新しいオブジェクトを検出するためにリアルタイムで使用することができます。学習プロセスを開始する前に、YOLO 形式でデータセットに注釈を付けることが不可欠です。
次に、検証モードに飛び込もう。Ultralytics 、自動設定、マルチメトリックのサポート、Python APIとの互換性など、さまざまな検証オプションが用意されています。以下のコマンドを使えば、コマンドラインインターフェイス(CLI)から直接バリデーションを実行することもできます。
バリデーションは非常に重要である:
Ultralytics また、Python スクリプトにコピー&ペーストできるユーザー例も提供しています。これらの例には、画像サイズ、バッチサイズ、デバイス(CPU またはGPU )、IoU(intersection over union)などのパラメータが含まれています。
モデルの学習と検証が完了したら、いよいよ予測を行います。Predictモードでは、新しいデータに対して推論を実行し、モデルの動作を確認することができます。このモードは、実際のデータでモデルのパフォーマンスをテストするのに最適です。
以下のpython コード・スニペットで、画像に対して予測を実行できるようになります!
検証と予測を行った後、モデルをデプロイしたくなるかもしれません。エクスポート・モードでは、モデルをONNX やTensorRT のような様々な形式に変換することができ、異なるプラットフォームへの展開が容易になります。
最後に、ベンチマークモードです。ベンチマークは、さまざまなシナリオでモデルのパフォーマンスを評価するために不可欠です。このモードは、リソース配分、最適化、コスト効率について、十分な情報に基づいた決定を下すのに役立ちます。
ベンチマークを実行するには、ドキュメントのユーザー例を使用します。ONNX TensorRTまた、整数量子化(INT8)や浮動小数点量子化(FP16)などのパラメータを指定して、設定の違いによる性能への影響を確認することもできます。
ベンチマークの実例を見てみよう。PyTorch モデルのベンチマークを行うと、RTX 3070GPU では推論速度が68ミリ秒であることがわかります。TorchScript にエクスポートすると、推論速度は4ミリ秒に低下し、大幅な改善が見られます。
ONNX モデルの推論速度は21ミリ秒である。これらのモデルをCPU (Intel i9 第13世代)でテストしたところ、さまざまな結果が得られた。TorchScript は115ミリ秒で実行され、ONNX は84ミリ秒と、より優れたパフォーマンスを示した。最後に、Intel のハードウェアに最適化されたOpenVINO は、23ミリ秒という驚異的なパフォーマンスを達成した。
ベンチマークは、異なるハードウェアやエクスポートフォーマットがモデルのパフォーマンスにどのような影響を与えるかを示します。モデルをベンチマークすることは、特にカスタムハードウェアやエッジデバイスに展開する予定の場合、非常に重要です。このプロセスにより、モデルがターゲット環境に最適化され、可能な限り最高のパフォーマンスを提供できるようになります。
要約すると、Ultralytics ドキュメントのモードは、YOLO モデルのトレーニング、検証、予測、エクスポート、およびベンチマークを行うための強力なツールです。各モードは、モデルを最適化し、展開の準備をする上で重要な役割を果たします。
私たちのコミュニティに参加し、提供されたコード・スニペットをあなたのプロジェクトで試すことを忘れないでください。これらのツールを使えば、高性能なモデルを作成し、どのような環境でも効率的に動作させることができます。