Tech talk: efficiënte factuurverwerking met OCR-automatisering

Facturen staan centraal in elk bedrijf, zowel B2B als B2C. Elk bedrijf ontvangt leveranciersfacturen, in grote of kleine aantallen.
Voor onze klanten en hun leveranciersboekhouding waren facturen zowel een bron van informatie als een struikelblok. Ze moesten talrijke pdf-bestanden verwerken en factuurgegevens handmatig in hun systeem invoeren: een bijzonder tijdrovende en repetitieve taak.
We wilden software bouwen die deze taak automatiseert en versnelt met optische tekenherkenning (OCR). Met andere woorden: AI die tekst in documenten herkent. Voor sectoren die veel data en documenten verwerken, kan die technologie in heel wat toepassingen nuttig zijn.
Bestaande tools
Er bestaan verschillende oplossingen voor factuurverwerking. We onderzochten die eerst om de belangrijkste beschikbare tools te beoordelen. Ondanks het ruime aanbod vonden we geen tool die tegelijk voldeed aan deze voorwaarden:
voldoende nauwkeurige tekstherkenning,
voldoende flexibiliteit voor verschillende sjablonen,
en voldoende aanpasbaarheid aan de behoeften van onze klant.
Daarom ontwikkelden we onze eigen oplossing.
De OCR-oplossing
We ontwikkelden een tool om facturen als pdf of afbeelding te verwerken. De eerste uitdaging was om precies het juiste veld te extraheren, ook wanneer dat verschillende vormen aanneemt. Denk bijvoorbeeld aan een datum. Die kan in uiteenlopende notaties staan, zoals dd/MM/YYYY, dd/mm/YY, YY/mm/dd of voluit in letters. We begonnen met reguliere expressies voor elk veld. Maar dat volstond niet. Op facturen kunnen immers verschillende datums staan: geboortedatum, factuurdatum, vervaldatum, herinneringsdatum enz.
We beperkten dat probleem door een tweede logische laag toe te voegen. Met regels voor alle herkende datums kunnen we mogelijke datums ordenen en labelen. Is de oudste herkende datum bijvoorbeeld tientallen jaren geleden, dan kunt u aannemen dat het de geboortedatum is.
Na die eerste stap haalden de resultaten nog niet de gewenste nauwkeurigheid. Stel nu dat u handmatig op de factuur kunt aanduiden waar de geboortedatum staat. Dan hebt u de coördinaten, de reguliere expressie en de logische regels om die te herkennen in een bestand met honderden woorden en soms meerdere pagina's. Pas die logica toe op elk benodigd veld en u krijgt een model dat vrijwel elke factuur voldoende nauwkeurig kan lezen.
Coördinaten
Ons OCR-model moet wel over de coördinaten van elk veld beschikken. We moeten nog altijd bepalen en structureren welk tekstfragment bij welk geëxtraheerd veld hoort. Moeten we dan voor elke factuur alle coördinaten van alle velden handmatig registreren? Gelukkig niet.
Ons model maakt het aanduiden van velden eenvoudig. Het toont de afbeelding en laat de gebruiker met de muis een kader rond het juiste gebied trekken. Zijn er tien velden nodig, dan herhaalt u dit tien keer. Vervolgens herkent ons programma voor elke factuur het sjabloon en controleert het of dat al in onze databank staat. Zo ja, dan hoeft de gebruiker niets meer te doen. Zo niet, dan kan die het sjabloon registreren op de hierboven beschreven manier. Hieronder ziet u hoe we de coördinaten in het model kunnen aanduiden:

Resultaten
De resultaten van ons model verschijnen in een Excel-bestand met een nauwkeurigheidsscore en verschillende waarschuwingsmarkeringen.
Onze nauwkeurigheidsscore hangt af van de kwaliteit van de pdf-scan, het gewogen gemiddelde van de OCR-kwaliteitsscores en de aanwezigheid van ongeldige tekens, zoals cijfers in een naam. Waarschuwingsmarkeringen maken snelle menselijke controle mogelijk. Ze wijzen op de scankwaliteit, mogelijk inconsistente velden of ongeldige bedragen. In dit geval voegden we ook een markering toe voor totaalbedragen die afwijken van de verdeling in de verwerkte batch.
Tot slot kan iemand het Excel-bestand op mogelijke inconsistenties controleren. De belangrijkste meerwaarde van ons OCR-project is de tijdwinst. Maar automatische factuurverwerking kan ook kosten verlagen en fouten elimineren, wat minder obstakels en meer productiviteit oplevert.
Wat vroeger uren zou kosten, kunt u nu opstarten en laten draaien terwijl u aan een ander project werkt of tijdens een welverdiende koffiepauze nog een artikel van Agilytic leest!