> 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) यह Meta का मूल प्रॉम्प्ट-आधारित इमेज सेगमेंटेशन मॉडल है। आप इसे किसी ऑब्जेक्ट के अंदर एक बिंदु (या बॉक्स) देते हैं, और यह उस ऑब्जेक्ट की सटीक सीमा को चिह्नित करने वाला मास्क लौटाता है।

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 Hosted API पर उपलब्ध नहीं है। इसे पर चलाएँ [Dedicated Deployment](https://docs.roboflow.com/deployment/roboflow-cloud/dedicated-deployments) या [स्व-होस्टेड इनफरेंस](https://docs.roboflow.com/deployment/self-hosted/self-hosted).
{% endhint %}

## कोड नमूना

{% 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` को अपने Dedicated Deployment URL या किसी स्थानीय Inference सर्वर पर।

```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?api_key={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?api_key={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` एक स्थानीय [Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted) सर्वर के लिए।
* आपका [Dedicated Deployment](https://docs.roboflow.com/deployment/roboflow-cloud/dedicated-deployments) एक निजी एंडपॉइंट के लिए URL।
  {% endhint %}

## अधिक पढ़ें

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