Ultralytics YOLO27:

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

パラメーター、メトリクス、画像予測、モデルチェックポイントなど、トレーニングの重要な詳細を記録することは、機械学習に欠かせません。これにより、プロジェクトの透明性が保たれ、進捗を測定でき、結果を再現できます。



視聴: Ultralytics YOLOのトレーニングログと指標にCometを使用する方法 🚀

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

# モデルを読み込む
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は実行を自動的に追跡するため、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_PREDICTIONSとCOMET_EVAL_LOG_CONFUSION_MATRIX)では、値1、true、yes、on、y、tはTrueとして解析されます(大文字と小文字は区別されません)。それ以外の値は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(デフォルト)=オンライン、0=オフライン
`COMET_MODE`は非推奨です

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

プロジェクト名#

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

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"  # 生の[0, 1]スコアを記録

概要#

このガイドでは、CometとUltralyticsのYOLO26を統合する方法を説明しました。インストールからカスタマイズまで、実験管理の効率化、リアルタイムの分析情報の取得、プロジェクトのニーズに合わせたロギングの調整方法を紹介しました。

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

さらに、YOLO26の実用的な活用方法、特に画像セグメンテーションタスクについて詳しく知りたい場合は、Cometを使用したYOLO26のファインチューニングに関するこの詳細ガイドをご覧ください。モデルのパフォーマンス向上に役立つ知見と手順を順を追った説明を提供しています。

さらに、Ultralyticsとのその他の注目すべき統合については、豊富なリソースと情報を掲載した統合ガイドページをご覧ください。

よくある質問#

  • 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"変数も引き続き使用できますが、非推奨の警告が表示されます。詳細については、オンラインモードとオフラインモードのセクションをご覧ください。

コメント