Od OCR do AI: Analiza porównawcza na przykładzie rzeczywistego projektu

Wyobraź sobie, że masz do przepisania stos dokumentów. Możesz to zrobić na dwa sposoby: zatrudnić stażystę, który będzie mozolnie przepisywał każdą literę i cyfrę, albo doświadczonego eksperta, który nie tylko szybko przeczyta dokumenty, ale też od razu zrozumie ich kontekst i wyłapie potencjalne błędy. Właśnie tak możemy porównać tradycyjny OCR (Optical Character Recognition) ze sztuczną inteligencją w kontekście przetwarzania dokumentów.

Dlaczego postanowiliśmy pożegnać się z OCR?

Tradycyjny system OCR, którego klient używał, przypominał właśnie tego niedoświadczonego stażystę. Mimo szczerych chęci i ciężkiej pracy, borykał się z wieloma problemami. 

  1. Prezycja?... Nie tym razem.

    Precyzja jest jednym z najwazniejszych czynników które stanowią o tym czy możemy bez stresu zastosować automatyczne zczytywanie dokumentów w codziennej działalności. Niestety, ta precyzja często pozostawiała wiele do życzenia: 
OCR: "NlP: 123-456-78-9O" (pomylił zero z literą O)
Prawidłowo: "NIP: 123-456-78-90"

System  OCR notorycznie mylił podobne znaki, generując błędy wymagające ręcznej korekty. Co więcej, błędy te nawet okiem prawdziwego człowieka były trudne do wychwycenia - w szczególności mając na uwadze nie zawsze najwyższej jakości dokumenty wyjściowe

  1. Zasoby? Proszę bardzo! dużo! Wyobraź sobie, że aby przeczytać jedną stronę dokumentu, przeciętny system OCR potrzebuje mniej więcej tyle mocy obliczeniowej, ile przeciętny komputer zużywa do odtworzenia filmu HD. Brzmi absurdalnie? A jednak to dobre porównanie. Optyczne rozpoznawanie znaków to proces oparty na kalkulacjiach w skład których wchodzi procesowanie obrazu piksel po pikselu, formuły matematyczne kalkulujące wektory oraz wykrywanie wzorców. To w oczywisty sposób generowało koszty - ową moc obliczeniową, w tej czy innej formie, klient musiał po prostu kupić.
  1. Elastyczność? No raczej nie... Każdy nietypowy format dokumentu, każde przesunięte pole czy przekrzywiony skan powodowały, że pojawiały się problemy. Klasyczne systemy OCR pracują według zdefiniowanych i sztywnych wzorców postępowania. Jeżeli te wzorce w choć niewielkim stopniu zostają naruszone - system nie potrafi improwizować, a tym bardziej logicznie rozumować. W najlepszym wypadku powodowało to oznaczony błąd odczytu - w gorszym zarejestrowanie w bazie błędnego rekordu, którego nie dało się wykryć bez czasochłonnej, ręcznej weryfikacji.

A może by tak AI? Pierwsze eksperymenty

