ウルトラリティクス

Ultralytics は、画像分類、オブジェクト検出、画像セグメンテーション、ポーズ推定などのタスクにおける最先端のコンピュータビジョンモデルのホームです。リアルタイムオブジェクト検出モデルのYOLOシリーズの最新バージョンである YOLOv8 をホストするだけでなく、他にも SAM (Segment Anything Model)RT-DETRYOLO-NAS などの強力なコンピュータビジョンモデルも備えています。これらのモデルの実装を提供するだけでなく、Ultralytics は、これらのモデルを使ったトレーニング、ファインチューニング、適用のための使いやすい API を使ったエンドツーエンドのワークフローも提供しています。

始めましょう

  1. ultralyticswandb をインストールします。

    ```shell
    pip install --upgrade ultralytics==8.0.238 wandb
    
    # または
    # conda install ultralytics
    ```
    
    ```bash
    !pip install --upgrade ultralytics==8.0.238 wandb
    ```
    

    開発チームは ultralyticsv8.0.238 以下とのインテグレーションをテストしました。インテグレーションに関する問題を報告するには、タグ yolov8 を付けて GitHub issue を作成してください。

実験管理とバリデーション結果の可視化

このセクションでは、Ultralytics モデルを使ったトレーニング、ファインチューニング、バリデーションの典型的なワークフローと、実験管理、モデルのチェックポイント、モデルのパフォーマンスの可視化を W&B を使用して行う方法を示します。

このインテグレーションについては、次のレポートで確認することもできます:Supercharging Ultralytics with W&B

Ultralytics と W&B のインテグレーションを使用するには、wandb.integration.ultralytics.add_wandb_callback 関数をインポートします。

import wandb
from wandb.integration.ultralytics import add_wandb_callback

from ultralytics import YOLO

選択した YOLO モデルを初期化し、推論を行う前に add_wandb_callback 関数を呼び出します。これにより、トレーニング、ファインチューニング、バリデーション、または推論を行うときに、実験ログと、地上真実とそれぞれの予測結果を重ね合わせた画像が、自動的に コンピュータビジョンタスクの対話型オーバーレイ で保存され、追加の洞察が 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()

Ultralytics のトレーニングまたはファインチューニングワークフローで W&B により実験管理された様子は次のとおりです。

YOLO Fine-tuning Experiments

エポックごとのバリデーション結果が W&B Table を使用してどのように可視化されるかは次のとおりです。

WandB Validation Visualization Table

予測結果の可視化

このセクションでは、Ultralytics モデルを使った推論と結果の可視化の典型的なワークフローを W&B を使用して示します。

Google Colab でコードを試すことができます: Open in Colab.

このインテグレーションについては、次のレポートで確認することもできます:Supercharging Ultralytics with W&B

Ultralytics と W&B のインテグレーションを使用するには、wandb.integration.ultralytics.add_wandb_callback 関数をインポートする必要があります。

import wandb
from wandb.integration.ultralytics import add_wandb_callback

from ultralytics.engine.model import YOLO

インテグレーションをテストするためにいくつかの画像をダウンロードします。静止画像、ビデオ、またはカメラソースを使用できます。推論ソースの詳細については、Ultralytics のドキュメント を確認してください。

!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 関数を呼び出します。これにより、推論を実行すると、コンピュータビジョンタスク用の対話型オーバーレイ で画像が自動的にログに記録され、追加の洞察が 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 を初期化する必要はありません。ただし、コードが予測のみを含む場合は、明示的に run を作成する必要があります。

対話型の bbox オーバーレイは次のように表示されます。

WandB Image Overlay

W&B 画像オーバーレイに関する詳細情報は こちら で取得できます。

その他のリソース