使用 IRONOCR

護照 OCR SDK(開發者教程)

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

護照是一個人的身份; 我們使用護照來旅行並登記生活中的重要方面。 然而,護照格式並不總是易於閱讀。 想像許多旅客在假期期間突然出現,享受旅行和休閒。 移民代理如何通過手動數據錄入處理如此大量的數據,並手動檢索正確的信息?

因此,許多應用程式和企業正在轉向光學字符識別(OCR),此技術可讓開發人員快速提取印刷文本和數位圖像。

同樣地,Passport OCR 是一種使用光學字符識別(OCR)軟體從護照中提取有意義資訊的技術; 它還利用所有護照的機器可讀區來檢索信息,以快速識別試圖通過想像的人。 在需要快速识别护照信息的情况下,或在一个涉及自动化护照数据提取的过程中,护照OCR至关重要,是机场和移民边界效率和速度的基石。

雖然護照 OCR 軟體和技術經過多年來的不斷發展,但在掃描文件時仍有許多因素需要考量。 護照上的數位圖像有噪點或污漬會嚴重影響護照的準確性。 此外,在识别护照时,OCR庫有時可能會令人困惑,因為機讀區是一個獨特的結構化數據集。 開發人員可能能夠提取數據,但必須獨立排列參數。 然而,使用IronOCR,專門的方法已經最佳化以讀取護照; 其結果使開發人員能夠快速獲取和操作資訊,非常適合大量掃描和自動化作業。

在本文中,我們將簡要討論使用 IronOCR 獲取和處理護照信息以自動化數據提取,並提供有關 IronOCR 如何與護照互動的更多詳細信息。

IronOCR:一個 C# 光學字符識別庫

護照 OCR SDK (開發者教程):圖 1 - IronOCR: 一個 C# OCR 庫

IronOCR 是一個 C# 程式庫,提供易於使用的方法和靈活的功能以滿足所有與 OCR 相關的需求。 除了標準技術之外,IronOCR允許開發者充分利用並自訂Tesseract的客製化版本,以完成所有相關任務。

以下是其最顯著功能的快速概覽:

  1. 跨平台相容性:IronOCR 與大多數 .NET 平台相容,包括 .NET 8,7,6 和 5,並支持 .NET Framework 4.6.2 及以上版本。 使用此庫,開發人員不必擔心跨相容性,因為它也支援所有操作系統形式。 從 Windows、macOS 到 Azure,甚至 Linux:

  2. 靈活性:OCR 輸入有多種格式,因此一個庫必須能處理各種格式才能真正地靈活。 IronOCR 接受所有流行的圖像格式(jpg、png 和 gif),同時支援 C# 的原生 "System.Drawings.Objects",使其更容易整合到現有的代碼庫中。

  3. 支持與使用方便性:IronOCR 擁有完善的文件說明,並提供廣泛的 API 和教程,指出所有功能形式。 此外,提供 24/5 支援,確保開發者始終獲得支援。

  4. 多語言支援:IronOCR 也支援高達 125 種語言,並且支援自定義語言,使其在國際文檔處理中非常多才多藝。

使用 IronOCR 讀取護照

授權金鑰

請記住,IronOCR 需要授權金鑰才能運作。 您可以透過訪問此連結獲得免費試用的金鑰。

//Replace the license key variable with the trial key you obtained
IronOCr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";
//Replace the license key variable with the trial key you obtained
IronOCr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";
'Replace the license key variable with the trial key you obtained
IronOCr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY"
$vbLabelText   $csharpLabel

收到試用金鑰後,將此變數設置在您的專案中。

程式碼範例

以下程式碼展示了IronOCR如何利用其護照OCR SDK從護照影像中提取所有相關資訊。

輸入圖像

護照 OCR SDK(開發者教程):圖 2 - 輸入影像

using IronOcr;
using System;
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputPassport = new OcrInput();
inputPassport.LoadImage("Passport.jpg");
// Perform OCR
OcrPassportResult result = ocr.ReadPassport(inputPassport);
// Output passport information
Console.WriteLine(result.PassportInfo.GivenNames);
Console.WriteLine(result.PassportInfo.Country);
Console.WriteLine(result.PassportInfo.PassportNumber);
Console.WriteLine(result.PassportInfo.Surname);
Console.WriteLine(result.PassportInfo.DateOfBirth);
Console.WriteLine(result.PassportInfo.DateOfExpiry);
using IronOcr;
using System;
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputPassport = new OcrInput();
inputPassport.LoadImage("Passport.jpg");
// Perform OCR
OcrPassportResult result = ocr.ReadPassport(inputPassport);
// Output passport information
Console.WriteLine(result.PassportInfo.GivenNames);
Console.WriteLine(result.PassportInfo.Country);
Console.WriteLine(result.PassportInfo.PassportNumber);
Console.WriteLine(result.PassportInfo.Surname);
Console.WriteLine(result.PassportInfo.DateOfBirth);
Console.WriteLine(result.PassportInfo.DateOfExpiry);
Imports IronOcr
Imports System
' Instantiate OCR engine
Private ocr = New IronTesseract()
Private inputPassport = New OcrInput()
inputPassport.LoadImage("Passport.jpg")
' Perform OCR
Dim result As OcrPassportResult = ocr.ReadPassport(inputPassport)
' Output passport information
Console.WriteLine(result.PassportInfo.GivenNames)
Console.WriteLine(result.PassportInfo.Country)
Console.WriteLine(result.PassportInfo.PassportNumber)
Console.WriteLine(result.PassportInfo.Surname)
Console.WriteLine(result.PassportInfo.DateOfBirth)
Console.WriteLine(result.PassportInfo.DateOfExpiry)
$vbLabelText   $csharpLabel

