USO DE IRONOCR

Cómo leer documentos de identidad mediante OCR en C#

Kannaopat Udonpant
Kannapat Udonpant
26 de marzo, 2024
Compartir:

Introducción

La tecnología de reconocimiento óptico de caracteres (OCR) se ha convertido en una herramienta invaluable para automatizar la extracción de texto de imágenes, permitiendo una recuperación y análisis de datos eficientes y evitando errores humanos. Esta tecnología puede utilizarse para leer permisos de conducir, pasaportes, documentos oficiales de instituciones, carnés de identidad, tarjetas de permiso de residencia y documentos de viaje de varios idiomas y diferentes países con la fecha exacta de caducidad, nacionalidad, fecha de nacimiento, etc. Todos los datos extraídos pueden alimentar posteriormente productos de software de aprendizaje automático e inteligencia artificial.

En este artículo, exploraremos cómo aprovechar IronOCR, una potente biblioteca OCR en C# de Iron Software, para leer y extraer información de documentos de identidad. IronOCR proporciona una solución OCR sencilla y flexible en forma de API para tareas de OCR, lo que lo convierte en una excelente opción para desarrolladores que buscan integrar capacidades de software de OCR en sus aplicaciones.

IronOCR permite a las computadoras reconocer y extraer texto de imágenes, escanear documentos existentes o cualquier otra representación visual de texto. Para extraer datos, implica una serie de procesos complejos que imitan la forma en que los humanos perciben e interpretan visualmente los textos. Este proceso incluye el preprocesamiento de imágenes, la detección de texto, la segmentación de caracteres, la extracción de características, el reconocimiento de caracteres y el postprocesamiento para corregir errores.

Cómo leer documentos de identidad mediante OCR en C#

  1. Crear un nuevo proyecto C# en Visual Studio

  2. Instala la biblioteca IronOCR .NET y agrégala a tu proyecto.

  3. Lea imágenes de documentos de identidad utilizando la biblioteca IronOCR.

  4. Leer el documento de identidad a partir de PDF.

    IronOCR, creado y mantenido por Iron Software, sirve como una potente biblioteca para Ingenieros de Software en C#, facilitando OCR, Escaneo de Códigos de Barras y Extracción de Texto en proyectos .NET.

Características principales de IronOCR

Versatilidad en la lectura de textos

Capaz de leer datos relevantes de varios formatos, incluidos imágenes (JPEG, PNG, GIFF, TIFF, BMP), Streams y PDFs.

Mejora de la imagen

Corrige escaneos y fotos de baja calidad mediante una serie de filtros como Deskew, Denoise, Binarize, Enhance Resolution, Dilate, etc.

Reconocimiento de códigos de barras

Admite la lectura de códigos de barras de una amplia gama de formatos, que abarca más de 20 tipos de códigos de barras, con reconocimiento añadido de códigos QR.

Integración de Tesseract OCR

Utiliza la última versión de Tesseract OCR, perfeccionada para obtener un rendimiento óptimo en la extracción de texto de imágenes.

Opciones de salida flexibles

Permite exportar archivos PDF, HTML y contenido de texto con función de búsqueda a partir de archivos de imagen, ofreciendo flexibilidad en la gestión de la información extraída.

Ahora, vamos a profundizar en el desarrollo de una aplicación de demostración que utiliza IronOCR para leer documentos de identidad.

Requisitos previos

  1. Visual Studio: Asegúrate de tener Visual Studio o cualquier otro entorno de desarrollo de C# instalado.

  2. Administrador de paquetes NuGet: Asegúrate de poder usar NuGet para gestionar paquetes en tu proyecto

Paso 1: Crear un nuevo proyecto C# en Visual Studio

Comience por crear una nueva aplicación de consola C# en Visual Studio o, alternativamente, utilice un proyecto existente. Seleccione Añadir nuevo proyecto en el menú y, a continuación, seleccione la aplicación de consola de las plantillas que aparecen a continuación.

