Optische tekenherkenning (OCR)
Opmerking
Zie het tabblad Tekst en afbeeldingen voor meer informatie.
Optical Character Recognition (OCR) is een technologie die automatisch visuele tekst in afbeeldingen converteert ( van gescande documenten, foto's of digitale bestanden) naar bewerkbare, doorzoekbare tekstgegevens. In plaats van gegevens handmatig te transcriberen, maakt OCR geautomatiseerde gegevensextractie mogelijk vanuit:
- Gescande facturen en ontvangstbewijzen
- Digitale foto's van documenten
- PDF-bestanden met afbeeldingen van tekst
- Schermopnamen en vastgelegde inhoud
- Formulieren en handgeschreven notities
De OCR-pijplijn: een stapsgewijs proces
De OCR-pijplijn bestaat uit vijf essentiële fasen die samenwerken om visuele informatie te transformeren in tekstgegevens.
De fasen in het OCR-proces zijn:
- Afbeeldingsverwerving en -invoer.
- Voorverwerking en beeldverbetering.
- Detectie van tekstregio's.
- Tekenherkenning en -classificatie.
- Uitvoergeneratie en naverwerking.
Laten we elke fase in meer detail bekijken.
Fase 1: Afbeeldingsverwerving en -invoer
De pijplijn begint wanneer een afbeelding met tekst het systeem binnenkomt. Dit kan het volgende zijn:
- Een foto gemaakt met een smartphonecamera.
- Een document gescand op een flatbed- of documentscanner.
- Een frame dat is geëxtraheerd uit een videostream.
- Een PDF-pagina die wordt weergegeven als een afbeelding.
Aanbeveling
De kwaliteit van de afbeelding in deze fase is aanzienlijk van invloed op de uiteindelijke nauwkeurigheid van tekstextractie.
Fase 2: Voorverwerking en beeldverbetering
Voordat tekstdetectie begint, worden de volgende technieken gebruikt om de afbeelding te optimaliseren voor een betere nauwkeurigheid van herkenning:
Ruisvermindering verwijdert visuele artefacten, stofvlekken en het scannen van onvolkomenheden die de detectie van tekst kunnen verstoren. De specifieke technieken die worden gebruikt voor het verminderen van ruis zijn onder andere:
- Filter- en afbeeldingsverwerkingsalgoritmen: Gaussiische filters, mediaanfilters en morfologische bewerkingen.
- Machine learning-modellen: Denoising auto-encoders en convolutional neural networks (CNN's) die specifiek zijn getraind voor het opschonen van documentafbeeldingen.
De contrastaanpassing verbetert het verschil tussen tekst en achtergrond om tekens duidelijker te maken. Nogmaals, er zijn meerdere mogelijke benaderingen:
- Klassieke methoden: Histogram equalisatie, adaptieve drempelwaarden en gammacorrectie.
- Machine learning: Deep learning-modellen die optimale uitbreidingsparameters voor verschillende documenttypen leren.
Bij scheefheidscorrectie wordt documentrotatie gedetecteerd en gecorrigeerd, zodat tekstregels horizontaal worden uitgelijnd. Technieken voor scheefstandcorrectie zijn onder andere:
- Wiskundige technieken: Hough-transformatie voor lijndetectie, projectieprofielen en verbonden onderdeelanalyse.
- Neurale netwerkmodellen: Regressie-CNN's die rotatiehoeken rechtstreeks vanuit afbeeldingsfuncties voorspellen.
Met resolutieoptimalisatie wordt de resolutie van afbeeldingen aangepast aan het optimale niveau voor algoritmen voor tekenherkenning. U kunt de resolutie van afbeeldingen optimaliseren met:
- Interpolatiemethoden: Bicubic-, bilineaire- en Lanczos-resamplingalgoritmen.
- Superoplossingsmodellen: Generatieve adversarial netwerken (GAN's) en restnetwerken die op intelligente wijze tekstafbeeldingen met lage resolutie opschalen.
Fase 3: Detectie van tekstregio's
Het systeem analyseert de vooraf verwerkte afbeelding om gebieden te identificeren die tekst bevatten met behulp van de volgende technieken:
Indelingsanalyse maakt onderscheid tussen tekstgebieden, afbeeldingen, afbeeldingen en witruimtegebieden. Technieken voor indelingsanalyse zijn onder andere:
- Traditionele benaderingen: Analyse van verbonden onderdelen, coderen op uitvoeringslengte en segmentatie op basis van projectie.
- Deep Learning-modellen: Semantische segmentatienetwerken zoals U-Net, Mask R-CNN en gespecialiseerde modellen voor documentindelingen (bijvoorbeeld LayoutLM of Door PubLayNet getrainde modellen).
Met tekstblokidentificatie worden afzonderlijke tekens gegroepeerd in woorden, regels en alinea's op basis van ruimtelijke relaties. Veelvoorkomende benaderingen zijn:
- Klassieke methoden: clustering op basis van afstand, analyse van witruimte en morfologische bewerkingen
- Neurale netwerken: Neurale netwerken en transformatormodellen van Graph die inzicht hebben in de structuur van ruimtelijke documenten
Bepaling van leesvolgorde bepaalt de volgorde waarin tekst moet worden gelezen (van links naar rechts, van boven naar beneden voor Engels). De juiste volgorde kan worden bepaald door:
- Op regels gebaseerde systemen: geometrische algoritmen die begrenzingsvakcoördinaten en ruimtelijke heuristiek gebruiken.
- Machine learning-modellen: Sequentievoorspellingsmodellen en grafiek-gebaseerde benaderingen die leespatronen van trainingsdata leren.
Regioclassificatie identificeert verschillende typen tekstgebieden (kopteksten, hoofdtekst, bijschriften, tabellen).
- Op functies gebaseerde classificaties: Ondersteuningsvectormachines (SVM's) met behulp van handgemaakte functies zoals tekengrootte, positie en opmaak
- Deep Learning-modellen: Convolutionele neurale netwerken en vision-transformatoren die zijn getraind op gelabelde documentgegevenssets
Fase 4: Tekenherkenning en classificatie
Dit is de kern van het OCR-proces waarbij afzonderlijke tekens worden geïdentificeerd:
Functieextractie: Analyseert de vorm, grootte en onderscheidende kenmerken van elk teken of symbool.
- Traditionele methoden: Statistische functies zoals momenten, Fourier descriptors en structurele kenmerken (lussen, eindpunten, snijpunten)
- Deep Learning-benaderingen: Convolutionele neurale netwerken die automatisch discriminerende functies van onbewerkte pixelgegevens leren
Patroonkoppeling: vergelijkt geëxtraheerde functies met getrainde modellen die verschillende lettertypen, grootten en schrijfstijlen herkennen.
- Sjabloonkoppeling: Directe vergelijking met opgeslagen tekensjablonen met behulp van correlatietechnieken
- Statistische classificaties: Verborgen Markov-modellen (HMM's), Support Vector Machines en k-dichtstbijzijnde buren met behulp van functievectoren
- Neurale netwerken: perceptrons met meerdere lagen, CNN's en gespecialiseerde architecturen, zoals LeNet voor cijferherkenning
- Geavanceerde deep learning: Restnetwerken (ResNet), DenseNet en EfficientNet-architecturen voor robuuste tekenclassificatie
Contextanalyse: Gebruikt omringende tekens en woorden om de nauwkeurigheid van de herkenning te verbeteren via woordenlijstzoekacties en taalmodellen.
- N-grammodellen: Statistische taalmodellen die tekenreeksen voorspellen op basis van waarschijnlijkheidsverdelingen.
- Correctie op basis van woordenlijst: Lexicon lookup met bewerkingsafstandsalgoritmen (zoals Levenshtein-afstand) voor spellingcorrectie.
- Neurale taalmodellen: modellen op basis van LSTM en transformatieprogramma's (zoals BERT-varianten) die contextuele relaties begrijpen.
- Aandachtsmechanismen: Transformermodellen die zich richten op relevante onderdelen van de invoer bij het maken van karaktervoorspellingen.
Betrouwbaarheidsscore: wijst waarschijnlijkheidsscores toe aan elk herkend teken op basis van hoe bepaald het systeem over de identificatie ervan gaat.
- Bayesiaanse benaderingen: Probabilistische modellen die onzekerheid kwantificeren in tekenvoorspellingen.
- Softmax-uitvoer: de activeringen van de laatste laag van een neuraal netwerk geconverteerd naar waarschijnlijkheidsverdelingen.
- Ensemblemethoden: voorspellingen van meerdere modellen combineren om betrouwbaarheidschattingen te verbeteren.
Fase 5: Generatie van uitvoer en naverwerking
In de laatste fase worden herkenningsresultaten geconverteerd naar bruikbare tekstgegevens:
Tekstcompilatie: stelt afzonderlijke tekenherkenningen samen in volledige woorden en zinnen.
- Regelgebaseerde samenstelling: deterministische algoritmen die tekenvoorspellingen combineren door ruimtelijke nabijheid en betrouwbaarheidsdrempels.
- Reeksmodellen: Terugkerende neurale netwerken (RNN's) en LSTM-netwerken (Long Short-Term Memory) die tekst modelleren als sequentiële gegevens.
- Op aandacht gebaseerde modellen: Transformerarchitecturen die sequenties met een variabele lengte en complexe tekstindelingen kunnen verwerken.
Behoud van opmaak: behoudt de documentstructuur, inclusief alinea's, regeleinden en afstand.
- Geometrische algoritmen: op regels gebaseerde systemen die begrenzingsvakcoördinaten en witruimteanalyse gebruiken.
- Indelingskennis van modellen: Neurale netwerken van Graph en DOCUMENT AI-modellen die structurele relaties leren.
- Multimodale transformatoren: modellen zoals LayoutLM die tekst- en indelingsinformatie combineren voor het behoud van de structuur.
Coördinaattoewijzing: registreert de exacte positie van elk tekstelement in de oorspronkelijke afbeelding.
- Coördinatentransformatie: wiskundige toewijzing tussen afbeeldingspixels en documentcoördinaten.
- Ruimtelijke indexering: Gegevensstructuren zoals R-trees en quad-trees voor efficiënte ruimtelijke query's.
- Regressiemodellen: Neurale netwerken die zijn getraind om nauwkeurige coördinaten voor tekstpositie te voorspellen.
Kwaliteitsvalidatie: hiermee worden spelling- en grammaticacontroles toegepast om mogelijke herkenningsfouten te identificeren.
- Validatie op basis van woordenlijsten: Opzoeken op basis van uitgebreide woordenlijsten en gespecialiseerde domeinwoordenlijsten.
- Statistische taalmodellen: N-grammodellen en probabilistische parsers voor grammatica- en contextvalidatie.
- Neurale taalmodellen: vooraf getrainde modellen zoals GPT of BERT die zijn afgestemd op OCR-foutdetectie en -correctie.
- Ensemblevalidatie: meerdere validatiemethoden combineren om de nauwkeurigheid van foutdetectie te verbeteren.