Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
Cuando se trata de reconocimiento óptico de caracteres, los desarrolladores suelen tener que elegir entre la herramienta Tesseract OCR y el motor OCR de Microsoft. (OCR) en C#. A pesar de tener capacidades, eficacia, integración y facilidad diferentes, ambas son herramientas de OCR eficaces para extraer texto de fotos o documentos escaneados. En el marco del desarrollo en C#, en este artículo examinaremos a fondo las ventajas, los inconvenientes y la aplicabilidad de diferentes herramientas de OCR como Tesseract frente a Microsoft OCR.
El reconocimiento óptico de caracteres se denomina OCR. Es una tecnología que permite convertir diversos formatos de documentos -como documentos de imagen escaneados, archivos PDF o fotos de cámaras digitales- en datos editables y con capacidad de búsqueda. Para transformar las formas y patrones de una imagen en texto legible por máquina, distintas herramientas de OCR, como Google Cloud Vision o Google Vision OCR, analizan las imágenes. Mediante esta técnica, los usuarios pueden obtener texto de fotografías y editar, buscar y cambiar el contenido como lo harían con un documento digital.
Tesseract OCR es un programa de código abierto de reconocimiento óptico de caracteres (OCR) a veces denominado simplemente Tesseract. Tesseract, creado inicialmente por los laboratorios Hewlett-Packard en los años 80 y mantenido en la actualidad por Google, es uno de los motores de OCR más populares en la actualidad.
La función principal de Tesseract es identificar texto incluido en imágenes o manipular documentos escaneados y traducirlos a texto legible por máquina. Esto hace que el texto se pueda editar, buscar y manipular al permitir a los usuarios extraer texto de diversas fuentes, como análisis de documentos escaneados, fotos y archivos PDF.
El primer paso es instalar Tesseract OCR en tu ordenador. El repositorio oficial de Tesseract en GitHub es donde puedes obtener el instalador de Tesseract: https://github.com/tesseract-ocr/tesseract.
Para instalar Tesseract OCR en su ordenador, siga las instrucciones de instalación específicas de su sistema operativo. (Windows, macOS o Linux). Una vez instalado Tesseract OCR, utiliza el gestor de paquetes NuGet de Visual Studio para añadir la envoltura Tesseract.NET a tu proyecto C#.
Vaya a Herramientas -> Administrador de paquetes NuGet -> Administrar paquetes NuGet para la solución después de abrir su proyecto C# en Visual Studio. Debería poder localizar el paquete denominado "Tesseract" o "Tesseract.NET" buscando "Tesseract" en el Gestor de paquetes NuGet. Para incluir el paquete en su proyecto, selecciónelo y haga clic en Instalar.
Debe configurar Tesseract en su proyecto de C# para especificar la ubicación del ejecutable de Tesseract OCR y los archivos de datos del lenguaje después de instalar la envoltura de Tesseract.NET. He aquí un ejemplo:
using Tesseract;
class Program
{
static void Main(string [] args)
{
using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
{
using (var img = Pix.LoadFromFile("image.png"))
{
using (var page = engine.Process(img))
{
var text = page.GetText();
Console.WriteLine(text);
}
}
}
}
}
using Tesseract;
class Program
{
static void Main(string [] args)
{
using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
{
using (var img = Pix.LoadFromFile("image.png"))
{
using (var page = engine.Process(img))
{
var text = page.GetText();
Console.WriteLine(text);
}
}
}
}
}
Imports Tesseract
Friend Class Program
Shared Sub Main(ByVal args() As String)
Using engine = New TesseractEngine("path_to_tesseract_folder", "eng", EngineMode.Default)
Using img = Pix.LoadFromFile("image.png")
Using page = engine.Process(img)
Dim text = page.GetText()
Console.WriteLine(text)
End Using
End Using
End Using
End Sub
End Class
Para ello, indique la ubicación del directorio de instalación de Tesseract y el idioma o idiomas que desea utilizar en las opciones del constructor de TesseractEngine. Sustituya "eng" por el código de la lengua o lenguas que desee utilizar. (por ejemplo, "eng" para inglés) y "path_to_tesseract_folder" con la ruta real a su directorio de instalación de Tesseract.
Después de configurar Tesseract en tu proyecto C#, ya puedes utilizar sus funciones OCR para extraer texto de imágenes. La instancia TesseractEngine se puede utilizar para procesar una imagen una vez cargada utilizando la clase Pix para extraer texto o ejecutar OCR en un archivo de imagen, sustituyendo "imagen.png" por la ruta del archivo de imagen.
El paquete Cognitive Services de Microsoft incluye OCR de Microsofta veces denominado reconocimiento óptico de caracteres de Microsoft. Microsoft Azure ofrece un reconocimiento óptico de caracteres basado en la nube (OCR) que puede extraer texto de documentos y fotos con funciones mejoradas de reconocimiento de texto. Microsoft OCR utiliza redes neuronales profundas y técnicas de aprendizaje automático para reconocer texto de diversas fuentes con una precisión excelente.
Soporte multilingüe: Microsoft OCR, al igual que otros programas de OCR, permite el reconocimiento multilingüe, lo que permite a los usuarios extraer texto de fotos en una variedad de idiomas y conjuntos de caracteres. Gracias a su soporte multilingüe, es adecuado para aplicaciones en todo el mundo con necesidades lingüísticas diversas.
Debe combinar Microsoft OCR con Azure Cognitive Services -más especialmente, la API de visión por ordenador- para utilizarlo en un proyecto C#. Así es como puedes empezar:
Debe crear una cuenta Azure si aún no tiene una. Puede crear una cuenta Azure gratuita y tener acceso a varios servicios durante el tiempo de prueba.
El servicio Computer Vision de Azure Cognitive Services debe configurarse cuando se dispone de una cuenta Azure.
Utilizar Microsoft Azure es posible. Para comunicarse con la API Computer Vision en su proyecto C#, utilice el paquete NuGet CognitiveServices.Vision.ComputerVision.
Vaya a Herramientas -> Administrador de paquetes NuGet y, a continuación, Administrar paquetes NuGet para la solución después de abrir el proyecto C# en Visual Studio.
Instale el paquete realizando una búsqueda de "Microsoft.Azure.CognitiveServices.Vision.ComputerVision".
Después de instalar el SDK, puede utilizar la API de Visión por Computador para hacer OCR. A continuación se muestra un ejemplo de introducción al uso de la API de Visión por Computador para realizar OCR en una imagen:
using System;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
class Program
{
static async System.Threading.Tasks.Task Main(string [] args)
{
var endpoint = "YOUR_ENDPOINT";
var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";
var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
{
Endpoint = endpoint
};
var result = await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed);
foreach (var region in result.Regions)
{
foreach (var line in region.Lines)
{
foreach (var word in line.Words)
{
Console.WriteLine(word.Text);
}
}
}
}
}
using System;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
class Program
{
static async System.Threading.Tasks.Task Main(string [] args)
{
var endpoint = "YOUR_ENDPOINT";
var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";
var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
{
Endpoint = endpoint
};
var result = await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed);
foreach (var region in result.Regions)
{
foreach (var line in region.Lines)
{
foreach (var word in line.Words)
{
Console.WriteLine(word.Text);
}
}
}
}
}
Imports System
Imports Microsoft.Azure.CognitiveServices.Vision.ComputerVision
Imports Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models
Friend Class Program
Shared Async Function Main(ByVal args() As String) As System.Threading.Tasks.Task
Dim endpoint = "YOUR_ENDPOINT"
Dim subscriptionKey = "YOUR_SUBSCRIPTION_KEY"
Dim client = New ComputerVisionClient(New ApiKeyServiceClientCredentials(subscriptionKey)) With {.Endpoint = endpoint}
Dim result = Await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed)
For Each region In result.Regions
For Each line In region.Lines
For Each word In line.Words
Console.WriteLine(word.Text)
Next word
Next line
Next region
End Function
End Class
Para realizar el reconocimiento óptico de caracteres en un archivo de imagen, sustituya "imagen.png" en el ejemplo de código anterior por la ruta al archivo de imagen. Este código recuperará el texto reconocido de la imagen enviándolo a la Computer Vision API. La URL del punto final y la clave de suscripción que recibió después de configurar el servicio Computer Vision en Azure Cognitive Services deben sustituirse por "YOUR_ENDPOINT" y "YOUR_SUBSCRIPTION_KEY".
Los desarrolladores pueden incorporar funciones de reconocimiento de texto en sus aplicaciones C# o VB.NET con IronOCR, una biblioteca OCR .NET. Ofrece una API fácil de usar para la extracción de texto de PDF, imágenes y otros tipos de medios. Iron Software, una empresa de desarrollo de software especializada en componentes y bibliotecas .NET, crea y mantiene IronOCR.
He aquí un ejemplo básico en C#:
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
Input.AddImage(@"Demo.png");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
Console.ReadKey();
}
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
Input.AddImage(@"Demo.png");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
Console.ReadKey();
}
Dim Ocr = New IronTesseract() ' nothing to configure
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using Input = New OcrInput()
Input.AddImage("Demo.png")
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
Console.ReadKey()
End Using
Podemos extraer datos de la imagen con la máxima precisión de OCR utilizando el código mencionado anteriormente. Además, IronOCR facilita la conversión de texto extraído de documentos manuscritos a formatos de archivo editables, incluido Word. También podemos convertir el documento escaneado en un PDF en el que se puedan realizar búsquedas. Con IronOCR, el resultado puede almacenarse en varios formatos de salida OCR. Para más información sobre el código aquí.
Fuente de la imagen:
Resultado:
En conclusión, Tesseract y Microsoft OCR, cada uno con ventajas y desventajas únicas, ofrecen sólidas capacidades de OCR para los desarrolladores de C#. Dado que Tesseract ofrece personalización y flexibilidad, es una buena opción para aplicaciones que requieren un gran ajuste. Sin embargo, Microsoft OCR es la mejor opción para las aplicaciones C# que necesitan sofisticadas capacidades de reconocimiento de texto debido a su gran precisión, escalabilidad y perfecta conexión con los servicios Azure. Para sus proyectos en C#, los desarrolladores deben sopesar sus necesidades individuales, los requisitos de modificación y los límites financieros antes de decidirse entre Tesseract y Microsoft OCR.
Por último, IronOCR es una solución de OCR extraordinaria que ofrece una integración, flexibilidad y precisión extraordinarias. Por su precisión sin igual, sus algoritmos avanzados y su capacidad para identificar una amplia gama de tipos de documentos, incluidos los manuscritos, IronOCR es la mejor solución de OCR que existe actualmente en el mercado. Dado que IronOCR se integra sin problemas en numerosos documentos y lenguajes informáticos comunes, garantiza la accesibilidad de los desarrolladores al tiempo que mantiene una interfaz intuitiva.
Puede probar gratuitamente la asequible edición de desarrollo de IronOCR y, si compra el paquete IronOCR, obtendrá una licencia de por vida. Con un precio inicial de $599, el paquete IronOCR tiene una excelente relación calidad-precio, ya que ofrece un precio único para varios dispositivos. Para saber más sobre el coste, visite el sitio web de IronOCR sitio web. Haga clic aquí enlace para obtener más información sobre los productos de Iron Software.
9 productos API .NET para sus documentos de oficina