Ultralytics YOLO27:

YOLO26トレーニングを強化:Cometでロギングプロセスを簡素化#

パラメーター、メトリクス、画像予測、モデルチェックポイントなどの主要なトレーニング詳細をロギングすることは、機械学習において不可欠です。これにより、プロジェクトの透明性、進捗の測定可能性、結果の再現性が確保されます。



Watch: How to Use Comet for Ultralytics YOLO Model Training Logs and Metrics 🚀

Ultralytics YOLO26はComet(旧称Comet ML)とシームレスに統合され、YOLO26の物体検出モデルのトレーニングプロセスのあらゆる側面を効率的に記録および最適化します。このガイドでは、インストールプロセス、Cometのセットアップ、リアルタイムインサイト、カスタムロギング、オフライン使用について説明し、YOLO26のトレーニングを詳細に記録して優れた結果が得られるように微調整する方法を紹介します。

Comet#

Comet ML experiment tracking dashboard

Cometは、機械学習モデルと実験の追跡、比較、説明、最適化を行うためのプラットフォームです。モデルのトレーニング中にメトリクス、パラメーター、メディアなどをロギングし、見やすいWebインターフェースで実験を監視できます。Cometは、データサイエンティストの迅速な反復、透明性と再現性の向上、プロダクションモデルの開発を支援します。

YOLO26とCometの力を活用#

Ultralytics YOLO26とCometを組み合わせることで、さまざまなメリットが得られます。これには、実験管理の簡素化、迅速な調整のためのリアルタイムインサイト、柔軟でニーズに合わせたロギングオプション、インターネットアクセスが制限されている場合に実験をオフラインでロギングする機能などが含まれます。この統合により、データに基づく意思決定、パフォーマンスメトリクスの分析、優れた結果の達成が可能になります。

インストール#

必要なパッケージをインストールするには、次を実行します。

インストール
# Install YOLO26 and Comet
pip install ultralytics comet_ml

Cometの設定#

必要なパッケージをインストールした後、サインアップしてComet APIキーを取得し、設定する必要があります。

Cometの設定
# Set your Comet API Key
export COMET_API_KEY=YOUR_API_KEY

次に、Cometで認証します。Ultralyticsのコールバックは実験を作成し、YOLOのprojectトレーニング引数をCometプロジェクト名として使用します。

Cometプロジェクトを初期化
import comet_ml

comet_ml.login()

Google Colabノートブックを使用している場合、上記のコードによって初期化用のAPIキーの入力が求められます。

使用方法#

使用方法の説明を確認する前に、Ultralyticsが提供するYOLO26モデルのラインナップをご確認ください。プロジェクトの要件に最適なモデルを選択するのに役立ちます。

使用方法
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")

# Train the model
results = model.train(
    data="coco8.yaml",
    project="comet-example-yolo26-coco128",
    batch=32,
    save_period=1,
    save_json=True,
    epochs=3,
)

トレーニングコードを実行すると、Cometは実行を自動的に追跡するため、Cometワークスペースに実験を作成します。その後、YOLO26モデルのトレーニングプロセスの詳細なロギングを表示するためのリンクが提供されます。

Cometは、追加設定なしで次のデータを自動的にロギングします:mAPや損失などのメトリクス、ハイパーパラメーター、モデルチェックポイント、インタラクティブな混同行列、画像のバウンディングボックス予測。

Cometの可視化によるモデルパフォーマンスの理解#

YOLO26モデルのトレーニングが始まるとCometダッシュボードに表示される内容を詳しく見ていきましょう。ダッシュボードでは、さまざまなビジュアルと統計情報を通じて、自動的にロギングされた情報が表示されます。概要は次のとおりです。

実験パネル

Cometダッシュボードの実験パネルセクションでは、異なる実行とそのメトリクス(セグメントマスク損失、クラス損失、適合率、平均適合率など)を整理して表示します。

Comet ML experiment tracking dashboard

メトリクス

メトリクスセクションでは、ここに示すように専用ペインに表示される表形式でもメトリクスを確認できます。

Comet ML experiment tracking dashboard

インタラクティブな混同行列

混同行列タブにある混同行列では、モデルの分類精度をインタラクティブに評価できます。正しい予測と誤った予測の詳細が表示されるため、モデルの強みと弱みを理解できます。

Comet ML experiment tracking dashboard

システムメトリクス

Cometは、トレーニングプロセスのボトルネックを特定できるよう、システムメトリクスをロギングします。GPU使用率、GPUメモリ使用量、CPU使用率、RAM使用量などのメトリクスが含まれます。これらは、モデルのトレーニング中にリソース使用効率を監視するために不可欠です。

Comet ML experiment tracking dashboard

Cometロギングのカスタマイズ#

Cometでは、環境変数を設定してロギングの動作をカスタマイズできます。これらの設定により、Cometを特定のニーズや好みに合わせて調整できます。Ultralyticsのコールバックは次の環境変数を読み取ります(トレーニング開始前に設定してください)。

