COMPARACIóN CON OTROS COMPONENTES

Comparación entre Tesseract y Microsoft OCR

Publicado en 26 de marzo, 2024
Compartir:

Introducción

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.

¿Qué es el 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

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.

Características principales de Tesseract OCR

  • Código abierto: Tesseract está disponible gratuitamente para su uso, modificación y distribución por cualquiera bajo los términos de la Licencia Apache 2.0. Su diseño de código abierto ha contribuido en gran medida a su amplia adopción y mejora continua, gracias a las aportaciones de la comunidad.
  • Soporte de idiomas: Tesseract es capaz de reconocer más de 100 escrituras y conjuntos de caracteres diferentes, además de estos idiomas. Es adecuado para una amplia gama de aplicaciones de OCR en varios idiomas y zonas geográficas gracias a su capacidad multilingüe.
  • Precisión: Tesseract es conocido por su excelente precisión en el reconocimiento de texto, especialmente cuando se configura correctamente y se entrena con datos pertinentes. Puede extraer con fiabilidad texto de fotos con diversos problemas, como ángulos distorsionados, baja calidad e iluminación inadecuada.
  • Opciones: Tesseract proporciona una gran cantidad de opciones de configuración y personalización. Para situaciones de uso particulares, los usuarios pueden ajustar varios parámetros para maximizar el rendimiento del OCR. Además, Tesseract puede acoplarse a diversas plataformas y lenguajes informáticos, como Java, C++, Python y C#, lo que permite a los desarrolladores aprovechar sus capacidades en una amplia gama de aplicaciones.
  • Tesseract está en constante desarrollo y mantenimiento, y periódicamente se añaden nuevas funciones para mejorar su precisión, rendimiento y compatibilidad lingüística. La comunidad de código abierto de Tesseract apoya su desarrollo continuo, lo que garantiza que siempre será una herramienta de OCR de vanguardia.

Instalar Tesseract OCR para .NET

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.

Tesseract frente a Microsoft OCR(Comparación de funciones de OCR): Figura 1 - Tesseract

Tesseract OCR utilizando C#

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
VB   C#

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.

¿Qué es Microsoft OCR?

El paquete Cognitive Services de Microsoft incluyeOCR 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.

Características principales

  • Integración con Azure Cognitive Services: Microsoft OCR funciona al unísono con Azure Cognitive Services, una colección de API y servicios de Microsoft Azure impulsados por IA. Con esta conexión, los desarrolladores pueden integrar fácilmente las funciones de OCR de Microsoft en aplicaciones y flujos de trabajo mediante el uso de API REST, SDK y bibliotecas cliente.
  • Alta precisión y rendimiento: Gracias a sus sofisticados modelos de aprendizaje automático, que han sido entrenados en enormes conjuntos de datos, Microsoft OCR ofrece un reconocimiento de texto de gran precisión y rendimiento. Gracias a su capacidad para extraer con precisión texto de fotografías con diseños intrincados, diversos tipos de letra y texto manuscrito, es adecuado para un amplio espectro de aplicaciones de OCR.
  • Escalabilidad y fiabilidad: Microsoft OCR, un componente de Azure Cognitive Services, proporciona escalabilidad y fiabilidad, lo que lo hace adecuado para aplicaciones con diferentes requisitos de procesamiento. Puede gestionar eficazmente grandes cantidades de documentos y múltiples solicitudes a la vez, garantizando el tiempo de actividad y un rendimiento estable.
  • 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:

Crear una cuenta Azure

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.

Configurar Azure Cognitive Services

El servicio Computer Vision de Azure Cognitive Services debe configurarse cuando se dispone de una cuenta Azure.

  • Abra elPortal Azure.
  • Busque "Visión por ordenador" haciendo clic en "Crear un recurso".
  • Haga clic en "Crear" tras seleccionar el servicio Computer Vision.
  • Para configurar el servicio, elija la suscripción y el nivel de precios siguiendo las indicaciones.
  • Una vez creado el servicio, vaya al recurso y guarde la clave de suscripción y la URL del punto final; los necesitará para verificar la autenticidad de sus consultas.

Instalar el SDK de Azure Cognitive Services

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".

Tesseract frente a Microsoft OCR(Comparación de funciones de OCR): Figura 2 - Microsoft.Azure.CognitiveServices.Vision.ComputerVision

OCR de Microsoft con C#

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
VB   C#

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".

¿Qué es IronOCR?

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.

Características principales de IronOCR

  • Integración simple: Puede incorporar IronOCR a sus proyectos C# o VB.NET con facilidad utilizando paquetes NuGet o accediendo a la biblioteca directamente en su proyecto.
  • OCR versátil: IronOCR puede reconocer texto de una amplia gama de fuentes, como capturas de pantalla, documentos escaneados, archivos PDF y fotografías. Es capaz de manejar varios tipos de imágenes, como BMP, TIFF, PNG y JPEG.
  • Reconocimiento de texto preciso: IronOCR logra una excelente precisión en el reconocimiento de texto utilizando sofisticados algoritmos de OCR. El texto de fotografías con diferentes resoluciones, fuentes y fondos puede extraerse de forma fiable con él.
  • Soporte para múltiples idiomas: IronOCR es apropiado para aplicaciones multilingües porque puede reconocer múltiples idiomas. Permite una formación lingüística personalizada e incorpora paquetes de idiomas populares.
  • Extracción de texto PDF: Tanto los PDF escaneados como los basados en imágenes pueden tener su texto extraído por IronOCR. Al eliminar texto de documentos PDF, puede mantener el formato y el diseño originales del contenido.
  • Preprocesamiento de imágenes: Antes del procesamiento OCR, IronOCR puede mejorar la calidad de las imágenes entrantes mediante funciones de preprocesamiento de imágenes. Abarca tareas como la eliminación de la distorsión, la modificación del contraste y la reducción del ruido.

IronOCR Usando C#

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
VB   C#

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ódigoaquí.

Fuente de la imagen:

Tesseract frente a Microsoft OCR(Comparación de funciones OCR): Figura 3 - Imagen de entrada

Resultado:

Tesseract frente a Microsoft OCR(Comparación de funciones de OCR): Figura 4 - Salida de la consola

Conclusión

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 $749, 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 IronOCRsitio web. Haga clic aquíenlace para obtener más información sobre los productos de Iron Software.

< ANTERIOR
ABBYY FineReader vs Tesseract: Comparación de OCR
SIGUIENTE >
Comparación de OCR de facturas de código abierto: Encuentre la mejor herramienta

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

Descarga gratuita de NuGet Descargas totales: 2,643,450 Ver licencias >