跳至頁尾內容
使用 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);
    }
}
$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);
    }
}
$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技術對身分證件進行辨識有哪些好處?

OCR技術,例如IronSoftware公司的IronOCR,能夠自動從身分證明文件中提取文本,從而減少人為錯誤並提高資料檢索效率。它支援多種語言和文件格式,使其成為金融、醫療保健和邊境管制等領域應用的理想選擇。

在 C# 專案中設定 OCR 需要哪些步驟?

要在 C# 專案中設定 OCR,您需要在 Visual Studio 中建立一個新項目,透過 NuGet 套件管理器安裝 IronOCR,並使用其 API 從文件中讀取文字。 IronOCR 提供全面的文件和範例,幫助您整合 OCR 功能。

如何提高影像品質以獲得更好的OCR辨識結果?

IronOCR包含多種功能,例如去斜、降噪、二值化、增強解析度和膨脹,以提升影像品質。這些濾鏡可以提高低品質影像中文字辨識的準確率,確保可靠的資料擷取。

OCR技術能否讀取身分證件上的條碼?

是的,IronOCR支援識別身分證件上的條碼。它可以讀取20多種類型的條碼,包括二維碼,這對於需要同時提取文字和條碼資料的應用非常有用。

OCR在身分驗證上有哪些具體應用案例?

OCR技術廣泛應用於身分驗證,例如自助登記、門禁控制和電子化政府服務。 IronOCR提供必要的工具,用於從身分證明文件中提取和驗證文本,從而增強安全性並簡化流程。

如何使用OCR進行多語言文字擷取?

IronOCR 提供多語言支持,可從多種語言的文檔中提取文字。此功能對於需要高效處理不同語言文件的國際應用尤其有用。

是否有適用於 OCR 庫的試用版?

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

坎納奧帕特·烏東潘特
軟體工程師
在成為軟體工程師之前,Kannapat 在日本北海道大學完成了環境資源專業的博士學位。在攻讀博士學位期間,他還加入了生物生產工程系下屬的車輛機器人實驗室。 2022 年,他憑藉 C# 技能加入了 Iron Software 的工程團隊,專注於 IronPDF 的開發。 Kannapat 非常珍惜這份工作,因為他可以直接向 IronPDF 大部分程式碼的編寫者學習。除了與同事學習之外,Kannapat 也享受在 Iron Software 工作的社交氛圍。工作之餘,Kannapat 通常會玩 PS5 遊戲或重溫《最後生還者》。