docTR vs Docling sur les reçusVitesse en passage unique vs pipeline documentaire (2026)

Dernière révision : 2026-08-18 · Niveau d'exécution : officiel · Benchmark direct de première partie · 2 moteurs × 2 jeux de données de reçus

Ce que cette page couvre : Un benchmark direct, reproductible et de première partie entre docTR (OCR neuronal en passage unique — détection et reconnaissance en un seul passage avant, sans modélisation de la mise en page ou de l'ordre de lecture) et Docling (pipeline d'analyse documentaire — analyse de la mise en page, détection des tableaux et reconstruction de l'ordre de lecture organisés autour d'un noyau OCR, construisant un modèle documentaire intermédiaire avant le texte) sur deux jeux de données de reçus : les reçus anglais SROIE 2019 (361 échantillons de test) et les reçus indonésiens CORD v2 (100 échantillons de test). Métriques comparées par moteur : taux d'erreur de caractère (CER), taux d'erreur de mot (WER), F1 d'extraction de champs selon deux méthodes de post-traitement (motifs regex fixes et un LLM), latence p50/p95, pages par minute et coût pour 1 000 pages. Chaque chiffre est traçable à une ligne CSV publiée dans le dépôt public du benchmark OCR (ImageToTableai/benchmark-ocr) — des données expérimentales reproductibles, pas une agrégation de rapports tiers.
Ce que cette page ne couvre PAS : Tout type de document autre que les reçus — pas de tableaux, formulaires, factures, contrats ou documents longs. Les forces commercialisées de Docling (analyse de la mise en page, reconnaissance des tableaux, reconstruction de l'ordre de lecture, documents longs) sont hors du cadre ici, pas réfutées — ce benchmark n'a pas été conçu pour les mesurer. Les services OCR cloud/API, les autres moteurs open-source (seuls ces deux sont comparés), les modèles affinés et la sortie structurée native de Docling (que le benchmark ne note pas) sont hors du cadre. Le panorama complet des 8 moteurs se trouve sur OCR traditionnel vs VLM d'analyse documentaire.

Déclaration de portée : chaque chiffre de cette page s'applique uniquement aux reçus — reçus anglais SROIE 2019 et reçus indonésiens CORD v2. Un seul niveau matériel (RTX 4090 à 0,76 $/h, prix horodaté août 2026), un seul post-processeur LLM (deepseek-v4-flash à température 0), versions de modèles fixes (docTR v1.0.1, Docling 2.119.0). N'extrapolez pas ces résultats aux factures, tableaux ou mises en page complexes — le benchmark mesure uniquement l'OCR de reçus et l'extraction de champs de reçus, et les capacités du pipeline de Docling sur les documents structurés sont exactement ce qu'il ne mesure pas. Toutes les chiffres proviennent de results/summary_metrics.csv et results/field_method_comparison.csv du benchmark, miroirs dans le dépôt GitHub public et cités ligne par ligne.

La taxe architecturale sur un simple reçu : le pipeline à étapes de Docling — boîtes de mise en page, détection de tableaux, reconstruction de l'ordre de lecture — apporte peu sur un reçu anglais d'une seule page, et le compteur le montre. Sur les mêmes 361 reçus SROIE, même RTX 4090, même protocole, le CER brut de Docling est 3,0× pire que celui de docTR (0,5909 contre 0,1971), il est 6,7× plus lent au p50 (732,0 ms contre 108,7 ms), et coûte 8,3× plus cher pour 1 000 pages (0,3978 $ contre 0,0479 $). L'inversion qui rend les choses honnêtes : malgré un texte brut bien pire, le F1 des champs par regex de Docling sur SROIE (0,2237) bat celui de docTR (0,0766) de 2,9× — puis un post-traitement LLM renverse le classement en faveur de docTR (0,6171 contre 0,5685).

L'échange, en une paire de chiffres : docTR lit une page de reçu en 108,7 ms au p50 pour 0,048 $ pour 1 000 pages ; Docling la lit en 732,0 ms au p50 pour 0,398 $ pour 1 000 pages — mêmes reçus, même jeu de test, même GPU. Aucun moteur ne « gagne » ; cette page mesure si la surcharge du pipeline vaut son coût sur un reçu simple. Ici, ce n'est pas le cas — et ce que la surcharge de Docling achète réellement (structure de mise en page, tableaux, ordre de lecture) est délibérément non mesuré par ce benchmark, pas réfuté par lui.

6,7×
L'avantage de vitesse par page de docTR sur SROIE : p50 108,7 vs 732,0 ms — avec 11,5× au p95, un débit 7,9× supérieur et un coût 8,3× inférieur pour 1 000 pages sur le même RTX 4090 (summary_metrics.csv, latency_p50_ms / latency_p95_ms / pages_per_minute / cost_per_1000_pages, lignes doctr/sroie_2019 et docling/sroie_2019)
3,0×
La pénalité de CER brut de Docling sur SROIE (0,5909 vs 0,1971 de docTR) — la taxe du pipeline sur un reçu simple ; le CER de Docling se classe 7ᵉ sur 8 moteurs dans l'exécution sous-jacente (summary_metrics.csv, cer, mêmes lignes)
2,9×
L'avantage hors-boîte du F1 des champs par regex de Docling sur SROIE (0,2237 vs 0,0766 de docTR) — l'inversion, qu'un post-traiteur LLM renverse ensuite en faveur de docTR (0,6171 vs 0,5685, un avantage de 0,049 point) (field_method_comparison.csv, regex_field_value_f1 / llm_field_value_f1, lignes sroie_2019)

Ce qu'est Docling (et ce qu'il n'est pas) : OCR en une seule passe vs pipeline d'analyse

Les deux moteurs se situent aux extrémités d'une division architecturale fondamentale, et cette division — et non une différence de code ou de paramétrage — est toute l'histoire de cette page. docTR est un moteur OCR neuronal en une seule passe : une étape de détection localise les boîtes englobantes du texte et une étape de reconnaissance transcrit les caractères à l'intérieur, le tout composé en un seul prédicteur OCR dont le passage avant produit des lignes de texte brutes. Il n'y a pas de modèle de disposition, pas d'analyseur de tableaux et pas de reconstruction de l'ordre de lecture — ce qui est imprimé est ce qui sort, dans l'ordre où le reconnaître le lit. Docling n'est pas un moteur OCR ni un modèle vision-langage ; c'est un pipeline d'analyse de documents. Selon son propre rapport technique (cité pour le contexte architectural, et non pour un quelconque chiffre de cette page), il déploie une séquence de modèles par page — analyse de disposition, détection de tableaux, inférence de l'ordre de lecture — les agrège et assemble un objet document intermédiaire avant d'émettre le texte, ce qui explique que sa sortie contienne de la structure (étiquettes, ordre, zones) que les lignes de docTR n'ont pas.

Pourquoi ce mécanisme est-il important pour un benchmark : chaque modèle séquentiel dans la chaîne de Docling existe pour exploiter la structure de la disposition — un tableau à analyser, un formulaire à deux colonnes, un chemin de lecture qui n'est pas l'ordre lexical. Un reçu en anglais simple n'en a presque aucun : une seule colonne, quelques zones, un chemin de haut en bas largement prévisible, pas de tableaux. La machinerie séquentielle s'exécute quand même sur chaque page — c'est pourquoi elle est plus lente et plus coûteuse — mais sans structure à exploiter, la surcharge ne peut pas se convertir en meilleur texte. Cette page isole précisément ce coût et montre ce qu'il achète — et ce qu'il n'achète pas.

Précision des caractères : le coût du pipeline sur le texte brut

Sur SROIE 2019, l'écart sur le texte brut est important : CER 0.1971 contre 0.5909 (Docling) — une pénalité de 3,0× — et WER 0.3199 contre 0.7596. Le taux d'erreur de caractères (CER) mesure les insertions, suppressions et substitutions divisées par les caractères de référence — un CER de 0,197 signifie ~19,7 caractères mal lus pour 100 ; le taux d'erreur de mots (WER) applique la même logique de distance d'édition au niveau des mots. Le 0,5909 de Docling le classe 7ᵉ sur 8 moteurs dans l'exécution sous-jacente, devant uniquement Unlimited-OCR (0,6552, colonne cer de summary_metrics.csv, toutes les lignes sroie_2019) — le face-à-face docTR-vs-Surya2 avait documenté docTR comme l'un des deux meilleurs reconnaissances dans ce même benchmark, et cette page montre que le même moteur se trouve à l'autre bout du tableau de précision textuelle est un pipeline, pas une famille de reconnaissance plus faible.

Précision du texte sur SROIE 2019 : docTR CER 19,7% contre Docling 59,1% ; WER 32,0% contre 76,0%. Plus bas est meilleur. Un écart de CER de 3,0× et de WER de 2,4×.

Source : summary_metrics.csv — colonnes cer et wer, lignes sroie_2019. docTR cer 0,19707 / wer 0,31990 ; Docling cer 0,59092 / wer 0,75961. Plus bas est meilleur. 361 échantillons par moteur ; error_rate 0,0 pour les deux.

Métrique (SROIE 2019, n=361)docTRDoclingSource
Taux d'erreur de caractères (CER)0,19710,5909summary_metrics.csv · cer, lignes doctr/sroie_2019 et docling/sroie_2019
Taux d'erreur de mots (WER)0,31990,7596summary_metrics.csv · wer, mêmes lignes
Taux d'erreur (pages échouées)0,00,0summary_metrics.csv · error_rate, mêmes lignes

Tableau : summary_metrics.csv — colonnes cer / wer / error_rate, lignes sroie_2019. Valeurs exactes : docTR cer 0,19707 / wer 0,31990 ; Docling cer 0,59092 / wer 0,75961. Le CER SROIE de Docling est le deuxième pire des huit moteurs dans l'exécution sous-jacente (devant uniquement les 0,6552 d'Unlimited-OCR) — la précision brute des caractères est là où le coût du pipeline apparaît en premier.

