COMPARACIóN CON OTROS COMPONENTES

Comparación entre Google OCR e IronOCR

Publicado en 16 de mayo, 2023
Compartir:

OCR significa reconocimiento óptico de caracteres. Permite convertir un archivo de imagen en texto codificado por máquina. El ordenador siempre guarda los documentos escaneados como archivos de imagen. Los datos de estos archivos de imagen no se pueden buscar, editar ni guardar en formato de texto con un editor de texto normal o incluso con una aplicación de tratamiento de textos. El procesamiento OCR ayuda a convertir estas imágenes en texto legible por máquina para su posterior procesamiento por parte de sus usuarios.

En esta era moderna, los documentos escaneados que se comparten a través de int.NET están en formato digital y, en su mayoría, en forma de PDF o imágenes. Hay un montón de recursos en línea que convierten la imagen en texto. Sin embargo, la mayoría de las empresas requieren esta funcionalidad en sus aplicaciones informáticas. Teniendo esto en cuenta, hay muchas bibliotecas que proporcionan tecnología de procesamiento de OCR para incrustar en aplicaciones de software.

En este artículo, vamos a discutir dos de las librerías OCR más populares para C#. Estos son:

  • IronOCR
  • Google Cloud Vision OCR(API de visión)

Introducción

IronOCR - Biblioteca C

IronOCR para .NET es una biblioteca C# para escanear, buscar y leer imágenes y archivos PDF. Toma una imagen o un archivo PDF como entrada y utiliza el último motor de OCR .NET personalizado Tesseract 5 para generar texto, datos estructurados o documentos PDF con capacidad de búsqueda. Su Tesseract está disponible en más de 125 idiomas junto con soporte multiplataforma en .NET Core, Standard, desde 2.0 hasta 7.

IronOCR es una API fácil de usar que permite a los desarrolladores de C# convertir imágenes en texto automáticamente, simplemente utilizando la clase IronTesseract y la clave API. Prioriza la rapidez, la precisión y la facilidad de uso. También ayuda a Computer Vision API a encontrar texto con un conjunto de modelos entrenados.

Otra potente característica de IronOCR es que puede escanear códigos de barras y códigos QR de todos los archivos de imagen y leer su texto. A continuación se indican otras características importantes de IronOCR.

Características

  • Idiomas internacionales: Más de 125 idiomas y compatibilidad con idiomas personalizados con un rendimiento de alta calidad y rapidez.
  • Lectura de texto y códigos de barras: Lectura de texto y números en varios idiomas a la vez
  • Documentos especializados: Lectura específica de texto de recibos, cheques y facturas.
  • Lectura desde muchos formatos: Imágenes(PNG, JPG, GIF, TIFF, BMP), System.Drawing Objects, Streams, documentos PDF(DPI objetivo optimizado)
  • Filtros: Asistente de filtros, Corrección de imagen, Corregir orientación de imagen, Corregir colores de imagen
  • Salida de datos simple: .NET cadenas de texto, código de barras y datos QR, imágenes

    Ahora, echemos un vistazo a Google Cloud Vision API.

Google Cloud Vision OCR

API de Google Cloud Vision es una librería cliente de Google Cloud OCR que soporta lenguaje C#. Permite a los desarrolladores de C# integrar fácilmente las funciones de detección de Computer Vision en las aplicaciones de software. Realiza OCR y detecta texto de archivos de imagen, etiquetas de imagen, detección de caras, detección de puntos de referencia.

Google Cloud Vision API utiliza las API REST y RPC para proporcionar un potente ML preentrenado(aprendizaje automático) modelo. Con Cloud import vision API, puede clasificar rápidamente imágenes en millones de categorías ya predefinidas. También puede detectar objetos, leer texto de documentos impresos y texto manuscrito.

