Jak pismo trafia do komputera

Jesień 1989 roku, Berlin Lichtenberg. W kwaterze głównej służb specjalnych NRD panuje nerwowa atmosfera – w Polsce opozycja właśnie doszła do władzy, wielki niedźwiedź siedzi potulnie w rosyjskich ostępach, nikt nie wie, co się stanie. Stąd pośpiech, w którym pracownicy centrali od kilku dni systematycznie przepuszczają przez niszczarki poufne akta.
Skanery książek takie jak APT BookScna 2400rA firmy Kirtas przetwarzają do 1000 stron na godzinę.
Skanery książek takie jak APT BookScna 2400rA firmy Kirtas przetwarzają do 1000 stron na godzinę.

Rezultat to 16 000 tysięcy worków zapełnionych ścinkami z danymi współpracowników wywiadu NRD w Polsce i szczegółami tajnych operacji. Nie spalono ich, tak jak kilka lat później uczyniono z aktami zgromadzonymi przez polskich ubeków. Powód? Niemcy zawsze wierzyli w technologię, a według ówczesnych ekspertów ręczne złożenie tych gigantycznych puzzli zajęłoby ludziom wiele stuleci.

W efekcie worki z pociętymi aktami przetrwały do dziś. A dziś wszystko wygląda inaczej – Wydział Systemów Produkcyjnych i Technologii Projektowych berlińskiego Instytutu Fraunhofera zamierza odtworzyć dokumenty w pięć lat, stosując najnowsze technologie, które będą wykorzystywać funkcje diagnostyczne mające zastosowanie w komputerowym rozpoznawaniu tekstu.

Wyzwanie dla Google’a

Zagadnienie rozpoznawania tekstu nie jest żadną nowością. Na przykład Google skanuje obecnie zasoby bibliotek i otagowuje je tak, żeby były dostępne w Sieci jako wyniki standardowych wyszukiwań. Inny projekt ze świata technologii mobilnych: firma Linguatec oferuje program Shoot & Translate – robimy komórką zdjęcie metki we francuskim supermarkecie albo menu we włoskiej restauracji i po kilku sekundach otrzymujemy angielskie tłumaczenie.

Aby program mógł przełożyć tekst, musi go wcześniej zamienić na znane mu litery. Konieczna do tego technologia Optical  Character  Recognition  (OCR) rozpoznaje znaki za pomocą skanowania optycznego. OCR pozwala na ominięcie żmudnego procesu wpisywania do komputera już wydrukowanego tekstu. Zatrudniony przez Massachusetts Institute of Technology (MIT) w Bostonie Lawrence  Roberts pracował nad procedurami automatycznego rozpoznawania znaków już w latach 60. ubiegłego wieku. Niepraktyczne było to, że stosowano w nich wyłącznie metodę rozpoznawania wzorców (Pattern Matching) – oprogramowanie porównywało znaleziony znak z biblioteką znanych wzorów.

Powstaje tu jednak problem: każdy znak musi mieć ściśle określony kształt, aby został prawidłowo rozpoznany – z literami pisanymi np. kursywą model Pattern Matching nie radził sobie. Dlatego wprowadzono specjalne czcionki, takie jak OCR-A i OCR-B, w przypadku których te same litery bardzo różniły się od siebie. Dzięki temu zdecydowanie zwiększyła się liczba prawidłowo rozpoznanych znaków w danym tekście. Jednak w praktyce mamy przecież do czynienia z wieloma różnymi fontami. Problem rozwiązał w 1976 roku Ray Kurzweil, opracowując system OCR niezależny do czcionki.

Tyle że sam skaner nie potrafi czytać nawet dziś: bez specjalnego oprogramowania otrzymujemy jedynie bitmapy. Tak można digitalizować zdjęcia i mapy, lecz nie uda się to z tekstem – można go, co prawda, zapisać jako obraz, ale wtedy nie będzie się nadawał do przeszukania pod kątem wystąpienia określonych wyrazów lub fraz. I nie poprawi tego ultrawysoka rozdzielczość skanera ani liczba rozpoznawanych przez niego kolorów. Właściwą pomoc mogą zapewnić tylko programy OCR, które umieją czytać i sprawdzać sensowność przetwarzanych tekstów. A jest ich dziś całkiem sporo: do użytku domowego i małych firm. Te specjalistyczne odczytują pismo gotyckie (Abbyy FineReader OCR XIX), a jeszcze inne potrafią rozpoznawać formularze i faktury.

