Σελίδα 1 από 9

OCR ελληνικών (και όχι μόνο) χαρακτήρων στο linux

ΔημοσίευσηΔημοσιεύτηκε: 31 Ιαν 2011, 02:49
από the_eye
Η ελληνική υποστήριξη OCR στο linux υλοποιείτε εύκολα με την μηχανή OCR tesseract 3 που έχει έτοιμη βιβλιοθήκη ελληνικών αλλά έχει και μηχανή εκμάθησης χαρακτήρων.
Ακόμα μαζί με τα ελληνικά μπορούμε να εγκαταστήσουμε και άλλες γλώσσες όπως γαλλικά, γερμανικά, ρώσικα κτλ
Σαν γραφικό περιβάλλων θα χρησιμοποιήσουμε την εφαρμογή που υπάρχει στο κέντρο λογισμικού OCRFeeder

Την διαφορά για την υποστήριξη των ελληνικών την κάνει το tesseract στην έκδοση 3.

Στο Ubuntu 12.04 υπάρχει στα αποθετήρια μαζί και τα αρχεία αναγνώρισης γλώσας, οπότε εγκαθιστούμε :
OCRFeeder, tesseract, αρχεία γλώσσας (πχ tesseract-ocr-ell)

Για να έχουμε καλά αποτελέσματα πρέπει τα σαρωμένα κείμενα να είναι σε 300dpi και να έχουν καλό κοντράστ.

Αν σας βγάζει αρκετά λάθη να είστε επιεικής είναι το πρώτο βήμα OCR ελληνικών σε linux. Ακόμα στην σελίδα του project υπάρχει και ειδικό πρόγραμμα για "εκπαίδευση" του OCR για καλύτερη αναγνώριση.
http://code.google.com/p/tesseract-ocr/wiki/TrainingTesseract3

Στο πρόγραμμα OCRFeeder πάμε Εργαλεία -> Μηχανές OCR


Πατάμε Tesseract, Επεξεργασία


Αλλάζουμε την εντολή
Κώδικας: Επιλογή όλων
$IMAGE $FILE  > /dev/null 2> /dev/null; cat $FILE.txt; rm $FILE $FILE.txt

σε
Κώδικας: Επιλογή όλων
$IMAGE $FILE -l ell  > /dev/null 2> /dev/null; cat $FILE.txt; rm $FILE $FILE.txt

Αν θέλουμε άλλη γλώσσα βάζουμε το αντίστοιχο πρόθεμα πχ -l rus (είναι L μικρό όχι ένα)

Αν θέλουμε να αναγνωρίσει ένα κείμενο με 2 ή περισσότερες γλώσσες βάζουμε
Κώδικας: Επιλογή όλων
$IMAGE $FILE -l ell+eng  > /dev/null 2> /dev/null; cat $FILE.txt; rm $FILE $FILE.txt

Υπάρχει η πιθανότητα να αυξηθούν τα σφάλματα αναγνώρισης με αυτή την επιλογή :!:

Και είμαστε έτοιμοι !


Για εκπαίδευση του προγράμματος σε μια νέα γλώσσα ή σε πολυτονικό δείτε εδώ
http://code.google.com/p/tesseract-ocr/ ... Tesseract3


Παλαιό κείμενο οδηγού
Spoiler: show
Αν το έχετε εγκατεστημένο στο ubuntu 10.10 θα πρέπει να το απεγκαταστήσετε διότι είναι η έκδοση 2.

Για να έχουμε ελληνικό OCR πρέπει να εγκαταστήσουμε το (Α) tesseract 3 και την ελληνική βιβλιοθήκη. Μετά πρέπει να κάνουμε μια ρύθμιση (Β) στο OCRFeeder και είμαστε έτοιμοι.


(Α)
Εγκαθιστούμε κάποιες βιβλιοθήκες που είναι απαραίτητες.
Κώδικας: Επιλογή όλων
sudo apt-get install libleptonica


Η εγκατάσταση του tesseract 3 μπορεί να γίνει με 3 τρόπους.

1ος Τρόπος. Κατεβάζοντας τον πηγαίο κώδικα και μεταγλωττίζοντάς τον.