Características

  • Detección de texto en imágenes: OCR una imagen para el reconocimiento de texto, convertir a código de lenguaje de máquina
  • Detección de texto en documentos: OCR de un archivo(PDF/TIFF)texto denso
  • Detección de puntos de referencia: Devuelve las coordenadas del objeto detectado
  • Detección de logotipos: Devuelve una descripción textual
  • Detección de etiquetas: Devuelve etiquetas generalizadas para la imagen

    El resto del artículo es el siguiente:

  1. Creación de un proyecto de Visual Studio

  2. Instalación de IronOCR

  3. Instalación de Google OCR

  4. Imagen a texto

  5. Código de barras y QR a texto

  6. PDF a texto

  7. Licencias

  8. Conclusión

1. Creación de un proyecto de Visual Studio

En este tutorial, vamos a utilizar la última versión de Visual Studio 2022. Por lo tanto, asumo que ya lo has descargado e instalado para C#. Si no, puede descargarlo desdeSitio web de Visual Studio.

Ahora, necesitamos crear un proyecto Console para empezar con ambas librerías. Siga los pasos para crear un proyecto:

  • Abre tu Visual Studio 2022.
  • Haga clic en Crear un nuevo proyecto.

    How to Print Barcode in C# Windows Application Figura 1 - Crear un nuevo proyecto

  • Seleccione Aplicación de Consola C# de las opciones dadas.

    Cómo imprimir códigos de barras en C# Aplicación Windows Figura 2 - Aplicación de consola

  • Configure su nuevo proyecto con un nombre y la ubicación. Por ejemplo, "OCRProject".
  • Haga clic en Siguiente.

    How to Print Barcode in C# Windows Application Figura 3 - Configurar el proyecto

  • De la información adicional, seleccione .NET 6.0 Framework por ser la versión más estable.

    How to Print Barcode in C# Windows Application Figura 4 - Información adicional

  • Ahora, haga clic en Crear y el proyecto se creará en la ubicación especificada.

    A continuación, instalaremos las bibliotecas en nuestro proyecto para compararlas.

2. Instalación de IronOCR

Hay varias formas de instalar la biblioteca IronOCR. Veámoslos uno por uno.

2.1. Uso del gestor de paquetes NuGet de Visual Studio

NuGet es el gestor de paquetes para descargar e instalar dependencias en tu proyecto. Sus paquetes contienen el código compilado(DLL) y el archivo de manifiesto. Acceda a él mediante el siguiente método:

  • Haga clic en la pestaña Herramientas
  • Ampliación de la opción Gestor de paquetes NuGet
  • Haga clic en Administrar paquetes NuGet para la solución

    How to Print Barcode in C# Windows Application Figura 5 - Gestor de paquetes NuGet

  • o, haga clic con el botón derecho del ratón en Explorador de soluciones
  • Haga clic en Gestionar paquetes NuGet

    Cómo imprimir códigos de barras en C# Aplicación Windows Figura 6 - Explorador de soluciones

    Ahora se abrirá la ventana del Gestor de paquetes NuGet. Busque IronOCR y haga clic en Instalar.

    Cómo imprimir códigos de barras en C# Aplicación Windows Figura 7 - IronOCR

2.2. Descargar desde el sitio web de NuGet

Puede descargarse directamente del sitio web oficial de NuGet. Siga los pasos indicados:

  1. Haga clic en el enlace "".

  2. Haga clic en la opción Descargar paquete en la parte derecha de la página.

  3. Abra el paquete descargado y comenzará la instalación.

  4. Por último, vuelva a cargar la solución y ya está.

2.3. Descarga a través de la página web de IronOCR

Sólo tiene que visitar el sitio web de Iron Software y navegar hasta la página web de IronOCR for .NET. Desplácese hasta la parte inferior y haga clic en Descargar DLL o Descargar instalador de Windows.

Cómo imprimir códigos de barras en C# Aplicación Windows Figura 8 - Iron Software Website

