Devanagari Character Dataset Automation
हिंदी संस्करण पढ़ने के लिए यहां क्लिक करें
EDIT: Website is now live! visit dcda.io 2025 edit: started working on this again: dcdaMLThis project is made for automating the process (to an extent) of making curated handwritten datasets for any language. The project focuses on Devanagari but it can be used universally with all the languages compatible with the Tesseract OCR engine.
This project is like a self improvization closed loop for the existing OCR technology for Devanagari, by inducing minimal human intervention in the tedious process of dataset creation.
This idea originated due to the absence of large datasets on the internet available for the devanagari script. Because it is the least explored domain in terms of OCR technology [Refer to this research paper]
Major role of the existing research paperBefore starting this project, I conducted thorough research on existing handwritten character datasets for the Devanagari script. And the biggest Dataset I found was the Devanagari Handwritten Character Dataset. Upon reading the paper thoroughly and contacting the authors, I was given very valuable suggestions from Professor Prashnna, who was the one of the authors of the currently largest available dataset which contains 92,000 images. The paper was published in 2015, and that time, the authors collected the data and they had to manually process and crop out the individual characters from the recieved data.
My project has eliminated all the physical human intervention and narrowed it down to a remotely accesible webpage, which takes minimal human input in form of just some simple clicks (literally just 2-3 clicks), which help in the concatenation of the dataset.
This is my contribution to promote the digitization of my language Hindi and the Devanagari script for democratization and better usage of OCR.
The depicted app illustration below does not align with our current conceptualization, i.e. the illustration of the web app's idea is outdated. Why? Read below,
We are currently planning to release the site as a tool which will assist in generation of word level statistics and data but not like symbol level manipulation / collection as illustrated below. It can be an addition to the project later on but the current MVP we are planning to release is just a tool which asks humans to verify Tesseract engine's output. The reason of the temporary delay of the symbol level dataset creation web app is because we aren't sure about the usability of the dataset produced with current technology, because the dataset generated will not be uniform, in terms of image resolution, size or DPI.
The final project turned out to be drastically different than what it was planned like. This repository contains a pipeline of multiple programs which take input images of pages containing handwritten Hindi text, and perform the following processes in the order:
We are actively ideating and working on how this project and the corresponding research paper comes out, and how is it presented, many ideas are getting discussed, approved or scraped. There are lot of ways in which we can proceed with a strong result of the project. Updates will be added soon.
For the JS files, Use node.js
to run the files and install canvas
and tesseract.js
packages via npm
The ideation process of this project alone was months long and many versions were created and scraped, I would not cover those in this readme because it already is very long :'-)
Legacy version of tessdata is very inaccurate
Using a single worker to recognize a sample batch of images took 4 minutes and 30 seconds, while using the same sample batch and using 7 workers parallely completed the task in 1 minutes and 10 seconds, which is nearly 75% increase in speed. But also pointing out from the documentation that the individual recognition speed does not change with multiple workers, its just that the processes get executed parallelly.
Also read ai.md
Pull requests and active discussions:#883
#1140 Added example for V2 of Cropper.js
#878 Added a pull request for adding complex examples of bbox data manipulation and output generation.
Average confidence of Legacy model is : 79.5
Average confidence of 4.0/4.1 model is : 89.83
देवनागरी अक्षर डेटासेट स्वचालितीकरण
यह परियोजना किसी भी भाषा के लिए संरचित है और हस्तलेखित डेटासेट बनाने की प्रक्रिया को (एक हद तक) स्वचालित करने के लिए। परियोजना देवनागरी पर ध्यान केंद्रित करती है, लेकिन इसे Tesseract OCR इंजन के साथ संगत सभी भाषाओं के साथ सार्वभौमिक रूप से उपयोग किया जा सकता है।
यह परियोजना मौजूदा OCR प्रौद्योगिकी के लिए एक स्व-सुधारित बंद लूप की तरह है, जिसमें डेटासेट निर्माण की थकानपूर्ण प्रक्रिया में मानव हस्तक्षेप को न्यूनतम में ले जाता है।
यह विचार की उत्पत्ति इंटरनेट पर उपलब्ध देवनागरी स्क्रिप्ट के लिए बड़े डेटासेट की अनुपस्थिति के कारण हुई थी। क्योंकि इसे OCR प्रौद्योगिकी के दृष्टिकोण से यह सबसे कम अन्वेषित डोमेन है इस रिसर्च पेपर को देखें
मौजूदा रिसर्च पेपर की प्रमुख भूमिकाइस परियोजना की शुरुआत से पहले, मैंने देवनागरी स्क्रिप्ट के लिए मौजूदा हस्तलेखित वर्ण डेटासेटों पर व्यापक अनुसंधान किया। और मैंने सबसे बड़ा डेटासेट देवनागरी हस्तलेखित वर्ण डेटासेट पाया। उसे ध्यानपूर्वक पढ़ने और लेखकों से संपर्क करने के बाद, मुझे उस समय विशेषज्ञ प्रश्ना से बहुत मूल्यवान सुझाव मिला, जो वर्तमान में सबसे बड़े उपलब्ध डेटासेट के एक लेखक थे जिसमें 92,000 छवियां हैं।
पेपर 2015 में प्रकाशित हुआ था, और उस समय लेखकों को शब्दों को मैन्युअल रूप से क्रॉप करना और प्रोसेस करना पड़ा जो बहुत ही कठिन कार्य है
मेरे प्रोजेक्ट ने सभी भौतिक मानवीय हस्तक्षेप को समाप्त कर दिया है और इसे दूर से पहुंच योग्य वेबपेज तक सीमित कर दिया है, जो केवल कुछ साधारण क्लिक के रूप में न्यूनतम मानव इनपुट लेता है, जो डेटासेट के संयोजन में मदद करता है।
अंतिम परियोजना यह उससे बहुत अलग बना है जो यह योजना थी। इस रिपॉजिटरी में कई कार्यक्रमों की पाइपलाइन है जो हस्तलेखित हिंदी पाठ वाली पृष्ठों की इनपुट छवियों को लेते हैं, और क्रमश: निम्नलिखित प्रक्रिया करते हैं:
वेबसाइट को अंतिम रूप में निर्धारित किया गया है, और इसके बाद, डेटा संग्रहण भाग प्रारंभ होगा। @simplycode बैकएंड हिस्से पर काम कर रहे हैं, और वेबसाइट को कुछ सौथी जाँच के बाद सार्थक बनाया जाएगा।
इस परियोजना के विचार निर्माण प्रक्रिया ने अकेले महीने तक का समय लिया और कई संस्करण बनाए और कूद गए, मैं इस रेडमी को कवर नहीं करूंगा क्योंकि यह पहले से ही बहुत लंबा है :'-)
परिणाम, खोज, समस्याएँ और प्राप्तियाँ प्रक्रिया के दौरान:Pytesseract का परिचय
React.js [नई कौशल!]
Tesseract.js [नई कौशल!]
Cropper.js [नई कौशल!]
मौजूदा OCR प्रौद्योगिकियों और सॉफ़्टवेयर्स का परिचय जैसे gImageReader, EasyOCR आदि। (वांछित परिणाम प्राप्त करने के लिए हर मौजूदा प्रौद्योगिकी की कोशिश की, लेकिन अंत में स्क्रैच से बना दिया गया है)
tessdata का लेगेसी संस्करण बहुत अक्षरशास्त्र में अशुद्ध है
एकल कार्यकर्ता का उपयोग करके एक सैम्पल बैच की छवियों को पहचानने में 4 मिनट और 30 सेकंड लगे, जबकि एक ही सैम्पल बैच का उपयोग करके और सात कार्यकर्ताओं का उपयोग करके कार्यक्रम ने कार्य को 1 मिनट और 10 सेकंड में पूरा किया, जो लगभग 75% की वृद्धि है। लेकिन उन्होंने दस्तावेज से साबित किया है कि एकल पहचान की गति कई कार्यकर्ताओं के साथ नहीं बदलती है, बल्कि केवल प्रक्रियाएँ पार्लल रूप में कार्य करती हैं।
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4