OCR dla plików PDF

Węzeł źródłowy: 879686

Wprowadzenie

Od czasu powszechnego używania komputerów w latach 1970., a następnie wynalezienia plików PDF w 1993 r., przechowywanie plików tekstowych w formatach cyfrowych stopniowo, ale stale dominowało nad tradycyjnymi papierami. Ta bezkonkurencyjna przewaga została stworzona i dodatkowo wzmocniona dzięki wykorzystaniu wygody Internetu, która umożliwia łatwe przesyłanie cyfrowych plików tekstowych na cały świat w ciągu kilku sekund. Obecnie nie tylko teksty zakodowane maszynowo są zapisywane i udostępniane w plikach PDF, nawet dokumenty odręcznie pisane są skanowane do takich formatów w celu dalszego przetwarzania i dystrybucji.

Ten pojawiający się trend rzucił jednak światło na nową i obecnie trwającą dziedzinę badań — optyczne rozpoznawanie znaków PDF (OCR). OCR to proces przekształcania zeskanowanego lub odręcznie napisanego tekstu na tekst zakodowany maszynowo, tak aby mógł być dalej wykorzystywany przez programy do dalszego przetwarzania i analizy. Chociaż zastosowanie OCR jest szerokie (od obrazów znaków drogowych po formalne dokumenty tekstowe), ten artykuł skupia się konkretnie na domenie PDF OCR, w szczególności plików PDF zeskanowanego i odręcznego papieru, oraz omawia technologię i programy w różnych językach do wykonywania zadanie. Szczegółowy przegląd i porównanie kilku dostępnych na rynku programów do rozpoznawania PDF OCR jest dalej prezentowane w celach informacyjnych.


Szukasz rozwiązania OCR do wyodrębniania informacji z plików PDF? Daj Nanonetspin dla większej dokładności, większej elastyczności, przetwarzania końcowego i szerokiego zestawu integracji!


Postępy w rozwiązaniach OCR

Zanim omówimy kody, szczegóły i zalety OCR, najpierw wyjaśnimy, jak działa OCR, wprowadzając postęp w tej technologii.

Tradycyjny OCR

Elektroniczna konwersja zeskanowanych dokumentów do dalszych obliczeń, przed głębokim uczeniem spełniającym wymaganą dokładność dla takich zadań, odbywa się zwykle w czterech prostych krokach:

  1. Zbierz bazę danych znanych postaci.
  2. Użyj fotosensorów, aby zebrać i oddzielić pojedyncze litery od zeskanowanych dokumentów.
  3. Porównaj zestaw atrybutów pobranych z fotoczujników z fizycznymi atrybutami z bazy danych.
  4. Konwertuj odpowiednio każdy zestaw atrybutów na znany znak o największym podobieństwie.

Chociaż tradycyjne podejście wydaje się być skuteczne przez większość czasu, jest ono podatne na nieodłączne ograniczenia oparte na regułach. Jednym z kluczowych etapów pośrednich OCR jest skuteczne wyodrębnienie pojedynczych liter lub znaków z zestawu/grupy tekstów. Ta ekstrakcja wymaga pewnych szablonów lub reguł (tj. wstępnie ustawionych rozmiarów/style czcionek), aby była bardzo dokładna. Narzucanie coraz większej liczby zasad w celu zwiększenia dokładności stworzy dylemat przesadnego dopasowania OCR lub korekty tylko w określonych stylach pisma. Wszelkie niespójności oświetlenia podczas procesu skanowania mogą również prowadzić do błędów, gdy OCR jest całkowicie oparty na regułach.

Ponadto porównania atrybutów oparte na regułach również zawodzą w przypadku pisma ręcznego. Czcionki generowane komputerowo są w większości ustalone z atrybutami, które często są oczywiste i łatwe do porównania – czcionki odręczne są dokładnym przeciwieństwem, z nieograniczonymi wariantami i dlatego są znacznie trudniejsze do sklasyfikowania. Ponieważ za każdym razem ręcznie wykonana postać jest nieco inna, nie jest również możliwe włączenie ich wszystkich do bazy danych. Często wymaga to od OCR wykonywania bardziej wyrafinowanych algorytmów oprócz naiwnego dopasowywania atrybutów.

Wreszcie, w tradycyjnym podejściu istnieje również bariera wielu języków. Wiele języków przyjmuje podobne lub nawet identyczne symbole; jeśli przechowujemy wszystkie symbole w bazie danych, nie bylibyśmy w stanie odróżnić dwóch symboli po prostu wykonując dopasowywanie atrybutów, co ostatecznie ogranicza tradycyjne podejście często tylko do jednego języka na model.

