Un PDF scanné n'est pas qu'une image : il contient des titres, des tableaux et des figures. EasyOCR ne voit que le texte, pas la structure. Docling, lui, voit tout. Voici pourquoi cela change tout.

UN PDF SCANNÉ N'EST PAS QU'UNE IMAGE

Imaginez un PDF scanné comme une feuille de papier froissée et photographiée. Si vous voulez extraire le texte, vous avez besoin d'un outil qui lit les pixels et reconnaît les lettres. C'est le travail de l'OCR (Optical Character Recognition, ou reconnaissance optique de caractères). Mais un PDF scanné, ce n'est pas que du texte : il y a aussi des titres, des paragraphes, des tableaux, des figures, et même des notes de bas de page. Si l'OCR ne fait que récupérer le texte, vous obtenez une liste plate de mots, sans aucune organisation. Comme si vous aviez déchiré un livre en morceaux et mélangé toutes les pages.

Pour qu'un PDF scanné devienne un document exploitable, il faut aussi comprendre sa structure. Où commence un titre ? Où se termine un paragraphe ? Quels mots forment une ligne de tableau ? C'est ce que fait un parseur de documents. EasyOCR est un outil d'OCR classique : il récupère le texte, mais il ignore tout le reste. Docling, en revanche, est un parseur complet : il récupère le texte et sa structure.

LE CASSE-TÊTE DE L'OCR CLASSIQUE : EASYOCR

EasyOCR est un outil gratuit, simple et rapide. Il pèse seulement 150 Mo, fonctionne sans GPU, et peut être utilisé en local sur un ordinateur. Son fonctionnement est basique : il prend une image en entrée et renvoie une liste de rectangles contenant du texte, accompagnés du texte reconnu et d'un score de confiance. Par exemple, pour une page de contrat scannée, EasyOCR va détecter chaque zone de texte, comme si vous aviez dessiné des cases autour de chaque mot ou phrase.

EasyOCR lit les pixels et renvoie des rectangles de texte. Il ne sait pas qu'il y a deux colonnes, qu'un texte est un titre, ou qu'une case fait partie d'un tableau.

Voici à quoi ressemble le résultat d'EasyOCR sur une page à deux colonnes : une liste de rectangles de texte, mélangés comme des pièces de puzzle sans image de référence. Si vous voulez savoir quel texte appartient à quelle colonne, ou dans quel ordre lire les paragraphes, vous devez le deviner vous-même. C'est comme essayer de reconstituer un livre en lisant les mots un par un, sans savoir où commence ou finit une phrase.

Le code suivant montre comment utiliser EasyOCR pour extraire le texte d'un PDF scanné :

import easyocr
import fitz
import numpy as np

reader = easyocr.Reader(["en"], gpu=False)  # Télécharge ~150 Mo au premier appel

# Convertit la première page du PDF en image pour EasyOCR
page = fitz.open("data/contracts/scanned_amendment.pdf")[0]
pix = page.get_pixmap(matrix=fitz.Matrix(2.0, 2.0))  # Agrandit 2 fois pour une meilleure qualité
img = np.frombuffer(pix.samples, dtype=np.uint8).reshape(
    pix.height, pix.width, pix.n,
)

# Détecte le texte dans l'image
detections = reader.readtext(img)
for quad, text, conf in detections:
    # quad = [[x0,y0], [x1,y0], [x1,y1], [x0,y1]] en coordonnées pixels
    print(round(conf, 2), text)

Le résultat est une liste de tuples contenant :

  • quad : les coordonnées du rectangle autour du texte détecté,
  • text : le texte reconnu,
  • conf : le score de confiance (entre 0 et 1) donné par EasyOCR.

EasyOCR ne fait que cela. Pas de titres, pas de tableaux, pas de figures. Juste du texte brut.

LE PARSEUR QUI COMPREND LA STRUCTURE : DOCLING

