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

OwlV2

Dedicated Deployment या self-hosted Inference पर one-shot object detection के लिए OwlV2 का उपयोग करें

OwlV2 Google का open-vocabulary object detector है। आप reference image पर एक या अधिक example bounding boxes देते हैं, और OwlV2 बिना किसी training के target images में समान objects detect करता है।

OwlV2 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

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

ये packages API को call करते हैं और इसके results को draw करते हैं:

pip install requests supervision opencv-python
3

मॉडल चलाएँ

नीचे दिया गया sample input image पर एक single example box को prompt के रूप में उपयोग करता है और उसी image में matching objects detect करता है। व्यवहार में आप आमतौर पर एक अलग reference image pass करते हैं। सेट करें URL को अपने Dedicated Deployment URL या local Inference server पर।

import base64
import os
import cv2
import numpy as np
import requests
import supervision as sv

URL = "https://your-deployment.roboflow.cloud"
content = requests.get("https://media.roboflow.com/notebooks/examples/dog.jpeg").content
image = cv2.imdecode(np.frombuffer(content, np.uint8), cv2.IMREAD_COLOR)
_, buffer = cv2.imencode(".jpg", image)
image_base64 = base64.b64encode(buffer).decode("utf-8")

response = requests.post(
    f"{URL}/owlv2/infer",
    json={
        "api_key": os.environ["ROBOFLOW_API_KEY"],
        "image": {"type": "base64", "value": image_base64},
        "training_data": [{
            "image": {"type": "base64", "value": image_base64},
            "boxes": [{"x": 360, "y": 800, "w": 500, "h": 500, "cls": "dog"}],
        }],
        "confidence": 0.99,
    },
)
preds = response.json()["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["confidence"] for p in preds], dtype=float),
    data={"class_name": np.array([p["class"] for p in preds])},
)
labels = [f"{p['class']} {p['confidence']:.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, warmup के बाद का औसत।

मॉडल
विलंबता (ms)

owlv2

541.2

पर मापा गया owlv2-large-patch14-ensemble checkpoint के साथ दो text prompts पर।

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

OwlV2 confidences आमतौर पर बहुत उच्च होती हैं (0.99 से ऊपर)। confidence parameter को उसी अनुसार tune करें।

अंतिम अपडेट

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