使用 IRONOCR

如何使用C#中的OCR讀取身份證件

Kannaopat Udonpant
坎納帕特·烏頓潘
2024年3月26日
分享:

介紹

光學文字識別(OCR)技術已成為自動化從影像中提取文本的無價工具,能夠高效地檢索和分析數據,並避免人為錯誤。 此技術可用於讀取駕駛執照、護照、機構官方文件、身份證、居留證和多語言、不同國家的旅行證件,包括準確的到期日期、國籍、出生日期等。提取的所有數據都可以進一步用於機器學習和人工智慧軟體產品。

在本文中,我們將探討如何利用IronOCR,這個來自Iron Software的強大 C# OCR 函式庫,來讀取和提取身份文件中的信息。 IronOCR 提供了一種簡單且靈活的光學字符識別解決方案,以 API 的形式提供光學字符識別任務,對於希望將光學字符識別軟體功能整合到其應用程式中的開發人員來說,是一個絕佳的選擇。

IronOCR 讓電腦能夠辨識並從圖片中擷取文字,掃描現有文件或任何其他文字的視覺表示。 要提取數據,涉及一系列模仿人類視覺感知和解讀文本的複雜過程。 此過程涉及圖像預處理、文字偵測、字元分割、特徵提取、字元識別及後處理以校正錯誤。

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

  1. 在 Visual Studio 中創建一個新的 C# 專案

  2. 安裝 IronOCR .NET 程式庫並將其添加到您的項目中。

  3. 使用 IronOCR 庫讀取身份證件圖像。

  4. 從 PDF 中讀取身份文件。

    IronOCR 由 Iron Software 打造並維護,是 C# Software Engineers 的強大程式庫,為 .NET 專案提供 OCR、條碼掃描和文字提取功能。

IronOCR的主要功能

文本閱讀多樣性

能夠從各種格式中讀取相關數據,包括圖像(JPEG、PNG、GIFF、TIFF、BMP)、流和PDF。

影像增強

通過使用一系列濾鏡(如糾偏、去噪、二值化、提高解析度、膨脹等)來校正低質量的掃描和照片。

條碼識別

支援從各種格式中讀取條碼,涵蓋超過20種條碼類型,並新增了QR碼識別功能。

Tesseract OCR 整合

利用最新版本的 Tesseract OCR,經過精細調整以在從圖像提取文本時獲得最佳性能。

靈活的輸出選項

允許從圖像文件導出可搜索的PDF、HTML和文本內容,提供在管理提取信息時的靈活性。

現在,讓我們深入開發一個使用IronOCR讀取身份證件的演示應用程式。

先決條件

  1. Visual Studio:確保您已安裝Visual Studio或任何其他 C# 開發環境。

  2. NuGet 套件管理器:確保您可以使用 NuGet 來管理專案中的套件

步驟 1:在 Visual Studio 中創建一個新的 C# 專案

首先,在 Visual Studio 中創建一個新的 C# 控制台應用程序,或者使用現有項目。 從選單中選擇新增專案,然後從下面的範本中選擇主控台應用程式。

如何使用 IronOCR 在 C# 中讀取身份文件:圖 1

在以下窗口中提供專案名稱和位置

如何在 C# 中使用 OCR 讀取身份文件:圖 2

選擇所需的 .NET 版本

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

單擊「Create」按鈕以創建新專案。

步驟 2:安裝 IronOCR 函式庫並將其添加到您的專案中。

IronOCR 可在 NuGet 套件管理工具中找到,並可以在命令提示字元中使用以下命令進行安裝。

如何使用 OCR 在 C# 中讀取身份文件:圖 4

IronOCR 可以使用 Visual Studio 安裝。 打開 NuGet 套件管理器,搜索IronOCR,如下圖所示,然後點擊安裝

如何使用OCR讀取C#中的身份文件:圖5

安裝後,應用程式即可使用IronOCR來讀取任何身份文件進行資料提取和身份驗證,這將減少手動資料輸入的工作。

步驟 3:使用 IronOCR 庫讀取身份證文件圖像

使用 OCR 處理身份證明文件涉及許多步驟,詳情如下。

影像預處理

OCR 身分證件處理始於獲取包含文字的影像。 此圖像可能是掃描的身份證明文件、身份證的照片或任何其他文字的視覺呈現。 身份證預處理步驟可能包括調整大小、降噪和增強,以改善圖像的質量和清晰度。

文字檢測

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

輸入圖片

以下是用作程式輸入的範例圖像

如何在 C# 中使用 OCR 讀取身份文件:圖 6

輸出

如何使用OCR在C#中讀取身份證件:圖7

程式碼說明

上面的程式碼使用IronOCR函式庫來讀取 ID 文件中的所有文字欄位。 我們使用IronOCR庫中的IronTesseract類別,並將其配置為使用英語和一些列入黑名單的字符。 接著,我們使用 OcrInput 類別宣告 OCR 輸入,然後從影像中讀取文字。 被提取的文本字段可以在控制台輸出中看到。

步驟 4:從 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

提供用戶電郵地址以獲取試用許可證。

如何使用OCR在C#中讀取身份證件:圖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收據掃描器