Guide
Images et schémas dans les documents : les rendre lisibles
Schémas, graphiques, photos dans vos PDF et présentations : lecture directe par le modèle, description à l'indexation, tri des logos. Options et limites.
Mis à jour le
Dans un document d'entreprise, une partie de l'information n'est pas dans le texte : un schéma de câblage, un organigramme, un graphique de ventes, un plan annoté. Une chaîne qui n'extrait que le texte la perd. Deux stratégies existent : laisser le modèle lire les images au moment de la réponse, ou transformer les images en texte au moment de l'indexation. Pour un index consulté par recherche, seule la seconde rend l'information retrouvable.
Stratégie 1 : le modèle lit la page
Certaines interfaces de programmation (API) lisent directement l'image des pages d'un PDF :
- l'API de Claude convertit chaque page d'un PDF en image et fournit le texte extrait à côté ; le modèle analyse les deux (documentation PDF) ;
- l'API Gemini traite le PDF comme une entrée visuelle, graphiques, schémas et tableaux compris (documentation Gemini).
C'est la voie la plus simple quand on envoie un document entier pour une question ponctuelle. Elle ne règle pas la recherche : dans un RAG (génération augmentée par récupération), le passage doit d'abord être retrouvé, et un schéma sans texte associé ne ressort pas. Elle coûte aussi plus cher, puisque chaque page compte comme une image en plus de son texte.
Stratégie 2 : décrire les images à l'indexation
On remplace, ou on complète, chaque image utile par un texte : une description, une légende, un tableau. Ce texte est indexé comme le reste, avec un lien vers l'image d'origine.
| Outil | Ce qu'il fait des images |
|---|---|
| Docling | classe les images (graphiques, organigrammes, logos, signatures) ; décrit les images avec un modèle de vision local (Granite Vision, SmolVLM) ou distant ; convertit les graphiques en barres, secteurs et courbes en tableaux ou en code |
| MarkItDown | décrit les images par un modèle de langage, mais seulement pour les fichiers PowerPoint et les fichiers image |
| Mistral OCR | extrait les images et les repère dans le Markdown par des balises du type  |
| Azure Document Intelligence | repère les figures, leur position et le texte qui s'y rapporte ; avec output=figures, produit des images recadrées de chaque figure |
Avec Docling, l'activation se fait dans les options du traitement des PDF :
from docling.datamodel.pipeline_options import PdfPipelineOptions, granite_picture_description
opts = PdfPipelineOptions()
opts.generate_picture_images = True
opts.images_scale = 2
opts.do_picture_classification = True
opts.do_picture_description = True
opts.picture_description_options = granite_picture_description
La documentation prévient que ces enrichissements lancent des modèles supplémentaires et allongent nettement le traitement. L'option distante (PictureDescriptionApiOptions) exige enable_remote_services = True et envoie en général les images au fournisseur : à éviter pour des plans ou des documents confidentiels si le fournisseur n'a pas été validé.
Faire décrire une image par un modèle : les limites à connaître
Si vous écrivez votre propre étape de description, la documentation vision de Claude donne des repères :
- formats acceptés : JPEG, PNG, GIF et WebP ;
- 8 000 × 8 000 pixels au plus par image, 10 Mo par image sur l'API ;
- au-delà d'un bord long de 2 576 pixels (modèles Claude 4.7 et suivants) ou 1 568 pixels (autres modèles), l'image est réduite, ce qui peut rendre un petit texte illisible : recadrez plutôt que d'envoyer une page entière ;
- une forte compression JPEG peut rendre le texte difficile à lire ;
- le modèle peut se tromper sur des images de mauvaise qualité, tournées ou de moins de 200 pixels, et ses comptages d'objets sont approximatifs.
Demandez une description factuelle et structurée : type d'image, éléments présents, texte visible recopié, relations (« la vanne V2 alimente le circuit B »). Pas d'interprétation : elle serait indexée comme un fait.
Ce qu'il faut garder en métadonnée
Pour chaque image décrite : le document, la page, la position si l'outil la donne, et le lien vers l'image recadrée. Une réponse fondée sur une description doit pouvoir renvoyer l'utilisateur à l'image elle-même, car la description peut être fausse. Voir Métadonnées.
Méthode en quatre étapes
- Trier : classez les images et écartez logos, signatures et décorations.
- Choisir la sortie : un graphique devient un tableau, un schéma une description, une photo de produit une légende courte.
- Contrôler un échantillon de descriptions contre les images, surtout pour les chiffres lus sur un graphique.
- Indexer la description à côté du texte de la page, avec le lien vers l'image.
Pour savoir quels modèles acceptent images, PDF ou vidéo en entrée, voyez la page qui compare les modèles multimodaux.
Exemple illustratif
Prenons un fabricant d'équipements dont les notices mêlent texte et vues éclatées numérotées. Une classification des images, puis une description des seules vues éclatées qui recopie les numéros de pièces visibles, rend ces pièces retrouvables par une question comme « quelle est la référence du joint de la pompe ? », avec renvoi à la page de la notice.
Questions fréquentes
Un RAG peut-il retrouver une information qui n'est que dans un schéma ?
Seulement si le schéma a été transformé en texte à l'indexation : description par un modèle de vision, conversion d'un graphique en tableau, ou légende rédigée. Sinon, la recherche ne le trouve pas, même si le modèle sait lire l'image une fois qu'on la lui montre.
Faut-il décrire toutes les images d'un document ?
Non. Logos, signatures et photos décoratives n'apportent rien et coûtent du traitement. Docling sait classer les images (graphiques, organigrammes, logos, signatures) pour ne décrire que celles qui portent une information.
Sources
Pages consultées pour écrire cet article :
- https://platform.claude.com/docs/en/build-with-claude/pdf-support
- https://platform.claude.com/docs/en/build-with-claude/vision
- https://aistudio.google.com/docs/document-processing
- https://docling-project.github.io/docling/usage/enrichments/
- https://github.com/docling-project/docling
- https://github.com/microsoft/markitdown
- https://docs.mistral.ai/capabilities/document_ai/basic_ocr/
- https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/prebuilt/layout?view=doc-intel-4.0.0