For the complete documentation index, see llms.txt. This page is also available as Markdown.

YOLO-World

YOLO-World のオープンボキャブラリ物体検出を Serverless Cloud API 経由で使用します

YOLO-Worldは、任意のテキストのクラス名から事前学習なしで物体を検出するオープンボキャブラリー物体検出モデルです。YOLO-Worldの推論は、当社の サーバーレスクラウドAPI.

YOLO-Worldの実行方法の詳細については、 推論ドキュメント.

コードサンプル

YOLO-WorldをHTTPエンドポイント経由で直接実行するには、 curlまたは inference-sdk ラッパーを使用します。

1

APIキーを取得する

Roboflowアカウントを作成し、 RoboflowのAPI設定ページ でキーを見つけ、シェルで利用できるようにします:

export ROBOFLOW_API_KEY="your-key-here"
2

モデルを実行する

次の /yolo_world/infer エンドポイントを curl:

curl --location 'https://serverless.roboflow.com/yolo_world/infer' \
  --header 'Content-Type: application/json' \
  --data '{
    "api_key": "'"$ROBOFLOW_API_KEY"'",
    "image": {"type": "url", "value": "https://media.roboflow.com/quickstart/traffic.jpg"},
    "text": ["car", "truck"],
    "yolo_world_version_id": "v2-s",
    "confidence": 0.05
  }'
1

APIキーを取得する

Roboflowアカウントを作成し、 RoboflowのAPI設定ページ でキーを見つけ、シェルで利用できるようにします:

export ROBOFLOW_API_KEY="your-key-here"
2

依存関係をインストールする

SDKと supervision:

pip install -U inference-sdk supervision
3

モデルを実行する

カスタムクラス名でYOLO-Worldを実行し、続いてsupervisionで予測をデコードして可視化します。

import os
import cv2
import supervision as sv
from inference_sdk import InferenceHTTPClient

image = sv.load_image_from_url("https://media.roboflow.com/quickstart/traffic.jpg")

client = InferenceHTTPClient(
    api_url="https://serverless.roboflow.com",
    api_key=os.environ["ROBOFLOW_API_KEY"],
)

results = client.infer_from_yolo_world(
    inference_input=image,
    class_names=["car", "truck"],
    model_version="v2-s",
    confidence=0.05,
)

detections = sv.Detections.from_inference(results[0])

labels = [
    f"{name} {conf:.2f}"
    for name, conf in zip(detections.data["class_name"], detections.confidence)
]
annotated = sv.BoxAnnotator().annotate(image.copy(), detections)
annotated = sv.LabelAnnotator().annotate(annotated, detections, labels=labels)
cv2.imwrite("annotated.png", annotated)

この class_names 引数は任意のクラス名リストを受け付けます。利用可能な model_version の値: v2-s, v2-m, v2-l, v2-x, s, m, l, x.

推論速度

レイテンシは以下で測定: Roboflow Inference 、1x NVIDIA L4、バッチサイズ1、ウォームアップ後の平均。

モデル
レイテンシ(ms)

yolo-world

12.4

以下で測定: v2-s 2クラスのバリアント。クラスリストを設定するとテキストエンコーダーが1回実行されますが、フレームごとに繰り返されないため、この図には含めていません。

設定する api_url をデプロイ先に合わせます:

  • https://serverless.roboflow.com サーバーレスクラウドAPI用。

  • http://localhost:9001 ローカル Inference サーバー用。

  • あなたの 専用デプロイ プライベートエンドポイントのURL。

Inference(セルフホスト)で使用する

YOLO-Worldは、独自のハードウェア上でも動作し、 inference パッケージでインプロセスに読み込むか、ローカルのInferenceサーバーで提供できます。対応するハードウェア(例えばV100 GPU)ではリアルタイムで動作するため、動画に実用的な選択肢になります。

YOLO-WorldブロックをWorkflowに追加し、検出したいクラスを設定します。次に、 Inference SDK WebRTCクライアント.

ネイティブパッケージでは、YOLO-Worldのチェックポイントは yolo_world/<version>として識別されます。 <version> は次のいずれかです s, m, l, x, v2-s, v2-m, v2-l, v2-xv2- のチェックポイントはより新しく、評価指標でもより高いスコアを示します。

多くのゼロショット検出器と同様に、YOLO-Worldは一般的な対象(車、人、犬)に強く、限定的で細かなカテゴリには弱いです。プロンプトの文言を試して、あなたのシーンに合うものを見つけてください。

最終更新

役に立ちましたか?