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

Moondream2

Dedicated Deployment या self-hosted Inference पर open-vocabulary detection के लिए Moondream2 का उपयोग करें

Moondream2 एक कॉम्पैक्ट vision-language model है। Roboflow Inference में, इसे एक open-vocabulary object detector के रूप में exposed किया जाता है: एक class name को prompt के रूप में pass करें और matching regions के लिए bounding boxes प्राप्त करें।

Moondream2 Serverless Hosted API पर उपलब्ध नहीं है। इसे एक पर चलाएँ Dedicated Deployment या self-hosted Inference.

कोड नमूना

1

अपनी API Key प्राप्त करें

एक Roboflow खाता बनाएं, अपनी key यहाँ पर ढूँढें Roboflow API settings page और इसे अपने shell में उपलब्ध कराएँ:

export ROBOFLOW_API_KEY="your-key-here"
2

निर्भरताएँ इंस्टॉल करें

इंस्टॉल करें Inference SDK और supervision:

pip install inference-sdk supervision opencv-python
3

मॉडल चलाएँ

सेट करें api_url को अपने Dedicated Deployment URL या local Inference server पर।

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

content = requests.get("https://media.roboflow.com/notebooks/examples/dog.jpeg").content
image = cv2.imdecode(np.frombuffer(content, np.uint8), cv2.IMREAD_COLOR)
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)

Inference speed

Latency मापी गई Roboflow Inference 1x NVIDIA L4 पर, batch size 1 के साथ, एक image की captioning करते समय। Moondream2 अपने output length को fix नहीं कर सकता, इसलिए latency response के साथ बदलती रहती है।

उपनाम
विलंबता (ms)

moondream2

1669

सेट करें api_url को अपने deployment target से मिलाएँ:

अंतिम अपडेट

क्या यह उपयोगी था?