Cómo Leer Documentos de Identidad Usando OCR en C#: Figura 1

Indique el nombre y la ubicación del proyecto en las siguientes ventanas

Cómo Leer Documentos de Identidad Usando OCR en C#: Figura 2

Seleccione la versión .NET necesaria

Cómo Leer Documentos de Identidad Usando OCR en C#: Figura 3

Haga clic en el botón Crear para crear el nuevo proyecto.

Paso 2: Instala la librería IronOCR y añádela a tu proyecto.

IronOCR se puede encontrar en el administrador de paquetes NuGet y se puede instalar utilizando la terminal de comandos con los siguientes comandos.

Cómo leer documentos de identidad utilizando OCR en C#: Figura 4

IronOCR se puede instalar utilizando Visual Studio. Abra el administrador de paquetes de NuGet y busque IronOCR como se muestra a continuación y haga clic en instalar

Cómo leer documentos de identidad utilizando OCR en C#: Figura 5

Una vez instalada, la aplicación está lista para hacer uso de IronOCR para leer cualquier documento de identidad para la extracción de datos y verificación de identidad, lo que reducirá el trabajo de entrada de datos manual.

Paso 3: Lectura de imágenes de documentos de identidad mediante la biblioteca IronOCR

El uso del OCR para procesar documentos de identidad implica muchos pasos, que se detallan a continuación.

Preprocesamiento de imágenes

El procesamiento de documentos OCR ID comienza con la adquisición de una imagen que contiene texto. Esta imagen puede ser un documento de identidad escaneado, una fotografía de carnés de identidad o cualquier otra representación visual de texto. Los pasos de preprocesamiento del documento de identidad pueden incluir el redimensionamiento, la reducción de ruido y el realce para mejorar la calidad y claridad de la imagen.

Detección de texto

Los algoritmos de OCR necesitan localizar las áreas de datos específicas dentro de la imagen donde está presente el texto. Este paso consiste en identificar regiones de texto o cuadros delimitadores.

Segmentación de personajes

Una vez identificadas las regiones de texto o los campos de datos, se sigue analizando la imagen para segmentar los caracteres individuales. Este paso es crucial para las lenguas que utilizan caracteres distintos, como el inglés o el chino.

Extracción de características

Los algoritmos de OCR analizan los caracteres segmentados para extraer características que ayuden a diferenciar entre distintos caracteres. Estas características pueden incluir patrones de trazos, forma y relaciones espaciales entre elementos.

Reconocimiento de caracteres

A partir de las características extraídas, los algoritmos de OCR clasifican cada carácter segmentado y le asignan una representación textual correspondiente. En este paso suelen emplearse modelos de aprendizaje automático, como las redes neuronales.

Tratamiento posterior

Los caracteres reconocidos pueden someterse a un tratamiento posterior para corregir errores o mejorar la precisión. Este paso puede implicar correcciones basadas en diccionarios, análisis de contexto o modelización del lenguaje.

La biblioteca IronOCR se encarga de todos los pasos anteriores y nos permite realizar OCR utilizando solo unas pocas líneas de código, ahorrando tareas tediosas que consumen mucho tiempo.

