मास्क एज स्नैप
edges को पहचानी गई सीमाओं पर स्नैप करके instance segmentation masks को परिष्कृत करें।
पूर्वानुमानित सीमा के आसपास के बैंड के भीतर कंटूर बिंदुओं को सोबेल किनारों पर स्नैप करके इंस्टेंस सेगमेंटेशन मास्क को परिष्कृत करें। यह ब्लॉक पहचानी गई छवि विशेषताओं के साथ मास्क किनारों को संरेखित करके सेगमेंटेशन सटीकता में सुधार करता है.
यह ब्लॉक कैसे काम करता है
यह ब्लॉक एक परिष्कृत बहु-चरणीय पाइपलाइन के माध्यम से सेगमेंटेशन मास्क को परिष्कृत करता है:
एज डिटेक्शन: किनारों का पता लगाने के लिए इनपुट छवि से सोबेल ग्रेडिएंट परिमाण की गणना करता है
अनुकूली थ्रेशोल्डिंग: महत्वपूर्ण किनारों की पहचान करने के लिए प्रति-पिक्सेल अनुकूली थ्रेशोल्डिंग (स्थानीय माध्य + सिग्मा * स्थानीय मानक विचलन) का उपयोग करता है
आकृतिक प्रसंस्करण: किनारा खंडों में छोटे अंतरालों को जोड़ने के लिए क्लोज़िंग (डाइलेशन + इरोजन) लागू करता है
थिनिंग: कनेक्टिविटी बनाए रखते हुए किनारे की चौड़ाई को 1-2 पिक्सेल तक कम करने के लिए झांग-सुएन एकल-आवृत्ति थिनिंग लागू करता है
सीमा बैंड निर्माण: प्रत्येक पूर्वानुमानित मास्क के कंटूर के चारों ओर एक खोज बैंड बनाता है
क्षेत्र फ़िल्टरिंग: न्यूनतम क्षेत्र सीमा से नीचे के छोटे किनारा घटकों को हटाता है
कंटूर स्नैपिंग: प्रत्येक मूल मास्क कंटूर बिंदु के लिए, सहनशीलता के भीतर निकटतम सबसे मज़बूत किनारा ढूँढता है और उसे उसी पर स्नैप करता है
सामान्य उपयोग के मामले
चिकित्सीय छवि विश्लेषण: शारीरिक सीमाओं के साथ संरेखित करने के लिए अंग/ट्यूमर सेगमेंटेशन मास्क को परिष्कृत करें
औद्योगिक गुणवत्ता नियंत्रण: सटीक आयाम मापन के लिए भाग की सीमा पहचान में सुधार करें
स्वायत्त वाहन: बेहतर पथ नियोजन के लिए सड़क/लेन सेगमेंटेशन सीमाओं को परिष्कृत करें
कृषि निगरानी: उपज अनुमान के लिए फसल सीमा पहचान में सुधार करें
माइक्रोस्कोपी विश्लेषण: रूपात्मक विश्लेषण के लिए कोशिका/नाभिक सेगमेंटेशन को परिष्कृत करें
दस्तावेज़ प्रसंस्करण: OCR के लिए पाठ क्षेत्र सीमा पहचान में सुधार करें
इनपुट पैरामीटर
छवि : इनपुट छवि (रंगीन या ग्रेस्केल)
एकल-चैनल, 3-चैनल (BGR), या 4-चैनल (BGRA) हो सकता है
यदि आवश्यक हो, तो अपस्ट्रीम पर ब्लर, कंट्रास्ट वृद्धि आदि का पूर्व-प्रसंस्करण लागू किया जाना चाहिए
सेगमेंटेशन : प्रारंभिक इंस्टेंस सेगमेंटेशन पूर्वानुमान
स्रोत: ऑब्जेक्ट डिटेक्शन या इंस्टेंस सेगमेंटेशन मॉडल से
भरा हुआ
मास्कफ़ील्ड; यदि खाली हो, तो अपरिवर्तित रूप से पास किया जाता है
pixel_tolerance : किनारा स्नैपिंग के लिए अधिकतम लम्बवत दूरी (पिक्सेल)
सीमा: आमतौर पर 5-50
5-15: न्यूनतम ऑफ़सेट के साथ सटीक पूर्वानुमान
20-50: अधिक छूट की आवश्यकता वाले मोटे पूर्वानुमान
sigma : अनुकूली सोबेल थ्रेशोल्ड के लिए कठोरता गुणक
सीमा: आमतौर पर 0.1-2.0
0.1-0.5: उदार, कमजोर किनारों को बनाए रखता है, कम-कंट्रास्ट सीमाओं के लिए अच्छा
1.0-2.0: कठोर, केवल सबसे मज़बूत किनारे बचते हैं, उच्च-कंट्रास्ट छवियों के लिए अच्छा
min_contour_area : किनारा घटकों के लिए न्यूनतम घिरे-बहुभुज क्षेत्र
सीमा: आमतौर पर 10-1000
छोटा (10-50): खंडित किनारों को बनाए रखता है
बड़ा (200-1000): आक्रामक शोर अस्वीकृति
dilation_iterations : आकृतिक क्लोज़िंग आवृत्तियों की संख्या
सीमा: आमतौर पर 0-10
0: कोई क्लोज़िंग नहीं, केवल थ्रेशोल्ड किए गए किनारे
1-2: महीन दरारों को जोड़ता है
3-5: दिखाई देने वाली डैशों को जोड़ता है
10+: आक्रामक, असंबंधित किनारों को मिला सकता है
boundary_band_width : मास्क कंटूर के चारों ओर खोज बैंड की आधी-चौड़ाई (डिफ़ॉल्ट: 15)
पूर्वानुमानित और वास्तविक सीमा के बीच अधिकतम दूरी निर्धारित करता है जिसे सुधारा जा सकता है
adaptive_window_size : स्थानीय-सांख्यिकी विंडो की भुजा लंबाई (डिफ़ॉल्ट: 41)
छवि के छोटे आयाम का लगभग 5-10% होना चाहिए
छोटा (15-25): सूक्ष्म स्थानीय कंट्रास्ट संवेदनशीलता, शोर पकड़ सकता है
बड़ा (81-121): चिकना थ्रेशोल्ड क्षेत्र, वैश्विक थ्रेशोल्डिंग के अधिक निकट
आउटपुट्स
refined_segmentation : स्नैप किए गए मास्क कंटूर के साथ समान पूर्वानुमान edges : जीवित रहने वाले सभी किनारा पिक्सेलों के संघ वाला एकल डिटेक्शन (डिबग/विज़ुअलाइज़ेशन)
पूर्व-प्रसंस्करण
पूर्व-प्रसंस्करण आमतौर पर सफलता के लिए महत्वपूर्ण होता है। यह ब्लॉक कोई पूर्व-प्रसंस्करण नहीं करता - आप जो इनपुट देते हैं, वही Sobel देखता है। चुनौतीपूर्ण छवियों के लिए, अपस्ट्रीम में Roboflow image-processing blocks को श्रृंखला में जोड़ें:
गॉसियन ब्लर दानेदार या शोरयुक्त सतहों (वेल्ड, मशीन किए गए धातु, जैविक ऊतक) के लिए, प्रति-पिक्सेल शोर को दबाने हेतु किनारा पहचान से पहले ब्लर करें। 5x5 कर्नेल के साथ सिग्मा 1.0 एक उचित डिफ़ॉल्ट है; बहुत शोरयुक्त छवियों के लिए 7x7 या 9x9 तक बढ़ाएँ। बहुत अधिक ब्लर न करें - तेज़ ब्लर कोनों को गोल कर देता है और वास्तविक सीमाओं को मुलायम बना देता है, जिससे सीमा स्थितियाँ अंदर की ओर पक्षपाती हो जाती हैं।
बाइलेटरल ब्लर जब छवि में शोर और महत्वपूर्ण तीखे किनारे दोनों हों (जैसे साफ़ पृष्ठभूमि पर बनावटदार कपड़ा), तब गॉसियन से बेहतर। धीमा है, लेकिन समतल क्षेत्रों को डिनॉइज़ करते हुए किनारों को बनाए रखता है.
कॉन्ट्रास्ट संवर्धन जब सीमा कंट्रास्ट विश्वसनीय रूप से थ्रेशोल्ड करने के लिए वास्तव में बहुत कम हो, तब इसका उपयोग करें। कंट्रास्ट एन्हांसमेंट ब्लॉक हिस्टोग्राम को सामान्यीकृत करके पूर्ण रेंज का उपयोग करता है, आक्रामक विधियों की शोर वृद्धि के बिना किनारा पहचान संवेदनशीलता में सुधार करता है। शेष शोर को दबाने के लिए इसके बाद ब्लर करें। पहले से ही उच्च-कंट्रास्ट छवियों पर इसका उपयोग न करें.
आकृतिक ओपनिंग फिर क्लोज़िंग ओपनिंग (इरोजन फिर डाइलेशन) किनारा पहचान से पहले इनपुट से छोटे चमकीले धब्बों और पतले उभारों को हटाती है - तब उपयोगी जब सतह पर सूक्ष्म मलबा या हॉट पिक्सेल हों जो अन्यथा झूठे किनारे उत्पन्न करते। क्लोज़िंग (डाइलेशन फिर इरोजन) चमकीले क्षेत्रों में छोटे गहरे छेद/अंतराल भरती है; पूर्व-प्रसंस्करण के रूप में यह कम ही आवश्यक होती है, क्योंकि किनारा मानचित्र पर अंतराल भरना वही है जो dilation_iterations इस पूर्व-प्रसंस्करण के लिए "Opening then Closing" ऑपरेशन के साथ Morphological Transformation v2 ब्लॉक का उपयोग करें।
क्रम महत्वपूर्ण है: पहले ब्लर करें, फिर आवश्यकता होने पर कंट्रास्ट समायोजन करें। उलटा करने पर कंट्रास्ट समायोजन शोर को ब्लर द्वारा दबाए जाने से पहले ही बढ़ा देता है।
प्रकार पहचानकर्ता
स्टेप में निम्नलिखित पहचानकर्ता का उपयोग करें "type" फ़ील्ड: roboflow_core/mask_edge_snap@v1 अपने वर्कफ़्लो में ब्लॉक को एक स्टेप के रूप में जोड़ने के लिए।
गुण
नाम
प्रकार
विवरण
संदर्भ
name
str
इस स्टेप के लिए एक विशिष्ट पहचानकर्ता दर्ज करें..
❌
pixel_tolerance
int
प्रत्येक कंटूर बिंदु से स्नैपिंग के दौरान उम्मीदवार किनारों तक अधिकतम लम्बवत दूरी (पिक्सेल)। सामान्य: सटीक पूर्वानुमानों के लिए 5-15, मोटे पूर्वानुमानों के लिए 20-50। बहुत छोटा: सीमा के बाहर के वास्तविक किनारे छूट जाते हैं। बहुत बड़ा: स्नैप असंबंधित किनारों की ओर भटक सकता है..
✅
sigma
float
अनुकूली सोबेल थ्रेशोल्ड (local_mean + sigma * local_std) के लिए कठोरता गुणक। कम (0.1-0.5): उदार, कम-कंट्रास्ट के लिए अच्छा। अधिक (1.0-2.0): कठोर, केवल सबसे मज़बूत किनारे। अन्य पैरामीटरों के बाद इसे ट्यून करें..
✅
min_contour_area
float
रखने के लिए किनारा घटकों का न्यूनतम घिरे-बहुभुज क्षेत्र। छोटा (10-50): खंडित किनारों को बनाए रखता है। बड़ा (200-1000): आक्रामक शोर अस्वीकृति। लगभग dilation_iterations के साथ स्केल होता है..
✅
dilation_iterations
int
थ्रेशोल्ड किए गए किनारा मानचित्र में अंतरालों को जोड़ने के लिए आकृतिक क्लोज़िंग आवृत्तियाँ। प्रत्येक आवृत्ति ~2px के अंतराल जोड़ती है। 0: कोई क्लोज़िंग नहीं। 1-2: महीन दरारें। 3-5: दिखाई देने वाली डैशें। 10+: आक्रामक विलय..
✅
boundary_band_width
int
सेगमेंटेशन कंटूर के चारों ओर खोज बैंड की आधी-चौड़ाई (पिक्सेल)। पूर्वानुमानित सीमा और वास्तविक सीमा के बीच अधिकतम दूरी निर्धारित करती है जिसे सुधारा जा सकता है। सामान्यतः यह pixel_tolerance से अधिक या बराबर होना चाहिए..
✅
adaptive_window_size
int
अनुकूली थ्रेशोल्ड के लिए स्थानीय-सांख्यिकी विंडो की भुजा लंबाई। छोटा (15-25): सूक्ष्म स्थानीय संवेदनशीलता, शोर पकड़ सकता है। डिफ़ॉल्ट 41: संतुलित। बड़ा (81-121): चिकना क्षेत्र, वैश्विक थ्रेशोल्डिंग के अधिक निकट। छोटे छवि आयाम का लगभग 5-10% होना चाहिए..
✅
यह संदर्भ स्तंभ यह इंगित करता है कि संपत्ति को वर्कफ़्लो रनटाइम में उपलब्ध गतिशील मानों के साथ पैरामीटराइज़ किया जा सकता है वर्कफ़्लो रनटाइम। देखें बाइंडिंग्स अधिक जानकारी के लिए।
इनपुट और आउटपुट बाइंडिंग्स
उपलब्ध कनेक्शन उसके बाइंडिंग प्रकारों पर निर्भर करते हैं। देखें कि कौन-से बाइंडिंग प्रकार मास्क एज स्नैप संस्करण v1 है।
इनपुट और आउटपुट बाइंडिंग्स
इनपुट
छवि(छवि): किनारा पहचान और स्नैपिंग के लिए इनपुट छवि (रंगीन या ग्रेस्केल)। यह ग्रेस्केल, सिंगल-चैनल, BGR, या BGRA हो सकती है। अंदरूनी रूप से कोई पूर्व-प्रसंस्करण लागू नहीं किया जाता; आवश्यकता होने पर ब्लर या कंट्रास्ट वृद्धि के लिए अपस्ट्रीम ब्लॉकों का उपयोग करें..सेगमेंटेशन(instance_segmentation_prediction): मास्क फ़ील्ड भरी हुई होने के साथ इंस्टेंस सेगमेंटेशन पूर्वानुमान। प्रत्येक मास्क कंटूर को पहचाने गए किनारों पर स्नैप किया जाएगा। यदि खाली हो, तो सेगमेंटेशन अपरिवर्तित रूप से पास किया जाता है। "$steps.segmentation_model.predictions" जैसी संदर्भ स्ट्रिंग या supervision.Detections ऑब्जेक्ट हो सकता है..pixel_tolerance(पूर्णांकप्रत्येक कंटूर बिंदु से स्नैपिंग के दौरान उम्मीदवार किनारों तक अधिकतम लम्बवत दूरी (पिक्सेल)। सामान्य: सटीक पूर्वानुमानों के लिए 5-15, मोटे पूर्वानुमानों के लिए 20-50। बहुत छोटा: सीमा के बाहर के वास्तविक किनारे छूट जाते हैं। बहुत बड़ा: स्नैप असंबंधित किनारों की ओर भटक सकता है..sigma(floatअनुकूली सोबेल थ्रेशोल्ड (local_mean + sigma * local_std) के लिए कठोरता गुणक। कम (0.1-0.5): उदार, कम-कंट्रास्ट के लिए अच्छा। अधिक (1.0-2.0): कठोर, केवल सबसे मज़बूत किनारे। अन्य पैरामीटरों के बाद इसे ट्यून करें..min_contour_area(floatरखने के लिए किनारा घटकों का न्यूनतम घिरे-बहुभुज क्षेत्र। छोटा (10-50): खंडित किनारों को बनाए रखता है। बड़ा (200-1000): आक्रामक शोर अस्वीकृति। लगभग dilation_iterations के साथ स्केल होता है..dilation_iterations(पूर्णांकथ्रेशोल्ड किए गए किनारा मानचित्र में अंतरालों को जोड़ने के लिए आकृतिक क्लोज़िंग आवृत्तियाँ। प्रत्येक आवृत्ति ~2px के अंतराल जोड़ती है। 0: कोई क्लोज़िंग नहीं। 1-2: महीन दरारें। 3-5: दिखाई देने वाली डैशें। 10+: आक्रामक विलय..boundary_band_width(पूर्णांकसेगमेंटेशन कंटूर के चारों ओर खोज बैंड की आधी-चौड़ाई (पिक्सेल)। पूर्वानुमानित सीमा और वास्तविक सीमा के बीच अधिकतम दूरी निर्धारित करती है जिसे सुधारा जा सकता है। सामान्यतः यह pixel_tolerance से अधिक या बराबर होना चाहिए..adaptive_window_size(पूर्णांकअनुकूली थ्रेशोल्ड के लिए स्थानीय-सांख्यिकी विंडो की भुजा लंबाई। छोटा (15-25): सूक्ष्म स्थानीय संवेदनशीलता, शोर पकड़ सकता है। डिफ़ॉल्ट 41: संतुलित। बड़ा (81-121): चिकना क्षेत्र, वैश्विक थ्रेशोल्डिंग के अधिक निकट। छोटे छवि आयाम का लगभग 5-10% होना चाहिए..
आउटपुट
refined_segmentation(instance_segmentation_prediction): sv.Detections(...) object के रूप में पहचाने गए bounding boxes और segmentation masks के साथ prediction।edges(instance_segmentation_prediction): sv.Detections(...) object के रूप में पहचाने गए bounding boxes और segmentation masks के साथ prediction।
अंतिम अपडेट
क्या यह उपयोगी था?