ऑब्जेक्ट डिटेक्शन

रोबोफ्लो पर होस्ट किए गए अपने ऑब्जेक्ट डिटेक्शन मॉडल्स पर इनफेरेंस चलाएँ।

Roboflow Hosted API का उपयोग करके ऑब्जेक्ट डिटेक्शन इंफरेंस चलाने के कई तरीके हैं। आप हमारे विभिन्न SDKs में से किसी एक का उपयोग कर सकते हैं, या हमारे होस्टेड एंडपॉइंट पर 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")

API Reference

URL

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

नाम
प्रकार
विवरण

projectId

string

डेटासेट नाम का url-safe वर्शन। आप इसे वेब UI में मुख्य प्रोजेक्ट व्यू पर URL देखकर या ट्रेनिंग के बाद अपने डेटासेट वर्शन के ट्रेन रिजल्ट्स सेक्शन में "Get curl command" बटन पर क्लिक करके पा सकते हैं।

version

number

आपके डेटासेट के वर्शन की पहचान करने वाला वर्शन नंबर

देखें कि अपना प्रोजेक्ट ID और वर्शन नंबर कैसे प्राप्त करें यहाँ.

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

  • एक base64 एन्कोडेड इमेज को POST अनुरोध बॉडी में जोड़ें

  • इमेज फाइल का URL भेजें इमेज URL query

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

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

नाम
प्रकार
विवरण

इमेज

string

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

classes

string

प्रेडिक्शन को केवल कुछ निश्चित classes तक सीमित करें। इसे कॉमा सेपरेटेड स्ट्रिंग के रूप में दें। उदाहरण: dog,cat Default: not present (सभी classes दिखाएँ)

overlap

number

अधिकतम प्रतिशत (0-100 के पैमाने पर) जितना bounding box prediction एक ही class के allowed हैं ओवरलैप करने के लिए, इससे पहले कि उन्हें एक बॉक्स में मिला दिया जाए।

Default: 30

confidence

number

रिटर्न किए गए प्रेडिक्शन के लिए थ्रेशहोल्ड (0-100 के पैमाने पर)। कम नंबर अधिक prediction लौटाएगा। अधिक नंबर कम लेकिन अधिक निश्चितता वाले prediction लौटाएगा।

Default: 40

stroke

number

prediction के चारों ओर दिखाए गए bounding box की चौड़ाई (पिक्सल में) (केवल तभी प्रभाव डालता है जब format है इमेज).

Default: 1

labels

boolean

prediction पर टेक्स्ट लेबल दिखाना है या नहीं (केवल तभी प्रभाव डालता है जब format है इमेज).

Default: false

format

string

विकल्प:

  • json: JSON प्रेडिक्शन की एक array लौटाता है। (रिस्पॉन्स फॉर्मेट टैब देखें)।

  • image: एनोटेटेड प्रेडिक्शन के साथ एक इमेज लौटाता है, एक बाइनरी blob के रूप में जिसमें Content-Type का image/jpeg.

Default: json

api_key

string

आपका API key (आपके workspace API settings पेज से प्राप्त)

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

प्रकार
विवरण

string

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

content type होना चाहिए application/x-www-form-urlencoded स्ट्रिंग बॉडी के साथ।

Response Format

hosted API inference endpoint, साथ ही हमारे अधिकांश SDKs, लौटाते हैं JSON ऑब्जेक्ट जिसमें prediction की array होती है। हर prediction में निम्नलिखित properties होती हैं:

  • x = डिटेक्टेड ऑब्जेक्ट का क्षैतिज केंद्र बिंदु

  • y = डिटेक्टेड ऑब्जेक्ट का ऊर्ध्वाधर केंद्र बिंदु

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

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

  • class = डिटेक्टेड ऑब्जेक्ट का class लेबल

  • confidence = मॉडल का confidence कि डिटेक्टेड ऑब्जेक्ट का लेबल और पोजिशन सही है

यहाँ REST API से एक उदाहरण response object है:

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

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

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

bounding box रेंडर करने के लिए frameworks और packages में पोजिशनल फॉर्मेट अलग हो सकते हैं। response JSON object की properties के अनुसार, bounding box हमेशा निम्नलिखित नियमों के कुछ संयोजन से बनाया जा सकता है:

  • center point हमेशा होगा (x,y)

  • corner points (x1, y1) और (x2, y2) इनका पता लगाया जा सकता है:

    • x1 = x - (width/2)

    • y1 = y - (height/2)

    • x2 = x + (width/2)

    • y2 = y + (height/2)

corner points का तरीका एक सामान्य पैटर्न है और इसे ऐसी लाइब्रेरीज़ में देखा जाता है जैसे Pillow जब आप बना रहे हों box object ताकि bounding boxes को एक Image.

के भीतर रेंडर किया जा सके। सभी detections के लिए iteration करना न भूलें जब आप काम कर रहे हों predictions!

# Pillow लाइब्रेरी से उदाहरण box object
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?