Una comparación entre Google OCR e IronOCR
OCR significa Reconocimiento Óptico de Caracteres. Proporciona la capacidad de convertir un archivo de imagen en texto codificado por máquina. Los documentos escaneados siempre se guardan como un archivo de imagen en la computadora. Los datos en estos archivos de imagen no se pueden buscar, editar o guardar en formato de texto usando un editor de texto normal o incluso una aplicación de procesamiento de textos. El procesamiento de 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 compartidos por internet están en formato digital, principalmente en forma de PDFs o imágenes. Hay un montón de recursos en línea disponibles que convierten la imagen en texto. Sin embargo, la mayoría de las empresas requieren esta funcionalidad en sus aplicaciones de software. Teniendo esto en cuenta, hay muchas bibliotecas que proporcionan tecnología de procesamiento OCR para ser integrada en aplicaciones de software.
En este artículo, vamos a discutir dos de las bibliotecas OCR más populares para C#. Estas son:
- IronOCR
- Google Cloud Vision OCR (Vision API)
IronOCR - Biblioteca de C
IronOCR para .NET es una biblioteca C# para escanear, buscar y leer imágenes y PDFs. Toma un archivo de imagen o PDF como entrada y utiliza la última versión personalizada del motor de OCR Tesseract 5 .NET para producir texto, datos estructurados o documentos PDF buscables. Tesseract está disponible en más de 125 idiomas, junto con soporte multiplataforma en .NET Core y .NET Standard, desde 2.0 hasta 7.
IronOCR es una API fácil de usar que permite a los desarrolladores C# convertir automáticamente imágenes en texto, usando la clase IronTesseract y una clave API. Prioriza la velocidad, precisión y facilidad de uso. También ayuda a la API de Visión por Computadora a encontrar texto con un conjunto de modelos entrenados.
Otra función poderosa de IronOCR es que puede escanear códigos de barras y códigos QR de todos los archivos de imagen y leer su texto. Otras características importantes de IronOCR se detallan a continuación.
Características
- Idiomas Internacionales: Más de 125 y soporte para idiomas personalizados con rendimiento de alta y rápida calidad
- Lectura de Texto y Código de Barras: Leer Texto y Números de Múltiples Idiomas a la Vez
- Documentos Especializados: Leer específicamente texto de Recibos, Cheques, Facturas
- Leer de Muchos Formatos: Imágenes (PNG, JPG, GIF, TIFF, BMP),
Objetos System.Drawing, Streams, documentos PDF (DPI objetivo optimizado) - Filtros: Asistente de Filtros, Corrección de Imágenes, Corregir Orientación de Imágenes, Corregir Colores de Imágenes
- Salida de Datos Simple: Cadenas de Texto .NET, Datos de Código de Barras y QR, Imágenes
Ahora, echemos un vistazo a la API de Google Cloud Vision.
OCR de Google Cloud Vision
Google Cloud Vision API es una biblioteca cliente de OCR de Google Cloud que soporta el lenguaje C#. Permite a los desarrolladores C# integrar fácilmente funciones de detección de visión por computadora en aplicaciones de software. Realiza OCR y detecta el texto de archivos de imagen, etiquetas de imagen, detección de rostros y detección de puntos de referencia.
Google Cloud Vision API utiliza APIs REST y RPC para proporcionar un poderoso modelo ML (aprendizaje automático) preentrenado. Con Cloud Vision API, puedes clasificar rápidamente imágenes en millones de categorías ya definidas. También puede detectar objetos y leer texto de documentos impresos y texto manuscrito.
Características
- Detección de Texto de Imagen: Realizar OCR en una imagen para reconocimiento de texto y convertirlo en código de máquina
- Detección de Texto en Documentos: Realizar OCR en un archivo (PDF/TIFF), texto denso
- Detección de Puntos de Referencia: Devuelve coordenadas de los objetos detectados
- Detección de Logos: Devuelve una descripción textual
- Detección de Etiquetas: Devuelve etiquetas generalizadas para la imagen
El resto del artículo es el siguiente:
- Creación de un Proyecto en Visual Studio
- Instalando AWS OCR Textract
- Instalación de Google OCR
- Imagen a Texto
- Código de Barras y Código QR a Texto
- PDF a Texto
- Licenciamiento
5.1. Usando IronOCR
1. Creación de un proyecto de Visual Studio
En este tutorial, vamos a usar Visual Studio 2022, la última versión. Entonces, asumo que ya lo has descargado e instalado para C#. Si no es así, puedes descargarlo desde el sitio web de Visual Studio.
Ahora, necesitamos crear un proyecto de Consola para comenzar con ambas bibliotecas. Sigue los pasos para crear un proyecto:
- Abre tu Visual Studio 2022.
- Haz clic en Crear un nuevo Proyecto.

