اردو میں کوئی شناخت برائے بصری الفاظ Ocr کا سوفٹویئر موجود ہے؟؟؟

سرائے کی امسال کے اوپن سورس پروجیکٹس کی فیلوشپ میں میں نے اردو او سی آر پر کام کرنے کے لئے اپنی درخؤاست ڈال رکھی ہے۔ جلدی ہی منتخب پروجیکٹس کی فہرست سامنے آنے والی ہے۔ اگر فیلوشپ ملتی ہے تو انشاء اللہ ٹائم لائن کے ساتھ چل کر اور منتخب نہ ہونے کی صورت میں بے ترتیب سہی پر انشاء اللہ کام ضرور کروں گا اس سمت میں۔ اور میں بنیادی طور پے Tesseract کو ٹرین کروں گا۔ اس کے بعض‌ مسائل واضح اور بعض‌ کا غیر واضح حل سوچ رکھا ہے۔ نیز فیلوشپ ایپلیکیشن میں ان کا ذکر بھی کر چکا ہوں۔ جلدی ہی ان نکات پر یہاں بھی بات کرتا ہوں انشاء اللہ۔
 

arifkarim

معطل
سرائے کی امسال کے اوپن سورس پروجیکٹس کی فیلوشپ میں میں نے اردو او سی آر پر کام کرنے کے لئے اپنی درخؤاست ڈال رکھی ہے۔ جلدی ہی منتخب پروجیکٹس کی فہرست سامنے آنے والی ہے۔ اگر فیلوشپ ملتی ہے تو انشاء اللہ ٹائم لائن کے ساتھ چل کر اور منتخب نہ ہونے کی صورت میں بے ترتیب سہی پر انشاء اللہ کام ضرور کروں گا اس سمت میں۔ اور میں بنیادی طور پے Tesseract کو ٹرین کروں گا۔ اس کے بعض‌ مسائل واضح اور بعض‌ کا غیر واضح حل سوچ رکھا ہے۔ نیز فیلوشپ ایپلیکیشن میں ان کا ذکر بھی کر چکا ہوں۔ جلدی ہی ان نکات پر یہاں بھی بات کرتا ہوں انشاء اللہ۔

شکریہ ابن سعید، Tesseract کی ٹریننگ کا میں تجربہ کر چکا ہوں۔ اس کا ریکاگنیشن اننجن تھوڑا کمزور ہے، دوسرا یہ حروف کو بائیں سے دائیں دکھاتا ہے۔ اگر یہ مسائل حل ہو جائیں تو خوب۔۔۔۔۔۔۔۔۔۔۔۔۔۔
 
بائیں سے دائیں والے مسئلے کا بہت ہی واضح حل ہے میرے پاس۔ اور ریکگنیشن انجن کا معاملہ یہ ہے کہ جتنے بھی مشین لرننگ کے پروگرام ہوتے ہیں سب کو زبردست قسم کی ٹرینگ چاہئے ہوتی ہے۔ پھر یہ سافٹ کمپیوٹنگ ہے اس میں پرفیکشن کبھی نہیں آتا ہاں وقت کے ساتھ ساتھ بہتری آتی رہتی ہے۔
 
میرا شارٹ ٹرم اردو او سی آر پروجیکٹ‌ پروپوزل برائے سرائے فری فاس فیلوشپ

میرے پروجیکٹ پروپوزل کی نقل درج ذیل ہے۔

Introduction
============

Product: Urdu OCR

Applicant's Name: Sawood Alam

Current Urdu OCR's Status: No working OCR for Urdu is there even not a proprietary one. Several students were found to be working in this direction but no one ended up with a useful product.

Target: Development of an Urdu OCR that is capable of recognizing at least character based Urdu fonts (if not ligature based) to an acceptable extent of accuracy after proper learning.


Feasibility
===========

Writing an OCR from scratch and implementing own algorithms, is not feasible anyways within the short span of time of only six months or so. Hence building it on top of any prebuilt open source OCR (e.g. ) may be one option.

