Optyczne rozpoznawanie znaków (OCR)

Ukończone

Uwaga / Notatka

Aby uzyskać więcej szczegółów, zobacz kartę Tekst i obrazy .

Optyczne rozpoznawanie znaków (OCR) to technologia, która automatycznie konwertuje tekst wizualny na obrazach — zarówno ze zeskanowanych dokumentów, zdjęć, jak i plików cyfrowych — do edytowalnych, przeszukiwalnych danych tekstowych. Zamiast ręcznie transkrypcji informacji, funkcja OCR umożliwia automatyczne wyodrębnianie danych z:

  • Zeskanowane faktury i paragony
  • Cyfrowe fotografie dokumentów
  • Pliki PDF zawierające obrazy tekstu
  • Zrzuty ekranu i przechwycona zawartość
  • Formularze i notatki odręczne

Potok OCR: proces krok po kroku

Potok OCR składa się z pięciu podstawowych etapów, które współpracują ze sobą w celu przekształcania informacji wizualnych w dane tekstowe.

Diagram potoku przetwarzania OCR.

Etapy procesu OCR to:

  1. Pozyskiwanie i wprowadzanie obrazów.
  2. Przetwarzanie wstępne i ulepszanie obrazu.
  3. Wykrywanie regionów tekstu.
  4. Rozpoznawanie znaków i klasyfikacja.
  5. Generowanie danych wyjściowych i przetwarzanie końcowe.

Przyjrzyjmy się każdemu etapowi bardziej szczegółowo.

Etap 1. Pozyskiwanie i wprowadzanie obrazów

Strumień przetwarzania rozpoczyna się, gdy obraz zawierający tekst wchodzi do systemu. Może to być:

  • Zdjęcie zrobione z aparatem smartfonu.
  • Zeskanowany dokument z skanera płaskiego lub skanera do dokumentów.
  • Ramka wyodrębniona ze strumienia wideo.
  • Strona PDF renderowana jako obraz.

Wskazówka

Jakość obrazu na tym etapie znacząco wpływa na ostateczną dokładność wyodrębniania tekstu.

Etap 2. Ulepszenia przetwarzania wstępnego i obrazu

Przed rozpoczęciem wykrywania tekstu do optymalizacji obrazu są używane następujące techniki w celu uzyskania lepszej dokładności rozpoznawania:

  • Redukcja szumu usuwa artefakty wizualne, plamy pyłu i niedoskonałości skanowania, które mogą zakłócać wykrywanie tekstu. Konkretne techniki używane do redukcji szumu obejmują:

    • Algorytmy filtrowania i przetwarzania obrazów: filtry gaussowskie, mediany i operacje morfologiczne.
    • Modele uczenia maszynowego: denozowanie autoencoderów i splotowych sieci neuronowych (CNN) przeszkolonych specjalnie na potrzeby oczyszczania obrazów dokumentów.
  • Korekta kontrastu zwiększa różnicę między tekstem a tłem, aby znaki bardziej się wyróżniały. Ponownie istnieje wiele możliwych podejść:

    • Metody klasyczne: wyrównanie histogramu, adaptacyjne progowanie i korekta gamma.
    • Uczenie maszynowe: modele uczenia głębokiego, które uczą się optymalnych parametrów ulepszeń dla różnych typów dokumentów.
  • Korekta skosu wykrywa i poprawia rotację dokumentu, zapewniając, że wiersze tekstu są prawidłowo wyrównane poziomo. Techniki korygowania niesymetryczności obejmują:

    • Techniki matematyczne: transformacja Hougha na potrzeby wykrywania linii, profile projekcyjne i analiza składowych połączonych.
    • Modele sieci neuronowych: regresyjne sieci CNN, które przewidują kąty obrotu bezpośrednio z cech obrazu.
  • Optymalizacja rozdzielczości dostosowuje rozdzielczość obrazu do optymalnego poziomu algorytmów rozpoznawania znaków. Rozdzielczość obrazów można zoptymalizować za pomocą:

    • Metody interpolacji: algorytmy ponownego próbkowania Bicubic, dwuliniowe i Lanczos.
    • Modele superrozdzielczości: Generatywne sieci przeciwstawne (GAN) i sieci resztkowe, które inteligentnie skalują obrazy tekstowe o niskiej rozdzielczości.