- Selecciona Aplicación de Consola C# de las opciones dadas.

- Configura tu nuevo proyecto con un nombre y ubicación. Por ejemplo "OCRProject".
- Haz clic en Siguiente.

- Desde la información adicional, selecciona el Framework .NET 6.0 ya que es la versión más estable.

- Ahora, haz clic en Crear y el proyecto se creará en la ubicación que especificaste.
A continuación, instalaremos las bibliotecas en nuestro proyecto para la comparación.
2. Instalación de IronOCR
Hay múltiples formas de instalar la biblioteca IronOCR. Vamos a revisarlas una por una.
2.1. Uso del Administrador 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 manifest. Accede a él usando el siguiente método:
- Haz clic en la pestaña Herramientas
- Extiende la opción Gestor de Paquetes NuGet
- Haz clic en Administrar Paquetes NuGet para la Solución

- o, haz clic derecho en el Explorador de Soluciones
- Haz clic en Administrar Paquetes NuGet

Ahora se abrirá la ventana del Gestor de Paquetes NuGet. Busca IronOCR y haz clic en Instalar.

2.2. Descargar desde el sitio web de NuGet
Se puede descargar directamente desde el sitio web oficial de NuGet. Sigue los pasos dados:
- Haz clic en el enlace al sitio web de NuGet.
- Haz clic en la opción Descargar paquete en el lado derecho de la página.
- Abre el paquete descargado y comenzará la instalación.
- Finalmente, recarga la solución y ya está.
2.3. Descargar desde la página web de IronOCR
Simplemente visita el sitio web de Iron Software y navega a la página web de IronOCR para .NET. Desplázate hacia abajo y haz clic en Descargar DLL o Descargar Instalador de Windows.

Se descargará un archivo Zip. Extráelo y agrégalo a tu archivo de proyecto o ejecuta el Instalador de Windows. Sigue los siguientes pasos para agregarlo a tu proyecto.
- Haz clic derecho en las dependencias del proyecto en Visual Studio desde el Explorador de Soluciones.
- Luego, selecciona la opción Agregar Referencia al Proyecto.
- Busca la ubicación del archivo DLL descargado.
- Finalmente, haz clic en OK para agregar la referencia del proyecto.
2.4. Uso del símbolo del sistema en Visual Studio
- Navega a la pestaña Herramientas en Visual Studio.
- Extiende la opción Gestor de Paquetes NuGet.
- Selecciona Consola del Gestor de Paquetes y escribe el siguiente comando:
Install-Package IronOcr
Esto descargará e instalará automáticamente IronOCR en tu proyecto.
Ahora estamos listos para usar IronOCR en nuestro proyecto.
2.5. Adición de los espacios de nombres IronOCR necesarios
Solo se requiere un espacio de nombres y debe agregarse en la parte superior del archivo de código fuente donde necesitamos acceder a sus funciones.
using IronOcr;using IronOcr;Imports IronOcrAhora, instalemos Google Vision OCR.
3. Instalación de Google OCR
Para poder usar la API de Vision en tu proyecto C#, debes tener cumplidos los siguientes requisitos previos:
- Crear una Cuenta de Google
- Crear un nuevo proyecto desde la Consola de Google Cloud
- Habilitar Facturación
- Habilitar API de Vision
- Crear una Cuenta de Servicio y establecer las credenciales
- Descargar las credenciales de la clave de cuenta de servicio en formato de archivo JSON
Puedes tener un vistazo detallado a la configuración y 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 de OCR en Visual Studio, necesitamos usar el Gestor de Paquetes NuGet.
3.1. Uso del Administrador de paquetes NuGet
Accede a él usando el siguiente método:
- Haz clic en la pestaña Herramientas
- Extiende la opción Gestor de Paquetes NuGet
- Haz clic en Administrar Paquetes NuGet para la Solución