Tak rozpoznaje się teksty

Optyczne rozpoznawanie tekstów składa się z kilku podstawowych kroków:

Krok 1:

Określanie orientacji Ci, którzy korzystają ze skanerów, wiedzą, że im lepsza jakość na wejściu, tym lepszy rezultat skanowania. Testy wykazują, że nawet trochę zanieczyszczone materiały mogą bardzo utrudnić cały proces. I odwrotnie – wysokiej jakości wzorce zapewniają prawie 100-procentową skuteczność rozpoznawania. Aby oprogramowanie OCR mogło osiągnąć tak wysoki wynik, w pierwszym kroku badane jest ustawienie strony – czy tekst układa się w prawidłowe linie, czy też jest może trochę obrócony. Niezwykłe w tym etapie jest to, że dochodzi wówczas do pierwszego próbnego rozpoznawania. Program OCR skacze w tym celu do losowej pozycji dokumentu i próbuje odczytać wycinek tekstu. Jeśli to się nie powiedzie, tekst jest stopniowo odwracany aż do 90 stopni. Jeśli dokument zawiera elementy z tekstami biegnącymi zarówno w poziomie, jak i w pionie, może to nastręczyć problemów. Dlatego software pobiera wiele wycinków z dokumentu i odpowiednio układa w nich teksty.

Krok 2:

reorientowanie stron Typowe programy OCR przetwarzają jedną stronę po drugiej. Jeśli wczytywana jest podwójna strona, odpowiednia procedura dzieli skan na dwie pojedyncze. Algorytm korekcyjny z kolei usuwa zakłócenia, które powstają np. podczas kiepskiej transmisji faksowej. Ale uwaga: i tutaj można natrafić na przeszkody – gdy funkcja korekcji pomyli się, rozpoznając np. “ż” jako “ź”. Inny problem polega na tym, że podajniki skanera nie pracują wystarczająco dokładnie, przez co linie tekstu nie układają się idealnie w poziomie. Globalne odchyłki tego typu są korygowane przez programy OCR automatycznie.

Krok 3:

Analiza układu strony Dwa pierwsze kroki to jedynie gra wstępna – teraz czas na analizę layoutu. Oprogramowanie OCR przeprowadza w tym celu tzw. segmentację, czyli ustala, w jakich obszarach strony mieści się tekst, gdzie umiejscowiono grafikę, czy wstawiono tabele albo znaki specjalne takie jak kody paskowe oraz gdzie znajdują się obszary zupełnie puste. Software wykonuje tę operację strona za stroną. W efekcie struktura każdej z nich jest dzielona na coraz mniejsze elementy: od ogólnego zarysu przez bloki tekstu, akapity i wiersze aż do wyrazów i pojedynczych liter. Eksperci nazywają to wielopoziomową analizą dokumentu.

Ale jak software odróżnia obrazki od tekstu? I jak identyfikuje akapity i wiersze? Na początek kolorowe dokumenty zamieniane są na czarno białe (binaryzacja). Samą analizę można sobie wyobrazić jako spoglądanie na dokument ze zmrużonymi powiekami. Nie można wtedy wprawdzie odczytać tekstu, ale widzi się przybliżoną strukturę strony: bloki tekstu, puste obszary, intensywne gradienty kolorów w obrazach. Program OCR wie, że określone przejścia barw mogą istnieć tylko w elementach graficznych; struktura liniowa wskazuje na akapit – i na podstawie tej wiedzy buduje segmentowy model strony.

Naturalnie mogą tu powstawać błędy, szczególnie w przypadku wyrafinowanych layoutów takich jak tekst na tle grafiki. Programy radzą sobie z takimi wyzwaniami w charakterystyczny sposób: chodzi o podejście wieloetapowe. Jego istota polega na tym, że aplikacje uczą się na własnych błędach – jeśli rozpoznawanie tekstu zawodzi, software zakłada, że być może to, co zakwalifikował jako zbiór liter, jest obrazem. Jeśli i to zawodzi, znów próbuje rozpoznawać znaki, stosując większy kontrast. Po wydzieleniu bloków tekstu proces przebiega już łatwiej, ponieważ paragrafy, linie i słowa wyszukuje się na podstawie odstępów i spacji, a poszczególne litery w odnalezionych wcześniej wyrazach.

Krok 4:

