Saltar al pie de página
USANDO IRONOCR

SDK de OCR de pasaporte (Tutorial para desarrolladores)

Un pasaporte es la identidad de un individuo; usamos pasaportes para viajar y registrar aspectos esenciales de nuestras vidas. Sin embargo, el formato del pasaporte no siempre es fácil de leer. Imagina muchos viajeros apareciendo de repente durante la temporada de vacaciones para viajes y ocio. ¿Cómo pueden los agentes de inmigración manejar esa gran cantidad de datos con entrada de datos manual y recuperar la información correcta manualmente?

Por lo tanto, muchas aplicaciones y empresas están recurriendo al reconocimiento óptico de caracteres (OCR), que permite a los desarrolladores extraer rápidamente texto impreso e imágenes digitales.

Del mismo modo, Passport OCR es una tecnología que utiliza software de reconocimiento óptico de caracteres (OCR) para extraer información significativa de los pasaportes; también utiliza la zona de lectura mecánica para todos los pasaportes para recuperar información y así identificar rápidamente al individuo que intenta pasar por inmigración. En escenarios donde necesitas reconocer rápidamente la información del pasaporte o en un proceso que implique la automatización de la extracción de datos del pasaporte, Passport OCR es vital y es la piedra angular de eficiencia y velocidad en aeropuertos y fronteras de inmigración.

Aunque el software y la tecnología Passport OCR se han desarrollado más y más a lo largo de los años, varios factores pueden afectar el proceso de escaneo de documentos. Imágenes digitales con ruido o manchas en el pasaporte pueden afectar gravemente la precisión del pasaporte. Además, las bibliotecas de OCR a veces pueden ser confusas cuando se opera en un pasaporte, ya que la zona de lectura mecánica es un conjunto de datos con una estructura única. Los desarrolladores pueden ser capaces de extraer datos pero tienen que ordenar los parámetros de forma independiente. Sin embargo, con IronOCR, los métodos especializados están optimizados para leer pasaportes; sus resultados permiten a los desarrolladores obtener y manipular la información rápidamente, lo cual es ideal para escaneo y automatización de alto volumen.

En este artículo, discutiremos brevemente el uso de IronOCR para obtener y manipular la información del pasaporte para automatizar la extracción de datos y brindaremos más detalles sobre cómo IronOCR interactúa con el pasaporte.

IronOCR: Biblioteca de OCR AC#

Passport OCR SDK (Tutorial para Desarrolladores): Figura 1 - IronOCR: Una Librería OCR para C#

IronOCR es una librería para C# que ofrece métodos fáciles de usar y funcionalidad flexible para todas las necesidades relacionadas con OCR. Además de las técnicas estándar, IronOCR permite a los desarrolladores utilizar y personalizar completamente una versión de Tesseract para realizar todas las tareas relacionadas.

Aquí tienes un resumen rápido de sus características más destacadas a continuación:

  1. Compatibilidad cruzada: IronOCR es compatible con la mayoría de las plataformas .NET, incluyendo .NET 8, 7, 6, y 5, y soporta .NET Framework 4.6.2 en adelante. Con esta librería, los desarrolladores no tienen que preocuparse por la compatibilidad cruzada, ya que también es compatible con todos los sistemas operativos, desde Windows, macOS hasta Azure, e incluso Linux.
  2. Flexibilidad: La entrada de OCR viene en muchos formatos, por lo que una librería debe manejar todo tipo de formatos para ser verdaderamente flexible. IronOCR acepta todos los formatos de imagen populares (jpg, png, y gif) mientras que soporta los "System.Drawing.Objects" nativos de C#, lo que permite una integración más fácil en las bases de código existentes.
  3. Soporte y facilidad de uso: IronOCR está bien documentado, con una API extensa y tutoriales que indican todas las formas de funcionalidad. Además, hay soporte 24/5, asegurando que los desarrolladores siempre están respaldados.
  4. Soporte para múltiples idiomas: IronOCR soporta hasta 125 idiomas y también soporta idiomas personalizados, haciéndolo versátil para todo el procesamiento de documentos internacionales.

Lectura del pasaporte con IronOCR

Clave de licencia

Por favor, recuerda que IronOCR requiere una clave de licencia para su operación. Puede obtener una clave como parte de una prueba gratuita visitando este enlace.

// Replace the license key variable with the trial key you obtained
IronOcr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";
// Replace the license key variable with the trial key you obtained
IronOcr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";
' Replace the license key variable with the trial key you obtained
IronOcr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY"
$vbLabelText   $csharpLabel

Después de recibir una clave de prueba, configura esta variable en tu proyecto.

Ejemplo de código

El código a continuación muestra cómo IronOCR toma una imagen de pasaporte y extrae toda la información relevante utilizando el SDK de OCR para pasaportes de la librería.

Imagen de entrada

Passport OCR SDK (Tutorial para Desarrolladores): Figura 2 - Imagen de entrada

using IronOcr;
using System;

