Yolo 深圳
深セン
今すぐ参加

Ultralytics YOLOv5 Comet使い方

Ultralytics

5分で読めます

2022年10月11日

Ultralytics YOLOv5 モデル最適化のためにUltralytics Comet どのように提携しているかをご覧ください:リアルタイムの追跡、合理化されたコラボレーション、再現性の向上。

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

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

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

さらに、Comet 、作業track 見失うことなく、あらゆる規模のチーム間で結果を共有し、コラボレーションすることを容易にします!

YOLOv5は、コンピュータ・ビジョンの旅の出発点として最適です。モデルのパフォーマンスを向上させ、生産可能な状態にするには、次のような実験追跡ツールで結果を記録する必要があります。 Comet.

Comet YOLOv5 統合は、3つの主な機能を提供する:

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


このガイドでは、YOLOv5 Comet使い方を説明する。

あなたの実験をリアルタイムでtrack する準備はできましたか?さっそく始めよう!

はじめに

1.Cometインストールする

cometインストールする

2.Comet 認証情報の構成

を使用してComet 設定するには、2つの方法があります。 YOLOv5.

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


環境変数

exportCOMET COMET# デフォルトはyolov5' です。


Comet 設定ファイル

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

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

#COCO128 上で YOLOv5s を 5 エポック学習させるspython train.py --img 640 --batch 16 --epochs 5 --data coco128yaml --weights yolov5s.pt

以上です!

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

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

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

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

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

自動ログ記録

デフォルトでは、Comet 以下の項目を記録する:

メトリクス

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

パラメータ

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

可視化

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

Comet ロギングの設定

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

exportCOMET#Comet 'オンライン'または'オフライン'モードのどちらで実行するかを設定します.デフォルトはonlineexportCOMET# 保存されるモデルの名前を設定します.デフォルトはyolov5exportCOMET#Comet コンフュージョンマトリックスのログを記録しないように設定します.デフォルトはtrueexportCOMET#Comet記録する画像の予測総数を制御します.デフォルトは100です。exportCOMET# 学習の終了時に、検出された各クラスの評価メトリクスをログに記録するように設定します。デフォルトはfalseです。 exportCOMET# 別のチェックポイントからトレーニングを再開したい場合に設定します。デフォルトは 'last.pt'exportCOMET# バッチレベルでトレーニングメトリクスのログを記録したい場合に設定します。デフォルトはfalseです。 exportCOMET# モデルの予測をログに記録しない場合は、falseに設定します。

Cometチェックポイントの記録

Comet モデルのログはデフォルトでは無効になっています。これを有効にするには、トレーニングスクリプトにsave-period引数を渡します。

python train.py \

--img 640 ˶

--batch 16 ˶

--epochs 5 ˶

--data coco128yaml ˶

--weights yolov5s.pt ˶

--save-period 1

モデル予測のログ記録

デフォルトでは、モデルの予測(画像、グランドトゥルース・ラベル、バウンディングボックス)がCometログされます。bboxコマンドライン引数を渡すことで、ログに記録される予測と関連する画像の頻度を制御できます。予測は、Cometオブジェクト検出カスタムパネルを使用して視覚化できます。この頻度は、エポックごとのデータのN番目のバッチごとに対応します。以下の例では、各エポックの2バッチ目ごとにデータを記録しています。

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

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

python train.py ¦--img 640 ¦--batch 16 ¦--epochs 5 ¦--data coco128yaml ¦--weights yolov5s.ptbbox 2

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

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

envCOMET train.py ˶--img 640 ˶--batch 16 ˶--epochs 5 ˶--data coco128yaml ˶--weights yolov5s.ptbbox 1

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

COMET 環境変数を使用して、各クラスのmAP、precision、recall、および f1 を記録します。

envCOMET python train.py ˶--img 640 ˶--batch 16 ˶--epochs 5 ˶--data coco128yaml ˶--weights yolov5s.pt

データセットをComet Artifactsにアップロードする

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

データセットは、YOLOv5 ドキュメントに記述されている方法で構成されている。データセットのconfigyaml ファイルは、coco128yaml ファイルと同じ書式に従わなければならない。

python train.py ¦--img 640 ¦--batch 16 ¦--epochs 5 ¦--data coco128yaml ¦--weights yolov5s.pt ¦--upload_dataset

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

YOLOv5Comet 人工物タブ

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

Comet、YOLOv5プレビューデータ

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

Comet、YOLOv5YAMLファイルからメタデータを記録する

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

Comet データセットを使用したい場合は、データセットyaml ファイルのパス変数を設定して、以下のアーティファクトリソースURLを指すようにします。

# artifactyaml ファイルの内容 パス:comet:///:"

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

python train.py ¦--img 640 ¦--batch 16 ¦--epochs 5 ¦--data artifactyaml ¦--weights yolov5s.pt

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

Comet 実験ワークフロー,YOLOv5

トレーニング実行の再開

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

ランパスは以下のフォーマットであるcomet

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

python train.py ¶--resumecomet://"

Comet ハイパーパラメータ探索

YOLOv5 5はCometオプティマイザーとも統合されており、Comet UIでハイパーパラメータースイープを簡単に視覚化できる。

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

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

サンプルファイルは以下にあります:

comet.jsonpython comet.pycomet"comet.json"

hpo.pyスクリプトは、train.pyと同じ引数を受け入れます。スイープに追加の引数を渡したい場合は、スクリプトの後に追加してください。

python comet.pycomet"comet.json" ˶--save-period 1bbox 1

スイープの並列実行

comet optimizer -jcomet.pycomet.json"

Comet 、スイープの結果を視覚化するさまざまな方法を提供します。掃引が完了したプロジェクトをご覧ください:

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

お問い合わせ

Comet統合により、YOLOv5 モデルの管理、可視化、最適化が可能になります。

YOLOv5 トレーニング、検証、導入に関する質問やヒントを共有する場ですUltralytics

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

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

無料ではじめる