Rozpoznawanie znaków Teraz zrobi się naprawdę gorąco: w tym kroku oprogramowanie OCR musi bowiem pokazać, na co je stać, i optycznie rozpoznać znaki. Istnieją dwie podstawowe metody: rozpoznawanie wzorców (Pattern Matching) oraz rozpoznawanie cech (Feature Matching). W pierwszej wyizolowany z tekstu znak jest po prostu porównywany ze zbiorem dostępnych wzorów. Jeśli jest identyczny z którymś ze wzorców, znak uważa się za rozpoznany. Chociaż to podejście wydaje się rozsądne, w praktyce nie wystarcza. Powód: znak musi zostać idealnie dopasowany. A to oznacza, że używany font musi być zawarty w zbiorze wzorców. Ale i to nie wystarcza, bo przecież słowa w dokumencie mogą być wytłuszczone, zapisane kursywą albo mieć inny rozmiar. A to może całkowicie zmylić algorytm typu Pattern Matching.

Z tego powodu dziś częściej używa się metody rozpoznawania cech, w przypadku której znaki są rozbijane na jeszcze mniejsze elementy: przykładowo literę b przedstawia się jako pionową kreskę i mały półokrąg. Oprogramowanie OCR wie, że cechy charakterystyczne dla b występują w każdym zbiorze czcionek. Ale jest i haczyk: w przypadku Feature Matching dany znak może być rozpoznany tylko z określonym prawdopodobieństwem. Jednak nie jest to duży problem, ponieważ software OCR poszukuje wielu cech jednocześnie, a decyzja dotycząca kodowanego przez te cechy znaku zapada na podstawie łączenia prawdopodobieństw na wyższym poziomie (patrz krok 5).

Nie istnieje jeden najlepszy algorytm rozpoznawania znaków – w praktyce software OCR łączy odmienne podejścia. Niektóre programy używają kilku różnych metod stosowanych  w oddzielnych, współbieżnych procedurach. Na końcu każda z nich przedstawia swoje wyniki. Wybiera się te, które pojawiają się częściej.

Krok 5:

Z powrotem do wyrazów Rozpoznawanie tekstu przeprowadza się na poziomie znaków. Ale droga w drugą stronę – do wyrazów – jest także istotna. W następstwie kroku 4. programy OCR mogą rozpoznać w jednym miejscu wiele znaków, ale z różnym prawdopodobieństwem. Jeśli znaki te łączą się w wyrazy, to również one mogą zaistnieć z określonym prawdopodobieństwem. Wyrazy są następnie porównywane ze słownikiem, co w znacznym stopniu zmniejsza ryzyko pomyłek. W niektórych programach można też na początku ustawić język tekstu, co znacznie przyspiesza cały proces. Korzysta z tego wielu producentów software’u OCR – na przykład aplikacja Abbyy ma wbudowaną obsługę prawie 200 narzeczy.

Nie chodzi tu tylko o pojęcia – istnieją bowiem słowniki morfologiczne uwzględniające różne formy wyrazów. W efekcie w analizie uwzględnia się też słownik przeznaczony do określonego profilu użytkownika. W tym miejscu uściśla się i porównuje specjalistyczne terminy, takie jak np. kwas dezoksyrybonukleinowy (DNA) w przypadku profilu chemicznego. Istnieje jeszcze jedna instancja kontrolna: programy OCR porównują także prawdopodobieństwa, z jakim jeden wyraz może wystąpić w kontekście innego – “nowa huta” pojawia się w języku polskim zdecydowanie częściej niż “nowa buta”, choć obydwa zwroty są poprawne, a “h” optycznie przypomina “b”.

Krok 6:

Formatowanie Rozpoznawanie tekstu to męcząca robota – strony są najpierw rozbijane na poszczególne znaki, rozpoznawane, a następnie składane z powrotem. Oprogramowanie OCR ten ostatni etap wykonuje na podstawie wiedzy, którą zebrało podczas segmentacji (krok 3), a wynik koduje w jednym z popularnych formatów tekstowych, takich jak RTF, DOC czy PDF.

Zarządzanie dokumentami

OCR to tylko połowa sukcesu. Powód? Nie chodzi jedynie o to, żeby wolny od błędów tekst trafił do komputera albo na serwer – dokumenty muszą być również łatwe do odnalezienia i edytowania. Potrzebne jest do tego inteligentne wyszukiwanie i zarządzanie prawami dostępu. Standardowe systemy plików takie jak NTFS nie radzą sobie z tym zbyt dobrze, ponieważ użytkownik może w nich szukać, używając zaledwie kilku atrybutów, takich jak nazwa zasobu, jego rozszerzenie, rozmiar albo data modyfikacji. Co więcej, systemy plików oferują jedynie najprostsze funkcje kontroli dostępu do danych oraz praw ich modyfikacji.