Tesseract (and other such tools) has some issues particularly in right-to-left (RTL) and ligature based (joined character) based languages. As their pointer flow is left-to-right and character mapping is one-to-one. These issues are majorly because the developers of such tools are mostly from European countries where script is based on isolated characters and text flow is left-to-right.

But I have solutions to all these issues which I will discuss briefly in the next section.

I also found people making their efforts on training Tesseract on RTL languages like Arabic and Hebrew. Particularly in case of Arabic only few characters could be recognized. But I hope after proper treatment and manipulation of the image file, result will improve.


Issues and Possible Solutions
=============================

Issue 1: Right-to-Left flow of text.

Solution: Instead of changing the code to manipulate the image from right to left keep it intact, as it is highly associated in several modules of the code. Due to this dependency, one may need to alter almost entire codebase. Another side effect will be, the tool will remain no more generic but specific to RTL languages only. An alternate solution could be "flip the image horizontally". And input this flipped image as input file and let the parser manipulate the image as it was some LTR language.

Issue 2: Character isolation from the joined ligature.

Solution: Do not isolate characters from within a joined ligature. instead consider them as single symbol and map them with corresponding set of characters in the mapping file. Drawback of this mechanism is performance degradation as the mapping table will now be several times larger than that of one-to-one character mapping table and a linear search will take a little more time.

Issue 3: Ligature isolation within a line. As several ligatures have some overlapping (as seen vertically) although they are isolated.

Solution: Most of the simple image manipulations are done through horizontal and vertical lines (forming rectangles). While in Urdu and alike scripts demand for a parallelogram with horizontal paralel lines and slanted vertical parallel lines to encapsulate a ligature. To tackle this issue we should not alter the code (that will be too complex and will loose generality). Rather we can apply a bit rotation and a little shear to deform the image in such a way to make ligatures encapsulable in rectangles.

Preprocessing: Hence as per the above discussion, a preprocessing (horizontal flip, a bit rotation and a little shear) of input images is needed to make them work with Tesseract for Urdu, Arabic and Persian and alike languages.


Timeline
========

Month 1: Thorough study of codebase of Tesseract. And training it for isolated Urdu alphabet characters and numbers of different fonts, both of orignal and flipped images and watch the result.

Month 2: Initial training of small ligatures (made of 2-3 characters) with "Tahoma" font (character based true type) with several preprocessing configurations and maintaining performance, accuracy table.

Month 3: Writing script to generate all possible ligatures (under complex rules of Persian script). This way mapping and training will be easy job, although it will degrade the performance to a large extent (that is not primary concern). Later this ligature set may be pruned of through a dictionary word list to enhance the performance.

Month 4: Writing a input image preprocessing script based on the above observations. This may ask for font name and other such parameters to preprocess the image properly.

Month 5: Handling "number within text" issue. As in Persian script (Urdu, Persian, Arabic and alike) numbers are left-to-right within right-to-left text. It needs extra care of identifying (may be through regular expression) the same and handle it properly. Otherwise 12345 will become 54321.

Month 6: Binding it all in a package format. And documentation of the work that may help for further enhancements. And list the possibilities of improvements and their requirement (as human, time and other resource).


Deliverable
============

At the end of the fellowship period, an Urdu OCR (that may be capable of learning Persian and Arabic too) for at least character based horizontal flow modern fonts (like Tahoma, Nafees Web Naskh, Alqalam etc) with around 90%+ accuracy.

A comprehensive documentation about its enhancement so that it become capable of processing traditional complex Nastaleeq fonts (in which most of the books are printed) to make it really useful for library digitization.


References
==========

1: http://code.google.com/p/tesseract-ocr/
2: http://en.wikipedia.org/wiki/Tesseract_(software)
3: http://sourceforge.net/projects/tesseract-ocr
4: http://crulp.org/
5: http://urduweb.org/mehfil
6: http://www.daniweb.com/forums/thread82641.html
7: http://www.ocr.org.uk/qualifications/assetlanguages/urdu/
8: http://www.waset.org/pwaset/v23/v23-93.pdf
9: http://pubs.iupr.org/DATA/2006-IUPR-24Nov_1031.pdf
10: http://sites.google.com/site/ocropus/languages/urdu
 