Κατεβάζουμε το tesseract-3.00.tar.gz από εδώ http://code.google.com/p/tesseract-ocr/downloads/list

Το αποσυμπιέζουμε και τρέχουμε μέσα στον φάκελό του.
Κώδικας: Επιλογή όλων
./configure
make
sudo make install


Το make θα τρέξει αρκετή ώρα.

Κατόπιν κατεβάζουμε και αποσυμπιέζουμε το αρχείο με τα ελληνικά ή οποια άλλη γλώσσα θέλουμε
http://tesseract-ocr.googlecode.com/files/ell.traineddata.gz
στον φάκελο
Κώδικας: Επιλογή όλων
/usr/local/share/tessdata


2ος Τρόπος. Μπορούμε να κατεβάσουμε έτοιμα πακέτα deb από εδώ

32Bit
https://launchpad.net/~alex-p/+archive/ ... ob/2147258
64Bit
https://launchpad.net/~alex-p/+archive/ ... ob/2423806

Θέλουμε τα (για ubuntu 10.10)
https://launchpad.net/~alex-p/+archive/notesalexp/+buildjob/2147258/+files/tesseract-ocr_3.0.0%2Bsvn550-1ppa1%7Emaverick1_i386.deb
και το
https://launchpad.net/~alex-p/+archive/notesalexp/+buildjob/2147258/+files/tesseract-ocr-ell_3.0.0%2Bsvn550-1ppa1%7Emaverick1_all.deb
για τα ελληνικά.
Αν θέλουμε και άλλες γλώσσες κατεβάζουμε τα αντίστοιχα πακέτα.

(για 11.10)
https://launchpad.net/~alex-p/+archive/ ... 1_i386.deb
https://launchpad.net/~alex-p/+archive/ ... c1_all.deb


3ος Τρόπος. Μπορούμε να προσθέσουμε το αποθετήριο ppa όπου θα μας δώσει στο κέντρο λογισμικού τα νέα πακέτα του tesseract. Αυτή η μέθοδο δεν προτείνετε γιατί θα μας δώσει πολλά νέα πακέτα για πολλά προγράμματα τα οποία μπορεί να μην είναι σταθερά.

Κώδικας: Επιλογή όλων
sudo add-apt-repository ppa:alex-p/notesalexp
sudo apt-get update
sudo apt-get upgrade

Μετά μπορούμε από το Synaptic να προσθέσουμε το tesseract 3 και τα γλωσσικά πακέτα.





Αν μας βγάλει κάποιο error ή δεν βγάλει καθόλου κείμενο τρέχουμε σε τερματικό
Κώδικας: Επιλογή όλων
tesseract eikona.tif text -l ell


Αν βγάλει :
1. libtiff.so.3: cannot open shared object file: No such file or directory
Τότε τρέξτε
cd /usr/lib/
sudo ln -s libtiff.so.4 libtiff.so.3

2. tesseract: error while loading shared libraries: liblept.so.0: cannot open shared object file: No such file or directory
Τότε τρέξτε
cd /usr/lib/
sudo ln -s liblept.so.1 liblept.so.0


Creative Commons License
Η εργασία υπάγεται στην άδεια Creative Commons Αναφορά-Μη εμπορική χρήση-Παρόμοια διανομή 3.0 Ελλάδα

Re: OCR ελληνικών (και όχι μόνο) χαρακτήρων στο linux

ΔημοσίευσηΔημοσιεύτηκε: 31 Ιαν 2011, 03:42
από ftso
nice :thumbup:

Re: OCR ελληνικών (και όχι μόνο) χαρακτήρων στο linux

ΔημοσίευσηΔημοσιεύτηκε: 31 Ιαν 2011, 04:11
από ecatodarcus
Μπράβo the_eye!!!
εγώ είχα απεγκαταστήσει το OCRfeeder, μετά κατέβασα τα deb πακέτα, τα έκανα εγκατάσταση, έκανα πάλι εγκατάσταση τον OCRfeeder με τις ρυθμίσεις που υπέδειξες αλλά δεν διαβάζει καθόλου το κείμενο.Εικόνα

