COMPARACIóN CON OTROS COMPONENTES

Paddle OCR vs Tesseract: Comparación detallada de OCR

Kannaopat Udonpant
Kannapat Udonpant
29 de abril, 2024
Compartir:

Elegir la herramienta de reconocimiento óptico de caracteres (OCR) adecuada es crucial para cualquiera que busque convertir imágenes de texto en datos editables y buscables. Dos opciones populares en el campo son Paddle OCR y Tesseract. Ambos utilizan tecnologías de OCR distintas y responden a necesidades diferentes. Esta comparativa se centra en la evaluación de diferentes motores de OCR para ayudarle a encontrar la opción más adecuada a sus necesidades.

Tanto si está trabajando en una tarea sencilla como si se trata de documentos complejos, comprender las capacidades de Paddle OCR y Tesseract podría ser su primer paso hacia un procesamiento de datos más eficaz. También introduciremos una biblioteca de un conjunto de bibliotecas OCR, IronOCR a la mezcla, ofreciendo una comparación más amplia para ayudarte a entender qué herramienta podría adaptarse mejor a tus necesidades.

Pádel OCR

Paddle OCR emerge como una solución destacada con modelos avanzados de reconocimiento de texto diseñados para el reconocimiento de texto multilingüe, aprovechando las capacidades del framework de aprendizaje profundo PaddlePaddle. El sistema OCR desarrollado por PaddlePaddle está diseñado para ofrecer un alto rendimiento y una amplia compatibilidad lingüística. Este sistema se distingue por su compatibilidad con más de 50 idiomas y ofrece un conjunto de herramientas para la anotación de datos, la síntesis y el despliegue de modelos en diversas plataformas, como servidores, dispositivos móviles, sistemas integrados y dispositivos IoT.

Características principales

Paddle OCR presenta sus numerosas funciones de OCR con una API fácil de usar para diversas aplicaciones. Estas son sus características más destacadas:

  1. Soporte Multilingüe: Paddle OCR puede procesar texto en múltiples idiomas, ofreciendo soporte para más de 50 idiomas.

  2. Algoritmos Avanzados: Incorpora métodos y algoritmos avanzados de OCR para la detección, reconocimiento y clasificación de texto. Estos incluyen lo último en investigación de aprendizaje profundo, como la pérdida de Clasificación Temporal Conexionista (CTC), que desempeña un papel crucial en la predicción y alineación precisa de secuencias de texto.

  3. Eficiencia y Velocidad: Optimizado para la velocidad y la precisión, Paddle OCR es capaz de procesar grandes volúmenes de imágenes rápidamente, lo que lo hace adecuado para aplicaciones de alto rendimiento.

Licencia

Paddle OCR se publica bajo la Licencia Apache 2.0, lo que garantiza su libre uso, modificación y distribución. La instalación es sencilla, normalmente con gestores de paquetes como pip para Python. Los usuarios pueden instalar rápidamente Paddle OCR y sus dependencias con unos pocos comandos, lo que facilita la integración del proyecto.

Instalar PaddleSharp

La integración de PaddleOCR en un proyecto C# en Visual Studio puede agilizarse con el uso de PaddleSharp, una envoltura .NET para la API C# de Paddle Inference. Esto permite el uso directo de las capacidades de aprendizaje profundo de PaddlePaddle dentro de un entorno .NET. Aquí tienes una guía paso a paso para configurar PaddleSharp en tu proyecto:

Requisitos previos:

  • Asegúrese de tener Visual Studio instalado en su sistema, con compatibilidad con .NET Framework o .NET Core, en función de los requisitos de su proyecto.
  • También es esencial tener conocimientos de C# y estar familiarizado con la gestión de paquetes NuGet en Visual Studio.

    Instala el paquete PaddleSharp:

  • Abra su proyecto en Visual Studio.
  • Vaya a la opción "Gestionar paquetes NuGet" haciendo clic con el botón derecho del ratón en su proyecto en el Explorador de soluciones.

    • Busque Sdcb.PaddleInference e instale el paquete. Este es el enlace principal que permite a las aplicaciones .NET utilizar el motor de Inferencia de Paddle.

    Paddle OCR vs Tesseract (Comparación de Características OCR): Figura 1 - Buscando Sdcb.PaddleInference en el administrador de paquetes NuGet

    • A continuación, instale los siguientes paquetes:

      • Scdb.PaddleOCR

      • OpenCvSharp4

      • Scdb.PaddleOCR.Models.Online
    • OpenCvSharp4.runtime.win

    Agregar Paquetes Nativos e Infraestructura:

  • Dependiendo de su plataforma objetivo (Windows/Linux) y sus requisitos (CPU/GPU), pueden ser necesarios paquetes adicionales. Para Windows, es posible que necesites paquetes como Sdcb.PaddleInference.runtime.win64.mkl para soporte MKL o **Sdcb.PaddleInference.runtime.win64.cuda*** para soporte GPU.
  • Instálelos también a través del gestor de paquetes NuGet, garantizando la compatibilidad con sus entornos de desarrollo y ejecución de destino.

