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

VLM As Detector

कच्ची स्ट्रिंग को object-detection prediction में पार्स करता है।

v2

विज़ुअल लैंग्वेज मॉडल्स (VLMs) और लार्ज लैंग्वेज मॉडल्स (LLMs) से JSON स्ट्रिंग्स को बाउंडिंग बॉक्स, क्लास नाम, और कॉन्फिडेंस निकालकर, सामान्यीकृत निर्देशांकों को पिक्सेल निर्देशांकों में बदलकर, क्लास नामों को क्लास ID से मैप करके, और कई मॉडल प्रकारों तथा टास्क फ़ॉर्मैट्स को संभालकर मानकीकृत ऑब्जेक्ट डिटेक्शन प्रेडिक्शन फ़ॉर्मैट में पार्स करें, ताकि VLM-आधारित ऑब्जेक्ट डिटेक्शन, LLM डिटेक्शन पार्सिंग, और टेक्स्ट-टू-डिटेक्शन रूपांतरण वर्कफ़्लो सक्षम हों।

यह ब्लॉक कैसे काम करता है

यह ब्लॉक VLM/LLM टेक्स्ट आउटपुट, जिनमें ऑब्जेक्ट डिटेक्शन प्रेडिक्शन शामिल हैं, को वर्कफ़्लो डिटेक्शन ब्लॉक्स के साथ संगत मानकीकृत ऑब्जेक्ट डिटेक्शन फ़ॉर्मैट में बदलता है। ब्लॉक:

  1. JSON प्रारूप में डिटेक्शन परिणामों वाली VLM आउटपुट स्ट्रिंग प्राप्त करता है

  2. VLM आउटपुट से JSON सामग्री पार्स करता है:

    Markdown-लिपटे JSON को संभालता है:

    • Markdown कोड ब्लॉक्स (json ... )

    • यह फ़ॉर्मैट LLM/VLM प्रतिक्रियाओं में सामान्य है

    • यदि कई markdown JSON ब्लॉक मिलते हैं, तो केवल पहला ब्लॉक पार्स किया जाता है

    • Markdown टैग्स के भीतर से JSON सामग्री निकालता है

    रॉ JSON स्ट्रिंग्स को संभालता है:

    • यदि कोई markdown ब्लॉक नहीं मिलता, तो पूरी स्ट्रिंग को JSON के रूप में पार्स करने का प्रयास करता है

    • मानक JSON फ़ॉर्मैट स्ट्रिंग्स का समर्थन करता है

  3. मॉडल प्रकार और टास्क प्रकार के आधार पर उपयुक्त पार्सर चुनता है:

    • विभिन्न मॉडल आउटपुट (google-gemini, anthropic-claude, florence-2, openai) को संभालने वाले पंजीकृत पार्सर्स का उपयोग करता है

    • कई टास्क प्रकारों का समर्थन करता है: object-detection, open-vocabulary-object-detection, object-detection-and-caption, phrase-grounded-object-detection, region-proposal, ocr-with-text-detection

    • प्रत्येक मॉडल/टास्क संयोजन उस फ़ॉर्मैट के लिए एक विशेषीकृत पार्सर का उपयोग करता है

  4. मॉडल प्रकार के आधार पर डिटेक्शन डेटा पार्स करता है:

    OpenAI/Gemini/Claude मॉडल्स के लिए:

    • पार्स किए गए JSON से detections array निकालता है

    • सामान्यीकृत निर्देशांकों (0-1 रेंज) को इमेज आयामों का उपयोग करके पिक्सेल निर्देशांकों में बदलता है

    • क्लास नाम, कॉन्फिडेंस स्कोर, और बाउंडिंग बॉक्स निर्देशांक निकालता है

    • प्रदान की गई classes सूची का उपयोग करके क्लास नामों को क्लास ID से मैप करता है

    • बाउंडिंग बॉक्स, क्लास, और कॉन्फिडेंस के साथ डिटेक्शन ऑब्जेक्ट्स बनाता है

    Florence-2 मॉडल के लिए:

    • Florence-2 फ़ॉर्मैट के लिए supervision के बिल्ट-इन LMM पार्सर का उपयोग करता है

    • विभिन्न टास्क प्रकारों को विशेषीकृत पार्सिंग के साथ संभालता है (object detection, open vocabulary, region proposal, OCR, आदि)

    • region proposal टास्क के लिए: "roi" को class name के रूप में असाइन करता है

    • open vocabulary detection के लिए: class ID mapping के लिए प्रदान की गई classes सूची का उपयोग करता है

    • अन्य टास्क के लिए: MD5-आधारित class ID जनरेशन या प्रदान की गई classes का उपयोग करता है

    • Florence-2 डिटेक्शन्स के लिए confidence को 1.0 पर सेट करता है (मॉडल confidence प्रदान नहीं करता)

  5. निर्देशांकों को बदलता और डेटा सामान्यीकृत करता है:

    • सामान्यीकृत निर्देशांकों (0-1) को पूर्ण पिक्सेल निर्देशांकों (x_min, y_min, x_max, y_max) में बदलता है

    • इमेज की चौड़ाई और ऊँचाई का उपयोग करके निर्देशांकों को स्केल करता है

    • कॉन्फिडेंस स्कोर को वैध सीमा [0.0, 1.0] में सामान्यीकृत करता है

    • सीमा से बाहर के कॉन्फिडेंस मानों को क्लैम्प करता है

  6. क्लास नाम से क्लास ID मैपिंग बनाता है:

    • OpenAI/Gemini/Claude के लिए: class_name → class_id मैपिंग बनाने हेतु प्रदान की गई classes सूची का उपयोग करता है

    • क्लासों को क्रम के अनुसार मैप किया जाता है (पहली class = ID 0, दूसरी = ID 1, आदि)

    • प्रदान की गई सूची में न होने वाली classes को class_id = -1 मिलता है

    • Florence-2 के लिए: टास्क प्रकार के आधार पर अलग-अलग मैपिंग रणनीतियों का उपयोग करता है

  7. ऑब्जेक्ट डिटेक्शन प्रेडिक्शन बनाता है:

    • बाउंडिंग बॉक्स (xyxy फ़ॉर्मैट) के साथ supervision Detections ऑब्जेक्ट्स बनाता है

    • class IDs, class names, और confidence scores शामिल करता है

    • मेटाडेटा जोड़ता है: detection IDs, inference IDs, image dimensions, prediction type

    • crop-aware detections के लिए parent coordinates संलग्न करता है

    • प्रेडिक्शन को मानक ऑब्जेक्ट डिटेक्शन फ़ॉर्मैट में फ़ॉर्मैट करता है

  8. त्रुटियों को संभालता है:

    • सेट करता है error_status यदि JSON पार्सिंग विफल हो जाए तो इसे True

    • सेट करता है error_status यदि detection पार्सिंग विफल हो जाए तो इसे True

    • त्रुटियाँ होने पर predictions के लिए None लौटाता है

    • ट्रैकिंग के लिए हमेशा inference_id शामिल करता है

  9. ऑब्जेक्ट डिटेक्शन प्रेडिक्शंस लौटाता है:

    • आउटपुट्स predictions मानक ऑब्जेक्ट डिटेक्शन फ़ॉर्मैट में (detection blocks के साथ संगत)

    • आउटपुट्स error_status पार्सिंग सफलता/विफलता को दर्शाते हुए

    • आउटपुट्स inference_id ट्रैकिंग और lineage के लिए