Docling, en revanche, est un parseur de documents complet. Il ne se contente pas de récupérer le texte : il comprend aussi comment ce texte est organisé sur la page. Pour un même PDF scanné, Docling va extraire :

  • Le texte, comme EasyOCR,
  • Les titres et sous-titres,
  • Les paragraphes,
  • Les tableaux (avec leurs lignes et colonnes),
  • Les figures et leurs légendes,
  • L'ordre de lecture des éléments,
  • La table des matières.

Docling utilise EasyOCR en arrière-plan pour la reconnaissance de texte, mais il ajoute une couche supplémentaire : un modèle de mise en page. Ce modèle analyse la position des rectangles de texte détectés par EasyOCR et les regroupe en éléments logiques (titres, paragraphes, cellules de tableau, etc.). Il reconstitue ainsi la structure du document, comme si vous aviez une carte mentale du PDF.

Voici comment utiliser Docling pour extraire un PDF scanné :

parsed = parsepdfdocling(
    "data/contracts/scanned_amendment.pdf",
    languages=("en",),  # Ajoutez "fr", "de", etc. pour des scans multilingues
    render_scale=2.0,   # Agrandit 2 fois pour une meilleure qualité
    gpu=False,          # Par défaut, utilise le CPU
)

# Accède aux données structurées
parsed["line_df"]       # Texte + coordonnées + confiance par détection
parsed["page_df"]       # Informations sur les pages
parsed["toc_df"]        # Table des matières
parsed["image_df"]      # Figures détectées
parsed["table_df"]      # Tableaux extraits
parsed["parsing_summary"]  # Résumé de l'analyse

Contrairement à EasyOCR, Docling ne renvoie pas une simple liste de rectangles de texte. Il renvoie une structure organisée, prête à être utilisée dans un système de RAG (Retrieval-Augmented Generation), comme un moteur de Recherche qui comprend le contexte d'un document.

LE TEST SUR UN VRAI PDF SCANNÉ : 1974 USAF MULTICS SECURITY EVALUATION

