以下、図面を参照して本発明の実施形態を説明する。以下の記載および図面は、本発明を説明するための例示であって、説明の明確化のため、適時、省略および簡略化がなされている。本発明は、他の種々の形態でも実施する事が可能である。特に限定しない限り、各構成要素は単数でも複数でも構わない。
図面において示す各構成要素の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面に開示された位置、大きさ、形状、範囲などに限定されない。
図1は、生体認証システム10の構成例を示すブロック図である。生体認証システム10は、手の画像から、例えば手の指の血管(例えば指静脈)画像を用いて生体を認証する。生体認証システム10は、例えば、撮像装置2、並びにインターネット等のネットワーク4で接続された情報処理装置3及びサーバ5を含む。撮像装置2は情報処理装置3に備え付けられていてもよい。
撮像装置2は手の動画を撮影して情報処理装置3に入力する。情報処理装置3は、手の動画に基づいて、動画処理、姿勢検出処理、姿勢判定処理、特徴抽出処理、及びテンプレート生成処理を含む一連の処理を実行する。情報処理装置3とサーバ5は、ネットワーク4を介して登録処理及び認証処理を実行する。登録や認証の成功、又は姿勢の修正が必要な場合は情報処理装置3の表示装置36にその旨を表示する。
情報処理装置3は、例えば、CPU31、メモリ32、補助記憶装置33、通信装置34、入力装置35、及び表示装置36を含む計算機によって構成される。
CPU31は、プロセッサを含み、メモリ32に格納されたプログラムを実行する。メモリ32は、不揮発性の記憶素子であるROM(Read Only Memory)及び揮発性の記憶素子であるRAM(Random Access Memory)を含む。ROMは、不変のプログラム(例えば、BIOS(Basic Input/Output System))などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、CPU31が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
補助記憶装置33は、例えば、磁気記憶装置(HDD(Hard Disk Drive))、フラッシュメモリ(SSD(Solid State Drive))等の大容量かつ不揮発性の記憶装置であり、CPU31が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置33から読み出されて、メモリ32にロードされて、CPU31によって実行される。
なお、本実施形態において、生体認証システム10が使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、テーブル、リスト、データベース、又はキューから適切に選択したデータ構造体が、情報を格納することができる。
入力装置35は、キーボードやマウスなどの、オペレータからの入力を受ける装置である。表示装置36は、ディスプレイ装置やプリンタなどの、プログラムの実行結果をオペレータが視認可能な形式で出力する装置である。また、情報処理装置3は、撮像装置2から動画の入力を受け付けるための入力インターフェースを有してもよいし、ネットワーク4を介して撮像装置2から動画を受信してもよい。通信装置34は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。
CPU31が実行するプログラムは、非一時的な記憶装置を備えた他の情報処理装置から、非一時的な記憶媒体であるリムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワーク4を介して情報処理装置3に提供され、非一時的記憶媒体である不揮発性の補助記憶装置33に格納されてもよい。このため、情報処理装置3は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。これは、サーバ5についても同様である。
情報処理装置3は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。これは、サーバ5についても同様である。
CPU31は、例えば、動画入力部320、動画処理部321、姿勢検出部322、姿勢判定部323、特徴抽出部324、テンプレート生成部325、及び生体認証部326を含む。
動画入力部320は、撮像装置2から動画の入力を受け付ける。動画処理部321は、入力された動画を複数の静止画へと変換する。姿勢検出部322は、当該複数の静止画それぞれに含まれる手の姿勢を検出する。姿勢判定部323は、姿勢検出部322が検出した姿勢に基づいて姿勢判定を行う。
特徴抽出部324は静止画から特徴量を抽出する。指静脈、指紋、及び関節などは、特徴抽出部324が抽出する特徴量の一例である。テンプレート生成部325は、抽出された特徴量から登録又は認証に用いるテンプレートを生成する。生体認証部326は、ネットワーク4を介してサーバ5と通信し、登録又は認証に関する処理を行う。
登録処理の場合、生体認証部326は、サーバ5に対して登録の要求と、テンプレートと姿勢情報を含む登録データと、を送信する。認証処理の場合、生体認証部326はサーバ5にテンプレートの要求を送信し、要求を受信したサーバ5は登録データを情報処理装置3へ登録データを送信する。生体認証部326は、認証処理時に生成したテンプレートをサーバ5から受信した登録データと照合し、生体認証を行う。
例えば、CPU31は、メモリ32にロードされた動画入力プログラムに従って動作することで、動画入力部320として機能し、メモリ32にロードされた動画処理プログラムに従って動作することで、動画処理部321として機能する。CPU31に含まれる他の機能部についても、プログラムと機能部の関係は同様である。また、サーバ5が有するCPU51に含まれる後述する機能部についても、プログラムと機能部の関係は同様である。
なお、CPU31及びCPU51に含まれる機能部による機能の一部又は全部が、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)等のハードウェアによって実現されてもよい。
サーバ5は、例えば、CPU51、メモリ52、補助記憶装置53、通信装置54、入力装置55、及び表示装置56を含む計算機によって構成される。CPU51、メモリ52、補助記憶装置53、通信装置54、入力装置55、及び表示装置56それぞれのハードウェアとしての説明は、CPU31、メモリ32、補助記憶装置33、通信装置34、入力装置35、及び表示装置36それぞれのハードウェアとしての説明と同様であるため、省略する。
CPU51は、データ登録部521及びデータ取得部522を含む。データ登録部521は、情報処理装置3から登録要求と登録データを受信した場合に、データベース530に登録データを登録する。データ取得部522は、サーバ5が情報処理装置3から認証要求を受信した場合にデータベース530に登録されている登録データを取得し、情報処理装置3へ送信する。補助記憶装置53は、データベース530を保持する。データベース530は、各ユーザの生体情報を含むテンプレートを保持する。
なお、図1の例では情報処理装置3のCPU31が生体認証部326を含んでいるが、サーバ5が生体認証を実行してもよく、この場合サーバ5のCPU51が生体認証部326を含む。サーバ5が生体認証を実行する場合は、生体認証部326はサーバ5に認証の要求と共に、テンプレートと姿勢情報を含む認証データを送信し、サーバ5が生体認証を行う。
図2及び図3を用いて登録処理の一例と認証処理の一例を説明する。登録処理では、情報処理装置3が手の姿勢検出に基づき登録データに用いるのに適した画像を1つ以上選択してサーバ5に登録する。認証処理では、情報処理装置3は、翳された手の姿勢情報が登録データの姿勢情報の一定範囲内かを手の姿勢検出と姿勢判定を用いて判断し、一定範囲内であると判定すれば生体認証を実行し、一定範囲内でないと判定すれば利用者に手の翳し方を修正するように促すガイドを表示する。
図2は、登録処理の一例を示すフローチャートである。動画入力部320は、利用者に手の提示と指の間隔の変化や手首を軸とした手の上下左右の回転を促すガイドを表示装置36に表示する(S201)。利用者はガイドに従って撮像装置2に手をかざす。
情報処理装置3が、撮像装置2(例えばモバイル端末に搭載されたカメラ)を含むスマートフォンやタブレットなどのモバイル端末である場合、利用者は撮像装置2の撮像範囲に手が含まれるように空中に手をかざす。
動画入力部320は、例えば、手の提示を促すガイドとして「手をかざしてください」といったガイダンスメッセージに加えて、指の間隔を変化させるように促すガイド動画や、手首を軸とした回転を促すガイド動画を表示装置36に表示してもよい。これにより、利用者はどのように手をかざせばいいのかを視覚的に理解でき、利用者の利便性を向上することができる。ガイドの一例は図5を用いて説明する。
撮像装置2は利用者の手の動画を一定時間撮影し、動画入力部320は、当該動画の入力を受け付ける(S202)。
動画処理部321は、ステップS202で入力された動画を複数の静止画へ変換する(S203)。ステップS203において、動画処理部321は、動画内全てのフレームそれぞれを静止画へ変換してもよいし、動画の一部のフレームのみを静止画に変換してもよい。また、動画処理部321は、ステップS203で得た静止画それぞれの品質判定を行ってもよく、この場合、画像品質が一定未満のものは削除してもよい、つまり以降の処理では削除した静止画に対して処理が行われなくてもよい。
なお、ステップS202において、撮像装置2が動画ではなく複数の静止画を撮影して動画入力部320は当該複数の静止画の入力を受け付けてもよく、この場合は、ステップS203の処理は省略される。
姿勢検出部322は、ステップS203で生成された静止画からステップS205の処理を未処理の静止画を1つ選択し(S204)、選択した静止画に写っている手の姿勢を検出する(S205)。
具体的には、例えば、姿勢検出部322は、手の輪郭と、隣接する指同士の接続部分で定義する指股と、各指の指と掌の接続部分の中点とで定義する根本と、指先の位置と、を検出する。さらに、姿勢検出部322は、検出した情報に基づいて、指の開き具合を示す隣接する指同士の角度差分と、ロール回転の回転量を数値化した第1軸比率と、ピッチ回転の回転量を数値化した第2軸比率と、を手の姿勢情報として算出する。第1軸比率及び第2軸比率の算出方法の具体例は、図4を用いて後述する。
姿勢検出部322は、ステップS203にて生成された全ての静止画に対してステップS205の処理を実行したかを判定する(S206)。姿勢検出部322は、ステップS205の処理を実行していない静止画があると判定した場合(S206:NO)、ステップS204に戻る。
姿勢検出部322は、全ての静止画に対してステップS205の処理を実行したと判定した場合(S206:YES)、登録に用いる画像を選択する(S207)。具体的には、例えば、姿勢検出部322は、ステップS204で検出された各画像の姿勢情報を参照して、隣接する指同士の各角度差分が所定の閾値以上であり、かつ第1軸比率及び第2軸比率(例えば、第1軸比率と第2軸比率の和、重み付き和、又は平均等)が最大となる画像を1つ以上選択する。なお、姿勢検出部322は、隣接する指同士の各角度差分が所定の閾値以上であり、かつ第1軸比率及び第2軸比率それぞれが、又は第1軸比率と第2軸比率の和、重み付き和、若しくは平均が所定の閾値以上である画像を選択してもよい。
姿勢検出部322は、各角度差分が所定の閾値以上であるかを判定することにより、各指の間隔が十分にあるかを判定できる。また、第1軸比率及び第2軸比率は、指が撮像装置2に対して水平にかざされている程に大きくなり、指が撮像装置2に対して傾いている程に小さくなる。従って、姿勢検出部322は、第1軸比率と第2軸比率が最大となる画像を選択することによって、指が最も撮像装置2に対して水平にかざされている手を含む静止画、つまり登録に適している画像を選択することができる。なお、姿勢検出部322による、角度差分の算出処理及び各角度差分が所定の閾値以上であるかの判定処理は省略されてもよい。
特徴抽出部324は、ステップS207で選択された画像から特徴量を抽出する(S208)。具体的には、例えば、特徴抽出部324は、ステップS205で検出された指股や指の根本と指先の位置情報を基に指の画像領域を指ごとに切り出し、各指の向きや拡大率などを一定に整えた上で指画像内に含まれる特徴量を抽出する。
テンプレート生成部325は、ステップS208で抽出された特徴量に基づいて生体認証用のテンプレートを生成する(S209)。具体的には、例えば、テンプレート生成部325は、生成されたテンプレートから元の生体情報が復元できないようなテンプレートへと生体情報を変換する。公開型生体認証基盤(PBI:Public Biometrics Infrastructure)の技術に基づく生体情報からPBIテンプレートへの変換は、元の生体情報が復元できないテンプレートへの変換の一例である。テンプレート生成部325は、PBIテンプレートに限られず、他の技術に基づいて生体情報から元の生体情報が復元できないテンプレートの変換や生成をしてもよい。
テンプレート生成部325は、ステップS209で生成されたテンプレートと、ステップS204で検出した各指間の角度差分、第1軸比率、及び第2軸比率を含む姿勢情報と、を含む登録データを、登録要求と共にネットワーク4を介してサーバ5に送信する(S210)。
サーバ5のデータ登録部521は、ステップS210で送信された登録要求と登録データを受信し、データベース530に登録データを登録して(S211)、登録処理が終了する。
なお、ステップS207にておいて、姿勢検出部322が複数の画像を選択してもよく(例えば、第1軸比率と第2軸比率との和が大きい順に所定数の画像を選択する等)、ステップS208~ステップS211の処理が選択された画像それぞれに対して実行される(つまり、登録データは、複数の静止画それぞれについての角度差分、テンプレート、及び姿勢情報を含む)。
図3は、認証処理の一例を示すフローチャートである。動画入力部320は、利用者に手の提示を促すガイドを表示装置36に表示し(S301)、ガイドに従って利用者は手をかざす。ステップS302、ステップS303、及びステップS304の処理は、それぞれ、ステップS202、ステップS203、及びステップS205の処理と同様であるため説明を省略する。ただし、説明の簡略化のため、ステップS303の処理では静止画が1つだけ生成されたものとする。
生体認証部326は、ネットワーク4を介してサーバ5へ登録データ要求を送信し、サーバ5のデータ取得部522はデータベース530から登録データを取得して情報処理装置3へ送信する(S305)。なお、複数の静止画に対応する登録データがデータベース530に登録されている場合、データ取得部522は、当該複数の静止画それぞれに対応する登録データを全て情報処理装置3へ送信する。ステップS305の処理は、ステップS301とステップS306の間であればいつ実行されてもよい。例えば、ステップS301の処理の直後にステップS305の処理が実行されてからステップS302からステップS304の処理が実行されてもよい。
姿勢判定部323は、静止画から検出された手の姿勢情報を登録データの姿勢情報と比較し、画像が認証に適しているか判定する(S306)。具体的には、例えば、姿勢判定部323は、隣接する指同士の各角度差分が所定閾値以上であるかの第1判定と、検出された第1軸比率と登録データの第1軸比率との絶対差が所定閾値以内であるかの第2判定と、検出された第2軸比率と登録データの第2軸比率の絶対差が所定閾値以内であるかの第3判定と、を行う。
第1判定において、隣接する各指同士の各角度差分が所定閾値以上である場合は指の間隔が十分にあると判断できる。第2判定及び第3判定において、検出された第1軸比率および第2軸比率と登録データの第1軸比率および第2軸比率の各絶対差が閾値以内である場合は、認証処理において撮像装置2に翳された手から得られた静止画が登録データに対して大きく回転しておらず、認証に適していると判断できる。
姿勢判定部323が、第1判定、第2判定、及び第3判定のうち少なくとも1つにおいて、判定条件が満たされていないと判定した場合(S306:FAIL)、動画入力部320は利用者に手の姿勢を修正するように促すガイドを表示装置36に表示して(S307)、ステップS302に戻る。なお、ステップS302に戻った際には、登録データはすでにサーバ5から取得されているためステップS305の処理をスキップしてもよい。
動画入力部320が、ステップS307において、表示するガイドの内容はステップS306の姿勢判定結果によって異なることが望ましい。例えば、姿勢判定部323がステップS306の第1判定において指の間隔が不十分と判定した場合(つまり隣接する指同士の各角度差分が所定閾値未満であると判定した場合)、動画入力部320は利用者に指の間隔を広げるように促すガイドとして「指の間隔を広げてください」といったガイダンスメッセージを表示装置36に表示してもよい。表示するガイドの具体例は図6を用いて後述する。
姿勢判定部323が、第1判定、第2判定、及び第3判定の全てにおいて判定条件が満たされたと判定した場合(S306:PASS)、ステップS308に遷移する。ステップS308及びステップS309の処理は、それぞれ、ステップS207及びステップS208の処理と同様であるため説明を省略する。
生体認証部326は、サーバ5から取得した登録データの登録テンプレートと、ステップS309で生成した認証テンプレートと、を用いた生体認証を実行して(S310)、認証処理を終了する。具体的には、例えば、生体認証部326は登録テンプレートと認証テンプレートとを照合して類似度を算出し、算出した類似度に従って両者が類似しているかを判定する。
生体認証部326は、登録テンプレートと認証テンプレートとが類似していると判定した場合は認証が成功したと判定し、登録テンプレートと認証テンプレートとが類似していないと判定した場合は認証が失敗したと判定する。情報処理装置3がステップS305にて複数の静止画それぞれに対応する登録データをサーバ5から受信した場合、生体認証部326は、全ての登録データに対して生体認証を行い、最も高い類似度を最終類似度とし、登録テンプレートと認証テンプレートが類似しているかを判定することによって認証を実行してもよいし、全ての登録テンプレートそれぞれに対して認証テンプレートと類似しているかを判定することによって認証を実行してもよい。
上記ではステップS303の動画処理において動画処理部321が静止画を1つ生成した例を説明したが、動画処理部321がステップS303で複数の静止画を生成してもよい。動画処理部321が複数の静止画を生成した場合の処理の具体例を2つ説明する。
1つ目の例では、情報処理装置3がステップS304(姿勢検出処理)とステップS306(姿勢判定処理)を1つの静止画に行い、姿勢判定が成功すればステップS308の特徴抽出に進み、姿勢判定が失敗すれば違う静止画を1つ選択して再度ステップS304の処理に戻る。このとき、姿勢判定部323は生成された全ての静止画に対する姿勢判定が失敗したと判定した場合はステップS307(ガイド表示)に遷移する。
2つ目の例では、情報処理装置3が、ステップS304の姿勢検出処理を生成された全ての静止画に対して行い、第1軸比率と第2軸比率が最大(例えば第1軸比率と第2軸比率の和が最大)である画像を1つ選択してステップS306の姿勢判定処理を実行する。このとき、姿勢判定部323は、選択された画像の姿勢判定が成功したと判定すればステップS308の特徴抽出処理に遷移し、姿勢判定が失敗と判定すればステップS307の処理に遷移する。
図4は、ステップS205及びS304における姿勢検出処理の一例を示すフローチャートである。姿勢検出部322は、画像から手の輪郭、並びに各指股、各指の根本、及び指先の位置を検出する(S401)。姿勢検出部322は、例えば、CNN(Convolutional Neural Network)等の、教師データを用いた機械学習による、背景と手領域の分離に基づく手の輪郭を抽出し、抽出した手の輪郭から各指股、各指の根本、及び指先の位置を算出する方法を適用できる。
機械学習を用いた手の輪郭抽出方法について説明する。機械学習を用いた手の輪郭抽出方法では、事前に様々な環境で様々な被験者の手を大量に撮影した画像(例えば所定数以上の画像)を用意し、各画像に手や指の部分と背景部分を定義するラベルを作成し、各画像とそのラベルとのペアを教師データとして蓄積する。当該輪郭抽出方法では、教師データの画像を入力した時にそのラベルができるだけ正しく出力されるように機械学習のパラメータ学習を行う。これにより、姿勢検出部322は、未知の画像が入力された時に手の領域だけを取得することができる。姿勢検出部322は、取得された手の領域の外周を辿ることにより、手の輪郭を得られる。
次に手の輪郭から各指股、各指の根本及び指先の位置を算出する方法について説明する。図5は、ステップS304における姿勢検出処理の一例を示す説明図である。図5の(a)では検出される手の輪郭及び各座標の一例を示す。姿勢検出部322は、手の輪郭110を辿るときに、輪郭線の曲率が高い位置(例えば曲率が極大である位置)を指先111と定義し、曲率が高いがその正負が指先とは反対である位置(例えば曲率が極小である位置)を指股112と定義する。姿勢検出部322は、各指股の位置と手の輪郭に基づいて各指の根本113の位置を算出する。
姿勢検出部322は、中指の根本と薬指の根本を隣接する二つの指股を通る直線の中点で定義し、人差し指の根本と小指の根本を隣接する指股の平均輪郭追跡方向に対する垂直線をその指股から根本を算出したい指の反対に位置する輪郭線を通るように引いたときの垂直線と輪郭線の接点と隣接する指股の中点で定義する。図5の(a)にて、人差し指及び小指のそれぞれにおいて、隣接する指股からそれぞれの指の反対側に位置する輪郭線(つまり人差し指であれば人差し指の指先から親指へと続く輪郭線、小指であれば小指の指先から手首へと続く輪郭線)を通るように引かれた垂直線114と、垂直線114と手の輪郭110との接点115を示す。
上述の手の輪郭と、各指股、各指の根本、及び指先の位置と、を検出する手法は一例であり、別の手法を用いて検出してもよい。別の手法の例としては、前述の通りに大量の教師データを準備する際に指先の位置、指股の位置、及び指の根本の位置などの指情報を含めて教師データを作成し、それらの情報も含めて機械学習を実施し、未知の手画像の入力に対して手の輪郭と指情報を推定して出力する手法としてもよい。
続いて、姿勢検出部322は、ステップS401で検出した各指の根本の位置と指先の位置とに基づいて各指の角度を算出する(S402)。具体的には、例えば、図5の(b)に示す通り、姿勢検出部322は、各指において根本113と指先111とを通る直線をその指の中心軸116に決定する。姿勢検出部322は、垂直方向を0度とし、指の中心軸116が右上がりの場合を正、右下がりの場合を負として、指の角度を決定する。
続いて、姿勢検出部322は、中指の横幅と縦幅を算出する(S403)。具体的には、例えば、図5の(c)に示す通り、姿勢検出部322は、ステップS401で検出した中指に隣接する2つの指股112間の距離を中指の横幅117として算出し、中指の根本113と中指の指先111の間の距離を中指の縦幅118として算出する。
続いて姿勢検出部322は、手の横幅を算出する(S404)。具体的には、例えば、姿勢検出部322は、人差し指と小指のそれぞれの、ステップS401で算出した接点115の距離を手の横幅119として算出する。
姿勢検出部322は、ステップS402で算出した各指の角度に基づいて隣接する指同士の角度差分を算出する(S405)。具体的には、例えば、姿勢検出部322は、人差し指と中指の角度差分と、中指と薬指の角度差分と、薬指と小指の角度差分と、を算出する。
姿勢検出部322は、ロール回転を数値化した第1軸比率を算出する(S406)。ステップS403で算出した中指の縦幅に対するステップS404で算出した手の横幅の比率は第1軸比率の一例である。手が撮像装置2に対してロール回転をしている程に手の横幅は小さくなるが中指の縦幅は一定である。そのため、中指の縦幅と手の横幅の比率は、手が撮像装置2に対して水平な程に大きくなり、手が撮像装置2に対してロール回転をしている程に小さくなる。また、当該第1軸比率は、中指の縦幅と手の横幅の比率を用いて定義されているため、画像における手の大きさに影響されない。そのため、当該第1軸比率によって撮像装置2に対する手のロール回転の数値化を実現できる。なお、第1軸比率の算出に、手の横幅の代わりに任意の指の横幅が用いられてもよい(但し、姿勢検出時に常に同じ指の横幅が用いられることが望ましい)。
姿勢検出部322は、ピッチ回転を数値化した第2軸比率を算出する(S407)。ステップS404で算出した中指の横幅と縦幅の比率は第2軸比率の一例である。手が撮像装置2に対してピッチ回転をしている程に中指の縦幅は小さくなるが中指の横幅は一定である。そのため、中指の横幅と中指の縦幅の比率は、手が撮像装置2に対して水平な程に大きくなり、手が撮像装置2に対してピッチ回転をしている程に小さくなる。また、当該第2軸比率は、中指の横幅と中指の縦幅の比率を用いて定義されているため、画像における手の大きさに影響されない。そのため、当該第2軸比率によって撮像装置2に対する手のピッチ回転の数値化を実現できる。
なお、上記した例では中指の縦幅と横幅を用いて(つまり中指上に回転軸を設定して)、第1軸比率及び第2軸比率が算出されているが、中指の代わりに他の指(親指、人差し指、中指、薬指、又は小指のうちの第1の指)の縦幅と横幅を用いて第1軸比率及び第2軸比率が算出されてもよい。また、第1軸比率の算出と、第2軸比率の算出と、で異なる指の縦幅と横幅とが用いられてもよい。なお、姿勢検出部322は、中指の横幅と縦幅の算出と同様の方法で、他の指(親指、人差し指、薬指、及び小指)の横幅及び縦幅を算出することができる。
また、上記した例では中指上に回転軸が設定されて第1軸比率及び第2軸比率が算出されているが、例えば、指、掌、及び手首の任意の箇所に回転軸が設定されてもよい。具体的には、例えば、掌の輪郭又は指の輪郭の一点と、手首の輪郭の一点と、を結んだ線を回転軸として第1軸比率が算出されてもよい。
姿勢検出部322は、ステップS405からステップS407で算出した隣接指間の角度差分と、第1軸比率と、第2軸比率と、を入力された手画像の姿勢情報として出力して(S408)、姿勢検出処理を終了する。
なお、ステップS402からステップS407は各ステップの処理に必要な情報が得られていればステップの順番を変更してもよい。例えば、ステップS402の処理の直後にステップS405の処理が実行されてもよいし、ステップS407の処理の後にステップS405の処理が実行されてもよい。
図6は、登録処理時に利用者に手の提示と指の間隔の変化や手首を軸とした手の上下左右の回転を促すために表示装置36に表示されるガイドの一例を示す説明図である。表示装置36には、例えば、ガイダンスメッセージ331、指の間隔を変化させるように促す指間隔ガイド332、手を上下左右に回転するように促す回転ガイド333、が表示されている。表示されたガイドに応じて利用者は手をかざして動かすことにより、様々な姿勢の手の画像が入力される。図6の例では、利用者は左手を翳しているが、右手を翳してもよい。
ガイダンスメッセージ331、指間隔ガイド332、及び回転ガイド333はそれぞれ一例であり、利用者がどのように手を提示すればいいのか視覚的に理解できれば、ガイダンスメッセージやガイドの内容は問わない。また、指間隔ガイド332及び回転ガイド333は静止画で表示されてもよいし、動画で表示されてもよい。
図7は、認証処理時に利用者に手の姿勢を修正するように誘導するために表示装置36に表示するガイドの一例である。表示装置36には、翳されている手、並びに認証処理のステップS306で算出された第1軸比率及び第2軸比率の絶対差を可視化した第1軸ガイド334及び第2軸ガイド335、が表示されている。ステップS306において指の間隔が不十分であると判定された場合(即ち隣接する指同士の各角度差分が所定閾値以上であると判定された場合)、表示装置36にガイダンスメッセージ336も表示するとよい。利用者は、表示されたガイドを基に手の姿勢を修正することで、生体認証に成功しやすい姿勢の手の画像を入力することができる。
第1軸ガイド334及び第2軸ガイド335それぞれは、固定長の長方形と可変長の長方形の2つの長方形で形成されている。各軸のガイドにおいて、当該軸の比率の絶対差が小さい程に可変長の長方形は固定長の長方形に近づき、絶対差が0の時に固定長の長方形と同じになる。可変長の長方形は大きさに応じて色を変化してもよい。具体的には、可変長方形が小さい(比率の絶対差が大きい)場合は赤色になり、可変長方形が大きい(比率の絶対差が小さい)場合は緑色になる等してもよい。翳されている手が登録データの姿勢にどれ程近いかを図形や色で表示することにより、利用者は視覚的にどのように手の修正をすればいいのか理解できる。
図7(a)は、翳された手が登録データの姿勢情報に対してロール回転やピッチ回転が発生していない場合の例である。登録データに対してロール回転やピッチ回転がない場合、その軸での絶対差が0になるため、両軸のガイドにおいて可変長方形は固定長方形と同一の大きさであり、重複する位置に表示されているため、可変長方形のみが視認可能である。
図7(b)は、翳された手が登録データの姿勢情報に対してロール回転やピッチ回転していないが、指の間隔が不十分である場合の例である。図7(a)と同様、登録データに対してロール回転やピッチ回転がないため、可変長方形は固定長方形と同一の大きさである。しかし、指の間隔が不十分なため、指の間隔を広げるように促すガイダンスメッセージ336が表示されている。
図7(c)は、翳された手が登録データの姿勢情報に対してロール回転が発生しているが、ピッチ回転は発生していない例である。翳された手は登録データに対してピッチ回転が発生していないため、第2軸ガイド335の可変長方形は固定長方形と同一である。しかし、翳された手が登録データに対してロール回転が発生しているため、第1軸ガイド334の可変長方形は固定長方形より小さいものとなる。
図7(d)は、翳された手が登録データの姿勢情報に対してロール回転が発生していないが、ピッチ回転が発生している例である。翳された手は登録データに対してロール回転が発生していないため、第1軸ガイド334の可変長方形は固定長方形と同一である。しかし、翳された手が登録データに対してピッチ回転が発生しているため、第2軸ガイド335の可変長方形は固定長方形より小さいものとなる。
利用者に手の姿勢を修正するように誘導するために表示されるガイドは図7で示した内容に限定されない。例えば、登録データの姿勢情報に対して両軸で回転が発生している場合は両軸において姿勢の絶対差に応じたガイド(例えば、絶対差が所定値以上であれば大きくロール回転やピッチ回転を促すメッセージを表示したり、絶対差が所定値以下であれば小さくロール回転やピッチ回転を促すメッセージを表示したりする)を表示する。また、別の例として、登録データの姿勢情報に対してロール回転が発生しておりかつ指の間隔が不十分であれば、両軸のガイドに加えてガイダンスメッセージ336も表示してもよい。
以上本実施例に係る生体認証システム10は、登録時には撮影された動画から生成される複数静止画から、登録データに用いるのに最適な画像を姿勢検出に基づいて選択して登録し、認証時には姿勢検出と姿勢判定を用いて翳された手の姿勢情報が登録データの姿勢情報の一定範囲内かを判断し、生体認証の実行または利用者に手を修正するように促すガイドを表示する。
また、本実施例に係る生体認証システム10は、利用者の手の横幅、中指の縦幅、及び中指の横幅を、姿勢検出処理及び姿勢判定処理に用いることによって利用者ごとに異なる手の形や指の長さなどのばらつきを許容することができ、利用者ごとに最適な手の姿勢で登録および認証ができる。また、本実施例に係る生体認証システム10は、2軸での姿勢判定を行うことにより、認証時において、登録時の姿勢の再現が容易になり、利用者への負担を軽減することができる。
本実施例では、登録処理及び認証処理に含まれる一部の処理が実施例1とは異なる。本実施例の生体認証システム10は、登録時に手の姿勢検出に基づき複数の姿勢において画像をそれぞれ選択して登録し、認証時に手の姿勢検出を用いて検出された手の姿勢情報に最も近い登録データを取得して、当該登録データを用いて生体認証を行う。以下、実施例1との相違点を主に説明する。
図8は、登録処理の一例を示すフローチャートである。姿勢検出部322は、全ての静止画を処理したと判定した場合(S206:YES)、未選択の画像のうち所定条件を満たす画像を選択する(S807)。具体的には、例えば、姿勢検出部322は、第1軸比率と第2軸比率が最大(例えば第1軸比率と第2軸比率の和が最大)である画像と、第1軸比率が最大かつ第2軸の最大比率(つまりステップS205で算出された最大の第2軸比率)に対する第2軸比率の割合が所定値(又は当該割合が所定範囲に含まれるとしてもよい)である画像と、第2軸比率が最大かつ第1軸の最大比率(つまりステップS205で算出された最大の第1軸比率)に対する第1軸比率の割合が所定値(又は当該割合が所定範囲に含まれるとしてもよい)である画像と、第1軸の最大比率に対する第1軸比率の割合が所定範囲内かつ第2軸の最大比率に対する第2軸比率の割合が所定範囲内である画像と、を選択する。
この具体例は一例であり、例えば、第1軸比率及び第2軸比率の数値を予めそれぞれ複数設定し、設定した数値に基づいて姿勢組合せ(つまり第1軸比率と第2軸比率の組み合わせ)を予め用意してもよい。この場合、姿勢検出部322は、予め設定した姿勢組み合わせ(第1軸比率と第2軸比率の組み合わせ)それぞれに最も近い姿勢(当該第1軸比率と第2軸比率の組み合わせに最も近い第1軸比率と第2軸比率の組み合わせ)の画像を選択する。
また、例えば、姿勢検出部322は、利用者の手の回転による各比率の増減に基づいて画像を複数選択してもよい。第1軸比率及び第2軸比率は指が撮像装置2に対して水平にかざされているほど大きくなり、指が撮像装置2に対して傾いている程にそれぞれの比率が小さくなる。そのため、手が撮像装置2に対して左に傾いている状態から右に傾くように回転させた場合、第1軸比率が増大して最大になった後に減少する。その際に、姿勢検出部322は、増大している時点の画像(例えば、第1軸比率が所定時間内に所定値以上増加したとき(又は最も増加したとき)の画像)と、減少している時点の画像(例えば、第1軸比率が所定時間内に所定値以上減少したとき(又は最も減少したとき)の画像)と、を選択することによって、異なる傾きでの画像を選択することができる。これは第1軸比率において右から左に手を回転させた場合でも同じであり、第2軸比率においても上下の回転で同じく比率が増減する。
また、例えば、姿勢検出部322は、利用者の各指の横幅や、指の指先側の横幅と指の根本側の横幅に基づいて画像を複数選択してもよい。例えば、指と掌の接続部分の横幅を指の横幅と定義する、又は隣接する指股若しくは図5(a)に示す接点115の間の距離を指の横幅としてもよい。また、指の指先側の横幅及び指の根本側の横幅をそれぞれ指先から指の根本へ指の長さの一定割合の距離を移動した位置での横幅と定義し、手の輪郭において指先から各方向へその一定割合の距離を移動した時の2つの点の距離をそれぞれの横幅として算出できる。例えば、指先から指の長さの1/4の位置および3/4の位置での横幅をそれぞれ指先側の横幅と指の根本側の横幅として定義しもよい。
手が撮像装置2に対してロール回転している場合、人差し指又は小指の一方が撮像装置2に近くなり、他方の指は撮像装置2から遠ざかる。よって、姿勢検出部322は、人差し指の横幅と小指の横幅との比率に基づいて、第1軸での傾きが異なる複数の画像を選択することができる(例えば、姿勢検出部322は人差し指の横幅に対する小指の横幅の比率が所定値以上の画像と、当該比率が所定値未満の画像と、を選択する)。
同様に、手が撮像装置2に対してピッチ回転している場合、指先側又は根本側の一方が撮像装置2に近づき、他方が撮像装置2から遠ざかる。よって、姿勢検出部322は、特定の指、例えば中指、の指先側の横幅と根本側の横幅の比率に基づいて第2軸での傾きが異なる複数の画像を選択することができる(例えば、姿勢検出部322は中指の指先側の横幅に対する中指の根本側の横幅の比率が所定値以上の画像と、当該比率が所定値未満の画像と、を選択する)。
姿勢検出部322は、ステップS807で選択した画像に対して、ステップS208~ステップS211の処理を実行する。姿勢検出部322は、様々な姿勢にて十分な量の画像が登録されたかを判定する(S812)。
具体的には、例えば、姿勢検出部322は、登録された姿勢組合せの数に基づいて十分な量の画像が登録されたかを判定してもよいし(例えば予め定められた第1軸比率と第2軸比率の組み合わせそれぞれに対応する画像が登録されたかを判定する)、登録されたデータ(画像)の数に基づいて十分な量の画像が登録されたかを判定してもよい。
例えば、9つの姿勢組合せが予め定義されている場合、姿勢検出部322は、各姿勢組合せのデータ(画像)が1つ以上登録されたと判定した場合には、十分な量の画像が登録されたと判定する。また、例えば、姿勢検出部322は、姿勢組合せを問わずに10以上のデータ(画像)が登録されたと判定した場合、十分な量の画像が登録されたと判定する。
姿勢検出部322は、十分な量の画像が登録されたと判定した場合(S812:YES)、登録処理を終了し、十分な量の画像が登録されていないと判定した場合(S812:NO)、ステップS807に戻る。
図9は、認証処理の一例を示すフローチャートである。説明の簡略化のため、ステップS303では静止画が1つだけ生成されたものとする。
ステップS304に続いて、サーバ5のデータ取得部522は、ステップS304で検知された姿勢情報に最も近い登録データをサーバ5から取得する(S905)。具体的には、例えば、ステップS304において、姿勢検出部322は、検出した姿勢情報を登録データ要求と併せてサーバ5へ送信する。ステップS905において、サーバ5のデータ取得部522は、受信した姿勢情報に最も近い姿勢情報で登録されたデータをデータベース530から取得して情報処理装置3へ送信する。このとき、複数のデータが同一の姿勢情報で登録されている場合、データ取得部522は、該当する登録データを全て情報処理装置3へ送信する。
ステップS905に続いて、ステップS306に遷移し、その後の処理は図3と同様であるため説明を省略する。但し、ステップS905において情報処理装置3が複数の登録データをサーバ5から受信した場合、ステップS310において、生体認証部326は、全ての登録データに対して生体認証を行い、最も高い類似度を最終類似度に決定し、登録テンプレートと認証テンプレートが類似しているかを判定する。
以上、本実施例に係る生体認証システム10は、登録時に撮影された動画から複数の静止画を生成し、手の姿勢検出に基づき複数の姿勢において画像をそれぞれ1つ以上選択して登録する。さらに、本実施例に係る生体認証システム10は、認証時には姿勢検出を用いて翳された手の姿勢情報に最も近い登録データを取得し、姿勢判定を用いて登録データの姿勢情報の一定範囲内かを判断し、生体認証の実行又は利用者に手の画像を修正するように促すガイドを表示する。
本実施例の生体認証システム10は、複数の姿勢のデータを登録し、最も近い登録データと姿勢判定を行うことによって、登録時の姿勢の再現がより容易になり、ひいては利用者への負担を更に軽減することができる。