Tesseract to aplikacja służąca do automatycznego rozpoznawania tekstu (ang. Optical Character Recognition, OCR). Pierwotnie była ona rozwijana przez firmę Hewlett Packard. W 2005 roku kod aplikacji został uwolniony na licencji Apache. W chwili obecnej jego rozwój jest wspierany przez Google. We wrześniu 2010 opublikowano wersję 3.0, obok wielu innych nowych funkcji oferuje on również wsparcie dla języka polskiego.
Wiki na stronach projektu Tesseract jest chwilami niespójna dlatego zdecydowałem się opisać moje doświadczenia związane z instalacją wersji 3.0. Instalacji dokonałem przy wykorzystaniu Ubuntu 10.10 w wersji serwerowej działającej na wirtualnej maszynie stworzonej przy użyciu Oracle Virtual Box.
W pierwszej kolejności należy zainstalować build-essential i autoconf:
sudo apt-get install build-essential sudo apt-get install autoconf
Następnie – zgodnie z tym co napisano na Wiki projektu, trzeba zainstalować wykorzystywane przez aplikację biblioteki:
sudo apt-get install libpng12-dev sudo apt-get install libjpeg62-dev sudo apt-get install libtiff4-dev sudo apt-get install zlib1g-dev
Proszę zwrócić uwagę, że na stronie Tesseract’a jest błąd w nazwie pakietu zlib1g-gev.
Próbowałem zainstalować libleptonica (biblioteka Leptonica jest wymagana) z pakietu dostępnego w domyślnych repozytoriach Ubuntu, ale skrypt ./configure Tesseract’a nie wykrywa tak zainstalowanej biblioteki. Z problemem tym można sobie poradzić kompilując Leptonicę ze źródeł. Ściągnąłem źródła do wersji 1.6.7 z strony projektu. Proces budowania wygląda następująco:
./configure make sudo make install sudo ldconfig
Kolejny krok to ściągnięcie źródeł tesseract-3.00.tar.gz ze strony projektu. Należy rozpakować archiwum, wejść do katalogu tesseract-3.0 i wydać polecenia:
./runautoconf ./configure
Po wywołaniu polecenia ./configure należy sprawdzić zawartość pliku config_auto.h pozwoli to określić czy wszystkie zależności zostały przez skrypt wykryte. Plik powinien zawierać dyrektywę #define odkomentowaną dla następujących zmiennych AVE_LIBLEPT, HAVE_LIBPNG, HAVE_LIBTIFF, HAVE_LIBJPEG oraz HAVE_ZLIB.
make sudo make install sudo ldconfig
Bez wydania polecenia ldconfig Tesseract może się w ogóle nie uruchomić.
Teraz wystarczy już tylko ze strony projektu ściągnąć pliki zawierające wsparcie dla potrzebnych języków i skopiować je do katalogu z ustawieniami, który domyślnie znajduje się w /usr/local/share/tessdata. Aby uruchomić OCR wystarczy wydać polecenie:
tesseract phototest.tiff out.txt -l eng more out.txt
Mam nadzieje, że powyższa instrukcja okaże się przydatna.
Przypuszczam, że przyczyną „niewykrycia” zainstalowanej z pakietów biblioteki był brak pakietu libleptonica-dev, w którym znajdują się pliki nagłówkowe potrzebne do kompilacji. Taka jest logika systemu pakietowego w Ubuntu (i pokrewnych): jeśli do działania binariów potrzebna jest biblioteka xyz, to do kompilacji potrzebujemy xyz-dev.
Dziękuje za zwrócenie uwagi, przyznam szczerze, że nie często zdarza mi się kompilować coś ze źródeł (przynajmniej nie w kontekście rzeczy napisanych w C++). Nie wgłębiałem się w to w jaki sposób Tesseract wykorzystuje Leptonice, myślałem, że wystarczy dostęp do biblioteki łączonej dynamicznie.
Witam!
Widzę, że niepotrzebnie Pan skomplikowal dość prostą rzecz.
W tym repozytorium jest dostępna najnowsza paczka na Ubuntu z Tesseractem i min. GScanem .
https://launchpad.net/~alex-p/+archive/notesalexp/+index?start=75&batch=75
Dwa odradzam wszystkim kompilowanie i instalowanie na sztywno w takich systemach jak Ubuntu, rozumiem Gentoo czy Slackware ale nie Ubuntu. Jeżeli już lepiej zbudować paczkę .deb i ją zainstalować. Przez ręczna kompilację i instalację potem po jakimś czasie pogubimy się w zależnościach 🙂 . A tak paczuszkę upgradujemy i działa dalej.
Pozdrawiam
Dzięki za te uwagi 😉
Myślę, że powinienem zainteresować się jakąś bardziej dynamiczną dystrybucją niż Ubuntu. Debian jest znany z tego, że nie ma tam super świeżego softu.