Extrayez du texte d'images avec Vision AI
L'OCR a complètement changé en 2024-2026
L'OCR traditionnel (Tesseract, depuis 1985) fonctionne en 2 étapes :
1. Détection : repère les zones de l'image contenant du texte
2. Reconnaissance : classe chaque lettre individuellement
Il fonctionne bien sur des documents imprimés propres, avec des polices courantes, en anglais. Dans tout autre contexte (manuscrit, panneaux courbés, texte en photo, langues rares, mises en page complexes), la précision chute à 60-70 %.
Les vision-language models modernes (Claude Sonnet, GPT-5, Gemini 3 Pro) ont révolutionné l'OCR. Au lieu de classer lettre par lettre, ils interprètent l'image dans sa globalité — ils reconnaissent le contexte, corrigent les erreurs selon le sens et gèrent des mises en page arbitraires.

Quel outil utiliser selon le cas
Tesseract (open source, CPU local) :
- Documents imprimés standardisés (factures, PDFs scannés)
- Volumes élevés (10 000+ pages/jour) où la latence est critique
- Cas où la confidentialité empêche l'envoi vers le cloud
- Coût : pratiquement nul
Vision-LLM (via API) :
- Texte manuscrit
- Panneaux, affiches, photos de rue
- Textes sur objets 3D (boîtes, étiquettes courbées)
- Documents à mise en page complexe (tableaux, colonnes multiples, notes de bas de page)
- Langues à faibles ressources (arabe, chinois, hébreu)
- Coût : 0,001 € à 0,01 € par image
Whisper-OCR (modèle spécialisé) :
- Documents avec de nombreux tableaux
- Équations mathématiques
- Mises en page scientifiques (articles de recherche)
Comment formuler une bonne requête
Pour tirer le meilleur d'un vision-LLM, structurez votre prompt :
Mauvais :
> « OCR this »
Bon :
> « Extrayez tout le texte visible dans cette image en préservant la structure hiérarchique (titre, sous-titres, paragraphes). S'il y a un tableau, formatez-le en markdown. Si le texte est illisible dans une zone, indiquez [illisible]. S'il y a du texte en plusieurs langues, séparez-les. »
La différence de qualité est spectaculaire. Le LLM utilise sa « compréhension » de la structure pour organiser le résultat.
Cas d'usage concrets
- Numérisation d'archives historiques : lettres manuscrites, anciens procès-verbaux
- Ordonnances médicales : convertir une prescription manuscrite en texte structuré
- Panneaux en photos de voyage : « qu'est-il écrit sur ce panneau ? »
- Cartes de visite : extraire nom, e-mail et téléphone depuis une photo
- Tableaux blancs : photo d'un brainstorming en réunion → texte numérique
- Factures photographiées : facture traitée rapidement dans l'application
- Inspection industrielle : lecture d'étiquettes sur des équipements en photos de terrain
Pièges techniques à éviter
- Résolution : les vision-LLMs nécessitent au moins 512×512. Les photos de smartphones modernes sont idéales ; les captures basse résolution échouent.
- Orientation : une image pivotée à 90° fonctionne mais avec une précision réduite — faites pivoter avant l'envoi
- Le contraste élevé aide : noir sur blanc > gris clair sur blanc > gris sur gris
- Netteté : une image floue dégrade drastiquement les résultats ; cadrez bien ou utilisez un appareil de qualité
- Reflets : photo d'écran avec reflet ou ombre = problème. Préférez une capture directe ou des screenshots
Intégration via API
`python
import httpx, base64
with open("foto.jpg", "rb") as f:
img_b64 = base64.b64encode(f.read()).decode()
r = httpx.post(
"https://api.brainiall.com/v1/chat/completions",
json={
"model": "claude-sonnet-4-6",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "Extrayez le texte de cette image en markdown, en préservant la structure."},
{"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{img_b64}"}}
]
}]
},
headers={"Authorization": "Bearer brnl-xxx"}
)
print(r.json()["choices"][0]["message"]["content"])`
Testez dès maintenant
Dans le chat Brainiall, cliquez sur l'icône de pièce jointe, envoyez une image contenant du texte et demandez « extrayez le texte de cette image ». Résultat en 2 à 5 secondes. L'offre Pro à 29 R$ inclut 100 analyses/mois ; l'offre Business débloque le traitement par lots.