Je leest:

OCR: van papier naar scherm

OCR: van papier naar scherm

Auteur: | 16 januari 2009

Met behulp van Optical Character Recognition (OCR) is het mogelijk om een tekst op papier om te zetten naar een tekst op je computerscherm. De techniek werkt echter nog verre van perfect: de digitale tekst staat vaak vol met herkenningsfouten. Wetenschappers hebben verschillende taaltechnologische oplossingen bedacht om deze fouten automatisch te corrigeren.

Stel, je schrijft een brief en wilt die vandaag nog met je vrienden aan de andere kant van het land delen. Opsturen via de post is dan geen optie. Of je hebt een tekst op papier waarvan je de opmaak zou willen veranderen. Als je gaat knippen en plakken zal het een zooitje worden. En overtypen duurt te lang. Gelukkig is het mogelijk om deze teksten automatisch zo te digitaliseren dat je ze vervolgens ook nog kunt bewerken. Deze techniek heet OCR, wat staat voor Optical Character Recognition. In het Nederlands wordt ook wel gesproken van Optische Tekenherkenning.

Het patent op OCR werd al in 1929 aangevraagd door de Oostenrijker Gustav Tauschek. Hij werkte toen nog met een mechanisch apparaat dat met behulp van licht en een soort mal de letters herkende. In de jaren vijftig hebben de Amerikanen de techniek verder ontwikkeld. Hierdoor konden bijvoorbeeld de posterijen automatisch de adressen op de enveloppen lezen. Vanaf de zeventiger jaren is de techniek ook voor consumenten beschikbaar.

Tekenherkenning

OCR-software kan pas gebruikt worden, nadat eerst een goede digitale afbeelding van de tekst is gemaakt. Deze kan je maken met een scanner. Hoe hoger de kwaliteit van de scan, des te beter de tekst vervolgens door de computer herkend kan worden. Een scan van 72 dpi (dots per inch, het aantal puntjes gemeten per 2,54 cm) geeft een klein document met een lage resolutie. De computer zal moeite hebben om in deze afbeelding te onderscheiden wat tekst is en wat toevallige vlekjes op het papier zijn. De meeste gebruikers van OCR maken scans van minimaal 300 dpi.

Twee scans van dezelfde tekst. De linker scan is gemaakt met 75 dpi en de rechter met 600 dpi. De computer zal de linker tekst niet kunnen herkennen, omdat de resolutie te laag is. De resolutie van de rechter afbeelding is wel hoog genoeg, maar de computer zal veel moeite hebben met het onregelmatige handschrift.

Als je eenmaal een goede scan hebt gemaakt, kan je deze laden in de speciale software voor optical character recognition. Deze software zit soms al bijgeleverd bij de scanner, of is anders makkelijk te verkrijgen via internet of een winkel. De bekendste programma’s zijn OmniPage en Abbyy Finereader. De software begint niet gelijk met het ontcijferen van de tekst. Eerst kijkt hij hoe de ingescande pagina is ingedeeld. Waar staat tekst en wat zijn afbeeldingen of vlekjes op het papier? Staat er één lap tekst op de afbeelding of is de tekst ingedeeld in kolommen? Is de tekst recht ingescand of staat hij een beetje scheef? Pas als hij heeft vastgesteld wat tekst is en hoe deze op de afbeelding loopt, begint de computer met de tekenherkenning.

In de fase van de tekenherkenning deelt de computer de tekst eerst in in steeds kleinere onderdelen: eerst in zinnen, dan in losse woorden en ten slotte in letters. Vervolgens probeert hij de losse letters te matchen met letters die hij al kent. Hiervoor beschikt hij over de vormen van de letters uit vele soorten fonts (lettertypes). Door het vergelijken van zijn eigen letterdatabase met de vorm van de letter op de afbeelding, kiest hij welke letter er het meest waarschijnlijk in de tekst staat. Zo construeert hij letter voor letter de hele tekst uit het plaatje na.

De OCR-sftware beschikt over de vormen van alle letters in verschillende lettertypes. Deze digitale vormen (rechts) probeert hij tijdens de herkenningsfase te matchen aan de vormen op de afbeelding (links).

Je kunt je misschien voorstellen dat er nog heel wat fouten in de tekst staan, als de software nu klaar zou zijn. De letters ‘in’ lijken bijvoorbeeld heel erg op de ‘m’; grote kans dat die vaak door elkaar gehaald zijn. En als het streepje door de ‘t’ erg dun is, zal de computer hem regelmatig voor een ‘l’ aanzien. Als de software het lettertype van de ingescande tekst niet kent, zal de output al helemaal onbegrijpelijk zijn. Laat staan als je de tekst handgeschreven hebt; jouw handschrift staat al zeker niet in zijn letterdatabase. Hier zijn twee oplossingen voor gevonden: training en taaltechnologie.

