YOLO26の紹介: 次世代のビジョンAI。
Ultralytics
統合

Ultralytics YOLOv5とCometの使い方

UltralyticsがCometと提携して、Ultralytics YOLOv5モデルの最適化(リアルタイム追跡、効率的なコラボレーション、再現性の向上)を行う方法を発見してください。

ULUltralyticsチーム
5 min read
CometによるUltralytics YOLOv5モデルトレーニングの追跡

Ultralyticsでは、YOLOv5のような優れたオープンソースツールの研究開発資金を確保し、誰でも無料で利用できるようにするため、他のスタートアップ企業と商業的なパートナーシップを結んでいます。この記事には、それらのパートナーへのアフィリエイトリンクが含まれている場合があります。

最新のパートナーであるCometは、データサイエンティスト、エンジニア、チームリーダーが機械学習およびディープラーニングモデルを高速化・最適化するためのツールを開発しています。

Cometは、モデル、データセット、メトリクスを追跡するための強力なツールです。システム環境変数や環境変数もログに記録し、すべての実行において再現性とスムーズなデバッグを保証します。まるで魔法のように必要なメモを記録してくれるバーチャルアシスタントのような存在です。モデルのメトリクスをリアルタイムで追跡・可視化し、ハイパーパラメータ、データセット、モデルのチェックポイントを保存しましょう。また、Comet Custom Panelsを使用してモデルの予測結果を可視化することも可能です。

さらに、Cometを使用すれば作業の進捗を常に把握でき、結果の共有やあらゆる規模のチームとのコラボレーションが容易になります。

YOLOv5は、コンピュータビジョンの学習を始めるのに最適な出発点です。モデルのパフォーマンスを向上させ、実運用環境に備えるには、Cometのような実験追跡ツールで結果を記録する必要があります。

CometとYOLOv5の統合により、3つの主要な機能が提供されます。

  • 自動ログ記録およびカスタムログ記録機能
  • デバッグと再現性のためにデータセットとモデルをアーティファクトとして保存する機能
  • Cometのカスタムパネルを使用して表示を整理する機能

このガイドでは、YOLOv5とCometの使用方法を解説します。

それでは、リアルタイムで実験を追跡する準備はできましたか?さあ、始めましょう!

Link to this sectionはじめに#

Link to this sectionCometをインストール#

pip install comet_ml

Link to this sectionCometの認証情報を設定#

YOLOv5でCometを設定するには2つの方法があります。

認証情報を環境変数経由で設定するか、作業ディレクトリに .comet.config ファイルを作成してそこに設定するかのいずれかを選択できます。

Link to this section環境変数#

export COMET_API_KEY=<Your API Key>
export COMET_PROJECT_NAME=<Your Comet Project Name> # This will default to 'yolov5'

Link to this sectionComet構成ファイル#

[comet]
api_key=<Your API Key>
project_name=<Your Comet Project Name> # This will default to 'yolov5'

Link to this sectionトレーニングスクリプトの実行#

# Train YOLOv5s on COCO128 for 5 epochs
python train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt

これだけです!

Cometは、ハイパーパラメータ、コマンドライン引数、トレーニングおよび検証メトリクスを自動的にログに記録します。実行結果はComet UIで可視化・分析できます。

CometダッシュボードでのYOLOv5の実験

Link to this sectionぜひお試しください!#

完了した実行の例はこちらをご覧ください。

あるいは、こちらのColab Notebookでご自身でお試しいただくのもおすすめです。

Link to this section自動ログ記録#

デフォルトで、Cometは以下の項目をログに記録します。

Link to this sectionメトリクス#

  • トレーニングおよび検証データに対するBox Loss、Object Loss、Classification Loss
  • 検証データに対するmAP_0.5、mAP_0.5:0.95メトリクス
  • 検証データに対する精度(Precision)と再現率(Recall)

Link to this sectionパラメータ#

  • モデルのハイパーパラメータ
  • コマンドラインオプション経由で渡されたすべてのパラメータ