Attachments

  • urdu_ocr.txt
    5.7 KB · مناظر: 4
میں صرف ایک بات برائے معلومات آپ سے شیئر کرنا چاہتا ہوں اور وہ یہ کہ صخر جو کہ عربی کا ایک بہترین او سی آر ہے اس سائیٹ کے مطابق اس سافٹ ویر کا اردو پیک بھی دستیاب ہے جس کے بعد یہ سافٹ ویر اردو او سی آر کا کام کرے گا
میرے پاس صخر 8 موجود ہے تاہم اردو پیک موجود نہیں لہذا مزید کچھ کینے سے قاصر ہوں
S
akhr OCR recognizes:
- The main Arabic based characters languages: Arabic, Farsi, Urdu, Jawi, Pashto (Farsi, Urdu, Jawi, and Pashto come in an extra language pack).
- As well as 18 other international languages (as it includes the most powerful Latin OCR engine – ScanSoft): English, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, Indonesian, Italian, Norwegian, Polish, Portuguese, Russian, Spanish, Swedish, and Turkish.
 
جی دوست آپ ٹھیک کہ رہے ہیں یہ تو برائے معلومات پوسٹ تھی کہ اردو میں بھی کم از کم ایک او سی آر موجود ہے ۔
 
الحمد للہ!

سال 2008 کی سرائے فاس فیلو شپ کے نتیجے کا اعلان ہو گیا ہے۔ تقریباً‌ کل 21 پروجیکٹس منتخب ہوئے ہیں اور میرا اردو او سی آر کا پروجیکٹ بھی ان میں سے ایک ہے۔

مزید تفصیلات اس ربط پر۔
 
زکریا بھائی پچھلے صفحے پر پیغام نمبر 44 میں کچھ تفصیلات درج ہیں۔

سرائے ایک پروگرام ہے جو کہ سی ایس ڈی ایس یا سینٹر فار دا اسٹڈی آف ڈیویلپنگ سوسائٹی کے زیر اہتمام ہے۔ اس پروگرام کے تحت بہت سارے کام ہوتے ہین جنھیں sarai.net پر دیکھا جا سکتا ہے۔ انھیں کاموں میں سے ایک ہے علاقائی زبانوں میں کمپیوٹنگ خاص کر فری اور اوپن سورس کو فروغ دینا جس کے تحت پچھلے چند سالوں سے لوگوں سے پروجیکٹ‌ پروپوزل اکٹھا کئے جاتے ہیں اور جس قدر اسپانسرشپ مل جاتی ہے اس کے تناسب میں پروجیکٹ منتخب کرکے فیلوشپ دے دی جاتی ہے۔ لہٰذا اس بار میں نے ابتدائی اردو او سی آر کا خاکہ پیش کیا اور اس میں آنے والے ممکنہ مسائل کا حل بھی کسی حد تک بیان کیا۔ اور بالآخر منتخب ہو گیا۔

گر چہ ابھی میرے پروجیکت کا اسکوپ نستعلیق فانت تک نہیں اور شائد بغیر اس کے یہ کسی تعمیری کام کے لائق بھی نہیں ہوگا۔ پھر بھی ایک ابتدا سہی۔ دیکھتے ہیں کہ آپ احباب کے ساتھ مل کر پارٹ ٹائم اس کے ساتھ کتنا انصاف کیا جا سکتا ہے۔ امید ہے کہ زکریا بھائی سے امیج پروسیسنگ مین اور دیگر احباب سے حسب استطاعت تعاون ملتا رہے گا۔
 

دوست

محفلین
میری شدید خواہش ہے کہ اس سلسلے میں ہاتھ بٹا سکوں۔ لیکن میرا علم آپ احباب کے مقابلے میں ایک قطرہ بھی نہیں۔ سی شارپ کے واجبی سے علم کے علاوہ اور کچھ نہیں جانتا۔
 

arifkarim

معطل
زکریا بھائی پچھلے صفحے پر پیغام نمبر 44 میں کچھ تفصیلات درج ہیں۔