Pour comparer EasyOCR et Docling, les auteurs ont utilisé un vrai PDF scanné : les pages 1 à 5 de karg74.pdf, un document public de 1974 intitulé USAF MULTICS Security Evaluation. Ce document est disponible en ligne dans les archives de la NIST, car il est dans le domaine public (écrit par des officiers de l'US Air Force).

Les deux outils ont été lancés sur les mêmes images de pages, sans utiliser l'OCR intégré au PDF (car il est souvent peu fiable). Voici les résultats :

EasyOCR extrait 4 952 caractères et 346 rectangles de texte. Docling extrait 5 423 caractères, 105 lignes de texte, 11 entrées de table des matières et 4 figures.

Les deux outils reconnaissent les caractères avec un taux d'erreur similaire, mais Docling organise les données en une structure exploitable. Par exemple :

  • EasyOCR renvoie une liste de 346 rectangles de texte, mélangés comme des pièces de puzzle.
  • Docling regroupe ces rectangles en 105 lignes de texte, 11 titres de sections, et 4 figures.

Le temps d'exécution est aussi différent :

  • EasyOCR : 59,7 secondes.
  • Docling : 134,4 secondes (2,3 fois plus lent).

Ce ralentissement est justifié par la complexité de l'analyse de structure. Mais une fois le document parsé, cette structure est réutilisable à l'infini dans un système RAG, ce qui rend le coût initial négligeable.

LES CINQ ÉLÉMENTS STRUCTURELS QUI MANQUENT À EASYOCR

Un système RAG a besoin de cinq éléments structurels pour fonctionner correctement. EasyOCR ne fournit aucun d'entre eux :

  1. Les limites des pages : EasyOCR ne sait pas où commence ou finit une page.
  2. L'ordre de lecture : Sur une page à deux colonnes, EasyOCR renvoie les lignes dans l'ordre des coordonnées y, ce qui mélange les colonnes. Le texte devient illisible, comme un livre lu en zigzag.
  3. Les titres et sous-titres : EasyOCR ne distingue pas un titre d'un paragraphe.
  4. Les tableaux : EasyOCR ne reconnaît pas les lignes et colonnes d'un tableau. Chaque cellule devient un rectangle indépendant.
  5. Les figures et légendes : EasyOCR ne sait pas qu'une image fait partie du document.

Ces éléments sont cruciaux pour un système RAG. Sans eux, les réponses générées par l'IA seront incohérentes ou incomplètes. Par exemple, si vous demandez à un RAG de résumer un contrat, il pourrait mélanger les clauses de deux sections différentes, simplement parce que l'ordre de lecture est faux.

POURQUOI EASYOCR EST-IL UTILE ALORS ?

Malgré ses limites, EasyOCR a sa place dans certains cas précis. Voici quatre situations où il peut être utilisé :

  1. Documents très simples : Si le PDF scanné ne contient que du texte brut, sans structure (par exemple, une lettre), EasyOCR peut suffire.
  2. Besoin de rapidité : EasyOCR est beaucoup plus rapide que Docling. Si vous avez besoin d'une extraction de texte en temps réel, EasyOCR est un bon choix.
  3. Environnement limité : EasyOCR fonctionne sans GPU et pèse seulement 150 Mo. Il est idéal pour les ordinateurs peu puissants.
  4. Tests rapides : Si vous voulez vérifier rapidement si un document contient du texte, EasyOCR est parfait pour un premier essai.

Dans tous les autres cas, Docling est bien plus adapté. Il fournit une structure exploitable, ce qui est indispensable pour un système RAG ou tout autre outil d'analyse de documents.

COMMENT CHOISIR ENTRE EASYOCR ET DOCLING ?

Le choix entre EasyOCR et Docling dépend de votre besoin :

  • Si vous avez besoin de texte brut et rapide → EasyOCR est suffisant.
  • Si vous avez besoin d'un document structuré → Docling est indispensable.
  • Si vous travaillez dans un environnement régulé → Azure Document Intelligence (Article 5bis) peut être une alternative cloud.
  • Si votre document contient des éléments non textuels (dessins, signatures) → Un modèle de vision par IA (Article 5quater) peut être nécessaire.

Dans la plupart des cas, Docling est le meilleur choix pour un système RAG. Le coût supplémentaire en temps de calcul est compensé par la qualité des résultats. Une fois le document parsé, la structure est réutilisable à l'infini, ce qui rend le coût initial négligeable.

LE FONCTIONNEMENT INTERNE : COMMENT DOCLING TRANSFORME LES PIXELS EN DOCUMENT

Docling ne se contente pas d'ajouter une couche de structure à EasyOCR. Il utilise une approche en cascade :

  1. Détection de texte : Comme EasyOCR, Docling détecte les zones de texte dans l'image. Il utilise EasyOCR ou OnnxTR (un autre moteur d'OCR) pour cette étape.
  2. Analyse de la mise en page : Docling utilise un modèle de mise en page pour regrouper les rectangles de texte en éléments logiques (titres, paragraphes, cellules de tableau, etc.). Ce modèle est entraîné sur des milliers de documents pour reconnaître les structures courantes.
  3. Reconstruction du document : Docling reconstitue le document en suivant l'ordre de lecture naturel, comme si vous lisiez une page de gauche à droite et de haut en bas.

Cette approche permet à Docling de reconnaître des structures complexes, comme les tableaux avec des en-têtes, les figures avec des légendes, ou les notes de bas de page. EasyOCR, lui, s'arrête à l'étape 1.

LES AUTRES OUTILS D'OCR : PADDLEOCR ET TESSERACT

EasyOCR n'est pas le seul outil d'OCR classique. Deux autres outils sont souvent cités :

  • PaddleOCR : Développé par Baidu, c'est un outil open source très performant, surtout pour les langues asiatiques. Il est plus lent qu'EasyOCR, mais plus précis.
  • Tesseract : Créé par Google il y a des décennies, c'est l'outil d'OCR le plus ancien et le plus utilisé. Il est gratuit, open source, et fonctionne bien pour les langues latines. Cependant, il est moins précis que PaddleOCR ou EasyOCR sur les documents complexes.

