Saltar al pie de página
HERRAMIENTAS OCR
Cómo implementar OCR en C# usando bibliotecas de código abierto

OCR C# de código abierto (Lista para desarrolladores)

El OCR (Reconocimiento Óptico de Caracteres) es una tecnología revolucionaria que transforma completamente cómo se pueden usar los documentos escaneados en el mundo digital actual. Permite a las computadoras reconocer y extraer texto de una variedad de fuentes, incluidos documentos PDF escaneados, lo que nos permite editar e interactuar efectivamente con documentos PDF. Uno de los programas de reconocimiento óptico de caracteres (OCR) es Adobe Acrobat, que te permite extraer rápidamente texto de documentos escaneados y convertirlos en PDFs editables e imágenes PDF con búsqueda.

Los desarrolladores pueden acceder a herramientas robustas y APIs que utilizan algoritmos de vanguardia y enfoques de aprendizaje automático al utilizar bibliotecas de OCR como Tesseract e IronOCR. Estas bibliotecas permiten un reconocimiento preciso de texto, facilitando la gestión y recuperación de información útil de documentos ya escaneados y documentos nuevos. OCR permite un análisis de contenido sin problemas y ayuda a las empresas y individuos a maximizar su productividad aprovechando al máximo sus documentos escaneados e imágenes de páginas. OCR es una herramienta vital en la tecnología actual, ya sea para digitalizar registros en papel, extraer datos de facturas o simplemente mejorar la accesibilidad de los documentos.

Teseracto

El motor de OCR de código abierto más famoso se llama Tesseract y fue creado inicialmente por Hewlett-Packard. Desde 2006, Google ha estado apoyando este proyecto de software libre, que se publica bajo la licencia Apache.

Uno de los sistemas libres y de código abierto más precisos disponibles es el motor de OCR Tesseract. Tesseract ahora admite 116 idiomas con su versión estable más reciente, la 4.1.1, basada en LSTM.

Tesseract requiere apoyo de una GUI (interfaz gráfica de usuario) separada cuando se ejecuta desde una interfaz de línea de comandos porque no tiene su propia interfaz incorporada. Puede aprender nueva información usando sus redes neuronales y tiene una avanzada línea de procesamiento de imágenes. La forma más efectiva de agregar capacidades de OCR a tu aplicación .NET es el Tesseract .NET SDK, que es una de las mejores soluciones para proporcionar capacidades de reconocimiento de texto. Aunque Tesseract es indudablemente la mejor biblioteca de OCR en el mercado actualmente.

GOCR

El programa de OCR (Reconocimiento Óptico de Caracteres) conocido como GOCR fue creado bajo la Licencia Pública GNU. Transforma archivos de texto de nuevo en imágenes escaneadas de documentos. Después de iniciar el programa y gestionar el equipo de desarrollo en SF, Joerg Schulenburg sigue manejando el paquete hoy en día con una base de tiempo (muy) baja.

Dado que GOCR puede usarse con varios front-ends, es relativamente sencillo trasladarlo a otros sistemas operativos, aplicaciones de red y arquitecturas. Puede leer una amplia gama de tipos de archivos de imagen, y hasta 2010, su calidad mejoró consistentemente.

Según GOCR, puede manejar fuentes sans-serif de una columna con una altura de 20 a 60 píxeles. Informa dificultades con texto escrito en alfabetos distintos al latín, fuentes serif, letras superpuestas, diversos tipos de letra, fotos con ruido y ángulos excesivos de inclinación. GOCR también es capaz de traducir códigos de barras.

Cuneiforme

CuneiForm, una tecnología libre y de código abierto, ahora también se conoce como 'Cognitive OpenOCR'. Tiene salida integrada y una base de datos. Cubre 23 idiomas diferentes y también realiza tareas como escaneo de formato de texto, análisis de diseño de documentos e identificación.

Cognitive Technologies desarrolló las licencias para OpenOCR, que son freeware y BSD. Si bien admite el uso multiplataforma, los usuarios de Linux no tienen una interfaz gráfica.

Para simplificar el trabajo de reconocimiento de caracteres en cualquier aplicación Dot NET Framework 2.0 o posterior, se utiliza la biblioteca wrapper Puma Dot NET. Realiza una verificación de diccionario mientras procesa datos para mejorar la calidad del reconocimiento.

