(57)【特許請求の範囲】
【請求項１】
データベース内のデータから、当該データと照合される照合データを生成する生成部と、
生成された照合データと前記データベース内の複数のデータのそれぞれとの照合にかかる照合時間を前記データごとに算出する算出部と、
算出された照合時間に基づいて、前記データベース内の複数のデータをグループに配分する配分部とを備え、
前記生成部は、前記データを正規化するための複数パターンの前記照合データを生成し、
前記算出部は、前記データベース内の複数のデータのそれぞれと、前記複数パターンの照合データのそれぞれとの照合にかかる照合時間を、前記データごとに算出する
ことを特徴とする評価サーバ。
【請求項２】
データベース内のデータから、当該データと照合される照合データを生成する生成部と、
生成された照合データと前記データベース内の複数のデータのそれぞれとの照合にかかる照合時間を前記データごとに算出する算出部と、
算出された照合時間に基づいて、前記データベース内の複数のデータをグループに配分する配分部と、
複数の照合時間から特徴量を算出する特徴量算出部とを備え、
前記生成部は、前記照合データを複数生成し、
前記算出部は、生成された複数の照合データのそれぞれと、前記データベース内の複数のデータのそれぞれとの照合にかかる複数の照合時間を前記データごとに算出し、
前記特徴量算出部は、前記データごとに、算出された複数の照合時間から特徴量を算出し、
前記配分部は、算出された特徴量同士を比較し、特徴量が近いデータほど特徴量が遠いデータに比べて異なるグループに配分する
ことを特徴とする評価サーバ。
【請求項３】
前記算出部によって算出された照合時間のうち最小又は最大の照合時間が算出されたデータを前記生成部に特定させ、前記生成部によって特定されたデータと、前記データベース内の複数のデータのそれぞれとの照合にかかる照合時間を当該データごとに算出させる制御部をさらに備え、
前記生成部は、算出された照合時間のうち最小又は最大の照合時間が算出されたデータを特定し、
前記算出部は、特定されたデータと、前記データベース内の複数のデータのそれぞれとの照合にかかる照合時間を当該データごとに算出し、
前記制御部は、前記算出部によって所定数の照合時間が算出されるまで、前記算出部によって算出された照合時間のうち最小又は最大の照合時間が算出されたデータを前記生成部に特定させ、前記生成部によって特定されたデータと、前記データベース内の複数のデータのそれぞれとの照合にかかる照合時間を当該データごとに算出させ、
前記特徴量算出部は、算出された所定数の照合時間を用いて、前記データごとに特徴量を算出することを特徴とする請求項２に記載の評価サーバ。
【請求項４】
前記特徴量算出部は、前記特徴量として、前記照合時間の平均値と前記照合時間の分散値とを前記データごとに算出し、
前記配分部は、算出された平均値及び分散値を２軸とする座標上に前記複数のデータを配置し、当該座標上で前記データのクラスタリングを行い、クラスタに含まれる前記データの数が所定数になった場合に、当該クラスタに含まれるデータをグループに配分することを特徴とする請求項２に記載の評価サーバ。
【請求項５】
データベース内のデータから、当該データと照合される照合データを生成する生成部と、
生成された照合データと前記データベース内の複数のデータのそれぞれとの照合にかかる照合時間を前記データごとに算出する算出部と、
算出された照合時間に基づいて、前記データベース内の複数のデータをグループに配分する配分部と、
算出された第１照合時間と、前回配分した際に生成された照合データと前記データベース内の複数のデータのそれぞれとの照合にかかる第２照合時間とを比較し、比較結果に基づいて、前記データを前記グループに配分するか否かを判定する判定部とを備え、
前記配分部は、前記データを前記グループに配分すると判定された場合に、当該データを当該グループに配分する
ことを特徴とする評価サーバ。
【請求項６】
データベース内のデータから、当該データと照合される照合データを生成する生成部と、
生成された照合データと前記データベース内の複数のデータのそれぞれとの照合にかかる照合時間を前記データごとに算出する算出部と、
算出された照合時間に基づいて、前記データベース内の複数のデータをグループに配分する配分部とを備え、
前記生成部は、前記データベース内の複数のデータに含まれる各要素の平均値を算出し、算出した平均値を各要素に含む平均データを生成し、
前記算出部は、生成された平均データと前記データベース内の複数のデータのそれぞれとの照合にかかる照合時間を前記データごとに算出する
ことを特徴とする評価サーバ。
【請求項７】
コンピュータに、
データベース内のデータから、当該データと照合される照合データを生成し、
生成された照合データと前記データベース内の複数のデータのそれぞれとの照合にかかる照合時間を前記データごとに算出し、
算出された照合時間に基づいて、前記データベース内の複数のデータをグループに配分する各処理を実行させ、
前記生成する処理は、前記データを正規化するための複数パターンの前記照合データを生成し、
前記照合時間を算出する処理は、前記データベース内の複数のデータのそれぞれと、前記複数パターンの照合データのそれぞれとの照合にかかる照合時間を、前記データごとに算出する
ことを特徴とする評価プログラム。
【請求項８】
コンピュータに、
データベース内のデータから、当該データと照合される照合データを生成し、
生成された照合データと前記データベース内の複数のデータのそれぞれとの照合にかかる照合時間を前記データごとに算出し、
算出された照合時間に基づいて、前記データベース内の複数のデータをグループに配分し、
複数の照合時間から特徴量を算出する各処理を実行させ、
前記生成する処理は、前記照合データを複数生成し、
前記照合時間を算出する処理は、生成された複数の照合データのそれぞれと、前記データベース内の複数のデータのそれぞれとの照合にかかる複数の照合時間を前記データごとに算出し、
前記特徴量を算出する処理は、前記データごとに、算出された複数の照合時間から特徴量を算出し、
前記配分する処理は、算出された特徴量同士を比較し、特徴量が近いデータほど特徴量が遠いデータに比べて異なるグループに配分する
ことを特徴とする評価プログラム。
【請求項９】
前記生成する処理は、算出された照合時間のうち最小又は最大の照合時間が算出されたデータを特定し、
前記照合時間を算出する処理は、特定されたデータと、前記データベース内の複数のデータのそれぞれとの照合にかかる照合時間を当該データごとに算出し、
前記照合時間を算出する処理によって所定数の照合時間が算出されるまで、前記照合時間を算出する処理によって算出された照合時間のうち最小又は最大の照合時間が算出されたデータを前記生成する処理に特定させ、前記生成する処理によって特定されたデータと、前記データベース内の複数のデータのそれぞれとの照合にかかる照合時間を当該データごとに算出させ、
前記特徴量を算出する処理は、算出された所定数の照合時間を用いて、前記データごとに特徴量を算出することを特徴とする請求項８に記載の評価プログラム。
【請求項１０】
前記特徴量を算出する処理は、前記特徴量として、前記照合時間の平均値と前記照合時間の分散値とを前記データごとに算出し、
前記配分する処理は、算出された平均値及び分散値を２軸とする座標上に前記複数のデータを配置し、当該座標上で前記データのクラスタリングを行い、クラスタに含まれる前記データの数が所定数になった場合に、当該クラスタに含まれるデータをグループに配分することを特徴とする請求項８に記載の評価プログラム。
【請求項１１】
コンピュータに、
データベース内のデータから、当該データと照合される照合データを生成し、
生成された照合データと前記データベース内の複数のデータのそれぞれとの照合にかかる照合時間を前記データごとに算出し、
算出された照合時間に基づいて、前記データベース内の複数のデータをグループに配分し、
算出された第１照合時間と、前回配分した際に生成された照合データと前記データベース内の複数のデータのそれぞれとの照合にかかる第２照合時間とを比較し、比較結果に基づいて、前記データを前記グループに配分するか否かを判定する各処理を実行させ、
前記配分する処理は、前記データを前記グループに配分すると判定された場合に、当該データを当該グループに配分する
ことを特徴とする評価プログラム。
【請求項１２】
コンピュータに、
データベース内のデータから、当該データと照合される照合データを生成し、
生成された照合データと前記データベース内の複数のデータのそれぞれとの照合にかかる照合時間を前記データごとに算出し、
算出された照合時間に基づいて、前記データベース内の複数のデータをグループに配分する各処理を実行させ、
前記生成する処理は、前記データベース内の複数のデータに含まれる各要素の平均値を算出し、算出した平均値を各要素に含む平均データを生成し、
前記照合時間を算出する処理は、生成された平均データと前記データベース内の複数のデータのそれぞれとの照合にかかる照合時間を前記データごとに算出する
ことを特徴とする評価プログラム。
【請求項１３】
コンピュータによって実行される評価方法であって、
前記コンピュータが、
データベース内のデータから、当該データと照合される照合データを生成し、
生成された照合データと前記データベース内の複数のデータのそれぞれとの照合にかかる照合時間を前記データごとに算出し、
算出された照合時間に基づいて、前記データベース内の複数のデータをグループに配分する各処理を実行し、
前記生成する処理は、前記データを正規化するための複数パターンの前記照合データを生成し、
前記照合時間を算出する処理は、前記データベース内の複数のデータのそれぞれと、前記複数パターンの照合データのそれぞれとの照合にかかる照合時間を、前記データごとに算出する
ことを特徴とする評価方法。
【請求項１４】
コンピュータによって実行される評価方法であって、
前記コンピュータが、
データベース内のデータから、当該データと照合される照合データを生成し、
生成された照合データと前記データベース内の複数のデータのそれぞれとの照合にかかる照合時間を前記データごとに算出し、
算出された照合時間に基づいて、前記データベース内の複数のデータをグループに配分し、
複数の照合時間から特徴量を算出する各処理を実行し、
前記生成する処理は、前記照合データを複数生成し、
前記照合時間を算出する処理は、生成された複数の照合データのそれぞれと、前記データベース内の複数のデータのそれぞれとの照合にかかる複数の照合時間を前記データごとに算出し、
前記特徴量を算出する処理は、前記データごとに、算出された複数の照合時間から特徴量を算出し、
前記配分する処理は、算出された特徴量同士を比較し、特徴量が近いデータほど特徴量が遠いデータに比べて異なるグループに配分する
ことを特徴とする評価方法。
【請求項１５】
前記生成する処理は、算出された照合時間のうち最小又は最大の照合時間が算出されたデータを特定し、
前記照合時間を算出する処理は、特定されたデータと、前記データベース内の複数のデータのそれぞれとの照合にかかる照合時間を当該データごとに算出し、
前記照合時間を算出する処理によって所定数の照合時間が算出されるまで、前記照合時間を算出する処理によって算出された照合時間のうち最小又は最大の照合時間が算出されたデータを前記生成する処理に特定させ、前記生成する処理によって特定されたデータと、前記データベース内の複数のデータのそれぞれとの照合にかかる照合時間を当該データごとに算出させ、
前記特徴量を算出する処理は、算出された所定数の照合時間を用いて、前記データごとに特徴量を算出することを特徴とする請求項１４に記載の評価方法。
【請求項１６】
前記特徴量を算出する処理は、前記特徴量として、前記照合時間の平均値と前記照合時間の分散値とを前記データごとに算出し、
前記配分する処理は、算出された平均値及び分散値を２軸とする座標上に前記複数のデータを配置し、当該座標上で前記データのクラスタリングを行い、クラスタに含まれる前記データの数が所定数になった場合に、当該クラスタに含まれるデータをグループに配分することを特徴とする請求項１４に記載の評価方法。
【請求項１７】
コンピュータによって実行される評価方法であって、
前記コンピュータが、
データベース内のデータから、当該データと照合される照合データを生成し、
生成された照合データと前記データベース内の複数のデータのそれぞれとの照合にかかる照合時間を前記データごとに算出し、
算出された照合時間に基づいて、前記データベース内の複数のデータをグループに配分し、
算出された第１照合時間と、前回配分した際に生成された照合データと前記データベース内の複数のデータのそれぞれとの照合にかかる第２照合時間とを比較し、比較結果に基づいて、前記データを前記グループに配分するか否かを判定する各処理を実行し、
前記配分する処理は、前記データを前記グループに配分すると判定された場合に、当該データを当該グループに配分する
ことを特徴とする評価方法。
【請求項１８】
コンピュータによって実行される評価方法であって、
前記コンピュータが、
データベース内のデータから、当該データと照合される照合データを生成し、
生成された照合データと前記データベース内の複数のデータのそれぞれとの照合にかかる照合時間を前記データごとに算出し、
算出された照合時間に基づいて、前記データベース内の複数のデータをグループに配分する各処理を実行し、
前記生成する処理は、前記データベース内の複数のデータに含まれる各要素の平均値を算出し、算出した平均値を各要素に含む平均データを生成し、
前記照合時間を算出する処理は、生成された平均データと前記データベース内の複数のデータのそれぞれとの照合にかかる照合時間を前記データごとに算出する
ことを特徴とする評価方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、評価サーバ、評価プログラム及び評価方法に関する。
【背景技術】
【０００２】
従来、入力データとデータベース内に蓄積されたデータとを照合する技術が存在する。例えば、ユーザの指先から取得される指紋データを用いてユーザを認証する指紋認証においては、ユーザの指先から取得された指紋データと、データベースに予め登録された指紋データとを照合することで、認証結果が出力される。【０００３】
また、例えば、ネットワークに接続された複数の記憶装置を集中管理する分散データベースにおいて、データの参照に要した時間を記憶装置ごとに予め記録しておき、その参照時間に応じてデータの格納場所を割り当てる技術が存在する。【０００４】
また、例えば、データベースを検索するための検索条件をＳＱＬ（Structured  Query  Language）検索文として生成するシステムが存在する。このシステムにおいて、生成したＳＱＬ検索文を用いて検索を実行し、検索に要した時間をＳＱＬ検索文ごとに表示する技術が存在する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平４−１５８３９号公報
【特許文献２】特開２００１−２８２７９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上記の従来技術には、認証に長い時間がかかってしまうという問題がある。例えば、上記の指紋認証においては、数百万人分、あるいは数千万人分といった規模の指紋データがデータベースに登録されることがある。このため、ユーザが指紋認証を利用する場合には、指先から読み取った指紋データと、登録済みの全ての指紋データとを一つ一つ照合することとなるので、認証に長い時間がかかってしまう。【０００７】
また、例えば、データベースに登録される指紋データを複数の記憶装置に分散させ、複数の計算サーバに照合する処理を並列で実行させることが考えられる。しかしながら、この場合、認証結果を出力するためには、並列で実行させた全ての照合処理が完了するまで待つこととなるため、一つでも照合処理の完了が遅延してしまうと、認証に長い時間がかかってしまう。【０００８】
なお、この問題は、上記の指紋認証に限らず、例えば、声紋や手のひらの静脈パターン、眼球の虹彩など、指紋以外の生体情報を用いる生体認証を行う場合にも同様に生じる問題である。さらに、この問題は、生体認証に限られるものでもなく、例えば、入力データとデータベース内のデータとが照合される場合に広く生じ得る問題である。【０００９】
開示の技術は、上記に鑑みてなされたものであって、認証にかかる時間を短縮することができる評価サーバ、評価プログラム及び評価方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本願の開示する技術は、一つの態様において、生成部と、算出部と、配分部とを備える。生成部は、データベース内のデータから、そのデータと照合される照合データを生成する。算出部は、生成された照合データとデータベース内の複数のデータのそれぞれとの照合にかかる照合時間を、データベース内のデータごとに算出する。配分部は、算出された照合時間に基づいて、データベース内の複数のデータをグループに配分する。また、生成部は、データを正規化するための複数パターンの照合データを生成する。また、算出部は、データベース内の複数のデータのそれぞれと、複数パターンの照合データのそれぞれとの照合にかかる照合時間を、データごとに算出する。
【発明の効果】
【００１１】
本願の開示する技術の一つの態様によれば、認証にかかる時間を短縮することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例１に係る評価サーバの機能的構成を示すブロック図である。
【図２】図２は、指紋テーブルに記憶される情報の一例を示す図である。
【図３】図３は、照合時間テーブルに記憶される情報の一例を示す図である。
【図４】図４は、配分テーブルに記憶される情報の一例を示す図である。
【図５】図５は、指紋データのデータ構造の一例について説明するための図である。
【図６】図６は、疑似クエリＱ［０］を生成する処理について説明するための図である。
【図７】図７は、照合時間を算出する処理について説明するための図である。
【図８】図８は、照合時間を算出する処理について説明するための図である。
【図９】図９は、指紋データをグループに配分する処理を説明するための図である。
【図１０】図１０は、実施例１に係る評価サーバの処理手順を示すフローチャートである。
【図１１】図１１は、実施例２に係る評価サーバの機能的構成を示すブロック図である。
【図１２】図１２は、実施例２に係る評価サーバの処理手順を示すフローチャートである。
【図１３】図１３は、実施例３に係る評価サーバの機能的構成を示すブロック図である。
【図１４】図１４は、実施例３に係る評価サーバの処理手順を示すフローチャートである。
【図１５】図１５は、評価プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示する評価サーバ、評価プログラム及び評価方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【００１４】
なお、以下の実施例では、一例として、開示の技術を、ユーザの指先から取得される指紋データを用いてユーザを認証する指紋認証に適用する場合を説明するが、開示の技術はこれに限定されるものではない。例えば、開示の技術は、声紋や手のひらの静脈パターン、眼球の虹彩など、指紋以外の生体情報を用いる生体認証にも同様に適用可能である。さらに、開示の技術は、生体認証に限って適用されるものでもなく、例えば、入力データとデータベース内のデータとを照合する場合や、データベース内のデータから入力データに最も類似するデータを検索する場合などにも広く適用可能である。
【実施例１】
【００１５】
実施例１に係る評価サーバ１００の機能的構成について説明する。実施例１に係る評価サーバ１００は、登録済みの各指紋データについて、照合時間の照合のための指紋データを生成する。評価サーバ１００は、生成した指紋データと登録済みの指紋データとの照合時間をそれぞれ算出し、算出した照合時間が均等になるように指紋データをグループに配分する。このため、評価サーバ１００は、照合処理が並列で実行される際に、グループ単位で照合処理を実行させることができるので、照合にかかる負荷を均一化することができ、認証にかかる時間を短縮することができる。【００１６】
図１は、実施例１に係る評価サーバの機能的構成を示すブロック図である。図１に示すように、評価サーバ１００は、ネットワーク５を介して、操作端末１０と、ＤＢ（Database）サーバ２０と、計算サーバ３０ａ，３０ｂ，３０ｃとにそれぞれ接続される。【００１７】
なお、ネットワーク５としては、有線又は無線を問わず、インターネット（Internet）、ＬＡＮ（Local  Area  Network）やＶＰＮ（Virtual  Private  Network）などの任意の種類の通信網を採用しても良い。また、以下では、計算サーバ３０ａ，３０ｂ，３０ｃの各装置を区別無く総称する場合には、計算サーバ３０と記載する。【００１８】
また、図１に示した例では、評価サーバ１００に操作端末１０と、ＤＢサーバ２０と、３つの計算サーバ３０とが接続される場合を示したが、図示の構成に限定されるものではない。すなわち、評価サーバ１００には、それぞれ任意数の操作端末１０、ＤＢサーバ２０及び計算サーバ３０が接続されて良い。また、評価サーバ１００は、負荷分散のため、複数のサーバ装置により構築されても良い。【００１９】
操作端末１０は、評価サーバ１００を管理する管理者によって操作される端末であり、例えば、パーソナルコンピュータ、ワークステーションなどに対応する。例えば、操作端末１０は、管理者から評価サーバ１００に処理を開始させる指示の入力を受け付け、受け付けた指示の入力を評価サーバ１００に送信する。【００２０】
ＤＢサーバ２０は、指紋認証を利用するユーザの指紋データを記憶する情報管理装置である。例えば、ＤＢサーバ２０は、操作端末１０によって登録された指紋データを記憶する。一態様としては、ＤＢサーバ２０は、後述の指紋テーブル１２１を記憶する。なお、図１に示した例では、１つのＤＢサーバ２０が、指紋認証を利用する全てのユーザの指紋データを記憶する場合を説明したが、開示の技術はこれに限定されるものではなく、例えば、複数のＤＢサーバ２０が複数のユーザの指紋データを分散して記憶しても良い。【００２１】
計算サーバ３０は、指紋認証を行うサーバ装置である。例えば、計算サーバ３０は、図示しないユーザ端末から受信した指紋データと、ＤＢサーバ２０に記憶された登録済みの指紋データとを照合することで、ユーザを認証する。【００２２】
ここで、ユーザ端末について説明する。ユーザ端末は、指紋認証を利用するユーザによって操作される端末であり、例えば、パーソナルコンピュータ、携帯電話及びスマートフォンなどに対応する。例えば、ユーザ端末は、指紋の画像データを読み取るための指紋センサを備え、指紋認証を利用するユーザの指先から指紋の画像データを読み取り、読み取った画像データから指紋データを生成する。この指紋データとは、照合アルゴリズムに応じて画像データから生成されるものであり、例えば、マニューシャ方式の照合アルゴリズムでは、画像データから抽出された指紋の隆線の端点や分岐点のパターンを指す。そして、指紋認証を利用するユーザを登録する場合には、ユーザ端末は、ユーザの指紋データをＤＢサーバ２０へ送信し、送信した指紋データをＤＢサーバ２０に登録する。また、指紋認証によってユーザを認証する場合には、ユーザ端末は、ユーザの指紋データを計算サーバ３０へ送信する。また、例えば、ユーザ端末は、計算サーバ３０から認証結果を受信する。そして、ユーザ端末は、受信した認証結果を表示したり、認証結果に応じた処理を実行したりする。一態様としては、ユーザ端末は、認証に成功したユーザに対して所定の情報へのアクセスを許可したり、所定の場所への通行を許可したりする。なお、登録済みの指紋データと照合するためにユーザ端末によって送信される指紋データを、「クエリ」とも称する。また、ここでは、マニューシャ方式の照合アルゴリズムが適用された場合を説明したが、開示の技術はこれに限定されるものではなく、例えば、パターンマッチング方式や周波数解析方式の照合アルゴリズムも適用可能である。【００２３】
例えば、計算サーバ３０は、クエリと登録済みの指紋データとを並列処理によって照合する。一態様としては、計算サーバ３０は、クエリとの照合対象となる指紋データをＤＢサーバ２０から取得し、取得した指紋データを図示しない内部メモリに記憶する。このとき、計算サーバ３０は、複数の計算サーバ３０で全てのユーザの指紋データを記憶するように、各々の計算サーバ３０が複数の指紋データを分散して記憶する。そして、操作端末１０からクエリを受信すると、各々の計算サーバ３０は、受信したクエリと、自装置の内部メモリに記憶した指紋データとを照合し、照合結果を予め指定された、複数の計算サーバ３０のうちの１つに送信する。各々の計算サーバ３０から照合結果が送信されると、照合結果を受信した計算サーバ３０は、受信した照合結果を集計して認証結果を生成し、認証結果をユーザ端末へ送信する。【００２４】
評価サーバ１００は、ＤＢサーバ２０に登録済みの指紋データから、各指紋データの照合にかかる時間を算出するための疑似的なクエリである擬似クエリを生成する。評価サーバ１００は、生成した擬似クエリと、登録済みの指紋データとの照合時間を、登録済みの指紋データごとに算出する。評価サーバ１００は、算出した照合時間が均等になるように、登録済みの指紋データを各グループに配分する。このため、評価サーバ１００は、照合処理が並列で実行される際に、照合にかかる負荷を均一化することができ、認証にかかる時間を短縮することができる。【００２５】
図１に示すように、この評価サーバ１００は、通信制御部１１０と、記憶部１２０と、制御部１３０とを有する。通信制御部１１０は、例えば、操作端末１０と、ＤＢサーバ２０と、計算サーバ３０と、評価サーバ１００との間で送受信される各種情報に関する通信を制御する。一態様としては、通信制御部１１０は、ネットワークインタフェースカード（ＮＩＣ：Network  Interface  Card）である。【００２６】
記憶部１２０は、例えば、指紋テーブル１２１と、照合時間テーブル１２２と、配分テーブル１２３とを有する。記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子、ハードディスク装置や光ディスク装置などの記憶装置に対応する。【００２７】
指紋テーブル１２１は、指紋認証を利用するユーザの指紋データを記憶する。例えば、指紋テーブル１２１は、後述の取得部１３１によって格納される。また、例えば、指紋テーブル１２１は、後述の生成部１３２及び算出部１３３によって参照される。【００２８】
一態様としては、指紋テーブル１２１は、ユーザＩＤと、指紋データとが対応付けられたデータを記憶する。この「ユーザＩＤ」は、ユーザを識別するための識別子を指す。また、「指紋データ」は、ユーザの指紋データを指す。【００２９】
図２は、指紋テーブルに記憶される情報の一例を示す図である。図２に示す例では、指紋テーブル１２１は、ユーザＩＤ「ユーザ［１］」と、指紋データ「ユーザ［１］の指紋データ」とが対応付けられたデータを記憶する。また、図２に示す例では、指紋テーブル１２１は、他の指紋データについても同様に、ユーザＩＤと指紋データとが対応付けられたデータを記憶する。【００３０】
照合時間テーブル１２２は、擬似クエリと登録済みの指紋データとの照合時間を記憶する。例えば、照合時間テーブル１２２は、算出部１３３及び特徴量算出部１３４によって各種情報が格納される。また、例えば、照合時間テーブル１２２は、生成部１３２、特徴量算出部１３４及び配分部１３５によって参照される。【００３１】
一態様としては、照合時間テーブル１２２は、ユーザＩＤと、擬似クエリとの照合時間と、平均値と、分散値とが対応付けられたデータを記憶する。この「擬似クエリとの照合時間」は、擬似クエリと登録済みの指紋データとの照合時間を指す。また、「平均値」は、擬似クエリとの照合時間の指紋データごとの平均値を指す。また、「分散値」は、擬似クエリとの照合時間の指紋データごとの分散値を指す。【００３２】
図３は、照合時間テーブルに記憶される情報の一例を示す図である。図３の１行目のレコードには、ユーザＩＤ「ユーザ［１］」と、擬似クエリＱ［０］との照合時間「Ｔ［０］［１］」と、擬似クエリＱ［ｍｉｎ１］との照合時間「Ｔ［ｍｉｎ１］［１］」・・・とが対応付けられている。これは、ユーザ［１］の指紋データと擬似クエリＱ［０］との照合時間がＴ［０］［１］であり、ユーザ［１］の指紋データと擬似クエリＱ［ｍｉｎ１］との照合時間がＴ［ｍｉｎ１］［１］であることを示す。また、図３の１行目のレコードには、他の擬似クエリについても同様に、ユーザ［１］の指紋データと擬似クエリとの照合時間が対応付けられている。また、図３の１行目のレコードには、平均値「Ｔ［１］ａｖｅ」と、分散値「Ｔ［１］ｖａｒ」とが対応付けられている。これは、ユーザ［１］の指紋データとそれぞれの擬似クエリとの照合時間の平均値がＴ［１］ａｖｅであり、ユーザ［１］の指紋データとそれぞれの擬似クエリとの照合時間の分散値がＴ［１］ｖａｒであることを示す。また、照合時間テーブル１２２は、他のユーザＩＤについても同様に、ユーザＩＤと、擬似クエリとの照合時間と、平均値と、分散値とが対応付けられたデータを記憶する。【００３３】
配分テーブル１２３は、グループと、各グループに配分された指紋データとの対応関係を記憶する。例えば、配分部１３５によって格納される。【００３４】
一態様としては、この「チャンクＩＤ」は、チャンクを識別するための識別子を指す。なお、チャンクとは、ひとまとまりのデータのことであり、ここでは、グループに配分された指紋データの最小単位を指す。【００３５】
図４は、配分テーブルに記憶される情報の一例を示す図である。図４に示す例では、配分テーブル１２３は、チャンクＩＤ「チャンク［１］」と、ユーザＩＤ「ユーザ［３］、ユーザ［４２］、ユーザ［５５］・・・」とが対応付けられたデータを記憶する。これは、チャンク［１］には、ユーザ［３］の指紋データと、ユーザ［４２］の指紋データと、ユーザ［５５］の指紋データ・・・とが配分されたことを示す。また、配分テーブル１２３は、他のチャンクＩＤについても同様に、チャンクＩＤと、各チャンクに配分された指紋データとの対応関係を記憶する。【００３６】
制御部１３０は、取得部１３１と、生成部１３２と、算出部１３３と、特徴量算出部１３４と、配分部１３５とを有する。制御部１３０の機能は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路により実現することができる。また、制御部１３０の機能は、例えば、ＣＰＵ（Central  Processing  Unit）が所定のプログラムを実行することで実現することができる。【００３７】
取得部１３１は、処理対象となる指紋データをＤＢサーバ２０から取得する。例えば、取得部１３１は、評価サーバ１００を管理する管理者から評価サーバ１００に処理を開始させる指示の入力を操作端末１０から受信すると、処理対象となる指紋データを含む指紋テーブル１２１をＤＢサーバ２０から取得する。そして、取得部１３１は、取得した指紋データを記憶部１２０に格納する。【００３８】
生成部１３２は、データベース内のデータから、そのデータと照合される照合データを生成する。例えば、生成部１３２は、指紋テーブル１２１に記憶された指紋データから、各指紋データの照合にかかる時間を算出するための疑似的なクエリである擬似クエリを生成する。なお、指紋データは、データの一例であり、疑似クエリは、照合データの一例である。【００３９】
例えば、生成部１３２は、指紋テーブル１２１に記憶された指紋データに含まれる各要素の平均値を算出し、算出した平均値を各要素に含む平均データを疑似クエリＱ［０］として生成する。そして、生成部１３２は、疑似クエリＱ［０］を算出部１３３へ出力する。【００４０】
ここで、図５及び図６を用いて、生成部１３２が疑似クエリＱ［０］を算出する処理について説明する。図５は、指紋データのデータ構造の一例について説明するための図である。図５に示すように、例えば、指紋データ５ａは、複数の要素５ｂを含む多次元配列データとして定義される。この要素５ｂは、例えば、要素５ｂごとに予め規定された条件で指紋の画像データから抽出された指紋の隆線の端点や分岐点のパターンに対応する。なお、ここでは、指紋データ５ａが１０個の要素５ｂを含む場合を例示したが、開示の技術はこれに限定されるものではなく、指紋データ５ａは、任意の数の要素５ｂを含んでいても良い。【００４１】
図６は、疑似クエリＱ［０］を生成する処理について説明するための図である。図６に示すように、生成部１３２は、複数の指紋データ５ａの要素５ｂごとに、対応する要素６ａの平均値６ｂを算出する。そして、生成部１３２は、算出した要素５ｂごとの平均値６ｂを要素として含む平均データ６ｃを疑似クエリＱ［０］として生成する。なお、ここでは、生成部１３２が指紋データに含まれる各要素の平均値を算出することで疑似クエリＱ［０］を生成する場合を例示したが、開示の技術はこれに限定されるものではない。例えば、生成部１３２は、指紋テーブル１２１に記憶された指紋データから一つの指紋データをランダムに選択し、選択した指紋データを疑似クエリＱ［０］として用いても良い。【００４２】
また、例えば、生成部１３２は、算出部１３３によって算出された指紋データごとの照合時間のうち、最小の照合時間が算出された指紋データを特定する。そして、生成部１３２は、特定した指紋データを疑似クエリとして算出部１３３へ出力する。【００４３】
ここで、生成部１３２が登録済みの指紋データから擬似クエリを生成するのは、認証が行われる場合には、登録済みの指紋データと似通った指紋データがクエリとして入力される可能性が高いと考えられるからである。これは、実際に入力されるクエリに似通った疑似クエリを生成するという趣旨である。【００４４】
図１の説明に戻る。算出部１３３は、生成された照合データとデータベース内の複数のデータのそれぞれとの照合にかかる照合時間を、そのデータごとに算出する。例えば、算出部１３３は、生成部１３２によって生成された疑似クエリと、指紋テーブル１２１に記憶された各指紋データとを照合し、照合時間を指紋データごとに測定する。そして、算出部１３３は、測定した照合時間を照合時間テーブル１２２に格納する。算出部１３３は、所定数の照合時間を測定するまで、疑似クエリと各指紋データとの照合時間を測定する。そして、算出部１３３は、所定数の照合時間を測定した場合に、測定した所定数の照合時間を特徴量算出部１３４へ出力する。【００４５】
図７及び図８を用いて、生成部１３２及び算出部１３３によって照合時間を算出する処理について説明する。図７及び図８は、照合時間を算出する処理について説明するための図である。【００４６】
図７に示すように、算出部１３３は、生成部１３２によって疑似クエリＱ［０］が生成されると、ユーザ［１］〜［ｎ］までの各ユーザの指紋データと、疑似クエリＱ［０］との照合時間Ｔ［０］［１］〜Ｔ［０］［ｎ］を算出する。そして、算出部１３３は、疑似クエリＱ［０］との照合時間Ｔ［０］［１］〜Ｔ［０］［ｎ］を照合時間テーブル１２２に格納する。【００４７】
疑似クエリＱ［０］との照合時間Ｔ［０］［１］〜Ｔ［０］［ｎ］が照合時間テーブル１２２に格納されると、生成部１３２は、照合時間Ｔ［０］［１］〜Ｔ［０］［ｎ］のうち、最小の照合時間が算出された指紋データを次の疑似クエリとして特定する。一例として、照合時間Ｔ［０］［１］〜Ｔ［０］［ｎ］のうち、最小の照合時間がＴ［０］［２］である場合には、生成部１３２は、ユーザ［２］の指紋データを次の疑似クエリＱ［ｍｉｎ１］として特定する。生成部１３２は、特定した疑似クエリＱ［ｍｉｎ１］を算出部１３３へ出力する。【００４８】
生成部１３２によって疑似クエリＱ［ｍｉｎ１］が特定されると、算出部１３３は、図８に示すように、ユーザ［１］〜［ｎ］までの各ユーザの指紋データと、疑似クエリＱ［ｍｉｎ１］との照合時間Ｔ［ｍｉｎ１］［１］〜Ｔ［ｍｉｎ１］［ｎ］を算出する。そして、算出部１３３は、疑似クエリＱ［ｍｉｎ１］との照合時間Ｔ［ｍｉｎ１］［１］〜Ｔ［ｍｉｎ１］［ｎ］を照合時間テーブル１２２に格納する。これ以降、疑似クエリとの照合時間が照合時間テーブル１２２に格納されるごとに、生成部１３２は、算出された照合時間のうち、最小の照合時間が算出された指紋データを次の疑似クエリとして特定する。一例としては、生成部１３２は、疑似クエリＱ［０］〜Ｑ［ｍｉｎｖ］までの［ｖ＋１］個の疑似クエリを特定する。また、算出部１３３は、生成部１３２によって疑似クエリが特定されるごとに、各ユーザの指紋データと、疑似クエリとの照合時間を算出する。一例としては、算出部１３３は、各ユーザの指紋データについて、疑似クエリＱ［０］〜Ｑ［ｍｉｎｖ］との照合時間Ｔ［０］［１］〜Ｔ［ｍｉｎｖ］［ｎ］を算出する。そして、算出部１３３は、所定数［ｖ＋１］の照合時間を算出すると、算出した照合時間Ｔ［０］［１］〜Ｔ［ｍｉｎｖ］［ｎ］を特徴量算出部１３４へ出力する。【００４９】
ここで、算出部１３３が複数の疑似クエリを用いて照合時間を算出するのは、照合対象となる２つのデータの組み合わせに依存して照合時間が変化してしまうからである。これは、複数の疑似クエリを用いて照合時間を算出することで、指紋データごとの照合時間が特定の値に偏ってしまうことを防ぐという趣旨である。また、複数の疑似クエリを生成するために、算出された照合時間のうち最小の照合時間が算出された指紋データを用いるのは、異なる性質の指紋データを疑似クエリとすることができるからである。これは、同様の性質の指紋データばかりが疑似クエリとして生成されてしまい、指紋データごとの照合時間が特定の値に偏ってしまうことを防ぐという趣旨である。【００５０】
図１の説明に戻る。特徴量算出部１３４は、複数の照合時間から特徴量を算出する。例えば、特徴量算出部１３４は、算出部１３３によって算出された照合時間から、照合時間の平均値と照合時間の分散値とを指紋データごとに算出する。特徴量算出部１３４は、算出した平均値及び分散値を照合時間テーブル１２２に格納する。なお、照合時間の平均値及び照合時間の分散値は、特徴量の一例である。【００５１】
一態様としては、特徴量算出部１３４は、照合時間Ｔ［０］［１］〜Ｔ［ｍｉｎｖ］［１］までの和を算出し、算出した和を所定数［ｖ＋１］で除算することで、ユーザ［１］の照合時間の平均値Ｔ［１］ａｖｅを算出する。また、特徴量算出部１３４は、照合時間Ｔ［０］［１］〜Ｔ［ｍｉｎｖ］［１］と平均値Ｔ［１］ａｖｅとの差をそれぞれ算出し、算出したそれぞれの差の２乗の和を所定数［ｖ＋１］で除算することで、ユーザ［１］の照合時間の分散値Ｔ［１］ｖａｒを算出する。特徴量算出部１３４は、平均値Ｔ［１］ａｖｅ及び分散値Ｔ［１］ｖａｒを照合時間テーブル１２２に格納する。また、特徴量算出部１３４は、他のユーザＩＤの照合時間についても同様に、平均値Ｔ［ｎ］ａｖｅ及び分散値Ｔ［ｎ］ｖａｒを算出し、算出した値を照合時間テーブル１２２に格納する。【００５２】
配分部１３５は、算出された照合時間に基づいて、データベース内の複数のデータをグループに配分する。例えば、特徴量算出部１３４によって算出された特徴量同士を比較し、特徴量が近い指紋データほど特徴量が遠い指紋データに比べて異なるグループに配分する。そして、配分部１３５は、グループと、各グループに配分された指紋データとの対応関係を配分テーブル１２３に格納する。【００５３】
図９は、指紋データをグループに配分する処理を説明するための図である。図９に示すように、例えば、配分部１３５は、特徴量算出部１３４によって算出された平均値及び分散値を２軸とする座標上にユーザの指紋データを配置する。そして、配分部１３５は、座標上で、ユーザの指紋データのクラスタリングを行い、クラスタに含まれる指紋データの数が所定数になった場合に、そのクラスタに含まれるデータをチャンクに配分する。図９に示す例では、例えば、クラスタ９ａに含まれるユーザの指紋データは、他の指紋データと比較して平均値及び分散値が近い値となる。このため、配分部１３５は、クラスタ９ａに含まれるユーザの指紋データを異なるチャンクに配分する。一例としては、配分部１３５は、クラスタ９ａに含まれるユーザの指紋データの数がチャンク数の整数倍となった場合に、ユーザの指紋データを各チャンクに均等に配分する。そして、配分部１３５は、チャンクＩＤと、各チャンクに配分された指紋データのユーザＩＤとの対応関係を配分テーブル１２３に格納する。なお、配分部１３５は、チャンク数の整数倍となった場合にのみ配分するものではなく、整数倍より多ければ、各チャンクへ配分してもよい。この場合、配分部１３５は、各チャンクへ配分した後に、未配分の指紋データを適切なチャンクへ配分することとなる。また、配分部１３５が指紋データをクラスタリングする方法は、上記の方法に限定されるものではなく、既存のいかなるクラスタリング方法でも適用可能である。【００５４】
また、例えば、配分部１３５は、指紋データが配分されたチャンクの数が均等になるように、チャンクをそれぞれの計算サーバ３０に配分する。一態様としては、配分部１３５は、指紋データが配分されたチャンクの数を計算サーバ３０の数で除算し、それぞれの計算サーバ３０に配分するチャンクの数を算出する。配分部１３５は、算出した数のチャンクをそれぞれの計算サーバ３０に配分する。配分部１３５は、それぞれの計算サーバ３０に配分したチャンクに含まれるユーザＩＤを、それぞれの計算サーバ３０へ送信する。このため、配分部１３５は、それぞれの計算サーバ３０における照合時間が同程度になるように、それぞれの計算サーバ３０に登録済みの指紋データを取得させることができる。【００５５】
次に、実施例１に係る評価サーバの処理手順について説明する。図１０は、実施例１に係る評価サーバの処理手順を示すフローチャートである。図１０に示す処理は、例えば、取得部１３１が、評価サーバ１００に処理を開始させる指示の入力を操作端末１０から受信したことを契機として実行される。【００５６】
図１０に示すように、取得部１３１は、処理タイミングになると（ステップＳ１０１肯定）、処理対象となる指紋データをＤＢサーバ２０から取得する（ステップＳ１０２）。生成部１３２は、取得部１３１によって取得された指紋データから、擬似クエリＱ［０］を生成する（ステップＳ１０３）。【００５７】
算出部１３３は、生成部１３２によって生成された疑似クエリとの照合時間を算出する（ステップＳ１０４）。そして、算出部１３３は、所定数の照合時間を算出するまで（ステップＳ１０５否定）、算出した照合時間のうち最小の照合時間が算出された指紋データを特定し（ステップＳ１０６）、ステップＳ１０４の処理に移行する。【００５８】
算出部１３３によって所定数の照合時間が算出されると（ステップＳ１０５肯定）、特徴量算出部１３４は、照合時間の平均値及び分散値を指紋データごとに算出する（ステップＳ１０７）。配分部１３５は、特徴量算出部１３４によって算出された平均値及び分散値に基づいて、指紋データをグループに配分する（ステップＳ１０８）。そして、配分部１３５は、グループと、各グループに配分された指紋データとの対応関係を配分テーブル１２３に格納する（ステップＳ１０９）。【００５９】
次に、実施例１に係る評価サーバの効果について説明する。実施例１に係る評価サーバ１００は、ＤＢサーバ２０に記憶された指紋データから、その指紋データと照合される照合データを生成する。評価サーバ１００は、生成した照合データとＤＢサーバ２０に記憶された複数の指紋データのそれぞれとの照合にかかる照合時間を、指紋データごとに算出する。評価サーバ１００は、算出した照合時間に基づいて、ＤＢサーバ２０に記憶された複数の指紋データをグループに配分する。このため、評価サーバ１００は、照合処理が並列で実行される際に、照合にかかる負荷を均一化することができ、認証にかかる時間を短縮することができる。【００６０】
例えば、評価サーバ１００は、各グループに含まれる各指紋データの照合時間が均等になるように、各指紋データをグループに配分することができる。よって、評価サーバ１００は、グループの数が均等になるように指紋データをそれぞれの計算サーバ３０に取得させることで、それぞれの計算サーバ３０にかかる負荷を同程度にすることができる。したがって、評価サーバ１００は、それぞれの計算サーバ３０に並列で実行させる照合処理の一部が遅延するという事態を防ぐことができる結果、認証にかかる時間を短縮することができる。
【実施例２】
【００６１】
上記の実施例では、登録済みの指紋データの正規化にかかる時間を考慮しない場合を説明した。すなわち、指紋認証では、ユーザの指紋データをＤＢサーバ２０に登録する際に、指紋センサで読み取った指紋の向きが回転した状態で登録されてしまうことがある。この場合、登録済みの指紋データを正規化してから照合することとなるが、上記の実施例では、この正規化にかかる時間を考慮せず、正規化にかかる時間を含む照合時間を算出する場合を説明した。しかし、開示の技術は、登録済みの指紋データの正規化にかかる時間を考慮した上で照合時間を算出する場合にも適用できる。そこで、実施例２では、登録済みの指紋データの正規化にかかる時間を考慮した上で照合時間を算出する場合について説明する。なお、実施例２では、クエリ又は疑似クエリと、登録済みの指紋データとを照合する際に、登録済みの指紋データの指紋の回転角度を調整することを正規化と呼ぶが、登録済みの指紋データの種々の属性を調整する処理であれば、何れの処理であっても良い。【００６２】
実施例２に係るに係る評価サーバ２００の機能的構成について説明する。図１１は、実施例２に係る評価サーバの機能的構成を示すブロック図である。図１１に示すように、評価サーバ２００は、通信制御部１１０と、記憶部１２０と、制御部２１０とを有する。このうち、図１１に示す通信制御部１１０及び記憶部１２０の機能は、図１に示した通信制御部１１０及び記憶部１２０の機能とそれぞれ同様である。なお、以下では、上記の実施例１と同様の機能を発揮する機能部については同一の符号を付し、その説明を省略することとする。【００６３】
制御部２１０は、取得部１３１と、生成部２１１と、算出部２１２と、特徴量算出部１３４と、配分部１３５とを有する。このうち、図１１に示す取得部１３１、特徴量算出部１３４及び配分部１３５の機能は、図１に示した取得部１３１、特徴量算出部１３４及び配分部１３５の機能とそれぞれ同様である。【００６４】
生成部２１１は、図１に示した生成部１３２と同様の機能を有し、さらに、データを正規化するための複数パターンの照合データを生成する。例えば、生成部２１１は、生成した１つの疑似クエリに対して、指紋データを正規化するための複数パターンの疑似クエリを生成する。生成部２１１は、生成した複数パターンの疑似クエリを算出部２１２に出力する。【００６５】
例えば、生成部２１１は、指紋認証においてシステム設計上保証されている回転角を所定数ｕ＋１等分に分割し、１つの疑似クエリＱ［ｍｉｎｖ］を生成するごとに、ｕ＋１パターンの疑似クエリＱ［ｍｉｎｖ］［０］〜Ｑ［ｍｉｎｖ］［ｕ］を生成する。生成部２１１は、疑似クエリＱ［ｍｉｎｖ］［０］〜Ｑ［ｍｉｎｖ］［ｕ］を算出部２１２に出力する。【００６６】
一態様として、システム設計上±１０度の回転角が許容されている場合には、生成部２１１は、その疑似クエリを±１度ずつ回転させた２０パターンの疑似クエリＱ［ｍｉｎｖ］［１］〜Ｑ［ｍｉｎｖ］［２０］を生成する。このため、算出部２１２は、回転させる前のパターンの疑似クエリＱ［ｍｉｎｖ］［０］を加えて、２１パターンの疑似クエリを生成することとなる。そして、生成部２１１は、１つの疑似クエリＱ［ｍｉｎｖ］を生成するごとに、生成した疑似クエリＱ［ｍｉｎｖ］［０］〜Ｑ［ｍｉｎｖ］［２０］を算出部２１２に出力する。【００６７】
算出部２１２は、図１に示した算出部１３３と同様の機能を有し、さらに、データベース内の複数のデータのそれぞれと、生成部２１１によって生成された複数パターンの照合データのそれぞれとの照合にかかる照合時間を算出する。そして、算出部２１２は、算出した複数パターンの照合時間から照合時間を一つ選択し、選択した算出時間を照合時間テーブル１２２に格納する。例えば、算出部２１２は、算出した複数パターンの照合時間のうちの最大値と最小値との差分が閾値未満の場合には、データについて算出された算出時間を選択する。また、例えば、算出部２１２は、算出した複数パターンの照合時間のうちの最大値と最小値との差分が閾値以上の場合には、最大値となったパターンの照合時間を選択する。【００６８】
例えば、算出部２１２は、生成部２１１によって生成されたｕ＋１パターンの疑似クエリＱ［ｍｉｎｖ］［０］〜Ｑ［ｍｉｎｖ］［ｕ］のそれぞれと、指紋テーブル１２１に記憶されたユーザ［１］〜［ｎ］それぞれの指紋データとの照合時間を差出する。一例として、算出部２１２は、ユーザ［ｎ］の指紋データと、疑似クエリＱ［ｍｉｎｖ］［０］〜Ｑ［ｍｉｎｖ］［ｕ］との照合時間ＴＣ［０］〜ＴＣ［ｕ］を算出する。そして、算出部２１２は、算出した照合時間ＴＣ［０］〜ＴＣ［ｕ］のうち、最大値と最小値との差分ｑを算出する。そして、算出部２１２は、差分ｑが閾値未満の場合には、正規化前の疑似クエリＱ［ｍｉｎｖ］［０］について算出された照合時間ＴＣ［０］を選択する。一方、算出部２１２は、差分ｑが閾値以上の場合には、最大値となったパターンの照合時間を選択する。一例として、照合時間ＴＣ［０］〜ＴＣ［ｕ］のうち照合時間ＴＣ［３］が最大値であった場合には、照合時間ＴＣ［３］を選択する。なお、ここでは、差分ｑが閾値以上の場合に、最大値となったパターンの照合時間が選択される場合を説明したが、これに限定されるものではなく、例えば、算出した照合時間ＴＣ［０］〜ＴＣ［ｕ］の平均値を算出し、算出した平均値を照合時間テーブル１２２に格納しても良い。【００６９】
次に、実施例２に係る評価サーバの処理手順について説明する。図１２は、実施例２に係る評価サーバの処理手順を示すフローチャートである。図１２に示す処理は、例えば、取得部１３１が、評価サーバ２００に処理を開始させる指示の入力を操作端末１０から受信したことを契機として実行される。【００７０】
図１２に示すように、取得部１３１は、処理タイミングになると（ステップＳ２０１肯定）、処理対象となる指紋データをＤＢサーバ２０から取得する（ステップＳ２０２）。生成部２１１は、取得部１３１によって取得された指紋データから、擬似クエリＱ［０］を生成する（ステップＳ２０３）。【００７１】
生成部２１１は、生成した１つの疑似クエリに対して、複数パターンの疑似クエリを生成する（ステップＳ２０４）。例えば、生成部２１１は、疑似クエリＱ［０］に対して、ｕ＋１パターンの疑似クエリＱ［０］［０］〜Ｑ［０］［ｕ］を生成する。また、例えば、生成部２１１は、疑似クエリＱ［ｍｉｎｖ］に対して、ｕ＋１パターンの疑似クエリＱ［ｍｉｎｖ］［０］〜Ｑ［ｍｉｎｖ］［ｕ］を生成する。【００７２】
算出部２１２は、生成部２１１によって生成された複数パターンの疑似クエリについて、それぞれのパターンに対応する照合時間を算出する（ステップＳ２０５）。例えば、算出部２１２は、ユーザ［ｎ］の指紋データと、疑似クエリＱ［ｍｉｎｖ］［０］〜Ｑ［ｍｉｎｖ］［ｕ］との照合時間ＴＣ［０］〜ＴＣ［ｕ］を算出する。【００７３】
そして、算出部２１２は、算出した複数パターンの照合時間から照合時間を一つ選択する（ステップＳ２０６）。例えば、算出部２１２は、算出した照合時間ＴＣ［０］〜ＴＣ［ｕ］のうち、最大値と最小値との差分ｑを算出する。そして、算出部２１２は、差分ｑが閾値未満の場合には、正規化前の疑似クエリＱ［ｍｉｎｖ］［０］について算出された照合時間ＴＣ［０］を選択する。一方、算出部２１２は、差分ｑが閾値以上の場合には、最大値となったパターンの照合時間を選択する。一例として、照合時間ＴＣ［０］〜ＴＣ［ｕ］のうち照合時間ＴＣ［３］が最大値であった場合には、照合時間ＴＣ［３］を選択する。【００７４】
そして、算出部２１２は、所定数の照合時間を照合時間テーブル１２２に格納するまで（ステップＳ２０７否定）、格納した照合時間のうち最小の照合時間が算出された指紋データを特定し（ステップＳ２０８）、ステップＳ２０４の処理に移行する。【００７５】
算出部２１２によって所定数の照合時間が格納されると（ステップＳ２０７肯定）、特徴量算出部１３４は、照合時間の平均値及び分散値を指紋データごとに算出する（ステップＳ２０９）。配分部１３５は、特徴量算出部１３４によって算出された平均値及び分散値に基づいて、指紋データをグループに配分する（ステップＳ２１０）。そして、配分部１３５は、グループと、各グループに配分された指紋データとの対応関係を配分テーブル１２３に格納する（ステップＳ２１１）。【００７６】
次に、実施例２に係る評価サーバの効果について説明する。実施例２に係る評価サーバ２００は、データを正規化するための複数パターンの照合データを生成する。評価サーバ２００は、データベース内の複数のデータのそれぞれと、生成した複数パターンの照合データのそれぞれとの照合にかかる照合時間を算出する。このため、評価サーバ２００は、登録済みの指紋データの正規化にかかる時間を考慮した上で照合時間を評価することができる。【００７７】
なお、実施例２では、正規化にかかる時間を考慮した上で照合時間を算出する場合の例として指紋データを例示したが、開示の技術はこれに限定されるものではない。例えば、声紋認証における時間方向に伸縮した音声データの正規化にかかる時間を考慮する場合、あるいは、静脈認証における回転した画像データの正規化にかかる時間を考慮する場合などにも適用可能である。
【実施例３】
【００７８】
上記の実施例では、グループに未配分の指紋データをグループに配分する場合を説明した。しかしながら、グループに指紋データが配分された後に、ユーザの指紋データを追加登録する場合や削除する場合、あるいは生体情報の経年変化を考慮して更新する場合がある。この場合、各グループの照合にかかる負荷が変化してしまうので、グループに配分済みの指紋データを再配分することとなるが、開示の技術は、この場合にも適用できる。そこで、実施例３では、グループに配分済みの指紋データを再配分する場合について説明する。【００７９】
実施例３に係るに係る評価サーバ３００の機能的構成について説明する。図１３は、実施例３に係る評価サーバの機能的構成を示すブロック図である。図１３に示すように、評価サーバ３００は、通信制御部１１０と、記憶部３１０と、制御部３２０とを有する。このうち、図１３に示す通信制御部１１０の機能は、図１に示した通信制御部１１０の機能と同様である。【００８０】
記憶部３１０は、例えば、指紋テーブル１２１と、疑似クエリテーブル３１１と、照合時間テーブル１２２と、配分テーブル１２３とを有する。このうち、図１３に示す指紋テーブル１２１、照合時間テーブル１２２及び配分テーブル１２３の機能は、図１に示した指紋テーブル１２１、照合時間テーブル１２２及び配分テーブル１２３の機能とそれぞれ同様である。【００８１】
疑似クエリテーブル３１１は、前回生成された疑似クエリを記憶する。例えば、疑似クエリテーブル３１１は、生成部１３２によって生成された疑似クエリＱ’［０］、疑似クエリＱ’［ｍｉｎ１］、疑似クエリＱ’［ｍｉｎ２］・・・疑似クエリＱ’［ｍｉｎｖ］を記憶する。また、例えば、疑似クエリテーブル３１１は、生成部１３２によって疑似クエリが生成されるごとに、生成された疑似クエリが生成部１３２によって格納される。【００８２】
制御部３２０は、取得部１３１と、生成部１３２と、算出部３２１と、特徴量算出部３２２と、判定部３２３と、配分部３２４とを有する。このうち、図１３に示す取得部１３１及び生成部１３２の機能は、図１に示した取得部１３１及び生成部１３２の機能とそれぞれ同様である。【００８３】
算出部３２１は、図１に示した算出部１３３と同様の機能を有する。さらに、算出部３２１は、疑似クエリテーブル３１１に前回生成された疑似クエリが記憶されている場合に、前回生成されたそれぞれの疑似クエリと、指紋テーブル１２１に記憶された各指紋データとの照合時間を指紋データごとに算出する。例えば、算出部３２１は、疑似クエリＱ’［０］、疑似クエリＱ’［ｍｉｎ１］・・・疑似クエリＱ’［ｍｉｎｖ］と、ユーザ［１］〜［ｎ］までの各ユーザの指紋データとの照合時間Ｔ’［０］［１］〜Ｔ’［０］［ｎ］を指紋データごとに算出する。【００８４】
特徴量算出部３２２は、図１に示した特徴量算出部１３４と同様の機能を有する。さらに、特徴量算出部３２２は、前回生成された疑似クエリとの照合時間が算出部１３３によって算出されると、前回生成された疑似クエリとの照合時間の平均値と照合時間の分散値とを指紋データごとに算出する。【００８５】
一態様としては、特徴量算出部３２２は、照合時間Ｔ’［０］［１］〜Ｔ’［ｍｉｎｖ］［１］までの和を算出し、算出した和を所定数［ｖ＋１］で除算することで、ユーザ［１］の照合時間の平均値Ｔ’［１］ａｖｅを算出する。また、特徴量算出部３２２は、照合時間Ｔ’［０］［１］〜Ｔ’［ｍｉｎｖ］［１］と平均値Ｔ’［１］ａｖｅとの差をそれぞれ算出し、算出したそれぞれの差の２乗の和を所定数［ｖ＋１］で除算する。これにより、特徴量算出部３２２は、ユーザ［１］の照合時間の分散値Ｔ’［１］ｖａｒを算出する。特徴量算出部３２２は、平均値Ｔ’［１］ａｖｅ及び分散値Ｔ’［１］ｖａｒを判定部３２３に出力する。また、特徴量算出部３２２は、他のユーザＩＤの照合時間についても同様に、平均値Ｔ’［ｎ］ａｖｅ及び分散値Ｔ’［ｎ］ｖａｒを算出し、算出した値を判定部３２３及び配分部３２４に出力する。【００８６】
判定部３２３は、算出された第１照合時間と、前回配分した際に生成された照合データとデータベース内の複数のデータのそれぞれとの照合にかかる第２照合時間とを比較し、比較結果に基づいて、データをグループに配分するか否かを判定する。例えば、判定部３２３は、チャンクごとに、前回算出された照合時間と、今回算出した照合時間とを比較して、比較結果に基づいて、指紋データをグループに配分するか否かを判定する。【００８７】
例えば、判定部３２３は、チャンクＩＤと、各チャンクに現在配分されている指紋データのユーザＩＤとの対応関係を配分テーブル１２３から取得する。そして、判定部３２３は、チャンクごとに、現在配分されている指紋データの照合時間の平均値を算出する。一例としては、判定部３２３は、チャンク［１］について、チャンク［１］に含まれるユーザ［３］の照合時間Ｔ’［３］ａｖｅ、ユーザ［４２］の照合時間Ｔ’［４２］ａｖｅ・・・の和を算出する。そして、判定部３２３は、算出した和をチャンク［１］に含まれる指紋データの数で除算して、Ｔｘａｖｅ’［１］を算出する。【００８８】
また、判定部３２３は、照合時間Ｔ［０］［１］〜Ｔ［ｍｉｎｖ］［ｎ］に基づいて、各チャンクに配分される指紋データのユーザＩＤを、配分部３２４から取得する。そして、判定部３２３は、チャンクごとに、配分される指紋データの照合時間の平均値を算出する。一例としては、判定部３２３は、チャンク［１］について、チャンク［１］に含まれるユーザ［３］の照合時間Ｔ［３］ａｖｅ、ユーザ［４２］の照合時間Ｔ［４２］ａｖｅ・・・の和を算出する。そして、判定部３２３は、算出した和をチャンク［１］に含まれる指紋データの数で除算して、Ｔｘａｖｅ［１］を算出する。【００８９】
そして、判定部３２３は、チャンク［１］について算出されたＴｘａｖｅ’［１］とＴｘａｖｅ’［１］との差分を算出し、算出した差分を閾値と比較する。また、判定部３２３は、他のチャンク［ｍ］についても同様に、Ｔｘａｖｅ’［ｍ］とＴｘａｖｅ’［ｍ］とを算出し、算出したＴｘａｖｅ’［ｍ］とＴｘａｖｅ’［ｍ］と差分を閾値と比較する。そして、判定部３２３は、算出した差分が閾値以上となったチャンクの数が所定数を超えた場合に、配分すると判定する。判定部３２３は、判定結果を配分部３２４に出力する。【００９０】
配分部３２４は、図１に示した配分部１３５と同様の機能を有する。さらに、配分部３２４は、判定部３２３によって配分すると判定された場合に、指紋データをグループに配分する。【００９１】
次に、実施例３に係る評価サーバの処理手順について説明する。図１４は、実施例３に係る評価サーバの処理手順を示すフローチャートである。図１４に示す処理は、例えば、取得部１３１が、評価サーバ３００に処理を開始させる指示の入力を操作端末１０から受信したことを契機として実行される。【００９２】
図１４に示すように、評価サーバ３００は、処理タイミングになると（ステップＳ３０１肯定）、照合時間算出処理を実行する（ステップＳ３０２）。この照合時間算出処理は、図１０に示したステップＳ１０２〜Ｓ１０７までの処理に対応するので、説明を省略することとする。【００９３】
算出部３２１は、疑似クエリテーブル３１１に前回生成された疑似クエリが記憶されている場合には（ステップＳ３０３肯定）、前回生成されたそれぞれの疑似クエリと、各指紋データとの照合時間を指紋データごとに算出する（ステップＳ３０４）。なお、疑似クエリテーブル３１１に前回生成された疑似クエリが記憶されていない場合には（ステップＳ３０３否定）、ステップＳ３０８の処理に移行する。【００９４】
続いて、特徴量算出部３２２は、前回生成された疑似クエリとの照合時間の平均値及び分散値を指紋データごとに算出する（ステップＳ３０５）。判定部３２３は、チャンクごとに、前回算出された照合時間と、今回算出した照合時間とを比較する（ステップＳ３０６）。判定部３２３は、比較結果に基づいて、指紋データをグループに配分するか否かを判定する（ステップＳ３０７）。【００９５】
判定部３２３によって配分すると判定された場合には（ステップＳ３０７肯定）、配分部１３５は、特徴量算出部１３４によって算出された平均値及び分散値に基づいて、指紋データをグループに配分する（ステップＳ３０８）。そして、配分部１３５は、グループと、各グループに配分された指紋データとの対応関係を配分テーブル１２３に更新する（ステップＳ３０９）。【００９６】
一方、判定部３２３によって配分しないと判定された場合には（ステップＳ３０７否定）、評価サーバ３００は、処理を終了する。【００９７】
次に、実施例３に係る評価サーバの効果について説明する。実施例３に係る評価サーバ３００は、算出された第１照合時間と、前回配分した際に生成された照合データとデータベース内の複数のデータのそれぞれとの照合にかかる第２照合時間とを比較する。評価サーバ３００は、比較結果に基づいて、データをグループに配分するか否かを判定する。このため、評価サーバ３００は、グループに配分済みの指紋データを、ユーザの指紋データを追加登録する場合や削除する場合、あるいは生体情報の経年変化を考慮して再配分することができる。
【実施例４】
【００９８】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、その他の実施例にて実施されても良い。そこで、以下では、その他の実施例について説明する。【００９９】
例えば、上記の実施例では、開示の技術を指紋認証に適用した場合を説明したが、開示の技術はこれに限定されるものではない。他の例としては、開示の技術は、声紋や手のひらの静脈パターン、眼球の虹彩など、指紋以外の生体情報を用いる生体認証、入力音声に最も類似の音声データを検索する音声検索、入力画像に最も類似の画像データを検索する画像検索などに適用されても良い。【０１００】
また、例えば、上記の実施例では、生成部１３２が、算出部１３３によって算出された照合時間から最小又は最大の照合時間が算出された指紋データを繰り返し特定することで、複数の疑似クエリを生成する場合を説明した。しかし、開示の技術はこれに限定されるものではない。例えば、生成部１３２は、指紋テーブル１２１に記憶された指紋データから複数の指紋データをランダムに選択し、選択した各々の指紋データを疑似クエリとして生成しても良い。【０１０１】
また、上記の実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。【０１０２】
また、図１，１１，１３に示した評価サーバ１００，２００．３００の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、評価サーバ１００，２００．３００の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。【０１０３】
図１５は、評価プログラムを実行するコンピュータの一例を示す図である。図１５に示すように、コンピュータ４００は、各種演算処理を実行するＣＰＵ４０１と、ユーザからデータの入力を受け付ける入力装置４０２と、モニタ４０３とを有する。また、コンピュータ４００は、記憶媒体からプログラム等を読み取る媒体読み取り装置４０４と、他の装置と接続するためのインターフェース装置４０５と、他の装置と無線により接続するための無線通信装置４０６とを有する。また、コンピュータ４００は、各種情報を一時記憶するＲＡＭ（Random  Access  Memory）４０７と、ハードディスク装置４０８とを有する。また、各装置４０１〜４０８は、バス４０９に接続される。【０１０４】
ハードディスク装置４０８には、図１，１１，１３に示した生成部１３２，２１１、算出部１３３，２１２，３２１及び配分部１３５，３２４との各処理部と同様の機能を有する診療情報入力プログラムが記憶される。また、ハードディスク装置４０８には、評価プログラムを実現するための各種データが記憶される。【０１０５】
ＣＰＵ４０１は、ハードディスク装置４０８に記憶された各プログラムを読み出して、ＲＡＭ４０７に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータを図１，１１，１３に示した生成部１３２，２１１、算出部１３３，２１２，３２１及び配分部１３５，３２４として機能させることができる。【０１０６】
なお、上記の評価プログラムは、必ずしもハードディスク装置４０８に記憶されている必要はない。例えば、コンピュータが読み取り可能な記録媒体に記憶されたプログラムを、コンピュータ４００が読み出して実行するようにしても良い。コンピュータが読み取り可能な記録媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等に接続された装置にこのプログラムを記憶させておき、コンピュータ４００がこれらからプログラムを読み出して実行するようにしても良い。
【符号の説明】
【０１０７】
１００，２００，３００      評価サーバ
１１０      通信制御部
１２０，３１０      記憶部
１２１      指紋テーブル
１２２      照合時間テーブル
１２３      配分テーブル
１３０，２１０，３２０      制御部
１３１      取得部
１３２，２１１      生成部
１３３，２１２，３２１      算出部
１３４，３２２      特徴量算出部
１３５，３２４      配分部
３１１      疑似クエリテーブル
３２３      判定部
４００      コンピュータ
４０１      ＣＰＵ
４０２      入力装置
４０３      モニタ
４０４      媒体読み取り装置
４０５      インターフェース装置
４０６      無線通信装置
４０７      ＲＡＭ
４０８      ハードディスク装置
４０９      バス
【図１】
0005954407.tif 000002
【図２】
0005954407.tif 000003
【図３】
0005954407.tif 000004
【図４】
0005954407.tif 000005
【図５】
0005954407.tif 000006
【図６】
0005954407.tif 000007
【図７】
0005954407.tif 000008
【図８】
0005954407.tif 000009
【図９】
0005954407.tif 000010
【図１０】
0005954407.tif 000011
【図１１】
0005954407.tif 000012
【図１２】
0005954407.tif 000013
【図１３】
0005954407.tif 000014
【図１４】
0005954407.tif 000015
【図１５】
0005954407.tif 000016