Comment mettre en place un pipeline OCR de bout en bout avec Unlimited-OCR de Baidu pour le traitement d’images haute résolution et l’analyse de fichiers PDF multipages

L’écosystème de l’intelligence artificielle continue sa progression à un rythme soutenu.

Comment mettre en place un pipeline OCR de bout en bout avec Unlimited-OCR de Baidu pour le traitement d’images haute résolution et l’analyse de fichiers PDF multipages

Dans ce tutoriel, nous mettons en place un workflow complet permettant d’exécuter le modèle Unlimited-OCR de Baidu sur des images de documents et des fichiers PDF de plusieurs pages. Nous configurons l’environnement GPU, installons les dépendances requises, chargeons le modèle d’IA vision-langage de 3 milliards de paramètres avec sélection automatique du format bfloat16 ou float16, et générons des exemples de documents structurés à des fins de test. Nous évaluons ensuite à la fois le mode d’inférence « tiled » de Gundam et le mode « Base », plus rapide, pour la reconnaissance optique de caractères (OCR) sur une seule page, avant d’étendre le pipeline à l’analyse de fichiers PDF multipages à l’aide de PyMuPDF et de la fonction `infer_multi()`. Tout au long du flux de travail, nous conservons les paramètres de génération à long terme, les contrôles de répétition et la gestion structurée des résultats afin de traiter les mises en page denses, les tableaux, les paragraphes et le contenu s’étendant sur plusieurs pages au sein d’un pipeline de bout en bout reproductible.

Nous installons les bibliothèques nécessaires et configurons l’environnement Google Colab pour l’inférence Unlimited-OCR. Nous vérifions qu’un GPU compatible CUDA est accessible et choisissons automatiquement entre bfloat16 et float16 en fonction de la prise en charge matérielle. Nous chargeons ensuite le tokenizer et le système à 3B paramètres depuis Hugging Face, les mettons en mode évaluation, puis les transférons sur le GPU.

Fait intéressant, nous créons les répertoires d’entrée et de sortie nécessaires et générons trois pages de document d’exemple réalistes à l’aide de PIL. Nous ajoutons des titres, des paragraphes, des tableaux et des notes de bas de page afin de tester le modèle sur un contenu structuré et riche en mise en page. Nous prévisualisons en outre la première page générée à l’aide de Matplotlib avant de l’envoyer vers le pipeline d’OCR.

Nous effectuons une reconnaissance optique de caractères (OCR) sur une seule image en utilisant le mode « Gundam », qui combine une vue globale du document avec des extraits d’image en mosaïque. Nous activons le paramètre « crop_mode » et utilisons une taille de mosaïque plus petite afin de préserver les textes fins et d’optimiser la reconnaissance sur les mises en page de documents très denses. Nous configurons également les paramètres de génération de sorties longues et de répétition afin de garantir que le modèle produise des résultats stables et structurés.

Nous traitons le même document en mode « Base », avec un affichage unique de l’image de 1 024 pixels. Nous désactivons le recadrage de l’image afin de réduire la complexité de l’inférence et d’optimiser la vitesse de traitement pour les pages propres et clairement imprimées. Nous conservons les mêmes paramètres de longueur de sortie et de contrôle des répétitions afin de comparer directement le mode « Base » au mode « Gundam ».

Nous créons un fichier PDF de trois pages à partir des images du document généré, puis nous rasterisons chaque page de ce PDF en un fichier PNG haute résolution à l’aide de PyMuPDF. Nous transmettons la séquence de pages-images ainsi obtenue à la fonction `infer_multi()` afin que le modèle puisse analyser l’intégralité du document en une seule opération d’inférence à long horizon. Nous élargissons en outre la fenêtre de répétition des n-grammes afin de garantir un décodage stable sur plusieurs pages.

Une chose est sûre : le secteur continue d’avancer à grande vitesse.

Sur le même sujet :


Via MarkTechPost : MarkTechPost