JP2019101927A - Learning system and image retrieval system - Google Patents

Learning system and image retrieval system 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
Japanese (ja)
Other versions
JP6873027B2 (en
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/en
Publication of JP2019101927A publication Critical patent/JP2019101927A/en
Application granted granted Critical
Publication of JP6873027B2 publication Critical patent/JP6873027B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

To perform image retrieval at high speed and with high accuracy.SOLUTION: A learning system holds: image information of a pair of images; a flag indicating whether or not the pair of images are provided for a same target; and a first neural network outputting output vectors for which the image information is inputted and a value of each element is included in a predetermined range, inputs the image information of each of the pair of images into the first neural network and outputs a first output vector for each image, calculates an expected value of a distance between the first output vectors, and updates, with reference to the flag, a parameter of the first neural network in a manner such that the calculated expected value is small in a case where the pair of images are provided for the same target while the calculated expected value is large in a case where the pair of images are provided for different targets.SELECTED DRAWING: Figure 1

Description

本発明は、学習システム及び画像検索システムに関する。   The present invention relates to a learning system and an image search system.

指紋、顔、及び静脈などの生体情報を活用して個人を認証する生体認証技術が近年普及している。生体認証において、個人の生体情報が予め登録され、認証時に入力された生体情報と登録した生体情報とが照合されることで個人が特定される。この生体認証には、ユーザのIDを入力して登録生体情報を特定した上で照合を行う1:1認証と、ユーザのIDを入力せずに全ての登録生体情報と照合を行う1:N認証と、がある。1:N認証において、ユーザはIDを入力する必要がないため、ユーザはIDを記憶したりIDを入力したりする手間がなく、利便性が高い。   BACKGROUND ART In recent years, biometric authentication technology for authenticating an individual using biometric information such as fingerprints, faces, and veins has become widespread. In biometric authentication, personal information of an individual is registered in advance, and the individual is identified by collating the biological information input at the time of authentication with the registered biological information. In this biometric authentication, the ID of the user is input to identify registered biometric information, and then verification is performed. 1: 1 authentication and the verification with all registered biometric information without inputting the user ID is performed 1: N. There is an authentication. In 1: N authentication, since the user does not need to input the ID, the user does not have to store the ID or input the ID, and the convenience is high.

一方、1:N認証では、認証対象の生体情報と、全ての登録生体情報と、の間で照合が行われるため、1:1認証と比較して照合に時間がかかる。例えば、100万件の登録生体情報がある場合に単純に全件と照合を行うと、1:1認証の100万倍の照合時間がかかる。   On the other hand, in 1: N authentication, since collation is performed between biometric information to be authenticated and all registered biometric information, it takes longer to perform comparison than 1: 1 authentication. For example, in the case where one million registered biometric information items are simply compared with all the items, it takes one million times the verification time of 1: 1 authentication.

このような大規模な1:N認証を高速に行うための技術として、特開2013−206187号公報(特許文献1)がある。この、公報には、「情報検索装置1は、ハミング距離を用いた検索処理の対象となるデータの特徴量ベクトルを、バイナリ記号とのハミング距離を0とするワイルドカード記号と前記バイナリ記号とを含む記号列に変換する。そして、情報検索装置1は、クエリデータをバイナリ化し、バイナリ化したクエリデータとのハミング距離が所定の値以下となる記号列を検索することで、クエリデータの近傍データを検索する。」と記載されている(要約参照)。   As a technique for performing such large-scale 1: N authentication at high speed, there is JP-A-2013-206187 (Patent Document 1). In this publication, "the information retrieval apparatus 1 sets a feature amount vector of data to be searched for using the Hamming distance, a wildcard symbol whose Hamming distance to the binary symbol is 0, and the binary symbol. The information search device 1 converts the query data into binary data, and searches for a string whose Hamming distance to the binaryized query data is equal to or less than a predetermined value, thereby generating neighborhood data of the query data. Search for "(see summary).

特開2013−206187号公報JP, 2013-206187, A

特許文献1に記載の技術は、単純な射影によるバイナリベクトル化を1:N認証に適用している。当該方法によれば、認証速度が向上しても、認証の精度が低下するおそれがある。本発明の一態様は、例えば、1:N認証における生体情報の照合のような、画像検索を高速かつ高精度に行うことを目的とする。   The technique described in Patent Document 1 applies binary vectorization by simple projection to 1: N authentication. According to the method, even if the authentication speed is improved, the accuracy of the authentication may be reduced. One aspect of the present invention aims to perform image search at high speed and with high accuracy, such as verification of biometric information in 1: N authentication.

上記課題を解決するため、本発明の一態様は以下の構成を採用する。ニューラルネットワークのパラメータを学習する学習システムは、プロセッサとメモリとを含み、前記メモリは、画像ペアの画像情報と、前記画像ペアが同一の対象の画像であるか否かを示すフラグと、画像情報が入力され、各要素の値が所定範囲に含まれる出力ベクトルを出力する第1ニューラルネットワーク、を示すネットワーク情報と、を保持し、前記プロセッサは、前記第1ニューラルネットワークに前記画像ペアの各画像の画像情報を入力して、各画像について第1出力ベクトルを出力し、前記第1出力ベクトル間の距離の期待値を算出し、前記フラグを参照して、前記画像ペアが同一の対象の画像である場合に前記算出した期待値が小さく、前記画像ペアが異なる対象の画像である場合に前記算出した期待値が大きくなるよう、前記第1ニューラルネットワークのパラメータを更新する、学習システム。   In order to solve the above-mentioned subject, one mode of the present invention adopts the following composition. A learning system for learning parameters of a neural network includes a processor and a memory, and the memory includes image information of an image pair, a flag indicating whether the image pair is the same target image, and image information , And holds network information indicating a first neural network that outputs an output vector in which the value of each element is included in a predetermined range, and the processor stores the respective images of the image pair in the first neural network. Image information is input, a first output vector is output for each image, an expected value of the distance between the first output vectors is calculated, and the image is an image of the same target as the image pair with reference to the flag. If the calculated expected value is small if the image pair is an image of a different target, the calculated expected value is large, To update the parameters of the serial first neural network learning system.

本発明の一態様によれば、画像検索を高速かつ高精度に行うことができる。上記した以外の課題、構成、及び効果は以下の実施形態によって明らかにされる。   According to one aspect of the present invention, image search can be performed at high speed and with high accuracy. Problems, configurations, and effects other than those described above are clarified by the following embodiments.

実施例1における認証システムの構成例を示すブロック図である。FIG. 1 is a block diagram illustrating an exemplary configuration of an authentication system according to a first embodiment. 実施例1におけるパラメータ学習処理、生体情報登録処理、及び1:N認証処理の一例を示すフローチャートである。It is a flowchart which shows an example of the parameter learning process in Example 1, a biometric information registration process, and 1: N authentication process. 実施例1におけるパラメータ学習処理の一例を示すフローチャートである。7 is a flowchart illustrating an example of a parameter learning process according to the first embodiment. 実施例1における学習データのデータ構造の一例を示す説明図である。FIG. 6 is an explanatory view showing an example of a data structure of learning data in the first embodiment. 実施例1におけるパラメータのデータ構造の一例を示す説明図である。FIG. 6 is an explanatory view showing an example of a data structure of parameters in Example 1; 実施例1における登録データ生成処理の詳細の一例を示すフローチャートである。5 is a flowchart illustrating an example of the details of registration data generation processing according to the first embodiment; 実施例1における認証データ生成処理の詳細の一例を示すフローチャートである。7 is a flowchart showing an example of details of authentication data generation processing in the first embodiment. 実施例1における絞り込み照合処理の詳細の一例を示すフローチャートである。7 is a flowchart showing an example of the details of the narrowing-down collation process in the first embodiment. 実施例1における登録データのデータ構造の一例を示す説明図である。FIG. 8 is an explanatory view showing an example of the data structure of registration data in the first embodiment. 実施例1における学習機、認証クライアント、及び認証サーバのハードウェア構成例を示すブロック図である。It is a block diagram which shows the hardware structural example of the learning machine in Example 1, an authentication client, and an authentication server. 実施例2におけるパラメータ学習処理、生体情報登録処理、及び1:N認証処理の一例を示すフローチャートである。It is a flowchart which shows an example of the parameter learning process in Example 2, a biometric information registration process, and 1: N authentication process. 実施例3におけるパラメータ学習処理の一例を示すフローチャートである。FIG. 18 is a flowchart illustrating an example of parameter learning processing according to the third embodiment. 実施例3における絞り込み照合処理の詳細の一例を示すフローチャートである。FIG. 18 is a flowchart illustrating an example of the details of the narrow-down matching process according to the third embodiment.

以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。   Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. It should be noted that the present embodiment is merely an example for realizing the present invention, and does not limit the technical scope of the present invention. The same reference numerals are given to the same configuration in each drawing.

以下、認証システムについて説明する。認証システムは、学習データを用いてニューラルネットワークのパラメータを学習する。認証システムは、生体情報をニューラルネットワークへ入力して得られるバイナリベクトル、を登録する。また、認証システムは、1:N認証時に、生体情報をニューラルネットワークへ入力して得られるバイナリベクトルと、登録されたバイナリベクトルと、の照合により照合対象を絞り込むことで高速な1:N認証を行う。   The authentication system will be described below. The authentication system learns the parameters of the neural network using the learning data. The authentication system registers binary vectors obtained by inputting biological information into a neural network. In addition, the authentication system performs high-speed 1: N authentication by narrowing down the match target by matching the binary vector obtained by inputting biological information to the neural network at the time of 1: N authentication and the registered binary vector. Do.

本実施例の認証システムは、Deep Learningと呼ばれる機械学習を生体認証のバイナリベクトル化に活用して、高速かつ高精度な1:N認証が実現することができる。なお、本実施形態において、生体情報として指紋、虹彩、静脈、又は顔等の画像の情報(例えば画像特徴量)が用いられる例を説明するが、例えば、声のような他の生体情報が用いられてもよい。   The authentication system of this embodiment can realize high-speed and high-precision 1: N authentication by utilizing machine learning called Deep Learning for binary vectorization of biometrics. In the present embodiment, an example in which information of an image such as a fingerprint, an iris, a vein, or a face (for example, an image feature amount) is used as biological information will be described, but other biological information such as voice is used, for example. It may be done.

図1は、認証システムの構成例を示すブロック図である。認証システムは、例えば、学習機1000、認証クライアント1100、及び認証サーバ1200を含む。学習機1000は、例えば、パラメータ初期化部1010、学習データ取得部1020、ニューラルネット算出部1030、ベクトル間距離算出部1040、ロス算出部1050、パラメータ更新部1060、学習データ格納部1090、及びパラメータ格納部1091、を含む。   FIG. 1 is a block diagram showing an exemplary configuration of an authentication system. The authentication system includes, for example, a learning device 1000, an authentication client 1100, and an authentication server 1200. For example, the learning device 1000 includes a parameter initializing unit 1010, a learning data acquiring unit 1020, a neural network calculating unit 1030, an inter-vector distance calculating unit 1040, a loss calculating unit 1050, a parameter updating unit 1060, a learning data storage unit 1090, and parameters. And a storage unit 1091.

パラメータ初期化部1010は、ニューラルネットワークのパラメータを初期化する。学習データ取得部1020は、学習データ格納部1090から学習データを取得する。ニューラルネット算出部1030は、生体情報をニューラルネットワークへ入力してベクトルを算出する。ベクトル間距離算出部1040は、2つのベクトル間の距離を算出する。   The parameter initialization unit 1010 initializes the parameters of the neural network. The learning data acquisition unit 1020 acquires learning data from the learning data storage unit 1090. A neural network calculation unit 1030 inputs biological information to a neural network to calculate a vector. An inter-vector distance calculation unit 1040 calculates the distance between two vectors.

ロス算出部1050は、ベクトル間の距離に基づきロス関数の出力を算出する。パラメータ更新部1060は、ロス算出部1050が算出したロス関数の出力に基づき、ニューラルネットワークのパラメータを更新する。学習データ格納部1090は、学習データを格納する。パラメータ格納部1091は、パラメータ更新部1060にて学習したパラメータを格納する。   The loss calculating unit 1050 calculates the output of the loss function based on the distance between the vectors. The parameter updating unit 1060 updates the parameters of the neural network based on the output of the loss function calculated by the loss calculating unit 1050. The learning data storage unit 1090 stores learning data. The parameter storage unit 1091 stores the parameters learned by the parameter updating unit 1060.

認証クライアント1100は、例えば、生体情報取得部1110、ニューラルネット算出部1120、ベクトル二値化部1130、登録ベクトル融合部1140、マスクベクトル生成部1150、テンプレート変換部1160、サンプル変換部1161、テンプレート照合部1170、通信部1180、及びパラメータ格納部1190、を含む。   The authentication client 1100 includes, for example, a biometric information acquisition unit 1110, a neural network calculation unit 1120, a vector binarization unit 1130, a registration vector fusion unit 1140, a mask vector generation unit 1150, a template conversion unit 1160, a sample conversion unit 1161, template matching. And a communication unit 1180 and a parameter storage unit 1190.

生体情報取得部1110は、登録時または認証時にユーザから入力された生体情報を取得する。ニューラルネット算出部1120は、生体情報取得部1110が取得した生体情報をニューラルネットワークへ入力して出力ベクトルを算出する。   The biometric information acquisition unit 1110 acquires biometric information input from the user at the time of registration or authentication. The neural network calculation unit 1120 inputs the biological information acquired by the biological information acquisition unit 1110 to a neural network to calculate an output vector.

ベクトル二値化部1130は、ニューラルネット算出部1120が算出した出力ベクトルを二値化してバイナリベクトルを生成する。登録ベクトル融合部1140は、ベクトル二値化部1130が生成した複数のバイナリベクトルを融合し、単一の登録ベクトルを生成する。   The vector binarization unit 1130 binarizes the output vector calculated by the neural network calculation unit 1120 to generate a binary vector. The registration vector fusion unit 1140 fuses the plurality of binary vectors generated by the vector binarization unit 1130 to generate a single registration vector.

マスクベクトル生成部1150は、ベクトル二値化部1130が生成したバイナリベクトルに対するマスクベクトルを生成する。テンプレート変換部1160は、生体情報取得部1110が取得した生体情報を登録テンプレートに変換する。サンプル変換部1161は、生体情報取得部1110が取得した生体情報を認証サンプルに変換する。   The mask vector generation unit 1150 generates a mask vector for the binary vector generated by the vector binarization unit 1130. The template conversion unit 1160 converts the biometric information acquired by the biometric information acquisition unit 1110 into a registered template. The sample conversion unit 1161 converts the biological information acquired by the biological information acquisition unit 1110 into an authentication sample.

テンプレート照合部1170は、テンプレート変換部1160が生成した登録テンプレートと、サンプル変換部1161が生成した認証サンプルと、を照合して本人判定を行う。通信部1180は、ネットワーク1300を介して、認証サーバ1200と通信を行う。パラメータ格納部1190は、学習機1000のパラメータ格納部1091に格納された学習済みパラメータと同じパラメータを格納する。   The template collating unit 1170 collates the registered template generated by the template converting unit 1160 with the authentication sample generated by the sample converting unit 1161 to determine the person. The communication unit 1180 communicates with the authentication server 1200 via the network 1300. The parameter storage unit 1190 stores the same parameters as the learned parameters stored in the parameter storage unit 1091 of the learning device 1000.

認証サーバ1200は、例えば、ベクトル間距離算出部1210、通信部1220、及び登録テンプレート格納部1290を含む。ベクトル間距離算出部1210は、ニューラルネット算出部1120とベクトル二値化部1130が算出したバイナリベクトル間のハミング距離を算出する。通信部1220は、ネットワーク1300を介して、認証クライアント1100と通信する。登録テンプレート格納部1290は、テンプレート変換部1160が生成した登録テンプレートを格納する。   The authentication server 1200 includes, for example, an inter-vector distance calculation unit 1210, a communication unit 1220, and a registration template storage unit 1290. The inter-vector distance calculation unit 1210 calculates the Hamming distance between the binary vectors calculated by the neural network calculation unit 1120 and the vector binarization unit 1130. The communication unit 1220 communicates with the authentication client 1100 via the network 1300. The registration template storage unit 1290 stores the registration template generated by the template conversion unit 1160.

なお、図1の例では、学習機1000は、認証クライアント1100及び認証サーバ1200に接続されていないが、認証クライアント1100及び認証サーバ1200の少なくとも一方と、ネットワーク1300を介して接続されていてもよい。   In the example of FIG. 1, the learning device 1000 is not connected to the authentication client 1100 and the authentication server 1200, but may be connected to at least one of the authentication client 1100 and the authentication server 1200 via the network 1300. .

図10は、学習機1000、認証クライアント1100、及び認証サーバ1200のハードウェア構成例を示すブロック図である。学習機1000、認証クライアント1100、及び認証サーバ1200は、例えば、図10に示す計算機によって構成される。計算機は、CPU(Central Processing Unit)1001、主記憶装置1002、補助記憶装置1003、入力装置1004、出力装置1005、及び通信装置1006を含む。   FIG. 10 is a block diagram showing an example of the hardware configuration of the learning device 1000, the authentication client 1100, and the authentication server 1200. The learning device 1000, the authentication client 1100, and the authentication server 1200 are configured by, for example, a computer shown in FIG. The computer includes a central processing unit (CPU) 1001, a main storage device 1002, an auxiliary storage device 1003, an input device 1004, an output device 1005, and a communication device 1006.

CPU1001は、プロセッサを含み、主記憶装置1002に格納されたプログラムを実行する。主記憶装置(メモリ)1002は、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、CPU1001が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。   The CPU 1001 includes a processor and executes a program stored in the main storage device 1002. The main storage device (memory) 1002 includes a ROM, which is a non-volatile storage element, and a RAM, which is a volatile storage element. The ROM stores an immutable program (for example, BIOS). The RAM is a high-speed and volatile storage element such as a dynamic random access memory (DRAM), and temporarily stores a program executed by the CPU 1001 and data used when the program is executed.

補助記憶装置1003は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)等の大容量かつ不揮発性の記憶装置であり、プロセッサが実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置1003から読み出されて、主記憶装置1002にロードされて、プロセッサによって実行される。   The auxiliary storage device 1003 is, for example, a large-capacity and non-volatile storage device such as a hard disk drive (HDD) or a solid state drive (SSD), and stores programs executed by the processor and data used when executing the programs. Do. That is, the program is read from the auxiliary storage device 1003, loaded into the main storage device 1002, and executed by the processor.

