(57)【要約】【課題】ショルダーハック攻撃やスマッジアタックに対して対応可能な３次元（３Ｄ）空中ハンドジェスチャを用いた生体ユーザ認証方法、システム及びプログラムを提供する。【解決手段】第一ユーザによる複数の３Ｄジェスチャサンプルを記録し、前記３Ｄジェスチャサンプルから平均ジェスチャＴを計算し、前記平均ジェスチャＴに対応するエラー許容値εを選択し、前記第一ユーザに対するジェスチャテンプレートとして前記平均ジェスチャＴ及び前記エラー許容値εを記憶し、認証のためにユーザから３Ｄジェスチャをキャプチャし、前記キャプチャされた３Ｄジェスチャと平均ジェスチャＴとの間の距離ｄを計算し、前記距離ｄがε以下であるとき前記ユーザを前記第一ユーザとして認証することにより前記ユーザはコンピュータデバイスのセキュアな特徴へのアクセスを獲得する。【選択図】図１
2015201174.tif 000002
【特許請求の範囲】
【請求項１】
深度センサ、１つもしくは複数のプロセッサ及びメモリを含み、前記メモリには前記１つもしくは複数のプロセッサによって実行される１つもしくは複数のプログラムが記憶されたコンピューティングデバイスが、
第一ユーザによる複数の３次元ジェスチャサンプルを記録し、前記３次元ジェスチャサンプルは前記第一ユーザにより選択されたジェスチャに対応し、其々記録された前記３次元ジェスチャサンプルの各々には、複数の特定身体部位について其々位置の時間変化を含み、
前記３次元ジェスチャサンプルから平均ジェスチャＴを計算し、
前記平均ジェスチャＴに対応するエラー許容値εを選択し、
前記第一ユーザに対するジェスチャテンプレートとして前記平均ジェスチャＴ及び前記エラー許容値εを記憶し、
認証のためにユーザから３次元ジェスチャをキャプチャし、前記キャプチャされた３次元ジェスチャには、複数の身体部位について位置の時間変化を含み、
前記キャプチャされた３次元ジェスチャと平均ジェスチャＴとの間の距離ｄを計算し、
前記距離ｄがε以下であるとき前記ユーザを前記第一ユーザとして認証することにより前記ユーザはコンピュータデバイスのセキュアな機能へのアクセスを獲得し、前記距離ｄがεよりも大きいとき前記ユーザを認証しない、
ユーザ認証方法。
【請求項２】
前記平均ジェスチャＴは前記３次元ジェスチャサンプルの平均として算出される請求項１記載のユーザ認証方法。
【請求項３】
前記平均ジェスチャＴは前記３次元ジェスチャサンプルの加重平均として算出される請求項１記載のユーザ認証方法。
【請求項４】
前記平均ジェスチャＴは前記３次元ジェスチャサンプルの真部分集合に基づき算出される請求項１記載のユーザ認証方法。
【請求項５】
前記エラー許容値の選択は、前記３次元ジェスチャサンプルの拡散度を測定する分散値を計算することを含み、
前記エラー許容値を前記計算された分散値に設定することをさらに含む、
請求項１〜請求項４の何れか１項記載のユーザ認証方法。
【請求項６】
前記３次元ジェスチャサンプルの拡散度の測定は距離計量を用い、
前記分散値の計算は前記距離計量を用いて、３次元ジェスチャサンプルのペア間の最大距離を計算することを含む、
請求項５記載のユーザ認証方法。
【請求項７】
前記距離計量に動的時間伸縮を用いる請求項６記載のユーザ認証方法。
【請求項８】
前記３次元ジェスチャサンプルの拡散度の測定は距離計量を用い、
前記分散値の計算は、距離計量を用いて、３次元ジェスチャサンプルと前記平均ジェスチャＴとの間の最大距離を計算することを含む、
請求項５記載のユーザ認証方法。
【請求項９】
前記エラー許容値の前記計算された分散値への設定は、前記分散値が予め定められた最小の分散値よりも大きく、かつ、予め定められた最大の分散値よりも小さいことを決定することをさらに含む請求項５〜請求項８の何れか１項記載のユーザ認証方法。
【請求項１０】
前記エラー許容値εの選択は、前記３次元ジェスチャサンプルの拡散度を計算することを含み、
前記拡散度が予め定められた最小の拡散値よりも小さいとき、
追加ジェスチャサンプルを記録し、
前記追加ジェスチャサンプルを用いて前記平均ジェスチャＴを再計算する、
ことをさらに含む、
請求項１〜９の何れか１項記載のユーザ認証方法。
【請求項１１】
前記平均ジェスチャＴの再計算は、前記追加ジェスチャサンプルと同様に、少なくとも前記３次元ジェスチャサンプルの部分集合を用いる請求項１０記載のユーザ認証方法。
【請求項１２】
前記エラー許容値εの選択は、前記３次元ジェスチャサンプルの拡散度を計算することを含み、
前記拡散度が予め定められた最大の拡散値よりも大きいとき、
追加ジェスチャサンプルを記録し、
前記追加ジェスチャサンプルを用いて前記平均ジェスチャＴを再計算する、
ことをさらに含む、
請求項１〜請求項９の何れか１項記載のユーザ認証方法。
【請求項１３】
前記距離ｄがエラー許容値ε以下であるとき、前記キャプチャされた３次元ジェスチャと少なくとも前記３次元ジェスチャサンプルの部分集合とに基づき計算された新たな平均Ｔ′による前記３次元ジェスチャサンプルを更新する、ことをさらに含む、請求項１〜請求項１２の何れか１項記載のユーザ認証方法。
【請求項１４】
其々のジェスチャサンプルの各々と其々身体部位の位置が記録された各々について、
前記其々の位置の時間変化について平均位置を計算し、
前記其々の時間変化における各位置から前記平均位置を除去することにより前記其々の場所における時間変化を修正し、
前記其々のジェスチャサンプルについて前記修正された時間変化を用いる、
ことをさらに含む、
請求項１〜請求項１３の何れか１項記載のユーザ認証方法。
【請求項１５】
其々のジェスチャサンプルの各々と其々身体部位の位置が記録された各々について、
前記其々の時間変化についてすべての位置を含む最小限の境界枠を認識し、
変換された位置の時間変化についての境界枠が予め定められたサイズを有するように、前記其々の時間変化において位置を変換することにより前記其々の位置の時間変化を修正し、
前記其々のジェスチャサンプルについて前記修正された時間変化を用いる、
ことをさらに含む、
請求項１〜請求項１３の何れか１項記載のユーザ認証方法。
【請求項１６】
其々のジェスチャサンプルの各々と其々身体部位の位置が記録された各々について、
位置の予め定められた数Ｎを持つよう前記位置の時間変化を標準化し、前記時間変化について最初及び最後の位置を用い、中間位置Ｎ−２を計算して補間する、
ことをさらに含む、
請求項１〜１５の何れか１項記載のユーザ認証方法。
【請求項１７】
前記ユーザがキャプチャされた３次元ジェスチャによって認証されなかったとき、前記セキュアな機能への前記ユーザへのアクセスを拒否する、ことをさらに含む、請求項１〜１６の何れか１項記載のユーザ認証方法。
【請求項１８】
前記ユーザがキャプチャされた３次元ジェスチャによって認証されなかったとき、代替の認証オプションを前記ユーザに与える、ことをさらに含む請求項１〜１６の何れか１項記載のユーザ認証方法。
【請求項１９】
深度センサと、
１つもしくは複数のプロセッサと、
メモリと、
前記メモリに記憶された前記１つもしくは複数のプロセッサによって実行される１つもしくは複数のプログラムと、
を含み、少なくとも１つの前記プログラムは、
第一ユーザによる複数の３次元ジェスチャサンプルを記録し、前記３次元ジェスチャサンプルは前記第一ユーザにより選択されたジェスチャに対応し、其々記録された前記３次元ジェスチャサンプルの各々には、複数の特定身体部位について其々位置の時間変化を含み、
前記３次元ジェスチャサンプルから平均ジェスチャＴを計算し、
前記平均ジェスチャＴに対応するエラー許容値εを選択し、
前記第一ユーザに対するジェスチャテンプレートとして前記平均ジェスチャＴ及び前記エラー許容値εを記憶し、
認証のためにユーザから３次元ジェスチャをキャプチャし、前記キャプチャされた３次元ジェスチャには、複数の身体部位について位置の時間変化を含み、
前記キャプチャされた３次元ジェスチャと平均ジェスチャＴとの間の距離ｄを計算し、
前記距離ｄがε以下であるとき前記ユーザを前記第一ユーザとして認証することにより前記ユーザはコンピュータデバイスのセキュアな機能へのアクセスを獲得し、前記距離ｄがεよりも大きいとき前記ユーザを認証しない、
命令を含む、
ユーザ認証システム。
【請求項２０】
第一ユーザによる複数の３次元ジェスチャサンプルを記録し、前記３次元ジェスチャサンプルは前記第一ユーザにより選択されたジェスチャに対応し、其々記録された前記３次元ジェスチャサンプルの各々には、複数の特定身体部位について其々位置の時間変化を含み、
前記３次元ジェスチャサンプルから平均ジェスチャＴを計算し、
前記平均ジェスチャＴに対応するエラー許容値εを選択し、
前記第一ユーザに対するジェスチャテンプレートとして前記平均ジェスチャＴ及び前記エラー許容値εを記憶し、
認証のためにユーザから３次元ジェスチャをキャプチャし、前記キャプチャされた３次元ジェスチャには、複数の身体部位について位置の時間変化を含み、
前記キャプチャされた３次元ジェスチャと平均ジェスチャＴとの間の距離ｄを計算し、
前記距離ｄがε以下であるとき前記ユーザを前記第一ユーザとして認証することにより前記ユーザはコンピュータデバイスのセキュアな機能へのアクセスを獲得し、前記距離ｄがεよりも大きいとき前記ユーザを認証しない、
処理をコンピュータに実行させるためのユーザ認証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示技術は、ユーザ認証方法、システム、及びプログラムに関する。
【背景技術】
【０００２】
パスワードや個人認証番号（ＰＩＮ）は、パーソナルコンピュータやモバイルコンピューティングデバイス、オンラインアカウントへのアクセスを獲得する最も広く用いられている方法である。広く用いられている方法であるため、ユーザに十分に理解されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】タリ（ＴＡＲＩ）、「アルファニューメリックとグラフィカルパスワードの知覚と現実のショルダーハックリスクについての比較（Ａ  Ｃｏｍｐａｒｉｓｏｎ  ｏｆ  Ｐｅｒｃｅｉｖｅｄ  ａｎｄ  Ｒｅａｌ  Ｓｈｏｕｌｄｅｒ−Ｓｕｒｆｉｎｇ  Ｒｉｓｋｓ  ｂｅｔｗｅｅｎ  Ａｌｐｈａｎｕｍｅｒｉｃ  ａｎｄ  Ｇｒａｐｈｉｃａｌ  Ｐａｓｓｗｏｒｄｓ）」、メリーランドボルティモアカウンティ大学情報システム部（Ｄｅｐｔ．ｏｆ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｙｓｔｅｍｓ，ＵＭＢＣ）、２００６年７月１２日〜１４日、頁１１
【非特許文献２】アヴィヴ（ＡＶＩＶ）、「スマートフォンタッチスクリーンでのスマッジアタック（Ｓｍｕｄｇｅ  Ａｔｔａｃｋｓ  ｏｎ  Ｓｍａｒｔｐｈｏｎｅ  Ｔｏｕｃｈ  Ｓｃｒｅｅｎｓ）」、ペンシルバニア大学コンピュータ・情報科学部（Ｄｅｐｔ．ｏｆ  Ｃｏｍｐｕｔｅｒ  ａｎｄ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｃｉｅｎｃｅ，Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｐｅｎｎｓｙｌｖａｎｉａ）、２０１０年８月９日、頁１２
【非特許文献３】サコエ（ＳＡＫＯＥ）、「発話音声認識の動的プログラミングアルゴリズム最適化（Ｄｙｎａｍｉｃ  Ｐｒｏｇｒａｍｍｉｎｇ  Ａｌｇｏｒｉｔｈｍ  Ｏｐｔｉｍｉｚａｔｉｏｎ  ｆｏｒ  Ｓｐｏｋｅｎ  Ｗｏｒｄ  Ｒｅｃｏｇｎｉｔｉｏｎ）」、アメリカ電気電子技術者協会、音響・音声・信号処理装置（ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ａｃｏｕｓｔｉｃｓ，Ｓｐｅｅｃｈ，ａｎｄ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ）、１９８７年２月、ＡＳＳＰ−２６、Ｎｏ．１
【非特許文献４】ティアン（ＴＩＡＮ）、キンライト（ＫｉｎＷｒｉｔｅ）、「キネクトを用いた手書きベース認証（Ｈａｎｄｗｒｉｔｉｎｇ−Ｂａｓｅｄ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｕｓｉｎｇ  Ｋｉｎｅｃｔ）」、ネットワークと分散システムセキュリティ２０周年シンポジウム（Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２０ｔｈ  Ａｎｎｕａｌ  Ｎｅｔｗｏｒｋ  ＆  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｓｙｓｔｅｍ  Ｓｅｃｕｒｉｔｙ  Ｓｙｍｐｏｓｉｕｍ（ＮＤＳＳ）、Ｓａｎ  Ｄｉｅｇｏ）、２０１３年４月２４日、頁１９
【非特許文献５】マウラー（ＭＡＵＲＥＲ）、ブロース（ＢｒｏＡｕｔｈ）、「３Ｄジェスチャベースの認証についての視覚フィードバックの様々なレベルの評価（Ｅｖａｌｕａｔｉｎｇ  Ｄｉｆｆｅｒｅｎｔ  Ｌｅｖｅｌｓ  ｏｆ  Ｖｉｓｕａｌ  Ｆｅｅｄｂａｃｋ  ｆｏｒ  ３Ｄ  Ｇｅｓｔｕｒｅ−Ｂａｓｅｄ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ）」、ミュンヘン大学メディア情報グループ（Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｍｕｎｉｃｈ，Ｍｅｄｉａ  Ｉｎｆｏｒｍａｔｉｃｓ  Ｇｒｏｕｐ）、２０１２年５月２１日〜２５日、頁４
【非特許文献６】シュクラン（ＳＨＵＫＲＡＮ）、「キネクトベースのジェスチャパスワード認識（Ｋｉｎｅｃｔ−Ｂａｓｅｄ  Ｇｅｓｔｕｒｅ  Ｐａｓｓｗｏｒｄ  Ｒｅｃｏｇｎｉｔｉｏｎ）」、基礎・応用科学オーストラリアジャーナル（Ａｕｓｔｒａｌｉａｎ  Ｊｏｕｒｎａｌ  ｏｆ  Ｂａｓｉｃ  ａｎｄ  Ａｐｐｌｉｅｄ  Ｓｃｉｅｎｃｅｓ）、２０１２年、６（８）：４９２−４９９、頁８
【非特許文献７】サエ‐バエ（ＳＡＥ−ＢＡＥ）、「マルチタッチディスプレイの認証についての新規アプローチ（Ａ  Ｎｏｖｅｌ  Ａｐｐｒｏａｃｈ  ｔｏ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ｏｎ  Ｍｕｌｔｉ−Ｔｏｕｃｈ  Ｄｅｖｉｃｅｓ）」、コンピュータヒューマンインタラクション、ニューヨーク大学（ＮＹＵ−Ｐｏｌｙ、Ｓｅｓｓｉｏｎ：Ｉ  Ｉ  ａｍ  Ｈｏｗ  Ｉ  Ｔｏｕｃｈ：Ａｕｔｈｅｎｔｉｃａｔｉｎｇ  Ｕｓｅｒｓ、ＣＨＩ）、２０１２年５月５日〜１０日、頁１０
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、知識ベースのシステムには欠点がある。例えば、あるシステムは、適切なセキュリティを確保するため、ユーザに複雑なパスワードを覚えることを求める。また、多くのパスワード保護デバイスやアカウントが進化するにつれ、ユーザは、複数のパスワードやパスワード変形を覚える必要があり、ログオンプロセスの心理的負担が増える。場合によっては、ユーザはセキュリティを無視して、パスワードのすべてを書き留める。
【０００５】
従前のパスワード入力はまた、“ショルダーハック”による攻撃に陥りやすい。この問題は、公衆の監視システムやモバイルデバイスの使用増加により悪化している。更には、従前のタッチベースのＰＩＮ入力スキームは、（攻撃者が他人のモバイルデバイスの近くに存在する場合、）攻撃者がタッチスクリーンの汚れによってＰＩＮや他のアクセスコードを推測することができる “スマッジアタック”による攻撃に陥りやすい。
【０００６】
ある生体認証システムは近距離では動作しないので、モバイルデバイスや人が座っている間は上手く動作しない。また、単一基準点を用いる生体認証は、セキュアで十分な一意性を提供することができない。ある生体認証システムはタッチスクリーンのジェスチャを用いる。そのようなシステムは２次元でのジェスチャに限られ、スクリーン内の動作に限られる。これは、小さなモバイルデバイスにおいてとりわけ制限される。また、そのようなシステムはスマッジアタックの影響を受けやすい。
【０００７】
本発明は、関連する知識ベースまたはジェスチャベースの認証スキームよりも高い正確性を持ち、ショルダーハック攻撃やスマッジアタックに対して対応可能な３Ｄ（３次元）空中ハンドジェスチャを用いた生体ユーザ認証方法、システム、及びプログラムを提供する。
【課題を解決するための手段】
【０００８】
本発明の第１の態様は、ユーザ認証方法であって、深度センサ、１つもしくは複数のプロセッサ及びメモリを含み、前記メモリには前記１つもしくは複数のプロセッサによって実行される１つもしくは複数のプログラムが記憶されたコンピューティングデバイスが、第一ユーザによる複数の３次元ジェスチャサンプルを記録し、前記３次元ジェスチャサンプルは前記第一ユーザにより選択されたジェスチャに対応し、其々記録された前記３次元ジェスチャサンプルの各々には、複数の特定身体部位について其々位置の時間変化を含み、前記３次元ジェスチャサンプルから平均ジェスチャＴを計算し、前記平均ジェスチャＴに対応するエラー許容値εを選択し、前記第一ユーザに対するジェスチャテンプレートとして前記平均ジェスチャＴ及び前記エラー許容値εを記憶し、認証のためにユーザから３次元ジェスチャをキャプチャし、前記キャプチャされた３次元ジェスチャには、複数の身体部位について位置の時間変化を含み、前記キャプチャされた３次元ジェスチャと平均ジェスチャＴとの間の距離ｄを計算し、前記距離ｄがε以下であるとき前記ユーザを前記第一ユーザとして認証することにより前記ユーザはコンピュータデバイスのセキュアな機能へのアクセスを獲得し、前記距離ｄがεよりも大きいとき前記ユーザを認証しない。
【０００９】
本発明の第２の態様は、第１の態様のユーザ認証方法であって、前記平均ジェスチャＴは前記３次元ジェスチャサンプルの平均として算出される。
【００１０】
本発明の第３の態様は、第１の態様のユーザ認証方法であって、前記平均ジェスチャＴは前記３次元ジェスチャサンプルの加重平均として算出される。
【００１１】
本発明の第４の態様は、第１の態様のユーザ認証方法であって、前記平均ジェスチャＴは前記３次元ジェスチャサンプルの真部分集合に基づき算出される。
【００１２】
本発明の第５の態様は、第１〜第４の何れかの態様のユーザ認証方法であって、前記エラー許容値の選択は、前記３次元ジェスチャサンプルの拡散度を測定する分散値を計算することを含み、前記エラー許容値を前記計算された分散値に設定することをさらに含む。
【００１３】
本発明の第６の態様は、第５の態様のユーザ認証方法であって、前記３次元ジェスチャサンプルの拡散度の測定は距離計量を用い、前記分散値の計算は前記距離計量を用いて、３次元ジェスチャサンプルのペア間の最大距離を計算することを含む。
【００１４】
本発明の第７の態様は、第６の態様のユーザ認証方法であって、前記距離計量に動的時間伸縮を用いる。
【００１５】
本発明の第８の態様は、第５の態様のユーザ認証方法であって、前記３次元ジェスチャサンプルの拡散度の測定は距離計量を用い、前記分散値の計算は、距離計量を用いて、３次元ジェスチャサンプルと前記平均ジェスチャＴとの間の最大距離を計算することを含む。
【００１６】
本発明の第９の態様は、第５〜第８の何れかの態様のユーザ認証方法であって、前記エラー許容値の前記計算された分散値への設定は、前記分散値が予め定められた最小の分散値よりも大きく、かつ、予め定められた最大の分散値よりも小さいことを決定することをさらに含む。
【００１７】
本発明の第１０の態様は、第１〜第９の何れかの態様のユーザ認証方法であって、前記エラー許容値εの選択は、前記３次元ジェスチャサンプルの拡散度を計算することを含み、前記拡散度が予め定められた最小の拡散値よりも小さいとき、追加ジェスチャサンプルを記録し、前記追加ジェスチャサンプルを用いて前記平均ジェスチャＴを再計算する、ことをさらに含む。
【００１８】
本発明の第１１の態様は、第１０の態様のユーザ認証方法であって、前記平均ジェスチャＴの再計算は、前記追加ジェスチャサンプルと同様に、少なくとも前記３次元ジェスチャサンプルの部分集合を用いる。
【００１９】
本発明の第１２の態様は、第１〜第９の何れかの態様のユーザ認証方法であって、前記エラー許容値εの選択は、前記３次元ジェスチャサンプルの拡散度を計算することを含み、前記拡散度が予め定められた最大の拡散値よりも大きいとき、追加ジェスチャサンプルを記録し、前記追加ジェスチャサンプルを用いて前記平均ジェスチャＴを再計算する、ことをさらに含む。
【００２０】
本発明の第１３の態様は、第１〜第１２の何れかの態様のユーザ認証方法であって、前記距離ｄがエラー許容値ε以下であるとき、前記キャプチャされた３次元ジェスチャと少なくとも前記３次元ジェスチャサンプルの部分集合とに基づき計算された新たな平均Ｔ′による前記３次元ジェスチャサンプルを更新する、ことをさらに含む。
【００２１】
本発明の第１４の態様は、第１〜第１３の何れかの態様のユーザ認証方法であって、其々のジェスチャサンプルの各々と其々身体部位の位置が記録された各々について、前記其々の位置の時間変化について平均位置を計算し、前記其々の時間変化における各位置から前記平均位置を除去することにより前記其々の場所における時間変化を修正し、前記其々のジェスチャサンプルについて前記修正された時間変化を用いる、ことをさらに含む。
【００２２】
本発明の第１５の態様は、第１〜第１３の何れかの態様のユーザ認証方法であって、其々のジェスチャサンプルの各々と其々身体部位の位置が記録された各々について、前記其々の時間変化についてすべての位置を含む最小限の境界枠を認識し、変換された位置の時間変化についての境界枠が予め定められたサイズを有するように、前記其々の時間変化において位置を変換することにより前記其々の位置の時間変化を修正し、前記其々のジェスチャサンプルについて前記修正された時間変化を用いる、ことをさらに含む。
【００２３】
本発明の第１６の態様は、第１〜第１５の何れかの態様のユーザ認証方法であって、其々のジェスチャサンプルの各々と其々身体部位の位置が記録された各々について、位置の予め定められた数Ｎを持つよう前記位置の時間変化を標準化し、前記時間変化について最初及び最後の位置を用い、中間位置Ｎ−２を計算して補間する、ことをさらに含む。
【００２４】
本発明の第１７の態様は、第１〜第１６の何れかの態様のユーザ認証方法であって、前記ユーザがキャプチャされた３次元ジェスチャによって認証されなかったとき、前記セキュアな機能への前記ユーザへのアクセスを拒否する、ことをさらに含む。
【００２５】
本発明の第１８の態様は、第１〜第１６の何れかの態様のユーザ認証方法であって、前記ユーザがキャプチャされた３次元ジェスチャによって認証されなかったとき、代替の認証オプションを前記ユーザに与える。
【００２６】
本発明の第１９の態様は、ユーザ認証システムであって、深度センサと、１つもしくは複数のプロセッサと、メモリと、前記メモリに記憶された前記１つもしくは複数のプロセッサによって実行される１つもしくは複数のプログラムと、を含み、少なくとも１つの前記プログラムは、第一ユーザによる複数の３次元ジェスチャサンプルを記録し、前記３次元ジェスチャサンプルは前記第一ユーザにより選択されたジェスチャに対応し、其々記録された前記３次元ジェスチャサンプルの各々には、複数の特定身体部位について其々位置の時間変化を含み、前記３次元ジェスチャサンプルから平均ジェスチャＴを計算し、前記平均ジェスチャＴに対応するエラー許容値εを選択し、前記第一ユーザに対するジェスチャテンプレートとして前記平均ジェスチャＴ及び前記エラー許容値εを記憶し、認証のためにユーザから３次元ジェスチャをキャプチャし、前記キャプチャされた３次元ジェスチャには、複数の身体部位について位置の時間変化を含み、前記キャプチャされた３次元ジェスチャと平均ジェスチャＴとの間の距離ｄを計算し、前記距離ｄがε以下であるとき前記ユーザを前記第一ユーザとして認証することにより前記ユーザはコンピュータデバイスのセキュアな機能へのアクセスを獲得し、前記距離ｄがεよりも大きいとき前記ユーザを認証しない、命令を含む。
【００２７】
本発明の第２０の態様は、ユーザ認証プログラムであって、第一ユーザによる複数の３次元ジェスチャサンプルを記録し、前記３次元ジェスチャサンプルは前記第一ユーザにより選択されたジェスチャに対応し、其々記録された前記３次元ジェスチャサンプルの各々には、複数の特定身体部位について其々位置の時間変化を含み、前記３次元ジェスチャサンプルから平均ジェスチャＴを計算し、前記平均ジェスチャＴに対応するエラー許容値εを選択し、前記第一ユーザに対するジェスチャテンプレートとして前記平均ジェスチャＴ及び前記エラー許容値εを記憶し、認証のためにユーザから３次元ジェスチャをキャプチャし、前記キャプチャされた３次元ジェスチャには、複数の身体部位について位置の時間変化を含み、前記キャプチャされた３次元ジェスチャと平均ジェスチャＴとの間の距離ｄを計算し、前記距離ｄがε以下であるとき前記ユーザを前記第一ユーザとして認証することにより前記ユーザはコンピュータデバイスのセキュアな機能へのアクセスを獲得し、前記距離ｄがεよりも大きいとき前記ユーザを認証しない処理を、コンピュータに実行させる。
【発明の効果】
【００２８】
関連する知識ベースまたはジェスチャベースの認証スキームよりも高い正確性を持ち、ショルダーハック攻撃やスマッジアタックに対して対応が可能となる。
【図面の簡単な説明】
【００２９】
【図１】開示技術の動作についてある実装環境を示す。
【図２】ある実装によるコンピューティングデバイスを示すブロック図である。
【図３】ある実装による身体ジェスチャを用いた認証について全体的なプロセスを示すフローチャートである。
【図４】ある実装による未処理のジェスチャをどのように標準化フォーマットに適合させるかを示すフローチャートである。
【図５Ａ】ある実装による空中ジェスチャによりユーザを認証するプロセスを示す。
【図５Ｂ】ある実装による空中ジェスチャによりユーザを認証するプロセスを示す。
【図５Ｃ】ある実装による空中ジェスチャによりユーザを認証するプロセスを示す。
【図５Ｄ】ある実装による空中ジェスチャによりユーザを認証するプロセスを示す。
【発明を実施するための形態】
【００３０】
本開示は、短距離深度カメラによって追跡され、コンピューティングデバイス付近で行われた空中ボディジェスチャ（例えば、ハンドジェスチャ）を用いた新規認証システムについて説明する。ユーザの手の特定箇所（例えば、指先や手中央）を追跡することにより、ユーザは個人認証ジェスチャを生成し、それを生体セキュリティレイヤとして用いることができる。開示システムは、認証について高い正確性を期すため、説明するユーザの生体（例えば、どのようにユーザが現われるか）、ユーザの動作スタイル（例えば、どのようにユーザが振る舞うか）、ジェスチャベースの認証秘匿（例えば、ユーザは何を知るか）を統合する。ジェスチャベースの認証は、知識ベースの認証の標準に加えまたはその代わりに用いることができる。多くの実装は片手のジェスチャを利用するが、他の実装は、手に加えまたはその代わりに（例えば、両手、手と腕、顔等）他の身体部位を利用する。
【００３１】
ある実装は、関連する知識ベースまたはジェスチャベースの認証スキームよりも高い正確性を持つ。また、開示の実装はショルダーハック攻撃に対してより対応できる。さらに、開示の認証技術はタッチレスであるため、スマッジアタックに対して本質的に対応ができる。
【００３２】
本開示には、（１）深度センサを用いたジェスチャ入力データのセグメント化、（２）、ジェスチャデータの前処理と特徴ベクトルの生成（３）登録データのジェスチャテンプレートの構成、（４）ジェスチャ入力の時間変化によるジェスチャテンプレートの更新、の技術を含む。
【００３３】
ある実装では、深度センサはコンピューティングデバイスに備っている。ある実装では、深度センサはコンピューティングデバイスの一部として統合されている。ここで用いられる通り、深度センサは、関連付けられたドライバソフトウエアを用いてオブジェクトの３Ｄ位置を決定するために、用いられるデータを生成するどのようなデバイスであってもよい。適切なドライバソフトウエアを用いるときには、例えば、ビデオカメラやビデオセンサまたはイメージセンサが、深度センサであってよい。コンピューティングデバイスには、デスクトップコンピュータやラップトップコンピュータ、スマートフォン等を含む。深度センサは、デバイス付近でユーザが行ったハンドジェスチャを観測することができる。ユーザは平均化された複数のサンプルを用いて“ジェスチャパスワード”を一般に生成し、ジェスチャパスワードは後にユーザ認証に用いられる。
【００３４】
ある実装では、ユーザはジェスチャパスワードの生成を選択し、ジェスチャの記録が開始されると特定の振る舞いを行う。ある実装では、記録はユーザの手中央がデバイスから予め定められた閾値距離Ｄを通過したときに開始する。ある実装では、記録は、閾値Ｄを交差したユーザの手を表すポイントクラウドの回数が予め定められた回数ｑを上回ったときに開始する。ある実装では、ジェスチャの記録は、例えば最初に開くといった、特定の手形状に基づき開始する。実装に応じて、ジェスチャの記録は、一般に類似の方法で停止する。例えば、ジェスチャの記録は、上述の状況がユーザによって続行が終了したときに停止する。実装は、一般にジェスチャに対して時間制限を課す。記録は、特定の手のポイント（例えば、指先、手中央や関節）の３Ｄ位置の時間変化を記憶する。
【００３５】
ジェスチャベースの認証を許可するために、ユーザは最初にシステムで登録する必要がある。登録時に、ユーザは自身で選択した認証ジェスチャについて複数のジェスチャサンプルを入力する。ある実装は３回要求するが、他の実装はそれ以上要求する。ある実装では、サンプル数はサンプル供給のバリエーションに依存する（より一貫したサンプルであるほど要求されるサンプル数は少なくなる）。各登録ジェスチャは、後述する図４に示される標準的なフォーマットに適合される。登録プロセスは、認証時の比較で後に用いられるだろうジェスチャテンプレートを構築するために、サンプルジェスチャを用いる。ある実装は、記憶されたテンプレートを用いて認証時に実行されるジェスチャと比較するため、距離関数を用いる。ある実装は、動的時間伸縮（ＤＴＷ）距離関数を用いる。ある実装は、ロジスティック回帰、サポートベクタマシン（ＳＶＭ）、隠れマルコフモデル（ＨＭＭ）またはニューラルネットワークといった機械学習への入力としてジェスチャサンプルを用いる。この場合、“距離”関数は、実行されたジェスチャがサンプルジェスチャから構成されたモデルとマッチする確率を効率的に決定するモデルコスト関数として定義することができる。
【００３６】
記憶されたテンプレートには、ターゲットジェスチャＴ（例えば、登録時に実行されたジェスチャの平均）と、マッチすると数えるべき実行されたジェスチャがどれくらいターゲットに近いかを特定する最大許容値εの両方を含む。ある実装は、サンプルの拡散または分散に基づき許容値εを計算する。すなわち、サンプルがより信頼できるときには許容値には小さな値が設定されるが、サンプルの変化が大きいと認証時の許容値は同様に大きくなる。
【００３７】
ある実装では、許容値はジェスチャサンプルのどれか２つの間の最大距離と等しく設定される。ある実装では、許容値はサンプルのどれかと平均Ｔとの間の最大値である。ある例において、与えられたサンプルが互いにとても近いと、小さすぎる許容値εが導かれることになる。小さすぎる許容値は認証時により多くの誤った拒否を導くため、実装は、一般的にユーザにジェスチャの再実行（または異なるジェスチャの選択）を促す。他の例では、サンプルは分散しすぎており、大きすぎる許容値εになる。しかしながら、大きすぎる許容値は、他人にとって適切な認証を得る“偽造”ジェスチャの実行がとても容易になる。それゆえ、実装は一般的に許容値が小さすぎる場合と同様にジェスチャの再実行を要求する。
【００３８】
機械学習分類を用いるある実装では、記憶されたテンプレートはモデルを含むが、そのモデルには特定のジェスチャターゲットＴまたは許容値εのどちらも含まなくてもよい。特定の機械学習分類に依存したモデルはいくつかのパラメタを含んでもよい（例えば、５または１０のパラメタ）。ある実装では、機械学習モデルは標準化されたジェスチャサンプルから構成されており、図４に関して以下に述べる技術を用いる。ある実装では、機械学習モデルの構築には、図４に示された適合作業のすべてを用いない。一旦モデルが構成されると、各実行されたジェスチャは、マッチする確率を決定するために、モデルと比較される。その確率が閾値を超えると、実行されたジェスチャはマッチしたと示される。ある実装では、機械学習モデルは認証のために実行された新たなジェスチャサンプルに基づき定期的に更新される。
【００３９】
ジェスチャ入力の時間変化を処理するために、ある実装は、追加サンプルを用いて定期的にユーザのジェスチャテンプレートを更新する。例えば、ターゲットＴと許容値εは認証時に入力されたジェスチャを用いて更新することができる（例えば、良くマッチングするジェスチャ入力を用いる）。ある実装では、新たなジェスチャサンプルが、認証時に記憶されたジェスチャサンプルのセットに追加され、サンプルセットは時間が経つにつれだんだん大きくなる。ある実装では、最も古いジェスチャサンプルは、新たなサンプルが追加されたときに取り除かれる。
【００４０】
ある実装では、ユーザを認証するために、ユーザはジェスチャを実行し、ジェスチャはジェスチャとターゲットＴとの間の距離ｄを計算することによってテンプレート(Ｔ、ε)と比較がされる。ｄ＜εであるときジェスチャは認証に受け入られ、そうでないときジェスチャは拒否される。ある実装では、実行されたジェスチャは、実行されたジェスチャがマッチする確率を推定するために、サンプルジェスチャから構成された機械学習モデルと比較される。その確率が予め定められたある閾値を超えると、ジェスチャは認証に受け入られる。
【００４１】
ジェスチャ入力の試みが繰り返されることによる認証システムのセキュリティ破壊の招来を防ぐために、ある実装は連続するジェスチャ試みの失敗数を制限する。例えば、ジェスチャ認証の失敗が３回連続したら、ある実装はパスワードやＰＩＮ入力といったより従来の認証メカニズムに戻す。
【００４２】
ある実装に従って、方法はユーザを認証する。その方法は深度センサ、１つもしくは複数のプロセッサ及びメモリを具備するコンピューティングデバイスで実行される。ユーザ認証時に、デバイスは、第一ユーザによって実行され深度センサにキャプチャされた複数の３Ｄジェスチャサンプルを記録する。ジェスチャサンプルは第一ユーザに選択された空中ジェスチャに対応する。記録されたジェスチャサンプルの各々は、特定の身体部位（例えば、指先や手中央）の複数に対する位置の時間変化を含む。デバイスはジェスチャサンプルから平均ジェスチャＴを計算し、Ｔに対応するエラー許容値εを選択する。デバイスは平均ジェスチャＴとエラー許容値εとを第一ユーザのジェスチャテンプレートとして記憶する。
【００４３】
次に、第二ユーザが認証のためにジェスチャを実行し、コンピューティングデバイスのデータやセキュアな機能へアクセスする。第二ユーザは第一ユーザであるかもしれないしそうでないかもしれない。深度センサは第二ユーザから３Ｄジェスチャをキャプチャし、キャプチャされた３Ｄジェスチャは複数の身体部位に対する位置の時間変化を含む。デバイスは、キャプチャされた３Ｄジェスチャと平均ジェスチャＴとの間の距離ｄを計算する。距離ｄがε以下であるとき、第二ユーザは第一ユーザとして認証され、コンピューティングデバイスは、第二ユーザに、コンピューティングデバイスの１つもしくは複数のデータまたはセキュアな機能へのアクセスを与える。一方、距離ｄがεよりも大きいとき、第二ユーザは認証されず、従ってコンピューティングデバイスのデータまたはセキュアな機能へのアクセスが拒否される。
【００４４】
ある実装では、エラー許容値はジェスチャサンプルの拡散を表す分散値を計算することにより選択され、設定されたエラー許容値は計算された分散値になる。ある実装では、測定されるジェスチャサンプルの拡散に距離計量を用いる。ある実装では、距離計量に動的時間伸縮を用いる。ある実装では、距離計量に、機械学習モデルに基づきモデルコスト機能を用いる。ある実装では、分散値はジェスチャサンプルのペア間の最大距離である。ある実装では、分散値はジェスチャサンプルと平均ジェスチャＴとの間の最大距離である。
【００４５】
ある実装では、分散値が計算されるエラー許容値の設定には、更に分散値が予め定められた最小分散よりも大きく、予め定められた最大分散以下であることの決定を含む。
【００４６】
ある実装では、ジェスチャサンプルのセットは分散が特定範囲外であるとき拒否される。ある実装は、最小の分散値を特定し、サンプルセットは、分散値がその最小値を下回るとき拒否される。ある実装は、最大分散値を特定し、分散値が特定した最大値よりも大きいときにサンプルセットを拒否する。サンプルセットが拒否されたとき、ある実装はすべてのサンプルを処分し、ユーザにジェスチャサンプルの再入力（新たなジェスチャのためになる）を促す。他のある実装では、ユーザは同じジェスチャのために追加のジェスチャサンプルの入力を試みる。それら実装のいくつかにおいて、１または複数のオリジナルのジェスチャサンプルは廃棄されてもよい。追加のジェスチャサンプルがキャプチャされた後、平均ジェスチャが再計算される。
【００４７】
ある実装では、記憶されたジェスチャテンプレートが認証時にユーザによって実行されたジェスチャに基づき定期的に更新される。
【００４８】
開示の実装は、他の認証システム以上に多くの利点を有する。その利点には同時に複数の区別できる身体部位の追跡（単一センサーを用いて）を含み、それは単体の身体部位を追跡するよりもより一層セキュアである。また、３Ｄで行われた動きは、選択されたジェスチャに多くの変化を与えるため、よりセキュアである。さらに、ジェスチャ認証の動きであるため、処理はシンプルな身体認証よりもより動的である（例えば、人には１つの顔しかないが、人は多くの可変なジェスチャ実行の選択が可能である）。上述の通り、空中でジェスチャを実行するため、スマッジアタックの対象となることはない。デバイスに接触しないことは、高度な技術開発向けのクリーンルーム環境、衛生が重要な関心である医療施設、台所または、人の手が汚れていてコンピューティングデバイスに触ることができないワークショップで他の利点がある。
【００４９】
認証に空中３Ｄジェスチャを用いることは、（例えば、網膜スキャンと比較して）無侵襲である事実を含むことでも利点がある。あるユーザはまた他の認証技術よりも楽しめるジェスチャ実行を見つける。あるユーザはまたパスワードやＰＩＮを入力するよりもより自然なジェスチャを見つける。またあるユーザは簡単に覚えることのできるジェスチャを見つける。これはセキュアなパスワードを要求する環境においては特に重要である。一般的に、セキュアなパスワード（例えば、シンプルな言葉を使えない、大文字や特別な文字、数字を含む必要がある）を要求することは覚えることを難しくする。パスワードでない、空中でのジェスチャはまた生体計測である。例えば、人の身体部位の関連する位置は人のユニークな身体に基づく。本質的にジェスチャを用いることは、人の身体固有の生物計測の特性やユニークな動きを構成する人の創造性を組み合わせる。
【００５０】
図１は、本発明の動作についてある実装環境を例示する。図１では、ユーザは深度センサ１０２を含むコンピューティングデバイス１００を用いる。ある実装では、深度センサ１０２は例示されているコンピューティングデバイス１００に備わっているが、他の実装では深度センサ１０２はコンピューティングデバイスの内蔵部品である。ある実装では、デバイスのシングルイメージセンサが、写真や動画を撮影するため、及び深度センサとして、の両方の機能を有する。ある実装は、認証にハンドジェスチャを用いるので、深度センサ１０２はユーザの手１０６の空中での動作を追跡する。特に、ある実装は、ユーザの手中央１０８及び指先位置１０４の動きを追跡する。ある実装は、同様に１つもしくは複数の関節位置１１０を追跡する。もちろん、これは図１に示される関節や親指や人差し指の接合部に限られるものではない。つまり、識別可能な関節や接合部であれば認証ジェスチャに用いることができる。ある実装は、ホクロやタトゥーのような独特の身体特徴を追跡することもできる。
【００５１】
ある実装では、ジェスチャは、手１０６がコンピューティングデバイス１００（またはセンサ１０２）から予め定められた閾値距離Ｄ１１２を交差したときに開始し、終了する。ある実装では、閾値Ｄの交差はユーザの手中央１０８に基づく。ある実装では、閾値Ｄの交差は、閾値Ｄを交差する追跡された身体位置の数に基づく。例えば、手中央１０８と５本の指先１０４を追跡する認証システムでは、ジェスチャはその６つの追跡ポイントのうち４つが閾値を交差したときに開始し終了してもよい。他の実装では、ジェスチャは、拳を握る、開くといった特定の身体形状に基づき開始し、終了する。一般的には、同様の開始や終了のトリガーは、登録や認証において用いられる。しかしながら、ある実装は、認証時に長いジェスチャパタンを追跡し、記憶されたテンプレートと部分集合のマッチングを実行する。
【００５２】
図２は、ある実装によるコンピューティングデバイス１００を例示するブロック図である。コンピューティングデバイス１００は、デスクトップコンピュータやラップトップコンピュータ、深度センサ１０２を備えたモバイルデバイス、深度センサ１０２が搭載もしくは内蔵された他のコンピューティングデバイスである。コンピューティングデバイス１００は、一般的には１つもしくは複数の処理ユニット（ＣＰＵ）２０２、１つもしくは複数のネットワークや他の通信インターフェイス２０４、メモリ２１４、及びこれらの構成要素を相互に接続する１つもしくは複数の通信バス２１２を含む。通信バス２１２は、システム構成要素間の通信を相互に接続し制御する回路（チップセットともいう）を含んでいてもよい。コンピューティングデバイス１００は、ディスプレイデバイス２０８及び入力デバイス／機構２１０（例えば、キーボード、マウス、タッチスクリーン、物理的なボタンなど）から構成されるユーザインターフェイス２０６を備える。コンピューティングデバイスは、身体動作の追跡やキャプチャに用いられる深度センサ１０２を含む。
【００５３】
メモリ２１４は、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭもしくは他のランダムアクセスソリッドステートメモリデバイスなどの高速ランダムアクセスメモリを含む。すなわち、１つもしくは複数の磁気ディスクストレージデバイス、光ディスクストレージデバイス、フラッシュメモリデバイスもしくは他の不揮発性ソリッドステートストレージデバイスなどの不揮発性メモリを含んでもよい。メモリ２１４は、ＣＰＵ２０２から離隔して配置される１つもしくは複数のストレージデバイスを含んでいてもよいが、必須ではない。メモリ２１４、もしくは、代替的に、メモリ２１４の不揮発性メモリデバイスは、コンピュータ可読記録媒体を含む。ある実装では、メモリ２１４は以下のプログラム、モジュール及びデータ構造もしくはプログラム、モジュール及びデータ構造のサブセットを記憶する。
●オペレーティングシステム２１６。オペレーティングシステム２１６は、様々な基本システムサービスを扱うためのプロシージャ及びハードウェア依存タスクを実行するためのプロシージャを含む。
●通信モジュール２１８。通信モジュール２１８は、（有線もしくは無線の）１つもしくは複数の通信インターフェイス２０４及びインターネット、他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンネットワークなどの１つもしくは複数の通信ネットワークを介して他のコンピュータシステムとコンピューティングデバイス１００とを接続するために使用される。
●ユーザインターフェイスモジュール２２０。ユーザインターフェイスモジュール２２０は、入力デバイス２１０を介してユーザからコマンドを受信し、ディスプレイデバイス２０８のユーザインターフェイスオブジェクトを生成する。
●ウェブブラウザ２２２。ウェブブラウザ２２２は、リソース、ウェブページ及びウェブアプリケーションへの通信ネットワークを介したユーザのアクセスを可能とする。
●深度センサドライバ２２４。深度センサドライバ２２４は、深度センサ１０２から未処理のデータを収集する様々なハードウェアの特定のプロシージャを含み、そのデータを、有意なフォーマットで、他のプロシージャまたはプログラムに提供する。
●距離計算モジュール２２６。距離計算モジュール２２６は、２つの記録されたジェスチャ間（例えば、身体部位の位置における時間変化）の“距離”（例えば、差異）を計算する。ある実装では、距離計算モジュール２２６は、動的時間伸縮（ＤＴＷ）アルゴリズムを実行する距離計量を用いる。ある実装では、距離計量は、単体の身体部位に対する位置の時間変化を比較し、様々な追跡された身体部位の距離を後に結合（例えば、追加）する。他の実装では、距離計量は、単体の集合計算の一部として複数の時間変化間の距離を計算する。
●ジェスチャキャプチャモジュール２２８。ジェスチャキャプチャモジュール２２８は、深度センサ１０２（もしくは深度センサドライバ２２４）からデータを受信し、データを例えばデータベース２３８に記憶する。ある実装では、ジェスチャキャプチャモジュール２２８は記憶する前に適合モジュール２３０に１つもしくは複数のプロシージャを呼び出す。ある実装では、ジェスチャキャプチャモジュール２２８は未処理キャプチャデータ２４０を記憶し、適合モジュール２３０を呼び出した後に適合したジェスチャデータ２４２を記憶する。
●適合モジュール２３０。適合モジュール２３０は、未処理のジェスチャデータを標準化したフォーマットに適合させる。詳細は、図４を用いて以下に記載される。
●登録モジュール２３２。登録モジュール２３２は認証に用いられるジェスチャをユーザに設定させる。登録モジュール２３２の詳細は、図３を用いて以下に記載される。
●認証モジュール２３４。認証モジュール２３４は、ユーザジェスチャを受信し、実行されたジェスチャが記憶されたテンプレート２４４とマッチするかどうかを決定する。ユーザが認証されたとき、認証モジュール２３４は、コンピューティングデバイス１００の１つもしくは複数のセキュアな機能またはデータ２３６へのアクセスをユーザに許可する（例えば、一般的なコンピューティングデバイスへのアクセスまたは特定のセキュアな文書へのアクセスを許可する）。認証モジュール２３４の詳細は、図３を用いて以下に記載される。
●１つまたは複数のデータベース２３８。データベース２３８は、ソフトウェアモジュール２２６、２３０、２３２そして２３４によって用いられるデータが記憶される。
●データベース２３８は、認証から、標準化したフォーマットには適合していない未処理のジェスチャデータ２４０を記憶する。
●データベース２３８は、認証から、標準化したフォーマットにある適合したジェスチャデータ２４２を記憶する。詳細は、図４を用いて、以下に記載される。
●データベース２３８は、適合したジェスチャデータ２４２に基づき計算した、ジェスチャサンプルの拡散または変化を表す分散値２４３を記憶する。
●データベース２３８は、登録時に構築され、認証時に実行されたジェスチャと比較される、１つまたは複数のジェスチャテンプレート２４４を記憶する。ジェスチャテンプレートにはユーザＩＤ２４６を含んでもよく、２人またはそれ以上の別ユーザが同じコンピューティングデバイス１００にアクセスするときに用いられることができる。各テンプレート２４４はジェスチャターゲット２４８を含み、認証時に実行されたジェスチャと比較される。パスワードとは異なり、ジェスチャにはある固有変化があるため、各テンプレート２４４は、どれほどターゲットから距離があり、マッチングに資するかを特定するエラー許容値２５０を含む。エラー許容値２５０は、一般には計算された分散値２４３に基づく（例えば、エラー許容値２５０＝分散２４３）。ターゲットからの距離は、距離計算モジュール２２６によって計測される。
●データベース２３８は、認証ログ２５２を含み、各認証の試みを追跡する。各認証の試みでは、ログ２５２は実行されたジェスチャ２５４を記憶し、実行されたジェスチャ２５４は、未処理のジェスチャデータ、標準化されたフォーマット、及びその両方で記憶されてもよい。ある実装は、ユーザが認証のために実行したジェスチャの日付／時間２５６を記憶する。ログはまた、ユーザが認証されたかどうかを示す“認証取得”フラグ２５８も含んでもよい。ログはまた認証の試みのためにユーザＩＤ２６０を記憶する。ある実装では、ユーザＩＤは認証の試みが成功したときにのみログに出現させ、その場合のログでのユーザＩＤ２６０はマッチングテンプレートのユーザＩＤ２４６である。ある実装では、ターゲットユーザは認証ジェスチャが実行される前に特定され、ターゲットユーザのユーザＩＤ２６０は、認証の試みが成功したか否かに関わらずログに記憶される。
【００５４】
上記識別された各構成要素は、１つもしくは複数の上記メモリデバイスに記憶されていてもよい。また、上記識別された各構成要素は、上記機能を実行するための命令セットに対応してもよい。命令セットは、１つもしくは複数のプロセッサによって実行され得る（例えば、ＣＰＵ２０２）。上記識別されたモジュールもしくはプログラム（すなわち、命令セット）は別個のソフトウェアプログラム、プロシージャ、もしくはモジュールとして実装されなくてもよい。これらのモジュールの様々なサブセットが結合されてもよいし、様々な実装において再構成されてもよい。ある実装では、メモリ２１４は上記識別されたモジュール及びデータ構造のサブセットを記憶する。さらに、メモリ２１４は、さらに、上記されていないモジュール及びデータ構造を記憶していてもよい。
【００５５】
図２はコンピューティングデバイス１００を示しているが、図２は、ここで記述される実装の構造的な概要というよりは、１つもしくは複数のコンピューティングデバイスに存在してよい様々な特徴の機能的な記述を意図している。実用的には、また、当業者によって認識されるだろうように、別個に示されるアイテムは結合されてもよいし、アイテムのいくつかは別個にされてもよい。例えば、データ及びプロセスの全ては単一のデバイス１００（例えば、ユーザのコンピュータ）に存在してもよいし、プロセスは２つ以上のコンピューティングデバイス１００（例えば、未処理データを収集するために主に動作するユーザデバイス及びそのデータや距離の計算等を行うバックエンドサーバ）に別個に存在してもよい。
【００５６】
図３は登録プロセス（左）及び認証プロセス（右）の両方を例示する。ある実装では、点線３４０によって示される通り、認証プロセスから登録プロセスへのフィードバックがある。
【００５７】
ユーザは、認証時にこれからの利用に向け身体ジェスチャを確認するプロセスを開始する（３０２）。ある実装では、ユーザはどの身体部位をジェスチャとして追跡するかを選択してもよい。ある実装では、追跡された身体部位のセットは、指先１０４及びユーザの手中央１０８がデフォルトである。ある実装では、同時に両手の身体部位の追跡ができる。
【００５８】
実装はジェスチャの最初及び最後を特定する様々な方法を用いる。ある実装では、その最初及び最後は、深度センサ１０２またはコンピューティングデバイス１００からの距離に基づく。例えば、ある実装では、人が深度センサ１０２に手１０６を接近し始め、その人の手中央１０８がセンサ１０２もしくはデバイス１００から予め決められた距離１１２に達したときにジェスチャの記録を開始する。再び手中央１０８が閾値の距離１１２を交差したときにその記録は停止する。他の実装は閾値の距離１１２を用いるが、最初及び最後は追跡された複数の身体部位に基づく（例えば、３つの身体部位が閾値１１２を交差したとき）。他の実装は、最初及び最後の認識に、拳を握るといった特定の身体形状を用いる。ある実装は、著しい動きの欠如を伴う予め定められた一定時間に基づき、最初及び最後を認識する。ある実装では、記録の開始や停止のために、（キーボードやマウスのような）入力デバイス２１０を利用する（例えば、ＥＮＴＥＲキーを押す、マウスのボタンをクリックする）。他の実装（マイクロフォンのあるデバイス）は、“開始”や“停止”のコマンドのような音声コマンドを用いる。
【００５９】
ユーザは、ジェスチャを選択しジェスチャを実行し（３０４）、ジェスチャから未処理のデータがジェスチャサンプルとしてキャプチャ（３０６）される。各追跡された身体部位のキャプチャされた未処理のデータは、それら身体部位に対する３次元位置の時間変化を含む。例えば、６つの身体部位が追跡されると、追跡されたデータは時間変化の一定時間毎の各点に６つの（ｘ、ｙ、ｚ）座標を含んでもよい。これは、１８次元ベクトルの時間変化として見ることができる（図４参照）。ある実装では、位置の測定は１０ミリ秒毎に記録されるので、ジェスチャは、１秒間に１００の記録された点を持ち、各点は１８座標を有する。他の実装は、多くまたは少なくデータを記憶する（例えば、５ミリ秒毎や２０ミリ秒毎）。実装は、一般的に一定周期でジェスチャポイントを記録するが、他の実装は、他の要因に基づきデータを記録してもよい。例えば、決められたジェスチャを正確に認識するために、早い動きはサンプリングを多く要求してもよい。ある実装では、未処理のデータは測定エラーを低減するために“平滑化”され、身体部位の動きが滑らかである（例えば、連続導関数を持つ）ということを説明する。
【００６０】
実行されたジェスチャにはいくつかの変化が内在しているため、殆どの実装では複数のサンプルが必要である。異なったサンプルは、異なる空間位置で生じ（例えば、あるサンプルは前サンプルの２インチ右）、異なるサイズかもしれない（例えば、異なる直径で同じ基本形の２つのサークルジェスチャ）、また異なる速度で実行されるかもしれない（例えば、最初はゆっくり実行されるが、ユーザがジェスチャに慣れるにつれ徐々に早くなる）。そのため、実装は、図４で詳細に説明される通り、様々な方法のサンプルを適合する（３０８）。
【００６１】
ある実装では、最初サンプル後の各ジェスチャサンプルは、前サンプルに十分に近いかを決定するために前サンプルと比較して確認する（例えば、ユーザが偶然に何か違った実行をしたサンプルを識別する）。比較には距離計算モジュール２２６を用いる。距離が予め定められた最大値を超えたとき、そのジェスチャサンプルは拒否され、ユーザは再びサンプルを入力することを試みる（そして、ある実装では、ユーザに最初から登録プロセスを再スタートするオプションを与える）。確認にはキャプチャされた未処理のデータ２４０または適合したデータ２４２のどちらか一方に適用させてもよい。
【００６２】
各ジェスチャサンプルを記録した後、登録モジュール２３２は十分なサンプルがあるかどうかを決定する（３１０）。十分なサンプルがまだ無いときには、登録モジュール２３２はユーザに他のサンプルを実行する（３０４）ことを促す。
【００６３】
十分なサンプルが集まったとき、登録モジュール２３２は、ジェスチャターゲット２４８とエラー許容値２５０を含むジェスチャテンプレート２４４の構築を進める。ジェスチャターゲット２４８はサンプルの平均（３１２）である。ある実装では、平均はすべてのサンプルにおけるシンプルな数学的平均である。ある実装では、平均はサンプルの部分集合に基づいて計算される（例えば、１つもしくは複数の異常値を除外するもしくはいくつかの古いサンプルを除外する）。ある実装では、平均は加重平均である。例えば、最新のサンプルは、古いサンプルよりもより重みを付けてもよい。これは、週あるいは月期間のジェスチャサンプルのセットが生成されるので、認証時に新たなサンプルが追加されるときに特に有用になる。数学的には、あるサンプルの除外は、あるサンプルが重み０を得る、重みの特別な場合と考えられる。
【００６４】
また、登録モジュールは、サンプルの拡散や変化を測定し、サンプルの分散値２４３を計算（３１４）する。ある実装では、分散値２４３は、距離計算モジュール２２６によって計算された通り、ジェスチャサンプル間での最大距離である。ある実装は、上記された確認ステップで異常値を取り除く。ある実装では、分散値２４３は、ジェスチャサンプルとジェスチャサンプルの計算された平均との最大距離である。図３には、分散値２４３を計算（３１４）する前にサンプルの平均の計算（３１２）することが示されているが、ある実装は、逆の順序でまたは同時にそれらを計算する。
【００６５】
ある実装では、登録モジュール２３２は大きすぎないかまたは小さすぎないかを確認するために、分散値２４３をチェック（３１６）する。ある実装では、分散値２４３が上限値よりも大きくまたは下限値よりも小さい場合、登録モジュールは、ユーザに追加のジェスチャサンプルを入力するよう促す（３０４）。ある実装では、前サンプルのすべてが破棄され、ユーザは最初から新たなジェスチャサンプルを再入力する。ある実装では、前サンプルは維持され、新たなサンプルがリクエストされる（例えば、ユーザに２つ以上のサンプルを実行するよう促す）。ある実装では、１つまたは複数のオリジナルのサンプルは異常値と認識され（例えば、他のサンプルからの距離によって）、除外される。ある実装では、登録モジュール２３２がユーザにより多くのジェスチャサンプルを促した（３０４）とき、ユーザは最初から始めるオプションを持つ。
【００６６】
ある実装では、分散値２４３が下限値よりも小さいときには、登録モジュールは分散値として下限値を直ちに置換する。
【００６７】
受け入れ可能な分散値２４３（または下限値に置き換えられた）を持つジェスチャサンプルのセットがあると、分散値２４３に基づきエラー許容値２５０が選択される（３１８）。ある実装では、エラー許容値２５０は分散値２４３と等しい。ある実装では、エラー許容値２５０は、複数の分散値２４３の倍数として（例えば、０．９または１．１が掛け合わされた値として）設定される。ジェスチャサンプルと分散値の平均は、ジェスチャテンプレート２４４として記憶（３１８）される。ある実装では、記憶されたテンプレート２４４が適切に動作することを確認するために、１つまたは複数の疑似認証を実行する最終テストフェーズがある。ある実装では、最初にユーザにジェスチャを正しく実行するよう依頼され、また次にはジェスチャを不正確に（しかし類似して）実行するよう依頼される。テストフェーズが成功しなければ、登録プロセスはサンプルジェスチャの入力に戻り、最初から、１または複数の前サンプルが破棄された後に新たなジェスチャサンプルを追加するか、または単に新たなサンプルを追加するかのどちらか一方を行う。
【００６８】
テンプレート２４４の記憶（そしてある実装ではテスト）の後に、登録プロセスが完了する（３２０）。
【００６９】
登録後、ユーザは認証について確認されたジェスチャの実行が可能となる。様々なアクションが認証プロセスで開始する。ある実装では、コンピューティングデバイス１００が起動したときに認証プロセスが開始（３２２）される。ある実装では、入力デバイスのボタンを押すことで認証が開始（３２２）する。ある実装では、ディスプレイデバイス２０８がユーザに適切な方法で（例えばスクリーンがロックされる）認証ジェスチャを実行することを促す。ユーザはそしてジェスチャを実行（３２４）する。深度センサ１０２は、登録時に用いたプロセスと同様に、実行したジェスチャをキャプチャ（３２６）する。特に、ジェスチャの開始及び終了を認識するために、実行は一般的に登録時に用いた同じ方法を用いる。実行されたジェスチャがキャプチャ（３２６）された後、認証モジュール２３４は、未処理の記憶されたジェスチャを標準化フォーマットに適合させる（３２８）適合モジュール２３０を呼ぶ。未処理のジェスチャまたは／及び適合されたジェスチャは一般に、実行されたジェスチャ２５４として認証ログ２５２に記憶される。
【００７０】
認証モジュール２３４はその後、実行されたジェスチャ２５４と記憶されたジェスチャターゲット２４８間の距離を計算する（３３０）距離計算モジュール２２６を呼ぶ。ある実装では、実行されたジェスチャ２５４は１つのジェスチャターゲット２４８（例えば、デバイス１００が唯一の認証されたユーザを保持しているまたはターゲットユーザがジェスチャを実行（３２４）する前に特定されている場合）と比較される。ある実装では、単一デバイスは多数の認証されたユーザを保持してもよく、各々別々にジェスチャテンプレート２４４に記憶されている。ある実装では、実行されたジェスチャ２５４は、記憶されたテンプレート２４４の各々におけるジェスチャターゲット２４８と比較される。
【００７１】
実行されたジェスチャ２５４が１つのジェスチャターゲット２４８と比較されたとき、実行されたジェスチャ２５４とターゲット２４８との間の距離が、エラー許容値２５０と比較（３３２）される。その距離がエラー許容値２５０と同等かそれ以下であるとき、ユーザは認証（３３８）され、デバイス１００や特定のセキュアな機能またはデータ２３６へのアクセスを獲得（３３８）する。一方、その距離がエラー許容値２５０よりも大きいとき、認証は失敗する。ある実装は、連続する失敗試み数を追跡し、ユーザにある試みの数（例えば３）を許す。ある実装では、失敗試みの後、認証モジュール２３４は失敗数を１つ増加させ、他の試みが許可されるかどうかを決定する（３３４）。そうであれば、ユーザは再びジェスチャを実行（３２４）するよう試みる。試み数が制限に到達すると、認証モジュールはユーザを拒否（３３６）し、デバイス１００またはセキュアな機能２３６へのユーザのアクセスを拒否（３３６）する。ある実装では、ユーザが実行するジェスチャに基づきアクセスを拒否された後、ユーザはキーボード２１０からパスワードを入力するといった他の方法で認証のオプションが与えられる。
【００７２】
ある実装では、ユーザは、異なる機能へのアクセスあるいは異なるアクセスレベルのために別々のジェスチャを準備してもよい。ある実装では、ユーザはデバイスへのアクセスのために“汎用アクセス”ジェスチャを準備し、また特定の機能へのアクセスのために追加のジェスチャを準備することができる。例えば、ユーザは家のコンピュータへのアクセスのために１つのジェスチャを準備してもよいが、ある高セキュアなデータ（例えば、医療や税金の記録）へのアクセスを得るために追加のジェスチャを準備してもよい。
【００７３】
実行されたジェスチャは複数のジェスチャターゲット２４８と比較したとき、少なくとも理論上は、より良い結果をもたらす。各ジェスチャターゲット２４８について、距離はそのターゲット２４８のためのエラー閾値２５０と比較される。各ジェスチャターゲット２４８の距離が対応するエラー許容値２５０よりも大きいとき、実行されたジェスチャは失敗し、その次のプロセスは、１つのジェスチャテンプレート２４４とのマッチングに失敗することと同じである。実行されたジェスチャ２５４間の距離について正確な一つのジェスチャテンプレート２４４があり、またジェスチャターゲット２４８がそれに対応するエラー許容値２５５と同等またはそれ以下であるなら、ユーザはそのテンプレートの認証を受ける（例えば、ユーザＩＤ２４６がそのテンプレートに関連付けられる）。獲得したアクセス権（３３８）はそのマッチしたテンプレート２４４のユーザＩＤ２３６に基づく。
【００７４】
ある実装では、２つまたは複数のテンプレート２４４をマッチするジェスチャ２５４を持つことが可能である。ある実装は、実行されたジェスチャ２５４の各エラー許容値２５０内にあるターゲットの中から最も近いジェスチャターゲット２４８を選択することによりこの問題を扱う。ある実装は各エラー許容値２５０に関連する各ターゲットの“近さ”を測定する（例えば、各ターゲット２４８の距離を計算し、各エラー許容値で割る）。ある実装は、近すぎる状態から別々のユーザに対するジェスチャテンプレートを防ぐことによりこの問題を避ける。例えば、テンプレート（Ｔ１，ε１）は既に記憶されており二番目のユーザが登録プロセスを作動（３０２）させると仮定する。二番目のユーザは選択されたジェスチャを実行し、登録プロセスは二番目のユーザに対してテンプレート（Ｔ２，ε２）を記憶すると仮定する。Ｔ１とＴ２との距離はｄだと仮定する。ある実装は、ｄ≦ε１＋ε２のときに２つのテンプレートはとても近いと決定する。言い替えれば、二番目のユーザのテンプレートはｄ＞ε１＋ε２のときには問題ない。距離計量が三角不等式を満足する限りは、ｄ≦ε１＋ε２であることは、Ｔ２のε２範囲内であって、同時に、Ｔ１のε１範囲内である点がないことを保証する。
【００７５】
ユーザのアクセスの試みが認められる（３３８）か、拒否される（３３６）のどちらか一方の後に、認証処理は終了（３４２）する。
【００７６】
図３に示される通り、ある実装は認証から登録へのフィードバックループ３４０を含む。フィードバック３４０は認証時に実行されたジェスチャ２５４に基づき登録データを定期的に更新する（したがってユーザのテンプレート２４４を更新する）。ある実装では、ユーザが認証に成功する度に定期的な更新が生じる。ある実装では、ユーザが認証に成功し、（かろうじてマッチする実行されたジェスチャ２５４に基づきテンプレート２４４が更新されるのを避けるために）実行されたジェスチャ２５４がジェスチャターゲット２４８に十分に近接する度に定期的な更新が生じる。ある実装では、特定時間（例えば、１週間または１か月）が経過した後に、最初に成功した認証で定期的な更新が生じる。ある実装は、エラー許容値に関連してあるいは絶対的な期間のどちらか一方について、認証ログ２５２で認証試みの精度を追跡する。それらのある実装では、定期的な更新はその精度が予め定められたレベルを下回ったときに（例えば、精度が予め定められた期間を超えて閾値レベルを下回るまたは予め定められた期間を超えて低い傾向の精度を下回る）トリガーされる。一般には、単なる単体の精度の低い認証ジェスチャではなく、誤った一貫したパターンがあるときのみに生じる低い精度に基づいて更新される。
【００７７】
ユーザの記憶されたジェスチャテンプレート２４４の定期更新時に、ある実装は過去に用いられたサンプルのすべてを保持し、また実行されたジェスチャ２５４を追加のサンプルとして含む。ある実装では、ジェスチャサンプルは順番に記憶され（例えば、タイムスタンプや他の単調増加機能を用いる）、新たなサンプル（例えば、認証時に実行されたジェスチャ２５４）を含むとき、最も古いサンプルは削除されまたはテンプレートの更新において非包含としてマークされる。ある実装は、古いサンプル（例えば、平均のジェスチャから最も逸脱するサンプル）の処分を決定する他の基準を用いる。
【００７８】
テンプレートが認証で実行されたジェスチャ２５４を用いて更新されるとき、登録では一般的に同じステップが適用される。つまり、新たな平均が計算され（３１２）、新たな分散値が計算され（３１４）、新たな分散値は上限値、下限値と比較され（３１６）、そして新たな平均と新たな分散値が修正されたテンプレートとして記憶される（３１８）。１つの違いは比較（３１６）の扱いである。一般に“良い”サンプルだけが包含するものとして選択されるので、比較（３１６）は上限を超えた分散値を見つけ出すべきでない。一方で、実行されたジェスチャ２５４が前ターゲット２４８にとても近く、古くて不十分なサンプルは計算から取り除かれたとすると、新たに計算された分散値は下限値よりも低くなるだろう。これが生じたとき、ある実装は単に新たなエラー許容値２５０として下限値を用いる（しかし新たなターゲット２４８として更新された平均を用いる）。他の実装は、分散値が下限値よりも下回ったとき、現状のまま（まったく更新しない）単に古いテンプレート２４４を保持する。
【００７９】
図４はある実装がどのようにジェスチャを標準フォーマットに適合させるかを示す。プロセスは未処理のジェスチャデータで始まる（４０２）。数式４２０で示される通り、キャプチャされたジェスチャＧは連続した“位置”からなる。位置の数はジェスチャが実行される時間により変化する。ある実装では、位置データは一定の時間間隔でキャプチャされる（例えば、５ミリ秒毎、１０ミリ秒毎）が、他の実装では動きの速度のような他の要因に基づきキャプチャレートを可変にする。ジェスチャと位置データがキャプチャされた周期により、位置の数は一般的に５０から５００で変動する。
【００８０】
数式４２２で示される通り、各々の“位置”は、３ｍ要素の行列またはベクトルであり、ｍは追跡される個々の身体部位の数である。各身体部位について、x、ｙ、ｚ座標が追跡される。ある実装では、追跡された身体部位は、１つの手１０６の５本の指先１０４に加え、その手中央１０８である。６つの身体部位と各身体部位の３座標を用いるので、各位置は１８項目の行列またはベクトルである。
【００８１】
ある実装では、データ適合の最初のステップは、座標系がキャプチャされたジェスチャ全体の中央になるよう位置データを移動（４０４）する。例えば、ジェスチャが単純な円であるときは、座標系はその円の中央に移動される。これは、各座標値をその座標の平均値分移動させるため、“平均移動”と呼ばれる。この平均移動は、一般的には各座標別々に適用される（例えば、１８項目の位置行列であれば、各１８項目の平均移動は他の項目とは独立して適用される）。数式４２４と４２６は、ｊ番目の身体部位のｘ座標についての平均移動を実行することを示す。
【００８２】
数式４２４が示す通り、その平均は通常、対応する項目のすべてを合算し、合算に含まれる位置の合計数で割ることにより計算される。数式４２４で示す通り、一旦平均が計算されると、その平均は平均移動項目ｘｉｊ’を得るために対応する項目ｘｉｊの各々から引き算される。同じ方法が他の位置要素の各々にも適用される。
【００８３】
キャプチャされた各ジェスチャは平均移動されるため、ジェスチャが実行された正確な位置は問題にならない。例えば、ユーザが、センサのすぐ前でジェスチャを実行するか、または、２インチ右か左で、ジェスチャを実行するかは問題にならない。
【００８４】
ある実装では、キャプチャしたデータ適合についての２番目のステップは、キャプチャしたジェスチャのサイズを正規化（４０６）する。概念的には、ユーザはジェスチャの全体的な形状を認識するが、サイズの異なるジェスチャを実行するかもしれないので、サイズを標準化することでサイズに関わらず形状でのマッチングが可能になる。ある実装では、最大の絶対値を一定に固定するので（例えば１）、位置要素のすべては調整される。ある実装では、すべての身体部位のすべての寸法が１つの最大の全体値に基づき共に調整される。例えば、Ｍはキャプチャされたジェスチャのうちすべての位置のすべての入力で最も絶対値が大きく、その入力はすべての入力をＭで割ることによって正規化することができる。
【００８５】
数式４２８と４３０は、各位置要素が他の要素から独立して正規化（４０６）される、代わりの標準化プロセスを示す。数式４２８と４３０は、以前に平均移動したデータを用いて、ｊ番目の身体部位のＸ座標の標準化について示す。数式４２８は、キャプチャされたジェスチャのうち、すべての位置を交差する特定の要素について、最大の絶対値を計算する。数式４３０に示す通り、（この要素についての）各々の値は、最大値によって調整される。数式の値Ｃは、通常１が設定され、入力について調整された最大値となる。
【００８６】
ある実装では、適合プロセスの最後のステップは、キャプチャされたジェスチャの位置個数を標準化（４０８）する。例えば、ある実装は２００個の位置を標準化する。測定が通常の時間間隔で記録されているとすると、標準化は最初及び最後にキャプチャした測定を取得し、中間点の推定を計算するために補間を用いることで、実行できる。元データが周期的に（例えば、５または１０ミリ秒毎）キャプチャされているために、補間は多くのエラーを引き起こさない。標準化された点の数が元のキャプチャされたデータ個数よりも大きい例や、標準化された点の数が元のキャプチャされたデータ個数よりも少ない例もいくつかある。
【００８７】
位置順序４３２は、最初の身体部位についてのｘ座標の順序である。図４の例には、ｎ個のキャプチャされた位置の例がある。標準化された位置順序４３４にはＳ要素があり、Ｓは特定の標準化された要素数である。この場合、Ｘ１１＝ｘ１１”、ＸＳ１＝ｘｎ１”、また各中間要素は補間によって計算されている。例えば、Ｓ＝２０１、ｎ＝３０１と仮定する。そしてＸ２１はｘ２１”とｘ３１”との中間であるため、Ｘ２１＝（０．５）ｘ２１”＋（０．５）ｘ３１”である。Ｓ＝２０１、ｎ＝３０１も同じシナリオであるため、次の標準化点はＸ３１＝ｘ４１”となる。最初の身体部位のｘ座標に適用された同様の標準化プロセスは、各身体部位の各座標と同じ方法で適用される。
【００８８】
適合プロセスは同じジェスチャの複数のサンプルを平均化できるのでとても役立つ。平均移動４０４は異なる位置で実行されたジェスチャを説明する。正規化４０６は異なるサイズで実行されたジェスチャを説明する。そして、個数の標準化４０８は、異なる速度で実行されたジェスチャを説明する。適合されたジェスチャサンプルを持つことで、各サンプルは同じ位置の個数を持ち、各々の値（位置順序番号、座標、身体部位）は平均化される。例えば、４つのジェスチャサンプルがあると仮定し、各々１００個の位置順序位置が標準化され、７つの身体部位が追跡されたと仮定する。３Ｄ追跡により各サンプルについて１００×７×３個のデータがあり、各４つのサンプルは同様に２１００データ要素を有することになる。それら各２１００データ要素に対して、４つのサンプルに対する値が平均化され、平均したジェスチャが構築される。
【００８９】
図５Ａ−図５Ｄは、ある実装によるハンドジェスチャのような３Ｄジェスチャを用いてユーザを認証する（５０２）プロセスを示す。このプロセスは、深度センサ１０２を備えたコンピューティングデバイス１００、１つまたは複数のプロセッサ、１つまたは複数のプロセッサによって実行される１つまたは複数のプログラムが記憶されたメモリによって実行される。登録プロセス時に、ユーザはジェスチャを選択（５０８）し、ユーザは対応するジェスチャを複数回実行（５０８）する。ジェスチャキャプチャモジュール（２２８）はキャプチャ（５０８）し、ユーザによって実行されたジェスチャサンプルを記録（５０６）する。記録されたジェスチャサンプルの各々には、複数の特定身体部位に対する位置其々の時間変化を含む（５１０）。例えば、身体部位は、指先１０４、関節１１０、ユーザの手中央１０８、その他、区別可能な身体部位または特徴であってよい。ある実装では、位置の時間変化は定期的に取得される（例えば、５ミリ秒毎、１０ミリ秒毎または２５ミリ秒毎）。
【００９０】
図４について上述の通り、ある実装は、ある方法で各身体部位についての位置の時間変化を適合する。ある実装では、適合モジュール２３０は、ジェスチャが実行された特定位置を除去するために、平均移動を適用する。これは、其々のジェスチャサンプルの各々と位置が追跡された身体部位の各々に対して適用（５１２）される。ある実装では、位置の時間変化のため平均位置を計算（５１４）し、其々の時間変化について各位置から平均位置を減算することによって其々の位置の時間変化を修正（５１６）することにより成し遂げられる。これは、３Ｄ座標システムの原点（０，０，０）にジェスチャの重心または中心を変換するのと本質的に同等である。このプロセス５００はそのとき、其々のジェスチャサンプルに対して修正された時間変化を用いる（５１８）。
【００９１】
ある実装では、プロセス５００は各ジェスチャサンプルの外形サイズを正規化する。サイズの正規化はジェスチャ全体として適用してもよいし、大きさをベースに適用してもよい。ある実装では、正規化サイズは１．０で、ジェスチャサンプルの境界枠の最大寸法が３．７５であるとき、各測定値は、そのファクタ（１／３．７５）によって変換される。大きさをベースに変換される実装において、境界枠の最大寸法が、Ｘ座標で２．０、Ｙ座標で３．０、Ｚ座標で４．０であると仮定する。そして、時間変化の各位置について、Ｘ座標は（１／２．０）で変換され、Ｙ座標は（１／３．０）で変換され、Ｚ座標は（１／４．０）で変換される。ある実装または実例において、サイズは拡大される。例えば、正規化されたサイズは前例で３．０と選択されると、Ｘ座標は拡大され、Ｙ座標は全く変換されず、Ｚ座標は縮小される。
【００９２】
サイズが正規化されるある実装では、適合モジュールは、位置が追跡された身体部位の各々やジェスチャサンプルの各々を正規化する（５２４）。ある実装は、其々の時間変化におけるすべての位置を含む最小限の境界枠を認識する（５２６）。位置が変換された時間変化についての最小限の境界枠は予め定められたサイズを持つため、適合モジュールはそのとき、其々の時間変化における位置を変換することにより位置其々の時間変化を修正する（５２８）。ある実装では、変換された位置の時間変化についての最小限の境界枠は立方体である。プロセス５００はそのとき、其々のジェスチャサンプルについて修正された時間変化を用いる（５３０）。ある実装では、平均移動や正規化は順次適用される。特に、正規化は既に平均移動されたデータに適用される。
【００９３】
ある実装では、適合モジュール２３０は、各時間変化が同じ数の位置を持つように、データを標準化する。それらの実行では、標準化プロセスは、ジェスチャサンプルの各々と、位置が追跡され記録された身体部位の各々に適用される（５２０）。ある実装では、適合モジュール２３０は、時間変化において最初及び最後の位置を用い、Ｎ−２の中間位置を計算して挿入することで、予め定められた位置の数Ｎを持つように各位置の時間変化を標準化する（５２２）。このようにして、ユーザが異なる速度でジェスチャしたとしても、それらは同じジェスチャとして扱われる。
【００９４】
この標準化プロセスは、ジェスチャの特徴である速度を除去するには効果的であるが、ある実装は他の方法で速度を追跡し用いる。例えば、ある実装はジェスチャサンプルを実行するために費やす平均時間を計算し、認証の試みにおける比較のためにその平均時間を記憶する（ジェスチャテンプレートの一部のように記憶する）。また、ある標準技術は全体として速度のみに適用される。それゆえ、ユーザが異なる速度で異なる部分のジェスチャを実行したときには、それらの関連する速度はある実装において関連がある。
【００９５】
ジェスチャテンプレートを作成するために、プロセス５００は、ジェスチャサンプルから平均ジェスチャＴを計算する（５３２）。ある実装では、平均ジェスチャＴはジェスチャサンプルの平均を計算する（５３４）。一方、ある実装は、ジェスチャサンプルの加重平均を計算する（５３６）。ある実装では、新たなジェスチャサンプルは、古いジェスチャサンプルよりも重く重み付けされる。サンプル間の重みの相違は、追加サンプルが認証プロセスから追加されたとき、大きいかもしれない。例えば、オリジナル登録の間に、複数のサンプルはとても短い時間（例えば、２分）内に実行されるが、サンプルが認証から追加されると、そのサンプルは週または月の期間を超えて実行されてもよい。ある実装では、平均ジェスチャＴは、適切なジェスチャサンプルの部分集合に基づき計算される（５３８）。換言すると、サンプルのいくつかは全くその計算に含まれていない。ある実行において、ジェスチャサンプルは、時間により（例えば、１月よりも古いジェスチャサンプルが削除される）、またはそれらが他のジェスチャサンプルから必要以上に異なることにより（例えば、ジェスチャサンプルのほとんどがお互いにかなり近いが、ユーザが偶然に異なった実行をしたとき）、除外される。
【００９６】
平均ジェスチャＴに加え、プロセスは平均ジェスチャＴに対応するエラー許容値εを選択（５４０）する。ある実装では、エラー許容値εの選択は、ジェスチャサンプルの拡散度を評価する分散値の計算に依存する（５４２）。換言すると、登録時にサンプルに多くの値があるとき、認証は同様に大きな変化について許容が必要になる。逆に言えば、ユーザが変化の小さいジェスチャを選択して実行すると、認証の許容値は小さい値が設定される。ある実装では、エラー許容値は計算された分散値が設定される（５４４）。ある実装では、登録モジュール２３２は、その分散値が予め定められた最小の分散値よりも大きく、また予め定められた最大の分散値よりも小さいことを決定した（５４６）後に、エラー許容値として分散値を設定する。これは、図３のテスト３１６に関して上述されている。
【００９７】
実行には、ジェスチャサンプルの拡散度を測定する様々な方法がある。ある実装は、距離計量を用いて（５４８）ジェスチャサンプルの拡散度を測定する。ある実装では、距離計量は、動的時間伸縮を用いる（５５２）。ある実装では、距離計量は、機械学習（例えば、ロジスティック回帰、サポートベクタマシン、隠れマルコフモデル、ニューラルネットワーク）に基づいて構築されたモデルとジェスチャサンプルとをマッチングする“コスト”を決定するモデルコスト機能である。ある実装では、分散値を計算するために、距離計量を用いて、ジェスチャサンプルのペア間で最大距離を計算する（５５０）。ある実装では、分散値の計算するために、距離計量を用いて平均ジェスチャＴとジェスチャサンプルとの間の最大距離を計算する（５５４）。
【００９８】
いくつかの実行において、図３のテスト３１６に関して上述に示された通り、ジェスチャサンプルの拡散度（偏差）は小さすぎるか、または大きすぎる。ある実行では、ジェスチャサンプルの拡散度が予め定められた最大の拡散値より小さい（５５６）とき、認証モジュール２３４は追加のジェスチャサンプルを記録し（５５８）、追加のジェスチャサンプルを用いて平均ジェスチャＴを再計算する（５６０）。ある実装では、再計算は新たに実行された追加のジェスチャサンプルのみを用いる。ある実装では、再計算は、以前に記録されたジェスチャサンプルのいくつかと同様に、新たに実行された追加のジェスチャサンプルを用いる（５６２）。ある実装では、拡散度が予め定められた最小の拡散値より小さいとき、認証モジュール２３２は、デフォルト値をその拡散値として代わりに用いる（例えば、予め定められた最小の拡散値）。
【００９９】
同様に、拡散値が予め定められた最大の拡散値よりも大きい（５６４）とき、登録モジュール２３２は追加のジェスチャサンプルを記録（５６６）し、追加のジェスチャサンプルを用いて平均ジェスチャＴを再計算（５６８）する。再計算は同様に以前に記録されたジェスチャサンプルのすべてまたはいくつかを含んでもよい。
【０１００】
平均ジェスチャＴが追加のジェスチャサンプルに基づき再計算されるとき、分散値が同様に再計算される。再計算された分散値は、最小値より下回ってもあるいは最大値より上回っても良い。そのような場合、追加のジェスチャサンプルが記録されてもよい。ある実装は、ユーザが新たなジェスチャをやり直そうとする前に、反復の再計算数の制限を課してもよい。
【０１０１】
登録モジュール２３２は、ユーザのジェスチャテンプレートとして、平均ジェスチャＴ及びエラー許容値εを記憶（５７０）し、オリジナルの登録プロセスを完了する。
【０１０２】
その後、ユーザがデバイス１００（またはデバイスの特定の機能）へのアクセスを望むときに、ユーザは認証に同じジェスチャの実行を試みる。デバイス１００は認証のためにユーザにより実行された３Ｄジェスチャをキャプチャ（５７２）する。キャプチャされた３Ｄは、複数の身体部位についての位置の時間変化を含む（５７４）。認証モジュール２３４は、キャプチャされた３Ｄジェスチャと平均ジェスチャＴとの間の距離ｄを計算する（５７６）。ある実装では、距離は、動的時間伸縮のような距離計量を用いて計算される。ある実装では、距離はモデルコスト機能を用いて計算される。
【０１０３】
距離がεと同等またはそれ以下であるとき、プロセス５００はユーザを認証（５８２）しない。ある実装では、ユーザはジェスチャを再度実行するよう試み、その試みは制限された回数（例えば、３回）繰り返されても良い。ある実装では、ユーザがジェスチャを実行することによって認証されなかったとき、認証モジュール２３４は、ユーザに、キーボードからパスワードを入力するといった代替の認証オプションを提供する。ある実装では、ユーザが認証されなかったとき、ユーザはセキュアな機能へのアクセスを拒否される（５８４）。ある実装では、ユーザがジェスチャベースの認証に失敗し、代替の認証オプションに失敗したときのみアクセスが拒否される。
【０１０４】
上述の記述は、説明を目的としており、特定の実行において参照するよう記述されている。しかしながら、上述の例示的な説明は、網羅的であること、または、精密な形態で発明を制限すること、を意図したものではない。多くの修正や変更が、上述の教示により可能である。例えば、より正確な認証を提供するために、ある実装は、他のデータを用いてジェスチャベースの認証を組み合わせる。他のデータは、音（例えば、ジェスチャと同時の音声）や、ジェスチャ実行前後のデータ入力、指紋や顔分析のような他の生体データを含むことができる。他の実装は、センサからの距離、センサがなす角度、変化の割合（例えば、図４に示されるすべての適合ステップは適用しない）といった追加のジェスチャパラメータを追跡する。実装は、発明の原理及び実際的な応用を最も適切に説明し、これにより、当業者が、発明及び考えられる特定の使用に適するように、様々な変更がされた様々な実装を最も適切に利用することを可能とするために、選択され記述されている。
【符号の説明】
【０１０５】
１００  コンピューティングデバイス
１０２  深度センサ
２０２  ＣＰＵ
２１４  メモリ
２３８  データベース
【図１】
2015201174.tif 000003
【図２】
2015201174.tif 000004
【図３】
2015201174.tif 000005
【図４】
2015201174.tif 000006
【図５Ａ】
2015201174.tif 000007
【図５Ｂ】
2015201174.tif 000008
【図５Ｃ】
2015201174.tif 000009
【図５Ｄ】
2015201174.tif 000010