Ultralytics
Ultralyticsは、画像分類、オブジェクト検出、画像セグメンテーション、ポーズ推定などのタスクのための最先端のコンピュータビジョンモデルを提供します。ここでは、リアルタイムオブジェクト検出モデルのYOLOシリーズの最新バージョンであるYOLOv8を始め、SAM (Segment Anything Model)、RT-DETR、YOLO-NASなどの強力なコンピュータビジョンモデルもホストしています。さらに、これらのモデルの実装だけでなく、トレーニング、ファインチューニング、適用を簡単に行えるAPIも提供しています。
はじめに
まず、ultralytics
とwandb
をインストールします。
- Command Line
- Notebook
pip install --upgrade ultralytics==8.0.238 wandb
# または
# conda install ultralytics
!pip install --upgrade ultralytics==8.0.238 wandb
注意: 現在のインテグレーションはultralyticsv8.0.238
およびそれ以前のバージョンでテストされています。問題があればhttps://github.com/wandb/wandb/issuesに`yolov8`タグを付けて報告してください。
実験管理と検証結果の可視化
このセクションでは、Ultralyticsモデルを使用したトレーニング、ファインチューニング、検証、および実験管理、モデルのチェックポイント、パフォーマンスの可視化を行う典型的なワークフローを示します。
Google Colabでコードを試してみることもできます:Colabで開く
インテグレーションについての詳細はこのレポートを参照してください:Supercharging Ultralytics with W&B
W&BとUltralyticsを連携させるためには、wandb.integration.ultralytics.add_wandb_callback
関数をインポートする必要があります。
import wandb
from wandb.integration.ultralytics import add_wandb_callback
from ultralytics import YOLO
次に、お好みのYOLO
モデルを初期化し、推論を行う前にadd_wandb_callback
関数を呼び出します。これにより、トレーニング、ファインチューニング、検証、または推論を行う際に、実験ログや予測結果を自動的にログし、W&Bのコンピュータビジョンタスク用のインタラクティブなオーバーレイおよび追加のインサイトが含まれたwandb.Table
として可視化されます。
# YOLOモデルを初期化
model = YOLO("yolov8n.pt")
# Ultralytics用のW&Bコールバックを追加
add_wandb_callback(model, enable_model_checkpointing=True)
# モデルをトレーニング/ファインチューニング
# 各エポックの終わりに、検証バッチの予測がW&Bテーブルに
# インタラクティブなオーバーレイと共にログされます
model.train(project="ultralytics", data="coco128.yaml", epochs=5, imgsz=640)
# W&Bのrunを終了
wandb.finish()
こちらは、W&Bを使用してUltralyticsのトレーニングまたはファインチューニングワークフローを管理した例です:
YOLO Fine-tuning Experiments
こちらは、エポックごとの検証結果をW&Bテーブルで可視化した例です:
WandB Validation Visualization Table
予測結果の可視化
このセクションでは、Ultralyticsモデルを使用して推論を行い、その結果をW&Bを使用して可視化する典型的なワークフローを示します。
Google Colabでコードを試してみることもできます:Colabで開く。
インテグレーションについての詳細はこのレポートを参照してください:Supercharging Ultralytics with W&B
W&BとUltralyticsを連携させるためには、wandb.integration.ultralytics.add_wandb_callback
関数をインポートする必要があります。
import wandb
from wandb.integration.ultralytics import add_wandb_callback
from ultralytics.engine.model import YOLO
次に、いくつかの画像をダウンロードしてインテグレーションをテストします。自分の画像、動画、カメラソースを使用することも可能です。推論ソースについての詳細は公式ドキュメントを参照してください。
!wget https://raw.githubusercontent.com/wandb/examples/ultralytics/colabs/ultralytics/assets/img1.png
!wget https://raw.githubusercontent.com/wandb/examples/ultralytics/colabs/ultralytics/assets/img2.png
!wget https://raw.githubusercontent.com/wandb/examples/ultralytics/colabs/ultralytics/assets/img4.png
!wget https://raw.githubusercontent.com/wandb/examples/ultralytics/colabs/ultralytics/assets/img5.png
次に、wandb.init
を使ってW&B runを初期化します。
# W&Bのrunを初期化
wandb.init(project="ultralytics", job_type="inference")
次に、お好みのYOLO
モデルを初期化し、推論を行う前にadd_wandb_callback
関数を呼び出します。これにより、推論を行う際に自動的に画像がログされ、W&Bのコンピュータビジョンタスク用のインタラクティブなオーバーレイおよび追加のインサイトが含まれたwandb.Table
として可視化されます。
# YOLOモデルを初期化
model = YOLO("yolov8n.pt")
# Ultralytics用のW&Bコールバックを追加
add_wandb_callback(model, enable_model_checkpointing=True)
# 推論を実行し、結果をインタラクティブなオーバーレイ付きでW&Bテーブルに自動的にログ
model(["./assets/img1.jpeg", "./assets/img3.png", "./assets/img4.jpeg", "./assets/img5.jpeg"])
# W&Bのrunを終了
wandb.finish()
注意: トレーニングやファインチューニングのワークフローの場合、wandb.init()
を明示的に初期化する必要はありませんが、コードが推論のみを含む場合、runを明示的に作成する必要があります。
こちらはインタラクティブなバウンディングボックスオーバーレイの例です:
WandB Image Overlay
W&Bの画像オーバーレイの詳細はこちらを参照してください。