L'inversion : l'extraction de champs par regex inverse le résultat

Testez les deux moteurs avec les mêmes motifs regex fixes sur les quatre champs de reçus SROIE (entreprise, date, adresse, total) — l'approche traditionnelle OCR + extraction d'informations clés (KIE) basée sur des règles — et le classement s'inverse : Docling extrait les champs avec un F1 de 0,2237 contre 0,0766 pour docTR, un avantage de 2,9×. Ce sont les métriques postprocessed_sroie_receipt_regex_* du benchmark : motifs fixes appliqués au texte OCR de chaque moteur — post-traité, pas la sortie structurée native d'aucun moteur, et le modèle document natif de Docling n'est pas évalué ici.

Le F1 de valeur de champ est la moyenne harmonique de la précision et du rappel sur les valeurs des champs extraits par rapport à la vérité terrain — 1,0 signifie que chaque champ du reçu est parfaitement récupéré, 0 signifie rien. Le mécanisme derrière l'inversion est la même différence d'architecture qui a causé l'écart de CER, agissant dans le sens opposé : le modèle document de Docling réordonne le texte en un chemin de lecture et associe les étiquettes aux valeurs, donc son texte émis est de forme plus proche de ce que les motifs fixes attendent ; le texte brut mais propre de docTR — précis par CER, mais avec la casse originale et le bruit des séparateurs et sans cadrage d'étiquettes — fait échouer les motifs. Le F1 regex de champ de docTR de 0,0766 est le pire des huit moteurs dans l'exécution sous-jacente malgré son CER de meilleure classe (colonnes field_f1_regex et cer de summary_metrics.csv, toutes les lignes sroie_2019) ; celui de Docling, 0,2237, se classe sixième. Le même découplage documenté dans le duel direct en haut de l'échelle de précision (docTR vs Surya2) se reproduit ici en bas : la précision du texte n'est pas la précision des champs.