Etap 3. Wykrywanie regionów tekstu

System analizuje wstępnie przetworzony obraz w celu zidentyfikowania obszarów zawierających tekst przy użyciu następujących technik:

  • Analiza układu rozróżnia regiony tekstu, obrazy, grafikę i obszary białych znaków. Techniki analizy układu obejmują:

    • Tradycyjne podejścia: Analiza połączonych składników, kodowanie długości przebiegu i segmentacja oparta na projekcji.
    • Modele uczenia głębokiego: sieci segmentacji semantycznej, takie jak U-Net, Mask R-CNN, oraz wyspecjalizowane modele analizy układu dokumentu (na przykład LayoutLM lub modele wytrenowane na PubLayNet).
  • Identyfikacja bloków tekstu grupuje poszczególne znaki w wyrazy, wiersze i akapity na podstawie relacji przestrzennych. Typowe podejścia obejmują:

    • Metody klasyczne: klastrowanie oparte na odległościach, analiza białych znaków i operacje morfologiczne
    • Sieci neuronowe: grafowe sieci neuronowe i modele przekształcania, które rozumieją strukturę dokumentów przestrzennych
  • Określanie kolejności czytania określa sekwencję, w której tekst powinien być odczytywany (od lewej do prawej, od góry do dołu dla języka angielskiego). Prawidłową kolejność można określić przez:

    • Systemy oparte na regułach: algorytmy geometryczne używające współrzędnych pola ograniczenia i heurystyki przestrzennej.
    • Modele uczenia maszynowego: modele przewidywania sekwencji i podejścia oparte na grafach, które uczą się odczytywania wzorców na podstawie danych treningowych.
  • Klasyfikacja regionów identyfikuje różne typy regionów tekstowych (nagłówki, tekst treści, podpisy, tabele).

    • Klasyfikatory oparte na cechach: maszyny wektorowe (SVM) wykorzystujące ręcznie opracowane cechy, takie jak rozmiar czcionki, położenie i formatowanie
    • Modele uczenia głębokiego: splotowe sieci neuronowe i transformatory wizji przetwarzają dokumenty na oznaczonych zestawach danych

Etap 4. Rozpoznawanie i klasyfikacja znaków

Jest to rdzeń procesu OCR, w którym są identyfikowane poszczególne znaki:

  • Wyodrębnianie cech: analizuje kształt, rozmiar i charakterystyczne cechy każdego znaku lub symbolu.

    • Tradycyjne metody: funkcje statystyczne, takie jak momenty, deskryptory Fourier i funkcje strukturalne (pętle, punkty końcowe, skrzyżowania)
    • Podejścia do uczenia głębokiego: konwolucyjne sieci neuronowe, które automatycznie uczą się funkcji dyskryminacyjnych z nieprzetworzonych danych pikseli
  • Dopasowywanie wzorca: porównuje wyodrębnione cechy z przetrenowanych modeli, które rozpoznają różne czcionki, rozmiary i style pisania.

    • Dopasowywanie szablonów: bezpośrednie porównanie z przechowywanymi szablonami znaków przy użyciu technik korelacji
    • Klasyfikatory statystyczne: Ukryte modele Markowa (HMMs), maszyny wektorów wsparcia i najbliżsi sąsiedzi przy użyciu wektorów cech
    • Sieci neuronowe: wielowarstwowe perceptrony, sieci CNN i wyspecjalizowane architektury, takie jak LeNet do rozpoznawania cyfr
    • Zaawansowane uczenie głębokie: sieci resztkowe (ResNet), architektura DenseNet i EfficientNet w celu zapewnienia niezawodnej klasyfikacji znaków
  • Analiza kontekstu: używa otaczających znaków i wyrazów, aby zwiększyć dokładność rozpoznawania za pomocą odnośników słownika i modeli językowych.

    • Modele N-gram: Modele języka statystycznego, które przewidują sekwencje znaków na podstawie rozkładów prawdopodobieństwa.
    • Korekta oparta na słowniku: wyszukiwanie leksykonu z algorytmami edycji odległości (takimi jak odległość Levenshtein) na potrzeby korekty pisowni.
    • Modele języków neuronowych: modele LSTM i modele oparte na transformatorach (na przykład warianty BERT), które rozumieją relacje kontekstowe.
    • Mechanizmy uwagi: Modele przekształcania, które koncentrują się na odpowiednich częściach danych wejściowych podczas tworzenia przewidywań znaków.
  • Ocena wiarygodności: przypisuje prawdopodobieństwa do każdego rozpoznanego znaku w zależności od tego, jak pewny system jest w swojej identyfikacji.

    • Podejścia bayesowskie: Modele probabilistyczne, które kwantyfikują niepewność w przewidywaniach znaków.
    • Dane wyjściowe softmax: końcowe aktywacje warstwy sieci neuronowej konwertowane na rozkłady prawdopodobieństwa.
    • Metody zespołowe: łączenie przewidywań z wielu modeli w celu zwiększenia oszacowań ufności.