Ejemplo de código

using System;
FullOcrModel model = await OnlineFullModels.EnglishV3.DownloadAsync();
using (PaddleOcrAll all = new(model)
{
    AllowRotateDetection = true,
    Enable180Classification = false,
})
using (Mat imgSrc = Cv2.ImRead(@"read.jpg"))
{
    Stopwatch stopWatch = Stopwatch.StartNew();
    PaddleOcrResult result = all.Run(imgSrc);
    Console.WriteLine($"lapsed={sw.ElapsedMilliseconds} ms");
    Console.WriteLine(result.Text);
}
using System;
FullOcrModel model = await OnlineFullModels.EnglishV3.DownloadAsync();
using (PaddleOcrAll all = new(model)
{
    AllowRotateDetection = true,
    Enable180Classification = false,
})
using (Mat imgSrc = Cv2.ImRead(@"read.jpg"))
{
    Stopwatch stopWatch = Stopwatch.StartNew();
    PaddleOcrResult result = all.Run(imgSrc);
    Console.WriteLine($"lapsed={sw.ElapsedMilliseconds} ms");
    Console.WriteLine(result.Text);
}
Imports System
Private model As FullOcrModel = await OnlineFullModels.EnglishV3.DownloadAsync()
Using all As New PaddleOcrAll(model) With {
	.AllowRotateDetection = True,
	.Enable180Classification = False
}
Using imgSrc As Mat = Cv2.ImRead("read.jpg")
	Dim stopWatch As Stopwatch = Stopwatch.StartNew()
	Dim result As PaddleOcrResult = all.Run(imgSrc)
	Console.WriteLine($"lapsed={sw.ElapsedMilliseconds} ms")
	Console.WriteLine(result.Text)
End Using
End Using
$vbLabelText   $csharpLabel

Paddle OCR vs Tesseract (Comparación de características de OCR): Figura 2 - Salida de consola del código anterior.

Tesseract OCR

Tesseract es un motor OCR de código abierto ampliamente reconocido y tiene licencia bajo la licencia Apache 2.0. Su desarrollo comenzó en los laboratorios Hewlett-Packard y continuó bajo la tutela de Google hasta 2018, tras lo cual pasó a ser de código abierto. Ahora lo mantiene una comunidad de colaboradores. El motor es famoso por su capacidad para leer más de 100 idiomas y su compatibilidad con varios formatos de imagen, como PNG, JPEG y TIFF. Produce salidas en múltiples formatos como texto plano, hOCR (HTML), PDF y más.

Características principales

Aquí tienes un resumen de sus principales características:

  1. Soporte Extensivo de Idiomas: Con la capacidad de reconocer más de 100 idiomas, Tesseract atiende a una audiencia global. El motor admite Unicode (UTF-8), lo que permite el procesamiento de documentos multilingües.

  2. Reconocimiento Basado en Redes Neuronales: La versión 4 y posteriores de Tesseract introdujeron un motor de OCR basado en redes neuronales (LSTM), mejorando su precisión en el reconocimiento de líneas de texto sobre sus métodos tradicionales de reconocimiento de patrones de caracteres.

  3. Formatos de Salida Versátiles: Tesseract admite varios formatos de salida, incluyendo texto plano, hOCR (HTML), PDF y TSV, lo que lo hace adaptable para diferentes casos de uso.

Licencia

Tesseract OCR se publica bajo la Licencia Apache 2.0. Esta licencia es una de las más permisivas y abiertas, ya que permite una libertad prácticamente ilimitada para utilizar, modificar y distribuir el software, incluso en proyectos de software propietario.

Instalar Tesseract

Para instalar Tesseract OCR en un proyecto de Visual Studio utilizando NuGet, sigue estos pasos:

  1. Abra Visual Studio: Inicie Visual Studio y abra su proyecto o cree uno nuevo.

  2. Haga clic derecho en su proyecto en el Explorador de soluciones y seleccione Administrar paquetes NuGet... 3. En el Administrador de paquetes NuGet, cambie a la pestaña Explorar y busque Tesseract.

    1. Instala el gestor de paquetes NuGet de Tesseract.

    Paddle OCR vs Tesseract (Comparación de Características OCR): Figura 3 - Instalando Tesseract con el gestor de paquetes NuGet

  3. Descargue Tessdata desde este enlace. Es importante utilizar Tesseract OCR.

Ejemplo de código

