> 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/roboflow/roboflow-hi/deploy/supported-models/grounding-dino.md).

# Grounding DINO

Grounding DINO एक open-vocabulary object detector है। आप एक image और text classes की एक सूची देते हैं, और model बिना किसी training के matching regions के लिए bounding boxes लौटाता है।

{% hint style="info" %}
Grounding DINO Serverless Hosted API पर उपलब्ध नहीं है। इसे एक पर चलाएँ [Dedicated Deployment](/roboflow/roboflow-hi/deploy/dedicated-deployments.md) या [self-hosted Inference](https://inference.roboflow.com/).
{% endhint %}

## कोड नमूना

{% stepper %}
{% step %}

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

एक Roboflow खाता बनाएं, अपनी key यहाँ पर ढूँढें [Roboflow API settings page](https://app.roboflow.com/settings/api) और इसे अपने shell में उपलब्ध कराएँ:

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

{% endstep %}

{% step %}

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

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

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

{% endstep %}

{% step %}

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

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

```python
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}/grounding_dino/infer",
    json={
        "api_key": os.environ["ROBOFLOW_API_KEY"],
        "image": {"type": "base64", "value": image_base64},
        "text": ["कुत्ता", "व्यक्ति", "बैकपैक"],
    },
)
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/ce51b7ea4b48dba1292ed114ae19f8ca432ee55b" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

## Inference speed

Latency मापी गई [Roboflow Inference](https://inference.roboflow.com/) 1x NVIDIA L4 पर, batch size 1, warmup के बाद का औसत।

<table data-search="false"><thead><tr><th>मॉडल</th><th>विलंबता (ms)</th></tr></thead><tbody><tr><td><code>grounding-dino</code></td><td>165.4</td></tr></tbody></table>

दो text prompts के साथ मापा गया।

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

* `http://localhost:9001` एक local [Inference](https://inference.roboflow.com/) server.
* आपका [Dedicated Deployment](/roboflow/roboflow-hi/deploy/dedicated-deployments.md) एक private endpoint के लिए URL.
  {% endhint %}
