Pisać czy skanować?

Jeżeli przyjmiemy, że człowiek bez specjalnego przygotowania pisze na klawiaturze z szybkością 120 znaków na minutę, to przepisanie strony tekstu zajmie mu około pół godziny. Skaner, komputer i oprogramowanie do rozpoznawania tekstu mogą wykonać tę samą pracę w trzy minuty. Dlaczego więc wszyscy nie korzystamy z narzędzi OCR?

W firmach, które gromadzą duże ilości danych, korzyści z zastosowania komputerów do automatycznego wczytywania formularzy, archiwizowania listów lub odczytywania adresów z przesyłek pocztowych wydają się ogromne. W przypadku instytucji-molochów, operujących nierzadko nawet milionami dokumentów – takich jak np. Zakład Ubezpieczeń Społecznych – wdrażane są wielkie projekty informatyczne, dzięki którym automatyzuje się procedurę obiegu danych. Systemy takie są dostosowane do indywidualnych potrzeb danej firmy. Narzędzie typu OCR jest w nich tylko jednym modułem, zazwyczaj niesamodzielnym pod względem funkcjonalnym; program do rozpoznawania tekstu jest najczęściej zintegrowany z bazą danych, w której przechowuje się zgromadzone informacje. Opracowane w ten sposób oprogramowanie jest na ogół ściśle dopasowane do wymagań i potrzeb konkretnej firmy. Użytkownicy indywidualni, małe firmy i biura korzystają z zupełnie innych narzędzi. Niektóre z nich przetestowaliśmy w software’owym laboratorium CHIP-a. Szczegółowe kryteria doboru aplikacji stających w szranki przedstawiono w dalszej części artykułu.

O problemach słów parę

Przetworzenie strony zeskanowanej z książki do postaci edytowalnego tekstu jest zadaniem niezwykle złożonym (szczegółowy opis takiego procesu zamieściliśmy w CHIP-ie 11/98, s. 228). O tym, jak trudny do rozwiązania jest ten problem, pośrednio świadczy fakt, że obecnie aplikacje klasy OCR do zastosowań na rynku SOHO oferuje zaledwie kilka firm na świecie.

Czasami zadanie rozpoznania tekstu kryje w sobie dodatkowe pułapki. Są one związane z koniecznością odczytania znaków diakrytycznych specyficznych dla konkretnego języka. W Polsce trudno brać pod uwagę takie pakiety, jak OmniPage Pro,TextBridge Pro czy TypeReader Pro – żaden z nich bowiem nie rozpoznaje “ogonków”. W związku z tym wymienione narzędzia raczej nie nadają się do zastosowania w naszych krajowych warunkach. Krótko mówiąc, podczas podejmowania decyzji o zakupie programu OCR Polacy mogą narzekać na ograniczone pole manewru. Obecnie na naszym rynku dostępnych jest dziewięć aplikacji pięciu producentów. Sześć spośród nich dołączanych jest bezpłatnie do skanerów.

Dobry znaczy skuteczny

W trakcie testowania programów największy nacisk został położony na ocenę umiejętności bezbłędnego przekształcenia obrazu w tekst. Skuteczność rozpoznawania mierzyliśmy jako stosunek liczby poprawnie zidentyfikowanych słów do liczby wszystkich słów występujących w przetwarzanym tekście.

Niezależnie od jakości zeskanowanego obrazu najlepsze rezultaty rozpoznawania osiągały trzy wersje FineReadera 4.0 rosyjskiej firmy Abbyy oraz PrimaPAGE 98. Ten ostatni wprawdzie jest firmowany przez producenta skanerów Primax, ale w rzeczywistości przy jego tworzeniu również wykorzystano technologię opracowaną przez firmę Abbyy. Ponadto ze względu na identyczne algorytmy OCR zaimplementowane w wersjach Professional i Standard FineReadera wszystkie wyniki uzyskane przez obie aplikacje w testach niemal dokładnie się pokrywały.

W najlepszym przypadku, tzn. przetwarzając strony zeskanowane z książek wydrukowanych czcionką dobrej jakości (czyli z małą liczbą zakłóceń), FineReader Professional i Standard poprawnie rozpoznały 98,7% słów. Przy założeniu, że średnia długość słowa w języku polskim to siedem liter, a na stronie A4 znajduje się około 4000 znaków, oznacza to konieczność skorygowania siedmiu na 500 wyrazów. Łączny czas skanowania, pracy programu OCR oraz korekty nie powinien przekroczyć 3-4 minut. Należy uznać to za wynik bardzo dobry, ponieważ nawet zawodowej maszynistce przepisanie strony tekstu z prędkością 600 znaków/min zajęłoby blisko siedem minut! Nieznacznie słabsze rezultaty osiągnęły FineReader Sprint i PrimaPAGE (odpowiednio 98,4% i 98,2%). Najsłabiej wypadły Readiris 5.01 i Recognita Standard OCR 3.2, które wymagały poprawienia około czterdziestu słów na stronę (wynik ok. 92%).