Se descargará un archivo Zip. Extráigalo y añádalo a su archivo de proyecto o ejecute el instalador de Windows. Siga los siguientes pasos para añadirlo a su proyecto.

  1. Haga clic con el botón derecho en las dependencias del proyecto en Visual Studio desde el Explorador de soluciones.

  2. A continuación, seleccione la opción Añadir referencia de proyecto.

  3. Busque la ubicación del archivo DLL descargado.

  4. Por último, pulse OK para añadir la referencia del proyecto.

2.4. Uso del símbolo del sistema en Visual Studio

  1. Vaya a la pestaña Herramientas de Visual Studio.

  2. Opción de ampliación del gestor de paquetes NuGet.

  3. Seleccione Package Manager Console y escriba el siguiente comando:
    Install-Package IronOCR

Esto descargará e instalará automáticamente IronOCR en su proyecto.

Ahora, estamos listos para utilizar IronOCR en nuestro proyecto.

2.5. Añadir los espacios de nombres IronOCR necesarios

Sólo se requiere un espacio de nombres y es necesario añadirlo en la parte superior del archivo de código fuente donde necesitamos acceder a sus funciones.


    using IronOCR;

    using IronOCR;
Imports IronOCR
VB   C#

Ahora, vamos a instalar Google Vision OCR.

3. Instalación de Google OCR

Para poder utilizar la API de visión en su proyecto C#, debe cumplir los siguientes requisitos previos

  1. Crear una cuenta de Google

  2. Crear un nuevo proyecto desde Google Cloud Console

  3. Activar facturación

  4. Activar Vision API

  5. Crear cuenta de servicio y establecer las credenciales

  6. Descargar las credenciales clave de la cuenta de servicio en formato de archivo JSON

    En la documentación oficial puede consultar la configuración y los requisitos para utilizar Google Cloud Vision.aquí.

    Ahora, para instalar la biblioteca cliente de Google Cloud para realizar el procesamiento OCR en Visual Studio, necesitamos utilizar NuGet Package Manager.

3.1. Uso del gestor de paquetes NuGet

Acceda a él mediante el siguiente método:

  • Haga clic en la pestaña Herramientas
  • Ampliación de la opción Gestor de paquetes NuGet
  • Haga clic en Administrar paquetes NuGet para soluciones

    How to Print Barcode in C# Windows Application Figura 9 - Pestaña Herramientas

  • o, haga clic con el botón derecho del ratón en Explorador de soluciones
  • Haga clic en Gestionar paquetes NuGet

    How to Print Barcode in C# Windows Application Figura 10 - Gestión de paquetes NuGet

    Ahora se abrirá la ventana del Gestor de paquetes NuGet. Busque Google Cloud Vision OCR y haga clic en Instalar.

    Cómo imprimir códigos de barras en C# Aplicación Windows Figura 11 - Google Cloud Vision OCR

3.2. Adición del espacio de nombres de la API Google Vision

Incluye el siguiente espacio de nombres para utilizar la API Google OCR Vision:


    using Google.Cloud.Vision.V1;

    using Google.Cloud.Vision.V1;
Imports Google.Cloud.Vision.V1
VB   C#

Establezca también la variable de entorno con las credenciales clave descargadas en el archivo JSON.


    Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");

    Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json")
VB   C#

Ahora, todo está configurado y listo para usar.

4. Imágenes a texto

Leer datos de imágenes es una tarea bastante tediosa. La resolución y la calidad de las imágenes desempeñan un papel importante en la extracción de contenidos. Ambas bibliotecas ofrecen reconocimiento óptico de caracteres(OCR) para extraer texto de las imágenes.

4.1. Utilización de IronOCR