यह ब्लॉक VLMs/LLMs को ऑब्जेक्ट डिटेक्शन के लिए सक्षम बनाता है, क्योंकि यह उनके टेक्स्ट-आधारित JSON आउटपुट्स को मानकीकृत डिटेक्शन प्रेडिक्शंस में बदल देता है, जिन्हें वर्कफ़्लोज़ में किसी भी अन्य ऑब्जेक्ट डिटेक्शन मॉडल आउटपुट की तरह उपयोग किया जा सकता है।

सामान्य उपयोग के मामले

  • VLM-आधारित ऑब्जेक्ट डिटेक्शन: ऑब्जेक्ट डिटेक्शन के लिए Visual Language Models का उपयोग करें, VLM आउटपुट्स को डिटेक्शन प्रेडिक्शंस में पार्स करके (जैसे GPT-4V के साथ वस्तुएँ पहचानना, डिटेक्शन के लिए Claude Vision का उपयोग करना, Gemini detection outputs को पार्स करना), जिससे VLM detection workflows सक्षम हों

  • ओपन-वोकैब्युलरी डिटेक्शन: कस्टम classes के साथ open-vocabulary ऑब्जेक्ट डिटेक्शन के लिए VLMs का उपयोग करें (जैसे VLMs के साथ कस्टम वस्तुएँ पहचानना, open-vocabulary detection का उपयोग करना, प्रशिक्षण सेट में न होने वाली वस्तुएँ पहचानना), जिससे open-vocabulary detection workflows सक्षम हों

  • मल्टी-टास्क डिटेक्शन: विभिन्न डिटेक्शन कार्यों के लिए VLMs का उपयोग करें (जैसे captions के साथ object detection, phrase-grounded detection, region proposal, detection के साथ OCR), जिससे multi-task detection workflows सक्षम हों

  • LLM डिटेक्शन पार्सिंग: LLM टेक्स्ट आउटपुट, जिनमें डिटेक्शन परिणाम शामिल हैं, को मानकीकृत फ़ॉर्मैट में पार्स करें (जैसे GPT detection outputs को पार्स करना, LLM predictions को detection फ़ॉर्मैट में बदलना, detection के लिए LLMs का उपयोग करना), जिससे LLM detection workflows सक्षम हों

  • टेक्स्ट-टू-डिटेक्शन रूपांतरण: मॉडलों से टेक्स्ट-आधारित डिटेक्शन आउटपुट्स को वर्कफ़्लो-संगत detection predictions में बदलें (जैसे टेक्स्ट predictions को detection फ़ॉर्मैट में बदलना, टेक्स्ट-आधारित detections को पार्स करना, model outputs को detections में बदलना), जिससे text-to-detection workflows सक्षम हों

  • VLM एकीकरण: detection workflows में VLM outputs को एकीकृत करें (जैसे detection pipelines में VLMs का उपयोग करना, VLM predictions को detection blocks के साथ एकीकृत करना, VLM और पारंपरिक detection को संयोजित करना), जिससे VLM integration workflows सक्षम हों

