跳過到頁腳內容
使用 IRONOCR

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

光學字元辨識 (OCR) 技術已成為自動從影像中提取文字的寶貴工具,能夠有效地進行資料檢索和分析,並避免人為錯誤。 這項技術可用於讀取多種語言和不同國家的駕駛執照、護照、機構官方文件、身分證、居留證和旅行證件,精確到有效期限、國籍、出生日期等資訊。所有提取的資料都可以進一步輸入到機器學習和人工智慧軟體產品中。

在本文中,我們將探討如何利用Iron Software出品的強大的 C# OCR 庫IronOCR來讀取和提取身分證明文件中的資訊。 IronOCR 以 API 的形式提供簡單靈活的 OCR 解決方案,用於執行 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 多種條碼類型,並增加了二維碼識別功能。

Tesseract OCR 集成

採用最新版本的 Tesseract OCR,經過精心調校,可實現從圖像中提取文字的最佳效能。

靈活的輸出選項

允許從圖像檔案中導出可搜尋的 PDF、HTML 和文字內容,從而在管理提取的資訊方面提供了靈活性。

現在,讓我們深入了解利用 IronOCR 讀取身分證件的示範應用程式的開發。

先決條件

  1. Visual Studio:確保您已安裝Visual Studio或任何其他 C# 開發環境。 2.NuGet套件管理員:確保您可以使用NuGet管理專案中的套件。

步驟 1:在 Visual Studio 中建立一個新的 C# 項目

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

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

請在下方視窗中提供項目名稱和地點。

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

選擇所需的 .NET 版本。

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

點選"建立"按鈕建立新項目。

步驟 2:安裝 IronOCR 庫並將其新增至您的專案中。

IronOCR 可以在NuGet套件管理器中找到,可以使用套件管理器控制台透過以下命令進行安裝:

Install-Package IronOcr

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()
    {
        // Configure IronTesseract with language and other settings
        var ocrTesseract = new IronTesseract()
        {
            Language = OcrLanguage.EnglishBest,
            Configuration = new TesseractConfiguration()
            {
                ReadBarCodes = false, // Disable reading of barcodes
                BlackListCharacters = "`ë|^", // Blacklist specific characters
                PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd, // Set page segmentation mode
            }
        };

        // Define the OCR input image
        using var ocrInput = new OcrInput("id1.png");

        // Perform OCR on the input image
        var ocrResult = ocrTesseract.Read(ocrInput);

        // Display the extracted text
        Console.WriteLine(ocrResult.Text);
    }
}
using IronOcr;

class Program
{
    public static void Main()
    {
        // Configure IronTesseract with language and other settings
        var ocrTesseract = new IronTesseract()
        {
            Language = OcrLanguage.EnglishBest,
            Configuration = new TesseractConfiguration()
            {
                ReadBarCodes = false, // Disable reading of barcodes
                BlackListCharacters = "`ë|^", // Blacklist specific characters
                PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd, // Set page segmentation mode
            }
        };

        // Define the OCR input image
        using var ocrInput = new OcrInput("id1.png");

        // Perform OCR on the input image
        var ocrResult = ocrTesseract.Read(ocrInput);

        // Display the extracted text
        Console.WriteLine(ocrResult.Text);
    }
}
Imports IronOcr

Friend Class Program
	Public Shared Sub Main()
		' Configure IronTesseract with language and other settings
		Dim ocrTesseract = New IronTesseract() With {
			.Language = OcrLanguage.EnglishBest,
			.Configuration = New TesseractConfiguration() With {
				.ReadBarCodes = False,
				.BlackListCharacters = "`ë|^",
				.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd
			}
		}

		' Define the OCR input image
		Dim ocrInput As New OcrInput("id1.png")

		' Perform OCR on the input image
		Dim ocrResult = ocrTesseract.Read(ocrInput)

		' Display the extracted text
		Console.WriteLine(ocrResult.Text)
	End Sub
End Class
$vbLabelText   $csharpLabel

輸入影像

下面這張圖是用作程式輸入的範例圖片。

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

輸出

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

程式碼解釋