計算機は、入力インターフェース及び出力インターフェースを有する。入力インターフェースは、キーボード、マウス、カメラ、及びスキャナなどの入力装置1004が接続され、オペレータからの入力を受け付けるインターフェースである。出力インターフェースは、ディスプレイ装置やプリンタなどの出力装置1005が接続され、プログラムの実行結果をオペレータが視認可能な形式で出力するインターフェースである。   The computer has an input interface and an output interface. The input interface is an interface to which an input device 1004 such as a keyboard, a mouse, a camera, and a scanner is connected and which receives an input from an operator. The output interface is an interface to which an output device 1005 such as a display device or a printer is connected, and which outputs the execution result of the program in a format that can be viewed by the operator.

通信装置1006は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置であり、通信部による通信に用いられる。また、通信装置1006は、例えば、USB等のシリアルインターフェースを含む。   The communication device 1006 is a network interface device that controls communication with another device according to a predetermined protocol, and is used for communication by the communication unit. Also, the communication device 1006 includes, for example, a serial interface such as USB.

CPU1001が実行するプログラムは、リムーバブルメディア(CD−ROM、フラッシュメモリなど)又はネットワークを介して計算機に提供され、非一時的記憶媒体である不揮発性の補助記憶装置1003に格納される。このため、計算機は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。   A program executed by the CPU 1001 is provided to a computer via removable media (CD-ROM, flash memory, etc.) or a network, and stored in a non-volatile auxiliary storage device 1003 which is a non-transitory storage medium. For this reason, the computer should have an interface for reading data from removable media.

学習機1000、認証クライアント1100、及び認証サーバ1200は、それぞれ、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。   The learning device 1000, the authentication client 1100, and the authentication server 1200 are computer systems configured respectively on physically one computer or on a plurality of logically or physically configured computers. It may operate on a separate thread on a computer, or may operate on a virtual computer built on multiple physical computer resources.

学習機1000のCPU1001は、パラメータ初期化部1010、ニューラルネット算出部1030、ベクトル間距離算出部1040、ロス算出部1050、パラメータ更新部1060を含む。認証クライアント1100のCPU1001は、ニューラルネット算出部1120、ベクトル二値化部1130、登録ベクトル融合部1140、マスクベクトル生成部1150、テンプレート変換部1160、サンプル変換部1161、テンプレート照合部1170、及び通信部1180を含む。認証サーバ1200のCPU1001は、ベクトル間距離算出部1210及び通信部1220を含む。   The CPU 1001 of the learning device 1000 includes a parameter initializing unit 1010, a neural network calculating unit 1030, an inter-vector distance calculating unit 1040, a loss calculating unit 1050, and a parameter updating unit 1060. The CPU 1001 of the authentication client 1100 includes a neural network calculation unit 1120, a vector binarization unit 1130, a registration vector fusion unit 1140, a mask vector generation unit 1150, a template conversion unit 1160, a sample conversion unit 1161, a template comparison unit 1170, and a communication unit. Including 1180. The CPU 1001 of the authentication server 1200 includes an inter-vector distance calculation unit 1210 and a communication unit 1220.

例えば、学習機1000のCPU1001は、学習機1000の主記憶装置1002にロードされたパラメータ初期化部プログラムに従って動作することで、パラメータ初期化部1010として機能し、学習機1000の主記憶装置1002にロードされたニューラルネット算出プログラムに従って動作することで、ニューラルネット算出部1030として機能する。学習機1000のCPU1001に含まれる他の部、認証クライアント1100のCPU1001に含まれる各部、及び認証サーバ1200のCPU1001に含まれる各部についても同様である。   For example, the CPU 1001 of the learning device 1000 operates as the parameter initializing unit 1010 by operating according to the parameter initializing unit program loaded in the main storage device 1002 of the learning device 1000, and the main storage device 1002 of the learning device 1000. By operating according to the loaded neural network calculation program, it functions as a neural network calculation unit 1030. The same applies to the other units included in the CPU 1001 of the learning device 1000, the units included in the CPU 1001 of the authentication client 1100, and the units included in the CPU 1001 of the authentication server 1200.

学習機1000の補助記憶装置1003は、学習データ格納部1090及びパラメータ格納部1091を含む。認証クライアント1100の補助記憶装置1003は、パラメータ格納部1190を含む。認証サーバ1200の補助記憶装置1003は、登録テンプレート格納部1290を含む。   The auxiliary storage device 1003 of the learning device 1000 includes a learning data storage unit 1090 and a parameter storage unit 1091. The auxiliary storage device 1003 of the authentication client 1100 includes a parameter storage unit 1190. The auxiliary storage device 1003 of the authentication server 1200 includes a registration template storage unit 1290.

以下、認証システムが実行する処理手順の一例を、説明する。図2は、パラメータ学習処理、生体情報登録処理、及び1:N認証処理の一例を示すフローチャートである。   Hereinafter, an example of the process sequence which an authentication system performs is demonstrated. FIG. 2 is a flowchart showing an example of parameter learning processing, biometric information registration processing, and 1: N authentication processing.

まず、学習機1000は、パラメータの学習処理を行う(S2010)。この処理では、学習機1000は、学習データ格納部1090に予め格納された学習データに基づきニューラルネットワークのパラメータを学習し、学習したパラメータをパラメータ格納部1091に格納する。ステップS2010におけるパラメータ学習の詳細は、図3を参照して後述する。   First, the learning device 1000 performs parameter learning processing (S2010). In this process, the learning device 1000 learns the parameters of the neural network based on the learning data stored in advance in the learning data storage unit 1090, and stores the learned parameters in the parameter storage unit 1091. Details of parameter learning in step S2010 will be described later with reference to FIG.

ステップS2010で取得されたパラメータは、パラメータ格納部1091に格納され、学習処理の終了後に認証クライアント1100のパラメータ格納部1190へコピーされる。学習機1000と認証クライアント1100とがネットワーク1300を介して接続されていない場合には、例えば、リムーバブルメディアを介して、当該パラメータが認証クライアント1100に提供される。   The parameters acquired in step S2010 are stored in the parameter storage unit 1091 and copied to the parameter storage unit 1190 of the authentication client 1100 after the end of the learning process. When the learning device 1000 and the authentication client 1100 are not connected via the network 1300, for example, the parameters are provided to the authentication client 1100 via removable media.

次に、認証クライアント1100と認証サーバ1200とが、生体情報の登録処理を行う。まず認証クライアント1100の生体情報取得部1110は、例えば、入力装置1004から、又はネットワーク1300を介して他の装置から、ユーザの生体情報(例えば、指紋、顔、虹彩、静脈など)を取得する(S2110)。   Next, the authentication client 1100 and the authentication server 1200 perform biometric information registration processing. First, the biometric information acquisition unit 1110 of the authentication client 1100 acquires biometric information (for example, a fingerprint, a face, an iris, a vein, etc.) of the user from, for example, the input device 1004 or other devices via the network 1300 S2110).

認証クライアント1100は、取得した生体情報から、登録データを生成し(S2120)、認証サーバ1200へ送信する(S2130)。ステップS2120の登録データ生成処理により、登録ベクトル、マスクベクトル、及び登録テンプレートの3つが得られる。ステップS2120における登録データ生成処理の詳細は、図6を参照して後述する。   The authentication client 1100 generates registration data from the acquired biometric information (S2120), and transmits it to the authentication server 1200 (S2130). By the registration data generation process of step S2120, three of a registration vector, a mask vector, and a registration template are obtained. Details of the registration data generation process in step S2120 will be described later with reference to FIG.

次に認証サーバ1200は、登録データを受信し(S2210)、受信した登録データを登録テンプレート格納部1290へ格納する(S2220)。登録データは、後述する登録テンプレート、バイナリベクトル、及びマスクベクトルを含む。以上の処理を各ユーザに対して実行することで各ユーザの生体情報登録が完了し、1:N認証が利用可能になる。   Next, the authentication server 1200 receives the registration data (S2210), and stores the received registration data in the registration template storage unit 1290 (S2220). The registration data includes registration templates, binary vectors, and mask vectors described later. By executing the above processing for each user, biometric information registration of each user is completed, and 1: N authentication becomes available.

次に、認証クライアント1100と認証サーバ1200が、1:N認証処理を行う。認証クライアント1100の生体情報取得部1110はユーザから生体情報を取得する(S2140)。認証クライアント1100は、得られた生体情報から認証データを生成して(S2150)、認証サーバ1200へ送信する(S2160)。なお、ステップS2150の認証データ生成により、バイナリベクトルと認証サンプルが得られる。認証データは、バイナリベクトルを含む。なお、ステップS2150の詳細については、図7を参照して後述する。   Next, the authentication client 1100 and the authentication server 1200 perform 1: N authentication processing. The biometric information acquisition unit 1110 of the authentication client 1100 acquires biometric information from the user (S2140). The authentication client 1100 generates authentication data from the obtained biometric information (S2150), and transmits it to the authentication server 1200 (S2160). Note that the binary vector and the authentication sample are obtained by the authentication data generation in step S2150. Authentication data includes binary vectors. The details of step S2150 will be described later with reference to FIG.