CuneiForm es una tecnología diseñada para convertir automáticamente o semiautomáticamente copias electrónicas de documentos en papel y archivos de imagen en un formato editable sin afectar la estructura y las fuentes originales del documento. El sistema consta de dos partes para procesar documentos electrónicos en lotes y un documento a la vez. Además, el sistema admite una combinación de ruso e inglés. Solo la rama creada por Andrei Borovsky en 2009 admite el reconocimiento de otros idiomas híbridos. Enseñar al sistema a reconocer otros idiomas es complicado, ya que cada idioma está asociado con un archivo dat, cuya estructura y proceso de creación no son revelados por los desarrolladores.

Kraken

Kraken fue desarrollado para abordar los problemas con Ocropus sin afectar sus otras características. Utiliza su biblioteca de redes neuronales CLSTM y aprovecha la valiosa experiencia adquirida de proyectos anteriores con nuevos datos. Requiere el uso de ciertas bibliotecas externas para funcionar eficazmente en diferentes plataformas. Con la ayuda de la información almacenada, puede hacer predicciones más precisas sobre posibles problemas de validación de datos. Además, su metodología de trabajo facilita el despliegue y entrenamiento sencillo de nuevos modelos.

style=";text-align:left;direction:ltr">A9T9

A9T9 es un software de OCR gratuito que se puede utilizar para extraer texto de archivos de imágenes y convertir imágenes y documentos PDF. Proporciona una interfaz gráfica de usuario (GUI) para el motor de OCR Tesseract.

El programa es fácil de configurar. Lo más importante, es completamente gratuito y de código abierto. No tiene spyware ni adware.

Puedes abrir un archivo PDF o una imagen, y el contenido del archivo fuente se mostrará en la ventana izquierda. Si tu documento tiene varias páginas o es un documento multipágina, puedes usar las flechas en la parte inferior de la página para navegar entre las páginas.

Para iniciar el proceso de OCR, simplemente haz clic en el botón verde OCR, y el resultado aparecerá en el segundo panel derecho. Tienes la opción de guardar el texto resultante tanto como archivos de texto y documentos Word.

IronOCR

A diferencia de la biblioteca estándar de Tesseract, IronOCR amplía Tesseract y proporciona una biblioteca nativa de OCR en C# con mayor precisión, mejor rendimiento y estabilidad mejorada. IronOCR se puede utilizar en programas y sitios web .NET para extraer texto de PDFs e imágenes. Admite una amplia gama de idiomas extranjeros y puede generar salida de texto simple o datos estructurados. Es capaz de escanear códigos de barras e imágenes con texto incrustado. La biblioteca se puede utilizar en aplicaciones desarrolladas en .NET para consola, web, MVC y escritorio. El equipo de desarrollo ofrece asistencia directa con el proceso de licencia para implementaciones comerciales. IronOCR es compatible con las versiones más recientes de Visual Studio.

Ventajas de IronOCR

  • Usando el motor Tesseract 5 más reciente, IronOCR es capaz de leer documentos en papel, códigos de barras y códigos QR de varios archivos de imagen o PDF. Este paquete simplifica la incorporación de OCR en aplicaciones de escritorio, consola y web.
  • IronOCR nos permite realizar OCR, lo que nos permite convertir PDFs escaneados en PDFs con búsqueda.
  • Además de listas de palabras e idiomas personalizados, IronOCR admite 125 idiomas diferentes en todo el mundo.
  • IronOCR puede escanear más de 20 tipos diferentes de códigos de barras y códigos QR.
  • IronOCR puede proporcionar salida en texto simple así como datos de código de barras. Los desarrolladores pueden recuperar todo el contenido para entrada directa en un sistema utilizando un paradigma de objeto de datos estructurados alternativo. Esto incluye encabezados estructurados, párrafos, líneas, palabras y caracteres en aplicaciones web.

A continuación, se muestra el código de muestra que utilizaremos para reconocer el contenido de texto de la imagen proporcionada y convertirlo en texto.

using IronOcr;

// Instantiate an IronTesseract object to utilize its OCR capabilities
var Ocr = new IronTesseract();

// Set the language to English for better accuracy
Ocr.Language = OcrLanguage.EnglishBest;

// Optionally specify the Tesseract version to ensure compatibility
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