F1 de champ SROIE 2019 par méthode de post-traitement : via des motifs regex Docling atteint 22,4% contre 7,7% pour docTR — une inversion de 2,9x ; via le post-traitement LLM (deepseek-v4-flash) docTR reprend l'avantage, 61,7% contre 56,9%.

Source : field_method_comparison.csv — colonnes regex_field_value_f1 / llm_field_value_f1, lignes sroie_2019 (décimales de 0 à 1 affichées en %). Post-traitement LLM : deepseek-v4-flash (colonne llm_model). 361 échantillons par moteur (llm_ok_count).

Regex postprocessing (SROIE 2019, n=361)docTRDoclingSource
Field-value F1 (regex)0.07660.2237field_method_comparison.csv · regex_field_value_f1, lignes doctr/sroie_2019 et docling/sroie_2019
Field-value accuracy (regex)0.06230.2043field_method_comparison.csv · regex_field_value_accuracy, mêmes lignes
Document-fields exact (regex)0.00000.0000field_method_comparison.csv · regex_document_fields_exact, mêmes lignes

Table : field_method_comparison.csv — colonnes regex, lignes sroie_2019. Il s'agit des métriques postprocessed_sroie_receipt_regex_* : des motifs fixes appliqués au texte OCR de chaque moteur, pas une extraction structurée native. Aucun moteur n'obtient les quatre champs exactement corrects via regex sur un seul reçu SROIE (0,0000, un zéro littéral enregistré dans le CSV). Le F1 champ regex de docTR, 0,0766, est le plus bas des huit moteurs dans l'exécution sous-jacente.

Le post-traitement LLM restaure le classement — partiellement

En passant le texte des deux moteurs à un post-processeur LLM (deepseek-v4-flash à température 0) avec un prompt d'extraction structurée, docTR reprend la tête : F1 champ 0,6171 vs 0,5685 — un avantage de 0,049 point, faible par rapport à l'écart brut de CER mais non effacé. Le texte de base plus propre fait émerger des valeurs de champ plus récupérables ; le LLM compense partiellement les artefacts de mise en page de Docling sans les éliminer.

C'est la même bande de convergence observée sur l'ensemble du benchmark à huit moteurs — le post-traitement LLM rapproche les moteurs performants car il comprend la sémantique (nombres, dates, noms) au lieu de correspondre aux formes de caractères — et l'écart résiduel compte : le 0,6171 de docTR est le meilleur F1 champ LLM des huit moteurs, tandis que le 0,5685 de Docling se classe sixième (field_method_comparison.csv llm_field_value_f1, toutes les lignes sroie_2019). Le critère plus strict — documents où tous les quatre champs correspondent exactement — les sépare de 2,7× : docTR 0,1496 vs Docling 0,0554. Deux coûts accompagnent ce levier : un appel LLM ajoute ~2,0–2,4 s de latence médiane par document en plus du temps OCR (1 996,3 ms pour le texte de docTR, 2 365,1 ms pour celui de Docling — imputés à l'API et de même nature), et il ne peut pas sauver un texte qu'un moteur n'a pas réussi à lire fondamentalement.

Post-traitement LLM (SROIE 2019, n=361)docTRDoclingSource
F1 champ-valeur (LLM)0.61710.5685field_method_comparison.csv · llm_field_value_f1, lignes doctr/sroie_2019 et docling/sroie_2019
Précision champ-valeur (LLM)0.61700.5665field_method_comparison.csv · llm_field_value_accuracy, mêmes lignes
Exactitude document-champs (LLM)0.14960.0554field_method_comparison.csv · llm_document_fields_exact, mêmes lignes
Latence médiane post-traitement LLM (ms)1,996.32,365.1field_method_comparison.csv · llm_median_latency_ms, mêmes lignes