認証サーバ1200は、認証データを受信し(S2230)、認証データに含まれるバイナリベクトルを使った絞り込み照合を行う(S2240)。ステップS2240の詳細については、図8を参照して後述する。ステップS2240において、候補テンプレートIDが得られる。認証サーバ1200は、当該候補テンプレートIDに基づき登録テンプレート格納部1290から候補テンプレートを取得し(S2250)、認証クライアント1100へ送信する(S2260)。   The authentication server 1200 receives the authentication data (S2230), and performs narrowing-down collation using the binary vector included in the authentication data (S2240). The details of step S2240 will be described later with reference to FIG. In step S2240, candidate template IDs are obtained. The authentication server 1200 acquires a candidate template from the registration template storage unit 1290 based on the candidate template ID (S2250), and transmits the candidate template to the authentication client 1100 (S2260).

なお、ステップS2250において候補テンプレートが取得されなかった場合は、この時点で認証失敗となり、ステップS2260以降の処理は行われない。この場合、例えば、認証サーバ1200は、認証クライアント1100に認証が失敗したことを通知し、認証クライアント1100は、認証が失敗したことを示す認証結果を、例えば、出力装置1005等に出力する。   If no candidate template is acquired in step S2250, authentication fails at this point, and the process from step S2260 is not performed. In this case, for example, the authentication server 1200 notifies the authentication client 1100 that the authentication has failed, and the authentication client 1100 outputs an authentication result indicating that the authentication has failed to, for example, the output device 1005 or the like.

ステップS2250において候補テンプレートが1つ以上取得された場合は、ステップS2260以降の処理が実行される。このとき、候補テンプレート数は登録テンプレート格納部1290に格納されている登録テンプレートの数よりも少なくなるため、テンプレート照合の回数を削減することができる。これにより、本実施例の認証システムにおいては、単純に全件の登録テンプレートと認証サンプルの照合を行う場合と比較して高速な処理を実現することができる。   If one or more candidate templates are obtained in step S2250, the processes in step S2260 and subsequent steps are executed. At this time, since the number of candidate templates is smaller than the number of registered templates stored in the registered template storage unit 1290, the number of template matching can be reduced. As a result, in the authentication system of this embodiment, high-speed processing can be realized as compared with the case where the registration templates of all the cases and the authentication sample are simply compared.

認証クライアント1100は、ステップS2260で送信された候補テンプレートを受信する(S2170)。テンプレート照合部1170は、候補テンプレートと、認証データ生成処理において生成された認証サンプルと、の照合を、例えば、既存の照合方法を用いて行う(S2180)。   The authentication client 1100 receives the candidate template transmitted in step S2260 (S2170). The template collating unit 1170 collates the candidate template with the authentication sample generated in the authentication data generation process using, for example, an existing collation method (S2180).

ステップS2180におけるテンプレート照合の結果、認証サンプルと同一の生体情報を有する登録テンプレートが存在するか否かが決定する。テンプレート照合部1170は、認証サンプルと同一の生体情報を有する登録テンプレートが存在すると判定した場合、ステップS2190において、認証が成功したことを示す認証結果を、例えば、出力装置1005等に出力する。   As a result of template matching in step S2180, it is determined whether or not there is a registered template having the same biological information as the authentication sample. If it is determined that there is a registered template having the same biometric information as the authentication sample, the template collating unit 1170 outputs an authentication result indicating that the authentication is successful, for example, to the output device 1005 or the like in step S2190.

一方、認証サンプルと同一の生体情報を有する登録テンプレートが存在しないと判定した場合は、ステップS2190において、認証が失敗したことを示す認証結果を、例えば、出力装置1005等に出力する。以上により、バイナリベクトルによるテンプレートの絞り込みを導入した1:N認証が完了する。   On the other hand, when it is determined that there is no registered template having the same biometric information as the authentication sample, in step S2190, an authentication result indicating that the authentication has failed is output to, for example, the output device 1005 or the like. By the above, 1: N authentication which introduced the narrowing down of the template by the binary vector is completed.

図3は、ステップS2010におけるパラメータ学習処理の一例を示すフローチャートである。本実施例では、Siamese Networkを用いたパラメータ学習が実行される。Siamese Networkは、2つの同一のネットワーク(本実施例ではいずれもニューラルネットワークとする)を含む。   FIG. 3 is a flowchart showing an example of the parameter learning process in step S2010. In this embodiment, parameter learning using a Siamese Network is performed. The Siamese Network includes two identical networks (both in the present embodiment as neural networks).

Siamese networkにおける学習データは、それぞれ、当該2つのネットワークそれぞれに入力される入力情報(例えば、画像情報)と、当該2つの入力情報が同じクラスであるか異なるクラスであるかを示すフラグ(同一性情報)と、を含む。なお、当該同一のネットワークそれぞれは、多層(例えば3層以上)のネットワークである。   The learning data in the Siamese network includes input information (for example, image information) input to each of the two networks, and a flag (identity indicating whether the two input information are in the same class or in different classes). Information) and. Each of the same networks is a multilayer (for example, three or more layers) network.

なお、入力情報が同じ人物の同じ生体情報である場合にのみ、クラスが同じであるものとする。具体的には、例えば、2つの入力情報がいずれもユーザAの右手の人差し指の静脈の画像情報(画像自体は異なってもよい)である場合は、これらの入力情報におけるクラスは等しい。例えば、ユーザAの右手の人差し指の静脈の画像情報と、ユーザBの右手の人差し指の静脈の画像情報と、のクラスは異なる。また、例えば、ユーザAの右手の人差し指の静脈の画像情報と、ユーザAの左手の人差し指の静脈の画像情報と、のクラスは異なる。つまり、入力情報が画像情報である場合には、同一の対象(被写体)から得られた画像情報においてのみ、クラスが等しい。   The classes are the same only when the input information is the same biometric information of the same person. Specifically, for example, when the two pieces of input information are both image information of the vein of the forefinger of the right hand of the user A (the image itself may be different), the classes in these pieces of input information are equal. For example, the classes of the image information of the forefinger vein of the right hand of the user A and the image information of the veins of the forefinger of the right user B differ. Also, for example, the classes of the image information of the vein of the forefinger of the right hand of the user A and the image information of the veins of the forefinger of the left hand of the user A are different. That is, when the input information is image information, classes are equal only in image information obtained from the same object (subject).

Siamese Networkにおける学習では、入力情報のクラスが同じであれば出力ベクトル間の距離が小さくなるように、入力情報のクラスが異なれば出力ベクトル間の距離が大きくなるように、ニューラルネットワークのパラメータを更新する。   In the learning in Siamese Network, the parameters of the neural network are updated so that the distance between output vectors becomes smaller if the class of input information is the same, and the distance between output vectors becomes larger if the class of input information is different. Do.

まず、学習機1000のパラメータ初期化部1010は、パラメータ格納部1091に格納されているパラメータを初期化する(S3010)。パラメータ初期化部1010は、例えば、0を代入する、正規分布などの確率分布に従う乱数を代入するなどの方法によって、パラメータを初期化する。なお、パラメータの初期化方法として、ニューラルネットワークの学習で一般的に行われる他の方法が用いられてもよい。   First, the parameter initialization unit 1010 of the learning device 1000 initializes the parameters stored in the parameter storage unit 1091 (S3010). The parameter initialization unit 1010 initializes parameters by, for example, substituting 0, substituting a random number according to a probability distribution such as a normal distribution, or the like. Note that, as a parameter initialization method, other methods generally performed in learning of a neural network may be used.

学習データ取得部1020は、学習データ格納部1090から、学習に用いるデータを取得する(S3020)。具体的には、例えば、学習データ取得部1020は、学習データ(つまり、2つの生体情報のペアとフラグとを含むデータ)をM個選択する。なお、M個の学習データが一度に選択されてパラメータ更新が実行される方式は、Mini Batchと呼ばれる。なお、パラメータ更新のための学習データの選択方法として、ニューラルネットワークの学習で一般的に行われる他の方法が用いられてもよい。   The learning data acquisition unit 1020 acquires data to be used for learning from the learning data storage unit 1090 (S3020). Specifically, for example, the learning data acquisition unit 1020 selects M pieces of learning data (that is, data including two pairs of biological information and a flag). A method in which M pieces of learning data are selected at one time and parameter updating is performed is called Mini Batch. Note that, as a method of selecting learning data for updating parameters, another method generally performed in learning of a neural network may be used.

ニューラルネット算出部1030は、学習データ中の生体情報をニューラルネットワークへ入力して出力層から出力される出力ベクトルを取得する(S3030)。なお、本実施例において、画像認識の分野でよく使われる畳み込みニューラルネットワークを用いることができる。   The neural network calculation unit 1030 inputs the biological information in the learning data to the neural network to acquire an output vector output from the output layer (S3030). In the present embodiment, a convolutional neural network often used in the field of image recognition can be used.

また、ニューラルネットワークの出力ベクトルの各要素の値を所定範囲に含まれる値に変換する関数が、ニューラルネットワークの最終層の関数として用いられる。当該所定範囲は、例えば、バイナリベクトルの各要素がとり得る2値を、それぞれ最大値及び最小値とする範囲である。本実施例では、バイナリベクトルの各要素は0又は1であるものとするため、当該所定範囲は0以上1以下である。   Also, a function that converts the value of each element of the output vector of the neural network into a value included in a predetermined range is used as a function of the final layer of the neural network. The predetermined range is, for example, a range in which two values that each element of the binary vector can take are the maximum value and the minimum value, respectively. In this embodiment, each element of the binary vector is 0 or 1, so the predetermined range is 0 or more and 1 or less.

従って、本実施例において、各要素の値を0以上1以下に変換するSigmoid関数は、当該関数の一例である。以下、Sigmoid関数が用いられているものとする。このような関数が最終層の関数として、用いられることにより、出力ベクトルの各要素は、0以上1以下の値となり、確率値とみなすことができる。   Therefore, in the present embodiment, the Sigmoid function that converts the value of each element to 0 or more and 1 or less is an example of the function. Hereinafter, it is assumed that the Sigmoid function is used. By using such a function as a function of the final layer, each element of the output vector has a value of 0 or more and 1 or less, and can be regarded as a probability value.

ベクトル間距離算出部1040は、ステップS3020で取得した学習データに含まれる入力情報のペアそれぞれについて、ステップS3030で取得した出力ベクトル間の距離を算出する(S3040)。なお、ベクトル間距離としては、ベクトルの各要素の差分の二乗の総和(ユークリッド距離)、ベクトルの各要素の差分の絶対値の総和(マンハッタン距離)の他、下記の式1が示すベクトル間距離関数を適用することができる。   The inter-vector distance calculation unit 1040 calculates the distance between the output vectors acquired in step S3030 for each pair of input information included in the learning data acquired in step S3020 (S3040). In addition to the vector-to-vector distance, the vector-to-vector distance represented by the following equation 1 in addition to the sum of squares of differences of elements of a vector (Euclidean distance) and the sum of absolute values of differences of elements of a vector (Manhattan distance) Functions can be applied.

Figure 2019101927
Figure 2019101927

上記式1のベクトル間距離関数における、x、x’は距離を算出する対象のベクトルを表す。また、xは出力ベクトルxのi番目の要素、x’は出力ベクトルx’のi番目の要素であり、nは出力ベクトルx及び出力ベクトルx’の次数である。ニューラルネットワークの最終層がSigmoid関数であるため、出力ベクトルの各要素の値は0から1の値に正規化されている。従って、出力ベクトルの各要素は、当該出力ベクトルから得られるバイナリベクトル(出力ベクトルから得られるバイナリベクトルの詳細については後述する)において、当該出力ベクトルの各要素に対応する要素の値が1となる確率と解釈することもできる。このように解釈した場合、式1に示すベクトル間距離関数によって得られる距離は、2つのバイナリベクトルのハミング距離の期待値を表す。 In the inter-vector distance function of Equation 1, x and x ′ represent vectors of which the distances are to be calculated. Also, x i is the ith element of the output vector x, x ′ i is the ith element of the output vector x ′, and n is the order of the output vector x and the output vector x ′. Since the final layer of the neural network is a Sigmoid function, the value of each element of the output vector is normalized to a value of 0 to 1. Therefore, in the binary vector obtained from the output vector (the details of the binary vector obtained from the output vector will be described later), each element of the output vector has a value of 1 corresponding to each element of the output vector. It can also be interpreted as a probability. Interpreted in this way, the distance obtained by the inter-vector distance function shown in Equation 1 represents the expected value of the Hamming distance between two binary vectors.

続いて、ロス算出部1050は、ステップS3040で得られたベクトル間距離に基づいてロスを算出する(S3050)。ロスは、ベクトル間距離がどの程度理想的な値になっているかを示す値であり、0に近づくほど最適化が進んでいることを示す。下記の式2に示すContrastive Loss、及び下記の式3に示すロス関数は、いずれも、ロスの計算に用いられる数式の一例である。   Subsequently, the loss calculating unit 1050 calculates a loss based on the inter-vector distance obtained in step S3040 (S3050). The loss is a value indicating how ideal the inter-vector distance is. The closer to 0, the more the optimization progresses. Both Contrastive Loss shown in Equation 2 below and the loss function shown in Equation 3 below are both examples of equations used to calculate the loss.

