Saltar al pie de página
USANDO IRONOCR

Tesseract OCR para múltiples idiomas (Tutorial para desarrolladores)

El OCR es una tecnología utilizada para cambiar documentos de diferente naturaleza en datos editables y buscables. Convierte imágenes escaneadas, archivos PDF y fotos de cámaras digitales en datos que pueden ser editados y buscados. Esta tecnología se utiliza extensamente para convertir documentos impresos en forma digital para edición, búsqueda y almacenamiento, reduciendo el espacio físico ocupado por los documentos. OCR tiene un papel enorme en la automatización de entrada de datos, ahorrando así mucho tiempo a las empresas y organizaciones al reducir el trabajo utilizado por los recursos humanos.

Es un proceso que utiliza técnicas avanzadas de aprendizaje automático y reconocimiento de patrones para extraer texto con precisión de las imágenes. Los últimos desarrollos relacionados con el OCR han aumentado su precisión, apoyando por tanto más idiomas y guiones complejos como el guión árabe. Muy necesario en finanzas, salud, legislación y educación, el OCR surgió como una herramienta indispensable donde procesar rápidamente varios documentos impresos era un requisito. Este artículo utilizará Tesseract para hacer OCR a imágenes en datos de múltiples idiomas.

Cómo utilizar Tesseract OCR con varios idiomas

  1. Primero, instala el paquete NuGet IronOCR/Tesseract dentro de tu proyecto .NET.
  2. Cree una instancia de la clase IronTesseract, que inicializará el motor de OCR.
  3. La propiedad de idioma soporta más de un idioma.
  4. Especifique la ruta del archivo de imagen que desea procesar y luego cree un objeto OcrInput.
  5. Ahora, realice el OCR en la imagen de entrada utilizando la función Read de la instancia IronTesseract.
  6. Toma el resultado y muestra el texto reconocido.

¿Qué es Tesseract ?

Tesseract es un motor de Reconocimiento Óptico de Caracteres abierto desarrollado por Hewlett-Packard y luego mantenido por Google. Es famoso por su alta precisión y adaptabilidad, convirtiéndolo en uno de los OCR más destacados. Tesseract soporta detección de escritura, reconoce texto en muchos idiomas, y puede manejar múltiples idiomas; por lo tanto, generalmente se usa para proyectos que requieren documentos multilingües y soporte.

El motor OCR de Tesseract trabaja sobre la información contenida en cualquier píxel individual de la imagen, siguiendo patrones que representan caracteres, palabras y oraciones que finalmente se convierten en texto legible por máquina. Los muchos tipos de archivos de imagen que soporta, como TIFF, JPEG, y PNG, permiten que Tesseract produzca texto en formatos como texto plano, HTML y PDF buscable.

Una de las ventajas significativas de Tesseract es que puede ser entrenado para ser sensible a fuentes particulares o nuevos idiomas añadidos. También es frecuentemente usado en varias aplicaciones, que van desde extracción de texto simple hasta tareas complejas en la digitalización de documentos históricos, procesamiento de facturas, o incluso software de accesibilidad que permite leer para personas con discapacidad visual.

Crear un nuevo proyecto en Visual Studio

Abre el programa Visual Studio. Al abrir el programa, procede al "menú archivo". Bajo el "menú archivo", está la opción "nuevo proyecto." Bajo "nuevo proyecto", haz clic en "Aplicación de Consola." En este post, crearemos documentos PDF usando un programa de consola.

Tesseract OCR para varios idiomas (tutorial para desarrolladores): Figura 1: Crear un nuevo proyecto

Ingresa el nombre de tu proyecto y la ubicación del archivo en los cuadros de texto provistos. Luego, como se muestra en la imagen abajo, haz clic en el botón Crear y selecciona cuál .NET Framework necesitas.

Tesseract OCR para varios idiomas (tutorial para desarrolladores): Figura 2: seleccione .NET Framework junto con proporcionar un proyecto y una ubicación para guardarlo.

