使用 IRONOCR

如何使用C#通过OCR读取身份证件

介绍

光学字符识别(OCR)技术已成为自动提取图像中文本的宝贵工具,使得数据检索和分析更加高效,减少人为错误。 该技术可用于读取驾驶执照、护照、机构官方文件、身份证、居留证卡以及多种语言和不同国家的旅行证件的准确到期日期、国籍出生日期等信息。所有提取的数据都可以进一步输入机器学习和人工智能软件产品。

在本文中,我们将探讨如何利用IronOCR,一款由Iron Software提供的强大C# OCR库,从身份证件中读取和提取信息。 IronOCR 提供了一种简单而灵活的OCR解决方案,以API的形式用于OCR任务,是希望将OCR软件功能集成到其应用程序中的开发人员的绝佳选择。

IronOCR 使计算机能够识别和提取图像中的文本,扫描现有文档或任何其他文本的视觉表示。 要提取数据,需要经过一系列复杂的过程,模仿人类通过视觉感知和解读文本的方式。 这一过程包括图像预处理、文本检测、字符分割、特征提取、字符识别和纠正错误的后处理。

如何在 C# 中使用 OCR 阅读身份证件;

  1. 在 Visual Studio 中创建一个新的 C# 项目

  2. 安装IronOCR .NET 库并将其添加到您的项目中。

  3. 使用IronOCR库读取身份证件图像。

  4. 从 PDF 阅读身份文件。

    IronOCR,由Iron Software开发和维护,是为C#软件工程师打造的强大库,便于在.NET项目中实现OCR、条形码扫描和文本提取。

IronOCR 的主要功能

文本阅读多样性

能够从多种格式读取相关数据,包括图像(JPEG、PNG、GIFF、TIFF、BMP)、流和PDF文件。

图像增强

通过一系列滤镜(如纠偏、去噪、二值化、增强分辨率、放大等)纠正低质量扫描和照片。

条形码识别

支持读取各种格式的条形码,包括 20 多种条形码类型,并增加了 QR 码识别功能。

Tesseract OCR 集成

使用 Tesseract OCR 的最新版本,在从图像中提取文本时经过微调以获得最佳性能。

灵活的输出选项

允许从图像文件中导出可搜索的 PDF、HTML 和文本内容,灵活管理提取的信息。

现在,让我们深入了解利用 IronOCR 阅读 ID 文档的演示应用程序的开发过程。

先决条件

  1. Visual Studio: 确保已安装Visual Studio或任何其他C#开发环境。

  2. NuGet 包管理器:确保可以使用 NuGet 来管理项目中的包

步骤 1:在 Visual Studio 中创建一个新的 C#; 项目

首先在 Visual Studio 中创建一个全新的 C# 控制台应用程序,或者利用现有项目。 从菜单中选择添加新项目,然后从下面的模板中选择控制台应用程序。

如何使用OCR在C#中读取身份证件:图1

请在以下窗口中提供项目名称和位置

如何在 C# 中使用 OCR 读取身份证件:图 2

选择所需的 .NET 版本

如何在C#中使用OCR读取身份文件:图3

单击 "创建 "按钮创建新项目。

第 2 步:安装 IronOCR 库并将其添加到您的项目中。

IronOCR 可以在 NuGet 包管理器中找到,并可以使用命令提示符通过以下命令进行安装。

如何使用IronOCR在C#中读取身份证件:图4

IronOCR 可以通过 Visual Studio 安装。 打开NuGet包管理器,搜索IronOCR,如下图所示,然后点击安装

如何在 C# 中使用 OCR 阅读身份证件:图 5

安装后,应用程序即可使用IronOCR读取任何身份证件以进行数据提取和身份验证,从而减少手动数据输入工作。

步骤 3:使用 IronOCR 库阅读身份文件图像

使用 OCR 处理身份证件涉及许多步骤,下面将详细介绍。

图像预处理

OCR ID 文档处理从获取包含文本的图像开始。 该图像可以是扫描的身份证件、身份证照片或任何其他文本的视觉呈现。 身份证预处理步骤可能包括调整大小、降噪和增强,以提高图像的质量和清晰度。

文本检测

OCR 算法需要定位图像中存在文本的特定数据区域。 这一步涉及识别文本区域或边界框。

