> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/datasets/hi/versions/dataset-versions/image-preprocessing.md).

# इमेजें प्रीप्रोसेस करें

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

पूर्व-प्रसंस्करण आपके Train, Valid और Test सेट की सभी छवियों पर लागू होता है (इसके विपरीत [ऑगमेंटेशन](/datasets/hi/versions/dataset-versions/image-augmentation.md)जो केवल Train सेट पर लागू होते हैं)।

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

* ऑटो-ओरिएंट
* आकार बदलें
* ग्रेस्केल
* ऑटो-एडजस्ट कॉन्ट्रास्ट
* ऑब्जेक्ट्स को अलग करें
* स्टैटिक क्रॉप
* टाइल
* क्लासेस संशोधित करें
* नल फ़िल्टर करें
* टैग के अनुसार फ़िल्टर करें

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

### ऑटो-ओरिएंट

ऑटो-ओरिएंट आपकी छवियों से उनका EXIF डेटा हटा देता है, ताकि आप छवियों को उसी तरह प्रदर्शित होते देखें जैसे वे डिस्क पर संग्रहीत हैं।

EXIF डेटा किसी दी गई छवि की दिशा निर्धारित करता है। एप्लिकेशन (जैसे Mac पर Preview) इस डेटा का उपयोग छवि को एक विशिष्ट दिशा में प्रदर्शित करने के लिए करते हैं, भले ही डिस्क पर संग्रहीत होने की दिशा अलग हो।

