Mechanizm Optycznego Rozpoznawania Znaków jest obecnie narzędziem o wysokiej skuteczności i różnorodnym zastosowaniu – od firmowych dokumentów do książek digitalizowanych przez (nie)świadomych użytkowników reCAPTCHY. A co gdyby dodać do OCR także namiastkę inteligencji w postaci sieci neuronowych?
Zanim przejdę jednak do omówienia możliwości oferowanych przez sieci neuronowe, chciałbym zwrócić uwagę na fakt, iż obecnie możemy podzielić działanie OCR na dwie sfery:
Rozpoznanie znaków
Mechanizm rozpoznaje pojedyncze znaki, a poprzez analizowanie odstępów w skanowanym tekście dzieli je na wyrazy. Tego typu działanie służy np. do tworzenia tzw. „wyszukiwalnych plików PDF” (z ang. searchable PDF). W zależności od producenta, skuteczność rozpoznania zwiększana jest poprzez zastosowanie kolejnych warstw algorytmów, np. porównujących rozpoznaną frazę z wbudowanym słownikiem.
Rozpoznanie treści
Tutaj wykorzystywana jest pierwsza metoda w połączeniu z zaawansowanymi mechanizmami, które analizują rozpoznanie tekstu także w kontekście słów znajdujących się w jego bezpośredniej okolicy. OCR identyfikuje poszczególne wyrazy i sprawdza jak rozpoznanie wpasowuje się w całość skanowanego tekstu.
W tym drugim przypadku szczególnie przydatne okazują się sieci neuronowe, które zawierają zestaw reguł wg których rozpoznawane są poszczególne słowa i frazy. Weźmy za przykład faktury. OCR „wie”, że dane o wystawiającym fakturę powinny znajdować się w okolicach prawego górnego rogu. Nazwa ulicy poprzedzona jest wyrazem „ul.” po którym następuje numer domu, a następnie kod pocztowy i miasto. Natomiast numer konta bankowego ma 26 cyfr, zazwyczaj zapisany jest w określonym formacie i występuje obok słowa bank.
Sieci neuronowe – z czym się to je
Powyższe, to oczywiście prosty przykład, a tego typu reguł jest naprawdę dużo. To czym różni od siebie szablony rozpoznawania dokumentów od sieci neuronowych, to możliwość dynamicznej zmiany i „douczania” tych drugich, na podstawie rozpoznawanych dokumentów. Przy czym w przeciwieństwie do dedykowanych bądź uniwersalnych szablonów, nie jest to czynność wymagająca pracy programistycznej.
Odpowiednio przygotowany interfejs pozwoli każdemu użytkownikowi na wprowadzenie odpowiednich zmian i zmodyfikowanie sieci. Pomimo niebagatelnych zalet takiego rozwiązania (łatwość wykorzystania, elastyczność), istnieje też pewne ryzyko. Poprzez nieumiejętne „szkolenie” sieci neuronowych, można je „popsuć”. Prostym przykładem jest wskazywanie przez użytkownika błędnych danych jako poprawne. Idąc za przykładem faktur, byłoby to np. wskazanie numeru telefonu jako NIP-u sprzedawcy. Im więcej tego typu modyfikacji, tym gorsze będą wyniki rozpoznania.
Istnieją też przypadki pośrednie. W systemach obiegu dokumentów, OCR jest rzeczą powszechnie wykorzystywaną. Zazwyczaj przygotowywana jest uniwersalna sieć neuronowa, działająca w odniesieniu do konkretnego typu dokumentu (np. wcześniej już wspomnianej faktury). Jednakże zdarzają się sytuacje, w których np. faktury od jednego z kontrahentów mają zupełnie inną strukturę niż w przypadku pozostałych. Co wtedy?
Uczenie uniwersalnej sieci na przykładzie wyjątków poskutkuje lepszym rozpoznaniem ich samych, jednocześnie negatywnie wpływając na identyfikacje całej reszty dokumentów. Dlatego też rozwiązania tej klasy oferują możliwość tworzenia dedykowanych sieci neuronowych ro skanowania dokumentów od wybranych kontrahentów. Wówczas wyróżnikiem, za pomocą którego system wybiera odpowiednią sieć neuronową, jest numer NIP, dlatego iż jest on unikalny i ściśle powiązanym z kontrahentem.
Sieci neuronowe – co dalej?
Bez wątpienia sieci neuronowe są przyszłością OCR. Wydaje się, iż jest to obecnie jedyny kierunek rozwoju, który może w przyszłości dostarczyć skuteczność rozpoznawania znaków i treści na poziomie 100%. W przypadku pisma maszynowego, nawet w kontekście słabej jakości skanów, nie jest to zbyt daleka przyszłość. Natomiast pismo odręczne to zupełnie inna bajka i na jakiekolwiek sensowne rezultaty (powyżej 80%, w warunkach „bojowych”, a nie laboratoryjnych) prawdopodobnie przyjdzie jeszcze nam trochę poczekać. Niemniej jednak – warto.
Doskonałym przykładem takiego rozwiązania jest system eSZOK BR by CTI, który digitalizuje faktury, „wyłapuje” poszczególne metadane z faktur i w uporządkowany sposób eksportuje do Optimy, gdzie faktura wygląda, jakby została „wklepana”, a dodatkowo mamy podgląd obrazu faktury skrótem F11.
Powyższy artykuł świetnie obrazuje działanie „uczącego się” OCR na przykładzie faktur. System eSZOK BR, korzystając z OCR firmy Microsoft, „uczy się” wzoru lub wzorów faktur danego kontrahenta, dzięki czemu rozpoznawalność rośnie. Rozwiązania tej klasy nie tylko digitalizują różne typy czcionek, ale po słowach kluczowych wyłapują poszczególne metadane i w uporządkowany sposób przekazują do systemu FK.