Tę lukę wypełniają systemy zarządzania dokumentami – Document Management Systems (DMS). Programy tego typu oferują bowiem dwie podstawowe metody dostępu: rejestrowania się przed edycją (check-in) i wyrejestrowywania się z pliku po jej zakończeniu (check-out). Obydwie mogą być zmieniane w zależności od uprawnień określonego użytkownika. Ponadto DMS pozwala na kontrolowanie kolejnych wersji dokumentów, zarządzanie opisującymi je metadanymi, jak również ich indeksowanie i przeszukiwanie na podstawie tagów. Większość dostępnych obecnie na rynku aplikacji DMS działa w standardzie ISO 10166 DFR – Document Filing & Retrieval.

Typowy DMS jest interfejsem działającym w przestrzeni między użytkownikiem a miejscem składowania danych i składa się z 3 elementów: sieci pamięci masowej, czyli  Storage Area Network (SAN), bazy danych oraz systemu dostępu. Dokumenty, które może edytować większość użytkowników DMS, przechowywane są w SAN-ach, których pojemność mierzy się dziś w petabajtach. Można je sobie wyobrazić jako ogromne serwery plików – dokumenty tam zawarte da się bezpośrednio edytować.

Większość dokumentów w światowych firmach – według szacunku ekspertów aż 80 proc. – nie jest jeszcze ustrukturalizowana. To oznacza, że nie można wpisać w korporacyjną wyszukiwarkę pytania typu: “Pokaż mi wszystkie faktury wystawione przez Kowalskiego dla hurtowni Jowita z ostatnich trzech lat, ale na sumę większą niż 2500 zł”, jeśli naturalnie chcemy otrzymać sensowną odpowiedź. Tu w sukurs przychodzi drugi element składowy DMS-a: baza danych. Zaimplementowany w niej software potrafi sam stworzyć strukturę dla nieposortowanych danych. Po jej zbudowaniu dokumenty możemy przeszukiwać, stosując wiele kryteriów i używając w zapytaniach języka zbliżonego do naturalnego. Trzeci element DMS-a, system dostępu, czuwa nad tym, aby nie było konfliktów, gdy dwie osoby próbują jednocześnie zmienić te same dane. W dużych systemach rolę tę pełni najczęściej wydzielony serwer komunikacyjny nadzorujący transakcje.

Ponadto w niektórych DMS-ach stosuje się wielostopniowe systemy archiwizujące, na których przechowuje się dane w ich finalnej postaci. Ich częścią składową są serwery konwertujące, które cyklicznie tworzą długoterminowe kopie.

DMS kształtuje strukturę

Niezwykłe w DMS-ach – w porównaniu ze zwykłymi bazami danych – jest to, że można w nich nadać strukturę niezorganizowanych dokumentom. Przykład: zamówienie zostaje przesłane do firmy faksem, następnie zeskanowane i przez system OCR trafia do DMS-a. Do tego czasu dokument jest ciągle niepowiązany ze strukturą firmy. DMS zaczyna od tego, że przeszukuje go pod kątem słów kluczowych. Później włączają się systemy klasyfikacyjne, które porównują dokument z – przykładowo – innymi zamówieniami. Ponieważ wynik ich pracy może być obarczony pewnym wynikającym z prawdopodobieństwa błędem, prócz klasyfikacji automatycznej możliwe jest też ręczne tagowanie.

O krok dalej idą systemy, które za pomocą wektorów podobieństwa albo sieci neuronowych same się uczą. Jednak najważniejszą zaletą DMS-ów jest uniwersalna możliwość błyskawicznego przeszukiwania. Korzystając z niej, pracownicy mogą odnaleźć zamówienie, wpisując takie słowa, jak “jakość”, “numer katalogowy” czy “adres klienta”. DMS przechowuje te informacje w oddzielnym pliku z metadanymi, które zapisuje się w XML-u (Document Type Definition). DMS zawsze je indeksuje, aby można je było porównywać za pomocą tzw. księgi indeksowej, oraz prześwietla słowo po słowie, próbując powiązać ich treść z istniejącymi już w bazie metadanymi. W czasie tworzenia indeksu generowany jest także cyfrowy notatnik, w którym zapisuje się pozycję każdego słowa lub rozpoznanej frazy w obrabianym dokumencie. DMS analizuje go, otrzymując zapytanie od użytkownika – w efekcie odpowiedzi pojawiają się błyskawicznie.