Table : field_method_comparison.csv — colonnes llm_*, lignes sroie_2019. Modèle LLM : deepseek-v4-flash à température 0 (colonne llm_model). La latence LLM est imposée par l'API et distincte de la latence du moteur (summary_metrics.csv latency_p50_ms). Les deux lignes ont été complétées avec llm_ok_count 361.

Enveloppe opérationnelle : latence ×6,7, débit ×7,9, coût ×8,3

La taxe du pipeline est la plus lourde là où se situe la planification du débit. Sur la même RTX 4090 au même tarif enregistré de 0,76 $/h, docTR maintient 449,3 pages/min avec une latence p50 de 108,7 ms par page pour 0,048 $ pour 1 000 pages ; Docling maintient 56,7 pages/min avec une latence p50 de 732,0 ms pour 0,398 $ pour 1 000 pages — un écart de latence de ×6,7, un écart de débit de ×7,9 et un écart de coût de ×8,3. La queue est proportionnellement pire pour le pipeline : p95 281,4 ms contre 3 239,8 ms, un écart de ×11,5, car les modèles séquentiels de Docling cumulent leurs temps les plus mauvais page après page.

Le coût est calculé comme durée d'exécution réelle × le tarif RunPod RTX 4090 (0,76 $/heure, prix horodaté dans les manifests d'exécution), incluant l'initialisation du modèle — le prix que vous paieriez réellement pour le temps GPU. Le débit est le nombre de pages par minute en temps réel, incluant cette même initialisation. Les latences p50/p95 sont les temps d'inférence par page en régime permanent, mesurés en mode warm-then-scored (chargement du modèle exclu). docTR est le moteur le plus rapide et le moins cher des huit dans l'exécution de base sur SROIE ; Docling, à 56,7 pages/min et 0,398 $ pour 1 000 pages, se situe dans la moitié inférieure du tableau de l'enveloppe opérationnelle (summary_metrics.csv, colonnes latency_p50_ms / pages_per_minute / cost_per_1000_pages, toutes les lignes sroie_2019).

Latence sur SROIE 2019 : docTR p50 108,7 ms / p95 281,4 ms ; Docling p50 732,0 ms / p95 3 239,8 ms. Régime permanent, warm-then-scored (chargement du modèle exclu).

Source : summary_metrics.csv — colonnes latency_p50_ms / latency_p95_ms, lignes sroie_2019. docTR p50 108,72 / p95 281,38 ; Docling p50 732,00 / p95 3239,79. Latence en régime permanent (mode de mesure warm_then_scored, chargement du modèle exclu).

Coût pour 1 000 pages sur SROIE 2019 (RTX 4090 à 0,76 $/h) : docTR 0,048 $ vs Docling 0,398 $ — un écart de ×8,3. Le coût inclut l'initialisation du modèle.

Source : summary_metrics.csv — colonne cost_per_1000_pages, lignes sroie_2019. docTR 0,0479, Docling 0,3978. Coût = durée d'exécution réelle × 0,76 $/h incluant l'initialisation du modèle, prix horodaté dans les manifests d'exécution (août 2026). docTR est le moteur le moins cher des huit dans l'exécution de base.

Enveloppe opérationnelle (SROIE 2019, n=361)docTRDoclingSource
Latence p50 (ms)108.7732.0summary_metrics.csv · latency_p50_ms, lignes doctr/sroie_2019 et docling/sroie_2019
Latence p95 (ms)281.43,239.8summary_metrics.csv · latency_p95_ms, mêmes lignes
Pages par minute (temps réel)449.356.7summary_metrics.csv · pages_per_minute, mêmes lignes
Coût pour 1 000 pages$0.048$0.398summary_metrics.csv · cost_per_1000_pages, mêmes lignes

Tableau : summary_metrics.csv — latency_p50_ms / latency_p95_ms / pages_per_minute / cost_per_1000_pages, lignes sroie_2019. Les deux moteurs sur GPU (RTX 4090, prix horaire de $0.76 horodaté dans les manifests) ; le coût inclut l'initialisation du modèle. Valeurs exactes : docTR p50 108.72 / p95 281.38 / 449.31 pg/min / $0.0479 ; Docling p50 732.00 / p95 3239.79 / 56.66 pg/min / $0.3978.

CORD (reçus indonésiens) : les deux s'effondrent, la récupération de champs par LLM de docTR reste en tête

Aucun moteur n'a été principalement entraîné sur des reçus indonésiens, donc CORD v2 (100 échantillons, champs imbriqués menu/sub_total/total) sert de test de résistance interlingue — et les deux s'effondrent sur le CER brut : 0.9101 (docTR) et 0.9219 (Docling), un match nul d'inadéquation linguistique. Selon le protocole de référence, les chiffres de CORD sont maintenus isolés de la comparaison SROIE — jamais fusionnés dans un classement — car le texte de référence de CORD intègre la structure d'annotation, ce qui gonfle le CER brut pour chaque moteur en plus de la véritable inadéquation linguistique.

