使用 IRONOCR

Passport OCR SDK(开发人员教程)

Kannaopat Udonpant
坎那帕·乌东攀
2024年十二月15日
分享:

A护照是个人身份; 我们使用护照旅行和登记生活中的重要方面。 然而,护照格式并不总是易于阅读。 想象一下,在假日旅游和休闲季节,突然出现了许多旅行者。 移民代理如何通过手动数据录入处理大量的价值并手动检索正确的信息?

因此,许多应用程序和企业都开始采用光学字符识别技术。(光学字符识别),这使开发者能够快速提取打印文本和数字图像。

同样,Passport OCR 是一种使用光学字符识别 (光学字符识别)从护照中提取有意义信息的软件; 此外,译文还将利用所有护照的机器可读区域来检索信息,以快速识别试图通过想象的个人。 在需要快速识别护照信息的场景中,或者在涉及自动提取护照数据的流程中,护照 OCR 至关重要,是机场和出入境边防部门提高效率和速度的基石。

尽管多年来护照 OCR 软件和技术得到了进一步发展,但在扫描文件时仍存在很多因素。 护照上有噪点或污点的数字图像会严重影响护照的准确性。 此外,由于机器可读区是一个独特的结构化数据集,OCR 库在对护照进行操作时有时会造成混淆。 开发人员可能能够提取数据,但必须独立对参数进行排序。 然而,由于IronOCR此外,我们还采用了专门的方法来优化护照的阅读; 翻译结果要让开发人员能够快速获取和处理信息,这非常适合大批量扫描和自动化。

在本文中,我们将简要讨论使用 IronOCR 获取和操作护照信息以实现数据提取自动化,并进一步详细介绍 IronOCR 如何与护照进行交互。

IronOCR: A C# OCR 库

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.Drawings.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 获取护照图像并提取所有相关信息。

输入图像

Passport OCR SDK(开发人员教程):图 2 - 输入图像

using IronOcr;
using System;
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputPassport = new OcrInput();
inputPassport.LoadImage("Passport.jpg");
// Perform OCR
OcrPassportResult result = ocr.ReadPassport(inputPassport);
// Output passport information
Console.WriteLine(result.PassportInfo.GivenNames);
Console.WriteLine(result.PassportInfo.Country);
Console.WriteLine(result.PassportInfo.PassportNumber);
Console.WriteLine(result.PassportInfo.Surname);
Console.WriteLine(result.PassportInfo.DateOfBirth);
Console.WriteLine(result.PassportInfo.DateOfExpiry);
using IronOcr;
using System;
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputPassport = new OcrInput();
inputPassport.LoadImage("Passport.jpg");
// Perform OCR
OcrPassportResult result = ocr.ReadPassport(inputPassport);
// Output passport information
Console.WriteLine(result.PassportInfo.GivenNames);
Console.WriteLine(result.PassportInfo.Country);
Console.WriteLine(result.PassportInfo.PassportNumber);
Console.WriteLine(result.PassportInfo.Surname);
Console.WriteLine(result.PassportInfo.DateOfBirth);
Console.WriteLine(result.PassportInfo.DateOfExpiry);

代码解释

  1. 我们首先将 IronOCR 导入代码库。

  2. 然后我们创建一个新的 OCrInput 并将其指定为 inputPassport

  3. 然后,我们通过提供图像的路径来读取图像。

  4. 然后我们使用专门的读取护照方法 ReadPassport,并传入输入的护照。

  5. 然后,我们可以处理并打印出提取数据的结果。

控制台输出

Passport OCR SDK(开发人员教程):图 3 - 控制台输出

机器可读区

IronOCR 可以提取机器可读区(MRZ)任何遵循国际民用航空组织规定的护照底部两行的信息(国际民航组织)标准。 MRZ 数据由两行组成,每行包含唯一的信息。 有关行中每个位置对应的详细信息,以及任何例外情况和唯一标识符,请参阅《翻译指南》。国际民航组织文档标准。

下面是一个简表:

Passport OCR SDK(开发人员教程):图 4 - MDZ 表

护照 OCR 和调试面临的挑战

扫描数字图像时,图像质量始终是个问题。 失真的图像质量会模糊信息,增加确认数据准确性的难度。 此外,在处理护照等关键任务信息时,开发人员必须考虑数据的安全性和合规性。

IronOCR 还为交互信息离子提供了一种简要调试和展示概念的方法。 这些方法可以让开发人员排除故障,并对提取的数据充满信心。

下面是一个简单的例子:

using IronOcr;
using System;
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputPassport = new OcrInput();
inputPassport.LoadImage("Passport.jpg");
// Perform OCR
OcrPassportResult result = ocr.ReadPassport(inputPassport);
// Output Confidence level and raw extracted text
Console.WriteLine(result.Confidence);
Console.WriteLine(result.Text);
using IronOcr;
using System;
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputPassport = new OcrInput();
inputPassport.LoadImage("Passport.jpg");
// Perform OCR
OcrPassportResult result = ocr.ReadPassport(inputPassport);
// Output Confidence level and raw extracted text
Console.WriteLine(result.Confidence);
Console.WriteLine(result.Text);

同样,上例中的代码也保持不变; 然而,控制台输出有所不同,因为我们直接访问TextConfidence属性,而不是护照的各个成员。

  1. Confidence(置信度)OcrPassportResult 中的 Confidence 属性是一个浮点数,代表 OCR 的统计准确率置信度,计算方式是每个字符的平均值。 较低的值表示护照图像可能模糊或包含其他信息。 1 代表最高置信度,0 代表最低置信度。

  2. OcrPassportResultText属性包含从护照图像中提取的未处理文本。 开发人员可以在单元测试中使用它,通过等价断言来验证从护照图像中提取的文本。

结论

护照OCR SDK(开发者教程):图5 - IronOCR

Passport OCR 技术通过自动提取数据和提高操作效率,大大增强了文档处理能力。 它可以简化身份验证和 KYC 流程,在处理敏感个人信息的同时确保高准确性。 移民边境和机场选择 IronOCR 作为其护照 OCR API,可以缩短处理时间,提高工作流程效率。

IronOCR 通过其简单易用的方法为开发人员提供了灵活性和可扩展性。 它允许开发者通过 OcrPassportResult 对象快速排序信息。 此外,IronOCR 还提供了调试工具,包括置信度和未经解析的原始文本,供开发人员在产品单元测试中使用。 IronOCR 还会在护照图像输入通过该方法之前清除数字噪音,从而手动将数字噪音降至最低,以满足更高级的使用要求。

欢迎利用 IronOCR 的免费试用许可证page.

Kannaopat Udonpant
坎那帕·乌东攀
软件工程师
在成为软件工程师之前,Kannapat 从日本北海道大学完成了环境资源博士学位。在攻读学位期间,Kannapat 还成为了生物生产工程系车辆机器人实验室的成员。2022年,他利用自己的 C# 技能加入了 Iron Software 的工程团队,专注于 IronPDF。Kannapat 珍视他的工作,因为他能直接向编写 IronPDF 大部分代码的开发者学习。除了同伴学习,Kannapat 还享受在 Iron Software 工作的社交方面。不写代码或文档时,Kannapat 通常在 PS5 上玩游戏或重看《最后生还者》。
< 前一页
C# 中的 OCR 超市收据(开发人员教程)
下一步 >
Tesseract OCR 多语言开发教程