Ahora que se ha seleccionado la versión de la aplicación, el proyecto de Visual Studio creará su estructura. Si ha elegido la versión de consola, Windows o web, se abrirá el archivo program.cs para agregar código y compilar/ejecutar la aplicación.

Instalar Tesseract OCR for .NET

El primer paso es descargar e instalar el software Tesseract OCR en tu computadora. Aquí está el repositorio oficial de GitHub de Tesseract con el instalador de Tesseract: https://github.com/tesseract-ocr/tesseract.

Lo mejor sería obtener Tesseract OCR en tu computadora siguiendo las instrucciones de instalación específicas para tu sistema operativo, ya sea Windows, macOS o Linux. Una vez instalado, agrega el paquete Tesseract.NET a tu proyecto C# usando el Administrador de Paquetes NuGet de Visual Studio.

Abre el Administrador de Paquetes NuGet en tu proyecto de Visual Studio desde Herramientas -> Administrador de Paquetes NuGet -> Administrar Paquetes NuGet para Solución. Después, busca "Tesseract" en el Administrador de Paquetes NuGet para obtener ya sea el paquete "Tesseract" o "Tesseract.NET". Selecciona este paquete y haz clic en el botón Instalar para instalarlo en tu proyecto.

Tesseract OCR para varios idiomas (tutorial para desarrolladores): Figura 3: búsqueda de Tesseract en la pestaña de exploración

Tesseract OCR using C

Debes configurar Tesseract en tu proyecto C# para especificar la ubicación del ejecutable del OCR de Tesseract y los archivos de datos de idioma después de instalar el envoltorio Tesseract.NET. Aquí hay un ejemplo:

using System;
using System.Drawing;
using Tesseract;

class Program
{
    static void Main()
    {
        // Set the path to the Tesseract data files (traineddata files)
        string tessDataPath = @"./tessdata"; // Ensure this directory contains the language data files

        // Load the image
        string imagePath = @"path_to_your_image.png";
        using (var img = Pix.LoadFromFile(imagePath))
        {
            // Add languages to the Tesseract engine
            using (var engine = new TesseractEngine(tessDataPath, "eng+spa+fra", EngineMode.Default))
            {
                using (var page = engine.Process(img))
                {
                    // Extract the text
                    string text = page.GetText();
                    Console.WriteLine("Recognized Text:");
                    Console.WriteLine(text);
                }
            }
        }
    }
}
using System;
using System.Drawing;
using Tesseract;

class Program
{
    static void Main()
    {
        // Set the path to the Tesseract data files (traineddata files)
        string tessDataPath = @"./tessdata"; // Ensure this directory contains the language data files

        // Load the image
        string imagePath = @"path_to_your_image.png";
        using (var img = Pix.LoadFromFile(imagePath))
        {
            // Add languages to the Tesseract engine
            using (var engine = new TesseractEngine(tessDataPath, "eng+spa+fra", EngineMode.Default))
            {
                using (var page = engine.Process(img))
                {
                    // Extract the text
                    string text = page.GetText();
                    Console.WriteLine("Recognized Text:");
                    Console.WriteLine(text);
                }
            }
        }
    }
}
$vbLabelText   $csharpLabel

El código anterior explica cómo el OCR de Tesseract puede detectar y extraer texto de imágenes que contienen múltiples idiomas. Inicialmente establece la ruta a los archivos de datos de idioma de Tesseract. Los archivos .traineddata necesarios para cada idioma correspondiente, como inglés, español y francés, deben estar presentes en la ruta.

Tesseract OCR para varios idiomas (tutorial para desarrolladores): Figura 4 - Ejemplo de entrada

Carga una imagen especificada por imagePath utilizando el método Pix.LoadFromFile. Más específicamente, se esperaría una imagen con texto en inglés, español y francés. Luego, se inicializará una instancia de TesseractEngine con rutas a archivos de datos de idioma y los idiomas de interés, "eng+spa+fra", para reconocer el texto. El motor trabajará en modo predeterminado.

