భాషందం, భువనందం, బ్రతుకందం

Wednesday, May 19, 2010

Tesseract OCR for Telugu - Part 1

OCR అంటే ఏమిటి?
Optical Character Recognition System అనగా, బొమ్మ రూపంలోనున్న అక్షరాలను గుర్తించడం।

ఉదాహరణకు [ఈ డబ్బాలోనున్న పాఠాన్ని] మీరు ఎంచుకొని దాన్ని కాపీ చేసి నోటుప్యాడో వరడో తెఱచి పేష్టు చేయండి। అక్కడ ఎంచక్కా అక్షరాలా కనిపిస్తుంది। అదే క్రింద బొమ్మలోనున్న పాఠాన్ని ఎంచుకొని-కాపీ చేయడానికి ప్రయత్నించండి అవ్వదు।




అలానే మన కొత్తపాళీ గారి బ్లాగులో తిలక్ అనే పాఠాన్ని వెదకాలనుకోండి శోధన పెట్టిలోనికి వెళ్ళి అక్కడ తిలక్ అని కొడితే అదే వెదికి పెడుతుంది। అదే పనిని మీరు ఏ పీడీఎఫ్ ప్రతిలోనో జేపెగ్ బొమ్మలోనే చేస్తే ప్రయోజనం వుండదు। ఉదాహరణకు మీరు గ్రేటాంధ్రా అనే గూడుకు విరాభిమాని అనుకోండి (మంచి వైద్యులను సంప్రదిస్తే ప్రయోజనం వుండవచ్చు), అందులో మీ అభిమాన తార రంగుల స్వాతమ్మ గుఱించి అచ్చుచేయఁబడ్డ వ్యాసాలను శోధించాలనుకోండి, వీలుపడదు, ఎందుకంటే సెలిబ్రిటీ గాసిప్ వ్రాసే వాడికి దాన్ని యూనీకోడులో వ్రాయలని తెలియకపోవడం సహజం కాబట్టి!
అందుకే మీరు కంప్యూటరీకరణ యొక్క పూర్తి సత్తాని ఆవిష్కరించదలచితే దాన్ని యూనీకోడులోనుంచాలి।
ఇంకో ఉదాహరణ – నన్నయ్యభట్టు భారతంలో సీసపద్యాలు ఎన్నున్నాయి అన్నది లెక్కవేయాలనుకోండి, మన దగ్గర దాని యూనీకోడు ప్రతి వుండడం వలన మనకోసమో కంప్యూటరీపనిని చిటికెలో చేసిపెట్టగలదు।


తెలుఁగుకు ఓసీయార్ వుందా?
ఆంగ్లానికి మంచి ఓసియారులు వున్నాయి, అంటే మీ దగ్గర బొమ్మగా మార్చబడ్డ ఆంగ్ల పుస్తకపుట ఒకటి వుందనుకోండి దాన్ని కంప్యూటరులో శోధించగల పాఠ్యముగా మార్చడానికి చాలా మంది పరికరాలు చేసియున్నారు। తెలుఁగుకి ఇంకా అటువంటి విజయవంతమైన నాణ్యమైన పరికరాలు లేవు। కాబట్టి వాటిని చేసి ఆవిష్కరించి, ఘనులయ్యే అవకాశం మనకే వుంది।


ఓసీయార్ కు కావలసినది యేమిటి?
ఓసీయార్ అంటే చిన్న పిల్లలకు భాష నేర్పడం వంటిది। అలా చాలామంది కంప్యూటర్-చిన్నపిల్లలకు ఆంగ్లం నేర్పారు, ఇక తెలుఁగు నేర్పడే తరువాయి। అయితే ఈ చిన్న పిల్లలు ఎక్కడ దొరుకుతారు వారికి నేర్పేటి పద్ధతి యేమిటి?
తెలుఁగు చదవచ్చిన వ్యక్తి కావాలంటే ముందు మనము దేఁవుఁడి దగ్గర నుండి పిల్లని అడగాలి। దానిచే మన అఆఇఈలు దిద్దించాలి। అలాంటి ఒక పిల్లని గూగులు వారు మనకు అందిస్తున్నారు, దాని పేరే టెస్సరాక్టు। దానిచేతనిప్పుడు తెలుఁగు అక్షరాలు దిద్దించాలి। ఎలాగో చూద్దాం పదండి।


