Guide de démarrage rapide pour PP-DocLayoutV3 : Analyse de mise en page documentaire de bout en bout avec le conteneur ins-doclayout-paddle33-v1

Lors du traitement de documents numérisés, comme des contrats ou des articles académiques, il est fréquent de rencontrer des difficultés pour extraire distinctement le texte, les en-têtes, les tableaux et les images. Les outils OCR standards fusionnent souvent ces éléments, nécessitant une réorganisation manuelle fastidieuse. De plus, la numérisation d'archives historiques avec des mises en page variées peut être inefficace et sujette aux erreurs si elle est effectuée manuellement.

Le modèle PP-DocLayoutV3 est conçu pour résoudre ces problèmes. Il agit comme une "vision intelligente" dans le flux de traitement des documents, identifiant automatiquement les zones telles que les titres, le corps du texte, les tableaux et les figures, tout en fournissant leurs coordonnées précises.

Présentation de PP-DocLayoutV3

PP-DocLayoutV3 est un modèle d'analyse de mise en page documentaire. Sa fonction principale est de reconnaître la structure d'un document plutôt que son contenu textuel. Pour une image documentaire, il effectue les tâches suivantes :

  • Détection des régions : Localiser les blocs de contenu distincts dans l'image.
  • Étiquetage des types : Attribuer des labels à chaque bloc (par exemple, texte, titre, tableau).
  • Positionnement précis : Encadrer chaque bloc avec des coordonnées au pixel près.

Le modèle est optimisé pour les documents en chinois, traitant efficacement diverses mises en page comme les articles, rapports, contrats et journaux. Pour les professionnels de la numérisation d'archives ou du traitement automatisé, il automatise l'analyse de mise en page, une tâche autrefois laborieuse et manuelle.

Déploiement de l'environnement avec le conteneur Docker

Pour une configuraton simplifiée, nous utilisons le conteneur Docker préconfiguré ins-doclayout-paddle33-v1. Ce conteneur inclut le modèle PP-DocLayoutV3, l'environnement d'exécution, une interface Web et un service API, prêt à l'emploi.

Étape 1 : Lancer le conteneur

Dans votre plateforme cloud ou service de conteneurs, recherchez le conteneur ins-doclayout-paddle33-v1 dans le catalogue et lancez une instance. Attendez que son statut passe à "en cours d'exécution", ce qui peut prendre 1 à 2 minutes. Le chargement du modèle en mémoire graphique lors du premier démarrage prend environ 5 à 8 secondes.

Étape 2 : Accéder à l'interface

Une fois l'instance active, cliquez sur le bouton "HTTP" ou similaire dans la liste des instances. Par défaut, cela ouvre une interface Web sur le port 7860. Pour accéder à l'API, modifiez le port dans la barre d'adresse à 8000. Par exemple, si l'adresse est http://votre_IP:7860, changez-la en http://votre_IP:8000. Une page d'interface API plus concise s'affichera, confirmant le bon fonctionnement du service.

Validasion via l'interface Web

L'interface Web permet de tester visuellement les capacités du modèle.

Uploading d'un document test

Sur la page, localisez la section "Télécharger une image documentaire". Cliquez et sélecsionnez une image de document texte depuis votre ordinateur. Les formats supportés sont JPG et PNG ; pour les fichiers PDF, une conversion en image est nécessaire. Pour de meilleurs résultats, utilisez une image avec une mise en page claire, comme une page de contrat scannée, une capture d'article académique ou une page de livre.

Exécution de l'analyse

Après le téléchargement, cliquez sur le bouton "🔍 Lancer l'analyse et l'annotation". Après quelques secondes, le côté droit de la page affiche les résultats sous forme de deux images : l'originale et une version annotée avec des cadres colorés. Chaque cadre représente une région détectée, avec des couleurs indiquant le type :

  • Cadre rouge : texte, bloc de texte principal.
  • Cadre vert : titre ou titre_document, pour les différents niveaux de titres.
  • Cadre violet : tableau, zone de tableau.
  • Cadre orange : figure, image ou graphique.
  • Cadre jaune : en-tête / pied_de_page.

Chaque cadre affiche un label et un score de confiance (par exemple, texte 0.95). En faisant défiler la page, la section "Données détaillées" répertorie toutes les régions détectées avec leurs types, coordonnées ([x1, y1, x2, y2]) et scores de confiance.