अन्य ब्लॉक्स से कनेक्ट करना

यह ब्लॉक images और VLM outputs प्राप्त करता है और object detection predictions उत्पन्न करता है:

  • VLM/LLM blocks के बाद : detection outputs को मानक फ़ॉर्मैट में पार्स करने के लिए (जैसे VLM output को detections में, LLM output को detections में, model outputs को पार्स करना), जिससे VLM-to-detection workflows सक्षम हों

  • detection-based blocks से पहले : parsed detections का उपयोग करने के लिए (जैसे workflows में parsed detections का उपयोग करना, downstream blocks को detections प्रदान करना, detection blocks के साथ VLM detections का उपयोग करना), जिससे detection-to-workflow workflows सक्षम हों

  • filtering blocks से पहले : VLM detections को फ़िल्टर करने के लिए (जैसे class के आधार पर फ़िल्टर करना, confidence के आधार पर फ़िल्टर करना, VLM predictions पर filters लागू करना), जिससे detection-to-filter workflows सक्षम हों

  • विश्लेषण ब्लॉकों से पहले : VLM detection results का विश्लेषण करने के लिए (जैसे VLM detections का विश्लेषण करना, parsed detections पर analytics करना, VLM detection metrics ट्रैक करना), जिससे detection analytics workflows सक्षम हों

  • विज़ुअलाइज़ेशन ब्लॉकों से पहले : VLM detection results प्रदर्शित करने के लिए (जैसे VLM detections को visualize करना, parsed detection predictions प्रदर्शित करना, VLM detection outputs दिखाना), जिससे detection visualization workflows सक्षम हों

  • वर्कफ़्लो आउटपुट में : VLM detections को अंतिम आउटपुट के रूप में प्रदान करने के लिए (जैसे VLM detection outputs, parsed detection results, VLM-based detection outputs), जिससे detection output workflows सक्षम हों

संस्करणों के बीच अंतर

v1 की तुलना में इस version (v2) में निम्नलिखित enhancements शामिल हैं:

  • बेहतर टाइप सिस्टम: यह inference_id आउटपुट अब उपयोग करता है INFERENCE_ID_KIND के बजाय STRING_KIND, जिससे वर्कफ़्लो सिस्टम में inference tracking identifiers के लिए बेहतर टाइप सुरक्षा और अर्थगत स्पष्टता मिलती है

  • OpenAI मॉडल समर्थन: Google Gemini, Anthropic Claude, और Florence-2 models के साथ-साथ OpenAI models के लिए समर्थन जोड़ा गया है, जिससे object detection के लिए उपयोग किए जा सकने वाले VLM/LLM models की रेंज बढ़ती है

  • बेहतर टाइप सुरक्षा: बेहतर टाइप सिस्टम workflow execution engine के साथ बेहतर एकीकरण सुनिश्चित करता है और inference tracking के लिए अधिक स्पष्ट अर्थगत स्पष्टता प्रदान करता है

आवश्यकताएँ

यह ब्लॉक एक image input (metadata और dimensions के लिए) और JSON detection data वाली VLM output string की आवश्यकता रखता है। JSON raw JSON हो सकता है या Markdown code blocks (json ... ). यह ब्लॉक चार मॉडल प्रकारों का समर्थन करता है: "openai", "google-gemini", "anthropic-claude", और "florence-2". यह कई टास्क प्रकारों का समर्थन करता है: "object-detection", "open-vocabulary-object-detection", "object-detection-and-caption", "phrase-grounded-object-detection", "region-proposal", और "ocr-with-text-detection". यह classes पैरामीटर OpenAI, Gemini, और Claude models के लिए आवश्यक है (क्लास नामों को IDs से मैप करने के लिए) लेकिन Florence-2 के लिए वैकल्पिक है (कुछ टास्क इसे नहीं चाहते)। Classes को index के अनुसार IDs से मैप किया जाता है (पहली class = 0, दूसरी = 1, आदि)। सूची में न होने वाली classes को class_id = -1 मिलता है। यह ब्लॉक मानक फ़ॉर्मैट में object detection predictions (detection blocks के साथ संगत), error_status (boolean), और tracking के लिए inference_id (INFERENCE_ID_KIND) आउटपुट करता है।

