IRONSOFTWAREHOME

C#でIronOCRを使ってパスポートデータを抽出する

Curtis Chau
Curtis Chau
Updated: 2026年6月29日

IronOCRのReadPassportメソッドは、名前、パスポート番号、誕生日、有効期限などの情報を含むパスポート画像から構造化データを抽出し、C#コードの1行で移民やセキュリティアプリケーションに最適です。

空港のチェックインカウンターやセキュリティ入国審査など、係員が毎日大量のパスポートを取り扱うアプリケーションやシステムでは、ミッションクリティカルな旅行者情報を正確に抽出する信頼性の高いシステムを持つことが、効率的で合理的な入国審査プロセスを確保する上で極めて重要です。 IronOCR ライブラリは、Tesseract 5 を活用して機械学習を強化し、特にパスポート読み取り用に最適化された高度な OCR 機能を提供します。

クイックスタート:1行でPassport MRZ情報を抽出

この例では、PassportInfoから名前、番号、日付のような構造フィールドにアクセスする方法を示しています。 複雑な設定は必要ありません。従来のTesseractの実装とは異なり、IronOCRはドキュメント抽出に特化したシンプルなAPIを提供します。

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. 2このコード スニペットをコピーして実行します。

    var passportInfo = new IronOcr.IronTesseract().ReadPassport(new IronOcr.OcrInput("passport.jpg")).PassportInfo;
    C#
  3. 3実際の環境でテストするためにデプロイする

    今日プロジェクトで IronOCR を使い始めましょう無料トライアル
    arrow pointer

C#でパスポートデータを抽出するには?

例として、パスポート画像を入力として使用し、IronOCR の機能を紹介します。 ReadPassportメソッドを利用してパスポートから情報を識別し抽出します。 このメソッドは、OcrPassportResultオブジェクトを返します。

ReadPassportメソッドは、IronOCRの専門的なドキュメント読み取り機能の一部であり、ナンバープレートの読み取りMICR小切手、他の構造文書の読み取りを含みます。 この方法では、高度なコンピュータ・ビジョン技術を使用して、MRZ(Machine Readable Zone)領域を自動的に見つけて抽出します。

[{私:(

  • この方法は現在、英語ベースのパスポートにのみ有効です。
  • .NET Framework で詳細スキャンを使用するには、プロジェクトを x64 アーキテクチャで実行する必要があります。
  • Macユーザーの方へ、ReadPassportメソッドは現在入力を自動的に回転しないことを注意してください。 入力を使用する場合は、MRZ が常にファイルの下部にあることを確認してください。そうでない場合、プロセスは失敗します。 )}]

どのようなパスポート画像フォーマットを使用すればよいですか?

IronOCRはJPG、PNG、TIFF、BMPを含む様々な画像フォーマットをサポートしています。最適な結果を得るためには、パスポートの画像が適切な解像度(少なくとも300DPI)と適切な明るさを持っていることを確認してください。 DPI設定は、低画質のスキャンで作業する場合に調整できます。

米国パスポートのデータページの例。経歴フィールド、日付、データ抽出デモ用の機械可読ゾーンが示されている。

パスポート データを抽出するにはどのようなコードが必要ですか?

次の例は、パスポートのデータ抽出の完全なプロセスを示しています。 複数のパスポートを処理するアプリケーションでは、マルチスレッド サポートを実装してパフォーマンスを向上させることを検討してください。 また、OCRの進捗状況を追跡することもできます。

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);
Console.WriteLine(result.PassportInfo.Gender);
Console.WriteLine(result.PassportInfo.DocumentType);
Console.WriteLine(result.PassportInfo.Nationality);
Console.WriteLine(result.PassportInfo.NationalityCode);
Console.WriteLine(result.PassportInfo.IssuingCountryCode);
Console.WriteLine(result.PassportInfo.PersonalNumber);
Console.WriteLine(result.PassportInfo.DateOfIssue);

ReadPassportからどのような出力が期待できますか?

抽出されたデータは、既存のシステムとの統合が容易な構造化された形式で返されます。 OcrResultクラスは、抽出されたすべての情報への包括的なアクセスを提供します。

OCR処理で抽出されたパスポートデータ(氏名、国名、パスポート番号、日付)を示すデバッグコンソール

