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

OwlV2

समर्पित डिप्लॉयमेंट या स्व-होस्टेड Inference पर वन-शॉट ऑब्जेक्ट डिटेक्शन के लिए OwlV2 का उपयोग करें

OwlV2 Google का ओपन-वोकैबुलरी ऑब्जेक्ट डिटेक्टर है। आप संदर्भ छवि पर एक या अधिक उदाहरण बाउंडिंग बॉक्स देते हैं, और OwlV2 बिना किसी प्रशिक्षण के लक्ष्य छवियों में समान ऑब्जेक्ट्स का पता लगाता है।

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

कोड नमूना

1

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

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

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

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

ये पैकेज API को कॉल करते हैं और उसके परिणामों को ड्रॉ करते हैं:

pip install -U requests supervision opencv-python
3

मॉडल चलाएँ

नीचे दिया गया नमूना इनपुट छवि पर एक एकल उदाहरण बॉक्स को प्रॉम्प्ट के रूप में उपयोग करता है और उसी छवि में मेल खाते ऑब्जेक्ट्स का पता लगाता है। व्यवहार में आप आमतौर पर एक अलग संदर्भ छवि पास करते हैं। सेट करें URL को अपने Dedicated Deployment URL या किसी स्थानीय Inference सर्वर पर।

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

URL = "https://your-deployment.roboflow.cloud"
image = sv.load_image_from_url("https://media.roboflow.com/notebooks/examples/dog.jpeg")
_, 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)

इन्फरेंस गति

विलंबता मापी गई Roboflow Inference पर 1x NVIDIA L4, बैच आकार 1, वार्मअप के बाद के औसत के साथ।

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

owlv2

541.2

पर मापा गया owlv2-large-patch14-ensemble दो पाठ प्रॉम्प्टों वाला चेकपॉइंट।

सेट करें URL को अपने डिप्लॉयमेंट लक्ष्य से मिलाएँ:

OwlV2 की विश्वसनीयताएँ आमतौर पर बहुत अधिक होती हैं (0.99 से ऊपर)। तदनुसार ट्यून करें confidence पैरामीटर को तदनुसार समायोजित करें।

Inference के साथ उपयोग करें (सेल्फ-होस्टेड)

OwlV2 को सीधे inference package. Inference में कार्यान्वयन ऑब्जेक्ट्स का पता लगाता है से दृश्य उदाहरण: आप एक या अधिक उदाहरण ऑब्जेक्ट्स को बॉक्स में घेरते हैं, और मॉडल समान ऑब्जेक्ट्स खोजता है।

1

पैकेज इंस्टॉल करें

उपयोग करें inference-gpu[transformers] एक GPU मशीन पर।

2

मॉडल चलाएँ

बदलें training_data जिन उदाहरण ऑब्जेक्ट्स से आप मिलान करना चाहते हैं, उनके साथ, और अपनी स्वयं की इनपुट के लिए छवि URL। एनोटेट किया गया परिणाम इसमें लिखा जाता है owlv2_visualization.jpg.

अंतिम अपडेट

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