程式碼說明

  1. 我們首先將 IronOCR 匯入程式碼庫中。

  2. 然後我們創建一個新的OCrInput並將其指定為inputPassport。

  3. 接著,我們通過提供圖像的路徑來讀取圖像。

  4. 然後,我們使用專門用於讀取護照的方法,ReadPassport,並傳入輸入的護照。

  5. 然後,我們可以操作並列印出提取資料的結果。

控制台輸出

護照 OCR SDK (開發者教程):圖 3 - 主控台輸出

機器可讀區域

IronOCR 可以按照國際民用航空組織 (ICAO) 標準,從任何護照的底部兩行提取機器可讀區 (MRZ) 信息。 MRZ數據包含兩行,每行都包含獨特的信息。 有關每行中的每個位置代表的詳細資訊,以及任何例外和唯一標識符,請參閱ICAO 文件標準。

以下是相關的簡表:

護照 OCR SDK(開發者教程):圖 4 - MDZ 表

護照OCR及除錯的挑戰

掃描數位影像時,影像品質始終是一個問題。 圖像質量失真會模糊信息,使確認數據的準確性更困難。 此外,開發人員在處理護照等關鍵任務資訊時,必須考慮數據安全和合規性。

IronOCR 也提供了一種簡單調試和展示互動信息概念的方法。 這些方法使開發者能夠排除故障並對提取的數據有信心。

以下是一個簡短的範例:

using IronOcr;
using System;
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputPassport = new OcrInput();
inputPassport.LoadImage("Passport.jpg");
// Perform OCR
OcrPassportResult result = ocr.ReadPassport(inputPassport);
// Output Confidence level and raw extracted text
Console.WriteLine(result.Confidence);
Console.WriteLine(result.Text);
using IronOcr;
using System;
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputPassport = new OcrInput();
inputPassport.LoadImage("Passport.jpg");
// Perform OCR
OcrPassportResult result = ocr.ReadPassport(inputPassport);
// Output Confidence level and raw extracted text
Console.WriteLine(result.Confidence);
Console.WriteLine(result.Text);
Imports IronOcr
Imports System
' Instantiate OCR engine
Private ocr = New IronTesseract()
Private inputPassport = New OcrInput()
inputPassport.LoadImage("Passport.jpg")
' Perform OCR
Dim result As OcrPassportResult = ocr.ReadPassport(inputPassport)
' Output Confidence level and raw extracted text
Console.WriteLine(result.Confidence)
Console.WriteLine(result.Text)
$vbLabelText   $csharpLabel

同樣,上述範例中的程式碼保持不變; 然而,控制台輸出有所不同,因為我們直接訪問TextConfidence屬性,而不是護照的各個成員。

  1. 信心OcrPassportResult 中的 Confidence 屬性是一個浮點數,代表 OCR 的統計準確性信心水準,計算方式為每個字符的平均值。 較低的數值表示護照圖像可能模糊或包含其他資訊。 1 代表最高的信心水準,而 0 代表最低的信心水準。

  2. 文字OcrPassportResult中的Text屬性保存從護照圖像中提取的未處理文本。 開發人員可以在單元測試中使用它,透過進行相等斷言來驗證從護照圖像提取的文字。

結論

護照 OCR SDK(開發者教程):圖 5 - IronOCR

護照OCR技術通過自動化數據提取和提高運營效率,顯著增強了文件處理能力。 它精簡了身份驗證和 KYC 流程,確保在處理敏感個人信息時的高準確性。 移民邊境和機場可以通過選擇 IronOCR 作為其護照 OCR API 來減少處理時間並提高工作效率。

IronOCR 透過其易於使用的方法為開發人員提供了靈活性和可擴展性。 它允許開發人員通過OcrPassportResult物件快速排序資訊。 此外,IronOCR 提供調試工具,包括信心水平和原始未解析的文本,供開發人員在產品單元測試中使用。 IronOCR 也通過在將護照圖像輸入傳遞至方法之前清除輸入來手動最小化數位噪聲,以進行更高級的使用。

隨時利用IronOCR的免費試用許可證頁面。

Kannaopat Udonpant
坎納帕特·烏頓潘
軟體工程師
在成為軟體工程師之前,Kannapat 在日本北海道大學完成了環境資源博士學位。在攻讀學位期間,Kannapat 也成為了車輛機器人實驗室的成員,該實驗室隸屬於生物生產工程學系。2022 年,他利用自己的 C# 技能,加入了 Iron Software 的工程團隊,專注於 IronPDF 的開發。Kannapat 珍視這份工作,因為他可以直接向負責撰寫大部分 IronPDF 程式碼的開發人員學習。除了同儕學習外,Kannapat 還享受在 Iron Software 工作的社交方面。當他不在撰寫程式碼或文件時,Kannapat 通常會在 PS5 上玩遊戲或重看《最後生還者》。
< 上一頁
在 C# 中 OCR 超市收據(開發者教程)
下一個 >
多語言 Tesseract OCR(開發者教學)