Object Detection

Roboflow पर होस्ट किए गए अपने object detection मॉडलों पर inference चलाएँ।

Roboflow Hosted API का उपयोग करके वस्तु पहचान (object detection) इनफरेंस चलाने के कई तरीके हैं। आप हमारे विभिन्न SDKs में से किसी एक का उपयोग कर सकते हैं, या हमारे होस्ट किए गए endpoint पर एक REST अनुरोध भेज सकते हैं।

निर्भरता स्थापित करने के लिए, pip install inference-sdk.

# inference-sdk आयात करें
from inference_sdk import InferenceHTTPClient

CLIENT = InferenceHTTPClient(
    api_url="https://detect.roboflow.com",
    api_key="API_KEY"
)

result = CLIENT.infer(your_image.jpg, model_id="football-players-detection-3zvbc/12")

inferencejs के साथ एज inference

URL

POST https://detect.roboflow.com/:projectId/:versionNumber

Name
प्रकार
Description

projectId

string

डेटासेट नाम का URL-सुरक्षित (url-safe) संस्करण। आप इसे वेब UI में मुख्य प्रोजेक्ट दृश्य पर URL देखकर पा सकते हैं या अपने मॉडल के प्रशिक्षण के बाद dataset version के train results सेक्शन में "Get curl command" बटन पर क्लिक करके भी देख सकते हैं।

version

number

आपके डेटासेट के संस्करण की पहचान करने वाला संस्करण संख्या

देखें कि अपने प्रोजेक्ट ID और संस्करण संख्या कैसे प्राप्त करें अधिकांश व्यावसायिक अनुप्रयोगों के लिए,.

Hosted Inference API को REST अनुरोध के माध्यम से छवि भेजने के दो तरीके हैं:

  • एक संलग्न करें base64 एन्कोड की गई छवि को POST अनुरोध बॉडी

  • छवि फ़ाइल का URL भेजें उपयोग करते हुए image URL क्वेरी

    • उदा: https://detect.roboflow.com/:datasetSlug/:versionNumber?image=https://imageurl.com

क्वेरी पैरामीटर

Name
प्रकार
Description

image

string

जोड़ने के लिए छवि का URL। उपयोग करें यदि आपकी छवि कहीं और होस्ट की गई है। (जब आप अनुरोध बॉडी में base64 एन्कोडेड छवि POST नहीं करते हैं तो आवश्यक)। नोट: इसे URL-encode करना न भूलें।

classes

string

भविष्यवाणियों को केवल कुछ विशिष्ट क्लासेस तक सीमित करें। कॉमा-सेपरेटेड स्ट्रिंग के रूप में प्रदान करें। उदाहरण: dog,cat डिफ़ॉल्ट: मौजूद नहीं (सभी क्लास दिखाएँ)

overlap

number

एक ही क्लास की bounding box भविष्यवाणियों को एक ही बॉक्स में मिलाने से पहले उनकी अधिकतम ओवरलैप प्रतिशत (0-100 के पैमाने पर)।

डिफ़ॉल्ट: 30

confidence

number

0-100 के पैमाने पर लौटाई गई भविष्यवाणियों के लिए एक थ्रेशोल्ड। कम संख्या अधिक भविष्यवाणियाँ लौटाएगी। अधिक संख्या उच्च-निश्चितता वाली कम भविष्यवाणियाँ लौटाएगी।

डिफ़ॉल्ट: 40

stroke

number

भविष्यवाणियों के आसपास प्रदर्शित bounding box की चौड़ाई (पिक्सल में) (केवल तब प्रभावी जब format है image).

डिफ़ॉल्ट: 1

labels

boolean

क्या भविष्यवाणियों पर टेक्स्ट लेबल दिखाना है या नहीं (केवल तब प्रभावी जब format है image).

डिफ़ॉल्ट: false

format

string

विकल्प:

  • json: JSON भविष्यवाणियों की एक array लौटाता है। (レスपॉन्स फ़ॉर्मेट टैब देखें)।

  • image: एनोटेटेड भविष्यवाणियों के साथ एक छवि बाइनरी ब्लॉब के रूप में लौटाता है जिसमें Content-Type है image/jpeg.

डिफ़ॉल्ट: json

api_key

string

आपकी API key (आपके Workspace API settings पृष्ठ से प्राप्त)

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

प्रकार
Description

string

एक base64 एन्कोडेड छवि। (जब आप query parameters में छवि URL पास नहीं करते हैं तो आवश्यक)।

सामग्री प्रकार होना चाहिए application/x-www-form-urlencoded एक string बॉडी के साथ।

प्रतिक्रिया फ़ॉर्मेट

होस्ट किया गया API inference endpoint, और हमारे अधिकांश SDKs, एक लौटाते हैं JSON एक ऑब्जेक्ट जिसमें predictions की एक array होती है। प्रत्येक prediction के निम्नलिखित गुण होते हैं:

  • x = पहचान किए गए ऑब्जेक्ट का क्षैतिज केंद्र बिंदु

  • y = पहचान किए गए ऑब्जेक्ट का ऊर्ध्वाधर केंद्र बिंदु

  • width = bounding box की चौड़ाई

  • height = bounding box की ऊँचाई

  • class = पहचान किए गए ऑब्जेक्ट का क्लास लेबल

  • confidence = मॉडल का भरोसा (confidence) कि पहचान किया गया ऑब्जेक्ट सही लेबल और स्थिति निर्देशांकों के साथ है

यहाँ REST API से एक उदाहरण प्रतिक्रिया ऑब्जेक्ट है:

{
    "predictions": [
        {
            "x": 189.5,
            "y": 100,
            "width": 163,
            "height": 186,
            "class": "helmet",
            "confidence": 0.544
        }
    ],
    "image": {
        "width": 2048,
        "height": 1371
    }
}

The image attribute उस छवि की ऊँचाई और चौड़ाई को दर्शाता है जो inference के लिए भेजी गई थी। bounding box की गणनाओं के लिए आपको इन मानों का उपयोग करना पड़ सकता है।

Inference API JSON आउटपुट से बॉक्स बनाना

bounding boxes को रेंडर करने के लिए frameworks और पैकेज positional फॉर्मैट में भिन्न हो सकते हैं। दिए गए प्रतिक्रिया JSON ऑब्जेक्ट के गुणों को देखते हुए, निम्नलिखित नियमों के किसी संयोजन का उपयोग करके हमेशा एक bounding box बनाया जा सकता है:

  • केंद्र बिंदु हमेशा होगा (x,y)

  • कोण बिंदु (x1, y1) और (x2, y2) इनका पता लगाया जा सकता है:

    • x1 = x - (width/2)

    • y1 = y - (height/2)

    • x2 = x + (width/2)

    • y2 = y + (height/2)

कोण बिंदुओं का तरीका एक सामान्य पैटर्न है और लाइब्रेरीज़ में देखा जाता है जैसे Pillow जब बनाते हैं box ऑब्जेक्ट bounding boxes को एक के भीतर रेंडर करने के लिए Image.

जब काम कर रहे हों तो सभी मिलान (detections) के माध्यम से iterate करना न भूलें predictions!

# Pillow लाइब्रेरी से उदाहरण box ऑब्जेक्ट
for bounding_box in detections:
    x1 = bounding_box['x'] - bounding_box['width'] / 2
    x2 = bounding_box['x'] + bounding_box['width'] / 2
    y1 = bounding_box['y'] - bounding_box['height'] / 2
    y2 = bounding_box['y'] + bounding_box['height'] / 2
    box = (x1, x2, y1, y2)

Last updated

Was this helpful?