(58)【調査した分野】(Int.Cl.,DB名)
前記共有層は、前記共有層によって算出された特徴マップの空間寸法を減少させ、特徴マップの数を増加させることによって、前記眼画像をエンコードするように構成される、請求項1に記載のシステム。
前記セグメント化層は、前記特徴マップの空間寸法を増加させ、前記特徴マップの数を低減させることによって、前記共有層によってエンコードされた前記眼画像をデコードするように構成される、請求項6に記載のシステム。
前記品質推定タワーは、少なくとも2つのチャネルの出力を出力するように構成され、前記少なくとも2つのチャネルの第1のものは、高品質推定値を備え、前記少なくとも2つのチャネルの第2のものは、低品質推定値を備える、請求項1に記載のシステム。
前記共有層、前記セグメント化層、または前記品質推定層は、畳み込み層、明度正規化層、バッチ正規化層、正規化線形層、アップサンプリング層、連結層、プーリング層、全結合層、線形全結合層、ソフトサイン層、または任意のそれらの組み合わせを備える、請求項1に記載のシステム。
前記共有層、前記セグメント化層、または前記品質推定層は、畳み込み層、バッチ正規化層、正規化線形層、アップサンプリング層、連結層、プーリング層、全結合層、線形全結合層、または任意のそれらの組み合わせを備える、請求項11に記載のシステム。
前記共有層、前記セグメント化層、または前記品質推定層は、明度正規化層、ソフトサイン層、または任意のそれらの組み合わせを備える、請求項11に記載のシステム。
【発明を実施するための形態】
【0013】
図面全体を通して、参照番号は、参照される要素間の対応を示すために再使用され得る。図面は、本明細書に説明される例示的実施形態を図示するために提供され、本開示の範囲を限定することを意図されない。
概要
【0014】
2048ビットを用いた従来のウェーブレットベースの虹彩コードが、虹彩識別のために使用されることができる。しかしながら、虹彩コードは、画像クロッピング、画像のぼけ、画像を捕捉する際の照明条件、眼瞼および睫毛によるオクルージョン、ならびに画像視野角を含む、変動に敏感であり得る。加えて、虹彩コードの算出に先立って、眼画像は、虹彩領域を瞳孔領域および周囲強膜領域から分離するようにセグメント化される必要がある。
【0015】
畳み込みニューラルネットワーク(CNN)が、眼画像をセグメント化するために使用されてもよい。眼画像は、眼の眼球周囲領域を含むことができ、これは、眼と、眼瞼、眉毛、睫毛、および眼を囲繞する皮膚等の眼の周囲の部分とを含む。眼画像は、セグメント化され、眼画像内の眼の瞳孔領域、虹彩領域、または強膜領域を生成することができる。眼画像はまた、セグメント化され、眼画像内の眼の周囲の眼瞼等の皮膚を含む、眼画像の背景を生成することができる。セグメント化された眼画像は、虹彩コードを算出するために使用されることができ、これは、ひいては、虹彩識別のために使用されることができる。虹彩識別のために有用または好適な眼画像セグメント化を生成するために、眼画像またはセグメント化された眼画像の品質が、決定または推定されてもよい。眼画像またはセグメント化された眼画像の品質が決定されると、虹彩識別のために有用または好適ではあり得ない眼画像が、決定され、後続虹彩識別からフィルタリング除去されることができる。例えば、瞬目、ぼけた眼画像、または不適切にセグメント化された眼画像を捕捉した眼画像は、虹彩識別のために有用または好適ではあり得ない。低品質の眼画像またはセグメント化された眼画像をフィルタリング除去することによって、虹彩識別は、改良されることができる。不適切にセグメント化された眼画像を生成する1つの可能性として考えられる原因は、畳み込みニューラルネットワークを訓練し、眼画像をセグメント化するとき、不適切にセグメント化された眼画像に類似する、不十分な数の眼画像を有することである。
【0016】
本明細書に開示されるシステムおよび方法は、眼画像セグメント化および画質推定に関連する種々の課題に対処する。例えば、深層ニューラルネットワーク(DNN)等の畳み込みニューラルネットワークが、両眼画像セグメント化および画質推定を実施するために使用されることができる。両眼画像セグメント化および画質推定を実施するためのCNNは、融合アーキテクチャを有することができる。融合アーキテクチャを伴うCNNは、眼画像をセグメント化する、セグメント化タワーと、眼画像の品質推定値を決定する、品質推定タワーとを含むことができ、したがって、低品質眼画像は、フィルタリング除去されることができる。セグメント化タワーは、共有層に接続される、セグメント化層を含むことができる。セグメント化層は、セグメント化タワーに一意のCNN層であり得、品質推定タワーと共有されることができない。品質推定タワーは、共有層に接続される、品質推定層を含むことができる。品質推定層は、品質推定タワーに一意のCNN層であって、セグメント化タワーと共有されることができない。共有層は、セグメント化タワーおよび品質推定タワーによって共有される、CNN層であることができる。
【0017】
セグメント化タワーは、眼画像をセグメント化し、眼画像のセグメント化を生成することができる。セグメント化タワー(または品質推定タワー)の共有層は、その入力として、眼画像、例えば、120×160グレースケール画像を受信することができる。セグメント化タワーは、セグメント化タワー出力を生成することができる。セグメント化タワー出力は、複数の画像、例えば、眼画像の瞳孔領域、虹彩領域、強膜領域、または背景領域毎に1つずつ、4つの画像を含むことができる。品質推定タワーは、眼画像またはセグメント化された眼画像の品質推定値を生成することができる。
【0018】
融合アーキテクチャを伴う畳み込みニューラルネットワークを訓練するとき、多くのカーネルが、学習されることができる。カーネルは、その入力に適用されると、その特定の学習されたカーネルに対する応答を示す、結果として生じる特徴マップを生産する。結果として生じる特徴マップは、次いで、CNNの別の層のカーネルによって処理されることができ、これは、プーリング演算を通して、結果として生じる特徴マップをダウンサンプリングし、より小さい特徴マップを生成する。プロセスは、次いで、その結果として生じる特徴マップを算出するために、繰り返され、新しいカーネルを学習することができる。
【0019】
融合CNNアーキテクチャ内のセグメント化タワー(または品質推定タワー)は、エンコーディング−デコーディングアーキテクチャを実装することができる。共有層等のセグメント化タワー(または品質推定タワー)の前層は、徐々に、層によって算出された特徴マップの空間寸法を減少させ、特徴マップの数を増加させることによって、眼画像をエンコードすることができる。セグメント化層(または品質推定層)の後層等のセグメント化タワー(または品質推定タワー)のいくつかの層は、徐々に、層によって算出された特徴マップの空間寸法をオリジナル眼画像サイズに戻るように増加させ、特徴マップの数を減少させることによって、エンコードされた眼画像をデコードすることができる。
【0020】
セグメント化タワーおよび品質推定タワーの両方を含む、融合CNNアーキテクチャの可能性として考えられる利点は、訓練の間、CNNの共有層が、セグメント化および画質の両方のために有用な特徴マップを見出すことである。故に、そのようなCNNは、別個のCNN毎の特徴マップが殆どまたは全く関係を有し得ない、セグメント化のために1つおよび品質推定のために別の1つの別個のCNNの使用と比較して、有益であり得る。
(例示的畳み込みニューラルネットワーク)
【0021】
図1は、共有層112を共有する、セグメント化タワー104と、品質推定タワー108とを含む、融合アーキテクチャを伴う例示的畳み込みニューラルネットワーク100のブロック図である。深層ニューラルネットワーク(DNN)等の畳み込みニューラルネットワーク100は、両眼画像セグメント化および画質推定を実施するために使用されることができる。融合アーキテクチャを伴うCNN100は、セグメント化タワー104と、品質推定タワー108とを含むことができる。セグメント化タワー104は、共有層112に接続される、セグメント化層116を含むことができる。共有層112は、セグメント化タワー104および品質推定タワー108によって共有される、CNN層であることができる。共有層112の出力層は、セグメント化層116の入力層に接続されることができる。共有層112の1つ以上の出力層は、セグメント化層116の1つ以上の入力層に接続されることができる。セグメント化層116は、セグメント化タワー104に一意であって、品質推定タワー108と共有されない、CNN層であることができる。
【0022】
品質推定タワー108は、品質推定層120と、共有層112とを含むことができる。品質推定層120は、品質推定タワー108に一意であって、セグメント化タワー104と共有されない、CNN層であることができる。共有層112の出力層は、品質推定層120の入力層に接続される、共有層112であることができる。品質推定層120の入力層は、共有層112の出力層に接続されることができる。共有層112の1つ以上の出力層は、品質推定層120の1つ以上の入力層に接続されることができる。
【0023】
共有層112は、異なる実装では、異なるようにセグメント化層116または品質推定層120に接続されることができる。例えば、共有層112の出力層は、セグメント化層116の1つ以上の入力層または品質推定層120の1つ以上の入力層に接続されることができる。別の実施例として、共有層112の出力層は、セグメント化層116の1つ以上の入力層および品質推定層120の1つ以上の入力層に接続されることができる。1つ、2つ、3つ、またはそれを上回る出力層等の共有層112の異なる数の出力層が、セグメント化層116または品質推定層120の入力層に接続されることができる。1つ、2つ、3つ、またはそれを上回る入力層等のセグメント化層116または品質推定層120の異なる数の入力層が、共有層112の出力層に接続されることができる。
【0024】
セグメント化タワー104は、眼画像124を処理し、眼画像のセグメント化を生成することができる。
図2は、眼画像124内の例示的眼200を図式的に図示する。眼200は、眼瞼204と、強膜208と、虹彩212と、瞳孔216とを含む。曲線216aは、瞳孔216と虹彩212との間の瞳孔境界を示し、曲線212aは、虹彩212と強膜208(眼の「白眼」)との間の辺縁境界を示す。眼瞼204は、上側眼瞼204aと、下側眼瞼204bとを含む。
【0025】
図1を参照すると、セグメント化タワー104(または品質推定タワー108)の共有層112の入力層は、その入力として、眼画像124、例えば、120×160グレースケール画像を受信することができる。セグメント化タワー104は、セグメント化タワー出力128を生成することができる。セグメント化タワー出力128は、複数の画像、例えば、眼画像124内の瞳孔216、虹彩212、強膜208、または背景に対応する領域毎に1つずつの4つの画像を含むことができる。眼画像の背景は、眼画像124内の眼瞼、眉毛、睫毛、または眼を囲繞する皮膚に対応する領域を含むことができる。いくつかの実装では、セグメント化タワー出力128は、セグメント化された眼画像を含むことができる。セグメント化された眼画像は、セグメント化された瞳孔、虹彩、強膜、または背景を含むことができる。
【0026】
品質推定タワー108は、眼画像124を処理し、眼画像124の品質推定値等の品質推定タワー出力を生成することができる。眼画像124の品質推定値は、バイナリ分類、すなわち、高品質推定値分類または低品質推定値分類であることができる。眼画像124の品質推定値は、高品質推定値分類を有する眼画像124の確率を含むことができる。眼画像124が高質である確率が、高品質閾値(75%、85%、95%等)を超える場合、画像は、高質として分類されることができる。逆に言えば、いくつかの実施形態では、確率が、低品質閾値(25%、15%、5%等)を下回る場合、眼画像124は、低質として分類されることができる。
【0027】
畳み込みニューラルネットワーク100を訓練するとき、多くのカーネルが、学習される。カーネルは、入力眼画像124または前のCNN層によって算出された特徴マップに適用されると、その特定のカーネルに対するその入力の応答を示す、結果として生じる特徴マップを生産する。結果として生じる特徴マップは、次いで、畳み込みニューラルネットワーク100の別の層のカーネルによって処理されることができ、これは、プーリング演算を通して、結果として生じる特徴マップをダウンサンプリングし、より小さい特徴マップを生成する。プロセスは、次いで、その結果として生じる特徴マップを算出するために、繰り返され、新しいカーネルを学習することができる。故に、共有層は、有利には、セグメント化タワー104および品質推定タワー108を訓練するときに同時に訓練されることができる。
【0028】
セグメント化タワー104(または品質推定タワー108)は、エンコーディング−デコーディングアーキテクチャを実装することができる。共有層112等のセグメント化タワー104(または品質推定タワー108)の前層は、徐々に、層によって算出された特徴マップの空間寸法を減少させ、特徴マップの数を増加させることによって、眼画像124をエンコードすることができる。空間寸法を減少させることは、有利には、セグメント化タワー104(または品質推定タワー108)の中央層の特徴マップをグローバルコンテキストアウェアにする結果をもたらし得る。
【0029】
しかしながら、空間寸法を減少させることは、正確度劣化を、例えば、瞳孔境界または辺縁境界等のセグメント化境界にもたらし得る。いくつかの実装では、セグメント化タワー104(または品質推定タワー108)の層は、共有層104の出力層等の異なる層からの特徴マップを連結することができる。結果として生じる連結された特徴マップは、有利には、複数のスケールにおいて抽出された特徴が、ローカルおよびグローバルコンテキストの両方を提供するために使用されることができ、前層の特徴マップが、より多くの高周波数詳細を留保し、より鮮明なセグメント化境界につながり得るため、マルチスケールとなり得る。
【0030】
いくつかの実装では、3ピクセル×3ピクセルを上回るカーネルサイズを伴う畳み込み層が、連続3ピクセル×3ピクセル畳み込み層と置換されることができる。連続3ピクセル×3ピクセル畳み込み層を用いることで、畳み込みニューラルネットワーク100は、有利には、より小さくまたはより高速となり得る。
【0031】
セグメント化層116(または品質推定層120)の後層等のセグメント化タワー104(または品質推定タワー108)のいくつかの層は、徐々に、特徴マップの空間寸法をオリジナル眼画像サイズに戻るように増加させ、特徴マップの数を減少させることによって、エンコードされた眼画像をデコードすることができる。畳み込みニューラルネットワーク100のいくつかの層、例えば、品質推定層120の最後の2つの層は、全結合されることができる。
(例示的畳み込みニューラルネットワーク層)
【0032】
畳み込みニューラルネットワーク100は、1つ以上のニューラルネットワーク層を含むことができる。ニューラルネットワーク層は、線形または非線形変換をその入力に適用し、その出力を生成することができる。ニューラルネットワーク層は、畳み込み層、正規化層(例えば、明度正規化層、バッチ正規化(BN)層、ローカルコントラスト正規化(LCN)層、またはローカル応答正規化(LRN)層)、正規化線形層、アップサンプリング層、連結層、プーリング層、全結合層、線形全結合層、ソフトサイン層、再帰層、または任意のそれらの組み合わせであることができる。
【0033】
畳み込み層は、畳み込みを行うまたは畳み込みをその入力に適用する、カーネルのセットを適用し、その出力を生成することができる。正規化層は、例えば、L2正規化を用いて、その入力の明度を正規化し、その出力を生成する、明度正規化層であることができる。正規化層は、複数の画像の明度を相互に対して一度に正規化し、複数の正規化された画像をその出力として生成し得る、バッチ正規化(BN)層であることができる。明度を正規化するための方法の非限定的実施例は、ローカルコントラスト正規化(LCN)またはローカル応答正規化(LRN)を含む。ローカルコントラスト正規化は、ピクセル毎に画像のローカル領域を正規化し、平均値ゼロおよび分散1を持たせることによって、画像のコントラストを非線形に正規化することができる。ローカル応答正規化は、ローカル入力領域にわたって画像を正規化し、平均値ゼロおよび分散1を持たせることができる。正規化層は、眼セグメント化および品質推定値の算出を加速させ得る。
【0034】
正規化線形層は、正規化線形層ユニット(ReLU)層またはパラメトリック正規化線形層ユニット(PReLU)層であることができる。ReLU層は、ReLU関数をその入力に適用し、その出力を生成することができる。ReLU関数ReLU(x)は、例えば、max(0,x)であることができる。PReLU層は、PReLU関数をその入力に適用し、その出力を生成することができる。PReLU関数PReLU(x)は、例えば、x≧0の場合、xであって、x<0の場合、axであることができ、aは、正の数である。
【0035】
アップサンプリング層は、その入力をアップサンプリングし、その出力を生成することができる。例えば、アップサンプリング層は、最近傍法またはバイキュービック補間法等のアップサンプリング方法を使用して、4ピクセル×5ピクセル入力をアップサンプリングし、8ピクセル×10ピクセル出力を生成することができる。連結層は、その入力を連結し、その出力を生成することができる。例えば、連結層は、4つの5ピクセル×5ピクセル特徴マップを連結し、1つの20ピクセル×20ピクセル特徴マップを生成することができる。別の実施例として、連結層は、4つの5ピクセル×5ピクセル特徴マップおよび4つの5ピクセル×5ピクセル特徴マップを連結し、8つの5ピクセル×5ピクセル特徴マップを生成することができる。プーリング層は、プーリング関数を適用することができ、これは、その入力をダウンサンプリングし、その出力を生成する。例えば、プーリング層は、20ピクセル×20ピクセル画像を10ピクセル×10ピクセル画像にダウンサンプリングすることができる。プーリング関数の非限定的実施例は、最大プーリング、平均プーリング、または最小プーリングを含む。
【0036】
全結合層内のノードは、前の層内の全てのノードに接続される。線形分類子に類似する、線形全結合層は、高品質または低品質等の2つの出力値を伴う、全結合層であることができる。ソフトサイン層は、ソフトサイン関数をその入力に適用することができる。ソフトサイン関数(softsign(x))は、例えば、(x/(1+|x|))であることができる。ソフトサイン層は、要素別誤対応の影響を無視し得る。要素別誤対応は、眼画像内の眼瞼オクルージョンまたは偶発的な明るいスポットのために生じ得る。
【0037】
時間点tにおいて、再帰層は、隠蔽状態s(t)を算出することができ、再帰結合は、時間tにおける隠蔽状態s(t)を再帰層に入力として後続時間点t+1において提供することができる。再帰層は、時間tにおける隠蔽状態s(t)に基づいて、その出力を時間t+1において算出することができる。例えば、再帰層は、ソフトサイン関数を時間tにおける隠蔽状態s(t)に適用し、その出力を時間t+1において算出することができる。時間t+1における再帰層の隠蔽状態は、入力として、時間tにおける再帰層の隠蔽状態s(t)を有する。再帰層は、例えば、ReLU関数をその入力に適用することによって、隠蔽状態s(t+1)を算出することができる。
【0038】
畳み込みニューラルネットワーク100内のニューラルネットワーク層の数は、異なる実装では、異なり得る。例えば、畳み込みニューラルネットワーク100内のニューラルネットワーク層の数は、100であることができる。ニューラルネットワーク層の入力タイプは、異なる実装では、異なり得る。例えば、ニューラルネットワーク層は、ニューラルネットワーク層の出力をその入力として受信することができる。ニューラルネットワーク層の入力は、異なる実装では、異なり得る。例えば、ニューラルネットワーク層の入力は、ニューラルネットワーク層の出力を含むことができる。
【0039】
ニューラルネットワーク層の入力サイズまたは出力サイズは、非常に大きくあることができる。ニューラルネットワーク層の入力サイズまたは出力サイズは、n×mであることができ、nは、入力または出力のピクセル単位における高さを示し、mは、ピクセル単位における幅を示す。例えば、n×mは、120ピクセル×160ピクセルであることができる。ニューラルネットワーク層の入力または出力のチャネルサイズは、異なる実装では、異なり得る。例えば、ニューラルネットワーク層の入力または出力のチャネルサイズは、8であることができる。したがって、ニューラルネットワーク層は、8つのチャネルまたは特徴マップをその入力として受信する、または8つのチャネルまたは特徴マップをその出力として生成することができる。ニューラルネットワーク層のカーネルサイズは、異なる実装では、異なり得る。カーネルサイズは、n×mであることができ、nは、カーネルのピクセル単位の高さを示し、mは、ピクセル単位の幅を示す。例えば、nまたはmは、3ピクセルであることができる。ニューラルネットワーク層のストライドサイズは、異なる実装では、異なり得る。例えば、ニューラルネットワーク層のストライドサイズは、3であることができる。ニューラルネットワーク層は、パディング、例えば、n×mパディングをその入力に適用することができ、nは、パディングの高さを示し、mは、幅を示す。例えば、nまたはmは、1つのピクセルであることができる。
(例示的共有層)
【0040】
図3A−3Cは、融合アーキテクチャを伴う例示的畳み込みニューラルネットワーク100を描写する。
図3Aは、畳み込みニューラルネットワーク100のセグメント化タワー104の共有層112の例示的アーキテクチャを描写する。共有層112の入力層は、1×1パディング(1ピクセル×1ピクセル)を追加後、入力眼画像124(120×160グレースケール画像)を3×3カーネル(3ピクセル×3ピクセル)で畳み込む、畳み込み層302aであることができる。パディングを追加し、その入力を畳み込み後、畳み込み層302aは、8チャネルの出力を生成し、各チャネルは、畳み込み層302aを表すブロック内に8×120×160として示される、120×160特徴マップである。8チャネルの出力は、ローカル応答正規化(LRN)層302b、バッチ正規化(BN)層302c、および正規化線形層ユニット(ReLU)層302dによって処理されることができる。
【0041】
ReLU層302dは、1×1パディングを追加後、ReLU層302dの出力を3×3カーネルで畳み込み、8チャネルの出力(120×160特徴マップ)を生成する、畳み込み層304aに接続されることができる。8チャネルの出力は、バッチ正規化層304cおよびReLU層304dによって処理されることができる。ReLU層304dは、2×2ストライド(2ピクセル×2ピクセル)を使用して、ReLU層304dの出力を2×2カーネルでプールし、8チャネルの出力(60×80特徴マップ)を生成する、最大プーリング(MAXPOOLING)層306aに接続されることができる。
【0042】
最大プーリング層306aは、1×1パディングを追加後、最大プーリング層306aの出力を3×3カーネルで畳み込み、16チャネルの出力(60×80特徴マップ)を生成する、畳み込み層308aに接続されることができる。16チャネルの出力は、バッチ正規化層308cおよびReLU層308dによって処理されることができる。
【0043】
ReLU層308dは、1×1パディングを追加後、ReLU層308dの出力を3×3カーネルで畳み込み、16チャネルの出力(60×80特徴マップ)を生成する、畳み込み層310aに接続されることができる。16チャネルの出力は、バッチ正規化層310cおよびReLU層310dによって処理されることができる。ReLU層310dは、2×2ストライドを使用して、ReLU層310dの出力を2×2カーネルでプールし、16チャネルの出力(30×40特徴マップ)を生成する、最大プーリング層312aに接続されることができる。
【0044】
最大プーリング層312aは、1×1パディングを追加後、最大プーリング層312aの出力を3×3カーネルで畳み込み、32チャネルの出力(30×40特徴マップ)を生成する、畳み込み層314aに接続されることができる。訓練サイクルの間、畳み込みニューラルネットワーク100を訓練するとき、畳み込み層314aの加重値の30%は、0.3のドロップアウト比のために、ゼロの値にランダムに設定されることができる。32チャネルの出力は、バッチ正規化層314cおよびReLU層314dによって処理されることができる。
【0045】
ReLU層314dは、1×1パディングを追加後、ReLU層314dの出力を3×3カーネルで畳み込み、32チャネルの出力(30×40特徴マップ)を生成する、畳み込み層316aに接続されることができる。32チャネルの出力は、バッチ正規化層316cおよびReLU層316dによって処理されることができる。ReLU層316dは、2×2ストライドを使用して、ReLU層316dの出力を2×2カーネルでプールし、32チャネルの出力(15×20特徴マップ)を生成する、最大プーリング層318aに接続されることができる。
【0046】
最大プーリング層318aは、1×1パディングを追加後、最大プーリング層318aの出力を3×3カーネルで畳み込み、32チャネルの出力(15×20特徴マップ)を生成する、畳み込み層320aに接続されることができる。訓練サイクルの間、畳み込みニューラルネットワーク100を訓練するとき、畳み込み層320aの加重値の30%は、0.3のドロップアウト比のために、ゼロの値にランダムに設定されることができる。32チャネルの出力は、バッチ正規化層320cおよびReLU層320dによって処理されることができる。
【0047】
ReLU層320dは、1×1パディングを追加後、ReLU層320dの出力を3×3カーネルで畳み込み、32チャネルの出力(15×20特徴マップ)を生成する、畳み込み層322aに接続されることができる。32チャネルの出力は、バッチ正規化層322cおよびReLU層322dによって処理されることができる。ReLU層322dは、1×0パディングを追加後、2×2ストライドを使用して、ReLU層322dの出力を2×2カーネルでプールし、32チャネルの出力(8×10特徴マップ)を生成する、最大プーリング層324aに接続されることができる。最大プーリング層324aは、セグメント化層116の入力層に接続されることができる。
【0048】
最大プーリング層324aは、1×1パディングを追加後、最大プーリング層324aの出力を3×3カーネルで畳み込み、32チャネルの出力(8×10特徴マップ)を生成する、畳み込み層326aに接続されることができる。訓練サイクルの間、畳み込みニューラルネットワーク100を訓練するとき、畳み込み層326aの加重値の30%は、0.3のドロップアウト比のために、ゼロの値にランダムに設定されることができる。32チャネルの出力は、バッチ正規化層326cおよびReLU層326dによって処理されることができる。最大プーリング層324aは、セグメント化層116に接続されることができる。
【0049】
ReLU層326dは、1×1パディングを追加後、ReLU層326dの出力を3×3カーネルで畳み込み、32チャネルの出力(8×10特徴マップ)を生成する、畳み込み層328aに接続されることができる。32チャネルの出力は、バッチ正規化層328cおよびReLU層328dによって処理されることができる。ReLU層328dは、2×2ストライドを使用して、ReLU層328dの出力を2×2カーネルでプールし、32チャネルの出力(4×5特徴マップ)を生成する、最大プーリング層330aに接続されることができる。最大プーリング層330aは、セグメント化層116および品質推定層120に接続されることができる。
【0050】
図3Aにおける例示的共有層112は、エンコーディングアーキテクチャを実装する。例示的共有層112は、徐々に、層によって算出された特徴マップの空間寸法を減少させ、特徴マップの数を増加させることによって、眼画像124をエンコードする。例えば、畳み込み層302aは、8チャネルの出力を生成し、各チャネルは、120×160特徴マップである一方、畳み込み層326aは、32チャネルの出力を生成し、各チャネルは、8×10特徴マップである。
(例示的セグメント化層)
【0051】
図3Bは、畳み込みニューラルネットワーク100のセグメント化タワー104のセグメント化層116の例示的アーキテクチャを描写する。セグメント化層116の入力層は、共有層112の最大プーリング層330aに接続される、平均プーリング層332aであることができる。平均プーリング層332aは、最大プーリング層330aの出力を4×5カーネル(4ピクセル×5ピクセル)でプールし、32チャネルの出力(1×1特徴マップ、すなわち、それぞれ、1ピクセル×1ピクセルの寸法を伴う、特徴マップ)を生成することができる。平均プーリング層332aは、−1×0パディング(−1ピクセル×0ピクセル)を用いた最近傍法を使用して、32チャネルの出力(4×5特徴マップ)を生成する、アップサンプリング層334aに接続されることができる。
【0052】
連結層336aは、共有層112の最大プーリング層330aに接続される、セグメント化層116の入力層であることができる。連結層336aはまた、アップサンプリング層334aに接続されることができる。最大プーリング層330aおよびアップサンプリング層334aから受信されたその入力を連結後、連結層336aは、64チャネルの出力(4×5特徴マップ)を生成することができる。2つの層からの出力を連結することによって、複数のスケールにおいて抽出された特徴が、ローカルおよびグローバルの両方のコンテキストを提供するために使用されることができ、前層の特徴マップは、より多くの高周波数詳細を留保し、より鮮明なセグメント化境界につながることができる。したがって、連結層336aによって生成された結果として生じる連結された特徴マップは、有利には、マルチスケールとなり得る。連結層336aは、最近傍法を使用して、64チャネルの出力(8×10特徴マップ)を生成する、アップサンプリング層338aに接続されることができる。訓練サイクルの間、畳み込みニューラルネットワーク100を訓練するとき、アップサンプリング層338aの加重値の30%は、0.3のドロップアウト比のために、ゼロの値にランダムに設定されることができる。
【0053】
アップサンプリング層338aは、1×1パディングを追加後、アップサンプリング層338aの出力を3×3カーネルで畳み込み、32チャネルの出力(8×10特徴マップ)を生成する、畳み込み層340aに接続されることができる。32チャネルの出力は、バッチ正規化層340cおよびReLU層340dによって処理されることができる。ReLU層340dは、1×1パディングを追加後、ReLU層340dの出力を3×3カーネルで畳み込み、32チャネルの出力(8×10特徴マップ)を生成する、畳み込み層342aに接続されることができる。32チャネルの出力は、バッチ正規化層342cおよびReLU層342dによって処理されることができる。
【0054】
連結層344aは、共有層112の最大プーリング層324aに接続される、セグメント化層116の入力層であることができる。連結層344aはまた、ReLU層342aに接続されることができる。ReLU層342aおよび最大プーリング層324aから受信されたその入力を連結後、連結層344aは、64チャネルの出力(64個の8×10特徴マップ)を生成する。連結層344aは、最近傍法を使用して、64チャネルの出力(15×20特徴マップ)を生成する、アップサンプリング層346aに接続されることができる。訓練サイクルの間、畳み込みニューラルネットワーク100を訓練するとき、アップサンプリング層346aの加重値の30%は、0.3のドロップアウト比のために、ゼロの値にランダムに設定されることができる。
【0055】
アップサンプリング層346aは、1×1パディングを追加後、アップサンプリング層346aの出力を3×3カーネルで畳み込み、32チャネルの出力(15×20特徴マップ)を生成する、畳み込み層348aに接続されることができる。32チャネルの出力は、バッチ正規化層348cおよびReLU層348dによって処理されることができる。ReLU層348dは、1×1パディングを追加後、ReLU層348dの出力を3×3カーネルで畳み込み、32チャネルの出力(15×20特徴マップ)を生成する、畳み込み層350aに接続されることができる。32チャネルの出力は、バッチ正規化層350cおよびReLU層350dによって処理されることができる。
【0056】
ReLU層350dは、最近傍法を使用して、32チャネルの出力(30×40特徴マップ)を生成する、アップサンプリング層352aに接続されることができる。訓練サイクルの間、畳み込みニューラルネットワーク100を訓練するとき、アップサンプリング層352aの加重値の30%は、0.3のドロップアウト比のために、ゼロの値にランダムに設定されることができる。
【0057】
アップサンプリング層352aは、1×1パディングを追加後、アップサンプリング層352aの出力を3×3カーネルで畳み込み、32チャネルの出力(30×40特徴マップ)を生成する、畳み込み層354aに接続されることができる。32チャネルの出力は、バッチ正規化層354cおよびReLU層354dによって処理されることができる。ReLU層354dは、1×1パディングを追加後、ReLU層354dの出力を3×3カーネルで畳み込み、32チャネルの出力(30×40特徴マップ)を生成する、畳み込み層356aに接続されることができる。32チャネルの出力は、バッチ正規化層356cおよびReLU層356dによって処理されることができる。
【0058】
ReLU層356dは、最近傍法を使用して、32チャネルの出力(60×80特徴マップ)を生成する、アップサンプリング層358aに接続されることができる。アップサンプリング層358aは、1×1パディングを追加後、アップサンプリング層358aの出力を3×3カーネルで畳み込み、16チャネルの出力(60×80特徴マップ)を生成する、畳み込み層360aに接続されることができる。16チャネルの出力は、バッチ正規化層360cおよびReLU層360dによって処理されることができる。ReLU層360dは、1×1パディングを追加後、ReLU層360dの出力を3×3カーネルで畳み込み、16チャネルの出力(60×80特徴マップ)を生成する、畳み込み層362aに接続されることができる。16チャネルの出力は、バッチ正規化層362cおよびReLU層362dによって処理されることができる。
【0059】
ReLU層362dは、最近傍法を使用して、16チャネルの出力(120×160特徴マップ)を生成する、アップサンプリング層364aに接続されることができる。アップサンプリング層364aは、2×2パディングを追加後、アップサンプリング層364aの出力を5×5カーネルで畳み込み、4チャネルの出力(120×160出力画像)を生成する、畳み込み層366aに接続されることができる。畳み込み層366aは、セグメント化層116の出力層であることができる。4つの出力画像は、瞳孔216、虹彩212、強膜208、または眼画像124の背景に対応する到達領域毎に1つのセグメント化タワー出力128であることができる。いくつかの実装では、セグメント化タワー出力128は、瞳孔216、虹彩212、強膜208、または眼画像124の背景に対応する領域毎に1つずつの4つの色値を伴う画像であることができる。
【0060】
図3Bにおける例示的セグメント化層116は、デコーディングアーキテクチャを実装する。例示的セグメント化層116は、徐々に、特徴マップの空間寸法をオリジナル眼画像サイズに戻るように増加させ、特徴マップの数を減少させることによって、エンコードされた眼画像をデコードする。例えば、平均プーリング層332aは、32チャネルの出力を生成し、各チャネルは、1×1特徴マップである一方、畳み込み層366aは、4チャネルの出力を生成し、各チャネルは、120×160特徴マップである。
(例示的品質推定層)
【0061】
図3Cは、畳み込みニューラルネットワーク100の品質推定タワー108の品質推定層120の例示的アーキテクチャを描写する。品質推定層120の入力層は、畳み込み層368aであることができる。畳み込み層368aは、1×1パディング(1ピクセル×1ピクセル)を追加後、共有層112の最大プーリング層330aの出力を3×3カーネル(3ピクセル×3ピクセル)で畳み込み、32チャネルの出力(4×5特徴マップ、すなわち、4ピクセル×5ピクセルの寸法を伴う特徴マップ)を生成することができる。訓練サイクルの間、畳み込みニューラルネットワーク100を訓練するとき、畳み込み層368aの加重値の50%は、0.5のドロップアウト比のために、ゼロの値にランダムに設定されることができる。32チャネルの出力は、バッチ正規化層368cおよびReLU層368dによって処理されることができる。
【0062】
ReLU層368dは、1×1パディングを追加後、ReLU層368dの出力を3×3カーネルで畳み込み、16チャネルの出力(4×5特徴マップ)を生成する、畳み込み層370aに接続されることができる。16チャネルの出力は、バッチ正規化層370cおよびReLU層370dによって処理されることができる。ReLU層370dは、ReLU層370dの出力を4×5カーネルでプールし、16チャネルの出力(1×1特徴マップ)を生成し得る、平均プーリング層372aに接続されることができる。
【0063】
平均プーリング層370dは、8チャネルの出力(1ピクセル×1ピクセル特徴マップ)を生成する、線形全結合層374aに接続されることができる。訓練サイクルの間、畳み込みニューラルネットワーク100を訓練するとき、線形全結合層374aの加重値の50%は、0.5のドロップアウト比のために、ゼロの値にランダムに設定されることができる。8チャネルの出力は、バッチ正規化層374cおよびReLU層374dによって処理されることができる。ReLU層374dは、少なくとも2つのチャネルの出力(1×1特徴マップ)を生成する、線形全結合層376aに接続されることができる。線形全結合層376aは、品質推定層120の出力層であることができる。少なくとも2つのチャネルの出力は、品質推定タワー出力128であることができ、1つのチャネルは、高品質推定値に対応し、1つのチャネルは、低品質推定値に対応する。
(畳み込みニューラルネットワークの例示的訓練)
【0064】
異なる畳み込みニューラルネットワーク(CNN)は、2つの点において、相互に異なり得る。CNNのアーキテクチャ、例えば、層の数および層が相互接続される方法が、異なり得る。1つの層から別の層に伝搬される影響の強度に影響を及ぼし得る、加重も、異なり得る。層の出力は、その入力の加重された和のある非線形関数であることができる。CNNの加重は、これらの総和内に現れる加重であることができ、生物学的システムにおけるニューラル接続のシナプス強度にほぼ類似することができる。
【0065】
CNN100を訓練するプロセスは、CNN100に眼画像124の訓練セットを提示するプロセスである。訓練セットは、入力データと対応する基準出力データの両方を含むことができる。本訓練セットは、例示的入力と対応する基準出力の両方を含むことができる。訓練のプロセスを通して、CNN100の加重は、ネットワークの出力が、訓練セットからの特定の入力データを前提として、その入力データに対応する基準出力に合致するようになる(可能な限り近接して)ように、漸次的に学習されることができる。
【0066】
したがって、いくつかの実装では、融合アーキテクチャを有する、CNN100が、眼画像124の訓練セットを使用して訓練され、眼画像124のセグメント化および品質推定を学習する。訓練サイクルの間、訓練されているセグメント化タワー104は、訓練セットの眼画像124を処理し、セグメント化タワー出力128を生成することができ、これは、瞳孔216、虹彩212、強膜208、または眼画像124の背景に対応する到達領域毎に1つの4つの出力画像を含むことができる。訓練されている品質推定タワー108は、訓練セットの眼画像124を処理し、眼画像124の品質推定タワー出力132を生成することができる。眼画像124のセグメント化タワー出力128と眼画像124の基準セグメント化タワー出力との間の差異が、算出されることができる。眼画像124の基準セグメント化タワー出力は、瞳孔216、虹彩212、強膜208、または眼画像124の背景に対応する到達領域毎に1つの4つの基準出力画像を含むことができる。眼画像124の品質推定タワー出力132と眼画像124の基準品質推定タワー出力との間の差異も、算出されることができる。
【0067】
CNN100のパラメータは、差異の一方または両方に基づいて、更新されることができる。例えば、CNN100のセグメント化層116のパラメータは、眼画像124のセグメント化タワー出力128と基準眼画像124のセグメント化タワー出力との間の差異に基づいて、更新されることができる。別の実施例として、CNN100の品質推定層120のパラメータは、眼画像124の品質推定タワー出力132と眼画像124の基準品質推定タワー出力との間の差異に基づいて、更新されることができる。さらに別の実施例として、共有層112のパラメータは、両方の差異に基づいて、更新されることができる。さらなる実施例として、CNN100のセグメント化層116のパラメータまたはCNN100の品質推定層120のパラメータは、両方の差異に基づいて、更新されることができる。2つの差異は、異なる実装では、共有層112、セグメント化層116、または品質推定層130のパラメータに異なるように影響を及ぼし得る。例えば、セグメント化タワー出力128と基準セグメント化タワー出力との間の差異は、品質推定タワー出力132と基準品質推定タワー出力との間の差異の影響と比較して、より大きな程度まで共有層112またはセグメント化層116のパラメータに影響を及ぼし得る。
【0068】
訓練サイクルの間、畳み込みニューラルネットワーク100のパラメータのパーセンテージは、ゼロの値に設定されることができる。パーセンテージは、例えば、0.05〜0.50のドロップアウト比のために、5%〜50%であることができる。訓練サイクルの間、ゼロの値に設定されるCNN100のパラメータは、異なる実装では、異なり得る。例えば、ゼロの値に設定されるCNN100のパラメータは、ランダムに選択されることができる。別の実施例として、CNN100のパラメータの30%が、ゼロの値に設定される場合、CNN100の各層のパラメータの約30%は、ゼロの値にランダムに設定されることができる。
【0069】
融合アーキテクチャを伴う畳み込みニューラルネットワーク100を訓練するとき、多くのカーネルが、学習される。カーネルは、その入力に適用されると、その特定の学習されたカーネルに対する応答を示す、結果として生じる特徴マップを生産する。結果として生じる特徴マップは、次いで、CNNの別の層のカーネルによって処理されることができ、これは、プーリング演算を通して、結果として生じる特徴マップをサンプリングし、より小さい特徴マップを生成する。プロセスは、次いで、その結果として生じる特徴マップを算出するために、繰り返され、新しいカーネルを学習することができる。
(例示的眼画像およびセグメント化された眼画像)
【0070】
図4は、
図3に図示される融合畳み込みネットワークアーキテクチャを伴う畳み込みニューラルネットワーク100を使用して眼画像124をセグメント化する例示的結果を示す。
図4のパネルaは、
図4のパネルbに示される眼画像のセグメント化を示す。眼画像のセグメント化は、眼画像の背景領域404a、強膜領域408a、虹彩領域412a、または瞳孔領域416aを含んでいた。
図4のパネルbに示される眼画像の品質推定値は、1.000の高品質推定値であった。故に、眼画像の品質推定値は、高品質推定値であった。
【0071】
図4のパネルcは、
図4のパネルdに示される眼画像のセグメント化を示す。眼画像のセグメント化は、眼画像の背景領域404c、強膜領域408c、虹彩領域412c、または瞳孔領域416cを含んでいた。
図4のパネルdに示される眼画像の品質推定値は、0.997の高品質推定値であった。故に、眼画像の品質推定値は、高品質推定値であった。
【0072】
図4のパネルeは、
図4のパネルfに示される眼画像のセグメント化を示す。
図4のパネルfに示される眼画像内の眼の強膜、虹彩、および瞳孔は、眼の眼瞼によってオクルードされていた。眼画像のセグメント化は、眼画像の背景領域404e、強膜領域408e、虹彩領域412e、または瞳孔領域416eを含んでいた。
図4のパネルfに示される眼画像の品質推定値は、0.009の高品質推定値であった。故に、眼画像の品質推定値は、低品質推定値であった。
【0073】
図4のパネルgは、
図4のパネルhに示される眼画像のセグメント化を示す。
図4のパネルhに示される眼画像内の眼の強膜、虹彩、および瞳孔は、眼の眼瞼によってオクルードされていた。さらに、眼画像は、ぼけていた。眼画像のセグメント化は、眼画像の背景領域404g、強膜領域408g、虹彩領域412g、または瞳孔領域416gを含んでいた。
図4のパネルhに示される眼画像の品質は、0.064の高品質推定値であった。故に、眼画像の品質推定値は、低品質推定値であった。
(眼画像セグメント化および画質推定のための例示的プロセス)
【0074】
図5は、融合アーキテクチャを伴う畳み込みニューラルネットワーク100を作成する例示的プロセス500のフロー図である。プロセス500は、ブロック504から開始する。ブロック508では、畳み込みニューラルネットワーク(CNN)100の共有層112が、作成される。共有層112は、複数の層と、複数のカーネルとを含むことができる。共有層112を作成するステップは、複数の層を作成するステップ、適切なカーネルサイズ、ストライド、またはパディングを伴う複数のカーネルを作成するステップ、または複数の層の連続層を接続するステップを含むことができる。
【0075】
ブロック512では、CNN100のセグメント化層116が、作成される。セグメント化層116は、複数の層と、複数のカーネルとを含むことができる。セグメント化層116を作成するステップは、複数の層を作成するステップ、適切なカーネルサイズ、ストライド、またはパディングを伴う複数のカーネルを作成するステップ、または複数の層の連続層を接続するステップを含むことができる。ブロック516では、共有層112の出力層は、セグメント化層116の入力層に接続され、CNN100のセグメント化タワー104を生成することができる。
【0076】
ブロック520では、CNN100の品質推定層120が、作成される。品質推定層120は、複数の層と、複数のカーネルとを含むことができる。品質推定層120を作成するステップは、複数の層を作成するステップ、適切なカーネルサイズ、ストライド、またはパディングを伴う複数のカーネルを作成するステップ、または複数の層の連続層を接続するステップを含むことができる。ブロック524では、共有層112の出力層は、品質推定層120の入力層に接続され、CNN100の品質推定タワー108を生成することができる。プロセス500は、ブロック528において終了する。
【0077】
図6は、融合アーキテクチャを伴う畳み込みニューラルネットワーク100を使用して、眼画像124をセグメント化する例示的プロセス600のフロー図である。プロセス600は、ブロック604から開始する。ブロック608では、ニューラルネットワークが、眼画像124を受信する。例えば、CNN100の共有層112の入力層が、眼画像124を受信することができる。ユーザデバイスの画像センサ(例えば、デジタルカメラ)が、ユーザの眼画像124を捕捉することができ、ニューラルネットワークは、眼画像124を画像センサから受信することができる。
【0078】
ブロック608において眼画像124を受信後、ニューラルネットワークは、ブロック612において、眼画像124をセグメント化する。例えば、CNN100のセグメント化タワー104は、眼画像124のセグメント化を生成することができる。セグメント化タワー104の出力層は、セグメント化タワー104の他の層とともに、眼画像124内の眼の瞳孔領域、虹彩領域、強膜領域、または背景領域を含む、眼画像124のセグメント化を算出することができる。
【0079】
ブロック616では、ニューラルネットワークは、眼画像124の品質推定値を算出する。例えば、CNN100の品質推定タワー108は、眼画像124の品質推定値を生成することができる。品質推定タワー108の出力層は、品質推定タワー108の他の層とともに、高品質推定値または低品質推定値等の眼画像124の品質推定値を算出することができる。
(瞳孔輪郭、虹彩輪郭、および非関連画像エリアのためのマスクを決定する例示的プロセス)
【0080】
従来の虹彩コードは、虹彩の画像から抽出されたビットストリングである。虹彩コードを算出するために、眼画像は、例えば、
図1に図示される融合アーキテクチャを伴う畳み込みニューラルネットワーク100を使用して、セグメント化され、虹彩を瞳孔および強膜から分離する。セグメント化された眼画像は、次いで、位相情報が複素値2次元ウェーブレット(例えば、ガボールまたはハール)を使用して抽出され得る前に、極または擬似極座標にマッピングされることができる。虹彩の極(または擬似極)画像を作成する1つの方法は、瞳孔輪郭を決定するステップと、虹彩輪郭を決定するステップと、決定された瞳孔輪郭および決定された虹彩輪郭を使用して、極画像を作成するステップとを含むことができる。
【0081】
図7は、セグメント化された眼画像内の瞳孔輪郭、虹彩輪郭、および非関連画像エリアのためのマスクを決定する例示的プロセス700のフロー図である。プロセス700は、ブロック704から開始する。ブロック708では、セグメント化された眼画像が、受信される。セグメント化された眼画像は、セグメント化された瞳孔、虹彩、強膜、または背景を含むことができる。ユーザデバイスは、ユーザの眼画像124を捕捉し、セグメント化された眼画像を算出することができる。ユーザデバイスは、
図3A−3Cに図示される融合アーキテクチャを伴う例示的畳み込みニューラルネットワーク(CNN)100または
図6に図示される例示的プロセス600を実装し、セグメント化された眼画像を算出することができる。
【0082】
セグメント化された眼画像は、意味論的にセグメント化された眼画像であることができる。
図8は、例示的な意味論的にセグメント化された眼画像800を図式的に図示する。意味論的にセグメント化された眼画像800は、
図2に図示される眼200の画像から算出されることができる。意味論的にセグメント化された眼画像800は、nピクセル×mピクセルの寸法を有することができ、nは、意味論的にセグメント化された眼画像800のピクセル単位の高さを示し、mは、ピクセル単位の幅を示す。
【0083】
意味論的にセグメント化された眼画像800のピクセルは、4つの色値のうちの1つを有することができる。例えば、意味論的にセグメント化された眼画像800のピクセル804は、眼画像の背景808に対応する、色値(
図8では、「第1の色値」として示される)を有することができる。眼画像の背景808に対応する、色値は、1などの数値を有することができる。眼画像の背景808は、眼瞼、眉毛、睫毛、または眼200を囲繞する皮膚に対応する、領域を含むことができる。別の実施例として、意味論的にセグメント化された眼画像800のピクセルは、眼画像内の眼200の強膜208に対応する、色値(
図8では、「第2の色値」として示される)を有することができる。眼画像内の眼200の強膜208に対応する、色値は、2などの数値を有することができる。さらなる実施例として、意味論的にセグメント化された眼画像800のピクセルは、眼画像内の眼200の虹彩212に対応する、色値(
図8では、「第3の色値」として示される)を有することができる。眼画像内の眼200の虹彩212に対応する、色値は、3などの数値を有することができる。別の実施例として、意味論的にセグメント化された眼画像800のピクセル812は、眼画像内の眼200の瞳孔216に対応する、色値(
図8では、「第4の色値」として示される)を有することができる。眼画像内の眼200の瞳孔216に対応する、色値は、4などの数値を有することができる。
図8では、曲線216aは、瞳孔216と虹彩212との間の瞳孔境界を示し、曲線212aは、虹彩212と強膜208(眼の「白眼」)との間の辺縁境界を示す。
【0084】
図7を参照すると、ブロック712では、眼画像内の眼200の瞳孔輪郭が、決定されることができる。瞳孔輪郭は、瞳孔216と虹彩212との間の瞳孔境界を示す、曲線216aであることができる。瞳孔輪郭は、
図9に図示される例示的プロセス900(下記により詳細に説明される)を使用して決定されることができる。ブロック716では、眼画像内の眼200の虹彩輪郭が、決定されることができる。虹彩輪郭は、虹彩212と強膜208との間の辺縁境界を示す、曲線212aであることができる。虹彩輪郭は、
図9に図示される例示的プロセス900(下記により詳細に説明される)を使用して決定されることができる。瞳孔輪郭および虹彩輪郭を決定するために使用されるプロセスは、同一であることができる、または、例えば、瞳孔サイズおよび虹彩サイズが異なり得るため、決定毎に最適化されることができる。
【0085】
ブロック720では、眼画像内の非関連エリアのためのマスク画像が、決定されることができる。マスク画像は、nピクセル×mピクセルの寸法を有することができ、nは、マスク画像のピクセル単位の高さを示し、mは、ピクセル単位の幅を示す。意味論的にセグメント化された眼画像800の寸法およびマスク画像の寸法は、同一であり得る、または異なり得る。マスクは、バイナリマスク画像であることができる。バイナリマスク画像のピクセルは、ゼロの値または1の値を有することができる。バイナリマスク画像のピクセルは、意味論的にセグメント化された眼画像800内の対応するピクセルが、例えば、3の数値等の第3の色値を上回るまたはそれと等しい値を有する場合、ゼロの値を有することができる。バイナリマスク画像のピクセルは、意味論的にセグメント化された眼画像800内の対応するピクセルが、例えば、3の数値等の第3の色値を上回るまたはそれと等しい値を有していない場合、1の値を有することができる。いくつかの実装では、プロセス700は、随意に、意味論的にセグメント化された眼画像内の瞳孔輪郭、虹彩輪郭、および非関連エリアのためのマスクを使用して、眼画像内の眼200の虹彩212の極画像を作成することができる。プロセス700は、ブロック724において終了する。
(瞳孔輪郭または虹彩輪郭を決定する例示的プロセス)
【0086】
図9は、セグメント化された眼画像内の瞳孔輪郭または虹彩輪郭を決定する例示的プロセス900のフロー図である。プロセス900は、ブロック904から開始する。ブロック908では、バイナリ画像は、意味論的にセグメント化された眼画像800等のセグメント化された眼画像から作成されることができる。
図10Aは、ブロック904において作成された例示的バイナリ画像1000Aを図式的に図示する。バイナリ画像1000Aは、nピクセル×mピクセルの寸法を有することができ、nは、バイナリ画像1000Aのピクセル単位の高さを示し、mは、ピクセル単位の幅を示す。セグメント化された眼画像または意味論的にセグメント化された眼画像800の寸法およびバイナリ画像1000Aの寸法は、同一であり得る、または異なり得る。
【0087】
バイナリ画像1000Aのピクセル1004aは、意味論的にセグメント化された眼画像800内の対応するピクセルが、閾値色値、例えば、「第4の色値」を上回らずかつそれと等しくない値を有する場合、ゼロの色値を有することができる。バイナリ画像1000Aのピクセル1012aは、意味論的にセグメント化された眼画像800内の対応するピクセルが、閾値色値、例えば、「第4の色値」を上回るまたはそれと等しい値を有する場合、1の色値を有することができる。いくつかの実装では、バイナリ画像1000Aのピクセルは、ゼロまたは1以外の値を有することができる。例えば、バイナリ画像1000Aのピクセル1004aは、数値3などの「第3の色値」の色値を有することができる。バイナリ画像1000Aのピクセル1012aは、数値4などの「第4の色値」の色値を有することができ、「第4の色値」は、「第3の色値」を上回る。
【0088】
図9を参照すると、ブロック912では、バイナリ画像1000A内の輪郭が、決定される。例えば、バイナリ画像1000A内の輪郭は、例えば、OpenCV findContours関数(opencv.orgから利用可能)を使用して決定されることができる。
図10Bは、バイナリ画像1000A内の例示的輪郭1016を図式的に図示する。
図9を参照すると、ブロック916では、輪郭境界が、決定されることができる。輪郭境界は、バイナリ画像1000A内の最長輪郭であることができる。バイナリ画像1000A内の輪郭1016は、バイナリ画像1000A内の最長輪郭であることができる。輪郭1016は、ピクセル1024a等のバイナリ画像1000Aの複数のピクセルを含むことができる。
【0089】
ブロック920では、輪郭点境界ボックス(例えば、
図10Bにおける輪郭点境界ボックス1020)が、決定される。輪郭点境界ボックス1020は、輪郭境界1016等の最長輪郭境界を包囲する、最小長方形であることができる。ブロック924では、点面積サイズが、決定されることができる。点面積サイズは、
図10Bにおけるバイナリ画像1000A内の輪郭点境界ボックス1020の対角線1028であることができる。
【0090】
ブロック928では、第2のバイナリ画像が、意味論的にセグメント化された眼画像800等のセグメント化された眼画像から作成されることができる。
図10Cは、例示的な第2のバイナリ画像1000Cを図式的に図示する。第2のバイナリ画像1000Cは、nピクセル×mピクセルの寸法を有することができ、nは、第2のバイナリ画像1000Cのピクセル単位の高さを示し、mは、ピクセル単位の幅を示す。バイナリ画像1000Aの寸法およびバイナリ画像1000Aの寸法は、同一であり得る、または異なり得る。
【0091】
第2のバイナリ画像1000Cのピクセル1004cは、意味論的にセグメント化された眼画像800内の対応するピクセルが、閾値色値、例えば、「第3の色値」を上回らずかつそれと等しくない値を有する場合、ゼロの色値を有することができる。第2のバイナリ画像1000Cのピクセル1012cは、意味論的にセグメント化された眼画像800内の対応するピクセルが、閾値色値、例えば、「第3の色値」を上回るまたはそれと等しい値を有する場合、1の色値を有することができる。いくつかの実装では、第2のバイナリ画像1000Cのピクセルは、ゼロまたは1以外の値を有することができる。例えば、第2のバイナリ画像1000Cのピクセル1004cは、数値2などの「第2の色値」の色値を有することができる。第2のバイナリ画像1000Bのピクセル1012cは、数値3などの「第3の色値」の色値を有することができ、「第3の色値」は、「第2の色値」を上回る。
【0092】
図9を参照すると、ブロック932では、バイナリ画像1000A内のピクセル1024aに対応する、第2のバイナリ画像1000C内のピクセル(例えば、
図10におけるピクセル1024c)が、決定される。第2のバイナリ画像1000Cの寸法およびバイナリ画像1000Aの寸法が、同一である場合、ピクセル1024cは、第2のバイナリ画像1000C内に座標(m
1;n
1)を有することができ、ピクセル1024aは、バイナリ画像1000A内に座標(m
1;n
1)を有することができ、m
1は、幅方向における座標を示し、n
1は、高さ方向における座標を示す。ピクセル1024cと、0の色値を有し、ピクセル1024cに最も近い、第2のバイナリ画像1000C内のピクセルとの間の距離が、決定される。例えば、距離は、ピクセル1024cと、0の色値を有し、ピクセル1024cに最も近い、第2のバイナリ画像1000C内のピクセル1036との間の
図10Cにおける距離1032であることができる。距離1032は、例えば、OpenCV distanceTransform関数を使用して決定されることができる。
【0093】
ブロック936では、ピクセル1024aは、瞳孔輪郭を決定するために不適切である場合、輪郭1016のピクセルから除去されることができる。ピクセル1024aは、距離1032が所定の閾値より小さい場合、瞳孔輪郭を決定するために不適切であり得る。所定の閾値は、
図10Bにおける輪郭点境界ボックス1020の点面積サイズまたは対角線1028のサイズ等の輪郭点境界ボックス1020のサイズによって乗算される割合であることができる。割合は、0.02〜0.20の範囲内であることができる。例えば、割合は、0.08であることができる。
【0094】
ブロック940では、瞳孔輪郭は、曲線(楕円形等)を残りのピクセルにフィッティングすることによって、輪郭境界1016の残りのピクセルから決定されることができる。楕円形は、例えば、OpenCV fitEllipse関数を使用して決定されることができる。プロセス900は、ブロック944において終了する。
図10A−10Cは、プロセス900を使用して、瞳孔輪郭を決定するステップを図示するために使用されているが、プロセス900はまた、虹彩輪郭を決定するためにも使用されることができる。
(例示的瞳孔輪郭および虹彩輪郭決定)
【0095】
図11は、
図7および9に図示される例示的プロセス700および900を使用して虹彩輪郭、瞳孔輪郭、および非関連画像エリアのためのマスクを決定する例示的結果を示す。
図11のパネルa−fは、眼画像の虹彩輪郭、瞳孔輪郭、および非関連画像エリアのためのマスクを決定する例示的結果を示す。
図11のパネルaは、眼画像を示す。
図11のパネルbは、
図3に図示される融合畳み込みネットワークアーキテクチャを伴う畳み込みニューラルネットワーク100を使用して、
図11のパネルaにおける眼画像の意味論的にセグメント化された眼画像を示す。意味論的にセグメント化された眼画像は、眼画像の1の数値色値を伴う背景領域1104a、2の数値色値を伴う強膜領域1108a、3の数値色値を伴う虹彩領域1112a、または4の数値色値を伴う瞳孔領域1116aを含んでいた。
【0096】
図11のパネルcは、ブロック936においてプロセス900を使用して決定された
図11のパネルaに示される眼画像上にオーバーレイされる、瞳孔の輪郭境界の残りのピクセル1120aと、虹彩の輪郭境界の残りのピクセル1124aとを示す。
図11のパネルdは、
図11のパネルbに示される意味論的にセグメント化された眼画像上にオーバーレイされる、瞳孔の輪郭境界の残りのピクセル1120aと、虹彩の輪郭境界の残りのピクセル1124aとを示す。
図11のパネルeは、ブロック940においてプロセス900によって、瞳孔1120aの輪郭境界および虹彩1124aの輪郭境界の残りのピクセルをフィッティングすることによって決定される、瞳孔1128aの楕円形と、虹彩1132aの楕円形とを示す。
図11のパネルfは、ブロック720におけるプロセス700による、眼画像内の非関連エリアのためのバイナリマスク画像を示す。バイナリマスク画像は、
図11のパネルbに示される意味論的にセグメント化された眼画像の虹彩領域1112aおよび瞳孔領域1116aに対応する、領域1136aを含む。バイナリマスク画像はまた、背景領域1104aおよび強膜領域1108aに対応する、領域1140aを含む。
【0097】
図11のパネルa−fと同様に、
図11のパネルg−lは、別の眼画像の虹彩輪郭、瞳孔輪郭、および非関連画像エリアのためのマスクを決定する、例示的結果を示す。
(セグメント化された極画像上で訓練されたトリプレットネットワークアーキテクチャを用いたCNNを使用した例示的虹彩認証)
【0098】
図12A−12Bは、
図7および9に示される例示的プロセスを用いて瞳孔輪郭および虹彩輪郭をフィッティング後に取得される極座標内の虹彩画像上でトリプレットネットワークアーキテクチャを伴う畳み込みニューラルネットワーク(CNN)を訓練する例示的結果を示す。トリプレットネットワークアーキテクチャは、
図13に示され、下記により詳細に説明される。
【0099】
図12Aは、確率密度対埋込距離のヒストグラムプロットである。同一対象の虹彩画像は、埋込空間内でともにより近接し、異なる対象の虹彩画像は、埋込空間内で相互からより離れていた。
図12Bは、真陽性率(TPR)対偽陽性率(FPR)の受信者動作特性(ROC)曲線である。ROC曲線下面積は、99.947%であった。極座標内の虹彩画像を使用して、トリプレットネットワークアーキテクチャを伴うCNNを訓練することによって、0.884%のEERが、達成された。
(トリプレットネットワークアーキテクチャ)
【0100】
ヒトの眼の画像を使用して、トリプレットネットワークアーキテクチャを伴う畳み込みニューラルネットワーク(CNN)が、より高次元の眼画像空間からより低次元の埋込空間にマッピングする、埋込を学習するように訓練されることができる。眼画像空間の寸法は、非常に大きくあり得る。例えば、256ピクセル×256ピクセルの眼画像は、潜在的に、数千または数万自由度を含むことができる。
図13は、トリプレットネットワークアーキテクチャを伴う例示的畳み込みニューラルネットワーク1300のブロック図である。CNN1300は、埋込1304(Emb)を学習するように訓練されることができる。埋込1304は、より高次元の眼画像空間内の眼画像(Img)1308をより低次元の埋込空間内の眼画像の埋込空間表現(EmbImg)にマッピングする、関数であることができる。例えば、Emb(Img)=EmbImgである。眼画像(Img)1308は、
図7および9に示される例示的プロセスを用いて決定された瞳孔輪郭および虹彩輪郭を使用して算出された極座標内の虹彩画像であることができる。
【0101】
埋込空間表現、すなわち、埋込空間内の眼画像の表現は、n−次元の実数ベクトルであることができる。眼画像の埋込空間表現は、n−次元の眼記述であることができる。埋込空間内の表現の次元は、異なる実装では、異なり得る。例えば、次元は、範囲16〜2048内にあることができる。いくつかの実装では、nは、128である。埋込空間表現の要素は、実数によって表されることができる。いくつかのアーキテクチャでは、埋込空間表現は、訓練の間、n浮動点数として表されるが、認証のために、nバイトに量子化されてもよい。したがって、ある場合には、各眼画像は、nバイト表現によって表される。より大きい次元を伴う埋込空間内の表現は、より低次元を伴うものより良好に性能を発揮し得るが、より多くの訓練を要求し得る。埋込空間表現は、例えば、単位長を有することができる。
【0102】
CNN1300は、埋込空間内でともにクラスタ化されるため、結像条件から独立して、埋込空間内の1人の人物(または1人の人物の左または右眼)の眼画像間の距離が小さくなるように、埋込1304を学習するように訓練されることができる。対照的に、異なる人物(または人物の異なる眼)の眼画像のペア間の距離は、埋込空間内でともにクラスタ化されないため、埋込空間内で大きくなり得る。したがって、埋込空間内の同一人物からの眼画像間の距離、すなわち、埋込距離は、埋込空間内の異なる人物からの眼画像間の距離より小さくなり得る。2つの眼画像間の距離は、例えば、2つの眼画像の埋込空間表現間のユークリッド距離(L2ノルム)であることができる。
【0103】
1人の人物の2つの眼画像、例えば、アンカ眼画像(ImgA)1312aと正の眼画像(ImgP)1312pとの間の距離は、埋込空間内で小さくなり得る。異なる人物の2つの眼画像、例えば、アンカ眼画像(ImgA)1312aと負の眼画像(ImgN)1312nとの間の距離は、埋込空間内でより大きくなり得る。ImgA1312aは、その埋込空間表現が同一人物(例えば、ImgP1312p)および異なる人物(例えば、ImgN1312n)の眼画像の埋込空間表現と比較され得るため、「アンカ」画像である。ImgA1312pは、ImgP1312pおよびImgA1312aが同一人物の眼画像であるため、「正」の画像である。ImgN1312nは、ImgN1312nおよびImgA1312aが異なる人物の眼画像であるため、「負」の画像である。したがって、埋込空間内のImgA1312aとImgP1312pとの間の距離は、埋込空間内のImgA1312aとImgN1312Nとの間の距離より小さくあり得る。
【0104】
埋込ネットワーク(Emb)1304は、ImgA1312a、ImgP1312p、およびImgN1312nを、より高次元の眼画像空間から、アンカ埋込画像(EmbA)1316a、正の埋込画像(EmbP)1316a、および負の埋込画像(EmbN)1316nにマッピングすることができる。例えば、Emb(ImgA)=EmbA、Emb(ImgP)=EmbP、およびEmb(ImgN)=EmbNである。したがって、埋込空間内のEmbA1316aとEmbP1316aとの間の距離は、埋込空間内のEmbP1316aとEmbN1316nとの間の距離より小さくなり得る。
【0105】
埋込1304を学習するために、眼画像1308の訓練セットT1が、使用されることができる。眼画像1380は、
図7−9に示される例示的プロセスを用いて決定された瞳孔輪郭および虹彩輪郭を使用して算出された極座標内の虹彩画像であることができる。眼画像1308は、左眼および右眼の画像を含むことができる。眼画像1308は、ラベルと関連付けられることができ、ラベルは、1人の人物の眼画像を別の人の眼画像から区別する。ラベルはまた、人物の左眼および右眼の眼画像を区別することができる。訓練セットT1は、眼画像とラベルのペア(Img;Label)を含むことができる。(Img;Label)ペアの訓練セットT1は、眼画像データ記憶から受信されることができる。
【0106】
埋込1304を学習するために、トリプレットネットワークアーキテクチャを伴うCNN1300は、3つの同じ埋込ネットワーク、例えば、アンカ埋込ネットワーク(ENetworkA)1320aと、正の埋込ネットワーク(ENetworkP)1320pと、負の埋込ネットワーク(ENetworkN)1320nとを含むことができる。埋込ネットワーク1320a、1320p、または1320nは、眼画像空間からの眼画像を埋込空間内の眼画像の埋込空間表現にマッピングすることができる。例えば、ENetworkA1320aは、ImgA1312aをEmbA1316aにマッピングすることができる。ENetworkA1320pは、ImgP1312pをEmbP1316pにマッピングすることができる。ENetworkN1320nは、ImgN1312nをEmbN1316nにマッピングすることができる。
【0107】
トリプレットネットワークアーキテクチャを伴う畳み込みニューラルネットワーク1300は、眼画像のトリプレットを含む、トリプレット訓練セットT2を用いて、埋込1304を学習することができる。トリプレットの2つの眼画像は、同一人物からのもの、例えば、ImgA1312aおよびImgP1312pである。トリプレットの第3の眼画像は、異なる人物からのもの、例えば、ImgN1312nである。ENetworkA1320a、ENetworkP1320p、およびENetworkN1320nは、(ImgA;ImgP;ImgN)のトリプレットをトリプレット(EmbA;EmbP;EmbN)にマッピングすることができる。眼認証訓練装置1304は、トリプレット訓練セットT2を(Img;Label)ペアの訓練セットT1から生成することができる。
【0108】
ImgA1312a、ImgP1312p、またはImgN1312nは、異なる実装では、異なり得る。例えば、ImgA1312aおよびImgP1312pは、1人の人物の眼画像であることができ、ImgN1312nは、別の人物の眼画像であることができる。別の実施例として、ImgA1312aおよびImgP1312pは、1人の人物の左眼の画像であることができ、ImgN1312nは、その人物の右眼の画像または別の人物の眼画像であることができる。
【0109】
トリプレットネットワークアーキテクチャは、埋込空間内の人物の眼画像が、埋込空間内の任意の他の人物の眼画像より埋込空間内の同一人物の全ての他の眼画像に近くなるように、埋込1304を学習するように使用されることができる。例えば、|EmbA−EmbP|<|EmbA−EmbN|であって、|EmbA−EmbP|は、埋込空間内のEmbA1316aとEmbP1316pとの間の絶対距離を示し、|EmbA−EmbN|は、埋込空間内のEmbA1316aとEmbN1316nとの間の絶対距離を示す。
【0110】
いくつかの実装では、トリプレットネットワークアーキテクチャは、埋込空間内の人物の左眼の画像が、埋込空間内のその人物の右眼の任意の画像または別の人物の任意の眼画像より埋込空間内の同一人物の左眼の全ての画像に近くなるように、埋込1304を学習するように使用されることができる。
【0111】
埋込空間表現の寸法は、異なる実装では、異なり得る。EmbA1316a、EmbP1316p、およびEmbN1316nの寸法は、同一、例えば、431であることができる。埋込空間表現の長さは、異なる実装では、異なり得る。例えば、EmbA1316a、EmbP1316p、またはEmbN1316nは、L2正規化を使用して、埋込空間内で単位長を有するように正規化されることができる。したがって、眼画像の埋込空間表現は、埋込空間内の超球面上にある。
【0112】
トリプレットネットワークアーキテクチャは、EmbA1316a、EmbP1316p、およびEmbN1316nを比較するように構成される、トリプレット損失層1324を含むことができる。トリプレット損失層1324で学習された埋込1304は、1人の人物の眼画像を埋込空間内の近接近する単一点または点のクラスタ上にマッピングすることができる。トリプレット損失層1324は、埋込空間内の同一人物の眼画像(例えば、EmbA1316aおよびEmbP1316p)の間の距離を最小限にすることができる。トリプレット損失層1324は、埋込空間内の異なる人物の眼画像(例えば、EmbA1316aおよびEmbN1316n)の間の距離を最大限にすることができる。
【0113】
トリプレット損失層1324は、いくつかの方法において、EmbA1316a、EmbP1316p、およびEmbN1316nを比較することができる。例えば、トリプレット損失層1324は、以下を算出することによって、EmbA1316a、EmbP1316p、およびEmbN1316nを比較することができる。
【数1】
式中、|EmbA−EmbP|は、埋込空間内のEmbA1316aとEmbP1316pとの間の絶対距離を示し、|EmbA−EmbN|は、EmbA1316aとEmbN1316nとの間の絶対距離を示し、mは、マージンを示す。マージンは、異なる実装では、異なり得る。例えば、マージンは、0.16または0.01〜1.0の範囲内の別の数であることができる。したがって、いくつかの実装では、埋込1304は、同一人物からの眼画像間の埋込空間内の距離が異なる人物からの眼画像間の埋込空間内の距離より小さくなるように、複数の人物の眼画像から学習されることができる。式(1)の特定の実装の観点から、同一人物からの全ての眼画像間の埋込空間内の平方距離は、小さく、異なる人物からの眼画像のペア間の埋込空間内の平方距離は、大きい。
【0114】
EmbA1316a、EmbP1316p、およびEmbN1316nを比較する際に使用される、マージンmの関数は、異なる実装では、異なり得る。例えば、マージンmは、1人の人物の眼画像の各ペアと埋込空間内の全ての他の人物の眼画像との間にマージンを適用することができる。故に、1人の人物の眼画像の埋込空間表現は、埋込空間内でともに近接してクラスタ化されることができる。同時に、異なる人物の眼画像の埋込空間表現は、維持または最大限にされることができる。別の実施例として、マージンmは、1人の人物の左眼の画像の各ペアとその人物の右眼の画像または全ての他の人物の眼画像との間にマージンを適用することができる。
【0115】
埋込1304の学習の反復の間、トリプレット損失層1324は、異なる数のトリプレットに関して、EmbA1316a、EmbP1316p、およびEmbN1316nを比較することができる。例えば、トリプレット損失層1324は、トリプレット訓練セットT2内の全てのトリプレット(EmbA;EmbP;EmbN)に関して、EmbA1316a、EmbP1316p、およびEmbN1316nを比較することができる。別の実施例として、トリプレット損失層1324は、トリプレット訓練セットT2内のトリプレット(EmbA;EmbP;EmbN)のバッチに関して、EmbA1316a、EmbP1316p、およびEmbN1316nを比較することができる。バッチ内のトリプレットの数は、異なる実装では、異なり得る。例えば、バッチは、(EmbA;EmbP;EmbN)の64のトリプレットを含むことができる。別の実施例として、バッチは、トリプレット訓練セットT2内の全てのトリプレット(EmbA;EmbP;EmbN)を含むことができる。
【0116】
埋込1304の学習の反復の間、トリプレット損失層1324は、トリプレット損失を算出することによって、トリプレット(EmbA;EmbP;EmbN)のバッチに関してEmbA1316a、EmbP1316p、およびEmbN1316nを比較することができる。トリプレット損失は、例えば、以下であることができる。
【数2】
式中、nは、トリプレットのバッチ内のトリプレットの数を示し、EmbA(i)、EmbP(i)、およびEmbN(i)は、トリプレットのバッチ内のi番目のEmbA1316a、EmbP1316p、およびEmbN1316nを示す。
【0117】
埋込1304の学習の間、眼認証訓練装置1304は、トリプレット(EmbA;EmbP;EmbN)のバッチ間の比較、例えば、トリプレット(EmbA;EmbP;EmbN)のバッチ間のトリプレット損失に基づいて、ENetworkA1320a、ENetworkP1320p、およびENetworkN1320nを更新することができる。眼認証訓練装置1304は、周期的に、例えば、反復毎または1,000反復毎に、ENetworkA1320a、ENetworkP1320p、およびENetworkN1320nを更新することができる。眼認証訓練装置1304は、ENetworkA1320a、ENetworkP1320p、およびENetworkN1320nを更新し、埋込空間を最適化することができる。埋込空間の最適化は、異なる実装では、異なり得る。例えば、埋込空間の最適化は、式(2)を最小限にすることを含むことができる。別の実施例として、埋込空間の最適化は、EmbA1316aとEmbP1316pとの間の距離を最小限にし、EmbA1316aとEmbN1316nとの間の距離を最大限にすることを含むことができる。
【0118】
埋込空間の最適化の反復後、以下のうちの1つ以上のもの、すなわち、眼画像をより高次元の眼画像空間からより低次元の埋込空間内の眼画像の表現にマッピングする、埋込1034、またはユーザデバイスが、ユーザが認可されたユーザとして認証されるはずであるように、ユーザの眼画像の埋込空間表現が埋込空間内の認可されたユーザの眼画像に十分に類似するかどうかを決定するための閾値1328が、算出されることができる。埋込1304または閾値1328は、埋込1304または閾値1328を算出する際に使用し得る、または使用すべき、眼画像の特徴を規定せずに、決定されることができる。
【0119】
閾値1328は、異なる実装では、異なり得る。例えば、閾値1328は、埋込1304の学習の最後の反復の際に(ImgA;ImgP;ImgN)トリプレットから決定された同一人物の眼画像間の最大距離であることができる。別の実施例として、閾値1328は、埋込1304の学習の最後の反復の際に(ImgA;ImgP;ImgN)トリプレットから決定された同一人物の眼画像間の中央値距離であることができる。さらに別の実施例として、閾値1328は、埋込1304の学習の最後の反復の際に(ImgA;ImgP;ImgN)トリプレットから決定された異なる人物の眼画像間の最大距離より小さくあることができる。
【0120】
埋込1304を学習するために要求される反復の数は、異なる実装では、異なり得る。例えば、反復の数は、100,000であることができる。別の実施例として、反復の数は、事前に定義されなくてもよく、等価エラー率(EER)2%を有する等の満足の行く特性を伴って埋込1304を学習するために要求される反復に依存することができる。さらに別の実施例として、反復の数は、満足の行くトリプレット損失を取得するために要求される反復に依存することができる。
【0121】
埋込1304の認可されていないユーザと認可されたユーザを区別する能力は、異なる実装では、異なり得る。例えば、埋込1304の偽陽性率(FPR)は、0.01%であることができ、埋込1304の真陽性率(TPR)は、99.99%であることができる。別の実施例として、埋込1304の偽陰性率(FNR)は、0.01%であることができ、埋込1304の真陰性(TNR)は、99.99%であることができる。埋込1304の等価エラー率(EER)は、例えば、1%であることができる。
(例示的ウェアラブルディスプレイシステム)
【0122】
いくつかの実施形態では、ユーザデバイスは、ウェアラブルディスプレイデバイスであることができ、またはその中に含まれることができ、有利なこととして、より没入型の仮想現実(VR)、拡張現実(AR)、または複合現実(MR)体験を提供し得、デジタル的に再現された画像またはその一部が、それらが現実のように見える、または現実として知覚され得る様式で装着者に提示される。
【0123】
理論によって限定されるわけではないが、人間の眼は、典型的には、深度知覚を提供するために、有限数深度面を解釈し得ると考えられる。その結果、知覚される深度の高度に真実味のあるシミュレーションが、これらの限定された数の深度面のそれぞれに対応する画像の異なる表現を眼に提供することによって達成され得る。例えば、導波管のスタックを含有するディスプレイが、ユーザまたは視認者の眼の正面に位置付けられて装着されるように構成され得る。導波管のスタックは、複数の導波管を使用し、画像投入デバイス(例えば、1つ以上の光ファイバを介して画像情報を送る、多重化ディスプレイの離散ディスプレイまたは出力端)から、特定の導波管と関連付けられる深度面に対応する特定の角度(および発散量)において視認者の眼に光を指向させることによって、3次元知覚を眼/脳に提供するために利用され得る。
【0124】
いくつかの実施形態では、導波管の2つのスタック(視認者の眼毎に1つ)が、異なる画像を各眼に提供するために利用され得る。一実施例として、拡張現実シーンは、AR技術の装着者には、人物、木、背景における建物、およびコンクリートプラットフォームを特徴とする、実世界公園状設定を見えるようにし得る。これらのアイテムに加えて、AR技術の装着者はまた、自身が、実世界プラットフォーム上に立っているロボット像およびマルハナバチの擬人化のように見える飛んでいる漫画のようなアバタキャラクタを、そのロボットの像およびマルハナバチが実世界に存在していないにもかかわらず、「見える」と知覚し得る。導波管のスタックは、入力画像に対応するライトフィールドを生成するために使用され得、いくつかの実装では、ウェアラブルディスプレイは、ウェアラブルライトフィールドディスプレイを含む。ライトフィールド画像を提供するためのウェアラブルディスプレイデバイスおよび導波管スタックの実施例が、米国特許公開第2015/0016777号(参照することによって、これが含有するあらゆるものに関してその全体として本明細書に組み込まれる)に説明されている。
【0125】
図14は、VR、AR、またはMR体験をディスプレイシステム装着者または視認者1404に提示するために使用され得る、ウェアラブルディスプレイシステム1400の実施例を図示する。ウェアラブルディスプレイシステム1400は、本明細書に説明される用途または実施形態のいずれか(例えば、眼画像セグメント化、眼画質推定、瞳孔輪郭決定、または虹彩輪郭決定)を実施するようにプログラムされ得る。ディスプレイシステム1400は、ディスプレイ1408と、そのディスプレイ1408の機能をサポートするための種々の機械的ならびに電子的モジュールおよびシステムとを含む。ディスプレイ1408は、フレーム1412に結合されてもよく、これは、ディスプレイシステム装着者または視認者1404によって装着可能であって、装着者1404の眼の正面にディスプレイ1408を位置付けるように構成される。ディスプレイ1408は、ライトフィールドディスプレイであり得る。いくつかの実施形態では、スピーカ1416が、フレーム1412に結合され、ユーザの外耳道に隣接して位置付けられ、いくつかの実施形態では、示されない別のスピーカが、ユーザの他方の外耳道に隣接して位置付けられ、ステレオ/成形可能音響制御を提供する。ディスプレイ1408は、有線導線または無線接続等によって、フレーム1412に固定して取り付けられる、ユーザによって装着されるヘルメットもしくは帽子に固定して取り付けられる、ヘッドホンに内蔵される、または別様にユーザ1404に(例えば、リュック式構成において、ベルト結合式構成において)除去可能に取り付けられる等、種々の構成において搭載され得る、ローカルデータ処理モジュール1424に動作可能に結合される(1420)。
【0126】
ローカル処理およびデータモジュール1424は、ハードウェアプロセッサと不揮発性メモリ(例えば、フラッシュメモリ)等の非一過性デジタルメモリとを備え得、その両方は、データの処理、キャッシュ、および記憶を補助するために利用され得る。データは、(a)画像捕捉デバイス(カメラ等)、マイクロホン、慣性測定ユニット、加速度計、コンパス、GPSユニット、無線デバイス、および/もしくはジャイロスコープ等の(例えば、フレーム1412に動作可能に結合される、または別様に装着者1404に取り付けられ得る)センサから捕捉されるデータ、ならびに/または、(b)場合によっては処理もしくは読出後のディスプレイ1408への通過のために、遠隔処理モジュール1428および/もしくは遠隔データリポジトリ1432を使用して入手および/もしくは処理されるデータを含む。ローカル処理およびデータモジュール1424は、これらの遠隔モジュール1428、1432が、相互に動作可能に結合され、ローカル処理およびデータモジュール1424へのリソースとして利用可能であるように、有線または無線通信リンク等を介して、通信リンク1436、1440によって、遠隔処理モジュール1428および遠隔データリポジトリ1432に動作可能に結合されてもよい。画像捕捉デバイスは、眼画像セグメント化、眼画質推定、瞳孔輪郭決定、または虹彩輪郭決定プロシージャにおいて使用される眼画像を捕捉するために使用されることができる。
【0127】
いくつかの実施形態では、遠隔処理モジュール1428は、画像捕捉デバイスによって捕捉されたビデオ情報等のデータおよび/または画像情報を分析ならびに処理するように構成される、1つ以上のプロセッサを備えてもよい。ビデオデータは、ローカル処理およびデータモジュール1424内に、ならびに/または遠隔データリポジトリ1432内にローカルで記憶され得る。いくつかの実施形態では、遠隔データリポジトリ1432は、デジタルデータ記憶設備を備え得、これは、インターネットまたは「クラウド」リソース構成における他のネットワーキング構成を通して利用可能であってもよい。いくつかの実施形態では、全てのデータが、記憶され、全ての算出が、ローカル処理およびデータモジュール1424において実施され、遠隔モジュールからの完全に自律的な使用を可能にする。
【0128】
いくつかの実装では、ローカル処理およびデータモジュール1424および/または遠隔処理モジュール1428は、本明細書に開示される眼画像セグメント化、眼画質推定、瞳孔輪郭決定、または虹彩輪郭決定の実施形態を実施するようにプログラムされる。例えば、ローカル処理およびデータモジュール1424および/または遠隔処理モジュール1428は、
図5、6、7、または9を参照して説明されるプロセス500、600、700、または900の実施形態を実施するようにプログラムされることができる。ローカル処理およびデータモジュール1424および/または遠隔処理モジュール1428は、バイオメトリック抽出において、本明細書に開示される眼画像セグメント化、眼画質推定、瞳孔輪郭決定、または虹彩輪郭決定技法を使用して、例えば、装着者1404の識別を識別または認証するようにプログラムされることができる。画像捕捉デバイスは、特定の用途のためのビデオ(例えば、眼追跡用途のための装着者の眼のビデオまたはジェスチャ識別用途のための装着者の手もしくは指のビデオ)を捕捉することができる。ビデオは、処理モジュール1424、1428の一方または両方によって、CNN100を使用して分析されることができる。ある場合には、眼画像セグメント化、眼画質推定、瞳孔輪郭決定、または虹彩輪郭決定のうちの少なくともいくつかを(例えば、「クラウド」内の)遠隔処理モジュールにオフロードすることは、算出の効率または速度を改良し得る。CNN100のパラメータ(例えば、加重、バイアス項、プーリング層のためのサブサンプリング係数、異なる層内のカーネルの数およびサイズ、特徴マップの数等)は、データモジュール1424および/または1432内に記憶されることができる。
【0129】
ビデオ分析の結果(例えば、CNN100の出力)は、付加的動作または処理のために、処理モジュール1424、1428の一方または両方によって使用されることができる。例えば、種々のCNN用途では、バイオメトリック識別、眼追跡、ジェスチャの認識または分類、オブジェクト、姿勢等が、ウェアラブルディスプレイシステム1400によって使用されてもよい。例えば、装着者の眼のビデオは、眼画像セグメント化または画質推定のために使用されることができ、これは、ひいては、ディスプレイ1408を通して、装着者1404の虹彩輪郭決定または瞳孔輪郭決定に対する処理モジュール1424、1428によって使用されることができる。ウェアラブルディスプレイシステム1400の処理モジュール1424、1428は、眼画像セグメント化、眼画質推定、瞳孔輪郭決定、または虹彩輪郭決定の1つ以上の実施形態を用いて、本明細書に説明されるビデオまたは画像処理用途のいずれかを実施するようにプログラムされることができる。
【0130】
CNN100の実施形態は、眼画像をセグメント化し、他のバイオメトリック用途において画質推定値を提供するために使用されることができる。例えば、ユーザ(例えば、乗客またはセキュア設備における作業者等)の眼を走査および分析するために使用される、バイオメトリックセキュリティシステム(例えば、空港、鉄道駅等の交通機関の発着所、またはセキュリティ施設において使用されるもの等)内の眼スキャナは、眼結像カメラと、CNN100の実施形態を使用して眼画像を処理するようにプログラムされるハードウェアとを含むことができる。バイオメトリック識別(例えば、虹彩コードを生成する)、眼視線追跡等のため等のCNN100の他の用途も、可能性として考えられる。
(付加的側面)
【0131】
第1の側面では、眼画像セグメント化および画質推定のための方法が、開示される。本方法は、ハードウェアプロセッサの制御下で実施され、眼画像を受信するステップと、畳み込みニューラルネットワークを使用して、眼画像を処理し、眼画像のセグメント化を生成するステップと、畳み込みニューラルネットワークを使用して、眼画像を処理し、眼画像の品質推定値を生成するステップとを含み、畳み込みニューラルネットワークは、セグメント化タワーと、品質推定タワーとを備え、セグメント化タワーは、セグメント化層と、共有層とを備え、品質推定タワーは、品質推定層と、共有層とを備え、共有層の第1の出力層は、セグメント化タワーの第1の入力層およびセグメント化タワーの第2の入力層に接続され、共有層の第1の出力層は、品質推定層の入力層に接続され、眼画像を受信するステップは、共有層の入力層によって眼画像を受信するステップを含む。
【0132】
第2の側面では、共有層の第2の出力層は、セグメント化タワーの第3の入力層に接続される、側面1に記載の方法。
【0133】
第3の側面では、畳み込みニューラルネットワークを使用して、眼画像を処理し、眼画像のセグメント化を生成するステップは、セグメント化タワーを使用して、眼画像のセグメント化を生成するステップを含み、セグメント化タワーの出力層の出力は、眼画像のセグメント化である、側面1−2のいずれか1項に記載の方法。
【0134】
第4の側面では、眼画像のセグメント化は、眼画像の背景、強膜、虹彩、または瞳孔を含む、側面3に記載の方法。
【0135】
第5の側面では、畳み込みニューラルネットワークを使用して、眼画像を処理し、眼画像の品質推定値を生成するステップは、品質推定タワーを使用して、眼画像の品質推定値を生成するステップを含み、品質推定タワーの出力層の出力は、眼画像の品質推定値を備える、側面1−4のいずれか1項に記載の方法。
【0136】
第6の側面では、眼画像の品質推定値は、高品質推定値または低品質推定値である、側面1−5のいずれか1項に記載の方法。
【0137】
第7の側面では、共有層、セグメント化層、または品質推定層は、畳み込み層、明度正規化層、バッチ正規化層、正規化線形層、アップサンプリング層、連結層、プーリング層、全結合層、線形全結合層、ソフトサイン層、または任意のそれらの組み合わせを備える、側面1−6のいずれか1項に記載の方法。
【0138】
第8の側面では、眼画像セグメント化および画質推定のための方法が、開示される。本方法は、ハードウェアプロセッサの制御下で、眼画像を受信するステップと、畳み込みニューラルネットワークを使用して、眼画像を処理し、眼画像のセグメント化を生成するステップと、畳み込みニューラルネットワークを使用して、眼画像を処理し、眼画像の品質推定値を生成するステップとを含む。
【0139】
第9の側面では、畳み込みニューラルネットワークは、セグメント化タワーと、品質推定タワーとを備え、セグメント化タワーは、セグメント化層と、共有層とを備え、品質推定タワーは、品質推定層と、共有層とを備え、眼画像を受信するステップは、共有層の入力層によって眼画像を受信するステップを含む、側面8に記載の方法。
【0140】
第10の側面では、共有層の第1の出力層は、セグメント化タワーの第1の入力層に接続される、側面9に記載の方法。
【0141】
第11の側面では、共有層の第1の出力層は、セグメント化タワーの第2の入力層に接続される、側面10に記載の方法。
【0142】
第12の側面では、共有層の第1の出力層は、品質推定タワーの入力層に接続される、側面10−11のいずれか1項に記載の方法。
【0143】
第13の側面では、畳み込みニューラルネットワークを使用して、眼画像を処理し、眼画像のセグメント化を生成するステップは、セグメント化タワーを使用して、眼画像のセグメント化を生成するステップを含み、セグメント化タワーの出力層の出力は、眼画像のセグメント化である、側面9−12のいずれか1項に記載の方法。
【0144】
第14の側面では、眼画像のセグメント化は、眼画像の背景、強膜、虹彩、または瞳孔を含む、側面9−13のいずれか1項に記載の方法。
【0145】
第15の側面では、畳み込みニューラルネットワークを使用して、眼画像を処理し、眼画像の品質推定値を生成するステップは、品質推定タワーを使用して、眼画像の品質推定値を生成するステップを含み、品質推定タワーの出力層の出力は、眼画像の品質推定値である、側面9−14のいずれか1項に記載の方法。
【0146】
第16の側面では、共有層、セグメント化層、または品質推定層は、畳み込み層、バッチ正規化層、正規化線形層、アップサンプリング層、連結層、プーリング層、全結合層、線形全結合層、または任意のそれらの組み合わせを備える、側面9−15のいずれか1項に記載の方法。
【0147】
第17の側面では、バッチ正規化層は、バッチローカルコントラスト正規化層またはバッチローカル応答正規化層である、側面16に記載の方法。
【0148】
第18の側面では、共有層、セグメント化層、または品質推定層は、明度正規化層、ソフトサイン層、または任意のそれらの組み合わせを備える、側面9−17のいずれか1項に記載の方法。
【0149】
第19の側面では、眼画像は、認証のためにユーザデバイスの画像センサによって捕捉される、側面8−18のいずれか1項に記載の方法。
【0150】
第20の側面では、眼画像のセグメント化は、主に、眼画像の虹彩部分から成る、側面8−19のいずれか1項に記載の方法。
【0151】
第21の側面では、眼画像のセグメント化は、主に、眼画像の網膜部分から成る、側面8−19のいずれか1項に記載の方法。
【0152】
第22の側面では、眼画像セグメント化および画質推定のための畳み込みニューラルネットワークを訓練するための方法が、開示される。本方法は、ハードウェアプロセッサの制御下で、眼画像の訓練セットを取得するステップと、畳み込みニューラルネットワークに眼画像の訓練セットを提供するステップと、畳み込みニューラルネットワークを眼画像の訓練セットで訓練するステップとを含み、畳み込みニューラルネットワークは、セグメント化タワーと、品質推定タワーとを備え、セグメント化タワーは、セグメント化層と、共有層とを備え、品質推定タワーは、品質推定層と、共有層とを備え、共有層の出力層は、セグメント化タワーの第1の入力層およびセグメント化タワーの第2の入力層に接続され、共有層の出力層は、品質推定層の入力層に接続される。
【0153】
第23の側面では、畳み込みニューラルネットワークを眼画像の訓練セットで訓練するステップは、セグメント化タワーを使用して、訓練セットの眼画像を処理し、眼画像のセグメント化を生成するステップと、品質推定タワーを使用して、訓練セットの眼画像を処理し、眼画像の品質推定値を生成するステップと、眼画像のセグメント化と眼画像の基準セグメント化との間の第1の差異を算出するステップと、眼画像の品質推定値と眼画像の基準品質推定値との間の第2の差異異を算出するステップと、第1の差異および第2の差異を使用して、畳み込みニューラルネットワークのパラメータを更新するステップとを含む、側面22に記載の方法。
【0154】
第24の側面では、第1の差異および第2の差異を使用して、畳み込みニューラルネットワークのパラメータを更新するステップは、畳み込みニューラルネットワークを訓練するとき、第1の訓練サイクルの間、畳み込みニューラルネットワークのパラメータの第1のパーセンテージをゼロの値に設定するステップを含む、側面23に記載の方法。
【0155】
第25の側面では、畳み込みニューラルネットワークを訓練するとき、第1の訓練サイクルの間、畳み込みニューラルネットワークのパラメータの第1のパーセンテージをゼロの値に設定するステップは、畳み込みニューラルネットワークを訓練するとき、第1の訓練サイクルの間、畳み込みニューラルネットワークのパラメータの第1のパーセンテージをゼロの値にランダムに設定するステップを含む、側面24に記載の方法。
【0156】
第26の側面では、第1の差異および第2の差異を使用して、畳み込みニューラルネットワークのパラメータを更新するステップはさらに、畳み込みニューラルネットワークを訓練するとき、第2の訓練サイクルの間、畳み込みニューラルネットワークのパラメータの第2のパーセンテージをゼロの値に設定するステップを含む、側面24−25のいずれか1項に記載の方法。
【0157】
第27の側面では、畳み込みニューラルネットワークを訓練するとき、第2の訓練サイクルの間、畳み込みニューラルネットワークのパラメータの第2のパーセンテージをゼロの値に設定するステップは、畳み込みニューラルネットワークを訓練するとき、第2の訓練サイクルの間、畳み込みニューラルネットワークのパラメータの第2のパーセンテージをゼロの値にランダムに設定するステップを含む、側面26に記載の方法。
【0158】
第28の側面では、第1のパーセンテージまたは第2のパーセンテージは、50%〜30%である、側面27に記載の方法。
【0159】
第29の側面では、眼画像のセグメント化は、眼画像の背景、強膜、虹彩、または瞳孔を備え、眼画像の基準セグメント化は、眼画像の基準背景、基準強膜、基準虹彩、または基準瞳孔を備える、側面23−28のいずれか1項に記載の方法。
【0160】
第30の側面では、共有層、セグメント化層、または品質推定層は、畳み込み層、明度正規化層、バッチ正規化層、正規化線形層、アップサンプリング層、連結層、プーリング層、全結合層、線形全結合層、ソフトサイン層、または任意のそれらの組み合わせを備える、側面22−28のいずれか1項に記載の方法。
【0161】
第31の側面では、コンピュータシステムが、開示される。コンピュータシステムは、ハードウェアプロセッサと、ハードウェアプロセッサによって実行されると、プロセッサに、側面1−30のいずれか1項に記載の方法を実施させる、その上に記憶される命令を有する、非一過性メモリとを備える。
【0162】
第32の側面では、コンピュータシステムは、モバイルデバイスを備える、側面31に記載のコンピュータシステム。
【0163】
第33の側面では、モバイルデバイスは、ウェアラブルディスプレイシステムを備える、側面32に記載のコンピュータシステム。
【0164】
第34の側面では、意味論的にセグメント化された眼画像内の眼輪郭を決定するための方法が、開示される。本方法は、ハードウェアプロセッサの制御下で、複数のピクセルを含む眼画像の意味論的にセグメント化された眼画像を受信するステップであって、意味論的にセグメント化された眼画像のピクセルは、色値を有し、意味論的にセグメント化された眼画像のピクセルの色値は、第1の色値、第2の色値、第3の色値、および第4の色値であって、第1の色値は、眼画像の背景に対応し、第2の色値は、眼画像内の眼の強膜に対応し、第3の色値は、眼画像内の眼の虹彩に対応し、第4の色値は、眼画像内の眼の瞳孔に対応する、ステップと、意味論的にセグメント化された眼画像を使用して、瞳孔輪郭を決定するステップと、意味論的にセグメント化された眼画像を使用して、虹彩輪郭を決定するステップと、意味論的にセグメント化された眼画像内の非関連エリアのためのマスクを決定するステップとを含む。
【0165】
第35の側面では、第1の色値は、第2の色値を上回り、第2の色値は、第3の色値を上回り、第3の色値は、第4の色値を上回る、側面34に記載の方法。
【0166】
第36の側面では、意味論的にセグメント化された眼画像を使用して、瞳孔輪郭を決定するステップは、複数のピクセルを含む第1のバイナリ画像を作成するステップであって、第1のバイナリ画像の第1のバイナリ画像ピクセルの色値は、意味論的にセグメント化された眼画像内の対応するピクセルが、第4の色値を上回るまたはそれと等しい値を有する場合、第4の色値であって、意味論的にセグメント化された眼画像内の対応するピクセルが、第4の色値を上回らずかつそれと等しくない値を有する場合、第3の色値である、ステップと、第1のバイナリ画像内の輪郭を決定するステップと、第1のバイナリ画像内の決定された輪郭の最長輪郭を瞳孔輪郭境界として選択するステップと、瞳孔輪郭境界を包囲する瞳孔輪郭点境界ボックスを決定するステップと、瞳孔点面積サイズを瞳孔輪郭点境界ボックスの対角線として算出するステップと、複数のピクセルを含む第2のバイナリ画像を作成するステップであって、第2のバイナリ画像の複数のピクセルの第2のバイナリ画像ピクセルの色値は、意味論的にセグメント化された眼画像内の対応するピクセルが、第3の色値を上回るまたはそれと等しい値を有する場合、第3の色値であって、意味論的にセグメント化された眼画像内の対応するピクセルが、第3の色値を上回らずかつそれと等しくない値を有する場合、第2の色値である、ステップと、瞳孔輪郭境界の瞳孔輪郭境界ピクセルに関して、第2の色値の色値を有し、瞳孔輪郭境界ピクセルに最も近い、第2のバイナリ画像内の最も近いピクセルを決定するステップと、瞳孔輪郭境界ピクセルと第2のバイナリ画像内の最も近いピクセルとの間の距離を決定するステップと、瞳孔輪郭境界ピクセルと第2のバイナリ画像内の最も近いピクセルとの間の距離が、所定の瞳孔輪郭閾値より小さい場合、瞳孔輪郭境界ピクセルを瞳孔輪郭境界から除去するステップと、瞳孔輪郭を楕円形として瞳孔輪郭境界の残りのピクセルから決定するステップとを含む、側面34−35のいずれか1項に記載の方法。
【0167】
第37の側面では、意味論的にセグメント化された眼画像を使用して、虹彩輪郭を決定するステップは、複数のピクセルを含む第3のバイナリ画像を作成するステップであって、第3のバイナリ画像の複数のピクセルの第3のバイナリ画像ピクセルの色値は、意味論的にセグメント化された眼画像内の対応するピクセルが、第3の色値を上回るまたはそれと等しい値を有する場合、第3の色値であって、意味論的にセグメント化された眼画像内の対応するピクセルが、第3の色値を上回らずかつそれと等しくない値を有する場合、第2の色値である、ステップと、第3のバイナリ画像内の輪郭を決定するステップと、第3のバイナリ画像内の決定された輪郭の最長輪郭を虹彩輪郭境界として選択するステップと、虹彩輪郭境界を包囲する虹彩輪郭点境界ボックスを決定するステップと、虹彩点面積サイズを虹彩輪郭点境界ボックスの対角線として算出するステップと、複数のピクセルを含む第4のバイナリ画像を作成するステップであって、第4のバイナリ画像の複数のピクセルの第4のバイナリ画像ピクセルの色値は、意味論的にセグメント化された眼画像内の対応するピクセルが、第2の色値を上回るまたはそれと等しい値を有する場合、第2の色値であって、意味論的にセグメント化された眼画像内の対応するピクセルが、第2の色値を上回らずかつそれと等しくない値を有する場合、第1の色値である、ステップと、輪郭境界の虹彩輪郭境界ピクセルに関して、第1の色値の色値を有し、虹彩輪郭境界ピクセルに最も近い、第4のバイナリ画像内の最も近いピクセルを決定するステップと、虹彩輪郭境界ピクセルと第4のバイナリ画像内の最も近いピクセルとの間の距離を決定するステップと、虹彩輪郭境界ピクセルと第4のバイナリ画像内の最も近いピクセルとの間の距離が、所定の虹彩輪郭閾値より小さい場合、虹彩輪郭境界ピクセルを虹彩輪郭境界から除去するステップと、楕円形を虹彩輪郭境界の残りのピクセルから決定することによって、虹彩輪郭を決定するステップとを含む、側面34−36のいずれか1項に記載の方法。
【0168】
第38の側面では、眼画像内の非関連エリアのためのマスクを決定するステップは、複数のピクセルを含むバイナリマスク画像を作成するステップであって、バイナリマスク画像のバイナリマスク画像ピクセルは、色値を有する、ステップと、意味論的にセグメント化された眼画像内の対応するピクセルが、第3の色値を上回るまたはそれと等しい値を有する場合、バイナリマスク画像ピクセルの色値を第3の色値に設定するステップと、意味論的にセグメント化された眼画像内の対応するピクセルが、第3の色値を上回らずかつそれと等しくない値を有する場合、バイナリマスク画像ピクセルの色値を第2の色値に設定するステップとを含む、側面34−37のいずれか1項に記載の方法。
【0169】
第39の側面では、所定の瞳孔輪郭閾値は、瞳孔点面積サイズによって乗算される割合であって、割合は、0.02〜0.20の範囲内である、側面36−38のいずれか1項に記載の方法。
【0170】
第40の側面では、所定の虹彩輪郭閾値は、虹彩点面積サイズによって乗算される割合であって、割合は、0.02〜0.20の範囲内である、側面37−39のいずれか1項に記載の方法。
【0171】
第41の側面では、意味論的にセグメント化された眼画像内の瞳孔輪郭、虹彩輪郭、および非関連エリアのためのマスクを使用して、眼画像内の眼の虹彩の極画像を眼画像から作成するステップをさらに含む、側面34−40のいずれか1項に記載の方法。
【0172】
第42の側面では、複数のピクセルを含む眼画像の意味論的にセグメント化された眼画像を受信するステップは、眼画像を受信するステップと、畳み込みニューラルネットワークを使用して、眼画像を処理し、意味論的にセグメント化された眼画像を生成するステップと、畳み込みニューラルネットワークを使用して、眼画像を処理し、眼画像の品質推定値を生成するステップとを含み、畳み込みニューラルネットワークは、セグメント化タワーと、品質推定タワーとを備え、セグメント化タワーは、セグメント化層と、共有層とを備え、品質推定タワーは、品質推定層と、共有層とを備え、共有層の第1の出力層は、セグメント化タワーの第1の入力層およびセグメント化タワーの第2の入力層に接続され、共有層の第1の出力層は、品質推定層の入力層に接続され、眼画像を受信するステップは、共有層の入力層によって眼画像を受信するステップを含む、側面34−41のいずれか1項に記載の方法。
【0173】
第43の側面では、意味論的にセグメント化された眼画像内の眼輪郭を決定するための方法が、開示される。本方法は、ハードウェアプロセッサの制御下で、眼画像の意味論的にセグメント化された眼画像を受信するステップと、意味論的にセグメント化された眼画像を使用して、眼画像内の眼の瞳孔輪郭を決定するステップと、意味論的にセグメント化された眼画像を使用して、眼画像内の眼の虹彩輪郭を決定するステップと、眼画像内の非関連エリアのためのマスクを決定するステップとを含む。
【0174】
第44の側面では、意味論的にセグメント化された眼画像の寸法およびマスク画像の寸法は、同一である、側面43に記載の方法。
【0175】
第45の側面では、意味論的にセグメント化された眼画像は、複数のピクセルを含み、意味論的にセグメント化された眼画像のピクセルの色値は、眼画像の背景、眼画像内の眼の強膜、眼画像内の眼の虹彩、または眼画像内の眼の瞳孔に対応する、側面43−44のいずれか1項に記載の方法。
【0176】
第46の側面では、意味論的にセグメント化された眼画像のピクセルの色値は、第1の色値、第2の色値、第3の色値、または第4の色であって、第1の色値は、眼画像の背景に対応し、第2の色値は、眼画像内の眼の強膜に対応し、第3の色値は、眼画像内の眼の虹彩に対応し、第4の色値は、眼画像内の眼の瞳孔に対応する、側面45に記載の方法。
【0177】
第47の側面では、第1の色値は、第2の色値を上回り、第2の色値は、第3の色値を上回り、第3の色値は、第4の色値を上回る、側面46に記載の方法。
【0178】
第48の側面では、意味論的にセグメント化された眼画像を使用して、瞳孔輪郭を決定するステップは、第1のバイナリ画像を意味論的にセグメント化された眼画像から作成するステップと、第1のバイナリ画像内の最長瞳孔輪郭を決定するステップと、第2のバイナリ画像をセグメント化された眼画像から作成するステップと、瞳孔輪郭を決定するために不適切な第2のバイナリ画像を使用して最長瞳孔輪郭の最長瞳孔輪郭ピクセルを除去するステップと、瞳孔輪郭を楕円形として第1のバイナリ画像内の最長瞳孔輪郭の残りのピクセルから決定するステップとを含む、側面46−47のいずれか1項に記載の方法。
【0179】
第49の側面では、第1のバイナリ画像のピクセルは、意味論的にセグメント化された眼画像内の対応するピクセルが、第4の色値を上回るまたはそれと等しい値を有する場合、第1のバイナリ画像色値を、そうでなければ、第2のバイナリ画像色値を有し、第1のバイナリ画像色値は、第2のバイナリ画像色値を上回り、第2のバイナリ画像のピクセルは、意味論的にセグメント化された眼画像内の対応するピクセルが、第3の色値を上回るまたはそれと等しい値を有する場合、第1のバイナリ画像色値を、そうでなければ、第2のバイナリ画像色値を有する、側面48に記載の方法。
【0180】
第50の側面では、瞳孔輪郭を決定するために不適切な第2のバイナリ画像を使用して、最長瞳孔輪郭の最長瞳孔輪郭ピクセルを除去するステップは、最長瞳孔輪郭ピクセルと、第2のバイナリ画像色値を有し、最長瞳孔輪郭ピクセルに最も近い、第2のバイナリ画像内のピクセルとの間の距離を決定するステップと、距離が所定の瞳孔輪郭閾値より小さい場合、最長瞳孔輪郭ピクセルを最長瞳孔輪郭から除去するステップとを含む、側面48−49のいずれか1項に記載の方法。
【0181】
第51の側面では、最長瞳孔輪郭ピクセルと、第2のバイナリ画像色値を有し、最長瞳孔輪郭ピクセルに最も近い、第2のバイナリ画像内のピクセルとの間の距離を決定するステップは、最長瞳孔輪郭ピクセルに対応する第2のバイナリ画像内のピクセルと、第2のバイナリ画像色値を有し、最長瞳孔輪郭ピクセルに対応する第2のバイナリ画像内のピクセルに最も近い、第2のバイナリ画像内のピクセルとの間の距離を決定するステップを含む、側面50に記載の方法。
【0182】
第52の側面では、第1のバイナリ画像内の最長瞳孔輪郭を包囲する最小境界ボックスを決定するステップをさらに含む、側面48−49のいずれか1項に記載の方法。
【0183】
第53の側面では、第1のバイナリ画像内の最長瞳孔輪郭を包囲する最小境界ボックスのサイズを決定するステップをさらに含む、側面52に記載の方法。
【0184】
第54の側面では、第1のバイナリ画像内の最長瞳孔輪郭を包囲する最小境界ボックスのサイズは、第1のバイナリ画像内の最長瞳孔輪郭を包囲する最小境界ボックスの対角線である、側面53に記載の方法。
【0185】
第55の側面では、所定の瞳孔輪郭閾値は、第1のバイナリ画像内の最長瞳孔輪郭を包囲する最小境界ボックスのサイズによって乗算される割合であって、割合は、0.02〜0.20の範囲内である、側面53−54のいずれか1項に記載の方法。
【0186】
第56の側面では、意味論的にセグメント化された眼画像を使用して、虹彩輪郭を決定するステップは、第3のバイナリ画像を意味論的にセグメント化された眼画像から作成するステップと、第1のバイナリ画像内の最長虹彩輪郭を決定するステップと、第4のバイナリ画像を意味論的にセグメント化された眼画像から作成するステップと、虹彩輪郭を決定するために不適切な第4のバイナリ画像を使用して、最長虹彩輪郭の最長虹彩輪郭ピクセルを除去するステップと、虹彩輪郭を楕円形として第1のバイナリ画像内の最長虹彩輪郭の残りのピクセルから決定するステップとを含む、側面48−55のいずれか1項に記載の方法。
【0187】
第57の側面では、第3のバイナリ画像のピクセルは、意味論的にセグメント化された眼画像内の対応するピクセルが、第3の色値を上回るまたはそれと等しい値を有する場合、第1のバイナリ画像色値を、そうでなければ、第2のバイナリ画像色値を有し、第4のバイナリ画像のピクセルは、意味論的にセグメント化された眼画像内の対応するピクセルが、第2の色値を上回るまたはそれと等しい値を有する場合、第1のバイナリ画像色値を、そうでなければ、第2のバイナリ画像色値を有する、側面56に記載の方法。
【0188】
第58の側面では、虹彩輪郭を決定するために不適切な第4のバイナリ画像を使用して、最長虹彩輪郭の最長虹彩輪郭ピクセルを除去するステップは、最長虹彩輪郭ピクセルと、第2のバイナリ画像色値を有し、最長虹彩輪郭ピクセルに最も近い、第4のバイナリ画像内のピクセルとの間の距離を決定するステップと、最長虹彩輪郭ピクセルと第4のバイナリ画像内のピクセルとの間の距離が、所定の虹彩輪郭閾値より小さい場合、最長虹彩輪郭ピクセルを最長虹彩輪郭から除去するステップとを含む、側面56−57のいずれか1項に記載の方法。
【0189】
第59の側面では、最長虹彩輪郭ピクセルと、第2のバイナリ画像色値を有し、最長虹彩輪郭ピクセルに最も近い、第4のバイナリ画像内のピクセルとの間の距離を決定するステップは、最長虹彩輪郭ピクセルに対応する第4のバイナリ画像内のピクセルと、第2のバイナリ画像色値の色値を有し、最長虹彩輪郭ピクセルに対応する第4のバイナリ画像内のピクセルに最も近い、第4のバイナリ画像内のピクセルとの間の距離を決定するステップを含む、側面58に記載の方法。
【0190】
第60の側面では、第3のバイナリ画像内の最長虹彩輪郭を包囲する最小境界ボックスを決定するステップをさらに含む、側面56−57のいずれか1項に記載の方法。
【0191】
第61の側面では、第3のバイナリ画像内の最長虹彩輪郭を包囲する最小境界ボックスのサイズを決定するステップをさらに含む、側面60に記載の方法。
【0192】
第62の側面では、第3のバイナリ画像内の最長虹彩輪郭を包囲する最小境界ボックスのサイズは、第3のバイナリ画像内の最長虹彩輪郭を包囲する最小境界ボックスの対角線である、側面61に記載の方法。
【0193】
第63の側面では、所定の虹彩輪郭閾値は、第1のバイナリ画像内の最長虹彩輪郭を包囲する最小境界ボックスのサイズによって乗算される割合であって、割合は、0.02〜0.20の範囲内である、側面61−62のいずれか1項に記載の方法。
【0194】
第64の側面では、眼画像内の非関連エリアのためのマスクを決定するステップは、複数のピクセルを含むバイナリマスク画像を作成するステップを含み、バイナリマスク画像のピクセルは、意味論的にセグメント化された眼画像内の対応するピクセルが、第3の色値を上回るまたはそれと等しい値を有する場合、第1のバイナリ画像色値を、そうでなければ、第2のバイナリ画像色値を有する、側面49−63のいずれか1項に記載の方法。
【0195】
第65の側面では、意味論的にセグメント化された眼画像内の瞳孔輪郭、虹彩輪郭、および非関連エリアのためのマスクを使用して、眼画像内の眼の虹彩の極画像を眼画像から作成するステップをさらに含む、側面43−64のいずれか1項に記載の方法。
【0196】
第66の側面では、眼画像の意味論的にセグメント化された眼画像を受信するステップは、眼画像を受信するステップと、畳み込みニューラルネットワークを使用して、眼画像を処理し、眼画像のセグメント化を生成するステップと、畳み込みニューラルネットワークを使用して、眼画像を処理し、眼画像の品質推定値を生成するステップとを含む、側面43−65のいずれか1項に記載の方法。
【0197】
第67の側面では、眼画像の意味論的にセグメント化された眼画像を受信するステップは、眼画像を受信するステップと、畳み込みニューラルネットワークを使用して、眼画像を処理し、意味論的にセグメント化された眼画像を生成するステップと、畳み込みニューラルネットワークを使用して、眼画像を処理し、眼画像の品質推定値を生成するステップとを含む、側面43−66のいずれか1項に記載の方法。
【0198】
第68の側面では、コンピュータシステムが、開示される。コンピュータシステムは、ハードウェアプロセッサと、ハードウェアプロセッサによって実行されると、プロセッサに、側面34−67のいずれか1項に記載の方法を実施させる、その上に記憶される命令を有する、非一過性メモリとを備える。
【0199】
第69の側面では、コンピュータシステムは、モバイルデバイスを備える、側面68に記載のコンピュータシステム。
【0200】
第70の側面では、モバイルデバイスは、ウェアラブルディスプレイシステムを備える、側面69に記載のコンピュータシステム。ウェアラブルディスプレイシステムは、頭部搭載型拡張または仮想現実ディスプレイシステムを備えてもよい。
【0201】
第71の側面では、眼画像セグメント化および画質推定のためのシステムであって、眼画像を取得するように構成される、眼結像カメラと、眼画像を記憶するように構成される、非一過性メモリと、非一過性メモリと通信する、ハードウェアプロセッサであって、眼画像を受信し、畳み込みニューラルネットワークを使用して、眼画像を処理し、眼画像のセグメント化を生成し、畳み込みニューラルネットワークを使用して、眼画像を処理し、眼画像の品質推定値を生成するようにプログラムされる、ハードウェアプロセッサとを備え、畳み込みニューラルネットワークは、セグメント化タワーと、品質推定タワーとを備え、セグメント化タワーは、セグメント化層と、共有層とを備え、品質推定タワーは、品質推定層と、共有層とを備え、共有層の第1の出力層は、セグメント化タワーの第1の入力層およびセグメント化タワーの第2の入力層に接続され、第1の入力層または第2の入力層のうちの少なくとも1つは、連結層を備え、共有層の第1の出力層は、品質推定層の入力層に接続され、眼画像は、共有層の入力層によって受信される、システム。
【0202】
第72の側面では、共有層の第2の出力層は、セグメント化タワーの第3の入力層に接続され、第3の入力層は、連結層を備える、側面71に記載のシステム。
【0203】
第73の側面では、畳み込みニューラルネットワークを使用して、眼画像を処理し、眼画像のセグメント化を生成するために、ハードウェアプロセッサは、セグメント化タワーを使用して、眼画像のセグメント化を生成するようにプログラムされ、セグメント化タワーの出力層の出力は、眼画像のセグメント化を備える、側面71または72のいずれか1項に記載のシステム。
【0204】
第74の側面では、眼画像のセグメント化は、眼画像の背景、強膜、虹彩、または瞳孔を含む、側面71−73のいずれか1項に記載のシステム。
【0205】
第75の側面では、ハードウェアプロセッサはさらに、眼画像のセグメント化を使用して、眼画像内の眼の瞳孔輪郭を決定し、眼画像のセグメント化を使用して、眼画像内の眼の虹彩輪郭を決定し、眼画像内の非関連エリアのためのマスクを決定するようにプログラムされる、側面74に記載のシステム。
【0206】
第76の側面では、共有層は、共有層によって算出された特徴マップの空間寸法を減少させ、特徴マップの数を増加させることによって、眼画像をエンコードするように構成される、側面71−75のいずれか1項に記載のシステム。
【0207】
第77の側面では、セグメント化層は、特徴マップの空間寸法を増加させ、特徴マップの数を低減させることによって、共有層によってエンコードされた眼画像をデコードするように構成される、側面76に記載のシステム。
【0208】
第78の側面では、畳み込みニューラルネットワークを使用して、眼画像を処理し、眼画像の品質推定値を生成するために、ハードウェアプロセッサは、品質推定タワーを使用して、眼画像の品質推定値を生成するようにプログラムされ、品質推定タワーの出力層の出力は、眼画像の品質推定値を備える、側面71−77のいずれか1項に記載のシステム。
【0209】
第79の側面では、品質推定タワーは、少なくとも2つのチャネルの出力を出力するように構成され、少なくとも2つのチャネルの第1のものは、高品質推定値を備え、少なくとも2つのチャネルの第2のものは、低品質推定値を備える、側面71−78のいずれか1項に記載のシステム。
【0210】
第80の側面では、共有層、セグメント化層、または品質推定層は、畳み込み層、明度正規化層、バッチ正規化層、正規化線形層、アップサンプリング層、連結層、プーリング層、全結合層、線形全結合層、ソフトサイン層、または任意のそれらの組み合わせを備える、側面71−79のいずれか1項に記載のシステム。
【0211】
第81の側面では、眼画像セグメント化および画質推定のためのシステムであって、眼画像を取得するように構成される、眼結像カメラと、眼画像を記憶するように構成される、非一過性メモリと、非一過性メモリと通信する、ハードウェアプロセッサであって、眼画像を受信し、畳み込みニューラルネットワークを使用して、眼画像を処理し、眼画像のセグメント化を生成し、畳み込みニューラルネットワークを使用して、眼画像を処理し、眼画像の品質推定値を生成するようにプログラムされる、ハードウェアプロセッサとを備え、畳み込みニューラルネットワークは、セグメント化タワーと、品質推定タワーとを備え、セグメント化タワーは、セグメント化層と、共有層とを備え、品質推定タワーは、品質推定層と、共有層とを備え、セグメント化層は、品質推定タワーと共有されず、品質推定層は、セグメント化タワーと共有されず、眼画像は、共有層の入力層によって受信される、システム。
【0212】
第82の側面では、共有層の第1の出力層は、セグメント化タワーの第1の入力層に接続される、側面81に記載のシステム。
【0213】
第83の側面では、共有層の第1の出力層は、セグメント化タワーの第2の入力層に接続され、第1の入力層または第2の入力層は、連結層を備える、側面82に記載のシステム。
【0214】
第84の側面では、共有層の第1の出力層はさらに、品質推定タワーの入力層に接続される、側面82または83に記載のシステム。
【0215】
第85の側面では、畳み込みニューラルネットワークを使用して、眼画像を処理し、眼画像のセグメント化を生成するために、ハードウェアプロセッサは、セグメント化タワーを使用して、眼画像のセグメント化を生成するようにプログラムされ、セグメント化タワーの出力層の出力は、眼画像のセグメント化を備える、側面81−84のいずれか1項に記載のシステム。
【0216】
第86の側面では、眼画像のセグメント化は、眼画像の背景、強膜、虹彩、または瞳孔を含む、側面81−85のいずれか1項に記載のシステム。
【0217】
第87の側面では、畳み込みニューラルネットワークを使用して、眼画像を処理し、眼画像の品質推定値を生成するために、ハードウェアプロセッサは、品質推定タワーを使用して、眼画像の品質推定値を生成するようにプログラムされ、品質推定タワーの出力層の出力は、眼画像の品質推定値を備える、側面81−86のいずれか1項に記載のシステム。
【0218】
第88の側面では、共有層、セグメント化層、または品質推定層は、畳み込み層、バッチ正規化層、正規化線形層、アップサンプリング層、連結層、プーリング層、全結合層、線形全結合層、または任意のそれらの組み合わせを備える、側面81−87のいずれか1項に記載のシステム。
【0219】
第89の側面では、バッチ正規化層は、バッチローカルコントラスト正規化層またはバッチローカル応答正規化層である、側面88に記載のシステム。
【0220】
第90の側面では、共有層、セグメント化層、または品質推定層は、明度正規化層、ソフトサイン層、または任意のそれらの組み合わせを備える、側面81−89のいずれか1項に記載のシステム。
【0221】
第91の側面では、仮想画像をシステムのユーザに表示するように構成される、ディスプレイをさらに備える、側面71−90のいずれか1項に記載のシステム。
【0222】
第92の側面では、ディスプレイは、ライトフィールドディスプレイまたは仮想画像を複数の深度平面に表示するように構成されるディスプレイを備える、側面91に記載のシステム。
【0223】
第93の側面では、ハードウェアプロセッサはさらに、バイオメトリックシグネチャを眼画像のセグメント化から計算するようにプログラムされ、セグメント化は、畳み込みニューラルネットワークのセグメント化タワーによって生成される、側面71−92のいずれか1項に記載のシステム。
【0224】
第94の側面では、バイオメトリックシグネチャは、虹彩コードを備える、側面93に記載のシステム。
(結論)
【0225】
本明細書に説明される、ならびに/または添付される図に描写されるプロセス、方法、およびアルゴリズムはそれぞれ、具体的かつ特定のコンピュータ命令を実行するように構成される、1つ以上の物理的コンピューティングシステム、ハードウェアコンピュータプロセッサ、特定用途向け回路、および/もしくは電子ハードウェアによって実行される、コードモジュールにおいて具現化され、それによって完全もしくは部分的に自動化され得る。例えば、コンピューティングシステムは、具体的コンピュータ命令とともにプログラムされた汎用コンピュータ(例えば、サーバ)または専用コンピュータ、専用回路等を含むことができる。コードモジュールは、実行可能プログラムにコンパイルおよびリンクされる、動的リンクライブラリ内にインストールされ得る、または解釈されるプログラミング言語において書き込まれ得る。いくつかの実装では、特定の動作および方法が、所与の機能に特有の回路によって実施され得る。
【0226】
さらに、本開示の機能性のある実装は、十分に数学的、コンピュータ的、または技術的に複雑であるため、(適切な特殊化された実行可能命令を利用する)特定用途向けハードウェアまたは1つ以上の物理的コンピューティングデバイスは、例えば、関与する計算の量もしくは複雑性に起因して、または結果を実質的にリアルタイムで提供するために、機能性を実施する必要があり得る。例えば、ビデオは、多くのフレームを含み、各フレームは、数百万のピクセルを有し得、具体的にプログラムされたコンピュータハードウェアは、商業的に妥当な時間量において所望の画像処理タスク(例えば、融合アーキテクチャを伴うCNN100を使用した眼画像セグメント化および品質推定値)または用途を提供するようにビデオデータを処理する必要がある。
【0227】
コードモジュールまたは任意のタイプのデータは、ハードドライブ、ソリッドステートメモリ、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、光学ディスク、揮発性もしくは不揮発性記憶装置、同一物の組み合わせ、および/または同等物を含む、物理的コンピュータ記憶装置等の任意のタイプの非一過性コンピュータ可読媒体上に記憶され得る。本方法およびモジュール(またはデータ)はまた、無線ベースおよび有線/ケーブルベースの媒体を含む、種々のコンピュータ可読伝送媒体上で生成されたデータ信号として(例えば、搬送波または他のアナログもしくはデジタル伝搬信号の一部として)伝送され得、種々の形態(例えば、単一もしくは多重化アナログ信号の一部として、または複数の離散デジタルパケットもしくはフレームとして)をとり得る。開示されるプロセスまたはプロセスステップの結果は、任意のタイプの非一過性有形コンピュータ記憶装置内に持続的もしくは別様に記憶され得る、またはコンピュータ可読伝送媒体を介して通信され得る。
【0228】
本明細書に説明される、および/または添付される図に描写されるフロー図における任意のプロセス、ブロック、状態、ステップ、もしくは機能性は、プロセスにおいて具体的機能(例えば、論理もしくは算術)またはステップを実装するための1つ以上の実行可能命令を含む、コードモジュール、セグメント、またはコードの一部を潜在的に表すものとして理解されたい。種々のプロセス、ブロック、状態、ステップ、または機能性は、組み合わせられる、再配列される、追加される、削除される、修正される、または別様に本明細書に提供される例証的実施例から変更されることができる。いくつかの実施形態では、付加的または異なるコンピューティングシステムもしくはコードモジュールが、本明細書に説明される機能性のいくつかまたは全てを実施し得る。本明細書に説明される方法およびプロセスはまた、任意の特定のシーケンスに限定されず、それに関連するブロック、ステップ、または状態は、適切な他のシーケンスで、例えば、連続して、並行して、またはある他の様式で実施されることができる。タスクまたはイベントが、開示される例示的実施形態に追加される、またはそれから除去され得る。さらに、本明細書に説明される実装における種々のシステムコンポーネントの分離は、例証を目的とし、全ての実装においてそのような分離を要求するものとして理解されるべきではない。説明されるプログラムコンポーネント、方法、およびシステムは、概して、単一のコンピュータ製品においてともに統合される、または複数のコンピュータ製品にパッケージ化され得ることを理解されたい。多くの実装変形例が、可能である。
【0229】
本プロセス、方法、およびシステムは、ネットワーク(または分散)コンピューティング環境において実装され得る。ネットワーク環境は、企業全体コンピュータネットワーク、イントラネット、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パーソナルエリアネットワーク(PAN)、クラウドコンピューティングネットワーク、クラウドソースコンピューティングネットワーク、インターネット、およびワールドワイドウェブを含む。ネットワークは、有線もしくは無線ネットワークまたは任意の他のタイプの通信ネットワークであり得る。
【0230】
本開示のシステムおよび方法は、それぞれ、いくつかの革新的側面を有し、そのうちのいかなるものも、本明細書に開示される望ましい属性に単独で関与しない、またはそのために要求されない。上記に説明される種々の特徴およびプロセスは、相互に独立して使用され得る、または種々の方法で組み合わせられ得る。全ての可能な組み合わせおよび副次的組み合わせが、本開示の範囲内に該当することが意図される。本開示に説明される実装の種々の修正が、当業者に容易に明白であり得、本明細書に定義される一般原理は、本開示の精神または範囲から逸脱することなく、他の実装に適用され得る。したがって、請求項は、本明細書に示される実装に限定されることを意図されず、本明細書に開示される本開示、原理、および新規の特徴と一貫する最も広い範囲を与えられるべきである。
【0231】
別個の実装の文脈において本明細書に説明されるある特徴はまた、単一の実装において組み合わせで実装されることができる。逆に、単一の実装の文脈において説明される種々の特徴もまた、複数の実装において別個に、または任意の好適な副次的組み合わせにおいて実装されることができる。さらに、特徴がある組み合わせにおいて作用するものとして上記に説明され、さらに、そのようなものとして最初に請求され得るが、請求される組み合わせからの1つ以上の特徴は、いくつかの場合では、組み合わせから削除されることができ、請求される組み合わせは、副次的組み合わせまたは副次的組み合わせの変形例を対象とし得る。いかなる単一の特徴または特徴のグループも、あらゆる実施形態に必要もしくは必須ではない。
【0232】
とりわけ、「〜できる(can)」、「〜し得る(could)」、「〜し得る(might)」、「〜し得る(may)」、「例えば(e.g.)」、および同等物等、本明細書で使用される条件文は、別様に具体的に記載されない限り、または使用されるような文脈内で別様に理解されない限り、概して、ある実施形態がある特徴、要素、および/またはステップを含む一方、他の実施形態がそれらを含まないことを伝えることが意図される。したがって、そのような条件文は、概して、特徴、要素、および/もしくはステップが、1つ以上の実施形態に対していかようにも要求されること、または1つ以上の実施形態が、著者の入力または促しの有無を問わず、これらの特徴、要素、および/もしくはステップが任意の特定の実施形態において含まれる、もしくは実施されるべきかどうかを決定するための論理を必然的に含むことを示唆することを意図されない。用語「〜を備える」、「〜を含む」、「〜を有する」、および同等物は、同義語であり、非限定的方式で包括的に使用され、付加的要素、特徴、行為、動作等を除外しない。また、用語「または」は、その包括的意味において使用され(およびその排他的意味において使用されず)、したがって、例えば、要素のリストを接続するために使用されると、用語「または」は、リスト内の要素のうちの1つ、いくつか、または全てを意味する。加えて、本願および添付される請求項で使用されるような冠詞「a」、「an」、および「the」は、別様に規定されない限り、「1つ以上の」もしくは「少なくとも1つ」を意味するように解釈されるべきである。
【0233】
本明細書で使用されるように、項目のリスト「〜のうちの少なくとも1つ」を指す語句は、単一の要素を含む、それらの項目の任意の組み合わせを指す。ある実施例として、「A、B、またはCのうちの少なくとも1つ」は、A、B、C、AおよびB、AおよびC、BおよびC、ならびにA、B、およびCを網羅することが意図される。語句「X、Y、およびZのうちの少なくとも1つ」等の接続文は、別様に具体的に記載されない限り、概して、項目、用語等がX、Y、またはZのうちの少なくとも1つであり得ることを伝えるために使用されるような文脈で別様に理解される。したがって、そのような接続文は、概して、ある実施形態が、Xのうちの少なくとも1つ、Yのうちの少なくとも1つ、およびZのうちの少なくとも1つがそれぞれ存在するように要求することを示唆することを意図されない。
【0234】
同様に、動作は、特定の順序で図面に描写され得るが、これは、望ましい結果を達成するために、そのような動作が示される特定の順序で、もしくは連続的順序で実施される、または全ての図示される動作が実施される必要はないと認識されるべきである。さらに、図面は、フローチャートの形態で1つ以上の例示的プロセスを図式的に描写し得る。しかしながら、描写されない他の動作も、図式的に図示される例示的方法およびプロセス内に組み込まれることができる。例えば、1つ以上の付加的動作が、図示される動作のいずれかの前に、その後に、それと同時に、またはその間に実施されることができる。加えて、動作は、他の実装において再配列される、または再順序付けられ得る。ある状況では、マルチタスクおよび並列処理が、有利であり得る。さらに、上記に説明される実装における種々のシステムコンポーネントの分離は、全ての実装におけるそのような分離を要求するものとして理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品においてともに統合される、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。加えて、他の実装も、以下の請求項の範囲内である。いくつかの場合では、請求項に列挙されるアクションは、異なる順序で実施され、依然として、望ましい結果を達成することができる。