class Program {
    public static void Main() {
        // Instantiate OCR engine
        var ocr = new IronTesseract();
        using var inputPassport = new OcrInput();
        inputPassport.AddImage("Passport.jpg");

        // Perform OCR to read the passport
        OcrResult result = ocr.Read(inputPassport);

        // Output passport information
        Console.WriteLine("Given Names: " + result.Passport?.GivenNames);
        Console.WriteLine("Country: " + result.Passport?.Country);
        Console.WriteLine("Passport Number: " + result.Passport?.PassportNumber);
        Console.WriteLine("Surname: " + result.Passport?.Surname);
        Console.WriteLine("Date of Birth: " + result.Passport?.DateOfBirth.ToString("yyyy-MM-dd"));
        Console.WriteLine("Date of Expiry: " + result.Passport?.DateOfExpiry.ToString("yyyy-MM-dd"));
    }
}
using IronOcr;
using System;

class Program {
    public static void Main() {
        // Instantiate OCR engine
        var ocr = new IronTesseract();
        using var inputPassport = new OcrInput();
        inputPassport.AddImage("Passport.jpg");

        // Perform OCR to read the passport
        OcrResult result = ocr.Read(inputPassport);

        // Output passport information
        Console.WriteLine("Given Names: " + result.Passport?.GivenNames);
        Console.WriteLine("Country: " + result.Passport?.Country);
        Console.WriteLine("Passport Number: " + result.Passport?.PassportNumber);
        Console.WriteLine("Surname: " + result.Passport?.Surname);
        Console.WriteLine("Date of Birth: " + result.Passport?.DateOfBirth.ToString("yyyy-MM-dd"));
        Console.WriteLine("Date of Expiry: " + result.Passport?.DateOfExpiry.ToString("yyyy-MM-dd"));
    }
}
Imports IronOcr
Imports System

Friend Class Program
	Public Shared Sub Main()
		' Instantiate OCR engine
		Dim ocr = New IronTesseract()
		Dim inputPassport = New OcrInput()
		inputPassport.AddImage("Passport.jpg")

		' Perform OCR to read the passport
		Dim result As OcrResult = ocr.Read(inputPassport)

		' Output passport information
		Console.WriteLine("Given Names: " & result.Passport?.GivenNames)
		Console.WriteLine("Country: " & result.Passport?.Country)
		Console.WriteLine("Passport Number: " & result.Passport?.PassportNumber)
		Console.WriteLine("Surname: " & result.Passport?.Surname)
		Console.WriteLine("Date of Birth: " & result.Passport?.DateOfBirth.ToString("yyyy-MM-dd"))
		Console.WriteLine("Date of Expiry: " & result.Passport?.DateOfExpiry.ToString("yyyy-MM-dd"))
	End Sub
End Class
$vbLabelText   $csharpLabel

Explicación del código

  1. Importar librerías: Primero importamos IronOCR a la base de código y otras librerías necesarias.
  2. Instanciar el Motor OCR: Creamos un nuevo objeto IronTesseract para inicializar el motor OCR.
  3. Cargar Imagen de Pasaporte: Luego creamos un nuevo OcrInput y cargamos la imagen que contiene el pasaporte usando AddImage().
  4. Leer el Pasaporte usando OCR: Usamos el método Read() para realizar la operación OCR en la imagen de entrada y guardar el resultado.
  5. Resultado de salida: Presentamos la información extraída del pasaporte, como nombres de pila, país, número de pasaporte, apellido, fecha de nacimiento y fecha de vencimiento.

Salida de consola

Passport OCR SDK (Tutorial para Desarrolladores): Figura 3 - Salida de consola

Zona legible por máquina

IronOCR puede extraer la información de la Zona de Lectura Mecánica (MRZ) de las dos filas inferiores de cualquier pasaporte siguiendo el estándar de la Organización de Aviación Civil Internacional (OACI). Los datos de MRZ comprenden dos filas, cada una conteniendo información única.

Aquí tienes una breve tabla sobre ello:

Passport OCR SDK (Tutorial para Desarrolladores): Figura 4 - Tabla de MRZ

Desafíos para el reconocimiento óptico de caracteres (OCR) y la depuración de pasaportes

La calidad de la imagen siempre es un problema al escanear imágenes digitales. Una calidad de imagen distorsionada oscurecería la información y haría más difícil confirmar la precisión de los datos. Además, los desarrolladores deben considerar la seguridad de los datos y el cumplimiento al tratar con información de misión crítica como un pasaporte.

IronOCR también proporciona una manera de depurar y mostrar el concepto para la información de interacción. Estos métodos permiten a los desarrolladores solucionar problemas y confiar en los datos extraídos.

Aquí tienes un breve ejemplo de ello:

using IronOcr;
using System;

class DebugExample {
    public static void Main() {
        // Instantiate OCR engine
        var ocr = new IronTesseract();
        using var inputPassport = new OcrInput();
        inputPassport.AddImage("Passport.jpg");

        // Perform OCR
        OcrResult result = ocr.Read(inputPassport);

        // Output Confidence level and raw extracted text
        Console.WriteLine("OCR Confidence: " + result.Confidence);
        Console.WriteLine("Extracted Text: ");
        Console.WriteLine(result.Text);
    }
}
using IronOcr;
using System;