環境変数デフォルト説明
COMET_START_ONLINE1実験をオンライン(1)またはオフライン(0)モードで実行します。
COMET_PROJECT_NAMEargs.projectCometワークスペースのプロジェクトです。未設定の場合はYOLOのprojectトレーニング引数にフォールバックします。
COMET_MODEL_NAMEUltralyticsロギングされたモデルアーティファクトに登録する名前です。
COMET_MAX_IMAGE_PREDICTIONS100実行ごとにロギングする検証画像予測の合計数です。
COMET_EVAL_BATCH_LOGGING_INTERVAL1N個おきの検証バッチごとに画像予測をロギングします。
COMET_EVAL_LOG_IMAGE_PREDICTIONStrue画像予測のロギングを有効(true)または無効(false)に切り替えます。
COMET_EVAL_LOG_CONFUSION_MATRIXfalse検証エポックごとに混同行列をロギングします。トレーニング終了時には最終的な行列が常にロギングされます。
COMET_MAX_CONFIDENCE_SCORE100.0ロギング前に検出信頼度スコアに適用する乗数です(CometのUIではパーセントスケールが想定されています)。
COMET_MODE (非推奨)onlineCOMET_START_ONLINEのレガシーエイリアスです("online"1"offline"0)。非推奨の警告が表示されます。

ブール値の切り替え(COMET_EVAL_LOG_IMAGE_PREDICTIONSCOMET_EVAL_LOG_CONFUSION_MATRIX)では、値1trueyesonytTrueとして解析されます(大文字と小文字は区別されません)。その他の値はFalseです。

画像予測のロギング#

実験中にCometがロギングする画像予測の数を制御できます。デフォルトでは、Cometは検証セットから100件の画像予測をロギングします。ただし、要件に合わせてこの数を変更できます。たとえば、200件の画像予測をロギングするには、次のコードを使用します。

import os

os.environ["COMET_MAX_IMAGE_PREDICTIONS"] = "200"

画像予測のロギングを完全に無効にするには(低速な接続でアップロード量を減らす場合など)、COMET_EVAL_LOG_IMAGE_PREDICTIONS"false"に設定します。

import os

os.environ["COMET_EVAL_LOG_IMAGE_PREDICTIONS"] = "false"

バッチロギング間隔#

Cometでは、画像予測のバッチをロギングする頻度を指定できます。COMET_EVAL_BATCH_LOGGING_INTERVAL環境変数がこの頻度を制御します。デフォルト設定は1で、すべての検証バッチから予測をロギングします。この値を調整して、異なる間隔で予測をロギングできます。たとえば4に設定すると、4バッチごとに予測がロギングされます。

import os

os.environ["COMET_EVAL_BATCH_LOGGING_INTERVAL"] = "4"

混同行列のロギングを無効化#

場合によっては、検証セットの混同行列を各エポック後にロギングしたくないことがあります。COMET_EVAL_LOG_CONFUSION_MATRIX環境変数を「false」に設定すると、この機能を無効にできます。混同行列はトレーニング完了後に1回だけロギングされます。

import os

os.environ["COMET_EVAL_LOG_CONFUSION_MATRIX"] = "false"

オンラインモードとオフラインモード#

デフォルトでは、Cometはオンラインモードで実行され、実験データをCometサーバーにストリーミングします。インターネットにアクセスせずにトレーニングする必要がある場合は、トレーニング開始前にCOMET_START_ONLINE=0を設定します。実験データはローカルに保存され、後でcomet upload CLIを使用してアップロードできます。

import os

os.environ["COMET_START_ONLINE"] = "0"  # 1 (default) = online, 0 = offline
`COMET_MODE`は非推奨です

以前のバージョンでは、この目的にCOMET_MODE="offline"を使用していました。この変数は後方互換性のために引き続き認識されますが、非推奨の警告が表示されます。今後はCOMET_START_ONLINEを使用してください。

プロジェクト名#

デフォルトでは、CometのコールバックはYOLOのprojectトレーニング引数をCometに渡します(引数が未設定の場合はNoneとなり、その場合Cometはワークスペースのデフォルトを使用します)。YOLOのトレーニング引数に関係なく、すべての実験を特定のCometワークスペースプロジェクトに送信するには、COMET_PROJECT_NAMEで上書きします。

import os

os.environ["COMET_PROJECT_NAME"] = "my-yolo26-experiments"

モデルアーティファクト名#

COMET_MODEL_NAMEは、ロギングされたモデルアーティファクトにCometが登録する名前を設定します(デフォルトはUltralytics)。共有ワークスペースでモデルのバリエーションを区別するには、これを使用します。

import os

os.environ["COMET_MODEL_NAME"] = "yolo26n-coco128"

信頼度スコアのスケーリング#