W świetle niedawnej ery głębokiego uczenia się, szczęśliwie wywołanej przez szybko rosnące możliwości obliczeniowe sprzętu, nowsze OCR zawierały modele uczenia się zarówno podczas procesu wyodrębniania tekstu, jak i na etapie ich interpretacji.

Silniki OCR oparte na głębokim uczeniu

Głębokie uczenie, główna gałąź dziedziny uczenia maszynowego, zyskało dużą popularność dzięki pomocy wielu uznanych naukowców, którzy wysuwają ją na pierwszy plan. W tradycyjnej inżynierii naszym celem jest zaprojektowanie systemu/funkcji, która generuje dane wyjściowe z danego wejścia; z drugiej strony, głębokie uczenie się opiera się na danych wejściowych i wyjściowych, aby znaleźć związek pośredni, który można rozszerzyć na nowe niewidoczne dane za pomocą tzw. sieci neuronowe.

Architektura sieci neuronowych

Sieć neuronowa lub wielowarstwowy perceptron naśladuje sposób uczenia się ludzkiego mózgu. Każdy węzeł, czyli neurony, wewnątrz sieci są jak neurony biologiczne, które otrzymują informacje do „aktywacji”. Zestawy neuronów tworzą warstwy, a wiele warstw układa się w stos, tworząc sieć, która wykorzystuje te informacje do generowania przewidywań. Przewidywanie może mieć wszystkie formy, od przewidywania klasy dla problemów klasyfikacji do ramek ograniczających elementy w zadaniach wykrywania obiektów – z których wszystkie osiągnęły stan wiedzy w porównaniu z poprzednią literaturą. W zadaniu OCR, dwa rodzaje danych wyjściowych, wraz z dwoma rodzajami sieci, są mocno stosowane.

  • Konwolucyjne sieci neuronowe (CNN) – CNN to jeden z najbardziej dominujących zestawów sieci wykorzystywanych obecnie, szczególnie w dziedzinie wizji komputerowej. Składa się z wielu splotowych jąder, które przesuwają się po obrazie, aby wyodrębnić cechy. W połączeniu z tradycyjnymi warstwami sieciowymi na końcu, sieci CNN są bardzo skuteczne w pobieraniu cech z danego obrazu w celu wykonania prognoz. Proces ten można dalej przenieść na zadanie znajdowania ramek ograniczających i wykrywania atrybutów znaków do dalszej klasyfikacji w procesie OCR.
  • Pamięci długoterminowe (LSTM) – LSTM to rodzina sieci stosowanych głównie do wejść sekwencyjnych. Intuicja jest prosta — w przypadku dowolnych danych sekwencyjnych (tj. pogody, zapasów) nowe wyniki mogą w dużym stopniu zależeć od poprzednich wyników, a zatem korzystne byłoby ciągłe przekazywanie poprzednich wyników w ramach funkcji wejściowych podczas wykonywania nowych prognoz . W przypadku rozpoznawania OCR wcześniej wykryte litery mogą być bardzo pomocne w przewidywaniu następnego, ponieważ zestaw znaków powinien zwykle mieć sens w zestawieniu (np. angielska litera „g” jest bardziej prawdopodobna po słowie „do” niż cyfra „9”, pomimo podobnych atrybutów).

Oprócz głównych zadań w OCR, które obejmują głębokie uczenie, wiele etapów wstępnego przetwarzania w celu wyeliminowania podejść opartych na regułach było również beneficjentami dobrze prosperujących technologii sieci neuronowych:

  • Odszumianie – Gdy dokument jest skanowany nieprawidłowo, metody oparte na regułach mogą łatwo nie sprawdzić się. Najnowsze podejście przyjęte przez technologie OCR polega na zastosowaniu generatywnej sieci adwersyjnej (GAN) w celu „odszumienia” sygnału wejściowego. GAN składa się z dwóch sieci, generatora i dyskryminatora. Generator stale generuje nowe dane wejściowe, aby dyskryminator mógł odróżnić dane wejściowe od rzeczywistych, co pozwala generatorowi na ciągłe doskonalenie się w tworzeniu idealnych treści. W tym przypadku GAN jest wytrenowany z pary dokumentów odszumionych i zaszumionych, a celem generatora jest wygenerowanie dokumentu odszumionego jak najbliżej prawdy podstawowej. W fazie składania wniosku GAN, jeśli jest dobrze przeszkolony, może być następnie używany na każdym wejściu w celu dostrojenia słabo zeskanowanych dokumentów.
  • Identyfikacja dokumentu – Zadania OCR, w szczególności zadania OCR na plikach PDF, są często używane w celu prawidłowego wyodrębnienia danych z formularzy i dokumentów. Dlatego znajomość rodzaju dokumentu, który aktualnie przetwarza maszyna OCR, może znacznie zwiększyć dokładność ekstrakcji danych. Najnowsze dzieła sztuki włączyły sieć syjamską lub sieć porównawczą do porównywania dokumentów z wcześniej istniejącymi formatami dokumentów, umożliwiając silnikowi OCR wcześniejsze przeprowadzenie klasyfikacji dokumentów. Ten dodatkowy krok został empirycznie wykazany w celu zwiększenia dokładności wyszukiwania tekstu.