class DebugExample {
    public static void Main() {
        // Instantiate OCR engine
        var ocr = new IronTesseract();
        using var inputPassport = new OcrInput();
        inputPassport.AddImage("Passport.jpg");

        // Perform OCR
        OcrResult result = ocr.Read(inputPassport);

        // Output Confidence level and raw extracted text
        Console.WriteLine("OCR Confidence: " + result.Confidence);
        Console.WriteLine("Extracted Text: ");
        Console.WriteLine(result.Text);
    }
}
Imports IronOcr
Imports System

Friend Class DebugExample
	Public Shared Sub Main()
		' Instantiate OCR engine
		Dim ocr = New IronTesseract()
		Dim inputPassport = New OcrInput()
		inputPassport.AddImage("Passport.jpg")

		' Perform OCR
		Dim result As OcrResult = ocr.Read(inputPassport)

		' Output Confidence level and raw extracted text
		Console.WriteLine("OCR Confidence: " & result.Confidence)
		Console.WriteLine("Extracted Text: ")
		Console.WriteLine(result.Text)
	End Sub
End Class
$vbLabelText   $csharpLabel

Explicación del código de depuración

  1. Confianza: La propiedad Confidence en el OcrResult es un número de punto flotante que representa la confianza estadística de la precisión de OCR, calculado como un promedio de cada carácter. Un valor más bajo indica que la imagen del pasaporte puede estar borrosa o contener información adicional. Uno representa el nivel más alto de confianza, mientras que cero representa el más bajo.
  2. Texto: La propiedad Text en el OcrResult contiene el texto sin procesar extraído de la imagen del pasaporte. Los desarrolladores pueden usarlo en pruebas unitarias para validar el texto extraído de la imagen del pasaporte realizando afirmaciones de igualdad.

Conclusión

Passport OCR SDK (Tutorial para Desarrolladores): Figura 5 - IronOCR

La tecnología de OCR de Pasaportes mejora significativamente el procesamiento de documentos al automatizar la extracción de datos y mejorar la eficiencia operativa. Simplifica la verificación de identidad y los procesos KYC, asegurando alta precisión mientras maneja información personal sensible. Las fronteras de inmigración y los aeropuertos pueden reducir el tiempo de procesamiento y mejorar la eficiencia del flujo de trabajo eligiendo IronOCR como su API OCR para Pasaportes.

IronOCR proporciona a los desarrolladores flexibilidad y escalabilidad a través de sus métodos fáciles de usar. Permite a los desarrolladores ordenar la información rápidamente a través del objeto OcrResult. Además, IronOCR proporciona herramientas de depuración, incluyendo niveles de confianza y texto bruto sin analizar, que los desarrolladores pueden usar en pruebas unitarias de productos. IronOCR también minimiza el ruido digital de manera manual para un uso más avanzado limpiando la entrada de la imagen del pasaporte antes de pasarla por el método.

Siéntete libre de aprovechar la página de licencia de prueba gratuita de IronOCR.

Preguntas Frecuentes

¿Cómo puedo usar OCR para extraer información de pasaportes en C#?

Puedes usar IronOCR para extraer información de pasaportes procesando imágenes de pasaportes y extrayendo datos de la zona legible por máquina usando sus potentes capacidades de OCR.

¿Cuáles son los beneficios de usar OCR para el procesamiento de datos de pasaportes?

OCR para el procesamiento de datos de pasaportes automatiza la extracción de información, aumentando significativamente la eficiencia y precisión en áreas de alto tráfico como aeropuertos y controles fronterizos.

¿Es posible procesar varios idiomas con la tecnología OCR?

Sí, IronOCR admite hasta 125 idiomas y permite la adición de idiomas personalizados, lo que lo hace versátil para procesar documentos internacionales.

¿Cómo asegura IronOCR la extracción precisa de datos de pasaportes?

IronOCR proporciona una propiedad 'Confidence' en el OcrResult para indicar la precisión estadística, permitiendo a los desarrolladores verificar la fiabilidad de los datos extraídos.

¿Qué formatos de imagen son compatibles con IronOCR para el escaneo de pasaportes?

IronOCR admite todos los formatos de imagen populares, incluidos jpg, png y gif, y también puede trabajar con System.Drawing.Objects nativos de C# para una fácil integración.

¿Qué desafíos pueden enfrentar los desarrolladores con la implementación de OCR de pasaportes?

Los desafíos incluyen tratar con imágenes de baja calidad, garantizar la seguridad de los datos y cumplir con el manejo de información sensible de los pasaportes.

¿Cómo pueden los desarrolladores comenzar a usar IronOCR para el OCR de pasaportes?

Los desarrolladores pueden comenzar a usar IronOCR obteniendo una clave de licencia de prueba desde el sitio web del proveedor y siguiendo la documentación detallada para integrarlo en sus aplicaciones C#.

¿Qué plataformas son compatibles con IronOCR?

IronOCR es compatible con la mayoría de las plataformas .NET, incluyendo .NET 8, 7, 6 y 5, así como .NET Framework 4.6.2 en adelante, y admite los principales sistemas operativos como Windows, macOS, Azure y Linux.

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