> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/models/hi/supported-models/owlv2.md).

# OWLv2

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

{% hint style="info" %}
OWLv2 Serverless Cloud API पर उपलब्ध नहीं है। इसे एक पर चलाएँ [समर्पित परिनियोजन](https://docs.roboflow.com/deployment/roboflow-cloud/dedicated-deployments) या [स्व-होस्टेड Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted).
{% endhint %}

## OWLv2 API

{% stepper %}
{% step %}

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

एक Roboflow खाता बनाएँ, अपनी कुंजी यहाँ खोजें [Roboflow API सेटिंग्स पेज](https://app.roboflow.com/settings/api) और इसे अपने शेल में उपलब्ध कराएँ:

```bash
export ROBOFLOW_API_KEY="your-key-here"
```

{% endstep %}

{% step %}

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

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

```bash
pip install -U requests supervision opencv-python
```

{% endstep %}

{% step %}

### मॉडल चलाएँ

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

```python
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",
    headers={"Authorization": f"Bearer {os.environ['ROBOFLOW_API_KEY']}"},
    json={
        "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)
```

<figure><img src="/files/cd4004ff68336ac2382a6920bf7a4de99b933eb8" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

## OWLv2 अनुमान गति

लेटेंसी मापी गई [Roboflow Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted) 1x NVIDIA L4 पर, बैच आकार 1 के साथ, वार्मअप के बाद औसत।

<table data-search="false"><thead><tr><th>मॉडल</th><th>लेटेंसी (ms)</th></tr></thead><tbody><tr><td><code>owlv2</code></td><td>541.2</td></tr></tbody></table>

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

{% hint style="info" %}
सेट करें `URL` को अपने परिनियोजन लक्ष्य से मिलाएँ:

* `http://localhost:9001` एक स्थानीय [इन्फ़रेंस](https://docs.roboflow.com/deployment/self-hosted/self-hosted) सर्वर।
* आपका [समर्पित परिनियोजन](https://docs.roboflow.com/deployment/roboflow-cloud/dedicated-deployments) एक निजी एंडपॉइंट के लिए URL.
  {% endhint %}

OWLv2 confidences आमतौर पर बहुत उच्च होती हैं (0.99 से ऊपर)। `confidence` पैरामीटर को तदनुसार समायोजित करें।

## स्व-होस्टेड Inference के साथ OWLv2 चलाएँ

OWLv2 को सीधे [`inference`](https://docs.roboflow.com/deployment/self-hosted/self-hosted) पैकेज के साथ लोड किया जा सकता है। Inference में कार्यान्वयन से *दृश्य* उदाहरणों से ऑब्जेक्ट्स का पता लगाया जाता है: आप एक या अधिक उदाहरण ऑब्जेक्ट्स पर बॉक्स बनाते हैं, और मॉडल मिलते-जुलते ऑब्जेक्ट्स ढूँढता है।

{% stepper %}
{% step %}

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

```bash
pip install "inference[transformers]"
```

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

{% step %}

### मॉडल चलाएँ

```python
import base64
import io

from PIL import Image

from inference.core.entities.requests.owlv2 import OWLv2InferenceRequest
from inference.models.owlv2.owlv2 import OWLv2

image = {"type": "url", "value": "https://media.roboflow.com/inference/seawithdock.jpeg"}

request = OWLv2InferenceRequest(
    image=image,
    training_data=[
        {
            "image": image,
            "boxes": [{"x": 223, "y": 306, "w": 40, "h": 226, "cls": "post"}],
        }
    ],
    visualize_predictions=True,
    confidence=0.9999,
)

response = OWLv2().infer_from_request(request)

visualization = Image.open(io.BytesIO(response.visualization))
visualization.save("owlv2_visualization.jpg")
```

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