Roboflow 2.0
हमारे Serverless Hosted API के माध्यम से Roboflow 2.0 semantic segmentation model का उपयोग करें
कोड नमूना
3
मॉडल चलाएँ
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")अंतिम अपडेट
क्या यह उपयोगी था?