Wstydliwe dzieje OCR

Tak jak w domu powieszonego nie rozmawia się o sznurze, tak w przypadku Linuksa i oprogramowania do rozpoznawania tekstu lepiej zachować milczenie. A przynajmniej do jakiegoś czasu temat był na tyle wstydliwy, że w dobrym tonie leżało omijanie go szerokim łukiem. Jednak z biegiem lat temat OCR dla Linuksa malutkimi kroczkami rozwijał się do jako takiej używalnej formy, a przełomem stał się otwarto-źródłowy silnik Tesseract. W przeciwieństwie do wielu akademickich projektów, ten silnik miał istotną przewagę – potrafił rozpoznawać litery, jak też za jego rozwojem stało/stoi Google. Na dodatek, w repozytoriach najnowszego wydania Ubuntu 12.04 pojawiła się w końcu paczka umożliwiająca obsługę języka polskiego (tesseract-ocr-pol), co niewątpliwie zwiększyło atrakcyjność tej pozycji – przynajmniej dla osób posługujących się językiem polskim. Żeby nie było do końca różowo, program jest przeznaczony do niewygodnej obsługi z poziomu terminala. Jednak powstało kilka graficznych nakładek rozwiązujących tę niedogodność i jedną z nich jest program gImageReader. Dlaczego akurat ten projekt? Bo nie wybrzydzał przy obsłudze naszego rodzimego dialektu (niektóre programy nie zechciały pokazać dostępnego języka polskiego), umożliwia obroty obrazu (to takie oczywiste) i nie jest skomplikowany w obsłudze. Na dodatek można nim uzyskać zupełnie przyzwoite efekty konwersji zeskanowanych tekstów, a jeszcze lepsze podczas przeróbki plików .pdf. Pomimo dość ubogiej liczby opcji, mamy tutaj pod ręką wszystko co może się przydać – obrót grafiki, jasność i kontrast obrazu, oraz jego rozdzielczość. Zmiana rozdzielczość przydatna jest w przypadku niemrawych skanów i wspomaga dokładność algorytmów rozpoznających znaki. Niestety, materiały muszą zostać uprzednio zeskanowane (?) i dopiero wczytane do programu (plik graficzny bądź pdf).Po wczytaniu skanu/skanów, możemy przystąpić do całościowego rozpoznania, bądź wybrania konkretnych rejonów (niebieska ramka). Wynik otrzymamy w kolumnie po prawej stronie, skąd możemy skopiować go do dalszej obróbki w edytorze tekstu. Poniżej mały test rozpoznawania polskiego słowa pisanego i wydrukowanego na papierze gazetowym w okolicach 1960 roku. Przykład zawiera efekt rozpoznania znaków przy 100% rozdzielczości materiału wejściowego (DPI 100%), 200% (DPI 200%) oraz 400% (DPI 400%).

gImageReader w akcji
Pomimo dość charakterystycznej i niewyraźnej czcionki gazetowej, wynik jest całkiem przyzwoity. Oczywiście przy porównaniu do osiągów i stopnia rozbudowania komercyjnych programów można marudzić, ale w obliczu tego co reprezentowało OCR dla Linuksa parę lat temu – jest świetnie.Instalacja dla Ubuntu 12.04 oraz Minta 13 jest nieco wyboista – bo aby zainstalować gImageReader musimy ściągnąć paczkę .deb ze strony projektu, oraz dopilnować, żeby w systemie znalazły się wszystkie zależności. Zatem:sudo apt-get install tesseract-ocr tesseract-ocr-pol python-gtk2 python-cairo python-gtkspell python-enchant python-popplerI dopiero wtedy klikamy dwukrotnie na pobraną paczkę .deb z gImageReader