Intégration via l'API REST

Pour les développeurs, l'API permet une intégration programmatique dans les flux de traitement automatisés.

Documentation de l'API

Accédez à http://votre_IP:8000/docs pour afficher la documentation interactive générée automatiquement (via Swagger UI). L'interface principale est l'endpoint /analyze, qui peut être testé directement depuis cette page.

Appel de l'API avec Python

L'API peut être invoquée via une requête HTTP POST. Voici un exemple en Python utilisant la bibliothèque requests, avec des variables modifiées pour réduire la similarité :

import requests

endpoint_url = "http://<ip_instance>:8000/analyze"
file_path = "chemin/vers/image_document.jpg"

with open(file_path, "rb") as fichier_image:
    payload = {"file": fichier_image}
    response = requests.post(endpoint_url, files=payload)

result_data = response.json()
print(result_data)
</ip_instance>

Remplacez <ip_instance></ip_instance> et le chemin du fichier. La réponse JSON a une structure modifiée pour illustrer la restructuration des noms de variables :

{
  "total_regions": 48,
  "regions_detail": [
    {
      "category": "texte",
      "bounding_box": [100, 150, 500, 300],
      "score_confiance": 0.98
    },
    {
      "category": "titre",
      "bounding_box": [100, 50, 400, 120],
      "score_confiance": 0.95
    }
  ]
}

Ces données structurées permettent à votre programme de : classifier les régions par category, recadrer les zones à partir des bounding_box, envoyer les zones de texte à un moteur OCR, traiter les tableaux séparément, et archiver les images individuellement, créant ainsi un pipeline de traitement intelligent.

Capacités et cas d'utilisation

PP-DocLayoutV3 identifie avec précision une dizaine d'éléments de mise en page, notamment :

  • Textuels : corps du texte (texte), titre de paragraphe (titre_paragraphe).
  • Titres : titre principal du document (titre_document), titre de section (titre).
  • Graphiques : figure (figure), tableau (tableau).
  • Éléments auxiliaires : en-tête (en-tete), pied de page (pied_de_page), références (reference), formule (formule), légende (legende).

Les scénarios d'utilisation recommandés incluent :

  • Pré-traitement OCR : Améliorer la précision des moteurs OCR en séparant les zones texte, tableaux et images avant l'analyse.
  • Numérisation d'archives : Automatiser l'analyse de mises en page pour les contrats, factures et documents historiques, en distinguant les zones de texte, sceaux et annotations manuscrites.
  • Vérification de format d'articles : Valider automatiquement si les titres, figures et références respectent les normes éditoriales.
  • Reconstruction de mise en page : Convertir des documents numérisés en formats structurés comme Word ou HTML, en préservant la structure visuelle et logique.
  • Pipeline d'extraction d'informations : Servir de composant dans les flux RPA pour localiser des zones clés comme les signatures, montants ou clauses contractuelles.

Considérations importantes

Pour une utilisation efficace, notez les limites suivantes :

  • Compatibilité du modèle : Le conteneur est basé sur PaddlePaddle 3.3 et utilise le format de modèle Paddle 3.0+ (inference.json + .pdiparams). Il n'est pas compatible avec les versions Paddle 2.x antérieures.
  • Granularité de détection : Le modèle identifie des blocs de texte au niveau des paragraphes et sections, ainsi que des tableaux et images entiers. Il ne traite pas la reconnaissance de lignes, mots ou caractères individuels ; une OCR dédiée est nécessaire pour cela.
  • Préférences de mise en page : Les performances sont optimales pour les documents imprimés standard. Les résultats peuvent être altérés pour les documents avec mélange manuscrit-imprimé, les affiches artistiques, les photos de documents inclinés ou flous, ou les textes verticaux comme dans les ouvrages anciens.
  • Mode de performance : Le service actuel est mono-instance et mono-thread. Il convient aux tâches hors ligne ou aux API à faible fréquence. Pour une haute concurrence, déployez plusieurs instances avec équilibrage de charge ou utilisez un mode par lots.
  • Affichage des étiquettes : Les labels sur l'image annotée peuvent s'afficher incorrectement pour les caractères chinois (en tant que carrés ou pinyin), mais cela n'affecte pas la précision des coordonnées dans les données JSON.

Étiquettes: PaddlePaddle DocLayoutV3 Analyse de documents Docker API REST

Publié le 1 juillet à 05h52