JP2019101927A - 学習システム及び画像検索システム - Google Patents

学習システム及び画像検索システム Download PDF

Info

Publication number
JP2019101927A
JP2019101927A JP2017234490A JP2017234490A JP2019101927A JP 2019101927 A JP2019101927 A JP 2019101927A JP 2017234490 A JP2017234490 A JP 2017234490A JP 2017234490 A JP2017234490 A JP 2017234490A JP 2019101927 A JP2019101927 A JP 2019101927A
Authority
JP
Japan
Prior art keywords
image
neural network
vector
output
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017234490A
Other languages
English (en)
Other versions
JP6873027B2 (ja
Inventor
陽介 加賀
Yosuke Kaga
陽介 加賀
正和 藤尾
Masakazu Fujio
正和 藤尾
高橋 健太
Kenta Takahashi
健太 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2017234490A priority Critical patent/JP6873027B2/ja
Publication of JP2019101927A publication Critical patent/JP2019101927A/ja
Application granted granted Critical
Publication of JP6873027B2 publication Critical patent/JP6873027B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】画像検索を高速かつ高精度に行う。【解決手段】学習システムは、画像ペアの画像情報と、該画像ペアが同一の対象の画像であるか否かを示すフラグと、画像情報が入力され各要素の値が所定範囲に含まれる出力ベクトルを出力する第1ニューラルネットワークと、を保持し、第1ニューラルネットワークに該画像ペアの各画像の画像情報を入力して、各画像について第1出力ベクトルを出力し、第1出力ベクトル間の距離の期待値を算出し、該フラグを参照して、該画像ペアが同一の対象の画像である場合に算出した期待値が小さく、該画像ペアが異なる対象の画像である場合に算出した期待値が大きくなるよう、第1ニューラルネットワークのパラメータを更新する。【選択図】図1

Description

本発明は、学習システム及び画像検索システムに関する。
指紋、顔、及び静脈などの生体情報を活用して個人を認証する生体認証技術が近年普及している。生体認証において、個人の生体情報が予め登録され、認証時に入力された生体情報と登録した生体情報とが照合されることで個人が特定される。この生体認証には、ユーザのIDを入力して登録生体情報を特定した上で照合を行う1:1認証と、ユーザのIDを入力せずに全ての登録生体情報と照合を行う1:N認証と、がある。1:N認証において、ユーザはIDを入力する必要がないため、ユーザはIDを記憶したりIDを入力したりする手間がなく、利便性が高い。
一方、1:N認証では、認証対象の生体情報と、全ての登録生体情報と、の間で照合が行われるため、1:1認証と比較して照合に時間がかかる。例えば、100万件の登録生体情報がある場合に単純に全件と照合を行うと、1:1認証の100万倍の照合時間がかかる。
このような大規模な1:N認証を高速に行うための技術として、特開2013−206187号公報(特許文献1)がある。この、公報には、「情報検索装置1は、ハミング距離を用いた検索処理の対象となるデータの特徴量ベクトルを、バイナリ記号とのハミング距離を0とするワイルドカード記号と前記バイナリ記号とを含む記号列に変換する。そして、情報検索装置1は、クエリデータをバイナリ化し、バイナリ化したクエリデータとのハミング距離が所定の値以下となる記号列を検索することで、クエリデータの近傍データを検索する。」と記載されている(要約参照)。
特開2013−206187号公報
特許文献1に記載の技術は、単純な射影によるバイナリベクトル化を1:N認証に適用している。当該方法によれば、認証速度が向上しても、認証の精度が低下するおそれがある。本発明の一態様は、例えば、1:N認証における生体情報の照合のような、画像検索を高速かつ高精度に行うことを目的とする。
上記課題を解決するため、本発明の一態様は以下の構成を採用する。ニューラルネットワークのパラメータを学習する学習システムは、プロセッサとメモリとを含み、前記メモリは、画像ペアの画像情報と、前記画像ペアが同一の対象の画像であるか否かを示すフラグと、画像情報が入力され、各要素の値が所定範囲に含まれる出力ベクトルを出力する第1ニューラルネットワーク、を示すネットワーク情報と、を保持し、前記プロセッサは、前記第1ニューラルネットワークに前記画像ペアの各画像の画像情報を入力して、各画像について第1出力ベクトルを出力し、前記第1出力ベクトル間の距離の期待値を算出し、前記フラグを参照して、前記画像ペアが同一の対象の画像である場合に前記算出した期待値が小さく、前記画像ペアが異なる対象の画像である場合に前記算出した期待値が大きくなるよう、前記第1ニューラルネットワークのパラメータを更新する、学習システム。
本発明の一態様によれば、画像検索を高速かつ高精度に行うことができる。上記した以外の課題、構成、及び効果は以下の実施形態によって明らかにされる。
実施例1における認証システムの構成例を示すブロック図である。 実施例1におけるパラメータ学習処理、生体情報登録処理、及び1:N認証処理の一例を示すフローチャートである。 実施例1におけるパラメータ学習処理の一例を示すフローチャートである。 実施例1における学習データのデータ構造の一例を示す説明図である。 実施例1におけるパラメータのデータ構造の一例を示す説明図である。 実施例1における登録データ生成処理の詳細の一例を示すフローチャートである。 実施例1における認証データ生成処理の詳細の一例を示すフローチャートである。 実施例1における絞り込み照合処理の詳細の一例を示すフローチャートである。 実施例1における登録データのデータ構造の一例を示す説明図である。 実施例1における学習機、認証クライアント、及び認証サーバのハードウェア構成例を示すブロック図である。 実施例2におけるパラメータ学習処理、生体情報登録処理、及び1:N認証処理の一例を示すフローチャートである。 実施例3におけるパラメータ学習処理の一例を示すフローチャートである。 実施例3における絞り込み照合処理の詳細の一例を示すフローチャートである。
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
以下、認証システムについて説明する。認証システムは、学習データを用いてニューラルネットワークのパラメータを学習する。認証システムは、生体情報をニューラルネットワークへ入力して得られるバイナリベクトル、を登録する。また、認証システムは、1:N認証時に、生体情報をニューラルネットワークへ入力して得られるバイナリベクトルと、登録されたバイナリベクトルと、の照合により照合対象を絞り込むことで高速な1:N認証を行う。
本実施例の認証システムは、Deep Learningと呼ばれる機械学習を生体認証のバイナリベクトル化に活用して、高速かつ高精度な1:N認証が実現することができる。なお、本実施形態において、生体情報として指紋、虹彩、静脈、又は顔等の画像の情報(例えば画像特徴量)が用いられる例を説明するが、例えば、声のような他の生体情報が用いられてもよい。
図1は、認証システムの構成例を示すブロック図である。認証システムは、例えば、学習機1000、認証クライアント1100、及び認証サーバ1200を含む。学習機1000は、例えば、パラメータ初期化部1010、学習データ取得部1020、ニューラルネット算出部1030、ベクトル間距離算出部1040、ロス算出部1050、パラメータ更新部1060、学習データ格納部1090、及びパラメータ格納部1091、を含む。
パラメータ初期化部1010は、ニューラルネットワークのパラメータを初期化する。学習データ取得部1020は、学習データ格納部1090から学習データを取得する。ニューラルネット算出部1030は、生体情報をニューラルネットワークへ入力してベクトルを算出する。ベクトル間距離算出部1040は、2つのベクトル間の距離を算出する。
ロス算出部1050は、ベクトル間の距離に基づきロス関数の出力を算出する。パラメータ更新部1060は、ロス算出部1050が算出したロス関数の出力に基づき、ニューラルネットワークのパラメータを更新する。学習データ格納部1090は、学習データを格納する。パラメータ格納部1091は、パラメータ更新部1060にて学習したパラメータを格納する。
認証クライアント1100は、例えば、生体情報取得部1110、ニューラルネット算出部1120、ベクトル二値化部1130、登録ベクトル融合部1140、マスクベクトル生成部1150、テンプレート変換部1160、サンプル変換部1161、テンプレート照合部1170、通信部1180、及びパラメータ格納部1190、を含む。
生体情報取得部1110は、登録時または認証時にユーザから入力された生体情報を取得する。ニューラルネット算出部1120は、生体情報取得部1110が取得した生体情報をニューラルネットワークへ入力して出力ベクトルを算出する。
ベクトル二値化部1130は、ニューラルネット算出部1120が算出した出力ベクトルを二値化してバイナリベクトルを生成する。登録ベクトル融合部1140は、ベクトル二値化部1130が生成した複数のバイナリベクトルを融合し、単一の登録ベクトルを生成する。
マスクベクトル生成部1150は、ベクトル二値化部1130が生成したバイナリベクトルに対するマスクベクトルを生成する。テンプレート変換部1160は、生体情報取得部1110が取得した生体情報を登録テンプレートに変換する。サンプル変換部1161は、生体情報取得部1110が取得した生体情報を認証サンプルに変換する。
テンプレート照合部1170は、テンプレート変換部1160が生成した登録テンプレートと、サンプル変換部1161が生成した認証サンプルと、を照合して本人判定を行う。通信部1180は、ネットワーク1300を介して、認証サーバ1200と通信を行う。パラメータ格納部1190は、学習機1000のパラメータ格納部1091に格納された学習済みパラメータと同じパラメータを格納する。
認証サーバ1200は、例えば、ベクトル間距離算出部1210、通信部1220、及び登録テンプレート格納部1290を含む。ベクトル間距離算出部1210は、ニューラルネット算出部1120とベクトル二値化部1130が算出したバイナリベクトル間のハミング距離を算出する。通信部1220は、ネットワーク1300を介して、認証クライアント1100と通信する。登録テンプレート格納部1290は、テンプレート変換部1160が生成した登録テンプレートを格納する。
なお、図1の例では、学習機1000は、認証クライアント1100及び認証サーバ1200に接続されていないが、認証クライアント1100及び認証サーバ1200の少なくとも一方と、ネットワーク1300を介して接続されていてもよい。
図10は、学習機1000、認証クライアント1100、及び認証サーバ1200のハードウェア構成例を示すブロック図である。学習機1000、認証クライアント1100、及び認証サーバ1200は、例えば、図10に示す計算機によって構成される。計算機は、CPU(Central Processing Unit)1001、主記憶装置1002、補助記憶装置1003、入力装置1004、出力装置1005、及び通信装置1006を含む。
CPU1001は、プロセッサを含み、主記憶装置1002に格納されたプログラムを実行する。主記憶装置(メモリ)1002は、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、CPU1001が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
補助記憶装置1003は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)等の大容量かつ不揮発性の記憶装置であり、プロセッサが実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置1003から読み出されて、主記憶装置1002にロードされて、プロセッサによって実行される。
計算機は、入力インターフェース及び出力インターフェースを有する。入力インターフェースは、キーボード、マウス、カメラ、及びスキャナなどの入力装置1004が接続され、オペレータからの入力を受け付けるインターフェースである。出力インターフェースは、ディスプレイ装置やプリンタなどの出力装置1005が接続され、プログラムの実行結果をオペレータが視認可能な形式で出力するインターフェースである。
通信装置1006は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置であり、通信部による通信に用いられる。また、通信装置1006は、例えば、USB等のシリアルインターフェースを含む。
CPU1001が実行するプログラムは、リムーバブルメディア(CD−ROM、フラッシュメモリなど)又はネットワークを介して計算機に提供され、非一時的記憶媒体である不揮発性の補助記憶装置1003に格納される。このため、計算機は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
学習機1000、認証クライアント1100、及び認証サーバ1200は、それぞれ、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
学習機1000のCPU1001は、パラメータ初期化部1010、ニューラルネット算出部1030、ベクトル間距離算出部1040、ロス算出部1050、パラメータ更新部1060を含む。認証クライアント1100のCPU1001は、ニューラルネット算出部1120、ベクトル二値化部1130、登録ベクトル融合部1140、マスクベクトル生成部1150、テンプレート変換部1160、サンプル変換部1161、テンプレート照合部1170、及び通信部1180を含む。認証サーバ1200のCPU1001は、ベクトル間距離算出部1210及び通信部1220を含む。
例えば、学習機1000のCPU1001は、学習機1000の主記憶装置1002にロードされたパラメータ初期化部プログラムに従って動作することで、パラメータ初期化部1010として機能し、学習機1000の主記憶装置1002にロードされたニューラルネット算出プログラムに従って動作することで、ニューラルネット算出部1030として機能する。学習機1000のCPU1001に含まれる他の部、認証クライアント1100のCPU1001に含まれる各部、及び認証サーバ1200のCPU1001に含まれる各部についても同様である。
学習機1000の補助記憶装置1003は、学習データ格納部1090及びパラメータ格納部1091を含む。認証クライアント1100の補助記憶装置1003は、パラメータ格納部1190を含む。認証サーバ1200の補助記憶装置1003は、登録テンプレート格納部1290を含む。
以下、認証システムが実行する処理手順の一例を、説明する。図2は、パラメータ学習処理、生体情報登録処理、及び1:N認証処理の一例を示すフローチャートである。
まず、学習機1000は、パラメータの学習処理を行う(S2010)。この処理では、学習機1000は、学習データ格納部1090に予め格納された学習データに基づきニューラルネットワークのパラメータを学習し、学習したパラメータをパラメータ格納部1091に格納する。ステップS2010におけるパラメータ学習の詳細は、図3を参照して後述する。
ステップS2010で取得されたパラメータは、パラメータ格納部1091に格納され、学習処理の終了後に認証クライアント1100のパラメータ格納部1190へコピーされる。学習機1000と認証クライアント1100とがネットワーク1300を介して接続されていない場合には、例えば、リムーバブルメディアを介して、当該パラメータが認証クライアント1100に提供される。
次に、認証クライアント1100と認証サーバ1200とが、生体情報の登録処理を行う。まず認証クライアント1100の生体情報取得部1110は、例えば、入力装置1004から、又はネットワーク1300を介して他の装置から、ユーザの生体情報(例えば、指紋、顔、虹彩、静脈など)を取得する(S2110)。
認証クライアント1100は、取得した生体情報から、登録データを生成し(S2120)、認証サーバ1200へ送信する(S2130)。ステップS2120の登録データ生成処理により、登録ベクトル、マスクベクトル、及び登録テンプレートの3つが得られる。ステップS2120における登録データ生成処理の詳細は、図6を参照して後述する。
次に認証サーバ1200は、登録データを受信し(S2210)、受信した登録データを登録テンプレート格納部1290へ格納する(S2220)。登録データは、後述する登録テンプレート、バイナリベクトル、及びマスクベクトルを含む。以上の処理を各ユーザに対して実行することで各ユーザの生体情報登録が完了し、1:N認証が利用可能になる。
次に、認証クライアント1100と認証サーバ1200が、1:N認証処理を行う。認証クライアント1100の生体情報取得部1110はユーザから生体情報を取得する(S2140)。認証クライアント1100は、得られた生体情報から認証データを生成して(S2150)、認証サーバ1200へ送信する(S2160)。なお、ステップS2150の認証データ生成により、バイナリベクトルと認証サンプルが得られる。認証データは、バイナリベクトルを含む。なお、ステップS2150の詳細については、図7を参照して後述する。
認証サーバ1200は、認証データを受信し(S2230)、認証データに含まれるバイナリベクトルを使った絞り込み照合を行う(S2240)。ステップS2240の詳細については、図8を参照して後述する。ステップS2240において、候補テンプレートIDが得られる。認証サーバ1200は、当該候補テンプレートIDに基づき登録テンプレート格納部1290から候補テンプレートを取得し(S2250)、認証クライアント1100へ送信する(S2260)。
なお、ステップS2250において候補テンプレートが取得されなかった場合は、この時点で認証失敗となり、ステップS2260以降の処理は行われない。この場合、例えば、認証サーバ1200は、認証クライアント1100に認証が失敗したことを通知し、認証クライアント1100は、認証が失敗したことを示す認証結果を、例えば、出力装置1005等に出力する。
ステップS2250において候補テンプレートが1つ以上取得された場合は、ステップS2260以降の処理が実行される。このとき、候補テンプレート数は登録テンプレート格納部1290に格納されている登録テンプレートの数よりも少なくなるため、テンプレート照合の回数を削減することができる。これにより、本実施例の認証システムにおいては、単純に全件の登録テンプレートと認証サンプルの照合を行う場合と比較して高速な処理を実現することができる。
認証クライアント1100は、ステップS2260で送信された候補テンプレートを受信する(S2170)。テンプレート照合部1170は、候補テンプレートと、認証データ生成処理において生成された認証サンプルと、の照合を、例えば、既存の照合方法を用いて行う(S2180)。
ステップS2180におけるテンプレート照合の結果、認証サンプルと同一の生体情報を有する登録テンプレートが存在するか否かが決定する。テンプレート照合部1170は、認証サンプルと同一の生体情報を有する登録テンプレートが存在すると判定した場合、ステップS2190において、認証が成功したことを示す認証結果を、例えば、出力装置1005等に出力する。
一方、認証サンプルと同一の生体情報を有する登録テンプレートが存在しないと判定した場合は、ステップS2190において、認証が失敗したことを示す認証結果を、例えば、出力装置1005等に出力する。以上により、バイナリベクトルによるテンプレートの絞り込みを導入した1:N認証が完了する。
図3は、ステップS2010におけるパラメータ学習処理の一例を示すフローチャートである。本実施例では、Siamese Networkを用いたパラメータ学習が実行される。Siamese Networkは、2つの同一のネットワーク(本実施例ではいずれもニューラルネットワークとする)を含む。
Siamese networkにおける学習データは、それぞれ、当該2つのネットワークそれぞれに入力される入力情報(例えば、画像情報)と、当該2つの入力情報が同じクラスであるか異なるクラスであるかを示すフラグ(同一性情報)と、を含む。なお、当該同一のネットワークそれぞれは、多層(例えば3層以上)のネットワークである。
なお、入力情報が同じ人物の同じ生体情報である場合にのみ、クラスが同じであるものとする。具体的には、例えば、2つの入力情報がいずれもユーザAの右手の人差し指の静脈の画像情報(画像自体は異なってもよい)である場合は、これらの入力情報におけるクラスは等しい。例えば、ユーザAの右手の人差し指の静脈の画像情報と、ユーザBの右手の人差し指の静脈の画像情報と、のクラスは異なる。また、例えば、ユーザAの右手の人差し指の静脈の画像情報と、ユーザAの左手の人差し指の静脈の画像情報と、のクラスは異なる。つまり、入力情報が画像情報である場合には、同一の対象(被写体)から得られた画像情報においてのみ、クラスが等しい。
Siamese Networkにおける学習では、入力情報のクラスが同じであれば出力ベクトル間の距離が小さくなるように、入力情報のクラスが異なれば出力ベクトル間の距離が大きくなるように、ニューラルネットワークのパラメータを更新する。
まず、学習機1000のパラメータ初期化部1010は、パラメータ格納部1091に格納されているパラメータを初期化する(S3010)。パラメータ初期化部1010は、例えば、0を代入する、正規分布などの確率分布に従う乱数を代入するなどの方法によって、パラメータを初期化する。なお、パラメータの初期化方法として、ニューラルネットワークの学習で一般的に行われる他の方法が用いられてもよい。
学習データ取得部1020は、学習データ格納部1090から、学習に用いるデータを取得する(S3020)。具体的には、例えば、学習データ取得部1020は、学習データ(つまり、2つの生体情報のペアとフラグとを含むデータ)をM個選択する。なお、M個の学習データが一度に選択されてパラメータ更新が実行される方式は、Mini Batchと呼ばれる。なお、パラメータ更新のための学習データの選択方法として、ニューラルネットワークの学習で一般的に行われる他の方法が用いられてもよい。
ニューラルネット算出部1030は、学習データ中の生体情報をニューラルネットワークへ入力して出力層から出力される出力ベクトルを取得する(S3030)。なお、本実施例において、画像認識の分野でよく使われる畳み込みニューラルネットワークを用いることができる。
また、ニューラルネットワークの出力ベクトルの各要素の値を所定範囲に含まれる値に変換する関数が、ニューラルネットワークの最終層の関数として用いられる。当該所定範囲は、例えば、バイナリベクトルの各要素がとり得る2値を、それぞれ最大値及び最小値とする範囲である。本実施例では、バイナリベクトルの各要素は0又は1であるものとするため、当該所定範囲は0以上1以下である。
従って、本実施例において、各要素の値を0以上1以下に変換するSigmoid関数は、当該関数の一例である。以下、Sigmoid関数が用いられているものとする。このような関数が最終層の関数として、用いられることにより、出力ベクトルの各要素は、0以上1以下の値となり、確率値とみなすことができる。
ベクトル間距離算出部1040は、ステップS3020で取得した学習データに含まれる入力情報のペアそれぞれについて、ステップS3030で取得した出力ベクトル間の距離を算出する(S3040)。なお、ベクトル間距離としては、ベクトルの各要素の差分の二乗の総和(ユークリッド距離)、ベクトルの各要素の差分の絶対値の総和(マンハッタン距離)の他、下記の式1が示すベクトル間距離関数を適用することができる。
Figure 2019101927
上記式1のベクトル間距離関数における、x、x’は距離を算出する対象のベクトルを表す。また、xは出力ベクトルxのi番目の要素、x’は出力ベクトルx’のi番目の要素であり、nは出力ベクトルx及び出力ベクトルx’の次数である。ニューラルネットワークの最終層がSigmoid関数であるため、出力ベクトルの各要素の値は0から1の値に正規化されている。従って、出力ベクトルの各要素は、当該出力ベクトルから得られるバイナリベクトル(出力ベクトルから得られるバイナリベクトルの詳細については後述する)において、当該出力ベクトルの各要素に対応する要素の値が1となる確率と解釈することもできる。このように解釈した場合、式1に示すベクトル間距離関数によって得られる距離は、2つのバイナリベクトルのハミング距離の期待値を表す。
続いて、ロス算出部1050は、ステップS3040で得られたベクトル間距離に基づいてロスを算出する(S3050)。ロスは、ベクトル間距離がどの程度理想的な値になっているかを示す値であり、0に近づくほど最適化が進んでいることを示す。下記の式2に示すContrastive Loss、及び下記の式3に示すロス関数は、いずれも、ロスの計算に用いられる数式の一例である。
Figure 2019101927
Figure 2019101927
ただし、式2及び式3におけるyは出力ベクトルのペアについてクラスが同じであるか異なるかを示すフラグであり、2つの出力ベクトルが同じクラスであるときに1、異なるクラスであるときに0である。また、Marginは、予め定められた値であり、例えば、1である。
式2及び式3を含むロス関数は、2つの出力ベクトルに対応する生体情報が同じクラスであり、かつ当該出力ベクトル間の距離が小さい場合、及び2つの出力ベクトルに対応する生体情報が異なるクラスであり、かつ当該出力ベクトル間の距離が大きい場合に、小さい値をとる。また、当該ロス関数は、2つの出力ベクトルに対応する生体情報が同じクラスであり、かつ当該出力ベクトル間の距離が大きい場合、及び2つの出力ベクトルに対応する生体情報が異なるクラスであり、かつ当該出力ベクトル間の距離が小さい場合に、大きい値をとる。
続いて、パラメータ更新部1060は、ステップS3050で算出したロスが小さくなるようにニューラルネットワークの各パラメータを更新する(S3060)。これにより、同じクラスのベクトル間の距離が小さくなり、異なるクラスのベクトル間の距離が大きくなるようにパラメータの学習が進む。また、出力ベクトルの各要素の値が0又は1に近づくようにパラメータの学習が進む。
続いて、パラメータ更新部1060は、学習が終了したか否かを判定する(S3070)。具体的には、例えば、パラメータ更新部1060は、Mini Batchの実行回数が所定数に到達することを示す第1の条件が満たされた場合に、学習が終了したと判定し、第1の条件が満たされていない場合に、学習が終了していないと判定する。また、例えば、パラメータ更新部1060は、ロスの値が所定値を下回ることを示す第2の条件が満たされた場合に、学習が終了したと判定し、第2の条件が満たされない場合に、学習が終了していないと判定する。また、パラメータ更新部1060は、例えば、第1の条件又は第2の条件の少なくとも一方が満たされた場合に、学習が終了したと判定し、双方とも満たされていない場合に、学習が終了していないと判定してもよい。
パラメータ更新部1060が、学習が終了していないと判定した場合(S3070:No)、ステップS3020に戻り再度学習を実行する。パラメータ更新部1060は、学習が終了したと判定した場合(S3070:Yes)、得られたパラメータをパラメータ格納部1091に格納する(S3080)。
なお、本実施例では、2つのニューラルネットワークを含むSiamse Netoworkによるパラメータ学習が行われたが、3つ以上のニューラルネットワーク(例えば、Triplet Network)を含むネットワークによってパラメータ学習が行われてもよい。以上により、パラメータの学習が完了する。
図4は、学習データ格納部1090に格納された学習データのデータ構造の一例を示す説明図である。学習データは、学習生体情報410とクラス名420とを含む。学習生体情報410は、学習用に収集した1:N認証に用いる生体情報と同じモダリティの生体情報であり、例えば、指紋、顔、虹彩、静脈などの画像を含む。
クラス名420は、学習生体情報410のクラスの名称であり、例えば英数字で構成される文字列である。このクラスは、生体情報が帰属する人物や身体の部位を示す。クラス名が同一の生体情報は、同じ生体から取得された同じ種類の生体情報である。クラス名が異なる生体情報は、異なる生体から取得された生体情報である。
図5は、パラメータ格納部1091に格納されるパラメータのデータ構造の一例を示す説明図である。図5に示すパラメータはニューラルネットワークの計算過程を一意に決定するために必要となるパラメータである。例えば、当該ニューラルネットワークが畳み込みニューラルネットワークである場合、パラメータは、畳み込みカーネルの各輝度値、バイアスの値、及び全結合層の重みの値、などを含む。
これらのパラメータが決まれば、入力する生体情報に対して、出力ベクトルの値を一意に算出することができる。なお、本実施例では、画像情報が生体情報として用いられるため、パラメータが輝度値を含んでいるが、例えば声の情報が生体情報として用いられる場合には、輝度値の代わりに例えば、声を示す信号から得られる所定の特徴量がパラメータに含まれる。
図6は、認証クライアント1100による登録データ生成処理(S2120)の詳細の一例を示すフローチャートである。ステップS2010の終了後かつステップS2120の開始前に、パラメータ格納部1091に格納されたパラメータが、パラメータ格納部1190にコピーされて格納される。
まず、ニューラルネット算出部1120は、パラメータ格納部1190に格納されたパラメータで定義されるニューラルネットワークにステップS2110で取得した生体情報を入力し、出力ベクトルを生成する(S6010)。
ベクトル二値化部1130は、ステップS6010で得られた出力ベクトルに対して二値化処理を行って、全ての要素が0又は1であるバイナリベクトルを生成する(S6020)。ベクトル二値化部1130は、ステップS6020において、例えば、出力ベクトルの各要素の値域が0から1である場合、所定の閾値(例えば0.5)未満の要素を0、当該所定の閾値以上の要素を1に変換することで二値化処理を実施する。ただし、この二値化処理はこのような単純な閾値処理に限られない。
例えば、ベクトル二値化部1130は、出力ベクトルの各要素の値について、当該値が他の出力ベクトルの当該要素における値の所定の閾値以下の割合(例えば下位50%)に含まれれば0、当該所定の閾値以上の割合(例えば上位50%)に含まれれば1に変換する等の、一般的な二値化方式が適用してもよい。なお、他の出力ベクトルとは、認証クライアント1100による過去の認証処理によって得られた出力ベクトルを含んでもよいし、学習データ格納部1090に格納された学習データによって得られた出力ベクトルを含んでもよい。
なお、同じ人の同じ種類の複数の生体情報から登録情報が生成されてもよい。つまり、ステップS2110が複数回実行されて、同じ人の同じ種類の複数の生体情報が生成され、当該複数の生体情報それぞれについて、ステップS6010及びステップS6020が実行されることにより、複数のバイナリベクトルが生成される。
なお、1つの生体情報から複数のバイナリベクトルが生成されてもよい。具体的には、例えば、生体情報が画像である場合、1つの画像に対して、機械的に位置ずれさせたり、傾けさせたり、歪ませたり、ノイズを加えたり、等して、複数の画像を生成してもよい。
登録ベクトル融合部1140は、複数のバイナリベクトルを融合して、登録ベクトルを生成する(S6030)。登録ベクトル融合部1140は、例えば、複数のバイナリベクトルの各要素の中央値を算出し、各要素の中央値を要素の値とするバイナリベクトルを登録ベクトルに決定する。なお、当該複数のバイナリベクトルの個数が偶数個である場合には、例えば、中央の2つの値の一方(例えば大きい方)の値を、中央値とする。なお、中央値以外の統計量(例えば、平均又は最頻値等)が用いられてもよい。
なお、登録ベクトル融合部1140は、複数のバイナリベクトルを、そのまま登録ベクトルに決定してもよいし、1つのバイナリベクトルのみが生成された場合には、当該バイナリベクトルを登録ベクトルに決定してもよい。
続いて、マスクベクトル生成部1150は、登録ベクトルに対応するマスクベクトルを生成する(S6040)。バイナリベクトルの照合の際に、マスクベクトルを作用させることで照合の精度が向上する。生体情報は、特徴空間上で一様に分布しておらず、個人ごとに特定の偏りがある。このため、バイナリベクトルの各要素に含まれる誤差には個体差が発生する。
マスクベクトル生成部1150は、例えば、登録時に取得した複数のバイナリベクトルや、生体情報に恣意的に摂動やノイズを加えたものから生成した複数のバイナリベクトルを分析し、ベクトルの各要素の値のぶれ易さ(即ち信頼度の低さ)を算出する。
マスクベクトル生成部1150は、例えば、生成した登録ベクトルの各要素の値が、どの程度の確率で反転するかを集計することにより、このぶれ易さを算出する。具体的には、マスクベクトル生成部1150は、例えば、分析対象の複数のバイナリベクトルの各要素について、当該要素が0であるバイナリベクトルの数と当該要素が1であるバイナリベクトルの数との差が大きいほど、当該要素におけるぶれ易さを低い値に設定し、当該差が小さいほど当該要素におけるぶれ易さを高い値に設定する。
また、マスクベクトル生成部1150は、1つの生体情報から得られた出力ベクトルから、ぶれ易さを算出してもよい。具体的には、例えば、出力ベクトルの各要素が所定の閾値未満の場合に0、所定の閾値以上の場合に1となるバイナリベクトルが生成される場合には、マスクベクトル生成部1150は、当該要素の値が当該所定の閾値に近いほど、ぶれ易さを高い値に設定し、当該要素の値が当該所定の閾値に遠いほど、ぶれ易さを低い値に設定する。
ぶれ易さが所定値以上の要素については、誤差が含まれやすいため、当該要素を除外したベクトルを用いてデータの照合を実行した方が、精度が高まる可能性がある。この誤差が含まれやすい要素の除外を実現するのがマスクベクトルである。
マスクベクトル生成部1150は、具体的には、誤差が含まれやすい(例えば、ぶれ易さが所定値以上の)要素の値を0、誤差が含まれにくい(例えば、ぶれ易さが所定値未満の)要素の値を1とするマスクベクトルを生成し、バイナリベクトルと共に登録しておく。
続いて、テンプレート変換部1160は、ステップS2110で取得された生体情報に対してテンプレート変換を施し、登録テンプレートを生成する(S6050)。テンプレート変換部1160は、生体情報に対して特徴抽出処理を行うことで、生体情報を特徴点やパターン画像へ変換したデータを、登録テンプレートとして生成してもよい。
また、テンプレート変換部1160は、変換後のデータに対してテンプレート保護技術を適用して、不可逆な変換を行い、元の生体情報やその特徴を秘匿したデータを登録テンプレートとして生成してもよい。以上により、認証クライアント1100による、ステップS2120の登録データ生成処理が完了する。
図7は、認証クライアント1100によるステップS2150の認証データ生成処理の詳細の一例を示すフローチャートである。まず、ニューラルネット算出部1120は、パラメータ格納部1190に格納されたパラメータで定義されるニューラルネットワークにステップS2140で取得した生体情報を入力し、出力ベクトルを生成する(S7010)。
ベクトル二値化部1130は、ステップS7010で得られた出力ベクトルに対して二値化処理を行って、バイナリベクトルを生成する(S7020)。ステップS7010及びステップS7020の処理は、それぞれステップS6010及びステップS6020の処理と同様であるため、詳細な説明を省略する。
サンプル変換部1161は、ステップS2140で取得された生体情報に対して、登録テンプレート生成処理における変換と同様の、サンプル変換を施すことにより、認証サンプルを生成する(S7030)。サンプル変換部1161は、登録テンプレートと同様に、生体情報から特徴抽出処理を行うことで、生体情報を特徴点やパターン画像へ変換したデータを、認証サンプルとして生成してもよい。
また、テンプレート保護技術を適用して登録テンプレートが生成された場合、サンプル変換部1161は、変換後のデータに対して当該テンプレート保護技術を適用して、認証サンプルを生成する。以上により、認証クライアント1100によるステップS2150の認証データ生成処理(S2150)が完了する。
図8は、認証サーバ1200によるステップS2240の絞り込み照合処理の詳細の一例を示すフローチャートである。まず、ベクトル間距離算出部1210は、変数iに1を代入する(S8010)。
ベクトル間距離算出部1210は、登録テンプレート格納部1290に格納された、i番目の登録データに含まれるバイナリベクトルである登録ベクトルを参照し、ステップS7020で生成されたバイナリベクトルとの距離を算出する(S8020)。ベクトル間距離算出部1210は、これらのベクトル間の距離として、例えば、ハミング距離を算出する。
さらに、ステップS6040でマスクベクトルが生成された場合には、ベクトル間距離算出部1210は、マスクベクトルの値が1である要素のみからハミング距離を算出することができる。具体的には、例えば、ベクトル間距離算出部1210は、距離算出対象のバイナリベクトルそれぞれについてマスクベクトルとの論理積を算出し、当該論理積間の排他的論理和を算出し、得られたベクトルの要素のうち値が1である要素の数をカウントすることで、マスク対象の要素が除外されたハミング距離を算出することができる。
なお、マスク対象の要素数(即ち、マスクベクトルにおいて値が1である要素の数)が多いほど、バイナリベクトル間の距離が小さくなりやすいため、ベクトル間距離算出部1210は、例えば、算出した距離をマスク非対象の要素数で割ることによって正規化した距離を、算出しておくことが望ましい。
続いて、ベクトル間距離算出部1210は、ステップS8020で算出した距離が所定の閾値Tより小さいか否かを判定する(S8030)。ベクトル間距離算出部1210は、当該距離が当該閾値Tより小さいと判定した場合(S8030:Yes)、i番目の登録テンプレートのIDを候補テンプレートIDとして追加する(S8040)。
距離が閾値Tより小さいということは、一定以上の確率でi番目の登録データが認証対象者のものであることを示すため、当該登録データの登録テンプレート自体が照合対象となる。また、ベクトル間距離算出部1210は、当該距離が当該閾値T以上と判定した場合(S8030:No)、ステップS8050に遷移する。
続いて、ベクトル間距離算出部1210は、iを1増加させて(S8050)、登録データの総数Nと比較する(S8060)。ベクトル間距離算出部1210は、増加後のiが総数N未満であると判定した場合(S8060:No)、ステップS8020に戻り、iが総数N以上であると判定した場合(S8060:Yes)、絞り込み照合処理を完了する。以上により、ステップS2240の絞り込み照合処理が完了する。
図9は、登録テンプレート格納部1290に格納された登録データのデータ構造の一例を示す説明図である。登録データは、例えば、ユーザID欄910、登録ベクトル欄920、マスクベクトル欄930、及び登録テンプレートらn940を含んで構成される。ユーザID欄910は、各ユーザに対して一意に識別する情報であるユーザIDを格納する。ユーザIDは、例えば、英数字で構成される。ユーザIDは、登録データ生成処理(S2120)において認証クライアント1100によって生成されてもよいし、登録データ格納処理(S2220)において認証サーバ1200によって生成されてもよい。
登録ベクトル欄920は、ステップS6030で生成された登録ベクトルを格納する。マスクベクトル欄930は、ステップS6040で生成されたマスクベクトルを格納する。登録テンプレート欄940は、ステップS6050で生成された登録テンプレートを格納する。
以上、本実施例の認証システムは、複数の同一のニューラルネットワークを用いて、同一の人の同種の生体情報から得られた出力ベクトルの距離が近くなるように、かつ異なる人又は異なる生体情報から得られた出力ベクトルの距離が遠くなるように、当該ニューラルネットワークのパラメータを学習する。また、認証システムは、当該パラメータが適用されたニューラルネットワークによって、登録対象の生体情報からバイナリベクトルを生成し、登録する。
また、認証システムは、認証対象の生体情報を取得し、当該パラメータが適用されたニューラルネットワークによって当該生体情報からバイナリベクトルを生成し、生成したバイナリベクトルと、登録されたバイナリベクトルと、を比較して、認証対象の生体情報と、同一の対象の生体情報の候補を絞る。つまり、本実施例の認証システムは、登録テンプレートを直接比較する対象を絞ることにより、認証を高速化することができる。さらに、本実施例の認証システムは、複数の同一のニューラルネットワークを用いた学習により、認証精度の低下を抑制することができる。
なお、本実施例の生体認証システムは、生体情報に限らず、入力画像と同一の登録画像を検索する画像検索システムに適用することができる。この場合、認証クライアント1100は検索クライアントとして、認証サーバ1200は検索サーバとして機能する。つまり、画像検索システムは、検索クライアントに入力された入力画像から生成されたバイナリベクトルと、登録されたバイナリベクトルと、を比較して、入力画像と同一の登録画像の候補(類似画像)を絞ることができる。
本実施例は、1:N認証において、認証クライアント1100の代わりに、認証サーバ1200がテンプレート照合処理を行う。以下、実施例1との相違点を説明する。図示を省略するが、本実施例の認証サーバ1200は、テンプレート照合部を含む。
図11は、パラメータ学習処理、生体情報登録処理、及び1:N認証処理の一例を示すフローチャートである。図2との相違点を説明する。ステップS2150において、認証クライアント1100は、バイナリベクトルに加えて、認証サンプルを認証データに含めて、ステップS2160において認証データを送信する。
ステップS2250に続いて、認証サーバ1200のテンプレート照合部が、候補テンプレートと認証サンプルとの照合処理を行う(S11260)。ステップS11260の処理は、ステップS2180の処理と同様であるため、説明を省略する。続いて、認証サーバ1200は、当該照合処理における認証結果を認証クライアント1100へ送信する(S11270)。つまり、本実施例において、認証サーバ1200は認証クライアント1100へ候補テンプレートを送信しない。
本実施例の認証システムにおいて、認証サーバ1200が1:N照合を完結させるため、処理が単純化し、認証クライアント1100の負荷を軽減することができる。但し、実施例1の認証システムにおいては、認証サンプルが認証クライアント1100から外部に送信されることがないため、テンプレート保護技術が適用される場合は、実施例1の認証システムの方が実施例2の認証システムより、セキュリティ性が高い場合がある。従って、利用者のユースケースに応じて実施例1の認証システムと実施例2の認証システムとが使い分けられることが望ましい。
本実施例の認証システムは、1つの登録データについて、実施例1で説明したバイナリベクトルに加えて、これより次数の低いバイナリベクトルを生成する。また、本実施例の認証システムは、絞り込み照合処理において、認証対象の生体情報について、当該次数の低いバイナリベクトルを生成して、登録された次数の低いバイナリベクトルとの照合を行い、一次絞り込み処理を実施する。
さらに、認証システムは、絞り込み照合処理において、認証対象の生体情報と、一次絞り込み処理によって絞り込まれた登録データと、の間で次数の高いバイナリベクトル(実施例1においても生成されていたバイナリベクトル)を比較する二次絞込みをして、候補テンプレートを取得する。つまり、本実施例の認証システムは、次数の低いバイナリベクトルを用いた一次絞り込みを実行して、予め二次絞込みの対象を絞り込むことで、さらに高速な1:N認証を実現する。以下、実施例1との相違点を説明する。
図12は、ステップS2010におけるパラメータ学習処理の一例を示すフローチャートである。図3との相違点を説明する。パラメータ更新部1060が、学習が終了したと判定した場合(S3070:Yes)、ニューラルネット算出部1120は、前述のSiamese Networkに含まれる同一のニューラルネットワーク(以下、第一ニューラルネットワークとも呼ぶ)それぞれに同一の出力層を追加されたネットワーク(以下第二ニューラルネットワークとも呼ぶ)からなる、新たなSiamese Networkを参照する(S12000)。つまり、第一ニューラルネットワークがN層からなるとすると、第二ニューラルネットワークはN+1層からなり、第二ニューラルネットワークの第1層、・・・、第N層は、それぞれ、第一ニューラルネットワークの第1層、・・・、第N層と一致する。
以下、学習機1000は、第二ニューラルネットワークにおいて、第一ニューラルネットワークと共通するパラメータを、ステップS3070において学習が終了したと判定した時点の値に固定した状態で、第二ニューラルネットワークの出力層に関するパラメータ(つまり第一ニューラルネットワークと非共通のパラメータ)を学習する。
まず、学習機1000のパラメータ初期化部1010は、第二ニューラルネットワークの出力層に関するパラメータを初期化する(S12010)。パラメータ初期化の方法は、ステップS3010と同様である。学習データ取得部1020は、学習データ格納部1090から、学習に用いるデータを取得する(S12020)。学習データの取得方法は、ステップS3020と同様である。
ニューラルネット算出部1030は、学習データ中の生体情報を第二ニューラルネットワークへ入力して出力層から出力される出力ベクトルを取得する(S12030)。また、第二ニューラルネットワークの出力の各要素の値を0以上1以下の値に正規化する関数(例えば、Sigmoid関数)が、第二ニューラルネットワークの出力層の関数として用いられることが望ましい。
ベクトル間距離算出部1040は、ステップS12020で取得した学習データに含まれる入力情報のペアそれぞれについて、ステップS12030で取得した出力ベクトル間の距離を算出する(S12040)。ベクトル間距離の算出方法は、ステップS3040と同様である。
続いて、ロス算出部1050は、ステップS12040で得られたベクトル間距離に基づいてロスを算出する(S12050)。ロスの算出方法は、ステップS3050と同様である。続いて、パラメータ更新部1060は、ステップS12050で算出したロスが小さくなるようにニューラルネットワークの各パラメータを更新する(S12060)。
続いて、パラメータ更新部1060は、学習が終了したか否かを判定する(S3070)。学習終了判定の方法は、ステップS3070と同様である。パラメータ更新部1060が、学習が終了していないと判定した場合(S12070:No)、ステップS12020に戻り再度学習を実行する。パラメータ更新部1060は、学習が終了したと判定した場合(S12070:Yes)、ステップS3080に遷移する。
以下、図6について実施例1との相違点を説明する。ステップS6010において、ニューラルネット算出部1120は、第一ニューラルネットワークにステップS2110で取得した生体情報を入力して第一出力ベクトルを生成し、第二ニューラルネットワークにステップS2110で取得した生体情報を入力して第二出力ベクトルを生成する。
ステップS6020において、ベクトル二値化部1130は、第一出力ベクトルに対して二値化処理を行って第一バイナリベクトルを生成し、第二出力ベクトルに対して二値化処理を行って第二バイナリベクトルを生成する。
ステップS6030において、登録ベクトル融合部1140は、複数の第一バイナリベクトルを融合して、第一登録ベクトルを生成し、複数の第二バイナリベクトルを融合して、第二登録ベクトルを生成する。ステップS6040において、マスクベクトル生成部1150は、第一登録ベクトルに対応する第一マスクベクトルと、第二登録ベクトルに対応する第二マスクベクトルと、を生成する。
以下、図7について実施例1との相違点を説明する。ステップS7010において、ニューラルネット算出部1120は、第一ニューラルネットワークにステップS2110で取得した生体情報を入力して第一出力ベクトルを生成し、第二ニューラルネットワークにステップS2140で取得した生体情報を入力して第二出力ベクトルを生成する。
ステップS7020において、ベクトル二値化部1130は、第一出力ベクトルに対して二値化処理を行って第一バイナリベクトルを生成し、第二出力ベクトルに対して二値化処理を行って第二バイナリベクトルを生成する。
図13は、認証サーバ1200によるステップS2240の絞り込み照合処理の詳細の一例を示すフローチャートである。図8との相違点を説明する。ステップS8010に続いて、ベクトル間距離算出部1210は、登録テンプレート格納部1290に格納された、i番目の登録データに含まれる第二登録ベクトルを参照し、ステップS7020で生成された第二バイナリベクトルとの距離を算出する(S13010)。ベクトル間の距離の算出方法は、ステップS8020と同様である。
続いて、ベクトル間距離算出部1210は、ステップ13010で算出した距離が所定の閾値T2より小さいか否かを判定する(S13020)。ベクトル間距離算出部1210は、当該距離が当該閾値T2以上と判定した場合(S13020:No)、ステップS8050に遷移する。
ベクトル間距離算出部1210は、当該距離が当該閾値T2より小さいと判定した場合(S13020:Yes)、登録テンプレート格納部1290に格納された、i番目の登録データに含まれる第一登録ベクトルを参照し、ステップS7020で生成された第一バイナリベクトルとの距離を算出する(S13030)。
続いて、ベクトル間距離算出部1210は、ステップ13030で算出した距離が、所定の閾値T1より小さいか否かを判定する(S13040)。ベクトル間距離算出部1210は、当該距離が当該閾値T1以上と判定した場合(S13040:No)、ステップS8050に遷移する。ベクトル間距離算出部1210は、当該距離が当該閾値T1より小さいと判定した場合(S13040:Yes)、ステップS8040に遷移してi番目の登録テンプレートのIDを候補テンプレートIDとして追加する。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
1000 学習機、1001 CPU、1002 主記憶装置、1006 通信装置、1030 ニューラルネット算出部、1040 ベクトル間距離算出部、1050 ロス算出部、1060 パラメータ更新部、1090 学習データ格納部、1110 生体情報取得部、1120 ニューラルネット算出部、1130 ベクトル二値化部、1140 登録ベクトル融合部、1150 マスクベクトル生成部、1190 パラメータ格納部、1100 認証クライアント、1200 認証サーバ、1290 登録テンプレート格納部

