护照 OCR SDK(开发者教程)
护照是个人的身份证明; 我们使用护照旅行和登记生活中的重要方面。 然而,护照格式并不总是易于阅读。 想象一下,在假日旅游和休闲季节,突然出现了许多旅行者。 移民代理如何通过手动数据录入处理大量数据并手动检索正确信息?
因此,许多应用程序和企业都转向了光学字符识别 (OCR),它允许开发人员快速提取打印文本和数字图像。
同样,护照 OCR 是一种使用 光学字符识别 (OCR) 软件从护照中提取有意义信息的技术; 该项目还利用所有护照的机器可读区检索信息,以快速识别试图通过移民局的个人。 在需要快速识别护照信息的场景中,或者在涉及自动提取护照数据的流程中,护照 OCR 至关重要,是机场和出入境边防部门提高效率和速度的基石。
尽管多年来护照 OCR 软件和技术得到了进一步发展,但各种因素仍会影响文档扫描过程。 护照上有噪点或污点的数字图像会严重影响护照的准确性。 此外,由于机器可读区是一个独特的结构化数据集,OCR 库在对护照进行操作时有时会造成混淆。 开发人员可能能够提取数据,但必须独立对参数进行排序。 然而,使用 IronOCR,专门的方法被优化用于读取护照; 翻译结果要让开发人员能够快速获取和处理信息,这非常适合大批量扫描和自动化。
在本文中,我们将简要讨论使用 IronOCR 获取和操作护照信息以实现数据提取自动化,并进一步详细介绍 IronOCR 如何与护照进行交互。
IronOCR:一个 C# OCR 库。
!a href="/static-assets/ocr/blog/passport-ocr-sdk/passport-ocr-sdk-1.webp">Passport OCR SDK(开发人员教程):图 1 - IronOCR:一个 C# OCR 库。
IronOCR是一个 C# 库,为所有与 OCR 相关的需求提供易用的方法和灵活的功能。 除了标准技术外,IronOCR 还允许开发人员充分利用和定制一个版本的 Tesseract 来实现所有相关任务。
以下是其最显著特点的简要介绍:
1.跨平台兼容性: IronOCR 兼容大多数 .NET 平台,包括 .NET 8、7、6 和 5,并支持 .NET Framework 4.6.2 及以上版本。 有了这个库,开发人员就不必担心交叉兼容性问题,因为它还支持从 Windows、macOS 到 Azure 甚至 Linux 等所有操作系统。 2.灵活性: OCR 输入有多种格式,因此库必须能够处理各种格式,才能真正具有灵活性。 IronOCR 可接受所有流行的图像格式(jpg、png 和 gif),同时支持 C# 中的本地 "System.Drawing.Objects",从而可以更轻松地集成到现有代码库中。 3.支持和易用性: IronOCR 文档齐全,有大量的 API 和教程说明各种形式的功能。 此外,还提供 24/5 支持,确保开发人员始终得到支持。 4.支持多种语言: IronOCR 支持多达 125 种语言,还支持自定义语言,是所有国际文档处理的通用工具。
使用 IronOCR 读取护照
许可证密钥
请记住,IronOCR 的运行需要许可密钥。 您可以访问此链接,作为免费试用的一部分获得密钥。
// 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";收到试用密钥后,请在项目中设置此变量。
代码示例
下面的代码展示了 IronOCR 如何使用库中的护照 OCR SDK 获取护照图像并提取所有相关信息。
输入图片
!护照 OCR SDK(开发人员教程):图 2 - 输入图像
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"));
}
}代码解释
- 导入库: 首先将 IronOCR 和其他必要库导入代码库。 2.初始化 OCR 引擎:我们创建一个新的
IronTesseract对象来初始化 OCR 引擎。 3.加载护照图像:然后,我们创建一个新的OcrInput并使用AddImage()加载包含护照的图像。 4.使用 OCR 阅读护照: 我们使用Read()方法对输入图像执行 OCR 操作并保存结果。 5.输出结果:我们输出提取的护照信息,如姓名、国家、护照号码、姓氏、出生日期和到期日期。
控制台输出
机器可读区域
IronOCR 可以按照国际民用航空组织(ICAO)的标准,从任何护照的最下面两行提取机器可读区域(MRZ)信息。 MRZ 数据由两行组成,每行包含唯一的信息。
下面是一个简表:
护照 OCR 和调试的挑战
扫描数字图像时,图像质量始终是个问题。 失真的图像质量会模糊信息,增加确认数据准确性的难度。 此外,在处理护照等关键任务信息时,开发人员必须考虑数据的安全性和合规性。
IronOCR 还提供了一种调试和展示交互信息概念的方法。 这些方法可以让开发人员排除故障,并对提取的数据充满信心。
下面是一个简单的例子:
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);
}
}调试代码说明
1.置信度:OcrResult 中的 Confidence 属性是一个浮点数,代表 OCR 的统计精度置信度,以每个字符的平均值计算。 较低的值表示护照图像可能模糊或包含额外信息。 1 代表最高置信度,0 代表最低置信度。 2.文本: OcrResult 中的 Text 属性包含从护照图像中提取的未处理文本。 开发人员可以在单元测试中使用它,通过等价断言来验证从护照图像中提取的文本。
结论
!护照 OCR SDK(开发人员教程):图 5 - IronOCR
Passport OCR 技术通过自动提取数据和提高操作效率,大大增强了文档处理能力。 它可以简化身份验证和 KYC 流程,在处理敏感个人信息的同时确保高准确性。 移民边境和机场选择 IronOCR 作为其护照 OCR API,可以缩短处理时间,提高工作流程效率。
IronOCR 通过其简单易用的方法为开发人员提供了灵活性和可扩展性。 它允许开发人员通过 OcrResult 对象快速对信息进行分类。 此外,IronOCR 还提供了调试工具,包括置信度和未经解析的原始文本,供开发人员在产品单元测试中使用。 IronOCR 还通过在传递护照图像输入到该方法之前手动减少数字噪声,以便于更高级的用法。
随时可以利用 IronOCR 的 免费试用许可证 页面。
常见问题解答
如何在C#中使用OCR提取护照信息?
您可以使用IronOCR通过处理护照图像,从可机读区提取数据来提取护照信息。
使用OCR处理护照数据有哪些好处?
护照数据处理的OCR自动化信息提取,大大提高了高流量区域(如机场和边境管制)的效率和准确性。
采用OCR技术可以处理多种语言吗?
是的,IronOCR支持多达125种语言,并允许添加自定义语言,使其在处理国际文件时非常通用。
IronOCR如何确保从护照中准确提取数据?
IronOCR在OcrResult中提供了一个“Confidence”属性,以指示统计准确性,允许开发人员验证提取数据的可靠性。
IronOCR支持哪些图片格式用于护照扫描?
IronOCR支持所有流行的图片格式,包括jpg、png和gif,它还可以与本机C#System.Drawing.Objects一起使用,以便于集成。
开发人员在实现护照OCR时可能面临哪些挑战?
挑战包括处理低质量图像、确保数据安全、以及遵守处理敏感护照信息的合规性。
开发人员如何开始使用IronOCR进行护照OCR?
开发人员可以通过从提供商的网站获取试用许可证密钥,并遵循详细文档将其集成到C#应用程序中开始使用IronOCR。
IronOCR兼容哪些平台?
IronOCR与大多数.NET平台兼容,包括.NET 8,7,6和5,以及.NET Framework 4.6.2及以上,并支持Windows、macOS、Azure和Linux等主要操作系统。