प्रकार पहचानकर्ता

स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फ़ील्ड: roboflow_core/vlm_as_detector@v2 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।

गुण

नाम

प्रकार

विवरण

संदर्भ

name

str

इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..

classes

List[str]

classification model द्वारा उपयोग किए गए सभी class names की सूची, क्रम में। VLM आउटपुट से class names और detection format के लिए class IDs के बीच mapping बनाने हेतु आवश्यक। Classes को index के अनुसार IDs से मैप किया जाता है: पहली class = ID 0, दूसरी = ID 1, आदि। VLM आउटपुट से वे classes जो इस सूची में नहीं हैं, उन्हें class_id = -1 मिलता है। OpenAI, Gemini, और Claude models के लिए आवश्यक। Florence-2 के लिए वैकल्पिक (कुछ टास्क इसे नहीं चाहते)। VLM से जिन classes को detect करने के लिए कहा गया था, उनके साथ मेल खाना चाहिए..

model_type

str

उस VLM/LLM model का प्रकार जिसने prediction उत्पन्न किया। निर्धारित करता है कि JSON आउटपुट से detection data निकालने के लिए कौन सा parser उपयोग होगा। समर्थित models: 'openai' (GPT-4V), 'google-gemini' (Gemini Vision), 'anthropic-claude' (Claude Vision), 'florence-2' (Microsoft Florence-2). प्रत्येक model type के JSON output formats अलग होते हैं, इसलिए सही parsing के लिए उपयुक्त model type निर्दिष्ट करना आवश्यक है..

task_type

str

VLM/LLM model द्वारा किया गया task type। निर्धारित करता है कि कौन सा parser और format handler उपयोग होगा। समर्थित task types: 'object-detection' (मानक ऑब्जेक्ट डिटेक्शन), 'open-vocabulary-object-detection' (कस्टम classes के साथ वस्तुएँ detect करना), 'object-detection-and-caption' (captions के साथ detection), 'phrase-grounded-object-detection' (phrases को detections से जोड़ना), 'region-proposal' (interest के क्षेत्रों का प्रस्ताव), 'ocr-with-text-detection' (टेक्स्ट क्षेत्र detection के साथ OCR)। task type वही होना चाहिए जो VLM/LLM से करने के लिए कहा गया था..

यह संदर्भ स्तंभ यह इंगित करता है कि संपत्ति को वर्कफ़्लो रनटाइम में उपलब्ध गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है वर्कफ़्लो रनटाइम। देखें बाइंडिंग्स अधिक जानकारी के लिए।

इनपुट और आउटपुट बाइंडिंग्स

उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। देखें कि कौन-से बाइंडिंग प्रकार VLM को डिटेक्टर के रूप में संस्करण v2 है।

इनपुट और आउटपुट बाइंडिंग्स
  • इनपुट

    • छवि (छवि): वह input image जिसका उपयोग VLM prediction जनरेट करने के लिए किया गया था। image dimensions (width, height) निकालने के लिए, ताकि normalized coordinates को pixel coordinates में बदला जा सके, और detection predictions के लिए metadata (parent_id) के लिए उपयोग होता है। VLM/LLM block को दिया गया वही image यहाँ उपयोग किया जाना चाहिए ताकि consistency बनी रहे..

    • vlm_output (language_model_output): VLM या LLM block से मिला string output जिसमें JSON format में object detection prediction शामिल है। यह raw JSON string या Markdown code blocks में लिपटा JSON हो सकता है (जैसे, json {...} ). फ़ॉर्मैट model_type और task_type पर निर्भर करता है - अलग-अलग models और tasks अलग JSON structures उत्पन्न करते हैं। यदि कई markdown blocks मौजूद हों, तो केवल पहला ही पार्स किया जाता है..

    • classes (list_of_values): classification model द्वारा उपयोग किए गए सभी class names की सूची, क्रम में। VLM आउटपुट से class names और detection format के लिए class IDs के बीच mapping बनाने हेतु आवश्यक। Classes को index के अनुसार IDs से मैप किया जाता है: पहली class = ID 0, दूसरी = ID 1, आदि। VLM आउटपुट से वे classes जो इस सूची में नहीं हैं, उन्हें class_id = -1 मिलता है। OpenAI, Gemini, और Claude models के लिए आवश्यक। Florence-2 के लिए वैकल्पिक (कुछ टास्क इसे नहीं चाहते)। VLM से जिन classes को detect करने के लिए कहा गया था, उनके साथ मेल खाना चाहिए..

  • आउटपुट

    • error_status (boolean): बूलियन फ़्लैग.

    • predictions (object_detection_prediction): sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स के साथ पूर्वानुमान।

    • inference_id (inference_id): Inference पहचानकर्ता।

