Tesseract (software)
Tesseract es un motor de reconocimiento óptico de caracteres para varios sistemas operativos. Es un software libre, publicado bajo la licencia Apache. Originalmente desarrollado por Hewlett-Packard como software propietario en la década de 1980, fue lanzado como código abierto en 2005 y su desarrollo fue patrocinado por Google en 2006.
En 2006, Tesseract fue considerado uno de los motores de OCR de código abierto más precisos disponibles.
Historia
El motor Tesseract se desarrolló originalmente como software propietario en los laboratorios de Hewlett-Packard en Bristol, Inglaterra y Greeley, Colorado, entre 1985 y 1994, con más cambios realizados en 1996 para su adaptación a Windows y una migración parcial de C a C++ en 1998. La mayoría del código se escribió en C, y parte en C++. Desde entonces, todo el código se convirtió a un compilador de C++. En la década siguiente se realizó muy poco trabajo. Luego, Hewlett-Packard y la Universidad de Nevada, Las Vegas (UNLV) lo lanzaron como código abierto en 2005. El desarrollo de Tesseract fue patrocinado por Google en 2006.
La versión 4 incorpora un motor de OCR basado en LSTM y modelos para muchos idiomas y escrituras adicionales, lo que eleva el total a 116 idiomas. Además, se admiten 37 escrituras.
La versión 5 se lanzó en 2021, después de más de dos años de pruebas y desarrollo.
Características
Tesseract se encontraba entre los tres mejores motores de OCR en términos de precisión de caracteres en 1995. Está disponible para Linux, Windows y Mac OS X.
Tesseract, hasta la versión 2 inclusive, solo podía aceptar imágenes TIFF de texto simple de una columna como entrada. Estas primeras versiones no incluían análisis de diseño, por lo que la entrada de texto, imágenes o ecuaciones de varias columnas producía un resultado ilegible. Desde la versión 3, Tesseract admite el formato de texto de salida, la información de posición hOCR y el análisis de diseño de página. Se agregó compatibilidad con varios formatos de imagen nuevos mediante la biblioteca Leptonica. Tesseract puede detectar si el texto está monoespaciado o espaciado proporcionalmente.
Las versiones iniciales de Tesseract sólo podían reconocer texto en inglés.
Tesseract v2 agregó seis idiomas occidentales adicionales (francés, italiano, alemán, español, portugués brasileño y holandés).
La versión 3 amplió significativamente la compatibilidad de idiomas para incluir idiomas ideográficos (chino y japonés) y de derecha a izquierda (por ejemplo, árabe y hebreo), así como muchos otros sistemas de escritura. Entre los nuevos idiomas se incluyen el árabe, el búlgaro, el catalán, el chino (simplificado y tradicional), el croata, el checo, el danés, el alemán (sistema de escritura Fraktur), el griego, el finlandés, el hebreo, el hindi, el húngaro, el indonesio, el japonés, el coreano, el letón, el lituano, el noruego, el polaco, el portugués, el rumano, el ruso, el serbio, el eslovaco (sistema de escritura estándar y Fraktur), el esloveno, el sueco, el tagalo, el tamil, el tailandés, el turco, el ucraniano y el vietnamita.
La versión 3.04, publicada en julio de 2015, agregó 39 combinaciones de idioma y escritura adicionales, lo que elevó el total de idiomas admitidos a más de 100. Los nuevos códigos de idioma incluyeron: amh (amárico), asm (asamés), aze_cyrl (azerbaiyano en escritura cirílica), bod (tibetano), bos (bosnio), ceb (cebuano), cym (galés), dzo (dzongkha), fas (persa), gle (irlandés), guj (gujarati), hat (haitiano y criollo haitiano), iku (inuktitut), jav (javanés), kat (georgiano), kat_old (georgiano antiguo), kaz (kazajo), khm (jemer central), kir (kirguís), kur (kurdo), lao (lao), lat (latín), mar (maratí), mya (birmano), nep (nepalí), ori (oriya), pan (punjabi), pus (pashto), san (sánscrito), sin (cingalés), srp_latn (serbio en escritura latina), syr (siríaco), tgk (tayiko), tir (tigrinya), uig (uigur), urd (urdu), uzb (uzbeko), uzb_cyrl. (uzbeko en escritura cirílica), yid (yiddish). Se puede entrenar para trabajar en otros idiomas.
Tesseract puede procesar texto de derecha a izquierda, como el árabe o el hebreo, muchos alfabetos índicos y CJK, bastante bien. Los índices de precisión se muestran en esta presentación del tutorial de Tesseract en DAS 2016, Santorini, a cargo de Ray Smith.
Tesseract es adecuado para usarse como backend y se puede utilizar para tareas de OCR más complicadas, incluido el análisis de diseño, mediante un frontend como OCRopus.
La salida de Tesseract tendrá una calidad muy pobre si las imágenes de entrada no se procesan previamente para adaptarse a ella: las imágenes (especialmente las capturas de pantalla) deben escalarse de manera que la altura x del texto sea de al menos 20 píxeles, cualquier rotación o inclinación debe corregirse o no se reconocerá ningún texto, los cambios de baja frecuencia en el brillo deben filtrarse con un filtro de paso alto o la etapa de binarización de Tesseract destruirá gran parte de la página y los bordes oscuros deben eliminarse manualmente o se malinterpretarán como caracteres.
Interfaz de usuario