Podsumowując, na postępie OCR skorzystał wykładniczy wzrost możliwości sprzętowych i głębokiego uczenia się. OCR PDF osiągnęło teraz zadziwiającą dokładność w wielu zastosowaniach.


Szukasz rozwiązania OCR do wyodrębniania informacji z plików PDF? Daj Nanonetspin dla większej dokładności, większej elastyczności, przetwarzania końcowego i szerokiego zestawu integracji!


Zastosowania oprogramowania PDF OCR

Głównym celem OCR jest pobieranie danych z nieustrukturyzowanych formatów, zarówno liczbowych, jak i rzeczywistych. Jeśli wyszukiwanie jest skuteczne i bardzo dokładne, programy mogą wykorzystywać OCR do zadań roboczych, takich jak rozpoznawanie i interpretacja tekstu, w szczególności do analizy numerycznej i kontekstowej.

Numeryczna analiza danych

Gdy pliki PDF zawierają dane liczbowe, OCR pomaga wyodrębnić je w celu przeprowadzenia analizy statystycznej. W szczególności, OCR za pomocą wyciągów z tabeli lub par klucz-wartość (KVP) można zastosować w celu znalezienia znaczących liczb z różnych regionów danego tekstu. Możemy następnie zaadaptować metody statystyczne lub nawet uczenia maszynowego (tj. KNN, K-Means, Linear/Logistic Regression) do modeli różnych zastosowań

Interpretacja danych tekstowych

Z drugiej strony przetwarzanie danych tekstowych może wymagać więcej etapów obliczeń, a ostatecznym celem programów jest zrozumienie „znaczeń” kryjących się za słowami. Taki proces interpretacji danych tekstowych na ich znaczenia semantyczne określa się mianem przetwarzania języka naturalnego (NLP).

Korzyści z PDF OCR

PDF OCR służy wielu celom na poziomie aplikacji. W poniższych sekcjach opisano kilka przykładowych przypadków użycia, od tak małych, jak użytek osobisty, po tak duże, jak w korporacji.

Osobiste przypadki użycia

OCR PDF zapewnia ogromną wygodę podczas wykonywania irytujących zadań, takich jak skanowanie identyfikatorów i finansowanie osobiste.

Często wymagane jest przekonwertowanie identyfikatorów osobistych na formaty PDF w celu wysłania do różnych aplikacji. Te dokumenty identyfikacyjne zawierają informacje, takie jak data urodzenia i numery identyfikacyjne, które często muszą być wpisywane wielokrotnie w różnych celach, dlatego bardzo dokładny PDF OCR, który znajduje pasujące pola i odpowiadające im wartości w identyfikatorze, byłby świetny pomoc w wykonywaniu trywialnych zadań manualnych. Jedyną wymaganą pracą byłoby po prostu dwukrotne sprawdzenie niezgodności.

Finansowanie osobiste to kolejny proces, który wymaga mnóstwa pracy ręcznej. Chociaż rozwój programu Excel i arkuszy kalkulacyjnych już ułatwił zadania, takie jak budżetowanie osobiste, OCR i ekstrakcja danych z faktur PDF mogą jeszcze bardziej przyspieszyć ten proces. Dane te mogą być automatycznie umieszczane w arkuszach kalkulacyjnych w celu przeprowadzenia analizy, jak wspomniano w poprzednich sekcjach. Można łatwo wykorzystać oryginalny klucz w czasie do wymyślania lepszych planów finansowych.

Biznesowe przypadki użycia Business