उदाहरण JSON परिभाषा

v1

विज़ुअल लैंग्वेज मॉडल्स (VLMs) और लार्ज लैंग्वेज मॉडल्स (LLMs) से JSON स्ट्रिंग्स को बाउंडिंग बॉक्स, क्लास नाम, और कॉन्फिडेंस निकालकर, सामान्यीकृत निर्देशांकों को पिक्सेल निर्देशांकों में बदलकर, क्लास नामों को क्लास ID से मैप करके, और कई मॉडल प्रकारों तथा टास्क फ़ॉर्मैट्स को संभालकर मानकीकृत ऑब्जेक्ट डिटेक्शन प्रेडिक्शन फ़ॉर्मैट में पार्स करें, ताकि VLM-आधारित ऑब्जेक्ट डिटेक्शन, LLM डिटेक्शन पार्सिंग, और टेक्स्ट-टू-डिटेक्शन रूपांतरण वर्कफ़्लो सक्षम हों।

यह ब्लॉक कैसे काम करता है

यह ब्लॉक VLM/LLM टेक्स्ट आउटपुट, जिनमें ऑब्जेक्ट डिटेक्शन प्रेडिक्शन शामिल हैं, को वर्कफ़्लो डिटेक्शन ब्लॉक्स के साथ संगत मानकीकृत ऑब्जेक्ट डिटेक्शन फ़ॉर्मैट में बदलता है। ब्लॉक:

  1. JSON प्रारूप में डिटेक्शन परिणामों वाली VLM आउटपुट स्ट्रिंग प्राप्त करता है

  2. VLM आउटपुट से JSON सामग्री पार्स करता है:

    Markdown-लिपटे JSON को संभालता है:

    • Markdown कोड ब्लॉक्स (json ... )

    • यह फ़ॉर्मैट LLM/VLM प्रतिक्रियाओं में सामान्य है

    • यदि कई markdown JSON ब्लॉक मिलते हैं, तो केवल पहला ब्लॉक पार्स किया जाता है

    • Markdown टैग्स के भीतर से JSON सामग्री निकालता है

    रॉ JSON स्ट्रिंग्स को संभालता है:

    • यदि कोई markdown ब्लॉक नहीं मिलता, तो पूरी स्ट्रिंग को JSON के रूप में पार्स करने का प्रयास करता है

    • मानक JSON फ़ॉर्मैट स्ट्रिंग्स का समर्थन करता है

  3. मॉडल प्रकार और टास्क प्रकार के आधार पर उपयुक्त पार्सर चुनता है:

    • विभिन्न model outputs (google-gemini, anthropic-claude, florence-2) को संभालने वाले पंजीकृत parsers का उपयोग करता है

    • कई टास्क प्रकारों का समर्थन करता है: object-detection, open-vocabulary-object-detection, object-detection-and-caption, phrase-grounded-object-detection, region-proposal, ocr-with-text-detection

    • प्रत्येक मॉडल/टास्क संयोजन उस फ़ॉर्मैट के लिए एक विशेषीकृत पार्सर का उपयोग करता है

  4. मॉडल प्रकार के आधार पर डिटेक्शन डेटा पार्स करता है:

    Gemini/Claude मॉडल्स के लिए:

    • पार्स किए गए JSON से detections array निकालता है

    • सामान्यीकृत निर्देशांकों (0-1 रेंज) को इमेज आयामों का उपयोग करके पिक्सेल निर्देशांकों में बदलता है

    • क्लास नाम, कॉन्फिडेंस स्कोर, और बाउंडिंग बॉक्स निर्देशांक निकालता है

    • प्रदान की गई classes सूची का उपयोग करके क्लास नामों को क्लास ID से मैप करता है

    • बाउंडिंग बॉक्स, क्लास, और कॉन्फिडेंस के साथ डिटेक्शन ऑब्जेक्ट्स बनाता है

    Florence-2 मॉडल के लिए:

    • Florence-2 फ़ॉर्मैट के लिए supervision के बिल्ट-इन LMM पार्सर का उपयोग करता है

    • विभिन्न टास्क प्रकारों को विशेषीकृत पार्सिंग के साथ संभालता है (object detection, open vocabulary, region proposal, OCR, आदि)

    • region proposal टास्क के लिए: "roi" को class name के रूप में असाइन करता है

    • open vocabulary detection के लिए: class ID mapping के लिए प्रदान की गई classes सूची का उपयोग करता है

    • अन्य टास्क के लिए: MD5-आधारित class ID जनरेशन या प्रदान की गई classes का उपयोग करता है

    • Florence-2 डिटेक्शन्स के लिए confidence को 1.0 पर सेट करता है (मॉडल confidence प्रदान नहीं करता)

  5. निर्देशांकों को बदलता और डेटा सामान्यीकृत करता है:

    • सामान्यीकृत निर्देशांकों (0-1) को पूर्ण पिक्सेल निर्देशांकों (x_min, y_min, x_max, y_max) में बदलता है

    • इमेज की चौड़ाई और ऊँचाई का उपयोग करके निर्देशांकों को स्केल करता है

    • कॉन्फिडेंस स्कोर को वैध सीमा [0.0, 1.0] में सामान्यीकृत करता है

    • सीमा से बाहर के कॉन्फिडेंस मानों को क्लैम्प करता है

  6. क्लास नाम से क्लास ID मैपिंग बनाता है:

    • Gemini/Claude के लिए: प्रदान की गई classes सूची का उपयोग करके index mapping बनाता है (class_name → class_id)

    • क्लासों को क्रम के अनुसार मैप किया जाता है (पहली class = ID 0, दूसरी = ID 1, आदि)

    • प्रदान की गई सूची में न होने वाली classes को class_id = -1 मिलता है

    • Florence-2 के लिए: टास्क प्रकार के आधार पर अलग-अलग मैपिंग रणनीतियों का उपयोग करता है

  7. ऑब्जेक्ट डिटेक्शन प्रेडिक्शन बनाता है:

    • बाउंडिंग बॉक्स (xyxy फ़ॉर्मैट) के साथ supervision Detections ऑब्जेक्ट्स बनाता है

    • class IDs, class names, और confidence scores शामिल करता है

    • मेटाडेटा जोड़ता है: detection IDs, inference IDs, image dimensions, prediction type

    • crop-aware detections के लिए parent coordinates संलग्न करता है

    • प्रेडिक्शन को मानक ऑब्जेक्ट डिटेक्शन फ़ॉर्मैट में फ़ॉर्मैट करता है

  8. त्रुटियों को संभालता है:

    • सेट करता है error_status यदि JSON पार्सिंग विफल हो जाए तो इसे True

    • सेट करता है error_status यदि detection पार्सिंग विफल हो जाए तो इसे True

    • त्रुटियाँ होने पर predictions के लिए None लौटाता है

    • ट्रैकिंग के लिए हमेशा inference_id शामिल करता है

  9. ऑब्जेक्ट डिटेक्शन प्रेडिक्शंस लौटाता है:

    • आउटपुट्स predictions मानक ऑब्जेक्ट डिटेक्शन फ़ॉर्मैट में (detection blocks के साथ संगत)

    • आउटपुट्स error_status पार्सिंग सफलता/विफलता को दर्शाते हुए

    • आउटपुट्स inference_id ट्रैकिंग और lineage के लिए

