टेम्पलेट मिलान
निर्दिष्ट छवि के भीतर दिए गए template के उदाहरणों को खोजें।
बड़ी छवि के भीतर टेम्पलेट मिलान के साथ सामान्यीकृत क्रॉस-सहसंबंध का उपयोग करके किसी टेम्पलेट छवि के उदाहरणों का पता लगाएँ, छवि में किसी भी स्थान पर टेम्पलेट पैटर्न के सटीक या लगभग सटीक मिलान खोजें, और ऑब्जेक्ट डिटेक्शन, लोगो डिटेक्शन, पैटर्न पहचान, तथा टेम्पलेट-आधारित ऑब्जेक्ट स्थानीयकरण वर्कफ़्लो के लिए वैकल्पिक NMS फ़िल्टरिंग के साथ बाउंडिंग बॉक्स डिटेक्शन आउटपुट करें।
यह ब्लॉक कैसे काम करता है
यह ब्लॉक सामान्यीकृत क्रॉस-सहसंबंध टेम्पलेट मिलान का उपयोग करके बड़ी इनपुट छवि के भीतर किसी टेम्पलेट छवि की उपस्थिति खोजता है। यह ब्लॉक:
एक इनपुट छवि और एक टेम्पलेट छवि (खोजने के लिए छोटा पैटर्न) प्राप्त करता है
टेम्पलेट मिलान के लिए दोनों छवियों को ग्रेस्केल में बदलता है (टेम्पलेट मिलान आमतौर पर दक्षता और मजबूती के लिए ग्रेस्केल छवियों पर काम करता है)
OpenCV के matchTemplate का TM_CCOEFF_NORMED विधि के साथ उपयोग करके टेम्पलेट मिलान करता है:
टेम्पलेट को इनपुट छवि पर हर संभव स्थिति में स्लाइड करता है
प्रत्येक स्थिति पर सामान्यीकृत क्रॉस-सहसंबंध गुणांक की गणना करता है (टेम्पलेट और छवि क्षेत्र के बीच समानता मापता है)
एक समानता मानचित्र बनाता है, जो दिखाता है कि प्रत्येक स्थान पर टेम्पलेट कितना अच्छा मेल खाता है
वे मिलान स्थान पहचानता है जहाँ समानता matching_threshold से अधिक होती है:
उन सभी स्थानों को खोजता है जहाँ सहसंबंध गुणांक थ्रेशहोल्ड से अधिक या उसके बराबर है
थ्रेशहोल्ड मान 0.0 से 1.0 तक होते हैं, जहाँ अधिक मानों के लिए अधिक निकट मिलान आवश्यक होते हैं
निम्न थ्रेशहोल्ड अधिक संभावित मिलान खोजते हैं (आंशिक मिलानों सहित), जबकि उच्च थ्रेशहोल्ड केवल बहुत समान मिलान खोजते हैं
प्रत्येक मिलान के लिए बाउंडिंग बॉक्स बनाता है:
प्रत्येक मिलान स्थान एक ऐसे डिटेक्शन में बदल जाता है जिसका बाउंडिंग बॉक्स टेम्पलेट के आयामों से मेल खाता है
सभी डिटेक्शनों का कॉन्फ़िडेंस 1.0 होता है (उन्होंने थ्रेशहोल्ड आवश्यकता पूरी की)
सभी डिटेक्शनों को वर्ग "template_match" और class_id 0 सौंपा जाता है
ट्रैकिंग के लिए प्रत्येक डिटेक्शन को एक अद्वितीय डिटेक्शन ID दी जाती है
वैकल्पिक रूप से ओवरलैप करने वाले डिटेक्शनों को फ़िल्टर करने के लिए Non-Maximum Suppression (NMS) लागू करता है:
टेम्पलेट मिलान अक्सर एक ही स्थान पर कई ओवरलैपिंग डिटेक्शन उत्पन्न करता है (डुप्लिकेट मिलान)
NMS ओवरलैपिंग डिटेक्शनों को हटाता है, और प्रत्येक क्षेत्र में केवल सबसे अच्छा मिलान रखता है
NMS थ्रेशहोल्ड नियंत्रित करता है कि डिटेक्शन हटाने से पहले कितना ओवरलैप अनुमत है
यदि NMS अत्यधिक बड़ी संख्या में मिलानों के साथ गणनात्मक रूप से अव्यावहारिक हो जाए, तो इसे अक्षम किया जा सकता है (apply_nms=False)
डिटेक्शनों में मेटाडेटा संलग्न करता है:
मूल छवि को संदर्भित करने के लिए parent_id सेट करता है
prediction_type को "object-detection" पर सेट करता है
कोऑर्डिनेट संदर्भ के लिए छवि आयाम संग्रहीत करता है
वर्कफ़्लो ट्रैकिंग के लिए मूल कोऑर्डिनेट जानकारी संलग्न करता है
कुल पाए गए मिलानों की संख्या के साथ sv.Detections प्रारूप में डिटेक्शन भविष्यवाणियाँ लौटाता है
यह ब्लॉक सामान्यीकृत क्रॉस-सहसंबंध का उपयोग करता है, जो सटीक या लगभग सटीक टेम्पलेट मिलान खोजने के लिए प्रभावी है। यह तब सबसे अच्छा काम करता है जब टेम्पलेट छवि में समान स्केल, रोटेशन और प्रकाश स्थितियों के साथ दिखाई दे। यह विधि एक ही मिलान स्थान के लिए कई ओवरलैपिंग डिटेक्शन उत्पन्न करने की प्रवृत्ति रखती है, इसलिए NMS फ़िल्टरिंग महत्वपूर्ण है। हालांकि, अत्यधिक बड़ी संख्या में मिलानों (जैसे, दोहराए जाने वाले पैटर्न) के मामलों में NMS गणनात्मक रूप से महंगा हो सकता है और आवश्यकता पड़ने पर इसे अक्षम किया जा सकता है।
सामान्य उपयोग के मामले
लोगो और ब्रांड पहचान: छवियों के भीतर विशिष्ट लोगो या ब्रांड तत्व खोजें (जैसे, फ़ोटो में कंपनी लोगो का पता लगाएँ, छवियों में ब्रांड चिह्न खोजें, दृश्यों में विशिष्ट लोगो पैटर्न ढूँढें), जिससे लोगो पहचान वर्कफ़्लो सक्षम होते हैं
सटीक पैटर्न मिलान: छवियों में दिखाई देने वाले विशिष्ट पैटर्न या वस्तुओं का हूबहू पता लगाएँ (जैसे, स्क्रीनशॉट में विशिष्ट UI तत्व खोजें, छवियों में सटीक पैटर्न का पता लगाएँ, विशिष्ट दृश्य तत्व ढूँढें), जिससे सटीक पैटर्न पहचान वर्कफ़्लो सक्षम होते हैं
गुणवत्ता नियंत्रण और निरीक्षण: गुणवत्ता निरीक्षण के लिए संदर्भ पैटर्न या विशेषताएँ खोजें (जैसे, निर्माण छवियों में विशिष्ट विशेषताओं का पता लगाएँ, संरेखण के लिए संदर्भ चिह्न खोजें, निरीक्षण लक्ष्यों को ढूँढें), जिससे गुणवत्ता नियंत्रण वर्कफ़्लो सक्षम होते हैं
ऑब्जेक्ट स्थानीयकरण: सटीक उपस्थिति ज्ञात होने पर विशिष्ट वस्तुओं या क्षेत्रों का पता लगाएँ (जैसे, ज्ञात उपस्थिति वाली विशिष्ट वस्तुएँ खोजें, छवियों में संदर्भ वस्तुओं का पता लगाएँ, विशिष्ट दृश्य तत्वों को खोजें), जिससे टेम्पलेट-आधारित ऑब्जेक्ट स्थानीयकरण सक्षम होता है
दस्तावेज़ प्रसंस्करण: दस्तावेज़ों में विशिष्ट तत्वों या क्षेत्रों का पता लगाएँ (जैसे, दस्तावेज़ों में फ़ॉर्म फ़ील्ड ढूँढें, विशिष्ट दस्तावेज़ तत्वों का पता लगाएँ, स्कैन किए गए दस्तावेज़ों में संदर्भ चिह्न खोजें), जिससे दस्तावेज़ प्रसंस्करण वर्कफ़्लो सक्षम होते हैं
UI तत्व पहचान: इंटरफ़ेस छवियों में विशिष्ट UI घटकों या तत्वों का पता लगाएँ (जैसे, UI स्क्रीनशॉट में बटन खोजें, विशिष्ट UI तत्वों को ढूँढें, इंटरफ़ेस घटकों का पता लगाएँ), जिससे UI विश्लेषण वर्कफ़्लो सक्षम होते हैं
अन्य ब्लॉक्स से कनेक्ट करना
यह ब्लॉक एक छवि और टेम्पलेट प्राप्त करता है, और डिटेक्शन भविष्यवाणियाँ उत्पन्न करता है:
छवि इनपुट ब्लॉकों के बाद इनपुट छवियों में टेम्पलेट पैटर्न ढूँढने के लिए (जैसे, इनपुट छवियों में टेम्पलेट खोजें, कैमरा फ़ीड में पैटर्न ढूँढें, छवि स्ट्रीम में टेम्पलेट खोजें), जिससे टेम्पलेट मिलान वर्कफ़्लो सक्षम होते हैं
प्रीप्रोसेसिंग ब्लॉकों के बाद पूर्वप्रसंस्कृत छवियों में टेम्पलेट खोजने के लिए (जैसे, छवि संवर्धन के बाद टेम्पलेट मिलाएँ, फ़िल्टर की गई छवियों में पैटर्न खोजें, सामान्यीकृत छवियों में टेम्पलेट ढूँढें), जिससे पूर्वप्रसंस्कृत टेम्पलेट मिलान सक्षम होता है
विज़ुअलाइज़ेशन ब्लॉकों से पहले टेम्पलेट मिलान स्थानों को विज़ुअलाइज़ करने के लिए (जैसे, पहचाने गए टेम्पलेट मिलानों को विज़ुअलाइज़ करें, मिलानों के लिए बाउंडिंग बॉक्स दिखाएँ, टेम्पलेट मिलान परिणाम प्रदर्शित करें), जिससे टेम्पलेट मिलान विज़ुअलाइज़ेशन वर्कफ़्लो सक्षम होते हैं
filtering blocks से पहले मापदंडों के आधार पर टेम्पलेट मिलानों को फ़िल्टर करने के लिए (जैसे, स्थान के आधार पर मिलान फ़िल्टर करें, विशिष्ट मिलान क्षेत्र चुनें, टेम्पलेट मिलान परिणामों को परिष्कृत करें), जिससे फ़िल्टर किए गए टेम्पलेट मिलान वर्कफ़्लो सक्षम होते हैं
crop ब्लॉकों से पहले टेम्पलेट मिलानों के आसपास के क्षेत्रों को निकालने के लिए (जैसे, मिलानों के आसपास के क्षेत्रों को क्रॉप करें, विश्लेषण के लिए मिलान क्षेत्र निकालें, टेम्पलेट मिलान स्थानों को क्रॉप करें), जिससे टेम्पलेट-आधारित क्षेत्र निष्कर्षण सक्षम होता है
गुणवत्ता नियंत्रण वर्कफ़्लो में जहाँ टेम्पलेट मिलान का उपयोग निरीक्षण या संरेखण के लिए किया जाता है (जैसे, संरेखण के लिए संदर्भ चिह्न खोजें, निरीक्षण लक्ष्यों का पता लगाएँ, गुणवत्ता नियंत्रण विशेषताओं को ढूँढें), जिससे गुणवत्ता नियंत्रण टेम्पलेट मिलान वर्कफ़्लो सक्षम होते हैं
प्रकार पहचानकर्ता
स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फ़ील्ड: roboflow_core/template_matching@v1 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।
गुण
नाम
प्रकार
विवरण
संदर्भ
name
str
इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..
❌
matching_threshold
float
टेम्पलेट मिलान के लिए आवश्यक न्यूनतम समानता थ्रेशहोल्ड (0.0 से 1.0 तक)। उच्च मान (1.0 के अधिक निकट) बहुत निकट मिलान की आवश्यकता रखते हैं और कम लेकिन अधिक सटीक मिलान खोजते हैं। निम्न मान (0.0 के अधिक निकट) अधिक उदार मिलान की अनुमति देते हैं और आंशिक मिलानों सहित अधिक संभावित मिलान खोजते हैं। डिफ़ॉल्ट 0.8 है, जो काफी निकट मिलान की आवश्यकता रखता है। अधिक मिलान खोजने या हल्के बदलावों को संभालने के लिए कम थ्रेशहोल्ड (0.6-0.7) का उपयोग करें। केवल सटीक मिलान के लिए उच्च थ्रेशहोल्ड (0.85-0.95) का उपयोग करें। थ्रेशहोल्ड टेम्पलेट मिलान से प्राप्त सामान्यीकृत क्रॉस-सहसंबंध गुणांकों की तुलना करता है..
✅
apply_nms
bool
ओवरलैप करने वाले डिटेक्शनों को फ़िल्टर करने के लिए Non-Maximum Suppression (NMS) लागू करना है या नहीं। टेम्पलेट मिलान अक्सर एक ही स्थान पर कई ओवरलैपिंग डिटेक्शन उत्पन्न करता है। NMS ओवरलैपिंग डिटेक्शनों को हटाता है, और प्रत्येक क्षेत्र में केवल सबसे अच्छा मिलान रखता है। डिफ़ॉल्ट True है (अधिकांश मामलों के लिए अनुशंसित)। इसे False पर सेट करें यदि: (1) मिलानों की संख्या अत्यधिक बड़ी है (NMS गणनात्मक रूप से महंगा हो सकता है), (2) आप बिना फ़िल्टरिंग के सभी कच्चे मिलान देखना चाहते हैं, या (3) मिलान जानबूझकर पास-पास हैं और सभी को रखना चाहिए। अक्षम करने पर, आपको एक ही मिलान स्थान के लिए कई डुप्लिकेट डिटेक्शन दिखाई दे सकते हैं..
✅
nms_threshold
float
Non-Maximum Suppression के लिए Intersection over Union (IoU) थ्रेशहोल्ड। यह केवल तब प्रासंगिक है जब apply_nms True हो। इस थ्रेशहोल्ड से अधिक IoU ओवरलैप वाले डिटेक्शन डुप्लिकेट माने जाते हैं, और केवल सबसे अधिक कॉन्फ़िडेंस वाला डिटेक्शन रखा जाता है। निम्न मान (0.3-0.4) ओवरलैप हटाने में अधिक आक्रामक होते हैं, और केवल थोड़ा ओवरलैप करने वाले डिटेक्शनों को भी हटा देते हैं। उच्च मान (0.6-0.7) अधिक उदार होते हैं, और केवल भारी ओवरलैप वाले डिटेक्शनों को हटाते हैं। डिफ़ॉल्ट 0.5 है, जो संतुलित ओवरलैप फ़िल्टरिंग प्रदान करता है। टेम्पलेट मिलानों के बीच अपेक्षित ओवरलैप और मान्य मिलानों के कितने पास-पास हो सकने के आधार पर समायोजित करें..
✅
यह संदर्भ स्तंभ यह इंगित करता है कि संपत्ति को वर्कफ़्लो रनटाइम में उपलब्ध गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है वर्कफ़्लो रनटाइम। देखें बाइंडिंग्स अधिक जानकारी के लिए।
इनपुट और आउटपुट बाइंडिंग्स
उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। देखें कि कौन-से बाइंडिंग प्रकार टेम्पलेट मिलान संस्करण v1 है।
इनपुट और आउटपुट बाइंडिंग्स
इनपुट
छवि(छवि): टेम्पलेट पैटर्न खोजने के लिए बड़ी छवि। टेम्पलेट को इस पूरी छवि में सभी संभव स्थितियों पर खोजा जाएगा। टेम्पलेट मिलान के लिए छवि को आंतरिक रूप से ग्रेस्केल में बदला जाता है। जब छवि और टेम्पलेट में समान प्रकाश स्थितियाँ हों और टेम्पलेट छवि में समान स्केल और अभिविन्यास पर दिखाई दे, तब टेम्पलेट मिलान सबसे अच्छा काम करता है..template(छवि): इनपुट छवि के भीतर खोजने के लिए छोटा टेम्पलेट छवि पैटर्न। टेम्पलेट इनपुट छवि से छोटा होना चाहिए। मिलान के लिए टेम्पलेट को आंतरिक रूप से ग्रेस्केल में बदला जाता है। टेम्पलेट मिलान इनपुट छवि में किसी भी स्थान पर इस टेम्पलेट के सटीक या लगभग सटीक मिलान खोजता है। जब टेम्पलेट छवि में समान स्केल, रोटेशन और प्रकाश स्थितियों के साथ दिखाई दे, तब यह सबसे अच्छा काम करता है। टेम्पलेट के आयाम डिटेक्शन बाउंडिंग बॉक्स के आकार को निर्धारित करते हैं..matching_threshold(float): टेम्पलेट मिलान के लिए आवश्यक न्यूनतम समानता थ्रेशहोल्ड (0.0 से 1.0 तक)। उच्च मान (1.0 के अधिक निकट) बहुत निकट मिलान की आवश्यकता रखते हैं और कम लेकिन अधिक सटीक मिलान खोजते हैं। निम्न मान (0.0 के अधिक निकट) अधिक उदार मिलान की अनुमति देते हैं और आंशिक मिलानों सहित अधिक संभावित मिलान खोजते हैं। डिफ़ॉल्ट 0.8 है, जो काफी निकट मिलान की आवश्यकता रखता है। अधिक मिलान खोजने या हल्के बदलावों को संभालने के लिए कम थ्रेशहोल्ड (0.6-0.7) का उपयोग करें। केवल सटीक मिलान के लिए उच्च थ्रेशहोल्ड (0.85-0.95) का उपयोग करें। थ्रेशहोल्ड टेम्पलेट मिलान से प्राप्त सामान्यीकृत क्रॉस-सहसंबंध गुणांकों की तुलना करता है..apply_nms(boolean): ओवरलैप करने वाले डिटेक्शनों को फ़िल्टर करने के लिए Non-Maximum Suppression (NMS) लागू करना है या नहीं। टेम्पलेट मिलान अक्सर एक ही स्थान पर कई ओवरलैपिंग डिटेक्शन उत्पन्न करता है। NMS ओवरलैपिंग डिटेक्शनों को हटाता है, और प्रत्येक क्षेत्र में केवल सबसे अच्छा मिलान रखता है। डिफ़ॉल्ट True है (अधिकांश मामलों के लिए अनुशंसित)। इसे False पर सेट करें यदि: (1) मिलानों की संख्या अत्यधिक बड़ी है (NMS गणनात्मक रूप से महंगा हो सकता है), (2) आप बिना फ़िल्टरिंग के सभी कच्चे मिलान देखना चाहते हैं, या (3) मिलान जानबूझकर पास-पास हैं और सभी को रखना चाहिए। अक्षम करने पर, आपको एक ही मिलान स्थान के लिए कई डुप्लिकेट डिटेक्शन दिखाई दे सकते हैं..nms_threshold(float_zero_to_one): Non-Maximum Suppression के लिए Intersection over Union (IoU) थ्रेशहोल्ड। यह केवल तब प्रासंगिक है जब apply_nms True हो। इस थ्रेशहोल्ड से अधिक IoU ओवरलैप वाले डिटेक्शन डुप्लिकेट माने जाते हैं, और केवल सबसे अधिक कॉन्फ़िडेंस वाला डिटेक्शन रखा जाता है। निम्न मान (0.3-0.4) ओवरलैप हटाने में अधिक आक्रामक होते हैं, और केवल थोड़ा ओवरलैप करने वाले डिटेक्शनों को भी हटा देते हैं। उच्च मान (0.6-0.7) अधिक उदार होते हैं, और केवल भारी ओवरलैप वाले डिटेक्शनों को हटाते हैं। डिफ़ॉल्ट 0.5 है, जो संतुलित ओवरलैप फ़िल्टरिंग प्रदान करता है। टेम्पलेट मिलानों के बीच अपेक्षित ओवरलैप और मान्य मिलानों के कितने पास-पास हो सकने के आधार पर समायोजित करें..
आउटपुट
predictions(object_detection_prediction): sv.Detections(...) ऑब्जेक्ट के रूप में पहचाने गए बाउंडिंग बॉक्स के साथ पूर्वानुमान।number_of_matches(पूर्णांक): पूर्णांक मान।
अंतिम अपडेट
क्या यह उपयोगी था?