前回、モール内などのデジタルサイネージとともにカメラを設置し、そこに映った人の顔や表情から、その人のデモグラフィックデータや感情を推測する仕組みを紹介した。このような仕組みはマーケティングなどで効果を発揮する。

 今回は、より汎用的なAIシステムを取り上げる。カメラに写った顔画像から誰かを識別するシステムだ。

 このシステムの用途は幅広い。例えば会社の受付にカメラを設置し来訪者の顔画像から誰かを識別することで、自動的に来訪者受付票の発行や案内、対応者への連絡ができる。

 イベント会場でのチケットレス入場の実現にも役立つ。実際に筆者らが所属するFIXERは、Microsoft Cognitive Servicesを活用し、個人識別による「顔認証チケットレスサービス」を開発・提供している。

 イベントなどのチケット購入者に、あらかじめ自分の顔を登録してもらうことにより、イベント会場ではチケット提示不要の「顔パス」での入場を実現する。複数人が立ち止まらず同時に並んで通っても正しく認識する。イベントチケットの転売問題を解決できるうえに、入場時の待ち行列も解消できる。

 それでは、顔画像による個人識別の処理フローを考えてみよう。カメラから顔画像を取得してAzureへと送る方法は、前回説明したので省略する。今回は、オブジェクトストレージのAzure Blob Storageにカメラから送られた顔画像が格納されていることを前提に、その後の処理フローを考える。

 処理フローは次の四つのプロセスで構成される。Process1での条件によって、Process2~4に分岐する。

図1 顔画像による個人識別のプロセス
[画像のクリックで拡大表示]

Process1 画像登録・個人特定・名前特定

 カメラから送られてきた顔画像から、Face APIによる個人特定を試みる。

Process2 関係者連絡

 個人が特定され、その確信度(Confidence)も十分高い場合には、関係者にメールを送信する。

Process3 (関係者による)人物登録

 個人特定ができなかった場合には、登録画面のリンクを含むメールを関係者に送信する。メールを受け取った関係者は、この登録画面で「その人が誰なのか」を入力し、その情報をFace APIに学習させる。

Process4 (関係者による)人物確認

 個人特定はできたものの確信度が十分でない場合は、確認画面のリンクを含むメールを関係者に送信する。メールを受け取った関係者は、この画面で確認を行い、その情報をFace APIに学習させる。

 これら四つのプロセスの実現方法について、コード例を示しながら解説していく。プログラミング言語はC#を使用する。登録画面と確認画面はHTMLによって生成するが、これに関してはASP.NET MVCフレームワークで提供される「HTMLヘルパー」を用いる。

 なお実際には、処理に失敗したときの例外処理コードも記述する必要があるが、この連載では処理の流れの概要をつかんでもらうことを主眼としているため、サンプルコードには最小限の内容だけを記述している。

この先は有料会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら