डिटेक्शनों को सिलें
इनपुट छवि के कई भागों पर किए गए डिटेक्शनों को एकल डिटेक्शन में मिलाता है।
स्लाइस/क्रॉप स्पेस से निर्देशांकों को मूल छवि निर्देशांकों में बदलकर, सभी डिटेक्शनों को संयोजित करके, और वैकल्पिक रूप से ओवरलैप होने वाले डिटेक्शनों को फ़िल्टर करके, कई छवि स्लाइसों या क्रॉप्स से मिले डिटेक्शनों को एक एकीकृत डिटेक्शन परिणाम में वापस मर्ज करें; इससे SAHI वर्कफ़्लो, बहु-चरणीय डिटेक्शन पाइपलाइन, और ऐसे निर्देशांक-स्थान मर्जिंग वर्कफ़्लो सक्षम होते हैं जहाँ उप-छवियों से मिले डिटेक्शनों को ऐसे पुनर्निर्मित करना होता है मानो वे मूल छवि पर ही डिटेक्ट हुए हों।
यह ब्लॉक कैसे काम करता है
यह ब्लॉक उसी इनपुट छवि के कई उप-भागों (स्लाइस या क्रॉप्स) पर किए गए डिटेक्शनों को मर्ज करता है, और उन्हें मूल छवि निर्देशांक स्थान में एक एकल डिटेक्शन परिणाम के रूप में पुनर्निर्मित करता है। यह ब्लॉक:
संदर्भ छवि और स्लाइस/क्रॉप प्रेडिक्शन प्राप्त करता है:
मूल संदर्भ छवि को लेता है जिसे स्लाइस या क्रॉप किया गया था
उन डिटेक्शन मॉडल्स से प्रेडिक्शन प्राप्त करता है जिन्होंने प्रत्येक स्लाइस/क्रॉप को प्रोसेस किया था
प्रेडिक्शन में पैरेंट निर्देशांक मेटाडेटा होना चाहिए जो स्लाइस/क्रॉप की स्थिति दर्शाता हो
प्रत्येक डिटेक्शन के लिए क्रॉप ऑफ़सेट प्राप्त करता है:
प्रत्येक डिटेक्शन के मेटाडेटा से पैरेंट निर्देशांक निकालता है
ऑफ़सेट (x, y स्थिति) प्राप्त करता है, जो बताता है कि प्रत्येक स्लाइस/क्रॉप मूल छवि में कहाँ स्थित था
इस ऑफ़सेट का उपयोग स्लाइस स्पेस से मूल छवि स्पेस में निर्देशांकों को बदलने के लिए करता है
क्रॉप मेटाडेटा को प्रबंधित करता है:
डिटेक्शन मेटाडेटा में छवि आयामों को अपडेट करता है ताकि वे संदर्भ छवि आयामों से मेल खाएँ
सत्यापित करता है कि डिटेक्शन स्केल नहीं किए गए थे (स्केल किए गए डिटेक्शन समर्थित नहीं हैं)
उचित निर्देशांक रूपांतरण के लिए डिटेक्शनों के साथ पैरेंट निर्देशांक जानकारी संलग्न करता है
निर्देशांकों को मूल छवि स्पेस में रूपांतरित करता है:
बाउंडिंग बॉक्स निर्देशांकों (xyxy) को स्लाइस/क्रॉप निर्देशांकों से मूल छवि निर्देशांकों में ले जाता है
सेगमेंटेशन मास्क को स्लाइस/क्रॉप स्पेस से मूल छवि स्पेस में रूपांतरित करता है (यदि मौजूद हो)
डिटेक्शनों को मूल छवि में उनकी स्थिति के साथ संरेखित करने के लिए ऑफ़सेट लागू करता है
सभी रूपांतरित डिटेक्शनों को मर्ज करता है:
सभी स्लाइस/क्रॉप्स से प्राप्त सभी पुनः-संरेखित डिटेक्शनों को एक एकल डिटेक्शन परिणाम में जोड़ता है
सभी उप-छवियों से सभी डिटेक्शन वाला एक एकीकृत आउटपुट बनाता है
ओवरलैप फ़िल्टरिंग लागू करता है (वैकल्पिक):
None रणनीति: बिना फ़िल्टर किए सभी मर्ज किए गए डिटेक्शन लौटाता है (ओवरलैपिंग स्लाइस से डुप्लिकेट हो सकते हैं)
NMS (नॉन-मैक्सिमम सप्रेशन): जब IoU थ्रेशहोल्ड से अधिक हो जाता है, तो कम-विश्वास वाले डिटेक्शन हटाता है, और प्रत्येक ओवरलैपिंग क्षेत्र के लिए केवल सबसे उच्च-विश्वास वाला डिटेक्शन रखता है
NMM (नॉन-मैक्सिमम मर्ज): डिटेक्शनों को हटाने के बजाय ओवरलैपिंग डिटेक्शनों को संयोजित करता है, और IoU थ्रेशहोल्ड से अधिक वाले डिटेक्शनों को मर्ज करता है
मर्ज किए गए डिटेक्शन लौटाता है:
मूल छवि निर्देशांक स्थान में एकीकृत डिटेक्शन आउटपुट देता है
1 से आयाम घटाता है (कई स्लाइस डिटेक्शन → एकल छवि डिटेक्शन)
अब सभी डिटेक्शन मूल छवि के आयामों और निर्देशांकों के संदर्भ में हैं
यह ब्लॉक SAHI (Slicing Adaptive Inference) वर्कफ़्लो के लिए आवश्यक है, जहाँ छवि को स्लाइस किया जाता है, प्रत्येक स्लाइस को अलग-अलग प्रोसेस किया जाता है, और परिणामों को वापस मर्ज करना होता है। ओवरलैपिंग स्लाइस एक ही ऑब्जेक्ट के लिए डुप्लिकेट डिटेक्शन उत्पन्न कर सकते हैं, इसलिए ओवरलैप फ़िल्टरिंग (NMS/NMM) इन डुप्लिकेट को साफ़ करने में मदद करती है। निर्देशांक रूपांतरण यह सुनिश्चित करता है कि डिटेक्शन निर्देशांक मूल छवि के सापेक्ष सही स्थान पर हों, न कि स्लाइस के सापेक्ष।
सामान्य उपयोग के मामले
SAHI वर्कफ़्लोज़: छवि स्लाइस से डिटेक्शनों को वापस मूल छवि निर्देशांकों में मर्ज करके SAHI तकनीक को पूर्ण करता है (जैसे, SAHI प्रोसेसिंग से स्लाइस डिटेक्शन मर्ज करना, स्लाइस से पूर्ण-छवि डिटेक्शन पुनर्निर्मित करना, छोटे ऑब्जेक्ट डिटेक्शन परिणामों को संयोजित करना), जिससे SAHI डिटेक्शन वर्कफ़्लो सक्षम होते हैं
बहु-चरणीय डिटेक्शन: गतिशील रूप से क्रॉप किए गए क्षेत्रों पर लागू द्वितीयक उच्च-रिज़ॉल्यूशन मॉडलों से डिटेक्शन मर्ज करता है (जैसे, मोटा डिटेक्शन → क्रॉप → सटीक डिटेक्शन → मर्ज, दो-चरणीय डिटेक्शन पाइपलाइन, पदानुक्रमित डिटेक्शन वर्कफ़्लो), जिससे बहु-चरणीय डिटेक्शन वर्कफ़्लो सक्षम होते हैं
छोटे ऑब्जेक्ट डिटेक्शन: छोटे ऑब्जेक्ट डिटेक्शन के लिए अलग-अलग प्रोसेस की गई स्लाइस की गई छवियों के डिटेक्शन परिणामों को जोड़ता है (जैसे, एरियल इमेज स्लाइस से डिटेक्शन मर्ज करना, स्लाइस डिटेक्शन परिणामों को संयोजित करना, टाइल की गई छवियों से डिटेक्शन पुनर्निर्मित करना), जिससे छोटे ऑब्जेक्ट डिटेक्शन वर्कफ़्लो सक्षम होते हैं
उच्च-रिज़ॉल्यूशन प्रोसेसिंग: छोटी इकाइयों में प्रोसेस की गई उच्च-रिज़ॉल्यूशन छवियों से डिटेक्शन मर्ज करता है (जैसे, सैटेलाइट इमेज टाइल्स से डिटेक्शन मर्ज करना, मेडिकल इमेज क्षेत्रों के परिणामों को संयोजित करना, बड़ी छवि खंडों से डिटेक्शन पुनर्निर्मित करना), जिससे उच्च-रिज़ॉल्यूशन डिटेक्शन वर्कफ़्लो सक्षम होते हैं
निर्देशांक स्थान का एकीकरण: संगत प्रोसेसिंग के लिए कई निर्देशांक स्थानों (स्लाइस/क्रॉप स्पेस) से डिटेक्शनों को एक एकल एकीकृत निर्देशांक स्थान (मूल छवि स्पेस) में बदलता है (जैसे, डिटेक्शन निर्देशांकों को एकीकृत करना, निर्देशांक स्थानों को मर्ज करना, डिटेक्शन स्थितियों को मानकीकृत करना), जिससे निर्देशांक एकीकरण वर्कफ़्लो सक्षम होते हैं
ओवरलैपिंग क्षेत्र हैंडलिंग: ओवरलैपिंग स्लाइस या क्रॉप्स से डुप्लिकेट डिटेक्शनों को ओवरलैप फ़िल्टरिंग लागू करके संभालता है (जैसे, ओवरलैपिंग स्लाइस से डुप्लिकेट डिटेक्शन हटाना, ओवरलैपिंग डिटेक्शन मर्ज करना, ओवरलैपिंग परिणामों को साफ़ करना), जिससे ओवरलैप समाधान वर्कफ़्लो सक्षम होते हैं
अन्य ब्लॉकों से जोड़ना
यह ब्लॉक स्लाइस/क्रॉप प्रेडिक्शन और संदर्भ छवियाँ प्राप्त करता है, और मर्ज किए गए डिटेक्शन उत्पन्न करता है:
SAHI वर्कफ़्लो में डिटेक्शन मॉडल के बाद Image Slicer → Detection Model → Detections Stitch पैटर्न का पालन करते हुए स्लाइस डिटेक्शन मर्ज करने के लिए (जैसे, SAHI स्लाइस डिटेक्शन मर्ज करना, पूर्ण-छवि डिटेक्शन पुनर्निर्मित करना, स्लाइस परिणामों को संयोजित करना), जिससे SAHI पूर्णता वर्कफ़्लो सक्षम होते हैं
द्वितीयक डिटेक्शन मॉडलों के बाद डायनेमिक क्रॉप → Detection Model → Detections Stitch पैटर्न का पालन करने वाली बहु-चरणीय पाइपलाइनों में क्रॉप किए गए डिटेक्शन मर्ज करने के लिए (जैसे, क्रॉप किए गए क्षेत्र के डिटेक्शन मर्ज करना, दो-चरणीय डिटेक्शन परिणामों को संयोजित करना, बहु-चरणीय आउटपुट एकीकृत करना), जिससे बहु-चरणीय डिटेक्शन वर्कफ़्लो सक्षम होते हैं
विज़ुअलाइज़ेशन ब्लॉकों से पहले मूल छवि पर मर्ज किए गए डिटेक्शन परिणामों को दृश्य रूप में दिखाने के लिए (जैसे, मर्ज किए गए डिटेक्शन विज़ुअलाइज़ करना, स्टिच किए गए परिणाम दिखाना, एकीकृत डिटेक्शन आउटपुट प्रदर्शित करना), जिससे विज़ुअलाइज़ेशन वर्कफ़्लो सक्षम होते हैं
फ़िल्टरिंग या विश्लेषण ब्लॉकों से पहले मर्ज किए गए डिटेक्शन परिणामों को प्रोसेस करने के लिए (जैसे, मर्ज किए गए डिटेक्शन फ़िल्टर करना, स्टिच किए गए परिणामों का विश्लेषण करना, एकीकृत आउटपुट प्रोसेस करना), जिससे विश्लेषण वर्कफ़्लो सक्षम होते हैं
सिंक या स्टोरेज ब्लॉकों से पहले मर्ज किए गए डिटेक्शन परिणामों को संग्रहीत या निर्यात करने के लिए (जैसे, मर्ज किए गए डिटेक्शन सहेजना, स्टिच किए गए परिणाम निर्यात करना, एकीकृत आउटपुट संग्रहीत करना), जिससे स्टोरेज वर्कफ़्लो सक्षम होते हैं
वर्कफ़्लो आउटपुट में अंतिम वर्कफ़्लो आउटपुट के रूप में मर्ज किए गए डिटेक्शन प्रदान करने के लिए (जैसे, मर्ज किए गए डिटेक्शन लौटाना, स्टिच किए गए परिणाम आउटपुट करना, एकीकृत डिटेक्शन आउटपुट देना), जिससे आउटपुट वर्कफ़्लो सक्षम होते हैं
आवश्यकताएँ
इस ब्लॉक के लिए एक संदर्भ छवि (मूल छवि जिसे स्लाइस/क्रॉप किया गया था) और उन डिटेक्शन मॉडलों से प्रेडिक्शन चाहिए जो स्लाइस/क्रॉप को प्रोसेस करते हैं। प्रेडिक्शन में पैरेंट निर्देशांक मेटाडेटा (PARENT_COORDINATES_KEY) होना चाहिए जो मूल छवि में प्रत्येक स्लाइस/क्रॉप की स्थिति दर्शाता हो। यह ब्लॉक स्केल किए गए डिटेक्शन (जो पैरेंट छवि के सापेक्ष रिसाइज़ किए गए थे) का समर्थन नहीं करता। प्रेडिक्शन ऑब्जेक्ट डिटेक्शन या इंस्टेंस सेगमेंटेशन मॉडलों से होने चाहिए। यह ब्लॉक ओवरलैप फ़िल्टरिंग की तीन रणनीतियों का समर्थन करता है: "none" (कोई फ़िल्टरिंग नहीं, डुप्लिकेट शामिल हो सकते हैं), "nms" (नॉन-मैक्सिमम सप्रेशन, डिफ़ॉल्ट), और "nmm" (नॉन-मैक्सिमम मर्ज)। IoU थ्रेशहोल्ड (डिफ़ॉल्ट 0.3) निर्धारित करता है कि फ़िल्टरिंग उद्देश्यों के लिए डिटेक्शन कब ओवरलैपिंग माने जाएँ। SAHI तकनीक के बारे में अधिक जानकारी के लिए देखें: https://ieeexplore.ieee.org/document/9897990.
प्रकार पहचानकर्ता
स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फील्ड: roboflow_core/detections_stitch@v1 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।
गुण
नाम
प्रकार
विवरण
संदर्भ
name
str
इस स्टेप के लिए एक अद्वितीय पहचानकर्ता दर्ज करें..
❌
overlap_filtering_strategy
str
ओवरलैपिंग स्लाइस/क्रॉप्स से परिणाम मर्ज करते समय ओवरलैपिंग डिटेक्शनों को संभालने की रणनीति। 'none': कोई फ़िल्टरिंग लागू नहीं होती, सभी डिटेक्शन रखे जाते हैं (ओवरलैपिंग क्षेत्रों से डुप्लिकेट शामिल हो सकते हैं)। 'nms' (नॉन-मैक्सिमम सप्रेशन, डिफ़ॉल्ट): जब IoU थ्रेशहोल्ड से अधिक हो जाता है, तो कम-विश्वास वाले डिटेक्शन हटाता है, और प्रत्येक ओवरलैपिंग क्षेत्र के लिए केवल सबसे उच्च-विश्वास वाला डिटेक्शन रखता है। 'nmm' (नॉन-मैक्सिमम मर्ज): डिटेक्शनों को हटाने के बजाय ओवरलैपिंग डिटेक्शनों को संयोजित करता है, और IoU थ्रेशहोल्ड से अधिक वाले डिटेक्शनों को मर्ज करता है। जब आप सभी डिटेक्शन सुरक्षित रखना चाहते हों, तो 'none' का उपयोग करें; डुप्लिकेट हटाने के लिए 'nms' का उपयोग करें (अधिकांश मामलों के लिए अनुशंसित); या ओवरलैपिंग डिटेक्शन को संयोजित करने के लिए 'nmm' का उपयोग करें।.
✅
iou_threshold
float
ओवरलैप फ़िल्टरिंग के लिए इंटरसेक्शन ओवर यूनियन (IoU) थ्रेशहोल्ड। सीमा: 0.0 से 1.0। जब ओवरलैप फ़िल्टरिंग रणनीति 'nms' या 'nmm' हो, तब इस थ्रेशहोल्ड से ऊपर IoU वाले डिटेक्शन ओवरलैपिंग माने जाते हैं। NMS के लिए: थ्रेशहोल्ड से ऊपर IoU वाले ओवरलैपिंग डिटेक्शन में कम-विश्वास वाला डिटेक्शन हटाया जाता है। NMM के लिए: थ्रेशहोल्ड से ऊपर IoU वाले ओवरलैपिंग डिटेक्शन मर्ज किए जाते हैं। कम मान (जैसे, 0.2-0.3) अधिक आक्रामक होते हैं, और अधिक डिटेक्शन हटाते/मर्ज करते हैं। उच्च मान (जैसे, 0.5-0.7) अधिक उदार होते हैं, और केवल अत्यधिक ओवरलैपिंग डिटेक्शन को संभालते हैं। डिफ़ॉल्ट 0.3 अधिकांश उपयोग मामलों में, विशेषकर ओवरलैपिंग स्लाइस के साथ, अच्छी तरह काम करता है।.
✅
यह संदर्भ कॉलम यह दर्शाता है कि प्रॉपर्टी को गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है, जो वर्कफ़्लो रनटाइम में उपलब्ध हैं। अधिक जानकारी के लिए देखें Bindings ।
इनपुट और आउटपुट बाइंडिंग्स
उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। जाँचें कि कौन-से बाइंडिंग प्रकार डिटेक्शन स्टिच संस्करण में v1 है।
इनपुट और आउटपुट बाइंडिंग्स
इनपुट
reference_image(image): मूल संदर्भ छवि जिसे इनपुट प्रेडिक्शन बनाने के लिए स्लाइस या क्रॉप किया गया था। इस छवि का उपयोग मर्ज किए गए डिटेक्शन के लिए लक्ष्य निर्देशांक स्थान और छवि आयाम निर्धारित करने के लिए किया जाता है। सभी डिटेक्शन निर्देशांकों को इस संदर्भ छवि की निर्देशांक प्रणाली से मेल खाने के लिए रूपांतरित किया जाएगा। उचित निर्देशांक संरेखण सुनिश्चित करने के लिए यहाँ वही छवि उपयोग की जानी चाहिए जो Image Slicer या Dynamic Crop ब्लॉकों को दी गई थी।.भविष्यवाणियाँ(Union[instance_segmentation_prediction,object_detection_prediction]): डिटेक्शन मॉडलों से प्राप्त मॉडल प्रेडिक्शन (ऑब्जेक्ट डिटेक्शन या इंस्टेंस सेगमेंटेशन) जो छवि स्लाइस या क्रॉप को प्रोसेस करते हैं। इन प्रेडिक्शनों में मूल छवि में प्रत्येक स्लाइस/क्रॉप की स्थिति दर्शाने वाला पैरेंट निर्देशांक मेटाडेटा होना चाहिए। प्रेडिक्शन कई स्लाइस/क्रॉप्स से एकत्र किए जाते हैं और एक एकीकृत डिटेक्शन परिणाम में मर्ज किए जाते हैं। यह ब्लॉक निर्देशांकों को स्लाइस/क्रॉप स्पेस से मूल छवि स्पेस में बदलता है और सभी डिटेक्शन को संयोजित करता है।.overlap_filtering_strategy(स्ट्रिंग): ओवरलैपिंग स्लाइस/क्रॉप्स से परिणाम मर्ज करते समय ओवरलैपिंग डिटेक्शनों को संभालने की रणनीति। 'none': कोई फ़िल्टरिंग लागू नहीं होती, सभी डिटेक्शन रखे जाते हैं (ओवरलैपिंग क्षेत्रों से डुप्लिकेट शामिल हो सकते हैं)। 'nms' (नॉन-मैक्सिमम सप्रेशन, डिफ़ॉल्ट): जब IoU थ्रेशहोल्ड से अधिक हो जाता है, तो कम-विश्वास वाले डिटेक्शन हटाता है, और प्रत्येक ओवरलैपिंग क्षेत्र के लिए केवल सबसे उच्च-विश्वास वाला डिटेक्शन रखता है। 'nmm' (नॉन-मैक्सिमम मर्ज): डिटेक्शनों को हटाने के बजाय ओवरलैपिंग डिटेक्शनों को संयोजित करता है, और IoU थ्रेशहोल्ड से अधिक वाले डिटेक्शनों को मर्ज करता है। जब आप सभी डिटेक्शन सुरक्षित रखना चाहते हों, तो 'none' का उपयोग करें; डुप्लिकेट हटाने के लिए 'nms' का उपयोग करें (अधिकांश मामलों के लिए अनुशंसित); या ओवरलैपिंग डिटेक्शन को संयोजित करने के लिए 'nmm' का उपयोग करें।.iou_threshold(float_zero_to_one): ओवरलैप फ़िल्टरिंग के लिए इंटरसेक्शन ओवर यूनियन (IoU) थ्रेशहोल्ड। सीमा: 0.0 से 1.0। जब ओवरलैप फ़िल्टरिंग रणनीति 'nms' या 'nmm' हो, तब इस थ्रेशहोल्ड से ऊपर IoU वाले डिटेक्शन ओवरलैपिंग माने जाते हैं। NMS के लिए: थ्रेशहोल्ड से ऊपर IoU वाले ओवरलैपिंग डिटेक्शन में कम-विश्वास वाला डिटेक्शन हटाया जाता है। NMM के लिए: थ्रेशहोल्ड से ऊपर IoU वाले ओवरलैपिंग डिटेक्शन मर्ज किए जाते हैं। कम मान (जैसे, 0.2-0.3) अधिक आक्रामक होते हैं, और अधिक डिटेक्शन हटाते/मर्ज करते हैं। उच्च मान (जैसे, 0.5-0.7) अधिक उदार होते हैं, और केवल अत्यधिक ओवरलैपिंग डिटेक्शन को संभालते हैं। डिफ़ॉल्ट 0.3 अधिकांश उपयोग मामलों में, विशेषकर ओवरलैपिंग स्लाइस के साथ, अच्छी तरह काम करता है।.
आउटपुट
भविष्यवाणियाँ(Union[object_detection_prediction,instance_segmentation_prediction]): यदिobject_detection_predictionया यदिinstance_segmentation_prediction.
अंतिम अपडेट
क्या यह उपयोगी था?