डिटेक्शन वर्ग प्रतिस्थापन
detctions की classes को chained classification model द्वारा अनुमानित classes से बदलें।
सामान्य डिटेक्शन परिणामों को विशेषीकृत वर्गीकरण पूर्वानुमानों के साथ संयोजित करने के लिए, डिटेक्शन बाउंडिंग बॉक्स के class labels को क्रॉप किए गए क्षेत्रों पर लागू किए गए classification model द्वारा पूर्वानुमानित classes से बदलें, ताकि two-stage detection workflows, fine-grained classification, और class refinement workflows सक्षम हों, जहाँ सामान्य detections को विशेषीकृत classifiers से प्राप्त विशिष्ट class labels के साथ परिष्कृत किया जाता है।
यह ब्लॉक कैसे काम करता है
यह ब्लॉक एक detection model (bounding boxes और सामान्य classes के साथ) के परिणामों को classification predictions (क्रॉप किए गए क्षेत्रों पर लागू किए गए एक specialized classifier से) के साथ जोड़कर सामान्य class labels को विशिष्ट labels से प्रतिस्थापित करता है। यह ब्लॉक:
विभिन्न आयामी स्तरों वाले दो inputs प्राप्त करता है:
object_detection_predictions: Detection results (आयामी स्तर 1) जिनमें generic classes के साथ bounding boxes शामिल हैं (उदाहरण: "dog", "person", "vehicle")classification_predictions: Classification results (आयामी स्तर 2) एक classifier से, जो प्रत्येक detection के cropped regions पर लागू किया गया है (उदाहरण: dog detections के लिए "Golden Retriever", "Labrador"). यह strings की सूची भी हो सकती है (उदाहरण: OCR से)।
वर्गीकरणों को detections से मिलाता है:
का उपयोग करता है
PARENT_ID_KEY(detection_id) का उपयोग classification predictions में प्रत्येक classification result को उसके source detection से जोड़ने के लिए, यायदि predictions raw strings/lists हों और parent IDs न हों, तो positional mapping (order-based) का उपयोग करता है।
प्रत्येक classification prediction से अग्रणी class निकालता है:
सिंगल-लेबल classifications के लिए:
classification result से "top" class (पूर्वानुमानित class) का उपयोग करता है
classification prediction से class name, class ID, और confidence निकालता है
मल्टी-लेबल classifications के लिए:
सबसे अधिक confidence score वाली class ढूँढता है
सबसे अधिक confident label को प्रतिस्थापन class के रूप में उपयोग करता है
सबसे अधिक confidence वाले prediction से class name, class ID, और confidence निकालता है
string predictions के लिए:
string को class name के रूप में उपयोग करता है
default confidence 1.0 और class ID 0 असाइन करता है
अनुपलब्ध classifications को संभालता है:
जिन detections के लिए corresponding classification predictions नहीं हैं, उन्हें डिफ़ॉल्ट रूप से हटा दिया जाता है
यदि
fallback_class_nameयदि प्रदान किया गया हो, तो classifications के बिना detections हटाए जाने के बजाय fallback class का उपयोग करते हैंFallback class ID को प्रदान किए गए मान पर सेट किया जाता है, या
sys.maxsizeयदि निर्दिष्ट न हो या नकारात्मक हो
Detections को फ़िल्टर करता है:
केवल वे detections रखता है जिनके पास classification results हैं (या यदि निर्दिष्ट हो तो fallback)
उन detections को हटाता है जिन्हें classification predictions से मिलाया नहीं जा सकता
Class information को प्रतिस्थापित करता है:
detections में class names को classification class names से बदलता है
detections में class IDs को classification class IDs से बदलता है
detections में confidence scores को classification confidence scores से बदलता है
नई class information को प्रतिबिंबित करने के लिए सभी detection metadata अपडेट करता है
नए detection IDs उत्पन्न करता है:
अपडेट किए गए detections के लिए नए unique detection IDs बनाता है (ID conflicts को रोकता है)
सुनिश्चित करता है कि class replacement के बाद detection IDs unique हों
अपडेट किए गए detections लौटाता है:
प्रतिस्थापित classes के साथ detections आउटपुट करता है, bounding box coordinates और अन्य properties को बनाए रखते हुए
Output dimensionality input detection predictions (आयामी स्तर 1) से मेल खाती है
यह ब्लॉक detection और classification model blocks प्राप्त करता है और प्रतिस्थापित classes वाले detections उत्पन्न करता है:
सामान्य उपयोग के मामले
Two-Stage Detection and Classification: fine-grained labeling के लिए generic detection को specialized classification के साथ जोड़ें (उदाहरण: "dog" को detect करें फिर breed classify करें, "vehicle" को detect करें फिर type classify करें, "person" को detect करें फिर age group classify करें), जिससे two-stage detection workflows सक्षम हों
Class Refinement: specialized models से प्राप्त विशिष्ट classifications के साथ generic class labels को परिष्कृत करें (उदाहरण: "animal" को विशिष्ट species में refine करें, "vehicle" को विशिष्ट models में refine करें, "food" को विशिष्ट dishes में refine करें), जिससे class refinement workflows सक्षम हों
Multi-Model Workflows: दोनों की ताकत का लाभ उठाने के लिए detection और classification models को संयोजित करें (उदाहरण: localization के लिए generic detector और identification के लिए specialist classifier का उपयोग करें, coarse और fine-grained models को संयोजित करें, general detectors के साथ specialized classifiers का लाभ उठाएँ), जिससे multi-model workflows सक्षम हों
Hierarchical Classification: hierarchical classification लागू करें जहाँ detection उच्च-स्तरीय classes प्रदान करता है और classification विस्तृत sub-classes प्रदान करता है (उदाहरण: "mammal" को detect करें फिर species classify करें, "plant" को detect करें फिर variety classify करें, "structure" को detect करें फिर type classify करें), जिससे hierarchical classification workflows सक्षम हों
Crop-Based Classification: detections से cropped regions के classification results का उपयोग करके detection results को बेहतर बनाएं (उदाहरण: detection labels सुधारने के लिए crops classify करें, detected regions पर specialized classifiers लागू करें, crop classifications के साथ detections को refine करें), जिससे crop-based classification workflows सक्षम हों
Fine-Grained Object Recognition: localization और detailed classification को संयोजित करके fine-grained recognition सक्षम करें (उदाहरण: विशिष्ट product models को पहचानें, विशिष्ट animal breeds की पहचान करें, विशिष्ट vehicle types को classify करें), जिससे fine-grained recognition workflows सक्षम हों
अन्य ब्लॉकों से जोड़ना
यह ब्लॉक detection और classification predictions प्राप्त करता है और प्रतिस्थापित classes वाले detections उत्पन्न करता है:
Detection और classification model blocks के बाद generic detection को specialized classification के साथ संयोजित करने के लिए (उदाहरण: object detection + classification से refined detections, detection model + classifier से labeled detections), जिससे detection-classification fusion workflows सक्षम हों
Crop blocks के बाद जो classification के लिए detections से crops बनाते हैं (उदाहरण: crops को classify करने से पहले detections crop करें, classification के लिए crops बनाएं फिर classes बदलें), जिससे crop-classification workflows सक्षम हों
विज़ुअलाइज़ेशन ब्लॉकों से पहले परिष्कृत classes के साथ detections प्रदर्शित करने के लिए (उदाहरण: refined detections को visualize करें, विशिष्ट labels के साथ detections प्रदर्शित करें, classification-enhanced detections दिखाएँ), जिससे refined detection visualization workflows सक्षम हों
Filtering blocks से पहले परिष्कृत classes वाले detections को फ़िल्टर करने के लिए (उदाहरण: विशिष्ट classes के आधार पर फ़िल्टर करें, refined detections को फ़िल्टर करें, classified detections पर filters लागू करें), जिससे refined detection filtering workflows सक्षम हों
विश्लेषण ब्लॉकों से पहले परिष्कृत detections पर analytics करने के लिए (उदाहरण: विशिष्ट classes का विश्लेषण करें, classified detections पर analytics करें, refined detection metrics ट्रैक करें), जिससे refined detection analytics workflows सक्षम हों
वर्कफ़्लो आउटपुट में परिष्कृत detections को अंतिम आउटपुट के रूप में प्रदान करने के लिए (उदाहरण: two-stage detection outputs, classification-enhanced detection outputs, refined detection results), जिससे refined detection output workflows सक्षम हों
आवश्यकताएँ
इस ब्लॉक को object detection predictions (bounding boxes के साथ) और उन bounding boxes के crops से classification predictions की आवश्यकता होती है। Classification predictions में होना चाहिए PARENT_ID_KEY (detection_id) ताकि classifications को उनके source detections से जोड़ा जा सके। यह ब्लॉक अलग-अलग आयामी स्तर स्वीकार करता है: detection predictions स्तर 1 पर और classification predictions स्तर 2 पर (crops से)। सिंगल-लेबल classifications के लिए, "top" class का उपयोग किया जाता है। मल्टी-लेबल classifications के लिए, सबसे अधिक confident class चुनी जाती है। जिन detections के पास classification results नहीं हैं उन्हें हटा दिया जाता है, जब तक कि fallback_class_name प्रदान नहीं किया गया हो। यह ब्लॉक प्रतिस्थापित classes, class IDs, और confidences के साथ detections आउटपुट करता है, और नए detection IDs उत्पन्न किए जाते हैं। Output dimensionality input detection predictions (level 1) से मेल खाती है।
प्रकार पहचानकर्ता
स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फील्ड: roboflow_core/detections_classes_replacement@v1 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।
गुण
नाम
प्रकार
विवरण
संदर्भ
name
str
इस स्टेप के लिए एक अद्वितीय पहचानकर्ता दर्ज करें..
❌
fallback_class_name
str
उन detections के लिए उपयोग करने के लिए वैकल्पिक class name जिनके लिए corresponding classification predictions नहीं हैं। यदि प्रदान नहीं किया गया हो (default None), तो classifications के बिना detections हटा दिए जाते हैं। यदि प्रदान किया गया हो, तो classifications के बिना detections हटाए जाने के बजाय इस fallback class name का उपयोग करते हैं। जब classification विफल हो या उपलब्ध न हो, तब detections को बनाए रखने के लिए उपयोगी..
✅
fallback_class_id
int
उन detections के लिए fallback_class_name के साथ उपयोग करने के लिए वैकल्पिक class ID जिनके लिए classification predictions नहीं हैं। यदि निर्दिष्ट न हो या नकारात्मक हो, तो class ID को sys.maxsize पर सेट किया जाता है। केवल तब उपयोग किया जाता है जब fallback_class_name प्रदान किया गया हो। आपके model में उपयोग किए गए class ID mapping से मेल खाना चाहिए..
✅
यह संदर्भ कॉलम यह दर्शाता है कि प्रॉपर्टी को गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है, जो वर्कफ़्लो रनटाइम में उपलब्ध हैं। अधिक जानकारी के लिए देखें Bindings ।
इनपुट और आउटपुट बाइंडिंग्स
उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। जाँचें कि कौन-से बाइंडिंग प्रकार डिटेक्शन वर्ग प्रतिस्थापन संस्करण में v1 है।
इनपुट और आउटपुट बाइंडिंग्स
इनपुट
object_detection_predictions(Union[instance_segmentation_prediction,keypoint_detection_prediction,object_detection_prediction]): Detection predictions (object detection, instance segmentation, or keypoint detection) जिनमें bounding boxes के साथ generic class labels शामिल हैं जिन्हें classification results से प्रतिस्थापित किया जाएगा। ये detections उन regions के अनुरूप होने चाहिए जिन्हें crop करके classify किया गया था। Detections के पास detection IDs होने चाहिए जो classification predictions में PARENT_ID_KEY से मेल खाते हों। आयामी स्तर 1 पर detections..classification_predictions(Union[classification_prediction,list_of_values,स्ट्रिंग]): Detection class names को प्रतिस्थापित करने के लिए labels। classification predictions (parent_id के माध्यम से जुड़े), साधारण strings, या strings की सूचियाँ (उदाहरण: OCR/LMM output जैसे Gemini) स्वीकार करता है। String inputs को detections से positional रूप से मिलाया जाता है (index द्वारा 1:1)। Classification inputs सिंगल-लेबल ('top' class) और मल्टी-लेबल (सबसे अधिक confident class) का समर्थन करते हैं..fallback_class_name(स्ट्रिंग): उन detections के लिए उपयोग करने के लिए वैकल्पिक class name जिनके लिए corresponding classification predictions नहीं हैं। यदि प्रदान नहीं किया गया हो (default None), तो classifications के बिना detections हटा दिए जाते हैं। यदि प्रदान किया गया हो, तो classifications के बिना detections हटाए जाने के बजाय इस fallback class name का उपयोग करते हैं। जब classification विफल हो या उपलब्ध न हो, तब detections को बनाए रखने के लिए उपयोगी..fallback_class_id(integer): उन detections के लिए fallback_class_name के साथ उपयोग करने के लिए वैकल्पिक class ID जिनके लिए classification predictions नहीं हैं। यदि निर्दिष्ट न हो या नकारात्मक हो, तो class ID को sys.maxsize पर सेट किया जाता है। केवल तब उपयोग किया जाता है जब fallback_class_name प्रदान किया गया हो। आपके model में उपयोग किए गए class ID mapping से मेल खाना चाहिए..
आउटपुट
भविष्यवाणियाँ(Union[object_detection_prediction,instance_segmentation_prediction,keypoint_detection_prediction]): यदिobject_detection_predictionया यदिinstance_segmentation_predictionया sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स और पहचाने गए कीपॉइंट वाले पूर्वानुमान यदिkeypoint_detection_prediction.
अंतिम अपडेट
क्या यह उपयोगी था?