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

# Segment Anything (SAM)

[सेगमेंट एनीथिंग](https://github.com/facebookresearch/segment-anything) यह मेटा का मूल प्रॉम्प्ट-योग्य इमेज सेगमेंटेशन मॉडल है। आप इसे किसी ऑब्जेक्ट के अंदर एक बिंदु (या एक बॉक्स) देते हैं, और यह उस ऑब्जेक्ट की सटीक सीमा को चिह्नित करने वाला मास्क लौटाता है।

SAM दो चरणों में काम करता है:

1. छवि के लिए एक एम्बेडिंग बनाएँ।
2. जिस ऑब्जेक्ट को आप सेगमेंट करना चाहते हैं, उसके निर्देशांकों के साथ मॉडल को प्रॉम्प्ट करें।

एम्बेडिंग्स को कैश किया जाता है `image_id`जिससे एक बार छवि एम्बेड हो जाने पर आप उसे दोबारा एन्कोड किए बिना उस पर कई प्रॉम्प्ट भेज सकते हैं।

{% hint style="info" %}
नए प्रोजेक्ट्स के लिए, प्राथमिकता दें [SAM2](/models/hi/supported-models/sam2.md) (तेज़, बेहतर मास्क, वीडियो समर्थन) या [SAM3](/models/hi/supported-models/sam3.md) (टेक्स्ट प्रॉम्प्ट से किसी कॉन्सेप्ट के हर उदाहरण को सेगमेंट करता है)। मौजूदा इंटीग्रेशनों के लिए SAM v1 का दस्तावेज़ यहाँ दिया गया है।
{% endhint %}

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

## SAM 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 requests
```

{% endstep %}

{% step %}

### छवि एम्बेड करें

एक एम्बेडिंग छवि का संख्यात्मक निरूपण है। SAM इसका उपयोग ऑब्जेक्ट के स्थानों की गणना के लिए करता है। सेट करें `base_url` को अपने समर्पित डिप्लॉयमेंट URL या किसी स्थानीय इन्फरेंस सर्वर पर।

```python
import os
import requests

base_url = "http://localhost:9001"
api_key = os.environ["ROBOFLOW_API_KEY"]

payload = {
    "image": {"type": "url", "value": "https://media.roboflow.com/quickstart/traffic.jpg"},
    "image_id": "example_image_id",
}

response = requests.post(
    f"{base_url}/sam/embed_image",
    headers={"Authorization": f"Bearer {api_key}"},
    json=payload,
)
embeddings = response.json()["embeddings"]
```

यह `image_id` एम्बेडिंग को कैश करता है, इसलिए उसी छवि के लिए बाद के सेगमेंटेशन अनुरोधों में इसे फिर से भेजने की आवश्यकता नहीं होती।
{% endstep %}

{% step %}

### किसी ऑब्जेक्ट को सेगमेंट करें

मॉडल को कम से कम एक ऐसे बिंदु के साथ प्रॉम्प्ट करें जो ऑब्जेक्ट पर स्थित हो। `point_labels` प्रत्येक बिंदु को सकारात्मक (`1`शामिल करें) या नकारात्मक (`0`बाहर करें) के रूप में चिह्नित करता है।

```python
payload = {
    "image": {"type": "url", "value": "https://media.roboflow.com/quickstart/traffic.jpg"},
    "point_coords": [[380, 350]],
    "point_labels": [1],
    "image_id": "example_image_id",
}

response = requests.post(
    f"{base_url}/sam/segment_image",
    headers={"Authorization": f"Bearer {api_key}"},
    json=payload,
)
masks = response.json()["masks"]
```

प्रतिक्रिया में रुचि वाले ऑब्जेक्ट के लिए सेगमेंटेशन मास्क होते हैं।
{% endstep %}
{% endstepper %}

{% hint style="info" %}
परीक्षण छवि के लिए बिंदु निर्देशांक खोजने के लिए, इसे अपलोड करें [PolygonZone वेब टूल](https://roboflow.github.io/polygonzone/) और ऑब्जेक्ट पर होवर करें। पाइपलाइन में, एक सामान्य पैटर्न पहले ऑब्जेक्ट डिटेक्टर चलाना और प्रत्येक बॉक्स के केंद्र बिंदु को SAM प्रॉम्प्ट के रूप में उपयोग करना है।
{% endhint %}

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

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

## अधिक पढ़ें

* [सेगमेंट एनीथिंग मॉडल (SAM) क्या है?](https://blog.roboflow.com/segment-anything-breakdown/)
* [SAM2](/models/hi/supported-models/sam2.md) और [SAM3](/models/hi/supported-models/sam3.md), मॉडल की वर्तमान पीढ़ियाँ।