سرائے ایک پروگرام ہے جو کہ سی ایس ڈی ایس یا سینٹر فار دا اسٹڈی آف ڈیویلپنگ سوسائٹی کے زیر اہتمام ہے۔ اس پروگرام کے تحت بہت سارے کام ہوتے ہین جنھیں Sarai.net پر دیکھا جا سکتا ہے۔ انھیں کاموں میں سے ایک ہے علاقائی زبانوں میں کمپیوٹنگ خاص کر فری اور اوپن سورس کو فروغ دینا جس کے تحت پچھلے چند سالوں سے لوگوں سے پروجیکٹ‌ پروپوزل اکٹھا کئے جاتے ہیں اور جس قدر اسپانسرشپ مل جاتی ہے اس کے تناسب میں پروجیکٹ منتخب کرکے فیلوشپ دے دی جاتی ہے۔ لہٰذا اس بار میں نے ابتدائی اردو او سی آر کا خاکہ پیش کیا اور اس میں آنے والے ممکنہ مسائل کا حل بھی کسی حد تک بیان کیا۔ اور بالآخر منتخب ہو گیا۔

گر چہ ابھی میرے پروجیکت کا اسکوپ نستعلیق فانت تک نہیں اور شائد بغیر اس کے یہ کسی تعمیری کام کے لائق بھی نہیں ہوگا۔ پھر بھی ایک ابتدا سہی۔ دیکھتے ہیں کہ آپ احباب کے ساتھ مل کر پارٹ ٹائم اس کے ساتھ کتنا انصاف کیا جا سکتا ہے۔ امید ہے کہ زکریا بھائی سے امیج پروسیسنگ مین اور دیگر احباب سے حسب استطاعت تعاون ملتا رہے گا۔

بھائی جان، خاکسار نے جواد بھائی کیساتھ ٹیسیریکٹ او سی آر کے اندر ہی نوری نستعلیق کے بعض لگیچرز ریکاگنائز کروائے تھے۔ لیکن اس پروگرام کا انجن بہت ہی نالائق ہے۔ ہمیں شاید پہلے امیج پراسیسنگ ٹیکنالجی کو بہتر بنانا ہوگا۔۔۔۔

دوسرا چونکہ آپ اوپن ٹائپ پر کام کر رہے ہیں، تو اسکی ڈیٹابیس میں علوی نستعلیق کے لگیچرز ڈالے جا سکتے ہیں۔ میرے خیال میں نستعلیقی حروف کی ریکاگنیشن نسخ سے نہایت آسان ہوگا کیونکہ ان میں‌کوئی متبادل نہیں ہوتا!
 
عارف بھائی علوی نستعلیق کے تئیں آپ کا جوش و خروش قابل داد ہے۔ اور انشاء اللہ اسے بھی شامل ضرور کیا جائے گا۔ لیکن آپ او سی آر کا اصلی مقصد دیکھیں تو فی الحال یہ ایک سعی لا حاصل کے سوا کچھ بھی نہیں۔ کیوں کہ ایک عدد 100 فیصد فعال او سی آر برائے علوی نستعلیق بن کر کل دستیاب ہو جائے تو اس کا کیا فائدہ ہوگا۔ کتنی مطبوعات آپ کو علوی نستعلیق میں ملیں گی جنہیں آپ اس او سی آر سے ڈیجیٹائز کریں گے؟

پھر نستعلیقی خطوط میں مجھے جو سب سے بڑا مسئلہ نظر آتا ہے وہ یہ کہ اس کے ترسیموں کو علیٰحدہ کیسے کیا جائے؟ روٹیشن اور شیر جیسے عوامل اس مسئلے کو کسی حد تک حل کر سکتے ہیں مکمل طور پر شائد نہیں۔ خیر اس پر بعد میں تبادلہ خیال کر لیں گے ابھی تو میں تاہوما کے گردن پر چھری پھیرنے کا ارادہ رکھتا ہوں۔

اور ہاں شاکر بھائی آپ سے تو آخر میں یوزر انٹرفیس تیار کرایا جا سکتا ہے سی شارپ کے ذریعہ۔
 

