OCR avec LLM
iaDéfinition
L'OCR avec LLM (Optical Character Recognition utilisant des Large Language Models) est l'utilisation des VLMs (Vision-Language Models) comme GPT-4o, Claude 3.5 Sonnet, ou Gemini 1.5 Pro pour extraire et comprendre le texte contenu dans des images, plutot que d'utiliser des moteurs OCR traditionnels (Tesseract, PaddleOCR). Les VLMs combinent la reconnaissance optique avec la comprehension semantique du contexte. Les avantages de l'OCR par LLM sur les OCR traditionnels : (1) Gestion des mises en page complexes — tableaux multi-colonnes, formules mathematiques, diagrammes avec annotations textuelles, (2) Correction contextuelle — le LLM utilise le contexte pour corriger les erreurs OCR ('rec0mmandation' → 'recommandation'), (3) Extraction semantique — plutot que retourner tout le texte en vrac, le LLM peut structurer l'output (JSON, markdown), (4) Multilinguisme — comprehension de documents multilingues melangeant plusieurs langues. Les cas d'usage specifiques ou l'OCR par LLM excelle : formulaires administratifs complexes (tableaux avec cases a cocher, signatures), documents legacy scannees avec mauvaise qualite, tickets de caisse et factures manuscrites, documents scientifiques avec formules et graphiques, et documents bilingues ou le code-switching est frequent. Les limitations : (1) Cout — appeler un LLM frontier coute 10-100x plus qu'un OCR traditionnel pour le meme volume de texte, (2) Vitesse — la latence est plus elevee (1-5s vs <100ms pour Tesseract), (3) Hallucinations — le LLM peut parfois 'interpreter' plutot que transcrire fidelement, (4) Verification difficile — les OCR traditionnels ont un score de confiance par caractere, les LLMs non. L'approche optimale en production est hybride : Tesseract/PaddleOCR pour le volume de texte simple et le preprocessing, et LLM VLM uniquement pour les elements complexes (tableaux, formules, textes degrades) ou quand la structuration semantique est necessaire.
OCR structuree avec Claude
import anthropic, base64
def extract_structured_table(image_path):
with open(image_path, 'rb') as f:
img_b64 = base64.b64encode(f.read()).decode()
client = anthropic.Anthropic()
msg = client.messages.create(
model='claude-3-5-sonnet-20241022', max_tokens=2000,
messages=[{'role': 'user', 'content': [
{'type': 'image', 'source': {'type': 'base64',
'media_type': 'image/jpeg', 'data': img_b64}},
{'type': 'text', 'text': 'Extrait le tableau en JSON avec les en-tetes et les lignes. Preserves les valeurs exactes.'}
]}]
)
return msg.content[0].text # JSON du tableau
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h