Link to this section可視化#

  • 検証データに対するモデル予測の混同行列(Confusion Matrix)
  • 全クラスにわたるPR曲線とF1曲線のプロット
  • クラスラベルのコレログラム

Link to this sectionCometログ記録の設定#

トレーニングスクリプトに渡すコマンドラインフラグや環境変数を通じて、Cometが追加データをログに記録するように設定できます。

export COMET_MODE=online # Set whether to run Comet in 'online' or 'offline' mode. Defaults to online
export COMET_MODEL_NAME=<your model name> # Set the name for the saved model. Defaults to yolov5
export COMET_LOG_CONFUSION_MATRIX=false # Set to disable logging a Comet Confusion Matrix. Defaults to true
export COMET_MAX_IMAGE_UPLOADS=<number of allowed images to upload to Comet> # Controls how many total image predictions to log to Comet. Defaults to 100.
export COMET_LOG_PER_CLASS_METRICS=true # Set to log evaluation metrics for each detected class at the end of training. Defaults to false
export COMET_DEFAULT_CHECKPOINT_FILENAME=<your checkpoint filename> # Set this if you would like to resume training from a different checkpoint. Defaults to 'last.pt'
export COMET_LOG_BATCH_LEVEL_METRICS=true # Set this if you would like to log training metrics at the batch level. Defaults to false.
export COMET_LOG_PREDICTIONS=true # Set this to false to disable logging model predictions

Link to this sectionCometを使用したチェックポイントの記録#

Cometへのモデルの記録はデフォルトで無効になっています。有効にするには、トレーニングスクリプトに save-period 引数を渡してください。これにより、指定した間隔で記録されたチェックポイントがCometに保存されます。

python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data coco128.yaml \
  --weights yolov5s.pt \
  --save-period 1

Link to this sectionモデル予測の記録#

デフォルトで、モデルの予測(画像、正解ラベル、バウンディングボックス)はCometに記録されます。bbox_interval コマンドライン引数を渡すことで、記録される予測と関連画像の頻度を制御できます。予測結果は、Cometの「Object Detection」カスタムパネルを使用して可視化できます。この頻度は、エポックごとのデータバッチのN個目に対応しています。以下の例では、各エポックでデータの2バッチごとに記録しています。

注意:YOLOv5の検証データローダーのデフォルトのバッチサイズは32ですので、それに応じて記録頻度を設定する必要があります。

パネルを使用したプロジェクト例はこちらです。

python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data coco128.yaml \
  --weights yolov5s.pt \
  --bbox_interval 2

Link to this sectionCometに記録される予測画像の数の制御#

YOLOv5から予測を記録する際、Cometは各予測セットに関連付けられた画像を記録します。デフォルトでは最大100枚の検証画像が記録されます。COMET_MAX_IMAGE_UPLOADS 環境変数を使用して、この数を増減させることができます。

env COMET_MAX_IMAGE_UPLOADS=200 python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data coco128.yaml \
  --weights yolov5s.pt \
  --bbox_interval 1

Link to this sectionクラスレベルメトリクスの記録#

COMET_LOG_PER_CLASS_METRICS 環境変数を使用して、各クラスのmAP、精度、再現率、F1を記録します。

env COMET_LOG_PER_CLASS_METRICS=true python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data coco128.yaml \
  --weights yolov5s.pt

Link to this sectionデータセットのComet Artifactsへのアップロード#

Comet Artifactsを使用してデータを保存したい場合は、upload_dataset フラグを使用します。

データセットはYOLOv5ドキュメントで説明されている形式で整理されます。データセット設定のyamlファイルは、coco128.yamlファイルと同じ形式に従う必要があります。

python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data coco128.yaml \
  --weights yolov5s.pt \
  --upload_dataset

アップロードされたデータセットは、Cometワークスペースの「Artifacts」タブで見つけることができます。

CometのArtifactsタブ、YOLOv5