Kiedy zdecydowaliśmy się przetestować rozwiązania oparte o sztuczną inteligencję, byliśmy świadomi rozwijających sioę w sposób gometryczny możliwości AI, jednak trochę jak rodzice wysyłający dziecko do nowej szkoły, mieliśmy tyle samo nadziei jak i obaw.. Przetestowaliśmy trzy wiodące LLM (Large Language Model: GPT4o, Gemini 1.5 PRO oraz Claude 3.5 Sonnet.

Metodologia testów

  1. Przygotowanie danych testowych


Zestaw testowy zawierał 15 różnych dokumentów w różnych “stanach” - czyste w wysokiej jakości, przekrzywione, z odręcznymi adnotacjami itd. Każdy z tych dokumentów przetworzyliśmy z pomocą każdego testowanego modelu AI. Łącznie wykonaliśmy 45 testów porównawczych, na prawdziwych dokumentach dostarczonych nam przez klienta. Naszym celem było jak najlepsze odniesienie prowadzonych eksperymentów do realnych wymagań biznesowych.

  1. Co dokładnie sprawdzaliśmy?

    some text
    • Dokładność rozpoznawania tekstu
    • Czas przetwarzania
    • Wykorzystanie zasobów (tokeny)
    • Koszty operacyjne
    • Odporność na błędy i zniekształcenia

Proces testowy

Krok 1: Przygotowanie dokumentu

Konwersja z PDF do JPG

Optymalizacja rozmiaru (dpi=75)

Standaryzacja formatu

Krok 2: Przetwarzanie przez różne modele

OpenAI (GPT-4)

Google Gemini

Anthropic Claude

Krok 3: Pomiar wyników

Dokładność rozpoznawania

Czas przetwarzania

Liczba wykorzystanych tokenów

Wyniki testów

Efekty jakie uzyskaliśmy, mówiąc wprost, przebiły nasze oczekiwania. Spodziewaliśmy się potwierdzenia naszej tezy - i tym samym udowodniliśmy tezę jaką postawiliśmy sobie jako zespół. W przypadku każdego stosowanego modelu udało nam się osiągnąć dokładność przekraczającą 85%, znakomite czasy przetwarzania dokumentów a także potwierdziliśmy wpływ najczęściej spotykanych błędów w materiałach wyjściowych, na jakość danych końcowych

Ciekawe obserwacje z testów

Już na pierwszy rzut oka widać było że spośród modeli które sprawdzaliśmy, to Claude Sonnet 3.5 jest zdecydowanym faworytem. Mimo że porównując dane “na czysto” nie w każdej kategorii wiódł prym (był najwolniejszy), jednak po zweryfikowaniu wyników okazalo się, że to właśnie ten LLM najbardziej “umie” w OCR.

Claude Sonnet 3.5 vs konkurencja

Na przykładzie dokumentu z przekrzywionym skanem:

OpenAI: 2 błędy w NIP, problemy z datą

Gemini: Brak rozpoznania zakresu dat

Claude: Bezbłędne rozpoznanie wszystkich pól

Szczegółowa analiza wyników

Dokładność (% poprawnie rozpoznanych pól)

OpenAI: 89.31%
Mocne strony: Daty, kody pocztowe
Słabe strony: Przekrzywione dokumenty

Gemini: 85.88%
Mocne strony: Proste pola tekstowe
Słabe strony: Zakresy dat, NIP

Claude: 95.04%
Mocne strony: Kompleksowe pola, kontekst
Słabe strony: Pojedyncze literówki w adresach

Czasy przetwarzania

OpenAI: 10.56s
0.25s: Konwersja PDF→JPG
9.81s: Analiza AI
0.50s: Post-processing

Gemini: 12.61s
0.25s: Konwersja PDF→JPG
11.86s: Analiza AI
0.50s: Post-processing

Claude: 10.32s
0.25s: Konwersja PDF→JPG
9.57s: Analiza AI
0.50s: Post-processing


Przykład rzeczywistego testu

Dokument testowy: karta1-1.jpg

Zawartość: 38 pól do rozpoznania

Wyniki:

1. OpenAI

   - Rozpoznane poprawnie:
36/38 pól
   - Czas: 8.6s
   - Błędy:
literówka w adresie, pomylony NIP

2. Gemini

   - Rozpoznane poprawnie: 36/38 pól
   - Czas: 10.4s
   - Błędy: brak zakresu, błędny NIP

3. Claude

   - Rozpoznane poprawnie: 37/38 pól
   - Czas:
12.02s
   - Błędy:
jedna literówka w adresie

Wnioski z eksperymentów

  1. Najwyższa dokładność

    some text
    • Claude: 95.04%
    • Szczególnie dobry w rozumieniu kontekstu
    • Najlepiej radzi sobie z trudnymi przypadkami

  2. Optymalny czas

    some text
    • Średnio 10.3 sekundy na dokument
    • Akceptowalne dla zastosowania produkcyjnego
    • Możliwość optymalizacji przez przetwarzanie wsadowe

  3. Koszty

    some text
    • Około 7 groszy na dokument
    • Znacząco niższe niż obecne rozwiązanie
    • Dodatkowa optymalizacja możliwa przy większych wolumenach

Te eksperymenty przekonały nas, że AI to nie tylko modne hasło, ale realne rozwiązanie, które może znacząco usprawnić naszą pracę. Wyniki były na tyle obiecujące, że zdecydowaliśmy się zaproponowaćpełne wdrożenie rozwiązania opartego o model Claude.

Ciekawostka #1

Czy wiesz, że koszt przetworzenia jednego dokumentu (7 groszy) to mniej niż:

  • Koszt wydrukowania jednej strony A4 w dobrej drukarce biurowej (około 20-30 groszy)
  • Koszt minuty pracy pracownika biurowego (około 50 groszy - 1 zł)
  • Koszt przechowywania fizycznego dokumentu przez miesiąc w segregatorze (około 10-15 groszy)

Co nas najbardziej zaskoczyło?

  1. Inteligentne rozpoznawanie kontekstu 

AI potrafi zrozumieć, że pole oznaczone jako "22a" jest powiązane z polem "22b", nawet jeśli fizycznie znajdują się w różnych częściach dokumentu. To jak różnica między kimś, kto tylko czyta tekst, a kimś, kto go naprawdę rozumie.

  1. Odporność na błędy
Przykład z przekrzywionego dokumentu:
OCR: "Data: ??.??.????"
AI: "Data: 15.03.2024" (poprawne odczytanie mimo przekrzywienia)
  1. Koszty operacyjne (1000 dokumentów miesięcznie)

System OCR: koszt licencji + około 40 godzin pracy pracownika na weryfikację

System AI: 70 zł za wszystkie dokumenty + około 2 godziny na weryfikację przypadków brzegowych

Co dalej?

Przejście z OCR na AI to nieoprawdopodobny upgrade. Przypomina przesiadkę ze starego roweru na samochód elektryczny - nie tylko jedziemy szybciej i wygodniej, ale też bardziej ekologicznie (w naszym przypadku - oszczędniej i efektywniej).

Najważniejsze korzyści:

  1. Wzrost dokładności o ponad 15 punktów procentowych
  2. Redukcja kosztów operacyjnych o około 70%
  3. Skrócenie czasu przetwarzania do 10.3 sekundy na dokument
  4. Marginalne zaangażowanie pracowników w proces weryfikacji

System AI nie tylko czyta dokumenty - on je rozumie. Właśnie to stanowi największą wartość tego rozwiązania. Dzięki umiejętności kontekstowego przyswajania danych wyjściowych - AI potrafi “połączyć kropki” i zadziałać w przypadkach które spowodowałyby wykolejenie się tradycyjnego OCRa.

Techniczna strona rozwiązania - czyli jak to narawdę działa?

Przygotowanie dokumentu - czyli mise en place

W pierwszsej kolejności dokonujemy konwersji PDF (lub docelowo dowolnego innego formatu) na zrstrowaną grafikę w formacie JPG. Pozwala to modelowi łatwiej i szybciej “zobaczyć” pełen zakres dokumentu, i zrozumieć go jako całość a nie poszczególne linijki.

Proces analizy 

Teraz następuje najciekawsza część - analiza dokumentu przez AI. To tu widać największą różnicę między tradycyjnym OCR a sztuczną inteligencją:

OCR (stara metoda):

1. Znajdź każdy znak
2. Porównaj z bazą znanych znaków
3. Zapisz wynik
4. Przejdź do następnego znaku

AI (nowa metoda):

1. Zobacz cały dokument
2. Zrozum kontekst i strukturę
3. Wyciągnij potrzebne informacje
4. Sprawdź logiczną spójność

Ciekawostka #2

Nasz prompt (instrukcja dla AI) ma ponad 200 linii kodu. Trochę jak szczegółowy przepis proceduralny, który opisuje nie tylko co zrobić, ale też na co zwrócić uwagę i jak poradzić sobie z nietypowymi sytuacjami.

Praktyczny przykład przetwarzania

Weźmy konkretny przypadek z naszych testów:

  1. Dokument wejściowy:

Karta podatkowa z częściowo niewyraźnym drukiem,
przekrzywiona o 5 stopni, z odręcznymi adnotacjami

  1. Wybrane Wyniki przetwarzania:
OCR: "N1P: 123-456-78-9O" 
     "Kwota: l.234,5O"
     "Data: nieczytelne"

AI:   "NIP: 123-456-78-90"
      "Kwota: 1.234,50"
      "Data: 15.03.2024"
      + Dodatkowa informacja: "Dokument zawiera odręczne adnotacje
        w prawym górnym rogu, nie wpływające na zawartość merytoryczną"


  1. Podsumowanie:

Dokument: karta1-1.jpg z naszych testów

Problem: Częściowo zamazany NIP, przekrzywiony skan

OCR próbował:
1. Rozpoznać każdą cyfrę osobno
2. Często mylił 0 z O
3. Gubił się przy przekrzywieniu

AI poradziło sobie:
1. Zobaczyło cały kontekst dokumentu
2. Zrozumiało, że to pole NIP
3. Wykorzystało wiedzę o strukturze NIP
4. Automatycznie skorygowało przekrzywienie
5. Zweryfikowało poprawność sumy kontrolnej


Problem: Częściowo zamazany NIP, przekrzywiony skan

Ciekawostka #3

Przy dużych partiach dokumentów (ponad 100) średni czas przetwarzania spada o około 15% dzięki optymalizacji procesu i równoległemu przetwarzaniu.

Wnioski i przyszłość

Jak pokazuje nasze doświadczenie, przejście z OCR na AI to nie tylko zmiana technologiczna - to kompletna transformacja sposobu myślenia o przetwarzaniu dokumentów. Kluczem do sukcesu jest odpowiednie przygotowanie, elastyczne podejście i skupienie się na realnych potrzebach użytkowników.

Co osiągnęliśmy?

Dokładność: Z poziomu "musimy wszystko sprawdzać" do "sprawdzamy tylko wyjątki"

Szybkość: Z "kilka minut na dokument" do "10 sekund i gotowe"

Koszty: Redukcja o około 70% (wliczając koszty pracy ludzkiej)

Zadowolenie zespołu: Bezcenne - nikt nie lubi monotonnego sprawdzania OCR

Claude Sonnet 3.5 okazał sie najlepszym wyborem spośród testowanych platform - jednak pamiętajmy że ta dziedzina IT - sztuczna inteligencja - rozwija się bardzo dynamicznie, i praktycznie co kilka tygodni na światło dzienne wyprowadzane są kolejne aktualizacje istniejących modeli, oraz nowe, całkiem łamiące istniejące schematy. 

To nie wybór konkretnego modelu definiuje na koniec dnia jakość takiego systemu AI-OCR, ale poziom głębokiego zrozumienia metody pracy Dużych Modeli Językowych jaki jest u programistów tworzących kod i prompty wykorzystywane do danego rozwiązania. Jeżeli to zrozumienie jest obecne, w każdej chwili bez zbędnych problemów wszelkie LLMy można odłączać i podłączać. To konstrukcja modularna, jak pojawi się nowy silnik, stary odpinamy i zapinamy nowocześniejszy. Ot tak 🫰💥

Jeśli rozważasz podobną transformację w swojej organizacji, pamiętaj: nie musisz robić wszystkiego od razu. Zacznij od małych kroków, ucz się na błędach i systematycznie rozwijaj system. Zapraszamy do kontaktu z nami za pośrednictwem formularza poniżej - z przyjemnością porozmawiamy o potencjalnych możliwościach wdrożenia podobnych rozwiązań u Ciebie.

<div class="flex-center"><a href="#" class="btn btn-gradient w-button btn-modal-trigger">Zaplanuj darmową konsultację!</a></div>

*Artykuł powstał na podstawie rzeczywistego projektu zrealizowanego w 2024 roku. Wszystkie dane i statystyki pochodzą z faktycznych testów i implementacji.