यह ब्लॉक VLMs/LLMs को ऑब्जेक्ट डिटेक्शन के लिए सक्षम बनाता है, क्योंकि यह उनके टेक्स्ट-आधारित JSON आउटपुट्स को मानकीकृत डिटेक्शन प्रेडिक्शंस में बदल देता है, जिन्हें वर्कफ़्लोज़ में किसी भी अन्य ऑब्जेक्ट डिटेक्शन मॉडल आउटपुट की तरह उपयोग किया जा सकता है।

सामान्य उपयोग के मामले

  • VLM-आधारित ऑब्जेक्ट डिटेक्शन: ऑब्जेक्ट डिटेक्शन के लिए Visual Language Models का उपयोग करें, VLM आउटपुट्स को डिटेक्शन प्रेडिक्शंस में पार्स करके (जैसे GPT-4V के साथ वस्तुएँ पहचानना, डिटेक्शन के लिए Claude Vision का उपयोग करना, Gemini detection outputs को पार्स करना), जिससे VLM detection workflows सक्षम हों

  • ओपन-वोकैब्युलरी डिटेक्शन: कस्टम classes के साथ open-vocabulary ऑब्जेक्ट डिटेक्शन के लिए VLMs का उपयोग करें (जैसे VLMs के साथ कस्टम वस्तुएँ पहचानना, open-vocabulary detection का उपयोग करना, प्रशिक्षण सेट में न होने वाली वस्तुएँ पहचानना), जिससे open-vocabulary detection workflows सक्षम हों

  • मल्टी-टास्क डिटेक्शन: विभिन्न डिटेक्शन कार्यों के लिए VLMs का उपयोग करें (जैसे captions के साथ object detection, phrase-grounded detection, region proposal, detection के साथ OCR), जिससे multi-task detection workflows सक्षम हों

  • LLM डिटेक्शन पार्सिंग: LLM टेक्स्ट आउटपुट, जिनमें डिटेक्शन परिणाम शामिल हैं, को मानकीकृत फ़ॉर्मैट में पार्स करें (जैसे GPT detection outputs को पार्स करना, LLM predictions को detection फ़ॉर्मैट में बदलना, detection के लिए LLMs का उपयोग करना), जिससे LLM detection workflows सक्षम हों

  • टेक्स्ट-टू-डिटेक्शन रूपांतरण: मॉडलों से टेक्स्ट-आधारित डिटेक्शन आउटपुट्स को वर्कफ़्लो-संगत detection predictions में बदलें (जैसे टेक्स्ट predictions को detection फ़ॉर्मैट में बदलना, टेक्स्ट-आधारित detections को पार्स करना, model outputs को detections में बदलना), जिससे text-to-detection workflows सक्षम हों

  • VLM एकीकरण: detection workflows में VLM outputs को एकीकृत करें (जैसे detection pipelines में VLMs का उपयोग करना, VLM predictions को detection blocks के साथ एकीकृत करना, VLM और पारंपरिक detection को संयोजित करना), जिससे VLM integration workflows सक्षम हों