IronOCR facilita a los desarrolladores la lectura del contenido de un archivo de imagen con su potente clase IronTesseract. Aquí utilizaremos la imagen PNG paraleer texto de un archivo de imagen y el código es el siguiente:


    var OCR = new IronTesseract();
    using (var Input = new OcrInput()){
        Input.AddImage("test-files/employmentapp.png");
        var Result = OCR.Read(Input);
        Console.WriteLine(Result.Text);
    }

    var OCR = new IronTesseract();
    using (var Input = new OcrInput()){
        Input.AddImage("test-files/employmentapp.png");
        var Result = OCR.Read(Input);
        Console.WriteLine(Result.Text);
    }
Dim OCR = New IronTesseract()
	Using Input = New OcrInput()
		Input.AddImage("test-files/employmentapp.png")
		Dim Result = OCR.Read(Input)
		Console.WriteLine(Result.Text)
	End Using
VB   C#

IMAGEN DE ENTRADA

How to Print Barcode in C# Windows Application Figura 12 - Entrada con cuadros delimitadores

SALIDA

How to Print Barcode in C# Windows Application Figura 13 - Salida de imagen con palabras individuales

El resultado de IronOCR coincide con la imagen original que se le ha proporcionado. El código es limpio y fácil de entender, sin tecnicismos.

4.2. Uso de Google OCR

Google Cloud Vision OCR también convierte la imagen en texto con diferentes fuentes. En primer lugar, tenemos que crear un cliente utilizando el archivo de credenciales. A continuación, utilizando este objeto cliente podemos llamar al método DetectText para obtener una respuesta en forma de anotación. El código es el siguiente:


    Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
    var client = ImageAnnotatorClient.Create();
    var image = Image.FromFile("test-files/employmentapp.png");
    var response = client.DetectText(image);
    foreach (var annotation in response)
    {
        if (annotation.Description != null)
        {
            Console.WriteLine(annotation.Description);
        }
    }

    Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
    var client = ImageAnnotatorClient.Create();
    var image = Image.FromFile("test-files/employmentapp.png");
    var response = client.DetectText(image);
    foreach (var annotation in response)
    {
        if (annotation.Description != null)
        {
            Console.WriteLine(annotation.Description);
        }
    }
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json")
	Dim client = ImageAnnotatorClient.Create()
	Dim image As System.Drawing.Image = System.Drawing.Image.FromFile("test-files/employmentapp.png")
	Dim response = client.DetectText(image)
	For Each annotation In response
		If annotation.Description IsNot Nothing Then
			Console.WriteLine(annotation.Description)
		End If
	Next annotation
VB   C#

Se da la misma imagen como entrada para comparar los resultados de ambas bibliotecas.

Cómo imprimir códigos de barras en la aplicación C# Windows Figura 14 - Salida

De la salida anterior, se puede ver claramente que, IronOCR conserva los formatos de salida de imagen. Aunque Google OCR ha proporcionado un texto de salida preciso, no se conserva el formato de la tabla. IronOCR ha conservado el formato de la tabla exactamente igual que en la imagen.

5. Código de barras y código QR a texto

5.1. Utilización de IronOCR

IronOCR proporciona una característica única y útil en la lectura de imágenes, es decir, puede leer códigos de barras y códigos QR. Puede detectar códigos de barras y mostrar su valor con facilidad. En primer lugar, establezca la configuración ReadBarCodes en true y, a continuación, itere a través de cada uno de los códigos de barras en los resultados del OCR. A continuación se indica el código para leer códigos de barras:


    var OCR = new IronTesseract();
    OCR.Configuration.ReadBarCodes = true;
    using (var input = new OcrInput()){   
        input.AddImage("test-files/Barcode.png");   
        var Result = OCR.Read(input);   
        foreach (var Barcode in Result.Barcodes){
                Console.WriteLine(Barcode.Value);
        }
    }

    var OCR = new IronTesseract();
    OCR.Configuration.ReadBarCodes = true;
    using (var input = new OcrInput()){   
        input.AddImage("test-files/Barcode.png");   
        var Result = OCR.Read(input);   
        foreach (var Barcode in Result.Barcodes){
                Console.WriteLine(Barcode.Value);
        }
    }