Claims (14)

  1. ニューラルネットワークのパラメータを学習する学習システムであって、
    プロセッサとメモリとを含み、
    前記メモリは、
    画像ペアの画像情報と、
    前記画像ペアが同一の対象の画像であるか否かを示すフラグと、
    画像情報が入力され、各要素の値が所定範囲に含まれる出力ベクトルを出力する第1ニューラルネットワーク、を示すネットワーク情報と、を保持し、
    前記プロセッサは、
    前記第1ニューラルネットワークに前記画像ペアの各画像の画像情報を入力して、各画像について第1出力ベクトルを出力し、
    前記第1出力ベクトル間の距離の期待値を算出し、
    前記フラグを参照して、前記画像ペアが同一の対象の画像である場合に前記算出した期待値が小さく、前記画像ペアが異なる対象の画像である場合に前記算出した期待値が大きくなるよう、前記第1ニューラルネットワークのパラメータを更新する、学習システム。
  2. 請求項1に記載の学習システムであって、
    前記所定範囲は0以上1以下であり、
    前記プロセッサは、前記第1出力ベクトル間の距離の期待値として、下記の式1を用いて、前記第1出力ベクトル間のハミング距離の期待値を算出し、
    Figure 2019101927
    上記式1において、xは前記画像ペアの一方の画像に対応する第1出力ベクトルであり、x’は前記画像ペアの他方の画像に対応する第1出力ベクトルであり、nは第1出力ベクトルの次数であり、xはxのi番目の要素であり、x’はx’のi番目の要素である、学習システム。
  3. 請求項2に記載の学習システムであって、
    前記画像ペアが同一の対象の画像である場合における前記フラグの値は1であり、
    前記画像ペアが異なる対象の画像である場合における前記フラグの値は0であり、
    前記プロセッサは、下記の式2を用いて、前記第1ニューラルネットワークのロスを算出し、
    Figure 2019101927
    上記式2において、yは前記フラグであり、Marginは定数であり、
    前記プロセッサは、前記算出したロスが小さくなるよう、前記第1ニューラルネットワークのパラメータを更新する、学習システム。
  4. 請求項2に記載の学習システムであって、
    前記画像ペアが同一の対象の画像である場合における前記フラグの値は1であり、
    前記画像ペアが異なる対象の画像である場合における前記フラグの値は0であり、
    前記プロセッサは、下記の式3を用いて、前記第1ニューラルネットワークのロスを算出し、
    Figure 2019101927
    上記式3において、yは前記フラグであり、Marginは定数であり、
    前記プロセッサは、前記算出したロスが小さくなるよう、前記第1ニューラルネットワークのパラメータを更新する、学習システム。
  5. 請求項1に記載の学習システムであって、
    前記第1ニューラルネットワークの出力層にSigmoid関数が用いられる、学習システム。
  6. 請求項1に記載の学習システムであって、
    前記ネットワーク情報は、各要素の値が所定範囲に含まれる出力ベクトルを出力し、前記第1ニューラルネットワークに出力層が追加された第2ニューラルネットワークを示し、
    前記第2ニューラルネットワークの出力ベクトルである第2出力ベクトルの次数は、前記第1出力ベクトルの次数より低く、
    前記プロセッサは、
    前記第2ニューラルネットワークにおいて、前記第1ニューラルネットワークと共通するパラメータを、前記第1ニューラルネットワークの更新後のパラメータに固定し、
    前記第2ニューラルネットワークに前記画像ペアの各画像の画像情報を入力して、各画像について第2出力ベクトルを出力し、
    前記画像ペアの各画像の第2出力ベクトル間の距離の期待値を算出し、
    前記フラグを参照して、前記画像ペアが同一の対象の画像である場合に前記算出した期待値が小さく、前記画像ペアが異なる対象の画像である場合に前記算出した期待値が大きくなるよう、前記第2ニューラルネットワークの出力層に関するパラメータを更新する、学習システム。
  7. 学習システムと検索クライアントと検索サーバとを含む画像検索システムであって、
    前記学習システムは、
    画像ペアの画像情報と、
    前記画像ペアが同一の対象の画像であるか否かを示すフラグと、
    画像情報が入力され、各要素の値が所定範囲に含まれる出力ベクトルを出力する第1ニューラルネットワーク、を示す第1ネットワーク情報と、を保持し、
    前記第1ニューラルネットワークに前記画像ペアの各画像の画像情報を入力して、各画像について第1出力ベクトルを出力し、
    前記第1出力ベクトル間の距離の期待値を算出し、
    前記フラグを参照して、前記画像ペアが同一の対象の画像である場合に前記算出した期待値が小さく、前記画像ペアが異なる対象の画像である場合に前記算出した期待値が大きくなるよう、前記第1ニューラルネットワークのパラメータを更新し、
    前記検索クライアントは、
    更新後のパラメータを有する前記第1ニューラルネットワークの情報を示す第2ネットワーク情報を保持し、
    前記第2ネットワーク情報が示す前記第1ニューラルネットワークに入力画像の画像情報を入力して、前記入力画像の第1出力ベクトルを出力し、
    閾値処理を行って、前記入力画像の第1出力ベクトルを第1バイナリベクトルに変換して、前記検索サーバに送信し、
    前記第1バイナリベクトルの各要素は、前記所定範囲の最大値又は最小値であり、
    前記検索サーバは、
    複数の登録画像それぞれに対応する第1バイナリベクトルを保持し、
    前記入力画像の第1バイナリベクトルと、前記複数の登録画像の第1バイナリベクトルと、を比較して、前記複数の登録画像から、前記入力画像と同一の対象の画像の第1候補を決定する、画像検索システム。
  8. 請求項7に記載の画像検索システムであって、
    前記所定範囲は0以上1以下であり、
    前記学習システムは、前記第1出力ベクトル間の距離の期待値として、下記の式4を用いて、前記第1出力ベクトル間のハミング距離の期待値を算出し、
    Figure 2019101927
    上記式4において、xは前記画像ペアの一方の画像に対応する第1出力ベクトルであり、x’は前記画像ペアの他方の画像に対応する第1出力ベクトルであり、nは第1出力ベクトルの次数であり、xはxのi番目の要素であり、x’はx’のi番目の要素である、画像検索システム。
  9. 請求項8に記載の画像検索システムであって、
    前記画像ペアが同一の対象の画像である場合における前記フラグの値は1であり、
    前記画像ペアが異なる対象の画像である場合における前記フラグの値は0であり、
    前記学習システムは、下記の式5を用いて、前記第1ニューラルネットワークのロスを算出し、
    Figure 2019101927
    上記式5において、yは前記フラグであり、Marginは定数であり、
    前記学習システムは、前記算出したロスが小さくなるよう、前記第1ニューラルネットワークのパラメータを更新する、画像検索システム。
  10. 請求項8に記載の画像検索システムであって、
    前記画像ペアが同一の対象の画像である場合における前記フラグの値は1であり、
    前記画像ペアが異なる対象の画像である場合における前記フラグの値は0であり、
    前記学習システムは、下記の式6を用いて、前記第1ニューラルネットワークのロスを算出し、
    Figure 2019101927
    上記式6において、yは前記フラグであり、Marginは定数であり、
    前記学習システムは、前記算出したロスが小さくなるよう、前記第1ニューラルネットワークのパラメータを更新する、画像検索システム。
  11. 請求項7に記載の画像検索システムであって、
    前記第1ニューラルネットワークの出力層にSigmoid関数が用いられる、画像検索システム。
  12. 請求項7に記載の画像検索システムであって、
    前記第1ネットワーク情報は、各要素の値が所定範囲に含まれる出力ベクトルを出力し、前記第1ニューラルネットワークに出力層が追加された第2ニューラルネットワーク、を示し、
    前記第2ニューラルネットワークの出力ベクトルである第2出力ベクトルの次数は、前記第1出力ベクトルの次数より低く、
    前記学習システムは、
    前記第2ニューラルネットワークにおいて、前記第1ニューラルネットワークと共通するパラメータを、前記第1ニューラルネットワークの更新後のパラメータに固定し、
    前記第2ニューラルネットワークに前記画像ペアの各画像の画像情報を入力して、各画像について第2出力ベクトルを出力し、
    前記画像ペアの各画像の第2出力ベクトル間の距離の期待値を算出し、
    前記フラグを参照して、前記画像ペアが同一の対象の画像である場合に前記算出した期待値が小さく、前記画像ペアが異なる対象の画像である場合に前記算出した期待値が大きくなるよう、前記第2ニューラルネットワークの出力層に関するパラメータを更新し、
    前記第2ネットワーク情報は、更新後のパラメータを有する前記第2ニューラルネットワークの情報を示し、
    前記検索クライアントは、
    前記第2ネットワーク情報が示す前記第2ニューラルネットワークに前記入力画像の画像情報を入力して、前記入力画像の第2出力ベクトルを出力し、
    閾値処理を行って、前記入力画像の第2出力ベクトルを第2バイナリベクトルに変換して、前記検索サーバに送信し、
    前記第2バイナリベクトルの各要素は、前記所定範囲の最大値又は最小値であり、
    前記検索サーバは、
    前記複数の登録画像それぞれに対応する第2バイナリベクトルを保持し、
    前記入力画像の第2バイナリベクトルと、前記複数の登録画像の第2バイナリベクトルと、を比較して、前記複数の登録画像から、前記入力画像と同一の対象の画像の第2候補を決定し、
    前記入力画像の第1バイナリベクトルと、前記第2候補に含まれる登録画像の第1バイナリベクトルと、を比較して、前記第2候補に含まれる登録画像から、前記第1候補を決定する、画像検索システム。
  13. 請求項7に記載の画像検索システムであって、
    前記複数の登録画像それぞれに対応する第1バイナリベクトルは、
    前記第2ネットワーク情報が示す前記第1ニューラルネットワークと、当該第1バイナリベクトルに対応する登録画像と同一の対象の複数の画像と、から得られた第1出力ベクトル、に対して前記閾値処理が行われて得られたバイナリベクトル、が所定の統計処理によって融合されたバイナリベクトルである、画像検索システム。
  14. 請求項7に記載の画像検索システムであって、
    前記検索サーバは、
    前記複数の登録画像それぞれに対応するマスクベクトルを保持し、
    前記マスクベクトルの各要素は、
    前記第2ネットワーク情報が示す前記第1ニューラルネットワークと、当該マスクベクトルに対応する登録画像と同一の対象の複数の画像と、から得られた第1バイナリベクトルの当該要素の値が、同一の値をとる信頼度を示し、
    前記検索サーバは、
    前記複数の登録画像それぞれについてマスクベクトルを参照して前記信頼度が高い要素をマスク対象の要素として特定し、
    前記入力画像の第1バイナリベクトルの前記マスク対象でない要素と、当該登録画像の第1バイナリベクトルの前記マスク対象でない要素と、を比較して、前記第1候補に含める登録画像を決定する、画像検索システム。