Tesseract OCR para varios idiomas (tutorial para desarrolladores): Figura 5 - Ejemplo de salida de consola

Luego, la imagen se procesará utilizando el método Process de la clase motor, donde se analiza, se extrae el contenido de texto y se almacena en la variable text. El texto extraído se imprime entonces a la consola, creando una visualización de cómo funciona el OCR.

¿Qué es IronOCR ?

IronOCR es una biblioteca exclusiva de OCR enfocada en .NET. Añade capacidades de OCR a aplicaciones .NET y permite la extracción de texto de imágenes, documentos escaneados, PDFs, y cualquier otro medio visual. Conduciendo el reconocimiento de texto de última generación con el extremadamente exitoso motor Tesseract, IronOCR también incluye varias características adicionales que lo hacen adecuado para su uso en aplicaciones empresariales.

IronOCR ofrece un tremendo soporte de idiomas: más de 120 idiomas con soporte para la detección automática de idiomas y procesamiento de documentos que contienen múltiples idiomas simultáneamente. Esto hace que IronOCR sea muy versátil y desplegable globalmente, donde el procesamiento de documentos multilingües es crucial.

Tesseract OCR para varios idiomas (tutorial para desarrolladores): Figura 6 - IronOCR: la biblioteca de OCR de C#

Por otro lado, IronOCR enfatiza la simplicidad en el uso e integración. Su API extremadamente fácil de usar está complementada por documentación detallada y un conjunto de proyectos de ejemplo que ayudarán a cualquier desarrollador a comenzar rápidamente. Soporta un amplio array de formatos de imagen y documentos PDF. Las características avanzadas de preprocesamiento de imagen, reducción de ruido y corrección de errores integradas mejoran la precisión y el rendimiento del OCR.

Instalar IronOCR

Puedes instalar los paquetes directamente en tu solución usando la herramienta de gestión de Paquetes NuGet de Visual Studio. La siguiente captura de pantalla muestra cómo abrir el Administrador de Paquetes NuGet.

Tesseract OCR para varios idiomas (tutorial para desarrolladores): Figura 7: Cómo llegar al administrador de paquetes NuGet a través de Visual Studio

Tiene un cuadro de búsqueda incrustado, que muestra una lista de paquetes del sitio web de NuGet. Como se ve en la captura de pantalla a continuación, buscaremos en el administrador de paquetes la frase IronOCR:

Tesseract OCR para varios idiomas (tutorial para desarrolladores): Figura 8: búsqueda de IronOCR en el explorador de soluciones

Los resultados de búsqueda podrían ofrecer una lista de posibles soluciones. Necesitarás seleccionar el paquete de solución necesario para instalar.

También, Instala los paquetes de idioma de Tesseract necesarios uno por uno, como el de abajo para este ejemplo.

En este ejemplo, utilizaremos códigos de idioma en español, francés e inglés. El inglés es el paquete de idioma predeterminado y no requiere instalación.

Tesseract OCR para varios idiomas (Tutorial para desarrolladores): Figura 9 - Instalar el paquete de idioma francés

Instala el español desde el paquete NuGet.

Tesseract OCR para varios idiomas (Tutorial para desarrolladores): Figura 10 - Instalar el paquete de idioma español

Lea varios idiomas con IronOCR y el motor Tesseract

El siguiente ejemplo demuestra cómo reconocer texto en múltiples idiomas desde una imagen usando C# y los motores IronOCR y Tesseract.

using IronOcr;

