Techniek: Tesseract.js OCR (per regel apart, met instelbare zoom en voorbewerking) + een zelf geschreven ICAO 9303 MRZ-parser met automatische OCR-foutcorrectie en check-digit validatie.
ℹ️ Waarom geen NFC-chip? De chip in een paspoort/ID praat ISO 7816 APDU's, beveiligd met BAC/PACE (de sleutel daarvoor wordt afgeleid van precies déze MRZ-data). De Web NFC API van browsers kan alléén NDEF-tags lezen, geen APDU-uitwisseling — dus volledige chipdata (DG2-foto, vingerafdrukken) is vanuit een website principieel niet te halen, in geen enkele browser. Dit is de praktische manier om toch zoveel mogelijk data te krijgen. Zie ook de NFC-pagina.
💡 Tips tegen verkeerd gelezen tekens (belangrijkste eerst):
1. Zoom/kom dichterbij tot de MRZ groot in beeld staat — gebruik de zoomschuif die verschijnt zodra de camera start. Hoe meer pixels per letter, hoe beter de OCR; achteraf bijsnijden kan ontbrekende scherpte niet goedmaken.
2. Gebruik fel, gelijkmatig licht en houd het paspoort plat — vermijd flits (glansvlek op de lamineerlaag) en beweging/onscherpte.
3. Sleep het groene kader na de foto strak om alleen de MRZ-regels.
4. Probeer bij twijfel beide voorbewerkingsmodi (grijswaarden vs. zwart-wit) — de kleine voorvertoning per regel laat zien wat Tesseract daadwerkelijk te zien krijgt.
5. Tesseract is generieke OCR, niet getraind op het officiële MRZ-lettertype (OCR-B) — 0/O, 1/I, 5/S/8/B worden daardoor soms verward. Elk veld wordt daarom automatisch gecorrigeerd op basis van of het een cijfer- of letterveld moet zijn, en gevalideerd met de officiële check-digits. Klopt een check-digit niet? Corrigeer de tekst handmatig onderin — de tabel herberekent live.
Maak een foto van de paginafoto (met MRZ erop) of upload er een. Zoom zo ver in dat de MRZ-regels groot en scherp in beeld staan — hoe meer pixels per letter, hoe beter de OCR.