using Tesseract;
using (var engine = new TesseractEngine(@".\tessdata-main", "eng", EngineMode.Default))
{
    using (var img = Pix.LoadFromFile(@"read.jpg"))
    {
        using (var page = engine.Process(img))
        {
            var text = page.GetText();
            Console.WriteLine(text);
        }
    }
}
using Tesseract;
using (var engine = new TesseractEngine(@".\tessdata-main", "eng", EngineMode.Default))
{
    using (var img = Pix.LoadFromFile(@"read.jpg"))
    {
        using (var page = engine.Process(img))
        {
            var text = page.GetText();
            Console.WriteLine(text);
        }
    }
}
Imports Tesseract
Using engine = New TesseractEngine(".\tessdata-main", "eng", EngineMode.Default)
	Using img = Pix.LoadFromFile("read.jpg")
		Using page = engine.Process(img)
			Dim text = page.GetText()
			Console.WriteLine(text)
		End Using
	End Using
End Using
$vbLabelText   $csharpLabel

Paddle OCR vs Tesseract (Comparación de características de OCR): Figura 4 - Salida de consola del ejemplo de código anterior

IronOCR

IronOCR es una biblioteca avanzada de OCR (Reconocimiento Óptico de Caracteres) que mejora significativamente las capacidades de los desarrolladores .NET para extraer texto de imágenes y PDFs. Basado en la fundación del motor Tesseract OCR, IronOCR ofrece una experiencia nativa de C# que proporciona una mayor estabilidad y precisión que la base de la biblioteca Tesseract. Está diseñado para integrarse perfectamente en aplicaciones y sitios web .NET, permite la extracción de texto en formatos de texto sin formato o de datos estructurados, y es capaz de comprender una amplia gama de lenguas extranjeras. Utilizando algoritmos de aprendizaje profundo, el IronOCR logra una precisión sin precedentes en tareas de reconocimiento de texto.

Esta biblioteca destaca no sólo en tareas sencillas de OCR, sino que extiende su funcionalidad a un amplio espectro de aplicaciones. Es compatible con diversas plataformas, incluidas las versiones .NET 5 a 8, .NET Core 2x y 3x, y .NET Framework 4.6.2 y superiores.

Características principales

Estos son algunos de los principales atributos y funcionalidades que distinguen a IronOCR:

Motor de OCR Avanzado: Utilizando Tesseract 5, IronOCR ofrece un motor de OCR avanzado que soporta más de 125 idiomas. Esta capacidad es crucial para las aplicaciones globales que requieren soporte multilingüe. La biblioteca ofrece opciones de calidad alta, media y rápida para la mayoría de los idiomas, incluidos los idiomas personalizados y la formación de fuentes, lo que garantiza flexibilidad y gran precisión en el reconocimiento de textos.

Manejo integral de documentos: IronOCR puede procesar una variedad de tipos y formatos de documentos, incluidos imágenes (JPG, PNG, GIF, TIFF, BMP), objetos System.Drawing, flujos y PDFs.

Procesamiento de Imágenes Robusto: La biblioteca incluye un conjunto potente de filtros y herramientas de procesamiento de imágenes, como el enfoque, la mejora de resolución, la reducción de ruido y la corrección de color (binarizar, escala de grises, invertir).

Salida de Datos Estructurada y Simple: IronOCR ofrece tanto salida de datos estructurada (páginas, bloques, párrafos, líneas, palabras, caracteres) como salida de datos simple (cadenas de texto .NET, datos de código de barras y QR, imágenes).

Procesamiento concurrente y visión por computadora: La biblioteca admite la ejecución en un solo hilo o en varios hilos, operaciones asincrónicas y ofrece capacidades de visión por computadora para identificar regiones de texto dentro de imágenes, mejorando la precisión y eficiencia del reconocimiento de texto en imágenes complejas o ruidosas.

Para instalar IronOCR en su proyecto .NET, puede utilizar varios métodos, en función de su entorno de desarrollo y sus preferencias. Aquí tienes una guía simplificada para empezar:

Licencia

IronOCR ofrece varias opciones de licencia adaptadas a las distintas necesidades de proyectos y desarrolladores, lo que garantiza flexibilidad y escalabilidad a sus usuarios. Los términos de la licencia son perpetuos, lo que significa que una vez que adquieres una licencia, no hay cuotas recurrentes. Además, cada licencia incluye una garantía de devolución del dinero de 30 días, un año de soporte y actualizaciones del producto, y es válida para entornos de desarrollo, ensayo y producción. El precio de la licencia comienza desde $749. Puedes obtener una prueba gratuita antes de comprar la licencia.

