गतिशील ज़ोन
बहुभुजों को सरल बनाएं ताकि वे ज्यामितीय रूप से उत्तल हों और केवल अनुरोधित संख्या में vertices रखें।
मास्क को कंटूर में बदलकर, कन्वेक्स हुल की गणना करके, डग्लस-पीकर सन्निकटन का उपयोग करते हुए बहुभुज के शीर्षों की संख्या को निर्दिष्ट संख्या तक घटाकर, वैकल्पिक रूप से लीस्ट-स्क्वेयर एज फिटिंग लागू करके, और बहुभुजों को स्केल करके, इंस्टेंस सेगमेंटेशन डिटेक्शनों से सरलीकृत बहुभुजीय ज़ोन उत्पन्न करें, ताकि ज़ोन-आधारित विश्लेषण, स्थानिक फ़िल्टरिंग, और रुचि-क्षेत्र परिभाषा वर्कफ़्लो के लिए पता लगाए गए ऑब्जेक्ट आकारों के आधार पर ज्यामितीय ज़ोन बनाए जा सकें।
यह ब्लॉक कैसे काम करता है
यह ब्लॉक जटिल मास्क आकृतियों को ज्यामितीय रूप से कन्वेक्स बहुभुजों में, एक निर्दिष्ट शीर्ष संख्या के साथ, बदलकर इंस्टेंस सेगमेंटेशन डिटेक्शनों से सरलीकृत बहुभुजीय ज़ोन बनाता है। यह ब्लॉक:
पता लगाए गए ऑब्जेक्ट्स के लिए मास्क (बहुभुज निरूपण) वाली इंस्टेंस सेगमेंटेशन भविष्यवाणियाँ प्राप्त करता है
मास्क को कंटूर में बदलता है:
मास्क-टू-पॉलीगॉन रूपांतरण का उपयोग करके प्रत्येक डिटेक्शन मास्क से कंटूर निकालता है
प्रत्येक डिटेक्शन से सबसे बड़ा कंटूर चुनता है (प्रति मास्क कई कंटूरों को संभालता है)
कन्वेक्स हुल की गणना करता है:
OpenCV के कन्वेक्स हुल एल्गोरिथ्म का उपयोग करके सबसे बड़े कंटूर का कन्वेक्स हुल निकालता है
सुनिश्चित करता है कि परिणामी बहुभुज ज्यामितीय रूप से कन्वेक्स हो (अंदर की ओर मुख वाले कोण न हों)
एक सरलीकृत बाहरी सीमा बनाता है जो कंटूर के सभी बिंदुओं को समाहित करती है
बहुभुज को आवश्यक शीर्ष संख्या तक सरल बनाता है:
शीर्षों की संख्या घटाने के लिए डग्लस-पीकर बहुभुज सन्निकटन एल्गोरिथ्म का उपयोग करता है
लक्षित शीर्ष संख्या प्राप्त करने के लिए epsilon पैरामीटर को पुनरावृत्त रूप से समायोजित करता है
वांछित शीर्ष संख्या देने वाला इष्टतम epsilon मान खोजने के लिए बाइनरी सर्च का उपयोग करता है
अभिसरण को संभालता है: यदि सटीक शीर्ष संख्या प्राप्त नहीं की जा सकती, तो शीर्ष जोड़े या घटाए जाते हैं
वैकल्पिक रूप से लीस्ट-स्क्वेयर एज फिटिंग लागू करता है:
यदि
apply_least_squaresसक्षम है, तो मूल कंटूर बिंदुओं पर रेखाएँ फिट करके बहुभुज किनारों को परिष्कृत करता हैबहुभुज शीर्षों के बीच के कंटूर बिंदुओं का चयन करता है
वैकल्पिक रूप से मध्यबिंदु अंश तक फ़िल्टर करता है (उदाहरण के लिए, प्रत्येक किनारे का केवल केंद्रीय भाग उपयोग करता है) ताकि किनारी प्रभावों से बचा जा सके
प्रत्येक किनारे के लिए चुने गए कंटूर बिंदुओं पर लीस्ट-स्क्वेयर रेखाएँ फिट करता है
परिष्कृत शीर्ष स्थितियाँ बनाने के लिए फिट की गई रेखाओं के प्रतिच्छेदों की गणना करता है
एक ऐसा बहुभुज उत्पन्न करता है जो मूल कंटूर आकार के साथ बेहतर संरेखित होता है
बहुभुज को स्केल करता है (यदि
scale_ratio!= 1):बहुभुज का केंद्रक (द्रव्यमान केंद्र) गणना करता है
निर्दिष्ट स्केल अनुपात के अनुसार केंद्रक के सापेक्ष बहुभुज को स्केल करता है
केंद्र से बाहर की ओर बहुभुज को फैलाता या सिकोड़ता है (scale > 1 फैलाता है, scale < 1 सिकोड़ता है)
बफ़र ज़ोन बनाने या ज़ोन सीमाएँ समायोजित करने के लिए उपयोगी
सरलीकृत बहुभुजों के साथ डिटेक्शनों को अपडेट करता है:
बहुभुज कुंजी के अंतर्गत डिटेक्शन मेटाडेटा में सरलीकृत बहुभुज संग्रहीत करता है
अपडेट किए गए डिटेक्शन निरूपण के लिए सरलीकृत बहुभुजों से मास्क पुनः उत्पन्न करता है
सरलीकृत ज़ोन और अपडेट किए गए डिटेक्शन लौटाता है:
zones: समन्वय सूचियों के रूप में सरलीकृत बहुभुजों की सूची (प्रत्येक डिटेक्शन के लिए एक)predictions: सरलीकृत बहुभुजों और मास्कों सहित अपडेट किए गए डिटेक्शनsimplification_converged: बूलियन जो दर्शाता है कि क्या सभी बहुभुज सटीक शीर्ष संख्या तक अभिसरित हुए
यह ब्लॉक सेगमेंटेशन मॉडलों द्वारा पता लगाए गए जटिल ऑब्जेक्ट आकारों से ज्यामितीय ज़ोन बनाने की सुविधा देता है। यह विशेष रूप से तब उपयोगी है जब ज़ोन को पता लगाए गए ऑब्जेक्ट आकारों (जैसे, बास्केटबॉल कोर्ट, सड़क खंड, पार्किंग स्थल, मैदान) के आधार पर बनाना हो, जहाँ ज़ोन को ऑब्जेक्ट की बाहरी रूपरेखा से मेल खाना चाहिए, लेकिन प्रदर्शन और उपयोग में आसानी के लिए सरलीकृत होना चाहिए।
सामान्य उपयोग के मामले
डिटेक्शनों से ज़ोन निर्माण: पता लगाए गए ऑब्जेक्ट आकारों के आधार पर बहुभुजीय ज़ोन बनाता है (जैसे, कोर्ट डिटेक्शनों से बास्केटबॉल कोर्ट ज़ोन बनाना, सड़क डिटेक्शनों से सड़क खंड ज़ोन बनाना, खेल मैदान डिटेक्शनों से मैदान ज़ोन बनाना), जिससे डिटेक्शन-आधारित ज़ोन वर्कफ़्लो संभव होते हैं
ज्यामितीय ज़ोन सरलीकरण: जटिल ऑब्जेक्ट आकारों को नियंत्रित शीर्ष संख्या वाले ज्यामितीय रूप से कन्वेक्स बहुभुजों में सरल बनाता है (जैसे, अनियमित आकारों को आयतों/चतुर्भुजों में सरल करना, जटिल बहुभुजों को प्रबंधनीय शीर्ष संख्या तक घटाना, मास्क से ज्यामितीय ज़ोन बनाना), जिससे ज़ोन सरलीकरण वर्कफ़्लो संभव होते हैं
गतिशील ज़ोन परिभाषा: छवियों में पता लगाए गए ऑब्जेक्ट्स के आधार पर गतिशील रूप से ज़ोन परिभाषित करता है (जैसे, पता लगाए गए क्षेत्रों से ज़ोन परिभाषित करना, ऑब्जेक्ट आकारों से ज़ोन बनाना, सेगमेंटेशन परिणामों से ज़ोन उत्पन्न करना), जिससे गतिशील ज़ोन वर्कफ़्लो संभव होते हैं
ज़ोन-आधारित विश्लेषण सेटअप: ज़ोन-आधारित विश्लेषण और फ़िल्टरिंग के लिए ज़ोन तैयार करता है (जैसे, time-in-zone विश्लेषण के लिए ज़ोन तैयार करना, ज़ोन-आधारित फ़िल्टरिंग के लिए ज़ोन बनाना, स्थानिक विश्लेषण के लिए ज़ोन सेट अप करना), जिससे ज़ोन-आधारित विश्लेषण वर्कफ़्लो संभव होते हैं
रुचि-क्षेत्र परिभाषा: पता लगाए गए ऑब्जेक्ट सीमाओं के आधार पर रुचि के क्षेत्रों को परिभाषित करता है (जैसे, ऑब्जेक्ट डिटेक्शनों से ROI परिभाषित करना, सेगमेंटेशन से ROI ज़ोन बनाना, मास्क से रुचि-क्षेत्र उत्पन्न करना), जिससे ROI परिभाषा वर्कफ़्लो संभव होते हैं
स्थानिक फ़िल्टरिंग और विश्लेषण: स्थानिक फ़िल्टरिंग और विश्लेषण कार्यों के लिए ज़ोन बनाता है (जैसे, स्थानिक फ़िल्टरिंग के लिए ज़ोन बनाना, क्षेत्र गणनाओं के लिए ज़ोन तैयार करना, स्थानिक क्वेरीज़ के लिए ज़ोन उत्पन्न करना), जिससे स्थानिक विश्लेषण वर्कफ़्लो संभव होते हैं
अन्य ब्लॉक्स से कनेक्ट करना
यह ब्लॉक इंस्टेंस सेगमेंटेशन भविष्यवाणियाँ प्राप्त करता है और सरलीकृत बहुभुजीय ज़ोन बनाता है:
इंस्टेंस सेगमेंटेशन मॉडलों के बाद पता लगाए गए ऑब्जेक्ट आकारों से ज़ोन बनाने के लिए (जैसे, सेगमेंटेशन मॉडल से ज़ोन, मास्क से सरलीकृत बहुभुज, डिटेक्शनों से ज्यामितीय ज़ोन), जिससे सेगमेंटेशन-से-ज़ोन वर्कफ़्लो संभव होते हैं
डिटेक्शन फ़िल्टरिंग ब्लॉकों के बाद फ़िल्टर किए गए डिटेक्शनों से ज़ोन बनाने के लिए (जैसे, पहले डिटेक्शन फ़िल्टर करें फिर ज़ोन बनाएं, विशिष्ट वर्गों से ज़ोन बनाएं, फ़िल्टर किए गए परिणामों से ज़ोन उत्पन्न करें), जिससे फ़िल्टर-से-ज़ोन वर्कफ़्लो संभव होते हैं
ज़ोन-आधारित विश्लेषण ब्लॉकों से पहले विश्लेषण के लिए सरलीकृत ज़ोन प्रदान करने के लिए (जैसे, time-in-zone के लिए ज़ोन, ज़ोन विश्लेषण के लिए ज़ोन, ज़ोन फ़िल्टरिंग के लिए बहुभुज), जिससे ज़ोन-से-विश्लेषण वर्कफ़्लो संभव होते हैं
विज़ुअलाइज़ेशन ब्लॉकों से पहले सरलीकृत ज़ोन प्रदर्शित करने के लिए (जैसे, ज़ोन बहुभुजों को विज़ुअलाइज़ करना, ज्यामितीय ज़ोन दिखाना, सरलीकृत क्षेत्रों को प्रदर्शित करना), जिससे ज़ोन विज़ुअलाइज़ेशन वर्कफ़्लो संभव होते हैं
स्थानिक फ़िल्टरिंग ब्लॉकों से पहले स्थानिक कार्यों के लिए ज़ोन प्रदान करने के लिए (जैसे, ओवरलैप फ़िल्टरिंग के लिए ज़ोन, स्थानिक क्वेरीज़ के लिए बहुभुज, क्षेत्र गणनाओं के लिए क्षेत्र), जिससे ज़ोन-से-फ़िल्टर वर्कफ़्लो संभव होते हैं
वर्कफ़्लो आउटपुट में अंतिम आउटपुट के रूप में सरलीकृत ज़ोन प्रदान करने के लिए (जैसे, ज़ोन जनरेशन वर्कफ़्लो, बहुभुज निष्कर्षण वर्कफ़्लो, ज्यामितीय ज़ोन आउटपुट), जिससे ज़ोन आउटपुट वर्कफ़्लो संभव होते हैं
आवश्यकताएँ
इस ब्लॉक को मास्क (बहुभुज डेटा) वाली इंस्टेंस सेगमेंटेशन भविष्यवाणियाँ चाहिए। इनपुट डिटेक्शनों को प्रोसेसिंग से पहले केवल वांछित रुचि वर्गों तक फ़िल्टर किया जाना चाहिए। The required_number_of_vertices पैरामीटर सरलीकृत बहुभुजों के लिए लक्षित शीर्ष संख्या निर्दिष्ट करता है (जैसे, आयतों/चतुर्भुजों के लिए 4, त्रिभुजों के लिए 3)। यह ब्लॉक इस संख्या तक बहुभुज के शीर्षों को घटाने के लिए बाइनरी सर्च के साथ पुनरावृत्त डग्लस-पीकर सन्निकटन का उपयोग करता है, अधिकतम 1000 पुनरावृत्तियों तक। यदि सटीक शीर्ष संख्या तक अभिसरण विफल हो जाता है, तो शीर्ष जोड़े या घटाए जाते हैं ताकि संख्या से मेल खा सके.. scale_ratio पैरामीटर (डिफ़ॉल्ट 1) बहुभुजों को उनके केंद्रक के सापेक्ष स्केल करता है। The apply_least_squares पैरामीटर (डिफ़ॉल्ट False) बहुभुज किनारों को मूल कंटूर बिंदुओं के साथ बेहतर संरेखित करने के लिए एज फिटिंग सक्षम करता है। The midpoint_fraction पैरामीटर (0-1, डिफ़ॉल्ट 1) नियंत्रित करता है कि लीस्ट-स्क्वेयर फिटिंग के लिए कंटूर बिंदुओं का कौन-सा भाग उपयोग होगा (1 = सभी बिंदु, कम मान किनारों के केंद्रीय भाग का उपयोग करते हैं)। यह ब्लॉक सरलीकृत बहुभुजों को समन्वय युग्मों की सूचियों, सरलीकृत बहुभुजों सहित अपडेट किए गए डिटेक्शनों, और एक अभिसरण ध्वज के रूप में आउटपुट करता है।
प्रकार पहचानकर्ता
स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फ़ील्ड: roboflow_core/dynamic_zone@v1 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।
गुण
नाम
प्रकार
विवरण
संदर्भ
name
str
इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..
❌
required_number_of_vertices
int
सरलीकृत बहुभुजों के लिए शीर्षों की लक्षित संख्या। यह ब्लॉक इस संख्या तक बहुभुज शीर्षों को घटाने के लिए पुनरावृत्त बाइनरी सर्च के साथ डग्लस-पीकर बहुभुज सन्निकटन का उपयोग करता है। सामान्य मान: आयतों/चतुर्भुजों के लिए 4, त्रिभुजों के लिए 3, अधिक जटिल आकारों के लिए 6+। एल्गोरिथ्म इस सटीक संख्या तक अभिसरित होने का प्रयास करता है; यदि अभिसरण विफल होता है (पुनरावृत्ति सीमा के भीतर), तो संख्या से मेल खाने के लिए शीर्ष जोड़े या घटाए जाते हैं..
✅
scale_ratio
float
परिणामी बहुभुजों को उनके केंद्रक के सापेक्ष फैलाने या सिकोड़ने के लिए स्केल फ़ैक्टर। 1 से बड़े मान बहुभुजों को केंद्र से बाहर की ओर फैलाते हैं (बफ़र ज़ोन बनाते हैं), 1 से छोटे मान उन्हें अंदर की ओर सिकोड़ते हैं। 1 का मान (डिफ़ॉल्ट) कोई स्केलिंग नहीं दर्शाता। स्केलिंग बहुभुज सरलीकरण के बाद लागू होती है। बफ़र ज़ोन बनाने या ज़ोन सीमाएँ समायोजित करने के लिए उपयोगी..
✅
apply_least_squares
bool
यदि True हो, तो बहुभुज किनारों को मूल कंटूर बिंदुओं के साथ संरेखित करके उन्हें परिष्कृत करने के लिए लीस्ट-स्क्वेयर रेखा फिटिंग लागू करता है। सरलीकृत बहुभुज के प्रत्येक किनारे के लिए, शीर्षों के बीच के कंटूर बिंदुओं पर एक रेखा फिट करता है, फिर परिष्कृत शीर्ष स्थितियाँ बनाने के लिए फिट की गई रेखाओं के प्रतिच्छेदों की गणना करता है। ऐसे बहुभुज बनाता है जो मूल कंटूर आकार से बेहतर मेल खाते हैं, विशेष रूप से तब उपयोगी जब सरलीकृत बहुभुज के शीर्ष कंटूर किनारों के साथ अच्छी तरह संरेखित न हों..
✅
midpoint_fraction
float
प्रत्येक किनारे पर लीस्ट-स्क्वेयर फिटिंग के लिए उपयोग किए जाने वाले कंटूर बिंदुओं का अंश (0-1)। 1 का मान (डिफ़ॉल्ट) शीर्षों के बीच के सभी कंटूर बिंदुओं का उपयोग करता है। कम मान प्रत्येक किनारे के केवल केंद्रीय भाग का उपयोग करते हैं (जैसे, 0.9 90% बिंदुओं का उपयोग करता है, केंद्रित)। यह तब उपयोगी है जब कन्वेक्स बहुभुज के शीर्ष किनारों के साथ अच्छी तरह संरेखित नहीं होते, क्योंकि यह शीर्षों के पास किनारी प्रभावों के बजाय किनारों के केंद्रीय भाग पर फिटिंग केंद्रित करता है। केवल तब लागू होता है जब apply_least_squares True हो..
✅
यह संदर्भ स्तंभ यह इंगित करता है कि संपत्ति को वर्कफ़्लो रनटाइम में उपलब्ध गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है वर्कफ़्लो रनटाइम। देखें बाइंडिंग्स अधिक जानकारी के लिए।
इनपुट और आउटपुट बाइंडिंग्स
उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। देखें कि कौन-से बाइंडिंग प्रकार गतिशील क्षेत्र संस्करण v1 है।
इनपुट और आउटपुट बाइंडिंग्स
इनपुट
predictions(instance_segmentation_prediction): पता लगाए गए ऑब्जेक्ट्स के लिए मास्क (बहुभुज डेटा) वाली इंस्टेंस सेगमेंटेशन भविष्यवाणियाँ। डिटेक्शनों को केवल वांछित रुचि वर्गों तक फ़िल्टर किया जाना चाहिए। प्रत्येक डिटेक्शन के मास्क को कंटूर में बदला जाता है, और सबसे बड़े कंटूर का उपयोग एक सरलीकृत बहुभुजीय ज़ोन बनाने के लिए किया जाता है। मास्क डेटा के साथ इंस्टेंस सेगमेंटेशन प्रारूप का समर्थन करता है..required_number_of_vertices(पूर्णांक): सरलीकृत बहुभुजों के लिए शीर्षों की लक्षित संख्या। यह ब्लॉक इस संख्या तक बहुभुज शीर्षों को घटाने के लिए पुनरावृत्त बाइनरी सर्च के साथ डग्लस-पीकर बहुभुज सन्निकटन का उपयोग करता है। सामान्य मान: आयतों/चतुर्भुजों के लिए 4, त्रिभुजों के लिए 3, अधिक जटिल आकारों के लिए 6+। एल्गोरिथ्म इस सटीक संख्या तक अभिसरित होने का प्रयास करता है; यदि अभिसरण विफल होता है (पुनरावृत्ति सीमा के भीतर), तो संख्या से मेल खाने के लिए शीर्ष जोड़े या घटाए जाते हैं..scale_ratio(float): परिणामी बहुभुजों को उनके केंद्रक के सापेक्ष फैलाने या सिकोड़ने के लिए स्केल फ़ैक्टर। 1 से बड़े मान बहुभुजों को केंद्र से बाहर की ओर फैलाते हैं (बफ़र ज़ोन बनाते हैं), 1 से छोटे मान उन्हें अंदर की ओर सिकोड़ते हैं। 1 का मान (डिफ़ॉल्ट) कोई स्केलिंग नहीं दर्शाता। स्केलिंग बहुभुज सरलीकरण के बाद लागू होती है। बफ़र ज़ोन बनाने या ज़ोन सीमाएँ समायोजित करने के लिए उपयोगी..apply_least_squares(boolean): यदि True हो, तो बहुभुज किनारों को मूल कंटूर बिंदुओं के साथ संरेखित करके उन्हें परिष्कृत करने के लिए लीस्ट-स्क्वेयर रेखा फिटिंग लागू करता है। सरलीकृत बहुभुज के प्रत्येक किनारे के लिए, शीर्षों के बीच के कंटूर बिंदुओं पर एक रेखा फिट करता है, फिर परिष्कृत शीर्ष स्थितियाँ बनाने के लिए फिट की गई रेखाओं के प्रतिच्छेदों की गणना करता है। ऐसे बहुभुज बनाता है जो मूल कंटूर आकार से बेहतर मेल खाते हैं, विशेष रूप से तब उपयोगी जब सरलीकृत बहुभुज के शीर्ष कंटूर किनारों के साथ अच्छी तरह संरेखित न हों..midpoint_fraction(float_zero_to_one): प्रत्येक किनारे पर लीस्ट-स्क्वेयर फिटिंग के लिए उपयोग किए जाने वाले कंटूर बिंदुओं का अंश (0-1)। 1 का मान (डिफ़ॉल्ट) शीर्षों के बीच के सभी कंटूर बिंदुओं का उपयोग करता है। कम मान प्रत्येक किनारे के केवल केंद्रीय भाग का उपयोग करते हैं (जैसे, 0.9 90% बिंदुओं का उपयोग करता है, केंद्रित)। यह तब उपयोगी है जब कन्वेक्स बहुभुज के शीर्ष किनारों के साथ अच्छी तरह संरेखित नहीं होते, क्योंकि यह शीर्षों के पास किनारी प्रभावों के बजाय किनारों के केंद्रीय भाग पर फिटिंग केंद्रित करता है। केवल तब लागू होता है जब apply_least_squares True हो..
आउटपुट
zones(list_of_values): किसी भी प्रकार के मानों की सूची।predictions(instance_segmentation_prediction): sv.Detections(...) object के रूप में पहचाने गए bounding boxes और segmentation masks के साथ prediction।simplification_converged(boolean): बूलियन फ़्लैग.
अंतिम अपडेट
क्या यह उपयोगी था?