Dim OCR = New IronTesseract()
	OCR.Configuration.ReadBarCodes = True
	Using input = New OcrInput()
		input.AddImage("test-files/Barcode.png")
		Dim Result = OCR.Read(input)
		For Each Barcode In Result.Barcodes
				Console.WriteLine(Barcode.Value)
		Next Barcode
	End Using
VB   C#

IMAGEN DE ENTRADA

Cómo imprimir códigos de barras en C# Aplicación Windows Figura 15 - Entrada

SALIDA

Cómo imprimir código de barras en C# Aplicación Windows Figura 16 - Salida de imagen

Los tres códigos de barras de la entrada se leen correctamente y se muestra su texto oculto.

5.2. Uso de Google OCR

Google Vision API aún no permite esta funcionalidad. La lectura de códigos de barras puede ser útil en aplicaciones informáticas. Sin embargo, Google OCR permite extraer texto manuscrito y obtener texto de un documento escaneado como archivo de imagen. El código para la detección de etiquetas es el siguiente:


    var client = ImageAnnotatorClient.Create();
    var image = Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg");
    var labels = client.DetectLabels(image);

    Console.WriteLine("Labels (and confidence score):");
    Console.WriteLine(new String('=', 30));

    foreach (var label in labels)
    {
        Console.WriteLine($"{label.Description} ({(int)(label.Score * 100)}%)");
    }

    var client = ImageAnnotatorClient.Create();
    var image = Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg");
    var labels = client.DetectLabels(image);

    Console.WriteLine("Labels (and confidence score):");
    Console.WriteLine(new String('=', 30));

    foreach (var label in labels)
    {
        Console.WriteLine($"{label.Description} ({(int)(label.Score * 100)}%)");
    }
Imports System

Dim client = ImageAnnotatorClient.Create()
	Dim image = System.Drawing.Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg")
	Dim labels = client.DetectLabels(image)

	Console.WriteLine("Labels (and confidence score):")
	Console.WriteLine(New String("="c, 30))

	For Each label In labels
		Console.WriteLine($"{label.Description} ({CInt(Math.Truncate(label.Score * 100))}%)")
	Next label
VB   C#

SALIDA

How to Print Barcode in C# Windows Application Figura 17 - Salida de detección de etiquetas

6. PDF a texto

6.1. Utilización de IronOCR

Leer archivos PDF es tan fácil como leer archivos de imagen en IronOCR. Sólo tienes que cambiar el método AddImage por AddPdf en el código de lectura de imágenes. El código es el siguiente:


    var OCR = new IronTesseract();
    using (var Input = new OcrInput()){
        Input.AddPdf("test-files/example.PDF");
        var Result = OCR.Read(Input);
        Console.WriteLine(Result.Text);
    }

    var OCR = new IronTesseract();
    using (var Input = new OcrInput()){
        Input.AddPdf("test-files/example.PDF");
        var Result = OCR.Read(Input);
        Console.WriteLine(Result.Text);
    }
Dim OCR = New IronTesseract()
	Using Input = New OcrInput()
		Input.AddPdf("test-files/example.PDF")
		Dim Result = OCR.Read(Input)
		Console.WriteLine(Result.Text)
	End Using
VB   C#

SALIDA

El texto extraído tiene el mismo formato que el archivo PDF.

How to Print Barcode in C# Windows Application Figura 18 - Salida de PDF a texto

6.2. Uso de Google OCR

Google OCR también permite extraer texto de documentos PDF/TIFF. Sin embargo, sólo detecta el texto si el archivo está en Google Cloud Storage. Para ello, debes crear un bucket de Google Storage. El código para C# no es sencillo y es bastante largo de implementar aquí. No hay ejemplos disponibles para C# para detectar textos en ficheros. Puede echar un vistazo aCódigo Java como referencia para probarlo.

7. Licencias

