receipt-ripper.com
Uw bonnen verlaten dit apparaat nooit
De fotografie is de oneerlijke helft van OCR-nauwkeurigheid. Doe je het goed dan doet de parser z'n werk. Doe je het slecht en je tikt de volgende tien minuten in.
OCR van bonnen faalt om twee redenen. Of de engine kan niet lezen wat er staat, of wat er staat is niet leesbaar (een fotoprobleem dat je in tien seconden kunt oplossen, als je weet wat). Deze gids gaat over de tweede.
Receipt Ripper past automatische perspectiefcorrectie en schaalverkleining toe voordat de OCR überhaupt draait, dus de lat ligt niet op "studiokwaliteit" — wel op "de OCR-engine kan cijfers eenduidig herkennen".
De belangrijkste variabele is belichting. Een thermisch bonnetje heeft heel weinig contrast — zwarte inkt op witachtig papier. Jouw taak: het in het makkelijke deel van het spectrum zetten.
Binnen het makkelijkst: een raam overdag, jij tussen raam en bon. Helder, gelijkmatig, diffuus licht. Geen schittering op de bon — reflecties branden de inkt uit en OCR ziet wit papier.
Wit op wit maakt de randdetector kapot. De scan-correctiefase vindt de papierranden door scherpe luminantieverschillen te zoeken. Een witte bon op een wit aanrecht heeft geen verandering aan de rand.
Gebruik een donkere matte ondergrond. Donkere houten tafel, antraciet placemat, omslag van een zwart boek. Glanzende oppervlakken (graniet, gepolijst marmer, glas) weerkaatsen licht.
Perspectiefcorrectie kan veel aan — tot ongeveer 40° schuinte — maar is niet gratis. Elke correctiestap verzacht het beeld iets. Beste resultaten komen van foto's waar de telefoon ongeveer parallel aan de bon is en gecentreerd erboven.
Je wilt dat de bon zo groot mogelijk in het kader is zonder de randen te raken. Groter: meer pixels voor de OCR. Niet aan de randen: de hoekendetector heeft niet-bon pixels rondom nodig.
Een rand van ongeveer 10% van de lange as werkt goed.
Frontcamera's hebben 5-7 MP op de meeste toestellen; achtercamera's 12 MP of meer. Voor OCR is de extra resolutie van de achtercamera meer waard dan het comfort van de voorzoeker.
Gebruik niet de iOS "Live Photos"-modus. Gebruik geen documentscanners van derden die het beeld in zwart-wit binariseren — die gooien de grijswaardendata weg die OCR helpt 8 van 3 te onderscheiden.
De flits is kop of munt. Op verbleekte bonnetjes kan hij contrast herstellen. Op verse bonnetjes brandt hij de afdruk uit en maakt een hotspot midden op de pagina, vaak precies op het totaal.
Vuistregel: probeer eerst zonder flits. Als het resultaat te bleek of wazig is bij weinig licht, opnieuw met flits.
Na het droppen in Receipt Ripper toont de controletabel elk veld met een vertrouwensindicator. Gele badges zijn de eerlijke onzekerheid van de parser — een gratis hint dat iets niet schoon gelezen werd.
Een bon die ondanks een goede foto blijft fout gaan? Stuur hem ons — elke probleem-bon leert de parser iets nieuws.