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

Moondream2

オープンボキャブラリ検出に Moondream2 を、Dedicated Deployment またはセルフホスト Inference で使用します

Moondream2はコンパクトな視覚言語モデルです。Roboflow Inferenceでは、オープンボキャブラリーの物体検出器として提供されます。クラス名をプロンプトとして渡すと、該当する領域のバウンディングボックスが返されます。

Moondream2はServerless Cloud APIでは利用できません。次の環境で実行してください。 専用デプロイメント または セルフホストの Inference.

コード例

1

API キーを取得する

Roboflow アカウントを作成し、キーを次の場所で見つけてください。 Roboflow API 設定ページ そしてシェルから使えるようにします。

export ROBOFLOW_API_KEY="your-key-here"
2

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

次をインストールします。 Inference SDKsupervision:

pip install -U inference-sdk supervision opencv-python
3

モデルを実行する

設定してください api_url 専用デプロイメントのURLまたはローカルの推論サーバーに。

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

image = sv.load_image_from_url("https://media.roboflow.com/notebooks/examples/dog.jpeg")
client = InferenceHTTPClient(
    api_url="https://your-deployment.roboflow.cloud",
    api_key=os.environ["ROBOFLOW_API_KEY"],
)
result = client.infer_lmm(
    image,
    model_id="moondream2",
    prompt="dog",
)

preds = result["predictions"]
xyxys = [
    [p["x"] - p["width"] / 2, p["y"] - p["height"] / 2,
     p["x"] + p["width"] / 2, p["y"] + p["height"] / 2]
    for p in preds
]
detections = sv.Detections(
    xyxy=np.array(xyxys, dtype=float),
    class_id=np.array([p.get("class_id", 0) for p in preds]),
    confidence=np.array([p.get("confidence", 1.0) for p in preds], dtype=float),
    data={"class_name": np.array([p["class"] for p in preds])},
)
labels = [f"{p['class']} {p.get('confidence', 1.0):.2f}" for p in preds]
annotated = sv.BoxAnnotator().annotate(image.copy(), detections)
annotated = sv.LabelAnnotator().annotate(annotated, detections, labels=labels)
cv2.imwrite("dog_annotated.png", annotated)

推論速度

以下で測定したレイテンシ Roboflow Inference 1台のNVIDIA L4、バッチサイズ1で、1枚の画像に対してキャプションを生成します。Moondream2は出力の長さを固定できないため、レイテンシは応答によって変動します。

エイリアス
レイテンシ(ms)

moondream2

1669

設定してください api_url をデプロイ先に合わせてください:

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

Moondream2は、次の方法でも直接読み込めます。 inference パッケージ。検出に加えて、このモデルは画像キャプション、ポイントプロンプト検出、視覚的質問応答をサポートしています。

1

パッケージをインストールしてください

pip install "inference[transformers]"

使用 inference-gpu[transformers] を GPU マシン上で。

2

モデルを実行する

from PIL import Image

from inference.models.moondream2.moondream2 import Moondream2

model = Moondream2(api_key="YOUR_API_KEY")

image = Image.open("dog.jpeg")
result = model.query(image, "この画像には犬が何匹いますか?")

print(result)

Workflows での実行モード

次のように使う場合、 Workflow、Moondream2は次の2つのモードのいずれかで動作します:

  • ローカル実行: モデルはあなたの Inference サーバー上で実行されます(GPU 推奨)。

  • リモート実行: モデルはリモートの Inference サーバー上で HTTP 経由で呼び出され、 infer_lmm() クライアントメソッド

最終更新

役に立ちましたか?