Technologia rozpoznawania obrazu OCR w RPA

Przemysław Włodarczyk | Go to Cloud | 09.09.2020

Jedną z technologii, jakie wykorzystuje się w automatyzacji procesów biznesowych, jest rozpoznawanie obrazu. OCR pozwala usprawnić procesy wszędzie tam, gdzie pracuje się z dużą liczbą dokumentów, faktur i plików PDF. Jak wykorzystać tę technologię w praktyce i usprawnić obieg dokumentów w firmie? Postaram się pokazać ten proces i efekty z perspektywy programisty, który pomaga klientom z różnych branż wdrażać i udoskonalać rozwiązania typu Robotic Process Automation.

Czym jest technologia OCR?

Technologia OCR (Optical Character Recognition) jest zestawem technik służących do rozpoznawania znaków i całych tekstów w pliku graficznym w postaci rastrowej (czyli w formie bitmapy). Mówiąc prościej, OCR umożliwia rozpoznawanie pisma, zeskanowanego tekstu (czyli uogólniając pliku graficznego) i przetworzenie go do postaci cyfrowej. Rozpoznawanie pisma jest możliwe dzięki zastosowaniu w tej technologii wielu metod z dziedziny rozpoznawania wzorców, która jest jedną z metod sztucznej inteligencji. Za każdym razem więc, gdy wykorzystujemy rozpoznawanie obrazu, korzystamy z bardziej zaawansowanej technologii niż często nam się wydaje.

Wykorzystanie technologii OCR w RPA

Robotics Process Automation to dziedzina, która korzysta z różnych technologii informatycznych, aby automatyzować procesy biznesowe. W wielu procesach z różnych obszarów działalności firmy na którymś etapie (np. jako dane wejściowe) wykorzystuje się skany dokumentów. W większości dokumenty te są dostarczane lub generowane w formie plików PDF, a pracownicy potrzebują wydobyć (wyekstrahować) z nich określone dane. W takiej sytuacji można wykorzystać automatyzację, która działa w oparciu o rozpoznawanie obrazu. Ważne jest to, w jakim formacie są dostarczone dane. Jeśli pliki PDF wygenerowane są jako tekst i mają ustaloną strukturę, to do ich analizy developerzy mogą użyć wyrażeń regularnych, które służą do walidacji danych tekstowych lub wyszukiwania danych w tekście na podstawie wzorców. Jeśli jednak dokument jest zeskanowany jako obraz, to jedynym sposobem umożliwiającym sczytanie danych jest wykorzystanie technologii OCR.

Skuteczność OCR

Czy każdy dokument można odczytać za pomocą OCR? Najważniejszym czynnikiem jest to, czy dane są kompletne i prawdziwe – w przeciwnym razie będą one bezużyteczne. Skuteczność odczytu jest uzależniona od jakości dokumentów. Jeżeli dostarczane dokumenty nie są dobrej jakości, pismo nie jest kontrastowe, dokumenty będą zawierały pismo odręczne lub będą np.: odwrócone, to wpłynie to znacząco na jakość odczytu danych. Z pomocą przychodzą zaawansowane algorytmy rozpoznawania tekstu, a na rynku jest wiele firm, które oferują gotowe oprogramowanie lub zaawansowane algorytmy OCR. Decydując się na takie rozwiązanie, trzeba się upewnić, że dane oprogramowanie posiada interfejs, który umożliwi dostarczenie dokumentu do procesowania i odebrania przetworzonych danych z OCR. Jednak aby skuteczność rozpoznawania danych była właściwa, developerzy RPA automatyzują testowanie jakości danych zwróconych przez narzędzie OCR.

OCR w RPA w praktyce – case study

Problem

Jako programista wspieram firmy, które chcą przyspieszyć procesowanie dokumentów. W jednym z projektów wdrażałem rozwiązanie dla klienta, który procesował duże ilości zamówień w formie PDF i chciał przyspieszyć i usprawnić ten proces. W moim przypadku realizowany był projekt z obszaru Procurement, a rozwiązanie OCR dostarczał jeden z wiodących dostawców narzędzi OCR. Oto, jak przebiegał proces u klienta:

  1. Sprzedawca (Vendor) dostarcza potwierdzenie złożenia zamówienia (Order Acknowledgement) w formacie PDF. Dokument ten przesyła na dedykowaną skrzynkę mailową.
  2. Pracownicy po stronie biznesu odbierają dokument, odczytują dane i walidują je, porównując z danymi w systemie ERP.
  3. Jeżeli dokument przechodzi walidację, odczytane dane są procesowane w kilku transakcjach ERP.

Wyzwanie

