छवियों का पूर्वप्रसंस्करण करें

मॉडल्स के लिए डेटा तैयार करने के लिए छवि पूर्वप्रसंस्करण चरण।

प्रीप्रोसेसिंग यह सुनिश्चित करता है कि आपका डेटासेट एक मानक प्रारूप में है (जैसे सभी छवियाँ एक ही आकार की हैं)। यह चरण आवश्यक है ताकि आपके डेटासेट में मॉडल ट्रेनिंग से पहले एकरूपता बनी रहे।

प्रीप्रोसेसिंग आपके Train, Valid, और Test सेट की सभी छवियों पर लागू होती है (इसके विपरीत Augmentationsजो केवल Train सेट पर लागू होती हैं)।

Roboflow प्लेटफ़ॉर्म निम्नलिखित प्रीप्रोसेसिंग विकल्प प्रदान करता है:

  • Auto-Orient

  • Resize

  • Grayscale

  • Auto-Adjust Contrast

  • Isolate Objects

  • Static Crop

  • Tile

  • Modify Classes

  • Filter Null

  • Filter by Tag

प्रत्येक विकल्प नीचे वर्णित है।

Auto-Orient

Auto-orient आपकी छवियों से उनकी EXIF डेटा हटा देता है ताकि आप छवियाँ उसी तरह देख सकें जैसे वे डिस्क पर संग्रहीत हैं।

EXIF डेटा किसी दी गई छवि की ओरिएंटेशन निर्धारित करता है। एप्लिकेशन (जैसे Mac पर Preview) इस डेटा का उपयोग छवि को एक विशिष्ट ओरिएंटेशन में दिखाने के लिए करते हैं, भले ही डिस्क पर संग्रहीत ओरिएंटेशन अलग हो। देखें यह फ्रंट पेज Hacker News चर्चा कि कैसे यह चुपचाप आपके ऑब्जेक्ट डिटेक्शन मॉडल्स को खराब कर सकता है।

  • Roboflow अनुशंसा करता है कि इसे डिफ़ॉल्ट रूप से चालू रखें और जांचें कि आपकी छवियाँ inference में आपके मॉडल को कैसे दी जा रही हैं।

  • यदि आप जानना चाहते हैं कि आपको अपनी छवियों को auto-orient करना चाहिए या नहीं, हमारा ब्लॉग देखें.

Resize

Resize आपकी छवियों का आकार बदलता है और, वैकल्पिक रूप से, वांछित आयामों के अनुसार स्केल करता है। एनोटेशन आनुपातिक रूप से समायोजित किए जाते हैं (नीचे “fill” के मामले को छोड़कर)।

