10 January, 2013

हिन्दी ओसीआर : टेसरैक्ट और जी_इमेज_रीडर की जोड़ी द्वारा

आप सभी को पता है कि टेसरैक्ट एक उत्कृष्ट मुक्तस्रोत ओसीआर है। किन्तु इसमें ग्राफिकल-यूजर-इण्टरफेस नहीं है। किन्तु इससे इसकी उपयोगिता कम नहीं हो जाती। इसके लिए अलग से अनेकों फ्रॉण्ट-एन्ड जीयूआई हैं, जैसे जी_इमेज_रीडर  (gimagereader) तथा VietOCR . मैने जी_इमेज_रीडर को फ्राण्ट-एण्ड के रूप में बहुत उपयोगी और सुविधाजनक पाया है।

जी-इमेज-रीडर की कुछ अच्छाइयाँ:

१) इसमें पीडीएफ, कई प्रकार के इमेज इम्पोर्ट करके  ओसीआर कर सकते हैं।

२) इमेज (या पीडीएफ) का कोई चुना हुआ  भाग, एक पेज, चुने हुए कुछ पेज या सभी पेज का ओसीआर करने का विकल्प है।

३) इमेज को घुमाने तथा इसी प्रकार के अन्य औजार दिए गये हैं।

४) एक साथ कई फाइले लोड कर सकते हैं।

५) प्राप्त  टेक्स्ट आउटपुट (जो टेसरैक्ट द्वारा यूनिकोड में मिलता है) को वहीं पर फाइण्ड-रिप्लेस करने की सुविधा।

६) ओपेन_आफिस का स्पेल_चेकर फाइल इसे देने पर स्पेल-चेक की सुविधा भी देता है।


मैं देख रहा था कि इसके आ जाने से अनेकों अन्य सुविधाओं के अलावा  फॉण्ट-कनवर्जन की सुविधा भी मिल जाएगी।  वस्तुतः यह एक प्रकार का  'सभी फॉण्टों का यूनिकोड परिवर्तक' है।

यह मुक्तस्रोत ओसीआर है और इससे हिन्दी को बहुत आशाएँ हैं। इसका प्रयोग कीजिए। कुछ समस्याएँ हों तो उन्हें उचित मंच पर ले जाइये। अगले संसकरणों में हिन्दी का आउटपुट इससे भी अच्छा आएगा, यह भरोसा रखिए।

स्थापना विधि
( टेसरैक्ट + जिमेजरीडर ) को हिन्दी ओसीआर के रूप में प्रयोग करने के लिए तीन फाइले डाउनलोड करनी होंगी-

१) टेसरैक्ट इंस्टालर (अंग्रेजी भाषा के डेटा सहित ; लगभग १३ एमबी) 
२) जीमेजरीडर  (लगभग १९ एमबी)
          http://sourceforge.net/projects/gimagereader/

३) हिन्दी के लिए आवश्यक डेटा फाइलें (लगभग १० एमबी)
tesseract-ocr-3.02.hin.tar.gz

प्रथम दो प्रोग्रामों को यथास्थान इंस्टाल कीजिए। ये दोनो बड़ी आसानी से इंस्टाल हो जाते हैं। तीसरी फाइल को अनजिप करके (7-zip का प्रयोग कीजिए)  प्राप्त फाइलों को टेसरैक्ट के उस डायरेक्टरी में डाल दीजिए जिसका नाम , उदाहरण के लिए , C:\Program Files\Tesseract OCR\tessdata.  है। यदि आपने कहीं और इंस्टाल किया है तो देखिए कि tessdata डायरेक्टरी कहाँ है और उसमें हिन्दी की डेटा फाइलों को डालें।


निम्नलिखित स्थानों पर इनके इंस्टाल करने एवं चलाने की विधि का विस्तार से वर्णन है-

A front-end GUI for the Tesseract OCR engine (Windows)  

firstandtech.wordpress.com/2012/08/22/a-front-end-gui-for-the-tesseract-ocr-engine-windows/


gImageReader: Open source, Google-powered OCR (optical character recognition) program that actually works 