Training

Het tekstdocument dat de OCR-software zonder enige training uitspuugt zit dus waarschijnlijk vol fouten. Als de software het lettertype van jouw tekst niet kent, is het een goed idee om de software eerst te trainen voor hij aan de tekenherkenning begint. Dit kan bijvoorbeeld nodig zijn bij een heel oud krantenartikel waarvan het lettertype niet meer gebruikt wordt. In de trainingsfase leer je de computer handmatig welke vorm op de scan correspondeert met welke letter. Je leert hem dus in feite een nieuw lettertype. Als de software nu aan de slag gaat met de tekenherkenning zal de herkende tekst al een stuk leesbaarder zijn.

Voor het herkennen van handschriften is het allemaal nog net wat lastiger. In tegenstelling tot bij een getypte tekst, verschillen dezelfde letters in een handgeschreven tekst altijd wat van elkaar. De ene ‘e’ is net wat anders dan de andere ‘e’, afhankelijk van de letters die er omheen staan, de vermoeidheid van de schrijfhand en zo nog een paar factoren. Training zal hierbij dus niet voor veel verbetering in de tekenherkenning zorgen. De meeste commercieel verkrijgbare OCR-software is dan ook niet zo geschikt voor handschriftherkenning. De techniek loopt flink achter op de ‘reguliere’ OCR en wordt voornamelijk gebruikt door bedrijven voor schrift in een vaste opmaak, zoals de postcode op een envelop of de blokletters op een ingevuld formulier.

Formulieren die automatisch verwerkt zullen worden moet je meestal invullen met blokletters. Op die manier is er het minste variatie tussen verschillende handschriften en zal de computer de tekst het best herkennen. Zulke formulieren zijn meestal heel strak vormgegeven: je ziet precies wat je in welk vakje in moet vullen en nergens is ruimte voor extra commentaar. Dat zou weer te onvoorspelbaar zijn voor de computer.

Taaltechnologie

Training vindt plaats vóór de software begint met de tekenherkenning, maar je kan ook nog heel wat verbeteren ná de tekenherkenning. Dit wordt postprocessing genoemd. Zo goed als alle OCR-software is tegenwoordig voorzien van verschillende lexicons. Dit zijn een soort woordenboeken van verschillende talen. Na de automatische tekenherkenning stelt de software (of de gebruiker daarvan) vast in welke taal de tekst is geschreven. Lang niet alle herkende woorden zullen in het lexicon voorkomen: sommige zijn nieuwe samenstellingen, andere heeft de software verkeerd herkend. Hiervoor gaat de software vervolgens op zoek naar vervangers: woorden die sterk lijken op het herkende woord, maar die wel in het lexicon staan.

Maar hoe bepaalt de computer nu precies welk woord het wél had moeten zijn? Hij kan bijvoorbeeld berekenen welk woord het dichtst bij het herkende woord ligt. Het is waarschijnlijker dat ‘ontiokken’ ‘ontlokken’ had moeten zijn (1 verandering) dan dat het ‘intrekken’ had moeten zijn (3 veranderingen). Toch werkt dit niet altijd: misschien was het wel een vreemde tekst over vrouwen wiens rokken worden afgenomen: het ‘ontrokken’ van vrouwen.

Het is ook mogelijk om de computer te laten leren van zijn eigen fouten. Als je weet dat hij de ‘i’ en de ‘l’ vaak verwisselt, is het logisch om dat eerst te proberen om te zien of er een bestaand woord uit komt. Dit werkt echter vooral als je al weet welke verwarringen (zogenaamde confusies) veel voorkomen in je ge-OCR-de tekst. Hierdoor is deze techniek vooral bruikbaar bij hele grote tekstbestanden.

Een andere methode is het opdelen van woorden in losse delen. Samenstellingen als ‘ramptoerisme’ zullen misschien beter herkend worden als de computer het woord op kan splitsen in ‘ramp’ en ‘toerisme’. Dat dit niet altijd goed werkt, blijkt uit een voorbeeld waarbij ‘visumprocedure’ werd ontleed en herkend als ‘visurnprocedure’.

Een screenshot van de veelgebruikte OCR-sorftware OmniPage. Links staat de ingescande afbeelding met daarin de door de software herkende tekstvakken. Rechts zie je de door de computer herkende tekst.
Cnet.com