Sur les métriques de champs, l'avantage unique préservé de Docling se réduit à presque rien : via les expressions régulières, les deux moteurs récupèrent presque aucun champ CORD (docTR 0.0000 — un zéro littéral dans le CSV — contre 0.0612 pour Docling, car les motifs au format anglais n'ont jamais été conçus pour le texte indonésien). Le post-traitement LLM absorbe le choc linguistique des deux côtés mais maintient docTR en tête : F1 des champs 0.5500 contre 0.4695. CORD est cité ici pour le contexte de robustesse linguistique ; il est délibéré de ne jamais le regrouper avec les chiffres SROIE dans un classement unique.

CORD v2, reçus indonésiens (n=100)docTRDoclingSource
Taux d'erreur de caractère (CER)0.91010.9219summary_metrics.csv · cer, lignes doctr/cord_v2 et docling/cord_v2
F1 des valeurs de champ (regex)0.00000.0612field_method_comparison.csv · regex_field_value_f1, mêmes lignes
F1 des valeurs de champ (LLM)0.55000.4695field_method_comparison.csv · llm_field_value_f1, mêmes lignes
Coût pour 1 000 pages$0.094$0.538summary_metrics.csv · cost_per_1000_pages, mêmes lignes
Pages par minute (temps réel)500.4123.2summary_metrics.csv · pages_per_minute, mêmes lignes

Tableau : summary_metrics.csv (cer / cost_per_1000_pages / pages_per_minute) et field_method_comparison.csv (F1 des champs), lignes cord_v2. Ne fusionnez pas les chiffres CORD dans un quelconque classement SROIE : le CER de CORD combine une véritable inadéquation linguistique avec une inflation de la structure d'annotation dans la vérité terrain, et les expressions régulières ont été rédigées pour des formats anglais. Le F1 des champs regex de docTR sur CORD, à 0.0000, est un zéro littéral enregistré dans le CSV, pas une valeur manquante.

Qui gagne quand : le tableau récapitulatif

“Mieux” dépend de la charge de travail, et cette confrontation directe sépare clairement les axes : sur un reçu en anglais simple, tous les axes vitesse/coût et texte brut favorisent docTR ; l'inversion des champs regex hors de la boîte favorise Docling ; un postprocesseur LLM les ramène à un avantage de 0,049 point pour docTR ; et les fonctionnalités pour lesquelles Docling existe — mise en page, tableaux, ordre de lecture, longs documents — ne sont pas mesurées ici, pas réfutées.

Vitesse par page — docTR
108,7 vs 732,0 ms
Latence p50 sur SROIE, écart de 6,7× ; p95 281,4 ms vs 3 239,8 ms, soit un écart de 11,5× (summary_metrics.csv, latency_p50_ms / latency_p95_ms, lignes sroie_2019). Pour une attente interactive par page : 0,1 s vs 0,7 s, et 0,3 s vs 3,2 s en queue de distribution.
Débit — docTR
449,3 vs 56,7 pg/min
Pages par minute en temps réel sur SROIE, écart de 7,9× — un pipeline par lots à la vitesse de docTR traite les mêmes 1 000 reçus en ~2,2 minutes contre ~17,6 (summary_metrics.csv, pages_per_minute, lignes sroie_2019).
Moins cher pour 1 000 pages — docTR
0,048 $ vs 0,398 $
Coût pour 1 000 pages sur SROIE avec le même RTX 4090 à 0,76 $/h — 8,3× moins cher, coût incluant l'initialisation du modèle ; sur CORD l'écart est de 5,7× (0,094 $ vs 0,538 $) (summary_metrics.csv, cost_per_1000_pages, lignes sroie_2019 et cord_v2).
Précision du texte brut — docTR
CER 0,1971 vs 0,5909
Taux d'erreur de caractères sur SROIE, une pénalité de 3,0× ; WER 0,3199 vs 0,7596 (summary_metrics.csv, cer / wer, lignes sroie_2019). docTR est le meilleur reconnaisseur du benchmark (statistiquement à égalité avec Surya2, 0,1915) ; Docling se classe 7ᵉ sur 8.
Champs regex hors de la boîte — Docling
0,2237 vs 0,0766 F1
F1 des champs post-traités par regex sur SROIE — un avantage de 2,9× grâce à la lecture de texte associé aux étiquettes qui correspond aux motifs fixes ; les lignes brutes mais propres de docTR les battent (inversion de cette page) (field_method_comparison.csv, regex_field_value_f1, lignes sroie_2019).
F1 final des champs avec LLM — docTR
0,6171 vs 0,5685
F1 des champs post-traités par LLM (deepseek-v4-flash) sur SROIE — un avantage de 0,049 point, bien plus petit que l'écart brut de CER : le LLM compense partiellement les artefacts de mise en page de Docling mais ne les efface pas (field_method_comparison.csv, llm_field_value_f1, lignes sroie_2019).
Tous les champs exacts avec LLM — docTR
14,96 % vs 5,54 %
Fraction des reçus SROIE où les quatre champs (entreprise, date, adresse, total) correspondent exactement après post-traitement LLM — un écart de 2,7× sur un critère bien plus strict que le F1 par champ (field_method_comparison.csv, llm_document_fields_exact, lignes sroie_2019).
Mise en page, tableaux, longs documents — Non mesuré
Hors périmètre
Le pipeline à étapes de Docling existe pour exploiter une structure que ce benchmark de reçus uniquement ne contient pas. Rien ici n'évalue la reconnaissance de tableaux, l'analyse de formulaires, la fidélité de l'ordre de lecture ou le traitement de longs documents — ne lisez pas cette page comme un verdict sur ces cas d'usage.