- o, haz clic derecho en el Explorador de Soluciones
- Haz clic en Administrar Paquetes NuGet

Ahora se abrirá la ventana del Gestor de Paquetes NuGet. Busca Google Cloud Vision OCR y haz clic en Instalar.

3.2. Agregar el espacio de nombres de la API de Google Vision
Incluye el siguiente espacio de nombres para usar la API de Google OCR Vision:
using Google.Cloud.Vision.V1;using Google.Cloud.Vision.V1;Imports Google.Cloud.Vision.V1También, configura la variable de entorno con las credenciales clave descargadas en formato de archivo JSON.
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json")Ahora todo está configurado y listo para usar.
4. Imagen a texto
Leer datos de imágenes es una tarea tediosa. La resolución y calidad de la imagen juegan un papel importante al extraer contenido. Ambas bibliotecas proporcionan la funcionalidad de Reconocimiento Óptico de Caracteres (OCR) para extraer texto de imágenes.
4.1. Uso de IronOCR
IronOCR facilita mucho a los desarrolladores leer el contenido de un archivo de imagen con su poderosa clase IronTesseract. Aquí utilizaremos 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())
{
// Add the image to be processed
input.AddImage("test-files/employmentapp.png");
// Process the image
var result = ocr.Read(input);
// Output the extracted text
Console.WriteLine(result.Text);
}var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Add the image to be processed
input.AddImage("test-files/employmentapp.png");
// Process the image
var result = ocr.Read(input);
// Output the extracted text
Console.WriteLine(result.Text);
}Dim ocr = New IronTesseract()
Using input = New OcrInput()
' Add the image to be processed
input.AddImage("test-files/employmentapp.png")
' Process the image
Dim result = ocr.Read(input)
' Output the extracted text
Console.WriteLine(result.Text)
End UsingIMAGEN DE ENTRADA

PRODUCCIÓN

La salida de IronOCR coincide con la imagen original proporcionada. El código es limpio y fácil de entender sin complicaciones técnicas.
4.2. Uso del OCR de Google
Google Cloud Vision OCR también convierte la imagen en texto con diferentes fuentes. Primero, necesitamos crear un cliente usando 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 se da a continuación:
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
var client = ImageAnnotatorClient.Create();
var image = Google.Cloud.Vision.V1.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 = Google.Cloud.Vision.V1.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 = Google.Cloud.Vision.V1.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 annotationSe proporciona la misma imagen como entrada para comparar la salida de ambas bibliotecas.

En la salida anterior, puedes ver claramente que IronOCR preserva los formatos de salida de imagen. Aunque Google OCR ha dado un texto de salida preciso, el formato de la tabla no se preserva. IronOCR ha preservado el formato de la tabla exactamente como en la imagen proporcionada.
5. Código de barras y código QR a texto
5.1. Uso de IronOCR
IronOCR proporciona una función única y útil al leer 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, configura la opción ReadBarCodes en verdadero y luego itera a través de cada uno de los códigos de barras en los resultados de OCR. El código para leer códigos de barras se da a continuación:
var ocr = new IronTesseract();
ocr.Configuration.ReadBarCodes = true;
using (var input = new OcrInput())
{
// Add the image to be processed
input.AddImage("test-files/Barcode.png");
// Process the image
var result = ocr.Read(input);
// Iterate and output barcode values
foreach (var barcode in result.Barcodes)
{
Console.WriteLine(barcode.Value);
}
}var ocr = new IronTesseract();
ocr.Configuration.ReadBarCodes = true;
using (var input = new OcrInput())
{
// Add the image to be processed
input.AddImage("test-files/Barcode.png");
// Process the image
var result = ocr.Read(input);
// Iterate and output barcode values
foreach (var barcode in result.Barcodes)
{
Console.WriteLine(barcode.Value);
}
}Dim ocr = New IronTesseract()
ocr.Configuration.ReadBarCodes = True
Using input = New OcrInput()
' Add the image to be processed
input.AddImage("test-files/Barcode.png")
' Process the image
Dim result = ocr.Read(input)
' Iterate and output barcode values
For Each barcode In result.Barcodes
Console.WriteLine(barcode.Value)
Next barcode
End UsingIMAGEN DE ENTRADA