class Program
{
    static void Main(string[] args)
    {
        // Initialize IronTesseract engine
        var Ocr = new IronTesseract();

        // Add multiple languages
        Ocr.Language = OcrLanguage.English + OcrLanguage.Spanish + OcrLanguage.French;

        // Path to the image
        var inputFile = @"path\to\your\image.png";

        // Read the image and perform OCR
        using (var input = new OcrInput(inputFile))
        {
            // Perform OCR
            var result = Ocr.Read(input);

            // Display the result
            Console.WriteLine("Recognized Text:");
            Console.WriteLine(result.Text);
        }
    }
}
using IronOcr;

class Program
{
    static void Main(string[] args)
    {
        // Initialize IronTesseract engine
        var Ocr = new IronTesseract();

        // Add multiple languages
        Ocr.Language = OcrLanguage.English + OcrLanguage.Spanish + OcrLanguage.French;

        // Path to the image
        var inputFile = @"path\to\your\image.png";

        // Read the image and perform OCR
        using (var input = new OcrInput(inputFile))
        {
            // Perform OCR
            var result = Ocr.Read(input);

            // Display the result
            Console.WriteLine("Recognized Text:");
            Console.WriteLine(result.Text);
        }
    }
}
$vbLabelText   $csharpLabel

El programa C# anterior usa la biblioteca IronOCR para realizar el Reconocimiento Óptico de Caracteres en una imagen que contiene caracteres en inglés, español y francés. El programa comienza importando el espacio de nombres requerido para IronOCR y declarando una clase llamada Program con un método Main, que es el punto de entrada de la aplicación.

En el método Main, se crea una instancia de la clase IronTesseract y se asigna a la variable Ocr. La propiedad Language está configurada para incluir inglés, español y francés mediante la combinación de OcrLanguage.English, OcrLanguage.Spanish y OcrLanguage.French. Esto asegura que el motor OCR pueda reconocer y procesar texto en cualquiera de estos tres idiomas.

La ruta al archivo de imagen de entrada se establece mediante la variable inputFile. Luego, la imagen se carga dentro de una declaración using con una instancia de la clase OcrInput para la gestión y eliminación adecuadas de los recursos. Finalmente, se llama al método Read de la instancia IronTesseract con el objeto de entrada para realizar OCR en la imagen.

Luego, el texto reconocido se imprime en la consola utilizando el método Console.WriteLine. Este programa ilustra un método eficaz para usar la capacidad multilingüe de IronOCR para extraer texto de imágenes que contienen palabras en diferentes idiomas.

Tesseract OCR para varios idiomas (tutorial para desarrolladores): Figura 11 - Salida de texto reconocido

¿Por qué IronOCR es mejor que Tesseract?

IronOCR es más fácil de usar en comparación con Tesseract y ofrece algunas ventajas. Primero, IronOCR proporciona excelente soporte de idiomas con 125 idiomas directamente desde el principio, mientras que Tesseract puede requerir configuraciones complejas y entrenamiento adicional para un rendimiento óptimo con alguno de sus 100 idiomas soportados. Además, IronOCR se integra fácilmente en aplicaciones .NET y viene con documentación completa.

IronOCR tiene una curva de aprendizaje menos pronunciada y requiere menos configuración técnica que Tesseract. También ofrece características avanzadas de preprocesamiento de imagen y actualizaciones regulares para mejorar la precisión y fiabilidad con tipos de documentos complejos. IronOCR es una gran opción para desarrolladores que buscan una solución sólida, versátil y de fácil aplicación de OCR.

Conclusión

Tesseract OCR para varios idiomas (tutorial para desarrolladores): Figura 12 - Página de licencias de IronOCR

Mientras que tanto Tesseract como IronOCR son tecnologías de OCR robustas, cada una tiene capacidades y fortalezas únicas. Tesseract, siendo de código abierto, es confiable para cualquiera que busque una solución gratuita y tiene comunidades activas y mejora continua.

En contraste, IronOCR es una biblioteca propietaria para el .NET Framework, ofreciendo una mejor experiencia de usuario con integración más fácil y soporte para la mayoría de los tipos de archivos de imagen. También funciona bien en reconocimiento de texto, particularmente con contenido de imagen de baja calidad. IronOCR admite plenamente muchos idiomas y tiene características adicionales que lo hacen más fácil de usar.