Tenslotte kan de computer tijdens de postprocessing ook rekening houden met de context waarin een woord voorkomt. Op basis van de context kan de computer vaak al redelijk voorspellen welk woord er zou kunnen staan. Deze voorspelling kan hij gebruiken bij de automatische correctie. Vooral bij korte woordjes, die vaak lastiger automatisch te corrigeren zijn, kan deze techniek goed werken.

Aan de Universiteit van Tilburg is TICCL (Text-Induced Corpus Clean-up) ontwikkeld, een programma dat automatisch de output van door OCR gemaakte tekst corrigeert. Dit programma maakt onder andere gebruik van de bovenstaande technieken. Momenteel wordt de software uitgebreid getest om te kijken waar nog verbeteringen mogelijk zijn. In de toekomst zal onder andere de Koninklijke Bibliotheek TICCL gebruiken bij haar digitaliseringsprojecten.

Toepassingen

Hoewel optische tekenherkenning dus nog altijd niet helemaal perfect werkt, wordt er wel al flink gebruik van gemaakt. Veel bedrijven werken met formulieren die je met blokletters in moet vullen, zodat de computer ze vervolgens automatisch kan verwerken. Dit gaat al erg goed, omdat van te voren al duidelijk is waar een letter begint en eindigt (één letter per vakje), en omdat iedereen blokletters ongeveer hetzelfde maakt. Er is dus niet veel variatie die het de computer moeilijk maakt.

Dat gebrek aan variatie in de tekst werkt ook in het voordeel van automatische nummerbordherkenning. De politie kan dankzij deze techniek snel een nummerbord herkennen, met behulp van een speciale scanner. Zo kunnen de agenten zelfs nog bij 160km per uur snel uitvinden of de auto bijvoorbeeld gestolen is. Ook kan de techniek gebruikt worden bij tolwegen, om te berekenen hoe lang de auto over de route heeft gedaan.

De OCR-software zoals die hierboven beschreven is, wordt vooral veel gebruikt door bibliotheken en onderzoekers. Zij willen vaak enorme hoeveelheden tekst digitaliseren; de Koninklijke Bibliotheek heeft onlangs 8 miljoen krantenpagina’s gedigitaliseerd. Dat zijn zo’n 25 miljard woorden! Dankzij OCR besparen zij veel tijd en geld. Hoewel ze natuurlijk streven naar een foutloze herkenning, is het bij hen niet altijd een groot probleem als er toch nog een klein percentage fouten in de herkende tekst zit. De zoekmachines waarmee na digitalisering in de tekst gezocht kan worden, zal wel de correct herkende versies van je zoekwoord vinden, die hoogstwaarschijnlijk in hetzelfde stukje tekst staan als de fout herkende zoekterm. Bovendien werken veel zoekmachines met fuzzy matching: hij zoekt ook naar woorden die sterk lijken op, of afgeleid zijn van je zoekterm. Zo belandt de gebruiker toch nog op de gewenste plek in de tekst. Hij krijgt vervolgens de ingescande afbeelding te zien, niet de herkende tekst met al z’n fouten.

Er zijn al een tijdje speciale OCR-pennen te koop. Er bestaan twee soorten. Met de linker, een scanpen, kan je eigenlijk niet schrijven; deze pen scant alleen regel voor regel de tekst. Met de andere pen (rechts op de afbeelding) kan je wel schrijven, zodat je je tekst tegelijk op papier en op je scherm krijgt.

Ten slotte zijn er sinds enige jaren ook speciale OCR-pennen op de markt. Er zijn leespennen, die je als een mini-scanner regel voor regel over de tekst haalt. De scan kan vervolgens naar de computer verstuurd worden die de tekst herkent. Maar er zijn ook schrijfpennen. Met zo’n pen kan je gewoon op papier schrijven, maar er zit bovendien een speciale sensor in die de bewegingen die je maakt registreert. Deze bewegingen geeft de pen door aan de computer die ze omzet in een digitale versie van je tekst. Omdat deze herkende tekst zeker niet foutloos zal zijn, zal je hem altijd nog handmatig moeten nakijken en verbeteren.

Lees verder:

Oeps: Onbekende tag `feed’ met attributen {"url"=>"https://www.nemokennislink.nl/kernwoorden/ocr.atom", “max”=>"5", “detail”=>"normaal"}

Dit artikel is een publicatie van NEMO Kennislink.
© NEMO Kennislink, sommige rechten voorbehouden
Dit artikel publiceerde NEMO Kennislink op 16 januari 2009

Discussieer mee

0

Vragen, opmerkingen of bijdragen over dit artikel of het onderwerp? Neem deel aan de discussie.

NEMO Kennislink nieuwsbrief
Ontvang elke week onze nieuwsbrief met het laatste nieuws uit de wetenschap.