Figure 2019101927
Figure 2019101927

Figure 2019101927
Figure 2019101927

ただし、式2及び式3におけるyは出力ベクトルのペアについてクラスが同じであるか異なるかを示すフラグであり、2つの出力ベクトルが同じクラスであるときに1、異なるクラスであるときに0である。また、Marginは、予め定められた値であり、例えば、1である。   However, y in Equation 2 and Equation 3 is a flag indicating whether the class is the same or different for the pair of output vectors, 1 when the two output vectors are the same class, and 0 when the output vectors are different classes is there. Also, Margin is a predetermined value, for example, one.

式2及び式3を含むロス関数は、2つの出力ベクトルに対応する生体情報が同じクラスであり、かつ当該出力ベクトル間の距離が小さい場合、及び2つの出力ベクトルに対応する生体情報が異なるクラスであり、かつ当該出力ベクトル間の距離が大きい場合に、小さい値をとる。また、当該ロス関数は、2つの出力ベクトルに対応する生体情報が同じクラスであり、かつ当該出力ベクトル間の距離が大きい場合、及び2つの出力ベクトルに対応する生体情報が異なるクラスであり、かつ当該出力ベクトル間の距離が小さい場合に、大きい値をとる。   The loss function including Equation 2 and Equation 3 is a class in which biological information corresponding to two output vectors is in the same class, and a distance between the output vectors is small, and biological information corresponding to two output vectors is different. And take a small value when the distance between the output vectors is large. The loss function is a class in which biological information corresponding to two output vectors is in the same class and a distance between the output vectors is large, and biological information corresponding to the two output vectors is different from one another, and When the distance between the output vectors is small, it takes a large value.

続いて、パラメータ更新部1060は、ステップS3050で算出したロスが小さくなるようにニューラルネットワークの各パラメータを更新する(S3060)。これにより、同じクラスのベクトル間の距離が小さくなり、異なるクラスのベクトル間の距離が大きくなるようにパラメータの学習が進む。また、出力ベクトルの各要素の値が0又は1に近づくようにパラメータの学習が進む。   Subsequently, the parameter updating unit 1060 updates each parameter of the neural network so as to reduce the loss calculated in step S3050 (S3060). As a result, the distance between vectors of the same class decreases, and learning of parameters proceeds such that the distance between vectors of different classes increases. Also, learning of parameters proceeds such that the value of each element of the output vector approaches 0 or 1.

続いて、パラメータ更新部1060は、学習が終了したか否かを判定する(S3070)。具体的には、例えば、パラメータ更新部1060は、Mini Batchの実行回数が所定数に到達することを示す第1の条件が満たされた場合に、学習が終了したと判定し、第1の条件が満たされていない場合に、学習が終了していないと判定する。また、例えば、パラメータ更新部1060は、ロスの値が所定値を下回ることを示す第2の条件が満たされた場合に、学習が終了したと判定し、第2の条件が満たされない場合に、学習が終了していないと判定する。また、パラメータ更新部1060は、例えば、第1の条件又は第2の条件の少なくとも一方が満たされた場合に、学習が終了したと判定し、双方とも満たされていない場合に、学習が終了していないと判定してもよい。   Subsequently, the parameter updating unit 1060 determines whether learning has ended (S3070). Specifically, for example, when the first condition indicating that the number of times of execution of Mini Batch reaches a predetermined number is satisfied, for example, the parameter updating unit 1060 determines that learning is completed, and the first condition is satisfied. If is not satisfied, it is determined that learning has not ended. Also, for example, when the second condition indicating that the value of loss falls below the predetermined value is satisfied, the parameter updating unit 1060 determines that learning has ended, and the second condition is not satisfied. It is determined that learning has not ended. Also, for example, when at least one of the first condition and the second condition is satisfied, the parameter updating unit 1060 determines that the learning is ended, and when both are not satisfied, the learning is ended. You may determine that it is not.

パラメータ更新部1060が、学習が終了していないと判定した場合(S3070:No)、ステップS3020に戻り再度学習を実行する。パラメータ更新部1060は、学習が終了したと判定した場合(S3070:Yes)、得られたパラメータをパラメータ格納部1091に格納する(S3080)。   If the parameter updating unit 1060 determines that learning has not ended (S3070: No), the process returns to step S3020 and learning is performed again. When it is determined that the learning is completed (S3070: Yes), the parameter updating unit 1060 stores the obtained parameter in the parameter storage unit 1091 (S3080).

なお、本実施例では、2つのニューラルネットワークを含むSiamse Netoworkによるパラメータ学習が行われたが、3つ以上のニューラルネットワーク(例えば、Triplet Network)を含むネットワークによってパラメータ学習が行われてもよい。以上により、パラメータの学習が完了する。   In the present embodiment, parameter learning is performed by Siamse Network including two neural networks. However, parameter learning may be performed by a network including three or more neural networks (for example, Triplet Network). Thus, learning of parameters is completed.

図4は、学習データ格納部1090に格納された学習データのデータ構造の一例を示す説明図である。学習データは、学習生体情報410とクラス名420とを含む。学習生体情報410は、学習用に収集した1:N認証に用いる生体情報と同じモダリティの生体情報であり、例えば、指紋、顔、虹彩、静脈などの画像を含む。   FIG. 4 is an explanatory view showing an example of the data structure of learning data stored in the learning data storage unit 1090. As shown in FIG. The learning data includes learning biometric information 410 and a class name 420. The learning biometric information 410 is biometric information of the same modality as the biometric information used for 1: N authentication collected for learning, and includes, for example, an image of a fingerprint, a face, an iris, a vein, or the like.

クラス名420は、学習生体情報410のクラスの名称であり、例えば英数字で構成される文字列である。このクラスは、生体情報が帰属する人物や身体の部位を示す。クラス名が同一の生体情報は、同じ生体から取得された同じ種類の生体情報である。クラス名が異なる生体情報は、異なる生体から取得された生体情報である。   The class name 420 is a name of a class of learning biometric information 410, and is, for example, a character string composed of alphanumeric characters. This class indicates the part of the person or body to which the biological information belongs. The biological information having the same class name is the same type of biological information acquired from the same living body. Biological information with different class names is biological information acquired from different living organisms.

図5は、パラメータ格納部1091に格納されるパラメータのデータ構造の一例を示す説明図である。図5に示すパラメータはニューラルネットワークの計算過程を一意に決定するために必要となるパラメータである。例えば、当該ニューラルネットワークが畳み込みニューラルネットワークである場合、パラメータは、畳み込みカーネルの各輝度値、バイアスの値、及び全結合層の重みの値、などを含む。   FIG. 5 is an explanatory diagram of an example of a data structure of parameters stored in the parameter storage unit 1091. As shown in FIG. The parameters shown in FIG. 5 are parameters required to uniquely determine the calculation process of the neural network. For example, if the neural network is a convolutional neural network, the parameters include each luminance value of the convolutional kernel, the value of the bias, the value of the weight of all the combined layers, and so on.

これらのパラメータが決まれば、入力する生体情報に対して、出力ベクトルの値を一意に算出することができる。なお、本実施例では、画像情報が生体情報として用いられるため、パラメータが輝度値を含んでいるが、例えば声の情報が生体情報として用いられる場合には、輝度値の代わりに例えば、声を示す信号から得られる所定の特徴量がパラメータに含まれる。   If these parameters are determined, the value of the output vector can be uniquely calculated for the input biometric information. In the present embodiment, since the image information is used as biological information, the parameter includes a luminance value. For example, when voice information is used as biological information, for example, voice is used instead of the luminance value. The predetermined feature amount obtained from the signal to be shown is included in the parameter.

図6は、認証クライアント1100による登録データ生成処理(S2120)の詳細の一例を示すフローチャートである。ステップS2010の終了後かつステップS2120の開始前に、パラメータ格納部1091に格納されたパラメータが、パラメータ格納部1190にコピーされて格納される。   FIG. 6 is a flowchart showing an example of details of registration data generation processing (S2120) by the authentication client 1100. After the end of step S2010 and before the start of step S2120, the parameters stored in the parameter storage unit 1091 are copied and stored in the parameter storage unit 1190.

まず、ニューラルネット算出部1120は、パラメータ格納部1190に格納されたパラメータで定義されるニューラルネットワークにステップS2110で取得した生体情報を入力し、出力ベクトルを生成する(S6010)。   First, the neural network calculation unit 1120 inputs the biological information acquired in step S2110 to the neural network defined by the parameters stored in the parameter storage unit 1190, and generates an output vector (S6010).

ベクトル二値化部1130は、ステップS6010で得られた出力ベクトルに対して二値化処理を行って、全ての要素が0又は1であるバイナリベクトルを生成する(S6020)。ベクトル二値化部1130は、ステップS6020において、例えば、出力ベクトルの各要素の値域が0から1である場合、所定の閾値(例えば0.5)未満の要素を0、当該所定の閾値以上の要素を1に変換することで二値化処理を実施する。ただし、この二値化処理はこのような単純な閾値処理に限られない。   The vector binarization unit 1130 binarizes the output vector obtained in step S6010 to generate a binary vector in which all elements are 0 or 1 (S6020). In step S6020, for example, when the value range of each element of the output vector is 0 to 1, the vector binarization unit 1130 makes the element less than a predetermined threshold (for example, 0.5) 0, not less than the predetermined threshold Implement binarization processing by converting elements to 1. However, this binarization process is not limited to such a simple threshold process.

例えば、ベクトル二値化部1130は、出力ベクトルの各要素の値について、当該値が他の出力ベクトルの当該要素における値の所定の閾値以下の割合(例えば下位50%)に含まれれば0、当該所定の閾値以上の割合(例えば上位50%)に含まれれば1に変換する等の、一般的な二値化方式が適用してもよい。なお、他の出力ベクトルとは、認証クライアント1100による過去の認証処理によって得られた出力ベクトルを含んでもよいし、学習データ格納部1090に格納された学習データによって得られた出力ベクトルを含んでもよい。   For example, with respect to the value of each element of the output vector, the vector binarization unit 1130 outputs 0 if the value is included in a ratio (for example, lower 50%) equal to or less than a predetermined threshold of the value of the other element A general binarization scheme may be applied, such as conversion to 1 if included in a ratio (for example, upper 50%) equal to or higher than the predetermined threshold value. The other output vector may include an output vector obtained by past authentication processing by the authentication client 1100, or may include an output vector obtained by learning data stored in the learning data storage unit 1090. .

なお、同じ人の同じ種類の複数の生体情報から登録情報が生成されてもよい。つまり、ステップS2110が複数回実行されて、同じ人の同じ種類の複数の生体情報が生成され、当該複数の生体情報それぞれについて、ステップS6010及びステップS6020が実行されることにより、複数のバイナリベクトルが生成される。   The registration information may be generated from a plurality of biometric information of the same type of the same person. That is, step S2110 is executed a plurality of times, a plurality of biological information of the same type of the same person is generated, and a plurality of binary vectors are generated by executing steps S6010 and S6020 for each of the plurality of biological information. It is generated.

なお、1つの生体情報から複数のバイナリベクトルが生成されてもよい。具体的には、例えば、生体情報が画像である場合、1つの画像に対して、機械的に位置ずれさせたり、傾けさせたり、歪ませたり、ノイズを加えたり、等して、複数の画像を生成してもよい。   A plurality of binary vectors may be generated from one piece of biometric information. Specifically, for example, when biological information is an image, a plurality of images are mechanically displaced, tilted, distorted, added with noise, or the like with respect to one image. May be generated.

登録ベクトル融合部1140は、複数のバイナリベクトルを融合して、登録ベクトルを生成する(S6030)。登録ベクトル融合部1140は、例えば、複数のバイナリベクトルの各要素の中央値を算出し、各要素の中央値を要素の値とするバイナリベクトルを登録ベクトルに決定する。なお、当該複数のバイナリベクトルの個数が偶数個である場合には、例えば、中央の2つの値の一方(例えば大きい方)の値を、中央値とする。なお、中央値以外の統計量(例えば、平均又は最頻値等)が用いられてもよい。   The registration vector fusion unit 1140 fuses a plurality of binary vectors to generate a registration vector (S6030). The registration vector fusion unit 1140, for example, calculates the median of each element of the plurality of binary vectors, and determines a binary vector having the median of each element as the value of the element as the registration vector. In addition, when the number of the plurality of binary vectors is an even number, for example, the value of one (for example, the larger one) of the two central values is set as the central value. In addition, statistics (for example, average or mode etc.) other than median may be used.

なお、登録ベクトル融合部1140は、複数のバイナリベクトルを、そのまま登録ベクトルに決定してもよいし、1つのバイナリベクトルのみが生成された場合には、当該バイナリベクトルを登録ベクトルに決定してもよい。   Note that the registration vector fusion unit 1140 may determine the plurality of binary vectors as the registration vector as it is, or when only one binary vector is generated, the binary vector may be determined as the registration vector. Good.

続いて、マスクベクトル生成部1150は、登録ベクトルに対応するマスクベクトルを生成する(S6040)。バイナリベクトルの照合の際に、マスクベクトルを作用させることで照合の精度が向上する。生体情報は、特徴空間上で一様に分布しておらず、個人ごとに特定の偏りがある。このため、バイナリベクトルの各要素に含まれる誤差には個体差が発生する。   Subsequently, the mask vector generation unit 1150 generates a mask vector corresponding to the registration vector (S6040). When matching a binary vector, the accuracy of matching is improved by applying a mask vector. The biological information is not uniformly distributed on the feature space, and there is a specific bias for each individual. Therefore, individual differences occur in the errors included in each element of the binary vector.

