परिप्रेक्ष्य सुधार
पॉलीगॉन-परिभाषित समतल से निर्धारित चौड़ाई और ऊँचाई वाले सीधे आयताकार समतल पर डिटेक्शन निर्देशांकों को समायोजित करें।
परिप्रेक्ष्य दृश्य से शीर्ष-दृश्य ऑर्थोग्राफिक दृश्य में, परिप्रेक्ष्य रूपांतरण का उपयोग करके, डिटेक्शन निर्देशांकों और वैकल्पिक रूप से छवियों को रूपांतरित करें, कैमरा कोण की विकृतियों को सुधारते हुए ताकि सटीक माप, शीर्ष-दृश्य विश्लेषण, और उन परिस्थितियों के लिए निर्देशांक सामान्यीकरण सक्षम हो सके जहाँ वस्तुएँ कोण पर दिखाई देती हैं (जैसे निगरानी कैमरे, हवाई इमेजरी, या झुके हुए कैमरा सेटअप)।
यह ब्लॉक कैसे काम करता है
यह ब्लॉक परिप्रेक्ष्य विकृति को इस प्रकार सुधारता है कि परिप्रेक्ष्य दृश्य से (जहाँ वस्तुएँ दूर होने पर छोटी दिखाई देती हैं और कोण विकृत होते हैं) निर्देशांकों को शीर्ष-दृश्य ऑर्थोग्राफिक दृश्य में (मानो कैमरा दृश्य के ठीक ऊपर हो) रूपांतरित किया जाता है। यह ब्लॉक:
इनपुट डेटा प्राप्त करता है: छवियाँ और/या डिटेक्शन (ऑब्जेक्ट डिटेक्शन या इंस्टेंस सेगमेंटेशन पूर्वानुमान), साथ ही रूपांतरित करने के लिए क्षेत्रों को परिभाषित करने वाले परिप्रेक्ष्य बहुभुज
परिप्रेक्ष्य बहुभुजों को संसाधित करता है:
प्रदान किए गए बहुभुजों में से सबसे बड़े बहुभुज का चयन करता है (यदि एक से अधिक प्रदान किए गए हों)
बहुभुज के शीर्षों को घड़ी की दिशा में क्रमबद्ध करता है और उन्हें सबसे बाएँ निचले शीर्ष से शुरू करते हुए उन्मुख करता है
रूपांतरण मैट्रिक्स की गणना के लिए बहुभुज का सही क्रम सुनिश्चित करता है
वैकल्पिक रूप से परिप्रेक्ष्य बहुभुजों को सभी डिटेक्शनों को समाहित करने के लिए विस्तारित करता है:
यदि
extend_perspective_polygon_by_detections_anchorको सेट किया गया हो, तो बहुभुज को इस प्रकार विस्तारित करता है कि सभी डिटेक्शन एंकर बिंदु (या यदि "ALL" निर्दिष्ट हो तो संपूर्ण बाउंडिंग बॉक्स) बहुभुज के भीतर समाहित होंमूल बहुभुज के बाहर स्थित डिटेक्शनों को समाहित करने के लिए आवश्यक विस्तार मात्रा की गणना करता है
सभी डिटेक्शनों को घेरे रखने वाला बड़ा क्षेत्र बनाने के लिए बहुभुज के शीर्षों को समायोजित करता है
परिप्रेक्ष्य रूपांतरण मैट्रिक्स उत्पन्न करता है:
स्रोत बहुभुज (परिप्रेक्ष्य दृश्य में 4 शीर्ष) को निर्दिष्ट चौड़ाई और ऊँचाई वाले गंतव्य आयत (शीर्ष-दृश्य) पर मैप करता है
OpenCV के
getPerspectiveTransformका उपयोग करके 3x3 रूपांतरण मैट्रिक्स की गणना करता हैजब बहुभुज विस्तार सक्षम हो, तब विस्तारित आयामों को संभालता है
डिटेक्शनों पर परिप्रेक्ष्य रूपांतरण लागू करता है (यदि उपलब्ध हों):
परिप्रेक्ष्य दृश्य से बाउंडिंग बॉक्स निर्देशांकों को शीर्ष-दृश्य निर्देशांकों में रूपांतरित करता है
इंस्टेंस सेगमेंटेशन मास्क को मास्कों को बहुभुजों में बदलकर, बहुभुज शीर्षों को रूपांतरित करके, और नए निर्देशांक स्थान में उन्हें फिर से मास्क में बदलकर रूपांतरित करता है
कीपॉइंट डिटेक्शन पूर्वानुमानों के लिए कीपॉइंट निर्देशांकों को रूपांतरित करता है
सभी निर्देशांक डेटा को सुधारे गए परिप्रेक्ष्य को प्रतिबिंबित करने के लिए अद्यतन करता है
वैकल्पिक रूप से छवियों को विकृत/वार्प करता है (यदि
warp_imageसही (True) है):OpenCV के
warpPerspectiveका उपयोग करके पूरी छवि पर परिप्रेक्ष्य रूपांतरण लागू करता है
निर्दिष्ट रूपांतरित आयत आयामों (साथ ही किसी भी विस्तार) पर विकृत छवि आउटपुट करता है
सुधारे गए आउटपुट लौटाता है:
corrected_coordinates: शीर्ष-दृश्य निर्देशांक स्थान में रूपांतरित निर्देशांकों वाले डिटेक्शनwarped_image: परिप्रेक्ष्य-सुधारित छवि (यदि छवि वार्पिंग सक्षम है)extended_transformed_rect_widthऔरextended_transformed_rect_height: किसी भी बहुभुज विस्तार सहित अंतिम आयाम
यह रूपांतरण परिप्रेक्ष्य विकृति को प्रभावी रूप से "अनवार्प" करता है, जिससे निर्देशांक और छवियाँ मानो सीधे ऊपर से देखी गई हों, वैसे दिखाई देती हैं। यह सटीक माप, क्षेत्र गणना, दूरी मापन, और स्थानिक विश्लेषण के लिए उपयोगी है, जहाँ परिप्रेक्ष्य विकृति अन्यथा त्रुटियाँ पैदा कर सकती है।
सामान्य उपयोग के मामले
शीर्ष-दृश्य विश्लेषण: शीर्ष-दृश्य विश्लेषण और मापन के लिए परिप्रेक्ष्य विकृति को सुधारें (जैसे निगरानी कैमरा विश्लेषण, ओवरहेड दृश्य निर्माण, शीर्ष-दृश्य निर्देशांक सामान्यीकरण), जिससे शीर्ष-दृश्य विश्लेषण कार्यप्रवाह सक्षम हों
सटीक मापन: परिप्रेक्ष्य विकृति हटाकर सटीक दूरी, क्षेत्रफल और आकार मापन सक्षम करें (जैसे वस्तु के आकार को वास्तविक-विश्व इकाइयों में मापना, क्षेत्रों की सटीक गणना करना, विकृति के बिना दूरियाँ मापना), जिससे मापन कार्यप्रवाह सक्षम हों
स्थानिक विश्लेषण: सुधारे गए निर्देशांकों पर स्थानिक विश्लेषण और निर्देशांक-आधारित संचालन करें (जैसे क्षेत्र-आधारित विश्लेषण, स्थानिक ट्रैकिंग, निर्देशांक-आधारित फ़िल्टरिंग), जिससे स्थानिक विश्लेषण कार्यप्रवाह सक्षम हों
हवाई और ओवरहेड इमेजरी: परिप्रेक्ष्य सुधार के साथ हवाई इमेजरी या ऊपर से ली गई कैमरा फ़ीड्स को संसाधित करें (जैसे ड्रोन इमेजरी विश्लेषण, ओवरहेड कैमरा प्रसंस्करण, उपग्रह छवि विश्लेषण), जिससे हवाई विश्लेषण कार्यप्रवाह सक्षम हों
गुणवत्ता नियंत्रण और निरीक्षण: गुणवत्ता नियंत्रण और निरीक्षण कार्यप्रवाहों के लिए परिप्रेक्ष्य सुधार करें (जैसे विनिर्माण निरीक्षण, उत्पाद गुणवत्ता जाँच, सटीक माप के साथ दोष पहचान), जिससे गुणवत्ता नियंत्रण कार्यप्रवाह सक्षम हों
इनडोर नेविगेशन और मैपिंग: इनडोर नेविगेशन और मैपिंग अनुप्रयोगों के लिए परिप्रेक्ष्य सुधार करें (जैसे फ़्लोर प्लान निर्माण, इनडोर मैपिंग, नेविगेशन सिस्टम), जिससे मैपिंग कार्यप्रवाह सक्षम हों
अन्य ब्लॉकों से जोड़ना
यह ब्लॉक छवियाँ और/या डिटेक्शन प्राप्त करता है और परिप्रेक्ष्य-सुधारित आउटपुट उत्पन्न करता है:
डिटेक्शन मॉडल के बाद सटीक विश्लेषण के लिए निर्देशांकों को सुधारने हेतु (जैसे परिप्रेक्ष्य सुधार के साथ ऑब्जेक्ट डिटेक्शन, सुधारे गए निर्देशांकों के साथ इंस्टेंस सेगमेंटेशन), जिससे डिटेक्शन-से-सुधार कार्यप्रवाह सक्षम हों
ज़ोन या बहुभुज परिभाषा ब्लॉकों के बाद परिभाषित क्षेत्रों को परिप्रेक्ष्य बहुभुज के रूप में उपयोग करने के लिए (जैसे बहुभुज ज़ोनों को परिप्रेक्ष्य क्षेत्रों के रूप में उपयोग करना, विशिष्ट क्षेत्रों पर सुधार लागू करना), जिससे ज़ोन-से-सुधार कार्यप्रवाह सक्षम हों
मापन ब्लॉकों से पहले सुधारे गए निर्देशांकों पर सटीक माप सक्षम करने के लिए (जैसे सुधारे गए निर्देशांकों के साथ दूरी मापन, शीर्ष-दृश्य पर आकार मापन, सुधारे गए निर्देशांकों पर क्षेत्रफल गणना), जिससे सुधार-से-मापन कार्यप्रवाह सक्षम हों
विश्लेषण ब्लॉकों से पहले सुधारे गए निर्देशांकों पर विश्लेषण करने के लिए (जैसे सुधारे गए निर्देशांकों के साथ ज़ोन विश्लेषण, शीर्ष-दृश्य के साथ ट्रैकिंग, सुधारे गए पथों के साथ पथ विश्लेषण), जिससे सुधार-से-विश्लेषण कार्यप्रवाह सक्षम हों
विज़ुअलाइज़ेशन ब्लॉकों से पहले सुधारे गए निर्देशांकों और वार्प की गई छवियों को विज़ुअलाइज़ करने के लिए (जैसे शीर्ष-दृश्य दिखाना, सुधारे गए डिटेक्शनों को विज़ुअलाइज़ करना, परिप्रेक्ष्य-सुधारित परिणाम दिखाना), जिससे सुधार-से-विज़ुअलाइज़ेशन कार्यप्रवाह सक्षम हों
वर्कफ़्लो आउटपुट में परिप्रेक्ष्य-सुधारित अंतिम आउटपुट प्रदान करने के लिए (जैसे शीर्ष-दृश्य निर्देशांक आउटपुट, सुधारे गए डिटेक्शन आउटपुट, वार्प की गई छवि आउटपुट), जिससे सुधार-से-आउटपुट कार्यप्रवाह सक्षम हों
आवश्यकताएँ
यह ब्लॉक इनपुट के रूप में या तो छवियाँ या पूर्वानुमान (डिटेक्शन) आवश्यक करता है। यह perspective_polygons पैरामीटर में ठीक 4 शीर्षों वाले कम-से-कम एक बहुभुज होना चाहिए, जो रूपांतरित करने वाले क्षेत्र को परिभाषित करता हो। बहुभुज 4 निर्देशांक युग्मों की सूची के रूप में दिया जा सकता है [[x1, y1], [x2, y2], [x3, y3], [x4, y4]] या NumPy arrays के रूप में। यदि एक से अधिक बहुभुज दिए गए हों, तो सबसे बड़ा बहुभुज (क्षेत्रफल के आधार पर) प्रत्येक बैच तत्व के लिए चुना जाता है। यह transformed_rect_width और transformed_rect_height पैरामीटर आउटपुट शीर्ष-दृश्य आयत के आयामों को परिभाषित करते हैं। यह ब्लॉक OpenCV के परिप्रेक्ष्य रूपांतरण फ़ंक्शनों का उपयोग करता है, जिनके लिए सही बहुभुज क्रम और मान्य निर्देशांक डेटा आवश्यक है। यदि बहुभुज विस्तार सक्षम है, तो आउटपुट आयाम स्वचालित रूप से विस्तारित क्षेत्रों को शामिल करने के लिए समायोजित किए जाते हैं।
प्रकार पहचानकर्ता
चरण में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फ़ील्ड: roboflow_core/perspective_correction@v1 ब्लॉक को अपने वर्कफ़्लो में एक चरण के रूप में जोड़ने के लिए।
गुण
नाम
प्रकार
विवरण
संदर्भ
name
str
इस चरण के लिए एक अद्वितीय पहचानकर्ता दर्ज करें..
❌
perspective_polygons
List[Any]
परिप्रेक्ष्य दृश्य से शीर्ष-दृश्य में रूपांतरित करने वाले क्षेत्रों को परिभाषित करने वाले परिप्रेक्ष्य बहुभुज। प्रत्येक बहुभुज में ठीक 4 शीर्ष (निर्देशांक) होने चाहिए। प्रारूप: 4 निर्देशांक युग्मों की सूची [[x1, y1], [x2, y2], [x3, y3], [x4, y4]] या NumPy arrays। यदि किसी बैच तत्व के लिए एक से अधिक बहुभुज दिए गए हों, तो सबसे बड़ा बहुभुज (क्षेत्रफल के आधार पर) चुना जाता है। बहुभुज परिप्रेक्ष्य दृश्य में स्रोत क्षेत्र को परिभाषित करता है, जिसे गंतव्य आयत पर मैप किया जाएगा..
✅
transformed_rect_width
int
शीर्ष-दृश्य में गंतव्य आयत की चौड़ाई (पिक्सेल में)। परिप्रेक्ष्य बहुभुज को इस चौड़ाई में फ़िट करने के लिए रूपांतरित किया जाता है। निर्देशांक इस आयाम से मेल खाने के लिए स्केल किए जाते हैं। यदि बहुभुज विस्तार सक्षम है, तो विस्तारित क्षेत्रों को समायोजित करने के लिए वास्तविक आउटपुट चौड़ाई अधिक हो सकती है..
✅
transformed_rect_height
int
शीर्ष-दृश्य में गंतव्य आयत की ऊँचाई (पिक्सेल में)। परिप्रेक्ष्य बहुभुज को इस ऊँचाई में फ़िट करने के लिए रूपांतरित किया जाता है। निर्देशांक इस आयाम से मेल खाने के लिए स्केल किए जाते हैं। यदि बहुभुज विस्तार सक्षम है, तो विस्तारित क्षेत्रों को समायोजित करने के लिए वास्तविक आउटपुट ऊँचाई अधिक हो सकती है..
✅
extend_perspective_polygon_by_detections_anchor
str
वैकल्पिक सेटिंग, जो परिप्रेक्ष्य बहुभुज को सभी डिटेक्शन एंकर बिंदुओं को समाहित करने के लिए विस्तारित करती है। यदि इसे किसी Position मान (CENTER, CENTER_LEFT, CENTER_RIGHT, TOP_CENTER, TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT, CENTER_OF_MASS) पर सेट किया गया हो, तो यह बहुभुज को इस प्रकार विस्तारित करती है कि सभी डिटेक्शनों से वह एंकर बिंदु समाहित हो। यदि इसे 'ALL' पर सेट किया गया हो, तो यह संपूर्ण बाउंडिंग बॉक्स (सभी कोने) समाहित करने के लिए विस्तारित करती है। खाली स्ट्रिंग (डिफ़ॉल्ट) विस्तार को निष्क्रिय करती है। विस्तार सुनिश्चित करता है कि सभी डिटेक्शन रूपांतरित क्षेत्र के भीतर हों, तथा बहुभुज सीमाओं और आउटपुट आयामों को स्वचालित रूप से समायोजित करता है..
✅
warp_image
bool
यदि True हो, तो इनपुट छवि पर परिप्रेक्ष्य रूपांतरण लागू करता है, जिससे शीर्ष-दृश्य में एक विकृत छवि बनती है। विकृत छवि निर्दिष्ट रूपांतरित आयत आयामों (साथ ही किसी भी विस्तार) पर परिप्रेक्ष्य-सुधारित दृश्य दिखाती है। यदि False (डिफ़ॉल्ट) हो, तो केवल डिटेक्शन निर्देशांक रूपांतरित किए जाते हैं, और मूल छवि अपरिवर्तित लौटाई जाती है। यदि यह True है, तो छवियाँ प्रदान की जानी चाहिए..
✅
यह संदर्भ कॉलम यह दर्शाता है कि प्रॉपर्टी को वर्कफ़्लो रनटाइम में उपलब्ध डायनामिक मानों के साथ पैरामीटराइज़ किया जा सकता है। देखें Bindings अधिक जानकारी के लिए।
इनपुट और आउटपुट बाइंडिंग्स
उपलब्ध कनेक्शन उसकी बाइंडिंग प्रकारों पर निर्भर करते हैं। जांचें कि परिप्रेक्ष्य सुधार संस्करण v1 में कौन-कौन से बाइंडिंग प्रकार हैं।
इनपुट और आउटपुट बाइंडिंग्स
इनपुट
भविष्यवाणियाँ(Union[instance_segmentation_prediction,object_detection_prediction]): रूपांतरित किए जाने वाले वैकल्पिक ऑब्जेक्ट डिटेक्शन या इंस्टेंस सेगमेंटेशन पूर्वानुमान। यदि प्रदान किए गए हों, तो बाउंडिंग बॉक्स, मास्क, और कीपॉइंट्स को शीर्ष-दृश्य निर्देशांक स्थान में रूपांतरित किया जाता है। यदि प्रदान न किए गए हों, तो केवल छवि वार्पिंग की जाती है (यदि सक्षम हो)। या तो पूर्वानुमान या छवियाँ प्रदान की जानी चाहिए..छवियाँ(छवि): वैकल्पिक रूप से शीर्ष-दृश्य में वार्प करने के लिए इनपुट छवियाँ। यदि warp_image True है, तो आवश्यक। छवियों को शीर्ष-दृश्य बनाने के लिए परिप्रेक्ष्य रूपांतरण मैट्रिक्स का उपयोग करके रूपांतरित किया जाता है। यदि केवल छवियाँ प्रदान की गई हों (कोई पूर्वानुमान नहीं), तो केवल छवि वार्पिंग की जाती है..perspective_polygons(list_of_values): परिप्रेक्ष्य दृश्य से शीर्ष-दृश्य में रूपांतरित करने वाले क्षेत्रों को परिभाषित करने वाले परिप्रेक्ष्य बहुभुज। प्रत्येक बहुभुज में ठीक 4 शीर्ष (निर्देशांक) होने चाहिए। प्रारूप: 4 निर्देशांक युग्मों की सूची [[x1, y1], [x2, y2], [x3, y3], [x4, y4]] या NumPy arrays। यदि किसी बैच तत्व के लिए एक से अधिक बहुभुज दिए गए हों, तो सबसे बड़ा बहुभुज (क्षेत्रफल के आधार पर) चुना जाता है। बहुभुज परिप्रेक्ष्य दृश्य में स्रोत क्षेत्र को परिभाषित करता है, जिसे गंतव्य आयत पर मैप किया जाएगा..transformed_rect_width(integer): शीर्ष-दृश्य में गंतव्य आयत की चौड़ाई (पिक्सेल में)। परिप्रेक्ष्य बहुभुज को इस चौड़ाई में फ़िट करने के लिए रूपांतरित किया जाता है। निर्देशांक इस आयाम से मेल खाने के लिए स्केल किए जाते हैं। यदि बहुभुज विस्तार सक्षम है, तो विस्तारित क्षेत्रों को समायोजित करने के लिए वास्तविक आउटपुट चौड़ाई अधिक हो सकती है..transformed_rect_height(integer): शीर्ष-दृश्य में गंतव्य आयत की ऊँचाई (पिक्सेल में)। परिप्रेक्ष्य बहुभुज को इस ऊँचाई में फ़िट करने के लिए रूपांतरित किया जाता है। निर्देशांक इस आयाम से मेल खाने के लिए स्केल किए जाते हैं। यदि बहुभुज विस्तार सक्षम है, तो विस्तारित क्षेत्रों को समायोजित करने के लिए वास्तविक आउटपुट ऊँचाई अधिक हो सकती है..extend_perspective_polygon_by_detections_anchor(स्ट्रिंग): वैकल्पिक सेटिंग, जो परिप्रेक्ष्य बहुभुज को सभी डिटेक्शन एंकर बिंदुओं को समाहित करने के लिए विस्तारित करती है। यदि इसे किसी Position मान (CENTER, CENTER_LEFT, CENTER_RIGHT, TOP_CENTER, TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT, CENTER_OF_MASS) पर सेट किया गया हो, तो यह बहुभुज को इस प्रकार विस्तारित करती है कि सभी डिटेक्शनों से वह एंकर बिंदु समाहित हो। यदि इसे 'ALL' पर सेट किया गया हो, तो यह संपूर्ण बाउंडिंग बॉक्स (सभी कोने) समाहित करने के लिए विस्तारित करती है। खाली स्ट्रिंग (डिफ़ॉल्ट) विस्तार को निष्क्रिय करती है। विस्तार सुनिश्चित करता है कि सभी डिटेक्शन रूपांतरित क्षेत्र के भीतर हों, तथा बहुभुज सीमाओं और आउटपुट आयामों को स्वचालित रूप से समायोजित करता है..warp_image(boolean): यदि True हो, तो इनपुट छवि पर परिप्रेक्ष्य रूपांतरण लागू करता है, जिससे शीर्ष-दृश्य में एक विकृत छवि बनती है। विकृत छवि निर्दिष्ट रूपांतरित आयत आयामों (साथ ही किसी भी विस्तार) पर परिप्रेक्ष्य-सुधारित दृश्य दिखाती है। यदि False (डिफ़ॉल्ट) हो, तो केवल डिटेक्शन निर्देशांक रूपांतरित किए जाते हैं, और मूल छवि अपरिवर्तित लौटाई जाती है। यदि यह True है, तो छवियाँ प्रदान की जानी चाहिए..
आउटपुट
corrected_coordinates(Union[object_detection_prediction,instance_segmentation_prediction]): यदिobject_detection_predictionया यदिinstance_segmentation_prediction.warped_image(छवि): वर्कफ़्लो में छवि।extended_transformed_rect_width(integer): पूर्णांक मान।extended_transformed_rect_height(integer): पूर्णांक मान।
अंतिम अपडेट
क्या यह उपयोगी था?