// Create an OcrInput object to add images for OCR processing
using (var Input = new OcrInput())
{
    // Add the image to be processed; specify the image's path
    Input.AddImage(@"Demo.png");

    // Perform the OCR and store the result
    var Result = Ocr.Read(Input);

    // Output the extracted text to the console
    Console.WriteLine(Result.Text);

    // Pause the console to keep it open
    Console.ReadKey();
}
using IronOcr;

// Instantiate an IronTesseract object to utilize its OCR capabilities
var Ocr = new IronTesseract();

// Set the language to English for better accuracy
Ocr.Language = OcrLanguage.EnglishBest;

// Optionally specify the Tesseract version to ensure compatibility
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

// Create an OcrInput object to add images for OCR processing
using (var Input = new OcrInput())
{
    // Add the image to be processed; specify the image's path
    Input.AddImage(@"Demo.png");

    // Perform the OCR and store the result
    var Result = Ocr.Read(Input);

    // Output the extracted text to the console
    Console.WriteLine(Result.Text);

    // Pause the console to keep it open
    Console.ReadKey();
}
Imports IronOcr

' Instantiate an IronTesseract object to utilize its OCR capabilities
Private Ocr = New IronTesseract()

' Set the language to English for better accuracy
Ocr.Language = OcrLanguage.EnglishBest

' Optionally specify the Tesseract version to ensure compatibility
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5

' Create an OcrInput object to add images for OCR processing
Using Input = New OcrInput()
	' Add the image to be processed; specify the image's path
	Input.AddImage("Demo.png")

	' Perform the OCR and store the result
	Dim Result = Ocr.Read(Input)

	' Output the extracted text to the console
	Console.WriteLine(Result.Text)

	' Pause the console to keep it open
	Console.ReadKey()
End Using
$vbLabelText   $csharpLabel

En el fragmento de código anterior, estamos desarrollando una característica usando IronTesseract. Primero, instanciamos un nuevo objeto OcrInput para habilitar la adición de uno o más archivos de imagen. Puedes añadir tantas imágenes como desees especificando la ruta de cada imagen usando el método AddImage. Después de añadir tus imágenes, se llama al método Read en el objeto IronTesseract para realizar OCR sobre el contenido proporcionado. El texto resultante se extrae y muestra a través de la consola.

A continuación se muestra la salida que muestra el texto extraído de la imagen proporcionada anteriormente, demostrando que el texto fue extraído con éxito de la imagen.

OCR C# Open Source (Lista Para Desarrolladores) Figura 1 - Salida

Consulta este artículo para una instrucción completa sobre IronOCR.

Conclusión

Las herramientas de OCR de código abierto nos permiten crear nuestros propios programas usando su código fuente. Sin embargo, algunas herramientas no tienen una biblioteca oficial o un equipo dedicado para proporcionar soporte en caso de problemas de codificación. La documentación de Tesseract también carece de código de muestra o tutoriales para escenarios de uso comunes, lo que dificulta que los principiantes entiendan el código y las bibliotecas.

IronOCR admite varios proyectos .NET como .NET Framework Standard 2, .NET Framework 4.5, y .NET Core 2, 3 y 5. También funciona con tecnologías más nuevas como Mono, Xamarin y Azure. Al aprovechar las tecnologías de IronOCR, podemos mejorar los resultados de Tesseract y corregir documentos o imágenes escaneados incorrectamente. El complejo sistema de diccionario de Tesseract se gestiona a través del Paquete NuGet. Utilizamos la Librería Iron OCR para desarrollar una herramienta de OCR.

Con IronOCR, podemos usar el programa sin ninguna configuración adicional, y admite archivos PDF, TIFF de múltiples fotogramas y todos los formatos de imagen comunes. También ofrece capacidades de reconocimiento de códigos de barras, lo que nos permite extraer datos de código de barras y leer valores de códigos de barras de imágenes. IronOCR proporciona una edición de desarrollo rentable con una prueba gratuita, y la licencia de por vida está incluida en el paquete de IronOCR sin costo adicional. El paquete de IronOCR proporciona cobertura para múltiples plataformas con un solo pago. Para más información sobre los precios de IronOCR, consulta esta página.

Kannaopat Udonpant
Ingeniero de Software
Antes de convertirse en Ingeniero de Software, Kannapat completó un doctorado en Recursos Ambientales de la Universidad de Hokkaido en Japón. Mientras perseguía su grado, Kannapat también se convirtió en miembro del Laboratorio de Robótica de Vehículos, que es parte del Departamento de Ingeniería ...
Leer más