Se ha publicado la versión del sistema de reconocimiento óptico de caracteres Tesseract 4.1, que admite el reconocimiento de caracteres UTF-8 y textos en más de 100 idiomas, incluidos ruso, kazajo, bielorruso y ucraniano. Los resultados pueden guardarse como texto sin formato o en formatos HTML (hOCR), ALTO (XML), PDF y TSV. El sistema fue inicialmente desarrollado entre 1985 y 1995 en el laboratorio de Hewlett Packard, y en 2005 el código fue abierto bajo la licencia Apache, desarrollándose posteriormente con la participación de empleados de Google. Los textos fuente del proyecto se distribuyen bajo la licencia Apache 2.0.
Tesseract incluye una utilidad de consola y la biblioteca libtesseract para integrar funciones de reconocimiento de texto en otras aplicaciones. Entre las interfaces GUI de terceros que soportan Tesseract, se pueden destacar gImageReader, VietOCR y YAGF. Se ofrecen dos motores de reconocimiento: el clásico, que reconoce texto a nivel de plantillas de caracteres individuales, y uno nuevo, basado en un sistema de aprendizaje automático con una red neuronal recurrente LSTM, optimizado para el reconocimiento de líneas completas y que permite un aumento significativo de la precisión. Se han publicado modelos entrenados para 123 idiomas. Para optimizar el rendimiento, se ofrecen módulos que utilizan OpenMP y las instrucciones SIMD AVX2, AVX, NEON o SSE4.1.
Principales mejoras en Tesseract 5.0:
- El cambio significativo en el número de versión se debe a cambios en la API que rompen la compatibilidad. En particular, la API pública libtesseract ya no está vinculada a tipos de datos propietarios, GenericVector y STRING, sino que ahora utiliza std::string y std::vector en el código.
- Se ha reorganizado el árbol de textos fuente. Los archivos de encabezado públicos se han movido al directorio include/tesseract.
- Se ha mejorado la gestión de memoria, reemplazando todas las llamadas a malloc y free por código C++. Se ha realizado una modernización general del código.
- Se han añadido optimizaciones para arquitecturas ARM y ARM64, utilizando instrucciones ARM NEON para acelerar los cálculos. Se ha llevado a cabo una optimización general del rendimiento para todas las arquitecturas.
- Se han implementado nuevos modos de entrenamiento de modelos y reconocimiento de texto, basados en cálculos en punto flotante. Estos nuevos modos ofrecen un mejor rendimiento y reducen el consumo de memoria. En el motor LSTM, el modo rápido float32 está habilitado por defecto.
- Se ha hecho el cambio al uso de normalización Unicode utilizando la forma NFC (Normalization Form Canonical).
- Se ha añadido una opción para configurar la granularidad de los registros (—loglevel).
- Se ha rediseñado el sistema de construcción basado en Autotools, que ahora se compila en modo no recursivo.
- La rama 'master' en Git ha sido renombrada a 'main'.
- Se ha añadido soporte para las nuevas versiones de macOS y sistemas Apple basados en el chip M1.
Fuente: opennet.ru