టెస్సరాక్టుఁ బుఱ్ఱ గుఱించి (Tesseract Engine)
దీనిని C++ భాషలో వ్రాసినారు। కాబట్టి ఏ కంప్యూటరు మీదనైనా, తేలికగా పరుగెడుతుంది। దీనిని కంపైలు చేసుకోవడం కూడా సుళువే। ఈ బుఱ్ఱ(source code or .exe) మీకు మూఁడు విధాల లభ్యం అవుతుంది।

౧) మీరే ప్రోగ్రాములను కంపైలు చేసుకొని బిల్డు చేసుకోవడం. – Building from source code
౨) టెస్సరాక్టు గూడులో ఇవ్వబడిన exe వాడడం. కానీ ఇందులో కొన్ని సౌకర్యాలు* లేవు. – Get the windows exe from the website. (But this does not have Libtiff support)
౩) నేను ఆ సౌకర్యాలతో కంపైలు చేసిన exe వాడడం. – Use and exe generated with Libtiff support.

*సౌకర్యము = Libtiff for reading compressed tiff images.
** Linux/Unix వారు తమంత తామే తయారు చేసుకోవడం సర్వోత్తమం

Download
1) If you want to complie on your own (Linux, Windows) tesseract-2.04.tar.gz {from here}
2) If you want pre built (Windows) (Not recommended) tesseract-2.04.exe.tar.gz {from here}
3) Pre-built with Libtiff (Windows) tesseract_bin.zip or tesseract_bin.7z {from here}

Compiling S/W
+ If you want to complie on your own : VC++ (Windows) , gcc or equiv.(Linux)

LIBTIFF (For building your own tesseract.exe)
టెస్సరాక్టులో స్వతహాగా compressed images చదవగలిగే సామర్థ్యంలేదు. కాబట్టి libtiff అనే open source tiff library అవసరం వుంది.
Linux

లైనక్సు వాడువారు http://remotesensing.org/libtiff/ నుండి నేఱుగా source code దింపుకొని దానిని కంపైలు చేసుకొని, అక్కడి నుండి libraries, header files లను tesseract makefile కి అందించవచ్చుఁ
Windows
WinGNU32 వారు మంచిగా కంపైలు చేయబడ్డ libs, dlls, మఱియు .hలను రెడీమేడ్ గుడ్డల్లా అందిస్తున్నారు. http://gnuwin32.sourceforge.net/packages.html నుండి Libtiff, Jpeg, Zlib డైరక్టరీలను దింపుకోండి.

Self Compiling with LIBTIFF
1) Open the project in VC++ by opening the downloaded project files, tesseract.sln or .dsw or .vcproj ( VC may do some format conversion from previous VC versions, this does not affect the actual program in anyway)
2) When compiling by yourself using LIBTIFF capabilities, you need to add a preprocessor definition HAVE_LIBTIFF.
For this, in VC, go to
Project -> Properties (Alt F7) -> Configuration Properties -> C/C++ -> Preprocessor -> Preprocessor Definitions
And add HAVE_LIBTIFF to the existing Preprocessor Definitions

3) Build Solution (F7).
You will have an exe that is sure to run on your system. This is found in the directory tesseract\bin.dbg . You will also have other exes that are used for training.

4) To get LIBTIFF capability,
While running the newly generated tesseract.exe file, ensure that you add the downloaded directory GnuWin32\bin to the path.
OR
Copy the libtiff*.dll, zlib*.dll, jpeg*.dll to the same folder as the exe.


Once you have the exe files, you can proceed to Part-2.

No comments:

Post a Comment