上述程式碼使用 IronOCR 庫讀取 ID 文件中的所有文字欄位。 我們使用 IronOCR 庫中的 IronTesseract 類,並將其配置為使用英語和一些黑名單字元。 然後我們使用 OcrInput 類別聲明 OCR 輸入,並從圖像中讀取文字。 提取的文字欄位可以在控制台輸出中看到。

第四步:從 PDF 檔案讀取身分證明檔案。

我們也可以讀取PDF文件。 為此,我們可以使用 IronSoftware 公司的IronPDF庫。 首先,請依照以下步驟安裝庫:

Install-Package IronOcr
using IronOcr;
using IronPdf;

class Program
{
    public static void Main()
    {
        // Load the PDF document
        var pdfReader = new PdfDocument("id1.pdf");

        // Initialize IronTesseract for OCR
        var ocrTesseract = new IronTesseract();

        // Create OCR input from the PDF stream
        using var ocrInput = new OcrInput();
        ocrInput.AddPdf(pdfReader.Stream);

        // Perform OCR on the PDF input
        var ocrResult = ocrTesseract.Read(ocrInput);

        // Display the extracted text
        Console.WriteLine(ocrResult.Text);
    }
}
using IronOcr;
using IronPdf;

class Program
{
    public static void Main()
    {
        // Load the PDF document
        var pdfReader = new PdfDocument("id1.pdf");

        // Initialize IronTesseract for OCR
        var ocrTesseract = new IronTesseract();

        // Create OCR input from the PDF stream
        using var ocrInput = new OcrInput();
        ocrInput.AddPdf(pdfReader.Stream);

        // Perform OCR on the PDF input
        var ocrResult = ocrTesseract.Read(ocrInput);

        // Display the extracted text
        Console.WriteLine(ocrResult.Text);
    }
}
Imports IronOcr
Imports IronPdf

Friend Class Program
	Public Shared Sub Main()
		' Load the PDF document
		Dim pdfReader = New PdfDocument("id1.pdf")

		' Initialize IronTesseract for OCR
		Dim ocrTesseract = New IronTesseract()

		' Create OCR input from the PDF stream
		Dim ocrInput As New OcrInput()
		ocrInput.AddPdf(pdfReader.Stream)

		' Perform OCR on the PDF input
		Dim ocrResult = ocrTesseract.Read(ocrInput)

		' Display the extracted text
		Console.WriteLine(ocrResult.Text)
	End Sub
End Class
$vbLabelText   $csharpLabel

上面的程式碼使用 IronPDF 載入 id1.pdf 文檔,並將 PDF 作為流傳遞給 OcrInputocrTesseract

輸出

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

授權(可免費試用)

要使用 IronOCR,您需要許可證金鑰。 需要將此鍵新增到appsettings.json 檔案中。

{
    "IRONOCR-LICENSE-KEY": "your license key"
}

請提供使用者信箱地址以取得試用許可證。

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

用例

1. 金融服務中的身份驗證:

-應用案例:銀行和金融機構在客戶註冊和 KYC 流程中利用 OCR 讀取護照、駕駛執照和身分證等身分證明文件。 -優勢:確保帳戶創建、貸款申請和其他金融交易的身份驗證準確且有效率。

2. 邊境管制與移民:

-應用案例:移民當局採用 OCR 技術在邊境檢查站讀取和驗證護照和簽證上的資訊。 -優點:簡化移民流程,提高安全性,減少人工資料輸入錯誤。

3. 門禁控制與安全:

-應用案例: OCR 用於門禁系統,讀取身分證、員工徽章或臉部辨識掃描中的信息,以便安全進入建築物或限制區域。 -優點:透過確保只有授權人員才能存取來增強安全性,並提供數位存取記錄。

4. 電子化政府服務:

-應用案例:政府機構使用 OCR 來處理和驗證線上提交的身份證件,用於駕駛執照續約、稅務申報和許可證申請等服務。 -好處:提高效率,減少文書工作,提升市民的整體體驗。

5. 醫療保健身份驗證:

