Co powoduje niespójne wyniki OCR na poszczególnych stronach tego samego zeskanowanego pliku PDF?

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Wyniki OCR mogą różnić się w obrębie jednego zeskanowanego pliku PDF, ponieważ każda strona może mieć inną rozdzielczość, przekrzywienie, kontrast, kompresję, układ, język i geometrię obrazu.

Domowe archiwum może zawierać jeden plik PDF utworzony z kilku sesji skanowania, zdjęć wykonanych telefonem, kserokopii lub zaimportowanych obrazów. W przeglądarce dokument wygląda na spójny, ale silnik OCR przetwarza obrazy stron niezależnie. Jedna strona może być wyraźnym skanem w rozdzielczości 300 DPI, a kolejna może być pomniejszona, obrócona, zniekształcona przy grzbiecie, pokryta teksturą tła albo zawierać już uszkodzoną warstwę tekstową. Niespójność często wynika więc ze zmian parametrów obrazu strony, a nie ze zmiany modelu OCR w trakcie zadania.

Strony w jednym pliku PDF mogą mieć różną rzeczywistą rozdzielczość

Strona PDF jest kontenerem, a nie gwarancją, że każdy osadzony obraz ma taką samą gęstość pikseli. Strony mogą być skanowane przy użyciu różnych ustawień lub przeskalowane podczas łączenia kilku plików.

Wskazówki dotyczące jakości Tesseract omawiają rozdzielczość i rozmiar znaków w pikselach jako ważne dane wejściowe OCR.

Strona o niskiej rozdzielczości najpierw traci drobne znaki interpunkcyjne i krawędzie znaków, podczas gdy strona o wysokiej rozdzielczości może nadal być rozpoznawana poprawnie. Różnica wynika z wymiarów rastrowych strony i wysokości znaków, a nie z numeru strony.

Obrót, przekrzywienie i wygięcie strony zmieniają segmentację tekstu

OCR nie rozpoznaje pojedynczych znaków, zanim nie znajdzie wierszy i obszarów tekstu. Nawet niewielkie przekrzywienie może powodować łączenie, rozdzielanie lub przekraczanie oczekiwanych granic segmentacji wierszy.

OCRmyPDF stosuje etapy przetwarzania obrazu w określonej kolejności — obrót, usuwanie tła, prostowanie i czyszczenie — ponieważ geometria strony wpływa na późniejsze rozpoznawanie.

Jeśli błędy skupiają się przy krawędzi grzbietu, wygiętej stronie lub obróconym fragmencie, przyczyna ma charakter geometryczny. Jednolite zamiany znaków na skądinąd prostych stronach wskazują raczej na konfigurację języka lub modelu.

Nierównomierne oświetlenie i tekstura tła utrudniają stosowanie jednego progu

Skan z płaskiego skanera może mieć niemal jednolite białe tło, podczas gdy strona sfotografowana telefonem może zawierać cienie, gradienty, plamy lub przebijający obraz z drugiej strony.

OpenCV rozróżnia progowanie globalne i progowanie adaptacyjne, w którym lokalne obszary otrzymują różne wartości progowe przy nierównomiernym oświetleniu.

Jedno ustawienie wstępnego przetwarzania może poprawić jakość czystych stron, a jednocześnie usunąć słabo widoczny tekst na ciemniejszych stronach. Tę przyczynę można rozpoznać, gdy błędy pokrywają się z cieniami, kolorem papieru lub obszarami o niskim kontraście, a nie z konkretnymi słowami.

Zniekształcenia i perspektywa zmieniają kształty znaków

Strony sfotografowane pod kątem lub wygięte przy grzbiecie książki rozciągają niektóre znaki i ściskają inne. Proste wiersze tekstu stają się krzywymi lub mają zbiegające się linie bazowe.

PaddleOCR udostępnia wstępne przetwarzanie dokumentów obejmujące klasyfikację orientacji i prostowanie obrazu.

Perspektywa i wygięcie powodują błędy zależne od położenia: środek może zostać rozpoznany poprawnie, podczas gdy marginesy nie. Problem z modelem językowym zwykle wpływałby na te same symbole niezależnie od ich położenia.

Kompresja i fizyczne zużycie usuwają różne szczegóły na poszczególnych stronach

