Tesseract es lo bastante preciso para producción cuando tus documentos se parecen a aquellos para los que se diseñó, páginas impresas limpias con una resolución suficiente, y cuando la comprobación con tus propios archivos lo confirma. No publica una cifra de precisión, así que nadie puede responder la pregunta por ti, y lo útil es medirlo con una muestra de tus propios documentos antes de comprometerte.
Esta página recoge lo que Tesseract dice de sí mismo, lo que encontraron las pruebas independientes, las condiciones en que falla y una prueba corta que puedes hacer en una tarde con un umbral de aprobado fijado de antemano.
Qué dice Tesseract de sí mismo
Tesseract es un motor de OCR de código abierto con licencia Apache 2.0. Admite más de 100 idiomas y usa un motor basado en LSTM. Su README no da ninguna cifra de precisión. Dice que, para obtener mejores resultados, a menudo tendrás que mejorar la calidad de la imagen.
Su documentación sobre cómo mejorar la calidad es concreta sobre cuándo cae la precisión:
- Resolución. Funciona mejor con imágenes de al menos 300 DPI.
- Binarización. Su método por defecto puede ser subóptimo cuando el fondo de la página tiene un oscurecimiento desigual.
- Inclinación. La calidad de la segmentación de líneas cae de forma significativa si la página está demasiado inclinada.
- Ruido. El ruido que la binarización no puede eliminar puede hacer que caiga la precisión, y los bordes oscuros de un escaneo pueden leerse como caracteres.
- Tablas. La documentación dice que tiene problemas para reconocer texto y datos de tablas sin un preprocesado a medida.
Su FAQ dice del manuscrito que puedes intentarlo, pero no funcionará muy bien, porque Tesseract está diseñado para texto impreso.
Qué encontraron las pruebas independientes
Existen pocas comparaciones independientes, y cada una tiene matices.
Un benchmark revisado por pares de Hegghammer, publicado en el Journal of Computational Social Science en 2021 (DOI 10.1007/s42001-021-00149-1), comparó Tesseract, Amazon Textract y Google Document AI con escaneos de libros en inglés y artículos en árabe, con ruido artificial añadido. Encontró que los dos servicios en la nube eran sustancialmente mejores que Tesseract, sobre todo con documentos con ruido. Los datos son escaneos de libros y artículos de 2021, no facturas.
Un benchmark ejecutado por un proveedor con recibos, publicado por ImageToTable y revisado por última vez el 18 de agosto de 2026, indica tasas de error de caracteres de 0,3347 para Tesseract en CPU, 0,2833 para EasyOCR y 0,2045 para PaddleOCR con los conjuntos de recibos SROIE y CORD. Lo ejecuta un proveedor, que lo dice, y no indica la versión de Tesseract ni el preprocesado, así que léelo como un dato más.
Ninguno de los dos resultados es el tuyo. El mismo motor puede funcionar muy bien con escaneos limpios y mal con fotos torcidas hechas con el móvil, y por eso la prueba de abajo importa más que cualquier cifra publicada.
Cuándo funciona Tesseract y cuándo falla
Tiende a funcionar con texto impreso limpio, recto, a 300 DPI o más y con un fondo liso, como una carta escaneada moderna o un formulario mecanografiado. Tiende a fallar con imágenes inclinadas o de baja resolución, fondos desiguales, escaneos con ruido, tablas y manuscritos. El análisis de la página es un paso de segmentación que ajustas con sus modos de segmentación de página, que van del 0 al 13, así que los resultados pueden cambiar mucho con un solo ajuste.
Pruébalo con 50 de tus documentos
Elige 50 documentos que cubran tu mezcla real: los mejores, los medianos y los peores escaneos que recibas. Etiqueta a mano los campos que te importan, como el número de factura, la fecha y el total, y no el texto completo. Ejecuta Tesseract con los 50 con el mismo preprocesado y puntúa los resultados. Decide el umbral de aprobado antes de ejecutar, para que el resultado no condicione el objetivo.
Dos medidas cubren casi todo: la tasa de error de caracteres para el texto libre y la coincidencia exacta para números, fechas e identificadores.
def edit_distance(a: str, b: str) -> int:
prev = list(range(len(b) + 1))
for i, ca in enumerate(a, start=1):
cur = [i]
for j, cb in enumerate(b, start=1):
cur.append(min(prev[j] + 1, cur[j - 1] + 1, prev[j - 1] + (ca != cb)))
prev = cur
return prev[-1]
def cer(expected: str, got: str) -> float:
return edit_distance(expected, got) / max(len(expected), 1)
def field_matches(expected: dict[str, str], got: dict[str, str]) -> dict[str, bool]:
return {k: got.get(k, "").strip() == v.strip() for k, v in expected.items()}Informa de los resultados por tipo de documento y cuenta los documentos con algún campo crítico erróneo, porque un total equivocado puede importar más que cien palabras con algo de ruido. Cincuenta documentos dan una señal aproximada, no una garantía, y un resultado de una muestra pequeña no sustituye la monitorización con el tráfico de producción.
Una lista de comprobación para decidir
- Los campos críticos superan tu umbral con los documentos que de verdad recibes, incluido el peor cuarto.
- Las páginas llegan a 300 DPI o controlas el escaneo, y tratas la inclinación y el fondo antes del OCR.
- No dependes de tablas ni de manuscritos, o tienes una respuesta aparte para ellos.
- Alguien se encarga del preprocesado, de las actualizaciones y de la monitorización, que un servicio gestionado asumiría por ti.
- Un valor erróneo tiene un coste que puedes tolerar, o un paso de comprobación o de revisión lo detecta.
Si la mayoría de las respuestas son no, tienes las opciones de mejorar el preprocesado, usar otro motor de código abierto, una API de OCR gestionada o una plataforma de procesamiento de documentos que devuelva campos tipados con confianza. Cómo se compara el coste se explica en API de OCR o código abierto.
Dónde encaja anyformat
anyformat es una plataforma de extracción de documentos que está al final de esa lista. Devuelve campos tipados con una puntuación de confianza y el texto original y la página de donde salieron, de modo que una persona revisa los inciertos. No sustituye a la prueba de arriba: pasa los mismos 50 documentos por cualquier opción que consideres, la nuestra incluida. Para las métricas que importan cuando los documentos llegan a producción, consulta más allá de la precisión.
Preguntas frecuentes
¿Qué precisión tiene Tesseract?
Tesseract no publica una cifra de precisión. Su documentación dice que los resultados dependen de la calidad de la imagen, y las pruebas independientes muestran grandes diferencias entre documentos limpios y con ruido. Mídelo con tus propios archivos.
¿Es Tesseract suficiente para facturas?
Puede serlo, con facturas impresas limpias, rectas y de alta resolución. La inclinación, el ruido y las tablas son puntos débiles conocidos, y extraer campos con nombre como el total necesita lógica encima del texto en bruto.
¿Por qué Tesseract da malos resultados?
Comprueba primero la resolución (300 DPI o más), luego la inclinación, el fondo y el ruido, y después el modo de segmentación de página. La documentación oficial los enumera por orden de impacto.
¿Puede Tesseract leer manuscritos?
Su FAQ dice que puede intentarlo pero no funcionará muy bien, porque está diseñado para texto impreso.
¿Qué es una buena tasa de error de caracteres?
Depende de tu uso. Para texto libre que lees después, una tasa más alta puede estar bien; para importes e identificadores necesitas coincidencia exacta. Fija el umbral por campo antes de probar.







