PaddleOCR vs EasyOCR en Recibos
Precisión vs Costo Benchmark (2026)
Última revisión: 2026-08-18 · Nivel de ejecución: oficial · Benchmark directo de primera parte · 2 motores × 2 conjuntos de datos de recibos
Qué NO cubre esta página: Cualquier tipo de documento que no sean recibos — sin tablas, formularios, facturas, contratos ni documentos largos. Los servicios OCR en la nube/API, los motores ajustados y los otros seis motores del benchmark (Tesseract, docTR, Docling, Surya2, Unlimited-OCR, PaddleOCR-VL) están fuera del alcance, excepto donde se citan como contexto de clasificación. El resumen completo de los 8 motores se encuentra en OCR Tradicional vs VLMs de Análisis de Documentos.
Declaración de alcance: todos los números de esta página se aplican solo a recibos — recibos en inglés SROIE 2019 y recibos en indonesio CORD v2. Un nivel de hardware (RTX 4090 a $0.76/hr, precio con marca de tiempo de agosto de 2026), un postprocesador LLM (deepseek-v4-flash a temperatura 0), versiones de modelo fijas (PaddleOCR 3.7.0, EasyOCR 1.7.2). No extrapole estos resultados a otros tipos de documentos, GPUs o LLMs — el benchmark mide solo OCR de recibos y extracción de campos de recibos. Todas las cifras provienen de results/summary_metrics.csv y results/field_method_comparison.csv del benchmark, reflejadas en el repositorio público de GitHub y citadas fila por fila.
En recibos ingleses limpios, la ventaja de la arquitectura moderna de dos etapas es inequívoca — no un empate como en el enfrentamiento anterior docTR-vs-Surya2. PaddleOCR supera a EasyOCR en todos los ejes de precisión en SROIE 2019: CER 0.2045 vs 0.2833 (mejora relativa del 27.8%), WER 0.3256 vs 0.6158 (1.9×), F1 de campos por regex 0.3254 vs 0.1477 (2.2×), y F1 de campos postprocesados por LLM 0.5810 vs 0.3717 (1.56×). Pero el intercambio no termina ahí: EasyOCR es ~2× más barato por 1,000 páginas ($0.110 vs $0.221), más rápido en rendimiento de tiempo real (124.5 vs 79.7 páginas/min), y más ajustado en la cola p95 (960.4 vs 3,331.4 ms) — mientras que su texto, alimentado al mismo postprocesador LLM, extrae campos peor que cualquiera de los ocho motores del benchmark, una paradoja que esta página documenta con las filas crudas.
El intercambio, en un par de números: PaddleOCR lee un recibo con 28% menos errores de caracteres y extrae 2.2× tantos campos mediante regex por $0.221 por 1,000 páginas; EasyOCR lo lee con más errores pero por $0.110 por 1,000 páginas — aproximadamente la mitad del costo de GPU en la misma RTX 4090, la misma división de prueba, los mismos recibos. Ningún motor “gana”; ganan en diferentes ejes, y el punto de esta página es mostrar ambos ejes desde la misma ejecución controlada — incluyendo el resultado contraintuitivo aguas abajo del LLM.
Los dos motores representan dos generaciones de OCR basado en aprendizaje profundo. PaddleOCR (basado en PaddlePaddle, arquitectura PP-OCR, v3.7.0) es un pipeline moderno de dos etapas: una etapa de detección localiza las regiones de texto, y luego una etapa de reconocimiento las transcribe — diseñado para una alta precisión en texto impreso a gran escala. EasyOCR (basado en PyTorch, 1.7.2) es un reconocedor clásico de una sola pasada CNN + RNN + CTC — un extractor de características ResNet que alimenta un modelo de secuencia decodificado con Clasificación Temporal Conectista. Es conocido por su amplia cobertura de idiomas y escrituras (más de 80 idiomas listos para usar) y una instalación famosamente simple. La Tasa de Error de Carácter (CER) mide inserciones, eliminaciones y sustituciones divididas por los caracteres de la verdad fundamental — un CER de 0.204 significa ~20.4 caracteres mal leídos por cada 100; la Tasa de Error de Palabra (WER) aplica la misma lógica de distancia de edición a nivel de palabra completa. En ambos casos, un valor más bajo es mejor.
Precisión del Texto en SROIE (Recibos en Inglés): La Ventaja Clara de PaddleOCR
En los 361 recibos en inglés del conjunto de prueba SROIE 2019, la arquitectura moderna gana en ambas métricas de texto: CER 0.2045 vs 0.2833 (una mejora relativa del 27.8%) y WER 0.3256 vs 0.6158 — el WER de EasyOCR es casi el doble. La brecha en WER es mayor que la brecha en CER, lo que indica que EasyOCR complica los errores a nivel de carácter en fallos de palabra completa en este corpus. Ambos motores funcionan sin errores (error_rate 0.0 en cada fila de SROIE y CORD en el CSV).
Fuente: summary_metrics.csv — columnas cer y wer, filas sroie_2019. PaddleOCR cer 0.20449 / wer 0.32563; EasyOCR cer 0.28327 / wer 0.61578. Un valor más bajo es mejor. 361 muestras por motor; ambos error_rate 0.0.
| Métrica (SROIE 2019, n=361) | PaddleOCR | EasyOCR | Fuente |
|---|---|---|---|
| Tasa de Error de Carácter (CER) | 0.2045 | 0.2833 | summary_metrics.csv · cer, filas paddleocr/sroie_2019 y easyocr/sroie_2019 |
| Tasa de Error de Palabra (WER) | 0.3256 | 0.6158 | summary_metrics.csv · wer, mismas filas |
| Tasa de error (páginas fallidas) | 0.0 | 0.0 | summary_metrics.csv · error_rate, mismas filas |
Tabla: summary_metrics.csv — columnas cer / wer / error_rate, filas sroie_2019. Valores exactos: PaddleOCR cer 0.20449 / wer 0.32563; EasyOCR cer 0.28327 / wer 0.61578. Un CER/WER más bajo es mejor. Ninguno de los dos motores es el campeón de precisión general del benchmark — ese título pertenece a Surya2 (CER 0.1915) y docTR (CER 0.1971) en la misma ejecución de 8 motores (summary_metrics.csv, filas surya2 y doctr sroie_2019).
Extracción de Campos: KIE Mediante Regex y Mediante un LLM
La precisión del texto clasifica a los motores; la extracción de campos es lo que los sistemas posteriores realmente consumen. Las métricas de campos SROIE del benchmark apuntan a cuatro campos planos de recibos (empresa, fecha, dirección, total) usando dos postprocesadores en el texto OCR de cada motor: patrones regex fijos (el enfoque tradicional de OCR + extracción de información clave basada en reglas) y un postprocesador LLM (deepseek-v4-flash a temperatura 0) con un prompt estructurado. Mediante regex, PaddleOCR extrae campos con 0.3254 F1 de campo frente a 0.1477 de EasyOCR — una ventaja de 2.2×; mediante el LLM, la brecha persiste con 0.5810 frente a 0.3717 (1.56×).
El F1 de valor de campo es la media armónica de precisión y recuperación sobre los valores de campo extraídos frente a la verdad de referencia — 1.0 significa que cada campo del recibo se recuperó perfectamente, 0 significa nada. Las columnas de campos regex SROIE son las métricas postprocessed_sroie_receipt_regex_* del benchmark: patrones fijos aplicados al texto OCR de cada motor (postprocesado, no salida estructurada nativa). Observe el contexto de clasificación: el 0.3254 de PaddleOCR es el tercer mejor resultado de campos regex en el benchmark de 8 motores (detrás de Unlimited-OCR 0.3376 y PaddleOCR-VL 0.3368) y el mejor entre los cuatro motores puramente tradicionales; el 0.1477 de EasyOCR ocupa el séptimo lugar de ocho (summary_metrics.csv, field_f1_regex, filas sroie_2019).
Fuente: field_method_comparison.csv — columnas regex_field_value_f1 / llm_field_value_f1, filas sroie_2019 (decimales de 0–1 mostrados como %). Postprocesador LLM: deepseek-v4-flash (columna llm_model). 361 muestras por motor (llm_ok_count).
| Extracción de campos (SROIE 2019, n=361) | PaddleOCR | EasyOCR | Fuente |
|---|---|---|---|
| F1 campo-valor (regex) | 0.3254 | 0.1477 | field_method_comparison.csv · regex_field_value_f1, filas paddleocr/sroie_2019 y easyocr/sroie_2019 |
| F1 campo-valor (LLM) | 0.5810 | 0.3717 | field_method_comparison.csv · llm_field_value_f1, mismas filas |
| Precisión campo-valor (LLM) | 0.5810 | 0.3712 | field_method_comparison.csv · llm_field_value_accuracy, mismas filas |
| Documentos con todos los campos exactos (LLM) | 0.0748 | 0.0028 | field_method_comparison.csv · llm_document_fields_exact, mismas filas |
| Latencia mediana de postprocesamiento LLM (ms) | 1,817.5 | 2,004.5 | field_method_comparison.csv · llm_median_latency_ms, mismas filas |
Tabla: field_method_comparison.csv — columnas regex y llm, filas sroie_2019. Las columnas regex son métricas postprocessed_sroie_receipt_regex_*: patrones fijos aplicados al texto OCR de cada motor. Postprocesador LLM: deepseek-v4-flash a temperatura 0 (columna llm_model). La latencia LLM es incurrida por la API y está separada de la latencia del motor (summary_metrics.csv latency_p50_ms). “Documentos con todos los campos exactos” es la fracción de documentos donde cada campo objetivo coincidió exactamente — un criterio mucho más estricto que el F1 por campo; EasyOCR acierta los cuatro campos exactamente en el 0.28% de los recibos.
La paradoja de EasyOCR y los LLM: texto de nivel medio, peor extracción posterior
Este es el dato más distintivo de la página, y es genuinamente contraintuitivo: el texto OCR de EasyOCR es de nivel medio en precisión de caracteres (CER de SROIE 0.2833, cuarto de ocho motores) — sin embargo, cuando ese texto se alimenta al mismo postprocesador LLM que se usa para todos los demás motores (deepseek-v4-flash, mismo prompt, mismos recibos), su F1 de campos LLM de SROIE de 0.3717 es el más bajo de los ocho motores en el benchmark — incluso por debajo de Tesseract (0.4389), un motor de CPU con un CER peor (0.3347). Solo cambió el texto OCR; el LLM, el prompt y los recibos fueron idénticos.
Patrón observado, mecanismo no verificado. Una hipótesis plausible — y no más que eso — es una convención de formato de salida: la forma en que EasyOCR dispone, une o separa las líneas de texto parece degradar la extracción de campos LLM posteriores por razones no relacionadas con la precisión de caracteres bruta. El benchmark no aisló este mecanismo; el resultado se documenta aquí como reproducible y estable (la fila de EasyOCR en SROIE fue re-verificada en una ejecución con torch 2.8 el 2026-08-17, r1/r2/r3 idénticos a nivel de byte; el CSV publicado ya contiene esos valores corregidos), pero no se hace ninguna afirmación causal. La implicación práctica es lo opuesto a la apariencia de marketing: en este corpus, elegir EasyOCR para un texto "suficientemente bueno" significa presupuestar para la peor recuperación de campos posterior con LLM de todos los motores probados.
Fuente: field_method_comparison.csv — llm_field_value_f1, las ocho filas de sroie_2019, 361 muestras cada una (llm_ok_count). Postprocesador LLM idéntico para todos los motores: deepseek-v4-flash a temperatura 0. Contexto de CER de summary_metrics.csv, columna cer, filas de sroie_2019.
| Los 8 motores, SROIE 2019 (n=361 cada uno) | CER de SROIE | F1 de campos LLM de SROIE | Fuente |
|---|---|---|---|
| doctr | 0.1971 | 0.6171 | field_method_comparison.csv · fila doctr/sroie_2019, llm_field_value_f1 (cer: summary_metrics.csv) |
| surya2 | 0.1915 | 0.6139 | field_method_comparison.csv · fila surya2/sroie_2019, llm_field_value_f1 (cer: summary_metrics.csv) |
| unlimited_ocr | 0.6552 | 0.6054 | field_method_comparison.csv · fila unlimited_ocr/sroie_2019, llm_field_value_f1 (cer: summary_metrics.csv) |
| paddleocr_vl_vllm | 0.3370 | 0.5921 | field_method_comparison.csv · fila paddleocr_vl_vllm/sroie_2019, llm_field_value_f1 (cer: summary_metrics.csv) |
| PaddleOCR 3.7.0 | 0.2045 | 0.5810 | field_method_comparison.csv · fila paddleocr/sroie_2019, llm_field_value_f1 (cer: summary_metrics.csv) |
| docling | 0.5909 | 0.5685 | field_method_comparison.csv · fila docling/sroie_2019, llm_field_value_f1 (cer: summary_metrics.csv) |
| tesseract (CPU) | 0.3347 | 0.4389 | field_method_comparison.csv · fila tesseract/sroie_2019, llm_field_value_f1 (cer: summary_metrics.csv) |
| EasyOCR 1.7.2 | 0.2833 | 0.3717 | field_method_comparison.csv · fila easyocr/sroie_2019, llm_field_value_f1 (cer: summary_metrics.csv) |
Tabla: field_method_comparison.csv — llm_field_value_f1, todas las filas sroie_2019; columna CER de summary_metrics.csv, cer, filas sroie_2019. El CER de EasyOCR (0.2833) ocupa el cuarto lugar de ocho — texto de nivel intermedio con la peor recuperación de campos downstream del LLM (0.3717, por debajo del 0.4389 de Tesseract). La paradoja se documenta como observada y reproducible; su mecanismo no se aísla en este benchmark.
El Envolvente Operativo: Donde EasyOCR es Verdaderamente Competitivo
La precisión no es el único eje, y en el eje operativo EasyOCR tiene contraventajas reales y medibles. En el mismo RTX 4090 a la misma tarifa de $0.76/hr, EasyOCR procesa SROIE a $0.110 por 1,000 páginas frente a los $0.221 de PaddleOCR’s (una brecha de 2.0×), mantiene 124.5 páginas/min frente a 79.7 (1.56×), y mantiene su cola de peor caso ajustada: p95 960.4 ms frente al pico de primera página de PaddleOCR’s de 3,331.4 ms (una cola 3.5× más ajustada). Su huella también es más simple de desplegar — un solo runtime de PyTorch con amplia cobertura de idiomas, frente al stack de framework más pesado de PaddlePaddle.
Una aparente contradicción merece una explicación honesta: PaddleOCR tiene la latencia mediana por página menor (297.0 ms p50 frente a los 413.6 ms de EasyOCR) pero la cifra de páginas por minuto menor (79.7 frente a 124.5). Los dos números miden relojes diferentes. La latencia p50 es la inferencia por página en estado estable, medida en caliente (modelo ya cargado); las páginas/min son el rendimiento de reloj de pared de toda la ejecución, que incluye la inicialización del modelo y los efectos de lote. El runtime más pequeño y de carga más rápida de EasyOCR gana la carrera de volumen de reloj de pared; la inferencia por página de PaddleOCR es individualmente más rápida una vez en caliente. Ambos números son reales; describen cosas diferentes, y una carga de trabajo dominada por la sobrecarga de carga del modelo (muchos lotes pequeños, inicios en frío frecuentes) experimentará la ventaja de reloj de pared de EasyOCR, mientras que una canalización larga y en caliente experimentará la ventaja por página de PaddleOCR.
El costo se calcula como tiempo de ejecución de reloj de pared × la tarifa de RunPod RTX 4090 ($0.76/hora, precio con marca de tiempo en los manifiestos de ejecución), incluyendo la inicialización del modelo — el precio que realmente pagarías por el tiempo de GPU. El rendimiento son páginas por minuto de reloj de pared incluyendo la misma inicialización. Las latencias p50/p95 son tiempos de inferencia por página en estado estable medidos en caliente y luego puntuados (excluyendo la carga del modelo); la p95 de PaddleOCR de 3,331 ms es un pico de primera página/prefill, no su comportamiento en estado estable.
Fuente: summary_metrics.csv — columnas latency_p50_ms / latency_p95_ms, filas sroie_2019. PaddleOCR p50 296.99 / p95 3331.35; EasyOCR p50 413.64 / p95 960.37. Latencia en estado estable (modo de medición warm_then_scored, excluye carga del modelo).
Fuente: summary_metrics.csv — columna cost_per_1000_pages, filas sroie_2019. PaddleOCR 0.2214, EasyOCR 0.1098. Costo = tiempo de ejecución de reloj de pared × $0.76/hr incluyendo init del modelo, precio con marca de tiempo en los manifiestos de ejecución (agosto 2026). Ninguno de los motores es el más barato del benchmark — docTR lo tiene a $0.048 por 1,000 páginas (summary_metrics.csv, fila doctr/sroie_2019).
| Envolvente operativa (SROIE 2019, n=361) | PaddleOCR | EasyOCR | Fuente |
|---|---|---|---|
| Latencia p50 (ms) | 297.0 | 413.6 | summary_metrics.csv · latency_p50_ms, filas paddleocr/sroie_2019 y easyocr/sroie_2019 |
| Latencia p95 (ms) | 3,331.4 | 960.4 | summary_metrics.csv · latency_p95_ms, mismas filas |
| Páginas por minuto (tiempo real) | 79.7 | 124.5 | summary_metrics.csv · pages_per_minute, mismas filas |
| Costo por 1,000 páginas | $0.221 | $0.110 | summary_metrics.csv · cost_per_1000_pages, mismas filas |
Tabla: summary_metrics.csv — latency_p50_ms / latency_p95_ms / pages_per_minute / cost_per_1000_pages, filas sroie_2019. Ambos motores GPU (RTX 4090, precio de $0.76/hr con marca de tiempo en manifiestos); el costo incluye la inicialización del modelo. Valores exactos: PaddleOCR p50 296.99 / p95 3331.35 / 79.71 pg/min / $0.2214; EasyOCR p50 413.64 / p95 960.37 / 124.53 pg/min / $0.1098. La inversión p50-vs-páginas/min se explica en el texto anterior: inferencia por página en estado estable (gana PaddleOCR) vs. rendimiento en tiempo real que incluye inicialización y efectos de lote (gana EasyOCR).
CORD (Recibos Indonesios): Ambos Colapsan, Pero la Recuperación de Campos por LLM de PaddleOCR Sobrevive
Ningún motor fue entrenado predominantemente en recibos indonesios, por lo que CORD v2 (100 muestras, campos anidados menu/sub_total/total) funciona como una prueba de estrés entre idiomas — y ambos colapsan en CER bruto: 0.9083 (PaddleOCR) y 0.9185 (EasyOCR), un empate por desajuste de idioma donde ambos motores son efectivamente incapaces de leer el texto. Según el protocolo de referencia, los números de CORD se mantienen en cuarentena de la comparación con SROIE — no se fusionan en ninguna clasificación — porque el texto de referencia de CORD incrusta estructura de anotación, lo que infla el CER bruto para cada motor además del genuino desajuste de idioma.
Las métricas de campos cuentan una historia diferente a los CER casi idénticos. A través del postprocesador LLM, el F1 de campos de PaddleOCR se mantiene en 0.5527 frente al 0.3378 de EasyOCR en CORD — el mismo patrón de SROIE, extendido: la recuperación aguas abajo del LLM de PaddleOCR resiste el choque lingüístico que la de EasyOCR no resiste, incluso cuando ambos reconocedores de texto fallan a nivel de carácter. El F1 de campos LLM de EasyOCR en CORD es el segundo más bajo de los ocho motores (solo por encima del 0.1627 de Tesseract, filas cord_v2 de summary_metrics.csv/field_method_comparison.csv) — nuevamente por detrás de motores con peor CER, el paradoja persistiendo en ambos conjuntos de datos. CORD se cita aquí por contexto de robustez lingüística; se omite deliberadamente de la agrupación con los números de SROIE en una sola tabla de clasificación.
| CORD v2, recibos indonesios (n=100) | PaddleOCR | EasyOCR | Fuente |
|---|---|---|---|
| Tasa de Error de Carácter (CER) | 0.9083 | 0.9185 | summary_metrics.csv · cer, filas paddleocr/cord_v2 y easyocr/cord_v2 |
| F1 de valor de campo (regex) | 0.0154 | 0.0067 | field_method_comparison.csv · regex_field_value_f1, mismas filas |
| F1 de valor de campo (LLM) | 0.5527 | 0.3378 | field_method_comparison.csv · llm_field_value_f1, mismas filas |
| Costo por 1,000 páginas | $0.342 | $0.086 | summary_metrics.csv · cost_per_1000_pages, mismas filas |
| Páginas por minuto (tiempo real) | 141.0 | 211.8 | summary_metrics.csv · pages_per_minute, mismas filas |
Tabla: summary_metrics.csv (cer / cost_per_1000_pages / pages_per_minute) y field_method_comparison.csv (field F1), filas cord_v2. No fusione los números de CORD en ninguna clasificación de SROIE: El CER de CORD combina una discrepancia lingüística genuina con una inflación de la estructura de anotación en la verdad de referencia. Los patrones regex fueron escritos para formatos en inglés, por lo que el field F1 de regex colapsa a ~0–2% en ambos motores. El field F1 del LLM de PaddleOCR de 0.5527 en CORD repite su ventaja en SROIE (0.5810 vs 0.3717) — su recuperación posterior al LLM sobrevive al choque lingüístico que la de EasyOCR no.
Quién Gana Cuándo: La Cuadrícula de Resumen
“Mejor” depende de la carga de trabajo, y esta comparación directa divide los ejes con claridad: cada eje de precisión en recibos en inglés favorece a PaddleOCR; el costo, el rendimiento en tiempo real, la latencia extrema y la simplicidad de despliegue favorecen a EasyOCR; y el campeonato de precisión de texto puro no pertenece a ninguno (Surya2/docTR) — mientras que el resultado posterior al LLM de EasyOCR es su mayor advertencia, no su punto de venta.
Preguntas Frecuentes
¿Es PaddleOCR más preciso que EasyOCR en recibos?
Sí, en todos los ejes de precisión medidos en este benchmark. En SROIE 2019: CER 0.2045 vs 0.2833 (mejora relativa del 27.8%), WER 0.3256 vs 0.6158, F1 de campos por regex 0.3254 vs 0.1477 (2.2×), F1 de campos postprocesados por LLM 0.5810 vs 0.3717 (summary_metrics.csv y field_method_comparison.csv, filas sroie_2019). Ninguno de los dos motores es el campeón general de texto del benchmark — Surya2 (CER 0.1915) y docTR (0.1971) ostentan ese título.
¿Es EasyOCR más barato que PaddleOCR?
Sí — aproximadamente 2× más barato por cada 1.000 páginas en recibos en inglés: $0.110 vs $0.221 en SROIE 2019, ampliándose a $0.086 vs $0.342 en CORD, en el mismo RTX 4090 a $0.76/hr con costo que incluye la inicialización del modelo (summary_metrics.csv, cost_per_1000_pages, filas sroie_2019 y cord_v2). El motor más barato del benchmark en general es docTR a $0.048 por 1.000 páginas.
¿Cuál es más rápido: PaddleOCR o EasyOCR?
Depende de a qué reloj se refiera. PaddleOCR tiene una latencia mediana en estado estable más baja (297.0 vs 413.6 ms p50), pero EasyOCR tiene un rendimiento en tiempo real más alto (124.5 vs 79.7 páginas/min) porque las páginas por minuto en tiempo real incluyen la inicialización del modelo y los efectos de lote, y la carga de ejecución más ligera de EasyOCR es más rápida (summary_metrics.csv, latency_p50_ms / pages_per_minute, filas sroie_2019). Para un pipeline en ejecución prolongada y caliente, PaddleOCR es más rápido por página; para muchos lotes pequeños o frecuentes en frío, EasyOCR gana la carrera en tiempo real.
¿Por qué EasyOCR tiene la peor extracción de campos por LLM a pesar de una precisión de caracteres aceptable?
Este es el paradoja documentada del benchmark, actualmente sin un mecanismo probado. El CER de EasyOCR en SROIE (0.2833) ocupa el cuarto lugar de ocho motores, sin embargo su F1 de campos postprocesados por LLM (0.3717) ocupa el último lugar — incluso por debajo de Tesseract (0.4389), que tiene un CER peor. La hipótesis principal es una convención de formato de salida en la forma en que EasyOCR dispone o une las líneas de texto que degrada la extracción posterior por LLM; se etiqueta como un patrón observado y reproducible con el mecanismo no verificado (field_method_comparison.csv, llm_field_value_f1, filas sroie_2019).
¿Por qué ambos motores obtienen tan malos resultados en los recibos CORD?
Dos causas acumulativas que el protocolo mantiene separadas del ranking SROIE: una verdadera incompatibilidad lingüística (recibos indonesios fuera del enfoque de entrenamiento de ambos motores) e inflación en la estructura de anotación dentro del texto ground-truth de CORD — el CER llega a 0.9083 (PaddleOCR) y 0.9185 (EasyOCR) (summary_metrics.csv, cer, cord_v2 rows). Lo que aún los separa es la recuperación posterior al LLM: PaddleOCR 0.5527 vs EasyOCR 0.3378 en F1 de campos — el patrón SROIE persiste incluso cuando ambos reconocedores fallan a nivel de carácter.
¿Qué motor debe elegir un pipeline de recibos, PaddleOCR o EasyOCR?
Si su pipeline consume campos — valores extraídos para empresa, fecha, totales — PaddleOCR es el predeterminado claro para recibos: 2.2× en F1 de campos bajo regex, 1.56× bajo un LLM, y una recuperación posterior al LLM que sobrevive al choque lingüístico de CORD (field_method_comparison.csv). Si necesita