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.

Autorem wpisu jest:
RPA Developer

RPA Developer w JCommerce. Lubi zmagać się ze skomplikowanymi automatyzacjami, starając się przy tym wykorzystywać wiedzę z różnych dziedzin IT. Oprócz robotyki pasjonat programowania w technologii .NET. Prywatnie ciekawy świata miłośnik jazdy na rowerze, w szczególności turystyki rowerowej.

Dodaj komentarz

Skontaktuj się z nami

Chcesz dowiedzieć się więcej o naszych usługach? Napisz do nas – odpowiemy na każdą wiadomość.

Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma, w celach handlowych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma, w celach marketingowych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma w celach rekrutacyjnych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma na potrzeby przyszłych rekrutacji.
W związku z obowiązującymi przepisami dotyczącymi ochrony danych osobowych tj. Ustawą o ochronie danych osobowych z dnia 10 maja 2018 roku, jak również treścią Rozporządzenia Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO), informujemy, że: 1. Administratorem danych osobowych jest JCommerce Sp. z o.o. z siedzibą w Katowicach, ul. Ściegiennego 3, 40-114 Katowice (KRS: 00007393418).
2. Powyższe dane osobowe przetwarzane będą przez JCommerce Sp. z o.o. – w zależności od udzielonych przez Panią/Pana zgód (podstawa prawna przetwarzania: art. 6 ust. 1 pkt a) RODO):
• w celach handlowych,
• w celach marketingowych,
• w celach rekrutacyjnych;
• w celach przyszłych rekrutacji.
3. Podanie powyższych danych osobowych nie jest wymogiem ustawowym, umownym lub warunkiem zawarcia umowy. Nie jest Pan/Pani zobowiązany/a do podania powyższych danych osobowych, jednak brak ich podania uniemożliwi realizacje ww. celu.
4. Posiada Pan/ Pani prawo dostępu do treści swoich danych, w tym otrzymania ich kopii i ich sprostowania, usunięcia, ograniczenia przetwarzania, prawo do przenoszenia danych, prawo do sprzeciwu wobec przetwarzania, prawo do cofnięcia zgody w dowolnym momencie, jeśli została udzielona. Wycofanie zgody nie wpływa jednak na zgodność z prawem przetwarzania, którego dokonano na podstawie zgody przed jej wycofaniem; oświadczenie o cofnięciu zgody na przetwarzanie danych osobowych należy złożyć w siedzibie JCommerce Sp. z o.o. lub przesłać na adres mailowy zgody@jcommerce.pl. Cofnięcie zgody na przetwarzanie danych osobowych skutkuje brakiem możliwości realizacji ww. celów przetwarzania;
5. Dane osobowe są udostępniane przez JCommerce Sp. z o.o. upoważnionym pracownikom i osobom współpracującym z JCommerce Sp. z o.o. na podstawie umów cywilnoprawnych, przez których realizowany jest cel przetwarzania;
6. Wszelkie pytania dotyczące ochrony danych osobowych oraz realizacje przysługujących praw, prosimy kierować na adres odo@jcommerce.pl;
7. W zależności od udzielonej zgody, dane osobowe będą przetwarzane przez czas niezbędny do realizacji ww. celów przetwarzania. W przypadku wniesienia sprzeciwu, JCommerce Sp. z o.o. przestanie przetwarzać Pani/Pana dane w ww. celu, chyba że będzie w stanie wykazać, że w stosunku do tych danych istnieją ważne prawnie uzasadnione podstawy, które są nadrzędne wobec Pana/Pani interesów, praw i wolności, lub niezbędne do ewentualnego ustalenia, dochodzenia lub obrony roszczeń;
8. Nie przekazujemy Pani/Pana danych poza teren Europejskiego Obszaru Gospodarczego oraz do organizacji międzynarodowych.
9. Pani/Pana dane osobowe nie podlegają zautomatyzowanemu podejmowaniu decyzji, w tym profilowaniu.
10. Ma Pani/Pan prawo wniesienia skargi do organu nadzorczego gdy uzna Pan/Pani, iż przetwarzanie ww. danych osobowych narusza przepisy ogólnego rozporządzenia o ochronie danych osobowych z dnia 27 kwietnia 2016 r.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma, w celach handlowych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma, w celach marketingowych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma w celach rekrutacyjnych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma na potrzeby przyszłych rekrutacji.
W związku z obowiązującymi przepisami dotyczącymi ochrony danych osobowych tj. Ustawą o ochronie danych osobowych z dnia 10 maja 2018 roku, jak również treścią Rozporządzenia Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO), informujemy, że: 1. Administratorem danych osobowych jest JCommerce Sp. z o.o. z siedzibą w Katowicach, ul. Ściegiennego 3, 40-114 Katowice (KRS: 00007393418).
2. Powyższe dane osobowe przetwarzane będą przez JCommerce Sp. z o.o. – w zależności od udzielonych przez Panią/Pana zgód (podstawa prawna przetwarzania: art. 6 ust. 1 pkt a) RODO):
• w celach handlowych,
• w celach marketingowych,
• w celach rekrutacyjnych;
• w celach przyszłych rekrutacji.
3. Podanie powyższych danych osobowych nie jest wymogiem ustawowym, umownym lub warunkiem zawarcia umowy. Nie jest Pan/Pani zobowiązany/a do podania powyższych danych osobowych, jednak brak ich podania uniemożliwi realizacje ww. celu.
4. Posiada Pan/ Pani prawo dostępu do treści swoich danych, w tym otrzymania ich kopii i ich sprostowania, usunięcia, ograniczenia przetwarzania, prawo do przenoszenia danych, prawo do sprzeciwu wobec przetwarzania, prawo do cofnięcia zgody w dowolnym momencie, jeśli została udzielona. Wycofanie zgody nie wpływa jednak na zgodność z prawem przetwarzania, którego dokonano na podstawie zgody przed jej wycofaniem; oświadczenie o cofnięciu zgody na przetwarzanie danych osobowych należy złożyć w siedzibie JCommerce Sp. z o.o. lub przesłać na adres mailowy zgody@jcommerce.pl. Cofnięcie zgody na przetwarzanie danych osobowych skutkuje brakiem możliwości realizacji ww. celów przetwarzania;
5. Dane osobowe są udostępniane przez JCommerce Sp. z o.o. upoważnionym pracownikom i osobom współpracującym z JCommerce Sp. z o.o. na podstawie umów cywilnoprawnych, przez których realizowany jest cel przetwarzania;
6. Wszelkie pytania dotyczące ochrony danych osobowych oraz realizacje przysługujących praw, prosimy kierować na adres odo@jcommerce.pl;
7. W zależności od udzielonej zgody, dane osobowe będą przetwarzane przez czas niezbędny do realizacji ww. celów przetwarzania. W przypadku wniesienia sprzeciwu, JCommerce Sp. z o.o. przestanie przetwarzać Pani/Pana dane w ww. celu, chyba że będzie w stanie wykazać, że w stosunku do tych danych istnieją ważne prawnie uzasadnione podstawy, które są nadrzędne wobec Pana/Pani interesów, praw i wolności, lub niezbędne do ewentualnego ustalenia, dochodzenia lub obrony roszczeń;
8. Nie przekazujemy Pani/Pana danych poza teren Europejskiego Obszaru Gospodarczego oraz do organizacji międzynarodowych.
9. Pani/Pana dane osobowe nie podlegają zautomatyzowanemu podejmowaniu decyzji, w tym profilowaniu.
10. Ma Pani/Pan prawo wniesienia skargi do organu nadzorczego gdy uzna Pan/Pani, iż przetwarzanie ww. danych osobowych narusza przepisy ogólnego rozporządzenia o ochronie danych osobowych z dnia 27 kwietnia 2016 r.