マスクベクトル生成部1150は、例えば、登録時に取得した複数のバイナリベクトルや、生体情報に恣意的に摂動やノイズを加えたものから生成した複数のバイナリベクトルを分析し、ベクトルの各要素の値のぶれ易さ(即ち信頼度の低さ)を算出する。   The mask vector generation unit 1150 analyzes, for example, a plurality of binary vectors acquired at the time of registration, and a plurality of binary vectors generated from biological information with arbitrary perturbations and noises added thereto. Calculate the ease of blurring (ie low reliability).

マスクベクトル生成部1150は、例えば、生成した登録ベクトルの各要素の値が、どの程度の確率で反転するかを集計することにより、このぶれ易さを算出する。具体的には、マスクベクトル生成部1150は、例えば、分析対象の複数のバイナリベクトルの各要素について、当該要素が0であるバイナリベクトルの数と当該要素が1であるバイナリベクトルの数との差が大きいほど、当該要素におけるぶれ易さを低い値に設定し、当該差が小さいほど当該要素におけるぶれ易さを高い値に設定する。   The mask vector generation unit 1150 calculates the easiness of blurring, for example, by totaling how often the value of each element of the generated registered vector is inverted. Specifically, for each element of a plurality of binary vectors to be analyzed, for example, the mask vector generation unit 1150 is the difference between the number of binary vectors whose element is 0 and the number of binary vectors whose element is 1 Is set to a lower value, and as the difference is smaller, the easiness of the element is set to a higher value.

また、マスクベクトル生成部1150は、1つの生体情報から得られた出力ベクトルから、ぶれ易さを算出してもよい。具体的には、例えば、出力ベクトルの各要素が所定の閾値未満の場合に0、所定の閾値以上の場合に1となるバイナリベクトルが生成される場合には、マスクベクトル生成部1150は、当該要素の値が当該所定の閾値に近いほど、ぶれ易さを高い値に設定し、当該要素の値が当該所定の閾値に遠いほど、ぶれ易さを低い値に設定する。   Also, the mask vector generation unit 1150 may calculate the ease of blurring from an output vector obtained from one piece of biological information. Specifically, for example, when a binary vector is generated that is 0 when each element of the output vector is less than a predetermined threshold and is 1 when the output vector has a predetermined threshold or more, the mask vector generation unit 1150 As the value of the element is closer to the predetermined threshold, the easiness of blurring is set to a higher value, and as the value of the element is farther from the predetermined threshold, the easiness of blurring is set to a lower value.

ぶれ易さが所定値以上の要素については、誤差が含まれやすいため、当該要素を除外したベクトルを用いてデータの照合を実行した方が、精度が高まる可能性がある。この誤差が含まれやすい要素の除外を実現するのがマスクベクトルである。   Since an element is more likely to include an error when the blurring easiness is a predetermined value or more, accuracy may be improved if data matching is performed using a vector excluding the element. It is the mask vector that realizes the exclusion of the element that is likely to include this error.

マスクベクトル生成部1150は、具体的には、誤差が含まれやすい(例えば、ぶれ易さが所定値以上の)要素の値を0、誤差が含まれにくい(例えば、ぶれ易さが所定値未満の)要素の値を1とするマスクベクトルを生成し、バイナリベクトルと共に登録しておく。   Specifically, the mask vector generation unit 1150 has a value of an element that is likely to include an error (for example, the blur easiness is a predetermined value or more) 0, and an error is less likely to be included (for example, the blur easiness is less than a predetermined value) Generate a mask vector whose element value is 1 and register it with the binary vector.

続いて、テンプレート変換部1160は、ステップS2110で取得された生体情報に対してテンプレート変換を施し、登録テンプレートを生成する(S6050)。テンプレート変換部1160は、生体情報に対して特徴抽出処理を行うことで、生体情報を特徴点やパターン画像へ変換したデータを、登録テンプレートとして生成してもよい。   Subsequently, the template conversion unit 1160 performs template conversion on the biological information acquired in step S2110 to generate a registered template (S6050). The template conversion unit 1160 may generate, as a registered template, data obtained by converting biological information into feature points or a pattern image by performing feature extraction processing on the biological information.

また、テンプレート変換部1160は、変換後のデータに対してテンプレート保護技術を適用して、不可逆な変換を行い、元の生体情報やその特徴を秘匿したデータを登録テンプレートとして生成してもよい。以上により、認証クライアント1100による、ステップS2120の登録データ生成処理が完了する。   Also, the template conversion unit 1160 may apply template protection technology to the converted data to perform irreversible conversion, and generate original biometric information or data concealing its features as a registered template. Thus, the registration data generation process of step S2120 by the authentication client 1100 is completed.

図7は、認証クライアント1100によるステップS2150の認証データ生成処理の詳細の一例を示すフローチャートである。まず、ニューラルネット算出部1120は、パラメータ格納部1190に格納されたパラメータで定義されるニューラルネットワークにステップS2140で取得した生体情報を入力し、出力ベクトルを生成する(S7010)。   FIG. 7 is a flowchart showing an example of the details of the authentication data generation process of step S2150 by the authentication client 1100. First, the neural network calculation unit 1120 inputs the biological information acquired in step S2140 into the neural network defined by the parameters stored in the parameter storage unit 1190, and generates an output vector (S7010).

ベクトル二値化部1130は、ステップS7010で得られた出力ベクトルに対して二値化処理を行って、バイナリベクトルを生成する(S7020)。ステップS7010及びステップS7020の処理は、それぞれステップS6010及びステップS6020の処理と同様であるため、詳細な説明を省略する。   The vector binarization unit 1130 binarizes the output vector obtained in step S7010 to generate a binary vector (S7020). The processes of step S7010 and step S7020 are the same as the processes of step S6010 and step S6020, respectively, and thus detailed description will be omitted.

サンプル変換部1161は、ステップS2140で取得された生体情報に対して、登録テンプレート生成処理における変換と同様の、サンプル変換を施すことにより、認証サンプルを生成する(S7030)。サンプル変換部1161は、登録テンプレートと同様に、生体情報から特徴抽出処理を行うことで、生体情報を特徴点やパターン画像へ変換したデータを、認証サンプルとして生成してもよい。   The sample conversion unit 1161 generates an authentication sample by subjecting the biological information acquired in step S2140 to sample conversion similar to the conversion in the registration template generation processing (S7030). The sample conversion unit 1161 may generate, as an authentication sample, data obtained by converting biological information into feature points or a pattern image by performing feature extraction processing from biological information as in the case of the registration template.

また、テンプレート保護技術を適用して登録テンプレートが生成された場合、サンプル変換部1161は、変換後のデータに対して当該テンプレート保護技術を適用して、認証サンプルを生成する。以上により、認証クライアント1100によるステップS2150の認証データ生成処理(S2150)が完了する。   Further, when the registration template is generated by applying the template protection technology, the sample conversion unit 1161 applies the template protection technology to the converted data to generate an authentication sample. Thus, the authentication data generation process (S2150) of step S2150 by the authentication client 1100 is completed.

図8は、認証サーバ1200によるステップS2240の絞り込み照合処理の詳細の一例を示すフローチャートである。まず、ベクトル間距離算出部1210は、変数iに1を代入する(S8010)。   FIG. 8 is a flowchart showing an example of details of the narrowing-down verification process of step S2240 by the authentication server 1200. First, the inter-vector distance calculation unit 1210 substitutes 1 into a variable i (S8010).

ベクトル間距離算出部1210は、登録テンプレート格納部1290に格納された、i番目の登録データに含まれるバイナリベクトルである登録ベクトルを参照し、ステップS7020で生成されたバイナリベクトルとの距離を算出する(S8020)。ベクトル間距離算出部1210は、これらのベクトル間の距離として、例えば、ハミング距離を算出する。   The inter-vector distance calculation unit 1210 refers to the registered vector that is a binary vector included in the i-th registration data stored in the registration template storage unit 1290, and calculates the distance to the binary vector generated in step S7020. (S8020). The inter-vector distance calculation unit 1210 calculates, for example, a Hamming distance as a distance between these vectors.

さらに、ステップS6040でマスクベクトルが生成された場合には、ベクトル間距離算出部1210は、マスクベクトルの値が1である要素のみからハミング距離を算出することができる。具体的には、例えば、ベクトル間距離算出部1210は、距離算出対象のバイナリベクトルそれぞれについてマスクベクトルとの論理積を算出し、当該論理積間の排他的論理和を算出し、得られたベクトルの要素のうち値が1である要素の数をカウントすることで、マスク対象の要素が除外されたハミング距離を算出することができる。   Furthermore, when the mask vector is generated in step S6040, the inter-vector distance calculation unit 1210 can calculate the Hamming distance from only the element whose mask vector value is 1. Specifically, for example, the vector-to-vector distance calculating unit 1210 calculates a logical product of each of the binary vectors to be calculated for the distance calculation with the mask vector, calculates an exclusive OR between the logical products, and the obtained vector By counting the number of elements whose value is 1 among the elements of, it is possible to calculate the Hamming distance from which the element to be masked is excluded.

なお、マスク対象の要素数(即ち、マスクベクトルにおいて値が1である要素の数)が多いほど、バイナリベクトル間の距離が小さくなりやすいため、ベクトル間距離算出部1210は、例えば、算出した距離をマスク非対象の要素数で割ることによって正規化した距離を、算出しておくことが望ましい。   Since the distance between binary vectors tends to be smaller as the number of elements to be masked (that is, the number of elements having a value of 1 in the mask vector) increases, the inter-vector distance calculation unit 1210 calculates the calculated distance, for example. It is desirable to calculate a normalized distance by dividing by the number of non-masked elements.

続いて、ベクトル間距離算出部1210は、ステップS8020で算出した距離が所定の閾値Tより小さいか否かを判定する(S8030)。ベクトル間距離算出部1210は、当該距離が当該閾値Tより小さいと判定した場合(S8030:Yes)、i番目の登録テンプレートのIDを候補テンプレートIDとして追加する(S8040)。   Subsequently, the inter-vector distance calculation unit 1210 determines whether the distance calculated in step S8020 is smaller than a predetermined threshold T (S8030). If it is determined that the distance is smaller than the threshold T (S8030: Yes), the inter-vector distance calculation unit 1210 adds the ID of the ith registered template as a candidate template ID (S8040).

距離が閾値Tより小さいということは、一定以上の確率でi番目の登録データが認証対象者のものであることを示すため、当該登録データの登録テンプレート自体が照合対象となる。また、ベクトル間距離算出部1210は、当該距離が当該閾値T以上と判定した場合(S8030:No)、ステップS8050に遷移する。   The fact that the distance is smaller than the threshold value T indicates that the i-th registration data is for the person to be authenticated with a certain probability or more, so the registration template itself of the registration data is to be collated. When the inter-vector distance calculation unit 1210 determines that the distance is equal to or more than the threshold T (S8030: No), the inter-vector distance calculation unit 1210 transitions to step S8050.

続いて、ベクトル間距離算出部1210は、iを1増加させて(S8050)、登録データの総数Nと比較する(S8060)。ベクトル間距離算出部1210は、増加後のiが総数N未満であると判定した場合(S8060:No)、ステップS8020に戻り、iが総数N以上であると判定した場合(S8060:Yes)、絞り込み照合処理を完了する。以上により、ステップS2240の絞り込み照合処理が完了する。   Subsequently, the inter-vector distance calculation unit 1210 increments i by 1 (S8050), and compares it with the total number N of registered data (S8060). If the vector-to-vector distance calculation unit 1210 determines that i after the increase is less than the total number N (S8060: No), it returns to step S8020, and determines that i is the total number N or more (S8060: Yes), Complete the narrowing verification process. Thus, the narrowing-down verification process of step S2240 is completed.

図9は、登録テンプレート格納部1290に格納された登録データのデータ構造の一例を示す説明図である。登録データは、例えば、ユーザID欄910、登録ベクトル欄920、マスクベクトル欄930、及び登録テンプレートらn940を含んで構成される。ユーザID欄910は、各ユーザに対して一意に識別する情報であるユーザIDを格納する。ユーザIDは、例えば、英数字で構成される。ユーザIDは、登録データ生成処理(S2120)において認証クライアント1100によって生成されてもよいし、登録データ格納処理(S2220)において認証サーバ1200によって生成されてもよい。   FIG. 9 is an explanatory view showing an example of the data structure of registration data stored in the registration template storage unit 1290. As shown in FIG. The registration data includes, for example, a user ID column 910, a registration vector column 920, a mask vector column 930, and a registration template n 940. The user ID column 910 stores a user ID which is information uniquely identifying each user. The user ID is composed of, for example, alphanumeric characters. The user ID may be generated by the authentication client 1100 in the registration data generation process (S2120), or may be generated by the authentication server 1200 in the registration data storage process (S2220).

登録ベクトル欄920は、ステップS6030で生成された登録ベクトルを格納する。マスクベクトル欄930は、ステップS6040で生成されたマスクベクトルを格納する。登録テンプレート欄940は、ステップS6050で生成された登録テンプレートを格納する。   The registration vector column 920 stores the registration vector generated in step S6030. The mask vector column 930 stores the mask vector generated in step S6040. The registration template field 940 stores the registration template generated in step S6050.

以上、本実施例の認証システムは、複数の同一のニューラルネットワークを用いて、同一の人の同種の生体情報から得られた出力ベクトルの距離が近くなるように、かつ異なる人又は異なる生体情報から得られた出力ベクトルの距離が遠くなるように、当該ニューラルネットワークのパラメータを学習する。また、認証システムは、当該パラメータが適用されたニューラルネットワークによって、登録対象の生体情報からバイナリベクトルを生成し、登録する。   As described above, the authentication system of this embodiment uses a plurality of identical neural networks so that the distance between output vectors obtained from the same type of biological information of the same person is short, and from different people or different biological information. The parameters of the neural network are learned so that the distance of the obtained output vector is long. In addition, the authentication system generates and registers a binary vector from biometric information to be registered by a neural network to which the parameter is applied.