वर्तमान में, हम केवल downsizing का समर्थन करते हैं। हम इसके लिए कुछ मार्गदर्शन प्रदान करते हैं कौन सा resize विकल्प आपके उपयोग के मामले के लिए सबसे अच्छा हो सकता है.

  • Stretch to: अपनी छवियों को पसंदीदा पिक्सेल-बाय-पिक्सेल आयाम तक फैलाएँ। एनोटेशन आनुपातिक रूप से स्केल किए जाते हैं। छवियाँ वर्गाकार, विकृत होती हैं, लेकिन कोई स्रोत छवि डेटा नहीं खोता है।

  • Fill (with center crop) in: निर्मित छवि आपके वांछित आउटपुट आयामों की केंद्रित crop होती है। उदाहरण के लिए, यदि स्रोत छवि 2600x2080 है और resize विकल्प 640x640 पर सेट है, तो आउटपुट resize स्रोत छवि का केंद्रीय 640x640 होगा। आस्पेक्ट रेशियो बनाए रखा जाता है, लेकिन स्रोत छवि डेटा खो जाता है।

  • Fit within: स्रोत आयामों को आउटपुट छवि के आयामों के अनुसार स्केल किया जाता है, जबकि स्रोत छवि का आस्पेक्ट रेशियो बनाए रखा जाता है। उदाहरण के लिए, यदि स्रोत छवि 2600x2080 है और resize विकल्प 640x640 पर सेट है, तो लंबा आयाम (2600) 640 पर स्केल किया जाता है और द्वितीयक आयाम (2080) लगभग 512 पिक्सेल पर स्केल किया जाता है। छवि का आस्पेक्ट रेशियो और मूल डेटा बनाए रखा जाता है, लेकिन वे वर्गाकार नहीं होते।

  • Fit (reflect edges) in: स्रोत आयामों को आउटपुट छवि के आयामों के अनुसार स्केल किया जाता है, जबकि स्रोत छवि का आस्पेक्ट रेशियो बनाए रखा जाता है, और कोई भी नया padding स्रोत छवि का प्रतिबिंब होता है। उदाहरण के लिए, यदि स्रोत छवि 2600x2080 है और resize विकल्प 416x416 पर सेट है, तो लंबा आयाम (2600) 416 पर स्केल किया जाता है और द्वितीयक आयाम (2080) लगभग 335.48 पिक्सेल पर स्केल किया जाता है। शेष पिक्सेल क्षेत्र (416-335.48, या 80.52 पिक्सेल) स्रोत छवि के प्रतिबिंबित पिक्सेल होते हैं। विशेष रूप से, Roboflow डिफ़ॉल्ट रूप से एनोटेशन भी प्रतिबिंबित करता है। छवियाँ वर्गाकार, padded होती हैं, और आस्पेक्ट रेशियो व मूल डेटा बनाए रखा जाता है।

  • Fit (black edges) in: स्रोत आयामों को आउटपुट छवि के आयामों के अनुसार स्केल किया जाता है, जबकि स्रोत छवि का आस्पेक्ट रेशियो बनाए रखा जाता है, और कोई भी नया padding काला क्षेत्र होता है। उदाहरण के लिए, यदि स्रोत छवि 2600x2080 है और resize विकल्प 416x416 पर सेट है, तो लंबा आयाम (2600) 416 पर स्केल किया जाता है और द्वितीयक आयाम (2080) लगभग 335.48 पिक्सेल पर स्केल किया जाता है। शेष पिक्सेल क्षेत्र (416-335.48, या 80.52 पिक्सेल) काले पिक्सेल होते हैं। छवियाँ वर्गाकार, काले padding के साथ होती हैं, और आस्पेक्ट रेशियो व मूल डेटा बनाए रखा जाता है।

  • Fit (white edges) in: स्रोत आयामों को आउटपुट छवि के आयामों के अनुसार स्केल किया जाता है, जबकि स्रोत छवि का आस्पेक्ट रेशियो बनाए रखा जाता है, और कोई भी नया padding सफेद क्षेत्र होता है। उदाहरण के लिए, यदि स्रोत छवि 2600x2080 है और resize विकल्प 416x416 पर सेट है, तो लंबा आयाम (2600) 416 पर स्केल किया जाता है और द्वितीयक आयाम (2080) लगभग 335.48 पिक्सेल पर स्केल किया जाता है। शेष पिक्सेल क्षेत्र (416-335.48, या 80.52 पिक्सेल) सफेद पिक्सेल होते हैं। छवियाँ वर्गाकार, सफेद padding के साथ होती हैं, और आस्पेक्ट रेशियो व मूल डेटा बनाए रखा जाता है।

Grayscale

RGB चैनलों वाली छवि को एकल ग्रेस्केल चैनल वाली छवि में बदलता है, जिससे आपकी मेमोरी बच सकती है। प्रत्येक ग्रेस्केल पिक्सेल का मान संबंधित लाल, हरे और नीले पिक्सेल के भारित योग के रूप में गणना किया जाता है: Y = 0.2125 R + 0.7154 G + 0.0721 B।

ये वेट्स उपयोग किए जाते हैं CRT फॉस्फर द्वारा क्योंकि ये लाल, हरे और नीले रंग की मानव धारणा को समान वेट्स की तुलना में बेहतर दर्शाते हैं। (स्रोत: Scikit-Image.)

Auto-Adjust Contrast

कम कंट्रास्ट वाली छवि को बेहतर बनाता है। हमने यह जांचा है कि क्या आप कंट्रास्ट को प्रीप्रोसेसिंग चरण के रूप में उपयोग करना चाहते हैं.

  • Contrast Stretching: छवि को फिर से स्केल किया जाता है ताकि सभी तीव्रताएँ जो 2वें और 98वें प्रतिशताइल के भीतर आती हैं, शामिल हों। और देखें.

  • Histogram Equalization: छवि में "सबसे अधिक बार आने वाले तीव्रता मानों को फैलाता है"। Equalized छवि का वितरण लगभग समान होता है, जहाँ सभी रंगों के पिक्सेल लगभग समान रूप से दर्शाए जाते हैं। और देखें.

  • Adaptive Equalization: Contrast Limited Adaptive Histogram Equalization (CLAHE)। यह स्थानीय कंट्रास्ट बढ़ाने के लिए एक एल्गोरिदम है, जो छवि के विभिन्न टाइल क्षेत्रों पर हिस्टोग्राम का उपयोग करता है। इसलिए स्थानीय विवरणों को उन क्षेत्रों में भी बढ़ाया जा सकता है जो छवि के अधिकांश हिस्से की तुलना में अधिक गहरे या हल्के हैं। (स्रोत: Scikit-Image.)