using IronOcr;
class Program
{
    public static void Main()
    {
        IronTesseract ocrTesseract = new IronTesseract()
        {
            Language = OcrLanguage.EnglishBest,
            Configuration = new TesseractConfiguration()
            {
                ReadBarCodes = false,
                BlackListCharacters = "`ë
^",
                PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
            }
        };
        using var ocrInput = new OcrInput("id1.png");
        var ocrResult = ocrTesseract.Read(ocrInput);
        Console.WriteLine(ocrResult.Text);
    }
}
using IronOcr;
class Program
{
    public static void Main()
    {
        IronTesseract ocrTesseract = new IronTesseract()
        {
            Language = OcrLanguage.EnglishBest,
            Configuration = new TesseractConfiguration()
            {
                ReadBarCodes = false,
                BlackListCharacters = "`ë
^",
                PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
            }
        };
        using var ocrInput = new OcrInput("id1.png");
        var ocrResult = ocrTesseract.Read(ocrInput);
        Console.WriteLine(ocrResult.Text);
    }
}
Imports IronOcr
Friend Class Program
	Public Shared Sub Main()
		Dim ocrTesseract As New IronTesseract() With {
			.Language = OcrLanguage.EnglishBest,
			.Configuration = New TesseractConfiguration() With {
				.ReadBarCodes = False,
				.BlackListCharacters = "`ë ^",
				.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd
			}
		}
		Dim ocrInput As New OcrInput("id1.png")
		Dim ocrResult = ocrTesseract.Read(ocrInput)
		Console.WriteLine(ocrResult.Text)
	End Sub
End Class
$vbLabelText   $csharpLabel

Imagen de entrada

A continuación se muestra una imagen de muestra utilizada como entrada para el programa

Cómo leer documentos de identidad usando OCR en C#: Figura 6

Salida

Cómo leer documentos de identidad usando OCR en C#: Figura 7

Código Explicación

El código anterior utiliza la biblioteca IronOCR para leer todos los campos de texto en el documento de identificación. Utilizamos la clase IronTesseract de la biblioteca IronOCR y la configuramos para usar el idioma inglés y algunos caracteres en la lista negra. Luego declaramos la entrada de OCR usando la clase OcrInput, y después leemos el texto de la imagen. Los campos de texto extraídos pueden verse en la salida de la consola.

Paso 4: Leer documentos de identidad a partir de PDF.

También podemos leer a partir de documentos PDF. Para esto, podemos usar la biblioteca IronPDF de IronSoftware. En primer lugar, instale la biblioteca como se indica a continuación

Cómo Leer Documentos de Identidad Usando OCR en C#: Figura 8

using IronOcr;
using IronPdf;
class Program
{
    public static void Main()
    {
        var pdfReader = new PdfDocument("id1.pdf");
        var ocrTesseract = new IronTesseract();
        using var ocrInput = new OcrInput();
        ocrInput.AddPdf(pdfReader.Stream);
        var ocrResult = ocrTesseract.Read(ocrInput);
        Console.WriteLine(ocrResult.Text);
    }
}
using IronOcr;
using IronPdf;
class Program
{
    public static void Main()
    {
        var pdfReader = new PdfDocument("id1.pdf");
        var ocrTesseract = new IronTesseract();
        using var ocrInput = new OcrInput();
        ocrInput.AddPdf(pdfReader.Stream);
        var ocrResult = ocrTesseract.Read(ocrInput);
        Console.WriteLine(ocrResult.Text);
    }
}
Imports IronOcr
Imports IronPdf
Friend Class Program
	Public Shared Sub Main()
		Dim pdfReader = New PdfDocument("id1.pdf")
		Dim ocrTesseract = New IronTesseract()
		Dim ocrInput As New OcrInput()
		ocrInput.AddPdf(pdfReader.Stream)
		Dim ocrResult = ocrTesseract.Read(ocrInput)
		Console.WriteLine(ocrResult.Text)
	End Sub
End Class
$vbLabelText   $csharpLabel

El código anterior utiliza IronPDF para cargar el documento id.PDF y este PDF se pasa como flujo a OcrInput y ocrTesseract.

Salida

Cómo leer documentos de identidad usando OCR en C#: Figura 9

Licencias (prueba gratuita disponible)

IronOCR. Esta clave debe colocarse en appsettings.json.

"IRONOCR-LICENSE-KEY": "your license key"
"IRONOCR-LICENSE-KEY": "your license key"
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'"IRONOCR-LICENSE-KEY": "your license key"
$vbLabelText   $csharpLabel