JP2017234490A 2017-12-06 2017-12-06 学習システム及び画像検索システム Active JP6873027B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017234490A JP6873027B2 (ja) 2017-12-06 2017-12-06 学習システム及び画像検索システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017234490A JP6873027B2 (ja) 2017-12-06 2017-12-06 学習システム及び画像検索システム

Publications (2)

Publication Number Publication Date
JP2019101927A true JP2019101927A (ja) 2019-06-24
JP6873027B2 JP6873027B2 (ja) 2021-05-19

Family

ID=66973833

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017234490A Active JP6873027B2 (ja) 2017-12-06 2017-12-06 学習システム及び画像検索システム

Country Status (1)

Country Link
JP (1) JP6873027B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110956098A (zh) * 2019-11-13 2020-04-03 深圳和而泰家居在线网络科技有限公司 图像处理方法及相关设备
JP2021056904A (ja) * 2019-09-30 2021-04-08 ダイキン工業株式会社 点群データ同一性推定装置及び点群データ同一性推定システム
WO2021153888A1 (ko) * 2020-01-31 2021-08-05 주식회사 알체라 생체 정보 등록 방법 및 이를 수행하기 위한 생체 정보 등록 장치
WO2022055829A1 (en) * 2020-09-09 2022-03-17 Micron Technology, Inc. Memory systems including examples of calculating hamming distances for neural network and data center applications
US11609853B2 (en) 2020-09-09 2023-03-21 Micron Technology, Inc. Memory controllers including examples of calculating hamming distances for neural network and data center applications
US11636285B2 (en) 2020-09-09 2023-04-25 Micron Technology, Inc. Memory including examples of calculating hamming distances for neural network and data center applications

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08115099A (ja) * 1994-10-17 1996-05-07 Canon Inc ベクトル量子化方法及びそれを用いた音声認識装置及び方法
JP2014203135A (ja) * 2013-04-01 2014-10-27 キヤノン株式会社 信号処理装置、信号処理方法、及び、信号処理システム
JP2017138808A (ja) * 2016-02-03 2017-08-10 キヤノン株式会社 情報処理装置および情報処理方法
JP2017207947A (ja) * 2016-05-19 2017-11-24 株式会社 ディー・エヌ・エー 対象物の類似度判定のためのプログラム、システム、及び方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08115099A (ja) * 1994-10-17 1996-05-07 Canon Inc ベクトル量子化方法及びそれを用いた音声認識装置及び方法
JP2014203135A (ja) * 2013-04-01 2014-10-27 キヤノン株式会社 信号処理装置、信号処理方法、及び、信号処理システム
JP2017138808A (ja) * 2016-02-03 2017-08-10 キヤノン株式会社 情報処理装置および情報処理方法
JP2017207947A (ja) * 2016-05-19 2017-11-24 株式会社 ディー・エヌ・エー 対象物の類似度判定のためのプログラム、システム、及び方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
武村 紀子: "CNNを用いた視点変化に頑健な歩容認証における入出力構造の一検討", 情報処理学会 研究報告 コンピュータグラフィックスとビジュアル情報学(CG) 2017−CG−168, JPN6021009702, 1 November 2017 (2017-11-01), ISSN: 0004468661 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114424244A (zh) * 2019-09-30 2022-04-29 大金工业株式会社 点云数据相同性估计装置及点云数据相同性估计***
JP2021056904A (ja) * 2019-09-30 2021-04-08 ダイキン工業株式会社 点群データ同一性推定装置及び点群データ同一性推定システム
WO2021065538A1 (ja) * 2019-09-30 2021-04-08 ダイキン工業株式会社 点群データ同一性推定装置及び点群データ同一性推定システム
US11704841B2 (en) 2019-09-30 2023-07-18 Daikin Industries, Ltd. Apparatus for estimating sameness of point cloud data and system for estimating sameness of point cloud data
CN114424244B (zh) * 2019-09-30 2022-09-30 大金工业株式会社 点云数据相同性估计装置及点云数据相同性估计***
CN110956098A (zh) * 2019-11-13 2020-04-03 深圳和而泰家居在线网络科技有限公司 图像处理方法及相关设备
CN110956098B (zh) * 2019-11-13 2023-05-12 深圳数联天下智能科技有限公司 图像处理方法及相关设备
KR20210098206A (ko) * 2020-01-31 2021-08-10 주식회사 알체라 생체 정보 등록 방법 및 이를 수행하기 위한 생체 정보 등록 장치
JP2022521879A (ja) * 2020-01-31 2022-04-13 アルチェラ インコーポレイテッド 生体情報登録方法及びこれを遂行するための生体情報登録装置
JP7246652B2 (ja) 2020-01-31 2023-03-28 アルチェラ インコーポレイテッド 生体情報登録方法及びこれを遂行するための生体情報登録装置
KR102350685B1 (ko) 2020-01-31 2022-01-13 주식회사 알체라 생체 정보 등록 방법 및 이를 수행하기 위한 생체 정보 등록 장치
WO2021153888A1 (ko) * 2020-01-31 2021-08-05 주식회사 알체라 생체 정보 등록 방법 및 이를 수행하기 위한 생체 정보 등록 장치
WO2022055829A1 (en) * 2020-09-09 2022-03-17 Micron Technology, Inc. Memory systems including examples of calculating hamming distances for neural network and data center applications
US11586380B2 (en) 2020-09-09 2023-02-21 Micron Technology, Inc. Memory systems including examples of calculating hamming distances for neural network and data center applications
US11609853B2 (en) 2020-09-09 2023-03-21 Micron Technology, Inc. Memory controllers including examples of calculating hamming distances for neural network and data center applications
US11636285B2 (en) 2020-09-09 2023-04-25 Micron Technology, Inc. Memory including examples of calculating hamming distances for neural network and data center applications