PRODUCCIÓN

Todos los tres códigos de barras en la entrada se leen con éxito y su texto oculto se muestra.
5.2. Uso del OCR de Google
La API de Google Vision no permite esta funcionalidad aún. Leer códigos de barras puede ser útil en aplicaciones de software. 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 = Google.Cloud.Vision.V1.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 = Google.Cloud.Vision.V1.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 = Google.Cloud.Vision.V1.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 labelPRODUCCIÓN

6. PDF a texto
6.1. Uso 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 imagen. El código es el siguiente:
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Add the PDF to be processed
input.AddPdf("test-files/example.PDF");
// Process the PDF
var result = ocr.Read(input);
// Output the extracted text
Console.WriteLine(result.Text);
}var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Add the PDF to be processed
input.AddPdf("test-files/example.PDF");
// Process the PDF
var result = ocr.Read(input);
// Output the extracted text
Console.WriteLine(result.Text);
}Dim ocr = New IronTesseract()
Using input = New OcrInput()
' Add the PDF to be processed
input.AddPdf("test-files/example.PDF")
' Process the PDF
Dim result = ocr.Read(input)
' Output the extracted text
Console.WriteLine(result.Text)
End UsingPRODUCCIÓN
El texto extraído tiene el mismo formato que el archivo PDF.

6.2. Uso del OCR de Google
Google OCR también ofrece la posibilidad de extraer texto de documentos PDF/TIFF. Sin embargo, solo detecta texto si el archivo está en Google Cloud Storage. Para esto, necesitas crear un bucket de almacenamiento de Google. El código para C# no es directo y bastante largo para implementar aquí. No hay ejemplos disponibles para C# para detectar textos en archivos. Puedes mirar el código Java como referencia para intentarlo.
7. Licencias
IronOCR es gratis para propósitos de desarrollo, pero necesita ser licenciado para uso comercial. También ofrece una prueba gratuita para probar todo su potencial para tus necesidades. El paquete Lite comienza a partir de una cierta cantidad con una prueba gratuita. IronOCR ofrece 1 año de soporte y actualizaciones de producto de forma gratuita y luego, un año después, cuesta $399. Todas las licencias son perpetuas, lo que significa solo una compra única y sin cargos ocultos. También puedes elegir cobertura de redistribución libre de regalías para productos SaaS y OEM con solo una compra única de $1999. Para más información sobre paquetes de licencias y planes de precios, visita aquí.

Google Cloud Vision los planes de precios se basan en el número de operaciones realizadas por la aplicación en una imagen. Para archivos como PDF que tienen múltiples páginas, cada página se trata como una imagen. Además, cada función aplicada a una imagen es una unidad facturable por separado. Por ejemplo, si aplicas detección de texto y detección de etiquetas en la misma imagen, cada función se cobrará por separado. Los planes de precios se detallan a continuación, y para más información, por favor visita este enlace.

