मास्क क्षेत्र मापन
पहचानी गई वस्तुओं का क्षेत्र मापें और वैकल्पिक रूप से वास्तविक दुनिया की इकाइयों में बदलें।
पहचाने गए ऑब्जेक्ट्स का क्षेत्रफल मापें। instance segmentation मास्क के लिए, क्षेत्रफल non-zero मास्क पिक्सलों की गिनती करके गणना किया जाता है (छेदों को सही ढंग से संभालते हुए)। केवल bounding-box detections के लिए, क्षेत्रफल चौड़ाई को ऊँचाई से गुणा करके निकाला जाता है। वैकल्पिक रूप से पिक्सेल क्षेत्रों को वास्तविक-विश्व इकाइयों में परिवर्तित करता है, एक pixels_per_unit कैलिब्रेशन मान।
यह ब्लॉक कैसे काम करता है
यह ब्लॉक प्रत्येक पहचाने गए ऑब्जेक्ट का क्षेत्रफल गणना करता है और प्रति detection दो मान संग्रहीत करता है:
area_px- वर्ग पिक्सलों में क्षेत्रफल (हमेशा गणना किया जाता है)area_converted- वास्तविक-विश्व इकाइयों में क्षेत्रफल:area_px / (pixels_per_unit ** 2)(बराबरarea_pxजबpixels_per_unit1.0 हो)
दोनों मान प्रत्येक detection से जुड़े होते हैं और serialized JSON output में शामिल किए जाते हैं। यह ब्लॉक इन फ़ील्ड्स को जोड़कर input detections लौटाता है, ताकि downstream blocks (जैसे, label visualization) क्षेत्रफल मान प्रदर्शित कर सकें।
क्षेत्रफल गणना
यह ब्लॉक उसे प्राप्त होने वाले predictions के प्रकार के आधार पर दो मोड में काम करता है:
मास्क पिक्सेल क्षेत्रफल (इंस्टेंस सेगमेंटेशन): जब इनपुट detections में segmentation masks शामिल हों, तो ब्लॉक
cv2.countNonZeroका उपयोग करके प्रत्येक मास्क में non-zero pixels की गिनती करता है। यह छेद वाले masks को सही ढंग से संभालता है - hole pixels zero होते हैं और गिनती से बाहर रखे जाते हैं।बाउंडिंग बॉक्स क्षेत्रफल (ऑब्जेक्ट डिटेक्शन): जब कोई segmentation mask उपलब्ध नहीं होता, तो ब्लॉक क्षेत्रफल को bounding box की चौड़ाई को ऊँचाई से गुणा करके गणना करता है (
w * h).
इकाई रूपांतरण
सेट करें pixels_per_unit पिक्सेल क्षेत्रों को वास्तविक-विश्व इकाइयों (जैसे, cm², in², mm²) में परिवर्तित करने के लिए इनपुट। चूँकि क्षेत्रफल द्वि-आयामी है, रूपांतरण अनुपात का वर्ग करता है:
area_converted = area_px / (pixels_per_unit ** 2)उदाहरण के लिए, यदि आपका कैलिब्रेशन 130 pixels/cm है, तो एक detection जिसमें area_px = 16900 का मान होगा area_converted = 16900 / 16900 = 1.0 cm².
pixels_per_unit कैसे निर्धारित करें: कैमरे के field of view में ज्ञात आकार की कोई वस्तु रखें (जैसे, ruler या calibration target)। छवि में उसकी लंबाई पिक्सलों में मापें और उसे उसकी वास्तविक-विश्व लंबाई से विभाजित करें। उदाहरण के लिए, यदि 10 cm का reference object 1300 pixels तक फैला है, तो pixels_per_cm = 1300 / 10 = 130. यदि आप perspective correction का उपयोग कर रहे हैं, तो calibration object को उसी plane पर रखा जाना चाहिए जिस पर perspective correction की गणना की गई थी।
सामान्य उपयोग के मामले
आकार-आधारित फ़िल्टरिंग: छोटे noise detections को फ़िल्टर करके हटाएँ और filtering block के साथ chaining करके केवल minimum area threshold से ऊपर की detections रखें।
गुणवत्ता नियंत्रण: मापे गए क्षेत्रों की अपेक्षित सीमाओं से तुलना करके सुनिश्चित करें कि निर्मित घटक आकार विनिर्देशों के अनुरूप हैं।
कृषि विश्लेषण: हवाई या क्लोज़-अप चित्रों से पत्ती क्षेत्र, फसल आवरण, या canopy extent मापें।
चिकित्सीय इमेजिंग: घावों, lesions, या शारीरिक संरचनाओं के क्षेत्रफल को मात्रात्मक रूप से मापें। उपयोग करें
pixels_per_unitताकि नैदानिक दस्तावेज़ीकरण के लिए वास्तविक-विश्व माप प्राप्त किए जा सकें।
अन्य ब्लॉकों से जोड़ना
अपस्ट्रीम -- डिटेक्शन और सेगमेंटेशन मॉडल: किसी object detection या instance segmentation model के आउटपुट को
भविष्यवाणियाँinput से जोड़ें। instance segmentation models (जो masks उत्पन्न करते हैं) केवल bounding-box detections की तुलना में अधिक सटीक क्षेत्रफल माप देते हैं।अपस्ट्रीम -- Camera Calibration Block: उपयोग करें
roboflow_core/camera_calibration@v1डिटेक्शन से पहले lens distortion को सही करने के लिए अपस्ट्रीम में।अपस्ट्रीम -- Perspective Correction Block: उपयोग करें
roboflow_core/perspective_correction@v1ताकि कोण से ली गई छवियों को top-down view में बदला जा सके और क्षेत्रफल माप वास्तविक ऑब्जेक्ट footprints को दर्शाएँ।डाउनस्ट्रीम -- Visualization: आउटपुट को पास करें
भविष्यवाणियाँlabel या polygon visualization blocks को।area_pxऔरarea_convertedfields लेबल के रूप में प्रदर्शित करने के लिए उपलब्ध होते हैं।डाउनस्ट्रीम -- Filtering Blocks: समृद्ध detections को एक filtering block के साथ उपयोग करें ताकि केवल वे detections रखी जाएँ जिनका क्षेत्रफल threshold पूरा करता है।
आवश्यकताएँ
यह ब्लॉक object detection या instance segmentation model से detection predictions की आवश्यकता रखता है। OpenCV और NumPy (जो inference के साथ शामिल हैं) के अलावा किसी अतिरिक्त environment variables, API keys, या external dependencies की आवश्यकता नहीं है। सबसे सटीक क्षेत्रफल माप के लिए, ऐसे instance segmentation models का उपयोग करें जो प्रति-object masks उत्पन्न करते हैं।
प्रकार पहचानकर्ता
स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फील्ड: roboflow_core/mask_area_measurement@v1 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।
गुण
नाम
प्रकार
विवरण
संदर्भ
name
str
इस स्टेप के लिए एक अद्वितीय पहचानकर्ता दर्ज करें..
❌
pixels_per_unit
float
लंबाई की वास्तविक-विश्व इकाई के प्रति पिक्सलों की संख्या (जैसे, pixels per cm)। परिवर्तित क्षेत्रफल area_px / (pixels_per_unit ** 2) के रूप में गणना किया जाता है। डिफ़ॉल्ट 1.0 का अर्थ है कोई रूपांतरण नहीं (area_converted, area_px के बराबर होता है)..
✅
यह संदर्भ कॉलम यह दर्शाता है कि प्रॉपर्टी को गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है, जो वर्कफ़्लो रनटाइम में उपलब्ध हैं। अधिक जानकारी के लिए देखें Bindings ।
इनपुट और आउटपुट बाइंडिंग्स
उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। जाँचें कि कौन-से बाइंडिंग प्रकार मास्क क्षेत्र मापन संस्करण में v1 है।
इनपुट और आउटपुट बाइंडिंग्स
इनपुट
भविष्यवाणियाँ(Union[instance_segmentation_prediction,object_detection_prediction]): क्षेत्र मापने के लिए detection predictions..pixels_per_unit(float): लंबाई की वास्तविक-विश्व इकाई के प्रति पिक्सलों की संख्या (जैसे, pixels per cm)। परिवर्तित क्षेत्रफल area_px / (pixels_per_unit ** 2) के रूप में गणना किया जाता है। डिफ़ॉल्ट 1.0 का अर्थ है कोई रूपांतरण नहीं (area_converted, area_px के बराबर होता है)..
आउटपुट
भविष्यवाणियाँ(Union[object_detection_prediction,instance_segmentation_prediction]): यदिobject_detection_predictionया यदिinstance_segmentation_prediction.
अंतिम अपडेट
क्या यह उपयोगी था?