Zarówno duże korporacje, jak i mniejsze organizacje muszą radzić sobie z tysiącami papierkowej roboty w podobnych formatach, które są bardzo pracochłonne, ale nieproduktywne (tj. cała praca jest wykorzystywana do czegoś, co wymaga mniej burzy mózgów). Zautomatyzowana klasyfikacja dokumentów i kolekcje/analizy ankiet to obszary, w których OCR przydaje się.

OCR umożliwiają komputerom konwersję zeskanowanych tekstów na teksty zakodowane maszynowo. Zawartość przekonwertowanych tekstów można następnie wykorzystać do klasyfikacji dokumentów, niezależnie od tego, czy są to wnioski o różne role, czy formularze oczekujące na zatwierdzenie. Dobrze wyszkolony OCR może prowadzić do minimalnych błędów, które mogą być częste z powodu nieuniknionego ludzkiego zmęczenia. Z perspektywy biznesowej wydatki na pracę również mogą zostać znacznie zmniejszone.

Jeśli chodzi o ankiety lub informacje zwrotne, które często są wymagane przez organizacje w celu ulepszenia ich obecnego produktu lub planów, OCR również odgrywa istotną rolę. Dane można szybko wyodrębnić i szczegółowo przeanalizować w celu analizy statystycznej. Jeśli dobrze zaprojektowano, nawet odręczny tekst może zostać automatycznie wyodrębniony i przeanalizowany.


Szukasz rozwiązania OCR do wyodrębniania informacji z plików PDF? Daj Nanonetspin dla większej dokładności, większej elastyczności, przetwarzania końcowego i szerokiego zestawu integracji!


Prosty samouczek

OCR PDF można łatwo zaprogramować osobiście. Poniżej znajduje się prosty potok do wykonywania OCR w plikach PDF.

Konwersja PDF do obrazów

Istnieje wiele bibliotek i interfejsów API w wielu językach, które obsługują wstępnie wytrenowane OCR. Jednak większość z nich przetwarza obrazy, a nie bezpośrednio pliki PDF. Dlatego, aby uprościć następujące kroki, możemy wstępnie przetworzyć pliki PDF na formaty obrazu przed wykonaniem rozpoznawania znaków.

Jedną z najczęściej używanych bibliotek do tego celu jest pdf2obraz biblioteka dla Pythona, którą można po prostu zainstalować za pomocą następującego polecenia:

pip install pdf2image

Następnie można zaimportować bibliotekę i użyć dowolnego z dwóch wierszy kodu, aby uzyskać obraz w formacie PIL w następujący sposób:

from pdf2image import convert_from_path, convert_from_bytes
from pdf2image.exceptions import ( PDFInfoNotInstalledError, PDFPageCountError, PDFSyntaxError
) images = convert_from_path('/home/belval/example.pdf')
images = convert_from_bytes(open('/home/belval/example.pdf','rb').read())

Więcej informacji na temat kodu można znaleźć w oficjalnej dokumentacji w https://pypi.org/project/pdf2image/

OCR obrazu

Istnieje wiele interfejsów API od dużych firm technologicznych z bardzo dokładnymi OCR. Ze względu na założenie, że pliki PDF są zwykle bardzo upakowane gęstymi danymi tekstowymi, najbardziej odpowiednim sposobem wykonania takiego OCR byłoby użycie Google Vision API, w szczególności Dokument_Tekst_Adnotacja funkcjonować, ponieważ jest specjalnie zaprojektowany do takich celów. Konkretnie, Dokument_Tekst_Adnotacja wysyła kod do silnika OCR, który Google zaprojektował dla gęstych tekstów, w tym pisma ręcznego w różnych językach.

Cały interfejs Google Vision API jest prosty w konfiguracji, można zapoznać się z jego oficjalnymi wskazówkami na temat https://cloud.google.com/vision/docs/quickstart-client-libraries dla szczegółowej procedury konfiguracji.

Następnie możemy użyć następujących kodów do pobierania OCR:

def detect_document(path): """Detects document features in an image.""" from google.cloud import vision import io client = vision.ImageAnnotatorClient() with io.open(path, 'rb') as image_file: content = image_file.read() image = vision.Image(content=content) response = client.document_text_detection(image=image) for page in response.full_text_annotation.pages: for block in page.blocks: print('nBlock confidence: {}n'.format(block.confidence)) for paragraph in block.paragraphs: print('Paragraph confidence: {}'.format( paragraph.confidence)) for word in paragraph.words: word_text = ''.join([ symbol.text for symbol in word.symbols ]) print('Word text: {} (confidence: {})'.format( word_text, word.confidence)) for symbol in word.symbols: print('tSymbol: {} (confidence: {})'.format( symbol.text, symbol.confidence)) if response.error.message: raise Exception( '{}nFor more info on error messages, check: ' 'https://cloud.google.com/apis/design/errors'.format( response.error.message))