Proporcione el ID de correo electrónico del usuario para obtener una licencia de prueba.

Cómo leer documentos de identidad usando OCR en C#: Figura 10

Casos prácticos

1. Verificación de identidad en servicios financieros:

Caso práctico: Los bancos y las instituciones financieras utilizan el reconocimiento óptico de caracteres para leer documentos de identidad como pasaportes, carnés de conducir y documentos de identidad durante el proceso de incorporación de clientes y de identificación de clientes.

Ventajas: Garantiza una verificación de identidad precisa y eficaz para la creación de cuentas, solicitudes de préstamos y otras transacciones financieras.

2. Control de fronteras e inmigración:

Caso práctico: Las autoridades de inmigración emplean la tecnología OCR para leer y autenticar la información de pasaportes y visados en los puestos de control fronterizos.

Ventajas: Agiliza el proceso de inmigración, mejora la seguridad y reduce los errores de introducción manual de datos.

3. Control de acceso y seguridad:

Caso práctico: El OCR se utiliza en sistemas de control de acceso para leer información de tarjetas de identificación, credenciales de empleados o escáneres de reconocimiento facial para entrar de forma segura en edificios o zonas restringidas.

Ventajas: Aumenta la seguridad al garantizar que sólo acceden las personas autorizadas y proporciona un registro digital de las entradas.

4. Servicios de Gobierno Electrónico:

Caso práctico: Los organismos públicos utilizan el OCR para procesar y verificar los documentos de identidad presentados en línea para servicios como la renovación del permiso de conducir, la declaración de impuestos y la solicitud de permisos.

Ventajas: Mejora la eficiencia, reduce el papeleo y mejora la experiencia general del ciudadano.

5. Verificación de Identidad en el Sector Salud:

Caso práctico: Los profesionales sanitarios utilizan el OCR para leer la información de los carnés de identidad de los pacientes, las tarjetas de los seguros y otros documentos de identidad para llevar un registro preciso de los pacientes.

Ventajas: Facilita la identificación precisa de los pacientes, garantiza la correcta gestión de los historiales médicos y respalda los procesos de facturación.

6. Registro de entrada automatizado en hoteles:

Caso práctico: Los hoteles implantan el OCR para automatizar los procesos de facturación mediante el escaneado de los documentos de identidad de los huéspedes, lo que agiliza el proceso de registro.

Ventajas: Mejora la experiencia del huésped, reduce el tiempo de facturación y minimiza los errores en la captura de la información del huésped.

7. Ciudades Inteligentes y Servicios Públicos:

Caso práctico: El OCR se aplica en iniciativas de ciudades inteligentes para leer documentos de identidad para servicios como el acceso al transporte público, las afiliaciones a bibliotecas y las inscripciones a eventos de la ciudad.

Beneficios: Mejora la eficiencia de los servicios públicos, facilita el acceso sin fisuras y mejora las experiencias de la vida urbana.

8. Administración de la Educación:

Caso práctico: Las instituciones educativas utilizan el OCR para procesar y verificar los documentos de identidad durante la admisión de estudiantes, los exámenes y la expedición de credenciales académicas.

Ventajas: Garantiza la exactitud de los registros de los estudiantes, reduce la carga administrativa y mejora la integridad de los procesos académicos.

Conclusión

Integrar la tecnología de OCR en su aplicación C# utilizando IronOCR le permite extraer información de manera eficiente de documentos de identificación. Esta guía completa proporciona los pasos necesarios para configurar su proyecto y utilizar IronOCR para leer y procesar imágenes de documentos de identidad. Experimente con los ejemplos de código para adaptar el proceso de extracción a sus requisitos específicos, lo que le proporcionará una solución automatizada y sin fisuras para el tratamiento de datos de documentos de identidad.

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
Cómo crear el reconocimiento de caracteres en C#
SIGUIENTE >
Cómo crear un escáner de recibos OCR en C#