अन्य ब्लॉक्स से कनेक्ट करना

यह ब्लॉक images और VLM outputs प्राप्त करता है और object detection predictions उत्पन्न करता है:

  • VLM/LLM blocks के बाद : detection outputs को मानक फ़ॉर्मैट में पार्स करने के लिए (जैसे VLM output को detections में, LLM output को detections में, model outputs को पार्स करना), जिससे VLM-to-detection workflows सक्षम हों

  • detection-based blocks से पहले : parsed detections का उपयोग करने के लिए (जैसे workflows में parsed detections का उपयोग करना, downstream blocks को detections प्रदान करना, detection blocks के साथ VLM detections का उपयोग करना), जिससे detection-to-workflow workflows सक्षम हों

  • filtering blocks से पहले : VLM detections को फ़िल्टर करने के लिए (जैसे class के आधार पर फ़िल्टर करना, confidence के आधार पर फ़िल्टर करना, VLM predictions पर filters लागू करना), जिससे detection-to-filter workflows सक्षम हों

  • विश्लेषण ब्लॉकों से पहले : VLM detection results का विश्लेषण करने के लिए (जैसे VLM detections का विश्लेषण करना, parsed detections पर analytics करना, VLM detection metrics ट्रैक करना), जिससे detection analytics workflows सक्षम हों

  • विज़ुअलाइज़ेशन ब्लॉकों से पहले : VLM detection results प्रदर्शित करने के लिए (जैसे VLM detections को visualize करना, parsed detection predictions प्रदर्शित करना, VLM detection outputs दिखाना), जिससे detection visualization workflows सक्षम हों

  • वर्कफ़्लो आउटपुट में : VLM detections को अंतिम आउटपुट के रूप में प्रदान करने के लिए (जैसे VLM detection outputs, parsed detection results, VLM-based detection outputs), जिससे detection output workflows सक्षम हों

आवश्यकताएँ

यह ब्लॉक एक image input (metadata और dimensions के लिए) और JSON detection data वाली VLM output string की आवश्यकता रखता है। JSON raw JSON हो सकता है या Markdown code blocks (json ... ). यह ब्लॉक तीन मॉडल प्रकारों का समर्थन करता है: "google-gemini", "anthropic-claude", और "florence-2". यह कई टास्क प्रकारों का समर्थन करता है: "object-detection", "open-vocabulary-object-detection", "object-detection-and-caption", "phrase-grounded-object-detection", "region-proposal", और "ocr-with-text-detection". यह classes पैरामीटर Gemini और Claude models के लिए आवश्यक है (क्लास नामों को IDs से मैप करने के लिए) लेकिन Florence-2 के लिए वैकल्पिक है (कुछ टास्क इसे नहीं चाहते)। Classes को index के अनुसार IDs से मैप किया जाता है (पहली class = 0, दूसरी = 1, आदि)। सूची में न होने वाली classes को class_id = -1 मिलता है। यह ब्लॉक मानक फ़ॉर्मैट में object detection predictions (detection blocks के साथ संगत), error_status (boolean), और tracking के लिए inference_id (string) आउटपुट करता है।