Tesseract se ejecuta desde la interfaz de línea de comandos. Si bien Tesseract no se suministra con una interfaz gráfica de usuario, existen muchos proyectos independientes que proporcionan una interfaz gráfica de usuario para él. Un ejemplo común es OCRFeeder. Una interfaz gráfica de usuario de código abierto multiplataforma es gImageReader [1]
Recepción
En un artículo de julio de 2007 sobre Tesseract, Anthony Kay de Linux Journal lo denominó "una herramienta de línea de comandos peculiar que hace un trabajo excepcional". En ese momento, señaló que "Tesseract es un motor de OCR básico. El proceso de creación es un poco peculiar y el motor necesita algunas funciones adicionales (como la detección de diseño), pero la función principal, el reconocimiento de texto, es drásticamente mejor que cualquier otra que haya probado de la comunidad de código abierto. Es razonablemente fácil obtener excelentes tasas de reconocimiento utilizando nada más que un escáner y algunas herramientas de imagen, como The GIMP y Netpbm".
En noviembre de 2020, Brewster Kahle, del Archivo de Internet, elogió a Tesseract diciendo:
Tesseract ha dado un paso importante en los últimos años. Cuando evaluamos por última vez la exactitud no era tan buena como el OCR propietario, pero eso ha cambiado – hemos hecho evaluaciones y es tan bueno, y puede mejorar para nuestra aplicación debido a su nueva arquitectura.
Véase también
- LibTIFF
Referencias
- ^ a b Google (2008). "tesseract-ocr". GitHub. Retrieved 8 de marzo 2016.
- ^ "Release 5.5.0 · tesseract-ocr/tesseract". Retrieved 11 de noviembre 2024.
- ^ "Lenguajes apoyados en diferentes versiones de Tesseract". Archivado desde el original el 8 de agosto de 2022. Retrieved 21 de noviembre 2022.
- ^ "Documentación de texto – Archivos de formación... – Archivos de datos de lenguaje para Tesseract". Archivado desde el original el 5 de septiembre de 2022. Retrieved 21 de noviembre 2022.
- ^ a b Kay, Anthony (julio de 2007). "Tesseract: un motor de reconocimiento de caracteres ópticos de código abierto". Linux Journal. Retrieved 28 de septiembre 2011.
- ^ a b Vincent, Luc (agosto de 2006). "Anunciando Tesseract OCR". Archivado desde el original el 26 de octubre de 2006. Retrieved 26 de junio 2008.
- ^ a b c d e Canonical Ltd. (Febrero 2011). "OCR". Retrieved 11 de febrero 2011.
- ^ a b Anuncio Tesseract OCR - El blog oficial de Google
- ^ Willis, Nathan (septiembre de 2006). "El motor Tesseract OCR de Google es un salto cuántico hacia adelante". Archivado desde el original el 28 de mayo de 2022. Retrieved 18 de julio 2008.
- ^ "TESSERACT(1) Manual Page". GitHub. Retrieved 15 de marzo 2018.
- ^ Schmidt, Julia (1 diciembre 2021). "OCR Engine Tesseract 5.0 convierte a flotar para un entrenamiento y reconocimiento más rápidos • DEVCLASS". DEVCLASS. Retrieved 20 de diciembre 2021.
- ^ Rice Stephen V., Frank R. Jenkins, y Thomas A. Nartker La cuarta prueba anual de la precisión OCR, expervision.com, recuperada el 21 de mayo de 2013
- ^ Proyecto Tesseract (febrero de 2011). "Isue 263: parche para habilitar la salida hOCR". Archivado desde el original el 13 de noviembre de 2012. Retrieved 26 de febrero 2011.
- ^ "langdata - Datos de formación de fuentes para Tesseract para muchos idiomas". GitHub. Retrieved 6 de noviembre 2016.
- ^ "Training LSTM networks on 100 languages and test results" (PDF). GitHub. Retrieved 18 de marzo 2018.
- ^ Anuncie el sistema OCR de código abierto archivado 2007-04-14 en la máquina Wayback (Thomas Breuel, líder del proyecto OCRopus).
- ^ "FAQ - tesseract-ocr - Preguntas Frecuentes - Un motor OCR que fue desarrollado en HP Labs entre 1985 y 1995... y ahora en Google. - Google Project Hosting". Archivado desde el original el 23 de diciembre de 2015. Retrieved 30 de mayo 2014.
- ^ "MejorarCalidad - tesseract-ocr - Consejos para mejorar la calidad de su salida. - Un motor OCR que fue desarrollado en HP Labs entre 1985 y 1995... y ahora en Google. - Google Project Hosting". 27 enero 2014. Archivado desde el original el 20 de septiembre de 2015. Retrieved 30 de mayo 2014.
- ^ Google Code – Tesseract Readme
- ^ "3rdParty - tesseract-ocr - GUIs and Other Projects using Tesseract OCR". github.com. Retrieved 9 de marzo 2024.
- ^ "OCRFeeder". GNOME wiki. Retrieved 12 de enero 2019.
- ^ Brewster Kahle (23 de noviembre de 2020). "FOSS vuelve a ganar: Comunidades Libres y de Código Abierto pasan por los Periódicos del Siglo XIX (y Libros y Periódicos...) - Blogs de archivos de Internet". blog.archive.org. Retrieved 1 de diciembre 2020.
Enlaces externos
- Sitio oficial