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

Moondream2

Dedicated Deployment या self-hosted Inference पर ओपन-वोकैबुलरी डिटेक्शन के लिए Moondream2 का उपयोग करें

Moondream2 एक कॉम्पैक्ट विज़न-लैंग्वेज मॉडल है। Roboflow Inference में, इसे एक ओपन-वोकैबुलरी ऑब्जेक्ट डिटेक्टर के रूप में एक्सपोज़ किया जाता है: प्रॉम्प्ट के रूप में एक क्लास नाम पास करें और मेल खाने वाले क्षेत्रों के लिए बाउंडिंग बॉक्स प्राप्त करें।

Moondream2 Serverless Cloud API पर उपलब्ध नहीं है। इसे एक समर्पित डिप्लॉयमेंट या स्व-होस्टेड Inference.

कोड नमूना

1

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

एक Roboflow खाता बनाएँ, अपनी कुंजी यहाँ ढूँढें Roboflow API सेटिंग्स पेज और इसे अपने शेल में उपलब्ध कराएँ:

export ROBOFLOW_API_KEY="आपकी-कुंजी-यहाँ"
2

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

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

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

मॉडल चलाएँ

सेट करें api_url को अपने Dedicated Deployment URL या किसी स्थानीय Inference सर्वर पर।

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 1x NVIDIA L4 पर, बैच आकार 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, "How many dogs are in this image?")

print(result)

वर्कफ़्लोज़ में निष्पादन मोड

जब किसी Workflow, Moondream2 दो में से एक मोड में चलता है:

  • स्थानीय निष्पादन: मॉडल आपके Inference सर्वर पर चलता है (GPU अनुशंसित)।

  • दूरस्थ निष्पादन: मॉडल को दूरस्थ Inference सर्वर पर HTTP के माध्यम से infer_lmm() क्लाइंट मेथड के माध्यम से कॉल किया जाता है।

अंतिम अपडेट

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