Custo de OCR por 1.000 Páginas
8 Motores Open-Source, Benchmarkado (2026)
Última revisão: 2026-08-18 · Nível de execução: oficial · Benchmark de primeira parte · 8 motores × 2 conjuntos de dados de recibos
O que esta página NÃO aborda: Qualquer tipo de documento diferente de recibos — sem faturas, formulários, contratos ou documentos longos. Serviços de OCR em nuvem/API (AWS, Google, Azure e seus preços por chamada), modelos ajustados, aquisição/amortização de GPU (comprar hardware diretamente vs. alugar por hora), armazenamento e tráfego de saída, e o custo em dólares da extração de campos por LLM (apenas contagem de tokens) estão fora do escopo. O resumo completo de precisão/latência dos 8 motores está em OCR Tradicional vs. VLMs de Análise de Documentos.
Aviso de faixa: todos os valores em dólares nesta página são para uma camada de GPU (RTX 4090) em um único registro de preço (agosto de 2026, $0.76/hora, registrado nos manifests de execução como price_recorded_at_utc 2026-08-13T08:00:00Z). Recalcula com as taxas atuais antes de orçar. Apenas conjuntos de dados de recibos (SROIE 2019, CORD v2). Custo = tempo de execução real × a taxa por hora, incluindo inicialização do modelo.
Na mesma GPU, os mesmos recibos e a mesma base de cobrança de $0.76/hora, o custo de OCR por 1.000 páginas entre 8 motores open-source varia 22,2× — de $0,0479 (docTR) a $1,0609 (Surya2) no SROIE 2019. A escolha do motor por si só altera o custo do OCR open-source em mais de uma ordem de magnitude, e o ranking segue o tempo real, não a precisão: o motor mais barato (docTR) tem a segunda melhor taxa de erro de caracteres, enquanto o mais caro (Surya2) tem a melhor.
Os dois números que os escritores mais precisam: $0,048 por 1.000 páginas para o motor mais barato medido (docTR, 449,3 páginas/min) vs $1,061 por 1.000 páginas para o mais caro (Surya2, 12,1 páginas/min) — mesmo split de teste, mesma camada de GPU, mesmo registro de preço. O Tesseract é apenas CPU: ele não consome horas de GPU cobradas e sua célula de custo está vazia no CSV de origem por design — não zero, e não gratuito.
O custo por 1.000 páginas é o tempo de GPU cobrado para processar 1.000 páginas na taxa horária registrada — tempo de execução real × $0,76/hora, onde o tempo real inclui a inicialização do modelo. Toda a classificação de custo desta página é calculada exatamente dessa maneira; o cálculo detalhado é mostrado na seção Como Estimar Seu Próprio Custo e na linha de origem de cada tabela.
Como a cobrança é feita por hora, o custo acompanha o tempo, não a precisão: um motor que lê uma página em 109 ms custa ~25× menos do que um que a lê em 2.668 ms na mesma taxa. O custo de cada motor diminui ainda mais à medida que o tamanho do lote aumenta, pois o custo único de inicialização do modelo é diluído em mais páginas — os valores $ abaixo refletem o padrão de execução do benchmark (divisão de teste fixa, medição warm_then_scored) e não serão iguais ao custo da sua própria execução.
SROIE 2019: Classificação de Custo por 1.000 Páginas
Em 361 recibos em inglês, os motores OCR tradicionais de duas etapas ocupam a extremidade barata e os VLMs de análise de documentos a extremidade cara — mas a dispersão dentro de cada família é o que surpreende: PaddleOCR-VL, um VLM compacto de 0,9B, chega a $0,2048, dentro de 4,3× do motor mais barato, enquanto seu irmão VLM Surya2 custa 22,2× o mais barato — uma dispersão de 5,2× apenas dentro do cluster VLM.
Fonte: summary_metrics.csv — coluna cost_per_1000_pages, linhas 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 apenas CPU: célula vazia no CSV (sem horas de GPU cobradas). Custo = tempo de execução real × $0,76/hr (RunPod RTX 4090, preço com data de agosto de 2026), incluindo inicialização do modelo.
| Posição | Modelo | Tipo | Custo / 1K páginas | Páginas/min | Fonte |
|---|---|---|---|---|---|
| 1 | docTR | OCR Tradicional (GPU) | $0.0479 | 449.3 | summary_metrics.csv · linha doctr/sroie_2019 |
| 2 | EasyOCR | OCR Tradicional (GPU) | $0.1098 | 124.5 | summary_metrics.csv · linha easyocr/sroie_2019 |
| 3 | PaddleOCR-VL | VLM de Análise de Documentos | $0.2048 | 68.2 | summary_metrics.csv · linha paddleocr_vl_vllm/sroie_2019 |
| 4 | PaddleOCR | OCR Tradicional (GPU) | $0.2214 | 79.7 | summary_metrics.csv · linha paddleocr/sroie_2019 |
| 5 | Unlimited-OCR | VLM de Análise de Documentos | $0.3879 | 34.4 | summary_metrics.csv · linha unlimited_ocr/sroie_2019 |
| 6 | Docling | Parser de Pipeline | $0.3978 | 56.7 | summary_metrics.csv · linha docling/sroie_2019 |
| 7 | Surya2 | VLM de Análise de Documentos | $1.0609 | 12.1 | summary_metrics.csv · linha surya2/sroie_2019 |
| — | Tesseract | OCR Tradicional (CPU) | n/a (somente CPU, sem cobrança de GPU) | 78.6 | summary_metrics.csv · linha tesseract/sroie_2019 |
Tabela: summary_metrics.csv — cost_per_1000_pages / pages_per_minute, linhas sroie_2019 (361 amostras cada, error_rate 0.0). Execuções em GPU a $0,76/hora (RTX 4090, preço com timestamp nos manifests); Tesseract executou apenas em CPU (célula de custo vazia por design — sem horas de GPU cobradas, não um custo zero). O custo inclui a inicialização do modelo, então o custo por página diminui com lotes maiores.
Custo Segue o Rendimento, Não a Precisão
Classifique os motores por custo e por precisão de caracteres e os dois rankings mal concordam. A melhor qualidade de texto bruto no SROIE pertence ao Surya2 (CER 0.1915) — o motor mais caro a $1.0609 — enquanto a segunda melhor pertence ao docTR (CER 0.1971) — o mais barato a $0.0479. O custo é uma fatura pelo tempo: as 12,1 páginas/min do Surya2 compram ~37× menos rendimento do que as 449,3 páginas/min do docTR na mesma taxa horária.
A correlação peso-arquitetura é real, mas frouxa. Como classe, os VLMs de análise de documentos (Surya2, Unlimited-OCR, PaddleOCR-VL) ficam acima dos motores OCR tradicionais de duas etapas (docTR, EasyOCR, PaddleOCR), com o analisador de pipeline Docling entre eles. Mas dentro de cada classe a dispersão é ampla — o cluster VLM abrange 5,2× ($0,2048 a $1,0609) e o cluster tradicional abrange 4,6× ($0,0479 a $0,2214) — e o PaddleOCR-VL, o menor VLM do teste com 0,9B parâmetros, está dentro de 4,3× do motor mais barato, enquanto o Surya2 está a 22,2×. A conclusão prática: assuma que "mais preciso = mais caro" é falso até que você meça em seus próprios documentos; neste benchmark, a relação entre ranking de custo e ranking de precisão está efetivamente desacoplada.
Fonte: summary_metrics.csv — coluna pages_per_minute, linhas sroie_2019. Páginas/min em tempo real incluindo inicialização do modelo. Tesseract rodou apenas em CPU (78,6 páginas/min em hardware de CPU).
| Modelo | Tipo | CER (menor = melhor) | Latência p50 (ms) | Páginas/min | Custo / 1K páginas | Custo vs docTR | Fonte |
|---|---|---|---|---|---|---|---|
| docTR | OCR Tradicional | 0.1971 | 108.7 | 449.3 | $0.0479 | 1.00× | summary_metrics.csv · linha doctr/sroie_2019 |
| EasyOCR | OCR Tradicional | 0.2833 | 413.6 | 124.5 | $0.1098 | 2.29× | summary_metrics.csv · linha easyocr/sroie_2019 |
| PaddleOCR | OCR Tradicional | 0.2045 | 297.0 | 79.7 | $0.2214 | 4.62× | summary_metrics.csv · linha paddleocr/sroie_2019 |
| Tesseract | OCR Tradicional (CPU) | 0.3347 | 670.9 | 78.6 | n/a (CPU) | n/a | summary_metrics.csv · linha tesseract/sroie_2019 |
| PaddleOCR-VL | VLM de Análise de Documentos | 0.3370 | 694.3 | 68.2 | $0.2048 | 4.28× | summary_metrics.csv · linha paddleocr_vl_vllm/sroie_2019 |
| Docling | Parser de Pipeline | 0.5909 | 732.0 | 56.7 | $0.3978 | 8.31× | summary_metrics.csv · linha docling/sroie_2019 |
| Unlimited-OCR | VLM de Análise de Documentos | 0.6552 | 1,600.7 | 34.4 | $0.3879 | 8.10× | summary_metrics.csv · linha unlimited_ocr/sroie_2019 |
| Surya2 | VLM de Análise de Documentos | 0.1915 | 2,668.0 | 12.1 | $1.0609 | 22.16× | summary_metrics.csv · linha surya2/sroie_2019 |
Tabela: summary_metrics.csv — cer / latency_p50_ms / pages_per_minute / cost_per_1000_pages, linhas sroie_2019. As razões de custo são calculadas por divisão simples em relação ao valor de 0.0479 do docTR (ex.: 1.0609 / 0.0479 = 22.16). O CER para o Surya2 deve ser lido com a ressalva de normalização de maiúsculas/minúsculas na metodologia (as saídas do VLM são normalizadas; o CER superestima o erro do VLM). A latência do Tesseract é em hardware CPU; sua célula de custo está vazia por design (sem faturamento de GPU).
A coluna de latência adiciona a perspectiva de carga de trabalho interativa: custo por volume e latência por página são duas visões do mesmo fato de tempo real. O p50 do docTR de 108,7 ms o torna tanto o mais barato por 1.000 páginas quanto o único motor perto de uma resposta interativa; o p50 de 2.668 ms do Surya2 o torna tanto o mais caro quanto uma carga de trabalho exclusivamente em lote para recibos. Os detalhes de latência são analisados no comparativo de 8 motores complementar.
CORD (Recibos Indonésios): O Custo Depende do Conjunto de Dados
Troque o conjunto de documentos e a classificação de custo se altera — o que prova que o custo por 1.000 páginas não é uma constante do motor. No CORD v2, o EasyOCR se torna o motor mais barato ($0,0863) e o docTR cai para segundo ($0,0939), enquanto as âncoras se mantêm nas extremidades: o docTR continua perto do final e o Surya2 continua sendo o mais caro ($1,1616). A faixa do CORD se reduz para 13,5×.
O mecanismo é o throughput no conjunto de documentos real: os recibos indonésios do CORD são mais curtos e menos densos em texto do que os ingleses do SROIE, então as páginas por minuto de cada motor mudam, e o custo por 1.000 páginas segue essa tendência. Os dois conjuntos de dados são mantidos separados de propósito neste benchmark — o CORD também possui uma inflação na estrutura de anotação em sua verdade de referência que torna suas leituras de CER não confiáveis (veja metodologia) — então trate as colunas do SROIE e do CORD como dois pontos de dados independentes, não como uma única classificação.
Fonte: summary_metrics.csv — coluna cost_per_1000_pages, linhas 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 apenas CPU (célula vazia). Mesma RTX 4090 @ $0,76/hora (preço com data), custo incl. inicialização do modelo.
| Posição | Modelo | Tipo | Custo / 1K páginas | Fonte |
|---|---|---|---|---|
| 1 | EasyOCR | OCR Tradicional (GPU) | $0.0863 | summary_metrics.csv · linha easyocr/cord_v2 |
| 2 | docTR | OCR Tradicional (GPU) | $0.0939 | summary_metrics.csv · linha doctr/cord_v2 |
| 3 | Unlimited-OCR | VLM de Análise de Documentos | $0.2063 | summary_metrics.csv · linha unlimited_ocr/cord_v2 |
| 4 | PaddleOCR-VL | VLM de Análise de Documentos | $0.2409 | summary_metrics.csv · linha paddleocr_vl_vllm/cord_v2 |
| 5 | PaddleOCR | OCR Tradicional (GPU) | $0.3419 | summary_metrics.csv · linha paddleocr/cord_v2 |
| 6 | Docling | Parser de Pipeline | $0.5382 | summary_metrics.csv · linha docling/cord_v2 |
| 7 | Surya2 | VLM de Análise de Documentos | $1.1616 | summary_metrics.csv · linha surya2/cord_v2 |
| — | Tesseract | OCR Tradicional (CPU) | n/a (somente CPU, sem cobrança de GPU) | summary_metrics.csv · linha tesseract/cord_v2 |
Tabela: summary_metrics.csv — cost_per_1000_pages, linhas cord_v2 (100 amostras cada). CORD é mantido separado do ranking SROIE (idioma diferente, estrutura de verdade fundamental diferente); o objetivo da comparação é que o custo por 1.000 páginas varia com o conjunto de documentos, não que um ranking "vença".
Cenários de Volume Mensal (Estimativas Derivadas)
Os valores por 1.000 páginas multiplicam diretamente o cálculo de volume necessário para os responsáveis pelo orçamento. Com 100.000 páginas/mês na base de custo SROIE, o tempo de GPU do docTR é de $4,79/mês e o do Surya2 é de $106,09/mês — uma diferença de aproximadamente $101/mês que se amplia para cerca de $1.013/mês em 1 milhão de páginas. Estas são extensões aritméticas dos valores medidos por 1.000 páginas, não execuções adicionais.
| Volume mensal | Tempo de GPU docTR (aritmético) | Tempo de GPU Surya2 (aritmético) | Diferença | Base |
|---|---|---|---|---|
| 10.000 páginas | $0,48 (10 × $0,0479) | $10,61 (10 × $1,0609) | $10,13 | summary_metrics.csv cost_per_1000_pages, linhas doctr / surya2 sroie_2019; derivado por simples multiplicação — não é uma execução medida |
| 100.000 páginas | $4,79 (100 × $0,0479) | $106,09 (100 × $1,0609) | $101,30 | |
| 1.000.000 páginas | $47,88 (1.000 × $0,0479) | $1.060,85 (1.000 × $1,0609) | $1.012,97 |
Tabela: Estimativas derivadas na base de custo SROIE 2019 — não são execuções medidas. Cada célula é uma simples multiplicação do cost_per_1000_pages medido (docTR 0,0479, Surya2 1,0609; linhas sroie_2019 do summary_metrics.csv) pelo volume em milhares, na mesma taxa de $0,76/hora para RTX 4090, preço com data de agosto de 2026. Apenas tempo de GPU — sem CPU, armazenamento, egress, orquestração ou pós-processamento por LLM. Em 10 milhões de páginas/mês, o Surya2 sozinho atinge cerca de $10.609/mês nesta base (10.000 × $1,0609).
O Perfil de Custo Real do Tesseract: Sem Conta de GPU, Mas Não é Gratuito
Tesseract é o único motor apenas para CPU no benchmark, e sua célula de custo está vazia por design — ele não consumiu horas de GPU faturadas, então não há nada para cobrar a $0.76/hr. Isso não é o mesmo que custar nada: a infraestrutura de CPU em que ele roda (seu próprio hardware ou uma instância de CPU alugada) é um custo real que este benchmark não quantifica, e seu teto de recuperação de campos pode empurrar gastos para o fluxo posterior.
No SROIE, Tesseract ainda sustentou 78.6 páginas/min em CPU — mais alto que quatro dos sete motores para GPU (PaddleOCR-VL 68.2, Docling 56.7, Unlimited-OCR 34.4, Surya2 12.1). Em baixo volume em infraestrutura de CPU já provisionada, isso o torna genuinamente custo-eficiente: sem aluguel de GPU. O problema aparece quando campos, e não apenas texto, são o entregável: o texto base fraco do Tesseract limita o que um LLM downstream pode recuperar — seu F1 de campos LLM no CORD é 0.163 com um CER do CORD de 0.9523 (field_method_comparison.csv, linha tesseract/cord_v2) — então as economias de GPU podem ser compensadas por gastos de pós-processamento e correção em outro lugar. A troca CPU-vs-GPU é o assunto da comparação direta dedicada Tesseract vs PaddleOCR; o teto do pós-processador é abordado em Regex vs Extração de Campos com LLM.
Custo do Pipeline ≠ Custo do Motor: O Limite do Pós-processador LLM
Cada número nesta página é a conta de GPU do motor de OCR e nada mais. Pipelines de extração em produção comumente adicionam uma etapa de extração de campos por LLM sobre o texto do OCR — o benchmark executou uma (deepseek-v4-flash) em todas as 16 execuções — e essa etapa é um custo de API separado, por token que não aparece em nenhuma cifra de motor aqui.
O CSV de comparação registra as contagens de tokens para a etapa de pós-processamento no SROIE — por exemplo, o texto OCR do docTR custou 151.131 tokens de prompt + 25.377 tokens de conclusão para extrair os quatro campos do recibo — e essas contagens de tokens são a base para estimar o gasto adicional. Esta página deliberadamente não converte tokens em dólares: o preço de LLM varia por provedor, plano e modelo, e qualquer cifra em dólares ficaria obsoleta imediatamente. Custo do motor e custo do pipeline são duas linhas no orçamento; a linha do LLM é uma função do seu design de prompt e provedor, não do motor de OCR.
| Mecanismo (fonte do texto OCR) | Tokens de prompt do LLM (SROIE) | Tokens de conclusão do LLM (SROIE) | Fonte |
|---|---|---|---|
| Tesseract | 128,285 | 24,561 | field_method_comparison.csv · linha tesseract/sroie_2019 |
| PaddleOCR | 134,746 | 26,059 | field_method_comparison.csv · linha paddleocr/sroie_2019 |
| EasyOCR | 138,689 | 25,607 | field_method_comparison.csv · linha easyocr/sroie_2019 |
| docTR | 151,131 | 25,377 | field_method_comparison.csv · linha doctr/sroie_2019 |
| Surya2 | 130,262 | 26,372 | field_method_comparison.csv · linha surya2/sroie_2019 |
| Docling | 157,191 | 26,087 | field_method_comparison.csv · linha docling/sroie_2019 |
| Unlimited-OCR | 185,705 | 25,876 | field_method_comparison.csv · linha unlimited_ocr/sroie_2019 |
| PaddleOCR-VL | 148,973 | 26,301 | field_method_comparison.csv · linha paddleocr_vl_vllm/sroie_2019 |
Tabela: field_method_comparison.csv — llm_prompt_tokens / llm_completion_tokens, linhas sroie_2019; llm_model = deepseek-v4-flash. As contagens de tokens cobrem uma passagem de extração de campos (quatro campos de recibo) sobre a divisão de teste SROIE de 361 páginas. Estes são a base para estimar o gasto de pós-processamento do LLM; nenhuma conversão em dólar é fornecida porque a precificação do LLM varia por provedor e plano.
Como Estimar Seu Próprio Custo
Você não precisa re-executar um benchmark de 8 motores para obter uma estimativa de custo defensável para sua própria carga de trabalho. O método do benchmark — tempo de relógio × sua taxa horária — é reproduzido em quatro etapas e um exemplo prático.
- Escolha seu motor e sua taxa de processamento medida. Use a coluna de páginas por minuto como um proxy para um mesmo tipo de documento (por exemplo, docTR 449,3 ou Surya2 12,1 páginas/min no SROIE; linhas sroie_2019 do summary_metrics.csv). Para sua própria mistura de documentos, meça sua própria taxa de processamento em uma pequena amostra — a classificação acima mostra que o custo por 1.000 páginas depende do conjunto de dados.
- Converta o volume para horas de relógio.
hours = (model init + N / pages_per_minute) / 60para N páginas. A inicialização do modelo é paga uma vez por processo/lote, portanto deve aparecer no numerador. - Multiplicar pela sua taxa horária.
cost = hours × rate. A taxa do benchmark era de $0,76/hora (RunPod RTX 4090, preço com data de agosto de 2026). Exemplo prático do próprio benchmark: a execução do docTR no SROIE levou 81.867 ms de tempo de relógio para 361 páginas (performance.run_wall_time_msem seu manifesto censurado) → 0,0227 hr × $0,76 = $0,0173 para a execução → × 1.000 / 361 = $0,0479 por 1.000 páginas, correspondendo exatamente à linha do CSV. - Considere a amortização da inicialização e o tamanho do lote. Os 81.867 ms acima incluem a inicialização para um lote de 361 páginas; para 1.000.000 de páginas, a mesma inicialização é diluída ~2.770× e o custo por página se aproxima da taxa de processamento pura em regime permanente. Lotes pequenos pagam o custo de inicialização repetidamente — um lote de 10 páginas paga a mesma inicialização que uma execução de 10.000 páginas, então o custo por 1.000 páginas aumenta drasticamente em tamanhos de lote pequenos. Se sua carga de trabalho for intermitente, aumente o tamanho dos lotes ou aceite a economia com alta inicialização.
- Adicione os custos do pipeline em linhas separadas. A extração de campos por LLM cobra por token (contagens de tokens no CSV de comparação), armazenamento e transferência cobram por byte, e stacks exclusivas de CPU como o Tesseract cobram pelo tempo de CPU — nenhum desses está incluído nas cifras por 1.000 páginas nesta página.
Este é um método de estimativa rápida derivado da própria base de custos do benchmark (tempo de relógio × taxa, incl. inicialização do modelo); não é aconselhamento financeiro e seus números exatos variam com hardware, mistura de documentos, tamanhos de lotes e utilização. A taxa de $0,76/hora é um preço sob demanda com data de agosto de 2026 — recalcule com as taxas atuais.
Perguntas Frequentes
Quanto custa o OCR por 1.000 páginas?
Entre $0,048 (docTR) e $1,061 (Surya2) por 1.000 páginas no SROIE 2019, medido em uma RTX 4090 a $0,76/hora com preço datado de agosto de 2026 (summary_metrics.csv cost_per_1000_pages, linhas sroie_2019). O custo inclui a inicialização do modelo, então o custo por página diminui à medida que o tamanho do lote aumenta. No CORD v2, os mesmos motores variam de $0,086 (EasyOCR) a $1,162 (Surya2).
Qual é o motor OCR de código aberto mais barato para executar?
docTR foi o motor GPU mais barato medido, a $0,0479 por 1.000 páginas no SROIE (449,3 páginas/min, summary_metrics.csv linha doctr/sroie_2019) — e a ressalva sobre dependência do conjunto de dados é importante: no CORD v2, o EasyOCR ($0,0863) superou levemente o docTR ($0,0939). A resposta para "mais barato" depende do seu conjunto de documentos; as âncoras (docTR próximo ao baixo, Surya2 alto) se mantiveram em ambos.
Por que o motor mais rápido também é o mais barato?
Porque a cobrança é por horas de relógio a $0,76/hora: o motor que termina uma página em 109 ms (docTR) paga ~1/25 das horas que um motor de 2.668 ms (Surya2) paga por página (summary_metrics.csv latency_p50_ms / cost_per_1000_pages, linhas sroie_2019). Em cobrança de GPU por uso, throughput é custo — por isso o ranking de custo e o ranking de throughput são quase imagens espelhadas.
O Tesseract OCR é gratuito?
Não — o Tesseract é apenas para CPU, então não consome horas de GPU cobradas e sua célula de custo está vazia no benchmark CSV por design, mas isso não é zero: a infraestrutura de CPU em que ele roda é um custo real, e seu teto de recuperação de campos (CORD LLM field F1 0,163, field_method_comparison.csv linha tesseract/cord_v2) pode empurrar gastos para pós-processamento downstream. Em baixo volume em hardware de CPU já provisionado, ele pode ser genuinamente custo-eficiente — 78,6 páginas/min no SROIE, mais rápido que quatro dos sete motores GPU — mas "sem conta de GPU" e "gratuito" são afirmações diferentes.
Por que o Surya2 é tão caro por 1.000 páginas?
Porque é o motor mais lento no benchmark: 12,1 páginas/min no SROIE significa as maiores horas de relógio por 1.000 páginas na mesma taxa de $0,76/hora (summary_metrics.csv pages_per_minute / cost_per_1000_pages, linha surya2/sroie_2019). Notavelmente, também tem a melhor precisão de caracteres (CER 0,1915) — o exemplo mais claro do benchmark de que o custo segue o tempo, não a precisão.
O custo de OCR por página diminui à medida que o volume cresce?
Sim, até um piso. O custo aqui inclui a inicialização do modelo, que é paga uma vez por processo/lote; a execução do docTR no benchmark pagou a inicialização dentro de 81.867 ms para 361 páginas (manifest performance.run_wall_time_ms), então para 1 milhão de páginas essa inicialização é diluída a quase zero e o custo se aproxima do throughput em regime permanente. O piso é o custo em regime permanente em si — os $0,0479/1K do docTR no SROIE já estão perto do seu piso; os $1,0609 do Surya2 refletem uma inferência em regime permanente genuinamente lenta, não apenas o custo de inicialização.
O que não está incluído nessas cifras por 1.000 páginas?
Pós-processamento por LLM (um custo de API separado por token; contagens de tokens em field_method_comparison.csv), CPU/infraestrutura para stacks estilo Tesseract, armazenamento e egress, orquestração, lacunas de utilização de GPU e serviços de OCR em nuvem/API — nenhum dos quais está na fatura de GPU do motor que essas cifras representam. As APIs de nuvem também cobram por chamada com preços dependentes de funcionalidades, um modelo de custo diferente do tempo de relógio de GPU alugada; elas não são avaliadas nesta página.
De onde vêm esses números?
Cada cifra é uma linha dos CSVs publicados do benchmark de primeira mão — results/summary_metrics.csv (custo por 1.000 páginas, throughput, latência, precisão) e results/field_method_comparison.csv (tokens do pós-processador LLM e F1 por campo) — hospedados em ImageToTableai/benchmark-ocr, com um manifest.json por execução (com um campo censurado) registrando a taxa de $0,76/hora, o carimbo de data de preço de agosto de 2026, versões do modelo e hashes do ambiente.
Metodologia & Fontes
Protocolo
Esta página relata a dimensão de custo de um benchmark independente e reproduzível (nível oficial) — não uma pesquisa de alegações de terceiros. Apenas divisões de teste fixas: SROIE 2019 teste (361 recibos em inglês, campos planos empresa/data/endereço/total) e CORD v2 teste (100 recibos indonésios, campos aninhados menu/sub_total/total); divisões de treinamento nunca foram avaliadas. Cada par (motor × conjunto de dados) reutilizou as mesmas imagens, a mesma verdade de referência e o mesmo protocolo de medição (warm_then_scored: uma passagem de aquecimento fixa precede a passagem pontuada). Todas as 16 execuções foram concluídas com error_rate 0.0 (coluna error_rate do summary_metrics.csv).
Ambiente de Execução e Base de Custo
- Hardware: todas as execuções em GPU em uma NVIDIA RTX 4090 (24 GB); custo da GPU calculado na taxa sob demanda da RunPod de $0.76/hr, com o registro de preço (
price_recorded_at_utc 2026-08-13T08:00:00Z) registrado no manifesto anonimizado de cada execução. O Tesseract rodou apenas em CPU e não possui custo de GPU (célula de custo vazia no CSV — por design, não um zero). - Fórmula de custo: custo por 1.000 páginas = tempo de execução real × $0.76/hr × (1.000 / páginas processadas), incluindo inicialização do modelo. Verificado pelo exemplo worked docTR na seção Como Estimar (81.867 ms → $0.0479/1K).
- Motores: todos os modelos rodando fora da caixa, sem ajuste fino. Versões bloqueadas conforme os manifestos de execução (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).
- Pós-processador LLM: deepseek-v4-flash via API em temperatura 0 (a coluna llm_model no field_method_comparison.csv); suas contagens de tokens são reportadas como base para custo separado do pipeline — os valores de custo do motor OCR nunca o incluem.
- Pós-processamento de campos: as métricas de campos do SROIE são
postprocessed_sroie_receipt_regex_*/ variantes LLM — campos extraídos do texto do OCR, não da saída estruturada nativa. - Ressalva do CORD: o texto de verdade de referência do CORD incorpora a estrutura de anotação, o que infla o CER bruto para cada motor; as linhas do CORD são, portanto, mantidas separadas dos rankings do SROIE. Os valores de custo (baseados no tempo real) não são afetados pela ressalva do CORD, mas ambos os conjuntos de dados ainda são apenas recibos.
Definições das Métricas
- Custo por 1.000 páginas: horas de GPU cobradas para 1.000 páginas na taxa registrada de $0.76/hr, tempo real incluindo inicialização do modelo. Vazio para Tesseract apenas com CPU.
- Páginas por minuto: throughput em tempo real incluindo inicialização do modelo.
- Latência p50/p95: tempo de inferência por página em regime estacionário (aquecido e pontuado, exclui carregamento do modelo).
- CER/WER: distância de edição (inserções + exclusões + substituições) sobre caracteres/palavras verdadeiros. Sensível a maiúsculas/minúsculas e convenções de formatação — as saídas de VLM são normalizadas em relação a maiúsculas, então o CER superestima o erro do VLM (veja a página de resumo).
- F1 de valor de campo: média harmônica de precisão/recall sobre valores de campos extraídos, por pós-processador (regex ou LLM).
Lista de Fontes
- summary_metrics.csv (GitHub raw). 16 linhas = 8 motores × 2 conjuntos de dados de recibos (sroie_2019, cord_v2). Colunas: 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. Todos os valores de custo, throughput, latência e CER nesta página são rastreáveis a uma linha aqui.
- field_method_comparison.csv (GitHub raw). 16 linhas; colunas model, dataset, llm_model (= deepseek-v4-flash), acurácia e F1 de valor de campo regex/LLM, document-fields-exact, llm_median_latency_ms, llm_prompt_tokens, llm_completion_tokens. Todos os contadores de tokens e valores de F1 de campo LLM são rastreáveis a uma linha aqui.
- Repositório ImageToTableai/benchmark-ocr. Repositório público hospedando os CSVs de resultados, manifestos de execução redatados, protocolo congelado e listas de amostras de conjuntos de dados (divisões de teste fixas) para reprodução.
- results/manifests/ (GitHub). Um manifesto.json redatado por execução publicada (16 execuções) com a impressão digital do ambiente, versões do modelo, metadados de custo (
gpu_hourly_usd,price_recorded_at_utc), tempo real e hashes de artefatos. - Huang et al., "ICDAR2019 Competition on Scanned Receipt OCR and Information Extraction" (2019). Definição do conjunto de dados SROIE 2019, estrutura da tarefa e licença (CC-BY-4.0).
- Park et al., "CORD: A Consolidated Receipt Dataset for Post-OCR Parsing" (2020). Definição do conjunto de dados CORD v2, esquema de campos aninhados e licença (CC-BY-4.0).
Limitações
- Camada de GPU única e registro de preço único: todos os valores de GPU são de uma RTX 4090 a $0.76/hr, preço registrado em agosto de 2026. Os preços spot/sob demanda de GPU mudam — recalcule com as taxas atuais; outras GPUs, servidores multi-GPU e agendamento em lote alteram o throughput e o custo.
- Apenas recibos: recibos do SROIE (inglês) e CORD (indonésio). Custo, throughput e precisão em faturas, formulários, contratos ou documentos longos não foram medidos; as classificações acima não são generalizáveis além de recibos.
- Custo inclui inicialização do modelo — dependente do tamanho do lote: os valores refletem o padrão de execução do benchmark (divisões fixas de 361/100 páginas, aquecimento-avaliação). Lotes menores pagam a inicialização repetidamente e custam mais por 1.000 páginas; lotes maiores se aproximam do piso de estado estável.
- Assimetria CPU/GPU: Tesseract (CPU) é comparado a motores acelerados por GPU. Sua vantagem de custo reflete a ausência de cobrança de GPU, não custo zero — infraestrutura de CPU, energia e tempo de pessoal não são quantificados, e seu teto de recuperação em campo (CORD LLM field F1 0.163) pode transferir gastos para pós-processamento.
- Sem modelos cloud/API: AWS Textract, Google Document AI, Azure AI Document Intelligence e APIs de OCR/VLM hospedadas não estão incluídos; seus preços por chamada, com base em recursos, diferem fundamentalmente da cobrança por tempo de execução em GPU alugada e nenhuma comparação é implícita.
- Utilização e tempo ocioso não modelados: os valores assumem que a GPU é cobrada pelo tempo de execução e está ociosa caso contrário; implantações reais com GPUs ociosas, multi-tenant ou subutilizadas têm custos efetivos diferentes.
- Custo de pós-processamento por LLM não é convertido em dólares: contagens de tokens (field_method_comparison.csv) são a base; a precificação de LLM varia por provedor e plano e é intencionalmente deixada ao leitor.
- Cenários derivados não são medidos: a tabela de volume mensal é aritmética simples sobre a base de custo do SROIE, rotulada como estimativas derivadas — não execuções adicionais de benchmark.
- Tamanho da amostra e fixação de versão: 361 + 100 amostras; os resultados valem para as versões de modelo de agosto de 2026 listadas acima. Versões mais recentes de motores podem alterar custo/throughput; diferenças de um dígito percentual devem ser tratadas como ruído.
Referências relacionadas: OCR Tradicional vs VLMs de Análise de Documentos · docTR vs Surya2: Empate em CER, Diferença de Custo · Tesseract vs PaddleOCR: Perfil de Custo em CPU · Regex vs Extração de Campos por LLM · Detalhamento de Custos de Processamento de Documentos
Leituras relacionadas: Preços de Extração de Documentos por IA (2026) · Precisão de OCR por IA vs OCR Tradicional · Extração de Dados de Imagem por IA vs OCR Tradicional