イントロダクション
MRZ(Machine Readable Zone、機械可読ゾーン)は、パスポート、ビザ、身分証などの旅行書類に記載されている特定の領域を指します。この領域の情報は機械で迅速に読み取ることができ、国際民間航空機関(ICAO)の文書 9303 に基づいて設計・生成されています。この仕組みは、国境検査の効率化と情報処理の正確性向上を目的としています。
興味のある方は次をご参照ください:文書 9303
一般の人は MRZ が何かを知らないかもしれませんが、通常パスポートを手に持っている場合、そこに MRZ が含まれています。このように赤枠で囲まれた部分です:
パスポート以外にも、一部の国の身分証、運転免許証、ビザなどにも MRZ が含まれています。
MRZ には以下のような特徴があります:
- 固定構造:MRZ の種類に応じて構造が異なり、各フィールドの意味も固定されています。
- テキスト領域が明瞭:背景は単色で、テキストは黒色、文字間には一定の間隔があります。
- 簡潔な分類:MRZ の文字は数字と大文字アルファベットのみ、全体で 37 種類の候補文字しかありません。
MRZ の構造は書類の種類によって異なり、主に以下の形式があります:
- TD1(身分証など): 3 行、各行 30 文字、合計 90 文字。
- TD2(パスポートカードなど): 2 行、各行 36 文字、合計 72 文字。
- TD3(パスポートなど): 2 行、各行 44 文字、合計 88 文字。
- MRVA(ビザタイプ A): 2 行、各行 44 文字、合計 88 文字。
- MRVB(ビザタイプ B): 2 行、各行 36 文字、合計 72 文字。
構造紹介
MRZ の構造について、以下の GitHub プロジェクト Arg0s1080/mrz の説明を引用します:
この図を基に、各 MRZ フィールドの意味を明確に説明します:
- Type:書類の種類(例:パスポート、身分証、ビザなど)
- Country Code:発行国コード
- Surname:姓
- Given Names:名
- Document Number:書類番号
- National:国籍
- Date of Birth:生年月日
- Date of Expiry:有効期限
- Optional:カスタムフィールド
テキスト認識
今回のテーマは「MRZ テキスト認識」です。このテーマはあまり研究が進んでおらず、関連する論文も多くありません。ただし問題を分解すると、これは基本的に OCR の問題であり、いくつかの OCR モデルを調整するだけで解決可能です。
しかし、それでは無駄が多い!
OCR モデルは通常、さまざまな文字タイプ(数字、大文字小文字アルファベット、記号など)を認識するよう設計されており、数千種類の文字カテゴリをカバーします。これによりモデルが複雑になり、計算資源も多く必要とされます。
このようなモデルを MRZ 認識に直接適用すると、専門性が不足していると感じませんか?
そのため、MRZ の特性に合わせた専用モデルを設計する必要があります。この専用モデルにより、無駄な文字タイプを処理する必要がなくなり、計算資源を節約しながら認識速度と精度を向上させることができます。
2 段階認識
専用モデルを設計するために、MRZ 認識を次の 2 段階に分割しました:
- 領域検出:軽量モデルを使用して画像中の MRZ 領域を特定。
- テキスト認識:軽量モデルを使用して MRZ 領域内のテキストを認識。
私たちはまず 1 週間で MRZ 領域検出モデルを作成し、その後もう 1 週間で MRZ テキスト認識モデルを完成させました。両モデルのサイズは合わせて約 5MB で、単一フレーム画像の認識精度は約 95%に達しました。
定義: 上記の精度とは、MRZ 領域内のすべての文字が正しく認識された場合に、画像全体が正しく認識されたと見なすものです。1 文字でも間違えば全体が不正解とされます。
ただし、この方法の唯一の欠点は......
退屈すぎる
問題が「順風満帆」に解決されると、ただの作業になってしまいます。顧客から依頼された内容を忠実に実行して解決したものの、納品後はこの解決策を放置し、新しいアプローチを模索しました。
2 段階認識を使わない場合、単段階認識しかありません!
次は、画像全体から直接 MRZ テキストを認識するモデルを開発しました。
単段階認識
単段階 MRZ 認識モデルを完成させるのに 3 か月かかりました。
この過程では予想以上に時間を要しました。問題は想像以上に困難で、何度も挫折しそうになりました。2 段階認識は退屈とはいえ、高精度を実現しています。それで十分なのでは?と考えることもありました。
単段階モデルの困難さは、画像全体でスケールや方向が異なる MRZ 領域を探索し、文字を認識する必要がある点です。そのうえ、モバイル端末での利用を考慮し、モデルを軽量化する必要があります。これらの要因がモデルの収束を難しくし、性能を低下させました。
技術的な詳細については後続の章で紹介します:モデル設計
試行錯誤の末、単段階モデルを一応完成させましたが、これを「段階的成果」と見なしています。理想的な形としては、より安定性が高く、精度の高いモデルで、多様な用途に対応できるものを目指しています。
今後も論文を読み込み、モデル性能の向上に努めていきます。
モデル評価
この部分については、いくつかの制約があります。
- このテーマに関する標準データセットが存在しないため、独自にデータを生成しラベル付けしましたが、公的な信頼性がありません。
- MIDV データセットは利用可能ですが、主に合成サンプルが多く、モデルの微調整に適さない場合があり、性能評価には不十分です。
そのため、他のプロジェクトのような完全なモデル評価レポートを提供することはできません。
結論
このプロジェクトでは以下を達成しました:
- 合成データセットの有効性を検証。
- MRZ の領域検出と認識を統合し、単段階認識モデルを構築。
- すべての形式の MRZ ドキュメントを統合し、統一された解析インターフェースを提供。
友人から借りたパスポートや在留カードを使用して、各国のパスポートでテストしたところ、ある程度規定された条件下では安定した認識精度を実現しました。
このテーマに興味がある方はぜひ試してみてください。フィードバックをお待ちしています。
ご意見やアドバイスもお寄せください。皆さんとの交流を楽しみにしています。