COMPARACIóN CON OTROS COMPONENTES

Comparación entre Google OCR e IronOCR

Kannaopat Udonpant
Kannapat Udonpant
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 Vision)

Introducción

IronOCR - Biblioteca C

IronOCR for .NET es una biblioteca de C# para escanear, buscar y leer imágenes y PDFs. 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 a texto automáticamente, simplemente utilizando la clase IronTesseract y la clave de 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: Soporte para más de 125 idiomas y personalizados con rendimiento de alta y rápida calidad
  • Lectura de Texto y Código de Barras: Lee Texto y Números de Múltiples Idiomas al Mismo Tiempo
  • Documentos Especialistas: Leer específicamente texto de recibos, cheques, facturas
  • Leer desde muchos formatos: Imágenes (PNG, JPG, GIF, TIFF, BMP), Objetos de System.Drawing, Streams, documentos PDF (DPI objetivo optimizado)
  • Filtros: Filter Wizard, Corrección de Imagen, Corregir Orientación de Imagen, Corregir Colores de Imagen
  • Salida de Datos Simple: Cadenas de Texto .NET, Datos de Código de Barras y QR, Imágenes

    Ahora, echemos un vistazo a Google Cloud Vision API.

Google Cloud Vision OCR

Google Cloud Vision API es una biblioteca cliente OCR de Google Cloud que admite el 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 APIs REST y RPC para proporcionar un poderoso modelo de ML (aprendizaje automático) preentrenado. 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 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, puedes descargar desde el sitio 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.

    Cómo imprimir un código de barras en una aplicación de Windows con C# Figura 1 - Crear un nuevo proyecto

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

    Cómo imprimir un código de barras en una aplicación de Windows con C# Figura 2 - Aplicación de consola

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

    Cómo imprimir un código de barras en una aplicación de Windows en C# Figura 3 - Configurar proyecto

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

    Cómo imprimir códigos de barras en una aplicación de Windows con C# 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. Accédelo utilizando 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

    Cómo imprimir códigos de barras en una aplicación de Windows en C# Figura 5 - Administrador 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ódigo de barras en aplicación de Windows con C# 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 un código de barras en una aplicación de Windows en C# 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 una aplicación de Windows con C# Figura 8 - Sitio web de Iron Software

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
$vbLabelText   $csharpLabel

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

    Puede echar un vistazo detallado a la configuración y los requisitos para usar Google Cloud Vision desde la documentación oficial 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

    Cómo imprimir código de barras en una aplicación de Windows en C# Figura 9 - Pestaña de herramientas

  • 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ódigo de barras en una aplicación de Windows en C# Figura 10 - Administrar 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 una aplicación de Windows en C# 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
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

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 proporcionan funcionalidad de Reconocimiento Óptico de Caracteres (OCR) para extraer texto de imágenes.

4.1. Utilización de IronOCR

IronOCR facilita mucho a los desarrolladores la lectura del contenido de un archivo de imagen con su poderosa clase IronTesseract. Aquí usaremos una imagen PNG para leer 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
$vbLabelText   $csharpLabel

IMAGEN DE ENTRADA

Cómo imprimir códigos de barras en una aplicación de Windows con C# Figura 12 - Entrada con cuadros delimitadores

SALIDA

Cómo imprimir código de barras en una aplicación de Windows en C# 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. Primero, necesitamos crear un cliente utilizando el archivo de credenciales. Luego, usando 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
$vbLabelText   $csharpLabel

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

Cómo imprimir código de barras en una aplicación de Windows C# 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. Primero, establece la configuración ReadBarCodes en verdadero y luego itera a través de cada uno de los códigos de barras en los resultados de 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
$vbLabelText   $csharpLabel

IMAGEN DE ENTRADA

Cómo Imprimir Código de Barras en Aplicación de Windows con C# Figura 15 - Entrada

SALIDA

Cómo imprimir un código de barras en una aplicación de Windows con C# 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 te permite obtener texto de un documento escaneado como un 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
$vbLabelText   $csharpLabel

SALIDA

Cómo Imprimir Código de Barras en una Aplicación de Windows en C# Figura 17 - Salida de Detección de Etiqueta

6. PDF a texto

6.1. Utilización de IronOCR

Leer archivos PDF es tan fácil como leer archivos de imagen en IronOCR. Solo necesitas cambiar el método AddImage a 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
$vbLabelText   $csharpLabel

SALIDA

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

Cómo imprimir código de barras en una aplicación de Windows en C# 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. Puedes echar un vistazo al código Java como referencia para intentarlo.

7. Licencias

IronOCR es gratuito para fines de desarrollo, pero necesita una licencia para uso comercial. También ofrece una prueba gratuita para que compruebes todo su potencial para tus necesidades. El paquete Lite comienza desde $749 con una prueba 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 obtener más información sobre paquetes de licencias y planes de precios, por favor visite aquí.

Cómo imprimir códigos de barras en una aplicación de Windows en C# Figura 19 - Licencia de 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. Los planes de precios se ofrecen a continuación y para más información, por favor visita este enlace.

Cómo imprimir el código de barras en una aplicación de Windows en C# 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 este enlace para explorar más.

    Puedes descargar IronOCR desde aquí.

Kannaopat Udonpant
Ingeniero de software
Antes de convertirse en ingeniero de software, Kannapat realizó un doctorado en Recursos Medioambientales en la Universidad de Hokkaido (Japón). Mientras cursaba su licenciatura, Kannapat también se convirtió en miembro del Laboratorio de Robótica Vehicular, que forma parte del Departamento de Ingeniería de Bioproducción. En 2022, aprovechó sus conocimientos de C# para unirse al equipo de ingeniería de Iron Software, donde se centra en IronPDF. Kannapat valora su trabajo porque aprende directamente del desarrollador que escribe la mayor parte del código utilizado en IronPDF. Además del aprendizaje entre iguales, Kannapat disfruta del aspecto social de trabajar en Iron Software. Cuando no está escribiendo código o documentación, Kannapat suele jugar con su PS5 o volver a ver The Last of Us.
< ANTERIOR
AWS frente a Google Vision (comparación de funciones de OCR)
SIGUIENTE >
Comparación entre el software OCR de Iris y IronOCR