-應用案例:醫療保健提供者使用 OCR 從患者 ID、保險卡和其他身份證明文件中讀取信息,以便準確記錄患者信息。 -優點:有助於準確識別患者,確保妥善管理醫療記錄,並支援計費流程。

6. 飯店自助入住:

-應用案例:飯店透過掃描客人的身分證明文件,實施 OCR 技術實現自動入住流程,簡化登記流程。 -優點:提升賓客體驗,縮短入住時間,並最大限度地減少賓客資訊收集過程中的錯誤。

7. 智慧城市與公共服務:

-應用案例: OCR 應用於智慧城市計畫中,用於讀取身分證明文件,以便提供公共交通存取、圖書館會員資格和城市活動註冊等服務。 -好處:提升公共服務效率,促進無縫銜接,提升城市生活體驗。

8. 教育管理:

-應用案例:教育機構使用 OCR 在學生入學、考試和頒發學歷證書期間處理和驗證身分證件。 -益處:確保學生記錄準確,減輕行政負擔,並提高學術流程的完整性。

結論

使用 IronOCR 將 OCR 技術整合到您的 C# 應用程式中,可以有效地從身分證件中提取資訊。 本綜合指南提供了設定項目和使用 IronOCR 讀取和處理身分證明文件影像的必要步驟。 透過嘗試程式碼範例,根據您的特定要求自訂提取過程,從而為處理身分文件資料提供無縫且自動化的解決方案。

常見問題解答

如何使用C#從身份文件中提取文字?

通過使用IronSoftware的專用OCR庫IronOCR,您可以從各種身份文件中提取文字,例如護照、身份證和駕駛執照。您可以在Visual Studio中通過NuGet包管理器安裝IronOCR,並使用其方法來從圖像和PDF中讀取文字。

使用OCR處理身份文件有哪些好處?

如IronSoftware的IronOCR等OCR技術自動化了身份文件中的文字提取,減少了人為錯誤,提高了資料檢索效率。它支援多種語言和文件格式,使其非常適合金融、醫療和邊境管制等應用。

在C#項目中設置OCR涉及哪些步驟?

要在C#項目中設置OCR,您需要在Visual Studio中創建一個新項目,通過NuGet包管理器安裝IronOCR,並利用其API從文件中讀取文字。IronOCR提供全面的文檔和示例,幫助您集成OCR功能。

如何提高圖片質量以獲得更好的OCR結果?

IronOCR包含去斜、降噪、二值化、提高分辨率和膨脹等功能來提高圖像質量。這些過濾器提高了從低質量圖像中進行文字識別的準確性,確保了可靠的資料提取。

OCR技術能否從身份文件中讀取條碼?

是的,IronOCR支援從身份文件中識別條碼。它可以讀取超過20種條碼類型,包括QR碼,適用於需要同時提取文字和條碼資料的應用。

OCR在身份驗證中有任何特定的使用場景嗎?

OCR在身份驗證中的應用廣泛,如自動登記、訪問控制和電子政務服務。IronOCR提供必要的工具來從身份文件中提取和驗證文字,提升安全性並優化流程。

如何用OCR處理多語言文字提取?

IronOCR提供多語言支援,允許您從各種語言的文件中提取文字。這一功能對於需要高效處理不同語言文件的國際應用特別有用。

是否有可供使用的OCR庫試用版本?

Iron Software 出品的 IronOCR 提供免費試用版。您只需提供電子郵件地址即可獲得試用許可證金鑰,以便在購買前體驗該庫的各項功能。

Kannaopat Udonpant
軟體工程師
在成為軟件工程師之前,Kannapat 從日本北海道大學完成了環境資源博士學位。在追逐學位期间,Kannapat 還成為了生產工程系一部份——汽車机器人實验室的成員。2022 年,他利用他的 C# 技能加入 Iron Software 的工程團隊, 專注於 IronPDF。Kannapat 珍惜他的工作,因為他直接向编写大部分 IronPDF 使用的代碼的開發者学习。除了同行学习,Kannapat 还喜欢在 Iron Software 工作的社交十环。当他不编写代碼或文檔時,Kannapat 通常在他的 PS5 上打游戏或重看《The Last of Us》。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我