Bloki JPEG, efekt dzwonienia, rozmycie, wzory rastrowe, kolejne generacje kserokopii i niska gęstość atramentu mogą usuwać fragmenty znaków lub tworzyć fałszywe krawędzie.

Badania nad odpornym parsowaniem dokumentów oceniają zniekształcenia obejmujące skanowanie, przekrzywienie, zniekształcenia, fotografowanie ekranu i oświetlenie.

Artefakty te mogą się różnić, ponieważ strony pochodziły z różnych źródeł, zanim je połączono. Ustawienia kompresji całego pliku nie odtworzą szczegółów utraconych wcześniej podczas skanowania lub wykonywania kserokopii.

Zmiany układu mogą być mylone z błędami rozpoznawania

Strona ze zwykłymi akapitami, tabela, załącznik dwułamowy, odręczne notatki i formularz wymagają różnych założeń dotyczących obszarów oraz kolejności czytania.

Tesseract i inne silniki OCR udostępniają tryby segmentacji strony, ponieważ rozpoznawanie zależy od tego, czy dane wejściowe są traktowane jako blok, rzadki tekst, kolumny czy inny układ.

Jeśli znaki są w większości poprawne, ale kolumny przeplatają się lub komórki tabeli pojawiają się w niewłaściwej kolejności, głównym problemem jest analiza układu. Mierzenie wyłącznie odległości edycji zwykłego tekstu może ukryć tę różnicę.

Różne języki, kroje pisma i zestawy znaków zmieniają przestrzeń możliwych wyników

Raport może przechodzić od angielskich akapitów do nazw z akcentami, symboli matematycznych, pisma odręcznego, tekstu maszynowego lub innego języka na kolejnych stronach.

Gdy skonfigurowany język rozpoznawania nie zawiera odpowiednich wzorców znaków, silnik zastępuje nieznane glify obsługiwanymi znakami o podobnym wyglądzie. Dekoracyjne kroje pisma i uszkodzony tekst o stałej szerokości mogą nasilać ten efekt.

Przyczyna ta pokrywa się z granicami języków i typografii. Jeśli wszystkie strony zawierające jeden język lub rodzinę krojów pisma zawodzą podobnie mimo dobrej jakości obrazu, bardziej prawdopodobnym wyjaśnieniem jest model rozpoznawania lub pakiet językowy niż szum skanowania.

Rasteryzacja PDF może dostarczać silnikowi OCR różne obrazy

Niektóre strony zawierają osadzone obrazy rastrowe, inne tekst wektorowy wraz z obrazami, a jeszcze inne mają już ukrytą warstwę OCR. Ustawienia renderowania określają, jakie piksele otrzymuje nowy przebieg OCR.

Wskazówki dotyczące OCR w PyMuPDF wyjaśniają, że OCR działa na obrazie strony, a renderowanie strony i istniejący tekst wpływają na to, czy i w jaki sposób wykonywane jest OCR.

Artykuł ZimaSpace na temat wyszukiwania dokumentów i RAG wyznacza granicę po stronie dalszego przetwarzania: niespójny OCR prowadzi do niespójnych fragmentów i cytowań, chyba że potok pozyskiwania zachowuje informacje o pochodzeniu oraz poziomie pewności na poziomie stron.

FAQ

Czy jedno ustawienie języka OCR może działać dla wielojęzycznego pliku PDF?

Tak, jeśli silnik obsługuje połączone modele językowe, ale dokładność nadal może się różnić, gdy różnią się skrypty, kroje pisma i jakość stron. Znaczenie może mieć wykrywanie języka oraz konfiguracja na poziomie poszczególnych stron.

Czy 300 DPI gwarantuje spójne wyniki OCR?

Nie. Zwiększa dostępny poziom szczegółów, ale przekrzywienie, rozmycie, szum tła, kompresja, zniekształcenia i układ nadal mogą w największym stopniu wpływać na jakość rozpoznawania.

Dlaczego plik PDF wygląda ostro, a wyniki OCR nadal są słabe?

Przeglądarka może atrakcyjnie wygładzać lub skalować obraz. OCR zależy od rzeczywistych pikseli, stanu warstwy tekstowej oraz rasteryzacji używanej przez potok rozpoznawania.

Centrum Technologii i Sztucznej Inteligencji

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.