Optyczne rozpoznawanie znaków (OCR)
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.
Etapy procesu OCR to:
- Pozyskiwanie i wprowadzanie obrazów.
- Przetwarzanie wstępne i ulepszanie obrazu.
- Wykrywanie regionów tekstu.
- Rozpoznawanie znaków i klasyfikacja.
- 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.