Εκπαίδευση ocropus για ελληνικά

Όνομα: Παντελής Κουκούσουλας, moc.liamg|ssotkp#moc.liamg|ssotkp
Project: Ocropus: http://code.google.com/p/ocropus/
Γλώσσα: Python, math, bash, ´Ισως και λίγο imagemagick ή κάτι τέτοιο
Στόχος: Αναγνώριση ελληνικής γραφής
Άτομα: 3+
Βαθμός Δυσκολίας: Εύκολες και δύσκολες εργασίες

Περιγραφή του προβλήματος

Δε θα ήταν ωραία να υπήρχε ένα σοβαρό, ελεύθερου λογισμικού πρόγραμμα αναγνώρίσης γραφής (OCR)
που να υποστηρίζει την ελληνική γλώσσα; Για πολλούς χρήστες, αυτή η λειτουργικότητα είναι
το "κρίσιμο βήμα" / η σταγόνα που ξεχειλίζει το ποτήρι, ώστε να μπορέσουν να απελευθερωθούν
από τα windows.

Επίσης ανοίγονται πολύ ελκυστικές προοπτικές έρευνας, αφού τα διάφορα (ελληνικά και μή) ερευνητικά
ιδρύματα που ασχολούνται με την αναγνώριση γραφής των ελληνικών, θα έχουν ένα μέσο για να
δείξουν την τυχόν ανωτερότητα των μεθόδων που αναπτύσσουν. (<rant>σε αντίθεση με την τωρινή
κατάσταση όπου το μόνο που παράγεται είναι "μισά papers"</rant>)

Το project ocropus http://code.google.com/p/ocropus/ το οποίο χρηματοδοτήθηκε από τη google
στα πλαίσια του προγράμματος μαζικής ψηφιοποίησης βιβλίων της εν λόγω εταιρείας είναι μια αξιόλογη
προσπάθεια για την παραγωγή ενός τέτοιου "σοβαρού" προγράμματος αναγνώρισης γραφής. O "αρχηγός"
του project είναι ο Thomas Breuel, αρκετά γνωστός στην ερευνητική κοινότητα του OCR/Document Recognition.

Η πρόσφατη έκδοση 0.4, που σήμανε και την αρχή της χρήσης ενός Distributed Version Control System
(mercurial) από το project έχει γίνει πλέον αρκετά καλή για να μπορεί να χρησιμοποιηθεί και από μή
ερευνητές.

Το ocropus είναι ουσιαστικά μισό OCR μισό OCR framework, δεδομένου ότι υποστηρίζει scripting
τόσο για τη φάση του training όσο και για τη φάση του recognition. Σχετικά πρόσφατες πληροφορίες
για το training υπάρχουν εδώ:
http://www.slideshare.net/tmbdev/ocropus-04-status

Η δική μας δουλειά είναι να "εκπαιδεύσουμε" το ocropus ώστε να διαβάζει ελληνικά (ή τουλάχιστον
να ξεκινήσουμε αυτή την προσπάθεια). Αυτό σημαίνει τη δημιουργία κατάλληλου language model
(βασισμένου σε Finite state transducers / FSTs) καθώς και την παραγωγή training vectors δηλαδή
ζευγαριών εικόνας - κειμένου που περιέχεται στην εικόνα.

Έχω την εντύπωση ότι ο τωρινός recognizer που χρησιμοποιεί το ocropus είναι ένα Multi-layer Perceptron
(MLP), οπότε το project μπορεί να έχει ενδιαφέρον για όσους ασχολούνται ή έχουν ασχοληθεί με νευρωνικά
δίκτυα και την "προπόνησή" τους.

Κάποια από τα ζευγάρια θα τα δημιουργήσουμε εντελώς manually, κάποια άλλα θα τα φτιάξουμε μέσω
scripts (π.χ., χρησιμοποιώντας pango-cairo για να ζωγραφίζουμε ένα γράμμα σε διάφορες γραμματοσειρές
ή παράγοντας σελίδες pdf με το xetex). Γενικά θα πρέπει να αυτοσχεδιάσουμε λίγο αλλά αφού τα scripts
και προγράμματα που θα φτιάξουμε θα είναι μιας χρήσης δε δεσμευόμαστε από ανάγκη maintainability
ή καλού στυλ. Όποια τεχνική δουλεύει, μας κάνει.

Αν πετύχουμε ικανοποιητική απόδοση (ποσοστό αναγνώρισης) το αποτέλεσμα πολύ πιθανόν να οδηγήσει
σε κάποιο paper (τουλάχιστον για κάποιο τοπικό/πανελλήνιο συνέδριο) δεδομένου ότι θα είναι το πρώτο
ελεύθερου λογισμικού πρόγραμμα αναγνώρισης ελληνικής γραφής που θα δουλεύει και θα μπορούν να
το χρησιμοποιούν διάφοροι ερευνητές ως baseline για να αξιολογούν τα δικά τους συστήματα.

Για το συγκεκριμμένο project μπορούν να αξιοποιηθούν πάσης φύσεως ικανότητες, από απλή πληκτρολόγηση
μέχρι scripting (bash/python/lua), γνώσεις σε νευρωνικά δίκτυα, καλή γνώση των κανόνων της ελληνικής γλώσσας,
ως και προγραμματισμός σε C++. Όσο πιο μεγάλη και ετερογενής ομάδα συμμετέχει, τόσο καλύτερο θα είναι το
τελικό αποτέλεσμα.

Πιθανότατα θα ζητήσουμε βοήθεια και από τον Thomas και την ομάδα του οι οποίοι ως τώρα είναι ιδιαίτερα
πρόθυμοι και συνεργάσιμοι σε ανάλογες προσπάθειες.

Δηλώσεις Συμμετοχής

Ενδιαφερόμενος email Ημέρες Τομέας Ενασχόλησης
Κωστής Αναγνωστόπουλος ankostis sto gmail Σάββατο ως Τρίτη programming, scripting, αντι-καλιγράφος
(αν γίνεται κι άλλες οδηγίες για προετοιμασία?)
Μπλα Μπλα moc.liamg|alpmalpm#moc.liamg|alpmalpm Όλες -
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License