本発明の一実施形態について、図面を参照して説明する。以下の実施形態において例示した具体的な複数の数値は一例であり、本発明はこれらの複数の数値に限定されない。以下の説明では、画像データを単に「画像」という。
図1を参照して、第一から第四実施形態に共通する皮膚情報処理装置10について説明する。皮膚情報処理装置10は、皮膚情報から照合に用いる照合情報を生成する機能を備えた電子機器である。皮膚情報は、例えば、指、掌及び足裏のような無毛皮膚を撮影した画像が表す生体情報から選択される。本例の皮膚情報は指紋及び汗孔に関する情報である。本例の皮膚情報処理装置10は、周知のスマートフォンである。皮膚情報処理装置10は、指紋及び汗孔を撮影した画像を解析して、皮膚情報を用いた照合に必要な登録用の照合情報を生成し、皮膚情報処理装置10のフラッシュメモリ4に記憶されたデータベース(DB)28に記憶する機能を備える。皮膚情報処理装置10は、指を撮影した画像を解析して、皮膚情報を用いた照合に必要な照合用の照合情報を生成し、生成された照合用の照合情報と、DB28に記憶された登録用の照合情報との対応を決定する機能を備える。
図1に示すように、皮膚情報処理装置10は、CPU1、ROM2、RAM3、フラッシュメモリ4、通信I/F5、表示部6、タッチパネル7、及び皮膚情報取得装置8を備える。CPU1は、皮膚情報処理装置10の制御を行うプロセッサである。CPU1は、ROM2、RAM3、フラッシュメモリ4、通信I/F5、表示部6、タッチパネル7、及び皮膚情報取得装置8と電気的に接続する。ROM2は、BIOS、ブートプログラム、及び初期設定値を記憶する。RAM3は、種々の一時データを記憶する。フラッシュメモリ4は、CPU1が皮膚情報処理装置10を制御するために実行するプログラム、OS(Operating System)、及びDB28を記憶する。通信I/F5は、外部の機器と通信を実行するためのコントローラである。表示部6は、液晶ディスプレイである。タッチパネル7は、表示部6の表面に設けられる。皮膚情報取得装置8は、皮膚を撮影した画像を取得する。本例の皮膚情報取得装置8は、光学式のエリア型センサ、またはマイクロスコープであり、1ピクセル毎に色情報を256階調の諧調値で表す。色情報は、色を表す情報である。汗孔を識別可能な画像を取得する為に、画像の解像度は、800dpi(dots per inch)以上であることが好ましい。本例の皮膚情報処理装置10の解像度は、一例として、2000dpiである。
図2から図5を参照して、第一実施形態の皮膚情報処理装置10において実行される隆線情報記憶処理を、図4に示す具体例を用いて説明する。図2に示すように、皮膚情報処理装置10は、皮膚情報取得装置8、画像取得部21、基準点決定部22、抽出部23、隆線情報生成部24、登録部26、照合部27、及びDB28を有し、それぞれの機能ブロックに対応する処理を、CPU1(図1参照)によって実行する。
図3に示すように、皮膚情報取得装置8は、画像取得部21に画像を出力する。画像取得部21は、皮膚情報取得装置8から出力された画像を取得する(S1)。具体例では、皮膚情報取得装置8は、画像41を取得する。画像41は、例えば、解像度が2000dpiであり、X方向(左右方向)が480ピクセル、Y方向(上下方向)が800ピクセルの矩形の画像の一部を模式的に示した図である。基準点決定部22は、S1で取得された画像41から皮膚の隆線上の汗孔を表す基準点を決定し、基準点の画像上の位置に対応する情報である位置情報を取得する(S2)。基準点決定部22は、例えば、特定された汗孔の面積重心を、汗孔を表す基準点として決定する。基準点の位置情報は、例えば、画像座標系の二次元座標で表される。本例の画像座標系の二次元座標は、画像中のピクセルの位置に基づき、ピクセル単位で設定される座標とする。画像41には、X、Yで示す画像座標系の二次元座標46が設定される。CPU1は、画像41の左上の画素の位置を、画像座標系の二次元座標46の原点とする。二次元座標46の原点からXプラス方向にx画素分離隔し、原点からYプラス方向にy画素分離隔した画素の位置を、座標(x,y)と表記する。
基準点決定部22は例えば、以下の手順で基準点を決定する。図4に示すように、基準点決定部22は、S1で取得された画像41から、隆線を表す画像42と、汗孔を含む円状の図形を表す画像43とを生成する。画像42は、例えば、画像41を二値化処理することによって得られる。他の例では、画像42は、マニューシャ法の処理に使われる複数の画像処理フィルタに画像41を供することにより得られる。画像42の内、黒色部分が隆線を表し、白色部分が隆線と隆線との間の谷の部分を表す。画像43は、例えば、所定範囲の濃淡値の部分を抽出可能な画像処理フィルタに画像41を供することによって得られる。汗孔は隆線上に配置される。基準点決定部22は、画像42と、画像43とを比較して、黒色部分で示される隆線上に配置された円状の部分を汗孔として特定する。基準点決定部22は、特定された汗孔の面積重心を、汗孔を表す基準点として決定する。S2の処理で、例えば、画像44の基準点P1からP9を含む複数の基準点が抽出される。
抽出部23は、S2で取得された複数の基準点の中から、同一の連続する隆線上に配置されている複数の基準点を抽出する(S3)。同一の連続する隆線とは、画像42において黒色部分が連続している部分に対応する。同一の連続する隆線上に配置されている複数の基準点とは、画像42において連続する黒色部分に配置されている複数の基準点である。隆線L1について、基準点P1からP3が抽出される。隆線L2について、基準点P4からP9が抽出される。隆線L3について、基準点P11からP19が抽出される。隆線L4について、基準点P20からP26が抽出される。隆線L5について、基準点P27からP30が抽出される。
隆線情報生成部24は、S3で抽出された複数の基準点の各々の、位置情報と、抽出された複数の基準点の隆線上の並び順とを含む情報である隆線情報を生成する(S4)。隆線情報生成部24は、隆線毎に隆線情報を生成する。隆線上の並び順は、複数の基準点を隆線の一端側から他端側に向けて線分で結んで隆線を表す場合の結合順序である。一端側と他端側は適宜決定されればよい。隆線情報生成部24は、例えば、一端側を画像41の左端側とする。図5に示すように隆線情報は、隆線ID、基準点ID、及び位置情報を含む。隆線IDは、画像上の隆線を識別するための識別子である。基準点IDは、画像上の汗孔を識別するための識別子である。例えば、隆線L1の隆線情報は、基準点IDがP1、P2、P3がこの順で登録されている。基準点IDの登録順序は、隆線上の並び順に対応する。隆線情報生成部24は、隆線L1からL5の各々に対応する、隆線情報R1からR5を生成する。
登録部26は、S4で生成された隆線情報を、皮膚認証に用いられる登録用の照合情報としてDB28に記憶させる(S5)。照合部27は、S4で生成された隆線情報を、皮膚認証に用いられる照合用の照合情報としてRAM3に記憶する。照合部27は、照合用の照合情報とDB28に記憶された登録用の照合情報と照合し、皮膚認証を行う。皮膚情報処理装置10は、以上で処理を終了する。
図3のS1の処理は本発明の画像取得ステップの一例である。S1を実行するCPU1(画像取得部21)は本発明の画像取得手段の一例である。S2の処理は本発明の基準点決定ステップの一例である。S2を実行するCPU1(基準点決定部22)は本発明の基準点決定手段の一例である。S3の処理は本発明の抽出ステップの一例である。S3を実行するCPU1(抽出部23)は本発明の抽出手段の一例である。S4の処理は本発明の隆線情報生成ステップの一例である。S4を実行するCPU1(隆線情報生成部24)は本発明の隆線情報生成手段の一例である。S5の処理は本発明の記憶制御ステップの一例である。S5を実行するCPU1(登録部26、照合部27)は本発明の記憶制御手段の一例である。S4において、隆線情報を生成する処理に変えて、結合情報を生成する処理が実行され、S5において、S4の処理で生成された結合情報が記憶機器に記憶される処理が実行されてもよい。
図6及び図7を参照して、第二実施形態の皮膚情報処理装置10において実行される類似度算出処理を説明する。図示しないが、皮膚情報処理装置10は、対応取得部、隆線情報選択部、比較部、信頼度算出部、及び類似度算出部を有し、それぞれの機能ブロックに対応する処理を、CPU1(図1参照)によって実行する。
図6に示すように、対応取得部は、類似度の計算に用いる組合せとして決定された複数組の登録用の線分情報と、照合用の線分情報とを取得する(S6)。複数組の登録用の線分情報と、照合用の線分情報とは、画像から抽出された皮膚の隆線上の特徴点を表す基準点の画像上の位置情報と、複数の基準点を所定の規則に従って線分で繋ぐ場合の接続順序とを含む線分情報を用いて皮膚認証を行う場合に、記憶機器(DB28)に記憶された登録用の線分情報と、照合用の線分情報との比較結果に基づき決定される。特徴点は、例えば、汗孔を表す点である。特徴点は公知のマニューシャ法に従って抽出される隆線の端点及び分岐点等でもよい。線分情報は、例えば、隆線情報である。線分情報は、例えば、マニューシャ法に従って抽出される特徴点を所定条件に従って結んだ線分でもよい。例えば、図7の画像45で示される登録用の隆線情報R1からR5と、画像65で示される照合用の隆線情報V1からV4とについて、同じ線種(直線、点線、一点鎖線、二点鎖線)で示す太線部分が同じ組の登録用の線分情報と、照合用の線分情報として取得される。類似度の計算に用いる組合せとして決定する処理は、皮膚情報処理装置10で実行されてもよいし、外部機器で実行されてもよい。線分情報を生成する方法、及び複数組の登録用の線分情報と、照合用の線分情報とを類似度の計算に用いる組合せとして決定する処理の方法は特に限定されない。
選択部は、S6において取得された複数組の登録用の線分情報と、照合用の線分情報との中から、2組の登録用の線分情報と、照合用の線分情報とを選択する(S7)。選択部は、例えば、図7において直線の太線で示す部分の登録用の隆線情報R2及び照合用の隆線情報V1と、点線の太線で示す部分の登録用の隆線情報R4及び照合用の隆線情報V3とを選択する。
比較部は、S7で選択された2つの照合用の線分情報の各々に対応する両端と、2つの登録用の線分情報の各々に対応する両端との相対位置を比較する(S8)。比較部は、照合用画像65の直線の太線で示す線分の両端となる基準点Q1、Q6、点線の太線で示す線分の両端となる基準点Q19、Q23を特定する。比較部は、登録用画像45の直線の太線で示す線分の両端となる基準点P4、P9、点線の太線で示す線分の両端となる基準点P21、P25を特定する。比較部は、特定された2つの照合用の線分情報の各々に対応する両端と、2つの登録用の線分情報の各々に対応する両端との相対位置を比較する。比較部は、例えば、照合用画像65の端点となる基準点Q1とQ19との距離及びX軸に対する角度と、登録用画像45の端点となる基準点P4とP21との距離及びX軸に対する角度とを比較する。比較部は、例えば、照合用画像65の端点となる基準点Q6とQ23との距離及びX軸に対する角度と、登録用画像45の端点となる基準点P9とP25との距離及びX軸に対する角度とを比較する。
信頼度算出部は、S7で選択された2組の照合用の線分情報と登録用の線分情報との内の、2つの照合用の線分情報及び2つの登録用の線分情報の少なくとも一方について、2つの線分情報の内の一方を第一線分情報、他方を第二線分情報とした場合に、第一線分情報の少なくとも何れかの端部と、第二線分情報の少なくとも何れかの端部とを結んだ1以上の比較線分の長さを信頼度として算出する(S9)。信頼度算出部は、例えば、照合用画像65の直線の太線で示す線分情報を第一線分情報とし、点線の太線で示す線分情報を第二線分情報とする。信頼度算出部は、例えば、第一線分情報が表す線分の端点となる基準点Q1と第二線分情報が表す線分の端点となる基準点Q19とを結んだ線分を比較線分とし、比較線分の長さを信頼度として算出する。
類似度算出部は、S8での比較結果と、S9で算出された信頼度とを用いて、照合用の線分情報と、登録用の線分情報との類似度である情報類似度を算出する(S10)。算出された情報類似度は、例えば、皮膚認証に用いられる。
図6のS6の処理は対応取得ステップの一例である。S1を実行するCPU1(対応取得部)は対応取得手段の一例である。S7の処理は選択ステップの一例である。S7を実行するCPU1(隆線情報選択部)は選択手段の一例である。S8の処理は比較ステップの一例である。S8を実行するCPU1(比較部)は比較手段の一例である。S9の処理は信頼度算出ステップの一例である。S9を実行するCPU1(信頼度算出部)は信頼度算出手段の一例である。S10の処理は類似度算出ステップの一例である。S10を実行するCPU1(類似度算出部)は類似度算出手段の一例である。
1.登録時の処理
図8から図19を参照して、第三実施形態の皮膚情報処理装置10で実行される皮膚情報処理について、照合情報を登録する場合を例に説明する。皮膚情報処理は、ユーザが開始指示を入力した場合に開始される。開始指示は、画像から取得された照合情報を登録用の照合情報としてDB28に登録するのか、それとも、照合情報をDB28に登録された登録用の照合情報との類似度を算出するのかに関する指示を含む。皮膚情報処理装置10のCPU1は、皮膚情報処理の開始指示の入力を検知すると、フラッシュメモリ4に記憶された皮膚情報処理を実行するための皮膚情報処理プログラムをRAM3に読み出し、皮膚情報処理プログラムに含まれる指示に従って、以下に説明する各ステップの処理を実行する。本例では、特徴点を抽出する要件(例えば、画像の鮮明さ)を満たす生体情報が取得されるまで、再入力を促すフィードバック処理が実行される。皮膚情報処理で取得される皮膚情報は、皮膚情報からアルゴリズムを用いて照合情報を抽出する要件を満たす。処理の過程で取得されたり、生成されたりした情報及びデータは、適宜RAM3に記憶される。処理に必要な各種設定値は、予めフラッシュメモリ4に記憶されている。以下、ステップを「S」と略記する。
図8に示すように、CPU1は画像解析処理を実行する(S11)。図9を参照して画像解析処理について説明する。皮膚情報取得装置8は、指の接触を検知した場合、指紋及び汗孔を撮影した画像を特定可能な信号をCPU1に出力する。CPU1は、皮膚情報取得装置8から出力される信号を受信する。CPU1は、受信した信号に基づいて、画像を取得する(S21)。S21では、例えば、図4に示す画像41が取得される。画像41には、X、Yで示す画像座標系の二次元座標が設定される。CPU1は、S21で取得された画像41を二値化処理して、隆線を表す画像42を取得する(S22)。CPU1は、基準点を決定する(S23)。例えば、CPU1は、所定範囲の濃淡値の部分を抽出可能な画像処理フィルタに画像41を供して、画像43を取得し、画像42と、画像43とを比較して、黒色部分で示される隆線上に配置された円状の部分を汗孔として特定する。CPU1は特定された汗孔の面積重心を、汗孔を表す基準点として決定し、決定された基準点の位置情報を取得する。本例の位置情報は、画像座標系のピクセル単位の座標である。CPU1は、円状の部分の大きさ及び形状等を適宜考慮して、汗孔として決定するか否かを判断してもよい。CPU1は、S23で決定された基準点の数が0より大きいか否かを判断する(S24)。S23で決定された基準点の数が0である場合(S24:NO)、CPU1は、画像解析処理を終了し、処理を図8の皮膚情報処理に戻す。S23で決定された基準点の数が0より大きい場合(S24:YES)、CPU1は、結合情報生成処理を実行する(S25)。
図10に示すように、結合情報生成処理では、CPU1は、リストを初期化する(S31)。リストは結合情報を記憶する。結合情報は、S23の処理で決定された複数の基準点の各々を注目基準点PTとした場合の、注目基準点PTの位置情報と、結合基準点PBの位置情報とを対応付けた情報である。結合基準点PBは、注目基準点PTと同一の連続する隆線上に配置され、且つ、同一の連続する隆線上の並び順が注目基準点PTと前後する基準点である。CPU1は、S23の処理で決定された複数の基準点の中から1つの基準点を注目基準点PTとして選択する(S32)。例えば、図4に示す画像44の基準点P1が注目基準点PTとして選択される。CPU1は、結合基準点PBの候補となる候補基準点PKを1つ選択する(S33)。CPU1は、例えばS23の処理で決定された複数の基準点の内の中から、注目基準点PTからの距離(例えば、ユークリッド距離)が近い順に基準点を候補基準点PKとして取得する。CPU1は、例えば、基準点P4を候補基準点PKとして選択する。CPU1は、S32の処理で選択された注目基準点PTと、S33の処理で選択された候補基準点PKとの距離dを算出する(S34)。距離dは、例えば、注目基準点PTの位置情報と、候補基準点PKの位置情報とに基づいて算出されるユークリッド距離である。
CPU1はS34で算出された距離dが閾値よりも小さいかを判断する(S35)。閾値は、皮膚上の汗孔の分布を考慮して適宜設定される。距離dが閾値よりも小さくはない場合(S35:NO)、CPU1は、後述のS40の処理を実行する。距離dが閾値よりも小さい場合(S35:YES)、CPU1は画像42を参照し、注目基準点PTと、候補基準点PKとの間に、黒い画素のみがあるか否かを判断する(S36)。例えば、注目基準点P1と、候補基準点P4との間には、白い画素がある(S36:NO)。この場合CPU1は、注目基準点PTと、候補基準点PKとは同一の連続する隆線上に配置されていないと判断されるので、S23の処理で決定された複数の基準点の内の注目基準点PT以外の全ての基準点をS33の処理で、候補基準点PKとして選択したかを判断する(S40)。S33の処理で候補基準点PKとして選択されていない基準点がある場合(S40:NO)、CPU1は、次の候補基準点PKを選択する(S33)。CPU1は、例えば、P2を候補基準点PKとして選択し、距離dを算出する(S34)。距離dが閾値より小さく(S35:YES)、基準点P1と基準点P2との間には、黒色画素のみがある(S36:YES)。よって、CPU1は、注目基準点PTについてのリストに空きがあるかを判断する(S37)。本例では、1つの注目基準点PTにつき所定個の結合基準点PBを設定可能とし、リストに登録可能な結合基準点PBの数に上限を設けている。所定個は、例えば、隆線の分岐の数を考慮した4である。
リストに空きがない場合(S37:NO)、CPU1は、S34で算出された距離dが、dmaxよりも小さいかを判断する(S38)。dmaxはリストに記憶されている距離dの最大値である。距離dがdmaxよりも小さくはない場合(S38:NO)、CPU1はS40の処理を実行する。距離dがdmaxよりも小さい場合(S38:YES)、CPU1は、注目基準点PTについてのリストの内、dmaxとなる候補基準点PKを削除し、代わりにS33で選択された候補基準点PKをリストに追加して、リストを更新する(S39)。S37の処理で、注目基準点PTについてのリストに空きがある場合(S37:YES)、CPU1は、S33で選択された候補基準点PKを、注目基準点PTについてのリストに追加する(S39)。CPU1は、S23の処理で決定された複数の基準点の内の注目基準点PT以外の基準点をS33の処理で、候補基準点PKとして選択されていない基準点があれば(S40:NO)、処理をS33に戻す。繰り返し実行されるS39において、図11のリスト81に示すように、基準点P1について、基準点P2、P3がリストに記憶される。注目基準点PT以外の全ての基準点を候補基準点PKとして選択した場合(S40:YES)、CPU1は、全ての基準点をS32の処理で注目基準点PTとして選択したかを判断する(S41)。注目基準点PTとして選択されていない基準点がある場合(S41:NO)、CPU1は処理をS32に戻す。全ての基準点が注目基準点PTとして選択された場合(S41:YES)、CPU1は、削除処理を実行する(S49)。削除処理では、隆線上の並び順が、注目基準点PTと前後ではない基準点をリストから削除する処理が実行される。
図12に示すように、削除処理では、CPU1は、複数の基準点の中から候補基準点PKが2以上記憶されている基準点を注目基準点PTとして選択する(S42)。CPU1は、例えば、基準点P1を注目基準点PTとして選択する。CPU1は、S42で選択された注目基準点PTについての2以上の候補基準点PK中から、2つの基準点を選択する(S43)。CPU1は、例えば、基準点P2、P3を2つの基準点として選択する。CPU1は、S43で選択された2つの基準点の各々と、注目基準点PTとを結んだ2つ線分がなす角の角度ALを算出する(S44)。CPU1は、例えば、基準点P1と、基準点P2とを結んだ第一線分と、基準点P1と、基準点P3とを結んだ第二線分とがなす角の角度ALを算出する。CPU1は、S44で算出された角度ALが閾値よりも小さいかを判断する(S45)。S45の閾値は、隆線の屈曲範囲及び汗孔の間隔を考慮して設定される。
具体例では、第一線分と第二線分とがなす角の角度ALが閾値よりも小さいと判断され(S45:YES)、S43で選択された2つの基準点P2、P3の内、S42で選択された基準点P1との距離が遠い方の基準点P3がリストから削除される(S46)。角度ALが閾値よりも小さくはない場合(S45:NO)、又はS46の次に、CPU1は、注目基準点P1について記憶されている2以上の候補基準点PKの全ての組合せをS43で選択したかを判断する(S47)。S43で選択されていない組合せがある場合(S47:NO)、CPU1は処理をS43に戻す。基準点P1について、S43の処理で選択されていない組合せはない(S47:YES)。この場合CPU1は、候補基準点PKが2以上記憶されている全ての基準点が注目基準点PTとしてS42の処理で選択されたかを判断する(S48)。候補基準点PKが2以上記憶されている基準点の内、注目基準点PTとしてS42の処理で選択されていない基準点がある場合(S48:NO)、CPU1は処理をS42の処理に戻す。候補基準点PKが2以上記憶されている全ての基準点が注目基準点PTとしてS42の処理で選択された場合(S48:YES)、CPU1は、以上で削除処理を終了し、処理を図10の結合情報生成処理に戻す。削除処理によって、図11のリスト81に記憶された候補基準点PKの一部は削除され、リスト84に更新される。
図10に示すように、CPU1は、S49の処理の次にリスト修正処理を実行する(S50)。リスト修正処理は、注目基準点PTが、注目基準点PTについて記憶された候補基準点PKを注目基準点PTとした場合の、候補基準点PKとして記憶されるように、リストを修正する処理である。図13に示すように、リスト修正処理では、CPU1は、複数の基準点の中から1つの基準点を注目基準点PTとして選択する(S51)。CPU1は、例えば、基準点P1を注目基準点PTとして選択する。CPU1は、S51で選択された注目基準点PTについて記憶された候補基準点PKの数が0よりも大きいかを判断する(S52)。候補基準点PKの数が0よりも大きくはない場合(S52:NO)、CPU1は、後述のS58の処理を行う。基準点P1には、候補基準点PKが1つ記憶されているので(S52:YES)、CPU1は、リスト84の中からS51で選択された注目基準点PTについての候補基準点PKを1つ選択する(S53)。CPU1は、基準点P1の候補基準点PKとして基準点P2を選択する。CPU1は、S51で選択された基準点P1が、S53で選択された基準点P2の候補基準点PKとしてリストに記憶されているかを判断する(S54)。S51で選択された基準点が、S53で選択された基準点の候補基準点PKとしてリストに記憶されていない場合(S54:NO)、CPU1はS53で選択された基準点のリストに空きがあれば(S55:YES)、S51で選択された基準点をS53で選択された基準点の候補基準点PKとしてリストに記憶する(S56)。S53で選択された基準点のリストに空きがない場合(S55:NO)、又はS56の処理の次に、CPU1は、S57の処理を行う。
基準点P2の候補基準点PKとして、基準点P1はリスト84に記憶されている(S54:YES)。この場合CPU1は、S51で選択された注目基準点PTについての全ての候補基準点PKがS53の処理で選択されたかを判断する(S57)。注目基準点PTについての候補基準点PKの内、S53の処理で選択されていない基準点がある場合(S57:NO)、CPU1は、処理をS53に戻す。注目基準点PTについての全ての候補基準点PKがS53の処理で選択された場合(S57:YES)、CPU1は複数の基準点の全てがS51の処理で注目基準点PTとして選択されたかを判断する(S58)。注目基準点PTとして選択されていない基準点がある場合(S58:NO)、CPU1は、処理をS51に戻す。全ての基準点が注目基準点PTとして選択された場合(S58:YES)、CPU1は、リスト修正処理を終了し、処理を図10の結合情報生成処理に戻す。CPU1は、S50のリスト修正処理を終了後、結合情報生成処理を終了し、処理を図9の画像解析処理に戻す。結合情報生成処理により候補基準点PKは、注目基準点PTについての結合基準点PBとされ、注目基準点PTの位置情報と、結合基準点PBの位置情報とを対応付けた結合情報85として記憶される。図11に示すように、結合情報85では、例えば、基準点P1についての結合情報B1として、基準点P1の位置情報と、基準点P2の位置情報とが対応付けられている。基準点P2についての結合情報B2として、基準点P2の位置情報と、基準点P1、P3の位置情報とが対応付けられている。
図9に示すように、CPU1は、S25の処理の次に、隆線情報生成処理を実行する(S26)。図14に示すように、隆線情報生成処理では、CPU1は、複数の基準点の中から1つの基準点を注目基準点PTとして選択する(S61)。CPU1は例えば、図15の基準点P1を注目基準点PTとして選択する。CPU1は、S25の処理で生成した結合情報85を参照し、S61の処理で選択された注目基準点PTについて記憶されている結合基準点PBの数が1であるかを判断する(S62)。CPU1は、S62の処理によって、結合情報に基づき、複数の基準点の内、並び順が前後する基準点の数が1つである基準点を並び順が最初の基準点である始点又は並び順が最後の基準点である終点として特定する。結合基準点PBの数が1ではない場合(S62:NO)、CPU1は後述のS75の処理を実行する。基準点P1は、結合基準点PBの数が1である(S62:YES)。この場合CPU1は、既に記憶された隆線情報を参照し、S61の処理で選択された注目基準点PTが、他の隆線情報の基準点として記憶されているかを判断する(S63)。S61の処理で選択された注目基準点PTが他の隆線情報の基準点として記憶されている場合、例えば、並び順が前後する基準点の数が1つである基準点が、注目基準点PTは他の隆線情報において並び順が最後の基準点として特定されている。注目基準点PTが、他の隆線情報の基準点として記憶されている場合(S63:NO)、CPU1は後述のS75の処理を実行する。基準点P1は、他の隆線情報の基準点として記憶されていない(S63:YES)。この場合CPU1は、隆線情報Riに関する初期化処理を行う(S64)。隆線情報Riに関する初期化処理では、CPU1は、i番目の隆線情報Ri、分岐点リスト、及び選択済みリストを初期化し、NULL値にする。iは、隆線情報の登録順序を示す自然数である。iの初期値は1であり、既に登録された隆線情報の数に応じてインクリメントされる。CPU1は、隆線情報Riに注目基準点PTを追加する(S65)。CPU1は、例えば、図16のリスト86のように、基準点P1の基準点IDと、位置情報(X1,Y1)とを、隆線情報R1に追加する。S65の処理が繰り返し実行されることにより、S25の処理生成された結合情報に基づき、同一の連続する隆線上に配置されている複数の基準点が順に抽出される。CPU1は、選択済みリストに基準点P1を追加して、選択済みリストを更新する(S66)。CPU1は、隆線情報Riに含まれる基準点の数を示す変数Nに1を設定する(S67)。
CPU1は、S25の処理で生成した結合情報85を参照し、S61の処理で選択された注目基準点PTについて記憶されている結合基準点PBを選択基準点として選択する(S68)。CPU1は、例えば、基準点P2を選択基準点として選択する。CPU1は、角度計算処理を実行する(S69)。図17に示すように、角度計算処理では、CPU1は、選択基準点が他の隆線情報の基準点として記憶されているかを判断する(S81)。選択基準点が他の隆線情報の基準点として記憶されている場合(S81:NO)、CPU1は以上で角度計算処理を終了し、処理を図14の隆線情報生成処理に戻す。図16のリスト86に示すように、基準点P2は、他の隆線情報の基準点として記憶されていない(S81:YES)。この場合CPU1は、選択基準点についての相対角度を算出する(S82)。相対角度は、並び順が(N−1)番目の基準点と、並び順がN番目の基準点とを結ぶ第一線分に対する、N番目の基準点と並び順が(N+1)番目の選択基準点とを結ぶ第二線分の角度である。つまり相対角度は、N番目の基準点の並び順が前の基準点との線分に対する並び順が次の基準点との線分の角度である。CPU1は、Nが1である場合、相対角度を0とする。CPU1は、Nが2以上である場合、第一線分と第二線分とを定義し、相対角度を算出する。本例では、第一線分から時計回りの角度をプラスの角度とし、第一線分から反時計回りの角度をマイナスの角度とし、相対角度を−180度から180度の角度で表す。具体例では、CPU1は、Nが1であるので、基準点P1についての相対角度を0とする。
CPU1は、S82で算出された相対角度が、閾値よりも小さいかを判断する(S83)。相対角度が閾値よりも小さくはない場合(S83:NO)、CPU1は、以上で角度計算処理を終了し、処理を図14の隆線情報生成処理に戻す。相対角度が閾値よりも小さい場合(S83:YES)、CPU1は、隆線情報Riに、選択基準点を追加する(S84)。CPU1は、選択基準点の基準点ID、位置情報、S82で算出した相対角度AN、及び結合情報に含まれる注目基準点PTと選択基準点との距離dを、隆線情報Riに追加する。CPU1は、図16のリスト87に示すように、基準点P2を隆線情報R1に追加する。CPU1は、選択済みリストに、選択基準点を追加して選択済みリストを更新する。CPU1は、Nを1だけインクリメントする(S85)。
CPU1は、S25の処理で生成した結合情報85を参照し、選択基準点について記憶されている結合基準点PBの数が1より大きいかを判断する(S86)。結合基準点PBの数が1である選択基準点は隆線の他端である。結合基準点PBの数が1よりも大きくはない場合(S86:NO)、CPU1は以上で角度計算処理を終了し、処理を図14の隆線情報生成処理に戻す。結合基準点PBの数が1よりも大きい場合(S86:YES)、CPU1は、結合基準点PBの数が2よりも大きいかを判断する(S87)。S87の処理は、結合情報に基づき、複数の基準点の内、並び順が前後する基準点の数が3つ以上である基準点を隆線の分岐点として特定するための処理である。結合基準点PBの数が2よりも大きい場合(S87:YES)の処理は後述する。基準点P2は結合基準点PBの数が2である(S87:NO)。この場合、CPU1は、選択基準点を注目基準点PTとして、処理を図14のS68に戻す。繰り返し実行されるS68において、CPU1は、注目基準点PTが基準点P2である場合に、結合基準点として基準点P3選択する(S68)。図17の角度計算処理において、基準点P3は未選択であると判断され(S81:YES)、相対角度AN2が算出される(S82)。相対角度AN2は閾値よりも小さいと判断され(S83:YES)、CPU1は、図16のリスト88に示すように、基準点P3を隆線情報R1に追加する(S84)。CPU1は、選択済みリストに、基準点P3を追加して選択済みリストを更新する。CPU1は、Nを1だけインクリメントする(S85)。基準点P3について記憶されている結合基準点PBの数が1であるので(S86:NO)、CPU1は以上で角度計算処理を終了し、処理を図14の隆線情報生成処理に戻す。このようにCPU1は、連続する隆線に分岐点が含まれない場合に、始点から終点までの分岐のない隆線を定義し、定義された隆線上に配置されている複数の基準点を抽出して隆線情報を生成する。
図14の隆線情報生成処理において、CPU1は、変数Nが閾値よりも大きいか否かを判断する(S70)。S70の処理は、閾値よりも大きい数の基準点を含む隆線情報のみを生成するための処理である。閾値は、例えば、2である。変数Nが閾値よりも大きくはなければ(S70:NO)、CPU1は、隆線情報Riを登録せずに削除する(S71)。隆線情報R1について、変数Nは3であり閾値よりも大きい場合(S70:YES)。この場合CPU1は、隆線情報R1を生成する(S72)。S72又はS71の次に、CPU1は分岐点リストに基準点が含まれているかを判断する(S73)。分岐点リストに基準点が含まれる場合(S73:YES)、CPU1は分岐点処理を実行する(S74)。分岐点リストに基準点が含まれない場合(S73:NO)、CPU1は、後述のS75の処理を行う。
S87において、隆線情報R3の選択基準点として図15の基準点P13が選択されている場合、図11の結合情報B13に示すように、基準点P13の結合基準点PBの数は3であり、2よりも大きい(S87:YES)。この場合、CPU1は、選択基準点と、隆線情報Riを分岐点リストに追加する(S88)。図18に示すように、CPU1は基準点P13と、隆線情報R3の隆線IDであるL3とを分岐点リスト91に記憶する。CPU1は、選択基準点を注目基準点PTとし、注目基準点PTについての結合基準点PBの中で、選択済みリストにない基準点を選択基準点として選択する(S89)。図18に示すように、CPU1は、注目基準点PTについての結合基準点PBの中で、選択基準点として選択されていない基準点を分岐点リストの隆線情報Riに対応付けて記憶する(S90)。CPU1は、図11の結合情報85を参照し、基準点P13についての結合基準点PBの中で選択済みリストに記憶されていない、基準点P17を基準点P13と関連付けて分岐点リスト91に追加する。CPU1は処理をS81に戻す。S81では、CPU1は、S89で選択された選択基準点が他の隆線情報の基準点として記憶されているかを判断する(S81)。
隆線情報R3に関するS73において、図18の分岐点リスト91に基準点P13が記憶されていると判断される(S73:YES)。この場合CPU1は、分岐点処理を実行する(S74)。図19に示すように、分岐点処理では、CPU1は、分岐点リストに記憶された分岐基準点を注目基準点PTとして選択し、分岐基準点に紐付けて記憶された結合基準点を選択基準点として選択する(S101)。CPU1は、分岐点リスト91に記憶された基準点P13を注目基準点PTとして選択し、基準点P17を選択基準点として選択する。CPU1は、iを1だけインクリメントし、新たな隆線情報Riを設定する(S102)。CPU1は、新たな隆線情報R4を生成する。具体的には、CPU1は、隆線情報R(i−1)の始点から注目基準点PTまでの隆線情報を隆線情報Riにコピーする(S102)。CPU1は、隆線情報R3の基準点P11からP13までを、隆線情報R4にコピーする。CPU1は、変数Nに、隆線情報Riに含まれる基準点の数を設定する(S103)。CPU1は、隆線情報R4についての変数Nに3を設定する。CPU1は、分岐点リストから、注目基準点PTである基準点P13を削除する(S104)。CPU1は以上で分岐点処理を終了し、処理を図14の隆線情報生成処理に戻す。S74の処理の後、CPU1は処理をS69に戻す。以上のようにCPU1は、連続する隆線に分岐点が含まれる場合に、分岐点における分岐の数に応じた数の、当該分岐点を含む始点から終点までの分岐のない複数の隆線を定義し、当該定義された複数の隆線毎に、同じ隆線上に配置されている複数の基準点を抽出して隆線情報を生成する。
図14のS75ではCPU1は、全ての基準点がS61の処理で注目基準点PTとして選択されたかを判断する(S75)。何れかの基準点が、注目基準点PTとして選択されていない場合(S75:NO)、CPU1は、処理をS61に戻す。全ての基準点が注目基準点PTとして選択された場合(S75:YES)、CPU1は以上で隆線情報生成処理を終了し、処理を図9の画像解析処理に戻す。図14の隆線情報生成処理によって、図16のリスト89に示すように、隆線L1からL6の各々に対応する隆線情報R1からR6が生成される。
CPU1はS26に処理で生成した隆線情報を、皮膚認証に用いられる照合情報としてRAM3に記憶する(S28)。CPU1は以上で画像解析処理を終了し、処理を図8の皮膚情報処理に戻す。S11の処理の次に、CPU1は、S11で隆線情報を含む照合情報が取得されたかを判断する(S12)。照合情報が取得されていない場合(S12:NO)、CPU1はエラー通知を行う(S16)。CPU1は、例えば、表示部6にエラーメッセージを表示する。照合情報が取得された場合(S12:YES)、CPU1は、S11で取得された照合情報を登録用の照合情報としてDB28(図2参照)に登録するかを判断する(S13)。登録するかを示す情報は、例えば、開始指示に含まれる。具体例では登録すると判断され(S13:YES)、CPU1は、S11で取得された照合情報をフラッシュメモリ4のDB28に記憶する(S14)。DB28に登録しない場合(S13:NO)、CPU1は、S11で取得された照合情報を照合の対象となる照合用の照合情報とする照合処理を実行する(S15)。S14、S15、及びS16のいずれかの次に、CPU1は皮膚情報処理を終了する。
2.照合時の処理
登録用の照合情報として図15の画像41から抽出された隆線情報R1からR6が用いられ、照合対象となる照合用の画像として図20の画像61が取得される場合を例に、照合時の皮膚情報処理について説明する。照合時の皮膚情報処理では、登録時の皮膚情報処理と同様に、S11が実行される。例えば、図9のS23において基準点として図20の基準点Q1からQ27が決定される。図20の基準点Q1からQ27に基づき、隆線Z1からZ5について、図21のリスト92に示す隆線情報V1からV5が生成される。以下の説明では、照合用の隆線情報を、隆線情報Vn(nは整数)と表記し、登録用の隆線情報を、隆線情報Rm(mは整数)と表記して両者を区別する。照合用の基準点を、基準点Qj(jは整数)と表記し、登録用の基準点を、基準点Pk(kは整数)と表記して両者を区別する。
図8のS12では、照合情報が取得されたと判断され(S12:YES)、開始指示に基づき登録しないと判断される(S13:NO)。CPU1は照合処理を実行する(S15)。照合処理では、CPU1は、隆線情報Rm及び隆線情報Vnの対応を決定する。CPU1は、決定された対応について類似度Wを算出し、皮膚認証を行う。
図22に示すように照合処理では、CPU1は、ペア範囲候補選定処理を実行する(S201)。ペア範囲候補選定処理は、ペア範囲の候補を選定する処理である。ペア範囲は、照合用の隆線情報Vnと、登録用の隆線情報Rmとの複数の組合せの中から、選択された照合用の隆線情報と、選択された登録用の隆線情報との差が、連続する所定個以上の基準点について閾値以下となる範囲である。ペア範囲候補選定処理では、CPU1は、皮膚認証に用いる照合用の隆線情報の基準点と、記憶機器に記憶された登録用の隆線情報の基準点との対応である位置対応の候補を選定する。ペア範囲候補選定処理では、図23に示すようにCPU1は、照合用の画像61に基づき生成された全ての隆線情報V1からV5について、始点終点を逆転させた隆線情報v1からv5を生成する(S211)。CPU1は、図21のリスト92に示す照合用の画像61に基づき生成された全ての隆線情報V1からV5の各々について、基準点の並び順を逆にして、隆線情報v1からv5を生成する。隆線情報v1からv5では、位置情報と、距離とは、基準点に対応する値がそのまま用いられる。相対角度は相対角度Anに−1を乗じた値とする。
CPU1は、照合用の画像61に基づき生成された隆線情報V1からV5及びS211で生成された隆線情報v1からv5を含む複数の隆線情報の中から隆線情報を1つ選択する(S212)。CPU1は例えば、隆線Z1についての隆線情報V1を選択する。CPU1は、登録用の画像41に基づき生成された隆線情報R1からR6の中から1つの隆線情報を選択する(S213)。CPU1は、隆線L1についての隆線情報R1を選択する。
CPU1は変数Nに1を設定し、類似度Wに0を設定する(S214)。変数Nはペア範囲候補に含まれる基準点のペア数を示す。ペアは、隆線情報Rmに含まれる基準点Pkと、隆線情報Vnに含まれる基準点Qjとの組合せの内、後述のS217で算出される類似度wが閾値以下となるものである。CPU1は、隆線情報Vnに含まれる基準点Qjの中から、並び順が次の基準点を1つ選択する(S215)。CPU1は、例えば、図21に示す隆線情報V1の並び順が一番目の基準点Q1を選択する。CPU1は、隆線情報Rmに含まれる基準点Pkの中から、並び順が次の基準点を1つ選択する(S216)。CPU1は、例えば、図16に示す隆線情報R1の並び順が一番目の基準点P1を選択する。
CPU1は、S215で選択された基準点Qjと、S216で選択された基準点Pkとを比較して類似度wを算出する(S217)。CPU1は、基準点Qjと、基準点Pkとで、相対角度及び距離を比較し、比較結果を所定の配列に供して、類似度wを算出する。類似度wは大きいほど、類似度wが小さい場合に比べ、基準点Qjと、基準点Pkとが類似した点であると推定される。S215で選択された基準点Qjと、S216で選択された基準点Pkとの何れかが、対応する隆線情報で表される線分群の始点(並び順が最初の点)又は終点(並び順が最後の点)である場合には、CPU1は類似度wに定数を設定する。定数は、後述のS218の閾値よりも大きい。基準点Q1と、基準点P1とは、何れも隆線情報で表される線分群の始点であるので、類似度wに定数を設定する。
CPU1は、S217で算出された類似度wが閾値よりも大きいかを判断する(S218)。具体例では類似度wは閾値よりも大きい(S218:YES)。この場合CPU1は、変数Nを1だけインクリメントし、類似度WにS217の処理で算出された類似度wを加えて類似度Wを更新する(S221)。CPU1は、図25のリスト71に示すように、S215で選択された基準点Q1と、S216で選択された基準点P1とを、S212で選択された隆線情報V1と、S213で選択された隆線情報R1とに関する、ペア範囲候補に追加する(S222)。CPU1は、S215で選択された基準点Q1がS212で選択された隆線情報V1の終点であるかを判断する(S223)。S215で選択された基準点QjがS212で選択された隆線情報Vnの終点である場合(S223:YES)、CPU1は後述のS231の処理を実行する。基準点Q1は隆線情報V1の終点ではない(S223:NO)。この場合CPU1は、S216で選択された基準点P1がS213で選択された隆線情報R1の終点であるかを判断する(S224)。S216で選択された基準点PkがS213で選択された隆線情報Rmの終点である場合(S224:YES)、CPU1は後述のS231の処理を実行する。基準点P1は隆線情報R1の終点ではない(S224:NO)。この場合、CPU1はS212で選択された隆線情報V1と、S213で選択された隆線情報R1の各々について、並び順が次の基準点を1つ選択する(S225)。CPU1は、隆線情報V1の並び順が基準点Q1の次の基準点として、基準点Q2を選択する。CPU1は、隆線情報R1の並び順が基準点P1の次の基準点として、基準点P2を選択する。
CPU1は、処理をS217に戻し、基準点Q2と、基準点P2との類似度wを算出する(S217)。基準点Q2と、基準点P2との類似度wは、閾値よりも大きくはないと判断され(S218:NO)、CPU1は、Nが閾値よりも大きいか否かを判断する(S231)。S231の処理は、ペア数が閾値よりも大きい線分群のペアを、ペア範囲候補として抽出するための処理である。閾値は、例えば3である。具体例ではNが2であるので(S231:NO)、CPU1はS222で記憶された、S212で選択された隆線情報V1と、S213で選択された隆線情報R1とに関する、ペアの内、S215で選択された基準点Q1と、S216で選択された基準点P1とを始点とするペアをペア範囲候補から削除する(S232)。
変数Nが閾値よりも大きい場合(S231:YES)又はS232の次に、CPU1は、S213で選択された隆線情報R1のうちの全ての基準点が、S216の処理で選択されたかを判断する(S233)。S216で選択された基準点Pkが、S213で選択された隆線情報R1が含む複数の基準点の内の、並び順が最後の基準点である場合に、CPU1は、S213で選択された隆線情報R1のうちの全ての基準点が、S216の処理で選択されたと判断する(S233:YES)。S216の処理で選択された基準点P1は隆線情報R1の最後の基準点ではない(S233:NO)。この場合CPU1は、S213の処理で選択された隆線情報R1の内の、並び順が基準点P1の次の基準点P2を選択する。S213で選択された隆線情報R1のうちの全ての基準点が、S216の処理で選択された場合(S233:YES)、CPU1は、S212選択された隆線情報V1のうちの全ての基準点が、S215の処理で選択されたかを判断する(S234)。S215で選択された基準点Qjが、S212で選択された隆線情報V1が含む複数の基準点の内の、並び順が最後の基準点である場合に、CPU1は、S212で選択された隆線情報V1のうちの全ての基準点が、S215の処理で選択されたと判断する(S234:YES)。S215の処理で選択された基準点Qが基準点Q1である場合、S212で選択された照合用隆線情報の最後の基準点ではない(S234:NO)。
この場合CPU1は、処理をS215に戻し、S212で選択された隆線情報Vnの内、前回のS215の処理で選択された基準点Qjの並び順が次の基準点を選択する(S215)。S215の処理の次のS216では、S213で選択された登録用の隆線情報の内の、並び順が最初の基準点が選択される。S212で選択された隆線情報V1のうちの全ての基準点が、S215の処理で選択された場合(S234:YES)、CPU1は、S212で選択された隆線情報Vnと、S213で選択された隆線情報Rmとに関するペア範囲候補のうち、S221で積算される類似度Wが最も大きいペア範囲候補のみを残し、その他のペア範囲候補を削除する(S235)。CPU1は、S212で選択された隆線情報Vnに関して、全ての隆線情報RmがS213の処理で選択されたか否かを判断する(S236)。S212で選択された隆線情報Vnに関して、S213で選択されていない隆線情報Rmがある場合(S236:NO)、CPU1は処理をS213に戻し、まだ選択されていない隆線情報Rmを選択する(S213)。S212で隆線情報V1が選択され、S213で隆線情報R2が選択され、S215で基準点Q1が選択され、S216で基準点P4が選択される場合、繰り返し実行されるS222の処理によって、ペア範囲候補として図25のリスト72に示すペア数6の基準点が記憶される。S223では、基準点Q6が終点であると判断され(S223:YES)、変数Nは7であり閾値よりも大きいと判断される(S231:YES)。同様の処理で、S212で隆線情報V1が選択され、S213で隆線情報R2が選択され、S215で基準点Q2が選択され、S215で基準点P5が選択される場合、繰り返し実行されるS222の処理によって、ペア範囲候補として図25のリスト73に示すペア数5の基準点が記憶される。S212で隆線情報V1が選択され、S213で隆線情報R2が選択された場合のS235では、隆線情報V1と、隆線情報R2とに関するペア範囲候補として、類似度Wが最も大きいリスト72に示すペア数6の基準点のみが残され、他のペア範囲候補は削除される。
S212で選択された隆線情報Vnに関して、S213で全ての隆線情報Rmが選択された場合(S236:YES)、CPU1は、全ての隆線情報VnがS212の処理で選択されたか否かを判断する(S238)。S212で選択されていない隆線情報Vnがある場合(S238:NO)、CPU1は処理をS212に戻し、まだ選択されていない隆線情報Vnを選択する(S212)。S212で全ての隆線情報Vnが選択された場合(S238:YES)、CPU1は、以上でペア範囲候補選定処理を終了し、処理を図22の照合処理に戻す。図23に示すペア範囲候補選定処理によって、図26に示すペア範囲の候補が選定される。図26に示すように、隆線Z1についての隆線情報V1と、隆線L2についての隆線情報R2とにおいて、ペア数6の基準点がペア範囲候補として記憶される。隆線Z2についての隆線情報V2と、隆線L3についての隆線情報R3とにおいて、ペア数6の基準点がペア範囲候補として記憶される。隆線Z3についての隆線情報V3と、隆線L4についての隆線情報R4とにおいて、ペア数6の基準点がペア範囲候補として記憶される。隆線Z4についての隆線情報V4と、隆線L5についての隆線情報R5とにおいて、ペア数5の基準点がペア範囲候補として記憶される。隆線Z5についての隆線情報V5と、隆線L6についての隆線情報R6とにおいて、ペア数4の基準点がペア範囲候補として記憶される。隆線情報V5と、隆線L5についての隆線情報R5とにおいて、ペア数4の基準点がペア範囲候補として記憶される。隆線情報V5のように、1つの隆線情報Vnの特定の範囲に、複数の隆線情報Rmの特定の範囲が、ペア範囲の候補とされることがある。S201の処理によって、類似度の計算に用いる組合せとして決定された複数組の登録用の線分情報と、照合用の線分情報とが取得される。
図22のS201の処理の次に、CPU1は、ペア範囲決定処理を行う(S202)。ペア範囲決定処理では、CPU1は、S201で選定されたペア範囲の候補に基づきペア範囲を決定し、決定された位置対応に基づき、照合用の隆線情報と、登録用の隆線情報との類似度WRを計算する。図27に示すように、ペア範囲決定処理では、CPU1は、S201の処理で作成されたペア範囲候補の数が2より大きいかを判断する(S241)。ペア範囲候補の数が2よりも大きくはない場合(S241:NO)、CPU1は、全ペア範囲候補を削除して(S248)、以上でペア範囲決定処理を終了し、処理を図22の照合処理に戻す。図26のリスト74に示すように、具体例では、6組のペア範囲候補が作成されている(S241:YES)。この場合CPU1は、画像の回転角度の配列を初期化する(S242)。CPU1は、類似度の配列を初期化する(S243)。CPU1は、算出処理を実行する(S244)。算出処理では、CPU1は、ペア範囲候補が特定された2組の照合用の隆線情報Vnと登録用の隆線情報Rmとを選択して、選択された2組の照合用の隆線情報と登録用の隆線情報との各々について、ペア範囲候補内の複数個の基準点を、並び順に従って線分で結んだ場合の両端を特定する。CPU1は、2つの照合用の隆線情報の各々に対応する両端と、2つの登録用の隆線情報の各々に対応する両端との相対位置を比較して、類似度WRを算出する。
図28に示すように、算出処理ではCPU1は、S201のペア範囲候補選定処理で図26のリスト74に記憶されたペア範囲候補の中から、照合用のペア範囲候補を2組選択する(S251)。CPU1は、例えば、隆線情報V1(隆線Z1)における、ペア数6の基準点Q1からQ6が含まれるペア範囲候補と、隆線情報V4(隆線Z4)における、ペア数5の基準点が含まれるペア範囲候補とを選択する。CPU1は、S251の処理で選択された2組の照合用の隆線情報Vnについて、ペア範囲候補内の複数個の基準点を、並び順に従って線分で結んだ場合の両端を特定し、一方を始点、他方を終点とした場合の始点線分と、終点線分との長さと角度とを算出する(S252)。より具体的にはCPU1は、図24の画像67及び図26のリスト74に示す、隆線Z1についての隆線情報V1のペア範囲候補に含まれる基準点Q1からQ6の内、基準点Q1を始点とし、基準点Q6を終点とする。CPU1は、隆線Z4についての隆線情報V4のペア範囲候補に含まれる基準点Q19からQ23の内、基準点Q19を始点とし、基準点Q23を終点とする。CPU1は、基準点Q1と、基準点Q19とを結んだ始点線分LS1について、長さと、X軸と平行な線分に対する始点線分LS1の角度AS1とを算出する。CPU1は、基準点Q6と、基準点Q23とを結んだ終点線分LS2について、長さと、X軸と平行な線分に対する終点線分LS2の角度AS2とを算出する。
CPU1は、S251で選択された2組の照合用の隆線情報Vnについて、ペア範囲候補内の複数個の基準点を、並び順に従って結んだ場合の線分の長さを算出する(S253)。基準点Q1からQ6を順に結んだ線分の長さは、距離d1からd5の和である。基準点Q19からQ23を順に結んだ線分の長さは、距離d19からd22の和である。CPU1は、S252で計算された始点線分LS1の長さ、終点線分LS2の長さ、及びS253で計算されたペア範囲候補内線分の長さに基づき、重みを算出する(S254)。CPU1は、例えば、S253で算出された長さを、S252の処理で算出された始点線分LS1の長さと終点線分LS2との和で除した値を重みとして算出する。CPU1は、算出された重みが所定の値以上となるとき、重みに所定の値を代入してもよい。
CPU1は、図26のリスト74を参照し、S251で選択された2組の照合用のペア範囲候補に対応する2組の登録用のペア範囲候補を選択する(S255)。CPU1はS251の処理と、S255の処理とにより2組の登録用の隆線情報と、照合用の隆線情報とを選択する。CPU1は、隆線情報V1(隆線Z1)における、ペア数6の基準点Q1からQ6が含まれるペア範囲候補に対して、隆線情報R2(隆線L2)における、ペア数6の基準点P4からP9が含まれるペア範囲候補を選択する。CPU1は、隆線情報V4(隆線Z4)における、ペア数5の基準点が含まれるペア範囲候補に対して、隆線情報R5(隆線L5)における、ペア数5の基準点P21からP25が含まれるペア範囲候補を選択する。CPU1はS252と同様に、S256の処理で選択された2組の登録用の隆線情報Rmについて、ペア範囲候補内の複数個の基準点を、並び順に従って線分で結んだ場合の両端を特定し、一方を始点、他方を終点とした場合の始点線分と、終点線分との長さと角度とを算出する(S256)。CPU1は、隆線L2についての隆線情報R2のペア範囲候補に含まれる基準点P4からP9の内の、基準点P4を始点とし、基準点P9を終点とする。CPU1は、隆線L5についての隆線情報R5のペア範囲候補に含まれる基準点P21からP25の内の、基準点P21を始点とし、基準点P25を終点とする。CPU1は、基準点P4と、基準点P21とを結んだ始点線分LT1について、長さと、X軸と平行な線分に対する始点線分LT1の角度AT1とを算出する。CPU1は、基準点P9と、基準点P25とを結んだ終点線分LT2について、長さと、X軸と平行な線分に対する終点線分LT2の角度AT2とを算出する。CPU1は、S253と同様に、S255で選択された2組の登録用の隆線情報Rmについて、ペア範囲候補内の複数個の基準点を、並び順に従って結んだ場合の線分の長さを算出する(S257)。基準点P4からP9を順に結んだ線分の長さは、距離D4からD8の和である。基準点P21からP25を順に結んだ線分の長さは、距離D21からD24の和である。CPU1は、S256で計算された始点線分LT1の長さ、終点線分LT2の長さ、及びS257で計算されたペア範囲候補内線分の長さに基づき、重みを算出する(S258)。CPU1は、例えば、S257で算出された長さを、S256の処理で始点線分LT1の長さと終点線分LT2との和で除した値を重みとして算出する。CPU1は、算出された重みが所定の値以上となるとき、重みに所定の値を代入してもよい。
CPU1は、S254の処理で算出された重みと、S258で算出された重みとから、信頼度を算出する(S259)。CPU1は、選択された2組の照合用の隆線情報Vnと登録用の隆線情報Rmとの内の、2つの照合用の隆線情報及び2つの登録用の隆線情報の少なくとも一方について、2つの隆線情報の内の一方を第一隆線情報、他方を第二隆線情報とした場合に、第一隆線情報の両端の内の少なくとも何れかの端部と、第二隆線情報の両端の少なくとも何れかの端部とを結んだ1以上の比較線分の長さを用いて信頼度を算出する。本例のCPU1は、S254の処理で算出された重みと、S258で算出された重みとの積を信頼度として算出する。CPU1は、距離の差、角度の差、及びS259で算出された信頼度を用いて類似度WRを算出する(S260)。距離の差は、S253で算出された照合用の始点線分と、S256で算出された登録用の始点線分との長さの差と、S253で算出された照合用の終点線分と、S256で算出された登録用の終点線分との長さの差とである。つまり、距離の差は、線分LS1の長さとLT1の長さとの差、及び線分LS2の長さと線分LT2の長さとの差である。角度の差は、角度F1と、角度F2との差である。角度F1は、照合用の第一線分と登録用の第一線分との角度の差である。角度F2は、照合用の第二線分と登録用の第二線分との角度の差である。図24では、S251で選択されたペア範囲候補の内の、一方の始点と終点とを結んだ線分LS3が照合用の第一線分であり、他方の始点と終点とを結んだ線分LS4が照合用の第二線分である。S255で選択されたペア範囲候補の内の、一方の始点と終点とを結んだ線分LT3が登録用の第一線分であり、他方の始点と終点とを結んだ線分LT4が登録用の第二線分である。CPU1は、例えば、距離の差、角度の差、及びS259で算出された信頼度を所定の式に代入して、隆線情報に基づいて算出される類似度WRを算出する。S258で算出された類似度WRは、値が大きいほど値が小さい場合に比べ、類似している度合いが大きいことを示す。
CPU1は、S260の処理で算出された類似度WRが閾値よりも大きいかを判断する(S261)。類似度WRが閾値よりも大きくはない場合(S261:NO)、CPU1は後述のS266の処理を実行する。類似度WRが閾値よりも大きい場合(S261:YES)、CPU1は、S251で選択された照合用の2つのペア範囲候補と、S255で選択された登録用の2つのペア範囲候補との各々を類似度算出ペアとして、類似度WRの配列に記憶する(S264)。CPU1は、図29のリスト75、76に示すように、隆線情報V1(隆線Z1)における、ペア数6の基準点Q1からQ6が含まれるペア範囲候補、隆線情報R2(隆線L2)における、ペア数6の基準点P4からP9が含まれるペア範囲候補は、隆線情報V4(隆線Z4)における、ペア数5の基準点が含まれるペア範囲候補、及び隆線情報R5(隆線L5)における、ペア数5の基準点P21からP25が含まれるペア範囲候補並びにそれらのペア範囲候補に基づき算出された類似度WRを、配列に追加する。CPU1は、画像の回転角度の配列に、S252で算出された照合用の始点線分及び終点線分と、S256で算出された登録用の始点線分及び終点線分とから算出された画像の回転角度の配列に記憶する(S265)。CPU1は、図29のリスト75、76に示すように、登録用の始点線分LT1と、照合用の始点線分LS1との差、及び登録用の終点線分LT2と、照合用の終点線分LS2との差の各々を、画像の回転角度の配列に追加する。
CPU1は、S251で選択された照合用の2つのペア範囲候補に対する、全ての登録用のペア範囲候補がS255で選択されたか否かを判断する(S266)。S266の処理は、図26のリスト74の隆線情報V5(隆線Z5)についてのペア範囲候補のように、1つのペア範囲候補に複数のペア範囲候補が対応付けられている場合を考慮した処理である。S251で選択された照合用の2つのペア範囲候補に対する、登録用のペア範囲候補の一部がS255で選択されていない場合(S266:NO)、CPU1は、処理をS255に戻す。S251で選択された照合用の2つのペア範囲候補に対する、登録用のペア範囲候補の全てがS255で選択された場合(S266:YES)、CPU1は、S201の処理で選択された照合用のペア範囲候補の全ての組合せがS251の処理で選択されたかを判断する(S267)。具体例では、図26のリスト74に基づき照合用の5つのペア範囲候補の10個の組合せの全てはS251の処理で選択されていない場合(S267:NO)、CPU1は処理をS251に戻す。照合用の5つのペア範囲候補の10個の組合せの全てがS251の処理で選択された場合(S267:YES)、CPU1は以上で算出処理を終了し、処理を図27のペア範囲決定処理に戻す。図28の算出処理によって、図29のリスト76のように複数の類似度算出ペアについて、類似度と角度とが記憶される。
図27のS244の次にCPU1は、図28のS264の処理で配列に追加された類似度WRの数(類似度算出ペアの数)が、閾値よりも大きいかを判断する(S245)。類似度WRの数が閾値よりも大きくはない場合(S245:NO)、CPU1は、ペア範囲決定処理を以上で終了し、処理を図22の照合処理に戻す。類似度WRの数が閾値よりも大きい場合(S245:YES)、CPU1はペア範囲削除処理を実行する(S246)。ペア範囲削除処理は、S201のペア範囲候補選定処理で選定され、S244の算出処理のS264で記憶された類似度算出ペアの内、所定条件を満たさない類似度算出ペアを削除することで、所定条件を満たす類似度算出ペアを類似度の算出に用いるペア範囲として決定する処理である。具体的には図30に示すように、ペア範囲削除処理では、CPU1は、図28のS265の処理で配列に追加された角度の平均値M及び標準偏差Hを算出する(S271)。CPU1は、S265で記憶された角度の内の1つを選択する(S272)。CPU1は、S272で選択された角度と、S271で算出された角度の平均値Mとの差の絶対値が、標準偏差Hよりも大きいかを判断する(S273)。S271で算出された角度の平均値Mとの差の絶対値が、標準偏差Hよりも大きい場合(S273:YES)、CPU1は、S272で選択された角度に対応するペア範囲候補、類似度WR及び角度を、配列から削除する(S274)。S271で算出された角度の平均値Mとの差の絶対値が、標準偏差Hよりも大きくはない場合(S273:NO)、又はS274の処理の次に、CPU1はS265で配列に追加された全ての角度がS272の処理で選択されたかを判断する(S275)。S272の処理で選択されていない角度がある場合(S275:NO)、CPU1は、処理をS272に戻す。S272の処理で全ての角度が選択された場合(S275:YES)、CPU1は、S264の処理で記憶された類似度算出ペアの内、2組の照合用のペア範囲候補又は2組の登録用のペア範囲候補の一方について、複数のペア範囲候補が記憶されている場合に、複数のペア範囲候補から2組のペア範囲候補を選択する(S276)。例えば、図29のリスト76に示すように、照合用の隆線情報V1(隆線Z1)に設定されたペア範囲候補については、照合用の隆線情報V2からV5の各々に設定されたペア範囲候補が類似度算出ペアとして、類似度WRが算出されている。CPU1は、例えば、照合用の隆線情報V2からV5の各々に設定されたペア範囲の中から、類似度算出ペア77の隆線情報V2に設定されたペア範囲候補と、類似度算出ペア78の隆線情報V3に設定されたペア範囲候補とを選択する。
CPU1は、S276の処理で選択された類似度算出ペアの内、複数の基準点を並び順に従って結んだ場合の線分の一部が重なっているかを判断する(S277)。隆線情報V2に設定されたペア範囲候補と、隆線情報V3に設定されたペア範囲候補とでは、基準点Q7からQ9の線分が重なっている(S277:YES)。この場合、CPU1は、類似度算出ペア77、78の内の、類似度が小さい方を削除する(S278)。S276で選択された類似度算出ペアは重なっていない場合(S277:NO)、又はS278の次に、CPU1は、全ての類似度算出ペアがS276の処理で選択されたかを判断する(S279)。何れかの組合せがS276の処理で選択されていない場合(S279:NO)、CPU1は、処理をS276に戻す。全ての類似度算出ペアの組合せがS276の処理で選択された場合(S279:YES)、CPU1は、以上でペア範囲削除処理を終了し、処理を図27のペア範囲決定処理に戻す。CPU1は、S246の処理の次に、ペア範囲決定処理を終了し、処理を図22の照合処理に戻す。
図22のS202の次にCPU1は、S260で算出され、図30のペア範囲削除処理で削除されなかった類似度WRの和を用いて、スコアSCを算出する(S203)。スコアSCは、照合用の隆線情報と、登録用の隆線情報との類似度を示す。CPU1は、例えば、所定の式に類似度WRの和を代入してスコアSCを算出する。本例のスコアSCは、値が大きいほど、値が小さい場合に比べ、照合用の隆線情報Vnと、登録用の隆線情報Rmとが類似していることを示す。CPU1は、S203で算出されたスコアSCが閾値よりも大きいか否かを判断する(S204)。スコアSCが閾値よりも大きい場合(S204:YES)、CPU1は、皮膚認証の認証結果に成功を設定する(S205)。スコアSCが閾値よりも大きくはない場合(S204:NO)、CPU1は、皮膚認証の認証結果に失敗を設定する(S206)。CPU1は、S205及びS206の処理では必要に応じて認証結果を表示部6に表示する等報知してもよい。CPU1は、照合処理を以上で終了し、処理を図8の皮膚認証処理に戻す。図8のS15の次に、CPU1は以上で皮膚認証処理を終了する。
図31から図39を参照して、第四実施形態の皮膚情報処理装置10で実行される皮膚情報処理について説明する。第四実施形態の皮膚情報処理は、汗孔を表す基準点の周囲の色の変化を表す周波数情報を、皮膚認証に用いる情報として記憶する点で、第三実施形態の皮膚情報処理と異なる。より具体的には、第三実施形態の皮膚情報処理と、第四実施形態の皮膚情報処理とでは、図31に示すように、画像解析処理の、隆線情報生成処理(S26)と、照合情報を記憶させる処理(S28)との間に、周波数情報生成処理(S27)を実行する点で異なる。また、第三実施形態の皮膚情報処理と、第四実施形態の皮膚情報処理とでは、図37に示すように、図27のペア範囲決定処理で実行される算出処理のS261と、S264との間に、周波数情報の類似度算出処理(S262)と、S262で算出された類似度と閾値とを比較する処理(S263)とが実行される点で異なる。第三実施形態の皮膚情報処理と、第四実施形態の皮膚情報処理とでは、図22の照合処理のS203の処理では、周波数情報の類似度WFの和もスコアSCの算出に用いられる点で異なる。その他の処理は、第三実施形態の皮膚情報処理と、第四実施形態の皮膚情報処理とで同じであるので、以下、第三実施形態の皮膚情報処理と、第四実施形態の皮膚情報処理とで異なる処理のみを説明する。第三実施形態の皮膚情報処理と同様に、第四実施形態の皮膚情報処理は、ユーザが開始指示を入力した場合に開始される。開始指示は、画像から取得された照合情報を登録用の照合情報としてDB28に登録するのか、それとも、照合情報をDB28に登録された登録用の照合情報との類似度を算出するのかに関する指示を含む。皮膚情報処理装置10のCPU1は、皮膚情報処理の開始指示の入力を検知すると、フラッシュメモリ4に記憶された皮膚情報処理を実行するための皮膚情報処理プログラムをRAM3に読み出し、皮膚情報処理プログラムに含まれる指示に従って、以下に説明する各ステップの処理を実行する。本例では、特徴点を抽出する要件(例えば、画像の鮮明さ)を満たす生体情報が取得されるまで、再入力を促すフィードバック処理が実行される。皮膚情報処理で取得される皮膚情報は、皮膚情報からアルゴリズムを用いて照合情報を抽出する要件を満たす。処理の過程で取得されたり、生成されたりした情報及びデータは、適宜RAM3に記憶される。処理に必要な各種設定値は、予めフラッシュメモリ4に記憶されている。
図31に示すように、第四実施形態の画像解析処理では、S26の処理の次に、CPU1は、周波数情報生成処理を実行する(S27)。図32に示すように、周波数情報生成処理では、CPU1は、S26の処理で生成された複数の隆線情報の中から1つの隆線情報を選択する(S111)。CPU1は、例えば、図16のリスト89から隆線情報R1を選択する。CPU1は、S111で選択された隆線情報R1に含まれる基準点P1からP3の内の、並び順が最初の基準点P1を始点として選択する(S112)。CPU1は、選択された基準点P1の位置情報が、S21で取得された画像の有効範囲内にあるか否かを判断する(S113)。有効範囲とは、サンプルが取得可能な領域且つ生体画像を取得できる領域である。皮膚情報取得装置8の撮影可能範囲全体にわたって皮膚情報を表す画像が取得されるわけではなく、例えば、撮影可能範囲には、ユーザの指が触れていない領域がある場合がある。そうした領域の画像には皮膚情報が表れていない。例えば、ユーザの指が触れていない領域に対応する白い画像領域には皮膚情報が表れていない為、本例のCPU1は有効範囲でない点のサンプルを抽出しない。したがって例えば、CPU1は選択された基準点を中心とした特定範囲内の色情報の二次元フーリエ変換のパワースペクトルのピーク値が一定値以上である場合に、選択された基準点の位置情報は有効範囲内にあると判断する。他の例では、CPU1は、選択された基準点を含む所定範囲の色情報を微分フィルタにかけた値の絶対値の和、又は二乗の和が一定値以上である場合に、選択された基準点の位置情報は有効範囲内にあると判断する。
選択された基準点の位置情報が有効範囲内にない場合(S113:NO)、CPU1は後述のS123の処理を実行する。選択された基準点の位置情報が有効範囲内にある場合(S113:YES)、CPU1は、S111で選択された隆線情報R1を参照し、並び順が、選択中の基準点P1の次の基準点があるかを判断する(S114)。選択中の基準点の次の基準点がない場合(S114:NO)、CPU1は、後述のS118の処理を実行する。隆線情報R1には、並び順が基準点P1の次となる基準点P2が含まれる(S114:YES)。この場合CPU1は、選択中の基準点P1から、並び順が次の基準点P2に向かうベクトルの方向U1を算出する(S115)。CPU1は、S115で算出された方向U1に基づき、選択中の基準点P1の周囲の色を示す色情報を取得する(S116)。
具体的には、CPU1は、選択中の基準点P1との距離が所定値且つ基準点P1に対してS115で算出された方向U1にある点を開始点T1として決定する。CPU1は所定条件に従って所定個の参照点を取得する。図33に示すように、例えば、CPU1は所定条件に従って、選択中の基準点P1を中心とする半径が所定値の円の周上に、開始点T1を基準として時計回りに等間隔で128個の参照点Tm(mは1から128の整数)を順に設定する。参照点Tmがサブピクセル単位の座標を持つ場合、周知のバイリニア補間又はバイキュービック補間を用いて色情報が取得される。CPU1は、参照点Tmに対応する色情報Cmと、第二位置情報とを対応づけたサンプル95を取得する。サンプル95は基準点P1の画像上の位置を示す第一位置情報と対応付けられる。第一位置情報は、画像上の基準点P1の位置を規定する情報であればよく、例えば、絶対座標(例えば、画像座標系の座標)、相対座標、及び取得順序などでもよい。本例の第一位置情報は、画像座標系の座標で表される。第二位置情報は、基準点P1に対する参照点Tmの位置を規定する情報であればよく、例えば、絶対座標(例えば、画像座標系の座標)、相対座標、及び基準に対する角度などでもよい。参照点の取得順序が、基準となる点(例えば開始点)に対して決められている場合には、第二位置情報は参照点の取得順序でもよい。本例では、参照点Tmの取得順序が、第二位置情報として取得される。参照点T1からT128の取得順序は各々1から128である。複数のサンプル95は、互いに位置が異なる複数の参照点Tmのそれぞれについて取得されたサンプルである。CPU1は、1つの開始点T1について取得された複数のサンプル95を、第一位置情報と対応付けた情報をサンプルデータ96とする。
CPU1は、S116で取得された複数のサンプル95(サンプルデータ96)についての第二位置情報に対する色情報の変化の周波数成分を算出し、周波数情報を生成する(S117)。周波数成分は例えば、公知のLPCスペクトル、LPCケプストラム、群遅延スペクトル等である。周波数成分は、例えば、群遅延スペクトル(GDS)であり、パワー伝達関数における位相スペクトルの周波数微分として定義されるものである。CPU1は、例えば、窓関数をかけずにYule−Walker法を用いて算出した線形予測係数を用いて、周波数情報を算出する。図34及び図35に示すように、サンプルデータ96に基づき算出されるGDS83は、サンプルデータ96の周波数スペクトルの個々のピークを分離し強調する。GDSの配列の要素数は位相スペクトルの要素数から1を減じたものとなる。具体的にはCPU1は、窓関数をかけずにYule−Walker法を用いて算出した線形予測係数を用いて、LPC係数に重みづけしたものを高速フーリエ変換して得られたパワースペクトルの位相微分をとることによりGDSを算出し、算出されたGDSを周波数情報とする。
CPU1は、S111で選択された隆線情報R1を参照し、並び順が、選択中の基準点P1の前の基準点があるかを判断する(S118)。選択中の基準点P1には、並び順が前の基準点がない(S118:NO)。この場合、CPU1は、後述のS122の処理を実行する。並び順が基準点の前となる基準点が含まれる場合(S118:YES)、CPU1は、選択中の基準点Pkから、並び順が前の基準点に向かうベクトルの方向Uを算出する(S119)。選択中の基準点Pkが、基準点P2である場合(S118:YES)、CPU1は、基準点P2からP1に向かう方向U2に基づき、S116の処理と同様の手順で選択中の基準点P2の周囲の色を示す色情報を取得する(S120)。CPU1はS117の処理と同様の手順で、S120で取得された複数のサンプル95(サンプルデータ96)についての第二位置情報に対する色情報の変化の周波数成分を算出し、周波数情報を生成する(S121)。CPU1は、S117及びS121の少なくとも何れかで生成された周波数情報を選択中の基準点と対応付けて記憶させる(S122)。CPU1は、S111で選択中の隆線情報に含まれる基準点をS112の処理又はS124の処理で選択したかを判断する(S123)。選択されていない基準点がある場合(S123:NO)、CPU1は、並び順が次の基準点を選択し(S124)、処理をS113に戻す。
S111で選択中の隆線情報に含まれる全ての基準点が選択された場合(S123:YES)、CPU1は、S26の処理で生成された全ての隆線情報がS111で選択されたかを判断する(S125)。未選択の隆線情報がある場合(S125:NO)、CPU1は処理をS111に戻す。全ての隆線情報がS111の処理で選択された場合(S125:YES)、CPU1は、以上で周波数情報生成処理を終了し、処理を図31の画像解析処理に戻す。図31の画像解析処理では、S27の次に、CPU1は、図36のリスト98に示すように、S26で生成された隆線情報と、S27で生成された周波数情報とを関連づけて、皮膚情報の認証に用いる照合情報として記憶する(S28)。
図37に示すように、第四実施形態の算出処理では、S261において、S260で算出された類似度が閾値よりも大きい場合(S261:YES)、CPU1は周波数情報の類似度算出処理を実行する(S262)。図38に示すように、周波数情報の類似度算出処理では、CPU1は、周波数情報の類似度WFに0を設定する(S281)。CPU1は、選択中の照合用のペア範囲候補の始点と、登録用のペア範囲候補の始点とを選択する(S282)。CPU1は、図29の隆線情報V1(隆線Z1)の基準点Q1、隆線情報V5(隆線Z5)の基準点Q24、隆線情報R2(隆線L2)の基準点P4、及び隆線情報R6(隆線L6)の基準点P27を選択する。CPU1は選択中の照合用の基準点Q1、Q24に周波数情報が記憶されているかを判断する(S283)。照合用の2つの基準点の少なくとも何れかに周波数情報が記憶されていない場合(S283:NO)、CPU1は後述のS288を実行する。照合用の基準点Q1、Q24には、何れも周波数情報が記憶されている(S283:YES)。この場合CPU1は、図36のリスト98を参照し、選択中の登録用の基準点P4、P27に周波数情報が記憶されているかを判断する(S284)。
登録用の2つの基準点の少なくとも何れかに周波数情報が記憶されていない場合(S284:NO)、CPU1は後述のS288を実行する。登録用の基準点P4、P27には、何れも周波数情報が記憶されている(S284:YES)。この場合CPU1は、選択中の照合用の基準点Q1、Q24と、選択中の登録用の基準点P4、P27とで、周波数情報の距離dFを算出する(S285)。CPU1は、基準点Q1と、基準点P4との距離と、基準点Q24と、基準点P27との距離とから距離dFを算出する。CPU1は、S285の処理で算出された距離dFから類似度wFを算出する(S286)。CPU1は、例えば、所定の式に距離dFを代入して、類似度wFを算出する。CPU1は、周波数情報の類似度WFに、S286で算出された類似度wFを加算して、周波数情報の類似度WFを更新する(S287)。CPU1は、選択中のペア範囲候補の全ての基準点をS282又はS289の処理で選択したかを判断する(S288)。選択されていない基準点がある場合(S288:NO)、CPU1は、並び順が次の基準点を選択し(S289)、処理をS283に戻す。選択中のペア範囲候補の全ての基準点が選択された場合(S288:YES)、CPU1は、以上で周波数情報の類似度算出処理を終了し、処理を図37の算出処理に戻す。
図37のS262の次に、CPU1は、S262の処理で算出された周波数情報の類似度WFが閾値よりも大きいかを判断する(S263)。類似度WFが閾値よりも大きくはない場合(S263:NO)、CPU1は第三実施形態と同様のS266の処理を実行する。類似度WFが閾値よりも大きい場合(S263:YES)、CPU1は、CPU1はS251で選択された照合用の2つのペア範囲候補と、S255で選択された登録用の2つのペア範囲候補との各々を類似度算出ペアとして、類似度の配列に記憶する(S264)。CPU1は、図39のリスト99に示すように、隆線情報V1(隆線Z1)における、ペア数6の基準点Q1からQ6が含まれるペア範囲候補、隆線情報R2(隆線L2)における、ペア数6の基準点P4からP9が含まれるペア範囲候補は、隆線情報V5(隆線Z5)における、ペア数4の基準点Q24からQ27が含まれるペア範囲候補、及び隆線情報R6(隆線L6)における、ペア数4の基準点P27からP30が含まれるペア範囲候補並びにそれらのペア範囲候補に基づき算出された類似度WR及び周波数情報の類似度WFを、配列に追加する。
第三及び第四実施形態の皮膚認証処理において、図9のS21の処理は、本発明の画像取得ステップの一例である。S21の処理を実行するCPU1は、本発明の画像取得手段の一例である。S23の処理は、本発明の基準点決定ステップの一例である。S23の処理を実行するCPU1は、本発明の基準点決定手段の一例である。S65の処理は本発明の抽出ステップの一例である。S65の処理を実行するCPU1は、本発明の抽出手段の一例である。S72の処理は、本発明の隆線情報生成ステップの一例である。S72の処理を実行するCPU1は、本発明の隆線情報生成手段の一例である。S28の処理は、本発明の記憶制御ステップの一例である。S28の処理を実行するCPU1は、本発明の記憶制御手段の一例である。S34の処理は、本発明の距離算出ステップの一例である。S82の処理は、本発明の角度算出ステップの一例である。S25の処理は、本発明の結合情報生成ステップの一例である。S201、S202の処理は、対応決定ステップの一例である。S203の処理は、本発明の類似度算出ステップの一例である。
〈評価試験〉
隆線情報を皮膚認証に用いることで、認証性能が向上するかを確認する評価試験を行った。後述の条件1から6の各々について、31指を光学式タッチセンサによって2000dpiの横480ピクセル縦800ピクセルの画像を、1指あたり5〜10枚取得し、1枚を登録画像、他を照合画像としてROC(Receiver Operating Characteristic)を算出した。条件1は、公知のマニューシャ法を用いて皮膚認証を行う条件である。条件2は、第三実施形態の隆線情報を用いて皮膚認証を行う条件である。条件3は、マニューシャ法と隆線情報とを併用して皮膚認証を行う条件である。条件4は、マニューシャ法で抽出された特徴点の周囲の色の変化を表す周波数情報を用いて皮膚認証を行う条件である。条件5は、汗孔を表す基準点の周囲を表す周波数情報を用いて皮膚認証を行う条件である。条件6は、条件5と条件4とを組み合わせて皮膚認証を行う条件である。条件1から6の試験結果を各々、図40の結果31から36で示す。図40に示すように、条件1から3を比較すると、条件1に比べ条件3は、認証性能が優れていた。このことから、隆線情報は、既存の認証方法の認証性能を向上させることができることが確認された。条件4に比べ条件6は、認証性能が優れていた。このことから、汗孔の周囲の色の変化を表す周波数情報は、既存の認証方法の認証性能を向上させることができることが確認された。
第一、第三、及び第四実施形態の皮膚情報処理装置10は、皮膚情報を表す画像に基づき、隆線情報を生成し、RAM3及びDB28に記憶させることができる。皮膚の隆線上の汗孔の配置は、指紋及び声紋と同様に固有であり、生涯にわたって変わらないとされている。皮膚情報を表す画像の大きさが従来に比べ小さく、隆線の分岐点や端点が画像中に含まれないような場合であっても、汗孔は複数取得できる可能性がある。隆線情報は、同一の連続する隆線上に配置されている複数の基準点の各々の、画像中の位置を示す位置情報と、複数の基準点の隆線上の並び順とを含む。基準点は隆線上の汗孔を表す。複数の基準点を、並び順に従って順に線分で繋いでいった場合、複数の基準点を結ぶ複数の線分は、全体として隆線状の形状になる。各線分の長さは、同一の連続する隆線上に配置されている隣合う基準点間の距離を表す。つまり、隆線情報は、隆線の形状を汗孔の配置で表す情報であり、画像が表す生体情報の特徴部分を強調した情報と言える。評価試験で確認されたように、皮膚情報処理装置10は、皮膚認証に用いる情報であって、従来に比べ認証性能の向上に寄与する隆線情報を生成できる。
皮膚情報処理装置10は、画像中の汗孔の重心を基準点として決定し、基準点の位置情報をする。皮膚情報処理装置10は、汗孔の形状と大きさとの特徴を表す、汗孔の面積重心を基準点として決定し、隆線情報を生成できる。
皮膚情報処理装置10は、並び順が次の基準点との距離を算出し(S34)、同一の連続する隆線上の複数の基準点の各々の、位置情報と、特定された複数の基準点内の隆線上の並び順と、距離とを含む隆線情報を生成する(S72)。皮膚情報処理装置10は、並び順が次の基準点との距離を含む隆線情報を生成できる。隆線情報は、並び順が次の基準点との距離を含むので、隆線情報を用いて皮膚認証を実行する場合に、登録用の隆線情報について、基準点間の距離を新たに算出することが不要である。皮膚情報処理装置10は、並び順が次の基準点との距離を含む隆線情報を生成することで、皮膚認証実行時に登録時とは位置が異なる条件で取得された画像が取得された場合に位置の影響を考慮して類似度を算出できる。
皮膚情報処理装置10は、同一の連続する隆線上の複数の基準点の各々について、並び順が前の基準点との線分に対する並び順が次の基準点との線分の相対角度を算出する(S82)。皮膚情報処理装置10は、同一の連続する隆線上の複数の基準点の各々の、位置情報と、特定された複数の基準点内の隆線上の並び順と、相対角度とを含む隆線情報を生成する(S72)。皮膚情報処理装置10は、相対角度を含む隆線情報を生成できるので、コンピュータが、隆線情報を用いて皮膚認証を実行する場合に、基準点間の相対角度を新たに算出することが不要である。皮膚情報処理装置10は、皮膚認証実行時の認証時間を短くできる。皮膚情報処理装置10は、相対角度を含む隆線情報を生成することで、皮膚認証実行時に登録時とは角度が異なる条件で取得された画像が取得された場合に角度の影響を考慮して類似度を算出できる。
皮膚情報処理装置10は、複数の基準点の各々を注目基準点とした場合の、注目基準点の位置情報と、注目基準点と同一の連続する隆線上に配置され、且つ、同一の連続する隆線上の並び順が注目基準点と前後する基準点である結合基準点の位置情報とを対応付けた情報を結合情報として生成する(S25)。皮膚情報処理装置10は、S25の処理で生成された結合情報に基づき、同一の連続する隆線上に配置されている複数の基準点が抽出する(S65)。皮膚情報処理装置10は、S25の処理がない場合に比べ、簡単な処理で、且つ、適切に隆線情報を生成できる。
皮膚情報処理装置10は、S25の処理で生成された結合情報に基づき、複数の基準点の内、並び順が前後する基準点の数が1つである基準点を、並び順が最初の基準点である始点又は並び順が最後の基準点である終点として特定する。皮膚情報処理装置10は、複数の基準点の内、並び順が前後する基準点の数が3つ以上である基準点を隆線の分岐点として特定する。皮膚情報処理装置10は、連続する隆線に分岐点が含まれない場合に、始点から終点までの分岐のない隆線を定義し、定義された隆線上に配置されている複数の基準点を抽出して隆線情報を生成する。皮膚情報処理装置10は、連続する隆線に分岐点が含まれる場合に、分岐点における分岐の数に応じた数の、当該分岐点を含む始点から終点までの分岐のない複数の隆線を定義し、当該定義された複数の隆線毎に、同じ隆線上に配置されている複数の基準点を抽出して隆線情報を生成する。したがって皮膚情報処理装置10は、同一の連続する隆線に分岐点が含まれる場合、分岐点を含む同一の連続する隆線から、始点から終点までの分岐のない複数の隆線を定義することで、全ての隆線を、分岐点を含まない隆線として扱うことが可能な隆線情報を生成できる。
皮膚情報処理装置10は、皮膚認証に用いる照合用の隆線情報の基準点と、DB28に記憶された登録用の隆線情報の基準点との対応である位置対応を決定する(図22のS201、S202)。皮膚情報処理装置10は、決定された位置対応に基づき、照合用の隆線情報と、登録用の隆線情報との類似度WRを算出し(S260)、算出された類似度WRを用いてスコアSCを算出する(S203)。したがって皮膚情報処理装置10は、隆線の形状を汗孔の配置で表す、画像が表す生体情報の特徴部分を強調した隆線情報を用いるので、単純に汗孔の相対位置を比較する場合に比べ、位置対応の決定と、類似度の算出との信頼度を高めた処理を実行させることができる。
皮膚情報処理装置10は、図22のS201、S202の処理で、照合用の隆線情報と、登録用の隆線情報との複数の組合せの中から、選択された照合用の隆線情報と、選択された登録用の隆線情報との差が、連続する所定個以上の基準点について閾値以下となるペア範囲を特定して、位置対応を決定する。したがって皮膚情報処理装置10は、位置対応を決定する処理を比較的簡単にできる。
皮膚情報処理装置10は、ペア範囲候補が特定された2組の照合用の隆線情報と登録用の隆線情報とを選択する(S251、S255)。皮膚情報処理装置10は、選択された2組の照合用の隆線情報と登録用の隆線情報との各々について、ペア範囲内の複数個の基準点を、並び順に従って線分で結んだ場合の両端を特定し、2つの照合用の隆線情報の各々に対応する両端と、2つの登録用の隆線情報の各々に対応する両端との相対位置を比較して、スコアSCを算出する(S254、S258、S259、S260、S203)。皮膚情報処理装置10は、ペア範囲内の隆線情報の両端を比較することで、照合用の隆線情報と、登録用の隆線情報とを効率的に比較して類似度を算出できる。
皮膚情報処理装置10は、S251とS255との処理で選択された2組の照合用の隆線情報と登録用の隆線情報との内の、2つの照合用の隆線情報及び2つの登録用の隆線情報の少なくとも一方について、2つの隆線情報の内の一方を第一隆線情報、他方を第二隆線情報とした場合に、第一隆線情報の両端の内の少なくとも何れかの端部と、第二隆線情報の両端の少なくとも何れかの端部とを結んだ1以上の比較線分の長さを用いて信頼度を算出する(S259)。皮膚情報処理装置10は、相対位置の比較結果に信頼度を乗じて、類似度WRを算出し、算出された類似度WRを用いてスコアSCを算出する(S260、S203)。皮膚情報処理装置10は、信頼度を用いずに類似度WRを算出する場合に比べ、認証精度が高い類似度を算出できる。
本発明の皮膚情報処理プログラム及び皮膚情報処理装置は、上記した実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更が加えられてもよい。例えば、以下の(A)から(C)までの変形が適宜加えられてもよい。
(A)皮膚情報処理装置10の構成は適宜変更してよい。例えば、皮膚情報処理装置10は、スマートフォンである場合に限定されず、例えば、ノートPC、タブレットPC、及び携帯電話のようなモバイル機器であってもよいし、現金自動預け払い機(ATM)及び入退室管理装置のような機器であってもよい。皮膚情報取得装置8は、皮膚情報処理装置10とは別体に設けられてもよい。その場合、皮膚情報取得装置8と、皮膚情報処理装置10とは、接続ケーブルで接続されていてもよいし、Bluetooth(登録商標)及びNFC(Near Field Communication)のように無線で接続されていてもよい。皮膚情報取得装置8の検出方式は例えば、電界式、圧力式、及び光学式の何れかであってもよい。皮膚情報取得装置8は面型に限定されず、線型であってもよい。皮膚情報取得装置8が生成する画像の大きさ、色情報及び解像度は汗孔を抽出可能であればよく、適宜変更されてよい。したがって、例えば、色情報は白黒画像に対応する情報の他、カラー画像に対応する情報でもよい。
(B)皮膚情報処理プログラムは、皮膚情報処理装置10がプログラムを実行するまでに、皮膚情報処理装置10の記憶機器に記憶されればよい。したがって、皮膚情報処理プログラムの取得方法、取得経路及び皮膚情報処理プログラムを記憶する機器の各々は適宜変更されてよい。皮膚情報処理装置10のプロセッサが実行する情報処理プログラムは、ケーブル又は無線通信を介して、他の装置から受信し、フラッシュメモリ等の記憶装置に記憶されてもよい。他の装置は、例えば、PC(パーソナルコンピュータ)、及びネットワーク網を介して接続されるサーバを含む。
(C)皮膚情報処理の各ステップは、CPU1によって実行される例に限定されず、一部又は全部が他の電子機器(例えば、ASIC)によって実行されてもよい。上記処理の各ステップは、複数の電子機器(例えば、複数のCPU)によって分散処理されてもよい。上記実施形態の皮膚情報処理の各ステップは、必要に応じて順序の変更、ステップの省略、及び追加が可能である。皮膚情報処理装置10のCPU1からの指令に基づき、皮膚情報処理装置10上で稼動しているオペレーティングシステム(OS)等が実際の処理の一部又は全部を行い、その処理によって上記実施形態の機能が実現される場合も本開示の範囲に含まれる。例えば、皮膚情報処理に以下の(C−1)から(C−8)の変更が適宜加えられてもよい。
(C−1)S11で取得された画像に対して、適宜前処理が実行されてもよい。例えば、画像の高周波成分をノイズとして除去する為のフィルタリング処理が実行されてもよい。フィルタリング処理が実行されることによって、画像のエッジ部分の濃淡変化は緩やかになる。フィルタリング処理に用いられるフィルタとして、周知のローパスフィルタ、ガウシアンフィルタ、移動平均フィルタ、メディアンフィルタ、平均化フィルタの何れかが用いられてもよい。他の例では、特定の周波数帯成分のみを抽出する為のフィルタリング処理がS11で取得された画像に対して実行されてもよい。特定の周波数帯域として、指紋の凹凸の周期を含む帯域が選択されてもよい。この場合の、フィルタリング処理に用いられるフィルタとしては、周知のバンドパスフィルタが挙げられる。
(C−2)基準点は、汗孔を表す点であればよく、汗孔の面積重心でなくてもよい。隆線情報は、少なくても、基準点の位置情報と、隆線上の並び順とを含めばよい。並び順は位置情報の記憶順序によって示されてもよい。隆線情報は、基準点の角度として、基準点から、並び順が前の基準点に向かうベクトルの向きと、基準点から、並び順が次の基準点に向かうベクトルの向きとを含んでもよい。隆線情報は、同一の連続する隆線上の基準点に分岐点が含まれる場合に、分岐がない隆線を定義する必要はない。例えば、図7の隆線情報R3に示すように分岐を含む隆線が定義されてもよい。隆線情報は、結合情報に基づき生成される必要はない。結合情報を生成する処理は必要に応じて省略されてよい。
(C−3)皮膚情報処理装置は、皮膚認証に用いる照合用の隆線情報の基準点と、DB28に記憶された登録用の隆線情報の基準点との対応である位置対応を決定する際に、汗孔の部分的な欠落を考慮して位置対応を決定してもよい。例えば、図7の画像45に示す登録用の隆線情報R1からR5と、画像65に示す照合用の隆線情報V1からV4とを比較する場合で、照合用の隆線情報V4において基準点Q26が欠落している場合を想定する。この場合上記実施形態の処理において、隆線情報V4の基準点Q25と、隆線情報R5の基準点P28とが比較された次に、隆線情報V4の基準点Q27と、隆線情報R5の基準点P29とが比較される。距離と、相対角度とに基づき、基準点Q27と、基準点P29とが類似しないと判断されても、並び順が基準点P29の次の基準点P30が基準点P28からの距離と、相対角度とに基づき、基準点Q27と類似すると判断されるならば、基準点P29を飛ばして、ペア範囲が設定されてもよい。
(C−4)信頼度の算出方法は適宜変更されてもよい。信頼度は、ペア範囲が特定された2組の照合用の隆線情報と登録用の隆線情報との各々について、ペア範囲内の複数個の基準点を、並び順に従って線分で結んだ場合の両端を特定し、2つの照合用の隆線情報の各々に対応する両端と、2つの登録用の隆線情報の各々に対応する両端との相対位置を比較して算出されればよい。したがって、例えば以下の手順で信頼度が算出されてもよい。2つの照合用の隆線情報から、設定されたペア範囲内の基準点を並び順に線分で結んだ第一線分と第二線分とが定義される。第一線分の両端を第一始点、第一終点とし、第二線分の両端を第二始点、第二終点とされる。第一始点と第二始点とを結んだ線分を第一比較線分とする。第一終点と第二終点とを結んだ線分を第二比較線分とする。第一始点と第二終点とを結んだ線分を第三比較線分とする。第一終点と第二始点とを結んだ線分を第四比較線分とする。信頼度は、第一から第四比較線分の少なくとも何れかに基づき算出されてよい。例えば、第一比較線分のみから信頼度が算出されてもよいし、第一から第四比較線分を組み合わせて信頼度が算出されてよい。
(C−5)生成された結合情報及び隆線情報の少なくとも一方を含む照合情報は、必ずしも、情報類似度を算出する処理に用いられなくてもよい。皮膚認証は、公知の照合情報と組合せによって実行されてもよい。例えば、公知のマニューシャ法により照合結果と、本発明の照合情報方法を用いた照合結果とを組合せて、最終的な判定が実行されてもよい。このようにすれば、多様な観点から照合が実行され、照合精度が向上することが期待される。また照合方法は、処理時間及び認証精度等を考慮し、複数種類の照合方法の中から自動的に又はユーザにより設定可能としてもよい。
(C−6)周波数情報は、基準点の周囲の色の変化を表す情報であればよい。例えば、周波数成分は、一次元群遅延スペクトルに限定されない。例えば、周波数成分としてはLPCスペクトル、群遅延スペクトル、LPCケプストラム、ケプストラム、自己相関関数、及び相互相関関数など、他の公知の周波数成分が用いられてもよい。周波数情報は、隆線情報と対応付けられる必要はない。周波数情報は、結合情報に対応付けられてもよい。周波数情報を算出する処理は省略されてよい。
(C−7)周波数情報の算出方法は適宜変更されてよい。例えば、周波数成分として本実施形態と同様の一次元群遅延スペクトルが用いられる場合、高次の成分にはノイズ成分が強く表れることがある。このような場合を考慮して、低次の成分を優先して選択された所定個の成分を含む周波数情報に基づき、周波数情報が選択されてもよい。所定個は、サンプル数、及び認証精度等を考慮して予め定められればよく、例えば、1つの参照点について取得されるサンプルの数Nが128である場合、所定個は10から63の何れかに設定される。好ましくは、所定個は12から20の何れかに設定される。サンプル数Nの場合、所定個は、好ましくは(サンプル数N/10)から(サンプル数N/5)に設定される。例えば、窓関数を用いて周波数情報が算出されてもよい。
(C−8)サンプルの取得方法は適宜変更されてよい。基準点の周囲の色情報の変化の特徴を表す方向を用いて、サンプルが取得されてもよい。基準点の周囲の色情報の変化の曲率が基準方向の一部又は全部として算出されてもよい。曲率とは、曲線の曲がりの程度を表す量をいう。照合情報処理で設定される各種設定値、閾値等は適宜変更されてよい。各種設定値、閾値等は、基準点の取得条件(汗孔の数、面積、及び形状等)によって複数種類設けられてもよい。