OCR, या ऑप्टिकल कैरेक्टर रिकग्निशन, एक प्रौद्योगिकी है जिसका उपयोग विभिन्न प्रकार के दस्तावेज़ों, जैसे कि स्कैन किए गए कागज़ी दस्तावेज़, PDF फ़ाइलें या डिजिटल कैमरे द्वारा कैप्चर की गई छवियों, को संपादन योग्य और खोजनेयोग्य डेटा में परिवर्तित करने के लिए किया जाता है।
OCR के पहले चरण में, पाठ दस्तावेज़ की एक छवि स्कैन की जाती है। यह एक फ़ोटो या स्कैन किया गया दस्तावेज़ हो सकत ा है। इस चरण का उद्देश्य यह है कि दस्तावेज़ की एक डिजिटल प्रतिलिपि बनाई जाए, मैन्युअल ट्रांसक्रिप्शन की आवश्यकता के बजाय। इसके अलावा, यह डिजिटाइजेशन प्रक्रिया सामग्री की लंबावधि को बढ़ाने में भी मदद कर सकती है क्योंकि यह नाज़ुक संसाधनों के हैंडलिंग को कम कर सकती है।
एक बार जब दस्तावेज़ को डिजिटलीकृत कर दिया जाता है, तो OCR सॉफ़्टवेयर छवि को पहचान के लिए व्यक्तिगत वर्णों में अलग करता है। इसे सेगमेंटेशन प्रक्रिया कहा जाता है। सेगमेंटेशन दस्तावेज़ को लाइनों, शब्दों और फिर अंतिम रूप में व्यक्तिगत वर्णों में तोड़ता है। यह विभाजन एक जटिल प्रक्रिया होती है क्योंकि इसमें असंख्य कारक शामिल होते हैं - विभिन्न फ़ॉन्ट, विभिन्न आकार के पाठ, और टेक्स्ट के विभिन्न संरेखण, केवल कुछ नाम लिए।
सेगमेंटेशन के बाद, OCR एल्गोरिदम फिर पैटर्न पहचान का उपयोग करके प्रत्येक व्यक्तिगत वर्ण की पहचान करता है। प्रत्येक वर्ण के लिए, एल्गोरिदम इसे वर्ण आकार के डाटाबेस से तुलना करेगा। सबसे करीबी मिलान फिर वर्ण की पहचान के रूप में चयनित होता है। फीचर पहचान में, OCR का एक और उन्नत रूप, एल्गोरिदम न केवल आकार की जांच करता है बल्कि पैटर्न में रेखाओं और वक्रों को भी ध्यान में लेता है।
OCR के अनेक व्यावहारिक अनुप्रयोग हैं - मुद्रित दस्तावेज़ों को डिजिटलीकरण से लेकर, टेक्स्ट-तो-स्पीच सेवाओं को सक्षम करने, डेटा प्रवेश प्रक्रियाओं को स्वचालित करने, से लेकर दृष्टिहीन उपयोगकर्ताओं को पाठ के साथ बेहतर इंटरैक्ट करने में सहायता करने तक। हालांकि, यह ध्यान देने योग्य है कि OCR प्रक्रिया अचूक नहीं होती है और विशेष रूप से निम्न-रिज़ॉल्यूशन दस्तावेजों, जटिल फ़ॉन्ट, या बेढंगा मुद्रित पाठ के साथ उपचार करते समय त्रुटियाँ कर सकती है। इसलिए, OCR सिस्टमों की सटीकता मूल दस्तावेज़ की गुणवत्ता और OCR सॉफ़्टवेयर क ा विशिष्ट विवरण पर अधिकार है।
OCR एक महत्वपूर्ण प्रौद्योगिकी है आधुनिक डेटा निकासी और डिजिटलीकरण प्रचारों में। यह मैन्युअल डेटा प्रवेश की आवश्यकता को कम करके और भौतिक दस्तावेजों को डिजिटल प्रारूप में परिवर्तित करने का एक विश्वसनीय, कुशल तरीका प्रदान करके संसाधनों का काफी समय और बचत करती है।
ऑप्टिकल कैरेक्टर रिकग्निशन (OCR) एक प्रौद्योगिकी है जिसका उपयोग विभिन्न प्रकार के दस्तावेज़ों, जैसे कि स्कैन किए गए कागज के दस्तावेज, PDF फ़ाइलें या डिजिटल कैमरा द्वारा कैप्चर किए गए छवियों, को संपादन योग्य और खोजनीय डाटा में परिवर्तित करने के लिए उपयोग होता है।
OCR एक इनपुट छवि या दस्तावेज को स्कैन करके, इमेज को व्यक्तिगत वर्णों में बांटकर, और पैटर्न पहचान या विशेषता पहचान का उपयोग करके प्रत्येक वर्ण की तुलना करके काम करता है।
OCR का उपयोग विभिन्न क्षेत्रों और अनुप्रयोगों में उपयोग किया जाता है, जैसे कि मुद्रित दस्तावेजों को डिजिटाइज करना, टेक्स्ट-टू-स्पीच सेवाओं को सक्षम करना, डाटा एंट्री प्रक्रियाओं को स्वचालित करना, और दृष्टिहीन उपयोगकर्ताओं को पाठ से बेहतर बातचीत करने में सहायता करना।
हालांकि OCR प्रौद्योगिकी में महान प्रगति की गई है, लेकिन यह अफसोसवार नहीं है। सत्यापन मूल दस्तावेज की गुणवत्ता और OCR सॉफ़्टवेयर की विशिष्टताओं पर निर्भर कर सकता है।
हालाँकि OCR मुद्रित पाठ के लिए मुख्य रूप से डिज़ाइन किया गया है, कुछ उन्नत OCR सिस्टम हस्तलिखित पहचानने में भी सक्षम होते हैं। हालाँकि, आमतौर पर हस्तलिखित पहचाननेवालों की पहचान करने में कम सटीकता होती है क्योंकि व्यक्तिगत लेखन शैलियों में व्यापक भिन्नता होती है।
हाँ, कई OCR सॉफ़्टवेयर सिस्टम एकाधिक भाषाओं को पहचान सकते हैं। हालाँकि, यह महत्वपूर्ण है कि आपके उपयोग में आने वाले सॉफ़्टवेयर द्वारा विशिष्ट भाषा का समर्थन किया जा रहा हो।
OCR ऑप्टिकल कैरेक्टर रिकग्निशन के लिए होता है और यह मुद्रित पाठ को पहचानने के लिए उपयोग होता है, जबकि ICR, या इंटेलिजेंट कैरेक्टर रिकग्निशन, अधिक उन्नत होते हैं और हस्तलिखित पाठ को पहचानने के लिए उपयोग होते हैं।
OCR स्पष्ट, आसानी से पढ़ने वाले फ़ॉन्ट और मानक पाठ आकारों के साथ सबसे अच्छा काम करता है। हालांकि यह विभिन्न फ़ॉन्ट और आकारों के साथ काम कर सकता है, लेकिन असामान्य फ़ॉन्ट्स या बहुत छोटे पाठ आकारों के साथ काम करते समय सटीकता कम होने की प्रवृत्ति होती है।
OCR कम resolution के दस्तावेज़, जटिल fonts, खराब प्रिंट वाले पाठ, हस्तलिखित, और वे दस्तावेज़ जो पाठ के साथ दखल देने वाले पृष्ठभूमियों के साथ संघर्ष कर सकते हैं। साथ ही, जबकि यह कई भाषाओं के साथ काम कर सकता है, यह हर भाषा को पूरी तरह से नहीं कवर कर सकता है।
हाँ, OCR रंगीन पाठ और पृष्ठभूमियों को स्कैन कर सकता है, हालाँकि यह आमतौर पर उच्च-विपरीत रंग संयोजनों, जैसे कि एक सफेद पृष्ठभूमि पर काले पाठ, के साथ अधिक प्रभावी होता है। पाठ और पृष्ठभूमि रंगों में पर्याप्त विपरीतता की कमी होने पर सटीकता कम हो सकती है।
BGRA एक डिजिटल इमेज फ़ाइल फ़ॉर्मेट है जो इमेज डेटा को बिटमैप के रूप में स्टोर करता है। यह स्टैंडर्ड RGBA फ़ॉर्मेट का एक वेरिएशन है जो प्रत्येक पिक्सेल के लिए रेड (R), ग्रीन (G), ब्लू (B) और अल्फा (A) चैनल के रूप में कलर वैल्यू स्टोर करता है। मुख्य अंतर यह है कि BGRA, RGBA की तुलना में रेड और ब्लू चैनल के ऑर्डर को रिवर्स करता है।
BGRA बिटमैप में, प्रत्येक पिक्सेल को डेटा के 4 बाइट्स (32 बिट्स) द्वारा दर्शाया जाता है। पहला बाइट ब्लू (B) वैल्यू स्टोर करता है, दूसरा बाइट ग्रीन (G) वैल्यू स्टोर करता है, तीसरा बाइट रेड (R) वैल्यू स्टोर करता है और चौथा बाइट अल्फा (A) या ट्रांसपेरेंसी वैल्यू स्टोर करता है। यह अधिक सामान्य RGBA ऑर्डर के विपरीत है।
प्रत्येक पिक्सेल का रंग रेड, ग्रीन और ब्लू की अलग-अलग तीव्रता को मिलाकर निर्धारित किया जाता है। प्रत्येक कलर चैनल को 8-बिट अनसाइंड इंटीजर द्वारा दर्शाया जाता है, जिससे 0 से 255 तक के वैल्यू की अनुमति मिलती है। 0 का वैल्यू उस कलर के लिए कोई तीव्रता नहीं दर्शाता है, जबकि 255 पूर्ण तीव्रता दर्शाता है। उदाहरण के लिए, BGRA ऑर्डर में (0, 0, 255, 255) वैल्यू वाला एक पिक्सेल पूरी तरह से अपारदर्शी नीला होगा।
अल्फा चैनल प्रत्येक पिक्सेल की अपारदर्शिता को निर्दिष्ट करता है और ट्रांसपेरेंसी इफ़ेक्ट की अनुमति देता है। यह भी 0 (पूरी तरह से पारदर्शी) से 255 (पूरी तरह से अपारदर्शी) तक की रेंज वाला 8-बिट वैल्यू है। 128 का अल्फा वैल्यू पिक्सेल को 50% पारदर्शी बना देगा।
RGBA पर BGRA फ़ॉर्मेट का एक लाभ बेहतर मेमोरी अ लाइनमेंट और परफॉर्मेंस है। कई CPU को लिटिल-एंडियन बाइट ऑर्डर में डेटा को पढ़ने और लिखने के लिए ऑप्टिमाइज़ किया जाता है। लिटिल-एंडियन में, सबसे कम महत्वपूर्ण बाइट को पहले स्टोर किया जाता है। चूंकि BGRA ब्लू चैनल (जो अक्सर सबसे कम महत्वपूर्ण होता है) को पहले रखता है, यह CPU को लिटिल-एंडियन सिस्टम पर RGBA की तुलना में BGRA डेटा को अधिक कुशलता से पढ़ने और लिखने की अनुमति देता है।
BGRA का उपयोग कुछ ग्राफ़िक्स लाइब्रेरी और फ़्रेमवर्क द्वारा आंतरिक रूप से इमेज बफ़र और टेक्सचर के लिए पसंदीदा पिक्सेल फ़ॉर्मेट के रूप में किया जाता है। हालाँकि, PNG या JPEG जैसे अधिकांश इमेज फ़ाइल फ़ॉर्मेट BGR के बजाय RGB चैनल ऑर्डर के साथ सेव किए जाते हैं। जब किसी इमेज को RGB सोर्स से BGRA बफ़र में लोड किया जाता है, तो रेड और ब्लू चैनल को स्वैप किया जाना चाहिए।
एल्गोरिदमिक रूप से, BGRA और RGBA के बीच कन्वर्ट करना सीधा है। BGRA से RGBA में कन्वर्ट करने के ल िए, प्रत्येक पिक्सेल के लिए रेड और ब्लू बाइट्स को स्वैप किया जाता है जबकि ग्रीन और अल्फा उसी पोजीशन पर रहते हैं। RGBA से BGRA में कन्वर्ट करना रिवर्स में यही प्रक्रिया है।
यहाँ RGBA और BGRA दोनों फ़ॉर्मेट में एक पिक्सेल का उदाहरण दिया गया है: RGBA: (रेड: 128, ग्रीन: 64, ब्लू: 192, अल्फा: 255) BGRA: (ब्लू: 192, ग्रीन: 64, रेड: 128, अल्फा: 255)
BGRA एक लीनियर कलर स्पेस है, जिसका अर्थ है कि तीव्रता मान सीधे प्रकाश की मात्रा के समानुपाती होते हैं। यह sRGB जैसे नॉन-लीनियर कलर स्पेस के विपरीत है जो तीव्रता मानों पर गामा कर्व लागू करते हैं। BGRA डेटा से निपटने के दौरान यह जानना महत्वपूर्ण है कि रंग लीनियर स्पेस में हैं या गामा-करेक्टेड हैं।
BGRA के लिए मुख्य उपयोग का मामला ग्राफ़िक्स प्रोग्रामिंग में है जब GPU API और हार्डवेयर के साथ सीधे इंटरफ़ेस किया जाता है जो BGRA को अपने मूल कलर फ़ॉर्मेट के रूप में उपयोग करते हैं। DirectX, OpenGL और Vulkan जैसी लाइब्रेरी अक्सर PC हार्डवेयर पर बेहतर परफॉर्मेंस के लिए मेमोरी बफ़र और टेक्सचर में BGRA डेटा के साथ काम करती हैं।
संक्षेप में, BGRA मेमोरी में प्रति पिक्सेल 32-बिट इमेज डेटा स्टोर करने के लिए RGBA का एक विकल्प है। मुख्य अंतर यह है कि रेड और ब्लू चैनल रिवर्स होते हैं। RGBA की तुलना में BGRA लिटिल-एंडियन CPU आर्किटेक्चर पर बेहतर मेमोरी एक्सेस पैटर्न और परफॉर्मेंस प्रदान कर सकता है। अधिकांश सामान्य इमेज फ़ाइल फ़ॉर्मेट RGB ऑर्डर का उपयोग करते हैं, इसलिए BGRA डेटा को लोड और सेव करते समय कन्वर्ज़न आवश्यक है।