AI OCR Factuurgegevens Extractie met een Eenvoudig Python-script
Leer hoe je factuurgegevens automatisch extraheert met AI-gebaseerde OCR en Python via FlowHunt’s API, voor snelle, nauwkeurige en schaalbare documentverwerking.

Wat is AI-gebaseerde OCR?
AI-gestuurde OCR gaat verder dan de mogelijkheden van traditionele OCR doordat het kunstmatige intelligentie gebruikt om context te begrijpen, talloze lay-outvarianten aan te kunnen en hoogwaardige gestructureerde data te extraheren uit zelfs de meest complexe documenten. Waar traditionele OCR is ontworpen om tekst uit een vast formaat te halen, kan AI OCR omgaan met veel verschillende lay-outs en configuraties die vaak voorkomen in facturen en andere zakelijke documenten.
Belangrijkste kenmerken van AI-gebaseerde OCR
- Contextueel Begrip: AI OCR gebruikt NLP voor contextueel begrip in documenten. Het herkent velden als “Totaalbedrag”, “Factuurdatum” en “Klantnaam”, ook als die op verschillende plekken staan.
- Flexibiliteit: Traditionele OCR raakt vaak in de war bij onregelmatige lay-outs; AI OCR is flexibel en kan informatie uit verschillende soorten factuurformaten halen zonder problemen.
- Datastructurering: Vaak levert AI OCR direct gestructureerde outputs die eenvoudiger zijn voor nabewerking dan de ruwe tekstoutput van traditionele OCR.
Waarom AI OCR gebruiken voor facturen?
Facturen moeten efficiënt en met hoge nauwkeurigheid verwerkt worden, of het nu gaat om de boekhouding, logistiek of inkoopafdeling. AI OCR automatiseert gegevensextractie en stroomlijnt workflows, waardoor de datanauwkeurigheid verbetert.
Voordelen van AI OCR voor facturen
- Snelheid en efficiëntie: Met AI OCR kan een groot aantal facturen in minimale tijd worden verwerkt, waardoor middelen en mankracht vrijkomen.
- Verbeterde nauwkeurigheid: AI-modellen, getraind op een grote verscheidenheid aan documentformaten, verminderen fouten die gepaard gaan met handmatige gegevensinvoer.
- Soepeler datamanagement: Doordat de data al gestructureerd is, kan het eenvoudig worden geïntegreerd in databases, analysetools en zelfs ERP-systemen.
- Schaalbaarheid: AI OCR kan grote hoeveelheden documenten verwerken zonder dat er meer personeel nodig is, ideaal voor grote organisaties of bedrijven die snel groeien.
Het rendement van FlowHunt’s AI OCR-tool
De meeste conventionele bedrijven halen gegevens uit facturen handmatig door medewerkers hiervoor in te zetten. Dit is een zeer tijdrovende en kostbare operatie die in veel verschillende sectoren en bedrijven geautomatiseerd kan worden, zoals belasting-, juridische en financiële bedrijven, en meer.
Dit proces duurt 5 tot 15 seconden en kost 0,01 – 0,02 credits, terwijl je normaal $15 – $30 per uur zou moeten betalen voor een medewerker om dezelfde taak uit te voeren.

