IronOCRを使用してパスポートデータを抽出する方法
空港のカウンターチェックインやセキュリティ入国審査のようなアプリケーションやシステムでは、エージェントが毎日大量のパスポートを扱わなければならないため、旅行者に関する重要なミッションクリティカルな情報を正確に抽出する信頼できるシステムを持つことが、効率的でスムーズな入国手続きを保証するために極めて重要です。
IronOCRは、パスポートからデータを抽出して読み取る作業を容易にする信頼性の高いツールです。 プロセスは、ReadPassport
メソッドを呼び出すだけで簡単になります。
IronOCRを使用してパスポートデータを抽出する方法
- パスポートを読み取るためのC#ライブラリをダウンロード
- パスポート画像を読み込むためにインポートします。
- ドキュメントには、ヘッダーやフッターを含まずにパスポート画像のみが含まれるようにしてください。
- 以下を使用
パスポートを読む
画像からデータを抽出する方法 - アクセス OcrPassportResult 抽出されたパスポートデータを表示およびさらに操作するためのプロパティ
申し訳ありませんが、翻訳するコンテンツのテキストを提供してください。その後、英語から日本語に翻訳いたします。!-- RENDER.PHP -- NUGET LIBRARY DOWNLOAD DIRECTIVE TAG :: START -->
今日から無料トライアルでIronOCRをあなたのプロジェクトで使い始めましょう。
申し訳ありませんが、翻訳するコンテンツのテキストを提供してください。その後、英語から日本語に翻訳いたします。!-- RENDER.PHP -- NUGET ライブラリ ダウンロード ディレクティブ タグ :: 終了 -->
この機能を使用するには、もインストールする必要があります。IronOcr.Extension.AdvancedScanパッケージ。
パスポートデータの抽出例
例として、IronOCRの機能を紹介するためにパスポート画像を入力として使用します。 OcrInputを使用して画像を読み込んだ後、ReadPassport
メソッドを利用してパスポートから情報を識別し抽出できます。 このメソッドは、GivenNames、Country、PassportNumber、Surname、DateOfBirth、および DateOfExpiry といったプロパティを含む OcrPassportResult オブジェクトを返します。 PassportInfo オブジェクトのすべてのメンバーは文字列です。
次の内容にご注意ください。
- このメソッドは現在、英語ベースのパスポートにのみ対応しています。
-
高度なスキャンを .NET Framework で使用するには、プロジェクトを x64アーキテクチャで実行する必要があります。
パスポート入力
コード
:path=/static-assets/ocr/content-code-examples/how-to/read-passport-read-passport.cs
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)
出力
次に、OcrPassportResult
オブジェクトから取得した PassportInfo
データメンバーにアクセスします。
- GivenNames:
PassportInfo
のプロパティで、パスポート入力の名前を文字列として返します。 これは、最初のMRZデータ行の位置4から44までに対応しています。 - Country:
PassportInfo
のプロパティで、パスポート入力の国を文字列として返します。 これは、発行国の略語ではなく、フルネームを綴る返された文字列で、2から3の位置にある最初のMRZデータ行に対応します。 例では、USAはアメリカ合衆国に戻ります。 - PassportNumber:
PassportInfo
のプロパティは、パスポート入力の名を文字列として返します。 これは、1から9の位置を持つ第二のMRZデータ行に対応します。 - 姓:
PassportInfo
のプロパティで、パスポート入力の姓が文字列として返されます。 これは、最初のMRZデータ行の位置4から44までに対応しています。 - DateOfBirth:
PassportInfo
のプロパティで、パスポート入力の生年月日を YYYY-MM-DD の形式で文字列として返します。 これは、位置14から19までの第2のMRZデータ行に対応します。 - DateOfExpiry:
PassportInfo
のプロパティメンバーで、パスポート入力の有効期限日を YYYY-MM-DD 形式の文字列として返します。 これは、位置22から27までの2番目のMRZデータ行に対応します。
MRZ情報の理解
IronOCRは、標準に従ったパスポートの下部2行に含まれるMRZ情報を読み取ります。(国際民間航空機関) ICAO. MRZデータは2行のデータで構成されており、それぞれの位置セットには固有の情報が含まれています。 以下は、行のインデックスに対応する情報の簡単な表です。 例外や一意の識別子については、次を参照してください:ICAOドキュメント標準。
例のパスポート入力:
ファーストロウ
ポジション | フィールド | 説明 |
---|---|---|
ドキュメントタイプ | 通常、「P」はパスポートを指します。 | |
-3 | 発行国 | 文字の国コード(ISO 3166-1 alpha-3) |
-44 | 姓と名 | 苗字に続く「<<' and then given names separated by '<' |
セカンドロー
ポジション | フィールド | 説明 |
---|---|---|
-9 | パスポート番号 | ユニークパスポート番号 |
0 | チェックデジット(パスポート番号) | パスポート番号のチェックディジット |
1-13 | 国籍 | 文字の国籍コード(ISO 3166-1 alpha-3) |
4-19 | 生年月日 | 生年月日(YYMMDD形式) |
0 | チェックディジット(生年月日) | 生年月日のチェックデジット |
1 | セックス | 性別(男は「M」、女は「F」、未指定は「X」) |
2-27 | 有効期限 | YYMMDD形式の有効期限 |
8 | チェックデジット(有効期限) | 有効期限の日付のチェックディジット |
9-42 | 個人番号 | オプションの個人番号(通常は国民ID番号) |
3 | チェックデジット(個人番号) | 個人番号のチェックデジット |
4 | チェックディジット(コンポジット) | 全体チェックディジット |
デバッグ
パスポート画像から抽出された生のテキストと信頼度を取得することで、IronOCRからの結果が正確であるかどうかを確認することもできます。 上記の例を使用して、OcrPassportResult
オブジェクトの Confidence
および Text
プロパティにアクセスできます。
:path=/static-assets/ocr/content-code-examples/how-to/read-passport-debug.cs
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)
コンソール出力:
- Confidence:
OcrPassportResult
のConfidence
プロパティは、各文字の平均としてOCRの統計的精度信頼度を示す浮動小数点です。 パスポート画像がぼやけていたり、他の情報が含まれている場合、この浮動小数点は低くなります。 1が最も高く最も自信がある状態であり、0が最も低く最も自信がない状態です。 OcrPassportResult
のText
プロパティには、パスポート画像から抽出された生の未解析テキストが含まれています。 開発者はユニットテストでこれを使用して、パスポート画像から抽出されたテキストを検証することができます。