また、認証システムは、認証対象の生体情報を取得し、当該パラメータが適用されたニューラルネットワークによって当該生体情報からバイナリベクトルを生成し、生成したバイナリベクトルと、登録されたバイナリベクトルと、を比較して、認証対象の生体情報と、同一の対象の生体情報の候補を絞る。つまり、本実施例の認証システムは、登録テンプレートを直接比較する対象を絞ることにより、認証を高速化することができる。さらに、本実施例の認証システムは、複数の同一のニューラルネットワークを用いた学習により、認証精度の低下を抑制することができる。   Further, the authentication system acquires biometric information to be authenticated, generates a binary vector from the biometric information by the neural network to which the parameter is applied, and compares the generated binary vector with the registered binary vector. Narrow down candidates for biometric information to be authenticated and biometric information on the same target. That is, the authentication system of the present embodiment can accelerate the authentication by narrowing down targets to which the registration template is directly compared. Furthermore, the authentication system of the present embodiment can suppress a decrease in authentication accuracy by learning using a plurality of identical neural networks.

なお、本実施例の生体認証システムは、生体情報に限らず、入力画像と同一の登録画像を検索する画像検索システムに適用することができる。この場合、認証クライアント1100は検索クライアントとして、認証サーバ1200は検索サーバとして機能する。つまり、画像検索システムは、検索クライアントに入力された入力画像から生成されたバイナリベクトルと、登録されたバイナリベクトルと、を比較して、入力画像と同一の登録画像の候補(類似画像)を絞ることができる。   The biometric authentication system of the present embodiment is not limited to biometric information, and can be applied to an image search system that searches for a registered image identical to the input image. In this case, the authentication client 1100 functions as a search client, and the authentication server 1200 functions as a search server. That is, the image search system compares the binary vector generated from the input image input to the search client with the registered binary vector to narrow down the candidate (similar image) of the same registered image as the input image. be able to.

本実施例は、1:N認証において、認証クライアント1100の代わりに、認証サーバ1200がテンプレート照合処理を行う。以下、実施例1との相違点を説明する。図示を省略するが、本実施例の認証サーバ1200は、テンプレート照合部を含む。   In this embodiment, in 1: N authentication, the authentication server 1200 performs template matching processing instead of the authentication client 1100. Hereinafter, differences from the first embodiment will be described. Although illustration is omitted, the authentication server 1200 of this embodiment includes a template matching unit.

図11は、パラメータ学習処理、生体情報登録処理、及び1:N認証処理の一例を示すフローチャートである。図2との相違点を説明する。ステップS2150において、認証クライアント1100は、バイナリベクトルに加えて、認証サンプルを認証データに含めて、ステップS2160において認証データを送信する。   FIG. 11 is a flowchart illustrating an example of the parameter learning process, the biometric information registration process, and the 1: N authentication process. The differences from FIG. 2 will be described. In step S2150, the authentication client 1100 includes the authentication sample in the authentication data in addition to the binary vector, and transmits the authentication data in step S2160.

ステップS2250に続いて、認証サーバ1200のテンプレート照合部が、候補テンプレートと認証サンプルとの照合処理を行う(S11260)。ステップS11260の処理は、ステップS2180の処理と同様であるため、説明を省略する。続いて、認証サーバ1200は、当該照合処理における認証結果を認証クライアント1100へ送信する(S11270)。つまり、本実施例において、認証サーバ1200は認証クライアント1100へ候補テンプレートを送信しない。   Following step S2250, the template matching unit of the authentication server 1200 performs matching processing between the candidate template and the authentication sample (S11260). Since the process of step S11260 is the same as the process of step S2180, the description will be omitted. Subsequently, the authentication server 1200 transmits the authentication result in the matching process to the authentication client 1100 (S11270). That is, in the present embodiment, the authentication server 1200 does not transmit the candidate template to the authentication client 1100.

本実施例の認証システムにおいて、認証サーバ1200が1:N照合を完結させるため、処理が単純化し、認証クライアント1100の負荷を軽減することができる。但し、実施例1の認証システムにおいては、認証サンプルが認証クライアント1100から外部に送信されることがないため、テンプレート保護技術が適用される場合は、実施例1の認証システムの方が実施例2の認証システムより、セキュリティ性が高い場合がある。従って、利用者のユースケースに応じて実施例1の認証システムと実施例2の認証システムとが使い分けられることが望ましい。   In the authentication system of this embodiment, since the authentication server 1200 completes the 1: N collation, the processing is simplified and the load on the authentication client 1100 can be reduced. However, in the authentication system of the first embodiment, since the authentication sample is not transmitted from the authentication client 1100 to the outside, when the template protection technology is applied, the authentication system of the first embodiment is the second embodiment. It may be more secure than an authentication system. Therefore, it is desirable that the authentication system of the first embodiment and the authentication system of the second embodiment be used properly according to the use case of the user.

本実施例の認証システムは、1つの登録データについて、実施例1で説明したバイナリベクトルに加えて、これより次数の低いバイナリベクトルを生成する。また、本実施例の認証システムは、絞り込み照合処理において、認証対象の生体情報について、当該次数の低いバイナリベクトルを生成して、登録された次数の低いバイナリベクトルとの照合を行い、一次絞り込み処理を実施する。   The authentication system of this embodiment generates a binary vector of a lower order than one of the binary vectors described in the first embodiment for one registration data. Further, the authentication system of the present embodiment generates a binary vector with a low degree of the order for biometric information to be authenticated in the narrowing-down collation process, performs collation with the registered low-order binary vector, and performs primary narrowing-down processing. Conduct.

さらに、認証システムは、絞り込み照合処理において、認証対象の生体情報と、一次絞り込み処理によって絞り込まれた登録データと、の間で次数の高いバイナリベクトル(実施例1においても生成されていたバイナリベクトル)を比較する二次絞込みをして、候補テンプレートを取得する。つまり、本実施例の認証システムは、次数の低いバイナリベクトルを用いた一次絞り込みを実行して、予め二次絞込みの対象を絞り込むことで、さらに高速な1:N認証を実現する。以下、実施例1との相違点を説明する。   Furthermore, in the narrowing-down collating process, the authentication system is a binary vector having a high degree between the biometric information to be authenticated and the registered data narrowed down by the first-order narrowing-down process (the binary vector generated also in the first embodiment). We narrow down the comparison to obtain candidate templates. That is, the authentication system of the present embodiment implements faster primary 1: N authentication by executing primary narrowing using a binary vector with a lower degree and narrowing down the target of secondary narrowing in advance. Hereinafter, differences from the first embodiment will be described.

図12は、ステップS2010におけるパラメータ学習処理の一例を示すフローチャートである。図3との相違点を説明する。パラメータ更新部1060が、学習が終了したと判定した場合(S3070:Yes)、ニューラルネット算出部1120は、前述のSiamese Networkに含まれる同一のニューラルネットワーク(以下、第一ニューラルネットワークとも呼ぶ)それぞれに同一の出力層を追加されたネットワーク(以下第二ニューラルネットワークとも呼ぶ)からなる、新たなSiamese Networkを参照する(S12000)。つまり、第一ニューラルネットワークがN層からなるとすると、第二ニューラルネットワークはN+1層からなり、第二ニューラルネットワークの第1層、・・・、第N層は、それぞれ、第一ニューラルネットワークの第1層、・・・、第N層と一致する。   FIG. 12 is a flowchart showing an example of the parameter learning process in step S2010. The differences from FIG. 3 will be described. If the parameter updating unit 1060 determines that learning has been completed (S3070: Yes), the neural network calculation unit 1120 determines whether the same neural network (hereinafter also referred to as a first neural network) included in the above-mentioned Siamese Network is selected. Reference is made to a new Siamese Network consisting of a network (hereinafter also referred to as a second neural network) to which the same output layer is added (S12000). That is, assuming that the first neural network consists of N layers, the second neural network consists of N + 1 layers, and the first layer of the second neural network,. The layers coincide with the Nth layer.

以下、学習機1000は、第二ニューラルネットワークにおいて、第一ニューラルネットワークと共通するパラメータを、ステップS3070において学習が終了したと判定した時点の値に固定した状態で、第二ニューラルネットワークの出力層に関するパラメータ(つまり第一ニューラルネットワークと非共通のパラメータ)を学習する。   Hereinafter, the learning device 1000 relates to the output layer of the second neural network in a state in which the parameter common to the first neural network in the second neural network is fixed to the value at the time of determining that learning is completed in step S3070. It learns parameters (that is, parameters not common to the first neural network).

まず、学習機1000のパラメータ初期化部1010は、第二ニューラルネットワークの出力層に関するパラメータを初期化する(S12010)。パラメータ初期化の方法は、ステップS3010と同様である。学習データ取得部1020は、学習データ格納部1090から、学習に用いるデータを取得する(S12020)。学習データの取得方法は、ステップS3020と同様である。   First, the parameter initialization unit 1010 of the learning device 1000 initializes parameters related to the output layer of the second neural network (S12010). The method of parameter initialization is the same as step S3010. The learning data acquisition unit 1020 acquires data to be used for learning from the learning data storage unit 1090 (S12020). The learning data acquisition method is the same as in step S3020.

ニューラルネット算出部1030は、学習データ中の生体情報を第二ニューラルネットワークへ入力して出力層から出力される出力ベクトルを取得する(S12030)。また、第二ニューラルネットワークの出力の各要素の値を0以上1以下の値に正規化する関数(例えば、Sigmoid関数)が、第二ニューラルネットワークの出力層の関数として用いられることが望ましい。   The neural network calculation unit 1030 inputs the biological information in the learning data to the second neural network to obtain an output vector output from the output layer (S12030). In addition, it is desirable that a function (for example, a Sigmoid function) that normalizes the value of each element of the output of the second neural network to a value of 0 or more and 1 or less is used as a function of the output layer of the second neural network.

ベクトル間距離算出部1040は、ステップS12020で取得した学習データに含まれる入力情報のペアそれぞれについて、ステップS12030で取得した出力ベクトル間の距離を算出する(S12040)。ベクトル間距離の算出方法は、ステップS3040と同様である。   The inter-vector distance calculation unit 1040 calculates the distance between the output vectors acquired in step S12030 for each pair of input information included in the learning data acquired in step S12020 (S12040). The method of calculating the inter-vector distance is the same as in step S3040.

続いて、ロス算出部1050は、ステップS12040で得られたベクトル間距離に基づいてロスを算出する(S12050)。ロスの算出方法は、ステップS3050と同様である。続いて、パラメータ更新部1060は、ステップS12050で算出したロスが小さくなるようにニューラルネットワークの各パラメータを更新する(S12060)。   Subsequently, the loss calculation unit 1050 calculates a loss based on the inter-vector distance obtained in step S12040 (S12050). The method of calculating the loss is the same as in step S3050. Subsequently, the parameter updating unit 1060 updates each parameter of the neural network so as to reduce the loss calculated in step S12050 (S12060).

続いて、パラメータ更新部1060は、学習が終了したか否かを判定する(S3070)。学習終了判定の方法は、ステップS3070と同様である。パラメータ更新部1060が、学習が終了していないと判定した場合(S12070:No)、ステップS12020に戻り再度学習を実行する。パラメータ更新部1060は、学習が終了したと判定した場合(S12070:Yes)、ステップS3080に遷移する。   Subsequently, the parameter updating unit 1060 determines whether learning has ended (S3070). The method of learning end determination is the same as step S3070. If the parameter updating unit 1060 determines that learning has not ended (S12070: No), the process returns to step S12020 to execute learning again. When the parameter updating unit 1060 determines that the learning is completed (S12070: Yes), the process moves on to step S3080.

以下、図6について実施例1との相違点を説明する。ステップS6010において、ニューラルネット算出部1120は、第一ニューラルネットワークにステップS2110で取得した生体情報を入力して第一出力ベクトルを生成し、第二ニューラルネットワークにステップS2110で取得した生体情報を入力して第二出力ベクトルを生成する。   Hereinafter, differences from the first embodiment will be described with reference to FIG. In step S6010, the neural network calculation unit 1120 inputs the biological information acquired in step S2110 to the first neural network to generate a first output vector, and inputs the biological information acquired in step S2110 into the second neural network. Generate a second output vector.

ステップS6020において、ベクトル二値化部1130は、第一出力ベクトルに対して二値化処理を行って第一バイナリベクトルを生成し、第二出力ベクトルに対して二値化処理を行って第二バイナリベクトルを生成する。   In step S6020, the vector binarization unit 1130 performs a binarization process on the first output vector to generate a first binary vector, and performs a binarization process on the second output vector to perform a second process. Generate binary vector.

ステップS6030において、登録ベクトル融合部1140は、複数の第一バイナリベクトルを融合して、第一登録ベクトルを生成し、複数の第二バイナリベクトルを融合して、第二登録ベクトルを生成する。ステップS6040において、マスクベクトル生成部1150は、第一登録ベクトルに対応する第一マスクベクトルと、第二登録ベクトルに対応する第二マスクベクトルと、を生成する。   In step S6030, the registration vector fusion unit 1140 fuses the plurality of first binary vectors to generate a first registration vector, and fuses the plurality of second binary vectors to generate a second registration vector. In step S6040, the mask vector generation unit 1150 generates a first mask vector corresponding to the first registration vector and a second mask vector corresponding to the second registration vector.