Wyzwaniem w projekcie było skuteczne odczytanie określonych pól. Z przesłanego potwierdzenia zamówienia należało ekstrahować 15 pól, z czego 5 zawierało dane kluczowe, niezbędne do walidacji i procesowania danego dokumentu.

Projekt

  1. Dostawca rozwiązania, zobowiązał się, że dokładność odczytywanych danych, szczególnie danych kluczowych, będzie na poziomie 90%.
  2.  Przedstawiciele klienta dostarczyli dane wzorcowe, z którymi porównywany był ekstrakt z OCR.
  3. Projekt został podzielony na rundy. Podczas każdej rundy dostawca oprogramowania dostosowywał algorytm OCR do specyfikacji przesyłanych dokumentów, aby poprawić skuteczność rozpoznawania znajdujących się w nich danych. W początkowych fazach projektu skuteczność rozpoznawania części danych, szczególnie danych tekstowych, była bardzo niska, często poniżej 60%. W przypadku danych numerycznych algorytm radził sobie lepiej.
  4. Programiści stworzyli robota, który „czytał” e-maile z dedykowanej skrzynki i jeżeli email zawierał załącznik w formacie PDF, był on wysyłany do narzędzia OCR w celu procesowania.Pierwsze obserwacje:
  • Najlepszą skuteczność rozpoznawania miały dane liczbowe oraz ustandaryzowane dane, takie jak np. kody pocztowe.
  • Największe problemy zaobserwowałem przy rozpoznawaniu danych tekstowych. Dla przykładu, OCR zamiast liter B zwracał liczbę 8, zamiast cyfry 0 – literę O.
  • Problemem było również rozpoznawanie dat, ponieważ daty w dokumentach występowały w różnych niestandardowych formatach.
  1. W celu możliwości wysyłania i odbierania danych z OCR, został udostępniony interfejs webowy (WebAPI). Robot w jednym z podprocesów wysyłał dany dokument do procesowania. W kolejnym podprocesie przetworzone dane były odbierane w czytelnym formacie JSON, służącym do zapisu struktur danych.
  2. Został stworzony podproces przetwarzający dane do formatu, w którym znajdowały się nie tylko wartości poszczególnych pól na dokumencie, ale również wyrażone w procentach informacje na temat tego, jakiej jakości są te dane, tzw. Confidence Score. Wartość Confidence Score była podawana zarówno dla poszczególnych pól, jak i dla całego dokumentu.
  3. Na podstawie Confidence Score robot klasyfikował dany dokument do dalszego procesowania. Jeżeli wartość Confidence Score dla całego dokumentu wynosiła poniżej 90%, wymagał on manualnej walidacji i uzupełnienia danych przez pracowników. Jeżeli wartość Confidence Score wynosiła powyżej 90%, dokument mógł być procesowany w systemie ERP.

Dodatkowo, na potrzeby testowania skuteczności algorytmu OCR, robot ekstrahował dane zwrócone przez OCR, które następnie były porównywane z danymi wzorcowymi dostarczonymi przez klienta. W celu zautomatyzowania procesu testowania stworzyłem narzędzie wykorzystujące algorytm, który wyszukiwał i porównywał dane testowe z danymi z OCR.

Efekty

Po kilku miesiącach i 6-7 rundach dostosowywania algorytmu OCR przez dostawcę, dane dla wielu pól, szczególnie pól danych kluczowych, były bliskie 90%. Narzędzie generowało dokładne rezultaty wyrażone w procentach dla każdego z odczytywanych pól. W efekcie więcej dokumentów było procesowanych automatycznie i udało się zautomatyzować proces walidacji faktur, który wcześniej był wykonywany ręcznie.

OCR w RPA – największe korzyści

  • Odciążenie działów zajmujących się walidacją danych i przyspieszenie procesu.
  • Szybszy obieg dokumentów.
  • Automatyzacja większej liczby procesów dzięki wykorzystaniu zaawansowanej technologii.

Podsumowanie

Jak widać z przytoczonego przykładu, technologia OCR ma bardzo praktyczne zastosowanie w robotyce. Kluczowym czynnikiem jest efektywność i precyzja w rozpoznawaniu tekstu, która wpływa na finalny sukces danego projektu. W bardziej zaawansowanych i rozbudowanych rozwiązaniach OCR dodatkowo wykorzystuje się Machine Learning, dzięki czemu skuteczność rozpoznawania tekstu poprawia się w czasie, wraz z liczbą dostarczanych dokumentów. Technologia daje nam niesamowite możliwości i pozwala osiągać efekty, jakie byłyby niemożliwe dla człowieka. Specjaliści RPA i zespoły programistyczne cały czas pracują nad udoskonalaniem tych rozwiązań, tak by klienci osiągali coraz lepsze rezultaty dzięki inteligentnym rozwiązaniom.