字符分割

一旦识别出文本区域或数据字段,就需要进一步分析图像以分割单个字符。 这一步对于使用不同字符的语言(如英语或中文)至关重要。

特征提取

OCR 算法分析分割的字符,提取有助于区分不同字符的特征。 这些特征可能包括笔画模式、形状和元素之间的空间关系。

字符识别

根据提取的特征,OCR 算法会对每个分割的字符进行分类,并为其分配相应的文本表示。 在这一步骤中,通常会使用神经网络等机器学习模型。

后期处理

被识别的字符可能需要经过后期处理,以纠正错误或提高准确性。 这一步骤可能涉及字典修正、上下文分析或语言建模。

IronOCR 库处理上述所有步骤,使我们只需几行代码即可执行OCR,节省了耗时的繁琐任务。

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

输入图像

以下是作为程序输入的图片样本

如何使用 IronOCR 在 C# 中读取身份文件:图 6

输出

如何在C#中使用OCR读取身份证件:图7

代码解释

上述代码使用IronOCR库读取身份证件中的所有文本字段。 我们使用 IronTesseract 类来自 IronOCR 库,并将其配置为使用英语和一些被列入黑名单的字符。 然后我们使用OcrInput类声明OCR输入,然后从图像中读取文本。 提取的文本字段可以在控制台输出中看到。

第四步:从 PDF 阅读身份文件。

我们也可以阅读 PDF 文档。 为此,我们可以使用来自Iron Software的IronPDF库。 首先,像下面这样安装库

如何使用OCR读取C#中的身份证件:图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

上面的代码使用IronPDF加载id.PDF文档,并将此PDF作为流传递给OcrInputocrTesseract

输出

如何在 C# 中使用 OCR 读取身份文档:图 9

许可(可免费试用)

IronOCR。 此密钥需要放在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

提供用户电子邮件 ID 以获取试用许可证。

如何在 C# 中使用 OCR 阅读身份证件:图 10

使用案例

1. 金融服务中的身份验证:

使用案例:银行和金融机构在客户入职和 KYC 流程中使用 OCR 阅读身份证件,如护照、驾照和身份证。

优点确保账户创建、贷款申请和其他金融交易的身份验证准确高效。

2. 边境管制与移民:

使用案例:移民局在边境检查站使用 OCR 技术读取和验证护照和签证上的信息。

优点简化移民流程,提高安全性,减少手动数据输入错误。

3. 访问控制和安全:

使用案例:OCR 用于门禁控制系统,从身份证、员工徽章或面部识别扫描中读取信息,以便安全进入建筑物或禁区。

优势:确保只有经授权的人才能访问,并提供输入的数字记录,从而提高安全性。

4. 电子政务服务:

使用案例:政府机构使用 OCR 处理和验证在线提交的身份证件,以提供驾驶执照更新、报税和许可证申请等服务。

优点提高效率,减少文书工作,提升市民的整体体验。

5. 医疗身份验证:

使用案例:医疗保健提供商使用 OCR 读取患者身份证、保险卡和其他身份文件中的信息,以准确保存患者记录。

优点便于准确识别病人,确保正确的病历管理,并支持计费流程。

6. 自动化酒店入住:

使用案例:酒店通过扫描客人的身份证件来实现 OCR 自动化入住流程,从而简化登记流程。

优点提升客人体验,缩短入住时间,最大限度地减少捕捉客人信息时的错误。

7. 智慧城市与公共服务:

使用案例:OCR 被应用于智慧城市计划,用于读取身份文件,以提供公共交通访问、图书馆会员资格和城市活动注册等服务。

益处:提高公共服务的效率,促进无缝接入,提升城市生活体验。

8. 教育管理:

使用案例:教育机构在学生入学、考试和颁发学历证书时使用 OCR 处理和验证身份证件。

优点确保准确的学生记录,减轻行政负担,提高学术流程的完整性。

结论

将OCR技术集成到您的C#应用程序中,使用IronOCR可以高效地从身份证件中提取信息。 这本综合指南提供了设置项目并使用IronOCR读取和处理身份证件图像的必要步骤。 使用代码示例进行实验,根据您的具体要求定制提取过程,为处理身份文档数据提供无缝和自动化的解决方案。

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