Blog (31)
Komentarze (1k)
Recenzje (4)

OCR na Linuxie

@kaisujOCR na Linuxie22.10.2014 17:31

W swoim ostatnim tekście napisałem, że w porównaniu z Windowsem, kwestia rozpoznawania tekstów nie wygląda na Linuxie za dobrze. W komentarzach pojawiły się nawet stwierdzenia, że na Linuxie nie ma niczego, co by potrafiło dobrze rozpoznać polski tekst. Postanowiłem zatem zrobić prosty test dwóch łatwych w użyciu narzędzi OCR.

Jak testowałem

Wkleiłem jedną stronę tekstu do Writera (320 słów) i zapisałem do PDFa w trzech różnych wersjach czcionkowych: Liberation Sans, Liberation Serif, Ubuntu Light. Następnie wydrukowałem te trzy strony, zeskanowałem (300 DPI) i zapisałem do pliku jpg. Następnie każdym z programów starałem się rozpoznać każdy z plików. Programy oceniałem przede wszystkim pod kątem jakości rozpoznania, ale także prędkości oraz łatwości instalacji i korzystania z programu. Rozpoznany tekst kopiowałem do Writera, aby wychwycić błędy autokorektą.

Lios

Instalacja: paczka deb ze strony twórcy lub oficjalne repo.

Obsługa: Dosyć intuicyjny GUI. Obsługa skanowania i kamerki. Możliwość ustawienia automatycznego interwału między skanowaniem wielu stron.

Formaty: JPG (PDF wydaje się nie działać - konwersja PDFa do obrazu trwa wieczność)

Silnik: W zależności od zainstalowanych w systemie.

LIOS - Linux Intelligent OCR Solution - wygodny i skuteczny
LIOS - Linux Intelligent OCR Solution - wygodny i skuteczny

LIBERATION SERIF (Cuneiform)

Czas: 6 sekund

Błędy: 10/320 - z czego kilkukrotnie znak myślnika zastąpiony tymi samymi krzaczkami (łatwe do poprawienia), w jednym miejscu brak kreski nad "ó", raz "óa" zamiast "da", raz "rn" zamiast "m". Ogólnie bardzo dobry wynik. Każda rozpoznana linijka kończy się znakiem końca paragrafu.

LIBERATION SANS (Cuneiform)

Czas: 5 sekund

Błędy: 6/320 - ogólnie błędy dokładnie tego samego typu (głównie myślniki).

UBUNTU LIGHT (Cuneiform)

Czas: 6 sekund

Błędy 9/320 - niemal identycznie jak Liberation Serif.

Silnik Tesseract wymaga instalacji języka polskiego z repo.

LIBERATION SERIF (Tesseract)

Czas: 10 sekund

Błędy: 4/320 - Tesseract dobrze radzi sobie z myślnikami. Popełnione błędy są drobne (wstawiona niepotrzebnie spacja wewnątrz wyrazu, zgubiona kropka w domenie). Tak naprawdę znalazłem tylko 1 ważniejszy błąd. Znakomita jakość rozpoznania. Jedyne czego się można czepić to te znaki końca paragrafu.

LIBERATION SANS (Tesseract)

Czas: 10 sekund

Błędy: 2/320 - Tym razem kropka w domenie dobrze rozpoznana. Jeden błąd to brak spacji między wyrazami. Jak widać czcionka nieszeryfowa jest "widziana" jeszcze lepiej.

UBUNTU LIGHT (Tesseract)

Czas: 8 sekund

Błędy:13/320 - z czego aż 12 błędów to brak spacji między wyrazami, a tylko 1 to błąd w pisowni samego wyrazu. Jak widać nieco mniej klasyczna czcionka Ubuntu sprawia pewne problemy.

UWAGI: Koniecznie trzeba zaznaczyć manualne ustawianie orientacji strony. Przyspiesza to kilkukrotnie proces rozpoznawania i pozwala uniknąć błędów niepotrzebnego obrócenia strony o 90 stopni.

Ocrfeeder

Instalacja: oficjalne repo.

Obsługa: Prosty i funkcjonalny GUI. Możliwość łatwego zaznaczenia obszaru, który chcemy rozpoznać i szybkiego przełączania się między silnikami rozpoznawania. Możliwość eksportu do ODT. Pożera spore ilości pamięci. Działa rozpoznawanie z PDFów.

