# Semantic Segmentation

{% tabs %}
{% tab title="cURL" %}
**Linux या MacOS**

नाम वाली local file के लिए JSON predictions प्राप्त करना `YOUR_IMAGE.jpg`:

```bash
base64 YOUR_IMAGE.jpg | curl -d @- \
"https://segment.roboflow.com/your-model/42?api_key=YOUR_KEY"
```

web पर कहीं और hosted image पर उसके URL के माध्यम से inference चलाना (यह न भूलें कि [इसे URL encode करें](https://www.urlencoder.org/)):

```bash
curl -X POST "https://segment.roboflow.com/your-model/42?\
api_key=YOUR_KEY&\
image=https%3A%2F%2Fi.imgur.com%2FPEEvqPN.png"
```

**Windows**

आपको install करना होगा [Windows के लिए curl](https://curl.se/windows/) और [Windows के लिए GNU का base64 tool](http://gnuwin32.sourceforge.net/packages/coreutils.htm)। ऐसा करने का सबसे आसान तरीका है [Windows के लिए git installer](https://git-scm.com/downloads) जिसमें यह भी शामिल है `curl` और `base64` command line tools, जब आप installation के दौरान "Use Git and optional Unix tools from the Command Prompt" चुनते हैं।

फिर आप ऊपर वाले वही commands उपयोग कर सकते हैं।
{% endtab %}

{% tab title="Python" %}
**लोकल और होस्टेड इमेज पर Infer करें**

Dependencies install करने के लिए, `pip install roboflow`.

```
import roboflow

rf = roboflow.Roboflow(api_key="")

project = rf.workspace().project("PROJECT_ID")

model = project.version("VERSION").model

prediction = model.predict("YOUR_IMAGE.jpg")
```

{% endtab %}

{% tab title="Javascript" %}
**Node.js**

हम उपयोग कर रहे हैं [axios](https://github.com/axios/axios) इस example में POST request perform करने के लिए, इसलिए पहले चलाएँ `npm install axios` dependency install करने के लिए।

**Local Image पर inference चलाना**

```javascript
const axios = require("axios");
const fs = require("fs");

const image = fs.readFileSync("YOUR_IMAGE.jpg", {
    encoding: "base64"
});

axios({
    method: "POST",
    url: "https://segment.roboflow.com/your-model/42",
    params: {
        api_key: "YOUR_KEY"
    },
    data: image,
    headers: {
        "Content-Type": "application/x-www-form-urlencoded"
    }
})
.then(function(response) {
    console.log(response.data);
})
.catch(function(error) {
    console.log(error.message);
});
```

**URL के माध्यम से कहीं और hosted Image पर inference चलाना**

```javascript
const axios = require("axios");

axios({
    method: "POST",
    url: "https://segment.roboflow.com/your-model/42",
    params: {
        api_key: "YOUR_KEY",
        image: "https://i.imgur.com/PEEvqPN.png"
    }
})
.then(function(response) {
    console.log(response.data);
})
.catch(function(error) {
    console.log(error.message);
});
```

**Web**

हमारे पास realtime on-device inference उपलब्ध है `roboflow.js`के माध्यम से; देखें [दस्तावेज़ीकरण यहाँ](/roboflow/roboflow-hi/deploy/sdks/web-browser.md).
{% endtab %}

{% tab title="Swift/iOS" %}
**Swift**

**Local Image पर inference चलाना**

```swift
import UIKit

// Image लोड करें और Base64 में बदलें
let image = UIImage(named: "your-image-path") // upload करने के लिए image का path, उदाहरण: image.jpg
let imageData = image?.jpegData(compressionQuality: 1)
let fileContent = imageData?.base64EncodedString()
let postData = fileContent!.data(using: .utf8)

// API_KEY, Model, और Model Version के साथ Inference Server Request initialize करें
var request = URLRequest(url: URL(string: "https://segment.roboflow.com/your-model/your-model-version?api_key=YOUR_APIKEY&name=YOUR_IMAGE.jpg")!,timeoutInterval: Double.infinity)
request.addValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.httpMethod = "POST"
request.httpBody = postData

// Post Request execute करें
URLSession.shared.dataTask(with: request, completionHandler: { data, response, error in
    
    // Response को String में parse करें
    guard let data = data else {
        print(String(describing: error))
        return
    }
    
    // Response String को Dictionary में convert करें
    do {
        let dict = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
    } catch {
        print(error.localizedDescription)
    }
    
    // String Response प्रिंट करें
    print(String(data: data, encoding: .utf8)!)
}).resume()
```

**Objective C**

[Objective-C snippet अनुरोध करने के लिए यहाँ क्लिक करें।](https://app.roboflow.com/request/snippet.inference-objc)
{% endtab %}

{% tab title="Android" %}
**Kotlin**

**Local Image पर inference चलाना**

```kotlin
import java.io.*
import java.net.HttpURLConnection
import java.net.URL
import java.nio.charset.StandardCharsets
import java.util.*

fun main() {
    // Image Path प्राप्त करें
    val filePath = System.getProperty("user.dir") + System.getProperty("file.separator") + "YOUR_IMAGE.jpg"
    val file = File(filePath)

    // Base 64 Encode
    val encodedFile: String
    val fileInputStreamReader = FileInputStream(file)
    val bytes = ByteArray(file.length().toInt())
    fileInputStreamReader.read(bytes)
    encodedFile = String(Base64.getEncoder().encode(bytes), StandardCharsets.US_ASCII)
    val API_KEY = "" // आपका API Key
    val MODEL_ENDPOINT = "dataset/v" // model endpoint सेट करें (Dataset URL में मिलेगा)

    // URL बनाएं
    val uploadURL ="https://segment.roboflow.com/" + MODEL_ENDPOINT + "?api_key=" + API_KEY + "&name=YOUR_IMAGE.jpg";

    // Http Request
    var connection: HttpURLConnection? = null
    try {
        // URL से connection configure करें
        val url = URL(uploadURL)
        connection = url.openConnection() as HttpURLConnection
        connection.requestMethod = "POST"
        connection.setRequestProperty("Content-Type",
                "application/x-www-form-urlencoded")
        connection.setRequestProperty("Content-Length",
                Integer.toString(encodedFile.toByteArray().size))
        connection.setRequestProperty("Content-Language", "en-US")
        connection.useCaches = false
        connection.doOutput = true

        // अनुरोध भेजें
        val wr = DataOutputStream(
                connection.outputStream)
        wr.writeBytes(encodedFile)
        wr.close()

        // Response प्राप्त करें
        val stream = connection.inputStream
        val reader = BufferedReader(InputStreamReader(stream))
        var line: String?
        while (reader.readLine().also { line = it } != null) {
            println(line)
        }
        reader.close()
    } catch (e: Exception) {
        e.printStackTrace()
    } finally {
        connection?.disconnect()
    }
}
main()
```

**URL के माध्यम से कहीं और hosted Image पर inference चलाना**

```kotlin
import java.io.BufferedReader
import java.io.DataOutputStream
import java.io.InputStreamReader
import java.net.HttpURLConnection
import java.net.URL
import java.net.URLEncoder

fun main() {
    val imageURL = "https://i.imgur.com/PEEvqPN.png" // Image URL बदलें
    val API_KEY = "" // आपका API Key
    val MODEL_ENDPOINT = "dataset/v" // model endpoint सेट करें

    // Upload URL
    val uploadURL = "https://segment.roboflow.com/" + MODEL_ENDPOINT + "?api_key=" + API_KEY + "&image=" + URLEncoder.encode(imageURL, "utf-8");

    // Http Request
    var connection: HttpURLConnection? = null
    try {
        // URL से connection configure करें
        val url = URL(uploadURL)
        connection = url.openConnection() as HttpURLConnection
        connection.requestMethod = "POST"
        connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded")
        connection.setRequestProperty("Content-Length", Integer.toString(uploadURL.toByteArray().size))
        connection.setRequestProperty("Content-Language", "en-US")
        connection.useCaches = false
        connection.doOutput = true

        // अनुरोध भेजें
        val wr = DataOutputStream(connection.outputStream)
        wr.writeBytes(uploadURL)
        wr.close()

        // Response प्राप्त करें
        val stream = URL(uploadURL).openStream()
        val reader = BufferedReader(InputStreamReader(stream))
        var line: String?
        while (reader.readLine().also { line = it } != null) {
            println(line)
        }
        reader.close()
    } catch (e: Exception) {
        e.printStackTrace()
    } finally {
        connection?.disconnect()
    }
}

main()
```

**Java**

**Local Image पर inference चलाना**

```java
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class InferenceLocal {
    public static void main(String[] args) throws IOException {
        // Image Path प्राप्त करें
        String filePath = System.getProperty("user.dir") + System.getProperty("file.separator") + "YOUR_IMAGE.jpg";
        File file = new File(filePath);

        // Base 64 Encode
        String encodedFile;
        FileInputStream fileInputStreamReader = new FileInputStream(file);
        byte[] bytes = new byte[(int) file.length()];
        fileInputStreamReader.read(bytes);
        encodedFile = new String(Base64.getEncoder().encode(bytes), StandardCharsets.US_ASCII);

        String API_KEY = ""; // आपका API Key
        String MODEL_ENDPOINT = "dataset/v"; // model endpoint

        // URL बनाएं
        String uploadURL = "https://segment.roboflow.com/" + MODEL_ENDPOINT + "?api_key=" + API_KEY
                + "&name=YOUR_IMAGE.jpg";

        // Http Request
        HttpURLConnection connection = null;
        try {
            // URL से connection configure करें
            URL url = new URL(uploadURL);
            connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("POST");
            connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

            connection.setRequestProperty("Content-Length", Integer.toString(encodedFile.getBytes().length));
            connection.setRequestProperty("Content-Language", "en-US");
            connection.setUseCaches(false);
            connection.setDoOutput(true);

            // अनुरोध भेजें
            DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
            wr.writeBytes(encodedFile);
            wr.close();

            // Response प्राप्त करें
            InputStream stream = connection.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
            reader.close();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (connection != null) {
                connection.disconnect();
            }
        }

    }

}
```

**URL के माध्यम से कहीं और hosted Image पर inference चलाना**

```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

public class InferenceHosted {
    public static void main(String[] args) {
        String imageURL = "https://i.imgur.com/PEEvqPN.png"; // Image URL बदलें
        String API_KEY = ""; // आपका API Key
        String MODEL_ENDPOINT = "dataset/v"; // model endpoint

        // Upload URL
        String uploadURL = "https://segment.roboflow.com/" + MODEL_ENDPOINT + "?api_key=" + API_KEY + "&image="
                + URLEncoder.encode(imageURL, StandardCharsets.UTF_8);

        // Http Request
        HttpURLConnection connection = null;
        try {
            // URL से connection configure करें
            URL url = new URL(uploadURL);
            connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("POST");
            connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

            connection.setRequestProperty("Content-Length", Integer.toString(uploadURL.getBytes().length));
            connection.setRequestProperty("Content-Language", "en-US");
            connection.setUseCaches(false);
            connection.setDoOutput(true);

            // अनुरोध भेजें
            DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
            wr.writeBytes(uploadURL);
            wr.close();

            // Response प्राप्त करें
            InputStream stream = new URL(uploadURL).openStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
            reader.close();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (connection != null) {
                connection.disconnect();
            }
        }
    }
}
```

{% endtab %}

{% tab title="Ruby" %}
**Gemfile**

{% code title="Gemfile" %}

```ruby
source "https://rubygems.org"

gem "httparty", "~> 0.18.1"
gem "base64", "~> 0.1.0"
gem "cgi", "~> 0.2.1"
```

{% endcode %}

**Gemfile.lock**

{% code title="Gemfile.lock" %}

```ruby
GEM
  remote: https://rubygems.org/
  specs:
    base64 (0.1.0)
    cgi (0.2.1)
    httparty (0.18.1)
      mime-types (~> 3.0)
      multi_xml (>= 0.5.2)
    mime-types (3.3.1)
      mime-types-data (~> 3.2015)
    mime-types-data (3.2021.0225)
    multi_xml (0.6.0)

PLATFORMS
  x64-mingw32
  x86_64-linux

DEPENDENCIES
  base64 (~> 0.1.0)
  cgi (~> 0.2.1)
  httparty (~> 0.18.1)

BUNDLED WITH
   2.2.15
```

{% endcode %}

**Local Image पर inference चलाना**

```ruby
require 'base64'
require 'httparty'

encoded = Base64.encode64(File.open("YOUR_IMAGE.jpg", "rb").read)
model_endpoint = "dataset/v" # model endpoint सेट करें
api_key = "" # आपका API KEY यहाँ

params = "?api_key=" + api_key
+ "&name=YOUR_IMAGE.jpg"

response = HTTParty.post(
    "https://segment.roboflow.com/" + model_endpoint + params,
    body: encoded, 
    headers: {
    'Content-Type' => 'application/x-www-form-urlencoded',
    'charset' => 'utf-8'
  })

  puts response

 
```

**URL के माध्यम से कहीं और hosted Image पर inference चलाना**

```ruby
require 'httparty'
require 'cgi'

model_endpoint = "dataset/v" # model endpoint सेट करें
api_key = "" # आपका API KEY यहाँ
img_url = "https://i.imgur.com/PEEvqPN.png" # URL बनाएं

img_url = CGI::escape(img_url)

params =  "?api_key=" + api_key + "&image=" + img_url

response = HTTParty.post(
    "https://segment.roboflow.com/" + model_endpoint + params,
    headers: {
    'Content-Type' => 'application/x-www-form-urlencoded',
    'charset' => 'utf-8'
  })

puts response
```

{% endtab %}

{% tab title="PHP" %}
**Local Image पर inference चलाना**

```php
<?php

// Image को Base 64 में encode करें
$data = base64_encode(file_get_contents("YOUR_IMAGE.jpg"));

$api_key = ""; // API Key सेट करें
$model_endpoint = "dataset/v"; // model endpoint सेट करें (Dataset URL में मिलेगा)

// Http Request के लिए URL
$url = "https://segment.roboflow.com/" . $model_endpoint
. "?api_key=" . $api_key
. "&name=YOUR_IMAGE.jpg";

// Http request सेटअप + भेजें
$options = array(
  'http' => array (
    'header' => "Content-type: application/x-www-form-urlencoded\r\n",
    'method'  => 'POST',
    'content' => $data
  ));

$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);
echo $result;
?>
```

**URL के माध्यम से कहीं और hosted Image पर inference चलाना**

```php
<?php

$api_key = ""; // API Key सेट करें
$model_endpoint = "dataset/v"; // model endpoint सेट करें (Dataset URL में मिलेगा)
$img_url = "https://i.imgur.com/PEEvqPN.png";

// Http Request के लिए URL
$url =  "https://segment.roboflow.com/" . $model_endpoint
. "?api_key=" . $api_key
. "&image=" . urlencode($img_url);

// Http request सेटअप + भेजें
$options = array(
  'http' => array (
    'header' => "Content-type: application/x-www-form-urlencoded\r\n",
    'method'  => 'POST'
  ));

$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);
echo $result;
?>
```

{% endtab %}

{% tab title="Go" %}
**Local Image पर inference चलाना**

```go
package main

import (
    "bufio"
    "encoding/base64"
    "fmt"
    "io/ioutil"
    "os"
	"net/http"
	"strings"
)

func main() {
	api_key := ""  // आपका API Key
	model_endpoint := "dataset/v" // model endpoint सेट करें

    // Disk पर file खोलें।
    f, _ := os.Open("YOUR_IMAGE.jpg")

    // पूरी JPG को byte slice में पढ़ें।
    reader := bufio.NewReader(f)
    content, _ := ioutil.ReadAll(reader)

    // Base64 के रूप में encode करें।
    data := base64.StdEncoding.EncodeToString(content)
	uploadURL := "https://segment.roboflow.com/" + model_endpoint + "?api_key=" + api_key + "&name=YOUR_IMAGE.jpg"

	req, _ := http.NewRequest("POST", uploadURL, strings.NewReader(data))
    req.Header.Set("Accept", "application/json")

    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()

   	bytes, _ := ioutil.ReadAll(resp.Body)
    fmt.Println(string(bytes))

}
```

**URL के माध्यम से कहीं और hosted Image पर inference चलाना**

```go
package main

import (
    "fmt"
	"net/http"
	"net/url"
  "io/ioutil"
)

func main() {
	api_key := ""  // आपका API Key
	model_endpoint := "dataset/v" // model endpoint सेट करें
	img_url := "https://i.ibb.co/jzr27x0/YOUR-IMAGE.jpg"


	uploadURL := "https://segment.roboflow.com/" + model_endpoint + "?api_key=" + api_key + "&image=" + url.QueryEscape(img_url)

	req, _ := http.NewRequest("POST", uploadURL, nil)
    req.Header.Set("Accept", "application/json")

    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()

   	bytes, _ := ioutil.ReadAll(resp.Body)
    fmt.Println(string(bytes))


}
```

{% endtab %}

{% tab title=".NET" %}
**Local Image पर inference चलाना**

```csharp
using System;
using System.IO;
using System.Net;
using System.Text;

namespace InferenceLocal
{
    class InferenceLocal
    {

        static void Main(string[] args)
        {
            byte[] imageArray = System.IO.File.ReadAllBytes(@"YOUR_IMAGE.jpg");
            string encoded = Convert.ToBase64String(imageArray);
            byte[] data = Encoding.ASCII.GetBytes(encoded);
            string API_KEY = ""; // आपका API Key
            string MODEL_ENDPOINT = "dataset/v"; // model endpoint सेट करें

            // URL बनाएं
            string uploadURL =
                    "https://segment.roboflow.com/" + MODEL_ENDPOINT + "?api_key=" + API_KEY
                + "&name=YOUR_IMAGE.jpg";

            // Service Request Config
            ServicePointManager.Expect100Continue = true;
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

            // Request configure करें
            WebRequest request = WebRequest.Create(uploadURL);
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = data.Length;

            // Data लिखें
            using (Stream stream = request.GetRequestStream())
            {
                stream.Write(data, 0, data.Length);
            }

            // Response प्राप्त करें
            string responseContent = null;
            using (WebResponse response = request.GetResponse())
            {
                using (Stream stream = response.GetResponseStream())
                {
                    using (StreamReader sr99 = new StreamReader(stream))
                    {
                        responseContent = sr99.ReadToEnd();
                    }
                }
            }

            Console.WriteLine(responseContent);

        }
    }
}
```

**URL के माध्यम से कहीं और hosted Image पर inference चलाना**

```csharp
using System;
using System.IO;
using System.Net;
using System.Web;

namespace InferenceHosted
{
    class InferenceHosted
    {
        static void Main(string[] args)
        {
            string API_KEY = ""; // आपका API Key
            string imageURL = "https://i.ibb.co/jzr27x0/YOUR-IMAGE.jpg";
            string MODEL_ENDPOINT = "dataset/v"; // model endpoint सेट करें

            // URL बनाएं
            string uploadURL =
                    "https://segment.roboflow.com/" + MODEL_ENDPOINT
                    + "?api_key=" + API_KEY
                    + "&image=" + HttpUtility.UrlEncode(imageURL);

            // Service Point Config
            ServicePointManager.Expect100Continue = true;
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

            // Http Request configure करें
            WebRequest request = WebRequest.Create(uploadURL);
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = 0;

            // Response प्राप्त करें
            string responseContent = null;
            using (WebResponse response = request.GetResponse())
            {
                using (Stream stream = response.GetResponseStream())
                {
                    using (StreamReader sr99 = new StreamReader(stream))
                    {
                        responseContent = sr99.ReadToEnd();
                    }
                }
            }

            Console.WriteLine(responseContent);

        }
    }
}
```

{% endtab %}

{% tab title="Elixer" %}
हम उपयोगकर्ताओं के अनुरोध के अनुसार कोड स्निपेट जोड़ रहे हैं। यदि आप inference API को अपने Elixir app में integrate करना चाहते हैं, तो कृपया [अपवोट दर्ज करने के लिए यहाँ क्लिक करें](https://app.roboflow.com/request/snippet.upload-elixir).
{% endtab %}
{% endtabs %}

### Response Object Format

hosted API inference route एक `JSON` object जिसमें predictions की एक array होती है। प्रत्येक prediction में निम्न properties होती हैं:

* `segmentation_mask` = base64 encoded single channel image, जिसके dimensions input image के बराबर हैं, जहाँ हर pixel value एक class ID से मेल खाती है
* `class_map` = एक object जो class IDs को class names से map करता है
* `image` = input image dimensions वाला एक object
  * height = input image की height, pixels की संख्या में
  * width = input image की width, pixels की संख्या में

```json
// एक उदाहरण JSON object
{
    "segmentation_mask": "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",
    "class_map": {
        "0": " background",
        "1": " object"
    },
    "image": {
        "width": 1232,
        "height": 821
    }
}
```

## API Reference

## Inference API का उपयोग करना

<mark style="color:हरा;">`POST`</mark> `https://segment.roboflow.com/:datasetSlug/:versionNumber`

आप एक base64 encoded image सीधे अपने model endpoint पर POST कर सकते हैं। या आप query string में `image` parameter पास कर सकते हैं यदि आपकी image पहले से कहीं और hosted है।

#### Path Parameters

| Name        | Type   | Description                                                                                                                                                                                                        |
| ----------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| datasetSlug | string | dataset नाम का URL-safe version। आप इसे web UI में मुख्य project view पर URL देखकर, या model train करने के बाद अपने dataset version के train results section में "Get curl command" बटन पर क्लिक करके पा सकते हैं। |
| version     | number | आपके dataset के version की पहचान करने वाला version number                                                                                                                                                          |

#### Query Parameters

| Name       | Type   | Description                                                                                                                                                                                                                     |
| ---------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| image      | string | <p>जो image जोड़नी है उसका URL। इसका उपयोग करें यदि आपकी image कहीं और hosted है। (जब आप request body में base64 encoded image POST नहीं करते हैं, तब आवश्यक है.)<br><br><strong>नोट:</strong> इसे URL-encode करना न भूलें।</p> |
| confidence | number | <p>returned predictions के लिए 0-100 scale पर एक threshold। कम संख्या अधिक predictions लौटाएगी। अधिक संख्या कम, अधिक-विश्वास वाली predictions लौटाएगी।<br><br><strong>डिफ़ॉल्ट:</strong> 50</p>                                 |
| api\_key   | string | आपकी API key (आपके workspace API settings page से प्राप्त)                                                                                                                                                                      |

#### रिक्वेस्ट बॉडी

| Name | Type   | Description                                                                                      |
| ---- | ------ | ------------------------------------------------------------------------------------------------ |
|      | string | एक base64 encoded image. (जब आप query parameters में image URL पास नहीं करते हैं, तब आवश्यक है). |

{% tabs %}
{% tab title="200 JSON format predictions. (x,y) are the box" %}

```
{
    "segmentation_mask": "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",
    "class_map": {
        "0": " background",
        "1": " object"
    },
    "image": {
        "width": 1232,
        "height": 821
    }
}
```

{% endtab %}

{% tab title="403 यदि आपका api\_key model तक पहुँचने के लिए authorized नहीं है।" %}

```
{
    "Message": "User is not authorized to access this resource"
}
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.roboflow.com/roboflow/roboflow-hi/deploy/serverless/instance-segmentation/semantic-segmentation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