* Roboflow डिफ़ॉल्ट रूप से इसे चालू रखने की सलाह देता है और यह जाँचने की कि inference में आपकी छवियाँ आपके मॉडल को कैसे दी जा रही हैं।
* यदि आप यह और जानना चाहते हैं कि आपको अपनी छवियों को ऑटो-ओरिएंट करना चाहिए या नहीं, [हमारा ब्लॉग देखें](https://blog.roboflow.com/exif-auto-orientation/).

### आकार बदलें

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

वर्तमान में, हम केवल आकार घटाने का समर्थन करते हैं। हम कुछ मार्गदर्शन प्रदान करते हैं [कि आपके उपयोग-केस के लिए कौन-सा resize विकल्प सबसे अच्छा हो सकता है](https://blog.roboflow.com/you-might-be-resizing-your-images-incorrectly/).

* **Stretch to:** अपनी छवियों को पसंदीदा पिक्सेल-से-पिक्सेल आयाम तक खींचें। एनोटेशन आनुपातिक रूप से स्केल किए जाते हैं। छवियाँ वर्गाकार होती हैं, विकृत हो जाती हैं, लेकिन कोई स्रोत छवि डेटा नहीं खोता।
* **Fill (center crop के साथ) में:** उत्पन्न छवि आपके इच्छित आउटपुट आयामों की केंद्रित क्रॉप होती है। उदाहरण के लिए, यदि स्रोत छवि 2600x2080 है और resize विकल्प 640x640 पर सेट है, तो आउटपुट resize स्रोत छवि का केंद्रीय 640x640 होगा। आस्पेक्ट रेशियो बनाए रखा जाता है, लेकिन स्रोत छवि डेटा खो जाता है।
* **Fit within:** स्रोत आयामों को, स्रोत छवि के आस्पेक्ट रेशियो को बनाए रखते हुए, आउटपुट छवि के आयामों के अनुसार स्केल किया जाता है। उदाहरण के लिए, यदि स्रोत छवि 2600x2080 है और resize विकल्प 640x640 पर सेट है, तो लंबा आयाम (2600) 640 तक स्केल किया जाता है और दूसरा आयाम (2080) लगभग 512 पिक्सेल तक स्केल किया जाता है। छवि के आस्पेक्ट रेशियो और मूल डेटा बनाए रहते हैं, लेकिन वे वर्गाकार नहीं होते।
* **Fit (किनारों को प्रतिबिंबित करके) में:** स्रोत आयामों को, स्रोत छवि के आस्पेक्ट रेशियो को बनाए रखते हुए, आउटपुट छवि के आयामों के अनुसार स्केल किया जाता है, और जो भी नया padding बनाया जाता है वह स्रोत छवि का प्रतिबिंब होता है। उदाहरण के लिए, यदि स्रोत छवि 2600x2080 है और resize विकल्प 416x416 पर सेट है, तो लंबा आयाम (2600) 416 तक स्केल किया जाता है और दूसरा आयाम (2080) लगभग 335.48 पिक्सेल तक स्केल किया जाता है। शेष पिक्सेल क्षेत्र (416-335.48, या 80.52 पिक्सेल) स्रोत छवि के प्रतिबिंबित पिक्सेल होते हैं। उल्लेखनीय है कि Roboflow डिफ़ॉल्ट रूप से एनोटेशन को भी प्रतिबिंबित करता है। छवियाँ वर्गाकार होती हैं, padding के साथ, और आस्पेक्ट रेशियो तथा मूल डेटा बनाए रहते हैं।
* **Fit (काले किनारों के साथ) में:** स्रोत आयामों को, स्रोत छवि के आस्पेक्ट रेशियो को बनाए रखते हुए, आउटपुट छवि के आयामों के अनुसार स्केल किया जाता है, और जो भी नया padding बनाया जाता है वह काला क्षेत्र होता है। उदाहरण के लिए, यदि स्रोत छवि 2600x2080 है और resize विकल्प 416x416 पर सेट है, तो लंबा आयाम (2600) 416 तक स्केल किया जाता है और दूसरा आयाम (2080) लगभग 335.48 पिक्सेल तक स्केल किया जाता है। शेष पिक्सेल क्षेत्र (416-335.48, या 80.52 पिक्सेल) काले पिक्सेल होते हैं। छवियाँ वर्गाकार होती हैं, काले padding के साथ, और आस्पेक्ट रेशियो तथा मूल डेटा बनाए रहते हैं।
* **Fit (सफेद किनारों के साथ) में:** स्रोत आयामों को, स्रोत छवि के आस्पेक्ट रेशियो को बनाए रखते हुए, आउटपुट छवि के आयामों के अनुसार स्केल किया जाता है, और जो भी नया padding बनाया जाता है वह सफेद क्षेत्र होता है। उदाहरण के लिए, यदि स्रोत छवि 2600x2080 है और resize विकल्प 416x416 पर सेट है, तो लंबा आयाम (2600) 416 तक स्केल किया जाता है और दूसरा आयाम (2080) लगभग 335.48 पिक्सेल तक स्केल किया जाता है। शेष पिक्सेल क्षेत्र (416-335.48, या 80.52 पिक्सेल) सफेद पिक्सेल होते हैं। छवियाँ वर्गाकार होती हैं, सफेद padding के साथ, और आस्पेक्ट रेशियो तथा मूल डेटा बनाए रहते हैं।

### ग्रेस्केल

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

इन भारों का उपयोग CRT फॉस्फ़र द्वारा किया जाता है क्योंकि वे समान भारों की तुलना में लाल, हरा और नीला के प्रति मानव धारणा को बेहतर दर्शाते हैं। (के माध्यम से [Scikit-Image](https://scikit-image.org/docs/dev/auto_examples/color_exposure/plot_rgb_to_gray.html).)

### ऑटो-एडजस्ट कॉन्ट्रास्ट

कम कॉन्ट्रास्ट वाली छवि को बेहतर बनाता है। हमने यह जाँचा है [कि आप कॉन्ट्रास्ट को एक पूर्व-प्रसंस्करण चरण के रूप में उपयोग करना चाहते हैं या नहीं](https://blog.roboflow.com/when-to-use-contrast-as-a-preprocessing-step/).

* **कॉन्ट्रास्ट स्ट्रेचिंग**: छवि को इस तरह पुनः-स्केल किया जाता है कि उसमें 2वें और 98वें परसेंटाइल के भीतर आने वाली सभी तीव्रताएँ शामिल हों। [और देखें](http://homepages.inf.ed.ac.uk/rbf/HIPR2/stretch.htm).
* **हिस्टोग्राम इक्वलाइज़ेशन**: छवि में "सबसे अधिक बार आने वाले तीव्रता मानों को फैलाता" है। इक्वलाइज़ की गई छवि का वितरण लगभग समान होता है, जहाँ पिक्सेल के सभी रंग लगभग समान रूप से प्रतिनिधित्व किए जाते हैं। [और देखें](https://en.wikipedia.org/wiki/Histogram_equalization).
* **एडैप्टिव इक्वलाइज़ेशन**: कॉन्ट्रास्ट लिमिटेड एडैप्टिव हिस्टोग्राम इक्वलाइज़ेशन (CLAHE)। स्थानीय कॉन्ट्रास्ट संवर्धन के लिए एक एल्गोरिदम, जो छवि के विभिन्न टाइल क्षेत्रों पर गणना किए गए हिस्टोग्राम का उपयोग करता है। इसलिए स्थानीय विवरण उन क्षेत्रों में भी बेहतर किए जा सकते हैं जो छवि के अधिकांश भाग की तुलना में अधिक गहरे या अधिक उजले हैं। (के माध्यम से [Scikit-Image](https://scikit-image.org/docs/dev/api/skimage.exposure.html#skimage.exposure.equalize_adapthist).)

## उन्नत पूर्व-प्रसंस्करण सुविधाएँ

### ऑब्जेक्ट्स को अलग करें

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

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

### स्टैटिक क्रॉप

Static Crop आपके डेटासेट की प्रत्येक छवि पर एक स्थिर, प्रतिशत-आधारित crop क्षेत्र लागू करता है। आप न्यूनतम और अधिकतम चौड़ाई तथा ऊँचाई प्रतिशतों का उपयोग करके क्षेत्र को परिभाषित करते हैं, और Roboflow प्रत्येक छवि को उसी सापेक्ष क्षेत्र में crop करता है। इससे आप रुचि के एक संगत क्षेत्र पर ज़ूम कर सकते हैं, प्रशिक्षण से पहले अप्रासंगिक बॉर्डर या बैकग्राउंड हटाकर, ताकि आपका मॉडल फ्रेम के महत्वपूर्ण हिस्से पर ध्यान केंद्रित करे।

![स्टैटिक crop सुविधा, और एक उदाहरण आउटपुट।](/files/01f091f96da80677336eb210214a646348fa7213)

### टाइल

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

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

तीन tiling मोड उपलब्ध हैं।

<table data-search="false"><thead><tr><th>मोड</th><th>यह क्या करता है</th><th>सेटिंग्स</th></tr></thead><tbody><tr><td>ग्रिड</td><td>प्रत्येक छवि को समान पंक्तियों और स्तंभों में विभाजित करता है। टाइल का आकार छवि के आकार के साथ बदलता है।</td><td>पंक्तियाँ, स्तंभ</td></tr><tr><td>नियत आकार</td><td>हर टाइल को आपके द्वारा सेट किए गए सटीक पिक्सेल आकार पर काटता है, इसलिए कोई भी टाइल resize या विकृत नहीं होती। इसे अपने मॉडल के इनपुट आकार पर सेट करें (जैसे: 640 x 640)।</td><td>चौड़ाई, ऊँचाई, ओवरलैप, padding रंग</td></tr><tr><td>नियत आस्पेक्ट रेशियो</td><td>ऐसी टाइलें काटता है जो आपके द्वारा सेट किए गए चौड़ाई-से-ऊँचाई अनुपात को बनाए रखती हैं। प्रत्येक टाइल छवि की पूरी चौड़ाई या पूरी ऊँचाई तक फैली होती है।</td><td>आस्पेक्ट रेशियो, विस्तार, ओवरलैप, padding रंग</td></tr></tbody></table>

Fixed Size और Fixed Aspect Ratio में दो अतिरिक्त सेटिंग्स होती हैं। Overlap यह है कि प्रत्येक टाइल का कितना भाग अगली टाइल के साथ साझा होता है, प्रतिशत में। जब ऑब्जेक्ट टाइल की सीमाओं पर हों, तब इसका उपयोग करें। Padding रंग (काला या सफेद) छवि के दाएँ और नीचे किनारे पर बची हुई जगह भरता है, क्योंकि हर टाइल पूर्ण आकार में निकलती है।

टाइलें प्रत्येक पक्ष पर कम से कम 224 पिक्सेल की होनी चाहिए। Fixed Aspect Ratio मोड में, बहुत छोटी छवियाँ जो उस आकार की टाइल नहीं बना सकतीं, उन्हें पूरी तरह रखा जाता है।

आप Fixed Size या Fixed Aspect Ratio को Isolate Objects या Dynamic Crop के साथ संयोजित नहीं कर सकते। वे चरण प्रत्येक छवि को अलग से crop करते हैं, इसलिए निश्चित आकार की टाइल अब छवि से मेल नहीं खाती। इसके बजाय Grid का उपयोग करें।

Roboflow Fixed Size और Fixed Aspect Ratio के लिए संस्करण आकार का अनुमान नहीं लगाता, क्योंकि टाइलों की संख्या प्रत्येक छवि के आकार पर निर्भर करती है।

{% hint style="info" %}
Fixed Size और Fixed Aspect Ratio चयनित वर्कस्पेस के लिए ऐप में उपलब्ध हैं। [इन्हें चालू करने के लिए बिक्री टीम से संपर्क करें। API किसी भी वर्कस्पेस के लिए तीनों मोड स्वीकार करता है।](https://roboflow.com/sales) उन्हें चालू करने के लिए। API किसी भी वर्कस्पेस के लिए तीनों मोड स्वीकार करता है।
{% endhint %}

### क्लासेस संशोधित करें

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

!["Apple leaf" क्लास को छोड़ना।](/files/ba1ad1fb9f306f7941cfb09c74e3d10ac5713946)

!["scratches" क्लास को "scratch" में पुनःमैप करना।](/files/70458381c0c635696e6e3ba292f048efa45c319e)

### नल फ़िल्टर करें

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

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

![Filter Null पूर्व-प्रसंस्करण चरण लागू करना।](/files/7faa625f96bc036040345aebcf3cf0c705af7285)

{% hint style="warning" %}
इस टूल का उपयोग करने से पहले सुनिश्चित करें कि आपने अपने डेटासेट की सभी छवियों को सही ढंग से एनोटेट किया है, उपयुक्त छवियों को null annotation के रूप में निर्दिष्ट किया है, और/या किसी भी अनावश्यक क्लास को हटा दिया है।
{% endhint %}

{% hint style="info" %}
[गायब और Null एनोटेशन के बीच अंतर](https://blog.roboflow.com/missing-and-null-image-annotations/)

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

### टैग के अनुसार फ़िल्टर करें

Filter by Tag ट्रांसफ़ॉर्मेशन उपयोगकर्ताओं को यह फ़िल्टर करने की अनुमति देता है कि किसी संस्करण में कौन-सी छवियाँ शामिल की जाएँ या न की जाएँ, इस आधार पर कि कौन-से [टैग](/datasets/hi/manage/manage-datasets/add-tags-to-images.md) लागू किए गए हैं। यह ट्रांसफ़ॉर्मेशन नए डेटा उपसमूह पर मॉडल को प्रशिक्षित करने या प्रशिक्षण से अवांछित छवियों को बाहर करने में उपयोगी है।

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

* **आवश्यक करें:** केवल Required टैग वाली छवियाँ ही संस्करण में शामिल की जाएँगी।
* **बाहर करें**: Excluded टैग वाली छवियाँ संस्करण में शामिल नहीं की जाएँगी।
* **अनुमति दें:** Allowed टैग वाली छवियाँ, Exclude और Require नियमों के अधीन, संस्करण में शामिल की जाएँगी।

<figure><img src="/files/fc37f00136f30a41a9078f5a0e0c35a5aa43f7b7" alt=""><figcaption><p>इस उदाहरण में, परिणामी Version में केवल वे छवियाँ होंगी जिनमें <code>do-not-include</code> टैग नहीं है।</p></figcaption></figure>
