上記点に鑑みて、本発明の課題は、ユーザを高速かつ確実に識別すると同時に格段に高い検出精度を提供し、なおかつ、データの取得に使用されるモバイル装置とのユーザのインタラクションを簡素化できる方法及びシステムを提供することである。さらに、モバイル装置において識別のために必要とされるコンピュータリソースを、現在の世代のモバイル装置に当該識別を実装できる程度に削減できると有利である。
上記課題の解決手段は、請求項1記載のモバイル計算機上に実装される方法と、請求項18記載のモバイル計算機である。本発明の好適な実施形態は従属請求項に記載されている。
ユーザのバイオメトリック特性、例えばユーザの手のひら、ユーザの顔、ユーザの眼、ユーザの足の裏等を有する当該ユーザの物体の画像からデータを取得するための方法は、
モバイル装置の光学センサによって、スプーフ又は本物の物体を含む物体の画像を取得するステップと、
識別ステップにおいて画像を処理することにより、画像中の物体の位置及び物体の両方を識別するステップと、
を、モバイル装置上で行うことを含み、
処理はさらに生体検知(liveliness-detection)ステップを含み、
前記生体検知ステップは、
画像のうち物体の少なくとも一部に該当する複数の画素から光学センサまでの距離を表す距離マップと、
画像のうち物体の少なくとも一部に該当する複数の画素に関連付けられる光反射を表す反射パターンと、
のうち少なくとも1つを計算することを含み、
処理はさらに、計算された距離マップ又は計算された反射パターンのうち少なくとも1つと、既知の距離マップ又は既知の反射パターンとの比較を行い、比較の結果に基づいて、画像がスプーフ又は本物の物体のいずれかを含むことを判断することを含む比較ステップを有し、
前記方法はさらに、
前記処理後、少なくとも前記バイオメトリック特性を含むデータを前記画像から取得し、オプションとしてデータを記憶装置に記憶するステップと、
少なくとも前記バイオメトリック特性を含むデータをサードパーティ計算機へ送信するステップと、
を前記モバイル装置上で行うことを含む。
ここで、データを記憶できる記憶装置は、モバイル装置上の任意の記憶部又はモバイル装置に物理的に接続された任意の記憶部、例えば内部記憶部又はモバイル装置に接続されたハードドライブ等とすることができる。モバイル装置は、一般に利用されている任意のモバイル装置とすることができる。例えば、モバイル装置はスマートフォン、タブレット、ラップトップ、その他これらに相当する任意の装置とすることができる。モバイル装置に要求される事項は、相応の記憶装置を備えていることのみである。
サードパーティ計算機は例えば、インドのアドハー(Aadhaar)又はメキシコのINE等の国の行政機関がホスティングするサーバとすることができる。追加的又は代替的に、サードパーティ計算機は、例えば年金基金団体、移民局、銀行、又は通信事業者等のID認証サービスを提供する企業又は国の組織がホスティングするサーバとすることができる。ビデオ、音楽、又はゲーム等をストリーミング配信するストリーミング配信サービスへのアクセス権限を提供する企業等の他の企業も想定可能である。
本発明は、バイオメトリック特性を含むデータをサードパーティ計算機において実際にどのように使用するかに関して限定されるものではないが、好適な一実施形態は、サードパーティ計算機がこのバイオメトリック特性と記憶されたバイオメトリック特性とを比較することにより、バイオメトリック特性が実際にモバイル装置のユーザを適正なユーザであると識別するか否かを判断することを含む。
原則的に、三次元の本物の物体の画像が人間の本当の指等の意図された物体のスプーフである場合もあり得るかもしれないが、本発明では、三次元の物体は本物の物体であろうと想定する。本物の物体の二次元のスプーフは何でも良いが、通常は本物の物体を撮影した当初の画像となるであろうし、ここではそのことを予定している(例えば、光学センサに対する紙又は他のあらゆる平坦な表面8であり、この画像をさらに光学センサが撮影する)。しかし、本物の物体の(ほとんど二次元の扁平な)模型等の二次元のスプーフの他の実現態様もあり得る。いずれの場合においても、本発明でいうところのスプーフは、本物の物体の三次元の再現ではないことを意図している。
距離マップとは、光学センサによって取得された当初の画像中の特定の画素と、当該特定の画素から光学センサまでの推定距離又は算定距離とを関連付ける、例えばマトリクス又は表又は他の構造等のデータ構造を構成するものを意味する。画素はデータ構造に過ぎないため、画素そのものが光学センサまでの距離を有するものではないことが明らかである。その意味するところは、光学センサによって画像を撮影することにより取得された物体が、元々は光学センサまでの距離を有していた、ということである。よって、取得された画像中の各画素は実世界における一点を表し、よって、画像が撮影された時点での実世界における当該一点から光学センサまでの距離に依然として関連付けられている、ということになる。
画像内の物体の少なくとも一部に該当する複数の画素に関連付けられた光反射を表す反射パターンについても、同様のことが当てはまる。ここで、画素そのものが反射パターンを実現するものではなく、元の物体(又はこの本物の物体の二次元のスプーフ)が、光反射を表す反射パターンを有していたことが明らかである。この反射パターンは、光学センサによって取得された画像情報に基づいて算出することができる。距離マップと同様、反射パターンもマトリクス又は二次元の表等のデータ構造の形態を有することを意図している。
計算された距離マップは学習済みの距離マップと比較され、又は、計算された反射パターンは学習済みの反射パターンと比較される。ここで、学習済みの距離マップ及び学習済みの反射パターンは、本物の物体の距離マップ又は本物の物体の二次元のスプーフの距離マップに該当することがニューラルネットワークに既知となっている距離マップと、本物の物体の反射パターン又は本物の物体の二次元のスプーフの反射パターンに該当することがニューラルネットワークに既知となっている反射パターンと、に相当する。計算された距離マップと学習済みの距離マップとの比較又は計算された反射パターンと学習済みの反射パターンとの比較により、本物の物体と当該物体のスプーフとを区別するために使用できる結果が得られ、この区別は例えば、得られた距離マップ又は反射パターンが、スプーフに該当する学習済みの距離マップ又は反射パターンと一致する可能性の方が、本物の物体に該当する学習済みの距離マップ又は反射パターンと一致する可能性より高いと判断することにより行われる。
本発明の方法により、本物の物体と本物の物体のスプーフとを効率的に区別することができる。というのも、使用されるニューラルネットワークは、画像内の物体に関する固有の特性を求めるため、撮影された画像と学習済みの情報(学習済みの距離マップ及び学習済みの反射パターン等)との類似度を高信頼性で判断できるからである。よって本方法は、本物の物体に関する画像中の情報が、ユーザを識別するために使用される指先を有する指等のセキュリティ上センシティブな情報である場合にも適用可能であり、かかる物体を撮影した画像の悪用を防止することができる。
一実施形態では、前記識別ステップと、前記生体検知ステップと、前記比較ステップとのうち少なくとも1つにおいて、ニューラルネットワークを用いる。ニューラルネットワークは、画像中のパターン(指紋等)が通常でない角度で写っている場合、例えば、指の向きを事前設定するマスクを用いずに指の画像を撮影した場合等であっても、パターンを識別できるという点で特に有利である。これにより、各データを取得するためのユーザとモバイル装置とのインタラクションが簡素化する。
他の一実施形態では、前記サードパーティ計算機は、前記少なくとも1つのバイオメトリック特性を含む前記データの処理を行い、当該処理に基づき、前記バイオメトリック特性が前記ユーザを識別するか否かを判断する。これにより、ユーザが例えばパスワード等を覚える必要なく、例えばサードパーティ計算機により提供されるサービス等へのアクセス権限を容易に付与することができる。
さらに、前記識別ステップはニューラルネットワークを用いることを含み、前記識別ステップにおいて前記ニューラルネットワークによって前記画像を入力として処理することは、当該ニューラルネットワークの第1層によって前記入力を処理することにより第1の中間出力を生成することと、各先行層の出力を各後続層によって処理することと、を有し、前記ニューラルネットワークは複数の層を有し、前記各層は、各層における前記入力の処理順に、深度畳み込み層と、第1のバッチ正規化部と、第1の整流線形ユニットと、点畳み込み層と、第2のバッチ正規化部と、第2の整流線形ユニットとをそれぞれ有する、深度で分離可能な畳み込みであり、前記ニューラルネットワークは、前記複数の層を用いて前記入力を処理することにより、前記物体の識別結果と前記画像における前記物体の位置とを出力として得ることができる。
深度畳み込み層は意図されているところによれば、例えば3×3のサイズのマトリクスであるカーネルを含む、元の画像に相当する特徴マップ(マトリクス)の乗算又は内積を使用して、別のマトリクスを算出する。かかる層を用いることは、識別効率の面でより効率的である。その理由は特に、マックスプーリング層によって情報損失が生じ、この情報損失により、必要な繰り返しが多くなってしまうからである。この点において、上記実施形態にて提案する深度畳み込み層は、そのパラメータ感度に関して一般に使用されている畳み込み層より高効率となる。
深度畳み込み層及び点畳み込み層は、「深度畳み込みサブレイヤ」及び「点畳み込みサブレイヤ」とも称され得る。実際、これらはニューラルネットワークの「層の中の層」であるから、サブレイヤとなる。
この特殊な実施態様の深度畳み込み層を、上記実施形態における点畳み込み層、バッチ正規化部及び整流線形ユニットと共に適用することにより、ニューラルネットワークが画像中の指先等のバイオメトリック特性を有する物体のリアルタイム識別を行うために必要とされるコンピュータリソースは、現在公知のニューラル技術と比較して有意に削減される。というのも公知のYOLO技術は、使用されるニューラルネットワーク内の層群のうち一層としてマックスプーリング層を利用するからである。
他の一実施形態では、前記生体検知ステップはニューラルネットワークを用いることを含み、前記距離マップ及び前記反射パターンは計算されて前記既知の距離マップ及び前記既知の反射パターンと比較されることにより、前記比較の結果に基づいて、前記画像が前記スプーフ又は本物の前記物体のいずれかを含むことが判断される。
ここでいう「既知」の距離マップ及び「既知」の反射パターンとは、ニューラルネットワークを用いる場合には「学習済み」の距離マップ及び「学習済み」の反射パターンとみなすことができる。つまり、当該距離マップ及び反射パターンに基づいてスプーフと本物の物体とを実際に区別するようにニューラルネットワークを訓練する際に得られた生体性を示唆する距離マップ及び反射パターンをいうことができる。
カメラである前記光学センサに関連付けられたフラッシュを使用しながら、前記画像を前記光学センサによって取得することができる。これにより、得られるコントラストを向上させることができ、ひいては生体検知ステップを改善することができる。カメラのフラッシュを用いることにより、画像を撮影した領域の各部分が強調され、これにより反射パターンを高精度でより高信頼性で計算することができ、また、本物の物体のスプーフと本物の物体とをより容易に区別することができる。
本実施形態のより特殊な一具現化態様では、前記ニューラルネットワークは複数の層を有し、最後の層は、前記処理において判断された本物の物体に関する出力を供給する第1のノードと、前記処理において判断されたスプーフに関する出力を供給する第2のノードの、2つのノードを有する。
本発明では、両ノード共に、画像に写っているものが本物の物体であるか又は本物の物体のスプーフであるかにかかわらず、撮影された各画像について出力を供給することを意図している。この出力は後で、画像に写っている物体が本物の物体か又はスプーフであるかの確率的判断を行うためにさらに処理されることができる。
より具体的には、前記各ノードは前記画像の処理に応じて-∞~+∞の範囲の出力を供給し、前記各ノードの前記出力は出力正規化部に通され、前記出力正規化部は最初に前記各ノードの出力xiを取り、S(x)=ex/(1+ex)によって、削減された値S(xi)を算出することができ、ここで、前記第1ノードの場合にはi=1であり、前記第2ノードの場合にはi=2であり、前記出力正規化部は正規化関数
へ値S(xi)を供給することにより、正規化値σ(S(x1))≡σ1及びσ(S(x2))≡σ2を得る。
第1のノード及び第2のノードの出力をこのようにさらに処理することにより、第1のノード及び第2のノードに基づいて算出された正規化値を得ることができ、これにより、画像中にスプーフが写っているか又は本物の物体が写っているかを判定するために第1のノード及び第2のノードの上述の出力の統計的評価を行うことができる。
この点において、σ1>0.5の場合には前記画像が本物の前記物体を含むと判断し、σ2>0.5の場合には前記画像が前記スプーフを含むと判断することができる。第1のノード及び第2のノードの出力の正規化値を用いることにより、本物の物体とスプーフとを高信頼性で区別することができる。
一実施形態では、前記処理後少なくとも前記バイオメトリック特性を含むデータを前記画像から取得することは、前記画像又は前記画像の前記一部を処理するクロップ処理ステップをさらに有し、前記クロップ処理ステップは、前記画像又は前記画像の一部のうち前記関心領域すなわちROIを含む部分を前記画像の他の部分に対して区別することと、
前記画像又は前記画像の一部から前記ROIを抽出することと、
前記ROIを含む前記部分を前記モバイル装置上の記憶装置に記憶することと、を含む。
関心領域とは、物体の画像のうち実際にバイオメトリック特性を有する領域である。また、関心領域は好適には、物体の画像に含まれる部分であって、当該画像の部分を用いたときにユーザを高信頼性で識別できるようにバイオメトリック特性を提示する部分であり、具体的には、物体の当該部分又はバイオメトリック特性の当該部分である。例えば、指紋を有するのは指先全体であるが、この指先の画像を撮影すると、指先の一部が光学センサの方を向かないため画像中において傾いて見えてしまい、例えば指紋の他の部分より暗くなることがある。通常、かかる「曖昧な」領域は実際にはユーザを識別するために適していないため、関心領域を構成しない。
本発明ではニューラルネットワークは、画像を処理することによって画像のうち関心領域を含む部分と関心領域を含まない他の部分とを区別できるように訓練され、及び/又は、かかる区別を行える適性を他の態様で獲得したものである。これは種々の手法で達成することができるので、本発明を限定するものと解すべきものではない。ROIを含む領域をニューラルネットワークが他の領域から「区別する」とは、ROIと画像の他の領域とを区別する出力をニューラルネットワークが出力できる能力を有すること、又は、ニューラルネットワークがこれらの領域の区別を可能にすることを意味する。例えば、出力は、ROIを含むがROIの他の領域を含まない画素の示唆とすることができる。いずれの場合においても、ニューラルネットワークによる画像の処理の結果は少なくとも、当該画像のうち関心領域を含む第1の部分が他の部分と異なることが識別されたことを含む。この点については、関心領域の具体的なサイズ、形状や位置は、ニューラルネットワークが画像の処理によって発見するものであり、事前設定されるものではないことに留意すべきである。
この点において、本発明の方法は、物体の画像の自由形態の撮影を対象とすることを意図したものである。すなわち、物体の画像は、ユーザが光学センサに対して物体をどのように位置決めすべきかを定義するテンプレート又は他のマスクをユーザに提示して撮影されるものではない。
識別手段は、画像を撮影するために用いられるモバイル装置から遠隔の場所とするか、又はモバイル装置に設けられるものとすることができる。さらに、ニューラルネットワークはモバイル装置上に設けるか、又はモバイル装置から遠隔の場所とすることができることに留意すべきである。後者の場合、画像はニューラルネットワークにより処理される前にモバイル装置から、ニューラルネットワークが設けられている遠隔の場所に転送される。
また、画像又は画像の一部をニューラルネットワークへ供給することは、光学センサによって取得されたそのままの状態で画像又は画像の一部を供給することのみを含むものでない点に留意すべきである。具体的には例えば、バイオメトリック特性を有する物体を含む可能性が最も高い元の画像又は画像の半分又は画像の特定の部分がニューラルネットワークへ供給される。さらに、当該ステップは元の画像の前処理を含むことができ、この前処理は例えば、画像の明るさの変更、又は画像を複数の単色画像に分離すること等により行われる。本発明はこの点で限定されることはない。
本発明は、後続の処理のために、具体的には、抽出されたバイオメトリック特性がユーザを識別するか否かを高精度で判定する処理のために関心領域を取得し、これにより必要なデータ転送量を有意に削減し、また、識別手段によるバイオメトリック特性の処理を簡素化することを可能にするものである。というのも、関心領域を保有しない画像の残りの部分により識別手段に及ぼされる干渉影響を回避できるからである。
より特殊な一具現化態様では、少なくとも前記バイオメトリック特性を含むデータをサードパーティ計算機へ送信するステップは、前記ROIを含む前記部分を前記サードパーティ計算機へ送信することを含む。
前記クロップ処理ステップは、前記画像又は前記画像の前記一部をニューラルネットワークにより処理することを含むことができ、その際には、前記画像又は前記画像の前記一部を前記ニューラルネットワークにより処理することは、前記画像をエンコーダによって処理することにより符号化済み画像を得ることと、その後、前記符号化済み画像をデコーダによって処理することにより復号化済み出力画像を得ることと、を含む。
また、処理のためにクロップ処理ステップにおいて前記ニューラルネットワークへ供給される前記画像又は前記画像の前記一部はN×M個の画素を有することができ、前記符号化済み画像はn×m個の画素を有し、ここでn<N,m<Mであり、前記復号化済み出力画像はN×M個の画素を有する。
画像の符号化(encoding)時に画素数を低減すると情報の損失となる。しかし、復号化(decoding)の際に画像を拡大して戻すと、画像の他の部分からROIを区別するために最も関連する情報を、より見分けやすくなる。というのも、この処理によって、ROIの識別に必要でない非関連情報又は非常に細かい情報がフェードアウトするからである。
この点において、前記画像又は前記画像の前記一部の部分を区別することは、前記復号化済み出力画像の一部分を当該復号化済み出力画像の他の部分に対して区別することを含むことができる。復号化済み画像において各部分を区別することは、元の画像のROIを含む部分を他の部分から区別することより格段に容易になり得る。よって、よって、復号化済み出力画像におけるある部分を他の部分から区別するために必要な処理能力は、元の入力画像を処理する場合と比較して有意に削減される。
より具体的には、前記バイオメトリック特性を含む前記部分を抽出することは、前記復号化済み出力画像のうち区別された前記部分内にある画素を識別することと、その後、前記復号化済み出力画像のうち区別された前記部分内にある前記画素を、前記元の画像内又は当該画像の前記一部内の対応する画素を用いて識別することと、元の前記画像又は前記画像の前記一部から、前記画像又は前記画像の前記一部のうち前記バイオメトリック特性を含む部分に該当する対応する画素を抽出することと、を含むことができる。
具体的には、前記復号化画像中の各画素は値x∈]-∞;+∞[を有することができ、前記復号化画像の一部を区別する前に、前記復号化画像中の各画素に活性化関数S(x)=1/(1+e-x)を適用し、前記復号化画像中の各画素に
を関連付け、前記区別は、
を有する前記画素について行われる。
これにより、ROIを含まない他の部分からROIを含む部分を一層容易に区別することができ、これにより、復号化済み出力画像中でROIを識別する精度を向上させることができる。
一実施形態では、少なくとも前記バイオメトリック特性を含む前記データを前記モバイル装置上において暗号化することにより暗号化データを取得し、当該暗号化データを前記サードパーティ計算機へ送信する。これにより、マン・イン・ザ・ミドル・アタックといった攻撃を回避することができ、センシティブなデータ(ユーザの指紋等)のセキュリティを維持することができる。
本発明のモバイル装置は、プロセッサと、記憶装置と、データ伝送手段と、光学センサと、を備えており、上記のいずれかの実施形態の方法を実施するように構成されている。
一実施形態では、ユーザの1つの指紋又は複数の指先の複数の指紋のセット等のバイオメトリック特性を有する当該ユーザの物体の画像を用いて当該ユーザを識別するための方法を提供し、本方法は、
モバイル装置の光学センサによって物体の画像を取得するステップと、
画像をニューラルネットワークへ供給するステップと、
画像をニューラルネットワークによって処理することにより、画像中の物体の位置及び物体の両方を識別するステップと、
識別された物体からバイオメトリック特性を抽出するステップと、
バイオメトリック特性を記憶装置に記憶し、及び/又は、少なくともバイオメトリック特性を入力として識別手段へ供給するステップと、
を有し、
識別手段は、バイオメトリック特性がユーザを識別するか否かを判定するために入力を処理することを含む。
一実施形態では、物体は少なくとも1つの指先であり、バイオメトリック特性は当該指先の指紋であり、識別手段によって入力を処理するステップは、指紋から例えばマニューシャの位置や種類等のバイオメトリック特徴を抽出するステップと、抽出されたバイオメトリック特徴と記憶装置に記憶されたバイオメトリック特徴とを比較するステップと、を含み、抽出されたバイオメトリック特徴と記憶されたバイオメトリック特徴との差が閾値を下回る場合、識別手段は指紋によってユーザが識別されると判定し、バイオメトリック特徴と記憶されたバイオメトリック特徴との差が閾値を上回る場合、識別手段は指紋によってユーザが識別されないと判定する。
バイオメトリック特徴は、ユーザのバイオメトリック識別を行うことができる全ての特徴、又は、ユーザの識別をそのバイオメトリック特性や潜在的な他の特性によって少なくとも支援できる任意の特徴とすることができる。
上記閾値は、画像を用いて取り出され又は取得されたバイオメトリック特徴が、記憶されたバイオメトリック特徴と一致しているか否か、及びどの程度一致しているかを示す数値とすることができる。例えば、閾値は0≦x≦1の実数xとすることができる。ここで大きいxは、取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴との差が有意であると認められるが、ユーザの識別は行うことができることを意味している。xが小さいほど、識別結果を得るため、取得されたバイオメトリック特徴は記憶されたバイオメトリック特徴と良好に一致する必要がある。
閾値を必要に応じた値に設定することにより、識別のセキュリティを向上させることができる。
本実施形態のより具体的な実装では、画像は1つより多くの指先を含み、本方法はさらに、識別手段によって画像中の各指先の位置を識別し、ユーザの識別のために各指先の指紋を使用するステップを含む。
例えば識別のために全ての指を使用することにより、ユーザを識別するための方法は失敗しにくくなる。というのも、複数の指紋を偽装するためには相当量のリソースを要することとなり、その可能性は低くなるからである。
本実施形態の一態様では、識別手段は、画像中の全ての指先の指紋の組み合わされた識別精度が所与の閾値を上回ると判定することによって、指先の指紋によりユーザが識別されると判定し、又は、識別手段は、指先ごとに指紋のバイオメトリック特徴と当該指先の指紋の記憶されたバイオメトリック特徴との差が閾値を下回るか否かを判定し、判定された全ての差が対応する閾値を下回る場合にのみ指先の指紋によってユーザが識別されると判定することにより、指先の指紋によりユーザが識別されると判定する。
上述の組み合わされた識別精度は、別々に取り出された各バイオメトリック特徴の識別精度の組み合わせと解すべきものである。これは例えば、各指紋のバイオメトリック特徴は他の指紋とは別々に評価される、ということである。上記の実施形態では、差が所与の閾値を下回る場合、バイオメトリック特徴は記憶されたバイオメトリック特徴と一致するとみなされる。取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴との一致の相対的な値が、識別精度となることができる。例えば、1本の指先の取得されたバイオメトリック特性と記憶されたバイオメトリック特性とが99.9%マッチングする場合、識別精度の値を0.999とすることができる。その際には、全ての識別精度の総和をとることができ、この総和が、例えば取得された1つのバイオメトリック特徴が記憶されたバイオメトリック特徴と一致するとみなされるか否かを示す閾値に依存し得る閾値を上回る場合、ユーザは、取得されたバイオメトリック特徴によって識別されたとみなされる。
一実施形態では、画像はモバイル装置の光学センサとしてのカメラによって取得される。ほぼ全ての現在入手可能なスマートフォンが少なくとも1つのカメラを備えているので、上記実施形態により、本発明の方法は例えばスマートフォン等の現在の世代のモバイル装置に適用可能となる。
一実施形態では、画像を入力としてニューラルネットワークにより処理するステップは、当該ニューラルネットワークの第1層によって入力を処理することにより第1の中間出力を生成するステップと、各層における入力の処理順に深度畳み込み層(depthwise convolutional layer)と、第1のバッチ正規化部と、第1の整流線形ユニット(正規化線形ユニット、rectified linear unit)と、点畳み込み層(pointwise convolutional layer)と、第2のバッチ正規化部と、第2の整流線形ユニットとをそれぞれ有する深度で分離可能な畳み込みである複数の層をニューラルネットワークが有し、各先行層の出力を各後続層によって処理し、前記複数の層を用いて入力を処理することにより、ニューラルネットワークは出力として物体の識別結果と画像中における物体の位置とを得るステップと、を含む。
深度畳み込み層は意図されているところによれば、例えば3×3のサイズのマトリクスであるカーネルを含む、元の画像に相当する特徴マップ(マトリクス)の乗算又は内積を使用して、別のマトリクスを算出する。かかる層を用いることは、識別効率の面でより効率的である。その理由は特に、マックスプーリング層によって情報損失が生じ、この情報損失により、必要な繰り返しが多くなってしまうが、この点において、上記実施形態にて提案する深度畳み込み層は、そのパラメータ感度に関して一般に使用されている畳み込み層より高効率となるからである。
深度畳み込み層及び点畳み込み層は、「深度畳み込みサブレイヤ」及び「点畳み込みサブレイヤ」とも称され得る。実際、これらはニューラルネットワークの「層の中の層」であるから、サブレイヤとなる。
この特殊な実施態様の深度畳み込み層を、上記実施形態における点畳み込み層、バッチ正規化部及び整流線形ユニットと共に適用することにより、ニューラルネットワークが画像中の指先等のバイオメトリック特性を有する物体のリアルタイム識別を行うために必要とされるコンピュータリソースは、現在公知のニューラル技術と比較して有意に削減される。というのも公知のYOLO技術は、使用されるニューラルネットワーク内の層群のうち一層としてマックスプーリング層を利用するからである。
一実施形態では、出力を生成するステップは処理中に画像を、Q×R個のグリッドセルを有するグリッドに分離するステップを含み、当該ステップでは各グリッドセルにおいて少なくとも1つの境界ボックスが作成され、境界ボックスはグリッドセルにおける予め定められた位置と、予め定められた幾何学的特性と、を有し、出力を生成するステップはさらに、境界ボックスの位置及び幾何学的特性を修正することにより、物体の位置に最もマッチングする修正後位置と修正後幾何学的特性とを有する修正後境界ボックスを得るステップを含む。
取得された画像を、事前定義された境界ボックスを有するグリッドセルに分離することにより、最終結果における境界ボックスを用いて物体の位置及び物体自体をマーキングすることによって、識別された物体を的確に表示してそのフィードバックを提供することが可能になる。
本実施形態のより特殊な一実施態様では、境界ボックスの位置は二次元におけるグリッドセルの中心を基準として計算され、境界ボックスの幾何学的特性は境界ボックスの高さ及び幅を含み、さらに、物体が境界ボックス内に含まれる確率が、各境界ボックスに関連付けられる。
境界ボックスを対応する確率に関連付けることにより、境界ボックスを表すマトリクス又はベクトルを提供することが可能になり、また、これをマトリクス又はベクトルの形態で表される他の物体と合成しなければならない場合に、グラフィック処理ユニットによって高精度の効率で処理することができる。これにより、必要なコンピュータリソースが一層削減される。
より具体的には、出力は次元Q×R×B×AのテンソルTとすることができる。ここでAは、各グリッドセル内の相違する境界ボックスの数であり、Bは、次元5を有する各境界ボックスに関連付けられたベクトルであり、Bは以下のように表される。
これにより得られたテンソルは、グラフィック処理ユニットによって高効率で処理することができる。さらに、かかるテンソルの形態で識別結果を供給することにより、特定の物体を識別する確率が最も高い結果を容易に導き出すことができる。
さらに、出力を出力するステップは、画像と、各グリッドセルの中の境界ボックスのうち最も高い確率を有する修正後境界ボックスと、を表示するステップを含むことができる。
最も高い確率を有するグリッドセルのみを供給することにより、それぞれ識別された物体を含む境界ボックスを通じて、ユーザに位置及び物体の識別結果が提供され、かかる境界ボックスは、認識しやすいフィードバックを提供する。さらに、修正後境界ボックスは、上記実施形態において出力として供給される結果テンソルの中で1つのベクトルのみを表すので、ユーザ又は他のプログラムによって容易に抽出することができ、修正後境界ボックスの各座標のみをとることによって更に処理を行うために使用することができる。
画像中における指先の位置を識別する上述の手法は、他の手法より使用リソース量が少なくなるため好適となり得るが、他の手法も用いることができる。例えば、指先が存在する可能性がある領域について最初に提案をすることができる。その後、かかる提案を処理することにより、提案の領域内に指先等の物体が本当に存在するか否かを見出すことができる。
他の一実施形態では、画像をニューラルネットワークによって処理するステップは、画像中の各画素の色値を表す少なくとも1つのマトリクスIを当該画像から作成して、当該マトリクスを入力としてニューラルネットワークへ供給するステップを含み、ここで画像はN×M個の画素を有し、マトリクスIはN×M個の値を有するマトリクスであり、マトリクスIの成分はIijによって与えられ、ここでi及びjは整数であり、i=1・・・N、j=1・・・Mである。
画像を色値ごとにマトリクスに分離することにより、各色値を別個に処理することができ、これによって識別効率を向上し、なおかつ所要コンピュータリソースを削減できるという利点が奏される。
より具体的には、各深度畳み込み層はマトリクスIに、サイズS×Tのマトリクスである予め定義されたカーネルKを適用し、ここでS,T<N、S,T<Mであり、成分Sabを含み、マトリクスにカーネルを適用することは、マトリクスKと、マトリクスZのサイズ(N×M)S,Tの各削減マトリクスRと、の内積を算出することを含み、ここで、マトリクスRはカーネルKと等しいサイズを有し、マトリクスZはサイズ((N+2Pw)×(M+2Ph))を有し、
であるマトリクスZcdの成分は、
によって与えられ、出力として、
のサイズを有するマトリクスPを提供し、ここで、Ww及びWhはストライド幅を定義し、マトリクスPの各成分Pijはij番目の削減マトリクスRとカーネルKとの内積の値であり、マトリクスPは深度畳み込み層から出力として第1のバッチ正規化部へ供給される。
かかるカーネルにより、特徴マップにおいて隣り合う画素から得られた情報を適切に重み付けすることができると共に如何なる情報も失われることがなくなり、このことによって、ニューラルネットワークにおいて複数の連続する層が物体の識別をサポートできる効率を向上することができる。こうするためにカーネルは、画像を受け取る前すなわちニューラルネットワークの訓練中に得られた特定の重み又はパラメータに相当する成分を含む。
本発明の一認識は、上記実施形態の各方法を実施できるアプリケーション又は他のプログラムが実際にモバイル装置に装備される前に上記の訓練が行われる場合、このモバイル装置上で必要とされるコンピュータリソースを削減できるという利点が得られることである。
深度畳み込み層と点畳み込み層とを用いて分離可能な畳み込みを実装することは、この組み合わせが識別及び所要コンピュータリソースの観点で性能改善を示すという理由により最も有利であるというのが本発明の認識であるが、深度畳み込み層を指又は指先の識別に特化した畳み込み層に置き換えることも可能である。よって、本発明の説明は深度畳み込み層の使用に着目してなされているが、畳み込み層を用いて本発明を実装することも可能である。
他の一実施形態では、バッチ正規化部はマトリクスPからV=(ΣijPij)/(n・m)を計算することによって平均値Vを算出し、成分P’ij=Pij-Vを有するバッチ正規化された削減マトリクスP’を作成する。
このような正規化を施すことにより、各層による画像の処理全体を通じてオーバーエクスポジション等の意図しない作用をフィルタリング除去することができ、これにより画像中の物体を識別する効率を向上することができる。
さらに、全ての畳み込み層においてカーネルのサイズS及びTを等しくすることができ、又は、少なくとも1つの畳み込み層についてカーネルのサイズS及びTが異なることができる。
各畳み込み層(すなわち複数の各深度畳み込み層)について同一のカーネルを選択することにより、これにより得られる、対応するモバイル装置にインストールされるプログラムのサイズを削減することができる。一方、畳み込み層のうち少なくとも1つについて異なるカーネルを使用すると、カーネルが適切に構成されていれば、識別失敗に関する公知の問題を回避することができる。例えば、識別プロシージャの開始の際に大きなカーネル(サイズS及びTが大きいことに相当する)を用いると、画像のより重要な部分を取り出して照準を当てることができ、これにより識別効率を向上することができる。
特殊な一実施形態では、サイズS,T=3であり、全ての深度畳み込み層においてサイズS,Tは等しく、成分のうち少なくとも1つはSa’b’≠Sa≠a’,b≠b’である。
また、本発明の一認識は、対応するカーネルは当該カーネルのサイズと、識別効率と、各方法を実装するために必要なコンピュータリソースと、の間で最良のトレードオフとなり、これによって識別精度及び所要コンピュータリソースに対して全体的な効率を向上することができる。
他の一実施形態では、バッチ正規化部は正規化された削減マトリクスP’を整流線形ユニットへ供給し、整流線形ユニットは各成分P’ijに、
を有する
を計算する整流関数(正規化線形関数、rectification function)を適用する。この
は、整流線形ユニットが第1の整流線形ユニットである場合には点畳み込み層へ出力として供給され、又は、整流線形ユニットが第2の整流線形ユニットである場合にはニューラルネットワークの次の層へ供給される。
この整流関数によって、ニューラルネットワークの各層の後に、識別精度に悪影響を与える可能性のある画像中の部分をフィルタリング除去することができる。
これにより、誤識別の数を削減することができ、また、これに応じて適切な識別精度を達成するために必要な反復回数も削減することができ、これによりコンピュータリソースを節約することができる。
また、点畳み込み層が、先行層から受け取った
の各成分に重みαを乗算することにより、
に重みαを付与するよう構成することもできる。
特徴マップ内の各点に同一の重みαを付与した場合でも、本実施形態は画像中の一部(識別に有意な影響を及ぼさないマトリクス中の成分に相当する一部)を効率的に減衰することができる。この減衰は、マトリクス中のかかる一部の絶対的な寄与度を低減し、整流線形ユニットと共に次のサイクルで当該一部を除外することにより達成される。
好適な一実施形態では、上記で説明した方法の各ステップはモバイル装置上で実施される。
これは少なくとも、画像の処理とユーザの識別とを含む上記の方法のステップを含むことができる。ここでも、画像又はバイオメトリック特徴又はバイオメトリック特性の記憶はモバイル装置の内部又は外部の任意の記憶装置によって行うことができる。さらに、ユーザを識別する識別ステップを、例えば会社のサーバ等のモバイル装置とは別の装置上で行うことも可能である。
各ステップを専らモバイル装置上でのみ行うことにより、例えば、実際の識別プロセスを実行するサーバ等へのデータ伝送のためにチャネルを空けておく必要が無くなる。よって物体識別は、モバイルネットワーク又はローカルエリアネットワークへアクセスできない領域でも用いることができる。
また、手の指等の三次元の本物の物体を当該本物の物体の二次元のスプーフと区別するためのコンピュータ実装された方法を提供することができ、本方法は、
モバイル装置の光学センサによって、スプーフ又は本物の物体を含む画像を取得することと、
画像をニューラルネットワークへ供給することと、
ニューラルネットワークによって画像を処理することと、
を含み、
処理は、
画像内の物体の少なくとも一部に該当する複数の画素から光学センサまでの距離を表す距離マップと、
画像内の物体の少なくとも一部に該当する複数の画素に関連付けられる光反射を表す反射パターンと、
のうち少なくとも1つを計算することを含み、
処理はさらに、好適にはニューラルネットワークを用いて、計算された距離マップ又は計算された反射パターンのうち少なくとも1つと、学習済みの距離マップ又は学習済みの反射パターンとを比較することを含み、
比較の結果に基づいて、画像がスプーフ又は本物の物体のいずれかを含むことを判断する。
原則的に、三次元の本物の物体の画像が人間の本当の指等の意図された物体のスプーフである場合もあり得るかもしれないが、本発明では、三次元の物体は本物の物体であろうと想定する。本物の物体の二次元のスプーフは何でも良いが、通常は本物の物体を撮影した当初の画像となるであろうし、ここではそのことを予定している(例えば、光学センサに対する紙又は他のあらゆる平坦な表面8であり、この画像をさらに光学センサが撮影する)。しかし、本物の物体の(ほとんど二次元の扁平な)模型等の二次元のスプーフの他の実現態様もあり得る。いずれの場合においても、本発明でいうところのスプーフは、本物の物体の三次元の再現ではないことを意図している。
距離マップとは、光学センサによって取得された当初の画像中の特定の画素と、当該特定の画素から光学センサまでの推定距離又は算定距離とを関連付ける、例えばマトリクス又は表又は他の構造等のデータ構造を構成するものを意味する。画素はデータ構造に過ぎないため、画素そのものが光学センサまでの距離を有するものではないことが明らかである。その意味するところは、光学センサによって画像を撮影することにより取得された物体が、元々は光学センサまでの距離を有していた、ということである。よって、取得された画像中の各画素は実世界における一点を表し、よって、画像が撮影された時点での実世界における当該一点から光学センサまでの距離に依然として関連付けられている、ということになる。
画像内の物体の少なくとも一部に該当する複数の画素に関連付けられた光反射を表す反射パターンについても、同様のことが当てはまる。ここで、画素そのものが反射パターンを実現するものではなく、元の物体(又はこの本物の物体の二次元のスプーフ)が、光反射を表す反射パターンを有していたことが明らかである。この反射パターンは、光学センサによって取得された画像情報に基づいて算出することができる。距離マップと同様、反射パターンもマトリクス又は二次元の表等のデータ構造の形態を有することを意図している。
計算された距離マップは学習済みの距離マップと比較され、又は、計算された反射パターンは学習済みの反射パターンと比較される。ここで、学習済みの距離マップ及び学習済みの反射パターンは、本物の物体の距離マップ又は本物の物体の二次元のスプーフの距離マップに該当することがニューラルネットワークに既知となっている距離マップと、本物の物体の反射パターン又は本物の物体の二次元のスプーフの反射パターンに該当することがニューラルネットワークに既知となっている反射パターンと、に相当する。計算された距離マップと学習済みの距離マップとの比較又は計算された反射パターンと学習済みの反射パターンとの比較により、本物の物体と当該物体のスプーフとを区別するために使用できる結果が得られ、この区別は例えば、得られた距離マップ又は反射パターンが、スプーフに該当する学習済みの距離マップ又は反射パターンと一致する可能性の方が、本物の物体に該当する学習済みの距離マップ又は反射パターンと一致する可能性より高いと判断することにより行われる。
本発明の方法により、本物の物体と本物の物体のスプーフとを効率的に区別することができる。というのも、使用されるニューラルネットワークは、画像内の物体に関する固有の特性を求めるため、撮影された画像と学習済みの情報(学習済みの距離マップ及び学習済みの反射パターン等)との類似度を高信頼性で判断できるからである。よって本方法は、本物の物体に関する画像中の情報が、ユーザを識別するために使用される指先を有する指等のセキュリティ上センシティブな情報である場合にも適用可能であり、かかる物体を撮影した画像の悪用を防止することができる。
一実施形態では、距離マップ及び反射パターンを計算して学習済みの距離マップ及び学習済みの反射パターンと比較することにより、この比較結果に基づいて、画像がスプーフ又は本物の物体のいずれかを含むことを判断する。計算された距離マップと計算された反射パターンの両方を使用することにより、物体の画像が示しているのがスプーフであるか本物の物体であるかの判断の信頼性を向上することができ、これによって、識別がセキュリティ関連の事項のためにさらに使用される場合の識別の信頼性及びセキュリティをさらに向上することができる。
一実施形態では、カメラである光学センサに関連付けられたフラッシュを使用しながら、画像を光学センサによって取得する。カメラのフラッシュを使用することによって、画像の取得元の領域の部分が強調され、これにより、より高信頼性で反射パターンを高精度で計算することができ、また、本物の物体のスプーフと本物の物体とをより容易に区別することができる。
さらに、ニューラルネットワークは複数の層を備えることができ、最後の層は、処理中に判断された本物の物体に関する出力を供給する第1のノードと、処理中に判断されたスプーフに関する出力を供給する第2のノードの、2つのノードを有する。
本発明では、画像上で取得されたものが本物の物体であるか本物の物体のスプーフであるかにかかわらず、これら両ノードは、画像が撮影されるごとに出力を供給するように構成されている。この出力は後で、画像上で取得された物体が本物の物体であるか又はスプーフであるかの確率論的な判断を行うために、さらに処理されることができる。
本実施形態のより具体的な一態様では、各ノードは画像の処理に応じて-∞~+∞の範囲の出力を供給し、各ノードの出力は出力正規化部に通され、出力正規化部は最初に各ノードの出力xiを取り、S(x)=ex/(1+ex)によって、削減された値S(xi)を算出する。ここで、第1ノードの場合にはi=1であり、第2ノードの場合にはi=2であり、出力正規化部は正規化関数
へ値S(xi)を供給し、これにより正規化値σ(S(x1))≡σ1及びσ(S(x2))≡σ2が得られる。第1ノード及び第2ノードの出力をこのようにさらに処理することにより、第1ノード及び第2ノードに基づいて計算された正規化値が得られ、これにより、画像中にあるのがスプーフであるか又は本物の物体であるかを判断するための第1及び第2ノードの当該出力の統計的評価を行うことができる。
一実施形態では、σ1>0.5である場合には画像は本物の物体を含むと判断し、σ2>0.5である場合には画像はスプーフを含むと判断する。第1及び第2ノードの出力の正規化値を使用することにより、本物の物体とスプーフとを高信頼性で区別することができる。
ここで留意すべき点は、本実施形態が好適である理由は、その指数関数をコンピューティングシステムで容易に実装することができ、これにより必要な処理労力を削減できることである。さらに、指数関数はコンピューティングシステムによって容易に処理することができ、これにより、結果を計算するために必要な処理性能や他の計算リソースを削減することができる。
一実施形態では、画像を入力としてニューラルネットワークにより処理することは、当該ニューラルネットワークの第1層によって入力画像を処理することにより第1の中間出力を生成することと、各層における入力の処理順に深度畳み込み層(depthwise convolutional layer)と、第1のバッチ正規化部と、第1の整流線形ユニット(正規化線形ユニット、rectified linear unit)と、点畳み込み層(pointwise convolutional layer)と、第2のバッチ正規化部と、第2の整流線形ユニットとをそれぞれ有する深度で分離可能な畳み込みである複数の層をニューラルネットワークが有し、各先行層の出力を各後続層によって処理し、前記複数の層を用いて入力を処理することにより、ニューラルネットワークは出力として、画像が本物の物体又はスプーフのいずれかを含むとの判断結果を得ることと、を含む。
深度畳み込み層は意図されているところによれば、元の画像に相当するマトリクス又は距離マップに相当するマトリクス又は反射パターンに相当するマトリクスのいずれかのマトリクスと、例えば3×3のサイズのマトリクスであるカーネルと、の乗算又は内積を使用して、別のマトリクスを算出する。かかる層を用いることは、処理効率の面でより効率的である。この点において、上記実施形態にて提案する深度畳み込み層は、そのパラメータ感度に関して一般に使用されている畳み込み層より高効率となる。
深度畳み込み層及び点畳み込み層は、「深度畳み込みサブレイヤ」及び「点畳み込みサブレイヤ」とも称され得る。実際、これらはニューラルネットワークの「層の中の層」であるから、サブレイヤとなる。
この特殊な実施態様の深度畳み込み層を、上記実施形態における点畳み込み層、バッチ正規化部及び整流線形ユニットと共に適用することにより、ニューラルネットワークが画像中のスプーフのリアルタイム判定を行うために必要とされるコンピュータリソースは、現在公知の技術と比較して有意に削減される。
他の一実施形態では、画像をニューラルネットワークによって処理することは、少なくとも1つのマトリクスIを当該画像から作成して、当該マトリクスを入力としてニューラルネットワークへ供給するステップを含み、ここで画像はN×M個の画素を有し、マトリクスIはN×M個の値を有するマトリクスであり、マトリクスIの成分はIijによって与えられ、ここでi及びjは整数であり、i=1・・・N、j=1・・・Mである。
ここで留意すべき点は、マトリクスIは、元の画像のRGB色値のうち1つに相当するマトリクスとすることができることである。しかし好適なのは、マトリクスIを作成する前に元の画像をHSV色空間に変換することにより、元の画像からマトリクスIを得ることである。HSV色空間とは、色相-彩度-明度(Hue-Saturation-Value)の色空間のことである。取得当初の画像をHSV色空間に変換することは、元の画像に含まれる画素数がN×Mである場合、変換後の画像がそれぞれN×M個の画素又はデータ成分を含むことができる。よってマトリクスIは、変換後の画像中のN×M個の要素から得ることができる。
取得当初の画像の画素数はN×Mより多くすることができると解すべきである。この画素数は、色相-彩度-明度変換を適用する前又は適用した後にN×Mに削減することができる。この変換が特に有利である理由は、HSV変換は、各画素に関連付けられた色情報(すなわちRGB値)から各画素のluma情報を分離するからである。このようにして、距離マップ及び反射パターンをより効率的に計算することができる。
より具体的には、各深度畳み込み層はマトリクスIに、サイズS×Tのマトリクスである予め定義されたカーネルKを適用し、ここでS,T<N、S,T<Mであり、成分Sabを含み、マトリクスにカーネルを適用することは、マトリクスKと、マトリクスZのサイズ(N×M)S,Tの各削減マトリクスRと、の内積を算出することを含み、ここで、マトリクスRはカーネルKと等しいサイズを有し、マトリクスZはサイズ((N+2Pw)×(M+2Ph))を有し、
であるマトリクスZcdの成分は、
によって与えられ、出力として、
のサイズを有するマトリクスPを提供し、ここで、Ww及びWhはストライド幅を定義し、マトリクスPの各成分Pijはij番目の削減マトリクスRとカーネルKとの内積の値であり、マトリクスPは深度畳み込み層から出力として第1のバッチ正規化部へ供給される。
かかるカーネルにより、導入されたマトリクスにおいて隣り合う画素から得られた情報を適切に重み付けすることができると共に如何なる情報も失われることがなくなり、このことによって、ニューラルネットワークにおいて複数の連続する層がスプーフであるか又は本物の物体であるかを判断するための処理をサポートする効率を向上することができる。こうするためにカーネルは、画像を受け取る前すなわちニューラルネットワークの訓練中に得られた特定の重み又はパラメータに相当する成分を含む。
本発明の一認識は、上記実施形態の各方法を実施できるアプリケーション又は他のプログラムが実際にモバイル装置に装備される前に上記の訓練が行われる場合、このモバイル装置上で必要とされるコンピュータリソースを削減できるという利点が得られることである。
深度畳み込み層と点畳み込み層とを用いて分離可能な畳み込みを実装することは、この組み合わせが識別及び所要コンピュータリソースの観点で性能改善を示すという理由により最も有利であるというのが本発明の認識であるが、深度畳み込み層を指又は指先の識別に特化した畳み込み層に置き換えることも可能である。よって、本発明の説明は深度畳み込み層の使用に着目してなされているが、畳み込み層を用いて本発明を実装することも可能である。
さらに、全ての畳み込み層においてカーネルのサイズS及びTを等しくすることができ、又は、少なくとも1つの畳み込み層及び/若しくはカーネルKの少なくとも1つの成分Sa’b’≠Sa≠a’,b≠b’についてカーネルのサイズS及びTが異なることができる。
各畳み込み層(すなわち複数の各深度畳み込み層)について同一のカーネルを選択することにより、これにより得られる、対応するモバイル装置にインストールされるプログラムのサイズを削減することができる。一方、畳み込み層のうち少なくとも1つについて異なるカーネルを使用すると、カーネルが適切に構成されていれば、識別失敗に関する公知の問題を回避することができる。例えば、識別プロシージャの開始の際に大きなカーネル(サイズS及びTが大きいことに相当する)を用いると、画像のより重要な部分を取り出して照準を当てることができ、これにより識別効率を向上することができる。
また、本発明の一認識は、対応するカーネルは当該カーネルのサイズと、識別効率と、各方法を実装するために必要なコンピュータリソースと、の間で最良のトレードオフとなり、これによって識別精度及び所要コンピュータリソースの面で全体的な効率を向上することができる。
他の一実施形態では、バッチ正規化部は正規化された削減マトリクスP’を整流線形ユニットへ供給し、整流線形ユニットは各成分P’ijに、
を有する
を計算する整流関数(正規化線形関数、rectification function)を適用する。この
は、整流線形ユニットが第1の整流線形ユニットである場合には点畳み込み層へ出力として供給され、若しくは、整流線形ユニットが第2の整流線形ユニットである場合にはニューラルネットワークの次の層へ供給され、及び/又は、点畳み込み層が、
の各成分に重みαを乗算することにより、先行層から受け取った
に重みαを付与する。
この整流関数によって、ニューラルネットワークの各層の後に、スプーフ及び本物の物体の判断精度に悪影響を与える可能性のある画像中の部分をフィルタリング除去することができる。
内の各点に同一の重みαを付与した場合でも、本実施形態は画像中の一部(識別に有意な影響を及ぼさないマトリクス中の成分に相当する一部)を効率的に減衰することができる。この減衰は、マトリクス中のかかる一部の絶対的な寄与度を低減し、整流線形ユニットと共に次のサイクルで当該一部を除外することにより達成される。
好適な一実施形態では、上記で説明した方法の各ステップはモバイル装置上で実施される。これは少なくとも、画像の処理と本物の物体及びスプーフの判断とを含む上記の方法のステップを含むことができる。ここでも、画像の記憶、又は、物体が本物の物体であってスプーフではないと判断された場合に画像から抽出されたバイオメトリック特徴若しくはバイオメトリック特性を用いてユーザを識別する等の以降行われるいずれのステップも、任意の記憶装置によって、画像をモバイル装置の内部又は外部にて処理することにより行うことができる。さらに、本物の物体から取得された情報を用いて以降行われるユーザを識別する識別ステップは、例えば会社のサーバ等のモバイル装置とは別の装置上で行うことも可能である。
各ステップを専らモバイル装置上でのみ行うことにより、例えば、実際の識別プロセスを実行するサーバ等へのデータ伝送のためにチャネルを空けておく必要が無くなる。よって物体識別は、モバイルネットワーク又はローカルエリアネットワークへアクセスできない領域でも用いることができる。
本発明のモバイル装置は、光学センサと、プロセッサと、実行可能な指令を記憶する記憶ユニットと、を備えており、当該指令は、モバイル装置のプロセッサによって実行されたときにプロセッサに上記のいずれかの実施形態の方法を実行させるものである。
一実施形態では、ユーザの例えば1つの指紋又は複数の指先の指紋のセット等のバイオメトリック特性を有する当該ユーザの物体の画像を用いて当該ユーザを識別するため方法を提供し、本方法は、
モバイル装置の光学センサによって物体の画像を取得するステップと、
画像又は画像の一部をニューラルネットワークへ供給するステップと、
前記ニューラルネットワークによって、前記画像又は前記画像の一部のうち関心領域(以下「ROI」という)を含む部分を当該画像の他の部分から区別することを含む、前記画像又は前記画像の一部をニューラルネットワークによって処理するステップと、
前記画像又は前記画像の一部からROIを抽出するステップと、
ROIを含む部分を記憶装置に記憶し、及び/又は、ROIを含む部分を入力として識別手段へ供給するステップと、を有し、
識別手段は、ROIのバイオメトリック特性を抽出することと、抽出したバイオメトリック特性がユーザを識別するか否かを判定するため、抽出したバイオメトリック特性を処理することと、を含む。
バイオメトリック特性を有するユーザの物体は、それが保有するそのバイオメトリック特性により当該ユーザを識別するために適したもの、すなわち当該ユーザを他の可能性のあるどのユーザとも区別するために適したものであれば、如何なる物体とすることもできる。これは例えば、指紋又は眼の虹彩又は手の掌紋に当てはまり、また、顔の幾何学的特徴にも当てはまる。また、例えば足形等もユーザを識別して他人から区別するために用いることができる。よって、物体は例えば指先、指、顔、眼、手のひら、又は足等とすることができる。適したものとみなし得る物体は他にも存在する。以下の詳細な説明では、通常は物体一般を参照し、又は一例として指先を参照するが、全ての実施形態が上記の物体のうちいずれか1つ又は複数を単独又は互いに組み合わせて用いて実現することができることが明らかである。
関心領域とは、物体の画像のうち実際にバイオメトリック特性を有する領域である。また、関心領域は好適には、物体の画像に含まれる部分であって、当該画像の部分を用いたときにユーザを高信頼性で識別できるようにバイオメトリック特性を提示する部分であり、具体的には、物体の当該部分又はバイオメトリック特性の当該部分である。例えば、指紋を有するのは指先全体であるが、この指先の画像を撮影すると、指先の一部が光学センサの方を向かないため画像中において傾いて見えてしまい、例えば指紋の他の部分より暗くなることがある。通常、かかる「曖昧な」領域は実際にはユーザを識別するために適していないため、関心領域を構成しない。
本発明ではニューラルネットワークは、画像を処理することによって画像のうち関心領域を含む部分と関心領域を含まない他の部分とを区別できるように訓練され、及び/又は、かかる区別を行える適性を他の態様で獲得したものである。これは種々の手法で達成することができるので、本発明を限定するものと解すべきものではない。ROIを含む領域をニューラルネットワークが他の領域から「区別する」とは、ROIと画像の他の領域とを区別する出力をニューラルネットワークが出力できる能力を有すること、又は、ニューラルネットワークがこれらの領域の区別を可能にすることを意味する。例えば、出力は、ROIを含むがROIの他の領域を含まない画素の示唆とすることができる。いずれの場合においても、ニューラルネットワークによる画像の処理の結果は少なくとも、当該画像のうち関心領域を含む第1の部分が他の部分と異なることが識別されたことを含む。この点については、関心領域の具体的なサイズ、形状や位置は、ニューラルネットワークが画像の処理によって発見するものであり、事前設定されるものではないことに留意すべきである。
この点において、本発明の方法は、物体の画像の自由形態の撮影を対象とすることを意図したものである。すなわち、物体の画像は、ユーザが光学センサに対して物体をどのように位置決めすべきかを定義するテンプレート又は他のマスクをユーザに提示して撮影されるものではない。
識別手段は、画像を撮影するために用いられるモバイル装置から遠隔の場所とするか、又はモバイル装置に設けられるものとすることができる。さらに、ニューラルネットワークはモバイル装置上に設けるか、又はモバイル装置から遠隔の場所とすることができることに留意すべきである。後者の場合、画像はニューラルネットワークにより処理される前にモバイル装置から、ニューラルネットワークが設けられている遠隔の場所に転送される。
また、画像又は画像の一部をニューラルネットワークへ供給することは、光学センサによって取得されたそのままの状態で画像又は画像の一部を供給することのみを含むものでない点に留意すべきである。具体的には例えば、バイオメトリック特性を有する物体を含む可能性が最も高い元の画像又は画像の半分又は画像の特定の部分がニューラルネットワークへ供給される。さらに、当該ステップは元の画像の前処理を含むことができ、この前処理は例えば、画像の明るさの変更、又は画像を複数の個別の色画像に分離すること等により行われる。本発明はこの点で限定されることはない。
本発明は、後続の処理のために、具体的には、抽出されたバイオメトリック特性がユーザを識別するか否かを高精度で判定する処理のために関心領域を取得し、これにより必要なデータ転送量を有意に削減し、また、識別手段によるバイオメトリック特性の処理を簡素化することを可能にするものである。というのも、関心領域を保有しない画像の残りの部分により識別手段に及ぼされる干渉影響を回避できるからである。
一実施形態では、物体は少なくとも1つの指先であり、バイオメトリック特性は指先の指紋であり、識別手段によって入力を処理することは、指紋からバイオメトリック特徴を、例えばマニューシャの位置及び種類等を抽出するステップと、抽出されたバイオメトリック特徴を、記憶装置に記憶されたバイオメトリック特徴と比較するステップと、を含み、抽出されたバイオメトリック特徴と記憶されたバイオメトリック特徴との差が閾値を下回る場合、識別手段は指紋によってユーザが識別されると判定し、バイオメトリック特徴と記憶されたバイオメトリック特徴との差が閾値を上回る場合、識別手段は指紋によってユーザが識別されないと判定する。
閾値は例えば数値とすることができる。例えば、閾値は0~1の数値とすることができ、その際には0は、バイオメトリック特徴と記憶されたバイオメトリック特徴との完全一致に該当し、1は、バイオメトリック特徴と記憶されたバイオメトリック特徴との不一致に該当することができる。画像を取得することについては、100%一致とはならないリスクが常に存在することを考慮すると共に、例えばユーザが銀行口座にアクセスしたい場合、ユーザを識別するためには識別精度が非常に高くなければならないことを考慮するためには、閾値は0付近に設定することができ、例えば0.02又は0.04に設定することができる。しかし、他の任意の値も可能である。
抽出されたバイオメトリック特徴と記憶されたバイオメトリック特徴との差は、例えば、取得された画像の使用される関心領域の画素ごとに算出することができる。具体的には、画素ごとに、記憶されたバイオメトリック特徴の値と抽出されたバイオメトリック特徴の値(例えば明度値又は色値等)との差を求めることができる。その際には例えば、これらの各値を0~1の範囲に正規化することができる。ROIの全ての画素について又はROIの画素のサブセットについて上述の正規化された値の平均値が閾値を下回る場合、識別手段は、指紋によってユーザが識別されると判定することができ、当該平均値が閾値を下回らない場合には、指紋によってユーザが識別されないと判定することができる。
抽出されたバイオメトリック特徴と記憶されたバイオメトリック特徴との差を算出するための他の手段も考えられる。
この算出と、閾値との比較とを用いることにより、得られたバイオメトリック特徴がユーザを識別するものであるか否かを高信頼性で判定することができる。
より具体的な一具現化では、画像は複数の指先を有し、方法はさらに、画像中における各指先に対応する部分を抽出し、識別手段によるユーザの識別のために各指先の指紋を使用することを含む。
この実施形態は、識別のために複数の指先を用いるので、ユーザの識別の精度を向上させるために有利となり得る。
さらに、識別手段が、画像中の全ての指先の指紋の組み合わされた識別精度が特定の閾値を上回ると判定することによって、指先の指紋によりユーザが識別されると判定し、又は、識別手段が、指先ごとに指紋のバイオメトリック特徴と当該指先の当該指紋の記憶されたバイオメトリック特徴との差が閾値を下回るか否かを判定し、判定された全ての差が対応する閾値を下回る場合にのみ指先の指紋によってユーザが識別されると判定することにより、指先の指紋によりユーザが識別されると判定するように構成することも可能である。
閾値は、上記のように特定することができる。抽出されたバイオメトリック特徴と記憶されたバイオメトリック特徴との差も同様に、既に上記で述べた通りに求めることができ、又は他の任意の適した態様で求めることができる。
抽出されたバイオメトリック特徴と記憶されたバイオメトリック特徴との別々の差を用いることにより、又は組み合わされた識別精度を用いることにより、ユーザの識別を高信頼性で行うことができる。これについては、組み合わされた識別精度は例えば、複数の異なる指紋について得られた全ての識別精度の平均値とすることができる。
一実施形態では、画像はモバイル装置の光学センサとしてのカメラによって取得される。
現在の世代の全てのスマートフォンがかかるカメラを備えているので、本方法は多くのユーザが使用することができ、これにより、例えば銀行口座にログインするために必要な識別を簡単にすることができる。
他の一実施形態では、画像又は画像の一部をニューラルネットワークによって処理するステップは、エンコーダによって画像を処理することにより符号化済み画像を得ることと、その後、符号化済み画像をデコーダによって処理することにより復号化済み出力画像を得ることと、を含む。
ここで「デコーダ」及び「エンコーダ」は、「暗号化(encrypting)及び復号化(decrypting)」の意味で解すべきものではなく、以下の意味に解すべきものである。エンコーダは画像を「第1の方向」に処理するもの、具体的には、画像に特定の変換を施すことにより修正済み画像(符号化済み(encoded)画像)を得るものである。かかる変換には、元の画像のサイズを低減する変換及び/又は各画素若しくは画像を表現するマトリクスの各成分に関連付けられた値を変更する変換を含み得る。そしてデコーダは、符号化済み画像を処理して復号化済み(decoded)出力画像を得るものであり、この復号化済み出力画像は好適には、元の入力と少なくとも同数の画素を有する。この点において、デコーダは本発明では、エンコーダによって施された変換を少なくとも部分的に元に戻すものである。しかし、符号化済み画像の復号化は、復号化と符号化とが画像に施される互いに逆の変換と必ずなるように元の入力画像を回復しなければならないものではない。
本実施形態により、画像においてROIを識別することに関連する情報を得て、この識別結果を元の画像にマッピングすることにより、関連する画素を抽出することができる。
これについては、処理のためにニューラルネットワークへ供給される画像又は画像の一部がN×M個の画素を有し、符号化済み画像がn×m個の画素を有し、ここでn<N、m<Mであり、復号化済み出力画像はN×M個の画素を有するように構成することが可能である。
画像の符号化時に画素数を低減すると情報の損失となる。しかし、復号化の際に画像を拡大して戻すと、画像の他の部分からROIを区別するために最も関連する情報を、より見分けやすくなる。というのも、この処理によって、ROIの識別に必要でない非関連情報又は非常に細かい情報がフェードアウトするからである。
具体的には、画像又は画像の一部のうち部分を区別することは、復号化済み出力画像の一部を他の部分から区別することを含む。
復号化済み画像におけるこれらの部分の区別は、ROIを含む部分を元の画像の他の部分から区別する場合と比較して格段に容易となり得る。よって、復号化済み出力画像におけるある部分を他の部分から区別するために必要な処理能力は、元の入力画像を処理する場合と比較して有意に削減される。
他の具体的な一具現化では、バイオメトリック特性を含む部分を抽出することは、復号化済み出力画像において、区別された部分(すなわちROI)内にある画素を識別し、その後、復号化済み出力画像における区別された部分内にある画素を、元の画像又は画像の一部に含まれる対応する画素を用いて識別することと、元の画像又は画像の一部から、画像又は画像の一部のうちバイオメトリック特性を含む部分に該当する対応する画素を抽出することと、を含む。
復号化済み出力画像の画素数は入力画像の画素数に等しいので、ROIを含むとして識別された復号化済み出力画像の部分を元の画像の部分と容易に照合することができ、これによりROIを入力画像から抽出することが容易になる。
本方法はさらに、復号化出力画像中の各画素が値x∈]-∞;+∞[を有し、復号化出力画像の部分を区別する前に、復号化出力画像中の各画素に活性化関数S(x)=1/(1+e-x)を適用し、復号化出力画像中の各画素に
を関連付け、前記区別は、
を有する画素について行うことができる。
これにより、ROIを含む部分が、ROIを含まない他の部分から一層区別しやすくなり、これにより、復号化済み出力画像においてROIを識別する精度を向上することができる。
一実施形態では、ニューラルネットワークは、エンコーダ層のセットとデコーダ層のセットとを有し、エンコーダによって画像又は画像の一部を処理することにより符号化済み画像を得ることは、当該エンコーダの第1層によって入力を処理することにより第1の中間符号化出力を生成することと、エンコーダの各先行層の符号化出力をエンコーダの各後続層によって処理することと、を有し、各エンコーダ層は、各層における入力の処理順に、深度畳み込み層と、第1のバッチ正規化部と、第1の整流線形ユニットと、点畳み込み層と、第2のバッチ正規化部と、第2の整流線形ユニットとをそれぞれ有する、深度で分離可能な畳み込みであり、複数の層を用いて入力を処理することにより、エンコーダは符号化済み画像を得られ、符号化済み画像はデコーダへ供給され、符号化済み画像をデコーダによって処理することにより復号化済み出力画像を得ることは、当該デコーダの第1層によって入力を処理することにより第1の中間復号化出力を生成することと、デコーダの各先行層の復号化出力をデコーダの各後続層によって処理することと、を有し、各デコーダ層は、逆畳み込み層及び/又はバイリニアアップサンプリング層を有し、入力された符号化済み画像を複数の層を用いて処理することにより、デコーダは復号化済み出力画像を得られる。この説明全体において「復号化済み画像」及び「符号化済み画像」並びに「復号化済み出力画像」及び「符号化入力画像」との用語を用いるが、これらの「画像」との用語は、通常の意味で解される画像ではない場合があることに留意すべきである。実際にはその画像情報は、ニューラルネットワークの各層による処理により変わり、符号化済み「画像」及び復号化済み「画像」の各画像が、人間により通常認識可能な情報を含まなくなることがある。よって、これら各用語はあくまで説明目的で用いられるものであると解すべきである。一般に、符号化済み「画像」及び復号化済み「画像」の各画像はテンソル又は特定のサイズのマトリクスである。
エンコーダ及びデコーダの上述のような構成により、復号化済み出力画像について有利な結果が奏され、ROIと元の入力画像又は画像の一部の他の部分とを正確に区別することができる。
画像をニューラルネットワークにより処理するステップは、画像又は画像の一部から、画像又は画像の一部の各画素の色値を表す少なくとも1つのマトリクスIを生成するステップと、マトリクスをニューラルネットワークへ入力として供給するステップと、を含み、画像又は画像の一部はN×M個の画素を有し、マトリクスIはN×M個の値を有するマトリクスであり、マトリクスIの成分はIijによって与えられ、ここでi及びjは整数であり、i=1・・・Nかつj=1・・・Mである。
これにより、ニューラルネットワークによる処理前に画像の処理を単一の色値の処理に制限することができ、これにより処理をより容易にし、その結果をより正確にすることができる。
さらに、エンコーダの各深度畳み込み層は、サイズS×Tのマトリクスである予め定められたカーネルKであって成分Sabを有するカーネルKを、
である成分Aijを有するマトリクスAであって入力として受け取ったマトリクスAに適用し、ここで
S,T<N;S,T<Mであり、カーネルをマトリクスに適用することは、サイズ(N+2Pw)×(M+2Ph)を有するマトリクスZのサイズ(N×M)S,Tの各削減マトリクスRとマトリクスKとの内積を算出することを含み、マトリクスRはカーネルKと同一サイズであり、マトリクスZの成分Zcdは、
により与えられ、
であり、出力として、
のサイズを有するマトリクスPが供給され、ここでWw及びWhはストライド幅を定義し、マトリクスPの各成分Pijは、ij番目の削減マトリクスRとカーネルKとの内積の値であり、マトリクスPは深度畳み込み層から出力として供給される。
深度畳み込み層を用いて画像を処理したときに最も適切な結果を得るため、カーネルの成分はニューラルネットワークの訓練を通じて訓練されることができる。
他の一具現化では、デコーダの深度畳み込み層は、受け取った符号化入力画像に逆変換を施し、逆変換は、成分Bij有するサイズN’×M’の入力マトリクスBから
を生成するものであり、
を生成するためには、
を成分に乗算し、
を組み合わせることによりマトリクスBの各成分Bijを拡張することによって
を得る。
これにより、符号化済み画像を入力画像の元のサイズに復号化することができる。
の成分は、エンコーダの深度畳み込み層によって適用される元のカーネルの成分に対して必ず逆又は同一又は他の関係を有しなければならないという訳ではない。
の成分は、最も正確な結果が得られるようにニューラルネットワークの訓練の際に学習することができる。
を組み合わせることは、任意の適切な態様で促進されることができる。
例えば、部分マトリクスを横に並べることにより
を得ることができる。
また、部分マトリクスを重なり合うように配置して、
を構成する際に第1の部分マトリクスの一部が他のいずれかの部分マトリクスの一部と重なるようにすることもできる。
この変換により、最終的に入力画像の元のサイズを有する拡張マトリクスを得ることができ、これによりROIの識別がより容易になる。
一実施形態では、
のサイズは全ての深度畳み込み層において等しく、
並びに/又は、
の成分のうち少なくとも1つは、当該カーネルの他の成分と異なる。
等しいサイズの
を用いる際には、逆畳み込みにおいて、削減マトリクスを得るために畳み込みにおいて用いられた画像の符号化の回数と同じ回数の拡張/復号化ステップを用いて
を得ることができる。これにより、エンコーダにより行われる変換回数とデコーダにより行われる変換回数とが異なることによるアーティファクトやコンフリクトを低減することができる。最も好適なのは、ニューラルネットワークの訓練の際にカーネルの特定の成分の値を学習することである。
他の一実施形態では、バッチ正規化部は、正規化された削減マトリクスP’を生成し、整流線形ユニットは整流関数を各成分P’’ijに適用し、整流関数は、
を有する
を算出し、
は出力として供給され、及び/又は、点畳み込み層は、先行層から受け取ったマトリクスの各成分に重みαを乗じることにより、マトリクスに重みαを適用する。
これにより、符号化処理の際にさらに情報が失われるが、最も関連する情報がニューラルネットワークによる入力画像の処理に通されることとなる。というのも、ニューラルネットワークのパラメータはこれに対応して訓練されるからである。
方法は、ニューラルネットワークに画像の一部を供給するステップを有し、ニューラルネットワークに画像の一部を供給するステップは、Q×R個のグリッドセルを有するグリッドに画像を分離し、各グリッドセル内に、当該グリッドセルにおける予め定められた位置と予め定められた幾何学的特性とを有する少なくとも1つの境界ボックスを作成することと、境界ボックスの位置及び幾何学的特性を修正することにより、物体の位置に最も一致する修正後位置と修正後幾何学的特性とを有する修正後境界ボックスを得ることと、境界ボックスに含まれる画像の画素を画像の一部としてニューラルネットワークに供給することと、を含む。
これにより、元の画像を、バイオメトリック特性を有する物体を実際に含む境界ボックスにより構成された画像の部分に削減することができる。これにより、ROIを識別するために画像全部ではなく画像のうちバイオメトリック特性を含む一部のみが処理されるので、ニューラルネットワークによる入力画像のさらなる処理を簡素化することができる。これにより、コンピュータリソースを削減して精度を向上することができる。
さらに、境界ボックスの位置を、グリッドセルの中心を基準として二次元で算出し、境界ボックスの幾何学的特性は、当該境界ボックスの高さ及び幅を含むことができ、さらに、物体が境界ボックス内にある確率が各境界ボックスに関連付けられる。
これにより、境界ボックスを物体のサイズ及び位置及び向きに合理的に合わせることができる。
一実施形態では、上述の方法の各ステップをモバイル装置上で行う。
これにより、識別のために用いられる画像の分散処理が可能になり、一度に攻撃又は破壊されるのが1つのモバイル装置のみとなり、この1つのモバイル装置に含まれるのは1人のユーザ又は少なくとも非常に限られた人数のユーザのデータのみとなるため、データの脆弱性を低減することができる。
図1は、ユーザのバイオメトリック特性を有する当該ユーザの物体の画像からデータを取得するための方法の簡単な概観図である。バイオメトリック特性は、ユーザをバイオメトリック識別するために適したものなら何でも良く、例えば1つの指紋、指紋のセット、一方又は両方の眼、当該ユーザの手のひら、当該ユーザの顔、当該ユーザの眼、当該ユーザの足の裏等とすることができる。この点について本発明は実際に限定されることはない。
図1を参照して説明する各ステップは基本的に、例えばスマートフォン、タブレット又はラップトップ等のモバイル装置上で実施される。かかるモバイル装置は、下記にて説明するように、対応する記憶装置及びプロセッサ(これらは通常、全てのモバイル計算機が備えている)並びに画像取得用の光学センサを備えているだけでよい。
図1の方法はステップ1から開始し、同ステップでは、モバイル計算機の光学センサを用いて画像を取得する。この画像は、本方法が意図通りに動作する任意の画像とすることができるが、これは、ユーザのバイオメトリック特性を有するユーザの物体の画像であることが想定されるものである。画像は、ユーザのこのバイオメトリック特性に限定する必要は無く、他の画像情報を含むことができる。例えば、バイオメトリック特性が指紋である場合を考察する。取得された画像は通常、指紋のみ又は指紋を保有する指先(その際には指先が物体となる)のみを含むのではなく、背景に例えば他の指、木、又は車等の他の物体も存在する。いかなる場合においても、本方法を機能させるため、取得された画像はユーザの物体であって当該ユーザのバイオメトリック特性を有する物体を含む必要がある。
上記のように、バイオメトリック特性は例えばユーザの指紋又は顔又は眼等、何でも良い。これに応じて、実際に検討すべきバイオメトリック特性に依存して、画像上に可視化する物体も異なることができる。
しかし、あくまで説明目的として、下記の説明は主に、ユーザの物体が指先であり、これに対応してユーザのバイオメトリック特性が1つの指紋又は指紋セットである場合に焦点を当てる。
その画像は一般にスプーフ又は本物の物体であり得るが(スプーフである場合、光学センサにより取得される画像は実際の物体の画像を撮影した画像すなわちスプーフという意味となり得、よって本物の物体の場合には、光学センサにより取得される画像は当該物体自体を撮影した画像ということになり得る)、ステップ1において当該画像が取得された後、本方法はステップ2へ進む。
ステップ2では識別ステップが行われ、これは、画像における物体の位置及び物体の両方を識別するために画像を処理するものである。例えば、光学センサによって取得された画像の左上境界に指先がある場合を考察すると、上記の識別ステップの結果としてその位置が識別され、それと共に当該物体も識別される。この識別は例えば、指先であること又は顔であることを識別することを含むことができる。よって、この識別ステップは如何なる場合も、他の物体とユーザのバイオメトリック特性を有する物体とを区別するものである。もちろん、1つの画像に例えばユーザの複数の指先又は指先及び顔等、バイオメトリック特性を有する物体が複数写っている場合もあり得る。本発明はこの点において限定されるものではなく、下記にて説明する実施形態に従って上述のような複数の物体をそれぞれ処理することができる。
識別ステップを実施した後、次のステップでは生体検知ステップが設けられている。この生体検知ステップは、画像を撮影した物体が実際に本物の物体であるか又は当該物体のスプーフに過ぎないかを検出することを含む(この判断結果が本ステップの結果となる)。
このことを達成するため、ステップ3は、画像内の物体の少なくとも一部に該当する複数の画素から光学センサまでの距離を表す距離マップの計算と、画像内の物体の少なくとも一部に該当する複数の画素に関連付けられた光反射を表す反射パターンの計算と、のうち少なくとも1つを含む。
光学センサにより取得された画像に基づいて距離マップ及び反射パターンを計算した後は、比較ステップである別のステップ4(これは、生体検知ステップの実体的な一部を構成するとみなすことができる)が設けられている。このステップは、計算された距離マップ又は計算された反射パターンのうち少なくとも1つと既知の距離マップ又は既知の反射パターンとの比較を行い、当該比較の結果に基づいて、画像がスプーフ又は本物の物体のいずれかを含むことを判断することを含む。
既知の距離マップ及び既知の反射パターンはいわば「事前設定」されているものである。これは静的な距離マップ若しくは静的な反射パターンとすることができ、又は、ニューラルネットワークを用いて本ステップを行う場合には「学習済み」の距離マップ及び「学習済み」の反射パターンとすることができる。これについては下記にて詳しく説明する。
本比較ステップ4において物体がスプーフであると判断された場合(ステップ5)、本方法はステップ6で終了することができ、例えば、より高信頼性の画像等を取得するために光学センサを用いてもう1つの画像を取得するようにユーザに対して要求することができる。また、画像が本物の物体のスプーフを含むと判断された場合、バイオメトリック特性を有するユーザの物体の画像からデータを取得するために実際に実施されている方法又はモバイル装置の以降の使用がブロックされるようにすることも可能であり、このブロックは例えばパスワードの入力前に行われる。これにより、装置が悪意の攻撃者によって使用されないことが保証される。
ステップ7において物体が本物の物体であると判断された場合には、次のステップ8を実施する。このステップ8は、上記の処理後に画像から、少なくともバイオメトリック特性を含むデータを取得し、オプションとしてこれを記憶装置に記憶することを含む。バイオメトリック特性を記憶することは必須ではないが、ステップ9に関して利点を有し得る。
この記憶装置が設けられている場合には、これはモバイル計算機上に設けられ又はモバイル計算機と共に設けられた記憶装置とされ、例えばモバイル計算機に又はモバイル計算機の内部メモリに物理的に接続された外部のハードドライブ等とすることができる。次のステップ9において、少なくともバイオメトリック特性を含むデータをサードパーティ計算機へ送信する。このサードパーティ計算機は、モバイル計算機から遠隔の任意の装置とすることができる。サードパーティ計算機は例えば、行政機関又は企業のいずれかがホスティングする1つ又は複数のサーバとすることができ、又はこれを含むことができる。少なくともバイオメトリック特性を含むデータはサードパーティ計算機において、例えば下記にて詳細に説明するようにユーザをさらに細かく識別する等のために使用することができる。上記にて説明した方法に従い取得された画像に基づいてユーザが識別された場合、ユーザには例えば、行政サービスへのアクセス権限又は企業等により提供されるサービスへのアクセス権限、例えばビデオ、音楽又は画像等のダウンロード又はストリーミング配信へのアクセス権限等を付与することができる。
本方法は識別ステップ2と、生体検知ステップ3と、比較ステップ4と、一部の実施形態では別のクロップ処理ステップとに分けることができるので、以下では本発明をこれらのステップ別に説明する。このことは、上述の各ステップ別に1つ又は複数のニューラルネットワークが使用される場合にも同様である。
なお、以下におけるこれら各ステップの説明は、当該各ステップの特徴が分離されることを意味するものではなく、各ステップについて説明する実施形態は適宜組み合わせることが可能であることに留意すべきである。
<本発明の識別ステップに関する側面>
本セクションの以下の説明は、図1で実施されるステップ2についてのものである。ここで留意すべき点は、「識別ステップ」そのものは、例えばジョン・ドウ等の特定のユーザの識別に至るものではなく、本ステップは、ユーザのバイオメトリック特性を有する物体が画像中の何処に提示されているか、何の物体が提示されているかを判定するだけであることである。上述のような物体が画像に存在しない場合(この場合については、本発明において、また他の説明においてこれ以上考察しない)、図1の方法は終了し、例えば実際にバイオメトリック特性を有する物体の画像を撮影するようにユーザに対して要求するステップ1に戻る。
図2は、識別ステップの全体的な概観図である。このステップは、ステップ11において物体の画像を取得した後に行われる。ユーザのこの物体は、ユーザの識別を可能にするバイオメトリック特性を有することとなる。具体的には、物体はユーザの一本の指先若しくは手又は複数本の指先とすることができ、この画像から取得されるバイオメトリック特性は、少なくとも一本の指先の指紋、又は、例えば2,3若しくは4本の指先の指紋のセットとすることもできる。
画像は、例えばカメラ等の光学センサによって取得することができる。より好適には、当該光学センサは、一般的に入手可能なスマートフォン等のモバイル装置の光学センサである。カメラは、1メガピクセル以上の高精細画像を取得できるカメラとすることができる。
その後、取得された画像はステップ12における処理のためにニューラルネットワークへ供給される。このニューラルネットワークについては、下記にて詳細に説明する。本発明はこのステップにおいてニューラルネットワークを利用する必要はなく、ニューラルネットワークを用いない他の画像処理手段も利用できるが、ニューラルネットワークを用いる実施形態は好適な実施形態であるから、下記ではこれについて詳細に説明する。
(識別ステップにおいて画像を処理するために)画像をニューラルネットワークへ供給するステップは、モバイル装置内部で、ニューラルネットワークを実現する該当のアプリケーションへ画像を転送又は伝送すること、又は、遠隔の場所へ画像を供給すること、のいずれかを含むことができる。これは、サーバ又は他の計算主体とすることができる。しかし、モバイル装置に内蔵されたニューラルネットワークへ画像を供給するのが好適である。
その後ステップ13において、画像はニューラルネットワークによって処理される。これについては、下記にて図4~7を参照して詳細に説明する。いかなる場合であっても、ニューラルネットワークによる画像の処理によって、画像内におけるバイオメトリック特性を有する物体の位置と、物体自体と、の両方が識別される。具体的には、例えば物体が指先である場合、ニューラルネットワークは画像中の当該指先を識別し(すなわち、ニューラルネットワークは画像中に当該指先が存在することを判定する)、画像内における当該指先の位置を識別する。画像内における指先の位置を識別するステップは、例えば、当該指先に属する全ての画素、又は、物体を含むが画像全体と完全同一ではない当該画像中の部分セクション、例えば画像の領域全体の1/10に相当するセクションを少なくとも識別することを含むことができる。
次のステップ14においてオプションとして、識別された物体からバイオメトリック特性を抽出することができる。かかる抽出は例えば、識別された指先のうち実際に指紋を構成する部分のみを抽出することを含むことができる。しかし上記の抽出は、生体検知ステップと比較ステップとを実施完了した後に行うことも可能である。
その後、バイオメトリック特性をさらに処理することができる。具体的には、下記にて詳細に説明するが、生体検知ステップ及び比較ステップにおいて画像をさらに処理する。
図3は、バイオメトリック特性が指紋である場合にバイオメトリック特性を使用してどのようにユーザを識別できるかを詳細に説明する図であり、この場合、物体は少なくとも1本の指先である。ここで説明する各ステップは、本発明ではサードパーティ計算機上で実施される。すなわち、図1のステップ9においてデータがサードパーティ計算機へ送信された後に実施される。
図3の方法はステップ21で開始し、当該ステップでは、指先からバイオメトリック特徴を抽出する。
指先からバイオメトリック特徴を抽出するステップは、例えば指紋の位置及びマニューシャの種類を抽出することを含むことができる。また、マニューシャの非常に具体的な種類のみを抽出することも可能である(例えば、指紋における2つ以上の線の交差等)。
バイオメトリック特性を含むこのデータを使用してユーザを識別するためには、もちろん、対応するバイオメトリック特徴の形態で参照がサードパーティ計算機に存在することが必要である。そのため、識別を行うサードパーティ計算機の識別手段が、特定のユーザに係るバイオメトリック特徴を記憶した記憶装置に関連付けられ、又は、かかる記憶装置を備えている場合があり得る。例えば、1つ又は複数のバイオメトリック特徴を例えば画像、数値、又は他のデータ構造の形態で記憶したファイルが、ユーザごとに存在することが可能である。
次のステップ22において、指紋から得られたバイオメトリック特徴を、対応して記憶されたバイオメトリック特徴と比較する。このステップは、例えば記憶されたバイオメトリック特徴がマニューシャの複数の場所によって表されている場合、抽出されたバイオメトリック特徴における対応する場所を比較することを含むことができる。もちろん、取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴とを比較するための他の手段も公知であり、また使用可能であり、例えば画像認識技術又は周波数変換等を用いることができる。取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴とを比較するステップは本発明では、取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴との一致度を計算できるように行われる。換言すると、この比較によって、記憶されたバイオメトリック特徴と取得されたバイオメトリック特徴との差が算出される。この差は1つの実数又はテンソル又はベクトル又は他の任意の数学的構造とすることができる。また、記憶されたバイオメトリック特徴画像から、取得されたバイオメトリック特徴画像を画素ごとに減じることにより得られる差分画像とすることもできる。
取得されたバイオメトリック特徴が記憶されたバイオメトリック特徴と一致するか否かを判定するために使用できる閾値、すなわちユーザを識別できる閾値を設けることができる。
これに応じてステップ23では、取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴との差が上記の閾値を上回るか又は下回るかを判定する。当該閾値を下回る場合、ステップ25において、ユーザがバイオメトリック特徴によって識別されると判定する。差が閾値を上回る場合には、上記判定結果ではなく、ステップ24においてユーザがバイオメトリック特徴によって識別されないと判定する。
これによってサードパーティ計算機上の識別手段又はサードパーティ計算機自体は、取得された指紋によってユーザが識別されたこと、又は、取得された指紋によってユーザが識別されなかったことのいずれかを判定することとなる。
図2及び図3では、ユーザを識別するために使用される指先が1つのみである場合であって当該指先が画像中に存在する場合に、撮影当初の画像から取得されたバイオメトリック特性を用いてユーザを識別する態様を説明した。
しかしながら、識別手段は1本の指先のみを評価するだけでなく、ユーザを識別するために画像上に存在する2本又は全ての指先等の複数の指先を評価することも可能である。1本の指先又は複数の指先の指紋から取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴とを識別手段によって照合する態様は、図3を参照して説明した態様に相当する。
しかし複数の指紋を評価する場合には、複数のバイオメトリック特徴の組み合わされた識別精度が所与の閾値を上回る場合にのみユーザが識別されたとするか、又は、図3のステップ22及び23にて説明した取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴との比較を行うことによって、取得された指先ごとにステップ25の結果が得られた場合にのみユーザが識別されたとすることができる。
図3を参照して説明した方法は画像中の指紋ごとに行われ、取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴との差が各取得された指紋ごとに所与の閾値を下回る場合にのみユーザが識別されるので、後者の場合が明確である。他の全ての場合では、ユーザは識別されないとすることができる。
しかし、画像中の全ての指先の指紋の組み合わされた識別精度が所与の閾値を上回る場合にユーザが識別されたとする場合には、各指先ごとに、取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴との比較の結果として、図3のステップ23の差が閾値を下回ることを要しない。
例えば、あるバイオメトリック特徴の識別精度が0(非識別)~1(取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴とが完全一致)の範囲の数値とすると、組み合わされた識別精度が、バイオメトリック特徴ごとに単独で得られる別々の識別精度の総和によって求められる場合、組み合わされた識別精度の値は4未満とすることができる(4は、4つの指紋の識別精度が満点であることに相当する)。
例えば、組み合わされた識別精度に対応する閾値は3.5とすることができる。この場合、ユーザを識別するためには、例えば各指紋の識別精度が約0.9であれば足りることとなる。というのも、これらの識別精度の総和(すなわち組み合わされた識別精度)は3.6となり、総和の閾値を上回るからである。他の一例として、3つの指紋が0.95の識別精度で識別される場合を考えると、4番目の指は例えば0.75の精度で識別されるだけで足りることとなる。
なお、識別精度は、取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴との相対的な類似度又は一致度と考えることができる。よって、取得されたバイオメトリック特徴が記憶されたバイオメトリック特徴と90%一致する場合、識別精度(すなわち、当該バイオメトリック特徴によってどの程度正確にユーザを識別できるか)は0.9となる。
識別精度の他の値を使用すること、又は閾値の他の値を使用することも可能であることは明らかである。さらに、組み合わされた識別精度を求める手段は他にも存在する。例えば、複数の識別精度の平均値を求めることにより、又は、複数の識別精度の積を求めることにより、組み合わされた識別精度を算出することができる。
後続の複数の図では、取得当初の画像をステップ12~14に従って処理して最終的にバイオメトリック特性を抽出する処理を詳細に説明すると共に、指先を高精度で識別できるようにするため上記の好適なニューラルネットワークをどのように訓練できるかについての説明を行う。
図4は、一実施形態の図2のステップ12~14の一実施態様を示す流れ略図である。ここで説明する方法は、識別ステップのように、取得された画像中のユーザのバイオメトリック特性を保持する物体を識別できるようにするためのものである。本発明では、この画像は最初のステップ101において(図2のステップ11又は図1のステップ1に相当)、好適にはモバイル計算機の光学センサによって取得される。このモバイル計算機は、スマートフォン又はタブレットコンピュータ又は他の相応の装置とすることができる。したがって、光学センサは通常はカメラとなるが、赤外線カメラ又は他の光学センサとすることも可能である。このカメラは、1メガピクセル(MP)の解像度を有するカメラ、若しくはHDカメラとすることができ、又は、より低解像度のカメラとすることもできる。好適には、取得された画像の解像度は、1画素あたり3色値で少なくとも224×224である。
取得された画像は物体を含むことができ、この物体は本発明では、当該物体自体について識別される(例えば指先であるか否かの識別等)だけでなく、画像中における自己の位置について識別されるものである。ここでは、物体はユーザの適切な識別を可能にするユーザのバイオメトリック特性を保持又は保有していることを想定している。具体的には、物体は指紋を有する1本の指先又は複数の指先のセット等の物体でなければならない。ユーザを個人識別するために指紋を使用できること、すなわち、非常に特殊な一部の事例を除いて指先は各人ごとに一意であるから、取得された指紋に基づいて2人の人間を区別できることが知られている。
図2以降の図は「画像」について記載しているが、本発明はリアルタイムの物体識別を可能とするものであるから、必要とされる処理時間は数msの範囲内となり、これにより、例えば光学センサによって取得されたビデオ映像又はライブストリーム等の複数の連続画像中の物体を適切に識別することもできる。よって、「画像」との用語は単一画像を指すだけでなく、ビデオストリーム等の非常に短時間で連続して取得される複数の画像も指すと解すべきである。
実際には、スマートフォンにおいて慣用されているように、カメラを起動すると、写真を撮影することなくカメラの現在のビューがスマートフォンのユーザに供給される。よって、この「仮のビュー」は、カメラによって撮影された通常は比較的低解像度の複数の画像から構成される。かかる複数の画像に対しても、本願に記載の発明の方法を使用することができる。
本方法の第2のステップ102では、取得された画像(又は連続して取得された複数の画像)が図2のステップ12に従ってニューラルネットワークへ供給される。このニューラルネットワークはモバイル装置に搭載されるのが好適であるが、必須ではない。
ニューラルネットワークは、モバイル装置上で実行されるアプリケーション(アプリ)又は他の任意のプログラムで実装することができる。本発明の好適な一実施形態では、識別ステップにおいてニューラルネットワークによって実行される後続の処理並びに本発明の方法で生体検知ステップ、比較ステップ及びクロップ処理において実施される他のあらゆるステップは、モバイル装置外部のいかなる計算主体にもアクセスする必要なく実施されるので、モバイル装置の「オフライン」モードで本方法を実施することもできる。
ステップ102は、画像を特段処理することなく、又は画像のいかなる他の前処理も行うことなく、ニューラルネットワークへ画像を直接転送することにより実現することができる。しかしこのステップは、例えば取得当初の画像の解像度を変更し、具体的には低減する等の画像の前処理を含むこともできる。本発明の一認識は、特に画像中に指先が識別された場合、224×224×3(「3」は、画像の青、赤及び緑の3色の色値に相当する)の同等の低解像度で足りる、ということである。取得された画像が、指先を識別するために必要な224×224の画像解像度より格段に高い解像度を有する場合、ステップ102又はステップ102とステップ103との間に設けられるステップは、画像の解像度を低減することを含むことができる。この前処理は、輝度条件の変更、画像内のガンマ値の変更、又は適切と考えられる他の任意の前処理を提供するステップ等の他のステップを含むことができる。
ステップ102において画像が入力としてニューラルネットワークへ供給された後、この入力はステップ103において、物体の識別及び/又は画像中における当該物体の位置の識別を可能にする出力を生成するように、ニューラルネットワークによって処理される。物体が指先である場合、上記の処理は具体的には、画像中に存在する少なくとも1本の指先が(例えばラベルの形態で)識別されると共に、当該指先の位置(例えば当該指先を構成する画素の各座標)も何らかの態様で出力に含まれる、ということになる。これは後述のように、識別された指先に相当する位置において当該指先を包囲し包含する境界ボックスを設け、この位置において境界ボックスを当該指先に重畳することにより、達成することができる。画像を基準とするこの境界ボックスの座標は、その後、指先の位置として使用することができる。
ステップ103における入力(すなわち、実質的には受け取った画像)の処理は、ニューラルネットワークを用いることによって多数の態様で容易化することができる。いかなる場合においても、ニューラルネットワークは、バイオメトリック特性を保有する意図された物体を識別するために特化して訓練されたニューラルネットワークであることを想定している。より好適には、ニューラルネットワークは、光学センサが少なくとも1本の指先の画像を撮影できる限りにおいて、当該光学センサに対する指先の位置及び配置如何にかかわらず、入力画像中において指先を識別するために訓練されたものである。この処理は、後述するように、ニューラルネットワークの複数の層による入力の処理を含むことができる。
本発明では、これは少なくとも、入力をニューラルネットワークの第1の層によって処理することにより第1の中間出力を生成し、その後、ニューラルネットワークの処理方向において第1の層の次の層により第1の中間出力を処理することにより、第2の中間出力を生成することを含む。その後、この第2の中間出力はニューラルネットワーク内の次の層へ転送され、この次の層において第2の中間出力が処理されて第3の中間出力が生成され、これ以降は、ニューラルネットワーク内の全ての層が各自受け取った中間出力を処理完了するまで、同様の処理がなされる。ニューラルネットワークの最後の層が「最終的な」出力を供給し、これはその後、後述のようにステップ104において(例えば、画像から物体を本抽出するために)出力することができる。
本発明ではさらに、ニューラルネットワークの各層が深度で分離可能な畳み込みフィルタとなるように、2つの畳み込み層から構成されている。この深度で分離可能な畳み込みフィルタは、「深度分離可能畳み込み」とも称される。この深度分離可能畳み込み(すなわちニューラルネットワークの層)は、当該深度分離可能畳み込みによる入力の処理順に、深度畳み込み層、第1のバッチ正規化部、及び第1の整流線形ユニットを備えている。第1の整流線形ユニットの後の処理順に、点畳み込み層、第2のバッチ正規化部、及び第2の整流線形ユニットが設けられており、整流線形ユニットからの出力を受け取った第2の整流線形ユニット又は処理モジュールは、ニューラルネットワークにおける次の層へ中間出力を転送する。
ニューラルネットワークの全ての層によって画像を処理した後は、最終的に位置及び物体自体を識別する出力が生成される。
このことはステップ104で行われ、ステップ104ではニューラルネットワークの出力が出力される。本発明の複数の好適な実施形態では、この出力は「修正画像」とすることができ、識別された物体及びその位置についてのユーザフィードバックを提供するために、識別された指先を囲む境界ボックスによって当該画像を強調することができる。出力の上述の生成は直ちに行う必要がなく、生体検知ステップ及び比較ステップの後に行うことも可能である。
いずれの場合においても、この出力は、モバイル装置のディスプレイ又はモバイル装置に関連付けられた他のいかなるディスプレイ上にも表示する必要はない。実際、出力は後述のように、画像中における指先の位置(具体的には、指先を構成する画像の画素の座標)を正しく識別するマトリクス又はテンソルの形態とすることができ、このマトリクス又はテンソルは後続の処理モジュールへ転送することができ、この後続の処理モジュールはこの情報を使用して、具体的には指先を識別する座標を使用して、識別された指先にさらなる処理を施す。出力はその後、図2のステップ14により、識別された物体からバイオメトリック特性を抽出するために使用することができる。
このさらなる処理は好適には、ユーザの指紋を識別するために、識別された指先を評価することを含むことができる。例として、指先から高解像画像が取得される場合を考察すると、本発明の方法は、最初のステップにおいて、上述のステップ101~104を含む方法を用いて画像中における指先の位置を識別し、その後、最終的な出力を他の画像処理コンポーネントへ転送することを含むことができる。この他の画像処理コンポーネントは、指紋を識別するために指先及びその位置を識別する出力を使用して高解像画像を評価する。これは、図3を参照して説明したように、ユーザを識別して例えば他のプロセスのセキュリティを向上するために使用することができる。例えば、ユーザが自己のモバイル装置を用いて銀行振込を行うために本発明の方法を使用して自己を識別する場合、本発明の方法は、当該ユーザの正しい一意の識別を可能にすることにより、銀行振込のセキュリティを向上することができる。というのも、ユーザの指紋は当該個人を一意に識別するからである。
本発明は、指先を識別するために相応の方法を用いて銀行振込を行うことに限定されるものではなく、例えばモバイル装置の機能や、ユーザの識別及び認証を要求する他の任意のアクティビティ等にアクセスするために、ユーザを識別するために使用することもできる。
図5は、本発明の一実施形態の識別ステップ中にニューラルネットワークの一層200における受け取った入力の内部処理を示す図である。この層200は、ニューラルネットワークによる元の入力の処理順で、上述のステップ102の後に元の入力を受け取る最初の層、若しくは、ニューラルネットワークの他の2つの層240と250との間に配されたいずれかの中間層とすることができ、又は、層200は最終的に、図2を参照して説明したステップ104に従って出力を供給するニューラルネットワークの最後の層とすることもできる。
いかなる場合においても層200は、少なくとも何らかの形で取得当初の画像に対応する入力230を受け取る。この入力は好適には、次元N×Mを有する少なくとも1つのマトリクスの形態であり、ここでN及びMは、0より大きい整数である。マトリクスは例えば、少なくとも1つの色値(例えば赤)について画像中の画素を表すものとすることができる。よって、このマトリクスの成分は、当該特定の画素の当該色(本事例では赤)の値に相当する値を有することができる。以下の記載から明らかであるように、入力は取得された画像と同一でなくてもよく、ニューラルネットワーク内の層による何らかの処理によって、又は何らかの前処理(例えば上述の解像度低減処理等)によって元の画像を表すマトリクスから得られたマトリクスPとすることができる。
しかし説明の簡素化のため、入力230は、取得当初の画像を表すN×Mマトリクスに相当し、当該N×Mマトリクスの各成分は当該画像中の各画素の一色(例えば赤)の値に相当すると仮定する。この考え方は、元のN×Mマトリクスをニューラルネットワークの各層で処理した変換後のどのような他のマトリクスにも、容易に適用することができる。
ここで、図5に例示した処理によれば、入力230は処理のために深度畳み込み層211によって受け取られる。下記では、深度畳み込み層によって入力マトリクス230をどのように処理できるかに関する比較的簡単な例を提示する。これは、カーネルKを用いて当該マトリクスとの内積を算出することを含む。このカーネルは、いわゆる「ストライド」でマトリクス全体で実行される。下記の例は値1の水平方向ストライド幅及び垂直方向ストライド幅を用いているが、ストライド幅が0より大きい整数であれば、1より大きい他の任意の値を使用することができる。カーネルKはサイズがS×Tであり、ここでS及びTは整数であり、かつN及びMより小さい。
さらに、サイズN×Mの元の入力マトリクスI(すなわち入力マトリクス230)のみがカーネルとの内積を算出するために使用されると仮定する。しかし、カーネルとの内積を算出するために、拡張されたマトリクスZを用いることも可能である。この拡張されたマトリクスZは、元のマトリクスIの最初の行の上と最後の行の下とに行を「付加」し、最初の列の左側と最後の列の右側とに列を「付加」することによって得られるものである。
これは「パディング」と称される。パディングは通常、行方向に数Pwの行を追加し、列方向に数Phの列を追加することを含む。数PwはS-1に等しくすることができ、数PhはT-1に等しくすることができ、これにより、Zとカーネルとで算出されたいかなる内積も、元のマトリクスIの少なくとも1つの成分を含むこととなる。よって、これにより得られるマトリクスZのサイズは(N+2Pw)×(M+2Ph)となる。このことから、マトリクスZは以下の成分を有することとなる:
ここで、全ての内積を算出してこれらを行及び列に従って適切に配列することによって得られる新たなマトリクスは、一般的に
のサイズとなる。ここで、Wwは行方向のストライド幅であり、Whは列方向のストライド幅である。サイズS×Tの所与のカーネルKを得るためには、新たなマトリクスのサイズが整数となるパディング及びストライド幅のみが許容されることが明らかである。さらに、ストライド幅WwはSより小さく、かつストライド幅WhはTより小さいことが好適である。その理由は、そうしないとマトリクスIにおけるカーネルの動きが、元のマトリクスのうち新たなマトリクスの算出で除外されてしまう行又は列が出てきてしまうものになってしまうからである。
以下では説明の簡素化のため、元のマトリクスIに対してはパディングを行わず、水平方向及び垂直方向のストライドのストライド幅は1であると仮定する。さらに、カーネルはサイズS×Sのマトリクスであると仮定する。すなわち、S=Tである特殊な事例を想定する。任意のパディング及びストライド幅及び任意のカーネルサイズに対して以下の説明を適用することは、以下の思想により容易に行える。
深度畳み込み層211では、受け取った入力マトリクス230を使用して、サイズS×SのカーネルKとの内積を求める。ここで、S<N,Mである。この内積は、元のN×Mマトリクスの各削減マトリクスごとに計算され、削減マトリクスのサイズはS×Sであり、元のN×Mマトリクスのコヒーレントな成分を含む。一例としてS=3の場合を考察すると、元のN×Mマトリクスの第1の削減マトリクスRは成分i=1,2,3;j=1,2,3を有し、9個の成分から構成され、カーネルKとの内積を計算するとその結果は単一の数となる。元のN×Mマトリクスの行方向における次の削減マトリクスは、iを1増分したマトリクスであり、これにより当該方向における次のマトリクスは、元のN×Mマトリクスのi=2,3,4;j=1,2,3の要素から構成されることとなる。その後、このマトリクスはカーネルとの次の内積を算出するために使用される。なお、ここで提示した一例のS=3であるS×Sマトリクスは単なる一例であり、他のカーネルを使用することも可能である。
列/カラム方向において次のサイズ(N×M)sの削減マトリクスRを算出するためには、元のN×Mマトリクスの要素の添え字jを1増分する。これは、行方向において最後の削減マトリクスまで行われ、この最後の削減マトリクスは、S=3の場合にはi=N-S+1,N-S+2,N-S+3となる。上述のことは列についても同様に行われ、j=M-S+1,M-S+2,M-S+3となる。これらの内積を計算することにより、サイズが(N-S+1)×(M-S+1)の新たなマトリクスであるマトリクスPが算出される。その成分Pijは、元のN×Mマトリクスの各削減マトリクスとカーネルKとから計算された各内積に相当する。なお、実際にはこのサイズのマトリクスが層200の点畳み込み層へ転送される。
カーネルKは、意図されている物体を適切に識別するためにニューラルネットワークを訓練する学習プロセスによって得られた成分である。ニューラルネットワークの層200において使用されるこのカーネルKは、各ニューラルネットワークの他の層において使用されるカーネルと同一のサイズ及び成分である必要はない。また、カーネルの各成分は互いに同一である必要はなく、少なくとも0以上の数である。かかる成分は、ニューラルネットワークの学習を通じて得られる「重み」を表すものとみなすことができる。
深度畳み込み層によるマトリクス230の処理の結果は、行方向ではΔi=1の距離と列方向ではΔj=1の距離とを有するストライドでカーネルを元のN×Mマトリクス上で移動させる場合、上述のように、サイズ(N-S+1)×(M-S+1)のマトリクス231となる。しかし、このストライドがΔi=2やΔj=3のようなより大きな距離を有する場合(これは列についても同様にあり得る)、これに応じて結果231の次元が上述のように変化することとなる。
後続の処理において、この結果231は第1のバッチ正規化部212へ転送される。この第1のバッチ正規化部212は、図4中の矢印で示されている処理順において深度畳み込み層211の次である。このバッチ正規化部は、受け取った結果マトリクス231の正規化を試行する。この正規化は、(N-S+1)×(M-S+1)マトリクスの各成分の総和を算出し、これを(N-S+1)×(M-S+1)マトリクスの成分の数によって除算することにより達成される。要素Pijを有する(N-S+1)×(M-S+1)マトリクス(以下「P」で示す)の平均値Vは、次のように与えられる:
ここでn及びmは、N×Mマトリクスの行数及びカラム/列数、又はマトリクスPの行数及び列数を表す。要素PijはマトリクスPの成分であり、所与の要素Pijは、当該マトリクスの第i番目の行かつ第j番目の列の要素である。
その後、バッチ正規化部は元のマトリクスの各成分Pijから平均値Vを差し引くことにより削減マトリクスP’を算出し、P’ij=Pij-Vとなる。これによって削減マトリクスP’内の値は正規化され、一方向又は他方向における変則値(anomalies、極端に大きい値又は極端に小さい値)がフィルタリング除去される。
第1のバッチ正規化部212によって生成された結果232は、(図4の例では)未だサイズが(N-S+1)×(M-S+1)であるマトリクスとなる。というのもこれ以前では、マトリクスの次元削減が行われていないからである。
結果232はその後、第1のバッチ正規化部212の次の第1の整流線形ユニット213へ供給される。
この整流線形ユニットは、
を算出することによって、マトリクス232の各成分をさらに修正する。ここで、
である。
これにより、0より小さい値はバッチ正規化部を通過した後は0に設定され、これにより、以下説明する深度畳み込み層における更なる処理に影響を及ぼさなくなる。このことは、具体的には例えば、バッチ正規化部において算出された平均値を下回る色値はこれ以降考慮されず、平均値Vと少なくとも一致する値のみが計算の次のステップの結果に影響を及ぼす、ということである。
よって、第1の整流線形ユニット213によって出力される結果233は依然として(N-S+1)×(M-S+1)の形状/サイズのマトリクスであり、このマトリクスは点畳み込み層221へ転送される。
点畳み込み層221は結果234を生成する。この結果234は、点畳み込み層221が(N-S+1)×(M-S+1)マトリクス233の各成分をとって当該各成分に重みαを乗じることによって生成される。αは好適には、常に0より大きい数であり、この数は(N-S+1)×(M-S+1)マトリクスの各成分に対して同一である。よって、点畳み込み層221から得られる結果234は、同一サイズの(N-S+1)×(M-S+1)であるが各成分に重みαを乗じたマトリクスとなる。
その後、結果234は第2のバッチ正規化部222へ供給され、この第2のバッチ正規化部222において第1のバッチ正規化部212について説明した態様で正規化されて、同じ次元の正規化マトリクスP’が結果235として算出される。このマトリクス/結果235は第2の整流線形ユニット223へ転送され、第2の整流線形ユニット223において
を得るために整流関数が適用され、この結果/マトリクスはニューラルネットワークにおける次の層へ転送され、又は、ニューラルネットワークにおいて次の層がもはや無い場合には、結果236は出力として供給される。
本発明の一認識は、指先を識別するためには図5にて説明した層200と同一の層を13個設けるのが最も好適である。というのも、指先の識別精度及びその位置の識別精度が比較的高くなると同時に、各方法の実装に必要なコンピュータリソースが削減され、このことによってモバイル装置により適用しやすくなるからである。
図6は、複数の境界ボックスと、複数のグリッドへの元の画像の分離とを用いて指先の識別(具体的には、指先を構成する元の画像内の画素の識別)を行えるよう、図5に記載されているコンセプトを拡張した他の一実施形態を示す図である。なお、以下説明するステップはニューラルネットワーク内の各層において元の画像を処理した後に行うことができ、又は、ニューラルネットワークの最後の層において画像を処理完了した後にしか行うことができず、ひいては図4のステップ104で出力を出力する直前にしか行うことができない。ここで説明する各ステップは、後述する生体検知ステップ及び比較ステップの後に行うことも可能である。
図6で説明する実施形態は、ニューラルネットワークの層から受け取った出力に基づいて本発明に従い指先又は他の物体を高精度で完璧に識別できる、既に学習済みのニューラルネットワークであると仮定する。
図6の実施形態では、ニューラルネットワークの層から受け取った出力も、指先を含む手350の画像300の形態で何らかの態様で表現できると仮定する。よって、ここでは「画像」についてのみ説明するが、画像以外にも図3で説明した出力マトリクスのうちいずれかを用いることも可能であることが明らかである。
最初のステップにおいて、受け取った画像300は複数のグリッドセル310,311及び313に分離される。各方向のグリッドセルの数は限定されることはないが、好適な一実施形態では、画像300は水平方向に13個のグリッドセルと、垂直方向に13個のグリッドセルとに分離され、一般的表現のQ×Rではなく13×13グリッドが生成される。
次のステップにおいて、各グリッドセルの中心点330を識別し、この中心点330を用いて、各グリッドセルの座標系の原点をグリッドセル相互間で別々に確立する。この中心330まわりに、通常は方形の形状である少なくとも1つの境界ボックス331及び332が配置され、ここでは、グリッドセル313で分かるように、境界ボックス331及び332は初期高さh0及び幅又は横幅b0を有する。各グリッドセルの境界ボックスが複数である場合には、その値は互いに異なることができる。例えば、各グリッドセルの最小の境界ボックスについては初期値h0及びb0をとることができ、各グリッドセルの他の境界ボックスの寸法を計算するために、これらの値を1.5倍又は2倍又は任意の他の倍率で増加することができる。
なお、各グリッドセルの座標系における境界ボックスの位置、例えば境界ボックス331の位置は、各グリッドセルにおける中心点330すなわち各座標系の原点を基準とする境界ボックス331の中心点の位置によって表されることとなる。よって、グリッドセル311における各境界ボックスの位置は2つの座標x及びyによって表すことができる。境界ボックスの幅及び高さは、0より大きい2つの値によって表すことができる当該境界ボックスの幾何学的特性を表すと考えられる。
これらの境界ボックスは後で指先の位置を識別するために用いられるが、これらの各境界ボックスに、境界ボックスが識別対象の指先を含む確率である第5の値を関連付けることも可能である。
よって、各境界ボックスは
の形態の5次元のベクトルによって表すことができる。
これはすなわち、各グリッドセルが各々の境界ボックスと共に、次元Q×R×B×Aを有するテンソルTの形態で表すことができる、ということである。ここで、Aはグリッドセル1つあたりの境界ボックス数である。指先を識別するための最も好適な事例は、Q=R=13、B=5(ベクトルbの次元)であり、Aは3~10の整数、最も好適には5に設定することができる。
上記にて説明したように、ニューラルネットワークは特定の物体、好適には指先を識別するために既に完璧に学習済みであると仮定する。これは、指先を表す可能性が最も高い画素の特定のパターンをニューラルネットワークが識別可能であることを含む。これは、そのスポットの色値、又は輝度等の他の特性の特定のパターンをいうことができる。しかし、画像300の指先の表示は任意であり、ニューラルネットワークを学習するために使用された指先とサイズ及び配置が一致しない指先である場合もあり得ることが明らかである。
しかし、境界ボックス及びグリッドを用いることにより、指先を含む可能性が最も高い特定の境界ボックスをニューラルネットワークが識別することができる。この特定の境界ボックスを識別するためには、ニューラルネットワーク(又は、これに関連付けられ画像300を処理する構成要素)は各グリッドセルの各境界ボックス内の画素の値を、当該ニューラルネットワークが事前に学習した指先に相当する画素のパターンと比較する。この最初の段階では、完全一致が見つかる可能性は極めて低いが、指先の少なくとも一部分を含む可能性が他の境界ボックスより既に高い境界ボックスが出てくることとなる。
図6に示されている事例では、例えば、グリッドセル313内に点Mを中心として配された境界ボックス341は、手350の指先の一部を含む。これに対して、グリッドセル310及び311はいずれも、指先の一部を含む境界ボックスを含まない。続けて本方法が境界ボックス341内の画素値と、場合によっては境界ボックス340内の画素値とを評価する場合、そのプロセスは、境界ボックス341が指先に相当するパターンを境界ボックス340より含むことを判定することができる。
このことに鑑みて、本方法は、境界ボックス331及び332(及び場合によっては他のグリッドセルの他の境界ボックス)のいずれも指先を含まないと結論付けることができ、これらの境界ボックスのBベクトルの確率値を0にセットすることができる。
点Mを中心として配された境界ボックス340及び341が指先の少なくとも一部を含むので、これらの境界ボックスは実際に指先を含む可能性があると考えることができ、その確率値は最初のステップでは0より大きい。
より小さい境界ボックス340が、指先に相当する可能性のあるパターンによって略完全に埋め尽くされている一方、より大きい境界ボックス341については、本プロセスによって指先に相当するパターンを含むと考えられるのは、当該境界ボックス341の左側の境界のみである。
これにより、本方法は続いて損失関数を計算することができる。この損失関数は、各境界ボックス341及び340内で識別されたパターンと、実際に指先に相当する学習から得られたパターンとの差を決定するものである。
次のステップにおいて本方法は、各境界ボックスのサイズ及び位置を修正することにより上記の差を最小にすることを試みる。これについては、学習済みのパターンに合わせて差を最小にするため、より大きな境界ボックス341を開始点として使用してその位置及び形状を修正すること、又は、より小さい境界ボックス340を開始点として使用してその位置及びサイズを修正することが可能である。
この最小化プロセスは最初に、図4に示されているように各グリッドセルの中心点Mまわりにx軸に沿った方向に少量移動させてから、その後にこれに直交するy軸に沿った方向に少量移動させることにより(又は、先にy軸に沿った方向に移動させてからその後にx軸に沿った方向に移動させることにより)、境界ボックスの位置を修正することを含むことができる(以下では、境界ボックス341がその後の計算に用いられると仮定する)。この移動は、正及び負のx軸及びy軸に沿った移動となり、位置ごとに、学習により得られたパターンと画像中で識別された実際のパターンとの差関数を求めるために比較が行われることとなる。これにより、座標に基づいて差d(x,y)を表す二次元関数を計算することができる。
これに基づいて傾き∇xydを計算することができ、これにより、学習済みのパターンとの一致を増大し、好適には最大化するため(関数d(x,y)の値を最小にすることに相当する)座標系においてどの方向に境界ボックスを移動すべきかを判断することができる。これは、∇xyd=0の場合に当てはまる。
その結果、関数d(x,y)が最小値をとる新たな中心点M’に向かう方向rに沿って境界ボックスは移動することができる。次のステップにおいて、一方向又は二方向におけるサイズ(すなわち高さ及び/又は幅)の増加又は減少が高さh及び幅bに応じてe(h,b)により表すことができる元のパターンに対する他の差関数の値を変化させるか否かを判断するため、位置M’における当該境界ボックスのサイズを増加又は減少することができる。この関数は、位置M’を有し高さhf及び幅bfを有する特定の境界ボックスと学習済みのパターンとの差が最小になるように最小化される。
その後、この境界ボックスは、画像300のうち指先を含む部分を識別する確率pが最も高い最終的な境界ボックスとして用いられることとなる。この境界ボックスに係る出力ベクトルは、以下の形態を有することとなる。
このプロセスの結果として、次元Q×R×B×Aを有するテンソルTが出力され、各グリッドセル内の境界ボックスごとに当該グリッドセルの中心を基準とするx及びy位置と、当該境界ボックスの幅及び高さと、当該境界ボックスが指先を識別し又は含む確率と、が得られる。
隣のグリッドセルの境界ボックスが同じ方向に移動して互いに重なり合うのを阻止するため、また、別のグリッドセルの境界ボックスが他のグリッドセル内に入ってしまうのを阻止するため、本方法は境界ボックスの中心の移動がその元のグリッドセル内でしか行えないようにすることができる。
よって、この結果は複数のベクトルBを含むテンソルとなり、これらのベクトルのうち1つ又は複数は指先を識別する確率が高く、その他のベクトルは確率が低い。確率が低いベクトルは、その全ての値を0にセットすることにより完全に無視することができ、これによりテンソルを処理する際に必要な処理労力を削減することができる。
その後、確率が最も高いベクトルBを使用して、画像のさらなる処理、具体的には指先を識別する当該画像の一部分のさらなる処理を行うことができ、これによって例えば指先を処理して指紋を識別することによりモバイル装置のユーザを識別することができる。
上記のアプローチは、識別された指紋等のバイオメトリック特性をさらに処理するために使用される境界ボックスを適切に識別できるものであるが、以下では、破棄すべき境界ボックスについて説明する。
上記にて説明したように、境界ボックスのベクトルbは、当該境界ボックスが指先を含み又は表す可能性を示す確率pを含む。この確率pを用いて、全ての境界ボックス(又はその各ベクトル)を、最も高い確率値pを有するベクトルbから降順にソートすることができる。
これが完了すると、値pが最も高い境界ボックスから降順にリストを順次処理することができる。この順次処理は、リストから値pを有する特定の境界ボックスを選択し、この特定の境界ボックスについて、他の境界ボックスとの交差の量を計算することを含むことができる。これは具体的には、選択された特定の境界ボックスの領域(面積)と、他の境界ボックスの領域(面積)とを比較することであり、これらの境界ボックスが共有する全ての領域(すなわち境界ボックスが交差し合う領域)が、算出される交差部に寄与する。
交差の量は、選択された境界ボックスの面積に対する比率として計算することができる。これにより、算出された交差部ごとに無次元の値が得られ、この無次元の値は、0(交差部なし)から1(検討対象の残りの境界ボックスが、選択された当該境界ボックスの領域と完全に交差し、又は当該領域を覆う)までの範囲である。
次のステップにおいて、事前設定された閾値を用いて境界ボックスを無視若しくは破棄し、又はこれらを除外することができる。上記の例では、この閾値は0.75の計算された交差量とすることができる。交差量がこの閾値を超える選択された境界ボックスと他の境界ボックスとの各対について、値pが低い境界ボックスを無視し、又は上記のリストから除外することができる。
その結果、最終的に指の指先を表す1つの境界ボックスのみが残ることとなる。もちろん上記ステップの結果として、画像中にて視認可能な指の数に依存して最大4つの境界ボックスが残ることがあり得る。
図7及び以下の説明では、図5を参照して説明したカーネルKの重み及び重みαと、実際に指先を識別するパターンと、をニューラルネットワークが学習するために、ニューラルネットワークをどのようにして適切に訓練できるかを説明する。
図7の方法は、訓練データ401及び事前設定された境界ボックス408の準備から開始する。この訓練データは、例えば複数の指先の画像、又は、1つの画像中に他の物体と共に表されている複数の指等の複数の画像により構成することができる。これら複数の画像は、同一画像を回転、強調、暗色化、拡大、又は他の修正を施した複製を用いて増加したものとすることができ、このような複製を訓練データとして導入する。項目408で準備される境界ボックスは、訓練データに含まれる画像に対応する境界ボックスであって、識別対象の物体に正しく関連付けられた境界ボックス、すなわち、正しいサイズ及び正しい位置と、図6を参照して説明した相応の確率値とを有する境界ボックスである。かかる境界ボックスは、訓練データ中の全ての画像に対して画像ごとに設けられる。
次のステップにおいて、ニューラルネットワークの他に最適化部407及び損失関数計算部406がさらに設けられた訓練環境下で、ニューラルネットワークに1つの特定の入力画像402が供給される。
この入力画像は、第1段階において、深度畳み込み層と第1のバッチ正規化部と第1の整流線形ユニット403(これら3つは「DCBR」としてまとめられている)を用いて処理され、その後、点畳み込み層と第2のバッチ正規化部と第2の整流線形ユニット(これら3つはPCBRとしてまとめられている)へ転送され、図5での説明に従い処理される。これは具体的には、各セクション403及び404それぞれにおいて点畳み込み層(PC)及び深度畳み込み層(DC)のカーネルKに係る対応する重みを用いて、図6に示されているステップ又はセクション403及び404を図5にて説明したように、好適には13回実行する、ということである。項目403及び404の第1及び第2のバッチ正規化部並びに整流線形ユニットは、上記にて図6を参照して説明したように動作する。
その結果、図6によれば、出力は図6の第1の成分Tqrbaを有するサイズQ×R×B×Aの第1のテンソルTとなる。この結果はその後、損失関数に供給され、損失関数では当該結果と事前設定された境界ボックスとが比較されることにより、結果405と、408から得られた正しい境界ボックスとの差が特定される。損失関数406により得られたこの差はその後、最適化部407へ供給され、最適化部407の方は、各点畳み込み層及び各深度畳み込み層の重み、すなわちαとカーネルKの成分を修正する。これは具体的には、ネットワークの全ての層に対して同時に、又は各層ごとに別個に、点畳み込み層の重みαと深度畳み込み層のカーネルKの成分を操作する、ということになる。
これらの新たな値を用いて、まさに同一の画像について上記サイクルが繰り返され、その結果得られる成分T’qrbaを有するテンソルT’が損失関数へ供給されて正しい境界ボックスと比較され、この比較の結果が最適化部407へ供給されて、最適化部407は再び重みを修正する。
この手順は、上記の結果のテンソルT(n)、特に識別された境界ボックスと、項目408の事前定義された境界ボックスと、の差が、意図された識別精度に実質的に相当する所与の閾値を超える限り行われる。
そのあと、訓練データ401から次の入力画像402が取られて、対応する境界ボックスが損失関数に供給される。その後、この新たな画像について上記のプロセスを再び繰り返し、点畳み込み層及び深度畳み込み層に係る最適な重みが求められる。これは、重みの特定の組み合わせによって全ての入力画像の識別精度が適切になるまで繰り返される。このようにして得られた重みの組み合わせは、最終的な重み410として出力される。
この最終的な重みはその後、モバイル装置上で本発明の方法の少なくとも識別ステップを実行するアプリケーションに導入される。
このようにして本発明のコンセプトでは、モバイル装置に供給されるニューラルネットワークは既にバイオメトリック特性を保有する特定の物体の識別、好適には指先の識別に完全に適したものとなっているので、さらに学習を行う必要なく当該ニューラルネットワークを用いることができ、モバイル装置で必要とされるコンピュータリソースをさらに削減することができる。
総合的に、上記にて図4及び図5を参照して説明した点畳み込み層と深度畳み込み層とバッチ正規化部と整流線形ユニットとを使用すると共に、図4で説明したように元の画像を複数のグリッドセルに分離して各対応する境界ボックスを特定することにより、1メガバイト未満のアプリケーションを提供することができ、これによりインターネット等を介して他のデータソースに何らアクセスしなくても、モバイル装置単独で使用することができる。これにより、無線ネットワーク等へのアクセスが不可能である環境下での適用に適したものとなる。さらに、この用途を実行するために必要なプロセッサ性能を最小限に抑えつつ、上記にて説明したように、後で指先の指紋によって行われるユーザの識別に使用できる指先の適切な識別結果を得ることができる。
上記の説明は、指の指紋を保持する側を示す手又は指の画像に焦点を当てたが、ユーザは1本又は複数本の指を、他方の側すなわち手の甲から光学センサに偶然又は意図的に提示することがあり得る。指のこのような画像からは、指紋は視認できないので抽出することができない。
指紋を保持する指先の画像を、指紋を見せずに爪又は指関節を見せる指先の画像と区別するためには、以下の手順を用いることができ、この手順は、識別精度を向上するように上記にて説明した方法を拡張することができる。
上記の例では、境界ボックスは以下のベクトルにより特徴付けられた。
また上記の例では、指紋を保持する指先の側を表示する指の画像のみを用いて訓練を行った。
指先の両側(すなわち、指紋を保持する側と爪又は指関節を保持する側)から画像を撮影できる場合には、画像中で識別される物体の2つのクラス、すなわち、指紋を見せる指先である物体と、爪又は指関節を見せる指先である物体と、を考慮することが有利である。
この場合、上述のベクトルに1次元cを追加して以下のように拡張することができる:
ここで、cはいわゆるクラスである。第1のクラスは肯定的な識別結果(指紋を保持する指先を識別できる)とすることができ、第2のクラスは否定的な識別結果(指先は爪又は指関節を保持する)とすることができる。このクラスは、例えば肯定的な識別結果の場合には値1、否定的な識別結果の場合には値0によって表すことができる。ベクトルbに含まれる他の値とは異なり、クラスは離散値であり、クラスの数に相当する有限の数の異なる値しかとれないことが明らかである。
その後、第1のクラス又は第2のクラスのいずれかに属する画像を区別できるようにするため、(指紋を保持する指先を含む画像と境界ボックス408とを示す訓練データのみが供給されるのではなく)肯定的及び否定的な識別結果をニューラルネットワークへ供給して上記の訓練を行うことができる。ここで、指紋を示さずそれ以外のものを示す指の複数の画像が考えられ、この画像が示すものは、あらゆるものが考えられる。かかる「物体」は全て第2のクラス(すなわち否定的な識別結果)に分類することができ、これによりニューラルネットワークは、指紋を保持する指先の画像を、指先の「他のあらゆる」画像と区別するよう訓練される。訓練のために設けられる境界ボックスはもちろん、ネットワークを適切に訓練できるようにするため、正しいクラスcを含むこととなる。
画像中の指紋を保持する全ての指先を識別するためには、上記のプロセスは、指先の位置を表す境界ボックスであって第2のクラス(すなわち否定的な識別結果)に属すると考えられる境界ボックスを全て無視することとなり、これにより、バイオメトリック特性を見せない指先の画像又は当該画像の一部の以降の処理が阻止される。
<本発明の生体検知ステップ及び比較ステップに関する側面>
図2~7を参照して識別ステップを説明した後は、図1のステップ3及び4にて言及した生体検知ステップ及び比較ステップについて詳細に説明する。説明に際しては、ニューラルネットワークも参照する。ここで用いられるニューラルネットワークは、識別ステップで用いられるものと同じニューラルネットワークとすることができると解される。しかし、モバイル装置上に別途常駐する別のニューラルネットワークとすることもできる。また、生体検知ステップ及び比較ステップ又はこれらのうち少なくとも1つを、ニューラルネットワークを用いずに行うこともできるが、ニューラルネットワークは物体のスプーフと本物の物体とを区別することについて優れた能力を有するので、ニューラルネットワークを用いることが好適である。よって、以下ではニューラルネットワークを参照して説明するが、本発明の趣旨の範囲内で他の態様も可能である。
いかなる場合においても、このセクションで説明する方法は図1のステップ2の後に行われる。当該方法は、図2~7を参照して説明したどの実施形態とも組み合わせることができる。
図8は、画像の撮影を含む取得画像の処理の流れ図である。
上記のいずれかの実施形態において、最初のステップ801において識別ステップを行うか、又は識別ステップが実施完了した状態となっている。このステップ801についてはここでは詳細に説明せず、単に説明及び前後関係の提示を目的として言及しておく。
その後、撮影された画像をステップ802においてニューラルネットワークへ供給する。具体的には、例えばそれぞれ色値が割り当てられた複数の画素等、画像に相当するデータ構造がニューラルネットワークへ供給される。ニューラルネットワークは、画像を撮影したモバイル装置上に常駐するものである。
次のステップ803において、画像はニューラルネットワークによって処理される。具体的には、完全な状態の画像を処理するか、又は当該画像を削減し若しくは他の態様で操作若しくは変更したバージョンを処理することができる。例えば、画像が高精細(HD)画質で撮影されたものである場合、最初に、画像がスプーフ又は三次元の本物の物体のいずれを示しているかの正確な識別を判断するために必要な画素数に応じて、画像をより少ない画素数(例えば512×512又は256×256又は224×224の画素数)に削減することができる。これに関して、ステップ803は画像の「前処理」を含むことができ、この前処理には例えば、画素数の削減又は必要と考えられる他の任意の前処理(例えば画像の照明条件の変更等)が含まれる。
しかしこのステップは、画像を処理する801とステップ803との間の任意の適切な時期に、ニューラルネットワークによって行うこともできる。例えば、ステップ802において画像をニューラルネットワークへ供給する前かつ画像の撮影直後(ひいては、前処理された画像を利用することもできる識別ステップの前)に画像の操作若しくは画像の前処理を行うことができ、又は、ステップ802におけるニューラルネットワークへの画像の供給と、ステップ831~834及び最後のステップ804を含めたステップ803におけるニューラルネットワークによる画像の処理の実際の開始と、の間に、画像の操作若しくは画像の前処理を設けることができる。
いずれの場合においても、元の画像に相当するデータ構造はステップ803と後続のステップ831~834とにおいて処理される。
ステップ803におけるニューラルネットワークによる画像の処理は、当該画像の2つの別々の処理に分割することができる。これら2つのうち一方の処理は距離マップの計算及び処理(ステップ831及び832)に関わるものであり、他方の処理は反射パターンの計算及び以降の使用に関わるものである。
まず距離マップについて述べる。ステップ831において距離マップを計算する。この距離マップは、モバイル装置の光学センサの画像中の各画素が該当し又は表現する実世界の部分の算出された距離と当該各画素とを関連付けるものである。例えば、ユーザが手の画像を撮影するために自己の手を光学センサの手前にかざしていると仮定すると、距離マップは少なくとも一部の画素について、手から光学センサまでの距離に相当する計算された距離を含むこととなり、また、画像中の他の物体の計算された他の距離、例えば撮影された画像の背景中に配置されているTV、又は撮影された画像中の背景を構成する風景中の家屋等の距離も含み得る。したがって、画像を撮影した実世界の中の様々な物体に該当し又は表す画素の様々な距離が存在することとなる。
その後、計算された距離マップはステップ832において、ニューラルネットワークの学習済み(「既知」ともいう)の距離マップと比較される。この学習済みの距離マップは、一部の実施形態では少なくとも2つの距離マップに分割することができ、これら少なくとも2つの距離マップのうち第1の学習済みの距離マップは、撮影された本物の物体の画像に関する距離マップに相当し、第2の学習済みの距離マップは、当該物体の二次元のスプーフを撮影した画像の距離マップに相当する。第1の学習済みの距離マップが第2の学習済みの距離マップと相違する点は、第1の学習済みの距離マップは画像の全範囲にわたって様々な距離を示すものであるのに対し、第2の学習済みの距離マップでは、第1画素から第2画素へ移動するときの各画素に関連付けられた距離の変化が滑らかであることである。その理由は、二次元スプーフ(具体的には例えば、本物の物体の画像の紙)を撮影の際に光学センサの手前にかざした場合、画素から光学センサまでの距離は、特定の点(光学センサ)から光学センサに対して任意の相対配置(アンギュレーション)がなされている平面までの距離に従って計算され得るので、如何なる不連続性も有しないからである。
比較は好適には、その全部がニューラルネットワークにおいて行われ、例えばニューラルネットワークにおける画像の処理の一部として行われるが、他の実施態様も可能である場合があり、比較の全部をニューラルネットワーク外部で、又は、得られた距離マップと計算された距離マップとを比較する際、及び得られた反射パターンと計算された反射パターンとを比較する際にニューラルネットワークと共に追加のソフトウェア若しくはハードウェアを併用して行う実施態様もあり得る。
この比較から結果が得られ、この結果は後でステップ804において使用される。
他方のフローでは、まずステップ833が、画像中の物体の少なくとも一部に該当する複数の画素に関連付けられた光反射を表す反射パターンを計算することを含む。この光反射パターンは例えば、取得された画像中の各画素に輝度の値を関連付けるものとすることができる。この輝度の値も(距離マップと)同様に、画素の輝度ではなく、画像を撮影した実際の状況の実際の輝度に相当する。というのも、画素は実際の状況を表すデータ構造でしかないからである。反射パターンを適切に計算するためには、ステップ801においてモバイル装置のカメラにより、当該カメラのフラッシュを用いて画像を撮影することが好適となり得る。かかる撮影により、画像が撮影された実際の状況のうち光学センサ付近の部分は比較的明るくなり、入射したフラッシュの相当量を反射するのに対し、実際の状況におけるより遠距離の部分、又は光学センサに対して斜めになっている物体の部分はより少ないフラッシュを反射することとなり、これにより比較的暗く見える。フラッシュは近似的に点の形態の光源であるから、フラッシュを用いる場合の反射パターンの計算は、実際の周辺光条件のみを用いる場合に取得できる反射パターンと比較して格段に正確になる。というのも、周辺光は点の形態の光源ではないからである。
次のステップ834において、ステップ832と同様に、計算された反射パターンとニューラルネットワークの学習済み(「既知」ともいう)の反射パターンとを比較する。ステップ832と同様に、ニューラルネットワークは好適には2つの学習済みの反射パターンを有し、そのうち第1の学習済みの反射パターンは撮影された本物の物体の画像に相当し、第2の学習済みの反射パターンは二次元のスプーフの反射パターンに関するものである。この比較によって結果が得られ、この結果は後でステップ804において使用される。
画像の処理がステップ831及び832又はステップ833及び834に従って行われたか、又はこれらの全てのステップを行うことにより行われたかにかかわらず、最後にステップ804において、光学センサにより撮影された画像が本物の物体の二次元のスプーフを含み若しくは写したものであるか否か、又は本物の物体を含むか否かを判断する。この判断は本発明では、ステップ832及び/又はステップ834のいずれかの比較の結果に基づいて行われる。よって、これらのステップの結果は好適には、画像中に示されているものがスプーフであるか又は本物の物体であるかを後で判断するために使用できる複数の情報又は任意の他の情報であるか、又はこれを含む。
この比較とその結果に基づき、すなわち、画像が本物の物体のスプーフであるか又は本物の物体であるかに基づいて、図1に記載した方法は、図1にて既に説明したようにステップ5又はステップ7のいずれかに進むことができる。
下記にて説明するように、ニューラルネットワークは1つの最後の層を含む複数の層を有する。好適な一実施形態では、本発明の最後の層は、ステップ832又は834の比較ステップの際に判断される本物の物体について-∞~+∞の範囲の出力を供給する第1ノードと、ステップ832及び/又は834において識別されるスプーフについて-∞~+∞の範囲の出力を供給する第2ノードと、を含むことができる。
例えばこれらの出力値は、得られた距離マップと学習済みの距離マトリクスとを構成する差分の総和を表すことができる。得られた距離マップは、各個別の画素ij(画像のi番目の行、j番目の列)に対応する複数の距離Oとして表すことができ、学習済みの距離マップはLであり、各距離マップはそれぞれ成分Oij及びLijを有すると仮定する。この場合、結果D=L-Oは成分dijを有することとなる。総和Σijdijを計算することにより、最後の層におけるノードの一例として出力を供給することができる。第1の出力は例えば、本物の物体の学習済みの距離マップの構造Lに相当し、第2ノードによる第2の出力は、スプーフに対応する学習済みの距離マップの構造Lに相当する。もちろん、反射パターンについても同様のことが当てはまる。
上記の説明は、O,L及びDは各自成分を有する通常知られているマトリクス等の構造となり得るかのような印象を与えるものであったが、通常は距離マップ及び反射パターンは、(学習済みのものであっても、得られたものであっても)規則的なマトリクスの形態で表現することはできないだろう。その理由は、距離マップはニューラルネットワーク自体において画像を処理しながら得られるものであるから、単純にマトリクスの形態で表現できないからである。しかしながら、説明を分かりやすくする観点から、より容易に視覚化できるコンテキストを当該手順に与えるため、O,L及びDをマトリクスの形態で表現されたものであると仮定する。
上述の値(例えば総和Σijdij等)では、第1ノード又は第2ノードの出力が本物の物体に該当するのか又は本物の物体のスプーフに該当するのかを容易に判断することができない。よって本実施形態では、画像に示されているのが本物の物体であるか又は物体のスプーフであるかを判断できるようにするため、何らかの正規化を行うのが好適である。
このことを遂行するためには、xiによって表される第1ノード及び第2ノードの出力値を、最初に値S(xi)に削減する。ここで、i=1は第1ノードを表し、i=2は第2ノードを表し、S(x)=ex/(1+ex)である。
これらの値は既に1より小さいが、その総和の上限は必ずしも1である必要はなく、よって、必ずしも統計的又は確率的な判定を行えるようにする必要はない。
かかる判定を行えるようにするため、取得された画像中にて物体のスプーフ又は本物の物体を発見する確率は最大1であることを前提とする。というのも、画像上にはスプーフ又は本物の物体のいずれかが必ず存在するからである。次に、この仮定に鑑みて、計算された値S(xi)を下記の正規化関数によってさらに処理して、値σ(S(xi))を得る:
値σ(S(xj))は常に最大1である。というのも、上記の関数はベクトルのノルムの計算であるからであり、ソフトマックス関数として知られている。
値σ(S(x1))≡σ1及びσ(S(x2))≡σ2により、統計的で確率的な評価が可能である。
よって、この計算の結果σ1及びσ2は、図8の判断ステップ804に使用することができる。画像が本物の物体である確率であるσ1が0.5より大きい場合(σ2<0.5に相当する)、画像は本物の物体であるという判断結果になり、σ2>0.5の場合には(σ1<0.5に相当する)、画像は本物の物体のスプーフであるとの判断が下される。
図8には明示的に示されていないが、判断ステップ804の後に他のステップが続くことができる。例えば、画像上に示されているのが本物の物体であるか又は本物の物体のスプーフであるかの判断は、撮影された画像が本物の物体のスプーフであるから例えばログイン手続又は銀行送金等の他のセキュリティ関連のプロセスにおいてユーザを識別するために用いることができない旨のユーザ又は他のエンティティに対する表示等の他のステップをトリガするために使用することができる。他方、肯定的な判断となった場合、すなわち画像が本物の物体である場合には、当該本物の物体から得られるユーザ固有の情報に基づきユーザを識別する他のプロセスをトリガすることができる。これは例えば、本物の物体の画像をさらに処理することを含むことができる。例えば本物の物体が手又は指先である場合、画像から指紋等のバイオメトリック特性を取得して、ユーザの識別と、例えばログイン手続又はバイオメトリック特性を用いる他のプロセス等と、に使用することができる。
図9及び図10は、本物の物体を撮影した画像と当該本物の物体のスプーフを撮影した画像の場合、距離マップがどのようなものになるかの一例を示す概略図である。上記にて説明したように、距離マップ及び反射パターンは、通常はマトリクスの形態で表現することができない。しかしながら距離マップ及び反射パターンを得るコンセプトを説明するため、各画素とこれらに対応する距離/反射特性との間で一対一の対応関係が可能であると仮定する。説明のため、これは距離マップ及び反射パターンのマトリクスの形態の表現についての話であると捉えることができる。
これについては図9に、画像が撮影される視野911を有する光学センサ901を備えたモバイル装置900を使用して画像を本物の物体から取得する状況を示している。図9は、実世界において光学センサにより捉えられる実際の三次元状況の二次元断面である。画像の撮影対象である本物の物体は物体920であり、場合によっては、光学センサの視野911内には物体921等の他の物体が存在し得る。図示の二次元配置から得られる画像は画素の一次元配列であり(実際の三次元の状況を撮影した二次元画像である画像に相当する)、これらの画素は図示の方向xに配列されている。画像中の画素ごと、例えば1,2,3及び4の表示が与えられた画素ごとに、距離を計算する。実際の状況については、これにより距離マップが得られ、これは図9にも示されている。図から分かるように、本物の物体の距離は任意の態様でばらつき、限られた数のパラメータのみに依存する関数では、この距離を容易に計算することができない。というのも、光学センサに対する本物の物体の配置及び当該物体の三次元構造(図9では二次元構造)は、通常は未知だからである。
これに対して図10は、光学センサの手前に本物の物体の画像(すなわち二次元のスプーフ)が掲げられている場合を示している。この図示の例でも、光学センサにより取得される状況は二次元の状況によって表されるので、取得された「画像」は、図9の事例に関して既に説明したように一次元であると仮定する。
説明を簡単化するため、さらに、光学センサが取り付けられているモバイル装置1000に対して平行になるように画像が光学センサ1001に対して掲げられていると仮定する。また、これも説明の簡単化のため、スプーフの(二次元の)画像1030は光学センサの手前に完全な平面となると仮定する。
この場合、光学センサ1001の視野1011内には、当該光学センサからの距離が最短距離d0である点が存在する。この画像内の他の点は全て、
によって与えられる距離dxを有することとなり、これにより、x方向に関して座標系の原点が、光学センサまでの距離が最小距離d0である点であると仮定した場合、図10の距離マップのグラフ表現を得ることができる。
図10を見ると分かるように、取得された(一次元の)画像の画素に相当するこの距離マップは、画像内の特定の点から原点までの距離にのみ依存するので、上記の数式を用いて最短距離d0を求めることができる。
よって、光学センサにより取得された本物の物体又は実際の状況の距離マップは二次元のスプーフの距離マップと有意に異なることが明らかである。というのも、二次元のスプーフの距離マップは、パラメータの数が限られている関数の値を計算することによって得られるものだからである。
計算された反射パターンについても上記と同様のことが当てはまるが、反射パターンは、距離マップと同様のやり方では容易に撮影することができない。
しかし、計算された距離マップについての上記説明を参酌すれば、撮影された画像の画素ごとに実際の状況に対応する反射値又は輝度値又は照明条件に関連付けられた他の任意の値を計算できることも明らかとなる。この実際の状況も、図10にて説明したような本物の物体の二次元のスプーフである場合、反射パターン(光強度を参照してより容易に説明される)も上記数式に従って、又は少なくとも上記数式に依存して変化することとなる。というのも、特定の一点から得られる光の強度は一次近似では、距離の2乗に相互依存するからである。
よって、複数の他の物体の中に本物の物体が示されている状況(図9のような状況)では、反射パターンは非常に複雑な構造になるのに対し、光学センサに対して二次元のスプーフを示した場合、その反射パターンは、パラメータの数が限られている関数を用いて容易に計算することができる。
本物の物体に相当する学習済みの距離マップ(又は反射パターン)と、物体の二次元のスプーフに相当する学習済みの距離マップについても同様である。というのも、これらはニューラルネットワークに既知であるからである。したがって、ニューラルネットワークは学習済みの距離マップと(そしてもちろん反射パターンも)得られた距離マップ及び反射パターンとを比較することにより、取得された画像が本物の物体であるか又は当該本物の物体のスプーフであるかを合理的に判断することができる。
距離マップ及び反射パターンの各計算を簡略化するため、及び、判断ステップ804に必要なコンピュータリソースを削減するためには、学習済みの距離マップ及び学習済みの反射パターンは通常、各要素が距離の学習済みの振舞い又は対応する反射パターンの学習済みの振舞いを構成するデータ構造の形態で、ニューラルネットワークに設けられることとなる。
得られた又は計算された距離マップ及び得られた反射パターンも同様に、各要素が取得された画像における距離(又は各反射パターン)を構成するデータ構造の形態で提供することができる。
このことは、学習済み及び計算された距離マップ及び反射パターンの両方とも、画素ごとに該当し得る。すなわち、各データ構造内の各要素は、特定の一画素の学習済み/計算された距離又は反射パターンに相当する。
これはもちろん、取得された画像における画素の位置とデータ構造内の要素との間に関連付けが存在することを要する。この関連付けは、データ構造を計算する基礎として画像内の画素自体の配置を使用して行われる。具体的には、取得された画像に即して、距離マップ(例えば名称「L」)及び反射パターン(例えば名称「Y」)に使用される各データ構造を構築する。例えば画像が1色値あたり512×512個の画素(すなわち512×512×3)を含む場合、距離マップ及び反射パターンは、(1色値あたり)各成分が取得された画像中の一画素にそれぞれ相当する要素数512×512のサイズのデータ構造となる(必ずしも要素数512×512個のマトリクスとして表現可能なものであるとは限らない)。画像の他のどのような解像度であっても、同様のことが当てはまる。
図11は、本発明の一実施形態のニューラルネットワークの一層1100において受け取った入力画像の内部処理を示す。この入力画像は元の画像か、又は元の画像からHSV変換により得られたHSV変換データ構造のいずれかとすることができる。実際には、ニューラルネットワークへ供給されるデータ構造は、HSV色空間への変換後の入力画像に相当するマトリクスであることが多い。というのもこれは、色値よりも画素のluma値をより的確に示すからである。これにより、距離マップ及び反射パターンの計算をより効率的にすることができる。
この層1100は、ニューラルネットワークによる元の入力画像の処理順で、上述のステップ802の後に元の入力画像を受け取る最初の層、若しくは、ニューラルネットワークの他の2つの層1140と1150との間に配されたいずれかの中間層とすることができ、又は、層1100は最終的に、図8を参照して説明したステップ804に従って出力を供給するニューラルネットワークの最後の層とすることもできる。最後の場合、層は、画像内のスプーフ識別及び本物の物体の識別のための対応する出力を供給するために上述の2つの出力ノードを有することとなる。
いかなる場合においても層1100は、少なくとも何らかの形で取得当初の画像に対応する入力1130を受け取る。この入力は好適には、次元N×Mを有する少なくとも1つのマトリクスの形態であり、ここでN及びMは、0より大きい整数である。マトリクスは例えば、少なくとも1つの色値(例えば赤)又はHSV変換画像について画像中の画素を表すものとすることができる。よって、このマトリクスの成分は、当該特定の画素の当該色(本事例では赤)の値に相当する値又はそのluma値を有することができる。以下の記載から明らかであるように、入力は取得された画像と同一でなくてもよく、ニューラルネットワーク内の層による何らかの処理によって、又は何らかの前処理(例えば上述の解像度低減処理等)によって元の画像を表すマトリクスから得られたマトリクスPとすることができる。
しかし説明の簡素化のため、入力1130は、取得当初の画像を表すN×Mマトリクスに相当し、当該N×Mマトリクスの各成分は当該画像中の各画素の一色(例えば赤)の値に相当すると仮定する。この考え方は、元のN×Mマトリクスをニューラルネットワークの各層で処理した変換後のどのような他のマトリクスにも、容易に適用することができる。
ここで、図11に例示した処理によれば、入力1130は処理のために深度畳み込み層1111によって受け取られる。下記では、深度畳み込み層によって入力マトリクス1130をどのように処理できるかに関する比較的簡単な例を提示する。これは、カーネルKを用いて当該マトリクスとの内積を算出することを含む。このカーネルは、いわゆる「ストライド」でマトリクス全体で実行される。下記の例は値1の水平方向ストライド幅及び垂直方向ストライド幅を用いているが、ストライド幅が0より大きい整数であれば、1より大きい他の任意の値を使用することができる。カーネルKはサイズがS×Tであり、ここでS及びTは整数であり、かつN及びMより小さい。
さらに、サイズN×Mの元の入力マトリクスI(すなわち入力マトリクス1130)のみがカーネルとの内積を算出するために使用されると仮定する。しかし、カーネルとの内積を算出するために、拡張されたマトリクスZを用いることも可能である。この拡張されたマトリクスZは、元のマトリクスIの最初の行の上と最後の行の下とに行を「付加」し、最初の列の左側と最後の列の右側とに列を「付加」することによって得られるものである。
これは「パディング」と称される。パディングは通常、行方向に数Pwの行を追加し、列方向に数Phの列を追加することを含む。数PwはS-1に等しくすることができ、数PhはT-1に等しくすることができ、これにより、Zとカーネルとで算出されたいかなる内積も、元のマトリクスIの少なくとも1つの成分を含むこととなる。よって、これにより得られるマトリクスZのサイズは(N+2Pw)×(M+2Ph)となる。このことから、マトリクスZは以下の成分を有することとなる:
ここで、全ての内積を算出してこれらを行及び列に従って適切に配列することによって得られる新たなマトリクスは、一般的に
のサイズとなる。ここで、Wwは行方向のストライド幅であり、Whは列方向のストライド幅である。サイズS×Tの所与のカーネルKを得るためには、新たなマトリクスのサイズが整数となるパディング及びストライド幅のみが許容されることが明らかである。さらに、ストライド幅WwはSより小さく、かつストライド幅WhはTより小さいことが好適である。その理由は、そうしないとマトリクスIにおけるカーネルの動きが、元のマトリクスのうち新たなマトリクスの算出で除外されてしまう行又は列が出てきてしまうものになってしまうからである。
以下では説明の簡素化のため、元のマトリクスIに対してはパディングを行わず、水平方向及び垂直方向のストライドのストライド幅は1であると仮定する。さらに、カーネルはサイズS×Sのマトリクスであると仮定する。すなわち、S=Tである特殊な事例を想定する。任意のパディング及びストライド幅及び任意のカーネルサイズに対して以下の説明を適用することは、以下の思想により容易に行える。
深度畳み込み層1111では、受け取った入力マトリクス1130を使用して、サイズS×SのカーネルKとの内積を求める。ここで、S<N,Mである。この内積は、元のN×Mマトリクスの各削減マトリクスごとに計算され、削減マトリクスのサイズはS×Sであり、元のN×Mマトリクスのコヒーレントな成分を含む。一例としてS=3の場合を考察すると、元のN×Mマトリクスの第1の削減マトリクスRは成分i=1,2,3;j=1,2,3を有し、9個の成分から構成され、カーネルKとの内積を計算するとその結果は単一の数となる。元のN×Mマトリクスの行方向における次の削減マトリクスは、iを1増分したマトリクスであり、これにより当該方向における次のマトリクスは、元のN×Mマトリクスのi=2,3,4;j=1,2,3の要素から構成されることとなる。その後、このマトリクスはカーネルとの次の内積を算出するために使用される。なお、ここで提示した一例のS=3であるS×Sマトリクスは単なる一例であり、他のカーネルを使用することも可能である。
列/カラム方向において次のサイズ(N×M)sの削減マトリクスRを算出するためには、元のN×Mマトリクスの要素の添え字jを1増分する。これは、行方向において最後の削減マトリクスまで行われ、この最後の削減マトリクスは、S=3の場合にはi=N-S+1,N-S+2,N-S+3となる。上述のことは列についても同様に行われ、j=M-S+1,M-S+2,M-S+3となる。これらの内積を計算することにより、サイズが(N-S+1)×(M-S+1)の新たなマトリクスであるマトリクスPが算出される。その成分Pijは、元のN×Mマトリクスの各削減マトリクスとカーネルKとから計算された各内積に相当する。なお、実際にはこのサイズのマトリクスが層1100の点畳み込み層へ転送される。
カーネルKは、意図されている物体を適切に識別するため、すなわち物体のスプーフと本物の物体とを区別するためにニューラルネットワークを訓練する学習プロセスによって得られた成分である。ニューラルネットワークの層1100において使用されるこのカーネルKは、各ニューラルネットワークの他の層において使用されるカーネルと同一のサイズ及び成分である必要はない。また、カーネルの各成分は互いに同一である必要はなく、少なくとも0以上の数である。かかる成分は、ニューラルネットワークの学習を通じて得られる「重み」を表すものとみなすことができる。
深度畳み込み層によるマトリクス1130の処理の結果は、行方向ではΔi=1の距離と列方向ではΔj=1の距離とを有するストライドでカーネルを元のN×Mマトリクス上で移動させる場合、上述のように、サイズ(N-S+1)×(M-S+1)のマトリクス1131となる。しかし、このストライドがΔi=2やΔj=3のようなより大きな距離を有する場合(これは列についても同様にあり得る)、これに応じて結果1131の次元が上述のように変化することとなる。
後続の処理において、この結果1131は第1のバッチ正規化部1112へ転送される。この第1のバッチ正規化部1112は、図11中の矢印で示されている処理順において深度畳み込み層1111の次である。このバッチ正規化部は、受け取った結果マトリクス1131の正規化を試行する。この正規化は、(N-S+1)×(M-S+1)マトリクスの各成分の総和を算出し、これを(N-S+1)×(M-S+1)マトリクスの成分の数によって除算することにより達成される。要素Pijを有する(N-S+1)×(M-S+1)マトリクス(以下「P」で示す)の平均値Vは、次のように与えられる:
ここでn及びmは、N×Mマトリクスの行数及びカラム/列数、又はマトリクスPの行数及び列数を表す。要素PijはマトリクスPの成分であり、所与の要素Pijは、当該マトリクスの第i番目の行かつ第j番目の列の要素である。
その後、バッチ正規化部は元のマトリクスの各成分Pijから平均値Vを差し引くことにより削減マトリクスP’を算出し、P’ij=Pij-Vとなる。これによって削減マトリクスP’内の値は正規化され、一方向又は他方向における変則値(anomalies、極端に大きい値又は極端に小さい値)がフィルタリング除去される。また、項Pij-Vを平均値Vに相当する標準偏差によって除算することにより項P’ijを計算することもできる。
第1のバッチ正規化部1112によって生成された結果1132は、(図11の例では)未だサイズが(N-S+1)×(M-S+1)であるマトリクスとなる。というのもこれ以前では、マトリクスの次元削減が行われていないからである。
結果1132はその後、第1のバッチ正規化部1112の次の第1の整流線形ユニット1113へ供給される。
この整流線形ユニットは、
を算出することによって、マトリクス1132の各成分をさらに修正する。ここで、
である。
これにより、0より小さい値はバッチ正規化部を通過した後は0に設定され、これにより、以下説明する深度畳み込み層における更なる処理に影響を及ぼさなくなる。このことは、具体的には例えば、バッチ正規化部において算出された平均値を下回る色値はこれ以降考慮されず、平均値Vと少なくとも一致する値のみが計算の次のステップの結果に影響を及ぼす、ということである。
よって、第1の整流線形ユニット1113によって出力される結果1133は依然として(N-S+1)×(M-S+1)の形状/サイズのマトリクスであり、このマトリクスは点畳み込み層1121へ転送される。
点畳み込み層1121は結果1134を生成する。この結果1134は、点畳み込み層1121が(N-S+1)×(M-S+1)マトリクス1133の各成分をとって当該各成分に重みαを乗じることによって生成される。αは好適には、常に0より大きい数であり、この数は(N-S+1)×(M-S+1)マトリクスの各成分に対して同一である。よって、点畳み込み層1121から得られる結果1134は、同一サイズの(N-S+1)×(M-S+1)であるが各成分に重みαを乗じたマトリクスとなる。
その後、結果1134は第2のバッチ正規化部1122へ供給され、この第2のバッチ正規化部1122において第1のバッチ正規化部1112について説明した態様で正規化されて、同じ次元の正規化マトリクスP’が結果1135として算出される。このマトリクス/結果1135は第2の整流線形ユニット1123へ転送され、第2の整流線形ユニット1123において
を得るために整流関数が適用され、この結果/マトリクスはニューラルネットワークにおける次の層へ転送され、又は、ニューラルネットワークにおいて次の層がもはや無い場合には、結果1136は出力として供給される。
これより図12において、図11を参照して説明したカーネルKの重み及び重みαと、実際に本物の物体又は本物の物体のスプーフを識別するパターンと、をニューラルネットワークが学習するために、ニューラルネットワークをどのようにして適切に訓練できるかを説明する。
図12の方法は、訓練データ1201の準備から開始する。この訓練データは、本物の物体の複数の画像と本物の物体のスプーフの複数の画像とにより構成することができる。この訓練データを構成する画像は例えば、本物の手又は指等の複数の画像と、これら物体の画像(すなわちスプーフ)の画像とを含むことができる。これら複数の画像は、同一画像を回転、強調、暗色化、拡大、又は他の修正を施した複製を用いて増加したものとすることができ、このような複製を訓練データとして導入する。好適には、より多数の訓練画像を得るため、画像フリップ、画像回転及び直線移動、剪断、トリミング、輝度及びガウスブラーを増加するための乗算を含む修正を使用することができる。上掲の技術の任意の組み合わせを用いることもできる。上掲の技術の任意の組み合わせを用いることもできる。項目1208で提供される値σ1及びσ2は、ニューラルネットワークの最後の層の第1ノード及び第2ノードであって、画像が物体のスプーフである確率又は本物の物体である確率を供給する第1ノード及び第2ノードの出力が「正しい」ことを示す値となる。これらの値は、訓練データの各画像ごとに与えられる。
次のステップにおいて、ニューラルネットワークの他に最適化部1207及び損失関数計算部1206がさらに設けられた訓練環境下で、ニューラルネットワークに1つの特定の入力画像1202が供給される。
この入力画像は、第1段階において、深度畳み込み層と第1のバッチ正規化部と第1の整流線形ユニット1203(これら3つは「DCBR」としてまとめられている)を用いて処理され、その後、点畳み込み層と第2のバッチ正規化部と第2の整流線形ユニット(これら3つはPCBRとしてまとめられている)へ転送され、図11での説明に従い処理される。これは具体的には、各セクション1203及び1204それぞれにおいて点畳み込み層(PC)及び深度畳み込み層(DC)のカーネルKに係る対応する重みを用いて、図12に示されているステップ又はセクション1203及び1204を図11にて説明したように、好適には13回等の複数回で実行する、ということである。項目1203及び1204の第1及び第2のバッチ正規化部並びに整流線形ユニットは、上記にて図11を参照して説明したように動作する。
その結果、上記の説明によれば値σ1及びσ2が得られる。この結果はその後、損失関数に供給され、損失関数では当該結果と、1208において設けられた事前設定済みの値σ1及びσ2とが比較されることにより、結果1205と、正しい値σ1及びσ2との差が特定される。損失関数1206により得られたこの差はその後、最適化部1207へ供給され、最適化部1207の方は、各点畳み込み層及び各深度畳み込み層の重み、すなわちαとカーネルKの成分を修正する。これは具体的には、ネットワークの全ての層に対して同時に、又は各層ごとに別個に、点畳み込み層の重みαと深度畳み込み層のカーネルKの成分を操作する、ということになる。
これらの新たな値を用いて、まさに同一の画像について上記サイクルが繰り返され、その結果得られる値σ1及びσ2が損失関数へ供給されて正しい値σ1及びσ2と比較され、この比較の結果が最適化部1207へ供給されて、最適化部1207は再び重みを修正する。
この手順は、上記の結果の値σ1
(n)及びσ2
(n)(nは、これらの値のn回目の繰り返しである)と、項目408の値σ1及びσ2との差が、意図された本物の物体及びスプーフの判断精度に実質的に相当する所与の閾値を超える限り行われる。
そのあと、訓練データ1201から次の入力画像1202が取られて、対応する値σ1及びσ2が損失関数に供給される。その後、この新たな画像について上記のプロセスを再び繰り返し、点畳み込み層及び深度畳み込み層に係る最適な重みが求められる。これは、重みの特定の組み合わせによって全ての入力画像の識別精度が適切になるまで繰り返される。このようにして得られた重みの組み合わせは、最終的な重み1210として出力される。
この最終的な重みはその後、モバイル装置上で本発明の方法を実行するアプリケーションに導入される。実際には本方法により、本物の物体又は本物の物体のスプーフを示す特定の距離マップ及び反射パターンをニューラルネットワークが学習することが可能である。よって、図12に記載されている方法は、距離マップ又は反射パターンを学習するために使用された入力によって同様に実施することができる。
また、値σ1及びσ2の他に追加して、又は組み合わせで、画像に相当する正しい距離マップ及び反射パターンを供給することも可能である。この場合、ステップ405におけるニューラルネットワークの出力は各値σ1
(n)及びσ2
(n)だけでなく、入力1208によって得られた事前設定された距離マップ及び/又は反射パターンと比較される距離マップ及び/又は反射パターンでもある。
このようにして本発明のコンセプトでは、モバイル装置に供給されるニューラルネットワークは既に、画像が本物の物体であるか又は本物の物体の二次元のスプーフでしかないかの判断に完全に適したものとなっている。
総合的に、上記にて図11を参照して説明した点畳み込み層と深度畳み込み層とバッチ正規化部と整流線形ユニットとを使用することにより、1メガバイト未満のアプリケーションを提供することができ、これによりインターネット等を介して他のデータソースに何らアクセスしなくても、モバイル装置単独で使用することができる。これにより、無線ネットワーク等へのアクセスが不可能である環境下での適用に適したものとなる。さらに、この用途を実行するために必要なプロセッサ性能を最小限に抑えつつ、例えば、識別された本物の物体からバイオメトリック特性を抽出して後続のセキュリティ関連のプロセスに使用すること等により行われるユーザの識別に後で使用できる、本物の物体の適切な判断結果を得ることができる。
<本発明のクロップ処理ステップに関する側面>
本明細書のこの箇所では、バイオメトリック特性を有するデータをサードパーティ計算機に送信する前に、上記のステップにおいて取得され処理された元の画像から関心領域を具体的に抽出するための追加のステップに注目する。実際、以下説明する実施形態を参照して、関心対象の指紋を有する指先等の関心領域のみを含む画像データを取得する一実施形態について説明する。
本実施形態は、ユーザの物体を撮影した画像から関心領域(ROI)の抽出に焦点を当てたものであり、この画像は、ユーザを識別するために使用できるがサードパーティ計算機上で他の任意の目的のために使用することも可能なバイオメトリック特性を含む。かかる物体は、ユーザの手の1本若しくは複数本の指の指先、ユーザの手のひらのしわ、又はユーザの顔、あるいはユーザの眼若しくは足等、何でも可能である。これらの各実体は、ユーザを識別するために使用できるバイオメトリック特性を保持することが知られている。例えばユーザの指紋は、指紋スキャナを用いる際、又は容疑者の1つ若しくは複数の指紋のインク画像を採取する際に、ユーザを識別するために有用であることが周知となっている。下記では、説明のための一例として指先及び指紋を用いるが、これは本発明の如何なる限定にもならないと解すべきである。指や指紋(具体的には指紋のマニューシャ)に代えて、これまでに挙げた他の任意の物体や他の任意のバイオメトリック特性を用いることができる。
以下説明する実施形態を「クロップ処理ステップ」と称することとする。これは、画像の一部を他の部分から分離するものである。この手法は、図1の方法のステップ1にて既に取得された画像について行われる。このステップは、識別ステップ2の後かつ生体検知ステップ3及び比較ステップ4の後に行うことができる。しかし、クロップ処理ステップはステップ3,4と並行して、又はステップ2の直後に行うこともできる。しかし好適なのは、クロップ処理ステップをステップ2の前には行わないことである。というのも図1のステップ2は、バイオメトリック特性を保持する物体が画像中にそもそも存在するか否かを判断するだけであるからである。よって、以下で説明する実施形態の画像の処理を図1のステップ2前に行うことは合理的ではなく、リソースの無駄になってしまうおそれがある。
図13を参照すると、同図の左側に上述のような画像110が一例として提示されている。これは、図1のステップ1において光学センサにより取得された画像であり、この画像は場合によっては、上記にて述べたステップ2,3及び4においてさらに処理されたものであり得る。
同図では、画像1310の前景に指1311が示されている。この指がバイオメトリック特性を指紋1312の形態で有しており、指紋1312は指の先端にマニューシャを含む。画像はモバイル装置のカメラ等の光学センサによって撮影されたものであるから、画像は通常は他の物体1313~1318も含む。これらの物体は、他の人、車、家、植物や道路、又は他のあらゆるインフラストラクチャ等、あらゆるものであり得る。
サードパーティ計算機上にあるバイオメトリック特性処理用の他のソフトウェア又はハードウェア等の識別手段に画像が供給される場合には、これがユーザの識別誤りを引き起こす可能性があり、またその可能性が非常に高い。というのも、サードパーティ計算機上のかかるソフトウェア/ハードウェアは、画像のうちユーザを識別するために使用できる程度のバイオメトリック特徴を含む部分(以下「関心領域」という)と他の部分とをどのように区別したら良いか分からないからである。さらに、かかる識別手段(例えばログインサーバ等)が、ユーザを識別するために上述のような画像を適正に処理できる構成であったとしても、実際にバイオメトリック特性を含むROIを識別して画像の他の部分から区別するためだけに識別手段で必要とされる計算リソースが、相当な量となり得る。
よって、ユーザを識別するため、すなわちROI又はROI内のバイオメトリック特性を識別するために本当に必要な情報のみを、図1の方法のステップ9においてサードパーティ計算機へ転送されるバイオメトリック特性を含むデータとしてサードパーティ計算システムに供給することが、より適切である。このことは、下記にて説明するクロップ処理ステップをモバイル装置上で行うことが好適であることも意味する。しかし、少なくともバイオメトリック特性を含むデータが画像全体であり、これをサードパーティ計算機へ送信してサードパーティ計算機がクロップ処理ステップを行う実施態様も可能である。
いずれの場合においても、本実施形態の思想は、ROI1322が抽出若しくは分離され又は画像中の他のあらゆる部分(以下、符号1321で示す)から他の態様でROI1322が区別された修正済みの画像1320又は画像1320の一部が得られるように、元の画像を処理することである。
よって、この修正後画像1320はROI1322のみを含むものとすることができ、又は、正方形若しくは方形の領域を設けてその中にROIを埋め込んだものとすることができる。後者の実施形態は扱いが容易となり得る。というのも、上述のような正方形又は方形の領域は、例えば1024×1024画素又は198×198画素又は他の任意の適切な数の画素等の複数の画素を用いて画像を表現する通常の態様で表現できるからである。
通常、モバイル装置の光学センサにより撮影された画像1310は、実際に画像上に写るものが画像ごとに異なり、また、バイオメトリック特性(指等)を有する物体の見え方や位置も異なるため、例えば、画像の第1の部分を他の部分から区別する事前設定されたマスクを画像に被せることでは、ROIを容易に特定することができない。
このことに鑑みて本発明の一認識は、後述するように適切な入力によりニューラルネットワークを訓練することにより、ROIを画像の他の残りの部分から高信頼性で分離できるように元の入力画像1310又は当該画像1310の一部を処理することができる、というものである。本実施形態はニューラルネットワーク(これは、上記にて言及した識別ステップ及び/若しくは生体検知ステップ及び/若しくは比較ステップで用いられるものと同じニューラルネットワークとすることができ、又は完全に異なるニューラルネットワークとすることもできる)を使用したものに限定されないが、本実施形態はニューラルネットワークを用いて実施することが好適である。よって、下記の説明は、クロップ処理ステップを実施するためにニューラルネットワークを適用することに焦点を当てる。
画像の他の部分からのROIの上述の抽出を容易にする一実施形態の処理を、図14に簡単に示して説明する。
それ以降の図において、分離ステップについてのより具体的な説明を行う。
最初のステップでは、本方法は、モバイル装置の光学センサを用いて、バイオメトリック特性を有する物体の画像を取得するステップ1401と、場合によっては、画像に対して別途前処理1402と、を行うことができる。この前処理には、図1のステップ2~4を含むか、又はステップ2のみを含むことができる。ステップ1401及び1402はあくまで例示のみを目的として示したものであり、ここで説明する実施形態では、図1の方法を実施するために既に画像が撮影されているにもかかわらず画像の撮影を何らかの形で繰り返す必要があることを意味するものではない。
しかし、図1のステップ2~4からは独立して画像をさらに処理することも可能である。
一例として、元の画像は通常は複数の画素(例えば1024×1024)から構成され、各画素ごとに3色の色値に明度値を割り当てたものが設けられる。これにより、前処理の際に元の画像から、画素数は変わらないが各画像の画素値が1色の色値のみに関連付けられた3つの画像を導出することができる。このようにして前処理後には、緑色値を有する画像が1つ、青色値を有する画像が1つ、赤色値を有する画像が1つ得られる。後述するように、他の前処理手法も可能である。
具体的には前処理1402は、(ニューラルネットワーク又は他の任意のソフトウェア又は他の任意のニューラルネットワークのいずれかを用いて)画像を調べて、当該画像のうち、バイオメトリック特性を有する物体が配された元の当該画像のサイズより小さいサイズの一部を識別することを含むことができる。これは、図1の識別ステップ2の結果を用いて行うことも可能である。
図13を参照すると、指先を有する指1311は、撮影された画像の略中央に配されている。それゆえ、前処理ステップ1302は、画像1310の境界領域をカットすることと、元の画像のうち引き続きバイオメトリック特徴を有する指先1312を含むより小さい一部のみをさらに処理することと、を含むことができる。これは、指先を含む中心部分(例えば方形の形態等の部分)のみを元の画像から抽出することと同じである。
下記では、通常「画像」又は「入力画像」又は「元の画像」という。上記事項に鑑みると、これは光学センサにより取得された画像又は元の画像の全部を含むだけでなく、画像全部に代えて画像の一部のみを用いること、又は、各画素について1色の色値を含み若しくは明度値に限定された1つ若しくは複数の画像を用いることを含めた、前処理の任意の具現化も含むことが明らかである。従って、元の画像のさらなる処理について記載する場合には、これらのどの前処理も、また、想定し得る他のどの前処理も含まれるとみなされる。
いずれの場合においても、ステップ1401において画像を取得し、ステップ1402の後、場合によっては画像を別途前処理した後(図1の生体検知ステップ3を既に行った後等)、ステップ1403において画像(又は画像の一部又は前処理後の画像)がさらなる処理のためにニューラルネットワークへ供給される。ニューラルネットワークへの画像の供給は、例えば、光学センサ又は前処理を行った構成要素からニューラルネットワークを実装したソフトウェア構成要素へ画像をクロップ処理ステップのために内部転送することにより行うことができる。
ニューラルネットワークに対する画像の供給は、モバイル装置上の永続的又は非永続的な記憶部から画像を取り出してニューラルネットワークへ供給すると共に、ニューラルネットワークに対して設けられた永続的又は非永続的な記憶部であってニューラルネットワークがその記憶位置にアクセスできる記憶部に画像を記憶することを含むこともできる。
次のステップにおいて、ニューラルネットワークへの画像の供給1403を行った後、画像をニューラルネットワークによって処理する1404。この処理は、ニューラルネットワーク内の1つ若しくは複数のノード又は1つ若しくは複数の層によって画像の1つ又は複数の画素に関連付けられたデータを処理し、これにより例えば、下記にて詳細に説明するように1つ又は複数の特定の態様で入力画像を変換することを含むことができる。このニューラルネットワークによる画像の処理1404の後、ニューラルネットワークは、画像のうち上記のROIを含む部分を、例えばバイオメトリック特徴と関係のない画像の背景等の他の部分から区別する出力を出力する。この処理によって、物体の一部が関心領域に属しないとみなされることもあり得る。これは例えば、バイオメトリック特性を物体の一部が、当該バイオメトリック特性の少なくとも一部を含まない場合に該当し得る。これは例えば、指の場合、指先ではない全ての部分について当てはまり得る。
また、物体のうちバイオメトリック特性を含む部分の画質が識別に使用するには足りない場合もあり、これにより、これがROIに属しないということになってしまう。これが該当し得るのは、例えば、物体のうちバイオメトリック特性の一部を含む部分が光学センサに対して傾いている場合であり、かかる場合に物体の画像を撮影すると、当該部分は適切に写っていないか又は物体の撮影画像の他の残りの部分より暗くなってしまい、ユーザを識別するためにバイオメトリック特性の当該一部を使用できなくなってしまう。
いずれの場合においても上述の処理により、ニューラルネットワークが画像のうちROIを含む部分を、ROIを含まない他の部分から区別する出力を出力する。その後、ROIを含む部分は図1のステップ9でサードパーティ計算機に転送することができる。
この出力に応じて、一実施形態の方法は、画像(又は画像の一部)からROIを抽出することを含む。この抽出は、関心領域内のバイオメトリック特性を有する画素のみを画像から抽出することを含むことができる。しかし、かかる抽出により、複数の画素が合わさって、図13の画像1320中に示されているような楕円形又は円形等の想定外の形状を成すことがあり得る。かかる画像は通常は処理しづらい。というのも、この画像は、データ構造で画像を表現するために通常用いられるサイズや形状を有しないからである。それゆえ、関心領域に対応しユーザのバイオメトリック特性を有する画素のみを元の画像から抽出することに代えて、本発明の一実施形態では、元の画像のうち関心領域に含まれない画素全てを標準値(例えば黒又は白)に設定する。かかる設定により、抽出された関心領域は、修正後画像が通常使用される形状(例えば方形であり、1024×1024画素を有する形状)を有するように、複数の周囲の画素の中に埋め込まれることとなる。これにより、抽出された関心領域の処理を次のステップにおいてより容易にすることができる。
かかる次のステップは、図14の流れ図のさらなる処理ステップ1406にまとめられている。抽出された関心領域(関心領域自体の画素のみであるか、又は、標準値を与えられた画素の中に埋め込まれ又は当該画素によって囲まれた関心領域の画素である)のさらなる処理は、モバイル装置上に設けることができる記憶装置にROI(又はその画像)を記憶することを含むことができる。追加的又は代替的に、上述のさらなる処理1406は、関心領域をサードパーティ計算機の識別手段に供給することを含むこともでき、この識別手段は、当該関心領域を用いて関心領域内のバイオメトリック特性を抽出し、抽出したこのバイオメトリック特性を処理して、当該抽出したバイオメトリック特性がユーザを識別するか否かを判定するものである。
例えば、識別手段は、例えば企業又は行政機関のサービスにアクセスするため等、ユーザの銀行口座にログインするためのログインサーバとすることができ、このログインサーバはサードパーティ計算機に設置されたものである。ユーザ自身を識別するためには、ユーザは例えば自己の指先等の画像を撮影し、図14のステップ1401~1405を参照して説明したように当該画像を処理させて、銀行口座にログインするためのサードパーティ計算機にその画像を(手動又は自動のいずれかで)送信することができる。その後、このサーバは、関心領域を含むデータ構造の関心領域をさらに処理することにより、識別が成功したか否かを判定することができる。
かかる処理をどのように容易にできるかについてのプロセスは、図15において一実施形態について詳細に説明する。
図15は、バイオメトリック特性が指紋である場合にバイオメトリック特性を使用してどのようにユーザを識別できるかを詳細に説明する図であり、この場合、物体は少なくとも1本の指先である。上記にて説明したように、他の物体やバイオメトリック特性を選択することも同様に可能である。
図15の方法は好適には、サードパーティ計算機でのみ行われる。モバイル計算機は、バイオメトリック特性を保持する各自のデータ(本例ではROI)を供給するだけである。
図15の方法はステップ1521で開始し、当該ステップでは、指先からバイオメトリック特徴を抽出する。よって、これらのステップは少なくとも、図14にて説明したように、識別された物体からバイオメトリック特性又はROIを抽出するステップの後に行われる。
指先からバイオメトリック特徴を抽出するステップは、例えば指紋の位置及びマニューシャの種類を抽出することを含むことができる。また、マニューシャの非常に具体的な種類のみを抽出することも可能である(例えば、指紋における2つ以上の線の交差等)。
この情報を使用してユーザを識別するためには、もちろん、対応するバイオメトリック特徴の形態で参照が存在することが必要である。そのため、上記にて図14を参照して説明したサードパーティ計算システムの識別手段が、特定のユーザに係るバイオメトリック特徴を記憶した記憶装置に関連付けられ、又は、かかる記憶装置を備えている場合があり得る。例えば、1つ又は複数のバイオメトリック特徴を例えば画像、数値、又は他のデータ構造の形態で記憶したファイルが、ユーザごとに存在することが可能である。
次のステップ1522において、指紋から得られたバイオメトリック特徴を、対応して記憶されたバイオメトリック特徴と比較する。このステップは、例えば記憶されたバイオメトリック特徴がマニューシャの複数の場所によって表されている場合、抽出されたバイオメトリック特徴における対応する場所を比較することを含むことができる。もちろん、取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴とを比較するための他の手段も公知であり、また使用可能であり、例えば画像認識技術又は周波数変換等を用いることができる。取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴とを比較するステップは上記の実施形態では、取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴との一致度を計算できるように行われる。換言すると、この比較によって、記憶されたバイオメトリック特徴と取得されたバイオメトリック特徴との差が算出される。この差は1つの実数又はテンソル又はベクトル、又は、取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴との一致度若しくは差を表すのに適していると考えられる他の任意の数学的構造とすることができる。また、記憶されたバイオメトリック特徴画像から、取得されたバイオメトリック特徴画像を画素ごとに減じることにより得られる差分画像とすることもできる。
取得されたバイオメトリック特徴が記憶されたバイオメトリック特徴と一致するか否かを判定するために使用できる閾値、すなわちユーザを識別できる閾値を設けることができる。
これに応じてステップ1523では、取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴との差が上記の閾値を上回るか又は下回るかを判定する。当該閾値を下回る場合、ステップ1525において、ユーザがバイオメトリック特徴によって識別されると判定する。差が閾値を上回る場合には、上記判定結果ではなく、ステップ1524においてユーザがバイオメトリック特徴によって識別されないと判定する。閾値は例えば0~1の数値に設定することができ、その際には0は、完全一致(すなわち差が無い)とし、1は完全不一致を表すことができる。識別精度は比較的高くなければならないことを考慮するが、それと共に、図13及び図14において説明したように通常歪みを生じ得る物体の自由形態の画像が撮影されることを考慮するためには、閾値は0付近に設定することができるが、0に設定してはならない。例えば、閾値は0.1未満、好適には0.05未満とすることができ、又は0.98以下とすることもできる。もちろん他の値も可能である。
かかる判定によって識別手段は、取得された指紋によってユーザが識別されたこと、又は、取得された指紋によってユーザが識別されなかったことのいずれかを判定することとなる。
図14及び図15では、ユーザを識別するために使用される指先が1つのみである場合であって当該指先が画像中に存在する場合に、撮影当初の画像から取得されたバイオメトリック特性を用いてユーザを識別する態様を説明した。
しかしながら、識別手段は1本の指先のみを評価するだけでなく、ユーザを識別するために画像上に存在する2本又は全ての指先等の複数の指先を評価することも可能である。1本の指先又は複数の指先の指紋から取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴とを識別手段によって照合する態様は、図15を参照して説明した態様に相当する。
しかし複数の指紋を評価する場合には、複数のバイオメトリック特徴の組み合わされた識別精度が所与の閾値を上回る場合にのみユーザが識別されたとするか、又は、取得された指先ごとに、図15のステップ1522及び1523にて説明した取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴との比較を行うことによってステップ1525の結果が得られた場合にのみユーザが識別されたとすることができる。
図15を参照して説明した方法は画像中の指紋ごとに行われ、取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴との差が各取得された指紋ごとに所与の閾値を下回る場合にのみユーザが識別されるので、後者の場合が明確である。他の全ての場合では、ユーザは識別されないとすることができる。
しかし、画像中の全ての指先の指紋の組み合わされた識別精度が所与の閾値を上回る場合にユーザが識別されたとする場合には、各指先ごとに、取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴との比較の結果として、図3のステップ1523の差が閾値を下回ることを要しない。
例えば、あるバイオメトリック特徴の識別精度が0(非識別)~1(取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴とが完全一致)の範囲の数値とすると、組み合わされた識別精度が、バイオメトリック特徴ごとに個別に得られる別々の識別精度の総和によって求められる場合、組み合わされた識別精度の値は4未満とすることができる(4は、4つの指紋についての識別精度が満点であることに相当する)。
例えば、組み合わされた識別精度に対応する閾値は3.5とすることができる。この場合、ユーザを識別するためには、例えば各指紋の識別精度が約0.9であれば足りることとなる。というのも、これらの識別精度の総和(すなわち組み合わされた識別精度)は3.6となり、総和の閾値を上回るからである。他の一例として、3つの指紋が0.95の識別精度で識別される場合を考えると、4番目の指は0.75の精度で識別されるだけで足りることとなる。
なお、識別精度は、取得されたバイオメトリック特徴と記憶されたバイオメトリック特徴との相対的な類似度又は一致度と考えることができる。よって、取得されたバイオメトリック特徴が記憶されたバイオメトリック特徴と90%一致する場合、識別精度(すなわち、当該バイオメトリック特徴によってどの程度正確にユーザを識別できるか)は0.9となる。
識別精度の他の値を使用すること、又は閾値の他の値を使用することも可能であることは明らかである。さらに、組み合わされた識別精度を求めることができる手段は他にも存在する。例えば、複数の識別精度の平均値を求めることにより、又は、複数の識別精度の積を求めることにより、組み合わされた識別精度を算出することができる。
後続の複数の図では、取得当初の画像をステップ1404~1405に従って処理して最終的にバイオメトリック特性を含むROIを抽出する処理を詳細に説明すると共に、指先を高精度で識別できるようにするためニューラルネットワークをどのように訓練できるかについての説明を行う。
既に上記にて説明したように、取得された画像は、まずエンコーダ(図16にて説明する)を用いて処理してからその後にデコーダ(図17にて説明する)によって処理することにより、ニューラルネットワークによって処理される。
図16は、本発明の一実施形態のニューラルネットワークのエンコーダの一層1600における受け取った入力の内部処理を示す図である。この層1600は、エンコーダによる元の入力の処理順で、上述のステップ1402の後に元の入力を受け取る最初の層、若しくは、ニューラルネットワークの他の2つの層1640と1650との間に配されたいずれかの中間層とすることができ、又は、層1600は最終的に、デコーダに供給される符号化出力を出力するニューラルネットワークの最後の層とすることもできる。
いかなる場合においても層1600は、少なくとも何らかの形で取得当初の画像に対応する入力1630を受け取る。これは、図1のステップ2において既に、例えば上記にて説明した境界ボックス等を用いて、画像のうちバイオメトリック特性を保持することが分かっている一部分に分離し、元の画像のこの一部分を図16及び図17のニューラルネットワークの層によって処理することも含む。
この入力は好適には、次元N×Mを有する少なくとも1つのマトリクスの形態であり、ここでN及びMは、0より大きい整数である。マトリクスは例えば、少なくとも1つの色値(例えば赤)について画像中の画素を表すものとすることができる。よって、このマトリクスの成分は、当該特定の画素の当該色(本事例では赤)の値に相当する値を有することができる。以下の記載から明らかであるように、入力は取得された画像と同一でなくてもよく、ニューラルネットワーク内の層による何らかの処理によって、又は何らかの前処理(例えば解像度低減処理、単色低減、明度値低減等)によって元の画像を表すマトリクスから得られたマトリクスPとすることができる。
しかし説明の簡素化のため、入力1630は、取得当初の画像を表すN×Mマトリクスに相当し、当該N×Mマトリクスの各成分は当該画像中の各画素の一色(例えば赤)の値に相当すると仮定する。この考え方は、元のN×Mマトリクスをニューラルネットワークの各層で処理した変換後のどのような他のマトリクスにも、容易に適用することができる。
ここで、図16に例示した処理によれば、入力1630は処理のために深度畳み込み層1611によって受け取られる。下記では、深度畳み込み層によって入力マトリクス1630をどのように処理できるかに関する比較的簡単な例を提示する。これは、カーネルKを用いて当該マトリクスとの内積を算出することを含む。このカーネルは、いわゆる「ストライド」でマトリクス全体で実行される。下記の例は値1の水平方向ストライド幅及び垂直方向ストライド幅を用いているが、ストライド幅が0より大きい整数であれば、1より大きい他の任意の値を使用することができる。カーネルKはサイズがS×Tであり、ここでS及びTは整数であり、かつN及びMより小さい。
さらに、サイズN×Mの元の入力マトリクスI(すなわち入力マトリクス1630)のみがカーネルとの内積を算出するために使用されると仮定する。しかし、カーネルとの内積を算出するために、拡張されたマトリクスZを用いることも可能である。この拡張されたマトリクスZは、元のマトリクスIの最初の行の上と最後の行の下とに行を「付加」し、最初の列の左側と最後の列の右側とに列を「付加」することによって得られるものである。
これは「パディング」と称される。パディングは通常、行方向に数Pwの行を追加し、列方向に数Phの列を追加することを含む。数PwはS-1に等しくすることができ、数PhはT-1に等しくすることができ、これにより、Zとカーネルとで算出されたいかなる内積も、元のマトリクスIの少なくとも1つの成分を含むこととなる。よって、これにより得られるマトリクスZのサイズは(N+2Pw)×(M+2Ph)となる。このことから、マトリクスZは以下の成分を有することとなる:
ここで、全ての内積を算出してこれらを行及び列に従って適切に配列することによって得られる新たなマトリクスは、一般的に
のサイズとなる。ここで、Wwは行方向のストライド幅であり、Whは列方向のストライド幅である。サイズS×Tの所与のカーネルKを得るためには、新たなマトリクスのサイズが整数となるパディング及びストライド幅のみが許容されることが明らかである。さらに、ストライド幅WwはS以下であり、かつストライド幅WhはT以下であることが好適である。その理由は、そうしないとマトリクスIにおけるカーネルの動きが、元のマトリクスのうち新たなマトリクスの算出で除外されてしまう行又は列が出てきてしまうものになってしまうからである。
以下では説明の簡素化のため、元のマトリクスIに対してはパディングを行わず、水平方向及び垂直方向のストライドのストライド幅は1であると仮定する。さらに、カーネルはサイズS×Sのマトリクスであると仮定する。すなわち、S=Tである特殊な事例を想定する。任意のパディング及びストライド幅及び任意のカーネルサイズに対して以下の説明を適用することは、以下の思想により容易に行える。
深度畳み込み層1611では、受け取った入力マトリクス1630を使用して、サイズS×SのカーネルKとの内積を求める。ここで、S<N,Mである。この内積は、元のN×Mマトリクスの各削減マトリクスごとに計算され、削減マトリクスのサイズはS×Sであり、元のN×Mマトリクスのコヒーレントな成分を含む。一例としてS=3の場合を考察すると、元のN×Mマトリクスの第1の削減マトリクスR((N×M)S)は成分i=1,2,3;j=1,2,3を有し、9個の成分から構成され、カーネルKとの内積を計算するとその結果は単一の数となる。元のN×Mマトリクスの行方向における次の削減マトリクスは、iを1増分したマトリクスであり(ストライド幅に相当する)、これにより当該方向における次のマトリクスは、元のN×Mマトリクスのi=2,3,4;j=1,2,3の要素から構成されることとなる。その後、このマトリクスは、カーネルとの次の内積を算出するために使用することができる。なお、ここで提示した一例のS=3であるS×Sマトリクスは単なる一例であり、他のカーネルを使用することも可能である。
列/カラム方向において次のサイズ(N×M)sの削減マトリクスRを算出するためには、元のN×Mマトリクスの要素の添え字jを1増分する。これは、行方向において最後の削減マトリクスまで行われ、この最後の削減マトリクスは、S=3の場合にはi=N-S+1,N-S+2,N-S+3となる。上述のことは列についても同様に行われ、j=M-S+1,M-S+2,M-S+3となる。これらの内積を計算することにより、サイズが(N-S+1)×(M-S+1)の新たなマトリクスであるマトリクスPが算出される。その成分Pijは、元のN×Mマトリクスの各削減マトリクスとカーネルKとから計算された各内積に相当する。なお、実際にはこのサイズのマトリクスが層1600の点畳み込み層へ転送される。
カーネルKは、意図されている物体を適切に識別するためにニューラルネットワークを訓練する学習プロセスによって得られた成分である。ニューラルネットワークの層1600において使用されるこのカーネルKは、各ニューラルネットワークの他の層において使用されるカーネルと同一のサイズ及び成分である必要はない。また、カーネルの各成分は互いに同一である必要はなく、少なくとも0以上の数である。かかる成分は、ニューラルネットワークの学習を通じて得られる「重み」を表すものとみなすことができる。
深度畳み込み層によるマトリクス1630の処理の結果は、行方向ではΔi=1の距離と列方向ではΔj=1の距離(これは各ストライド幅に相当する)とを有するストライドでカーネルを元のN×Mマトリクス上で移動させる場合、上述のように、サイズ(N-S+1)×(M-S+1)のマトリクス1631となる。しかし、このストライドがΔi=2やΔj=3のようなより大きな距離を有する場合(これは列についても同様にあり得る)、これに応じて結果1631の次元が上述のように変化することとなる。
後続の処理において、この結果1631は第1のバッチ正規化部1612へ転送される。この第1のバッチ正規化部1612は、図16中の矢印で示されている処理順において深度畳み込み層1611の次である。このバッチ正規化部は、受け取った結果マトリクス1631の正規化を試行する。この正規化は、(N-S+1)×(M-S+1)マトリクスの各成分の総和を算出し、これを(N-S+1)×(M-S+1)マトリクスの成分の数によって除算することにより達成される。要素Pijを有する(N-S+1)×(M-S+1)マトリクス(以下「P」で示す)の平均値Vは、次のように与えられる:
ここでn及びmは、N×Mマトリクスの行数及びカラム/列数、又はマトリクスPの行数及び列数を表す。要素PijはマトリクスPの成分であり、所与の要素Pijは、当該マトリクスの第i番目の行かつ第j番目の列の要素である。
その後、バッチ正規化部は元のマトリクスの各成分Pijから平均値Vを差し引くことにより削減マトリクスP’を算出し、P’ij=Pij-Vとなる。これによって削減マトリクスP’内の値は正規化され、一方向又は他方向における変則値(anomalies、極端に大きい値又は極端に小さい値)がフィルタリング除去される。
第1のバッチ正規化部1612によって生成された結果1632は、(図16の例では)未だサイズが(N-S+1)×(M-S+1)であるマトリクスとなる。というのもこれ以前では、マトリクスの次元削減が行われていないからである。
結果1632はその後、第1のバッチ正規化部1612の次の第1の整流線形ユニット1613へ供給される。
この整流線形ユニットは、
を算出することによって、マトリクス1632の各成分をさらに修正する。ここで、
である。
これにより、0より小さい値はバッチ正規化部を通過した後は0に設定され、これにより、以下説明する深度畳み込み層における更なる処理に影響を及ぼさなくなる。このことは、具体的には例えば、バッチ正規化部において算出された平均値を下回る色値はこれ以降考慮されず、平均値Vと少なくとも一致する値のみが計算の次のステップの結果に影響を及ぼす、ということである。
このようにして第1の整流線形ユニット1613によって出力される結果1633は依然として(N-S+1)×(M-S+1)の形状/サイズのマトリクスであり、このマトリクスは点畳み込み層1621へ転送される。
点畳み込み層1621は結果1634を生成する。この結果1634は、点畳み込み層1621が(N-S+1)×(M-S+1)マトリクス1633の各成分をとって当該各成分に重みαを乗じることによって生成される。αは好適には、常に0より大きい数であり、この数は(N-S+1)×(M-S+1)マトリクスの各成分に対して同一である。よって、点畳み込み層1621から得られる結果1634は、同一サイズの(N-S+1)×(M-S+1)であるが各成分に重みαを乗じたマトリクスとなる。
その後、結果1634は第2のバッチ正規化部1622へ供給され、この第2のバッチ正規化部1622において第1のバッチ正規化部1612について説明した態様で正規化されて、同じ次元の正規化マトリクスP’が結果1635として算出される。このマトリクス/結果1635は第2の整流線形ユニット1623へ転送され、第2の整流線形ユニット1623において
を得るために整流関数が適用され、この結果/マトリクスはニューラルネットワークにおける次の層へ転送され、又は、ニューラルネットワークにおいて次の層がもはや無い場合には、結果1636は出力符号化画像として、エンコーダにより処理されるために、図17にて説明するように出力される。
なお、エンコーダにおける処理により、光学センサによって得られた元の画像に存在していた情報は失われてしまう。というのも、エンコーダにおいて適用される変換tの中には、関係t°t-1=1が保持される逆変換t-1を有しないものがあるからである。しかし、これは実際には、本発明において意図している結果である。というのも、後述するニューラルネットワークの訓練によってこの情報損失を基本的に、関心対象外の情報すなわちROIではない情報に絞る又は制限できるからである。このような情報は失われるが、他方でROIの情報重みは増大するので、ROIを画像の他の残りの部分から区別することができる。
本発明の一認識は、指先を識別するためには図16にて説明した層1600と同一の層を13個設けるのが最も好適である。というのも、指先の識別精度及びその位置の識別精度が比較的高くなると同時に、各方法の実装に必要なコンピュータリソースが削減され、このことによってモバイル装置により適用しやすくなるからである。
図17を参照して、エンコーダから符号化済み画像を受け取ったときにデコーダにおいて実行される処理を説明する。
既にエンコーダについて示したように、デコーダとの用語は、物体に適用された暗号化を復号化するといった「復号化」するものの意味に解すべきものではなく、デコーダとは、当該デコーダによって符号化済み画像が処理されたときに復号化出力画像のサイズ(画素又はマトリクスの成分についての大きさ)が好適には元の入力画像のサイズに相当するように符号化済み画像を拡張し、又は符号化済み画像を少なくとも変換する、1つ又は複数のノード又は層を含むニューラルネットワークを構成する部分をいうものとする。例えば、元の入力画像のサイズがA×B画素である場合、復号化出力画像(又はテンソル)は好適には、これと等しいサイズ又は画素数を有する。これはマトリクス(又は、より具体的にはテンソル)の形態で記述することもでき、このマトリクスは、各画素を当該マトリクスの成分に関連付け、各画素の値がマトリクスの成分の値となったものであるから、マトリクスの形態の復号化出力画像のサイズは元の入力画像のサイズというのと等価である。一例として、元の入力画像が224×176×3(3は、色値の色数に相当する)のサイズを有するとすると、復号化出力画像は、復号化出力画像を構成する画素/マトリクスの成分の同じ数を有する。元の入力画像の解像度を他の解像度とすること(すなわち、色値の数を他の数とすること)も可能である。
図17に示されているように、デコーダ1700は、符号化入力画像1731を順次処理するための1つ又は複数の層1751及び1752(並びに、図示されていない他の相応の層)を有する。具体的には、符号化入力画像1731はまずデコーダ1700の第1の層1751に処理され、その中間復号化画像1733は、ニューラルネットワークのデコーダ1700における符号化済み画像の処理順において次の層1752に供給される。デコーダの各層を通過した後は、最終的な復号化出力画像1736が得られる。この最終的な復号化出力画像1736はその後、下記にて詳細に説明するようにさらに処理することができる。
層1751及び1752による符号化済み画像の処理に関してまず留意すべき点は、これらの各層は同一の構成要素を有することであり、これら構成要素は基本的に、「転置畳み込み」とも称される逆畳み込み部1701及び1702と、バイリニアアップサンプリングユニット1711及び1721である。バイリニアアップサンプリングユニットは、各層における処理順では逆畳み込み部1701及び1702の後に示されているが、入力符号化画像の処理順においてバイリニアアップサンプリングユニットを逆畳み込み部1701及び1702の前に設けることも可能である。
逆畳み込み部1701及び1702は、畳み込みの変換を逆にするように動作する。
これをより詳細に説明するにあたり、符号化入力画像1731(又は任意の中間復号化画像1733及び1735)は特定のサイズN’×M’を有する入力マトリクスBの形態で表現されていると仮定し、この入力マトリクスの成分をBijとし、ここでi≦N’かつj≦M’である。
この入力マトリクスから
を得るため、エンコーダの深度畳み込み層のカーネルのように
を有するマトリクスの形態の
を、マトリクスの各成分に乗算する。検討を簡単化するため、
と仮定する。しかし、これは本発明を何ら限定するものではない。実際には、
を任意の値とすることができる。これには、デコーダにおいて用いられるカーネルの
又は
が、エンコーダにおいて用いられるS及び/又はTと異なることが含まれる。
このカーネルを元の入力マトリクス(符号化済み画像1731等)の成分Bijに乗算することにより、特定の成分を有する
が得られる。
を考えると、
の成分は
として表される。これらは、
により算出される。
これにより、入力マトリクスBの1つの成分が、
を有する部分マトリクスに拡張される。
の値はマトリクスBの成分だけでなく
にも依存する。各成分Bijについてこの手順を行った後は、
が得られる。
は、下記にて詳細に説明するようにニューラルネットワークの訓練により得ることができる。原則的には、入力マトリクスの成分Bijの添え字i及びjに依存して
を設けることが可能ではあるが、説明を簡単化するため、使用される
は逆畳み込み部の中では同一であると仮定する。これが意味するところは、
ということである。しかし、デコーダの他の逆畳み込みに対しては、上述のことは当てはまらず、カーネルのサイズ及び/又は成分を別のものとすることができる。
算出された
に戻ると、これ以降の手順は下記のようになる。入力マトリクスBの各成分Bijについて、部分マトリクスが上記にて説明したように算出される。逆畳み込みから合理的な出力を得るため、これらの部分マトリクスを特殊な態様で組み合わせることにより、
を得る。これは、多数の手法で達成することができる。
例えば、これら複数の部分マトリクスを「貼り合わせる(sticked together)」することができる。具体的には、
を組み合わせると共に、
を組み合わせる。さらに、対角線上に
を設ける。このようにして、B00からパターンを開始して入力マトリクスの元の成分Bij全てとその部分マトリクスとに対して上述のパターンを続けることにより、拡張マトリクスが得られる。
代替的に、
を重ね合わせて組み合わせることもできる。具体的には、部分マトリクスを上記のように互いにくっつけるのではなく、(上記段落の場合のように)各カーネルの
より小さいストライド幅Wで
をシフトさせるのみで、
とを組み合わせる。これにより、
において1つ又は複数の
の組み合わせから成分が得られる。この重なり合いは、どの方向にも設けることができることが明らかである。つまり、(マトリクス表現を考えると)左右方向、上下方向及び対角方向に設けることができる。
上記のことを考えると、
となり、これは、
に簡素化する。これは、上記にて説明したように
を互いに横に配置する場合に当てはまり、これは
と等価である。重なり合いが設けられ、これによりストライド幅Wがカーネルの
より小さい場合、拡張マトリクスの合成サイズは(N’+(N’-1)W)×(M’+(M’-1)W)となることが容易に分かる。これはもちろん、ストライド幅Wが左右方向と上下方向とで同一である場合にのみ当てはまる。それ以外の場合には、各幅を算出するために異なる値Wa及びWbを用いることができる。
逆畳み込みによる符号化済み画像の処理の結果は、使用される入力マトリクスBと
とについて上記の離散的な演算と計算とにより成分が算出された拡張マトリクスとなる。
その後、
のサイズは元の入力マトリクスBのサイズより大きくなるが、元の画像のサイズ(すなわち画素数)には未だ一致しないことがある。
次のステップにおいて、この
に対応する中間拡張画像が、バイリニアアップサンプリングユニット1711に転送される。このユニットでは、周知のバイリニアアップサンプリング技術を用いて
がアップサンプリングされる。これは、バイリニアアップサンプリングを用いて、隣り合う画素間に新たな画素を設けるということである。つまり、中間画素の値は周知のバイリニアアップサンプリング技術を用いて算出される。一例として、
を考える。
バイリニアアップサンプリングでは、
をさらに拡張して他のマトリクス(例えば
として示す)に達するため、隣り合う画素間の1つ又は複数の画素を算出することができる。このバイリニアアップサンプリングにより、算出された中間値は、逆畳み込みを用いて算出されたマトリクスの成分間のより「滑らか」な接続を表現することとなる。
バイリニアアップサンプリングユニット1711によって
を処理した後は、さらなる中間復号化画像1733が得られ、その後、デコーダにおける次の層に転送される。上記の手順はデコーダの全ての層において繰り返され、最終的に復号化出力画像1736が得られる。
この復号化出力画像が、各成分の値を有するマトリクスに相当する場合、復号化出力画像は出力マトリクスとしてのマトリクスOと称されることがある。この出力マトリクスOは元の画像と同じサイズN×Mを有し、これに応じて、元の画像の各画素に対応して1つずつ成分を有する。
しかし、復号化画像は元の入力画像と同一ではない。というのも、ニューラルネットワークにおける処理により、例えばエンコーダにおいて変換が施されることによって情報が失われているからである。
出力マトリクスOの値は、-∞~+∞の範囲とすることができる。出力復号化画像の実際の形態如何にかかわらず、この出力の各成分ごと(各画素に相当する)に、各成分の値に相応する値xが存在すると仮定する。各値に対し、
の形態を有する活性化関数S(x)を適用することができる。これにより、元の値xから0と1との間の間隔に圧縮された
が得られ、ここで、値x<0から導出される
は全て約0となり、これに対して、元の値x>0から得られる
は約1となる。
これにより、個別の画素又は成分に関連付けられた値が
のいずれかを有する
が得られる。
次のステップにおいて、0.5未満の全ての
を0に設定すると共に、0.5を越える全ての
を1に設定することにより、
をさらに修正することができる。
この修正後のマトリクスは「白黒(二値)」画像と考えることができ、このマトリクスの
を有する成分は白であり、
を有する成分及び修正後マトリクスは黒と考えることができる。その逆も可能であり、「白黒」画像についての言及はあくまで例示目的である。
ニューラルネットワークによる元の画像の処理により、出力マトリクス又は出力復号化画像において関心領域が、例えば楕円形等の特定の形状を有して現れる。その理由は、学習済みのニューラルネットワークと入力画像の処理とにより、ROIは
のいずれかに一致することとなるからである。画像の他の部分はフェードアウトし(これは、それぞれ
をとることに相当する)、これにより関心領域と画像の他の部分又は一部とを区別することができる。
その後、次のステップにおいて、元の画像の画素を用いて、復号化出力画像における関心領域の部分に相当する各画素を識別することができる。というのも、復号化出力画像のサイズ及び画素の配置は元の入力画像と同じであるからである。これにより、元の出力画像のうち関心領域内にある画素を抽出することができる。
復号化出力画像に至るまで元の入力画像を処理する間、関心領域の可能性のある領域が複数存在することがあり得る。本当の関心領域と他の関心領域候補とを区別するためには、復号化画像内で最大の連続領域を選択し、関心領域の可能性のある候補である他の領域を全て無視することができる。
この復号化手順により、関心領域を表す処理後画素数の画素は平滑な領域ではなく、縮小及び拡大や情報損失に起因する階段又は他の歪みを含むことがある。これは例えば、関連分野において周知の平滑化技術を適用することにより、階段の無い(略楕円形の)形状となるように補正することができる。
その後、復号化画像の得られた関心領域及び当該関心領域内の画素を、上記にて説明したように元の入力画像と照合し、元の入力画像における各対応する画素を実際の関心領域として抽出することができ、その後、例えば関心領域を記憶することにより、又は、例えば図13及び図14を参照して説明したように、さらなる処理のためにサードパーティ計算機へ関心領域を供給することにより、さらに処理を行うことができる。
なお、図17を参照して、逆畳み込み部及びバイリニアアップサンプリングユニットの特定の順序により復号化を説明したが、これらの主体の他の組み合わせを用いることも可能である。例えば本発明は、画像を上記のように順次処理する複数の逆畳み込み部のみを用いる構成も含む。これに代えて、画像の処理のためにバイリニアアップサンプリングユニットのみを順次用いることも可能である。
さらに、バイリニアアップサンプリングユニットの数が逆畳み込み部の数と一致しない実施形態もある。例えば、2つおき又は3つおきにのみ逆畳み込み部の後にバイリニアアップサンプリングユニットを設けることができる。逆畳み込み部よりもバイリニアアップサンプリングユニットの方が多い場合にも、同様のことが当てはまる。例えば、2つおき又は3つおきにのみバイリニアアップサンプリングユニットの後に逆畳み込み部を設けることができる。
バイリニアアップサンプリングユニット又は逆畳み込み部は、デコーダ全体を通じて均等に設けることを要しない。例えば、入力符号化画像の処理順に、最初に1つの逆畳み込み部を設け、その後に1つのバイリニアアップサンプリングユニットを設け、その後に2つの逆畳み込み部を設け、その後に1つのバイリニアアップサンプリングユニットをもうけることができる。その後、もう一度逆畳み込み部を1つだけ設け、その直後に1つのバイリニアアップサンプリングユニットを設けることができる。他の組み合わせも可能である。
図18は、複数の境界ボックスと、複数のグリッドへの元の画像の分離とを用いて指先の識別(具体的には、指先を構成する元の画像内の画素の識別)を行えるよう、図16及び図17に記載されているコンセプトを拡張した他の一実施形態を示す図である。これにより、ROIを発見するためにニューラルネットワークによって処理すべき画像のサイズを削減することができ、これによりコンピュータリソースとニューラルネットワークの処理能力とを抑えることができる。なおこれは、図1の識別ステップ2と、詳細な説明の識別ステップに関する対応箇所とを参照して説明した境界ボックスを用いて実現することができるが、以下では説明を簡単化するため、画像のうちROIを求めるために処理すべき部分を絞るための境界ボックスの適用について詳細に説明する。
なお、後述するステップは好適には、ニューラルネットワークにおいてクロップ処理ステップでエンコーダ及びデコーダにより元の画像を処理する前に行うことができる。
図18に記載されている実施形態は、既に説明したニューラルネットワークを用いて実施するか、又は他のニューラルネットワークを用いて実施することができる。いずれの場合においても、使用されるニューラルネットワークは、ROIを有する関心対象物体を含む特定の形状(好適には方形)の領域を識別できるように訓練されている。しかし各ニューラルネットワークは、正確なROIを画像の残りの部分から分離可能である必要はない。よって、この点においては、ROIを正確に識別するために用いられるニューラルネットワークとしては低性能である。それは、図18にて用いられるニューラルネットワークの場合、他の領域から分離すべき領域の形状が既に定義されている(例えば方形等)からである。よって、ニューラルネットワークはこの領域を適切に位置決め及びスケーリングすることしかできないが、完全に未知の形状のROIを識別可能である必要はない。
図18の実施形態では、受け取った入力が元の画像であると仮定する。しかし、この時点で何らかの前処理(例えば色分解等)を行っておくことも可能である。よって、ここでは「画像」についてのみ説明するが、画像以外にも上記にて説明した前処理済み画像のうちいずれかを用いることも可能であることが明らかである。
最初のステップにおいて、受け取った画像1800は複数のグリッドセル1810,1811及び1813に分離される。各方向のグリッドセルの数は限定されることはないが、好適な一実施形態では、画像1800は水平方向に13個のグリッドセルと、垂直方向に13個のグリッドセルとに分離され、一般的表現のQ×Rではなく13×13グリッドが生成される。ROIの抽出元の物体に依存して、使用されるグリッドセル数を増減することが可能である。いずれの場合においても、本発明は具体的なグリッドセル数の選択について限定されるものではない。
次のステップにおいて、各グリッドセルの中心点1830を識別し、この中心点1830を用いて、各グリッドセルの座標の原点をグリッドセル相互間で別々に確立する。この中心1830まわりに、通常は方形の形状である少なくとも1つの境界ボックス1831及び1832が配置され、ここでは、グリッドセル1813で分かるように、境界ボックス1831及び1832は初期高さh0及び幅又は横幅b0を有する。各グリッドセルの境界ボックスが複数である場合には、その値は互いに異なることができる。例えば、各グリッドセルの最小の境界ボックスについては初期値h0及びb0をとることができ、各グリッドセルの他の境界ボックスの寸法を計算するために、これらの値を1.5倍又は2倍又は他の任意の倍率で増加することができる。
なお、各グリッドセルの座標系における境界ボックスの位置、例えば境界ボックス1831の位置は、各グリッドセルにおける中心点1830すなわち各座標系の原点を基準とする境界ボックス1831の中心点の位置によって表されることとなる。よって、グリッドセル1811における各境界ボックスの位置は2つの座標x及びyによって表すことができる。境界ボックスの幅及び高さは、0より大きい2つの値によって表すことができる当該境界ボックスの幾何学的特性を表すと考えられる。
これらの境界ボックスは後でROIの位置を識別するため、又は、元の画像の対応する一部を処理のために各ニューラルネットワークへ供給するために用いられるが、これらの各境界ボックスに、ROIを含むことが想定される各物体を境界ボックスが含む確率である第5の値を関連付けることも可能である。
よって、各境界ボックスは
の形態の5次元のベクトルによって表すことができる。
これはすなわち、各グリッドセルが各々の境界ボックスと共に、次元Q×R×B×Aを有するテンソルTの形態で表すことができる、ということである。ここで、Aはグリッドセル1つあたりの境界ボックス数である。指先を識別するための最も好適な事例は、Q=R=13、B=5(ベクトルbの次元)であり、Aは3~10の整数、最も好適には5に設定することができる。
上記にて説明したように、ニューラルネットワークは特定の物体、好適には指先を識別するために既に訓練済みであると仮定する。これは、指先を表す可能性が最も高い画素の特定のパターンをニューラルネットワークが識別可能であることを含む。これは、そのスポットの色値、又は輝度等の他の特性の特定のパターンをいうことができる。しかし、画像600の指先の表示又はバイオメトリック特性を有する他の物体の表示は任意であり、ニューラルネットワークを訓練するために使用された指先とサイズ及び配置が一致しない指先である場合もあり得ることが明らかである。
しかし、境界ボックス及びグリッドを用いることにより、指先を含む可能性が最も高い特定の境界ボックスをニューラルネットワークが識別することができる。この特定の境界ボックスを識別するためには、ニューラルネットワーク(又は、これに関連付けられ画像1800を処理する構成要素)は各グリッドセルの各境界ボックス内の画素の値を、当該ニューラルネットワークが事前に学習した指先に相当する画素のパターンと比較する。この最初の段階では、完全一致が見つかる可能性は極めて低いが、指先の少なくとも一部分を含む可能性が他の境界ボックスより既に高い境界ボックスが出てくることとなる。
図18に示されている事例では、例えば、グリッドセル1813内に点Mを中心として配された境界ボックス1841は、手1850の指先の一部を含む。これに対して、グリッドセル1810及び1811はいずれも、指先の一部を含む境界ボックスを含まない。続けて本方法が境界ボックス1841内の画素値と、場合によっては境界ボックス1840内の画素値とを評価する場合、そのプロセスは、境界ボックス1841が指先に相当するパターンを境界ボックス1840より含むことを判定することができる。
このことに鑑みて、本方法は、境界ボックス1831及び1832(及び場合によっては他のグリッドセルの他の境界ボックス)のいずれも指先を含まないと結論付けることができ、これらの境界ボックスのBベクトルの確率値を0にセットすることができる。
点Mを中心として配された境界ボックス1840及び1841が指先の少なくとも一部を含むので、これらの境界ボックスは実際に指先を含む可能性があると考えることができ、その確率値は最初のステップでは0より大きい。
より小さい境界ボックス1840が、指先に相当する可能性のあるパターンによって略完全に埋め尽くされている一方、より大きい境界ボックス1841については、本プロセスによって指先に相当するパターンを含むと考えられるのは、当該境界ボックス1841の左側の境界のみである。
これにより、本方法は続いて損失関数を計算することができる。この損失関数は、各境界ボックス1841及び1840内で識別されたパターンと、実際に指先に相当する学習から得られたパターンとの差を決定するものである。
次のステップにおいて本方法は、各境界ボックスのサイズ及び位置を修正することにより上記の差を最小にすることを試みる。これについては、学習済みのパターンに合わせて差を最小にするため、より大きな境界ボックス1841を開始点として使用してその位置及び形状を修正すること、又は、より小さい境界ボックス1840を開始点として使用してその位置及びサイズを修正することが可能である。
この最小化プロセスは最初に、図18に示されているように各グリッドセルの中心点Mまわりにx軸に沿った方向に少量移動させてから、その後にこれに直交するy軸に沿った方向に少量移動させることにより(又は、先にy軸に沿った方向に移動させてからその後にx軸に沿った方向に移動させることにより)、境界ボックスの位置を修正することを含むことができる(以下では、境界ボックス1841がその後の計算に用いられると仮定する)。この移動は、正及び負のx軸及びy軸に沿った移動となり、位置ごとに、学習により得られたパターンと画像中で識別された実際のパターンとの差関数を求めるために比較が行われることとなる。これにより、座標に基づいて差d(x,y)を表す二次元関数を計算することができる。
これに基づいて傾き∇xydを計算することができ、これにより、学習済みのパターンとの一致を増大し、好適には最大化するため(関数d(x,y)の値を最小にすることに相当する)座標系においてどの方向に境界ボックスを移動すべきかを判断することができる。これは、∇xyd=0の場合に当てはまる。
その結果、関数d(x,y)が最小値をとる新たな中心点M’に向かう方向rに沿って境界ボックスは移動することができる。次のステップにおいて、一方向又は二方向におけるサイズ(すなわち高さ及び/又は幅)の増加又は減少が高さh及び幅bに応じてe(h,b)により表すことができる元のパターンに対する他の差関数の値を変化させるか否かを判断するため、位置M’における当該境界ボックスのサイズを増加又は減少することができる。この関数は、位置M’を有し高さhf及び幅bfを有する特定の境界ボックスと学習済みのパターンとの差が最小になるように最小化される。
その後、この境界ボックスは、画像1800のうち指先又はバイオメトリック特性を有する物体を含む部分を識別する確率pが最も高い最終的な境界ボックスとして用いられることとなる。この境界ボックスに係る出力ベクトルは、以下の形態を有することとなる。
このプロセスの結果として、次元Q×R×B×Aを有するテンソルTを出力することができ、各グリッドセル内の境界ボックスごとに当該グリッドセルの中心を基準とするx及びy位置と、当該境界ボックスの幅及び高さと、当該境界ボックスが指先を識別し又は含む確率と、が得られる。
隣のグリッドセルの境界ボックスが同じ方向に移動して互いに重なり合うのを阻止するため、また、別のグリッドセルの境界ボックスが他のグリッドセル内に入ってしまうのを阻止するため、本方法は境界ボックスの中心の移動がその元のグリッドセル内でしか行えないようにすることができる。
よって、この結果は複数のベクトルBを含むテンソルとなり、これらのベクトルのうち1つ又は複数は指先を識別する確率が高く、その他のベクトルは確率が低い。確率が低いベクトルは、その全ての値を0にセットすることにより完全に無視することができ、これによりテンソルを処理する際に必要な処理労力を削減することができる。
その後、確率が最も高いベクトルBを使用して、エンコーダ及びデコーダを用いてニューラルネットワークにより画像のさらなる処理を行うことができる。
上記のアプローチは、画像のうち指紋等のバイオメトリック特性を有する物体を含む一部をさらに処理するために使用される境界ボックスを適切に識別できるものであるが、以下では、破棄すべき境界ボックスについて説明する。
上記にて説明したように、境界ボックスのベクトルbは、当該境界ボックスが指紋を含み又は表す可能性を示す確率pを含む。この確率pを用いて、全ての境界ボックス(又はその各ベクトル)を、最も高い確率値pを有するベクトルbから降順にソートすることができる。
これが完了すると、値pが最も高い境界ボックスから降順にリストを順次処理することができる。この順次処理は、リストから値pを有する特定の境界ボックスを選択し、この特定の境界ボックスについて、他の境界ボックスとの交差の量を計算することを含むことができる。これは具体的には、選択された特定の境界ボックスの領域(面積)と、他の境界ボックスの領域(面積)とを比較することであり、これらの境界ボックスが共有する全ての領域(すなわち境界ボックスが交差し合う領域)が、算出される交差部に寄与する。
交差の量は、選択された境界ボックスの面積に対する比率として計算することができる。これにより、算出された交差部ごとに無次元の値が得られ、この無次元の値は、0(交差部なし)から1(検討対象の残りの境界ボックスが、選択された当該境界ボックスの領域と完全に交差し、又は当該領域を覆う)までの範囲である。
次のステップにおいて、事前設定された閾値を用いて境界ボックスを無視若しくは破棄し、又はこれらを除外することができる。上記の例では、この閾値は0.75の計算された交差量とすることができる。交差量がこの閾値を超える選択された境界ボックスと他の境界ボックスとの各対について、値pが低い境界ボックスを無視し、又は上記のリストから除外することができる。
その結果、最終的に画像のうちROIを含むの一部を表す1つの境界ボックスのみが残ることとなる。これはもちろん1つの境界ボックスにのみ限定されるものではない。というのも、本発明はユーザの識別のために複数の指とそのROIとを使用することを含み得るからである。
図19及び以下の説明では、図16を参照して説明したカーネルKの重み及びエンコーダの重みαと、デコーダの
の値と、をニューラルネットワークが学習するために、ニューラルネットワークをどのようにして適切に訓練できるかを説明する。
以下では、エンコーダ及びデコーダを有するニューラルネットワークの訓練について説明するが、本方法は、図18に記載の境界ボックスを算出するニューラルネットワーク(の一部)の訓練にも適用することができる。こうするために基本的に必要なのは、事前設定されたROIからの入力データを変更することにより境界ボックスとその値とを事前設定し、境界ボックスとその値(具体的にはテンソルTを定義する値)とを、境界ボックスの算出を担うニューラルネットワークに供給することのみである。
図19の方法は、訓練データ1901及びROIの準備から開始する。この訓練データは、例えば複数の指先の画像、又は、1つの画像中に他の物体と共に表されている複数の指等の、例えば図13を参照して説明した画像のような複数の画像により構成することができる。これら複数の画像は、同一画像を回転、強調、暗色化、拡大、又は他の修正を施した複製を用いて増加したものとすることができ、このような複製を訓練データとして導入する。項目1908で準備されるROIは、訓練データに含まれる画像に対応するROIであって、識別対象の物体に正しく関連付けられたROI、すなわち、エンコーダ及びデコーダによって適切に処理された場合と同様の正しいサイズ及び正しい位置を有するROIである。かかるROIは、訓練データ中の全ての画像に対して画像ごとに設けられる。ROIは、訓練画像を手動で処理することにより得ることができる。訓練画像の量は、上記の修正を施した複製を用いて人工的に増加させることができるので、訓練用にROIを定義するように手動で処理すべき画像数は削減することができる。
次のステップにおいて、ニューラルネットワークの他に最適化部1907及び損失関数計算部1906がさらに設けられた訓練環境下で、ニューラルネットワークに1つの特定の入力画像1902が供給される。
この入力画像は、第1段階において、図16にて説明したエンコーダ1903と、図17にて説明したデコーダ1904とを用いて処理される。これは具体的には、セクション1903において点畳み込み層及び深度畳み込み層のカーネルKに係る対応する重みを使用すると共に、セクション1904において
を使用することにより、図19に示されているステップ又はセクション1903及び1904を図16及び図17にて説明したように実行する、ということである。項目1603及び1604の第1及び第2のバッチ正規化部並びに整流線形ユニットは、上記にて図16を参照して説明したように動作する。これらは訓練可能なパラメータを有しないので、以下では詳細な説明を割愛する。
その結果、図19によれば、出力はROIを含む第1のテンソル符号化出力画像1905となる。この結果はその後、損失関数に供給され、損失関数では当該結果と事前設定されたROIとが比較されることにより、結果1905と、1908から得られた正しいROIとの差が特定される。損失関数1906により得られたこの差はその後、最適化部1907へ供給され、最適化部1907の方は、各点畳み込み層及び各深度畳み込み層の重み、すなわちエンコーダについてはαとカーネルKの成分を修正し、デコーダの層の
の対応する成分を修正する。これは具体的には、ネットワークの全ての層に対して同時に、又は各層ごとに別個に、点畳み込み層の重みαと深度畳み込み層のカーネルK及び
の成分を操作する、ということになる。
これらの新たな値を用いて、まさに同一の画像について上記サイクルが繰り返され、その結果得られるROIが損失関数へ供給されて正しいROIと比較され、この比較の結果が最適化部1907へ供給されて、最適化部1907は再び重みを修正する。
この手順は、上記の結果の復号化出力画像、特に識別されたROIと、項目1908の事前定義されたROIと、の差が、意図された識別精度に実質的に相当する所与の閾値を超える限り行われる。
そのあと、訓練データ1901から次の入力画像1902が取られて、対応するROIが損失関数に供給される。その後、この新たな画像について上記のプロセスを再び繰り返し、エンコーダ及びデコーダ並びにこれらの構成要素に係る最適な重みが求められる。これは、重みの特定の組み合わせによって全ての入力画像の識別精度が適切になるまで繰り返される。このようにして得られた重みの組み合わせは、最終的な重み1910として出力される。
この最終的な重みはその後、エンコーダ及びデコーダについて説明したところによりモバイル装置上で本発明の方法を実行するアプリケーションに導入され、また、図18にて説明したROIを含む画像の一部又は境界ボックスを識別するニューラルネットワークのアプリケーションにも導入される。この最終的な重みの導入は、該当する場合には、境界ボックスを識別するニューラルネットワークの対応する訓練が行われた後に行われる。
このようにして本発明のコンセプトでは、モバイル装置に供給されるニューラルネットワークは既にROIの識別に完全に適したものとなっているので、さらに学習を行う必要なく当該ニューラルネットワークを用いることができ、モバイル装置で必要とされるコンピュータリソースをさらに削減することができる。
総合的に、エンコーダ及びデコーダを備えたニューラルネットワークを使用すると共に、図18で説明したように元の画像を複数のグリッドセルに分離して各対応する境界ボックスをオプションとして特定することにより、小さい容量のアプリケーションを提供することができ、これによりインターネット等を介して他のデータソースに何らアクセスしなくても、モバイル装置単独で使用することができる。これにより、無線ネットワーク等へのアクセスが不可能である環境下での適用に適したものとなる。さらに、この用途を実行するために必要なプロセッサ性能を最小限に抑えつつ、例えば、上記にて説明したように、後で指先の指紋によって行われるユーザの識別に使用できるROIの適切な識別結果を得ることができる。
上記の説明は、指の指紋を保持する側を示す手又は指の画像に焦点を当てたが、ユーザは1本又は複数本の指を、他方の側すなわち手の甲側から光学センサに偶然又は意図的に提示することがあり得る。指のこのような画像からは、指紋は視認できないので抽出することができない。もちろん、説明したように他の物体についても同様のことが当てはまる。例えば、ユーザは手のひらではなく手の甲を見せることもあり得る。
指紋を保持する指先の画像を、指紋を見せずに爪又は指関節を見せる指先の画像と区別するためには、以下の手順を用いることができ、この手順は、識別精度を向上するように上記にて説明した方法を拡張することができる。これはもちろん、他の物体についても当てはまり得る。
上記の例では、境界ボックスは以下のベクトルにより特徴付けられた。
また上記の例では、指紋を保持する指先の側を表示する指の画像のみを用いて訓練を行った。
指先の両側(すなわち、指紋を保持する側と爪又は指関節を保持する側)から画像を撮影できる場合には、画像中で識別される物体の2つのクラス、すなわち、指紋を見せる指先である物体と、爪又は指関節を見せる指先である物体と、を考慮することが有利である。
この場合、上述のベクトルに1次元cを追加して以下のように拡張することができる:
ここで、cはいわゆるクラスである。第1のクラスは肯定的な識別結果(指紋を保持する指先を識別できる)とすることができ、第2のクラスは否定的な識別結果(指先は爪又は指関節を保持する)とすることができる。このクラスは、例えば肯定的な識別結果の場合には値1、否定的な識別結果の場合には値0によって表すことができる。ベクトルbに含まれる他の値とは異なり、クラスは離散値であり、クラスの数に相当する有限の数の異なる値しかとれないことが明らかである。
その後、第1のクラス又は第2のクラスのいずれかに属する画像を区別できるようにするため、(指紋を保持する指先を含む画像と境界ボックス1908とを示す訓練データのみが供給されるのではなく)肯定的及び否定的な識別結果をニューラルネットワークへ供給して上記の訓練を行うことができる。ここで、指紋を示さずそれ以外のものを示す指の複数の画像が考えられ、この画像が示すものは、あらゆるものが考えられる。かかる「物体」は全て第2のクラス(すなわち否定的な識別結果)に分類することができ、これによりニューラルネットワークは、指紋を保持する指先の画像を、指先の「他のあらゆる」画像と区別するよう訓練される。訓練のために設けられる境界ボックスはもちろん、ネットワークを適切に訓練できるようにするため、正しいクラスcを含むこととなる。
画像中のROIを含む全ての指先を識別するためには、上記のプロセスは、物体の位置を表す境界ボックスであって第2のクラス(すなわち否定的な識別結果)に属すると考えられる境界ボックスを全て無視することとなり、これにより、バイオメトリック特性を見せない物体の画像又は当該画像の一部の以降の処理が阻止される。
なお、この考え方を、ROIを含む境界ボックスを得るための画像の上述のオプションの処理に適用することが最も好適である。というのも、境界ボックスは、エンコーダ及びにデコーダよりROIを特定する場合と比較して容易であるからである。しかしこの手法は、エンコーダ及びデコーダを有するニューラルネットワークにも同様に適応することができる。というのも、エンコーダ及びデコーダが訓練された後は、これらによって画像を処理することにより、ROIを全く含まない符号化出力画像が得られるからである。その後、これを用いて、バイオメトリック特性を抽出できるようには物体が画像に写っていないことを確定することができる。
<モバイル装置例>
上記にて図1~19を参照して説明した本発明の実施形態のうちいずれか一実施形態の方法を実施できるモバイル計算機の場面を提示するため、図20に、本発明の一実施形態のスマートフォンの形態のモバイル装置を示す。
モバイル装置2000は、現在公知であり広く利用されているスマートフォンとして構成されている。モバイル装置2000は光学センサ2020を備えており、これは好適には、モバイル装置2000におけるディスプレイ2030の設置場所である側とは反対側のカメラの裏面に設けられている。カメラは、1MP又は2MP以上の解像度を有するカメラとすることができ、例えばHDカメラとすることができる。顔認識とユーザの顔からのバイオメトリック特性の取得とを行うためには、1MP以下のカメラで十分となり得るが、指又は指紋の画像からバイオメトリック特性を取得しようとする場合には5MPのカメラを用いることが好適となり得る。
カメラにはフラッシュライトを備え付けることができるが、これは必須ではない。光の反射パターンを用いて生体検知を行おうとする場合には、フラッシュライト又は懐中電灯が特に有利となり得る。カメラはまた、解像度を低くしたリアルタイム画像を撮影するよう構成することもでき、カメラが起動されるとディスプレイ2030は、カメラが実際に「見ている」ものを表示することができる。
本発明の一実施形態では、境界ボックスを用いた本発明の特定の実施形態を撮影画像に対して実施した後、ディスプレイ2030上に表示されている手の画像上にて、手の指先を識別する境界ボックスを強調する。上記にて詳細に説明したように、識別された境界ボックスは表示される必要はなく、例えば、ROIを抽出できるように指先に相当する画像の一部分を処理するため、モバイル装置内部でさらに処理することができる。
このモバイル装置又はモバイル計算機は図1の方法を実施するために適したもの、具体的には、ユーザのバイオメトリック特性を少なくとも含むデータをサードパーティ計算機へ供給するステップ109まで実施するために適したものである。サードパーティ計算機は、少なくともバイオメトリック特性を含みモバイル計算機から受け取られたデータについてさらなるアクションを行うことができる。例えば、サードパーティ計算機は国の行政機関が所有するサードパーティ計算機とし、当該サードパーティ計算機は、バイオメトリック特性によって適正な識別が行われた場合に国民に対してアクセス権限を付与することができる。サードパーティ計算機が会社所有のものである場合、サードパーティ計算機は、会社のストリーミング配信サービス、ログインサービス、銀行口座へのアクセス等のサービスへのアクセス権限を付与することができる。
なお、モバイル装置や本発明の一般の場面、すなわち本願にて開示した全ての各実施形態では、モバイル装置からサードパーティ計算機へ供給されるデータは暗号化された状態で伝送されることができる。これにより、マン・イン・ザ・ミドル・アタックを防止することができる。というのも、悪意の攻撃者がデータを何らかの形で取得しても、これを復号化(decrypt)して、符号化されたバイオメトリック特性を利用することができないからである。