Alternatywnie Google Vision API obsługuje również wiele języków, takich jak Java i Go. Więcej kodów dotyczących korzystania z Google API można pobrać tutaj: https://cloud.google.com/vision  

Istnieją również inne usługi OCR/API od Amazon i Microsoft i zawsze możesz użyć PyTesserakt biblioteka do trenowania na modelu do określonych celów.


Szukasz rozwiązania OCR do wyodrębniania informacji z plików PDF? Daj Nanonetspin dla większej dokładności, większej elastyczności, przetwarzania końcowego i szerokiego zestawu integracji!


Porównanie

Na rynku dostępnych jest obecnie wiele OCR w formacie PDF. Niektóre z nich są bezpłatne, szybkie i można z nich korzystać od razu w trybie online, inne zapewniają dokładniejsze i lepiej zaprojektowane produkty do użytku profesjonalnego. Tutaj opisujemy kilka opcji, a także ich zalety i wady.

Online PDF OCR

W przypadku korzystania z OCR PDF do użytku osobistego w przypadku szybkich konwersji, bardziej pożądane może być bezpłatne i szybkie niż dokładność. Istnieje wiele internetowych usług OCR PDF, które służą tym potrzebom. Można po prostu przesłać dokumenty PDF i przekształcić je w tekst pisany w szybki i wygodny sposób.

Głównym problemem jest jednak kontrola jakości OCR. Te bezpłatne oprogramowanie OCR online, chociaż działa dobrze przez większość czasu, nie musi zapewniać za każdym razem najlepszej jakości wydruku w porównaniu z innym oprogramowaniem offline, które wymaga ciągłej konserwacji

Oprogramowanie offline

Obecnie istnieje kilka firm, które świadczą bardzo dokładne usługi PDF OCR. Tutaj przyjrzymy się kilku opcjom PDF OCR, które specjalizują się w różnych aspektach, a także kilku niedawnym prototypom badań, które wydają się dostarczać obiecujących wyników:

Istnieje wiele usług OCR, które są ukierunkowane na zadania takie jak obrazy na wolności. Pominęliśmy te usługi, ponieważ obecnie koncentrujemy się tylko na odczytywaniu dokumentów PDF.

  • ABBYY - ABBYY FineReader PDF to OCR opracowany przez firmę ABBYY. Oprogramowanie posiada przyjazny interfejs użytkownika służący do odczytu plików PDF i konwersji tekstu. Jednak ze względu na jego nieinżynierski charakter (docelowymi klientami są nietechniczni specjaliści z innych dziedzin, którzy potrzebują PDF OCR), trudniej byłoby włączyć go do innych programów w celu dalszego przetwarzania.
  • cofax – Podobnie jak ABBYY, Kofax to przyjazny czytnik PDF, który wymaga zakupu. Cena jest stała do użytku indywidualnego, z rabatami dla dużych korporacji. Pomoc 24/7 jest również dostępna w przypadku jakichkolwiek problemów technicznych.
  • Głęboki czytelnik – Deep Reader to praca badawcza opublikowana na konferencji ACCV 2019. Zawiera wiele najnowocześniejszych architektur sieciowych do wykonywania zadań, takich jak dopasowywanie dokumentów, wyszukiwanie tekstu i odszumianie obrazów. Dostępne są dodatkowe funkcje, takie jak tabele i wyodrębnianie par klucz-wartość, które umożliwiają pobieranie i zapisywanie danych w zorganizowany sposób.
  • Nanonet™ – Nanonets™ PDF OCR wykorzystuje głębokie uczenie i dlatego jest całkowicie niezależny od szablonów i reguł. Nanonety nie tylko mogą pracować na określonych typach plików PDF, ale można je również zastosować do dowolnego typu dokumentu w celu wyszukiwania tekstu.

Wnioski

Podsumowując, w tym artykule omówiliśmy podstawy działania OCR, a także harmonogram rozwoju OCR, a następnie proste samouczki i przypadki użycia. Przedstawiliśmy również zestaw realnych opcji dla PDF OCR oraz ich zalety i wady do dalszego wykorzystania.

Źródło: https://nanonets.com/blog/pdf-ocr/

Znak czasu:

Więcej z AI i uczenie maszynowe