Coût OCR pour 1 000 pages
8 moteurs open source, comparés (2026)
Dernière vérification : 2026-08-18 · Niveau d'exécution : officiel · Benchmark interne · 8 moteurs × 2 jeux de données de reçus
Ce que cette page ne couvre PAS : Tout type de document autre que les reçus — pas de factures, formulaires, contrats ou longs documents. Les services OCR cloud/API (AWS, Google, Azure et leur tarification à l'appel), les modèles affinés, l'acquisition/amortissement du GPU (achat du matériel vs location à l'heure), le stockage et l'égress, et le coût en dollars de l'extraction de champs par LLM (uniquement les comptages de tokens) sont hors périmètre. Le comparatif complet de précision/latence des 8 moteurs se trouve sur OCR traditionnel vs VLM d'analyse de documents.
Précision sur la fourchette : tous les montants en dollars de cette page concernent un seul niveau de GPU (RTX 4090) à un seul horodatage de prix (août 2026, 0,76 $/h, enregistré dans les rapports d'exécution comme price_recorded_at_utc 2026-08-13T08:00:00Z). Recalculer aux tarifs actuels avant de budgétiser. Uniquement les jeux de données de reçus (SROIE 2019, CORD v2). Coût = temps d'exécution réel × le tarif horaire, incluant l'initialisation du modèle.
Sur le même GPU, les mêmes reçus et la même base de facturation de 0,76 $/h, le coût OCR pour 1 000 pages entre les 8 moteurs open source s'étend sur un facteur de 22,2× — de 0,0479 $ (docTR) à 1,0609 $ (Surya2) sur SROIE 2019. Le choix du moteur seul fait varier le coût de l'OCR open source d'un ordre de grandeur, et le classement suit le temps d'exécution réel, pas la précision : le moteur le moins cher (docTR) a le deuxième meilleur taux d'erreur de caractères, tandis que le plus cher (Surya2) a le meilleur.
Les deux chiffres dont les rédacteurs ont le plus souvent besoin : 0,048 $ pour 1 000 pages pour le moteur le moins cher mesuré (docTR, 449,3 pages/min) contre 1,061 $ pour 1 000 pages pour le plus cher (Surya2, 12,1 pages/min) — même partition de test, même niveau de GPU, même horodatage de prix. Tesseract est uniquement CPU : il ne consomme pas d'heures GPU facturées et sa cellule de coût est vide dans le CSV source par conception — pas zéro, et pas gratuit.
Le coût pour 1 000 pages correspond au temps GPU facturé pour traiter 1 000 pages au tarif horaire enregistré — durée réelle d'exécution × 0,76 $/heure, la durée réelle incluant l'initialisation du modèle. Le classement des coûts de cette page est calculé exactement de cette manière ; le calcul détaillé est présenté dans la section Comment estimer votre propre coût et dans la ligne source de chaque tableau.
La facturation étant horaire, le coût suit le temps, pas la précision : un moteur qui lit une page en 109 ms coûte ~25 fois moins qu'un autre qui la lit en 2 668 ms au même tarif. Le coût de chaque moteur diminue davantage lorsque la taille du lot augmente, car le coût unique d'initialisation du modèle est réparti sur plus de pages — les chiffres ci-dessous reflètent le mode d'exécution du benchmark (partition de test fixe, mesure warm_then_scored) et ne seront pas identiques à ceux de votre propre exécution.
SROIE 2019 : Classement des coûts pour 1 000 pages
Sur 361 reçus en anglais, les moteurs OCR traditionnels à deux étapes se situent du côté économique et les VLM d'analyse de documents du côté coûteux — mais l'écart au sein de chaque famille est ce qui surprend : PaddleOCR-VL, un VLM compact de 0,9 milliard de paramètres, se positionne à 0,2048 $, à 4,3× du moteur le moins cher, tandis que son homologue VLM Surya2 coûte 22,2× le moins cher — un écart de 5,2× au sein du seul cluster VLM.
Source : summary_metrics.csv — colonne cost_per_1000_pages, lignes sroie_2019. docTR 0,0479, EasyOCR 0,1098, PaddleOCR-VL 0,2048, PaddleOCR 0,2214, Unlimited-OCR 0,3879, Docling 0,3978, Surya2 1,0609. Tesseract CPU uniquement : cellule vide dans le CSV (pas d'heures GPU facturées). Coût = durée réelle d'exécution × 0,76 $/h (RunPod RTX 4090, prix horodaté août 2026), init. modèle incluse.
| Rang | Modèle | Type | Coût / 1K pages | Pages/min | Source |
|---|---|---|---|---|---|
| 1 | docTR | OCR traditionnel (GPU) | $0.0479 | 449.3 | summary_metrics.csv · ligne doctr/sroie_2019 |
| 2 | EasyOCR | OCR traditionnel (GPU) | $0.1098 | 124.5 | summary_metrics.csv · ligne easyocr/sroie_2019 |
| 3 | PaddleOCR-VL | VLM d'analyse de documents | $0.2048 | 68.2 | summary_metrics.csv · ligne paddleocr_vl_vllm/sroie_2019 |
| 4 | PaddleOCR | OCR traditionnel (GPU) | $0.2214 | 79.7 | summary_metrics.csv · ligne paddleocr/sroie_2019 |
| 5 | Unlimited-OCR | VLM d'analyse de documents | $0.3879 | 34.4 | summary_metrics.csv · ligne unlimited_ocr/sroie_2019 |
| 6 | Docling | Parseur en pipeline | $0.3978 | 56.7 | summary_metrics.csv · ligne docling/sroie_2019 |
| 7 | Surya2 | VLM d'analyse de documents | $1.0609 | 12.1 | summary_metrics.csv · ligne surya2/sroie_2019 |
| — | Tesseract | OCR traditionnel (CPU) | n/a (CPU uniquement, pas de facturation GPU) | 78.6 | summary_metrics.csv · ligne tesseract/sroie_2019 |
Tableau : summary_metrics.csv — cost_per_1000_pages / pages_per_minute, lignes sroie_2019 (361 échantillons chacune, error_rate 0.0). Exécution GPU à $0.76/hr (RTX 4090, prix horodaté dans les manifests) ; Tesseract exécuté en CPU uniquement (cellule de coût vide par conception — pas d'heures GPU facturées, pas un coût nul). Le coût inclut l'initialisation du modèle, donc le coût par page diminue avec des lots plus grands.
Le coût suit le débit, pas la précision
Classez les moteurs par coût et par précision des caractères, et les deux classements concordent à peine. La meilleure qualité de texte brut sur SROIE appartient à Surya2 (CER 0.1915) — le moteur le plus cher à 1,0609 $ — tandis que la deuxième place revient à docTR (CER 0.1971) — le moins cher à 0,0479 $. Le coût est une facturation du temps : les 12,1 pages/min de Surya2 offrent ~37× moins de débit que les 449,3 pages/min de docTR au même taux horaire.
La corrélation avec le poids de l'architecture est réelle mais lâche. En tant que catégorie, les VLM d'analyse de documents (Surya2, Unlimited-OCR, PaddleOCR-VL) se situent au-dessus des moteurs OCR traditionnels à deux étapes (docTR, EasyOCR, PaddleOCR), avec l'analyseur en pipeline Docling entre les deux. Mais au sein de chaque catégorie, l'écart est large — le groupe VLM s'étend sur 5,2× (0,2048 $ à 1,0609 $) et le groupe traditionnel sur 4,6× (0,0479 $ à 0,2214 $) — et PaddleOCR-VL, le plus petit VLM de l'essai avec 0,9 milliard de paramètres, est à 4,3× du moteur le moins cher tandis que Surya2 est à 22,2×. La conclusion pratique : considérez que « plus précis = plus cher » est faux jusqu'à ce que vous le mesuriez sur vos propres documents ; dans cet essai, la relation entre le classement par coût et le classement par précision est effectivement découplée.
Source : summary_metrics.csv — colonne pages_per_minute, lignes sroie_2019. Pages/min horloge réelle incluant l'initialisation du modèle. Tesseract exécuté en CPU uniquement (78,6 pages/min sur matériel CPU).
| Modèle | Type | CER (plus bas = mieux) | Latence p50 (ms) | Pages/min | Coût / 1K pages | Coût vs docTR | Source |
|---|---|---|---|---|---|---|---|
| docTR | OCR traditionnel | 0.1971 | 108.7 | 449.3 | $0.0479 | 1.00× | summary_metrics.csv · ligne doctr/sroie_2019 |
| EasyOCR | OCR traditionnel | 0.2833 | 413.6 | 124.5 | $0.1098 | 2.29× | summary_metrics.csv · ligne easyocr/sroie_2019 |
| PaddleOCR | OCR traditionnel | 0.2045 | 297.0 | 79.7 | $0.2214 | 4.62× | summary_metrics.csv · ligne paddleocr/sroie_2019 |
| Tesseract | OCR traditionnel (CPU) | 0.3347 | 670.9 | 78.6 | n/a (CPU) | n/a | summary_metrics.csv · ligne tesseract/sroie_2019 |
| PaddleOCR-VL | VLM d'analyse de documents | 0.3370 | 694.3 | 68.2 | $0.2048 | 4.28× | summary_metrics.csv · ligne paddleocr_vl_vllm/sroie_2019 |
| Docling | Analyseur en pipeline | 0.5909 | 732.0 | 56.7 | $0.3978 | 8.31× | summary_metrics.csv · ligne docling/sroie_2019 |
| Unlimited-OCR | VLM d'analyse de documents | 0.6552 | 1,600.7 | 34.4 | $0.3879 | 8.10× | summary_metrics.csv · ligne unlimited_ocr/sroie_2019 |
| Surya2 | VLM d'analyse de documents | 0.1915 | 2,668.0 | 12.1 | $1.0609 | 22.16× | summary_metrics.csv · ligne surya2/sroie_2019 |
Tableau : summary_metrics.csv — cer / latency_p50_ms / pages_per_minute / cost_per_1000_pages, lignes sroie_2019. Les ratios de coût sont calculés par division simple par rapport à la valeur de docTR (0.0479) (par ex., 1.0609 / 0.0479 = 22.16). Le CER de Surya2 doit être interprété avec la réserve de normalisation des cas mentionnée dans la méthodologie (les sorties VLM sont normalisées en casse ; le CER surestime l'erreur des VLM). La latence de Tesseract est sur matériel CPU ; sa cellule de coût est vide par conception (pas de facturation GPU).
La colonne de latence ajoute la perspective de la charge de travail interactive : le coût par volume et la latence par page sont deux vues d'une même réalité en temps réel. Le p50 de docTR’s de 108,7 ms en fait à la fois le moins cher pour 1 000 pages et le seul moteur proche d'une réponse interactive ; le p50 de Surya2’s de 2 668 ms en fait à la fois le plus cher et une charge de travail exclusivement par lots pour les reçus. Les détails de latence sont analysés dans le comparatif des 8 moteurs associé.
CORD (reçus indonésiens) : le coût dépend du jeu de données
Changez l'ensemble de documents et le classement des coûts se réorganise — ce qui prouve que le coût pour 1 000 pages n'est pas une constante du moteur. Sur CORD v2, EasyOCR devient le moteur le moins cher ($0,0863) et docTR descend à la deuxième place ($0,0939), tandis que les extrêmes restent stables : docTR reste vers le bas et Surya2 reste le plus cher ($1,1616). L'écart sur CORD se réduit à 13,5×.
Le mécanisme est le débit sur l'ensemble de documents réel : les reçus indonésiens de CORD sont plus courts et moins denses en texte que les reçus anglais de SROIE, donc le nombre de pages par minute de chaque moteur change, et le coût pour 1 000 pages suit. Les deux jeux de données sont volontairement séparés dans ce benchmark — CORD présente également une inflation de la structure d'annotation dans sa vérité terrain qui rend ses lectures de CER peu fiables (voir méthodologie) — traitez donc les colonnes SROIE et CORD comme deux points de données indépendants, pas un seul classement.
Source : summary_metrics.csv — colonne cost_per_1000_pages, lignes cord_v2. EasyOCR 0,0863, docTR 0,0939, Unlimited-OCR 0,2063, PaddleOCR-VL 0,2409, PaddleOCR 0,3419, Docling 0,5382, Surya2 1,1616. Tesseract CPU uniquement (cellule vide). Même RTX 4090 @ $0,76/heure (prix horodaté), coût incl. init. modèle.
| Rang | Modèle | Type | Coût / 1K pages | Source |
|---|---|---|---|---|
| 1 | EasyOCR | OCR traditionnel (GPU) | $0.0863 | summary_metrics.csv · ligne easyocr/cord_v2 |
| 2 | docTR | OCR traditionnel (GPU) | $0.0939 | summary_metrics.csv · ligne doctr/cord_v2 |
| 3 | Unlimited-OCR | VLM d'analyse de documents | $0.2063 | summary_metrics.csv · ligne unlimited_ocr/cord_v2 |
| 4 | PaddleOCR-VL | VLM d'analyse de documents | $0.2409 | summary_metrics.csv · ligne paddleocr_vl_vllm/cord_v2 |
| 5 | PaddleOCR | OCR traditionnel (GPU) | $0.3419 | summary_metrics.csv · ligne paddleocr/cord_v2 |
| 6 | Docling | Parseur en pipeline | $0.5382 | summary_metrics.csv · ligne docling/cord_v2 |
| 7 | Surya2 | VLM d'analyse de documents | $1.1616 | summary_metrics.csv · ligne surya2/cord_v2 |
| — | Tesseract | OCR traditionnel (CPU) | n/a (CPU uniquement, pas de facturation GPU) | summary_metrics.csv · ligne tesseract/cord_v2 |
Tableau : summary_metrics.csv — cost_per_1000_pages, lignes cord_v2 (100 échantillons chacune). CORD est séparé du classement SROIE (langue différente, structure de vérité terrain différente) ; le but de la comparaison est de montrer que le coût pour 1 000 pages varie avec le jeu de documents, et non qu'un classement « gagne ».
Scénarios de volume mensuel (estimations dérivées)
Les chiffres pour 1 000 pages se multiplient directement dans le calcul de volume dont les rédacteurs de budgets ont besoin. Pour 100 000 pages/mois sur la base de coût SROIE, le temps GPU de docTR est de 4,79 $/mois et celui de Surya2 de 106,09 $/mois — un écart d'environ 101 $/mois qui s'élargit à environ 1 013 $/mois pour 1 million de pages. Il s'agit d'extensions arithmétiques des chiffres mesurés pour 1 000 pages, et non de mesures supplémentaires.
| Volume mensuel | Temps GPU docTR (arithmétique) | Temps GPU Surya2 (arithmétique) | Écart | Base |
|---|---|---|---|---|
| 10 000 pages | 0,48 $ (10 × 0,0479 $) | 10,61 $ (10 × 1,0609 $) | 10,13 $ | summary_metrics.csv cost_per_1000_pages, lignes doctr / surya2 sroie_2019 ; dérivé par simple multiplication — pas une mesure réelle |
| 100 000 pages | 4,79 $ (100 × 0,0479 $) | 106,09 $ (100 × 1,0609 $) | 101,30 $ | |
| 1 000 000 pages | 47,88 $ (1 000 × 0,0479 $) | 1 060,85 $ (1 000 × 1,0609 $) | 1 012,97 $ |
Tableau : Estimations dérivées sur la base de coût SROIE 2019 — pas des mesures réelles. Chaque cellule est une simple multiplication du coût mesuré pour 1 000 pages (docTR 0,0479, Surya2 1,0609 ; summary_metrics.csv lignes sroie_2019) par le volume en milliers, au même tarif de 0,76 $/h pour le RTX 4090, prix daté d'août 2026. Temps GPU uniquement — pas de CPU, stockage, sortie réseau, orchestration ou post-traitement par LLM. Pour 10 millions de pages/mois, Surya2 seul atteint environ 10 609 $/mois sur cette base (10 000 × 1,0609 $).
Le vrai profil de coût de Tesseract : pas de facture GPU, mais pas gratuit
Tesseract est le seul moteur entièrement CPU du benchmark, et sa cellule de coût est vide par conception — il n'a consommé aucune heure GPU facturée, donc il n'y a rien à facturer à 0,76 $/heure. Cela ne signifie pas que son coût est nul : l'infrastructure CPU sur laquelle il tourne (votre propre matériel ou une instance CPU louée) est un coût réel que ce benchmark ne quantifie pas, et son plafond de récupération de champs peut pousser les dépenses en aval.
Sur SROIE, Tesseract a maintenu 78,6 pages/min sur CPU — plus que quatre des sept moteurs GPU (PaddleOCR-VL 68,2, Docling 56,7, Unlimited-OCR 34,4, Surya2 12,1). À faible volume sur une infrastructure CPU déjà provisionnée, cela le rend réellement rentable : aucun location de GPU. Le piège apparaît lorsque les champs, et pas seulement le texte, sont la livraison : la faible qualité de base du texte de Tesseract limite ce qu'un LLM en aval peut récupérer — son F1 de champs LLM sur CORD est de 0,163 avec un CER CORD de 0,9523 (field_method_comparison.csv, ligne tesseract/cord_v2) — donc les économies de GPU peuvent être compensées par des dépenses de post-traitement et de correction ailleurs. Le compromis CPU-vs-GPU fait l'objet du Tesseract vs PaddleOCR dédié ; le plafond du post-processeur est abordé dans Regex vs LLM Field Extraction.
Coût du pipeline ≠ coût du moteur : la frontière du post-processeur LLM
Chaque chiffre de cette page correspond à la facture GPU du moteur OCR et rien de plus. Les pipelines d'extraction en production ajoutent couramment une passe d'extraction de champs par LLM au-dessus du texte OCR — le benchmark en a exécuté une (deepseek-v4-flash) sur les 16 exécutions — et cette passe est un coût API séparé, par token qui n'apparaît dans aucun chiffre de moteur ici.
Le CSV de comparaison enregistre le nombre de tokens pour la passe de post-traitement sur SROIE — par exemple, le texte OCR de docTR a coûté 151 131 tokens d'invite + 25 377 tokens de complétion pour extraire les quatre champs du reçu — et ces nombres de tokens servent de base à l'estimation de la dépense supplémentaire. Cette page ne convertit délibérément pas les tokens en dollars : la tarification des LLM varie selon le fournisseur, le forfait et le modèle, et tout chiffre en dollars deviendrait immédiatement obsolète. Le coût du moteur et le coût du pipeline sont deux lignes du budget ; la ligne LLM est une fonction de la conception de votre invite et du fournisseur, pas du moteur OCR.
| Moteur (source du texte OCR) | Jetons de prompt LLM (SROIE) | Jetons de complétion LLM (SROIE) | Source |
|---|---|---|---|
| Tesseract | 128,285 | 24,561 | field_method_comparison.csv · ligne tesseract/sroie_2019 |
| PaddleOCR | 134,746 | 26,059 | field_method_comparison.csv · ligne paddleocr/sroie_2019 |
| EasyOCR | 138,689 | 25,607 | field_method_comparison.csv · ligne easyocr/sroie_2019 |
| docTR | 151,131 | 25,377 | field_method_comparison.csv · ligne doctr/sroie_2019 |
| Surya2 | 130,262 | 26,372 | field_method_comparison.csv · ligne surya2/sroie_2019 |
| Docling | 157,191 | 26,087 | field_method_comparison.csv · ligne docling/sroie_2019 |
| Unlimited-OCR | 185,705 | 25,876 | field_method_comparison.csv · ligne unlimited_ocr/sroie_2019 |
| PaddleOCR-VL | 148,973 | 26,301 | field_method_comparison.csv · ligne paddleocr_vl_vllm/sroie_2019 |
Tableau : field_method_comparison.csv — llm_prompt_tokens / llm_completion_tokens, lignes sroie_2019 ; llm_model = deepseek-v4-flash. Les comptes de jetons couvrent un passage d'extraction de champs (quatre champs de reçu) sur la partition de test SROIE de 361 pages. Ils servent de base pour estimer les coûts de post-traitement LLM ; aucune conversion en dollars n'est indiquée car la tarification LLM varie selon le fournisseur et le forfait.
Comment estimer votre propre coût
Vous n'avez pas besoin de relancer un benchmark à 8 moteurs pour obtenir une estimation de coût défendable pour votre propre charge de travail. La méthode du benchmark — temps réel × votre taux horaire — se reproduit en quatre étapes et un exemple chiffré.
- Choisissez votre moteur et son débit mesuré. Utilisez la colonne pages par minute comme indicateur pour un type de document similaire (par ex. docTR 449,3 ou Surya2 12,1 pages/min sur SROIE ; lignes sroie_2019 du fichier summary_metrics.csv). Pour votre propre mélange de documents, mesurez votre propre débit sur un petit échantillon — le classement ci-dessus montre que le coût pour 1 000 pages dépend du jeu de données.
- Convertissez le volume en heures réelles.
heures = (initialisation du modèle + N / pages_par_minute) / 60pour N pages. L'initialisation du modèle est payée une seule fois par processus/lot, elle doit donc figurer au numérateur. - Multipliez par votre taux horaire.
coût = heures × taux. Le taux du benchmark était de $0,76/heure (RunPod RTX 4090, prix horodaté août 2026). Exemple chiffré issu du benchmark lui-même : l'exécution docTR sur SROIE a pris 81 867 ms en temps réel pour 361 pages (performance.run_wall_time_msdans son manifeste tronqué) → 0,0227 h × $0,76 = $0,0173 pour l'exécution → × 1 000 / 361 = $0,0479 pour 1 000 pages, correspondant exactement à la ligne du CSV. - Tenez compte de l'amortissement de l'initialisation et de la taille du lot. Les 81 867 ms ci-dessus incluent l'initialisation pour un lot de 361 pages ; pour 1 000 000 de pages, la même initialisation est diluée d'environ 2 770× et le coût par page se rapproche du débit en régime permanent. Les petits lots paient le coût d'initialisation à chaque fois — un lot de 10 pages paie la même initialisation qu'une exécution de 10 000 pages, donc le coût pour 1 000 pages augmente fortement pour les petits lots. Si votre charge de travail est irrégulière, soit vous augmentez la taille des lots, soit vous acceptez une économie pénalisée par l'initialisation.
- Ajoutez les coûts du pipeline sur des lignes séparées. L'extraction de champs par LLM est facturée par token (comptages de tokens dans le CSV de comparaison), le stockage et l'émission de données sont facturés par octet, et les piles CPU uniquement de type Tesseract sont facturées en temps CPU — aucun de ces éléments n'est inclus dans les chiffres pour 1 000 pages de cette page.
Il s'agit d'une méthode approximative dérivée de la base de coût du benchmark lui-même (temps réel × taux, y compris l'initialisation du modèle) ; ce n'est pas un conseil financier et vos chiffres exacts varient selon le matériel, le mélange de documents, les tailles de lots et le taux d'utilisation. Le taux de $0,76/heure est un prix à la demande horodaté d'août 2026 — recalculez avec les tarifs actuels.
Foire aux questions
Combien coûte l'OCR pour 1 000 pages ?
Entre $0,048 (docTR) et $1,061 (Surya2) pour 1 000 pages sur SROIE 2019, mesuré sur un RTX 4090 à $0,76/heure avec un horodatage de prix d'août 2026 (summary_metrics.csv cost_per_1000_pages, lignes sroie_2019). Le coût inclut l'initialisation du modèle, donc le coût par page diminue à mesure que la taille du lot augmente. Sur CORD v2, les mêmes moteurs varient de $0,086 (EasyOCR) à $1,162 (Surya2).
Quel est le moteur OCR open-source le moins cher à exécuter ?
docTR était le moteur GPU le moins cher mesuré à $0,0479 pour 1 000 pages sur SROIE (449,3 pages/min, summary_metrics.csv ligne doctr/sroie_2019) — et la réserve sur la dépendance au jeu de données est importante : sur CORD v2, EasyOCR ($0,0863) a devancé docTR ($0,0939). La réponse à « le moins cher » dépend de votre ensemble de documents ; les points d'ancrage (docTR en bas, Surya2 en haut) se sont maintenus sur les deux jeux.
Pourquoi le moteur le plus rapide est-il aussi le moins cher ?
Parce que la facturation est basée sur les heures réelles à $0,76/heure : le moteur qui termine une page en 109 ms (docTR) paie ~1/25 des heures que paie un moteur de 2 668 ms (Surya2) par page (summary_metrics.csv latency_p50_ms / cost_per_1000_pages, lignes sroie_2019). Dans un système de facturation GPU à l'usage, le débit est le coût — c'est pourquoi le classement par coût et le classement par débit sont presque des images miroir.
Tesseract OCR est-il gratuit ?
Non — Tesseract est uniquement CPU, il ne consomme donc pas d'heures GPU facturées et sa cellule de coût est vide dans le CSV de référence par conception, mais ce n'est pas un zéro : l'infrastructure CPU sur laquelle il tourne est un coût réel, et son plafond de récupération de champs (CORD LLM field F1 0,163, ligne tesseract/cord_v2 du fichier field_method_comparison.csv) peut entraîner des dépenses en post-traitement en aval. À faible volume sur du matériel CPU déjà provisionné, il peut être réellement rentable — 78,6 pages/min sur SROIE, plus rapide que quatre des sept moteurs GPU — mais « pas de facture GPU » et « gratuit » sont deux affirmations différentes.
Pourquoi Surya2 est-il si cher pour 1 000 pages ?
Parce que c'est le moteur le plus lent du benchmark : 12,1 pages/min sur SROIE signifie le plus grand nombre d'heures réelles pour 1 000 pages au même tarif de $0,76/heure (summary_metrics.csv pages_per_minute / cost_per_1000_pages, ligne surya2/sroie_2019). Il a également la meilleure précision au caractère (CER 0,1915) — l'exemple le plus clair du benchmark montrant que le coût suit le temps, pas la précision.
Le coût OCR par page diminue-t-il avec le volume ?
Oui, jusqu'à un plancher. Le coût inclut l'initialisation du modèle, payée une fois par processus/lots ; le run docTR du benchmark a payé l'init en 81 867 ms pour 361 pages (manifest performance.run_wall_time_ms), donc pour 1 million de pages cette init est diluée à presque zéro et le coût se rapproche du débit en régime permanent. Le plancher est le coût en régime permanent lui-même — les $0,0479/1K de docTR sur SROIE sont déjà proches de ce plancher ; les $1,0609 de Surya2 reflètent une inférence en régime permanent réellement lente, pas seulement le surcoût d'init.
Qu'est-ce qui n'est pas inclus dans ces chiffres pour 1 000 pages ?
Le post-traitement LLM (coût API séparé par token ; nombre de tokens dans field_method_comparison.csv), le CPU/infrastructure pour les piles de type Tesseract, le stockage et l'égress, l'orchestration, les écarts d'utilisation GPU et les services OCR cloud/API — rien de tout cela n'est inclus dans la facture GPU des moteurs que représentent ces chiffres. Les API cloud facturent également par appel avec un tarif dépendant des fonctionnalités, un modèle de coût différent du temps réel GPU loué ; elles ne sont pas évaluées sur cette page.
D'où viennent ces chiffres ?
Chaque chiffre est une ligne des CSV publiés du benchmark interne — results/summary_metrics.csv (coût pour 1 000 pages, débit, latence, précision) et results/field_method_comparison.csv (tokens du post-processeur LLM et F1 par champ) — hébergés sur ImageToTableai/benchmark-ocr, avec un manifest.json par run (un champ masqué) enregistrant le tarif de $0,76/heure, l'horodatage du prix d'août 2026, les versions des modèles et les empreintes de l'environnement.
Méthodologie & Sources
Protocole
Cette page présente la dimension coût d'un benchmark indépendant et reproductible (niveau officiel) — pas une enquête sur les affirmations de tiers. Uniquement des partitions 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 partitions d'entraînement n'ont jamais été évaluées. Chaque paire (moteur × jeu de données) a réutilisé 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 noté). Les 16 exécutions se sont toutes terminées avec un error_rate de 0,0 (colonne error_rate du fichier summary_metrics.csv).
Environnement d'exécution et base de coût
- Matériel : toutes les exécutions GPU sur un NVIDIA RTX 4090 (24 Go) ; coût GPU calculé au tarif à la demande de RunPod de $0,76/heure, avec l'horodatage du prix (
price_recorded_at_utc 2026-08-13T08:00:00Z) enregistré dans le manifeste édité de chaque exécution. Tesseract a fonctionné uniquement en CPU et n'a pas de coût GPU (cellule de coût vide dans le CSV — par conception, pas un zéro). - Formule de coût : coût pour 1 000 pages = temps d'exécution réel × $0,76/heure × (1 000 / pages traitées), y compris l'initialisation du modèle. Vérifié par l'exemple docTR détaillé dans la section Comment estimer (81 867 ms → $0,0479/1K).
- Moteurs : tous les modèles exécutés tels quels, sans affinage. Versions verrouillées selon les manifestes d'exécution (Tesseract 5.3.4, PaddleOCR 3.7.0, EasyOCR 1.7.2, docTR v1.0.1, Docling 2.119.0, Surya2 0,22.1, Unlimited-OCR via vLLM, PaddleOCR-VL 1.6).
- Post-traitement LLM : deepseek-v4-flash via API à température 0 (colonne llm_model dans field_method_comparison.csv) ; ses comptes de tokens sont rapportés comme base pour un coût de pipeline séparé — les chiffres de coût du moteur OCR ne l'incluent jamais.
- Post-traitement des champs : les métriques de champs SROIE sont les variantes
postprocessed_sroie_receipt_regex_*/ LLM — champs extraits du texte OCR, pas de la sortie structurée native. - Avertissement CORD : le texte vérité terrain de CORD intègre la structure d'annotation, ce qui gonfle le CER brut pour chaque moteur ; les lignes CORD sont donc séparées des classements SROIE. Les chiffres de coût (basés sur le temps réel) ne sont pas affectés par l'avertissement CER, mais les deux jeux de données restent limités aux reçus.
Définitions des métriques
- Coût pour 1 000 pages : heures GPU facturées pour 1 000 pages au tarif enregistré de 0,76 $/h, temps réel incluant l'initialisation du modèle. Vide pour Tesseract (CPU uniquement).
- Pages par minute : débit temps réel incluant l'initialisation du modèle.
- Latence p50/p95 : temps d'inférence par page à l'état stable (après chauffe, hors chargement du modèle).
- CER/WER : distance d'édition (insertions + suppressions + substitutions) sur les caractères/mots de référence. Sensible à la casse et aux conventions de formatage — les sorties VLM sont normalisées en casse, donc le CER surestime l'erreur VLM (voir la page de synthèse).
- F1 sur les valeurs de champ : moyenne harmonique précision/rappel sur les valeurs de champ extraites, par postprocesseur (regex ou LLM).
Liste des sources
- summary_metrics.csv (GitHub raw). 16 lignes = 8 moteurs × 2 jeux de données de reçus (sroie_2019, cord_v2). 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. Tous les chiffres de coût, débit, latence et CER de cette page proviennent d'une ligne ici.
- field_method_comparison.csv (GitHub raw). 16 lignes ; colonnes model, dataset, llm_model (= deepseek-v4-flash), précision et F1 sur les valeurs de champ regex/LLM, document-fields-exact, llm_median_latency_ms, llm_prompt_tokens, llm_completion_tokens. Tous les comptages de tokens et chiffres F1 sur les champs LLM proviennent d'une ligne ici.
- 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 reproduction.
- results/manifests/ (GitHub). Un manifest.json caviardé par exécution publiée (16 exécutions) avec l'empreinte environnementale, les versions des modèles, les métadonnées de coût (
gpu_hourly_usd,price_recorded_at_utc), le temps réel et les hachages des artefacts. - 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).
- 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).
Limitations
- Niveau GPU unique et horodatage de prix unique : toutes les données GPU proviennent d'un seul RTX 4090 à $0.76/heure, prix enregistré en août 2026. Les prix spot/à la demande des GPU changent — recalculer aux taux actuels ; d'autres GPU, le service multi-GPU et l'ordonnancement par lots modifient le débit et le coût.
- Reçus uniquement : reçus SROIE (anglais) et CORD (indonésien). Le coût, le débit et la précision sur des factures, formulaires, contrats ou documents longs ne sont pas mesurés ; les classements ci-dessus ne sont pas généralisables au-delà des reçus.
- Le coût inclut l'initialisation du modèle — dépendant de la taille du lot : les chiffres reflètent le schéma d'exécution du benchmark (découpages fixes de 361/100 pages, chauffage puis évaluation). Les lots plus petits paient l'initialisation plusieurs fois et coûtent plus cher pour 1 000 pages ; les lots plus grands se rapprochent du plancher en régime permanent.
- Asymétrie CPU/GPU : Tesseract (CPU) est comparé à des moteurs accélérés par GPU. Son avantage de coût reflète l'absence de facturation GPU, et non un coût nul — l'infrastructure CPU, l'énergie et le temps du personnel ne sont pas quantifiés, et son plafond de récupération sur le terrain (CORD LLM field F1 0.163) peut transférer les dépenses vers le post-traitement.
- Pas de modèles cloud/API : AWS Textract, Google Document AI, Azure AI Document Intelligence et les API OCR/VLM hébergées ne sont pas incluses ; leur tarification à l'appel et à l'unité de fonctionnalité diffère fondamentalement de la facturation au temps réel sur GPU loué et aucune comparaison n'est implicite.
- Utilisation et temps d'inactivité non modélisés : les chiffres supposent que le GPU est facturé pour le temps réel de l'exécution et est sinon inutilisé ; les déploiements réels avec des GPU inactifs, multi-tenants ou sous-utilisés ont des coûts effectifs différents.
- Le coût du post-traitement LLM n'est pas converti en dollars : les comptes de tokens (field_method_comparison.csv) en sont la base ; la tarification LLM varie selon le fournisseur et le forfait et est volontairement laissée au lecteur.
- Les scénarios dérivés ne sont pas mesurés : le tableau des volumes mensuels est un calcul arithmétique simple sur la base de coût SROIE, étiqueté comme estimations dérivées — pas des exécutions de benchmark supplémentaires.
- Taille de l'échantillon et verrouillage des versions : 361 + 100 échantillons ; les résultats sont valables pour les versions de modèles d'août 2026 listées ci-dessus. De nouvelles versions de moteurs peuvent modifier le coût/débit ; les différences de quelques pourcents doivent être traitées comme du bruit.
Références associées : OCR traditionnel vs VLM d'analyse de documents · docTR vs Surya2 : CER égal, écart de coût · Tesseract vs PaddleOCR : profil de coût CPU · Regex vs extraction de champs par LLM · Ventilation des coûts de traitement de documents
Lectures associées : Tarification de l'extraction de documents par IA (2026) · Précision de l'IA OCR vs OCR traditionnel · Extraction de données d'images par IA vs OCR traditionnel