以下、図7について実施例1との相違点を説明する。ステップS7010において、ニューラルネット算出部1120は、第一ニューラルネットワークにステップS2110で取得した生体情報を入力して第一出力ベクトルを生成し、第二ニューラルネットワークにステップS2140で取得した生体情報を入力して第二出力ベクトルを生成する。   Hereinafter, differences from the first embodiment will be described with reference to FIG. In step S7010, the neural network calculation unit 1120 inputs the biological information acquired in step S2110 to the first neural network to generate a first output vector, and inputs the biological information acquired in step S2140 into the second neural network. Generate a second output vector.

ステップS7020において、ベクトル二値化部1130は、第一出力ベクトルに対して二値化処理を行って第一バイナリベクトルを生成し、第二出力ベクトルに対して二値化処理を行って第二バイナリベクトルを生成する。   In step S7020, the vector binarization unit 1130 performs a binarization process on the first output vector to generate a first binary vector, and performs a binarization process on the second output vector to generate a second binary vector. Generate binary vector.

図13は、認証サーバ1200によるステップS2240の絞り込み照合処理の詳細の一例を示すフローチャートである。図8との相違点を説明する。ステップS8010に続いて、ベクトル間距離算出部1210は、登録テンプレート格納部1290に格納された、i番目の登録データに含まれる第二登録ベクトルを参照し、ステップS7020で生成された第二バイナリベクトルとの距離を算出する(S13010)。ベクトル間の距離の算出方法は、ステップS8020と同様である。   FIG. 13 is a flowchart showing an example of the details of the narrowing-down checking process of step S2240 by the authentication server 1200. The differences from FIG. 8 will be described. Subsequent to step S8010, the inter-vector distance calculation unit 1210 refers to the second registration vector included in the i-th registration data stored in the registration template storage unit 1290, and generates the second binary vector generated in step S7020. And the distance between them (S13010). The method of calculating the distance between the vectors is the same as in step S8020.

続いて、ベクトル間距離算出部1210は、ステップ13010で算出した距離が所定の閾値T2より小さいか否かを判定する(S13020)。ベクトル間距離算出部1210は、当該距離が当該閾値T2以上と判定した場合(S13020:No)、ステップS8050に遷移する。   Subsequently, the inter-vector distance calculation unit 1210 determines whether the distance calculated in step 13010 is smaller than a predetermined threshold T2 (S13020). If the inter-vector distance calculation unit 1210 determines that the distance is greater than or equal to the threshold value T2 (S13020: No), the inter-vector distance calculation unit 1210 transitions to step S8050.

ベクトル間距離算出部1210は、当該距離が当該閾値T2より小さいと判定した場合(S13020:Yes)、登録テンプレート格納部1290に格納された、i番目の登録データに含まれる第一登録ベクトルを参照し、ステップS7020で生成された第一バイナリベクトルとの距離を算出する(S13030)。   When it is determined that the distance is smaller than the threshold value T2 (S13020: Yes), the inter-vector distance calculation unit 1210 refers to the first registration vector included in the i-th registration data stored in the registration template storage unit 1290. The distance to the first binary vector generated at step S7020 is calculated (S13030).

続いて、ベクトル間距離算出部1210は、ステップ13030で算出した距離が、所定の閾値T1より小さいか否かを判定する(S13040)。ベクトル間距離算出部1210は、当該距離が当該閾値T1以上と判定した場合(S13040:No)、ステップS8050に遷移する。ベクトル間距離算出部1210は、当該距離が当該閾値T1より小さいと判定した場合(S13040:Yes)、ステップS8040に遷移してi番目の登録テンプレートのIDを候補テンプレートIDとして追加する。   Subsequently, the inter-vector distance calculation unit 1210 determines whether the distance calculated in step 13030 is smaller than a predetermined threshold T1 (S13040). If the inter-vector distance calculation unit 1210 determines that the distance is greater than or equal to the threshold value T1 (S13040: No), the inter-vector distance calculation unit 1210 transitions to step S8050. When it is determined that the distance is smaller than the threshold T1 (S13040: Yes), the inter-vector distance calculation unit 1210 transitions to step S8040 and adds the ID of the i-th registered template as a candidate template ID.

なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。   The present invention is not limited to the embodiments described above, but includes various modifications. For example, the embodiments described above are described in detail in order to explain the present invention in an easy-to-understand manner, and are not necessarily limited to those having all the configurations described. In addition, part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment. In addition, with respect to a part of the configuration of each embodiment, it is possible to add, delete, and replace other configurations.

また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。   Further, each of the configurations, functions, processing units, processing means, etc. described above may be realized by hardware, for example, by designing part or all of them with an integrated circuit. Further, each configuration, function, etc. described above may be realized by software by the processor interpreting and executing a program that realizes each function. Information such as a program, a table, and a file for realizing each function can be placed in a memory, a hard disk, a recording device such as an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.

また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。   Further, control lines and information lines indicate what is considered to be necessary for the description, and not all control lines and information lines in the product are necessarily shown. In practice, almost all configurations may be considered to be mutually connected.

1000 学習機、1001 CPU、1002 主記憶装置、1006 通信装置、1030 ニューラルネット算出部、1040 ベクトル間距離算出部、1050 ロス算出部、1060 パラメータ更新部、1090 学習データ格納部、1110 生体情報取得部、1120 ニューラルネット算出部、1130 ベクトル二値化部、1140 登録ベクトル融合部、1150 マスクベクトル生成部、1190 パラメータ格納部、1100 認証クライアント、1200 認証サーバ、1290 登録テンプレート格納部   1000 learning machines, 1001 CPUs, 1002 main storage devices, 1006 communication devices, 1030 neural network calculation units, 1040 inter-vector distance calculation units, 1050 loss calculation units, 1060 parameter update units, 1090 learning data storage units, 1110 biometric information acquisition units , 1120 neural network calculation unit, 1130 vector binarization unit, 1140 registration vector fusion unit, 1150 mask vector generation unit, 1190 parameter storage unit, 1100 authentication client, 1200 authentication server, 1290 registration template storage unit

Claims (14)