データはComet UIで直接プレビューできます。

Cometでのデータプレビュー、YOLOv5

Artifactsにはバージョン管理機能があり、データセットに関するメタデータの追加もサポートしています。Cometはデータセットのyamlファイルからメタデータを自動的に記録します。

CometでのYAMLファイルからのメタデータログ、YOLOv5

Link to this section保存されたArtifactの使用#

Comet Artifactsのデータセットを使用する場合は、データセットのyamlファイルのpath変数を、以下のArtifactリソースURLを指すように設定します。

# contents of artifact.yaml file
path: "comet://<workspace name>/<artifact name>:<artifact version or alias>"

次に、以下の方法でこのファイルをトレーニングスクリプトに渡します。

python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data artifact.yaml \
  --weights yolov5s.pt

Artifactsを使用すると、実験ワークフローを通じてデータがどのように流れるかという系列を追跡することもできます。ここでは、アップロードされたデータセットを使用したすべての実験を示すグラフを確認できます。

Cometの実験ワークフロー、YOLOv5

Link to this sectionトレーニング実行の再開#

インターネット接続の切断など、何らかの理由でトレーニング実行が中断された場合、resume フラグとComet Run Pathを使用して実行を再開できます。

Run Pathは、comet://<your workspace name>/<your project name>/<experiment id>という形式です。

これにより、中断前の状態に復元されます。これには、チェックポイントからのモデルの復元、すべてのハイパーパラメータとトレーニング引数の復元、および元の実行で使用されていた場合にCometデータセットArtifactsをダウンロードすることが含まれます。再開された実行は、Comet UI内の既存の実験への記録を継続します。

python train.py \
  --resume "comet://<your run path>"

Link to this sectionComet Optimizerを使用したハイパーパラメータ探索#

YOLOv5はCometのOptimizerとも統合されており、Comet UIでハイパーパラメータスイープを簡単に可視化できます。

Link to this sectionOptimizerスイープの設定#

Comet Optimizerを設定するには、スイープに関する情報を含むJSONファイルを作成する必要があります。

サンプルファイルが utils/loggers/comet/optimizer_config.json に用意されています。

python utils/loggers/comet/hpo.py \
  --comet_optimizer_config "utils/loggers/comet/optimizer_config.json"

hpo.py スクリプトは train.py と同じ引数を受け取ります。スイープに追加の引数を渡したい場合は、スクリプトの後ろに追加するだけです。

python utils/loggers/comet/hpo.py \
  --comet_optimizer_config "utils/loggers/comet/optimizer_config.json" \
  --save-period 1 \
  --bbox_interval 1

Link to this sectionスイープを並列実行する#

comet optimizer -j <num_workers> utils/loggers/comet/hpo.py \
  utils/loggers/comet/optimizer_config.json

Cometには、スイープの結果を可視化するための多くの方法が用意されています。スイープが完了したプロジェクトはこちらをご覧ください。

Cometでのスイープ結果の可視化、YOLOv5

Link to this section連絡先#

トレーニングから実運用環境の監視まで、YOLOv5モデルの管理、可視化、最適化にCometとの統合を活用してください。

そしてもちろん、YOLOv5のトレーニング、検証、デプロイに関する質問やヒントを共有できる場所として、Ultralyticsコミュニティにもぜひご参加ください。

Explore solutions

Real-time AI that works with your team

ロボティクスにおけるAI

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律航行、認識、物体追跡、リアルタイム制御を推進します。

詳細はこちら
Real-time AI that works with your team

物流におけるAI

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物の検査、仕分け、車両追跡、リアルタイムの倉庫安全モニタリングが可能になります。

詳細はこちら
Real-time AI that works with your team

小売業界におけるAI

Ultralytics YOLOモデルで小売を再定義しましょう。ビジョンAIは、在庫追跡、棚のモニタリング、キュー管理、そしてより賢明な顧客インサイトを促進します。

詳細はこちら
Real-time AI that works with your team