Formaty: JPG i PDF

Silnik: W zależności od zainstalowanych w systemie.

OCRFeeder - ciekawa alternatywa dla Lios
OCRFeeder - ciekawa alternatywa dla Lios

Zastosowanie tych samych silników daje takie same efekty jak w przypadku Lios. Różnica jest jednyie w komforcie pracy z programami. Całościowo bardziej pasuje mi chyba OCRFeeder, ale LIOS z pewnością jest warty wypróbowania, zwłaszcza że już niebawem ma ukazać się wersja 2.0, która ma przynieść nowości.

Podsumowanie

Wygląda na to, że kwestia rozpoznawania tekstu na Linuxie wygląda co raz lepiej. Przetestowane przeze mnie 2 silniki dają bardzo dobre wyniki. Rozpoznane teksty są w pełni używalne i wymagają jedynie formatowania. Wydaje mi się, że na domowe potrzeby w zupełności to wystarczy. Z pewnością oba programy zapewniają tylko podstawową funkcjonalność, a rozpoznawanie złożonych dokumentów, zawierających tabele, elementy graficzne, byłoby bardzo uciążliwe. Pod tym względem Abby FineReader jest o dwie klasy lepszym narzędziem. Ma też swoją cenę.

Aktualizacja

Idąc za słuszną sugestią Januszka, wzbogacam test o rozpoznanie tekstu sfotografowanego. Obraz pozyskany skanerem ma najwyższą możliwą jakość. Sam byłem ciekaw jak wypadnie najlepszy silnik w trudniejszych warunkach. Zrobiłem więc koszmarne zdjęcie komórką, które zamieszczam poniżej, aby lepiej uzmysłowić czytelnikowi stopień komplikacji. Jak widać kadr jest niedoświetlony, aparat nie był do końca w zenicie, a dodatkowo całość lekko uchwycona ze skosu. Jutro, przy lepszym świetle, zrobię jeszcze dodatkowe zdjęcia i wzbogacę wpis nowymi wynikami.

Zdjęcie wykonane telefonem
Zdjęcie wykonane telefonem

Pierwsza próba rozpoznania tekstu była dosyć nieudana. Zaznaczenie ręcznie całej strony spowodowało pominięcie niektórych fragmentów. Dlatego w drugim podejściu podzieliłem cały tekst na 3 bloki i rozpoznawałem każdy z bloków oddzielnie.

Błędy 12/320 - przy czym zdecydowanie ucierpiał tekst na lewym marginesie, gdzie jest najciemniejszy fragment. Środkowa część zdjęcia została rozpoznana bardzo dobrze. Spodziewam się lepszych wyników przy lepszym świetle.

Zdjęcie wykonane aparatem fotograficznym z lampą błyskową.
Zdjęcie wykonane aparatem fotograficznym z lampą błyskową.

Zgodnie z przewidywaniami, zdjęcie wykonane aparatem fotograficznym z lampą błyskową zostało rozpoznane niemal idealnie. Zdjęcie zostało nieznacznie poprawione w programie graficznym - podniesiony został kontrast.

Błędy: 3/320 - "0" zamiast "o", brak spacji po myślniku, brak kropki w domenie.

Stephen Parata - Szkoła Programowania C++ (Strona 168 - Wydanie V)
Stephen Parata - Szkoła Programowania C++ (Strona 168 - Wydanie V)

W odpowiedzi na prośby z komentarzy, przetestowałem też zeskanowaną stronę z książki. Wybrałem programowanie, ponieważ na jednej stronie pojawia się kilka różnych czcionek, a w dodatku pojawiają się znaki specjalne, np. ampersandy, które dodatkowo mogą zmylić OCR'a. Jak być może widać za zdjęciu powyżej, tusz z drugiej strony kartki przebija nieco w miejscach nie zapełnionych tekstem. Wydaje mi się, że nie wpłynęło to jednak na jakość rozpoznania. Linie poziome z góry i dołu strony zostały automatycznie pominięte przy rozpoznawaniu. W jednym miejscu pojawił się ciąg krzaczków nie związany z żadnym wyrazem.

Błędy 10/320 plus wspomniane krzaczki do usunięcia. Moim zdaniem jest to całkiem niezły wynik.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.