Wat we testten
Steeds meer diensten sturen je gegevens naar de cloud om er AI op los te laten. Wil je alleen tekst uit een screenshot, scan of foto halen, dan kan dat ook op je eigen computer. Wij probeerden RapidOCR (versie 3.10.0), een gratis open-source pakket voor tekstherkenning (OCR). Volgens de maker gebruikt het omgezette PaddleOCR-modellen en is het gemaakt voor snelle, offline inzet. De code en modellen vallen onder de Apache-2.0-licentie.
De vraag: leest het Nederlandse tekst goed, met accenten, eurotekens en bedragen, en wat gebeurt er bij lastiger beeld?
Zo pakten we het aan
- We installeerden RapidOCR met pip install rapidocr onnxruntime in een schone Python-omgeving op een Linux-machine met 2 processorkernen, zonder grafische kaart.
- De herkenningsmodellen zitten in het pakket zelf. Er werd bij gebruik niets gedownload en er ging geen beeld naar een externe server.
- We maakten vier testbeelden waarvan we de tekst precies kenden: een schone schermafbeelding van een factuurbrief (met é, ó, € en een IBAN), een gesimuleerde foto van een kassabon (4 graden scheef, wazig en met ruis), een boodschappenlijstje in een cursief lettertype en een kleine pakketmelding in lichtgrijze letters van 13 pixels.
- Daarnaast gebruikten we twee echte foto's die bij de open-source bibliotheek scikit-image horen: een schuin gefotografeerde pagina uit een Engels studieboek en een foto van handgeschreven wiskundeformules.
- Per beeld vergeleken we de uitkomst met de echte tekst en noteerden we de verwerkingstijd.
Wat er gebeurde
Factuurbrief: foutloos
Alle zes regels kwamen er letterlijk goed uit, inclusief "Het totaalbedrag is € 1.249,95 inclusief 21% btw.", "vóór 17 oktober", "Café 't Hoekje" en het rekeningnummer "NL91 ABNA 0417 1643 00". Dat kostte 2,4 seconden.
Scheve kassabon: alles gelezen, volgorde rommelig
Elk woord en elk bedrag klopte, van "Halfvolle melk 1L" tot "TOTAAL" en "10,36". Maar omdat de bon scheef stond, zag RapidOCR de productnaam en de prijs als losse regels, en zette het de prijs steeds vóór het product waar hij bij hoorde. Zoek je één bedrag op, dan is dat geen probleem. Wil je de bon netjes in een spreadsheet, dan moet je zelf nog puzzelen.
Cursieve tekst en kleine grijze letters: foutloos
"Niet vergeten: tandarts dinsdag om 9.15 uur" en het volgnummer "3SABCD1234567" uit de lichtgrijze pakketmelding werden zonder fouten herkend.
Foto van een boekpagina: één regel onbruikbaar
Vijf van de zeven regels kwamen er foutloos uit. Eén regel in een donkerder deel van de foto werd "the o sr e t te re s the" in plaats van "the markers are found at the two extreme parts of the". Handig: RapidOCR gaf die regel een zekerheidsscore van 0,58, tegen 0,97 tot 1,0 voor de andere regels. Je ziet dus zelf welke regel je moet nakijken. In de regel met programmacode vielen de tekens ">>>" weg en werd "zeros_like" gelezen als "zeros like".
Handschrift: niets
Op de foto met handgeschreven formules vond RapidOCR helemaal geen tekst. Het programma meldde letterlijk "The text detection result is empty".
Pluspunten en minpunten
Pluspunten
- Gedrukte Nederlandse tekst foutloos, inclusief accenten, euroteken, datums en rekeningnummers.
- Werkt volledig op je eigen computer: handig voor facturen, bankpost en andere privédocumenten.
- Gratis en open source, en de modellen zitten al in het pakket.
- Per regel een zekerheidsscore, zodat twijfelgevallen opvallen.
- Snel genoeg: 1 tot 3 seconden per beeld op een bescheiden machine zonder grafische kaart.
Minpunten
- Geen app of venster: je hebt Python en de opdrachtregel nodig. De ingebouwde opdracht rapidocr -img spuugde bij ons een lap ruwe programmadata uit in plaats van alleen de tekst, dus een klein scriptje is handiger.
- Handschrift werd in onze test helemaal niet herkend.
- Bij scheve foto's van tabellen of bonnen raakt de volgorde van regels door elkaar.
- Slecht belichte stukken van een foto leveren onzin op, al zie je dat aan de lage score.
Voor wie is dit?
RapidOCR is een aanrader als je regelmatig tekst uit schermafbeeldingen, scans of nette foto's wilt halen en die beelden liever niet aan een online dienst geeft. Je moet dan wel een paar regels Python durven typen. Voor handgeschreven aantekeningen of rommelige foto's is het niet geschikt. Wil je gewoon snel één screenshot uitlezen zonder iets te installeren, dan zijn de tekstherkenning in je telefoon of een AI-assistent makkelijker, maar dan gaat je beeld vaak wel de deur uit.