ヘルスケアにおけるAI

Ultralytics YOLOモデルを使用してヘルスケアソリューションを構築しましょう。ヘルスケア分野におけるビジョンAIは、より高速な医療画像診断、よりスマートな診断、患者モニタリングを推進します。

詳細はこちら
Real-time AI that works with your team

製造におけるAI

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPEコンプライアンス、組立ラインの自動化を促進します。

詳細はこちら
Real-time AI that works with your operation

自動車におけるAI

Ultralytics YOLOモデルを使用して、自動車分野にコンピュータビジョンを適用しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。

詳細はこちら
Real-time AI tailored to your operation

農業におけるAI

Ultralytics YOLOモデルを使用して、スマート農業にビジョンAIを導入しましょう。作物モニタリング、家畜のトラッキング、精密農業を強化し、より高くスマートな収穫を実現します。

詳細はこちら
Real-time AI that works with your team

ロボティクスにおけるAI

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律航行、認識、物体追跡、リアルタイム制御を推進します。

詳細はこちら
Real-time AI that works with your team

物流におけるAI

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物の検査、仕分け、車両追跡、リアルタイムの倉庫安全モニタリングが可能になります。

詳細はこちら
Real-time AI that works with your team

小売業界におけるAI

Ultralytics YOLOモデルで小売を再定義しましょう。ビジョンAIは、在庫追跡、棚のモニタリング、キュー管理、そしてより賢明な顧客インサイトを促進します。

詳細はこちら
Real-time AI that works with your team

ヘルスケアにおけるAI

Ultralytics YOLOモデルを使用してヘルスケアソリューションを構築しましょう。ヘルスケア分野におけるビジョンAIは、より高速な医療画像診断、よりスマートな診断、患者モニタリングを推進します。

詳細はこちら
Real-time AI that works with your team

製造におけるAI

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPEコンプライアンス、組立ラインの自動化を促進します。

詳細はこちら
Real-time AI that works with your operation

自動車におけるAI

Ultralytics YOLOモデルを使用して、自動車分野にコンピュータビジョンを適用しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。

詳細はこちら
Real-time AI tailored to your operation

農業におけるAI

Ultralytics YOLOモデルを使用して、スマート農業にビジョンAIを導入しましょう。作物モニタリング、家畜のトラッキング、精密農業を強化し、より高くスマートな収穫を実現します。

詳細はこちら
Real-time AI that works with your team

ロボティクスにおけるAI

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律航行、認識、物体追跡、リアルタイム制御を推進します。

詳細はこちら
Real-time AI that works with your team

物流におけるAI

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物の検査、仕分け、車両追跡、リアルタイムの倉庫安全モニタリングが可能になります。

詳細はこちら
Real-time AI that works with your team

小売業界におけるAI

Ultralytics YOLOモデルで小売を再定義しましょう。ビジョンAIは、在庫追跡、棚のモニタリング、キュー管理、そしてより賢明な顧客インサイトを促進します。

詳細はこちら
Real-time AI that works with your team

ヘルスケアにおけるAI

Ultralytics YOLOモデルを使用してヘルスケアソリューションを構築しましょう。ヘルスケア分野におけるビジョンAIは、より高速な医療画像診断、よりスマートな診断、患者モニタリングを推進します。

詳細はこちら
Real-time AI that works with your team

製造におけるAI

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPEコンプライアンス、組立ラインの自動化を促進します。

詳細はこちら
Real-time AI that works with your operation

自動車におけるAI

Ultralytics YOLOモデルを使用して、自動車分野にコンピュータビジョンを適用しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。

詳細はこちら
Real-time AI tailored to your operation

農業におけるAI

Ultralytics YOLOモデルを使用して、スマート農業にビジョンAIを導入しましょう。作物モニタリング、家畜のトラッキング、精密農業を強化し、より高くスマートな収穫を実現します。

詳細はこちら

AIの未来を共に築き上げましょう!

機械学習の未来とともに旅を始めましょう