YOLO Vision 2025にご期待ください!
2025年9月25日
10:00 — 18:00(英国夏時間)
ハイブリッドイベント
Yolo Vision 2024

CometでUltralytics YOLOv5を使用する方法

Ultralyticsチーム

5分で読めます

2022年10月11日

UltralyticsがUltralytics YOLOv5モデルの最適化のためにCometと提携し、リアルタイムトラッキング、合理化されたコラボレーション、および強化された再現性を実現する方法をご覧ください。

Ultralyticsでは、YOLOv5のような素晴らしいオープンソースツールをすべての人に無料で提供し続けるために、他のスタートアップ企業と提携して、研究開発の資金を調達しています。この記事には、これらのパートナーへのアフィリエイトリンクが含まれている場合があります。

私たちの最新パートナーであるCometは、データサイエンティスト、エンジニア、およびチームリーダーが機械学習および深層学習モデルを加速および最適化するのに役立つツールを構築しています。

Cometは、モデル、データセット、メトリクスを追跡するための強力なツールです。システム変数や環境変数もログに記録するため、再現性が確保され、実行ごとのデバッグがスムーズになります。まるで、記録すべき内容を魔法のように知っているバーチャルアシスタントがいるかのようです。モデルのメトリクスをリアルタイムで追跡および視覚化し、ハイパーパラメータ、データセット、モデルのチェックポイントを保存し、Cometカスタムパネルでモデルの予測を視覚化できます。

さらに、Comet を使用すると、作業の進捗状況を常に把握し、結果を簡単に共有して、あらゆる規模のチームで共同作業を行うことができます。

YOLOv5は、コンピュータビジョンの旅の素晴らしい出発点です。モデルのパフォーマンスを向上させ、本番環境に対応できるようにするには、Cometのような実験追跡ツールで結果をログに記録する必要があります。

CometとYOLOv5の統合は、3つの主な機能を提供します。

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


このガイドでは、CometでYOLOv5を使用する方法について説明します。

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

はじめに

1. Cometをインストールする

Pip install comet_ml

2. Cometの認証情報を設定する

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

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


環境変数

export COMET_API_KEY=export COMET_PROJECT_NAME= # デフォルトでは'yolov5'になります


Comet設定ファイル

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

3. 学習スクリプトの実行

# COCO128データセットでYOLOv5sを5エポック学習させますpython train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt

以上です!

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

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

ご自身でお試しください!

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

さらに良いのは、こちらのColab Notebookでお試しいただくことです。

自動ログ記録

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

メトリクス

  • 学習および検証データに対するBox Loss、Object Loss、およびClassification Loss
  • 検証データに対するmAP_0.5、mAP_0.5:0.95のメトリクス
  • 検証データに対する適合率と再現率

パラメータ

  • モデルハイパーパラメータ
  • コマンドラインオプションを介して渡されるすべてのパラメータ

可視化

  • 検証データに対するモデル予測の混同行列
  • すべてのクラスにおけるPR曲線とF1曲線のプロット
  • クラスラベルのコレログラム

Cometロギングの設定

Cometは、トレーニングスクリプトまたは環境変数に渡されるコマンドラインフラグを介して、追加のデータをログに記録するように構成できます。

export COMET_MODE=online # Cometを'online'または'offline'モードで実行するかを設定します。デフォルトはonlineですexport COMET_MODEL_NAME= #保存されたモデルの名前を設定します。デフォルトはyolov5ですexport COMET_LOG_CONFUSION_MATRIX=false # Cometの混同行列のログ記録を無効にするには、これを設定します。デフォルトはtrueですexport COMET_MAX_IMAGE_UPLOADS= # Cometにログを記録する画像の予測の総数を制御します。デフォルトは100です。export COMET_LOG_PER_CLASS_METRICS=true # トレーニング終了時に、検出された各クラスの評価指標をログに記録するように設定します。デフォルトはfalseですexport COMET_DEFAULT_CHECKPOINT_FILENAME= # 別のチェックポイントからトレーニングを再開する場合は、これを設定します。デフォルトは'last.pt'ですexport COMET_LOG_BATCH_LEVEL_METRICS=true # バッチレベルでトレーニング指標をログに記録する場合は、これを設定します。デフォルトはfalseです。export COMET_LOG_PREDICTIONS=true # モデルの予測のログ記録を無効にするには、これをfalseに設定します

Cometを使用したチェックポイントのログ記録

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

python train.py \

--img 640 \

--batch 16 \

--epochs 5 \

--data coco128.yaml \

--weights yolov5s.pt \

--save-period 1

モデル予測のログ記録

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

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

これはPanelを使用したプロジェクトの例です。

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

Cometに記録される予測画像の数を制御する

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

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

クラスレベルメトリクスのログ記録

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

Comet Artifactsへのデータセットのアップロード

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

データセットは、YOLOv5のドキュメントに記載されている方法で構成されています。データセットのconfig yamlファイルは、coco128.yamlファイルと同じ形式に従う必要があります。

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

アップロードされたデータセットは、Cometワークスペースの[Artifacts]タブにあります。

Comet Artifacts Tab, YOLOv5

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

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

アーティファクトはバージョン管理されており、データセットに関するメタデータの追加もサポートしています。Cometは、データセットのyamlファイルからメタデータを自動的にログに記録します。

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

保存されたアーティファクトの使用

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

# artifact.yamlファイルの内容 パス: "comet:///:"

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

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

アーティファクトを使用すると、実験ワークフローを流れるデータの系統を追跡することもできます。ここでは、アップロードしたデータセットを使用したすべての実験を示すグラフを確認できます。

Comet実験ワークフロー、YOLOv5

トレーニング実行の再開

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

Run Pathの形式は comet:// // /. です。

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

python train.py \--resume "comet://"

Comet Optimizerによるハイパーパラメータ探索

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

オプティマイザースイープの設定

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

スイープの並列実行

comet optimizer -j utils/loggers/comet/hpo.py \utils/loggers/comet/optimizer_config.json"

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

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

お問い合わせ

Cometとの統合を使用して、トレーニングの実行から本番環境の監視まで、YOLOv5モデルの管理、視覚化、最適化を開始します。

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

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

未来の機械学習で、新たな一歩を踏み出しましょう。

無料ではじめる
クリップボードにコピーしました