初めに、一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。また、各図におけるブロック間の接続線は、双方向及び単方向の双方を含む。一方向矢印については、主たる信号(データ)の流れを模式的に示すものであり、双方向性を排除するものではない。さらに、本願開示に示す回路図、ブロック図、内部構成図、接続図などにおいて、明示は省略するが、入力ポート及び出力ポートが各接続線の入力端及び出力端のそれぞれに存在する。入出力インターフェイスも同様である。
一実施形態に係る自動販売機決済システムは、顔認証サーバ101と、決済サーバ102と、自動販売機103と、を含む(図1参照)。顔認証サーバ101は、 顧客ID(Identifier)と、顧客IDに対応する人物の顔画像から生成された第1、第2の特徴ベクトルと、を関連付けて記憶するデータベースにアクセスし、要求された人物の顔認証を行う。決済サーバ102は、商品購入に関する決済を行う。自動販売機103は、顔認証サーバ101に顔認証を要求し、顔認証サーバ101による認証が成功した顧客が購入する商品の決済を決済サーバ102に要求する。自動販売機103は、自装置周辺に存在する顧客を検出するのに応じて、検出した顧客の顔画像から第1の特徴ベクトルに対応する第3の特徴ベクトルを生成する。顔認証サーバ101は、データベースに記憶された第1の特徴ベクトルであって、第3の特徴ベクトルとの間の類似度が所定の閾値よりも高い第1の特徴ベクトルを抽出する。さらに、顔認証サーバ101は、抽出された第1の特徴ベクトルに対応する顧客IDからなるリストを顔認証候補として生成する。自動販売機103は、前記顧客を検出するタイミングと異なるタイミングにおいて、商品を購入しようとする顧客の顔画像から第4の特徴ベクトルを生成する。顔認証サーバ101は、第4の特徴ベクトルと、顔認証候補に含まれる顧客IDに対応する第2の特徴ベクトルと、に基づき、商品を購入しようとする顧客の顔認証を行う。
自動販売機103は、自装置前の顧客を認識すると、当該認識した顧客の顔画像から第3の特徴ベクトル(後述する概略特徴ベクトル)を生成する。顔認証サーバ101は、自動販売機103から送信されてくる第3の特徴ベクトルを利用し、データベースに格納された膨大な顧客のなかから、自動販売機103の面前に存在する顧客と類似する特徴を持つ顧客を予め絞り込む。当該絞込には、顧客の顔画像から生成された第3の特徴ベクトルに対応する第1の特徴ベクトル(後述する絞込特徴ベクトル)が用いられる。その後、自動販売機103は、商品の購入意志を持つ顧客の顔画像から第4の特徴ベクトル(後述する詳細特徴ベクトル)を生成する。顔認証サーバ101は、先に生成した顔認証候補に含まれる顧客を認証対象として扱う。顔認証サーバ101は、顔認証候補に含まれる顧客の顔を詳細に特徴付ける第2の特徴ベクトル(後述する認証特徴ベクトル)と、自動販売機103から取得した第4の特徴ベクトルと、を用いて顔認証を実行する。
このように、図1に示す自動販売機決済システムでは、自動販売機103が顧客(将来の顧客)を認識すると、当該顧客の顔を特徴付ける特徴ベクトルを顔認証サーバ101に送信し、今後、顔認証が生じるであろう顧客を予め絞り込んでおく。その後、自動販売機103は、実際に顧客が商品を購入する意思を示すと、当該顧客の顔をより詳細に特徴付ける特徴ベクトルを顔認証サーバ101に送信して顔認証の実行を依頼する。顔認証サーバ101では、予め絞り込まれた顧客のなかから商品を購入しようとする顧客を特定(認証)すればよいため、顔認証による迅速な決済が実現できる。
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。なお、各実施形態において同一構成要素には同一の符号を付し、その説明を省略する。
[第1の実施形態]
第1の実施形態について、図面を用いてより詳細に説明する。
図2は、第1の実施形態に係る自動販売機決済システムの一例を示す図である。図2を参照すると、自動販売機決済システムは、自動販売機10-1~10-N(Nは正の整数、以下同じ)と、顔認証サーバ20と、決済サーバ30と、を含んで構成される。
なお、以降の説明において、自動販売機10-1~10-Nを区別する特段の理由がない場合には、単に「自動販売機10」と表記する。
自動販売機10は、飲料等の商品を無人で販売する装置である。自動販売機10は、現金及びICカードを用いた既存の決済手段に加え、顔認証等による決済に対応している。
顔認証サーバ20は、自動販売機10にて商品を購入しようとする顧客の認証を行う装置である。顔認証サーバ20は、システムに含まれる複数の自動販売機10からの顔認証の要求を処理する。顔認証サーバ20は、予め登録された顧客を識別する識別子(ID;IDentifier)と顧客の顔画像から抽出された特徴量(特徴ベクトル)を対応付けて記憶している。なお、顔認証サーバ20に登録される特徴ベクトルには2種類存在するが、各特徴ベクトルの詳細は後述する。
決済サーバ30は、顧客による商品購入に関する決済を行う装置である。より具体的には、決済サーバ30は、顔認証にて正当性が確認された顧客の商品購入に関する決済処理を行う。決済サーバ30は、予め登録された顧客の識別子(ID)と決済に用いる情報(例えば、クレジットカードに関する情報)を対応付けて記憶している。
なお、図2に示す自動販売機決済システムを利用する顧客は、自分の顔画像を自動販売機10の運営会社等に送信し、当該顔画像から抽出された特徴ベクトルを顔認証サーバ20に予め登録しておく必要がある。同様に、顧客は、決済に使用するカード情報を上記運営会社等に連絡し、当該カード情報を決済サーバ30に予め登録しておく必要ある。また、特に制限されないが、顔認証サーバ20と決済サーバ30に登録する顧客IDは共通とすることが望ましい。2つのサーバで同じ顧客IDを用いることで、顧客IDの相互変換等が不要となるためである。
これらの情報登録には、運営会社のホームページを利用した登録、スマートフォン等の端末を利用した登録、必要情報を記入した書類を送付することによる登録等種々の形態があり得る。また、これらの登録処理は、当業者にとって明らかであり、その詳細な説明を省略する。
なお、顔認証サーバ20に登録する特徴ベクトルは、自動販売機10から送信される情報(特徴ベクトル)と整合をとる必要がある。この点に関する説明は後述する。
図2に示す構成は例示であって、システムの構成を限定する趣旨ではない。例えば、自動販売機決済システムには、顔認証に対応していない自動販売機が含まれていてもよい。あるいは、顔認証サーバ20と決済サーバ30の機能を有する1台のサーバ装置を用意してもよい。あるいは、顔認証サーバ20等が利用するデータベースを管理するデータベースサーバ等がシステムに含まれていてもよい。
[システムの概略動作]
続いて、図3を参照しつつ、第1の実施形態に係る自動販売機決済システムの概略動作を説明する。
図3は、第1の実施形態に係る自動販売機決済システムの動作の一例を示すシーケンス図である。なお、図3に示すシーケンス図は、顧客が商品購入時の決済手段として顔認証を選択する場合の動作を示す。現金による決済等を含む動作の詳細は後述する。
自動販売機10は、自装置の周辺に「人」が現れると当該人物を検出する(ステップS01)。
「人」を検出すると、自動販売機10は、自装置の動作モードを「選択モード」に設定する。なお、選択モードは、自動販売機10の周辺に存在する人(顧客)が購入する商品を選択している(商品を購入しようとしている)と想定されるモードである。
選択モードに遷移する前の動作モードは「待機モード」である。待機モードは、顧客が自動販売機10の面前に現れるのを待つモードである。
選択モードの自動販売機10は、周辺に存在する人物の顔画像を取得し、当該顔画像から特徴ベクトルを生成する(ステップS02)。
特徴ベクトルの生成が終了すると、自動販売機10は、顔認証サーバ20に対して「絞込要求」を送信する。その際、自動販売機10は、自装置のID、上記生成した特徴ベクトルを絞込要求に含めて顔認証サーバ20に送信する。
以下、絞込要求と共に送信する特徴ベクトルを「概略特徴ベクトル」と表記する。概略特徴ベクトルは、顔画像の大まかな特徴を特徴付けるベクトル(複数の特徴量を要素とする集合)であり、顔認証に用いた場合の精度は低いという特性を持つ。
顔認証サーバ20は、絞込要求を受信し、概略特徴ベクトルを取得する。顔認証サーバ20は、取得した概略特徴ベクトルと、内部のデータベース(顧客IDと特徴ベクトルを対応付けるデータベース)に格納された特徴ベクトルと、を用いて「顔認証候補」を生成する(ステップS11)。
顔認証候補とは、内部データベースに登録された特徴ベクトルであって、自動販売機10から取得した概略特徴ベクトルとの間の類似度が所定の閾値よりも高い特徴ベクトルに対応する顧客(顧客ID)のリストである。より具体的には、顔認証サーバ20は、内部データベースに登録された多数の顧客の中から、取得した概略特徴ベクトルに類似する(顔が似ている)小数の顧客を抽出し、当該抽出した顧客を「顔認証処理の候補」に設定する。なお、概略特徴ベクトルが有する上記特性(認証精度は低い)から、通常、複数の顧客(特徴ベクトル)が抽出される。
顔認証サーバ20の「顔認証候補」に関する生成処理に並行して、自動販売機10は、顧客が商品を選択したか否かを判定する。具体的には、自動販売機10は、顧客による商品選択操作(例えば、商品サンプルに対応付けられたボタンの押下)を検出する(ステップS03)。
顧客による商品購入動作を検出すると、自動販売機10は、顧客が決済手段を選択するための表示を行う(決済選択画面を表示;ステップS04)。例えば、自動販売機10は、ICカードによる決済及び顔認証による決済のいずれかを選択するように顧客を促す表示を行う。ここでは、「顔認証」による決済が選択されたものとする。
顔認証による決済が選択されると、自動販売機10は、自装置の動作モードを「認証モード」に設定する。認証モードは、顧客が商品購入を完了させるための顔認証を行うモードである。
認証モードの自動販売機10は、商品を選択した顧客の顔画像を取得し、当該顔画像から特徴ベクトルを生成する(ステップS05)。
特徴ベクトルの生成が終了すると、自動販売機10は、顔認証サーバ20に対して「認証要求」を送信する。その際、自動販売機10は、自装置のID、上記生成した特徴ベクトルを認証要求に含めて顔認証サーバ20に送信する。
以下、認証要求と共に送信する特徴ベクトルを「詳細特徴ベクトル」と表記する。詳細特徴ベクトルは、顔画像の詳細な特徴を特徴付けるベクトルであり、顔認証に用いた場合の精度は高いという特性を持つ。
顔認証サーバ20は、認証要求を受信し、詳細特徴ベクトルを取得する。自動販売機10は、先に生成した顔認証候補に含まれる顧客それぞれに対応する特徴ベクトルと、取得した詳細特徴ベクトルと、を用いて、顔認証サーバ20から送信された詳細特徴ベクトルに対応する人物の認証を行う(ステップS12)。
顔認証サーバ20は、自動販売機10に向けて認証結果を送信する。具体的には、顔認証サーバ20は、自動販売機10から送信された詳細特徴ベクトルに対応する人物(認証対象の人物)が正当な権限を持つ場合(被認証者の証明を受理する場合)、認証結果として「認証成功」を送信する。
対して、顔認証サーバ20は、認証対象の人物が正当な権限を持たない場合(被認証者の証明を棄却する場合)、認証結果として「認証失敗」を送信する。なお、顔認証サーバ20は、少なくとも認証成功に係る認証結果を自動販売機10に送信する際には認証に成功した顧客のIDも合わせて送信する。
顔認証サーバ20から「認証成功」の認証結果を取得した場合、自動販売機10は、顔認証サーバ20により認証された顧客IDを指定しつつ、決済サーバ30に対して当該顧客による商品購入に関する決済処理を要求する(ステップS06)。
決済サーバ30は、決済情報(顧客ID、決済金額)を取得すると、指定されたIDの顧客に関する決済を実行し、その結果を自動販売機10に通知する(ステップS21)。
自動販売機10は、決済サーバ30から「決済は正常終了」に係る通知を受信した場合に、選択された商品を排出する(ステップS07)。その際、自動販売機10は、顔認証による決済は終了したので自装置の動作モードを「待機モード」に設定し、新たな顧客による商品購入に備える。
続いて、自動販売機決済システムをなす各装置の詳細について説明する。
[自動販売機の外観]
図4は、自動販売機10の概略の一例を示す図である。図4に示すように、自動販売機10には、商品サンプル11と商品を選択するための選択ボタン12が含まれる。顧客は、選択ボタン12を押下することで希望する商品の選択を行う。
自動販売機10は、複数種類の決済手段に対応している。具体的には、自動販売機10は、現金、ICカード及び顔認証による決済に対応している。なお、上記決済手段は例示であって、例えば、自動販売機10はICカードによる決済に対応していなくともよい。
現金による決済を希望する顧客は、希望する商品の代金以上の金額を現金投入口13から投入し、希望する商品が選択可能となった後に選択ボタン12を押下する。
一方、ICカードや顔認証による決済を希望する顧客は、希望する商品に対応する選択ボタン12を押下した後に、いずれかの手段により決済する。その際、自動販売機10は、ICカードによる支払いを希望するのか、顔認証による支払いを希望するのかを選択するための表示を行い、顧客の選択に応じた決済処理を行う。
具体的には、ICカードによる支払いを希望する場合には、顧客は、ICカードリーダ14にICカードを近づけ支払いを完了する。顔認証による支払いを希望する場合には、顧客は、特段の動作を行わず顔認証による決済が完了するのを待てば良い。但し、必要に応じて液晶パネル15(表示手段)に顔画像の取得に関する表示がなされるので、顧客は当該表示される指示に従って顔認証による決済を完了させる。
現金、ICカード及び顔認証のいずれかによる決済が正常に終了すると、排出口16から商品が排出される。
なお、図4には、商品サンプル11を陳列するタイプの自動販売機の外観を図示しているが、商品サンプルと対応する選択ボタンを液晶パネルで表示するタイプの自動販売機でもよいことは勿論である。
[自動販売機のハードウェア構成]
図5は、第1の実施形態に係る自動販売機10のハードウェア構成の一例を示す図である。自動販売機10は、図5に例示する構成を備える。例えば、自動販売機10は、内部バスにより相互に接続される、CPU(Central Processing Unit)21、メモリ22、表示モジュール23、カメラモジュール24、アンテナ25に接続された無線通信モジュール26等を備える。
なお、図5に示す構成は、自動販売機10のハードウェア構成を限定する趣旨ではない。自動販売機10は、図示しないハードウェアも含む。具体的には、図5には、自動販売機10が有する自動販売機としての機能を実現するためのハードウェア(商品を格納する格納手段、顧客が選択した商品を外部に排出する手段、商品購入代金を処理する手段等)が図示されていない。これらのハードウェアは既存の自動販売機にて用いられている手段を使用することができる。
自動販売機10は、無線通信モジュール26を介してネットワークにアクセスし、顔認証サーバ20、決済サーバ30と通信を行う。なお、自動販売機10は無線通信に変えて、イーサネット(登録商標)等の有線によりネットワークと接続されていてもよい。
メモリ22は、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)等である。
表示モジュール23は、液晶パネル15を含んで構成される。表示モジュール23は、CPU21から表示データを受け取り、当該表示データを用いて液晶パネル15を駆動することで、顧客に情報を提供する。また、表示モジュール23は、タッチパネル等の操作デバイスを含む。当該操作モジュールは、タッチパネル等による顧客の操作を検出し、その結果(例えば、顧客による押下座標)を操作データとしてCPU21に出力する。
なお、液晶パネル15とタッチパネルを一体として構成することにより、GUI(Graphical User Interface)を構築することができる。第1の実施形態に係る自動販売機10は、液晶パネル15とタッチパネルが一体して構成されているものとして説明を行う。
カメラモジュール24は、レンズ等の光学系の部品と、受光素子やメモリ等の電子系の部品と、を含んで構成される。カメラモジュール24は、所定の周期にて自動販売機10の周辺を撮影し、撮像データをCPU21に出力するように構成される。あるいは、CPU21がカメラモジュール24に指示を行うことで、定期的に撮像データを取得するようにしてもよい。なお、自動販売機10が有するカメラは、少なくとも商品を購入しようとする顧客の顔を含む正面が撮像できるように設置される。
後述する自動販売機10の各処理モジュールは、例えば、メモリ22に格納されたプログラムをCPU21が実行することで実現される。また、そのプログラムは、ネットワークを介してダウンロードするか、あるいは、プログラムを記憶した記憶媒体を用いて、更新することができる。さらに、上記処理モジュールは、半導体チップにより実現されてもよい。即ち、上記処理モジュールが行う機能を何らかのハードウェア、及び/又は、ソフトウェアで実行する手段があればよい。
[自動販売機の処理構成]
自動販売機10は、顔認証サーバ20に顔認証を要求し、顔認証サーバ20による認証が成功した顧客が購入する商品の決済を決済サーバ30に要求する機能を有する。自動販売機10は、当該機能を実現するため下記の処理モジュールを備える。
図6は、第1の実施形態に係る自動販売機10の処理構成の一例を示す図である。図6を参照すると、自動販売機10は、通信制御部301と、自動販売機制御部302と、決済制御部303と、顔画像抽出部304と、特徴ベクトル生成部305と、記憶部306と、を含んで構成される。
通信制御部301は、他の装置(顔認証サーバ20、決済サーバ30)との間の通信を制御する手段である。
自動販売機制御部302は、自動販売機としての機能を制御(実現)する手段である。例えば、自動販売機制御部302は、選択ボタン12の制御(ボタンの点灯、消滅)、ICカードによる決済、決済が完了した商品の排出等を実現する。
決済制御部303は、主に顧客の顔決済に係る自動販売機10の制御を行う手段である。具体的には、決済制御部303は、上述の3つの動作モード(待機モード、選択モード、認証モード)に関する状態遷移を管理する。
また、決済制御部303は、表示モジュール23を制御し、上述の決済選択画面等の表示を液晶パネル15に行って顧客にGUIを提供する。
さらに、決済制御部303は、レンズに映る状況を撮像して得られる画像データ(撮像データ)をカメラモジュール24から取得する。決済制御部303は、カメラモジュール24から画像データを取得すると、当該画像データを顔画像抽出部304に引き渡す。
顔画像抽出部304は、取得した画像データから顔画像(人の顔に相当する領域)を抽出する手段である。
例えば、特開2014-170979号公報(参考文献1)に開示されているように、顔画像抽出部304は、取得した画像データ(顔画像を含むデータ)と、顔画像のテンプレート画像と、を比較する。その後、顔画像抽出部304は、両者の差分が閾値以下であるか否かにより、取得した画像データにおける顔画像の存否を判定する。
取得した画像データに顔画像が存在する場合に、顔画像抽出部304は、当該顔画像の領域を切り出して顔画像を抽出する。
なお、顔画像の抽出には種々の方法が考えられ、上記内容に限定されないのは勿論である。例えば、色情報やエッジの方向や密度を組み合わせたモデルをあらかじめ記憶しておき、入力フレームからモデルに類似した領域が検出された場合に顔画像が存在すると判定し、顔画像を抽出することもできる。
さらに、顔(頭部)の輪郭は楕円、目や口は矩形形状をしていることを利用して作成したテンプレートを使用し、顔画像を抽出することも可能である。さらにまた、頬や額の部分は輝度が高く、目や口の部分の輝度は低いという輝度分布の特性を利用した顔検出手法や、顔の対称性や肌色領域と位置を利用して顔検出を行う手法等を用いてもよい。
あるいは、大量の顔と非顔の学習サンプルから得られた特徴量分布を統計的に学習し、入力画像から得られる特徴量が顔と非顔のどちらの分布に属するかを判定する手法を用いてもよい。即ち、ディープラーニングやサポートベクターマシン等の機械学習に係る技術を顔画像の抽出に用いてもよい。
顔画像抽出部304は、自動販売機10の動作モードに応じて顔画像抽出動作を切り替える。
動作モードが「待機モード」の場合には、顔画像抽出部304は、取得した画像データからなるべく多くの顔画像を抽出するように動作する。例えば、顔画像抽出部304は、上記参考文献1の技術を適用する際、顔画像の存否に利用する閾値を低く設定し、多くの画像が顔画像として抽出されるようにする。
より具体的には、顧客が自動販売機10に対して正対していない場合や、顧客が自動販売機10から離れた距離に位置し顔画像と想定される領域が小さい場合であっても、顔画像抽出部304は、画像データから顔画像の抽出を試みる。
例えば、顔画像抽出部304は、図7に示す画像データを取得したとする。この場合、顔画像抽出部304は、図7(a)及び図7(b)の画像データそれぞれから点線に囲まれた領域を顔画像として抽出する。つまり、図7(a)に示すような適切なサイズの顔画像だけではなく、図7(b)に示すような小さいサイズの顔画像も抽出される。
顔画像抽出部304は、顔画像の抽出に成功すると、当該抽出した顔画像を記憶部306に格納すると共に、決済制御部303に対してその旨(顔画像の抽出成功)を通知する。
決済制御部303は、「待機モード」時に顔画像抽出部304が少なくとも1つの顔画像を抽出した場合に、自装置前に顧客が存在すると判定し、動作モードを「選択モード」に設定する。このように、自動販売機10は、待機モード中に撮像した画像データに顔画像が含まれる場合に、自装置の周辺に顧客が存在すると判断する。
動作モードが「認証モード」の場合には、顔画像抽出部304は、所定の条件を満たす顔画像を抽出するように動作する。例えば、顔画像抽出部304は、商品を購入しようとする顧客の顔画像のサイズが所定の大きさよりも大きい場合に、上記所定の条件をみたすと判断する。より具体的には、顔画像抽出部304は、抽出された顔画像の面積(画像のサイズ)に対して閾値処理を施し、所定の面積以上の顔画像を抽出する。
例えば、顔画像抽出部304は、図8に示す2つの画像データを取得したとする。この場合、顔画像抽出部304は、図8(a)に示す顔画像は所定の面積以上であると判定し抽出する。一方、顔画像抽出部304は、図8(b)に示す顔画像は所定の面積よりも小さいと判定し抽出しない。顔画像抽出部304は、所定の条件を満たす顔画像の抽出に成功した場合には、当該抽出した顔画像を記憶部306に格納すると共に、その旨を決済制御部303に通知する。
また、顔画像を抽出したが、当該顔画像が所定の条件を満たさない場合には、顔画像抽出部304は、その旨を決済制御部303に通知する。例えば、顔画像抽出部304は、顔画像を抽出したが、その大きさが予め定めた大きさよりも小さい旨を通知する。
特徴ベクトル生成部305は、顔画像抽出部304が抽出した顔画像から特徴ベクトルを生成する手段である。特徴ベクトル生成部305は、自動販売機10の動作モードに応じて特徴ベクトル生成処理を切り替える。
より具体的には、動作モードが「選択モード」の場合には、特徴ベクトル生成部305は「概略特徴ベクトル」を生成する。動作モードが「認証モード」の場合には、特徴ベクトル生成部305は「詳細特徴ベクトル」を生成する。
なお、特徴ベクトル生成部305は、特徴ベクトルの生成にあたり顔画像の正規化を行う。顔画像抽出部304により抽出された顔画像は、画像データ取得時の環境や条件により、大きさやサイズが不統一である。特徴ベクトル生成部305は、顔画像が所定の大きさとなるように拡大・縮小処理を実行したり、輝度の平均化等を行ったりすることで画像の正規化を行う。
正規化後の顔画像には、例えば、図9に示すように、両眼の端点を特徴点とする特徴点A1、A2、口の両端点を特徴点する特徴点A3、A4、鼻頭を特徴点とする特徴点A5が含まれる。特徴ベクトル生成部305は、テンプレートマッチング等の手法を用いて顔画像からこれらの特徴点を抽出し、当該特徴点の座標(X座標、Y座標)を並べることで特徴ベクトルを生成できる。
その際、特徴ベクトル生成部305は、動作モードに応じて選択する特徴点を切り替える。例えば、特徴点A1~A5それぞれの座標は、図10のとおりであるとする。
動作モードが「選択モード」の場合には、特徴ベクトル生成部305は、両眼の端点(特徴点A1、A2)の位置(X座標、Y座標)を要素とする「概略特徴ベクトル」を生成する。この場合に生成される特徴ベクトルは下記の式(1)で表される4次元のベクトルである。
FV={X1、Y1、X2、Y2} ・・・(1)
動作モードが「認証モード」の場合には、特徴ベクトル生成部305は、上記5つの特徴点の位置を要素とする「詳細特徴ベクトル」を生成する。この場合に生成される特徴ベクトルは下記の式(2)で表される10次元のベクトルである。
FV={X1、Y1、X2、Y2、・・・、X5、Y5} ・・・(2)
なお、上記特徴ベクトル生成部305の動作は例示であって、2つの特徴ベクトルの生成は上記内容に限定されないことは勿論である。つまり、特徴ベクトル生成部305が生成する2つの特徴ベクトルは、上述した特徴(概略特徴ベクトルは低精度;詳細特徴ベクトルは高精度)を備えるものであればどのようなものであってもよい。
ここで、通常、次数が低い特徴ベクトルはその生成は早いが認証に用いた場合の精度が低く、次数が高い特徴ベクトルはその生成に長い時間を要するが認証に用いた場合の精度が高い。当該事実によれば、特徴ベクトル生成部305は、次数の高い特徴ベクトル(詳細特徴ベクトル)と次数の低い特徴ベクトル(詳細特徴ベクトルよりも次数の低い概略特徴ベクトル)の生成を動作モードにより切り替えているとも言える。
特徴ベクトル生成部305は、特徴ベクトルの生成処理が完了すると、当該特徴ベクトルを記憶部306に格納すると共に、特徴ベクトル生成処理が完了した旨を決済制御部303に通知する。決済制御部303は、生成された特徴ベクトルを顔認証サーバ20に向けて送信する。
次に、顔認証サーバ20について説明する。
[顔認証サーバのハードウェア構成]
図11は、第1の実施形態に係る顔認証サーバ20のハードウェア構成の一例を示す図である。顔認証サーバ20は、所謂、コンピュータであり、図11に例示する構成を備える。例えば、顔認証サーバ20は、CPU31、メモリ32に加え、入出力インターフェイス33及び通信手段であるNIC(Network Interface Card)34等を備える。
入出力インターフェイス33は、図示しない入出力装置のインターフェイスとなる手段である。入出力装置には、例えば、表示装置、操作デバイス等が含まれる。表示装置は、例えば、液晶ディスプレイ等である。操作デバイスは、例えば、キーボードやマウス等である。
後述する顔認証サーバ20の各処理モジュールは、自動販売機10と同様に、例えば、メモリ32に格納されたプログラムをCPU31が実行することで実現される。
[顔認証サーバの処理構成]
顔認証サーバ20は、顧客IDと、顧客IDに対応する人物の顔画像から生成された2つの特徴ベクトルと、を関連付けて記憶するデータベースにアクセスし、要求された人物の顔認証を行う機能を有する。顔認証サーバ20は、当該機能を実現するため下記の処理モジュールを備える。
図12は、第1の実施形態に係る顔認証サーバ20の処理構成の一例を示す図である。図12を参照すると、顔認証サーバ20は、通信制御部401と、記憶部402と、候補生成部403と、顔認証部404と、を含んで構成される。
通信制御部401は、他の装置(自動販売機10)との間の通信を制御する手段である。
記憶部402は、顧客IDと特徴ベクトルを関連付けて記憶する。例えば、記憶部402には、図13に示すようなデータベースが構築される。図13に示すように、顔認証サーバ20の内部データベースには、顧客IDと2種類の特徴ベクトル(絞込特徴ベクトル、認証特徴ベクトル)が関連付けられて格納(登録)される。
顔認証サーバ20に登録する2種類の特徴ベクトルの算出方法には、自動販売機10が算出する2つの特徴ベクトルと同様の手法を用いる。具体的には、自動販売機10が生成する「概略特徴ベクトル」と同様の方法(例えば、同じ箇所の特徴点)により「絞込特徴ベクトル」が生成され顔認証サーバ20の内部データベースに格納される。同様に、自動販売機10が生成する「詳細特徴ベクトル」と同様の方法により「認証特徴ベクトル」が生成され顔認証サーバ20の内部データベースに格納される。換言するならば、顔認証サーバ20の内部データベースには、自動販売機10が生成する2つの特徴ベクトルそれぞれと比較可能な特徴ベクトルが予め登録される。
候補生成部403は、上述の「顔認証候補」を生成する手段である。具体的には、候補生成部403は、「絞込要求」を自動販売機10から取得すると、内部データベースに格納された絞込特徴ベクトルそれぞれに関し、自動販売機10から取得した概略特徴ベクトルとの類似度を算出する。
例えば、候補生成部403は、2つの特徴ベクトル間のカイ二乗距離やユークリッド距離等を算出する。算出されたカイ二乗距離やユークリッド距離は、2つの特徴ベクトル(特徴ベクトルにより特徴付けられる2つの顔画像)間の類似度を示す指標となる。なお、2つの特徴ベクトルの類似度を示す指標は上記のユークリッド距離やカイ二乗距離に限定されない。類似度は、2つの特徴ベクトルの相関値(Correlation)等の指標であってもよい。
候補生成部403は、算出した類似度それぞれに対して閾値処理を実行し、所定の閾値よりも高い絞込特徴ベクトルを抽出する。この抽出された絞込特徴ベクトルに対応する顧客(顧客ID)が顔認証候補を構成するメンバとなる。なお、概略特徴ベクトル及び概略特徴ベクトルと同様の方法により算出された絞込特徴ベクトルは、通常、次数が低いので上記類似度の算出処理に要する時間は短い。
顔認証部404は、自動販売機10から送信される詳細特徴ベクトルを用いて顔認証を実行する手段である。具体的には、顔認証部404は、「認証要求」を自動販売機10から取得すると、先に算出された顔認証候補から得られる認証特徴ベクトルそれぞれに関し、自動販売機10から取得した詳細特徴ベクトルとの類似度を算出する。例えば、顔認証部404は、2つの特徴ベクトル間のカイ二乗距離やユークリッド距離等を算出する。
顔認証部404は、算出した類似度に対して閾値処理を実行し、所定の閾値よりも高い認証特徴ベクトルが存在するか否かを判定する。
判定の結果、所定の閾値よりも類似度の高い認証特徴ベクトルが存在すれば、顔認証部404は、自動販売機10から取得した詳細特徴ベクトルに対応する顧客を認証する(認証成功に設定する)。
判定の結果、所定の閾値よりも類似度の高い認証特徴ベクトルが存在しなければ、顔認証部404は、自動販売機10から取得した詳細特徴ベクトルに対応する顧客を認証しない(認証失敗に設定する)。認証結果は、通信制御部401を介して自動販売機10に送信される。
[決済サーバ]
決済サーバ30は、顔認証サーバ20と同様に情報処理装置(コンピュータ)により構成され、その機能の実現は当業者にとって明らかであるので、決済サーバ30に関する詳細な説明は省略する。
[システムの動作]
続いて、図面を参照しつつ、自動販売機決済システムの動作について説明する。
図14~図16は、第1の実施形態に係る自動販売機決済システムの動作の一例を示すシーケンス図である。
ステップS101において、自動販売機10は、自装置前に顧客が存在するか否かを判定する。具体的には、自動販売機10は、自装置に取り付けられたカメラによる画像データから少なくとも1つの顔画像を抽出できた場合に、自装置前に顧客が存在すると判定する。
顧客が存在しなければ(ステップS101、No分岐)、自動販売機10は上記判定処理を繰り返す。
顧客が存在すれば(ステップS101、Yes分岐)、自動販売機10は、画像データから「概略特徴ベクトル」を生成し、絞込要求と共に顔認証サーバ20に向けて送信する(ステップS102)。つまり、自動販売機10は、自装置周辺に存在する顧客を検出するのに応じて、検出した顧客の顔画像から顔認証サーバ20が保持する絞込特徴ベクトルに対応する概略特徴ベクトルを生成し、送信する。
顔認証サーバ20は、取得した「概略特徴ベクトル」と、内部データベースに格納された複数の「絞込特徴ベクトル」それぞれとの間の類似度を算出する(ステップS201)。
顔認証サーバ20は、算出した類似度に対して閾値処理を実行し、所定の類似度よりも高い「絞込特徴ベクトル」に対応する顧客IDを抽出することで、顔認証候補を生成する(ステップS202)。
このように、顔認証サーバ20は、内部データベースに記憶された絞込特徴ベクトルであって、取得した概略特徴ベクトルとの間の類似度が所定の閾値よりも高い絞込特徴ベクトルを抽出する。その後、顔認証サーバ20は、当該抽出された絞込特徴ベクトルに対応する顧客IDからなるリストを顔認証候補として生成する。
自動販売機10は、顧客が現金投入口13に現金を投入したか否かを検出する(ステップS103)。
現金が投入された場合(ステップS103、Yes分岐)、自動販売機10(自動販売機制御部302)は、顧客は現金による決済を希望していると判断し、現金による購入処理を行う(ステップS104)。
現金が投入されていない場合(ステップS103、No分岐)、自動販売機10は、顧客が商品を選択したか否かを判定する(ステップS105)。
商品が選択されていなければ(ステップS105、No分岐)、自動販売機10は、ステップS103に戻り、現金投入、商品選択に係る判定処理を繰り返す。
商品が選択されていれば(ステップS105、Yes分岐)、自動販売機10は、決済選択画面を液晶パネル15に表示する(ステップS106)。自動販売機10は、例えば、図17に示すような表示を行う。
なお、決済選択画面が表示されているにも関わらず、顧客が現金を現金投入口13に投入することも想定される。このような場合に備え、自動販売機10は、決済選択画面の表示中であっても現金が投入されたか否かを検出する(ステップS107)。
現金が投入された場合(ステップS107、Yes分岐)、自動販売機10は、ステップS104の現金による購入処理を行う。
現金が投入されなければ(ステップS107、No分岐)、自動販売機10は、顧客が選択した決済手段による決済処理を行う。
具体的には、ICカードが選択されれば(ステップS108、Yes分岐)、自動販売機10は、ICカードによる購入処理を行う(ステップS109)。
ICカードが選択されなければ(ステップS108、No分岐)、自動販売機10は、顔認証による決済が選択されたか否かを判定する(ステップS110)。
顔認証が選択されれば(ステップS110、Yes分岐)、自動販売機10は、ステップS111以降の処理を実行する。
顔認証が選択されなければ(ステップS110、No分岐)、自動販売機10は、ステップS107に戻り、顧客による決済手段選択に関する判定処理を繰り返す。
ステップS111以降の処理は、図15、図16を参照しつつ説明する。
顔決済が選択されると、自動販売機10は、自装置の動作モードを「認証モード」に設定する。
ステップS111において、自動販売機10は、画像データから顧客の顔画像を抽出する。その後、自動販売機10は、抽出した顔画像が所定の条件を満たすか否かを判定する(ステップS112)。具体的には、自動販売機10は、抽出した顔画像の面積が所定値よりも小さい場合などに、上記所定の条件を満たさないと判断する。
抽出した顔画像が所定条件を満たさない場合(ステップS112、No分岐)、自動販売機10は、「画像修正画面」を表示する(ステップS113)。画像修正画面とは、顧客を撮像した画像データから抽出した顔画像が上記所定の条件を満たすように、顧客に所定の動作を要望する(督促する)画面である。自動販売機10は、例えば、図18に示すような表示を行う。図18では、顔の大きさの目安となるガイドを表示している。
図18に示すような表示に接した顧客は、立ち位置を変更し、自身の顔と枠がほぼ一致した場合に、OKボタンを押すことになる。このように、図18に示すような画面に接した顧客は、顔認証による決済が一度失敗し、顔画像が再び取得されることを認識する。換言するならば、自動販売機10は、顧客を撮像した画像データから抽出した顔画像が所定の条件を満たさないと判断した場合に、顔認証による決済が失敗したことを表すメッセージと、顔画像の再撮像を知らせるメッセージとを含む画面を表示する。
顧客が画像修正画面の内容に従った後(例えば、上記OKボタンが押された後)、自動販売機10は、再び顔画像を抽出する(ステップS111に戻る)。
抽出した顔画像が所定条件を満たす場合(ステップS112、Yes分岐)、自動販売機10は、「詳細特徴ベクトル」を生成し、認証要求と共に顔認証サーバ20に向けて送信する(ステップS114)。このように、認証モード時の自動販売機10は、商品を購入しようとする顧客の顔画像から、先に顧客を検出するタイミングと異なるタイミングにおいて、詳細特徴ベクトルを生成し、顔認証サーバ20に送信する。
顔認証サーバ20は、取得した「詳細特徴ベクトル」と、顔認証候補から特定される複数の「認証特徴ベクトル」それぞれとの間の類似度を算出する(ステップS203)。
顔認証サーバ20は、算出した類似度に対して閾値処理を実行し、取得した「詳細特徴ベクトル」に対応する顧客の顔認証を行う(ステップS204)。
顔認証サーバ20は、認証結果(認証成功、認証失敗)を自動販売機10に送信する。その際、顔認証サーバ20は、認証に成功した場合には、成功した顧客IDも合わせて自動販売機10に送信する。このように、顔認証サーバ20は、詳細特徴ベクトルと、顔認証候補に含まれる顧客IDに対応する認証特徴ベクトルと、に基づき、商品を購入しようとする顧客の顔認証を行う。
自動販売機10は、顔認証サーバ20による認証結果を確認し、顧客の顔認証に成功したか否かを判定する(ステップS115)。
顔認証に成功した場合(ステップS115、Yes分岐)には、自動販売機10は、認証に成功した顧客のIDと決済金額を少なくとも含む決済情報を決済サーバ30に送信する(ステップS116)。
ステップS117以降の動作は、図16を参照して説明する。
決済情報を取得すると、決済サーバ30は、当該決済情報に基づいて決済の対象となる顧客を特定し、当該特定した顧客のカード情報等を用いて決済を行う(ステップS301)。その後、決済サーバ30は、決済結果(決済は正常終了、決済不可)を自動販売機10に向けて送信する。
自動販売機10は、決済サーバ30による決済結果を確認し、決済が正常に終了したか否かを判定する(ステップS117)。
決済が正常に終了した場合(ステップS117、Yes分岐)、自動販売機10は、排出口16から選択された商品を排出する(ステップS118)。
認証に失敗した場合(ステップS115、No分岐)や決済に失敗した場合(ステップS117、No分岐)には、自動販売機10は、ステップS119のエラー処理を実行する。
例えば、自動販売機10は、顔認証による決済が失敗した旨を液晶パネル15に表示し、他の決済手段の選択を顧客に促す。あるいは、自動販売機10は、顔認証による再試行(リトライ)を促す画面を液晶パネル15に表示する。その際、自動販売機10は、図18に示す枠(ガイド)と共に顔画像の撮像を知らせるメッセージを表示する。あるいは、自動販売機10は、図18に示すような画像修正画面に変えて(画像修正画面は表示せずに)、他の決済手段の選択を促すメッセージを含む画面を表示してもよい。
あるいは、自動販売機10は、他の決済手段による決済を促すために、ICカードリーダ14や現金投入口13の周りに配置したLED(Light Emitting Diode)を点灯してもよい。あるいは、自動販売機10は、新商品を紹介するような動画を再生しつつ、顧客の顔画像を撮像し、顔認証を再度実施してもよい。あるいは、自動販売機10は、商品やポイントが得られるゲームを顧客に提供しつつ、顔認証を再実施してもよい。
[第1の実施形態の変形例]
上記自動販売機決済システムの構成や動作は例示であって、下記の変形例があり得る。
[変形例1]
例えば、図14等のシーケンス図では、現金決済と、ICカード及び顔認証による決済と、に関する動作を分離している。つまり、現金が投入された場合には、顧客は現金による決済を希望するものと判断され、図17に示す決済選択画面には「現金」による支払いに関する選択肢が表示されていない。しかし、現金、ICカード及び顔認証による決済選択方法を統一することもできる。
例えば、図19に示すように、自動販売機10は、自装置前に顧客を検出すると、商品が選択されるか否かを検出し、選択された場合に、現金を選択肢として含む決済選択画面を表示してもよい(ステップS106a)。この場合、自動販売機10は、図20に示すような決済選択画面を表示する。自動販売機10は、現金が選択された場合(ステップS107a)に、現金による購入処理を実行する(ステップS104)。なお、図19において、図14に示す処理と同一の処理については同じ符号を付している。
[変形例2]
上記実施形態では、特徴ベクトル生成部305は、概略特徴ベクトルの生成と詳細特徴ベクトルの生成に同種の特徴量(例えば、特徴点の座標位置)を用いる場合を説明した。しかし、2つの特徴ベクトルをなす各要素は異なる種類の特徴量であってもよい。より具体的には、詳細特徴ベクトル及び認証特徴ベクトルのそれぞれは、概略特徴ベクトル及び絞込特徴ベクトルそれぞれに含まれる特徴量とは異なる種類の特徴量を要素として含んでもよい。
例えば、特開2015-097000号公報(参考文献2)の開示のように、顔画像から特徴点(例えば、目、鼻、口等の中心点や端点)を抽出し、特徴点近傍の濃淡値や特性(周期性、方向性、色分布等)を特徴量として扱い、特徴ベクトルの要素としてもよい。あるいは、特徴点の座標に加え、特徴点の座標から計算できる値(例えば、眉間の長さ)を詳細特徴ベクトル等の要素としてもよい。
このように、概略特徴ベクトル(絞込特徴ベクトル)と詳細特徴ベクトル(認証特徴ベクトル)に含まれる要素は、異なる種類の特徴量から算出されたものであってもよい。つまり、特徴ベクトル生成部305は、算出に多少の時間を要するが、認証に用いた場合に高い精度が期待できる特徴量を要素とする詳細特徴ベクトルを生成してもよい。このような詳細特徴ベクトルを用いることで、より高い認証精度が実現できる。
あるいは、特徴ベクトル生成部305は、概略特徴ベクトルに上記参考文献2に開示された特徴量等を追加して詳細特徴ベクトルを生成してもよい。つまり、特徴ベクトル生成部305は、概略特徴ベクトルを包含しつつ、概略特徴ベクトルの次数よりも高い次数を有する詳細特徴ベクトルを生成してもよい。
通常、次数が高い特徴ベクトルはその生成に長い時間を要するが認証に用いた場合の精度が高く、顔画像の特徴を漏れなく表現することができる。そのような詳細特徴ベクトルを用いることで、高い認証精度が得られる。
なお、概略特徴ベクトルを用いた認証では十分な精度が得られない可能性が高い。上述のように、概略特徴ベクトルは、小さい顔画像からも生成される。小さい顔画像には、顔の細部を特徴付ける特徴が含まれていない。また、特徴ベクトル生成部305の正規化処理により小さい顔画像が拡大されても当初から含まれていない特徴が現出するわけでもない。このような理由から、概略特徴ベクトルを用いた顔認証では十分高い精度は期待できない。
以上のように、第1の実施形態に係る自動販売機決済システムでは、自動販売機10が自装置前の顧客を認識すると即座に(商品選択前に)、当該認識した顧客の顔画像から概略特徴ベクトルを生成する。顔認証サーバ20は、当該概略特徴ベクトルを利用して、内部データベースに格納された膨大な顧客のなかから、自動販売機10の面前に存在する顧客と類似する特徴を持つ顧客を予め絞り込んでおく。つまり、顔認証サーバ20は、将来、発生するであろう顔認証の候補となる顧客のリストを「顔認証候補」として予め生成しておく。その後、顧客が商品を選択し顔認証による決済を希望した場合には、自動販売機10は、当該顧客の顔画像から詳細特徴ベクトルを生成する。顔認証サーバ20は、予め生成した顔認証候補に含まれる顧客を認証対象として扱い、詳細特徴ベクトルと認証特徴ベクトルを用いた正確な(精度の高い)顔認証を実現する。上記自動販売機決済システムの動作により、顔認証による迅速な決済が可能となる。
通常、顧客が商品を購入する際には、自動販売機10の面前に位置してから商品を選択するまでの間に多少の時間がある(タイムラグがある)。第1の実施形態に係る自動販売機決済システムでは、このタイムラグを利用し、面前の顧客に似た顔を持つ顧客を予め絞り込んでおく。当該絞込に利用する特徴ベクトル(概略特徴ベクトル、絞込特徴ベクトル)は次数が低いので、類似度生成処理や閾値処理の対象が多数であっても、これらの処理に要する時間は短時間であると言える。一方、実際に決済処理が必要となった場合には、高い認証精度が得られる特徴ベクトル(詳細特徴ベクトル、認証特徴ベクトル)を用いた顔認証が実行される。これら2つの特徴ベクトルは、次数が高く類似度生成処理や閾値処理に要する時間は長くなる。しかし、当該処理の対象となる顧客は顔認証サーバ20の内部データベースに格納された多数の顧客ではなく、既に絞込された顧客であるので、認証結果を得るまでの時間は短時間で済む。このようにして、第1の実施形態に係る自動販売機決済システムは、顔認証を用いた迅速な決済を提供できる。
また、第1の実施形態に係る自動販売機決済システムでは、顔認証に使用する顔画像を抽出する際に、当該抽出した顔画像が所定の条件を満たすか否かを判定している。つまり、自動販売機10は、所定の条件を満たす品質の良い顔画像を抽出し、当該顔画像から顔認証に用いる詳細特徴ベクトルを生成している。このようにして生成された詳細特徴ベクトルは、商品を購入しようとする顧客の顔に表れている特徴を漏れなく含み、高い認証精度が期待できる。このようにして、第1の実施形態に係る自動販売機決済システムは、精度の高い顔認証による決済を提供することもできる。
[第2の実施形態]
続いて、第2の実施形態について図面を参照して詳細に説明する。
第2の実施形態は、顧客が商品を選択してから認証を行うまでの時間をより短くする自動販売機決済システムについて説明する。
第1の実施形態では、待機モードにて撮像される顧客は1人であることを前提として説明したが、待機モードでは2以上の人物の顔画像が得られることがある。例えば、自動販売機10が食堂や工場等に設置された場合には、決まった時間(例えば、昼休み等)に自動販売機10の前に行列ができることが想定される。このような状況下にて、待機モードにて取得される画像データから2以上の顔画像が抽出された場合の自動販売機10の動作について説明する。
第2の実施形態に係る顔画像抽出部304は、待機モードにおいて1枚の画像データから複数の顔画像の存在を認めた場合、当該複数の顔画像それぞれを抽出し、記憶部306に格納する。例えば、図21に示すように1枚の画像データに2つの顔画像501、502が含まれる場合には、顔画像抽出部304は、当該2つの顔画像501、502を抽出し、記憶部306に格納する。
続いて、特徴ベクトル生成部305は、抽出された複数の顔画像それぞれについて、「概略特徴ベクトル」を生成する。決済制御部303は、生成された複数の概略特徴ベクトルをまとめて顔認証サーバ20に送信する。
第2の実施形態に係る顔認証サーバ20の候補生成部403は、取得した複数の概略特徴ベクトルそれぞれについて、顔認証候補の生成に係る処理を実行する。
その後、候補生成部403は、各概略特徴ベクトルから生成した顔認証候補を統合して、後の顔認証に用いる顔認証候補(最終的な顔認証候補)を生成する。例えば、図21の例では、候補生成部403は、顔画像501の概略特徴ベクトルを利用して第1の顔認証候補を生成し、顔画像502の概略特徴ベクトルを利用して第2の顔認証候補を生成する。
その後、候補生成部403は、第1及び第2の顔認証候補を統合することで、顔認証候補を生成する。例えば、候補生成部403は、顧客IDを要素とする各顔認証候補の和集合を生成することで、複数の顔認証候補を統合する。
ここで、1枚の画像データに2以上の顔画像が含まれたとしても、最終的に商品を購入するのは1人である。つまり、認証モードにて取得される顔画像は原則として1つであり、対応して生成される詳細特徴ベクトルも1つである。従って、顔認証サーバ20が複数の詳細特徴ベクトルを同時に取得することはなく、顔認証部404は、自動販売機10から1人の顔認証を依頼されることになる。
第2の実施形態に係る顔認証部404は、詳細特徴ベクトルを取得すると、第1の実施形態と同様に、顔認証を行う。即ち、顔認証サーバ20は、複数の顔画像それぞれから生成された概略特徴ベクトルに対応する複数の顔認証候補を生成し、当該生成された複数の顔認証候補を統合して顔認証に用いる顔認証候補を生成する。その後、顔認証サーバ20は、生成された顔認証候補(複数の顔認証候補が統合された顔認証候補)を用いて、顔認証を実行する。
例えば、上述の例では、図21に示す顔画像501の人物を認証する場合であっても、顔画像502の人物を認証する場合であっても、第1及び第2の顔認証候補が統合された新たな顔認証候補から得られる認証特徴ベクトルが用いられて顔認証が行われる。その結果、1枚の画像データに写る複数の人物のいずれかが、商品を購入したとしても迅速に認証処理を完了することができる。
例えば、図21の例において、顔画像501が抽出され、顔画像502が抽出されない(抽出しない)場合を考える。この場合、顔認証サーバ20にて、顔画像501に対応する顔認証候補は生成されるが、顔画像502に対応する顔認証候補は生成されない。このような状況下で、顔画像502に相当する人物が商品を選択したとすると、当該人物の詳細特徴ベクトルが顔認証サーバ20に送信される。しかし、顔画像502に対応する顔認証候補は未だ作成されていないので、顔認証サーバ20は「認証失敗」を自動販売機10に送信する。この場合、自動販売機10のリカバリー処理やエラー処理によって、顔画像502の人物の決済に関する処理が行われるが、決済完了までに多くの時間を要してしまう。
しかし、第2の実施形態によれば、複数の概略特徴ベクトルから顔認証候補が生成されるため、上記のような問題は生じない。例えば、上記の例では、顔画像502の人物が商品を選択しても、既に生成された顔認証候補には、当該人物と類似する特徴をもつ顧客が予め候補として抽出されているので、顔認証サーバ20は、当該人物を早期に認証できる。
なお、上記説明では、複数の顔認証候補を統合して新たな顔認証候補を生成する場合を説明したが、複数の顔認証候補を統合せずシステムを運用してもよい。つまり、候補生成部403は、複数の顔画像それぞれから生成された概略特徴ベクトルとの間の類似度が所定の閾値よりも高い絞込特徴ベクトルを抽出し、抽出された絞込特徴ベクトルに対応する顧客IDからなるリストを顔認証候補として複数生成してもよい。顔認証部404は、当該生成された複数の顔認証候補を顔認証に用いることができる。
また、顔認証サーバ20は、自動販売機10ごとに、顔認証候補と顔認証候補の生成に使用した概略特徴ベクトルを対応付ける生成済み候補リストを生成してもよい。顔認証サーバ20は、同じ自動販売機10から同じ概略特徴ベクトルを取得した場合には、内部データベースから絞込特徴ベクトルを抽出する処理を行わず、生成済み候補リストの顔認証候補を顔認証に用いることができる。
顔認証サーバ20は、自動販売機10のIDと取得した概略特徴ベクトルを確認し、同じ自動販売機10から同じ概略特徴ベクトルを取得した場合には、顔認証候補の生成を省略することができる。即ち、第2の実施形態に係る顔認証サーバ20は、顔認証候補の作成に係る処理を早期に終了できる。その結果、例えば、顧客が直ぐに商品を選択し、概略特徴ベクトルと詳細特徴ベクトルの間の送信間隔が短い場合であっても、顔認証候補生成に係る処理がボトルネックとなることを防止できる。
あるいは、顔認証サーバ20は、自動販売機10ごとに、顔認証に成功した絞込特徴ベクトルからなる認証成功リストを生成してもよい。顔認証サーバ20は、顔認証候補に優先して当該認証成功リストを参照して顔認証を行うことができる。
ある顧客が自動販売機10にて商品を購入し、顔認証に成功していれば、当該顧客の認証特徴ベクトルは自動販売機10のIDと共に認証成功リストに格納される。そして、同じ顧客が同じ自動販売機10にて商品を購入すれば、当該顧客の詳細特徴ベクトルと過去に認証に成功した認証特徴ベクトルと比較されるので、早期に「認証成功」に係る結果が得られる。即ち、顔認証サーバ20は、認証に成功した詳細特徴ベクトルを自動販売機10ごとにキャッシュする。すると、同じ顧客の詳細特徴ベクトルはキャッシュにヒットすることになるから、無駄な類似度算出が不要となる。
なお、認証に成功した詳細特徴ベクトルを数多く保持することは、顔認証候補を算出する意味を没却することになる。そこで、保持する(キャッシュする)詳細特徴ベクトルの数を制限する、あるいは、認証に成功した回数も合わせて対応付けて管理し、成功した回数の高い詳細特徴ベクトルを保持する等の対応が有効である。例えば、顔認証サーバ20は、認証成功リストにおいて顔認証に成功した回数を認証特徴ベクトルに対応付けて管理し、顔認証に成功した回数が所定の値よりも小さい認証特徴ベクトルを認証成功リストから削除する。
あるいは、顔認証サーバ20は、複数の自動販売機10をグループ分けし、同一のグループに属する自動販売機10に関する生成済み候補リスト、認証成功リストを共有してもよい。例えば、自動販売機10の位置(設置場所)にて自動販売機をグループ分けすることができる。より詳細には、所定範囲のエリアに存在する自動販売機10を1つのグループとして管理し、当該グループ内で生成済み候補リストや認証成功リストを共有する。
例えば、図22に示すように、ある自動販売機10からの顧客の認証に成功すれば、対応する顧客IDが認証成功リスト(グループごとに管理するリスト)に登録される。顔認証サーバ20は、上記自動販売機10と同じグループに属する他の自動販売機10から詳細特徴ベクトルを取得した場合には、認証成功リストに登録された顧客の認証特徴ベクトルに関する認証処理を優先的に行う。
このようにグループ間で情報共有することで、顔認証等の処理を高速化することができる。顧客の行動範囲は、職場や自宅の近辺であることも多い。そこで、自動販売機10の設置位置で自動販売機10をグループ化することで近い場所にある自動販売機10により生成された情報を共有し、認証処理等を高速化する。
以上、第2の実施形態によれば、自動販売機決済システムは、顔認証を用いたより一層迅速な決済を提供できる。
[第3の実施形態]
続いて、第3の実施形態について図面を参照して詳細に説明する。
第3の実施形態では、顧客の顔認証をより正確に行う自動販売機決済システムについて説明する。
第1の実施形態では、認証モードにおいて顔画像抽出部304は、所定の条件を満たす顔画像を抽出することを説明した。より具体的には、第1の実施形態では、上記所定の条件として顔画像の大きさを設定している。この所定の条件を変更すること、あるいは、条件を追加することで顔認証の精度をより向上させることができる。
例えば、自動販売機10の前に2人の顧客が立っている場合が想定できる。このような場合、自動販売機10は、いずれの顧客の顔画像を取得すればよいか判断できない。そこで、第3の実施形態に係る決済制御部303は、認証モードにて取得する画像データに2以上の顔画像が含まれる場合には、商品購入希望者だけが液晶パネル15に写るように顧客に促す画像修正画面を表示する。
自動販売機10は、例えば、図23に示すような表示を行う。このように、自動販売機10は、撮像した画像データから複数の顔画像を検出した場合には、所定の条件を満たさないと判断し、画像修正画面により1人の顧客が液晶パネル15に写るように促すことができる。自装置の前に立つ顧客が1人になることで、自動販売機10は、決済意志を持った顧客を正確に特定できるようになる。
第3の実施形態に係る顔画像抽出部304は、所定期間の間に得られる複数の画像データそれぞれに含まれる顔画像に変化がある場合に、所定の条件をみたすと判断してもよい。より具体的には、顔画像抽出部304は、複数の画像データから顔画像を抽出し、これら抽出した複数の顔画像にて変化を認めた場合に、顔画像を記憶部306に格納してもよい。顔画像抽出部304が確認する顔画像の変化には、例えば、位置のずれ、瞬き等が挙げられる。顔画像抽出部304は、これらの変化を検出することで、真に自装置の前に立つ「人」の存在を確認できる(人以外の情報により顔認証をしてしまうことを排除できる)。
以上のように、第3の実施形態に係る自動販売機10は、商品を購入しようとする顧客を撮像したデータから抽出した顔画像が所定の条件を満たすか否かを判定している。そして、自動販売機10は、当該顔画像が所定の条件を満たさない場合には、所定の条件を満たすように顧客に所定の動作を要望する画面を表示する。その結果、顔認証に適した顔画像及び詳細特徴ベクトルが得られるので、第3の実施形態に係る自動販売機決済システムは、より一層認証精度の高い顔認証による決済を提供できる。
[変形例]
第1乃至第3の実施形態にて説明した自動販売機決済システムの構成及び動作は例示であって、種々の変形が可能である。例えば、自動販売機決済システム及びその構成装置は、以下のような構成又は動作であってもよい。
上記実施形態では、カメラから撮像した画像データ(撮像データ)を用いて自動販売機10の周囲に人が存在するか否かを判定しているが、赤外線等を用いた人感センサにより当該人物の検出を行ってもよい。あるいは、自動販売機10は、人感センサにて物体を検出した後、画像データを用いて真に人が自装置の周辺に存在するか否かを判定してもよい。つまり、人感センサによる人の検出までは、カメラモジュール24の電源を切って自動販売機10の低消費電力化を実現してもよい。
上記実施形態では、自動販売機10は静止画を取得し、当該静止画から顔画像を抽出することを前提としている。しかし、カメラモジュール24は動画を取得し、当該動画から所定間隔でフレームを抜き出して画像データを取得してもよい。また、自動販売機10が取得する画像データのフォーマットやサイズに制限はなく、例えば、自動販売機10は、モノクロ画像を取得してもよいし、カラー画像を取得してもよい。
上記実施形態では、液晶パネル15が自動販売機10に組み込まれている構成を説明したが、液晶パネルを備えるタブレットと既存の自動販売機10を接続して自動販売機10の機能を実現してもよい。例えば、図24に示すように、タブレット17を自動販売機10aにマウントし、タブレット17のカメラ機能や通信機能を利用して上記実施形態にて説明した自動販売機10を実現してもよい。この場合、図6に示す自動販売機制御部302が既存の自動販売機10aのコントローラに相当し、決済制御部303がタブレット17のコントローラに相当する。2つのコントローラが連携(制御情報の送受信)することで、自動販売機10の機能を実現する。
上記実施形態では、1つのカメラモジュール24により撮像された画像を用いて2つの特徴ベクトル(概略特徴ベクトル、詳細特徴ベクトル)を生成する場合を説明した。しかし、生成する特徴ベクトル(自動販売機10の動作モード)に応じて使用するカメラモジュールを使い分けても良い。例えば、待機モード時の概略特徴ベクトルを生成する際には、自動販売機10の上部に据え付けられたカメラを使用し、認証モード時の詳細特徴ベクトルを生成する際には自動販売機10の中心に据え付けられたカメラを使用してもよい。
また、自動販売機10に取り付けたカメラの位置(例えば、上記のような自動販売機10の上部)と顧客の位置との関係によっては、顔画像が歪んでいることも考えられる。このような場合、特徴ベクトル生成部305は、アフィン変換等の幾何学的変換を適宜実行することで特徴ベクトルの算出に適した画像を取得してもよい。
上記実施形態では、顔認証サーバ20による認証結果は自動販売機10を経由して決済サーバ30に送信されているが、顔認証サーバ20から決済サーバ30に認証結果を送信してもよい。この場合、決済サーバ30は、自動販売機10に対して商品排出指示を行う。
さらに、各装置(自動販売機10、顔認証サーバ20、決済サーバ30)の間で送受信する情報は共通鍵暗号や公開鍵暗号等の暗号化方式により暗号化されていてもよいし、平文で送信されてもよい。但し、決済情報や特徴ベクトルは個人情報と捉える余地もあるので、装置間でやり取りする情報は暗号化されているのが望ましい。
上記実施形態では、自動販売機10が検出した人物は商品を購入することを前提として説明したが、実際には、商品を購入せず立ち去ってしまう人も存在する。そのような場合、顔認証サーバ20にて顔認証前に事前準備した「顔認証候補」は不要となる。そこで、自動販売機10は、概略特徴ベクトルを顔認証サーバ20に送信したが、商品の購入意思を示すことなく顧客が立ち去った場合は、送信した概略特徴ベクトルを指定して「顔認証候補」の削除指示を顔認証サーバ20に送信してもよい。不要な顔認証候補を削除することで、顔認証サーバ20のリソースを有効活用できる。
上記実施形態では、顔認証サーバ20には2種類の特徴ベクトルを登録することを説明したが、1つの特徴ベクトルで2種類の特徴ベクトルを表現することも可能である。例えば、認証特徴ベクトルの要素のうち一部の要素を絞込特徴ベクトルと扱えば、顔認証サーバ20に登録する特徴ベクトルを1つとすることができる。例えば、認証特徴ベクトルを10次元のベクトルとし、絞込特徴ベクトルを認証特徴ベクトルの先頭から4つの要素(4次元のベクトル)と決めれば、1つの特徴ベクトルには実質的に2つの特徴ベクトルが含まれることになる。
上記実施形態では、自動販売機10が特徴ベクトルを生成しているが、自動販売機10から顔認証サーバ20に顔画像(又は顔画像を含む画像データ)を送信してもよい。つまり、サーバ側にて顔画像抽出処理や特徴ベクトル生成処理を実行しても良い。但し、この場合には、自動販売機10と顔認証サーバ20間のネットワークにおける通信帯域が十分確保されている必要がある。
上記実施形態では、詳細特徴ベクトルの生成に使用する顔画像を抽出する際、所定の条件を満たさない場合には、画像修正画面を用いて顧客に立ち位置を変更してもらうようにしている。しかし、所定の条件を満たさない場合、自動販売機10は、所定の条件を満たすようにカメラ(レンズ)を制御してもよい。例えば、所定の条件に顔の面積が設定されていれば、自動販売機10は、レンズを移動する、あるいはズームする等の対応により顔画像が所定の条件を満たすようにしてもよい。
上述の説明で用いた複数のフローチャートでは、複数の工程(処理)が順番に記載されているが、各実施形態で実行される工程の実行順序は、その記載の順番に制限されない。各実施形態では、例えば各処理を並行して実行する等、図示される工程の順番を内容的に支障のない範囲で変更することができる。また、上述の各実施形態は、内容が相反しない範囲で組み合わせることができる。
なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。