Foire aux questions

Docling est-il plus précis que docTR pour les reçus ?

Non — en termes de précision brute des caractères, docling est 3,0× moins précis : CER SROIE 0,5909 contre 0,1971, et WER 0,7596 contre 0,3199 (summary_metrics.csv, cer / wer, lignes sroie_2019). Docling ne « gagne » que sur un seul axe mesuré : l'extraction de champs par regex hors de la boîte (0,2237 contre 0,0766 field F1) — et un postprocesseur LLM renverse la situation en faveur de docTR (0,6171 contre 0,5685).

Pourquoi Docling extrait-il mieux les champs avec des regex malgré un texte brut beaucoup moins précis ?

Parce que les deux métriques évaluent des choses différentes, et que la forme de sortie de Docling correspond par hasard aux motifs. Le pipeline documentaire de Docling réordonne le texte en un chemin de lecture et associe des étiquettes aux valeurs, de sorte que son texte émis est structurellement plus proche de ce que les motifs regex fixes attendent ; docTR émet du texte brut de ligne propre qui est précis selon le CER mais qui déjoue les motifs (0,0766 field F1, le pire des huit moteurs, contre un CER de meilleure classe). Il s'agit des scores postprocessed_sroie_receipt_regex_* — du texte OCR passé dans des motifs fixes — et non d'une sortie structurée native (field_method_comparison.csv, regex_field_value_f1, lignes sroie_2019). Cette dissociation précision du texte ≠ précision des champs apparaît dans l'ensemble de ce benchmark.

Pourquoi Docling est-il si beaucoup plus lent et coûteux par page ?

Parce qu'il exécute un pipeline documentaire par étapes — analyse de la mise en page, détection des tableaux, reconstruction de l'ordre de lecture et un modèle documentaire intermédiaire — sur chaque page, même lorsque la page est un reçu simple sans structure à exploiter. Sur SROIE, cette charge mesure 6,7× au p50 (108,7 contre 732,0 ms), 11,5× au p95, un débit 7,9× inférieur (449,3 contre 56,7 pages/min) et un coût 8,3× supérieur pour 1 000 pages ($0,048 contre $0,398) — même GPU, même protocole (summary_metrics.csv, lignes sroie_2019).

Un post-traitement LLM comble-t-il l'écart entre docTR et Docling ?

En grande partie, mais pas totalement : le F1 des champs post-traités par LLM sur SROIE atteint docTR 0.6171 contre Docling 0.5685 — un avantage de 0,049 point pour docTR qui survit à la compensation partielle du LLM pour les artefacts de mise en page de Docling (field_method_comparison.csv, llm_field_value_f1, lignes sroie_2019). Le coût de cette convergence est d'environ 2,0 à 2,4 s de latence LLM médiane supplémentaire par document (llm_median_latency_ms, mêmes lignes).

Ce benchmark signifie-t-il que Docling est mauvais ?

Non — cela signifie que les forces de Docling ne sont pas mesurées ici. Docling est un pipeline d'analyse de documents dont la proposition de valeur — structure de mise en page, tableaux, ordre de lecture, formulaires, documents longs — est exactement ce qu'un benchmark limité aux reçus ne peut pas évaluer. Ce que cette page montre est plus restreint : sur un reçu simple d'une seule page, la surcharge du pipeline ne s'amortit pas (CER 3,0× pire, coût 8,3×), et son seul avantage mesuré (F1 regex des champs 2,9×) est effacé par un post-traitement LLM. Le cadre honnête est celui de la portée, pas du verdict.

Pourquoi les deux moteurs obtiennent-ils de si mauvais scores sur les reçus CORD ?