प्रकार पहचानकर्ता

स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फ़ील्ड: roboflow_core/vlm_as_detector@v1 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।

गुण

नाम

प्रकार

विवरण

संदर्भ

name

str

इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..

classes

List[str]

detection model द्वारा उपयोग किए गए सभी class names की सूची, क्रम में। google-gemini और anthropic-claude models के लिए VLM आउटपुट से class names और detection format के लिए class IDs के बीच mapping बनाने हेतु आवश्यक। Florence-2 model के लिए वैकल्पिक (केवल open-vocabulary-object-detection task के लिए आवश्यक)। Classes को index के अनुसार IDs से मैप किया जाता है: पहली class = ID 0, दूसरी = ID 1, आदि। VLM आउटपुट से वे classes जो इस सूची में नहीं हैं, उन्हें class_id = -1 मिलता है। VLM से जिन classes को detect करने के लिए कहा गया था, उनके साथ मेल खाना चाहिए..

model_type

str

वह VLM/LLM model प्रकार जिसने detection prediction उत्पन्न किया। JSON आउटपुट को पार्स करने के लिए कौन सा parser उपयोग करना है, यह निर्धारित करता है। 'google-gemini': Google Gemini model outputs. 'anthropic-claude': Anthropic Claude model outputs. 'florence-2': Microsoft Florence-2 model outputs. प्रत्येक model type के JSON output formats अलग होते हैं और उपयुक्त parsing की आवश्यकता होती है..

task_type

str

वह task type जो VLM model द्वारा किया गया था। निर्धारित करता है कि JSON आउटपुट कैसे पार्स किया जाता है और किस detection format की अपेक्षा होती है। समर्थित tasks: 'object-detection' (बिना प्रॉम्प्ट के detection), 'open-vocabulary-object-detection' (प्रदान की गई classes के साथ detection), 'object-detection-and-caption' (captions के साथ detection), 'phrase-grounded-object-detection' (प्रॉम्प्ट-आधारित detection), 'region-proposal' (interest के क्षेत्रों), 'ocr-with-text-detection' (OCR के साथ text detection)। प्रत्येक task type की विशिष्ट output format आवश्यकताएँ होती हैं..

यह संदर्भ स्तंभ यह इंगित करता है कि संपत्ति को वर्कफ़्लो रनटाइम में उपलब्ध गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है वर्कफ़्लो रनटाइम। देखें बाइंडिंग्स अधिक जानकारी के लिए।

इनपुट और आउटपुट बाइंडिंग्स

उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। देखें कि कौन-से बाइंडिंग प्रकार VLM को डिटेक्टर के रूप में संस्करण v1 है।

इनपुट और आउटपुट बाइंडिंग्स
  • इनपुट

    • छवि (छवि): वह input image जिसका उपयोग VLM prediction जनरेट करने के लिए किया गया था। image dimensions (width, height) निकालने के लिए, ताकि normalized coordinates को pixel coordinates में बदला जा सके, और detection predictions के लिए metadata (parent_id) के लिए उपयोग होता है। VLM/LLM block को दिया गया वही image यहाँ उपयोग किया जाना चाहिए ताकि consistency बनी रहे..

    • vlm_output (language_model_output): VLM या LLM block से मिला string output जिसमें JSON format में object detection prediction शामिल है। यह raw JSON string या Markdown code blocks में लिपटा JSON हो सकता है (जैसे, json {...} ). फ़ॉर्मैट model_type और task_type पर निर्भर करता है - अलग-अलग models और tasks अलग JSON structures उत्पन्न करते हैं। यदि कई markdown blocks मौजूद हों, तो केवल पहला ही पार्स किया जाता है..

    • classes (list_of_values): detection model द्वारा उपयोग किए गए सभी class names की सूची, क्रम में। google-gemini और anthropic-claude models के लिए VLM आउटपुट से class names और detection format के लिए class IDs के बीच mapping बनाने हेतु आवश्यक। Florence-2 model के लिए वैकल्पिक (केवल open-vocabulary-object-detection task के लिए आवश्यक)। Classes को index के अनुसार IDs से मैप किया जाता है: पहली class = ID 0, दूसरी = ID 1, आदि। VLM आउटपुट से वे classes जो इस सूची में नहीं हैं, उन्हें class_id = -1 मिलता है। VLM से जिन classes को detect करने के लिए कहा गया था, उनके साथ मेल खाना चाहिए..

  • आउटपुट

    • error_status (boolean): बूलियन फ़्लैग.

    • predictions (object_detection_prediction): sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स के साथ पूर्वानुमान।

    • inference_id (string): स्ट्रिंग मान.

उदाहरण JSON परिभाषा

अंतिम अपडेट

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