> 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/roboflow-2.md).

# Roboflow 2.0

Roboflow 2.0, DeepLabv3-आधारित एक सिमेंटिक सेगमेंटेशन मॉडल है। आप Roboflow 2.0 मॉडल्स को Roboflow प्लेटफ़ॉर्म पर प्रशिक्षित करते हैं और उन्हें हमारे माध्यम से तैनात करते हैं [सर्वरलेस क्लाउड API](https://docs.roboflow.com/deployment/roboflow-cloud/serverless-api).

स्व-होस्टेड डिप्लॉयमेंट के लिए देखें [Roboflow Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted).

## Roboflow 2.0 API

{% stepper %}
{% step %}

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

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

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

{% endstep %}

{% step %}

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

इंस्टॉल करें [इन्फ़रेंस SDK](https://docs.roboflow.com/deployment/self-hosted/self-hosted) और [supervision](https://supervision.roboflow.com/):

```bash
pip install -U inference-sdk supervision
```

{% endstep %}

{% step %}

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

अपने द्वारा प्रशिक्षित Roboflow 2.0 सिमेंटिक सेगमेंटेशन मॉडल पर इन्फ़ेरेंस चलाएँ, प्रति-पिक्सेल क्लास मैप को डिकोड करें, और एक एनोटेटेड PNG लिखें। अपने मॉडल को उसके `{workspace}/{model-slug}` ID बदलें (देखें [संस्करण, प्रशिक्षण, और मॉडल](/models/hi/versions-trainings-and-models.md)).

प्रतिक्रिया में एक `segmentation_mask` (base64-एन्कोडेड ग्रेस्केल PNG, जहाँ प्रत्येक पिक्सेल मान एक क्लास ID है और `0` पृष्ठभूमि है) और एक `class_map` जो क्लास ID को क्लास नामों से मैप करता है। स्क्रिप्ट इसे विभाजित करके एक `sv.Detections` प्रति क्लास एक पंक्ति ताकि `sv.MaskAnnotator` मास्कों को स्रोत छवि पर ओवरले कर सकता है।

```python
import base64
import os
import cv2
import numpy as np
import supervision as sv
from inference_sdk import InferenceHTTPClient, InferenceConfiguration

image = sv.load_image_from_url("https://media.roboflow.com/quickstart/traffic.jpg")

client = InferenceHTTPClient(
    api_url="https://serverless.roboflow.com",
    api_key=os.environ["ROBOFLOW_API_KEY"],
).configure(InferenceConfiguration(api_key_transport="header"))
# कोई प्रीट्रेंड उपनाम नहीं: अपना स्वयं का मॉडल प्रशिक्षित करें और "your-project/1" को अपने मॉडल आईडी से बदलें।
result = client.infer(image, model_id="your-project/1")
predictions = result["predictions"]

mask_bytes = base64.b64decode(predictions["segmentation_mask"])
class_map = predictions.get("class_map", {})
class_mask = cv2.imdecode(np.frombuffer(mask_bytes, np.uint8), cv2.IMREAD_GRAYSCALE)
class_mask = cv2.resize(class_mask, (image.shape[1], image.shape[0]), interpolation=cv2.INTER_NEAREST)

class_ids = [cid for cid in np.unique(class_mask).tolist() if cid != 0]
if class_ids:
    masks, xyxy, names = [], [], []
    for cid in class_ids:
        binary = class_mask == cid
        rows = np.where(np.any(binary, axis=1))[0]
        cols = np.where(np.any(binary, axis=0))[0]
        xyxy.append([cols[0], rows[0], cols[-1], rows[-1]])
        masks.append(binary)
        names.append(class_map.get(str(cid), str(cid)))

    detections = sv.Detections(
        xyxy=np.array(xyxy, dtype=np.float64),
        mask=np.array(masks),
        class_id=np.array(class_ids),
        data={"class_name": np.array(names)},
    )
    annotated = sv.MaskAnnotator().annotate(image.copy(), detections)
    annotated = sv.LabelAnnotator().annotate(annotated, detections)
else:
    annotated = image

cv2.imwrite("annotated.png", annotated)
print("एनोटेटेड.png सहेजा गया")
```

{% endstep %}
{% endstepper %}

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

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