Deux causes cumulatives que le protocole sépare du classement SROIE : une véritable inadéquation linguistique (reçus indonésiens en dehors du champ d'entraînement des deux moteurs) et une inflation de la structure d'annotation dans le texte de référence de CORD — le CER atteint 0,9101 (docTR) et 0,9219 (Docling) (summary_metrics.csv, cer, lignes cord_v2). Avec un post-traitement LLM, le F1 des champs de docTR se maintient à 0,5500 contre 0,4695 pour Docling — l'ordre de SROIE, compressé. Les lignes CORD sont citées et jamais regroupées dans un classement combiné.

Quel moteur choisir pour un pipeline de reçus, docTR ou Docling ?

Pour du texte de reçu à haut volume avec coût mesuré, l'enveloppe de docTR est décisive : 108,7 ms p50, 449,3 pages/min, 0,048 $ pour 1 000 pages — le moteur le plus rapide et le moins cher du test des huit moteurs. Si votre pipeline consomme du texte structuré prêt à l'emploi sans aucun post-traitement, l'avantage regex de Docling (0,2237 vs 0,0766) est un vrai point de départ. Si le post-traitement par LLM fait partie de la conception, docTR reste en avance de 0,049 et coûte moins cher à alimenter. Si votre charge de travail est des documents à mise en page complexe — tableaux, formulaires, longs rapports — ce benchmark n'est pas la bonne preuve pour la décision ; il ne mesure que les reçus (voir Limites).

D'où viennent les chiffres sur cette page ?

Chaque chiffre est une ligne des CSV publiés du benchmark interne — results/summary_metrics.csv (CER/WER, F1 regex, latence, coût, débit) et results/field_method_comparison.csv (regex vs post-traitement LLM, llm_model = deepseek-v4-flash) — hébergés sur ImageToTableai/benchmark-ocr, avec un manifest.json édité par exécution pour les empreintes d'environnement. Les définitions des jeux de données proviennent des articles SROIE 2019 et CORD cités ci-dessous.

Méthodologie & Sources

Protocole

Cette page présente un extrait comparatif d'un benchmark indépendant et reproductible (niveau officiel) — pas un recueil d'affirmations tierces, ni une page de comparaison fournisseurs. Uniquement des ensembles de test fixes : SROIE 2019 test (361 reçus anglais, champs plats entreprise/date/adresse/total) et CORD v2 test (100 reçus indonésiens, champs imbriqués menu/sous_total/total) ; les ensembles d'entraînement n'ont jamais été évalués. Les deux moteurs ont vu les mêmes images, la même vérité terrain et le même protocole de mesure (warm_then_scored : un passage de chauffage fixe précède le passage mesuré, donc les chiffres de latence sont en régime permanent). Les deux exécutions se sont terminées avec un error_rate de 0,0 sur les deux jeux de données (colonne error_rate de summary_metrics.csv). L'exécution sous-jacente contient huit moteurs au total ; cette page ne compare que les deux moteurs nommés, les autres n'étant cités que comme contexte de classement. Les résultats complets des 8 moteurs sont publiés séparément sur Traditional OCR vs Document Parsing VLMs.

Environnement d'exécution

  • Matériel : les deux moteurs ont tourné sur le même NVIDIA RTX 4090 (24 Go) ; coût GPU calculé au tarif à la demande de RunPod de $0.76/hr, le prix étant horodaté dans le manifeste édité de chaque exécution (août 2026).
  • Moteurs : en configuration standard, sans affinage. Versions verrouillées : docTR v1.0.1 (OCR neuronal en une seule passe — étape de détection + étape de reconnaissance composées en un seul prédicteur OCR, GPU) et Docling 2.119.0 (pipeline d'analyse de documents — analyse de mise en page, détection de tableaux, reconstruction de l'ordre de lecture organisés autour d'un noyau OCR, GPU) — selon le tableau des modèles du dépôt public (README.md) et les manifestes d'exécution.
  • Post-traitement LLM : deepseek-v4-flash via API à température 0 pour une sortie déterministe (colonne llm_model dans field_method_comparison.csv) ; c'était le seul modèle utilisé pour toutes les lignes de champs LLM sur les deux moteurs.
  • Base de coût : temps d'exécution réel × $0.76/hr, incluant l'initialisation du modèle — le traitement par lots réduit le coût par page.
  • Post-traitement des champs : les métriques de champs regex SROIE sont postprocessed_sroie_receipt_regex_* (colonnes regex_* de field_method_comparison.csv) — champs extraits du texte OCR par un ensemble de motifs fixes. Elles mesurent l'OCR + l'extraction en aval, pas la sortie structurée native de l'un ou l'autre modèle ; les colonnes LLM_* mesurent le texte OCR + l'extraction LLM. Les deux pipelines ne sont jamais mélangés, et le modèle document natif de Docling n'est pas évalué par ce benchmark.

Définitions des métriques

  • CER (Taux d'erreur de caractères) : distance d'édition (insertions + suppressions + substitutions) entre le texte OCR et la vérité terrain, divisée par le nombre de caractères de la vérité terrain. Plus bas est mieux.
  • WER (Taux d'erreur de mots) : le même calcul de distance d'édition au niveau des mots.
  • F1 sur les valeurs de champs (regex) : moyenne harmonique précision/rappel sur les valeurs de champs extraites en utilisant des motifs regex fixes sur le texte OCR (pipeline OCR traditionnel + KIE basé sur des règles). Colonne : regex_field_value_f1. Un score de 0 signifie qu'aucune valeur de champ n'a été récupérée.
  • F1 sur les valeurs de champs (LLM) : la même métrique sur la sortie du post-traitement LLM (texte OCR → deepseek-v4-flash → champs). Colonne : llm_field_value_f1. Les deux pipelines sont différents et ne sont jamais mélangés.
  • Champs de document exacts : fraction des documents où tous les champs cibles correspondaient exactement — un critère bien plus strict que le F1 par champ.
  • Latence p50/p95 et pages/min : temps d'inférence par page en régime permanent (après chauffe puis mesuré, excluant le chargement du modèle) et débit réel incluant l'initialisation du modèle. Ils mesurent des horloges différentes.
  • Coût pour 1 000 pages : heures GPU facturées pour 1 000 pages au tarif enregistré de $0.76/hr, incluant l'initialisation du modèle.

Liste des sources

  1. summary_metrics.csv (GitHub raw). 16 lignes = 8 modèles × 2 jeux de données. Colonnes : model, compute_type, dataset, cer, wer, field_f1_regex, field_acc_regex, latency_p50_ms, latency_p95_ms, cost_per_1000_pages, pages_per_minute, error_rate. Chaque donnée de CER/WER, latence, coût et débit sur cette page provient des lignes doctr et docling ici.
  2. field_method_comparison.csv (GitHub raw). 16 lignes ; colonnes model, dataset, llm_model (= deepseek-v4-flash), précision et F1 regex/llm pour les champs, document-fields-exact, llm_median_latency_ms, compteurs de tokens. Chaque donnée de F1 regex/LLM pour les champs provient des lignes doctr et docling ici (et des huit lignes sroie_2019 dans le contexte du classement).
  3. Dépôt ImageToTableai/benchmark-ocr. Dépôt public hébergeant les CSV de résultats, les manifests d'exécution caviardés, le protocole figé et les listes d'échantillons de jeux de données (partitions de test fixes) pour la reproductibilité.
  4. results/manifests/ (GitHub). Un manifest.json caviardé par exécution publiée (16 exécutions) avec les versions des modèles, GPU/pilotes, versions torch/CUDA/Python, métadonnées de coût avec horodatage des prix et empreintes des artefacts.
  5. Huang et al., « ICDAR2019 Competition on Scanned Receipt OCR and Information Extraction » (2019). Définition du jeu de données SROIE 2019, structure des tâches et licence (CC-BY-4.0).
  6. Park et al., « CORD: A Consolidated Receipt Dataset for Post-OCR Parsing » (2020). Définition du jeu de données CORD v2, schéma de champs imbriqués et licence (CC-BY-4.0).
  7. Auer et al., « Docling Technical Report » (2024). Contexte architectural uniquement — décrit le pipeline par étapes de Docling (analyse de mise en page, détection de tableaux, inférence de l'ordre de lecture, assemblage du document). Aucune donnée de benchmark sur cette page n'est tirée de cette source.

Limitations

  • Périmètre du document — reçus uniquement : SROIE + CORD. Rien ici n'évalue la gestion de la mise en page/tableaux/ordre de lecture/documents longs qui définit la proposition de valeur de Docling ; ces capacités sont hors périmètre, pas réfutées. N'utilisez pas cette page pour conclure « Docling est mauvais ». Elle conclut : sur un reçu simple d'une seule page, la surcharge du pipeline ne vaut pas le coup.
  • Taille de l'échantillon : 361 reçus en anglais + 100 reçus en indonésien. Les scores F1 et CER par champ sont sensibles au corpus ; les écarts documentés ici (3,0× CER, 6,7× p50, 8,3× coût) sont bien au-delà de la bande de bruit, mais les différences de quelques points de pourcentage doivent être traitées comme du bruit, pas comme une vérité d'ingénierie.
  • Un seul niveau de GPU et un seul prix : tous les chiffres proviennent d'un seul RTX 4090 à 0,76 $/h, horodaté en août 2026 dans les manifests d'exécution. D'autres GPU, un service multi-GPU, une planification par lots ou des changements de prix modifieront la latence, le débit et le coût — recalculez les coûts aux tarifs actuels avant de budgétiser.
  • Un seul postprocesseur LLM : toutes les lignes LLM utilisent deepseek-v4-flash à température 0. Un LLM différent modifierait le score F1 absolu par champ ; l'avantage de 0,049 point de docTR pourrait évoluer aux marges. La latence du LLM (~1 996–2 365 ms médiane sur SROIE, champ llm_median_latency_ms dans field_method_comparison.csv) est imputée à l'API et ne fait pas partie de la latence propre à l'un ou l'autre moteur.
  • Paramétrage des regex : l'ensemble de motifs a été écrit une fois par jeu de données. Une bibliothèque de motifs paramétrée par format et fortement optimisée pourrait obtenir de meilleurs résultats sur ses propres mises en page — au prix de maintenance que le LLM supprime ; l'avantage de 2,9× de Docling sur les regex est mesuré par rapport à cet ensemble de motifs fixe unique.
  • La sortie native de Docling n'est pas évaluée : Docling émet un modèle de document structuré, mais le benchmark évalue le texte + les postprocesseurs, pas la sortie structurée native. Une variante du benchmark évaluant les champs natifs de Docling serait une expérience différente ; cette page ne l'entreprend pas.
  • Le CER de CORD n'est pas une mesure de qualité par modèle : la vérité terrain de CORD intègre la structure d'annotation et aucun des deux moteurs n'a été principalement entraîné sur de l'indonésien ; le CER de CORD (~0,91–0,92) reflète l'inadéquation linguistique + l'inflation de la vérité terrain. Les lignes CORD sont citées avec un contexte et ne sont jamais fusionnées dans un classement SROIE (règle de protocole).
  • Verrouillage des versions : les résultats sont valables pour docTR v1.0.1 et Docling 2.119.0 (août 2026). De nouvelles versions de l'un ou l'autre moteur pourraient modifier chaque chiffre de cette page.

Références associées : docTR vs Surya2 Receipt Benchmark · PaddleOCR vs EasyOCR Receipt Benchmark · Traditional OCR vs Document Parsing VLMs · Regex vs LLM Field Extraction · Field-Level vs Character-Level Accuracy

Lectures associées : AI OCR vs Traditional OCR Accuracy · AI Image Data Extraction vs Traditional OCR · AI Document Extraction Pricing (2026)

📮 contact email: [email protected]