IronOCR es gratuito para fines de desarrollo, pero requiere licencia para uso comercial. También ofrece una prueba gratuita para que compruebes todo su potencial para tus necesidades. El paquete Lite parte de $749 con unprueba gratuita. IronOCR ofrece 1 año de soporte y actualizaciones gratuitas del producto y 399 dólares anuales a partir de entonces. Todas las licencias son perpetuas, lo que significa que se compran una sola vez y sin cargos ocultos. También puede optar por la cobertura de redistribución libre de derechos para productos SaaS y OEM con una única compra de 199 USD. Para más información sobre paquetes de licencias y planes de precios, visiteaquí.

How to Print Barcode in C# Windows Application Figura 19 - Licencia IronOCR

Los planes de precios de Google Cloud Vision se basan en el número de operaciones realizadas por la aplicación en una imagen. Para archivos como PDF que tienen varias páginas, cada página se trata como una imagen. Además, cada característica aplicada a una imagen es una unidad facturable independiente. Por ejemplo, si aplica la detección de texto y la detección de etiquetas a la misma imagen, cada función se cobrará por separado. A continuación se indican los planes de precios y, para más información, visite este enlaceenlace.

How to Print Barcode in C# Windows Application Figura 20 - Licencia de Google Cloud Vision OCR

8. Conclusión

IronOCR proporciona a los desarrolladores de C# la API de Tesseract más avanzada que conocemos, en cualquier plataforma. IronOCR puede desplegarse en Windows, Linux, Mac, Azure, AWS, Lambda y es compatible con proyectos .NET Framework, así como .NET Standard y .NET Core_. También podemos leer códigos de barras en escaneados OCR, e incluso exportar nuestro OCR como HTML y PDF con capacidad de búsqueda.

Google Cloud Vision API es una API avanzada construida con IA. Proporciona una variedad de funciones de análisis de imágenes que pueden ser muy útiles en la creación de aplicaciones ML. Permite a los desarrolladores comunicarse directamente con Google Cloud mediante una clave API, lo que significa que no es necesario almacenar archivos localmente.

Las licencias de IronOCR se basan en los usuarios, lo que significa que siempre debe adquirir una licencia en función del número de desarrolladores que vayan a utilizar el producto. Las licencias de Google Cloud Vision se basan en el número de imágenes de las que extraer información y analizar los datos. Las licencias son mensuales y los precios son muy elevados para un gran número de imágenes en comparación con la licencia IronOCR. Además, la licencia de IronOCR se adquiere una sola vez y puede utilizarse de por vida, y admite la distribución OEM y SaaS.

En conclusión general, ambas bibliotecas poseen capacidades de aprendizaje automático. IronOCR tiene una ligera ventaja sobre Google OCR, ya que está construido específicamente para C # .NET framework que es rápido y ahorra tiempo. Proporciona todas las funciones con muy pocas líneas de código, lo que libera al desarrollador de la carga de escribir largos códigos. Se basa en la popular API Tesseract 5, que facilita la integración y el análisis de imágenes y otros formatos de archivo con resultados precisos. Por otro lado, Google Vision OCR está basado en IA y más enfocado para Java, Python y REST y sólo puede ejecutarse cuando está conectado a Google Cloud. Esto puede llevar mucho tiempo ya que la respuesta viene del lado del servidor. Puede elegir la biblioteca en función de sus necesidades específicas.

Ahora, puede obtener 5 productos Iron por el precio de 2. Iron Suite incluye las siguientes herramientas:

  • IronBarcode
  • IronXL
  • IronOCR
  • IronPDF
  • IronWebscraper

    Visita esta páginaenlace para explorar más.

    Puede descargar IronOCR desdeaquí.

< ANTERIOR
AWS frente a Google Vision (comparación de funciones de OCR)
SIGUIENTE >
Comparación entre el software OCR de Iris y IronOCR

¿Listo para empezar? Versión: 2024.11 acaba de salir

Descarga gratuita de NuGet Descargas totales: 2,698,613 Ver licencias >