跳至頁尾內容
USING 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中閱讀身份證件。

由Iron Software精心製作和維護的IronOCR是一個強大的C#程式庫,方便在.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#控制台應用程式,或者可以使用現有專案。 從選單中選擇"新增專案",然後從下面的範本中選擇控制台應用程式。

如何在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身份證件處理從獲取包含文字的圖像開始。 此圖像可以是掃描的身份證件、身份證明文件的照片或任何其他文字的視覺表示。 身份證的預處理步驟可能包括調整大小、降噪和增強圖像質量和清晰度。

文字檢測

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程式庫從身份證件中讀取所有文字欄位。 我們使用IronOCR程式庫中的IronTesseract類,並將其配置為使用英語和一些黑名單字元。 然後我們使用OcrInput類宣告OCR輸入並從圖像中讀取文字。 提取出的文字欄位可以在控制台輸出中看到。

步驟4:從PDF中讀取身份證件

我們也可以從PDF文件中讀取。 為此,我們可以使用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載入ocrTesseract

輸出

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

授權(提供免費試用)

要使用IronOCR,您需要一個授權金鑰。 此金鑰需放置在appsettings.json中。

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

提供使用者電子郵箱ID以獲取試用授權。

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

使用案例

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

  • 使用案例: 銀行和金融機構於客戶入職和KYC過程中,使用OCR來讀取如護照、駕照和身份證件。
  • 好處: 確保帳戶建立、貸款申請和其他財務交易中的身份驗證準確和高效。

2. 邊境管制和移民:

  • 使用案例: 移民當局在邊境檢查點使用OCR技術讀取和驗證護照和簽證資訊。
  • 好處: 簡化移民過程,增強安全性,及減少手動資料輸入錯誤。

3. 存取控制和安全:

  • 使用案例: 在存取控制系統中,OCR被用於讀取許可卡、員工徽章或臉部識別掃描的資訊,以便安全進入建築或限制區域。
  • 好處: 通過確保只有授權人員可以進入,增強了安全性,並提供進入記錄的數位化記錄。

4. 電子政府服務:

  • 使用案例: 政府機構使用OCR處理和驗證用於在線提交的文件,以提供駕照續期、報稅和許可申請等服務。
  • 好處: 提高效率,減少文書工作,並提升整體公民體驗。

5. 醫療身份驗證:

  • 使用案例: 醫療服務提供者使用OCR讀取患者身份證、保險卡和其他身份文件以確保準確的患者記錄保存。
  • 好處: 促進精確的患者識別,確保正確的醫療記錄管理,及支持計費流程。

6. 自動化酒店入住:

  • 使用案例: 酒店利用OCR自動化辦理入住手續,通過掃描客人的身份文件來簡化註冊流程。
  • 好處: 提升客人體驗,縮短入住時間,並減少客人資訊錄入錯誤。

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

  • 使用案例: 在智慧城市計畫中應用OCR以讀取身份文件提供服務,如公共交通存取、圖書館會員和城市活動註冊。
  • 好處: 提高公共服務效率,促進無縫存取,並增強城市生活體驗。

8. 教育管理:

  • 使用案例: 教育機構在學生入學、考試和學術憑證的發放期間使用OCR處理和驗證身份文件。
  • 好處: 確保準確的學生記錄,減少行政負擔,並增強學術流程的完整性。

結論

在您的C#應用程式中整合OCR技術使用IronOCR,可以有效地從身份文件中提取資訊。 本全面指南提供了設置專案並使用IronOCR讀取和處理身份文件圖像的必要步驟。 通過實驗程式碼範例以調整提取流程來滿足您的特定需求,提供處理身份文件資料的無縫自動化解決方案。

常見問題

我如何使用C#從身分證件提取文字?

使用IronOCR,來自IronSoftware的專用OCR程式庫,您可以從各種身分證件(如護照、身分證和駕照)中提取文字。您可以通過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。

Iron 支援團隊

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