Instalar IronOCR

  1. Navegue a Herramientas -> Administrador de paquetes NuGet -> Consola del administrador de paquetes.

    1. Ingrese el comando Install-Package IronOcr y ejecútelo. Este comando recupera e instala IronOCR en su proyecto, dejándolo listo para su uso.

    Paddle OCR vs Tesseract (Comparación de características OCR): Figura 5 - Usar la consola del administrador de paquetes para instalar IronOCR

Ejemplo de código

A continuación se muestra un ejemplo de código de cómo se puede extraer texto de una imagen utilizando IronOCR:

using IronOcr;
IronOcr.License.LicenseKey = "License-Key";
var ocrMode = new IronTesseract();
var resultText = ocrMode.Read("read.jpg");
Console.WriteLine(resultText.Text);
using IronOcr;
IronOcr.License.LicenseKey = "License-Key";
var ocrMode = new IronTesseract();
var resultText = ocrMode.Read("read.jpg");
Console.WriteLine(resultText.Text);
Imports IronOcr
IronOcr.License.LicenseKey = "License-Key"
Dim ocrMode = New IronTesseract()
Dim resultText = ocrMode.Read("read.jpg")
Console.WriteLine(resultText.Text)
$vbLabelText   $csharpLabel

Paddle OCR vs Tesseract (Comparación de características de OCR): Figura 6 - Salida de consola del ejemplo de código anterior

Comparación

Al evaluar IronOCR, PaddleOCR y Tesseract en diversos factores importantes para aplicaciones de reconocimiento óptico de caracteres (OCR), es crucial considerar las fortalezas de cada herramienta en el contexto de precisión, velocidad, soporte de idiomas, opciones de personalización y soporte de la comunidad.

Precisión

Tanto PaddleOCR como Tesseract han demostrado una gran precisión en las pruebas comparativas, pero la capacidad de IronOCR para afinar y ajustar los pasos de preprocesamiento le da una ventaja a la hora de ofrecer resultados superiores en diversos tipos de documentos.

Velocidad

En lo que respecta a la velocidad de procesamiento, IronOCR destaca por su eficaz tratamiento de documentos dentro del entorno .NET, ofreciendo un rendimiento optimizado para el reconocimiento rápido de textos. Mientras que PaddleOCR y Tesseract también son conocidos por sus capacidades de procesamiento en tiempo real.

Apoyo lingüístico

Tesseract es compatible con más de 100 idiomas, lo que la convierte en una de las herramientas de OCR más versátiles en cuanto a cobertura lingüística. PaddleOCR también ofrece un impresionante soporte lingüístico, especialmente para las lenguas asiáticas. IronOCR, que utiliza el motor de Tesseract, hereda este amplio soporte de lenguaje, combinándolo con mejoras y optimizaciones adicionales. Esta combinación no sólo amplía la gama de idiomas que se manejan eficazmente, sino que también mejora la precisión y la velocidad de los idiomas directamente compatibles con las mejoras de IronOCR.

Opciones de personalización

IronOCR destaca en esta personalización al proporcionar una amplia gama de opciones que permiten a los desarrolladores ajustar el proceso de OCR, incluido el preprocesamiento de imágenes, el filtrado de texto y los diccionarios personalizados. Este nivel de personalización es especialmente valioso en escenarios de OCR complejos, en los que la configuración predeterminada puede no ser suficiente. Aunque PaddleOCR y Tesseract ofrecen algunas posibilidades de personalización, el hecho de que IronOCR se centre en las necesidades de los desarrolladores dentro del ecosistema .NET garantiza un mayor grado de flexibilidad.

Apoyo comunitario

Mientras que Tesseract goza de una comunidad amplia y consolidada debido a su larga historia y a su naturaleza de código abierto, y la comunidad de PaddleOCR crece rápidamente, IronOCR se beneficia de una comunidad centrada en desarrolladores .NET.

Conclusión

En conclusión, mientras que Tesseract ofrece una base sólida para los proyectos de OCR gracias a su amplia personalización y al amplio apoyo de la comunidad, y PaddleOCR aporta una tecnología puntera de aprendizaje profundo para lograr una gran precisión y velocidad, IronOCR se perfila como una opción convincente para los desarrolladores .NET y las empresas. Su enfoque en la implantación local, su amplia compatibilidad lingüística y su rentable modelo de licencias convierten a IronOCR en una opción atractiva para quienes dan prioridad a la seguridad de los datos, la previsibilidad financiera y la integración con aplicaciones .NET.

IronOCR es especialmente atractivo para las empresas debido a sus opciones de licencia flexibles, que incluyen una prueba gratuita para la evaluación inicial y licencias a partir de $749, satisfaciendo a organizaciones de todos los tamaños que buscan un equilibrio entre rendimiento y costo.

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
Biblioteca OCR para iOS (Comparación de Herramientas Gratuitas y de Pago)
SIGUIENTE >
ABBYY FineReader vs Tesseract: Comparación de OCR