Trendy i wyzwania

Prawdziwym wyzwaniem dla rozpoznawania tekstów są dziś wielkie projekty typu Google Books albo masowa digitalizacja zbiorów książek w placówkach takich jak rodzima Biblioteka Narodowa. Ale producenci OCR pracują już nad rozwojem współbieżnych algorytmów rozpoznawania. Przyspieszą one proces skanowania wielokrotnie, nawet jeśli moc obliczeniowa komputerów osiągnie kiedyś kres. Moc ta będzie wszak nieodzowna – w kilku placówkach naukowych na świecie prowadzone są obecnie prace nad skanowaniem trójwymiarowym. Ma ono umożliwić nie tylko czytanie tekstu ze skanowanych książek, ale w przyszłości również przeglądanie ich w wirtualnej przestrzeni tak, jak gdybyśmy mieli w ręku oryginał. Oczywiście będzie to więcej niż książka, gdyż dzięki OCR będziemy mogli przeszukiwać ją jak typowy dokument komputerowy.

Trzy odmienne podejścia do rozpoznawania znaków

Istnieją trzy techniczne podejścia do rozpoznawania znaków. Wszystkie bazują na innych zasadach, a nowoczesny software OCR najczęściej je łączy, aby zwiększyć dokładność rozpoznawania.

Segmentacja

W tej metodzie algorytm sprawdza, w których miejscach jest szczególnie dużo koloru, jak ułożone są przylegające powierzchnie oraz gdzie znajdują się białe obszary. Zasada jest jasna: w przypadku litery A najwięcej czarnego jest w górnych i dolnych rogach oraz w środku; w przypadku B kolor czarny skupia się po lewej i po prawej stronie.

Rozpoznawanie wzorców

W tej metodzie znaki są porównywane z zapamiętanym zbiorem krojów pisma. W przykładzie zeskanowany symbol jest konfrontowany z różnymi formami litery A. Problemem jest tu konieczność pamiętania wzorców wielu czcionek – znany program Abbyy FineReader przechowuje aż 48 różnych wzorców rastrowych dla samej tylko litery A.

Rozpoznawanie cech

W poprzedniej metodzie ważne jest całkowite dopasowanie, zaś w tej klasyfikator struktur rozbija znak na jego elementy składowe. W takim ujęciu A zaczyna się od góry dwoma ukośnymi kreskami, do których dodaje się dwie poziome kreski na dole i jedną w środku. Jeśli tej ostatniej brak, prawdopodobnie nie jest to litera A.

W taki sposób działa Document Management System (DMS)

Czytanie to jedna sprawa, a czytanie ze zrozumieniem to druga – wie to każdy nauczyciel: diagram wyjaśnia, w jaki sposób oprogramowanie rozpoznaje, z jakiego typu dokumentem ma do czynienia.

Najpierw Document Management System próbuje przeczytać już istniejące metadane – przykładowo te z Worda z pola »Autor«. Jeśli ich brak, do systemu początkowo trafia dokument bez struktury.

DMS przeszukuje dokument i klasyfikuje go na podstawie słów kluczowych. Znalezione w przykładzie pojęcia sprawiają, że dokument zostaje zaklasyfikowany do zamówień faksowych.

Znalezione atrybuty zostają zapisane w bazie metadanych. W ten sposób nieuporządkowany dokument zostaje zaopatrzony w ustrukturalizowany zbiór dodatkowych informacji.

Klasyfikacja często jest nieprawidłowa i niepełna. Istnieją dwie możliwości kompletowania metadanych: albo za pomocą samouczących się procedur, albo manualnego otagowania.

W taki sposób tworzy się indeks wyszukiwania

Liczenie i sortowanie – w ten sposób powstaje indeks danych, który może być później użyty do szybkiego przeszukiwania dokumentu.

Usługa indeksowania systemu DMS – najczęściej działająca w tle jako oddzielny serwis Windows – przeszukuje cały tekst dokumentu, słowo za słowem.

Plik indeksowy jest tworzony równolegle do procesu przeszukiwania i zapamiętuje położenie każdego słowa lub rozpoznanej frazy w przetwarzanym dokumencie. Obrazek wiernie oddaje istotę indeksowania. Jednak dzięki kompresji przedstawione dane są znacznie mniejsze niż ich widoczne odpowiedniki tekstowe.