Tous ces outils ont le même point faible : ils ne fournissent pas de structure. Pour obtenir un document exploitable, il faut ajouter une couche de mise en page, comme le fait Docling.

LE FUTUR : LES MODÈLES DE VISION PAR IA

Les modèles de vision par IA, comme ceux utilisés dans l'Article 5quater, vont encore plus loin. Ils ne se contentent pas de détecter le texte et la structure : ils comprennent aussi le sens des éléments. Par exemple, ils peuvent reconnaître une signature, un tampon, ou un dessin, et les associer à leur contexte.

Ces modèles sont encore en développement, mais ils représentent l'avenir de l'extraction de documents. Cependant, ils nécessitent des ressources importantes (GPU, mémoire) et sont plus lents que Docling. Pour l'instant, ils sont surtout utilisés dans des cas très spécifiques, comme l'analyse de documents manuscrits ou de formulaires complexes.

CONCLUSION : EASYOCR N'EST PAS UN PARSEUR, C'EST UN OUTIL D'OCR

EasyOCR est un excellent outil pour extraire du texte d'une image, mais il ne transforme pas un PDF scanné en document exploitable. Pour cela, il faut un parseur comme Docling, qui ajoute une couche de structure indispensable pour un système RAG ou tout autre outil d'analyse de documents.

Le choix entre EasyOCR et Docling dépend de votre besoin :

  • Besoin de texte brut et rapide ? → EasyOCR.
  • Besoin d'un document structuré ? → Docling.

Dans la plupart des cas, Docling est le meilleur choix. Le coût supplémentaire en temps de calcul est compensé par la qualité des résultats. Une fois le document parsé, la structure est réutilisable à l'infini, ce qui rend le coût initial négligeable.

L'OCR récupère les caractères. La mise en page récupère ce qui rend les caractères utiles : titres, figures, cellules de tableau, ordre de lecture. Le parseur par défaut pour les scans est celui qui fait les deux.

RÉSUMÉ DES DIFFÉRENCES ENTRE EASYOCR ET DOCLING

Voici un tableau récapitulatif des différences entre EasyOCR et Docling :

Critère EasyOCR Docling
Type OCR classique Parseur de documents
Temps d'exécution (sur karg74.pdf) 59,7 secondes 134,4 secondes (2,3× plus lent)
Nombre de caractères extraits 4 952 5 423
Nombre de rectangles de texte 346 105 (regroupés en lignes/paragraphes)
Structure extraite Aucune Titres, paragraphes, tableaux, figures, table des matières, ordre de lecture
Taille du modèle ~150 Mo Plus lourd (dépend des modèles utilisés)
GPU requis Non (CPU par défaut) Non (CPU par défaut, GPU optionnel)
Licence Apache 2.0 MIT

POUR ALLER PLUS LOIN : LES ARTICLES DE LA SÉRIE

Cet article fait partie d'une série sur l'Intelligence Documentaire d'Entreprise. Voici les autres articles de la série :

  • Article 5 : Comment parser un PDF avec PyMuPDF (fitz) pour extraire le texte des pages non scannées.
  • Article 5bis : Utilisation d'Azure Document Intelligence pour parser des documents dans le cloud.
  • Article 5ter : Présentation détaillée de Docling et de ses capacités de mise en page.
  • Article 5quater : Utilisation de modèles de vision par IA pour analyser des documents complexes (handwriting, signatures, etc.).
  • Article 10 : Un système de dispatching adaptatif qui choisit automatiquement le meilleur parseur en fonction du document.

Ces articles montrent comment construire un système RAG complet à partir de briques modulaires, en fonction des besoins spécifiques de chaque document.

Sources :
  • Towards Data Science

L'indépendance de CLODCO est votre garantie.

Pour que l'actualité de l'IA reste sans filtre et sans concession, votre soutien est indispensable. Votre contribution est le seul moteur de notre liberté éditoriale.

Soutenir CLODCO