arifkarim

معطل
عارف بھائی علوی نستعلیق کے تئیں آپ کا جوش و خروش قابل داد ہے۔ اور انشاء اللہ اسے بھی شامل ضرور کیا جائے گا۔ لیکن آپ او سی آر کا اصلی مقصد دیکھیں تو فی الحال یہ ایک سعی لا حاصل کے سوا کچھ بھی نہیں۔ کیوں کہ ایک عدد 100 فیصد فعال او سی آر برائے علوی نستعلیق بن کر کل دستیاب ہو جائے تو اس کا کیا فائدہ ہوگا۔ کتنی مطبوعات آپ کو علوی نستعلیق میں ملیں گی جنہیں آپ اس او سی آر سے ڈیجیٹائز کریں گے؟

پھر نستعلیقی خطوط میں مجھے جو سب سے بڑا مسئلہ نظر آتا ہے وہ یہ کہ اس کے ترسیموں کو علیٰحدہ کیسے کیا جائے؟ روٹیشن اور شیر جیسے عوامل اس مسئلے کو کسی حد تک حل کر سکتے ہیں مکمل طور پر شائد نہیں۔ خیر اس پر بعد میں تبادلہ خیال کر لیں گے ابھی تو میں تاہوما کے گردن پر چھری پھیرنے کا ارادہ رکھتا ہوں۔

اور ہاں شاکر بھائی آپ سے تو آخر میں یوزر انٹرفیس تیار کرایا جا سکتا ہے سی شارپ کے ذریعہ۔

بھائی دیکھیں اردو کی تمام تر پبلی کیشنز: اخبارات، رسائل، ڈائجسٹ، یہاں تک کہ ویب اخبارات بھی تصویری شکل میں نوری نستعلیق لگیچرز ہی میں لکھیں جاتے ہیں۔ ان لگیچرز کی تعداد کم و بیش 17000 کے قریب ہے۔ اگر کسی طرح ان ترسیموں کو او سی آر لائبریری میں فیڈ کیا جا سکے تو میرا خیال ان کو شناخت کرنا حرفی بنیادوں سے زیادہ آسان ہوگا۔ اسکے متعلق یہاں پڑھیں:
http://www.nasim.org/blog/2006/08/13/urdu-ocr/

چونکہ علوی نستعلیق، نوری نستعلیق ہی ہے، اسلئے اسکو فیڈ کرنا بے فائدہ نہ ہوگا۔

باقی آپ فی الحال تجرباتی طور پر تاہوما پر چھرا پھیریں۔ امید کی کوئی کرن نکل آئے گی :)
 
حرفی بنیاد پر تو میں اسے کرنے کا کبھی سوچ بھی نہیں رہا عارف بھائی۔ یہاں ترسیمے الگ کرنے میں مشکل ہو رہی ہے اس مین حروف کی جدا کاری تو مجھے جانے کس گھاٹ جا پٹکے گی۔
 
عارف بھائی علوی نستعلیق کو پہلی بار اوپن آفس میں استعمال کیا اور جو سب سے پہلا خیال آیا وہ یہ کہ اس سے تو ٹھیک ویسے ہی او سی آر کو ٹرین کیا جا سکتا ہے جیسے تاہوما کو۔ کیوں کہ اس میں ترسیموں کے درمیان خاصہ فاصلہ ہے اور انہیں الگ الگ صندوقوں میں بند کرنا بالکل آسان ہے۔ جب کہ انپیج کی نوری نستعلیق اور کاتبوں کی تحریر کا معاملہ قدرے مختلف ہے۔
 

دوست

محفلین
بات ان پیج کے نوری نستعلیق کی ہے۔ اگر اس کی بنیاد پر کچھ کام بن جائے تو کیا کہنے ورنہ موج ہی ہے۔ تاہوما کی بنیاد پر بننے والا یہ پائلٹ پراجیکٹ بطور ڈیکوریشن پیس تو اچھا لگے گا لیکن عملی کام کچھ بھی نہیں ہوگا۔
 
Top