Also Published As

Publication number Publication date
JP6873027B2 (ja) 2021-05-19

Similar Documents

Publication Publication Date Title
JP6873027B2 (ja) 学習システム及び画像検索システム
Krishnamoorthy et al. Identification of user behavioral biometrics for authentication using keystroke dynamics and machine learning
JP6838005B2 (ja) 指紋に基づく認証のための装置及びコンピュータ実装方法
JP6394323B2 (ja) 生体認証方法、生体認証プログラム、生体認証装置
JP2017162306A (ja) 情報処理装置、類似検索プログラム、及び類似検索方法
US11062120B2 (en) High speed reference point independent database filtering for fingerprint identification
EP3582435B1 (en) Biometric signing system and biometric signing method
JP5862413B2 (ja) 情報変換規則生成プログラム、情報変換規則生成装置および情報変換規則生成方法
JP2019117579A (ja) 生体認証システム
JP2018185730A (ja) 照合装置、照合方法および照合プログラム
JP5949903B2 (ja) 生体認証装置、生体認証方法、および生体認証プログラム
JP5895751B2 (ja) 生体認証装置、リトライ制御プログラム及びリトライ制御方法
CN110663043B (zh) 生物度量对象的模板匹配
JPWO2009110410A1 (ja) 画像照合装置、画像照合用特徴量格納記憶媒体、画像照合方法および画像照合用プログラム
KR20190129417A (ko) 바이오매트릭스와 Fuzzy Vault를 이용하여 암호학적 키를 생성하는 방법 및 시스템
JP7475192B2 (ja) 識別器学習装置及び識別器学習方法
JP2022028912A (ja) 照合処理装置、照合処理方法、及び、照合処理プログラムが格納された記録媒体
JP5791666B2 (ja) ビジュアルキーワードの動的生成装置
Attallah et al. Geometrical local image descriptors for palmprint recognition
JP7339866B2 (ja) 鍵生成装置及び鍵生成方法
KR102664795B1 (ko) 열 기반 슬라이싱을 이용한 폐기 가능한 홍채 템플릿 생성 장치 및 방법
US11876916B2 (en) Apparatus and methods for candidate tracking
JP2019185135A (ja) 情報処理装置、情報処理方法、及びプログラム
US12026242B2 (en) Key generation apparatus, key utilization apparatus, and key generation method
US20240127383A1 (en) Method and apparatus for scannable non-fungible token generation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200317

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210319

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210323

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210420

R150 Certificate of patent or registration of utility model

Ref document number: 6873027

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150