Wszystkie programy radziły sobie niemal równie dobrze przy rozpoznawaniu artykułów z gazet codziennych, takich jak Gazeta Wyborcza i Super Express. Skuteczność wersji Professional i Standard FineReadera została zmierzona na 98,5%, a PrimaPAGE ustąpił im zaledwie o 0,1%. Jeszcze lepszy wynik osiągnął FR Sprint (98,7%). Winę za niektóre błędy bardziej rozbudowanych wersji FineReadera ponosi “przebiegły” algorytm analizy językowej. Przykładowo w jednym ze słów literę rozpoznaną jako “l” przekwalifikował na “ł”, jako że zgodnie ze słownikiem tylko w drugim przypadku wyraz ten jest poprawny. Algorytm nie wziął jednak pod uwagę, że chodziło akurat o nazwisko, które nie ma semantycznego znaczenia w naszym języku i dlatego nie występuje w słowniku. Widocznie system ekspertowy FineReadera Sprint obdarzony jest mniejszym “sprytem” i nie podejmował aż tak głębokiej analizy. Dzięki temu wspomniane słowo zinterpretował tak, jak zostało ono oryginalnie zapisane. Ponownie na ostatnich pozycjach, tym razem w rozpoznawaniu druku gazetowego, uplasował się Readiris z wynikiem 93,7%, nieznacznie wyprzedzając Recognitę 3.2, która osiągnęła skuteczność na poziomie 91,0%.

Zaczęły się schody

Trudności rozpoczęły się wraz z rozpoznawaniem maszynopisów. W tym przypadku FineReader Professional i Standard nie zanotowały zauważalnego pogorszenia skuteczności i bezbłędnie zidentyfikowały blisko 98% słów. PrimaPAGE miał przede wszystkim problemy z identyfikacją podkreślonego zdania, które potraktował jak jedno długie słowo, ale mimo to uzyskał świetny wynik (97,5%). Słabiej wypadł FineReader Sprint, który w przeciwieństwie do swoich bogatszych wersji nie daje użytkownikowi możliwości określania typu tekstu jako maszynopis. Zaważyło to na skuteczności rozpoznawania, która – podobnie jak w przypadku TextBridge’a – wyniosła 93%. Innymi słowy, wystąpiła konieczność skorygowania 33 słów na jednej stronie maszynopisu. Natomiast niska skuteczność Recognity 3.2 (65,6%) oznaczała konieczność poprawienia aż co trzeciego słowa! Wyniki tego testu skłoniły nas nawet do przyjęcia pewnego progu skuteczności, poniżej którego nie przyznawaliśmy już żadnych punktów. Uznaliśmy, że 75% prawidłowo rozpoznanych słów to najgorszy wynik, który jest jeszcze do zaakceptowania i tekst nadaje się do korekty. W innym przypadku po prostu lepiej (i szybciej) będzie przepisać go samodzielnie od zera.

Segmentacja strony o tak skomplikowanym układzie to poważne zadanie. Niestety, tym razem część tekstu w lewym dolnym rogu została potraktowana jako tabela.

Prawdziwym torem przeszkód dla wszystkich aplikacji okazały się jednak wydruki z drukarki igłowej. Wprawdzie programiści wyposażyli Recognitę 5.0 w możliwość określenia typu tekstu jako druk mozaikowy, ale wyniki rozpoznawania wskazują, że zastosowany w tym produkcie algorytm nie pracuje najlepiej. Żaden testowany dokument nie był nawet na tyle czytelny, by można było precyzyjnie policzyć liczbę błędów. Równie bezradne były Readiris i Recognita 3.2. Trzeba jednak przyznać, że nawet FineReader Professional i Standard oraz PrimaPAGE, które stosunkowo najlepiej radziły sobie z wydrukiem mozaikowym, popełniły błąd statystycznie w co dziesiątym, a TextBridge w co dziewiątym słowie. Z kolei FineReader Sprint mylił się aż w jednym na siedem wyrazów, co może już skłaniać użytkownika do zastanowienia się, czy nie lepiej przepisać tekst, zamiast poprawiać wyniki rozpoznawania.

Info
Grupa dyskusyjna
Pytania i komentarze do artykułu: #
Pytania techniczne do zagadnień poruszanych w tekście: #
Literatura
Cezary Dołęga: Pecet uczy się czytać, CHIP 11/98, s. 228
Na CHIP-CD w dziale Software | Rozpoznawanie tekstu znajdują się wersje demonstracyjne programów Readiris 5.17 i Fine Reader 4.0b, arkusz kalkulacyjny z wynikami testu oraz artykuł Pecet uczy się czytać, zapisany w formacie PDF
Więcej:bezcatnews