Uploaded with ImageShack.us
ορίστε και το screenshot. όση ώρα και να το αφήσω δεν κάνει κάτι. ακόμα και αν πατήσω το πάνω κουμπάκι και από image το κάνω text δεν κάνει κάτι. και φόρτωσα τόσο tif όσο και jpg.
τι μπορεί να έκανα λάθος?
ευχαριστώ

Re: OCR ελληνικών (και όχι μόνο) χαρακτήρων στο linux

ΔημοσίευσηΔημοσιεύτηκε: 31 Ιαν 2011, 04:14
από the_eye
Δοκίμασε από κονσόλα
Κώδικας: Επιλογή όλων
tesseract eikona.tif text -l ell

αν σου βγάλει κάτι γράψτο εδώ.

Re: OCR ελληνικών (και όχι μόνο) χαρακτήρων στο linux

ΔημοσίευσηΔημοσιεύτηκε: 31 Ιαν 2011, 04:16
από ecatodarcus
Κώδικας: Επιλογή όλων
tesseract: error while loading shared libraries: liblept.so.0: cannot open shared object file: No such file or directory


αυτό έβγαλε. είναι βιβλιοθήκη που πρέπει να εγκαταστήσω?

Re: OCR ελληνικών (και όχι μόνο) χαρακτήρων στο linux

ΔημοσίευσηΔημοσιεύτηκε: 31 Ιαν 2011, 04:21
από the_eye
Για κάνε
Κώδικας: Επιλογή όλων
sudo apt-get install libleptonica

και ξαναδοκίμασε στο τερματικό

Re: OCR ελληνικών (και όχι μόνο) χαρακτήρων στο linux

ΔημοσίευσηΔημοσιεύτηκε: 31 Ιαν 2011, 04:29
από ecatodarcus
Κώδικας: Επιλογή όλων
tesseract: error while loading shared libraries: liblept.so.0: cannot open shared object file: No such file or directory

πάλι το ίδιο έβγαλε.
την βιβλιοθήκη την είχε ήδη εγκατεστημένη.

Re: OCR ελληνικών (και όχι μόνο) χαρακτήρων στο linux

ΔημοσίευσηΔημοσιεύτηκε: 31 Ιαν 2011, 04:45
από the_eye
Τότε τρέξτε
Κώδικας: Επιλογή όλων
cd /usr/lib/
sudo ln -s liblept.so.1 liblept.so.0

Re: OCR ελληνικών (και όχι μόνο) χαρακτήρων στο linux

ΔημοσίευσηΔημοσιεύτηκε: 31 Ιαν 2011, 05:05
από ecatodarcus
σωστός!!!τώρα λειτουργει. όπως είπες κάνει αρκετά λαθάκια αλλα είναι η πρώτη προσπάθεια!!!

2 ερωτήσεις:
1)αν θέλω να βάλω και τα αγγλικά μέσα στις γλώσσες κατεβάζω το πακέτο, το κάνω install και μετά προσθέτω άλλη μια φορά την tesseract αλλα αυτή τη φορά με την αγγλική γλώσσα οπότε όταν θα φορτώνω την εικόνα μου θα του λέω και με ποιά από τις 2 θα το διαβάσει?
2)η τελευταία εντολή τi έκανε? αν κατάλαβα καλά είτε καλέσει το μια βιβλιοθήκη το πρόγραμμα είτε την άλλη θα χρησιμοποιηθούν και οι 2?
και πάλι σε ευχαριστώ

Re: OCR ελληνικών (και όχι μόνο) χαρακτήρων στο linux

ΔημοσίευσηΔημοσιεύτηκε: 31 Ιαν 2011, 05:09
από the_eye
1) Για αγγλικά την παράμετρο θα την κάνεις -l eng
2) Ζητούσε μια ποιο παλιά έκδοση της βιβλιοθήκης. Εμείς κάναμε μια συντόμευση με το όνομα της παλιάς να οδηγεί στην καινούρια.

Για καλή ποιότητα αναγνώρισης να scanάρεις στα 300dpi

Ενημέρωσα και τον οδηγό έτσι ώστε να καλύπτει και αυτό το πρόβλημα.