その後、PassportInfoデータメンバーにアクセスします。 抽出プロセスでは、さまざまなパスポートのレイアウトや形式が自動的に処理されるため、発行国が異なっても一貫した結果が得られます。

  • GivenNames: PassportInfoのプロパティは、パスポート入力の与えられた名前を文字列として返します。 これは、最初のMRZデータ行の位置4から44に対応します。
  • Country: PassportInfoのプロパティは、パスポート入力の国を文字列として返します。 返される文字列は、略称ではなく、発行国の正式名称を表しています。 この例では、USAは"アメリカ合衆国"を返します。
  • PassportNumber: PassportInfoのプロパティは、パスポート入力のパスポート番号を文字列として返します。 これは、2番目のMRZデータ行の位置1から9に対応します。
  • Surname: PassportInfoのプロパティは、パスポート入力の姓を文字列として返します。 これは、最初のMRZデータ行の位置4から44に対応します。
  • DateOfBirth: PassportInfoのプロパティは、パスポート入力の生年月日をYYYY-MM-DD形式の文字列として返します。 これは、2番目のMRZデータ行の位置14から19に対応します。
  • DateOfExpiry: PassportInfoのプロパティメンバーは、パスポート入力の有効期限をYYYY-MM-DD形式の文字列として返します。 これは、2番目のMRZデータ行の22から27の位置に相当します。
  • Gender: MRZ位置21から性別をGender.Unspecifiedとして返します。
  • DocumentType: MRZ位置1-2から、パスポートの場合は"P"、サービスの場合は"PS"、外交の場合は"PD"を返します。
  • 国籍: MRZ位置11-13から派生した英語の国名を返します。
  • 国籍Code: MRZ位置11-13からの生のISO 3166-1 alpha-3コードを返します。
  • IssuingCountryCode: MRZ位置3-5から発行国の生のISO 3166-1 alpha-3コードを返します。
  • PersonalNumber: MRZ位置29-42からのオプションの国民ID番号を返します。
  • DateOfIssue: 視覚検査ゾーン(VIZ)からの発行日を27の言語にわたる最善の努力によるラベルマッチングを使用して抽出します。

パスポートからどのような MRZ 情報を抽出できますか?

IronOCRは(国際民間航空機関)ICAOの基準に従ったパスポートの下2行に含まれるMRZ情報を読み取ります。 MRZのデータは2つのデータ行で構成されており、それぞれの位置のセットには固有の情報が含まれています。 以下は、どの情報が行のインデックスに対応するかを示す簡単な表です。

IronOCRのMRZ解析機能は、印刷品質や画像の向きのばらつきを扱うように設計されています。 難しい文書には、画像補正フィルターを適用して、認識精度を向上させることができます。

MRZセクションはどのようなものですか?

MRZは通常、パスポートページの下部にあり、2行の標準テキストで構成されています。 MRZ の構造を理解することは、抽出に関する問題のトラブルシューティングや結果の検証に役立ちます。

機械可読ゾーン(MRZ)が赤枠で強調表示され、エンコードされた英数字データ行が示されている米国パスポートのページ。

1行目

ポジションフィールド翻訳内容
1文書の種類通常、パスポートの"P"
2-3発行国3文字の国コード(ISO 3166-1 alpha-3)
4-44姓と名姓の後に"<<"が続き、その後に名が"<"で区切られます

2行目

ポジションフィールド翻訳内容
1-9パスポート番号固有のパスポート番号
10チェックディジット(パスポート番号)パスポート番号のチェックデジット
11-13国籍3文字の国籍コード(ISO 3166-1 alpha-3)
14-19生年月日生年月日(YYMMDD形式)
20チェックディジット(生年月日)生年月日のチェックデジット
21セックス性別(男性は"M"、女性は"F"、未指定は"X")
22-27有効期限YYMMDD形式の有効期限
28チェックディジット(有効期限)有効期限のチェックデジット
29-42個人番号オプションの個人番号(通常は国民ID番号)
43チェックディジット(個人番号)個人番号のチェックデジット
44チェックディジット(複合)全体のチェックディジット

パスポート抽出結果をデバッグおよび検証するにはどうすればよいですか?

また、IronOCRの結果を検証するために、パスポート画像から生の抽出テキストと信頼度を取得し、抽出された情報が正確かどうかを確認することができます。 上記の例を用いて、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);

