使用 IRONOCR

護照 OCR SDK(開發者教程)

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

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

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

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

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

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

IronOCR:C# OCR 函式庫

護照 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. 然後,我們可以操作並列印出提取資料的結果。

控制台輸出

Passport OCR SDK(開發者教程):圖 3 - 控制台輸出

機器可讀區域

IronOCR 可以提取機器可讀區域(MRZ)根據國際民航組織,來自任何護照底部兩行的資訊。(ICAO)標準。 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(開發者教學)