(57)【特許請求の範囲】
【請求項１】
複数の特徴量を各々含む複数のレコードデータに基づいて、特徴量空間を分割する超平面であって、分割した一対の領域間の距離が対称性を有する通常超平面を表す通常超平面データを算出する第１算出部と、
複数の前記レコードデータ、及び前記通常超平面データに基づいて、前記特徴量空間を分割する超平面であって、分割した一対の領域間の距離が反対称性を有する一方通行超平面を表す一方通行超平面データを算出する第２算出部と、
前記通常超平面データ及び前記一方通行超平面データに基づいて、複数の特徴量を含むクエリデータ及び複数の前記レコードデータをバイナリ列へ各々変換する変換部と、
含む情報処理装置。
【請求項２】
前記第２算出部は、前記一方通行超平面が、前記特徴量空間上で前記通常超平面データが表す前記通常超平面と重なるように、前記一方通行超平面データを算出する、
請求項１記載の情報処理装置。
【請求項３】
前記第２算出部は、前記通常超平面データが表す前記通常超平面で前記特徴量空間を一対の領域に分割したときに、異なる領域に位置する前記レコードデータの対の前記特徴量空間での準距離の反対称成分に基づいて、前記一方通行超平面の数及び方向を各々決定する、
請求項１又は請求項２記載の情報処理装置。
【請求項４】
前記第１算出部は、複数の前記通常超平面を表す通常超平面データを算出し、
前記第２算出部は、前記通常超平面データが表す前記通常超平面で特徴量空間を一対の領域に分割したときに、異なる領域に位置する前記レコードデータの対の前記特徴量空間での準距離の反対称成分を、前記レコードデータの対の複数の組み合わせについて積算することを、個々の前記通常超平面について各々行い、個々の前記通常超平面に対応する前記準距離の反対称成分の積算値に基づいて、前記一方通行超平面の数及び方向を各々決定する、
請求項３記載の情報処理装置。
【請求項５】
前記変換部は、前記通常超平面データを用いて前記クエリデータ及び複数の前記レコードデータの各々を第１のバイナリ列へ変換すると共に、前記一方通行超平面データを用いて前記クエリデータ及び複数の前記レコードデータの各々を第２のバイナリ列へ変換し、
個々の前記レコードデータについて、前記クエリデータの前記第１のバイナリ列と前記レコードデータの前記第１のバイナリ列との非類似度と、前記クエリデータの前記第２のバイナリ列と前記レコードデータの前記第２のバイナリ列との非類似度と、の和が小さくなるほど小さくなる値の昇順に所定数分のレコードデータを出力する出力部、をさらに含む
請求項１から請求項４の何れか１項記載の情報処理装置。
【請求項６】
コンピュータに、
複数の特徴量を各々含む複数のレコードデータに基づいて、特徴量空間を分割する超平面であって、分割した一対の領域間の距離が対称性を有する通常超平面を表す通常超平面データを算出し、
複数の前記レコードデータ、及び前記通常超平面データに基づいて、前記特徴量空間を分割する超平面であって、分割した一対の領域間の距離が反対称性を有する一方通行超平面を表す一方通行超平面データを算出し、
前記通常超平面データ及び前記一方通行超平面データに基づいて、複数の特徴量を含むクエリデータ及び複数の前記レコードデータをバイナリ列へ各々変換する、
ことを含む処理を実行させる類似検索プログラム。
【請求項７】
コンピュータに、
複数の特徴量を各々含む複数のレコードデータに基づいて、特徴量空間を分割する超平面であって、分割した一対の領域間の距離が対称性を有する通常超平面を表す通常超平面データを算出し、
複数の前記レコードデータ、及び前記通常超平面データに基づいて、前記特徴量空間を分割する超平面であって、分割した一対の領域間の距離が反対称性を有する一方通行超平面を表す一方通行超平面データを算出し、
前記通常超平面データ及び前記一方通行超平面データに基づいて、複数の特徴量を含むクエリデータ及び複数の前記レコードデータをバイナリ列へ各々変換する、
ことを含む処理を実行させる類似検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、情報処理装置、類似検索プログラム、及び類似検索方法に関する。
【背景技術】
【０００２】
複数のコンテンツの各特徴量を特徴量空間上に特徴点として分布させ少なくとも２つの群に分類し、各群の全特徴点からの垂直距離が等しい直線又は超平面を求める技術が知られている。この技術では、特徴点が、求めた直線又は超平面により二分された何れの空間側に存在するかに基づいてコンテンツをバイナリ値に変換するハッシュ関数を生成する。
【０００３】
また、複数の学習データの各々について、学習データを生成するために用いた被学習データと、非処理データとの類似度を示す類似度データを生成する技術が知られている。この技術では、生成した類似度データを基に複数の学習データのうちの一部の学習データを選択し、選択した学習データを用いて被処理データに対して機械学習処理を行う。
【０００４】
また、学習用のデータセットに含まれる各特徴量ベクトルからデータペアを生成し、生成したデータペアを用いて特徴量ベクトル空間を分割する超平面を学習する技術が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１０９４７９号公報
【特許文献２】特開２００６−２５２３３３号公報
【特許文献３】国際公開第２０１４／１１８９７６号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
複数の特徴量を含むレコードデータを複数取得してデータベースに予め保存しておき、複数の特徴量を含むクエリデータを取得し、各レコードデータについてクエリデータとの類似度を算出し、類似度が最大のレコードデータを抽出する場合、以下の問題がある。一般に、データ同士の非類似度は特徴量空間上でのデータ同士の距離におよそ対応しており、データ同士の類似度は特徴量空間上でのデータ同士の距離からおよそ判定できる。なお、本明細書では、予めデータベースに保存された被照合対象とする複数の特徴量を含むデータを「レコードデータ」といい、レコードデータとの照合のために取得されて入力された照合対象とする複数の特徴量を含むデータを「クエリデータ」という。
【０００７】
しかしながら、クエリデータの取得時の条件が、レコードデータの取得時の条件から変化することがある。この場合、特徴量空間上でのクエリデータの位置が変化するので、特徴量空間上でのクエリデータと個々のレコードデータとの距離が不均一に変化し、類似性の判定精度が低下する。すなわち、特徴量空間上でのクエリデータとの距離が元々は最短でなかったレコードデータが、クエリデータの位置の変化に伴い、類似度が最大のレコードデータとして誤抽出されることが生じ得る。
【０００８】
開示の技術は、一つの側面として、データの取得条件が変化した場合の類似性の判定精度の低下を抑制可能とすることを目的とする。
【課題を解決するための手段】
【０００９】
開示の技術は、一つの側面として、複数の特徴量を各々含む複数のレコードデータに基づいて、特徴量空間を分割する超平面であって、分割した一対の領域間の距離が対称性を有する通常超平面を表す通常超平面データを算出する。また、複数の前記レコードデータ、及び前記通常超平面データに基づいて、前記特徴量空間を分割する超平面であって、分割した一対の領域間の距離が反対称性を有する一方通行超平面を表す一方通行超平面データを算出する。そして、前記通常超平面データ、及び前記一方通行超平面データに基づいて、複数の特徴量を含むクエリデータ及び複数の前記レコードデータを、前記クエリデータと個々の前記レコードデータとの類似性の判定に用いられるバイナリ列へ各々変換する。
【発明の効果】
【００１０】
一つの側面として、データの取得条件が変化した場合の類似性の判定精度の低下を抑制することができる、という効果を有する。
【図面の簡単な説明】
【００１１】
【図１】バイナリ列を用いた非類似度の算出によるレコードデータの絞り込みを説明するための図である。
【図２】通常時と乾燥時との特徴ベクトルの違いの一例を示す図である。
【図３】通常時と乾燥時との特徴ベクトルの違いによって誤判定が発生する場合を説明するための図である。
【図４】特徴ベクトルの移動し易い方向を説明するための図である。
【図５】準距離関数の数値パラメータの記憶形式の一例を示す図である。
【図６】通常超平面の一例を説明するための図である。
【図７】通常超平面データの記憶形式の一例を示す図である。
【図８】ハミング距離の算出方法を説明するための図である。
【図９】一方通行超平面の一例を説明するための図である。
【図１０】バイナリ列の変換関数の入出力関係の一例を示す図である。
【図１１】ｘ、ｙを入力とした場合の反対称距離の一例を示す図である。
【図１２】通常超平面と一方通行超平面との違いを説明するための図である。
【図１３】反対称ハミング距離の算出方法を説明するための図である。
【図１４】反対称ハミング距離の算出方法を説明するための図である。
【図１５】２つの一方通行超平面で特徴ベクトル空間を分割した図である。
【図１６】２つの一方通行超平面で特徴ベクトル空間を分割した場合の各領域間の距離を示す図である。
【図１７】２つの通常超平面及び２つの一方通行超平面で特徴ベクトル空間を分割した図である。
【図１８】２つの通常超平面及び２つの一方通行超平面で特徴ベクトル空間を分割した場合の各領域間の距離を示す図である。
【図１９】実施形態に係る情報処理装置の機能ブロック図である。
【図２０】実施形態に係る情報処理装置として機能するコンピュータの概略構成を示すブロック図である。
【図２１】実施形態に係る算出処理の一例を示すフローチャートである。
【図２２】超平面データの一例を示す図である。
【図２３】一方通行超平面データの算出処理を説明するための図である。
【図２４】実施形態に係る選出処理の一例を示すフローチャートである。
【図２５】変形例に係る超平面データの一例を示す図である。
【図２６】レコードデータの一例を示す図である。
【図２７】実施形態に係る照合処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。なお、本実施形態では、開示の技術を指紋認証に適用した態様について説明する。
【００１３】
画像データ、音声データ、及びセンサデータ等の非構造データの類似性の判定処理では、データから抽出した複数の特徴量を要素とする特徴ベクトルを用いることが多い。そして、この類似性の判定処理では、特徴ベクトル間の類似度又は非類似度を算出することが多い。
【００１４】
また、クエリデータとレコードデータとの照合において、各データは、データの取得対象が置かれていた環境条件等によって変化する。例えば、画像データであれば照明条件、音声データであれば周囲の騒音及び大気の乾燥度合等によって各データは変化する。また、各データは、データの取得対象の状態によっても変化する。例えば、音声認証であれば喉の健康状態、歩容認証であれば足の健康状態、顔画像認証であれば体調による肌の状態及び気分による表情の状態等によって各データは変化する。
【００１５】
また、これらの変化をデータから抽出した特徴ベクトルの変化として考えると、これらの変化は変化し易い方向と変化し難い方向とがある。すなわち、特徴ベクトル間の類似度又は非類似度を算出して類似性を判定する処理において、特徴ベクトルの変化の方向を考慮せずに類似性を判定すると、類似性の判定精度が低下してしまう場合がある。より具体的には、通常状態時に取得される特徴ベクトルをｘ、通常状態から変化し易い状態で取得される特徴ベクトルをｙ、通常状態から変化し難い状態で取得される特徴ベクトルをｚとする。この場合、ｘとｙとの類似性と、ｘとｚとの類似性とを同等に扱った場合には、類似性の判定精度が低下する場合がある。
【００１６】
ところで、指紋を撮影して得られた画像データから特徴ベクトルを算出して指紋認証に用いる場合、特徴ベクトルは１０次元から１０００次元程度の高次元のベクトルが必要になることが多い。この場合、クエリデータの特徴ベクトルと、多数のレコードデータの特徴ベクトルとの類似度を算出する処理には多大な時間がかかってしまう場合が多い。
【００１７】
また、高次元の特徴ベクトル間の類似性の判定処理について、処理を高速化する手法として、特徴ベクトルをバイナリ列へ変換する手法が知られている（参考文献１参照）。この手法では、特徴ベクトル間の非類似度として、変換したバイナリ列間のハミング距離を算出する。なお、ここで言う非類似度とは、非類似度が低いほど（すなわち、ハミング距離が小さいほど）類似していることを意味する。
［参考文献１］A.Torralba, R.Fergus, and Y.Weiss,“Small codes and large databases for recognition”, In CVPR, 2008.
【００１８】
そこで、本実施形態では、クエリデータ及びレコードデータの特徴ベクトルを各々バイナリ列に変換し、変換したバイナリ列間の非類似度を算出する。そして、図１に示すように、レコードデータＲ１から、算出した非類似度の昇順に所定数（図１ではｋ件）のレコードデータＲ２を抽出する。さらに、本実施形態では、個々のレコードデータＲ２とクエリデータとの類似度を算出する。このように、本実施形態では、処理が比較的高速なバイナリ列間の非類似度の算出によってレコードデータＲ１を所定数のレコードデータＲ２に絞り込む。そして、絞り込んだ個々のレコードデータＲ２に対して、処理に比較的時間がかかるクエリデータとの類似度の算出処理を行い、類似度が最大のレコードデータＲ３の類似度が所定値以上の場合に、照合結果が正常であるものとする。
【００１９】
ところで、指紋認証では、指紋を撮影して得られた画像データから算出した特徴ベクトルは、環境条件等によって変化する。一例として図２に示すように、同一人物の同一の指先を撮影して得られた画像データから特徴ベクトルを算出する場合であっても、撮影時の湿度が通常の場合（通常時）と乾燥している場合（乾燥時）とでは特徴ベクトルが変化する。なお、図２は、特徴ベクトル空間（開示の技術の特徴量空間）上に、異なる２つの指紋に対応する特徴ベクトルの各々について、通常時及び乾燥時の各々の特徴ベクトルをマッピングした模式図であり、丸が通常時、四角が乾燥時の特徴ベクトルを表す。
【００２０】
ここで、図３を参照して、例えば通常時に指紋を撮影して得られた画像データから特徴ベクトルを算出してレコードデータとして保存し、乾燥時に指紋を撮影して得られた画像データから特徴ベクトルを算出してクエリデータとした場合について説明する。なお、図３では、照合対象とするクエリデータの特徴ベクトル、及び該クエリデータに対応するレコードデータの特徴ベクトルを網掛けして示している。この場合、一例として図３に示すように、クエリデータは、クエリデータの取得対象の通常時のレコードデータより、他者の通常時のレコードデータの方が類似していると判定されてしまうことがある。この結果、上記所定数のレコードデータを抽出する際に、クエリデータに対応するレコードデータが抽出されない場合がある。そこで、本実施形態では、一例として図４の太い矢印で示すように、特徴ベクトルが変化し易い方向を考慮して、上記非類似度を算出する。
【００２１】
次に、本実施形態で用いる技術について説明する。
【００２２】
まず、特徴ベクトル間の距離について説明する。特徴ベクトル間の非類似度を表す距離は、任意の集合Ｓ上で次の（Ａ）から（Ｄ）までの４つの公理を満たす関数ｄである。
（Ａ）ｄ（ｘ［ｖ］，ｙ［ｖ］）≧０  ｆｏｒ  ｘ［ｖ］，ｙ［ｖ］∈Ｓ
（Ｂ）ｄ（ｘ［ｖ］，ｙ［ｖ］）＝０  ⇒  ｘ［ｖ］＝ｙ［ｖ］
（Ｃ）ｄ（ｘ［ｖ］，ｙ［ｖ］）＝ｄ（ｙ［ｖ］，ｘ［ｖ］）
（Ｄ）ｄ（ｘ［ｖ］，ｙ［ｖ］）≦ｄ（ｘ［ｖ］，ｚ［ｖ］）＋ｄ（ｚ［ｖ］，ｙ［ｖ］）
なお、ｘ［ｖ］、ｙ［ｖ］のように、末尾に［ｖ］を付与した文字は、以下の数式内では、文字（ｘやｙ）の上に矢印（→）を付した記号で表しており、ベクトルであることを示す。
【００２３】
距離の一例としてはユークリッド距離が挙げられ、２つの特徴ベクトルｘ［ｖ］（ｘ１、ｘ２、ｘ３）、ｙ［ｖ］（ｙ１、ｙ２、ｙ３）間のユークリッド距離Ｅｕｃは、次の（１）式で求められる。
【００２４】
【数１】
0006638484.tif 000002
【００２５】
また、特徴ベクトル間の非類似度として準距離（quasi metric）を用いることが考えられる。準距離は、上記の距離から距離の公理における対称性の公理（上記（Ｃ））を除いたものであり、以下の（ａ）から（ｃ）までの３つの公理を満たす関数ｄｑである。なお、（ａ）、（ｂ）が準距離の正定値性である。
（ａ）ｄｑ（ｘ［ｖ］，ｙ［ｖ］）≧０  ｆｏｒ  ｘ［ｖ］，ｙ［ｖ］∈Ｓ
（ｂ）ｄｑ（ｘ［ｖ］，ｙ［ｖ］）＝０  ⇒  ｘ［ｖ］＝ｙ［ｖ］
（ｃ）ｄｑ（ｘ［ｖ］，ｙ［ｖ］）≦ｄｑ（ｘ［ｖ］，ｚ［ｖ］）＋ｄｑ（ｚ［ｖ］，ｙ［ｖ］）
【００２６】
例えば、坂道の上に位置する住宅と坂道の下に位置する駅とを往復する場合、行きと帰りとで移動に費やされる時間は異なる。この場合の時間が準距離の一例に相当する。準距離は、次の（２）式、（３）式を用いて対称化及び反対称化が行える。
【００２７】
【数２】
0006638484.tif 000003
【００２８】
ｄｓｙｍが準距離の対称成分であり、ｄａｓｙｍが準距離の反対称成分である。対称成分ｄｓｙｍは前述した距離の公理を満たす。すなわち、準距離は、特徴ベクトルの変化し易い方向又は変化し難い方向に影響を与える「風」や「重力」のようなものが特徴ベクトル空間に存在するときの対称成分の成す距離における移動コストを表しているとも言える（参考文献２参照）。従って、特徴ベクトル間の非類似度として準距離を用いることで、特徴ベクトルの変化し易い方向又は変化し難い方向を考慮した非類似度を算出することができる。準距離の関数の一例としては、次の（４）式で示す関数ｄｑが挙げられる。
［参考文献２］S.S.Chern, W.H.Chen, K.S.Lam,“Lectures on Differential Geometry”, 1999.
【００２９】
【数３】
0006638484.tif 000004
【００３０】
（４）式において、ω１、ω２、ω３は数値パラメータである。準距離関数ｄｑは、プログラムの中では、内部にパラメータを持つ関数オブジェクトとして定義され、データベース上には、一例として図５に示すように、準距離関数ｄｑの識別子毎に数値パラメータが記憶される。
【００３１】
次に、超平面を用いた特徴ベクトルのバイナリ列への変換について説明する。特徴ベクトルは、浮動小数点数の固定長の列として表され、列の長さが特徴ベクトルの次元数となる。特徴ベクトルをｘ［ｖ］とした場合に、超平面の法線ベクトルｎ［ｖ］、オフセットをｄとすると、超平面の方程式は、次の（５）式で表される。
【００３２】
【数４】
0006638484.tif 000005
【００３３】
この超平面を用いて特徴ベクトル空間を分割し、特徴ベクトル空間に存在する各特徴ベクトルｘ［ｖ］にバイナリ値を付与することは、次の（６）式を計算することと同じである。
【００３４】
【数５】
0006638484.tif 000006
【００３５】
上記（６）式を用いて特徴ベクトルｘ［ｖ］にバイナリ値を付与することを幾何学的に示すと、一例として図６に示すようになる。なお、図６では、特徴ベクトルｘ［ｖ］に「１」が付与される場合について示している。
【００３６】
例えば、超平面がＢ個あるとして、各超平面を用いて特徴ベクトルｘ［ｖ］に０又は１を付与することで、特徴ベクトルｘ［ｖ］に対して長さがＢのバイナリ列を生成することができる。以下では、生成したバイナリ列をｂ［ｖ］と表す。バイナリ列ｂ［ｖ］（ｘ［ｖ］）のｉ番目のビットをｂ［ｖ］（ｘ［ｖ］）ｉと表すと、バイナリ列ｂ［ｖ］（ｘ［ｖ］）は、次の（７）式で表される。
【００３７】
【数６】
0006638484.tif 000007
【００３８】
そして、ｉ番目の超平面の法線ベクトルをｎ（ｉ）［ｖ］、オフセットをｄ（ｉ）とすると、ｉ番目のビットｂ［ｖ］（ｘ［ｖ］）ｉは次の（８）式で求められる。
【００３９】
【数７】
0006638484.tif 000008
【００４０】
以下では、このｂ［ｖ］を、超平面を用いたバイナリ列への変換関数という。プログラム上では、超平面は「法線ベクトル」及び「オフセット」に各々対応する数値が与えられれば良い。従って、超平面を表す超平面データは、一例として図７に示すように、超平面毎に、超平面を識別する識別子、法線ベクトル、及びオフセットが格納される。
【００４１】
なお、以下では、錯綜を回避するために、「法線ベクトル」と「オフセット」とを合わせて「法線ベクトル」という。また、以下では、以上説明した超平面を後述する一方通行超平面と区別するために「通常超平面」という。
【００４２】
次に、バイナリ列間のハミング距離について説明する。２つバイナリ列ｃ１［ｖ］、ｃ２［ｖ］間のハミング距離Ｈａｍｍは、バイナリ列内の対応するビット同士の排他的論理和の１の数で求められ、次の（９）式で求められる。（９）式において、ｐｏｐｃはバイナリ列内の１の数を数えるポピュレーションカウント関数である。
【００４３】
【数８】
0006638484.tif 000009
【００４４】
例えば、バイナリ列「００１１１０１１」と「０１１０１１１０」のハミング距離は、図８に示すように、「４」となる。特徴ベクトルｘ［ｖ］、ｙ［ｖ］間の非類似度Ｓｉｍは、変換関数ｂ［ｖ］及びハミング距離Ｈａｍｍを用いて次の（１０）式で表される。
【００４５】
【数９】
0006638484.tif 000010
【００４６】
次に本実施形態で用いる一方通行超平面について説明する。一方通行超平面とは、一方通行超平面で特徴ベクトル空間を分割した場合、分割した一方の領域と他方の領域との距離が反対称性を有する超平面である。なお、ここで言う距離の反対称性とは、一方の領域を始点とし、他方の領域を終点とした場合の距離と、他方の領域を始点とし、一方の領域を終点とした場合の距離とが異なる性質を意味する。また、距離の対称性とは、一方の領域を始点とし、他方の領域を終点とした場合の距離と、他方の領域を始点とし、一方の領域を終点とした場合の距離とが同じである性質を意味する。以下、一方通行超平面について詳細に説明する。一方通行超平面の方程式は、法線ベクトルｎｑ［ｖ］、及びオフセットｄｑを用いて次の（１１）式で表される。
【００４７】
【数１０】
0006638484.tif 000011
【００４８】
また、一方通行超平面を用いたバイナリ列への変換関数ｂｑ［ｖ］は次の（１２）式で表される。
【００４９】
【数１１】
0006638484.tif 000012
【００５０】
一例として図９に示すように、一方通行超平面Ｈｑで分割された２つの領域に存在する特徴ベクトルａ１、ａ２、ｑ１、ｑ２について説明する。
【００５１】
各特徴ベクトルａ１、ａ２、ｑ１、ｑ２を入力とした場合の変換関数ｂｑ［ｖ］の出力は、図１０に示すようになる。
【００５２】
また、図１１に示すように、各特徴ベクトルａ１、ａ２、ｑ１、ｑ２について、ｂｑ［ｖ］（ｘ［ｖ］）・ＮＯＴ（ｂｑ［ｖ］（ｙ［ｖ］））を計算する。図１１に示すように、ｂｑ［ｖ］（ｘ［ｖ］）・ＮＯＴ（ｂｑ［ｖ］（ｙ［ｖ］））を特徴ベクトル間の非類似度として用いた場合、ｑ１からａ１及びａ２への距離は０となる。また、この場合、ｑ２からａ２への距離は０、ｑ２からａ１への距離は１となる。すなわち、図９に示す一方通行超平面Ｈｑの左の領域から右の領域への通過にはコストがかからないが、右の領域から左の領域への通過にはコストがかかることになる。
【００５３】
図１２に示すように、前述したハミング距離ではｑ１、ｑ２からは実線の矢印が示す対象までしか距離が０で到達できなかった。これに対し、ｂｑ［ｖ］（ｘ［ｖ］）・ＮＯＴ（ｂｑ［ｖ］（ｙ［ｖ］））を用いるとｑ１、ｑ２から破線の矢印が示す対象まで距離が０で到達できることになる。このように一方通行超平面は一方通行のような挙動を示す。
【００５４】
例えば、一方通行超平面がＢｑ個あるとして、各一方通行超平面を用いて特徴ベクトルｘ［ｖ］に０又は１を付与することで、特徴ベクトルｘ［ｖ］に対して長さがＢｑのバイナリ列を生成することができる。
【００５５】
例えば、クエリデータの特徴ベクトルｑ［ｖ］が変換されたバイナリ列ｂｑ［ｖ］（ｑ［ｖ］）が「００１１１０１１」で、レコードデータの特徴ベクトルｒ［ｖ］が変換されたバイナリ列ｂｑ［ｖ］（ｑ［ｖ］）が「０１１０１１００」の場合について考える。この場合、前述した非類似度の反対称成分は、図１３に示すように「３」となる。
【００５６】
逆に、クエリデータの特徴ベクトルｑ［ｖ］が変換されたバイナリ列ｂｑ［ｖ］（ｑ［ｖ］）が「０１１０１１００」で、レコードデータの特徴ベクトルｒ［ｖ］が変換されたバイナリ列ｂｑ［ｖ］（ｒ［ｖ］）が「００１１１０１１」の場合について考える。この場合、前述した非類似度の反対称成分は、図１４に示すように「２」となる。
【００５７】
上記の非類似度を反対称ハミング距離ＱＨａｍｍとして、２つバイナリ列ｃ１［ｖ］、ｃ２［ｖ］間の反対称ハミング距離ＱＨａｍｍを次に示す（１３）式で定義する。
【００５８】
【数１２】
0006638484.tif 000013
【００５９】
一例として図１５に示すように、特徴ベクトル空間を、２つの一方通行超平面Ｈｑ１、Ｈｑ２を用いて４つの領域Ａ、Ｂ、Ｃ、Ｄに分割した場合の各領域間の距離を説明する。各一方通行超平面Ｈｑ１、Ｈｑ２で分割された一方の領域と他方の領域との距離は、各々法線ベクトルｎｑ［ｖ］の方向に見た場合と、逆方向に見た場合とで異なる。
【００６０】
例えば、領域Ａの任意の点を始点とし、領域Ｂの任意の点を終点とした場合の２点間の距離は「０」である。また、領域Ａの任意の点を始点とし、領域Ｃの任意の点を終点とした場合の２点間の距離も「０」である。また、領域Ａの任意の点を始点とし、領域Ｄの任意の点を終点とした場合の２点間の距離も「０」である。
【００６１】
これに対し、例えば、領域Ｄの任意の点を始点とし、領域Ａの任意の点を終点とした場合の２点間の距離は「２」である。また、領域Ｄの任意の点を始点とし、領域Ｂの任意の点を終点とした場合の２点間の距離は「１」である。また、領域Ｄの任意の点を始点とし、領域Ｃの任意の点を終点とした場合の２点間の距離は「１」である。従って、各領域の任意の２点間の距離は図１６に示すようになる。例えば、図１６の１行目は、領域Ａの任意の点を始点とし、領域Ａから領域Ｄまでの各領域の任意の点を終点とした場合の２点間の距離を示している。
【００６２】
ここで、領域Ａの任意の点を始点とし、領域Ｄの任意の点を終点とした場合の距離が「０」であることは、２点間の距離が「０」である場合は２点が同じ位置に位置する、という準距離の正定値性を大きく崩すことになってしまう。これにより、特徴ベクトル間の非類似度として、一方通行超平面のみを用いて近似した準距離を用いる場合には、類似性の判定精度も大きく低下してしまう。
【００６３】
そこで、本実施形態では、通常超平面と一方通行超平面とを対応させて設け、一方通行超平面を用いて非類似度の反対称成分を算出し、通常超平面を用いて非類似度の対称成分を算出することで、準距離の近似を行う。一例として図１７に、通常超平面Ｈ１、Ｈ２と一方通行超平面Ｈｑ１、Ｈｑ２とが同じ位置に重なるように対応させて配置した例を示す。なお、図１７では図示の都合上、通常超平面Ｈ１、Ｈ２の位置と一方通行超平面Ｈｑ１、Ｈｑ２の位置とを若干ずらして図示している。
【００６４】
図１７に示す例では、領域Ａの任意の点を始点とし、領域Ｄの任意の点を終点とした場合の距離は、通常超平面を通過した場合の距離である「２」と、一方通行超平面を通過した場合の距離である「０」との和から「２」となる。従って、各領域の任意の２点間の距離は、図１８に示すようになる。図１８に示すように、通常超平面Ｈ１、Ｈ２及び一方通行超平面Ｈｑ１、Ｈｑ２を用いることで、一方通行超平面Ｈｑ１、Ｈｑ２のみを用いる場合に比較して、準距離の正定値性が維持される。これにより、類似性の判定精度の低下も抑制される。
【００６５】
なお、一方通行超平面は通常超平面に対応して設けられるが、通常超平面は一方通行超平面に対応して設けられなくてもよい。また、一方通行超平面及び通常超平面は１つの位置に複数設けられてもよいし、同じ位置の一方通行超平面の数と通常超平面の数とは同じでなくてもよい。
【００６６】
次に、図１９を参照して、本実施形態に係る情報処理装置１０の構成を説明する。図１９に示すように、情報処理装置１０は、受付部１２、抽出部１４、第１算出部１６、第２算出部１８、変換部２０、出力部２６、及び記憶部３０を含んでいる。変換部２０は、第１変換部２２及び第２変換部２４を含んでいる。出力部２６は、第１出力部２８及び第２出力部２９を含んでいる。記憶部３０は、レコードデータ３２及び超平面データ３４を記憶する。超平面データ３４は、通常超平面データ３６及び一方通行超平面データ３８を含んでいる。
【００６７】
受付部１２は、指紋の登録指示、及び登録対象とする指紋を撮影して得られた画像データを受け付ける。受付部１２は、受け付けた画像データから特徴ベクトルを算出し、算出した特徴ベクトルと、特徴ベクトルを一意に識別するデータ識別子とを記憶部３０のレコードデータ３２に記憶する。本実施形態では、受付部１２は、一例として、画像データに対してフーリエ変換、及び極座標変換を行い、３次元の特徴ベクトルを算出する。なお、特徴ベクトルの算出手法については、公知の手法を用いればよいため、ここでの詳細な説明を省略する。また、特徴ベクトルの次元数は３次元に限定されず、２次元でも４次元以上でもよい。
【００６８】
レコードデータ３２は、一例として図２６に示すように、データ識別子、特徴ベクトル、バイナリ列ｂ、及びバイナリ列ｂｑの記憶領域を含んでいる。なお、バイナリ列ｂ、及びバイナリ列ｂｑについては後述する。
【００６９】
また、受付部１２は、学習指示を受け付けて抽出部１４へ出力する。また、受付部１２は、照合指示を受け付けると共に、クエリデータとして、照合対象とする指紋を撮影して得られた画像データを受け付ける。そして、受付部１２は、受け付けた画像データから特徴ベクトルを算出し、算出した特徴ベクトルを第２変換部２４及び第２出力部２９へ出力し、かつ照合指示を抽出部１４へ出力する。また、受付部１２は、４つの整数の数値パラメータＮＬ、Ｎｑ、Ｂ、Ｂｑを受け付け、ＮＬ、Ｎｑを抽出部１４に出力し、Ｂを第１算出部１６に出力し、Ｂｑを第２算出部１８に出力する。
【００７０】
抽出部１４は、受付部１２から学習指示が入力されると、通常超平面の学習用データとして、レコードデータ３２から所定数のレコードデータ（以下、「第１学習用データ」という）を抽出し、抽出した第１学習用データを第１算出部１６に出力する。本実施形態では、抽出部１４は、受付部１２から入力されたＮＬの個数分の第１学習用データをレコードデータ３２から抽出する。
【００７１】
さらに、抽出部１４は、一方通行超平面の学習用データとして、レコードデータ３２から所定数のレコードデータ（以下、「第２学習用データ」という）も抽出し、抽出した第２学習用データを第２算出部１８に出力する。本実施形態では、抽出部１４は、受付部１２から入力されたＮｑの個数分の第２学習用データをレコードデータ３２から抽出する。
【００７２】
また、抽出部１４は、受付部１２から照合指示が入力されると、レコードデータ３２からクエリデータとの類似性の判定に用いる複数のレコードデータ（以下、「照合用データ」という）を抽出し、抽出した照合用データを第１出力部２８に出力する。
【００７３】
第１算出部１６は、抽出部１４から入力された第１学習用データを用いて、特徴ベクトル空間を分割する超平面であって、分割した一対の領域間の距離が対称性を有する通常超平面を表す通常超平面データを算出する。本実施形態では、第１算出部１６は、例えば下記の参考文献３、４等に記載の手法によって、第１学習用データを用いて通常超平面の位置を学習し、通常超平面を表す通常超平面データを算出する。なお、本実施形態では、第１算出部１６は、受付部１２から入力されたＢの個数分の通常超平面データを算出する。
［参考文献３］B.Kulis and T. Darrell,“Learning to Hash with Binary Reconstructive Embeddings”, In NIPS 22, 2009.
［参考文献４］M.Norouzi, D.J.Fleet, and R.Salakhutdinov,“Hamming Distance Metric Learning”, In NIPS 25, 2012.
【００７４】
そして、第１算出部１６は、算出した通常超平面データを記憶部３０の通常超平面データ３６に記憶する。この際、第１算出部１６は、超平面を一意に識別する超平面識別子及び超平面の種別も記憶部３０の通常超平面データ３６に記憶する。さらに、第１算出部１６は、算出した通常超平面データを第２算出部１８及び第１変換部２２に出力する。通常超平面データ３６を含む超平面データ３４は、一例として図２２に示すように、超平面識別子、種別、法線ベクトル、及びオフセットの記憶領域を含んでいる。なお、種別が「Ｎ」のレコードは通常超平面であることを示し、種別が「Ｑ」のレコードは一方通行超平面であることを示している。
【００７５】
第２算出部１８は、第２学習用データ及び第１算出部１６から入力された通常超平面データを用いて、一方通行超平面データを算出する。この一方通行超平面データは、特徴ベクトル空間を分割する超平面であって、分割した一対の領域間の距離が反対称性を有する一方通行超平面を表すデータである。本実施形態では、第２算出部１８は、一方通行超平面が、特徴ベクトル空間上で通常超平面データを表す通常超平面と重なるように（すなわち、同じ位置に位置するように）一方通行超平面データを算出する。なお、特徴ベクトル空間上で通常超平面と一方通行超平面とが重なるとは、通常超平面の法線ベクトル及びオフセットと一方通行超平面の法線ベクトル及びオフセットとが一致することを意味する。または、特徴ベクトル空間上で通常超平面と一方通行超平面とが重なるとは、通常超平面の法線ベクトルの各要素並びにオフセットと一方通行超平面の法線ベクトルの各要素並びにオフセットとの正負の符号が逆であること以外は一致することを意味する。
【００７６】
また、本実施形態では、第２算出部１８は、通常超平面データが表す通常超平面で特徴ベクトル空間を一対の領域に分割したときに、異なる領域に位置するレコードデータ３２の対の特徴ベクトル空間での準距離の反対称成分を算出する。そして、レコードデータ３２の対の複数の組み合わせについて積算することを、個々の通常超平面について各々行い、個々の通常超平面に対応する準距離の反対称成分の積算値に基づいて、一方通行超平面の数及び方向を各々決定する。
【００７７】
具体的には、第２算出部１８は、政党名簿比例代表制の議席決定方式を用いて一方通行超平面の数を決定する。特に、本実施形態では、第２算出部１８は、政党名簿比例代表制の議席決定方式としてドント方式を用いて一方通行超平面の数を決定する。
【００７８】
第２算出部１８は、上記議席決定方式を用いる際、第１算出部１６で算出された通常超平面データを表す通常超平面の各々について、次に示す処理を行う。第２算出部１８は、通常超平面で特徴ベクトル空間を分割した際の一方の領域に存在するレコードデータ３２の特徴ベクトルと他方の領域に存在するレコードデータ３２の特徴ベクトルとの組み合わせの各対について準距離の反対称成分を算出する。また、第２算出部１８は、算出した準距離の反対称成分の和の絶対値を通常超平面の得票数として、各通常超平面に議席を割り当てる。そして、第２算出部１８は、割り当てた議席数を通常超平面に対応する一方通行超平面の数とする。なお、本実施形態では、第２算出部１６は、受付部１２から入力されたＢｑを用いて、一方通行超平面データを算出する。
【００７９】
そして、第２算出部１８は、算出した一方通行超平面データを記憶部３０の一方通行超平面データ３８に記憶する（図２２も参照）。この際、第２算出部１８は、超平面識別子及び超平面の種別も記憶部３０の一方通行超平面データ３８に記憶する（図２２も参照）。さらに、第２算出部１８は、算出した一方通行超平面データを第１変換部２２に出力する。
【００８０】
第１変換部２２は、第１算出部１６から通常超平面データが入力され、かつ第２算出部１８から一方通行超平面データが入力されると、レコードデータ３２から複数のレコードデータを抽出する。第１変換部２２は、入力された通常超平面データを用いて、抽出した各レコードデータに記憶された特徴ベクトルを第１のバイナリ列ｂへ変換する。そして、第１変換部２２は、レコードデータ３２の抽出した各レコードデータのバイナリ列ｂへ、変換したバイナリ列ｂを記憶する（図２６も参照）。
【００８１】
また、第１変換部２２は、入力された一方通行超平面データを用いて、抽出した各レコードデータに記憶された特徴ベクトルを第２のバイナリ列ｂｑへ変換する。そして、第１変換部２２は、レコードデータ３２の抽出した各レコードデータのバイナリ列ｂｑへ、変換したバイナリ列ｂｑを記憶する（図２６も参照）。
【００８２】
第２変換部２４は、受付部１２からクエリデータに対応する特徴ベクトルが入力されると、通常超平面データ３６から通常超平面データを取得し、一方通行超平面データ３８から一方通行超平面データを取得する。第２変換部２４は、第１変換部２２と同様に、通常超平面データを用いて特徴ベクトルを第１のバイナリ列ｂへ変換する。また、第２変換部２４は、第１変換部２２と同様に、一方通行超平面データを用いて特徴ベクトルを第２のバイナリ列ｂｑへ変換する。そして、第２変換部２４は、変換したバイナリ列ｂ及びバイナリ列ｂｑを第１出力部２８に出力する。
【００８３】
第１出力部２８は、抽出部１４から照合用データが入力され、かつ第２変換部２４からバイナリ列ｂ及びバイナリ列ｂｑが入力されると、次に示す処理を行う。第１出力部２８は、第２変換部２４から入力されたバイナリ列ｂと、照合用データの各レコードデータに記憶されたバイナリ列ｂとの非類似度を算出する。また、第１出力部２８は、第２変換部２４から入力されたバイナリ列ｂｑと、照合用データの各レコードデータに記憶されたバイナリ列ｂｑとの非類似度を算出する。そして、第１出力部２８は、算出した２つの非類似度の和の昇順に所定数分のレコードデータを第２出力部２９へ出力する。
【００８４】
第２出力部２９は、受付部１２からクエリデータに対応する特徴ベクトルが入力され、かつ第１出力部２８から所定数分のレコードデータが入力されると、次に示す処理を行う。第２出力部２９は、入力された特徴ベクトルと、各レコードデータに記憶された特徴ベクトルとの間の類似度を算出し、算出した類似度の最大値が所定値以上だった場合は、指紋の照合結果として正常であることを示す情報を出力する。また、第２出力部２９は、算出した類似度の最大値が所定値未満だった場合は、指紋の照合結果として異常であることを示す情報を出力する。なお、入力された特徴ベクトルと、各レコードデータに記憶された特徴ベクトルとの間の類似度を算出する処理は、公知の手法を用いればよいため、ここでの詳細な説明を省略する。
【００８５】
情報処理装置１０は、例えば図２０に示すコンピュータ６０で実現することができる。コンピュータ６０はCentral Processing Unit（ＣＰＵ）６１、一時記憶領域としてのメモリ６２、及び不揮発性の記憶部６３を備えている。また、コンピュータ６０は、指紋が押し付けられ、かつ押し付けられた指紋を撮影して画像データを入力する第１入力部、ユーザが各種指示を入力する第２入力部、及び表示部等を含む入出力装置６４を備えている。また、コンピュータ６０は、記録媒体６８に対するデータの読み込みと書き込みとを制御するＲ／Ｗ部６５、及びネットワークに接続されるネットワークＩ／Ｆ６６を備えている。ＣＰＵ６１、メモリ６２、記憶部６３、入出力装置６４、Ｒ／Ｗ部６５、及びネットワークＩ／Ｆ６６は、バス６７を介して互いに接続されている。
【００８６】
記憶部６３は、Hard Disk Drive（ＨＤＤ）、Solid State Drive（ＳＳＤ）、フラッシュメモリ等によって実現することができる。記憶媒体としての記憶部６３には、コンピュータ６０を情報処理装置１０として機能させるための類似検索プログラム７０が記憶される。類似検索プログラム７０は、受付プロセス７１、抽出プロセス７２、第１算出プロセス７３、第２算出プロセス７４、第１変換プロセス７５、第２変換プロセス７６、第１出力プロセス７７、及び第２出力プロセス７８を有する。また、記憶部６３は、記憶部３０として機能する情報記憶領域７９を有する。
【００８７】
ＣＰＵ６１は、類似検索プログラム７０を記憶部６３から読み出してメモリ６２に展開し、類似検索プログラム７０が有するプロセスを実行する。ＣＰＵ６１は、受付プロセス７１を実行することで、図１９に示す受付部１２として動作する。ＣＰＵ６１は、抽出プロセス７２を実行することで、図１９に示す抽出部１４として動作する。ＣＰＵ６１は、第１算出プロセス７３を実行することで、図１９に示す第１算出部１６として動作する。ＣＰＵ６１は、第２算出プロセス７４を実行することで、図１９に示す第２算出部１８として動作する。ＣＰＵ６１は、第１変換プロセス７５を実行することで、図１９に示す第１変換部２２として動作する。ＣＰＵ６１は、第２変換プロセス７６を実行することで、図１９に示す第２変換部２４として動作する。ＣＰＵ６１は、第１出力プロセス７７を実行することで、図１９に示す第１出力部２８として動作する。ＣＰＵ６１は、第２出力プロセス７８を実行することで、図１９に示す第２出力部２９として動作する。これにより、類似検索プログラム７０を実行したコンピュータ６０が、情報処理装置１０として機能することになる。
【００８８】
また、類似検索プログラム７０により実現される機能は、例えば半導体集積回路、より詳しくはApplication Specific Integrated Circuit（ＡＳＩＣ）等で実現することも可能である。
【００８９】
次に、本実施形態に係る情報処理装置１０の作用を説明する。情報処理装置１０が類似検索プログラム７０を実行することで、図２１に示す算出処理及び図２７に示す照合処理を実行する。なお、本実施形態では、受付部１２により登録指示が受け付けられ、特徴ベクトルが記憶され、バイナリ列ｂ及びバイナリ列ｂｑが記憶されていない所定数のレコードデータがレコードデータ３２に記憶されているものとして説明する。また、図２１に示す算出処理は、情報処理装置１０のユーザにより入出力装置６４の第２入力部を介して実行開始の指示が入力された場合等に実行が開始される。また、図２７に示す照合処理は、入出力装置６４の第１入力部を介して照合対象とする指紋を撮影して得られた画像データが入力された場合等に実行が開始される。
【００９０】
図２１に示す算出処理のステップ１００で、受付部１２は４つの数値パラメータＮＬ、Ｎｑ、Ｂ、Ｂｑの受け付け待ちを行う。受付部１２が数値パラメータＮＬ、Ｎｑ、Ｂ、Ｂｑを受け付けるとステップ１００が肯定判定となり、処理はステップ１０２に移行する。次のステップ１０２で、抽出部１４は、レコードデータ３２からＮＬ個のレコードデータを第１学習用データとして抽出する。なお、数値パラメータＮＬが指定されなかった場合は、抽出部１４は、全レコードデータ３２を第１学習用データとして取得してもよい。また、この場合、抽出部１４は、レコードデータ３２のうち、バイナリ列ｂ及びバイナリ列ｂｑが記憶されていない全レコードデータを第１学習用データとして抽出してもよい。
【００９１】
次のステップ１０４で、第１算出部１６は、ステップ１０２で抽出された第１学習用データを用いて、Ｂ個の通常超平面データを算出し、算出したＢ個の通常超平面データを記憶部３０の通常超平面データ３６に記憶する。一例として図２２に示すように、本ステップ１０４の処理で通常超平面データ３６が記憶される。
【００９２】
次のステップ１０６からステップ１１２までの処理は、ステップ１０４で算出された各超平面データについて、１つの超平面データに対して処理を実行する毎に変数ｉを１からＢまで１ずつインクリメントしながら繰り返し実行される。ステップ１０６で、抽出部１４は、レコードデータ３２から、上記（８）式に従って、ｂ［ｖ］（ｘ［ｖ］）ｉが０となる特徴ベクトルをＮｑ個抽出し、集合Ｓ０とする。
【００９３】
次のステップ１０８で、抽出部１４は、レコードデータ３２から、上記（８）式に従って、ｂ［ｖ］（ｘ［ｖ］）ｉが１となる特徴ベクトルをＮｑ個抽出し、集合Ｓ１とする。次のステップ１１０で、第２算出部１８は、ステップ１０６で抽出された集合Ｓ０の元（要素）とステップ１０８で抽出された集合Ｓ１との元の全ての対の組み合わせについて、上記（３）式に従って、準距離の反対称成分を算出する。そして、第２算出部１８は、算出した反対称成分の和Ｆｉを算出する。
【００９４】
次のステップ１１２で、第２算出部１８は、上記全ての対の組み合わせについて、上記（２）式に従って準距離の対称成分を算出する。また、第２算出部１８は、上記全ての対の組み合わせについて、ステップ１１０で算出した反対称成分の絶対値を、算出した対称成分で除算した値を算出し、算出した値の算術平均値Ａｉを算出する。本ステップ１１２で算出された算術平均値Ａｉは、一例として図２３の矢印Ｙに示すように、通常超平面Ｈで分割された２つの領域間の準距離の反対称成分の強さを表す値となる。また、図２３の矢印Ｙの方向が、特徴ベクトルの移動し易い方向に対応する。
【００９５】
ステップ１１４で、図２４に示す選出処理が実行される。図２４に示す選出処理のステップ１４０で、第２算出部１８は、変数ｇｉ（ｉ＝１〜Ｂ）を１に設定する。次のステップ１４２で、第２算出部１８は、ｇｉから１を減算したｇｉ−１（ｉ＝１〜Ｂ）の和が、ステップ１００で受け付けられたＢｑ未満であるか否かを判定する。この判定が肯定判定となった場合は、処理はステップ１４４に移行する。
【００９６】
ステップ１４４で、第２算出部１８は、ステップ１１０で算出された和の絶対値｜Ｆｉ｜をｇｉで除算した｜Ｆｉ｜／ｇｉが最も小さいｇｉを選択し、選択したｇｉに１を加算した後、処理はステップ１４２に戻る。一方、ステップ１４２の判定が否定判定となった場合は、選出処理を終了し、処理は図２１のステップ１１６に戻る。
【００９７】
ステップ１１６で、第２算出部１８は、ステップ１０４で算出されたｉ番目の通常超平面データを、ステップ１１４で算出されたｇｉ個コピーしたデータを一方通行超平面データとして算出する。この際、第２算出部１８は、ステップ１１０で算出された和Ｆｉが負の値である場合は、コピーしたデータの法線ベクトルを反転させる。そして、第２算出部１８は、算出した一方通行超平面データを記憶部３０の一方通行超平面データ３８に記憶する（図２２も参照）。
【００９８】
図２２では、超平面識別子が００１の通常超平面データが１個コピーされて超平面識別子が００３の一方通行超平面データが算出された例を示している。また、図２２では、超平面識別子が００２の通常超平面データが１個コピーされて、かつ法線ベクトルが反転されて、超平面識別子が００４の一方通行超平面データが算出された例を示している。なお、通常超平面データ及び一方通行超平面データの記憶形式は、図２２に示す例に限定されない。本実施形態では、通常超平面と一方通行超平面は同じ位置に配置されるため、一例として図２５に示すように、通常超平面データに一方通行超平面数を追加する記憶形式としてもよい。図２５において、一方通行超平面数が負の数になっている一方通行超平面は、通常超平面とは法線ベクトルの向きが逆向きになっていることを示している。
【００９９】
次のステップ１１８で、第２算出部１８は、ステップ１１２で算出した算術平均値Ａｉ（ｉ＝１〜Ｂ）の算術平均値Ａを算出する。次のステップ１２０で、第１変換部２２は、レコードデータ３２からバイナリ列ｂが未格納のレコードデータを抽出する。また、第１変換部２２は、抽出したレコードデータに記憶された特徴ベクトルを、ステップ１０４で算出された通常超平面データを用いたバイナリ列への変換関数ｂ［ｖ］に従って、バイナリ列ｂへ変換する（（８）式参照）。そして、第１変換部２２は、変換して得られたバイナリ列ｂをレコードデータ３２のバイナリ列ｂに記憶する。
【０１００】
なお、第１変換部２２は、バイナリ列ｂが既に記憶されているレコードデータ３２についても、特徴ベクトルをバイナリ列ｂに変換してレコードデータ３２のバイナリ列ｂを更新してもよい。
【０１０１】
次のステップ１２２で、第２変換部２４は、レコードデータ３２からバイナリ列ｂｑが未格納のレコードデータを抽出する。また、第２変換部２４は、抽出したレコードデータに記憶された特徴ベクトルを、ステップ１１６で算出された一方通行超平面データを用いたバイナリ列への変換関数ｂｑ［ｖ］に従って、バイナリ列ｂｑへ変換する（（１２）式参照）。そして、第２変換部２４は、変換して得られたバイナリ列ｂｑをレコードデータ３２のバイナリ列ｂｑに記憶する。
【０１０２】
なお、第２変換部２４は、バイナリ列ｂｑが既に記憶されているレコードデータ３２についても、特徴ベクトルをバイナリ列ｂｑに変換してレコードデータ３２のバイナリ列ｂｑを更新してもよい。
【０１０３】
上記ステップ１２０及び１２２の処理により、一例として図２６に示すように、レコードデータ３２の各レコードに対して、バイナリ列ｂ及びバイナリ列ｂｑが算出されて記憶される。なお、図２６では、一例として、４つの通常超平面を用いて特徴ベクトルをバイナリ列ｂに変換し、３つの一方通行超平面を用いて特徴ベクトルをバイナリ列ｂｑに変換した場合のレコードデータ３２を示している。ステップ１２２を終了すると、算出処理が終了する。
【０１０４】
図２７のステップ１６０で、受付部１２は、照合対象とする指紋を撮影して得られた画像データを受け付ける。次のステップ１６２で、受付部１２は、ステップ１６０で受け付けた画像データから特徴ベクトルを算出する。次のステップ１６４で、第１変換部２２は、記憶部３０から通常超平面データ３６の全レコードを読み出す。そして、第１変換部２２は、ステップ１６２で算出された特徴ベクトルを、読み出した通常超平面データを用いたバイナリ列への変換関数ｂ［ｖ］に従って、バイナリ列ｂＥへ変換する（（８）式参照）。
【０１０５】
次のステップ１６６で、第２変換部２４は、記憶部３０から一方通行超平面データ３８の全レコードを読み出す。そして、第２変換部２４は、ステップ１６２で算出された特徴ベクトルを、読み出した一方通行超平面データを用いたバイナリ列への変換関数ｂｑ［ｖ］に従って、バイナリ列ｂｑＦへ変換する（（１２）式参照）。
【０１０６】
次のステップ１６８で、第１出力部２８は、記憶部３０からレコードデータ３２の全レコードを読み出す。次のステップ１７０からステップ１７４までの処理は、ステップ１６８で読み出された各レコードデータについて、１つのレコードデータに対して処理を実行する毎に変数ｉを１から読み出したレコード件数まで１ずつインクリメントしながら繰り返し実行される。
【０１０７】
次のステップ１７０で、第１出力部２８は、ｉ番目のレコードデータに記憶されたバイナリ列ｂｉとステップ１６４で算出されたバイナリ列ｂＥとのハミング距離Ｈａｍｍを算出する（（９）式参照）。次のステップ１７２で、第１出力部２８は、ｉ番目のレコードデータに記憶されたバイナリ列ｂｑｉとステップ１６６で算出されたバイナリ列ｂｑＦとの反対称ハミング距離ＱＨａｍｍを算出する（（１３）式参照）。
【０１０８】
次のステップ１７４で、第１出力部２８は、次の（１４）式に従って、ｉ番目のレコードデータにおけるクエリデータとの非類似度ＱＳｉｍを算出する。（１４）式において、Ｈａｍｍ（ｂＥ，ｂｉ）はステップ１７０で算出されたハミング距離Ｈａｍｍであり、ＱＨａｍｍ（ｂｑＦ，ｂｑｉ）はステップ１７２で算出された反対称ハミング距離ＱＨａｍｍである。また、（１４）式において、Ｂは通常超平面の個数であり、Ｂｑは一方通行超平面の個数である。また、（１４）式において、Ａは図２１のステップ１１８で算出された算術平均値である。
【０１０９】
【数１３】
0006638484.tif 000014
【０１１０】
なお、非類似度ＱＳｉｍの算出方法は、（１４）式に限定されない。第１のバイナリ列ｂから算出される非類似度（Ｈａｍｍ）と、第２のバイナリ列ｂｑから算出される非類似度（ＱＨａｍｍ）と、の和が小さくなるほど小さくなる値であれば、他の方法を用いて、非類似度ＱＳｉｍを算出してもよい。
【０１１１】
ステップ１７６で、第１出力部２８は、ステップ１６８で取得したレコードデータを、ステップ１７４で算出した非類似度ＱＳｉｍで昇順に並べ替える。次のステップ１７８で、第１出力部２８は、ステップ１７６で並べ替えたレコードデータの先頭から所定数（ｋ個）のレコードデータを抽出する。
【０１１２】
次のステップ１８０で、第２出力部２９は、ステップ１６２で算出された特徴ベクトルとステップ１７６で抽出された各レコードデータに記憶された特徴ベクトルとの類似度を算出する。
【０１１３】
次のステップ１８２で、第２出力部２９は、ステップ１８０で算出した類似度の最大値が所定値以上であるか否かを判定する。この判定が肯定判定となった場合は、処理はステップ１８４に移行し、否定判定となった場合は、処理はステップ１８６に移行する。ステップ１８４で、第２出力部２９は、指紋認証の照合結果が正常であることを示す情報を出力する。本実施形態では、第２出力部２９は、一例として指紋認証の照合結果が正常であることを示す画面を入出力装置６４の表示部に表示する。ステップ１８４の処理を終了すると、照合処理が終了する。
【０１１４】
一方、ステップ１８６で、第２出力部２９は、指紋認証の照合結果が異常であることを示す情報を出力する。本実施形態では、第２出力部２９は、一例として指紋認証の照合結果が異常であることを示す画面を入出力装置６４の表示部に表示する。ステップ１８６の処理を終了すると、照合処理が終了する。
【０１１５】
以上説明したように、本実施形態によれば、通常超平面データ及び一方通行超平面データの各々を用いて、クエリデータ及びレコードデータの特徴ベクトルを各々バイナリ列に変換している。このように変換されたバイナリ列は、特徴ベクトルの移動し易い方向が考慮されたものとなる。この結果、これらのバイナリ列を用いてクエリデータ及びレコードデータの類似性を判定することで、クエリデータとレコードデータとの類似性の判定精度の低下を抑制することができる。
【０１１６】
また、本実施形態によれば、非類似度ＱＳｉｍの昇順に所定数のレコードデータを出力している。これにより、クエリデータとレコードデータとの類似性の判定速度の低下を抑制しつつ、該類似性の判定精度の低下を抑制することができる。
【０１１７】
また、本実施形態によれば、一方通行超平面が、通常超平面と同じ位置に位置するように一方通行超平面データを算出している。一方通行超平面の位置と通常超平面の位置とが異なる場合、ある特徴ベクトルが、一方通行超平面で特徴ベクトル空間を分割した場合と、通常超平面で特徴ベクトル空間を分割した場合とで異なる領域に位置する場合がある。従って、本実施形態によれば、一方通行超平面の位置と通常超平面の位置とが異なる場合に比較して、クエリデータとレコードデータとの類似性の判定精度の低下を抑制することができる。
【０１１８】
また、本実施形態によれば、政党名簿比例代表制の議席決定方式を用いて、一方通行超平面データを算出している。これにより、一方通行超平面の数をランダムに決定する場合に比較して、クエリデータとレコードデータとの類似性の判定精度の低下を抑制することができる。
【０１１９】
なお、上記実施形態では、一方通行超平面の位置を通常超平面の位置と同じ位置にした場合について説明したが、これに限定されない。一方通行超平面の位置を通常超平面の位置から若干ずらした位置にしてもよい。
【０１２０】
また、上記実施形態では、政党名簿比例代表制の議席決定方式としてドント方式を用いた場合について説明したが、これに限定されない。例えば、政党名簿比例代表制の議席決定方式として最大剰余方式等のドント方式以外の方式を用いてもよい。
【０１２１】
また、上記実施形態では、開示の技術を指紋認証に適用した場合について説明したが、これに限定されない。開示の技術をDeoxyribo Nucleic Acid（ＤＮＡ）等のシーケンスデータの照合・検索や、画像、音声、構造設計部品、及び動線データ等の照合・検索に適用してもよい。
【０１２２】
また、上記実施形態では、類似検索プログラム７０が記憶部６３に予め記憶（インストール）されている態様を説明したが、これに限定されない。類似検索プログラム７０は、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリ等の記録媒体に記録された形態で提供することも可能である。
【０１２３】
また、開示の技術の手法は、カーネル法を用いた超平面による空間分割法にも適用することが可能である。
【０１２４】
以上の実施形態に関し、更に以下の付記を開示する。
【０１２５】
（付記１）
複数の特徴量を各々含む複数のレコードデータに基づいて、特徴量空間を分割する超平面であって、分割した一対の領域間の距離が対称性を有する通常超平面を表す通常超平面データを算出する第１算出部と、
複数の前記レコードデータ、及び前記通常超平面データに基づいて、前記特徴量空間を分割する超平面であって、分割した一対の領域間の距離が反対称性を有する一方通行超平面を表す一方通行超平面データを算出する第２算出部と、
前記通常超平面データ及び前記一方通行超平面データに基づいて、複数の特徴量を含むクエリデータ及び複数の前記レコードデータをバイナリ列へ各々変換する変換部と、
含む情報処理装置。
【０１２６】
（付記２）
前記第２算出部は、前記一方通行超平面が、前記特徴量空間上で前記通常超平面データが表す前記通常超平面と重なるように、前記一方通行超平面データを算出する、
付記１記載の情報処理装置。
【０１２７】
（付記３）
前記第２算出部は、前記通常超平面データが表す前記通常超平面で前記特徴量空間を一対の領域に分割したときに、異なる領域に位置する前記レコードデータの対の前記特徴量空間での準距離の反対称成分に基づいて、前記一方通行超平面の数及び方向を各々決定する、
付記１又は付記２記載の情報処理装置。
【０１２８】
（付記４）
前記第１算出部は、複数の前記通常超平面を表す通常超平面データを算出し、
前記第２算出部は、前記通常超平面データが表す前記通常超平面で特徴量空間を一対の領域に分割したときに、異なる領域に位置する前記レコードデータの対の前記特徴量空間での準距離の反対称成分を、前記レコードデータの対の複数の組み合わせについて積算することを、個々の前記通常超平面について各々行い、個々の前記通常超平面に対応する前記準距離の反対称成分の積算値に基づいて、前記一方通行超平面の数及び方向を各々決定する、
付記３記載の情報処理装置。
【０１２９】
（付記５）
前記第２算出部は、政党名簿比例代表制の議席決定方式を用いて、前記準距離の反対称成分の積算値の絶対値を通常超平面の得票数として各通常超平面に議席を割り当て、割り当てた議席数を通常超平面に対応する一方通行超平面の数と決定する、
付記４項記載の情報処理装置。
【０１３０】
（付記６）
前記第２算出部は、前記政党名簿比例代表制の議席決定方式として、ドント方式を用いて各通常超平面に議席を割り当てる、
付記５記載の情報処理装置。
【０１３１】
（付記７）
前記変換部は、前記通常超平面データを用いて前記クエリデータ及び複数の前記レコードデータの各々を第１のバイナリ列へ変換すると共に、前記一方通行超平面データを用いて前記クエリデータ及び複数の前記レコードデータの各々を第２のバイナリ列へ変換し、
個々の前記レコードデータについて、前記クエリデータの前記第１のバイナリ列と前記レコードデータの前記第１のバイナリ列との非類似度と、前記クエリデータの前記第２のバイナリ列と前記レコードデータの前記第２のバイナリ列との非類似度と、の和が小さくなるほど小さくなる値の昇順に所定数分のレコードデータを出力する出力部、をさらに含む
付記１から付記６の何れか１項記載の情報処理装置。
【０１３２】
（付記８）
コンピュータに、
複数の特徴量を各々含む複数のレコードデータに基づいて、特徴量空間を分割する超平面であって、分割した一対の領域間の距離が対称性を有する通常超平面を表す通常超平面データを算出し、
複数の前記レコードデータ、及び前記通常超平面データに基づいて、前記特徴量空間を分割する超平面であって、分割した一対の領域間の距離が反対称性を有する一方通行超平面を表す一方通行超平面データを算出し、
前記通常超平面データ及び前記一方通行超平面データに基づいて、複数の特徴量を含むクエリデータ及び複数の前記レコードデータをバイナリ列へ各々変換する、
ことを含む処理を実行させる類似検索プログラム、又は前記類似検索プログラムを記憶した記憶媒体。
【０１３３】
（付記９）
前記一方通行超平面が、前記特徴量空間上で前記通常超平面データが表す前記通常超平面と重なるように、前記一方通行超平面データを算出する、
付記８記載の類似検索プログラム。
【０１３４】
（付記１０）
前記通常超平面データが表す前記通常超平面で前記特徴量空間を一対の領域に分割したときに、異なる領域に位置する前記レコードデータの対の前記特徴量空間での準距離の反対称成分に基づいて、前記一方通行超平面の数及び方向を各々決定する、
付記８又は付記９記載の類似検索プログラム。
【０１３５】
（付記１１）
複数の前記通常超平面を表す通常超平面データを算出し、
前記通常超平面データが表す前記通常超平面で特徴量空間を一対の領域に分割したときに、異なる領域に位置する前記レコードデータの対の前記特徴量空間での準距離の反対称成分を、前記レコードデータの対の複数の組み合わせについて積算することを、個々の前記通常超平面について各々行い、個々の前記通常超平面に対応する前記準距離の反対称成分の積算値に基づいて、前記一方通行超平面の数及び方向を各々決定する、
付記１０記載の類似検索プログラム。
【０１３６】
（付記１２）
政党名簿比例代表制の議席決定方式を用いて、前記準距離の反対称成分の積算値の絶対値を通常超平面の得票数として各通常超平面に議席を割り当て、割り当てた議席数を通常超平面に対応する一方通行超平面の数と決定する、
付記１１記載の類似検索プログラム。
【０１３７】
（付記１３）
前記政党名簿比例代表制の議席決定方式として、ドント方式を用いて各通常超平面に議席を割り当てる、
付記１２記載の類似検索プログラム。
【０１３８】
（付記１４）
前記通常超平面データを用いて前記クエリデータ及び複数の前記レコードデータの各々を第１のバイナリ列へ変換すると共に、前記一方通行超平面データを用いて前記クエリデータ及び複数の前記レコードデータの各々を第２のバイナリ列へ変換し、
個々の前記レコードデータについて、前記クエリデータの前記第１のバイナリ列と前記レコードデータの前記第１のバイナリ列との非類似度と、前記クエリデータの前記第２のバイナリ列と前記レコードデータの前記第２のバイナリ列との非類似度と、の和が小さくなるほど小さくなる値の昇順に所定数分のレコードデータを出力する、
付記８から付記１３の何れか１項記載の類似検索プログラム。
【０１３９】
（付記１５）
コンピュータに、
複数の特徴量を各々含む複数のレコードデータに基づいて、特徴量空間を分割する超平面であって、分割した一対の領域間の距離が対称性を有する通常超平面を表す通常超平面データを算出し、
複数の前記レコードデータ、及び前記通常超平面データに基づいて、前記特徴量空間を分割する超平面であって、分割した一対の領域間の距離が反対称性を有する一方通行超平面を表す一方通行超平面データを算出し、
前記通常超平面データ及び前記一方通行超平面データに基づいて、複数の特徴量を含むクエリデータ及び複数の前記レコードデータをバイナリ列へ各々変換する、
ことを含む処理を実行させる類似検索方法。
【符号の説明】
【０１４０】
１０  情報処理装置
１４  抽出部
１６  第１算出部
１８  第２算出部
２０  変換部
２２  第１変換部
２４  第２変換部
２６  出力部
２８  第１出力部
２９  第２出力部
３０  記憶部
３２  レコードデータ
３４  超平面データ
３６  通常超平面データ
３８  一方通行超平面データ
６０  コンピュータ
６１  ＣＰＵ
６２  メモリ
６３  記憶部
６４  入出力装置
６８  記録媒体
７０  類似検索プログラム
【図１】
0006638484.tif 000015
【図２】
0006638484.tif 000016
【図３】
0006638484.tif 000017
【図４】
0006638484.tif 000018
【図５】
0006638484.tif 000019
【図６】
0006638484.tif 000020
【図７】
0006638484.tif 000021
【図８】
0006638484.tif 000022
【図９】
0006638484.tif 000023
【図１０】
0006638484.tif 000024
【図１１】
0006638484.tif 000025
【図１２】
0006638484.tif 000026
【図１３】
0006638484.tif 000027
【図１４】
0006638484.tif 000028
【図１５】
0006638484.tif 000029
【図１６】
0006638484.tif 000030
【図１７】
0006638484.tif 000031
【図１８】
0006638484.tif 000032
【図１９】
0006638484.tif 000033
【図２０】
0006638484.tif 000034
【図２１】
0006638484.tif 000035
【図２２】
0006638484.tif 000036
【図２３】
0006638484.tif 000037
【図２４】
0006638484.tif 000038
【図２５】
0006638484.tif 000039
【図２６】
0006638484.tif 000040
【図２７】
0006638484.tif 000041