ニューラルネットワークのパラメータを学習する学習システムであって、
プロセッサとメモリとを含み、
前記メモリは、
画像ペアの画像情報と、
前記画像ペアが同一の対象の画像であるか否かを示すフラグと、
画像情報が入力され、各要素の値が所定範囲に含まれる出力ベクトルを出力する第1ニューラルネットワーク、を示すネットワーク情報と、を保持し、
前記プロセッサは、
前記第1ニューラルネットワークに前記画像ペアの各画像の画像情報を入力して、各画像について第1出力ベクトルを出力し、
前記第1出力ベクトル間の距離の期待値を算出し、
前記フラグを参照して、前記画像ペアが同一の対象の画像である場合に前記算出した期待値が小さく、前記画像ペアが異なる対象の画像である場合に前記算出した期待値が大きくなるよう、前記第1ニューラルネットワークのパラメータを更新する、学習システム。
A learning system for learning parameters of a neural network,
Including processor and memory,
The memory is
Image information of image pair,
A flag indicating whether the image pair is an image of the same object;
Network information representing a first neural network which receives image information and outputs an output vector in which the value of each element is included in a predetermined range;
The processor is
Inputting image information of each image of the image pair into the first neural network, and outputting a first output vector for each image;
Calculating an expected value of the distance between the first output vectors;
With reference to the flag, the calculated expected value is small when the image pair is an image of the same target, and the calculated expected value is large when the image pair is an image of a different target. A learning system for updating parameters of the first neural network.
請求項1に記載の学習システムであって、
前記所定範囲は0以上1以下であり、
前記プロセッサは、前記第1出力ベクトル間の距離の期待値として、下記の式1を用いて、前記第1出力ベクトル間のハミング距離の期待値を算出し、
Figure 2019101927
上記式1において、xは前記画像ペアの一方の画像に対応する第1出力ベクトルであり、x’は前記画像ペアの他方の画像に対応する第1出力ベクトルであり、nは第1出力ベクトルの次数であり、xはxのi番目の要素であり、x’はx’のi番目の要素である、学習システム。
The learning system according to claim 1, wherein
The predetermined range is 0 or more and 1 or less,
The processor calculates an expected value of the Hamming distance between the first output vectors using the following equation 1 as the expected value of the distance between the first output vectors:
Figure 2019101927
In Equation 1, x is a first output vector corresponding to one image of the image pair, x ′ is a first output vector corresponding to the other image of the image pair, and n is a first output vector A learning system, wherein x i is the i th element of x, and x ′ i is the i th element of x ′.
請求項2に記載の学習システムであって、
前記画像ペアが同一の対象の画像である場合における前記フラグの値は1であり、
前記画像ペアが異なる対象の画像である場合における前記フラグの値は0であり、
前記プロセッサは、下記の式2を用いて、前記第1ニューラルネットワークのロスを算出し、
Figure 2019101927
上記式2において、yは前記フラグであり、Marginは定数であり、
前記プロセッサは、前記算出したロスが小さくなるよう、前記第1ニューラルネットワークのパラメータを更新する、学習システム。
The learning system according to claim 2, wherein
The value of the flag is 1 when the image pair is an image of the same object,
When the image pair is an image of a different target, the value of the flag is 0,
The processor calculates the loss of the first neural network using Equation 2 below:
Figure 2019101927
In the above equation 2, y is the flag, and Margin is a constant,
The learning system, wherein the processor updates the parameters of the first neural network so as to reduce the calculated loss.
請求項2に記載の学習システムであって、
前記画像ペアが同一の対象の画像である場合における前記フラグの値は1であり、
前記画像ペアが異なる対象の画像である場合における前記フラグの値は0であり、
前記プロセッサは、下記の式3を用いて、前記第1ニューラルネットワークのロスを算出し、
Figure 2019101927
上記式3において、yは前記フラグであり、Marginは定数であり、
前記プロセッサは、前記算出したロスが小さくなるよう、前記第1ニューラルネットワークのパラメータを更新する、学習システム。
The learning system according to claim 2, wherein
The value of the flag is 1 when the image pair is an image of the same object,
When the image pair is an image of a different target, the value of the flag is 0,
The processor calculates the loss of the first neural network using Equation 3 below:
Figure 2019101927
In the above equation 3, y is the flag, and Margin is a constant,
The learning system, wherein the processor updates the parameters of the first neural network so as to reduce the calculated loss.
請求項1に記載の学習システムであって、
前記第1ニューラルネットワークの出力層にSigmoid関数が用いられる、学習システム。
The learning system according to claim 1, wherein
A learning system, wherein a Sigmoid function is used in an output layer of the first neural network.
請求項1に記載の学習システムであって、
前記ネットワーク情報は、各要素の値が所定範囲に含まれる出力ベクトルを出力し、前記第1ニューラルネットワークに出力層が追加された第2ニューラルネットワークを示し、
前記第2ニューラルネットワークの出力ベクトルである第2出力ベクトルの次数は、前記第1出力ベクトルの次数より低く、
前記プロセッサは、
前記第2ニューラルネットワークにおいて、前記第1ニューラルネットワークと共通するパラメータを、前記第1ニューラルネットワークの更新後のパラメータに固定し、
前記第2ニューラルネットワークに前記画像ペアの各画像の画像情報を入力して、各画像について第2出力ベクトルを出力し、
前記画像ペアの各画像の第2出力ベクトル間の距離の期待値を算出し、
前記フラグを参照して、前記画像ペアが同一の対象の画像である場合に前記算出した期待値が小さく、前記画像ペアが異なる対象の画像である場合に前記算出した期待値が大きくなるよう、前記第2ニューラルネットワークの出力層に関するパラメータを更新する、学習システム。
The learning system according to claim 1, wherein
The network information indicates an output vector in which the value of each element is included in a predetermined range, and indicates a second neural network in which an output layer is added to the first neural network.
The order of a second output vector, which is an output vector of the second neural network, is lower than the order of the first output vector,
The processor is
In the second neural network, the parameter common to the first neural network is fixed to the updated parameter of the first neural network,
Inputting image information of each image of the image pair into the second neural network, and outputting a second output vector for each image;
Calculating an expected value of the distance between the second output vectors of each image of the image pair;
With reference to the flag, the calculated expected value is small when the image pair is an image of the same target, and the calculated expected value is large when the image pair is an image of a different target. A learning system, updating parameters related to an output layer of the second neural network.
学習システムと検索クライアントと検索サーバとを含む画像検索システムであって、
前記学習システムは、
画像ペアの画像情報と、
前記画像ペアが同一の対象の画像であるか否かを示すフラグと、
画像情報が入力され、各要素の値が所定範囲に含まれる出力ベクトルを出力する第1ニューラルネットワーク、を示す第1ネットワーク情報と、を保持し、
前記第1ニューラルネットワークに前記画像ペアの各画像の画像情報を入力して、各画像について第1出力ベクトルを出力し、
前記第1出力ベクトル間の距離の期待値を算出し、
前記フラグを参照して、前記画像ペアが同一の対象の画像である場合に前記算出した期待値が小さく、前記画像ペアが異なる対象の画像である場合に前記算出した期待値が大きくなるよう、前記第1ニューラルネットワークのパラメータを更新し、
前記検索クライアントは、
更新後のパラメータを有する前記第1ニューラルネットワークの情報を示す第2ネットワーク情報を保持し、
前記第2ネットワーク情報が示す前記第1ニューラルネットワークに入力画像の画像情報を入力して、前記入力画像の第1出力ベクトルを出力し、
閾値処理を行って、前記入力画像の第1出力ベクトルを第1バイナリベクトルに変換して、前記検索サーバに送信し、
前記第1バイナリベクトルの各要素は、前記所定範囲の最大値又は最小値であり、
前記検索サーバは、
複数の登録画像それぞれに対応する第1バイナリベクトルを保持し、
前記入力画像の第1バイナリベクトルと、前記複数の登録画像の第1バイナリベクトルと、を比較して、前記複数の登録画像から、前記入力画像と同一の対象の画像の第1候補を決定する、画像検索システム。
An image search system comprising a learning system, a search client and a search server,
The learning system is
Image information of image pair,
A flag indicating whether the image pair is an image of the same object;
Holding first network information indicating a first neural network which receives image information and outputs an output vector in which the value of each element is included in a predetermined range;
Inputting image information of each image of the image pair into the first neural network, and outputting a first output vector for each image;
Calculating an expected value of the distance between the first output vectors;
With reference to the flag, the calculated expected value is small when the image pair is an image of the same target, and the calculated expected value is large when the image pair is an image of a different target. Updating the parameters of the first neural network;
The search client is
Holding second network information indicating information of the first neural network having updated parameters;
Inputting image information of an input image into the first neural network indicated by the second network information, and outputting a first output vector of the input image;
Threshold processing to convert a first output vector of the input image into a first binary vector for transmission to the search server;
Each element of the first binary vector is a maximum value or a minimum value of the predetermined range,
The search server is
Hold a first binary vector corresponding to each of a plurality of registered images,
The first binary vector of the input image and the first binary vector of the plurality of registered images are compared to determine a first candidate of an image of the same target as the input image from the plurality of registered images , Image search system.
請求項7に記載の画像検索システムであって、
前記所定範囲は0以上1以下であり、
前記学習システムは、前記第1出力ベクトル間の距離の期待値として、下記の式4を用いて、前記第1出力ベクトル間のハミング距離の期待値を算出し、
Figure 2019101927
上記式4において、xは前記画像ペアの一方の画像に対応する第1出力ベクトルであり、x’は前記画像ペアの他方の画像に対応する第1出力ベクトルであり、nは第1出力ベクトルの次数であり、xはxのi番目の要素であり、x’はx’のi番目の要素である、画像検索システム。
The image search system according to claim 7, wherein
The predetermined range is 0 or more and 1 or less,
The learning system calculates an expected value of the Hamming distance between the first output vectors using the following Equation 4 as the expected value of the distance between the first output vectors:
Figure 2019101927
In the above Equation 4, x is a first output vector corresponding to one image of the image pair, x ′ is a first output vector corresponding to the other image of the image pair, and n is a first output vector An image retrieval system, wherein x i is the i th element of x, and x ′ i is the i th element of x ′.
請求項8に記載の画像検索システムであって、
前記画像ペアが同一の対象の画像である場合における前記フラグの値は1であり、
前記画像ペアが異なる対象の画像である場合における前記フラグの値は0であり、
前記学習システムは、下記の式5を用いて、前記第1ニューラルネットワークのロスを算出し、
Figure 2019101927
上記式5において、yは前記フラグであり、Marginは定数であり、
前記学習システムは、前記算出したロスが小さくなるよう、前記第1ニューラルネットワークのパラメータを更新する、画像検索システム。
The image search system according to claim 8, wherein
The value of the flag is 1 when the image pair is an image of the same object,
When the image pair is an image of a different target, the value of the flag is 0,
The learning system calculates the loss of the first neural network using Equation 5 below:
Figure 2019101927
In the above equation 5, y is the flag, and Margin is a constant,
The image search system, wherein the learning system updates the parameters of the first neural network so as to reduce the calculated loss.
請求項8に記載の画像検索システムであって、
前記画像ペアが同一の対象の画像である場合における前記フラグの値は1であり、
前記画像ペアが異なる対象の画像である場合における前記フラグの値は0であり、
前記学習システムは、下記の式6を用いて、前記第1ニューラルネットワークのロスを算出し、
Figure 2019101927
上記式6において、yは前記フラグであり、Marginは定数であり、
前記学習システムは、前記算出したロスが小さくなるよう、前記第1ニューラルネットワークのパラメータを更新する、画像検索システム。
The image search system according to claim 8, wherein
The value of the flag is 1 when the image pair is an image of the same object,
When the image pair is an image of a different target, the value of the flag is 0,
The learning system calculates the loss of the first neural network using Equation 6 below:
Figure 2019101927
In the above equation 6, y is the flag, and Margin is a constant,
The image search system, wherein the learning system updates the parameters of the first neural network so as to reduce the calculated loss.
請求項7に記載の画像検索システムであって、
前記第1ニューラルネットワークの出力層にSigmoid関数が用いられる、画像検索システム。
The image search system according to claim 7, wherein
An image retrieval system, wherein a Sigmoid function is used in an output layer of the first neural network.
請求項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候補を決定する、画像検索システム。
The image search system according to claim 7, wherein
The first network information indicates a second neural network which outputs an output vector in which the value of each element is included in a predetermined range, and an output layer is added to the first neural network;
The order of a second output vector, which is an output vector of the second neural network, is lower than the order of the first output vector,
The learning system is
In the second neural network, the parameter common to the first neural network is fixed to the updated parameter of the first neural network,
Inputting image information of each image of the image pair into the second neural network, and outputting a second output vector for each image;
Calculating an expected value of the distance between the second output vectors of each image of the image pair;
With reference to the flag, the calculated expected value is small when the image pair is an image of the same target, and the calculated expected value is large when the image pair is an image of a different target. Updating the parameters related to the output layer of the second neural network;
The second network information indicates information of the second neural network having updated parameters,
The search client is
Inputting image information of the input image into the second neural network indicated by the second network information, and outputting a second output vector of the input image;
Threshold processing to convert a second output vector of the input image into a second binary vector for transmission to the search server;
Each element of the second binary vector is a maximum value or a minimum value of the predetermined range,
The search server is
Holding a second binary vector corresponding to each of the plurality of registered images;
The second binary vector of the input image and the second binary vector of the plurality of registered images are compared to determine a second candidate of an image of the same target as the input image from the plurality of registered images ,
The first candidate is determined from the registered image included in the second candidate by comparing the first binary vector of the input image and the first binary vector of the registered image included in the second candidate. Image search system.
請求項7に記載の画像検索システムであって、
前記複数の登録画像それぞれに対応する第1バイナリベクトルは、
前記第2ネットワーク情報が示す前記第1ニューラルネットワークと、当該第1バイナリベクトルに対応する登録画像と同一の対象の複数の画像と、から得られた第1出力ベクトル、に対して前記閾値処理が行われて得られたバイナリベクトル、が所定の統計処理によって融合されたバイナリベクトルである、画像検索システム。
The image search system according to claim 7, wherein
The first binary vector corresponding to each of the plurality of registered images is
The threshold processing is performed on a first output vector obtained from the first neural network indicated by the second network information and a plurality of images of the same target as the registered image corresponding to the first binary vector. An image retrieval system, wherein the binary vector obtained is a binary vector fused by predetermined statistical processing.
請求項7に記載の画像検索システムであって、
前記検索サーバは、
前記複数の登録画像それぞれに対応するマスクベクトルを保持し、
前記マスクベクトルの各要素は、
前記第2ネットワーク情報が示す前記第1ニューラルネットワークと、当該マスクベクトルに対応する登録画像と同一の対象の複数の画像と、から得られた第1バイナリベクトルの当該要素の値が、同一の値をとる信頼度を示し、
前記検索サーバは、
前記複数の登録画像それぞれについてマスクベクトルを参照して前記信頼度が高い要素をマスク対象の要素として特定し、
前記入力画像の第1バイナリベクトルの前記マスク対象でない要素と、当該登録画像の第1バイナリベクトルの前記マスク対象でない要素と、を比較して、前記第1候補に含める登録画像を決定する、画像検索システム。
The image search system according to claim 7, wherein
The search server is
Holding a mask vector corresponding to each of the plurality of registered images;
Each element of the mask vector is
The value of the element of the first binary vector obtained from the first neural network indicated by the second network information and the plurality of images of the same target as the registered image corresponding to the mask vector has the same value Show the confidence to take
The search server is
For each of the plurality of registered images, an element with high reliability is identified as an element to be masked with reference to a mask vector,
An image that determines a registered image to be included in the first candidate by comparing the non-masked element of the first binary vector of the input image with the non-masked element of the first binary vector of the registered image Search system.
JP2017234490A 2017-12-06 2017-12-06 Learning system and image search system Active JP6873027B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017234490A JP6873027B2 (en) 2017-12-06 2017-12-06 Learning system and image search system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017234490A JP6873027B2 (en) 2017-12-06 2017-12-06 Learning system and image search system

Publications (2)

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

Family

ID=66973833

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017234490A Active JP6873027B2 (en) 2017-12-06 2017-12-06 Learning system and image search system

Country Status (1)

Country Link
JP (1) JP6873027B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110956098A (en) * 2019-11-13 2020-04-03 深圳和而泰家居在线网络科技有限公司 Image processing method and related equipment
JP2021056904A (en) * 2019-09-30 2021-04-08 ダイキン工業株式会社 Point group data identity estimation device and point group data identity estimation system
WO2021153888A1 (en) * 2020-01-31 2021-08-05 주식회사 알체라 Biometric information registration method and biometric information registration device for performing same
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 (en) * 1994-10-17 1996-05-07 Canon Inc Vector quantization method and device and method for voice recognition employing the same method
JP2014203135A (en) * 2013-04-01 2014-10-27 キヤノン株式会社 Signal processor, signal processing method, and signal processing system
JP2017138808A (en) * 2016-02-03 2017-08-10 キヤノン株式会社 Information processing device and information processing method
JP2017207947A (en) * 2016-05-19 2017-11-24 株式会社 ディー・エヌ・エー Program, system, and method for determining similarity of object

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08115099A (en) * 1994-10-17 1996-05-07 Canon Inc Vector quantization method and device and method for voice recognition employing the same method
JP2014203135A (en) * 2013-04-01 2014-10-27 キヤノン株式会社 Signal processor, signal processing method, and signal processing system
JP2017138808A (en) * 2016-02-03 2017-08-10 キヤノン株式会社 Information processing device and information processing method
JP2017207947A (en) * 2016-05-19 2017-11-24 株式会社 ディー・エヌ・エー Program, system, and method for determining similarity of object

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 (en) * 2019-09-30 2022-04-29 大金工业株式会社 Point cloud data identity estimation device and point cloud data identity estimation system
JP2021056904A (en) * 2019-09-30 2021-04-08 ダイキン工業株式会社 Point group data identity estimation device and point group data identity estimation system
WO2021065538A1 (en) * 2019-09-30 2021-04-08 ダイキン工業株式会社 Point group data sameness estimation device and point group data sameness estimation system
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 (en) * 2019-09-30 2022-09-30 大金工业株式会社 Point cloud data identity estimation device and point cloud data identity estimation system
CN110956098A (en) * 2019-11-13 2020-04-03 深圳和而泰家居在线网络科技有限公司 Image processing method and related equipment
CN110956098B (en) * 2019-11-13 2023-05-12 深圳数联天下智能科技有限公司 Image processing method and related equipment
KR20210098206A (en) * 2020-01-31 2021-08-10 주식회사 알체라 Apparatus and method for registering organism information
JP2022521879A (en) * 2020-01-31 2022-04-13 アルチェラ インコーポレイテッド Biometric information registration method and biometric information registration device for carrying out this
JP7246652B2 (en) 2020-01-31 2023-03-28 アルチェラ インコーポレイテッド Biometric information registration method and biometric information registration device for performing the same
KR102350685B1 (en) 2020-01-31 2022-01-13 주식회사 알체라 Apparatus and method for registering organism information
WO2021153888A1 (en) * 2020-01-31 2021-08-05 주식회사 알체라 Biometric information registration method and biometric information registration device for performing same
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 (en) 2021-05-19

Similar Documents

Publication Publication Date Title
JP6873027B2 (en) Learning system and image search system
Krishnamoorthy et al. Identification of user behavioral biometrics for authentication using keystroke dynamics and machine learning
JP6838005B2 (en) Device and computer mounting method for fingerprint-based authentication
JP6394323B2 (en) Biometric authentication method, biometric authentication program, and biometric authentication device
JP2017162306A (en) Information processing device, similarity retrieval program, and similarity retrieval method
EP3582435B1 (en) Biometric signing system and biometric signing method
JP5862413B2 (en) Information conversion rule generation program, information conversion rule generation device, and information conversion rule generation method
JP2019117579A (en) Biometric authentication system
WO2017079166A1 (en) High speed reference point independent database filtering for fingerprint identification
US9519835B2 (en) Efficient biometric authentication using narrowed biometric data
JP5895751B2 (en) Biometric authentication device, retry control program, and retry control method
CN110663043B (en) Template matching of biometric objects
JPWO2009110410A1 (en) Image collation device, image collation feature storage medium, image collation method, and image collation program
KR20190129417A (en) Method and system for generating cryptographic key using biometrics and fuzzy vault
JP7475192B2 (en) Classifier training device and classifier training method
JP2022028912A (en) Verification processing device, verification processing method, and recording medium storing verification processing program
JP5791666B2 (en) Dynamic generation device for visual keywords
JP7339866B2 (en) Key generation device and key generation method
KR102664795B1 (en) Device and method for generating cancelable iris templates using column-based slicing
US11876916B2 (en) Apparatus and methods for candidate tracking
JP2019185135A (en) Information processing device, information processing method, and program
US20240127383A1 (en) Method and apparatus for scannable non-fungible token generation
WO2020148874A1 (en) Matching device, matching method, and computer-readable recording medium
KR20220107963A (en) Device and method for generating cancelable iris templates using column-based slicing
Rueda et al. Identification of User Behavioral Biometrics for Authentication using Keystroke Dynamics and Machine Learning

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