dottech.org/21372/gimagereader-open-source-google-powered-ocr-optical-character-recognition-program-that-actually-works/


अब जब आप जीइमेजरीडर को चलायेंगे तो आपको इसे दो सूचनाएँ बतानी पड़ेंगी, ताकि यह टेसरैक्ट के साथ सम्बन्ध स्थापित कर सके-

(क)  “Directory containing tesseract:”  : हो सकता है आपने  टेसरैक्ट को  “C:\Program Files\Tesseract-OCR” में स्थापित किया है। यदि हाँ, तो C:\Program Files\Tesseract-OCR वहाँ पेस्ट कर दीजिए

(ख) “Directory containing tesseract languages:” : यहाँ भाषाओं के डेटा की डाययरेक्टरी बतानी है। हो सकता है आपने  “C:\Program Files\Tesseract-OCR\tessdata” में भाषा के आंकड़े रखे हैं। इसे वहाँ कॉपी कर दीजिए। यदि आपने अलग डायरेक्टरी में रखा हो तो वह पाथ वहां चिपका दीजिए।


एक महत्वपूर्ण जानकारी आपको और बतानी पड़ेगी।  हिन्दी सम्बन्धी जानकारी । जीइमेजरीडर में कुछ 'बिल्ट-इन' भाषाएँ हैं जिनमें हिन्दी अभी नहीं है। इसे आपको जोड़ना पड़ेगा।
File -->Configure_languages में जाकर हिन्दी के बारे में यह जानकारी भर दीजिए। इसके लिए :  Add बटन पर क्लिक कीजिए और क्रमशः तीन चीजें टाइप कर दीजिए-

Filename prefix     Native name      ISO 639-1 code

        hin                  हिन्दी                   hi_IN

इसके बाद 'ओके' बटन दबाइए। फिर 'अप्लाई' बटन दबाइए।

अब इसमें वह पीडीएफ या इमेज फाइल खोलिए जिसके किसी भाग या पूरे भाग का ओसीआर ( इमेज को मशीन द्वारा पठनीय टेक्स्ट में बदलना) करना है। इसके बाद आपको वह भाषा भी बतानी है। अभी आप किसी हिन्दी में लिखे पीडीएफ या इमेज को टेक्स्ट में बदलने जा रहे हैं। इसलिए सबसे उपर टूल-बार मीनू में दाहिनी तरफ English (US_en) के जगह पर क्लिक करके हिन्दी चुन लीजिए। फिर मीनू-बार में सबसे दाहिने वाले (Recognise) पर क्लिक करिए।  काम शुरू हो गया। थोड़ी देर प्रतीक्षा कीजिए।  आपके स्क्रीन पर दाहिने तरफ एक नई विण्डो में कुछ टेक्स्ट प्रकट होगा।  आपको इसी की तलाश थी। मिल गया। आप चाहें तो इस टेक्स्ट में कुछ 'खोजो-पाओ' प्रक्रिया यहीं कर सकते हैं या इसे 'सेव' करके बाहर आ जाइये और सम्पादन या शुद्धीकरण का काम किसी अधिक तेजस्वी टूल (जैसे टेक्स्ट क्राउलर) से कीजिए या स्वयं करिए।


प्रशिक्षण औजार (ट्रेनिंग टूल्स)
टेसरैक्ट के बारे में एक और जानकारी महत्वपूर्ण है कि बहुत से ट्रेनिंग टूल उपलब्ध हैं जिनकी सहायता से हम किसी भी लिपि के किसी भी फॉण्ट के साथ काम करने के लिए प्रशिक्षित कर सकते हैं। इसका मतलब है कि कि हम दूसरों पर निर्भर रहने के बजाय अपनी आवश्यकता के अनुरूप अपना ट्रेनिंग डाटा खुद तैयार कर सकते हैं।

यहाँ बहुत से ऐसे टूल्स की सूची दी गई है-

External Tools, Wrappers And Projects

code.google.com/p/tesseract-ocr/wiki/AddOns#Tesseract_box_editors_and_traning_tools

