図1は、本発明の実施形態にかかる情報処理システム1を示す。情報処理システム1は、ユーザ端末である情報処理装置10と、サーバ5とを備える。アクセスポイント(以下、「AP」とよぶ)8は、無線アクセスポイントおよびルータの機能を有し、情報処理装置10は、無線または有線経由でAP8に接続して、ネットワーク3上のサーバ5と通信可能に接続する。
補助記憶装置2は、HDD(ハードディスクドライブ)やフラッシュメモリなどの大容量記憶装置であり、USB(Universal Serial Bus)などによって情報処理装置10と接続する外部記憶装置であってよく、また内蔵型記憶装置であってもよい。出力装置4は、画像を出力するディスプレイおよび音声を出力するスピーカを有するテレビであってよく、またコンピュータディスプレイであってもよい。出力装置4は、情報処理装置10に有線ケーブルで接続されてよく、また無線接続されてもよい。
情報処理装置10は、ユーザが操作する入力装置6と無線または有線で接続し、入力装置6はユーザの操作結果を示す操作信号を情報処理装置10に出力する。情報処理装置10は、入力装置6からの操作信号を受け付けるとOS(システムソフトウェア)やアプリケーションの処理に反映し、出力装置4から処理結果を出力させる。入力装置6は複数のプッシュ式の操作ボタンや、アナログ量を入力できるアナログスティック、回動式ボタンなどの複数の入力部を有して構成される。
情報処理装置10は、入力装置6からの操作信号を受け付けるとアプリケーションの処理に反映し、出力装置4から処理結果を出力させる。情報処理システム1において情報処理装置10はゲームを実行するゲーム装置であり、入力装置6a、6b(以下、入力装置6と総称する場合がある)はゲームコントローラなど情報処理装置10に対してユーザの操作信号を提供する機器である。なお入力装置6は、キーボードやマウスなどの入力インタフェースであってもよい。撮像装置であるカメラ7は出力装置4の近傍に設けられ、出力装置4周辺の空間を撮像する。図1ではカメラ7が出力装置4の上部に取り付けられている例を示しているが、出力装置4の側部に配置されてもよく、いずれにしても出力装置4の前方に位置するユーザを撮像できる位置に配置される。カメラ7は、ステレオカメラであってもよい。
サーバ5は、情報処理システム1のユーザに対してネットワークサービスを提供する。サーバ5は、各ユーザを識別するネットワークアカウントを管理しており、各ユーザは、ネットワークアカウントを用いて、サーバ5が提供するネットワークサービスにサインインする。ユーザは情報処理装置10からネットワークサービスにサインインすることで、サーバ5に、ゲームのセーブデータや、またゲームプレイ中に獲得した仮想的な表彰品であるトロフィを登録できる。
図1では、2人のユーザA、Bが、ゲームコントローラである入力装置6a、6bを操作している様子が示されている。ユーザA、Bは、それぞれ入力装置6a、6bを操作してログイン用パスコードを入力し、情報処理装置10により認証された後、情報処理装置10のOSにログインすることで、ゲームなどのアプリケーションを楽しむことができる。
近年では、ユーザの動きをゲームキャラクタの動きに反映するゲームも登場している。ユーザのジェスチャーを利用したゲームでは、ユーザが入力装置6をもつ必要がなく、直観的にキャラクタを動かすことができる。このようなゲームでは、そもそもユーザが入力装置6を用いないため、ユーザが情報処理装置10のOSにログインする際にも、入力装置6を用いずにユーザ認証が行われることが好ましい。なおログイン後にユーザがプレイするゲームの種類に関わらず、簡易なユーザ認証を経てユーザがログインできることは、情報処理システム1において有意義である。
そこで本実施形態の情報処理システム1では、カメラ7の撮像画像を利用して、ユーザ認証を簡易に行うことのできる技術を提供する。
図2は、情報処理装置10の内部構成を示す。情報処理装置10は、メイン電源ボタン20、電源ON用LED21、スタンバイ用LED22、システムコントローラ24、クロック26、デバイスコントローラ30、メディアドライブ32、USBモジュール34、フラッシュメモリ36、無線通信モジュール38、有線通信モジュール40、サブシステム50およびメインシステム60を有して構成される。
メインシステム60は、メインCPU(Central Processing Unit)、主記憶装置であるメモリおよびメモリコントローラ、GPU(Graphics Processing Unit)などを備える。GPUはゲームプログラムの演算処理に主として利用される。これらの機能はシステムオンチップとして構成されて、1つのチップ上に形成されてよい。メインCPUはOSを起動し、OSが提供する環境下において、補助記憶装置2にインストールされたアプリケーションを実行する機能をもつ。
サブシステム50は、サブCPU、主記憶装置であるメモリおよびメモリコントローラなどを備え、GPUを備えない。サブCPUの回路ゲート数は、メインCPUの回路ゲート数よりも少なく、サブCPUの動作消費電力は、メインCPUの動作消費電力よりも少ない。上記したように、サブCPUは、メインCPUがスタンバイ状態にある間に動作するものであり、消費電力を低く抑えるべく、その処理機能を制限されている。なおサブCPUおよびメモリは、別個のチップに形成されてもよい。
メイン電源ボタン20は、ユーザからの操作入力が行われる入力部であって、情報処理装置10の筐体の前面に設けられ、情報処理装置10のメインシステム60への電源供給をオンまたはオフするために操作される。以下、メイン電源がオン状態にあるとは、メインシステム60がアクティブ状態にあることを意味し、メイン電源がオフ状態にあるとは、メインシステム60がスタンバイ状態にあることを意味する。電源ON用LED21は、メイン電源ボタン20がオンされたときに点灯し、スタンバイ用LED22は、メイン電源ボタン20がオフされたときに点灯する。
システムコントローラ24は、ユーザによるメイン電源ボタン20の押下を検出する。メイン電源がオフ状態にあるときにメイン電源ボタン20が押下されると、システムコントローラ24は、その押下操作を「オン指示」として取得し、一方で、メイン電源がオン状態にあるときにメイン電源ボタン20が押下されると、システムコントローラ24は、その押下操作を「オフ指示」として取得する。
メインCPUは補助記憶装置2やROM媒体44にインストールされているゲームプログラムを実行する機能をもつ一方で、サブCPUはそのような機能をもたない。しかしながらサブCPUは補助記憶装置2にアクセスする機能、サーバ5との間でデータを送受信する機能を有している。サブCPUは、このような制限された処理機能のみを有して構成されており、したがってメインCPUと比較して小さい消費電力で動作できる。これらのサブCPUの機能は、メインCPUがスタンバイ状態にある際に実行される。本実施形態の情報処理装置10は、メインシステム60のスタンバイ時にはサブシステム50が稼働しているため、サーバ5が提供するネットワークサービスに、常時サインインした状態を維持する。
クロック26はリアルタイムクロックであって、現在の日時情報を生成し、システムコントローラ24やサブシステム50およびメインシステム60に供給する。
デバイスコントローラ30は、サウスブリッジのようにデバイス間の情報の受け渡しを実行するLSI(Large-Scale Integrated Circuit)として構成される。図示のように、デバイスコントローラ30には、システムコントローラ24、メディアドライブ32、USBモジュール34、フラッシュメモリ36、無線通信モジュール38、有線通信モジュール40、サブシステム50およびメインシステム60などのデバイスが接続される。デバイスコントローラ30は、それぞれのデバイスの電気特性の違いやデータ転送速度の差を吸収し、データ転送のタイミングを制御する。
メディアドライブ32は、ゲームなどのアプリケーションソフトウェア、およびライセンス情報を記録したROM媒体44を装着して駆動し、ROM媒体44からプログラムやデータなどを読み出すドライブ装置である。ROM媒体44は、光ディスクや光磁気ディスク、ブルーレイディスクなどの読出専用の記録メディアである。
USBモジュール34は、外部機器とUSBケーブルで接続するモジュールである。USBモジュール34は補助記憶装置2およびカメラ7とUSBケーブルで接続してもよい。フラッシュメモリ36は、内部ストレージを構成する補助記憶装置である。無線通信モジュール38は、Bluetooth(登録商標)プロトコルやIEEE802.11プロトコルなどの通信プロトコルで、たとえば入力装置6と無線通信する。
なお無線通信モジュール38は、ITU(International Telecommunication Union;国際電気通信連合)によって定められたIMT−2000(International Mobile Telecommunication 2000)規格に準拠した第3世代(3rd Generation)デジタル携帯電話方式に対応してもよく、さらには別の世代のデジタル携帯電話方式に対応してもよい。有線通信モジュール40は、外部機器と有線通信し、たとえばAP8を介してネットワーク3に接続する。
本実施形態の情報処理システム1において、情報処理装置10が電源オフの状態で、ユーザがメイン電源ボタン20を押下すると、情報処理装置10はメイン電源をオンしてOS(システムソフトウェア)を起動し、ユーザのログイン処理を実行する。このログイン処理では、情報処理装置10が、カメラ7の撮像画像を利用した顔認証システムとして機能する。以下、情報処理装置10の動作について説明する。
図3は情報処理装置10の機能ブロック構成を示す。情報処理装置10は、入力受付部102、画像取得部104、ログイン制御部110、登録ユーザ情報保持部130、および顔識別用データ登録部150を備える。ログイン制御部110は、撮像画像表示部112、顔認証部114、顔枠処理部116およびログイン処理部120を有する。顔識別用データ登録部150は、データ生成部152および登録判定部154を有する。
入力受付部102は、ユーザからの操作情報を受け付け、画像取得部104は、カメラ7で撮像された撮像画像を取得しメモリに格納する。カメラ7は、所定の周期で空間画像を撮影し、たとえば1/30秒に1枚の空間画像を撮影して、撮像画像を画像取得部104に提供する。カメラ7は、その光軸を出力装置4の前方を向くように配置されており、したがってカメラ7は、出力装置4の前方に存在するユーザを撮影する。
図3および後述する図13において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、回路ブロック、メモリ、その他のLSIで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
本実施形態において撮像画像表示部112、顔枠処理部116、および顔識別用データ登録部150の機能は、顔認証アプリケーションにより実現され、顔認証部114の機能は、顔認識エンジンにより実現されて、メイン電源ボタン20が押下された際にOSにより自動起動される。なお顔認証アプリケーションおよび顔認識エンジンは、1つのアプリケーションとして構成されてもよい。
本実施形態の情報処理装置10は、ユーザの簡易なログイン動作を支援することを1つの特徴とする。ユーザは、情報処理装置10のOSにログインするために、ユーザアカウントを予め取得して、情報処理装置10に登録している必要がある。以下、ユーザアカウントを情報処理装置10に登録したユーザを、「登録ユーザ」とよぶ。
登録ユーザ情報保持部130は、登録ユーザに関する様々な情報を保持し、具体的には、ユーザアカウントに関連付けて、顔識別用データ、ユーザのオンラインID(ネットワーク上でのニックネーム)、ログイン用パスコードなどを、登録ユーザ情報として保持している。ここで顔識別用データは、登録ユーザの顔画像の特徴量データであるが、顔画像データそのものであってもよい。
顔識別用データは、顔認証部114による顔認識処理において比較対象とされるデータであり、顔認証部114が採用する顔認識アルゴリズムにしたがって、顔識別用データ登録部150が生成し、登録ユーザ情報保持部130に格納する。たとえば顔識別用データは、顔のパーツの相対位置や大きさ、目や鼻やほお骨やあごの形を特徴として抽出したデータであってよい。また顔識別用データは、顔画像の標準データからの差分データとして抽出したデータであってよい。また輝度ベクトルの分布などを表す統計量であってよい。どのような顔識別用データを抽出するかは、採用する顔認識アルゴリズムによって定まり、本実施形態では、顔認証部114が既知の顔認識アルゴリズムを採用している。
まず、登録ユーザ情報が登録ユーザ情報保持部130に格納された状態において、登録ユーザが情報処理装置10のOSにログインする際の処理について説明する。この例では、少なくともユーザA、Bがおり、ユーザAのオンラインIDが「HANAKO」、ユーザBのオンラインIDが「SACHIKO」であるとする。
ユーザが情報処理装置10のメイン電源ボタン20を押下すると、情報処理装置10のメイン電源がオンとなり、入力受付部102がメイン電源の押下情報を、ユーザからのログイン要求として受け付ける。入力受付部102がログイン要求を受け付けると、ログイン制御部110における各機能が実現される。ログイン制御部110は、ユーザの顔認識の結果に基づいて、ユーザのログインの許否を判定する機能をもつ。
入力受付部102が、メイン電源の押下に基づいたログイン要求を受け付けると、撮像画像表示部112が、画像取得部104が取得した撮像画像をメモリから読み出しディスプレイである出力装置4に表示する。これにより出力装置4には、カメラ7が撮影したライブ画像が表示されることになり、出力装置4の前方にいるユーザが、出力装置4に映し出される。
図4は、カメラ7によって撮影される空間の一例を示す。この撮影空間には、3人のユーザが存在している。図4においてユーザを取り囲む四角の枠はカメラ7の撮像範囲を表現している。カメラ7の撮像範囲は、出力装置4にてライブ画像として表示される範囲を規定するが、ライブ画像は、撮像画像の一部であってもよい。顔認証部114は、撮像画像において、人の顔と推定される部分を抜き出し、その部分の特徴量データを導出して、登録ユーザ情報保持部130に保持された顔識別用データと比較し、抜き出した顔が登録ユーザの顔であることを判定する。
具体的に顔認証部114は、抜き出したユーザの顔画像の特徴量データと、登録ユーザ情報保持部130に保持されている全ての登録ユーザの顔識別用データとの一致度を導出する。この一致度は数値表現され、たとえば100点満点中の何点という形で一致度が導出される。登録された顔画像の特徴量データとの一致度が90点を超えていれば、顔認証部114は、撮像されたユーザが、登録ユーザであることを判定するとともに、撮像されたユーザがどの登録ユーザであるかを特定する。
なお一致度が90点を超えるものが複数存在する場合には、顔認証部114は、撮像されたユーザが、最高点が導出された顔識別用データの登録ユーザであることを判定すればよい。なお、撮像画像から抜き出したユーザの顔画像の特徴量データと、全ての登録ユーザの顔識別用データとの一致度を導出した結果、一致度が90点を超えるものがなければ、顔認証部114は、撮像画像に含まれるユーザが、登録ユーザでないことを判定する。このように顔認証部114は、登録ユーザ情報保持部130に保持された顔識別用データを用いて、撮像画像に存在する登録ユーザの顔画像を検出する。この顔識別技術は、既知の技術を用いてよい。本実施例において、この処理は、第1段階の顔認証と位置づけられる。
図5は、顔認証部114による顔識別結果を示す。ここでは、左側のユーザがユーザAであること、右側のユーザがユーザBであること、真ん中のユーザが登録ユーザではないことが判定されている。顔認証部114は、ユーザA(オンラインID:HANAKO)の顔の撮像画像中の位置を示す顔領域200aと、ユーザB(オンラインID:SACHIKO)の顔の撮像画像中の位置を示す顔領域200bを設定し、顔領域200a、200bの位置座標および撮像された登録ユーザを特定する情報とを顔枠処理部116に提供する。以下、位置座標は、撮像画像をディスプレイに表示したときの2次元座標により表現される例を示すが、VRAM上に定義される座標であってもよく、いずれにしても顔領域200a、200b(以下、顔領域200と総称する場合がある)の座標および後述する顔枠の座標とが共通の座標系で表現されればよい。
各顔領域200は、撮像画像中の顔の輪郭に接する矩形領域として設定されてよいが、顔輪郭よりも若干広い矩形領域として設定されてもよい。なお、ここで顔の輪郭は、頭髪まで含む輪郭を意味しているが、たとえば顔認証部114の顔認識処理が頭髪を考慮しない場合には、頭髪を除いて顔の輪郭が設定されてもよい。撮像画像中のユーザの顔の大きさおよび形状により顔領域200の大きさおよび形状は定まり、したがってユーザごとに顔領域200の大きさおよび形状は異なり、また同じユーザであっても、カメラ7との距離に応じて顔領域200の大きさおよび形状は変化する。
顔認証部114から顔枠処理部116に提供される登録ユーザを特定する情報は、登録ユーザのユーザアカウントであってもよく、またオンラインIDであってもよい。顔認証部114は、顔領域200の位置座標と登録ユーザ特定情報とを対応付けて顔枠処理部116に提供し、すなわち図5に示す例では、顔領域200aとユーザAの特定情報の組合せと、顔領域200bとユーザBの特定情報の組合せとを顔枠処理部116に提供する。
顔枠処理部116は、顔認証部114により検出された登録ユーザに対して、出力装置4に顔枠を表示する。この顔枠は、登録ユーザがログインする際に、顔を動かして配置するために表示される。したがって登録ユーザは、出力装置4に表示された顔枠に自身の顔を入れることで、情報処理装置10にログインできるようになる。
図6は、出力装置4に表示される顔枠を含むログイン画面を示す。顔枠処理部116は、顔認証部114より提供される顔領域200a、200bの位置座標および撮像された登録ユーザを特定する情報をもとに、登録ユーザに対して顔枠210a、210b(以下、顔枠210と総称する場合がある)を表示する。ここではユーザAに対して顔枠210aを表示し、ユーザBに対して顔枠210bを表示している。このとき顔枠処理部116は、顔枠210aの近傍にユーザAのオンラインIDを表示し、顔枠210bの近傍にユーザBのオンラインIDを表示する。これによりユーザA、Bは、自身の顔認識が適切に行われたことを知ることができ、顔枠210a、210bに、顔を移動させるようにする。
なおユーザは、自身の顔の近傍に表示された顔枠210の近傍に、自身とは別のオンラインIDが表示されていれば、顔認識が適切に行われていないことを知ることができ、したがって、顔枠210に顔を入れる動作を行わない。第1段階の顔認証で登録ユーザを特定したときに導出した、当該ユーザの登録データと撮影された顔画像との一致度などの付加情報を、顔枠210の近傍にさらに表示していもよい。これによりユーザは、顔認識が適切に行われているか否かをより認識しやすくなる。
なお真ん中のユーザは登録ユーザではないため、顔枠210は表示されていない。ただし登録ユーザでなくとも人の顔と推定される領域の近傍に、登録ユーザと判定されなかった旨の表示を行ってもよい。例えば「unknown」や「未登録」といった文字情報を表示することにより、自分が未登録であったこと、あるいは登録済みの顔画像の特徴量データが適切でないことなどをユーザに気づかせることができる。ただしユーザの顔の向きや何らかの遮蔽物に起因して一時的に認証が不成功となることも考えられるため、不成功の状態が所定時間以上、継続したらそのような情報を表示するなど所定の規則を設けてもよい。
顔枠処理部116は、顔枠210のそれぞれにIDを付し、顔枠ID、顔枠210の位置座標および顔枠210を表示したユーザの特定情報とを顔認証部114に提供する。なお、顔枠処理部116が顔認証部114に提供する顔枠210の位置座標は、顔枠210そのものの位置座標であってもよいが、顔枠210に外接する矩形座標であってもよい。以下、顔枠210そのものの位置座標と、顔枠210に外接する矩形の位置座標を、まとめて顔枠の位置座標と呼ぶ。顔枠の位置座標は、顔認証部114において、ユーザの顔画像を検出するために利用される。
たとえば顔枠処理部116は、顔枠210aの顔枠IDを“ID1”、顔枠210bの顔枠IDを“ID2”と設定し、“ID1”と顔枠210aの位置座標とユーザAの特定情報との組合せと、“ID2”と顔枠210bの位置座標とユーザBの特定情報との組合せとを、顔認証部114に提供する。また顔枠処理部116は、顔枠IDおよび顔枠210を表示したユーザの特定情報を、ログイン処理部120に提供する。したがって、ここでは顔枠処理部116が、“ID1”とユーザAの特定情報の組合せと、“ID2”とユーザBの特定情報の組合せとを、ログイン処理部120に提供する。
図7は、ユーザが顔枠に顔を入れたログイン画面を示す。ここではユーザAが、出力装置4に表示されている顔枠210aに顔が入るように、顔や体を動かした様子を示している。顔認証部114は、顔枠210に人の顔が入っているか監視し、顔が入っている場合には、登録ユーザ情報保持部130に保持された顔識別用データを用いて、顔枠210内に入っている顔が登録ユーザのものであるか判定する。
顔認証部114は、顔枠処理部116から提供された顔枠210の位置座標をもとに、顔枠210に人の顔が入っているか監視することができる。顔認識アルゴリズムについては上記したとおりであり、顔認証部114は、顔枠210において、人の顔が含まれていることを推定すると、その部分の特徴量データを導出して、登録ユーザ情報保持部130に保持された顔識別用データと比較し、抜き出した顔が登録ユーザの顔であることを判定する。
なお顔認証部114は、顔枠処理部116から、顔枠ID、顔枠210の位置座標および顔枠210を表示したユーザの特定情報との組合せを通知されており、顔枠210に含まれた人の顔画像の特徴量データを、顔枠210を表示したユーザの顔識別用データと比較する。顔認証部114は、顔枠210に含まれるべきユーザを予め通知されていることで、顔枠210に含まれる顔の特徴量データを全ての登録ユーザの顔識別用データと比較する必要なく、効率的に顔認識処理を行うことができる。なお顔認証部114は、図5により説明した、第1段階の顔認証において撮像画像から抜き出したユーザの顔画像またはその特徴量データを一時的に保存しておき、それも比較対象に含めてもよい。詳細は後述する。
また顔認証部114は、顔枠210に登録ユーザの顔が所定時間(たとえば数秒)入っていることを検出することで、顔枠210に登録ユーザの顔が入れられたことを判定してもよい。結果として図7の例では、顔認証部114が、顔枠210aに入った顔がユーザAの顔であることを判定する。本実施例において、この処理は、第2段階の顔認証と位置づけられる。
第1段階と第2段階の顔認証により、ログイン時におけるユーザ認証が終了する。ユーザが顔枠210に顔を入れる行為は、ユーザがログインする意思に基づいて行われ、ユーザがログインを希望しない場合には、顔を顔枠210に入れなければよい。このように本実施例では、第1段階の顔認証により、ログインする可能性のある登録ユーザを検出し、第2段階の顔認証により、ログインする意思をもった登録ユーザを検出する。登録ユーザは、顔を顔枠210に入れるという簡易な動作を行うだけで、認証されることになり、ログイン時におけるユーザの作業負担を非常に小さくできる。
顔認証部114は、顔枠210aにユーザAの顔が入っていることを検出すると、顔枠210aを特定する顔枠IDと、ユーザAを特定するユーザ特定情報を、ログイン処理部120に通知する。既述したようにログイン処理部120は、予め顔枠処理部116から、顔枠IDおよび顔枠210を表示したユーザの特定情報を通知されている。ログイン処理部120は、顔認証部114から顔枠IDおよびユーザ特定情報を通知されると、顔枠処理部116から通知された顔枠IDに対応付けられたユーザ特定情報を抽出し、ユーザ特定情報同士の一致を判定する。ここでは、ID1の顔枠IDに対して、双方ともユーザAの特定情報が通知されており、したがってログイン処理部120は、ユーザA用に表示された顔枠210a内にユーザAの顔が検出されたことを認識する。これによりログイン処理部120は、ユーザAを情報処理装置10にログインさせる。
以上のように、本実施例では、ログイン制御部110が、2段階の顔認証によるユーザ認証を行った後、登録ユーザをログインさせる。たとえば第1段階の顔認証処理において、最初の撮影画像において人の顔を検出し、登録ユーザであるか否かの判定を行った後は、新たなユーザが撮影されない限り、顔認証処理を行わなくてもよい。なお、この場合は、検出した人の顔を撮影画像中で追跡処理し、常時、撮影画像における顔画像の位置座標を顔枠処理部116に提供する。なお顔認証を所定の周期で実行し、顔認証を行わない時間帯は、検出した人の顔を追跡処理するようにしてもよい。
第1段階の顔認証と第2段階の顔認証は並行して、異なる周期で実行してもよい。例えば第1段階の顔認証を1秒周期、第2段階の顔認証を1/60秒周期で並列に動作させる。これにより一度に多数のユーザが存在する場合は特に、2段階の顔認証を一人ずつ行うよりログイン処理を高速化できる。上記のように第1段階の顔認証の動作周期を長く、第2段階の顔認証の動作周期を短くすることにより、処理の負荷を抑えつつ、第1段階から第2段階への移行を即座に行える。
また第2段階の顔認証処理により1人の登録ユーザがログインした後は、まだログインしていない登録ユーザが撮影されていれば、その登録ユーザがログインするまで、ログイン画面が表示され続けてもよい。このとき、顔枠処理部116は、ログインしたユーザに対して表示していた顔枠210を、出力装置4から消すことが好ましい。なお、この顔認証によりログインできる登録ユーザは1人という限定がある場合には、1人の登録ユーザのログイン後、情報処理装置10のOSが提供するホーム画面等に遷移してもよい。
なお、ログイン画面において顔枠210が表示された後、所定時間、顔認証部114が、顔枠210内に顔を検出できない場合には、顔認識によるログイン処理が終了して、入力装置6を用いたログイン処理に移行してもよい。またユーザが顔認識によるログイン処理を望まない場合には、たとえば入力装置6を用いて、顔認識によるログイン処理を終了させて、入力装置6を用いたログイン処理に移行してもよい。
次に、上述したように第1段階の顔認証において取得した顔画像を第2段階の顔認証に利用する場合の情報処理装置10の動作について説明する。図8は情報処理装置10の主にログイン制御部110が、第1段階、第2段階の顔認証によりログインの許否を判定する処理手順を示すフローチャートである。まず顔認証部114は、上述したように撮影画像において人の顔と推定される部分を抜き出し、登録ユーザ情報保持部130に保持された顔識別用データと比較することにより、抜き出した顔が登録ユーザの顔であることを判定する(S10)。
顔が検出されなかったり、登録ユーザの顔でなかったりしている期間、すなわち第1段階の顔認証が成功していない間は、所定の時間間隔で顔検出および判定処理を繰り返す(S10のN)。登録ユーザの顔であることが判定され第1段階の顔認証が成功したら(S10のY)、顔認証部114は、このとき撮影画像から抜き出した顔領域の画像、またはその特徴量データを、対応する登録ユーザの特定情報と対応づけて内部のメモリ等(図示せず)に一時保存する(S12)。そして上述したように、顔領域の位置座標および登録ユーザの特定情報を顔枠処理部116に通知する。
これにより顔枠処理部116は、図6で示したように出力装置4に顔枠やオンラインIDを表示する(S14)。これとともに顔枠処理部116は、顔枠ID、顔枠の位置座標および対応する登録ユーザの特定情報を顔認証部114に通知する。これに応じ顔認証部114は、顔枠あるいはその周囲を含む所定範囲内に人の顔が入るまで監視する(S16のN)。当該範囲内に人の顔が入ったことが検出できたら(S16のY)当該顔領域の特徴量のデータを導出する。そして登録ユーザ情報保持部130に保持された顔識別用データ(以下、「長期保存データ」と呼ぶ場合がある)、および第1段階の顔認証で撮影画像から抜き出しS12で一時保存した、顔領域の特徴量のデータ(以下、「短期保存データ」と呼ぶ場合がある)の双方と比較することにより2重の判定を行う(S18)。
具体的には、顔枠内の顔の特徴量のデータをまず長期保存データと比較し、それらが不一致であることが判定されたら、次に短期保存データと比較してみる。この比較で両者が同一人物の顔であることが判定されたら、第1段階の顔認証で特定された登録ユーザの顔であると判定された、と結論づける。すなわち長期保存データによる認証の不成功を成功に変更する。
例えば長期保存データでの認証成功率が8割であった場合、同じ認証処理を2度行うことにより認証成功率は6割程度となってしまう。顔を傾けることにより頬のふくらみなどが変化する場合はさらに成功率が低くなる可能性がある。この場合、第1段階の顔認証で自分の顔であることが認証されたのにも関わらず、第2段階の顔認証が成功せずログインできない、という事態が発生し、ユーザにストレスを与えることが考えられる。上記構成により、直前に撮影された画像を利用して認証成功率を上げることができる。
本実施の形態において第2段階の顔認証は、ユーザにログインする意思があるか否かを確認する意味合いが強く、登録ユーザの検出自体は第1段階の顔認証が主に担っている。第2段階の顔認証を上記のように2重に行い、認定基準を緩めることにより、このような意味合いの差と整合性のとれた認証を実現できる。また第1段階の顔認証時の画像を利用することにより、ユーザにかかる手間を増やすことなく上記効果を得ることができる。
なお長期保存データによる認証と短期保存データによる認証の順序や、判定結果の導出規則は上述したものに限らない。両者の認証を同時に行いそれぞれの結果を表すスコアを統合してもよいし、短期保存データによる認証を先にしてもよい。また上述は、認定基準を緩めて認証成功率を上げるために、両者の成功事象の和集合を最終的な成功事象と判定したが、目的によっては、認定基準を厳しくするようにしてもよい。つまり長期保存データによる認証と短期保存データによる認証の成功事象の積集合を最終的な成功事象としてもよい。いずれにしろ取得タイミングの異なる2種類の顔識別用データを利用することにより、多角的な認証が可能となる。
次に、顔識別用データ登録部150が、登録ユーザ情報保持部130に顔識別用データ(上記の「長期保存データ」)を格納する処理について説明する。顔識別用データ登録部150のデータ生成部152は、顔識別用データの格納が必要な段階で、画像取得部104が取得した撮影画像のデータをメモリより読み出し、当該画像において人の顔と推定される部分を抜き出して特徴量データを導出する。
ここで顔識別用データの格納が必要な段階とは、典型的にはユーザが新規にユーザ登録を望む場合である。この場合、入力受付部102は、入力装置6を介してユーザ登録の開始要求をユーザより受け付けたら、その旨を顔識別用データ登録部150に通知する。一方、カメラ7は当該ユーザの顔の撮影を開始し、顔識別用データ登録部150は、画像取得部104が取得した当該画像のデータをメモリから読み出す。そして上記のとおり顔の領域を抜き出して特徴量データを導出するとともに、ユーザが入力して入力受付部102が受け付けた新規のオンラインIDや装置が付与するアカウントなどのユーザ特定情報と対応づけて登録ユーザ情報保持部130に格納する。
ここで格納する顔識別用データは、上述のとおり顔認証部114が採用する顔認識アルゴリズムによって異なり、特徴量データであってもよいし顔画像のデータ自体であってもよい。顔認識アルゴリズムの1つとして、撮影された顔画像とあらかじめ登録された顔画像との差分画像、および事前に取得しておいた差分画像群の固有空間との距離に基づき一致度を算出する手法がある(例えば特開2002−157596号公報参照)。この技術に限らず、認証時に撮影した画像と登録画像とをブロックマッチングしたり、共分散行列などの統計量によって画像の輝度分布ベクトルに基づき確率密度を求めたり、といった画素値集合に基づく認証においては、登録データの元となる顔画像が認証精度に影響しやすい。
例えば日中、窓から入射した自然光のもとで撮影した画像と、夜間に室内照明のもとで撮影した画像では、全体的な輝度や、顔にあたる光の角度が大きく異なることが考えられる。これらの画像を比較した場合、同じ照明環境のもとで撮影した画像同士を比較するのに比べ、一致度の導出精度、ひいては認証精度が低くなりやすい。このような照明環境の変化は、時間帯、天気、カーテンの開閉、どの照明を点灯しているか、といった様々な要因で生じる。照明環境のみならず、顔の向き、眼鏡や帽子の着脱、髪の毛の長さや髪型、髭を剃っているかどうか、日焼け前か後か、といった様々な状況の変化によって、認証精度が変化し得る。
そのため、統計的に認証する場合はその学習段階でできるだけ多くの状態の画像から統計量を算出し、各登録画像とブロックマッチングする場合はできるだけ多くの状態の登録画像を格納しておくことが望ましい。しかし実際にはユーザ自身がそのような状態を自ら作り出すのには限界があるため、データ生成部152は、登録時に撮影したユーザの顔画像に所定の加工処理を施すことにより、ユーザの負担を少なく、認証精度を向上させる。
図9はデータ生成部152が撮影画像から顔識別用データを生成する手順を模式的に示している。まずデータ生成部152は、顔識別用データの格納が必要な段階で、カメラ7が撮影した画像から顔領域を表す画像300を抽出する。この処理は顔認証部114が行う顔検出の処理と同様でよい。そして当該顔領域の画像300に対し所定の加工を施すことにより加工後画像302a、302b、302cを生成する。ここで行う加工の内容は、あらかじめデータ生成部152内部に設定しておく。
同図の場合、加工後画像302aは元の画像300の目の領域に所定の歪みフィルタを適用した笑顔の画像である。平均顔の笑顔の画像とのモーフィングにより作成してもよい。加工後画像302bは、元の画像300に眼鏡の画像を重畳して合成した画像である。加工後画像302cは、顔の右半分が影になっているように部分的に輝度を下げた画像である。この場合、さらに所定の光の入射角度を想定し、鼻など顔の凹凸を加味しつつ影ができる範囲を、輝度を下げる領域として算出してもよい。このとき光の入射角度を変化させて複数のパターンで影をつけてもよい。影をつけるばかりでなく、光が当たっている部分の輝度を上げるようにしてもよい。
加工はそのほか、全体的に輝度を変化させる、アフィン変換によって顔の向き(ヨー/ピッチ/ロール方向の回転角のいずれかまたはその組み合わせ)を変化させる、口髭、頬髭、顎髭などの髭画像を合成する、種々の髪型の頭髪画像を合成する、帽子やマスクなど装着品の画像を合成する、前髪や髭の領域を削除して肌色にする、モーフィングなどにより頬、口、眉毛などの顔のパーツの形状を変形させる、肌の色を濃くしたり薄くしたりする、といったことが考えられる。
さらに、カメラ7によって複数方向からユーザを撮影することにより複数の向き(ヨー/ピッチ/ロール方向の回転角のいずれかまたはその組み合わせ)の顔の撮影画像を取得し、その中間の向きの顔画像を加工後画像として生成してもよい。たとえば正面と横向きの顔の撮影画像から、その中間の方向、すなわち斜め向きの顔の加工後画像を生成する。ここで「中間の方向」とは、撮影した複数の方向の間の任意の方向でよく、その数も限定されない。加工には、複数の画像から補間画像を生成する一般的な技術を適用してよい。
そのほか、一般的な画像加工技術による顔の加工のいずれを採用してもよい。各登録画像と個別に比較する場合は、複数種類の加工を組み合わせて1つの加工後画像を作成してもよい。データ生成部152は、元の顔領域の画像300と、加工後画像302a、302b、302cを用いて顔識別用データ304を生成し、登録ユーザ情報保持部130に格納する。上述のとおり認証に用いるアルゴリズムによって、各画像またはその一部の画像のデータをそのまま個別に格納してもよいし、全ての画像を統計処理して得られたデータを格納してもよい。これにより1人の登録ユーザに対し、想定される多くの状態を加味した認証を実現でき、どのような状態であっても登録し直す手間なく安定的なログインが可能となる。
上述では顔識別用データの格納が必要な段階として、ユーザが新規登録を要求した場合を例示した。本実施の形態ではさらに別の機会を設けることにより顔識別用データの更新頻度を増やし、認証処理の精度を維持する。そのため顔識別用データ登録部150の登録判定部154は、顔識別用データを新たに格納する(登録する)タイミングを判定する。具体的には、新規登録や追加登録など、ユーザがその旨の要求をしたときを顔識別用データを登録するタイミングとする。さらに、第1段階の認証が成功したとき、および第2段階の認証が成功したときに、その時点で撮影し検出された顔画像が所定の条件を満たしたら、当該顔画像を登録するタイミングと判定する。
登録するタイミングと判定したら、登録判定部154がデータ生成部152にその旨を通知することにより、データ生成部152が、生成した顔識別用データを登録ユーザ情報保持部130に格納する。なおデータ生成部152は、上述した画像加工を、どのタイミングでも常時行ってもよいし、タイミングによっては行わなくてもよい。例えば登録判定部154は、認証時に検出された顔画像に基づき顔識別用データを登録するか否かを判定する際、画像加工を行うか否かも同時に判定し、データ生成部152に通知してもよい。
図10、図11は顔識別用データ登録部150が、登録すべきタイミングを判定しながら顔識別用データを登録する処理手順を示すフローチャートである。まず図10において、ユーザが新規登録を要求する入力を行ったら(S20のY)、データ生成部152は上述のとおり、画像取得部104が取得した撮影画像のデータを読み出して顔領域の画像を抽出し、適宜加工を行うなどして顔識別用データを生成する。登録判定部154は新規登録要求は全て登録すべきタイミングと判定するため、データ生成部152は生成したデータを登録ユーザ情報保持部130に格納する(S22)。
すでに新規登録を済ませた登録ユーザが、別の機会に、自分の顔を追加登録したい旨の入力を行ったら(S20のN、S24のY)、カメラ7は当該ユーザの撮影を開始し、データ生成部152は、画像取得部104が取得した撮影画像のデータを読み出す。そして顔領域を抜き出したうえ、当該領域の特徴量データを導出する(S26)。追加登録は例えば、前の登録からある程度時間が経過したり、ユーザの状態が変化したりしてユーザ自身が登録の必要性を自覚した場合に発生し得る。
すると登録判定部154は、ユーザが入力したオンラインIDなどに基づき、登録済みの顔識別用データを登録ユーザ情報保持部130から読み出し、データ生成部152が導出した特徴量データと比較する(S28)。この特徴量データの生成と顔識別用データとの比較は、認証処理時に顔認証部114が行う処理と基本的には同じである。したがってこれらの処理を顔認証部114に行わせ、データ生成部152は特徴量データを取得するのみ、登録判定部154はその比較結果を取得するのみとしてもよい。
そして登録判定部154は、比較結果があらかじめ設定された第1条件を満たすとき、このとき撮影された顔画像を登録すべきタイミングと判定し、データ生成部152に通知する(S28のY)。これによりデータ生成部152は、S26で生成した特徴量データを、登録ユーザ情報保持部130において該当ユーザに対応づけられた顔識別用データに追加する(S30)。ここで第1条件とは、撮影画像から抜き出した顔画像の特徴量データと、対応するユーザの登録済みの顔識別用データとの一致度に対し設定する。例えば一致度が低すぎる場合、別人のなりすましであったりオンラインIDの誤入力であったりすることが考えられるため新たな登録は行わない。
逆に一致度が高すぎる場合、同様のデータを再度登録しても認証精度に何ら貢献しないと考えられるため新たな登録は行わない。したがって、一致度S(0≦S≦100点)に対し、第1条件としてs1≦S≦s1’(s1<s1’)といった条件を設定する。ただしこの形式に限定される主旨ではなく、一致率Sに対し下限s1、上限s1’のいずれか一方のみを設定してもよい。S28で比較結果が第1条件を満たさない場合は、ユーザにその旨を通知するための画像を表示するなどして登録を行わずに終了する(S28のN)。
図11はすでに登録を済ませたユーザが実際にログインするタイミングを利用して、必要に応じて自動で新たな顔識別用データを登録する際の処理手順を示している。この場合、顔識別用データ登録部150は、ログイン制御部110から必要なデータを取得し、それに基づき、新たな登録の是非を判定したうえ登録処理を実行する。
まずログイン制御部110の顔認証部114は、第1段階の顔認証が成功したら(S40のY)、当該顔認証時に撮影画像から抜き出した顔画像の特徴量データと、それに対して特定された登録ユーザのオンラインID、および認証結果として導出した、当該登録ユーザの顔識別用データとの一致度を、顔識別用データ登録部150に供給する(S42)。このとき、特定された登録ユーザの顔識別用データとの一致度に加え、他のユーザの顔識別用データとの一致度も供給してよい。
すると登録判定部154は、当該一致度があらかじめ設定された第2条件を満たすか否かを判定する(S44)。第2条件を満たすとき、S40で認証に用いられた顔画像を登録すべきタイミングと判定し、データ生成部152に通知する(S44のY)。これによりデータ生成部152はS42で取得した特徴量データを、登録ユーザ情報保持部130において該当ユーザに対応づけられた顔識別用データに追加する(S46)。第2条件を満たさない場合は登録を行わない(S44のN)。
続いてログイン制御部110の顔認証部114は、第2段階の顔認証が成功したら(S48のY)、顔枠内の顔画像の特徴量データと、それに対して特定された登録ユーザのオンラインID、および顔識別用データとの一致度を、顔識別用データ登録部150に供給する(S50)。このとき、特定された登録ユーザの顔識別用データとの一致度に加え、他のユーザの顔識別用データとの一致度も供給してよい。すると登録判定部154は、当該一致度があらかじめ設定された第3条件を満たすか否かを判定する(S52)。
第3条件を満たすとき、S48で認証に用いられた顔画像を登録すべきタイミングと判定し、データ生成部152に通知する(S52のY)。これによりデータ生成部152はS50で取得した特徴量データを、登録ユーザ情報保持部130において該当ユーザに対応づけられた顔識別用データに追加する(S54)。第3条件を満たさない場合は登録を行わない(S52のN)。当然、第1段階または第2段階の顔認証が成功しなかった場合も登録は行わない(S40のN、S48のN)。
S44で用いる第2条件、S52で用いる第3条件は、定性的には図10を参照して説明した第1条件と同様の方針で設定する。例えば顔認証部114による顔認証において最も一致度が高いなどとして特定された登録ユーザの顔識別用データとの一致度Sに対し、第2条件としてs2≦S≦s2’(s2<s2’)、第3条件としてs3≦S≦s3’(s3<s3’)といった条件を設定する。さらに、他のユーザi(0<i≦n、nは他のユーザの人数)の顔識別用データとの一致度Miに対し、第2条件としてMi≦m2、第3条件としてMi≦m3といった条件を設定する。
一致度SおよびMiに対する全条件が満たされたとき、第2条件、第3条件が満たされたと判定する。他のユーザの顔識別用データとの一致度Miが高いということは、特定されたユーザの顔に類似している一方、他のユーザの顔にもある程度類似している顔画像であると考えられる。このような画像を登録すると、認証時に当該他のユーザとの混同を招きやすくなるため、Miに上限を設けることで登録対象から除外する。また好適には、ユーザ自身の顔識別用データとの一致度Sに対するしきい値は、第1条件、第2条件、第3条件でそれぞれ独立に設定する。他のユーザの顔識別用データとの一致度Miに対するしきい値も、第2条件、第3条件でそれぞれ独立に設定する。
例えば、ユーザが自ら追加登録を希望した場合、ユーザが入力したオンラインIDに基づき追加対象の顔識別用データを決定するため、撮影された顔画像と追加対象との対応は正確である可能性が他のタイミングより高い。またユーザ自身が要求していることからも、登録される割合が高くなるようにすることが望ましい。したがって登録すべきタイミングとする一致度Sの範囲が最も広くなるようにしきい値を設定する。
第1段階および第2段階の顔認証時の登録はいずれも、装置が自動で行うが、第2段階の顔認証は、顔画像とオンラインIDとの対応が正しいことを、ユーザ自身が顔枠に顔を入れることにより表明しているため、第1段階と比較し、顔画像とユーザの対応の確度が高い。したがって登録すべきタイミングとする一致度S、Miの範囲を第1段階より広げる。このような構成により、顔識別用データを登録する機会をユーザの負担を少なく最大化でき、常に最新の情報に基づき認証を行える。結果として、上記の照明環境など比較的短期間での状況の変化に加え、成長や加齢による顔の変化など長期的な変化に対しても頑健性のある認証処理を実現できる。
またユーザの意思や入力情報の確度などに応じて登録の是非を決定づける条件を変化させることにより、誤登録や無駄な登録の頻度を抑えることができる。なお顔画像のデータまたはその一部のデータを顔識別用データとして格納している場合、新たに顔識別用データを登録するのと並行して、対応するユーザの登録済みの顔識別用データの一部を削除するようにしてもよい。例えば最も古いデータや、同じユーザのデータであっても過去の認証処理の履歴において一致度が他より小さかったデータ、認証の成功に用いられた(撮影画像との一致度がしきい値より高いと判定された、または認証が成功した際、一致度が最も高かった)時期が他より古いデータなどを優先的に削除する。
後者の場合、対応するユーザがログインを行う都度、その認証において各顔識別用データに対し算出された一致度を記憶しておき、その一致度履歴の平均値が低い順に顔識別用データを削除していく。これにより、登録ユーザ情報保持部130の容量を節約できるとともに、ブロックマッチングによる認証など、同一ユーザの複数の顔識別用データを撮影画像とそれぞれ比較する場合に、比較対象を少なくして認証処理の負荷や処理に要する時間を軽減することができる。
このように、登録するごとに顔識別用データを個別に記憶しておき、撮影画像とそれぞれ比較する場合、登録ユーザ情報保持部130に格納する顔識別用データの数に上限を設け、当該上限までデータが登録されたら、新たなデータを登録する際は、格納済みのデータのいずれかを上書きするようにしてもよい。このときさらに、図10で示したようにユーザの意志によって登録された顔識別用データを第1群、図11で示したように装置が自動で登録した顔識別用データを第2群として分類して登録ユーザ情報保持部130に格納し、それぞれに対し、格納できるデータ数に上限を設けてもよい。そして上限を超えるデータを登録する際は、それが第1群のデータであれば第1群の格納済みのデータを上書きし、第2群のデータであれば第2群の格納済みのデータを上書きする。
このようにすることで、ユーザの意志によって登録された顔識別用データが、装置によって自動で登録された顔識別用データによって全て上書きされ、認証精度が悪化するといった不都合の発生を防止できる。さらに、登録済みの顔識別用データごとに、認証の成功に用いられた回数を数えるカウンタを設け、新たなデータを登録する際は、当該回数が最も小さいデータを上書きするようにしてもよい。ただし登録されたばかりのデータは当然、認証の成功に用いられた回数も少ないため、登録されてからの経過時間によって回数に重みづけをするなど時間的な観点を考慮するようにしてもよい。また上書きされる候補となった顔識別用データと、新たに登録すべきデータとをさらに比較し、一致度が所定のしきい値より高い場合は新たな登録をしないようにしてもよい。これにより同様のデータにも関わらず認証の成功に用いられた回数が0に戻ってしまい、上書き対象とされやすくなるのを防ぐことができる。
いずれにしろ定性的には、認証の成功に多く用いられている顔識別用データは上書きされないようにするとともに、異なる照明条件などによる多様なデータが可能な限り残るようにすることが望ましい。そのための手法として、上述したもののほか、様々な変形が考えられることは当業者には理解されるところである。
これまで、2段階の顔認証によって入力装置を利用しないログイン手法について説明した。次に、ログイン後の処理において入力装置を利用する場合、具体的には、ユーザの動きを入力装置に設けたマーカーを撮影することによって検出し、それに応じてゲームを進捗させたり情報処理を行ったりする場合を考える。このような態様において複数のユーザの動きを検出する場合、それぞれが保持する入力装置のマーカーの色を異ならせれば、マーカーの色によって各ユーザの動きを識別できる。そこで入力装置のマーカーの色と、当該入力装置を保持するユーザとをログイン時に対応づける。
図12は顔認証とマーカ検出を組み合わせてログイン処理を行う際、カメラ7によって撮影された画像の一例を示す。撮影画像400には1人のユーザが写っており、当該ユーザは入力装置6aを保持している。入力装置6aは同図右側の拡大図(入力装置6b)のように、マーカー402を備える。マーカー402は例えば、所定の色で発光する発光ダイオードにより構成する。ただしマーカー402は発光しなくてもよく、既知の色、形状、大きさを有し、検出対象となり得るものであれば、その形態は限定されない。また2次元バーコードなど平面上に描画した図形を入力装置6aに貼付したり、入力装置6aに直接描画したりしてもよい。
入力装置6aは、図示するように左右の持ち手部分をユーザが両手で把持しカメラ7に対峙することにより、マーカー402がカメラ7の方向を向くように構成する。入力装置6aはマーカー402以外に、各種操作ボタンやジョイスティックなどの操作手段を備えてよいが、ここでは図示を省略している。また入力装置の形状は図示するものに限らない。この例ではまず、上述の第1段階の顔認証により、撮影画像400のうち顔の領域404を用いて顔画像の特徴量データに基づき登録ユーザを特定する。さらにマーカー402の像の領域406を検出し、その色と、特定した登録ユーザとを対応づけ、後段の情報処理に利用する。
ログイン時には入力装置6aを胸の前など所定の位置で持つように規則づけておくことにより、撮影画像400における顔領域404と、それに対応するマーカーの像の領域406との相対位置によって顔とマーカーの対応がわかるようにする。例えば顔認証で特定した登録ユーザのオンラインIDを顔領域404の近傍に表示し、それが自分のオンラインIDであることを確認したユーザが自分の胸の前で入力装置6aを持つことにより、情報処理装置10は、マーカーの像の領域406においてマーカーを検出し、その色と登録ユーザとを対応づける。なお入力装置6aを持つ位置は、あらかじめ設定しユーザに認知されていれば胸の前に限らず、顎の下、頭の上、耳の横、などでもよい。
図13は顔認証とマーカー検出によってログイン処理を行う際の、情報処理装置10の機能ブロック構成を示す。なお図3で示したのと同じ機能ブロックには同じ符号を付してその説明を省略する。また同図に示すログイン制御部160には、図3で示したログイン制御部110に含まれる全機能ブロックを含め、入力装置6を介してどちらのログイン形態とするかをユーザが選択できるようにしてもよい。
情報処理装置10は、入力受付部102、画像取得部104、ログイン制御部160、および登録ユーザ情報保持部168を備える。情報処理装置10はさらに、図3で示した顔識別用データ登録部150を備えてもよい。ログイン制御部160は、撮像画像表示部112、顔認証部114、マーカー認証部162、距離特定部164、およびログイン処理部166を有する。
入力受付部102、画像取得部104、ログイン制御部160の撮像画像表示部112、顔認証部114は、図3で示した各機能ブロックと同じ機能を有する。ただし顔認証部114は、撮影画像に含まれる顔領域の検出と登録ユーザの特定、の第1段階の認証のみを行い、その顔領域と特定した登録ユーザの情報とをマーカー認証部162に提供する。登録ユーザ情報保持部168は、ユーザアカウントに関連づけて、ユーザのオンラインIDなどの識別情報と、顔識別用データを保持する。
ログイン制御部160のマーカー認証部162は、顔認証部114により検出された顔領域に対応するマーカーの像を撮影画像から検出する。すなわち顔認証部114より提供される顔領域の位置座標をもとに、あらかじめ設定した相対位置にあるべきマーカーの像を検出する。このとき上述の顔枠のように、出力装置4における表示画像中、マーカーを保持すべき位置にマーカー枠を表示してもよい。またその近傍に特定したユーザのオンラインIDを表示してもよい。
マーカー認証部162は、撮影画像中、顔認証部114から提供された顔領域から、胸などあらかじめ設定された位置関係にある所定サイズの領域内でマーカー検索を行う。そして検出したマーカーの色情報を、顔認証部114から通知された登録ユーザの情報と対応づけてログイン処理部166に通知する。この通知を受けるとログイン処理部166は、当該ユーザを情報処理装置10にログインさせるとともに、ゲームなどの情報処理の実行主体(図示せず)に、登録ユーザとマーカー色との対応に係る情報を通知する。複数のユーザに対し同様のログイン処理を実施することにより、情報処理の実行主体では、マーカーの色によって各ユーザの動きを区別することができる。
カメラ7を単眼カメラとし、1つの撮影画像から顔とマーカーの対を検出する場合は、以上の構成によってログイン処理は完了する。一方、顔認識とマーカー検出の精度を両立するために、それぞれに用いる画像を個別に撮影することを考える。特定の大きさ、色、形状、輝度などを有するマーカーは、画像として捉えた部屋や人、物などの中から検出することが容易であり、また、色を異ならせることにより複数のマーカーの識別も容易である。しかしながら人間による目視と異なり、画像内でのマーカーの写り具合は、周囲の明るさや物の有無、周囲の色などの撮影環境や、露光時間、絞り値、焦点深度などの撮影条件によって大きく変化する。
ユーザや部屋を含む広角画像を撮影する場合、一般的にはその撮影環境に合わせてホワイトバランスや露光時間などの撮影条件が自動で調整され、それによって全体としてバランスのとれた画像を取得する。しかしながらその画像中でマーカーを検出する場合、このように環境に応じて撮影条件を変化させると、マーカーの写り具合、すなわち像の色、大きさ、形状、輝度などが変化し、検出処理に支障をきたすことがあり得る。
例えば発光するマーカーを用いる場合、部屋の明るさに応じて決定した露光時間が長すぎると、マーカーの発光部分のRGB値が飽和してしまい、発光体の色に関わらず白くかつ輪郭のぼやけた画像となってしまうことが考えられる。またマーカーが比較的高速に動いていると、その像がぶれてしまうことが考えられる。
そのためマーカーの位置が正確に取得できなかったり、色を判別できなかったりすることがあり得る。そこでカメラ7をステレオカメラとし、一方のカメラで標準的な撮影条件の画像を、他方のカメラでマーカーの検出に適した所定の撮影条件の画像を撮影する。前者は顔認証部114が顔認証に用いるとともに、撮像画像表示部112による出力装置4への表示に用いる。後者はマーカー認証部162がマーカー検出に用いる。
このような態様において距離特定部164は、ステレオカメラが撮影した2つの画像における視差を補正し、顔に対応するマーカーを正確に特定できるようにする。図14はカメラ7をステレオカメラとしたときに撮影される画像の例を示している。この場合、撮影画像はステレオカメラによって所定距離離れた左右の位置から同じ空間を撮影したステレオ画像であり、そのうち第1画像408aは標準条件で、第2画像408bはマーカー検出に適した条件で、それぞれ撮影される。
つまり第1画像408aは、撮影時の環境に応じて撮影条件が自動調整された一般的な画像であり、第2画像408bは例えば第1画像408aと比較し、露光時間が短く、焦点がマーカーに合っている焦点深度の浅い(絞り値が小さい)画像である。このような条件で撮影することにより、第2画像408bは、全体的に暗かったり、他の物がぼやけていたりする代わりに、マーカーの発光体部分については、色、形状、大きさ、輝度が実際に近い画像となる。なおマーカー検出用の撮影条件として、露光時間と絞り値のどちらか一方のみを変化させてもよいし、別のパラメータを変化させてもよい。
これらの画像は同じ被写体を同時に撮影しているものの、視点が異なるため視差Dが生じている。まず顔認証部114は第1画像408aを用いて顔領域410を特定する。同じ第1画像408aでは、マーカー検索領域412は顔の真下、すなわち横方向(x軸方向)には顔領域410と同じ中心軸を有し、縦方向(y軸方向)に所定の距離dだけ離れた領域である。同図の例では距離dは顎から胸までの距離である。
しかしマーカー認証部162が、第2画像408bを用いてマーカー検出を行う場合、当該画像においてマーカー検索領域414は、第1画像408aにおける検索領域と比較して視差Dだけ横方向(x軸方向)にずれている。視差Dは、被写体のカメラからの距離によって変化する。そのため距離特定部164が、当該距離を特定してマーカー認証部162に提供する。これによりマーカー認証部162は、顔認証部114から供給された顔領域410の位置座標に基づき、まず第1画像408aでマーカー検索領域412を決定し、それをx軸方向に視差Dだけずらすことにより、第2画像408bにおけるマーカー検索領域414を決定する。ずらす方向は当然、左右のどちらのカメラで第2画像408bを撮影するかによって異なる。
図15はステレオ画像における視差と被写体の奥行き方向の位置の関係を説明するための図である。ここで長さの単位は記載がない限りメートル等で揃えているものとする。カメラ7のうち第1カメラ7a、第2カメラ7bは距離Lを隔てた平行な光軸を有するように設置される。これらのステレオカメラに対し、被写体は奥行き方向に距離Z離れた右端の矢印の位置に存在するとする。
各カメラが撮影した画像の1画素が表す実空間での幅Δxは、距離Zに比例して次のように表される。
Δx=Z×w/W (1)
ここでWはカメラの横方向の画素数、wは距離Zが1のときの実空間の横方向の視野範囲であり視角によって定まる。
距離Lだけ離れたカメラで撮影された同一の被写体は、その画像上でおよそ下記のような画素数上の視差D(画素)を有する。
D=L/Δx=L×(W/w)×(1/Z)=C/Z (2)
ここでCはカメラおよびそのセッティングにより定まる値であり、運用時は定数とみなせる。マーカー認証部162は、距離特定部164から距離Zを取得し、上記(2)式により画像上の視差Dを求め第2画像408bにおけるマーカー検索領域を決定する。なお上式は一例であり、三角測量の原理に基づき様々な算出式を採用できることは当業者には理解されるところである。
マーカー検索領域の視差Dは基本的にはマーカーのカメラからの距離Zから得られる。距離特定部164が距離Zを特定する手法は様々考えられるが、例えば第1画像408a、第2画像408bをさらに利用し、ステレオ画像法によって奥行き画像を生成することが考えられる。ここでステレオ画像法は、ステレオ画像の特徴点を対応づけ、それらの視差から被写体の奥行き方向の位置を算出する一般的な手法である。また奥行き画像は、被写体のカメラからの奥行き方向の距離を、撮影画像平面の2次元座標にマッピングし画素値として表した画像である。
しかし人が持つことを想定するとマーカーの大きさには限界があるため、撮影画像におけるマーカーの像の領域は小さいのが一般的である。そのような小領域に基づきカメラからの距離を精度よく取得することは容易ではない。そこでマーカと、それを持つユーザの顔面の、カメラからの距離がおよそ等しいことを利用して、マーカーの視差を精度よく導出する。
例えば図12で示したように、入力装置6aを胸の前で持つことをログイン時のポーズとして規則づけた場合、マーカー402のカメラからの距離はユーザの顔面と同程度になる。そしてマーカーの像の領域より面積が広く導出精度が高いことが見込まれる顔面の距離に基づき視差を求める。具体的には距離特定部164は、生成した奥行き画像のうち、顔認証部114が検出した顔領域の画素値を読み出す。当該画素値は顔面のカメラからの距離を表しているため、領域全体の平均値を算出するなどして距離Zとする。
なお上記の例は、元々撮影していたステレオ画像を用いるため、新たな入力データを必要とせずに高精度に距離を求められる、という点で有効性が高い。一方、距離特定部164は奥行き画像を生成せず、顔領域の大きさに基づき距離Zを算出してもよい。あるいはステレオ画像における顔領域の視差をマーカーの視差に置き換えてもよい。第1画像408aと第2画像408bの撮影条件が異なることなどによりステレオマッチングの精度、ひいては奥行き画像の精度が十分でないと考えられる場合などは、第1画像408aと第2画像408bの双方に対し顔認識処理を行うことにより、同一ユーザの顔領域を両画像で特定し視差を求めてもよい。
顔から胸までの距離、すなわち顔領域からマーカー検索領域までの距離dも、カメラから顔までの距離に応じて調整してよい。距離特定部164はそのほか、別途設けた赤外線照射/検出システムによりTOF(Time Of Flight)方式によってマーカーの距離を導出するなど、様々な既存技術を利用してよい。
あるいは距離Lを固定値とし、カメラからの距離をユーザに事前に認識させてその位置にいるようにさせてもよい。また、顔面とマーカーの奥行き方向の相対位置が既知であれば、顔面の距離からマーカーの距離を算出できるため、両者は必ずしも同一位置になくてもよい。例えばマーカーを前方に突き出すようにすることをログイン時のポーズとした場合、マーカーは腕の長さ分だけ顔面よりカメラ側に位置することになるため、マーカーの視差Dを顔面の距離から導出できる。場合によっては、マーカーの像そのものを第1画像408aと第2画像408bから検出し、マーカーの視差Dを直接特定してもよい。
いずれにしろ、マーカー検出用に別途設定した条件によって画像を撮影し、顔認識に用いた画像との視差を考慮してマーカー検出を行うことにより、そのときの照明環境などによらずマーカー検出精度を維持できる。また複数のユーザが近接しているときなどに、他人のマーカーが混同して検出されてしまいログインに支障をきたす可能性を抑えることができる。さらにマーカー検索領域を正確に求めることができるため、無駄に広い領域を検索する必要がなくなり、マーカー検出処理の負荷を軽減できる。
なお厳密には、第1カメラ7a、第2カメラ7bは、レンズの取り付け具合等によって、水平方向の距離L以外に、微少量の上下方向のずれ、撮像面の微少な回転などが生じていることが考えられる。この場合、両者が撮影した第1画像408a、第2画像408b間の像のずれは、水平方向の視差D以外の成分を含むため、マーカー認証部162は、実際にはそれらの成分を加味したうえで、第2画像408bにおけるマーカー検索領域414を決定してよい。レンズの位置ずれや回転ずれは個体差もあるため、製造時などに測定し、当該測定値やずれを補正するためのパラメータなどを情報処理装置10内部に設定しておく。
図16は情報処理装置10がステレオ画像を用いて顔認証とマーカー検出を行うことによりログイン処理を行う手順を示すフローチャートである。まず顔認証部114は、画像取得部104が取得したステレオ画像をメモリより読み出す。そして当該ステレオ画像のうち標準条件で撮影された第1画像において人の顔と推定される部分を抜き出し、登録ユーザ情報保持部168に保持された顔識別用データと比較することにより、抜き出した顔が登録ユーザの顔であることを判定する(S60)。顔が検出されなかったり、登録ユーザの顔でなかったりしている期間、すなわち顔認証が成功していない間は、所定の時間間隔で顔検出および判定処理を繰り返す(S60のN)。登録ユーザの顔であることが判定され顔認証が成功したら(S60のY)、第1画像での顔領域の位置座標、およびユーザの特定情報をマーカー認証部162に提供する。
マーカー認証部162は、第1画像での顔領域の位置座標に基づき当該ユーザに対する第2画像、すなわちマーカー検出用の条件で撮影された画像でのマーカー検索領域を決定する(S62)。この際、距離特定部164は、画像取得部104が取得したステレオ画像のデータを読み出し、ステレオマッチング処理などによって顔面またはマーカーのカメラからの距離を取得してマーカー認証部162に通知する。これによりマーカー認証部162は当該ステレオ画像におけるマーカーの視差を考慮して検索領域を決定する。そして当該検索領域に対しマーカー検出を行う(S64)。マーカーが所定時間、検出されなければそのまま処理を終了する(S64のN)。
マーカーが検出されたら(S64のY)、その色を、顔認証部114から通知された登録ユーザの情報に対応づけてログイン処理部166に通知する。ログイン処理部166は、当該通知に応じて該当ユーザをログインさせる(S68)。このとき上述のように、色と登録ユーザとの対応に係る情報をゲームなどの実行主体に通知する。
次に、S62におけるマーカー認証部162によるマーカー検出精度をさらに向上させることを考える。本実施の形態では、マーカーの色によってそれを操作しているユーザを区別する。したがって、複数のユーザがそれぞれの色のマーカーを備えた入力装置6を保持して同時に撮影画像に写っている場合でも、その位置に関わらず正確に各色と位置との対応を導出する必要がある。
しかしマーカーが発光体である場合は特に、光に含まれる色成分や、それを検出するCMOSセンサなど撮像素子の検出精度、補正回路の出力精度などによって、マーカーの像の画素値として表される色にばらつきが生じることが考えられる。例えば、青、赤、緑、ピンクの4色のマーカーを利用する場合、赤のマーカーの周縁にピンクの成分が強く表れる、といったことが起こり得る。この場合、当該マーカーが赤なのかピンクなのか、また、実際に赤のマーカーの近くにピンクのマーカーがあるのか、といったことを正確に判定するのが困難になる。このことは、ログイン時のみならず、ログイン後のゲームなどに対する操作時も同様であり、判定誤差が誤動作の原因になり得る。
図17はマーカーの像を含む撮影画像を模式的に示している。ただし同図ではそれを保持しているユーザの像は省略している。撮影画像420には、それぞれ異なる色のマーカーを備えた3つの入力装置422a、422b、422cが写っている。入力装置422aや422bのマーカー近傍の網掛けした丸は、マーカーの本来の色と異なる色成分が強く出てしまった領域を模式的に示している。例えば入力装置422aのマーカー部分の拡大画像424を見ると、マーカーの色を表す画素集合428の近傍に、別の色を表す画素集合426が上記のような理由により表れてしまうことがある。
このような場合、撮影画像からマーカーとして検出された領域のうち、画素集合426の部分はマーカー色であってもマーカーの像ではないため、検出結果から除外する必要がある。最も単純には、このように近接して複数の色が存在する場合は、より面積が広い方の色を本来のマーカーの色と見なすことが考えられる。しかし撮影画像中、マーカーの像が占める領域は上述のように小さく、そのように比較すべき面積自体が誤差を含んでいることがあり得る。また入力装置422bと422cのようにカメラからの距離によって見かけ上の大きさが異なるマーカーが重なりあって見える場合もあるため、実際のマーカーまで除外してしまうことになりかねない。
そこで除外の基準として、各色の領域面積に加え、入力装置の筐体自体の大きさを加味することにより、マーカーとして検出する対象から除外する色領域を精度よく特定する。図18はマーカー検出処理に際しマーカーと見なせる色を特定する処理手順を示すフローチャートである。この処理はログイン時にマーカー認証部162が行う以外に、ゲームなどの操作中にも行えるため、マーカー検索領域はそれらの状況によって様々である。ログイン時は上述のように顔領域から所定の位置関係にある領域であってよく、ゲーム中などにマーカーを自由に動かすことを許容する場合は、別途トラッキング処理などによって検索領域の絞り込みを行ってもよい。場合によっては撮影画像全体を検索領域としてもよい。
まずマーカー認証部162は、画像取得部104が取得した撮影画像をメモリより読み出し、そのうちの検索領域を走査するなどしてマーカーの色である可能性のある領域を抽出する(S70)。この時点では、同じ色の領域が複数、抽出される場合がある。次に同一色あるいは同一と見なせる色が連続してなる領域を面積の大きい順にソートする(S72)。このとき各領域に対し1、2、3、・・・と昇順に識別番号iを与える。次に最も広いi=1の領域をn=1番目の対象領域とし(S74)、その領域がマーカーの像であるとしたときの入力装置の筐体の像が及ぶ範囲を特定する(S76)。この範囲はすなわち筐体の像の輪郭内部の領域、例えば図17における入力装置422aの黒塗りの部分であり、筐体の形状、サイズ、入力装置のカメラからの距離に基づき決定する。
筐体の形状やサイズは当然、既知である。入力装置のカメラからの距離は、領域iの大きさから導出してもよいし、距離特定部164がステレオ画像を撮影して奥行き画像を作成することにより特定してもよい。後者の場合、入力装置自体の距離に多くの誤差を含む可能性に鑑み、上述のように顔や手などそれを保持している人の体の距離から推定するようにしてもよい。奥行き画像を生成せずに、左右のカメラが撮影した一対のステレオ画像におけるマーカーや人の像の視差に基づき距離を算出してもよい。そして当該筐体の像の範囲内に、対象領域の色と別の色の領域の少なくとも一部が含まれる場合、その領域を抽出結果から除外する(S78)。
マーカーの全色の数をNとしたとき、対象領域がN番目でなければ(S80のN)、次に面積が大きいn=n+1番目の対象領域について筐体の像の及ぶ範囲を特定し、その像の範囲内に、対象領域の色と別の色の領域があれば抽出結果から除外する(S82、S76、S78)。S82、S76、S78の処理をN回繰り返し(S80のN)、N番目の対象領域に対する除外処理が終わったら処理を終了する(S80のY)。なおS70で抽出した領域がN個以下であれば、全ての領域を対象領域とした後、処理を終了する。これにより、マーカーである可能性の高い領域のみが検出結果として残ることになる。
このように面積の大きい領域を優先することは、当該領域がマーカーである可能性が高いこと、および、それをマーカーと仮定して筐体の像の及ぶ範囲を想定した場合、当該筐体よりカメラ側に、そのマーカーより小さい像のマーカーが位置することはない、という知見に基づく。このようにすることで、図17に示したようにマーカーの周縁に偶然検出された別の色成分をマーカーと誤認識したり、近接した複数のマーカのいずれかをマーカー検出対象から誤って除外したりするのを防止できる。
なお図18のように面積の大きい方から順に対象領域を1つ1つ選択していく代わりに、抽出した全領域に対し、その面積、および距離の近い他の色領域がマーカーである場合にその筐体の像が及ぶ範囲内か否か、といった基準によりスコアリングし、各領域がマーカーである可能性をそれぞれのスコアで表すことにより最終的な検出対象を特定してもよい。
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。