検出信頼度スコアは[0, 1]の範囲で出力されますが、Comet UIではデフォルトでパーセントスケールで表示されます。コールバックはロギング前に各スコアへCOMET_MAX_CONFIDENCE_SCORE(デフォルトは100.0)を乗算します。生の確率や別のスケールを使用する場合は調整してください。

import os

os.environ["COMET_MAX_CONFIDENCE_SCORE"] = "1.0"  # log raw [0, 1] scores

まとめ#

このガイドでは、CometとUltralyticsのYOLO26を統合する方法を説明しました。インストールからカスタマイズまで、実験管理の簡素化、リアルタイムインサイトの取得、プロジェクトのニーズに合わせたロギングの調整について学びました。

Cometの公式YOLOv8統合ドキュメントを参照してください。これはYOLO26プロジェクトにも適用できます。

さらに、特に画像セグメンテーションタスクにおけるYOLO26の実用的な応用について詳しく知りたい場合は、Cometを使用したYOLO26のファインチューニングに関するこの詳細なガイドで、モデルのパフォーマンスを向上させるための有用な知見と手順を確認できます。

また、Ultralyticsとのその他の便利な統合については、豊富なリソースと情報を提供する統合ガイドページをご覧ください。

FAQ#

  • CometをUltralytics YOLO26に統合するには、次の手順に従います。

    1. 必要なパッケージをインストールする

      pip install ultralytics comet_ml
    2. Comet APIキーを設定する

      export COMET_API_KEY=YOUR_API_KEY
    3. PythonコードでCometの認証を行う

      import comet_ml
      
      comet_ml.login()
    4. YOLO26モデルをトレーニングしてメトリクスをロギングする

      from ultralytics import YOLO
      
      model = YOLO("yolo26n.pt")
      results = model.train(
          data="coco8.yaml",
          project="comet-example-yolo26-coco128",
          batch=32,
          save_period=1,
          save_json=True,
          epochs=3,
      )

    詳しい手順については、Cometの設定セクションを参照してください。

  • Ultralytics YOLO26をCometと統合すると、次のことが可能になります。

    • リアルタイムインサイトを監視する:トレーニング結果に関する即時フィードバックを取得し、迅速に調整できます。
    • 幅広いメトリクスをロギングする:mAP、損失、ハイパーパラメーター、モデルチェックポイントなどの重要なメトリクスを自動的に取得します。
    • 実験をオフラインで追跡する:インターネットにアクセスできない場合でも、トレーニングの実行をローカルでロギングします。
    • 異なるトレーニング実行を比較する:インタラクティブなCometダッシュボードを使用して、複数の実験を分析および比較します。

    これらの機能を活用することで、機械学習ワークフローを最適化し、パフォーマンスと再現性を向上させることができます。詳しくは、Comet統合ガイドをご覧ください。

  • Cometでは、環境変数を使用してロギング動作を幅広くカスタマイズできます。

    • ロギングする画像予測の数を変更する

      import os
      
      os.environ["COMET_MAX_IMAGE_PREDICTIONS"] = "200"
    • バッチロギング間隔を調整する

      import os
      
      os.environ["COMET_EVAL_BATCH_LOGGING_INTERVAL"] = "4"
    • 混同行列のロギングを無効にする

      import os
      
      os.environ["COMET_EVAL_LOG_CONFUSION_MATRIX"] = "false"
    • Cometプロジェクト名を設定する

      import os
      
      os.environ["COMET_PROJECT_NAME"] = "my-yolo26-experiments"
    • ロギングされたモデルアーティファクト名を設定する

      import os
      
      os.environ["COMET_MODEL_NAME"] = "yolo26n-coco128"

    画像予測の切り替え、信頼度スコアのスケーリング、オンライン/オフラインモードを含む全リストについては、Cometロギングのカスタマイズセクションをご覧ください。

  • YOLO26モデルのトレーニングが開始されると、Cometダッシュボードで幅広いメトリクスと可視化にアクセスできます。主な機能は次のとおりです。

    • 実験パネル:セグメントマスク損失、クラス損失、平均適合率など、さまざまな実行とそのメトリクスを表示します。
    • メトリクス:詳細な分析のために、メトリクスを表形式で確認します。
    • インタラクティブな混同行列:インタラクティブな混同行列で分類精度を評価します。
    • システムメトリクス:GPUとCPUの使用率、メモリ使用量、その他のシステムメトリクスを監視します。

    これらの機能の詳細な概要については、Cometの可視化によるモデルパフォーマンスの理解セクションをご覧ください。

  • はい。ローカルでロギングするには、トレーニング開始前にCOMET_START_ONLINE=0を設定します。

    import os
    
    os.environ["COMET_START_ONLINE"] = "0"

    実験データはディスクに保存され、接続が利用可能になった後、comet upload CLIを使用してCometにアップロードできます。以前のCOMET_MODE="offline"変数も引き続き機能しますが、非推奨の警告が表示されます。詳しくは、オンラインモードとオフラインモードセクションをご覧ください。

コメント