Advanced Preprocessing Features

Isolate Objects

Isolate Objects ट्रांसफॉर्म प्रत्येक बॉक्स को काटकर अलग-अलग छवि में निकालता है। यह चरण Object Detection डेटासेट्स को Classification डेटासेट्स में बदल देता है।

ऐसे मामलों में जहाँ डेटासेट में कई क्लासेस समान होती हैं, दो मॉडलों का अनुक्रम में उपयोग करना सामान्य है। पहला मॉडल (object detection) ऑब्जेक्ट ढूंढता है और दूसरा मॉडल (classification) यह पहचानता है कि ऑब्जेक्ट क्या है। Isolate Objects ट्रांसफॉर्मेशन दूसरे मॉडल के लिए आवश्यक डेटासेट बनाने में सहायक है।

Static Crop

Static crop फीचर और एक उदाहरण आउटपुट।

Tile

Tiling छोटे ऑब्जेक्ट्स का पता लगाने में मदद कर सकता है (विशेष रूप से हवाई इमेजरी और माइक्रोस्कोपी जैसी स्थितियों में)। डिफ़ॉल्ट सेटिंग 2x2 टाइलिंग है, हालांकि, आप इसे अपनी आवश्यकता अनुसार समायोजित कर सकते हैं। टाइलिंग किया जाता है resizing से पहले प्रीप्रोसेसिंग पाइपलाइन में।

टाइलिंग टूल और आउटपुट का पूर्वावलोकन ("grid" में दर्शाया गया)।

Modify Classes

एक प्रीप्रोसेसिंग टूल जिसका उपयोग नए संस्करण के लिए डेटासेट बनाते समय विशिष्ट क्लासेस को छोड़ने या क्लासेस को फिर से नामांकित (remap) करने के लिए किया जाता है। ये परिवर्तन केवल आपके द्वारा बनाए गए संस्करण पर लागू होते हैं। आपके मूल डेटासेट में कोई परिवर्तन नहीं किया जाएगा।

"Apple leaf" क्लास को छोड़ना।
क्लास "scratches" को "scratch" में रीमैप करना।

Filter Null

Filter Null ट्रांसफॉर्मेशन उपयोगकर्ताओं को डेटासेट में छवियों के एक हिस्से को अनिवार्य रूप से एनोटेट करने की अनुमति देता है। Modify Classes टूल लागू करने के बाद null annotation या "unannotated" के रूप में चिह्नित छवियाँ ही Filter Null का उपयोग करते समय प्रभावित होती हैं।

यह ट्रांसफॉर्मेशन उस स्थिति में उपयोगी है जहाँ डेटासेट का एक बड़ा हिस्सा इच्छित ऑब्जेक्ट्स नहीं रखता है।

Filter Null प्रीप्रोसेसिंग चरण लागू करना।

Missing और Null एनोटेशन के बीच का अंतर

"Missing Annotations" तब होती हैं जब छवियाँ एनोटेट नहीं होती हैं (छवियों को अनएनोटेटेड छोड़ना आपके प्रशिक्षित डेटासेट के प्रदर्शन में समस्याएँ पैदा करेगा, और ट्रेनिंग असफल हो सकती है)। Null एनोटेशन केवल तभी लागू की जानी चाहिए जब कुछ भी नहीं उस छवि में मौजूद हो जिसे आप अपने मॉडल से डिटेक्ट करवाना चाहते हैं।

Filter by Tag

Filter by Tag ट्रांसफॉर्मेशन उपयोगकर्ताओं को यह फ़िल्टर करने की अनुमति देता है कि कौन सी छवियाँ किस संस्करण में शामिल की जानी चाहिए या नहीं, इस आधार पर कि कौन से Tags लागू किए गए हैं। यह ट्रांसफॉर्मेशन नए डेटा उपसमुच्चय पर मॉडल ट्रेनिंग या ट्रेनिंग से अवांछित छवियों को बाहर करने के लिए उपयोगी है।

प्रत्येक Tag के लिए तीन विकल्प उपलब्ध हैं:

  • Require: केवल Required टैग वाली छवियाँ संस्करण में शामिल की जाएँगी।

  • Exclude: Excluded टैग वाली छवियाँ संस्करण में शामिल नहीं की जाएँगी।

  • Allow: Allowed टैग वाली छवियाँ संस्करण में शामिल की जाएँगी, Exclude और Require नियमों के अनुसार।

इस उदाहरण में, परिणामी Version में केवल वे छवियाँ होंगी जिनमें do-not-include टैग नहीं है।

Last updated

Was this helpful?