Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Building an iOS ID Scanner with Face, Document, OCR and MRZ Detection

2025年09月12日に「Dev.to」が公開したITニュース「Building an iOS ID Scanner with Face, Document, OCR and MRZ Detection」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

Apple VisionフレームワークとDynamsoft MRZ SDKを使い、iOSでIDスキャナーアプリを作る。顔や書類の検出、OCRによる文字認識、MRZデータ抽出、画像補正機能をSwiftUIで実装し、身分証明書の情報を読み取る技術を学べる。

ITニュース解説

このニュース記事は、iOSデバイス上で身分証明書をスキャンし、顔の検出、書類の境界線認識、画像からの文字抽出(OCR)、そしてパスポートやIDカードの機械読み取り可能ゾーン(MRZ)からの情報抽出を行うアプリケーションの構築方法について解説している。Appleが提供するVisionフレームワークと、Dynamsoft MRZ SDKという外部ツールキットを組み合わせることで、これらの高度な機能を実現する。システムエンジニアを目指す初心者にとっても、画像認識技術やモバイルアプリ開発の具体的な手法を学ぶ良い機会となるだろう。

まず、このアプリケーション開発にはいくつかの前提条件がある。開発ツールであるXcodeのバージョン15.0以降、動作対象となるiOSのバージョン14.0以降が必須だ。特に、カメラ機能を利用するためには、実物のiOSデバイスが必要であり、シミュレーターではカメラ関連の機能が動作しない点に注意が必要である。さらに、MRZ認識機能を利用するためには、Dynamsoft MRZ Scanner SDKの試用版ライセンスも用意する必要がある。

開発プロジェクトの準備として、Xcodeで新しいSwiftUIプロジェクトを作成し、次にDynamsoft MRZ Scanner SDKをプロジェクトに追加する。これは、Swift Package ManagerというXcodeの機能を使って、SDKのGitHubリポジトリのURLを指定することで簡単に行える。また、アプリケーションがデバイスのカメラを使用することをユーザーに許可してもらうため、Info.plistという設定ファイルにカメラの使用目的を明記する記述を追加する必要がある。

開発の最初のステップは、カメラアクセス許可の管理である。アプリは、カメラへのアクセスが許可されているかを確認し、まだ許可されていない場合には、ユーザーに対して許可を求めるメッセージとボタンを表示する画面を提供する。ユーザーが「許可する」を選択することで、カメラ機能が利用できるようになる仕組みだ。これにより、ユーザーはアプリが何のためにカメラを使うのかを理解し、安心してアクセスを許可できる。

次に、カメラの操作全般を管理するクラスを構築する。このクラスは、AppleのAVFoundationフレームワークに含まれるAVCaptureSessionという機能を利用して、カメラの映像入力や出力の設定を行う。IDスキャンにおいては、文字認識の精度を高めるために最高品質の映像(例えば写真撮影用の高解像度設定)を使用するように設定する。また、カメラが常に最適な映像を捉えられるよう、自動フォーカス、自動露出、自動ホワイトバランスといった機能も有効にする。カメラからのリアルタイム映像データは、AVCaptureVideoDataOutputを通して次のステップの画像認識処理に送られる。

リアルタイム検出のステップでは、Visionフレームワークの強力な画像解析能力が活用される。カメラから連続して送られてくる映像フレームに対して、顔の検出を行うVNDetectFaceRectanglesRequestと、書類の矩形(四角い形)を検出するVNDetectRectanglesRequestという二つのリクエストを同時に実行する。これらのリクエストは、画像の中から顔や書類の候補を高速に探し出し、その位置情報(バウンディングボックス)を提供する。書類検出では、検出された複数の矩形の中から最も信頼性が高く、かつ面積の大きなものを一つ選んで処理対象とする。検出された顔や書類の輪郭は、カメラ映像の上にリアルタイムで重ねて表示され、ユーザーはスキャン対象が正しく認識されていることを視覚的に確認できる。

書類画像の補正は、撮影されたIDカードが斜めになっていたり、遠近感がついていたりする場合に、画像を平面かつ真正面から見た状態に修正するプロセスである。Visionフレームワークで検出された書類の四隅の正確な座標情報を用いて、Core ImageフレームワークのCIPerspectiveCorrectionという画像フィルターを適用する。このフィルターにより、歪んだ画像が真っ直ぐに補正され、後続のOCRやMRZ認識の精度が大きく向上する。

補正された画像からは、VisionフレームワークのOCRサービスを利用してテキストを抽出する。VNRecognizeTextRequestという機能を用いることで、画像に含まれるあらゆる文字を自動的に認識し、その結果を文字列のリストとして取得できる。より正確な認識を可能にするため、「正確な認識レベル」を設定し、言語補正機能も利用する。

MRZ認識のステップでは、Dynamsoft MRZ SDKが使用される。これは、パスポートや一部のIDカードに印刷されている、機械で読み取り可能な特殊な文字列の領域(MRZ)から、氏名、生年月日、国籍、発行国、有効期限などの個人情報を自動的に抽出し、構造化されたデータとして提供する機能だ。SDKのライセンス認証が完了していれば、補正済みの画像をSDKに渡すだけで、必要な情報が取得できる。

ユーザーインターフェースはSwiftUIで構築される。CameraViewはカメラからの映像を表示し、その上にOverlayViewが重ねて表示されることで、リアルタイムで検出された顔や書類の輪郭が描画される。画面下部には撮影ボタンが配置されており、このボタンをタップすると、現在のカメラフレームがキャプチャされる。キャプチャされた画像は、前述の画像補正、OCR、MRZ認識の各処理パイプラインを経て分析される。処理中には、ユーザーに「書類を補正中...」「テキストを抽出中...」といった状況を示すメッセージが表示される。

すべての処理が完了すると、アプリは結果表示画面に遷移する。この画面では、補正されたIDカードの画像とともに、OCRで抽出されたすべてのテキストのリストと、MRZから読み取られた氏名や生年月日などの詳細な個人情報がタブ形式で表示される。ユーザーはこれらの結果を確認したり、必要であれば共有機能を使って他のアプリケーションにデータをエクスポートしたりすることも可能である。

このように、このIDスキャナーアプリは、カメラからの映像入力、リアルタイム画像認識、高度な画像補正、そして異なる種類の情報抽出(一般的な文字とMRZ固有のデータ)という一連のプロセスを統合した高度なモバイルアプリケーションである。この開発を通じて、Visionフレームワークや外部SDKの活用、カメラ制御、そしてSwiftUIによるユーザーインターフェース構築といった、システムエンジニアとして多岐にわたるスキルを習得できる。

関連コンテンツ

関連IT用語