Processor | Kosten per jaar | Facturen per jaar verwerkt | Kosten per factuur |
---|---|---|---|
Menselijk | $30.000 | 12.000 | $2,50 |
FlowHunt | $162 | 12.000 | $0,013 |
FlowHunt (bij $30.000) | $30.000 | 2.250.000 | $0,0133 |
Ik zou zeggen dat FlowHunt veel efficiënter is, met een enorme marge.
Uitdagingen bij het implementeren van OCR
Hoewel OCR veel voordelen biedt, zijn er ook enkele uitdagingen:
- Beeldkwaliteit: De nauwkeurigheid van OCR hangt sterk af van de beeldkwaliteit. Wazige of lage resolutie afbeeldingen leveren slechte resultaten op.
- Complexe opmaak: Documenten met complexe lay-outs, gemengde lettertypes of tabellen vereisen geavanceerdere OCR-verwerking.
- Taal en tekenset: OCR-software heeft mogelijk beperkte taalondersteuning, waardoor gespecialiseerde modellen nodig zijn voor niet-Latijnse tekens.
- Foutmarge: Geen enkele OCR-software is 100% nauwkeurig, vooral bij handschrift of onregelmatige lettertypes, wat fouten in de uitvoer kan veroorzaken.
Om deze uitdagingen aan te pakken, is het essentieel om een krachtige en flexibele OCR-tool te gebruiken. FlowHunt’s API biedt een robuuste OCR-oplossing die complexe documentstructuren aankan, en is daardoor ideaal voor grootschalige OCR-projecten.
Het Python OCR-script instellen
Om het proces te automatiseren, dien je de volgende Python-bibliotheken te installeren:
pip install requests pdf2image git+https://github.com/QualityUnit/flowhunt-python-sdk.git
Dit installeert:
- requests: Voor het versturen van HTTP-verzoeken naar FlowHunt’s API en het downloaden van OCR-resultaten.
- pdf2image: Voor het converteren van PDF-pagina’s naar afbeeldingen.
- flowhunt: FlowHunt’s Python SDK, die de interactie met de OCR API vereenvoudigt.
Stap-voor-stap Uitleg van de Code
Deze code neemt een PDF, converteert deze naar afbeeldingen, stuurt elke afbeelding naar FlowHunt voor OCR-verwerking en slaat het resultaat op in CSV-formaat.
Bibliotheken importeren
import json
import os
import re
import time
import requests
import flowhunt
from flowhunt.rest import ApiException
from pprint import pprint
from pdf2image import convert_from_path
json
,os
,re
, entime
helpen bij JSON-verwerking, bestandsbeheer, reguliere expressies en tijdsintervallen.requests
: Wordt gebruikt voor HTTP-verzoeken, zoals het downloaden van de OCR-resultaten.flowhunt
: FlowHunt’s SDK regelt de authenticatie en communicatie met de OCR API.pdf2image
: Converteert PDF-pagina’s naar afbeeldingen, zodat elke pagina apart kan worden verwerkt.
Functie om PDF-pagina’s naar afbeeldingen te converteren
def convert_pdf_to_image(path: str) -> None:
"""
Converteer een PDF-bestand naar afbeeldingen, waarbij elke pagina als JPEG wordt opgeslagen.
"""
images = convert_from_path(path)
for i in range(len(images)):
images[i].save('data/images/' + 'page' + str(i) + '.jpg', 'JPEG')
convert_from_path
: Converteert elke PDF-pagina naar een afbeelding.images[i].save
: Slaat elke pagina op als een aparte JPEG voor OCR-verwerking.
De output attachment-URL extraheren
def extract_attachment_url(data_string):
pattern = r'```flowhunt\n({.*})\n```'
match = re.search(pattern, data_string, re.DOTALL)
if match:
json_string = match.group(1)
try:
json_data = json.loads(json_string)
return json_data.get('download_link', None)
except json.JSONDecodeError:
print("Error: Failed to decode JSON.")
return None
return None
- De functie haalt de URL op waarmee het OCR-resultaat kan worden gedownload.
- Gebruikt regex om het JSON-object met de downloadlink te vinden.
API-configuratie en authenticatie
convert_pdf_to_image("data/test.pdf")
FLOW_ID = "<FLOW_ID_HERE>"
configuration = flowhunt.Configuration(
host="https://api.flowhunt.io",
api_key={"APIKeyHeader": "<API_KEY_HERE>"}
)
- Converteert de PDF naar afbeeldingen.
- Stelt API-toegang in met FlowHunt-gegevens.
De API-client initialiseren
with flowhunt.ApiClient(configuration) as api_client:
auth_api = flowhunt.AuthApi(api_client)
api_response = auth_api.get_user()
workspace_id = api_response.api_key_workspace_id
- Authenticeert en haalt de
workspace_id
op voor volgende API-aanvragen.
Een Flow-sessie starten
flows_api = flowhunt.FlowsApi(api_client)
from_flow_create_session_req = flowhunt.FlowSessionCreateFromFlowRequest(flow_id=FLOW_ID)
create_session_rsp = flows_api.create_flow_session(workspace_id, from_flow_create_session_req)
- Zet een sessie op voor het uploaden van afbeeldingen en de OCR-verwerking.
Afbeeldingen uploaden voor OCR-verwerking
for image in os.listdir("data/images"):
image_name, image_extension = os.path.splitext(image)
with open("data/images/" + image, "rb") as file:
try:
flow_sess_attachment = flows_api.upload_attachments(
create_session_rsp.session_id,
file.read()
)
- Uploadt elke afbeelding in de sessie voor OCR-verwerking.
OCR-verwerking starten en peilen naar resultaat
invoke_rsp = flows_api.invoke_flow_response(
create_session_rsp.session_id,
flowhunt.FlowSessionInvokeRequest(message="")
)
while True:
get_flow_rsp = flows_api.poll_flow_response(
create_session_rsp.session_id, invoke_rsp.message_id
)
print("Flow response: ", get_flow_rsp)
if get_flow_rsp.response_status == "S":
print("done OCR")
break
time.sleep(3)
- Start het OCR-proces en controleert elke 3 seconden of het voltooid is.
OCR-uitvoer downloaden en opslaan
attachment_url = extract_attachment_url(get_flow_rsp.final_response[0])
if attachment_url:
response = requests.get(attachment_url)
with open("data/results/" + image_name + ".csv", "wb") as file:
file.write(response.content)
- Downloadt het CSV-resultaat en slaat het lokaal op.
Het script uitvoeren en resultaat testen
Om dit script uit te voeren:
- Plaats je PDF in de map
data/
. - Vul
<FLOW_ID_HERE>
en<API_KEY_HERE>
in met je FlowHunt-gegevens. - Voer het script uit om de PDF te converteren, afbeeldingen te uploaden voor OCR en de gestructureerde CSV-resultaten te downloaden.
Conclusie
Dit Python-script biedt een efficiënte oplossing voor het opschalen van OCR-processen, ideaal voor sectoren met een hoge documentverwerkingsbehoefte. Met de FlowHunt API verwerkt deze oplossing document-naar-CSV-conversie, stroomlijnt workflows en verhoogt de productiviteit.
Volledig Code-overzicht
Klik HIER voor de Gist-versie.
import json
import os
import re
import time
import requests
import flowhunt
from flowhunt.rest import ApiException
from pprint import pprint
from pdf2image import convert_from_path
def convert_pdf_to_image(path: str) -> None:
"""
Convert a pdf file to an image
:return:
"""
images = convert_from_path(path)
for i in range(len(images)):
images[i].save('data/images/' + 'page'+ str(i) +'.jpg', 'JPEG')
def extract_attachment_url(data_string):
pattern = r'```flowhunt\n({.*})\n```'
match = re.search(pattern, data_string, re.DOTALL)
if match:
json_string = match.group(1)
try:
json_data = json.loads(json_string)
return json_data.get('download_link', None)
except json.JSONDecodeError:
print("Error: Failed to decode JSON.")
return None
return None
convert_pdf_to_image("data/test.pdf")
FLOW_ID = "<FLOW_ID_HERE>"
configuration = flowhunt.Configuration(host = "https://api.flowhunt.io",
api_key = {"APIKeyHeader": "<API_KEY_HERE>"})
with flowhunt.ApiClient(configuration) as api_client:
auth_api = flowhunt.AuthApi(api_client)
api_response = auth_api.get_user()
workspace_id = api_response.api_key_workspace_id
flows_api = flowhunt.FlowsApi(api_client)
from_flow_create_session_req = flowhunt.FlowSessionCreateFromFlowRequest(
flow_id=FLOW_ID
)
create_session_rsp = flows_api.create_flow_session(workspace_id, from_flow_create_session_req)
for image in os.listdir("data/images"):
image_name, image_extension = os.path.splitext(image)
with open("data/images/" + image, "rb") as file:
try:
flow_sess_attachment = flows_api.upload_attachments(
create_session_rsp.session_id,
file.read()
)
invoke_rsp = flows_api.invoke_flow_response(create_session_rsp.session_id, flowhunt.FlowSessionInvokeRequest(
message="",
))
while True:
get_flow_rsp = flows_api.poll_flow_response(create_session_rsp.session_id, invoke_rsp.message_id)
print("Flow response: ", get_flow_rsp)
if get_flow_rsp.response_status == "S":
print("done OCR")
attachment_url = extract_attachment_url(get_flow_rsp.final_response[0])
if attachment_url:
print("Attachment URL: ", attachment_url, "\n Downloading the file...")
response = requests.get(attachment_url)
with open("data/results/" + image_name + ".csv", "wb") as file:
file.write(response.content)
break
time.sleep(3)
except ApiException as e:
print("error for file ", image)
print(e)
Veelgestelde vragen
- Wat is AI-gebaseerde OCR en hoe verschilt het van traditionele OCR?
AI-gebaseerde OCR maakt gebruik van machine learning en NLP om documentcontext te begrijpen, complexe lay-outs te verwerken en gestructureerde data uit facturen te halen, in tegenstelling tot traditionele OCR die afhankelijk is van tekstherkenning in vaste formaten.
- Wat zijn de belangrijkste voordelen van AI OCR voor facturen?
AI OCR biedt snelheid, nauwkeurigheid, schaalbaarheid en gestructureerde output, waardoor handmatig werk wordt verminderd, fouten worden geminimaliseerd en naadloze integratie met bedrijfsxadsystemen mogelijk is.
- Hoe kan ik OCR-automatisering voor facturen implementeren met Python en FlowHunt?
Door gebruik te maken van FlowHunt’s Python SDK kun je PDF’s omzetten naar afbeeldingen, deze naar FlowHunt’s API sturen voor OCR en gestructureerde data ophalen in CSV-formaat, waarmee het hele extractieproces wordt geautomatiseerd.
- Welke uitdagingen zijn er bij OCR-verwerking en hoe pakt FlowHunt deze aan?
Veelvoorkomende uitdagingen zijn slechte beeldkwaliteit, complexe documentlay-outs en verschillende talen. FlowHunt’s API is ontworpen om deze aan te pakken met geavanceerde AI-modellen en flexibele verwerkingsmogelijkheden.
- Wat is het rendement (ROI) van het automatiseren van factuurgegevens-extractie met FlowHunt?
FlowHunt’s AI OCR kan facturen in enkele seconden verwerken tegen een fractie van de menselijke kosten, wat enorme efficiëntiewinst en schaalbaarheid oplevert voor groeiende bedrijven.
Arshia is een AI Workflow Engineer bij FlowHunt. Met een achtergrond in computerwetenschappen en een passie voor AI, specialiseert zij zich in het creëren van efficiënte workflows die AI-tools integreren in dagelijkse taken, waardoor productiviteit en creativiteit worden verhoogd.

Probeer FlowHunt's AI Factuur OCR Tool
Automatiseer factuurgegevens-extractie met FlowHunt’s krachtige AI OCR. Bespaar tijd, verminder fouten en stroomlijn je workflows door PDF's om te zetten naar gestructureerde data in enkele seconden.