8. Conclusión
IronOCR proporciona a los desarrolladores C# el API de Tesseract más avanzado que conocemos, en cualquier plataforma. IronOCR se puede implementar en Windows, Linux, Mac, Azure, AWS, Lambda, y soporta proyectos .NET Framework así como proyectos .NET Standard y .NET Core. El código es similar al anterior.
Google Cloud Vision API es una avanzada API construida en IA. Proporciona una variedad de funciones de análisis de imágenes que pueden ser muy útiles en la construcción de aplicaciones de ML. Permite a los desarrolladores comunicarse directamente con Google Cloud usando una clave API, lo que significa que no hay necesidad de almacenar archivos localmente.
Las licencias de IronOCR son basadas en usuario, lo que significa que siempre debes comprar una licencia basada en el número de desarrolladores que usarán el producto. Las licencias de Google Cloud Vision se basan en el número de imágenes para extraer información y analizar los datos. Las licencias son mensuales, y los precios se vuelven muy altos para una gran cantidad de imágenes en comparación con las licencias de IronOCR. Además, la licencia de IronOCR es una compra única y se puede usar de por vida, y apoya la distribución OEM y SaaS.
En la conclusión general, ambas bibliotecas poseen capacidades de aprendizaje automático. IronOCR tiene una ligera ventaja sobre Google OCR ya que está específicamente construido para el framework C# .NET que es rápido y ahorra tiempo. Proporciona todas las funciones con muy pocas líneas de código, aliviando la carga de los desarrolladores de escribir códigos largos. Está construido sobre el API de Tesseract 5 más popular, lo que facilita su integración y análisis de imágenes y otros formatos de archivo con salida precisa. Por otro lado, Google Vision OCR está construido sobre IA y más enfocado en Java, Python y REST y solo puede ejecutarse cuando está conectado a Google Cloud. Esto puede consumir tiempo ya que la respuesta viene del lado del servidor. Puedes elegir la biblioteca según tus necesidades específicas.
Ahora, puedes obtener 5 productos de Iron por el precio de 2. Las siguientes herramientas están incluidas en la Suite Iron:
- IronBarcode
- IronXL
- IronOCR
- IronPDF
- IronWebscraper
Visita este enlace para explorar más.
Puedes descargar IronOCR desde aquí.
Preguntas Frecuentes
¿Cómo puedo convertir imágenes a texto usando C#?
Puedes usar IronOCR que utiliza el motor Tesseract 5 para convertir imágenes en texto legible por máquina. Soporta más de 125 idiomas y es compatible con múltiples plataformas, lo que lo convierte en una excelente opción para la extracción de texto en aplicaciones de C#.
¿Cuáles son los beneficios de usar IronOCR para escanear códigos de barras y códigos QR?
IronOCR no solo convierte imágenes y PDFs en texto, sino que también se destaca en el escaneo de códigos de barras y códigos QR. Proporciona una extracción de datos rápida y precisa, lo que lo convierte en una herramienta versátil para aplicaciones que necesitan capacidades completas de OCR.
¿Cómo maneja IronOCR diferentes idiomas?
IronOCR soporta más de 125 idiomas y ofrece soporte para idiomas personalizados. Esta amplia compatibilidad lingüística le permite ser altamente adaptable para aplicaciones internacionales, asegurando el reconocimiento de texto en varios idiomas.
¿Cuáles son los requisitos de instalación de IronOCR en un proyecto de C#?
Para instalar IronOCR en un proyecto de C#, puedes utilizar el administrador de paquetes NuGet en Visual Studio. Simplemente busca IronOCR en el Administrador de Paquetes NuGet e instálalo para integrar sin problemas las funcionalidades de OCR en tu aplicación.
¿Cómo se compara el modelo de licencias de IronOCR con los servicios de OCR basados en la nube?
IronOCR ofrece un modelo de compra única con licencias perpetuas, proporcionando valor a largo plazo sin costos recurrentes. En contraste, los servicios de OCR basados en la nube como Google Cloud Vision típicamente usan un modelo de precios por uso, lo que puede volverse costoso con un alto uso.
¿Qué plataformas son compatibles con IronOCR?
IronOCR puede ser implementado en varias plataformas incluyendo Windows, Linux, Mac, Azure, AWS y Lambda. Soporta proyectos en .NET Framework, .NET Standard y .NET Core, ofreciendo versatilidad para diferentes entornos de desarrollo.
¿IronOCR funciona offline?
Sí, IronOCR puede funcionar sin conexión a internet, lo cual es una ventaja significativa sobre las soluciones basadas en la nube. Esta capacidad asegura que tu procesamiento OCR no dependa de una conexión a internet, ofreciendo mayor control y seguridad.
¿Cómo asegura IronOCR la precisión y velocidad en el procesamiento OCR?
IronOCR utiliza algoritmos avanzados y el motor Tesseract 5 para proporcionar un procesamiento OCR rápido y preciso. Sus filtros de corrección de imagen mejoran aún más la precisión de reconocimiento de texto, convirtiéndolo en una opción confiable para tareas OCR de alta calidad.






