
Résoudre les tâches OCR avec l’IA
Découvrez comment l’OCR alimentée par l’IA transforme l’extraction de données, automatise le traitement des documents et améliore l’efficacité dans des secteurs...
Découvrez comment automatiser l’extraction de données de factures grâce à l’OCR basé sur l’IA et Python avec l’API FlowHunt, pour un traitement documentaire rapide, précis et évolutif.
L’OCR piloté par l’IA va au-delà des capacités de l’OCR traditionnel car il utilise l’intelligence artificielle pour comprendre le contexte, traiter une grande variété de mises en page et produire une extraction de données structurées de haute qualité, même à partir des documents les plus complexes. Alors que l’OCR traditionnel est conçu pour extraire du texte à partir d’un format fixe, l’OCR IA peut gérer de nombreux types de dispositions courantes dans les factures et autres documents professionnels.
Les factures doivent être traitées efficacement et avec un haut degré de précision, que ce soit pour la comptabilité, la logistique ou les achats. L’OCR IA automatise l’extraction des données et fluidifie les processus, améliorant la précision des données.
La plupart des entreprises conventionnelles extraient les données de factures manuellement en mobilisant des salariés pour ces tâches. C’est une opération très chronophage et coûteuse, qui peut être automatisée dans de nombreux secteurs (fiscal, juridique, financier, etc.).
Ce processus prend 5 à 15 secondes et coûte 0,01 – 0,02 crédits, là où il faudrait habituellement payer 15 à 30 $ de l’heure pour qu’un employé effectue la même tâche.
Processeur | Coût annuel | Factures traitées/an | Coût par facture |
---|---|---|---|
Humain | 30 000 $ | 12 000 | 2,50 $ |
FlowHunt | 162 $ | 12 000 | 0,013 $ |
FlowHunt (à 30 000 $) | 30 000 $ | 2 250 000 | 0,0133 $ |
On peut dire que FlowHunt est bien plus efficace, et de loin.
Bien que l’OCR soit très utile, il comporte certains défis :
Pour surmonter ces défis, il est essentiel d’utiliser un outil OCR puissant et flexible. L’API FlowHunt propose une solution OCR robuste, capable de gérer des structures de documents complexes, idéale pour les projets OCR à grande échelle.
Pour automatiser le processus, installez les bibliothèques Python suivantes :
pip install requests pdf2image git+https://github.com/QualityUnit/flowhunt-python-sdk.git
Cela installe :
Ce code prend un PDF, le convertit en images, envoie chaque image à FlowHunt pour traitement OCR et enregistre le résultat au format CSV.
Importer les bibliothèques
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
, et time
servent à la gestion JSON, aux fichiers, aux expressions régulières et aux temporisations.requests
: utilisé pour les requêtes HTTP, comme le téléchargement des résultats OCR.flowhunt
: le SDK FlowHunt gère l’authentification et la communication avec l’API OCR.pdf2image
: convertit les pages PDF en images, permettant l’OCR page par page.Fonction pour convertir les pages PDF en images
def convert_pdf_to_image(path: str) -> None:
"""
Convertit un fichier PDF en images JPEG (une image par page).
"""
images = convert_from_path(path)
for i in range(len(images)):
images[i].save('data/images/' + 'page' + str(i) + '.jpg', 'JPEG')
convert_from_path
: convertit chaque page PDF en image.images[i].save
: enregistre chaque page individuellement en JPEG pour l’OCR.Extraction de l’URL de téléchargement du résultat OCR
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
Configuration de l’API et authentification
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>"}
)
Initialisation du client API
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
workspace_id
pour les appels suivants.Démarrage d’une session Flow
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)
Téléversement des images pour le traitement OCR
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()
)
Appel du traitement OCR et récupération des résultats
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)
Téléchargement et sauvegarde du résultat OCR
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)
Pour exécuter ce script :
data/
.<FLOW_ID_HERE>
et <API_KEY_HERE>
avec vos identifiants FlowHunt.Ce script Python offre une solution efficace pour industrialiser l’OCR, idéale pour les secteurs traitant de grands volumes de documents. Grâce à l’API FlowHunt, cette solution gère la conversion PDF vers CSV, simplifiant les workflows et augmentant la productivité.
Cliquer ICI pour la version Gist.
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)
L’OCR basé sur l’IA exploite l’apprentissage automatique et le TAL pour comprendre le contexte du document, gérer des mises en page complexes et extraire des données structurées à partir de factures, contrairement à l’OCR traditionnel qui repose sur la reconnaissance de texte à format fixe.
L’OCR IA offre rapidité, précision, évolutivité et des sorties structurées, réduisant le travail manuel, minimisant les erreurs et permettant une intégration fluide avec les systèmes métier.
En utilisant le SDK Python de FlowHunt, vous pouvez convertir des PDF en images, les envoyer à l’API FlowHunt pour OCR et récupérer les données structurées au format CSV, automatisant ainsi l’ensemble du processus d’extraction.
Les défis courants incluent la mauvaise qualité des images, des mises en page complexes et la diversité des langues. L’API FlowHunt est conçue pour traiter ces cas grâce à des modèles IA avancés et des capacités de traitement flexibles.
L’OCR IA de FlowHunt peut traiter les factures en quelques secondes à une fraction du coût humain, offrant d’importants gains d’efficacité et une grande évolutivité pour les entreprises en croissance.
Arshia est ingénieure en workflows d'IA chez FlowHunt. Avec une formation en informatique et une passion pour l’IA, elle se spécialise dans la création de workflows efficaces intégrant des outils d'IA aux tâches quotidiennes, afin d’accroître la productivité et la créativité.
Automatisez l’extraction de données de factures avec le puissant OCR IA de FlowHunt. Gagnez du temps, réduisez les erreurs et rationalisez vos processus en convertissant vos PDF en données structurées en quelques secondes.
Découvrez comment l’OCR alimentée par l’IA transforme l’extraction de données, automatise le traitement des documents et améliore l’efficacité dans des secteurs...
Découvrez comment un flux OCR d'extraction de données de facture peut rationaliser vos processus financiers en automatisant l'extraction et l'organisation des d...
La Reconnaissance Optique de Caractères (OCR) est une technologie transformatrice qui convertit des documents tels que des papiers numérisés, des PDF ou des ima...