बाहरी कड़ियाँ
(१)  टेसरैक्ट-ओसीआर (tesseract-ocr)  : प्रसिद्ध मुक्तस्रोत ओसीआर परियोजना ; पचासों भाषाओं के ओसीआर (हिन्दी सहित) इससे बने हैं।

(२) परिचित - भारतीय लिपियों के लिए टेसरैक्ट पर आधारित  ओसीआर निर्माण की परियोजना

(३) linux-intelligent-ocr-solution  (LIOS) : पाइथन में रचित एक मुक्तस्रोत ओसीआर परियोजना (लिनक्स के लिए)

7 comments:

Madan Mohan Saxena said...

वाह.बेह्तरीन अभिव्यक्ति .

Bhagat Singh Panthi said...

जानकारी के लिए धन्यवाद plz remove text verification for comment

काजल कुमार Kajal Kumar said...

हि‍न्‍दी ओ सी आर मेरे लि‍ए नई जानकारी है जि‍से मैंने पहली बार कहीं पढ़ा है अन्‍यथा मैं तो अभी तक इसकी प्रतीक्षा ही कर रहा था. इतनी वि‍स्‍तृत जानकारी के लि‍ए आभार. आशा ये भी अंग्रेज़ी ओ सी आर जैसा ही स्‍तर प्राप्‍त कर लेगी.

काजल कुमार Kajal Kumar said...

इसे मैंने इंस्‍टॉल करके देखा. काम तो कर रहा है लेकि‍न अभी इसकी यात्रा बहुत लंबी है क्‍योंकि‍ इसकी आउटपुट को ठीक करने से बेहतर तो अभी टाइप करना ही होगा क्‍योंकि‍ इसमें 50 प्रति‍शत से भी अधि‍क अशुद्धि‍यां हैं. मेहनत करने वालों को साधुवाद. आशा है कि‍ इस दि‍शा में भी शीध्र ही प्रयत्‍न होंगे.

अनुनाद सिंह said...

काजल कुमार जी,
हिन्दी ओसीआर पर इस लेख को पढ़कर उसे इंस्टाल करने और उसके बाद अपना अभिमत देने के लिए साधुवाद।

इस ओसीआर की शुद्धता पर आपकी टिप्पणी के बारे में कुछ बाते लिखना चाहता हूँ। पहली बात यह कि सभी ओसीआर कुछ न कुछ अशुद्धि अवश्य करते हैं। इसलिए १००% शुद्ध शायद कोई नहीं है। दूसरी बात, ओसीआर की शुद्धि कई अन्य बातों पर भी निर्भर करती है-
* ठीक से ट्रेनिंग दी गई है या नहीं (ट्रेनिंग डेटा कैसा है)
* कौन सा फॉण्ट है,
* स्कैनिंग कितनी साफ है,
* अक्षर तिरछे तो नहीं हैं,
* स्कैनिंग कितने डॉट्स प्रति इंच में की गई है,
* वर्तनी_जाँचक शब्दकोश का प्रयोग किया गया है या नहीं,

आदि

उपरोक्त कामों के लिए अच्छे और मुफ्त टूल हैं, जैसे स्कैन_टेलर आदि। आप अपने फॉण्ट के हिसाब से ट्रेन करके ट्रेनिंग डेटा तैयार कर सकते हैं जो बहुत अधिक शुद्ध होगा।

और अन्तिम बात : कभी-कभी ५०% शुद्ध टेक्स्ट भी लोगों के लिए बहुत उपयोगी होता है। वे गलतियों को समझकर और मन ही मन सही करके अभीष्ट अर्थ निकाल लेते हैं।

काजल कुमार Kajal Kumar said...

आपके कथ्‍य से सहमत हूँ. इन्‍हीं बातों को ध्‍यान में रखते हुए मैंने एक समाचार पत्र के वैब-संस्‍कण से jpeg पृष्‍ठ के सीमित भाग को OCR के लि‍ए चुना था.

NARESH SINGH RATHORE said...

bahut achchee jankari ke liye dhnyavad.