VS Codeデバッグコンソールがパスポートデータの出力を示しており、個人情報、国、およびエンコードされた文字列を含んでいます

  • Confidence: Confidenceプロパティは、各文字のOCR統計的精度信頼性の平均を示すフロートです。 パスポートの画像がぼやけていたり、他の情報が含まれている場合は、このフロートは低くなります。 1が最高で最も自信のあるもの、0が最低で最も自信のないものです。 本番アプリケーションでは、結果の信頼度しきい値を実装して、データの品質を確保することを検討してください。
  • Text: Textプロパティは、パスポート画像から抽出された生の未解析テキストを含みます。 開発者は、これをユニットテストで使用して、パスポート画像の抽出テキストを検証することができます。 高度なシナリオでは、hOCR形式で結果をエクスポートして、さらに分析することができます。

パスポート スキャン アプリケーションのベスト プラクティス

本番環境でパスポートスキャンを実施する場合は、以下の追加要素を考慮してください:

1.画像の品質: 入力画像が最低限の品質基準を満たしていることを確認します。 フィルタ ウィザードは、より良い認識のために画像を最適化するのに役立ちます。

2.パフォーマンス:大量処理の場合は、asyncサポートを実装し、複数のパスポートのバッチ処理を検討してください。

3.セキュリティ:パスポートのデータは機密性が高いため、適切なデータの取り扱いを保証し、安全な文書管理システムとの統合を検討してください。

4.バリデーション: 抽出されたMRZデータのチェックデジットバリデーションを実装し、正確性を確保する。 MRZフォーマットには、抽出された情報の整合性を確認するために使用できる複数のチェック数字が含まれています。

5.エラー処理: パスポート画像が破損していたり、光が弱かったり、非標準の形式を含んでいたりする場合に備えて、堅牢なエラー処理を実装します。

よくある質問

C#で画像からパスポートデータを抽出するには?

IronOCRのReadPassportメソッドを使ってパスポートデータを抽出することができます。パスポート画像をOcrInputで読み込み、ReadPassport()を呼び出すだけで、名前、パスポート番号、生年月日、有効期限を含む構造化データを1行のコードで取得できます。

自動的に抽出できるパスポート情報とは?

IronOCRのReadPassportメソッドはパスポート画像からGivenNames、Country、PassportNumber、Surname、DateOfBirth、DateOfExpiryを抽出します。すべてのデータは構造化されたPassportInfoオブジェクトの文字列として返されます。

パスポートMRZデータを読むには、複雑な設定が必要ですか?

複雑な設定は必要ありません。IronOCRは、より多くの設定を必要とする従来のTesseract実装とは異なり、たった1行のコードでパスポートMRZデータを抽出する簡素化されたAPIを提供します。

パスポートの読み取り機能を支える技術は何ですか?

IronOCRはTesseract 5を活用し、機械学習と高度なコンピューター・ビジョン技術により、パスポート画像からMRZ(Machine Readable Zone)領域を自動的に特定・抽出します。

空港の出入国管理システムに使えますか?

IronOcrは毎日大量のパスポートを扱う空港での入国審査やセキュリティ・アプリケーションに最適です。ミッションクリティカルな旅行者情報を確実に抽出し、効率的な入国審査を実現します。

What are the requirements for using the ReadPassport method on a Mac?

When using ReadPassport on a Mac, ensure the MRZ is at the bottom of the input image, as automatic rotation is not supported, and the project needs to run in x64 architecture on advanced .NET Framework.

What image formats are supported by IronOCR for passport OCR?

IronOCR supports various image formats, including JPG, PNG, TIFF, and BMP, for passport OCR and recommends images with a resolution of at least 300 DPI.

Can IronOCR handle non-standard passport formats?

IronOCR's MRZ parsing is designed to handle variations in passport print quality and image orientation, making it adaptable to different passport layouts and formats.

How does IronOCR ensure the accuracy of extracted passport data?

IronOCR provides the Confidence property in the OcrPassportResult, which indicates the statistical accuracy of the OCR process, and developers can implement thresholds for quality assurance.

What additional features does IronOCR offer for MRZ extraction validation?

IronOCR includes features like check digit validation for MRZ data fields, ensuring the accuracy and integrity of the extracted information.

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

...
詳しく読む

準備はできましたか?

Nuget Downloads 6,236,385バージョン:2026.9リリースされたばかり

あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. 「参照」を選択して「IronOCR」を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

または、Windowsインストーラーをこちらからダウンロード。

  1. IronOCRをダウンロードして、ソリューションディレクトリ内の~/Libsなどの場所に解凍します
  2. Visual Studioソリューションエクスプローラーで、リファレンスを右クリックします。「参照」、「IronOCR.dll」を選択

$999からのライセンス

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。