Etap 5. Generowanie danych wyjściowych i przetwarzanie końcowe

Ostatni etap konwertuje wyniki rozpoznawania na użyteczne dane tekstowe:

  • Kompilacja tekstu: tworzy pojedyncze rozpoznawanie znaków w pełne wyrazy i zdania.

    • Zestaw oparty na regułach: algorytmy deterministyczne, które łączą przewidywania znaków przy użyciu odległości przestrzennej i progów ufności.
    • Modele sekwencji: Rekurencyjne sieci neuronowe (RNN) i LSTM, które modelują tekst jako dane sekwencyjne.
    • Modele oparte na mechanizmach uwagi: Architektury transformera, które mogą obsługiwać sekwencje o zmiennej długości i złożone struktury tekstowe.
  • Zachowywanie formatu: zachowuje strukturę dokumentu, w tym akapity, podziały wierszy i odstępy.

    • Algorytmy geometryczne: systemy oparte na regułach używające współrzędnych obszaru ograniczającego i analizy przestrzeni białej.
    • Modele rozumienia układu: grafowe sieci neuronowe i dokumentowanie modeli sztucznej inteligencji, które uczą się relacji strukturalnych.
    • Transformatory wielomodalne: modele, takie jak LayoutLM, które łączą informacje o tekście i układzie w celu zachowania struktury.
  • Mapowanie współrzędnych: rejestruje dokładną pozycję każdego elementu tekstowego w oryginalnym obrazie.

    • Przekształcanie współrzędnych: Mapowanie matematyczne między pikselami obrazu i współrzędnymi dokumentu.
    • Indeksowanie przestrzenne: struktury danych, takie jak drzewa R i czworokąta, umożliwiające wydajne zapytania przestrzenne.
    • Modele regresji: sieci neuronowe przeszkolone w celu przewidywania dokładnych współrzędnych pozycjonowania tekstu.
  • Walidacja jakości: Stosuje sprawdzanie pisowni i gramatyki w celu zidentyfikowania potencjalnych błędów rozpoznawania.

    • Walidacja oparta na słowniku: Wyszukiwanie pod kątem kompleksowych list słów i wyspecjalizowanego słownictwa domenowego.
    • Modele języka statystycznego: modele N-gram i analizatory probabilistyczne na potrzeby walidacji gramatyki i kontekstu.
    • Modele języków neuronowych: wstępnie wytrenowane modele, takie jak GPT lub BERT, dostosowane do wykrywania i poprawiania błędów OCR.
    • Walidacja zespołu: łączenie wielu metod sprawdzania poprawności w celu zwiększenia dokładności wykrywania błędów.