For the complete documentation index, see llms.txt. This page is also available as Markdown.

Roboflow 2.0

हमारे Serverless Hosted API के माध्यम से Roboflow 2.0 semantic segmentation model का उपयोग करें

Roboflow 2.0 एक DeepLabv3-आधारित semantic segmentation model है। आप Roboflow 2.0 models को Roboflow platform पर train करते हैं और उन्हें हमारे माध्यम से deploy करते हैं Serverless Hosted API.

self-hosted deployment के लिए, देखें Roboflow Inference.

कोड नमूना

1

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

एक Roboflow खाता बनाएं, अपनी key यहाँ पर ढूँढें Roboflow API settings page और इसे अपने shell में उपलब्ध कराएँ:

export ROBOFLOW_API_KEY="your-key-here"
2

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

इंस्टॉल करें Inference SDK और supervision:

pip install inference-sdk supervision
3

मॉडल चलाएँ

आपके द्वारा train किए गए Roboflow 2.0 semantic segmentation model पर inference चलाएँ, per-pixel class map को decode करें, और एक annotated PNG लिखें। अपने model को उसके {workspace}/{model-slug} ID (देखें Versions, Trainings, and Models).

Response में एक segmentation_mask (base64-encoded grayscale PNG, जिसमें प्रत्येक pixel value एक class ID है और 0 background है) और एक class_map class IDs को class names से mapping करता है। Script इसे एक में विभाजित करती है sv.Detections प्रत्येक class के लिए एक row, ताकि sv.MaskAnnotator source image पर masks overlay कर सके।

import base64
import os
import cv2
import numpy as np
import requests
import supervision as sv
from inference_sdk import InferenceHTTPClient

content = requests.get("https://media.roboflow.com/quickstart/traffic.jpg").content
image = cv2.imdecode(np.frombuffer(content, np.uint8), cv2.IMREAD_COLOR)

client = InferenceHTTPClient(
    api_url="https://serverless.roboflow.com",
    api_key=os.environ["ROBOFLOW_API_KEY"],
)
# No pretrained aliases: अपना model train करें और "your-project/1" को अपने model ID से बदलें।
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("Saved annotated.png")

सेट करें api_url को अपने deployment target से मिलाएँ:

  • https://serverless.roboflow.com Serverless Hosted API के लिए।

  • http://localhost:9001 एक local Inference server.

  • आपका Dedicated Deployment एक private endpoint के लिए URL.

अंतिम अपडेट

क्या यह उपयोगी था?