IronOCR ofrece una edición de desarrollo rentable y cuando se compra, proporciona una licencia de por vida. El paquete IronOCR comienza a partir de $liteLicense como un costo único para múltiples sistemas, ofreciendo un excelente valor por dinero y soporte de ingenieros en línea 24/7 para usuarios con licencia. Para obtener más información, consulta el sitio web de IronOCR.

Preguntas Frecuentes

¿Cómo puedo usar Tesseract OCR con múltiples idiomas en un proyecto .NET?

Puede usar la biblioteca IronOCR, que simplifica la integración de Tesseract OCR para procesar imágenes con texto en múltiples idiomas. Agregue el paquete NuGet de IronOCR/Tesseract a su proyecto .NET y configure los idiomas usando la propiedad Language de la clase IronTesseract.

¿Qué ventajas ofrece IronOCR sobre el Tesseract estándar?

IronOCR proporciona una API más amigable para aplicaciones .NET, admite más de 120 idiomas de forma predeterminada y ofrece un procesamiento de imagen avanzado para mejorar la precisión. Se integra perfectamente con proyectos .NET, ofreciendo documentación extensa y soporte para desarrolladores.

¿Puede IronOCR manejar documentos en múltiples idiomas simultáneamente?

Sí, IronOCR puede procesar documentos multilingües configurando varios idiomas en la propiedad Language. Esta característica es particularmente útil para aplicaciones globales donde los documentos pueden contener texto en diferentes idiomas.

¿Cuál es el proceso para configurar IronOCR en un proyecto C#?

Para configurar IronOCR en un proyecto C#, primero instale el paquete NuGet de IronOCR/Tesseract a través del Administrador de paquetes NuGet de Visual Studio. Luego, cree una instancia de la clase IronTesseract en su código y use sus métodos para procesar imágenes que contengan texto.

¿Cómo mejora IronOCR la precisión de los resultados OCR?

IronOCR mejora la precisión a través de técnicas avanzadas de procesamiento de imágenes, que mejoran la calidad de la imagen antes de extraer el texto. Esta característica ayuda a reconocer con precisión texto de imágenes de calidad variable.

¿Qué tipos de documentos puede procesar IronOCR?

IronOCR puede procesar una variedad de tipos de documentos, incluidas imágenes escaneadas, PDFs y fotos tomadas por cámaras digitales. Convierte estos documentos en formatos de datos editables y buscables.

¿Es IronOCR adecuado para automatizar tareas de entrada de datos?

Sí, IronOCR es altamente efectivo para automatizar la entrada de datos convirtiendo documentos impresos en texto digital, reduciendo la labor manual y ahorrando tiempo. Se utiliza ampliamente en sectores como finanzas, salud y educación.

¿Cómo apoya IronOCR a los desarrolladores en la implementación de la tecnología OCR?

IronOCR proporciona una documentación extensa, una API amigable y soporte en línea 24/7, lo que facilita a los desarrolladores implementar la tecnología OCR en sus aplicaciones .NET.

¿Cuáles son los casos de uso principales para IronOCR?

IronOCR se utiliza para digitalizar documentos impresos, automatizar la entrada de datos, procesar facturas y desarrollar software de accesibilidad para usuarios con discapacidad visual. Es aplicable en diversas industrias, incluidas finanzas, salud y educación.

Kannaopat Udonpant
Ingeniero de Software
Antes de convertirse en Ingeniero de Software, Kannapat completó un doctorado en Recursos Ambientales de la Universidad de Hokkaido en Japón. Mientras perseguía su grado, Kannapat también se convirtió en miembro del Laboratorio de Robótica de Vehículos, que es parte del Departamento de Ingeniería ...
Leer más

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me