【文献】
ARAGA, Y. et al.,Real time gesture recognition system using posture classifier and Jordan recurrent neural network,The 2012 International Joint Conference on Neural Networks (IJCNN) [online],IEEE,2012年 6月,[検索日 2019.12.13],インターネット,URL,https://ieeexplore.ieee.org/document/6252595
【文献】
ASADI-AGHBOLAGHI, M. et al.,A Survey on Deep Learning Based Approaches for Action and Gesture Recognition in Image Sequences,2017 12th IEEE International Conference on Automatic Face & Gesture Recognition (FG 2017) [online],IEEE,2017年 6月,pp. 476-483,[検索日 2019.12.13],インターネット,URL,https://ieeexplore.ieee.org/document/7961779
【文献】
SIMON, T. et al.,Hand Keypoint Detection in Single Images Using Multiview Bootstrapping,2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR) [online],IEEE,2017年 7月,pp.4645-4653,[検索日 2019.12.12],インターネット,URL,https://ieeexplore.ieee.org/document/8099977
【文献】
諫山大輔 外3名,ニューラルネットワークを利用した手形状認識 必勝ジャンケンシステムの開発,画像ラボ,日本工業出版株式会社,2011年11月10日,第22巻,第11号,pp.14-22
(58)【調査した分野】(Int.Cl.,DB名)
3Dの前記動的なハンドジェスチャーを前記少なくとも1つの事前定義されたジェスチャークラスへ分類した際に、分類された前記少なくとも1つの事前定義されたジェスチャークラスを、前記少なくとも1つのRGBセンサーを実装しているデバイスおよび前記ウェアラブルARデバイスの少なくとも一方に送信する工程と、
前記デバイスに事前定義されたタスクを実行させる工程と、を含む請求項1に記載のプロセッサー実施方法。
前記1つ以上のハードウェアプロセッサーは、前記命令によって、前記メディアストリームを取得した際に、前記複数のフレームをダウンスケールするよう、さらに構成されている請求項7に記載のシステム。
3Dの前記動的なハンドジェスチャーを前記少なくとも1つの事前定義されたジェスチャークラスへ分類した際に、前記1つ以上のハードウェアプロセッサーは、前記命令によって、分類された前記少なくとも1つの事前定義されたジェスチャークラスを、前記少なくとも1つのRGBセンサーを実装しているデバイスおよび前記ウェアラブルARデバイスの少なくとも一方に送信し、前記デバイスが事前定義されたタスクを実行することを可能にする請求項7に記載のシステム。
【発明を実施するための形態】
【0019】
拡張現実(Augmented Reality)は、音、テキスト、画像、またはビデオのようなコンピューターによって生成された感覚入力によって、物理的な実世界の複数の要素が拡張された環境の視界を表現することを意味する。ARは、医療、教育、エンターテイメント、軍事等の様々な用途において有用である。マイクロソフトHololens(商標)、Dagriスマートヘルメット(商標)、メタグラス(商標)のようなウェアラブルAR/VRデバイスは、近年、非常に人気があるものとなっている。
【0020】
このようなデバイスで用いられるユーザーインタラクションの様態(user interaction modalities)は、ハンドジェスチャーがAR/VRアプリケーションにおけるインタラクションの直感的手段を形成しているという事実を示している。これらデバイスは、テクノロジーを複雑かつ高価なハードウェアに結び付けることが多い様々なオンボードセンサーおよびカスタマイズされた処理チップを用いる。これらデバイスは、特定の機能を実行するために特注され、多くの場合において、それらの途方もない価格のために、容易には使用可能とならない。マイクロソフトキネクト(商標)やリープモーション(商標)コントローラーのような包括的なプラットフォームは、切望されている抽象化を提供するが、直射日光、白色光、および、赤外照射の存在による屋外環境、厚いガラスや水面のような反射面の存在のような光の状況が変化する場合に不完全な動作を行う
【0021】
近年のスマートモバイル電子デバイスにおける高性能なプロセッサーおよび高品質な光学系の進歩によって、このようなデバイスは、AR/VRアプリケーション用の魅力的で容易に利用可能なプラットフォームとしての人気を得つつある。例えば、グーグルカードボード(商標)およびWearalityのようなデバイスは、没入型VR体験(immersive VR experience)を提供するためのビデオシースルー(video-see-through)デバイスである。
【0022】
ステレオレンダリングされたカメラフィードおよび重ね撮り画像(stereo-rendered camera feed and overlaid images)、音声、およびテキストを用いて、これらのデバイスも、ARアプリケーション用に拡張可能である。これらの簡易なヘッドセット(アンドロイドスマートフォンと共に用いられるWearalityまたはグーグルカードボード)を使用することの主たる動機は、経済的な実行可能性、携帯性、および大規模な市場への容易な拡張性にある。しかしながら、これらのヘッドマウントデバイス(HMDs)のセンサーのアクセス性は、取り付けられたスマートフォンのセンサー利用性に限定されてしまう。現在のバージョンは、単一のイベントを起こすための磁気トリガーまたは導電性レバーを用いているため、可能なユーザーのインタラクションの豊富さが抑えられている。
【0023】
さらに、磁気トリガーおよび導電性レバーの頻繁な使用は、デバイスの着脱に繋がる。さらに加えて、そのようなデバイスにおける頭追跡(head tracking)は不便なものであり、ユーザーの視野(FoV:Field of View)における興味のある対象から焦点を外すことになる。さらに加えて、そのようなデバイスは、産業的な屋外セッティングにおいては、周辺雑音のため、不正確なスピーチ認識を提供してしまう。従来のデバイスにおける上述の技術的問題に基づくと、ハンドジェスチャーは、典型的には、人の手間を省き、周辺環境とのインタラクションにおいて効果的であるため、インタラクションの好適な態様である。しかしながら、一人称視点(FPV:First Person View)におけるハンドジェスチャー認識のための現在の方法は、特定の使用ケースに制限されたものであり、肌の色への依存性のために、現実的な状況下でのロバスト性(堅牢性)に欠ける。
【0024】
以下に開示される様々な実施形態は、ジェスチャー検出、特に、動的なハンドジェスチャー検出における上述の技術的課題に対する、ディープラーニングアプローチを用いた技術的解決を提供する方法およびシステムを提供する。ディープラーニングアプローチを用いることにより、イントラクラスバリエーション(intra class variations)に対してロバストであり、検出および分類タスクを実行する際の人間の能力をしばしば上回るコンピュータービジョンモデル(computer vision models)を構築することができる。1つの実施形態において、組み込み奥行センサーを有さない単一のRGBカメラ入力を含むARアプリケーション用のFPVにおけるブルーム(bloom)、クリック、ズームイン、ズームアウトのような複雑なハンドジェスチャーを検出および分類するためのシステムが提供される。上述のハンドジェスチャーが、理解を容易にするために、
図1A〜1Dに示されている。ハンドジェスチャー検出のためにディープラーニングアプローチを用いることにより、開示の方法およびシステムは、既存の技術における限界を克服し、さらに、簡易なデバイスにおける豊富なユーザーのインタラクションのための道を切り開くことができる。
【0025】
図1A〜1Dを参照すると、様々な動的なハンドジェスチャーが示されている。例えば、
図1Aは、「ブルーム」の動的なハンドジェスチャーを示しており、
図1Bは、「クリック」の動的なハンドジェスチャーの様々な段階を示しており、
図1Cは、「ズームイン」の動的なハンドジェスチャーの様々な段階を示しており、
図1Dは、「ズームアウト」の動的なハンドジェスチャーの様々な段階を示している。ここで、用語「動的な」3Dハンドジェスチャーは、静的ではなく、動的なモーションを必要とするハンドジェスチャーを意味する。本明細書で検討される、ブルーム、クリック、ズームイン、およびズームアウトのような動的なハンドジェスチャーは、それぞれ示されている複数の段階を含んでいる。例えば、
図1Aに示されているハンドジェスチャー「ブルーム」は、段階110、段階112、段階114の順で実行される。ブルームのハンドジェスチャーは、事前タスク、例えば、メニュー表示操作を実行するために実行可能である。同様に、
図1Bは、クリックのハンドジェスチャーを実行/実演するための手の動きの複数の段階(段階120、段階122、段階124の順)を示している。クリックのハンドジェスチャーは、選択/保持動作のような事前定義されたタスクを実行するために実行可能である。また、
図1Cは、ズームインのハンドジェスチャーを実行するための手の動きの複数の段階(段階130、段階132、段階134の順)を示している。ズームインのハンドジェスチャーは、ディスプレイにおけるズーム、例えば、シーンのズームのために実行可能である。ハンドジェスチャー「ズームアウト」の実行/実演が
図1Dに示されており、段階140の手の動き、次に段階142の手の動き、最後に段階144の手の動きの順となる。ズームアウトのハンドジェスチャーは、例えば、表示されているシーンのズームアウトのような事前定義されたタスクを実行するために実行可能である。
【0026】
ここで、上述のハンドジェスチャーは、例示の目的のために提供されたものであり、本明細書に開示される実施形態を限定する意図はないことに留意されたい。様々な区別可能なアプリケーションおよびデバイスは、様々な実施形態と共に記述される演算を用いて、複数の区別可能なハンドジェスチャーを利用することにより、様々な機能を実行することができる。さらに、ここで、動的なハンドジェスチャーは、2Dハンドジェスチャーおよび3Dハンドジェスチャーの1つに対応していてもよい。
【0027】
本明細書で開示される実施形態は、
図1A〜1Dに記述および示されているような、単一のRGBカメラを含むARアプリケーション用の一人称視点(FPV)における複雑な動的なハンドジェスチャーを検出するための方法およびシステムを提供する。システムは、如何なる奥行情報も必要とせず、単一のRGBカメラから入力として受信されたRGB画像データを用いるため、追加的な高機能の奥行センサーの必要性を排除し、さらに、既存の技術の限界を克服することができる。本発明の様々な実施形態に係るジェスチャー検出のための高レベルの例示的なシステムアーキテクチャが
図2を参照して提供される。
【0028】
本方法およびシステムは、本明細書に記述される特定の実施形態に限定されない。さらに、本方法およびシステムは、本明細書に記述される他のモジュールおよび方法とは独立および別個に実施可能である。各デバイス要素/モジュールおよび方法は、他の要素/モジュールおよび他の方法と組み合わせて使用可能である。
【0029】
ヘッドマウントデバイスを用いた興味のある領域(ROI:Region of Interest)マーキングのためのシステムおよび方法が実施される様態が、
図1〜5を参照して詳細に説明される。ヘッドマウントデバイスを用いたROIマーキングのための記述される方法およびシステムの態様が任意の数の異なるシステム、実行環境、および/または設定において実施可能であるが、実施形態は、以下の例示的なシステムの文脈において記述される。
【0030】
図2を参照すると、本発明の様々な実施形態に係るディープラーニングを用いたジェスチャー検出のための例示的なシステムアーキテクチャ200が記述されている。システムアーキテクチャは、ユーザーの一人称視点でのメディアストリームを取得するためのデバイスを備えるように示されている。シンプルな形態では、開示のデバイス202は、(1)例えば、スマートフォンのような携帯通信デバイス内に組み込まれている単一のRGBカメラと、(2)例えば、ヘッドマウントARデバイスのようなARウェアラブルとを備え得る。そのようなARウェアラブルの例としては、グーグルカードボードを挙げることができる。RGBカメラによってユーザーのFPVで取得されるメディアストリーム(メディアストリームの取得は、ARウェアラッブルによって容易となっている)は、ジェスチャー検出のためにシステム204に送信される。1つの実施形態において、システムは、リモートサーバー内において実施されてもよい。1つの実施形態において、メディアストリームは、遠隔サーバーに送信される前に、ダウンスケール(縮小)されてもよい。システム204は、ジェスチャーを認識するために、メディアストリーム内の実行されたジェスチャーを分類するよう構成されている。ジェスチャーを認識すると、システム204は、携帯通信デバイスに結果を送り返すよう通信を実行する。
【0031】
図3を参照すると、本発明の実施形態に係る、ジェスチャー検出のためのシステム302のネットワーク実施300が示されている。システムは、事前定義されたタスクを実行するために行われている動的なハンドジェスチャーを有するメディアストリームを受信するよう構成されている。ここで、メディアストリームは、ユーザーのFPVにおいて取得される。様々なハンドジェスチャーおよび対応する事前定義されたタスクが
図1A〜1Dを参照して記述される。システム302は、動的なハンドジェスチャーを検出することができる。1つの例示的な実施形態において、動的なハンドジェスチャーの検出は、ハンドポーズにおける不動の手の存在(a presence of a stable hand)の検出を含み、不動の手の状態の後、事前適宜されたタスクを実行するための特定の様態での手の動きが実行される。
【0032】
本発明は、手に取り付けられたデバイスを用いてジェスチャー検出を実行するための、システム302が実施されるものとして説明されるが、システム302は如何なる特定の機械または環境に限定されないことは理解されるであろう。システム302は、タスクの実行のためのジェスチャーの検出が判別される様々な領域において利用可能である。システム302は、ラップトップコンピューター、デスクトップコンピューター、ノートパソコン、ワークステーション、メインフレームコンピューター、サーバー、ネットワークサーバー等のような様々な演算システムにおいて実施することができる。
【0033】
ここで、システム302は、例えば、複数のデバイスおよび/または機械304−1、304−2、...304−N(以下、集合的にデバイス304という)を用いて、複数のビデオおよび/または画像を取得する。デバイスのそれぞれは、ウェアラブルARデバイスに通信可能に接続された少なくとも1つのRGBセンサーを備えている。RGBセンサーは、携帯型電子デバイス、携帯電話、スマートフォン、ポータブルコンピューター、PDA等のようなメディア取得デバイス内に実装されていてもよい。1つの実施形態において、デバイスは、RGBセンサーに加えて、VRカメラを実装していてもよい。代替的に、RGBセンサーを実装しているデバイスは、ウェアラブルARデバイスに通信可能に接続され、メディア取得デバイスを保持し、さらに、ウェアラブルARデバイスを装着しているユーザーの一人称視点(FPV)でのメディアストリームの取得を可能としていてもよい。ここで、ARデバイスは、AR技術を実現するデバイスである。AR技術は、ユーザーの知覚を強化し、ユーザーが、様々な方法で、環境を視認し、聴き取り、さらに、感じることを補助する。デバイス304は、ネットワーク306を介してシステム302に通信可能に接続されており、取得されたメディアストリームを、システム302へ送信することができる。
【0034】
1つの実施形態において、ネットワーク306は、無線ネットワーク、有線ネットワーク、またはこれらの組み合わせであってもよい。ネットワーク306は、異なるタイプのネットワーク(例えば、イントラネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット等)の1つとして実施することができる。ネットワーク306は、専用ネットワークであっても、共有ネットワークであってもよい。共有ネットワークは、様々なタイプのプロトコル(例えば、ハイパーテキストトランスファープロトコル(HTTP)、トランスミッションコントロールプロトコル/インターネットプロトコル(TCP/IP)、ワイヤレスアプリケーションプロトコル(WAP)等)を用いて、互いに通信を行う異なるタイプのネットワークの接続を意味する。さらに、ネットワーク306は、様々なネットワークデバイス(ルーター、ブリッジ、サーバー、演算デバイス、ストレージデバイス等)を含んでいてもよい。
【0035】
1つの実施形態において、システム302は、演算デバイス310内に実装される。演算デバイス310の例としては、これに限られないが、デスクトップパソコン(PC)、ノートパソコン、ラップトップ、携帯型コンピューター、スマートフォン、タブレット等が挙げられる。また、システム302は、メディストリームを保存するためのデータレポジトリ312に関連付けられている。追加的、または、代替的に、データレポジトリ312は、メディアストリーム中で、ジェスチャー認識の間に生成されたデータおよび/または情報を保存するよう構成されていてもよい。レポジトリ312は、システム302を実現する演算デバイス310の外側に構成され、演算デバイス310と通信可能に接続されていてもよい。代替的に、データポレジトリ312は、システム302内において構成されていてもよい。メディアストリームにおけるジェスチャー認識のためのシステム302の例示的な実施が、
図4を参照してさらに記述される。
【0036】
図4は、本発明のいくつかの実施形態に係る、ハンドジェスチャー認識のための方法400のフロー図を示している。方法400は、コンピューター実行可能命令の一般的な文脈において説明される。一般的に、コンピューター可読命令は、特定の機能を実行、または特定の抽象データ型(abstract data type)を実施するルーティーン(routines)、プログラム、オブジェクト、コンポーネント、データ構造体、プロシージャー(procedures)、モジュール、関数等を含み得る。また、方法400は、通信ネットワークを介してリンクされた複数の遠隔演算デバイスによって機能が実行される分散型演算環境(distributed computing environment)内において実施されてもよい。ここで説明される方法400の順番は、限定を構成する意図はなく、任意の数の説明される方法ブロックが、任意の順番で組み合され、方法400または代替的方法を実施してもよい。さらに、方法400は、任意の適切なハードウェア、ソフトウェア、ファームフェア、およびこれらの組み合わせにおいて実施することができる。1つの実施形態において、フローチャートに示されている方法400は、システム、例えば、
図3のシステム302によって実行され得る。1つの実施形態において、システム302は、例示的なコンピューターシステム、例えば、例示的なコンピューターシステム801(
図7)において実装することができる。
図4の方法400は、以下の
図4〜7を参照して、より詳細に説明される。
【0037】
図4を参照すると、図示の実施形態においては、402において、ユーザーがウェアラブルARデバイス404に通信可能に接続されたRGBセンサーを用いて、メディアストリームを取得したときに、方法400が開始される。RGBセンサーを実装しているデバイス406の例としては、これに限定されないが、スマートフォン、PDA、携帯型コンピューター等が挙げられる。ウェアラブルARデバイス404は、AR関連機能を実行するためのARアプリケーションをホスティングするよう集合的に構成されたハードウェアおよびソフトウェアを含む。説明の簡略化のために、ARアプリケーションを実行するデバイスと共にRGBセンサーを組み込んでいるデバイス406(または、ウェアラブルARデバイス404)は、以下、集合的にデバイス408と称される。デバイス408は、ユーザーによって実行される一人称視点(FPV)での動的なジェスチャー、例えば、
図1A〜1Dに示されているようなジェスチャーのメディアストリームを取得する。1つの実施形態において、ハンドジェスチャーは、動的なハンドジェスチャーを含む。1つの実施形態において、動的なハンドジェスチャーは、2Dハンドジェスチャーおよび3Dハンドジェスチャーの1つであってもよい。一人称視点(FPV)で取得されたメディアストリームの複数のフレームは、410において、ジェスチャー認識システム(例えば、
図3のシステム302)で処理するために、ストリーミング送信される。1つの実施形態において、デバイス408から取得された複数のフレームは、最初に、質の面で妥協することなく演算時間を減少させてリアルタイム性能を実現するために、ダウンスケール、例えば、解像度が320x240等になるようダウンスケールされる。1つの実施形態において、デバイス408は、例えば、25FPSで、複数のフレームをジェスチャー認識システムにストリーミング送信する。
【0038】
工程412において、ジェスチャー認識システムは、メディアストリームの複数のフレームを受信する。複数のフレームは、デバイス408から取得された複数のRGBフレームである。複数のRGBフレームは、シーンの複数のフレームに関連付けられたRGB画像データを含む。ここで、RGB画像データは、複数のフレームに関連付けられた赤色、緑色、および青色に対応するデータを意味する。
【0039】
414において、ディープラーニングモデルを用いることにより、動的なハンドジェスチャーに関連付けられた時間情報が、RGB画像データから推定される。1つの実施形態において、ジェスチャー認識システムは、動的なハンドジェスチャーに関連付けられた時間情報を推定する。推定された時間情報は、ユーザーのハンドポーズに関連付けられ、さらに、複数のフレームにおけるユーザーの手の上において特定された複数のキーポイントを含む。動的なハンドジェスチャーを実行している間のユーザーの様々なハンドポーズ(または、動的なハンドジェスチャーの複数の段階)が、
図1A〜1Dを参照して記述される。時間情報の推定の詳細な説明が、
図5を参照して、さらに記述される。
【0040】
図5を参照すると、動的なハンドジェスチャーに関連付けられた時間情報を推定するためのプロセスが示されている。ここで、時間情報の推定は、ハンドポーズ推定モジュール502によって実行される。ハンドポーズ推定モジュール502は、単一のRGB画像から3Dハンドポーズを推定するディープラーニングアプローチに基づいて、時間情報を推定することを容易にし、これにより、従来のシステムにおける奥行情報の入手困難さによって生じる課題を克服する。1つの実施形態において、ディープラーニングネットワークは、RGB画像データを利用し、時間情報を推定する。上述のように、時間情報は、複数のフレームにおけるユーザーの視野(FoV)内に存在する手の上の複数のキーポイントを含む。1つの実施形態において、複数のキーポイントは、指1つ当たり4個のキーポイントおよびユーザーの手の手首付近の1個のキーポイントを含む21個の手のキーポイントを含む。ジェスチャー認識システムは、複数のキーポイントを検出し、さらに、ディープラーニングネットワークを用いて、複数のサンプルRGB画像から、サンプルのユーザーの手の複数のキーポイントを有する複数の潜在的ネットワーク3Dアーティキュレーション履歴(network-implicit 3D articulation priors)を学習/推定する。複数の潜在的ネットワーク3Dアーティキュレーション履歴は、ユーザーの手の複数のトレーニングサンプルRGB画像から判別された複数のキーポイントを含む。複数の潜在的ネットワーク3Dアーティキュレーション履歴に基づいて、ハンドポーズ推定モジュール502は、複数のフレーム(または、複数のRGB画像)内におけるユーザーの手の複数のキーポイントを検出する。RGB画像内におけるユーザーの手の複数のキーポイントを検出するための詳細なプロセスが、
図5に示されている。例えば、画像130、132、134のような複数のRGB画像が、502において、ジェスチャー認識システムで受信される。ジェスチャー認識システムは、動的なハンドジェスチャーに関連付けられた時間情報を推定するためのハンドポーズ推定モジュール502を含む。ハンドポーズ推定モジュール502は、これに限定されないが、以下に述べるような、HandSegNetネットワーク、PoseNetネットワーク、およびPosePriorネットワークを含むディープラーニングネットワークの助けを借りて、時間情報を推定する。
【0041】
HandSegNetネットワーク(508が付されている):HandSegNetネットワークは、画像/フレーム内において手の位置を特定するためのセグメンテーションネットワークである。
【0042】
PoseNet(510が付されている):セグメント化された手のマスクが入力として与えられると、PoseNetは、各キーポイントの2次元スコアマップを推定することにより、それぞれの空間位置についての尤度情報(likelihood information)を含む21個のキーポイントの位置を特定する。
【0043】
PosePrior(512が付されている):PosePriorネットワークは、PoseNetから得られたスコアマップを条件とする最も可能性の高い3Dの手の構造を推定する。
【0044】
1つの例示的な実施形態において、上述のディープラーニングネットワークは、複数のキーポイントを推定するために、事前トレーニングされていてもよい。例えば、1つの実施形態において、複数のキーポイントは、ユーザーの手の21個のキーポイントを含んでいてもよい。これらのネットワークは、合成の手のモデルに基づいて、複数のトレーニングサンプルRGB画像を有する大規模3Dハンドポーズデータセットを用いて、トレーニングされる。データセットは、複数のユニークアクションを実行する複数の異なる対象の膨大な量のフォトリアリスティックレンダリング(photo-realistic renderings)を含む。データセットを構築するために、データセット内に存在する全てのユーザーの手のビデオが、最適な範囲、例えば、FPVユースケースに理想的な、カメラ中心から40cmから65cmの範囲で準備される。照明の位置および強度はランダム化され、さらに、最大40%の損失を伴う不可逆のJPEG圧縮を用いて、複数の画像が保存される。背景は、様々な画像からランダムに選択され、カメラ位置は、外部要因に対するモデルのロバスト性(堅牢性)を確保するために、各フレームにおいて手を囲む球形領域においてランダムに選択される。上述のように、ディープラーニングネットワークを用いて、ハンドポーズ推定モジュール502は、複数の潜在的ネットワーク3Dアーティキュレーション履歴に基づいて、複数のフレーム内のユーザーの手の上の複数のキーポイントを検出する。ネットワークによって検出される21個のキーポイントは、514において示すように、
図5の入力ビデオフレーム516(例えば、ビデオフレーム518、520、522)上における重複物(overlay)として示されている。
【0045】
ハンドポーズ推定モジュール502は、ユーザーの手の上において検出された21個のキーポイントのそれぞれの座標値を出力する(これを、時間情報とも称する)。時間情報は、ジェスチャー分類ネットワークに対する入力である。ジェスチャー分類ネットワークは、LSTMネットワークを含む。
図4および6を参照して以下にさらに説明されるように、LSTMネットワークは、複数のキーポイントに基づいて、動的なハンドジェスチャーを、少なくとも1つの事前定義されたジェスチャークラスに分類する。
【0046】
再度
図4を参照すると、416において、多層LSTM分類ネットワークを用いることにより、動的なジェスチャーが、複数のキーポイントの時間情報に基づいて、少なくとも1つの事前定義されたジェスチャークラスに分類される。1つの実施形態において、多層LSTMネットワークは、第1の層と、第2の層と、第3の層と、を含む。第1の層は、ユーザーの手の上において検出された21個のキーポイントの3D座標シーケンス(3D coordinates sequence)における長期の依存性およびパターン(long-term dependencies and patterns)を学習するための複数のLSTMセルから構成されたLSTM層を含む。第2の層は、時間的データを1次元にする平滑化層(flattening layer)を含み、第3の層は、3Dの動的なハンドジェスチャーのそれぞれに対応する出力スコアを用いる完全接続層(fully connected layer)を含む。出力スコアは、少なくとも1つの事前定義されたジェスチャークラスへの分類のための、動的なハンドジェスチャーのそれぞれに対応する事後確率(posterior probability)を示す。例えば、本実施形態において、動的なハンドジェスチャーを4つのクラス(例えば、
図1A〜1Dに規定されている動的なハンドジェスチャー)に分類するようトレーニングされている場合、第3の層によって判別された4つの出力スコアが存在することになる。代替的な実施形態において、出力スコアの数は、ジェスチャークラスの数に応じて変化可能である。ここで、シーケンシャルデータの長期依存性の学習においてのLSTMニューラルネットワークの能力および効率は、ビデオフレームにおける手の複数のキーポイントの空間的な位置を用いて、LSTMネットワークベースのアーキテクチャーがジェスチャー分類のタスクの実行することを容易にすることに留意されたい。動的なジェスチャー認識に対する開示の実施形態の重要な貢献は、開示の実施形態において、複数のフレームに渡る複数のキーポイントの変動をモデル化する際にハンドポーズの3D座標値のみを入力することにより、演算コストを減少させることができ、フレームワークのリアルタイム性能の実現に有用であるということである。動的なジェスチャーの少なくとも1つの事前定義されたクラスへの分類の例が、
図6を参照して記述される。
【0047】
図6を参照して、全ての層の後に出力形状を表示するジェスチャー分類タスクのための多層LSTMネットワーク600が記述される。LSTMネットワーク600は、3つの層、すなわち、LSTM層を含む第1の層602と、平滑化層を含む第2の層604と、完全接続層を含む第3の層606とを含むよう示されている。各ジェスチャー入力は、LSTMネットワーク600へ供給するための期間、100フレームスプレッドに等しくサンプリングされ、
図6に示すように、LSTM層602へのサイズ63x100の入力(21個のキーポイントのそれぞれの3つの座標値)が作成される。200個のLSTMセルから構成されるLSTM層602は、ネットワークトレーニングの間、座標のシーケンスにおける長期の依存性およびパターンを学習するよう試みる。LSTM層602は、データを1次元にする平滑化層604の前に存在する。平滑化層604の後には、4つのジェスチャーのそれぞれに対応する4つの出力スコアを用いる完全接続層606が存在する。
【0048】
1つの実施形態において、LSTMモデルは、softmaxアクティベーション機能(softmax activation function)を用いて、複数の動的なハンドジェスチャーのうちの動的なハンドジェスチャーを分類するためにトレーニングされる。ジェスチャー分類モジュールは、softmaxアクティベーション機能を用いて、出力スコアを、非正規化ログ確率(un-normalized long probabilities)として解釈し、さらに、出力スコアを、以下の式を用いて、0から1の範囲に圧縮する。
ここで、Kはクラスの数を示し、sはsoftmax機能への入力、スコアのKx1ベクトルであり、jは0からK−1の間で変化するインデックスであり、σ(s)は各ジェスチャーに関連付けられた事後確率を示すKx1出力ベクトルである。
【0049】
1つの実施形態において、LSTMネットワークは、動的なジェスチャーを、ジェスチャークラスの1つに分類するためにトレーニングされる。1つの実施形態において、LSTMネットワークのトレーニングは、以下の式を用いて、バッチのi番目のトレーニングサンプルのクロスエントロピー損失L
iを算出する工程を含む。
L
i=−h
j*log(σ(s)
j)
ここで、hは、入力のワンホットラベル(one-hot label)を示す1xKベクトルであり、さらに、L
iの平均は、バッチのトレーニング例全体から算出され、トレーニング中においてLSTMモデルを微調整するために、LSTMネットワークに送り返される。
【0050】
図4を参照すると、416において、動的なジェスチャーを少なくとも1つの事前定義されたジェスチャークラスに分類すると、ジェスチャー認識システムは、分類された少なくとも1つの事前定義されたジェスチャークラスを、デバイス408に送信し、これにより、デバイス408が、ARアプリケーションにおける事前定義されたタスクを開始することが可能となる。
【0051】
開示の実施形態に基づくジェスチャー分類を説明するための例示的なシナリオが、本記述においてさらに述べられる。
【0052】
例示的なシナリオ
本明細書における実施形態は、自己中心の視点(egocentric view)で取得されたブルーム、クリック、ズームイン、ズームアウトの動的なハンドジェスチャーのデータセットを利用する。データセットは、トレーニングセットにおいて1つのジェスチャー当たり100個のビデオと、テストセットにおいて1つのジェスチャー当たり20個のビデオと、を含む480個のビデオを含む。データセット内のデータビデオは、320x240の解像度および30FPSで取得された高品質のビデオである。異なる肌の色を有し、年齢が21〜55歳の範囲にある6人のユーザーがデータ集合に含まれている。色の組み合わせ、照明の状態、および動的な背景シーンにおける最大変動を収集するために、ビデオは、複数の異なる場所(屋外、屋内、リビングルーム、オフィス環境、カフェテリア)で記録される。各ジェスチャーは、平均で4.1秒間続き、最も複雑なブルームは、平均5秒を要し、最も単純なズームジェスチャーは、平均で3.5秒を要する。
【0053】
ハンドポーズ検出モジュール(
図4を参照して記述された)は、手の21個のキーポイントを検出することにより、ハンドポーズを推定するために利用される。ハンドポーズ検出モジュールによって検出される複数のキーポイントが、
図7に示されている。
【0054】
図7に示されているように、ジェスチャー認識システムのテストの間、ハンドポーズ検出モジュールによって検出される21個のキーポイントは、入力画像上における重複物として示されている。これら21個のキーポイントの3D座標値は、その後、ジェスチャー分類のためにLSTMネットワークに送られる。
【0055】
ジェスチャー分類システムは、LSTM分類ネットワークをトレーニングおよびテストするために、420個のビデオのデータセットを利用する。トレーニングの間、トレーニングセットの400個のビデオのそれぞれが、LSTMネットワークへ供給されている期間、100フレームスプレッドに等しくサンプリングされる。バッチサイズ5および有効化スプリット70.30で、LSTMネットワークがGPUセットアップにおいて約11時間要する300エポック(epochs)の間、トレーニングされる。ネットワークをトレーニングする間に、有効化スプリットにおいて91%の精度が達成される。さらに、モデルは、80個のビデオのテストセットによってテストされる。表1は、実験のための混合マトリクスを示している。80個のうち、9件の分類ミスがあり、87.5%の精度であった。動的なハンドジェスチャーの存在は、以下の式を用いた動的なハンドジェスチャーの確率が85%を超えた場合に、検出される。
ここで、σ(s)
iは、i番目のクラス用の予測確率である。認識された動的なハンドジェスチャーは、スマートフォンに送信される。ジェスチャーが検出されなかった場合、ジェスチャー検出が為されなかったことが報告される。以下の表1は、80個のうち、9件の分類ミスがあった精度87.5%を得たジェスチャー認識システム用の混合マトリクスを示している。
【0056】
開示されたLSTMのみのアーキテクチャーは、GPU実装上において、最大107のフレームレートで伝達を行うことができる。しかしながら、ハンドポーズ推定ネットワークは、9FPSで動作する。組み合わされたフレームワークの最大スループットを確保するために、ハンドポーズ推定ネットワークは、フレーム数を低下させることを許可されている。サーバーにおいて受信される最後のフレームは、ネットワークに供給される。LESTMネットワークに供給される前に3D座標値が挿入され、100個のデータポイントが取得される。これにより、フレームワークが、動的にGPU性能に応じて適応することが可能となり、そのため、ジェスチャーの実行が完了した後の認識時間を最小化することができる。その結果、提案のフレームワークの平均応答時間が、GPU設定上において、0.8sになることがわかった。実施形態を実施するための例示的なコンピューターシステム801のブロック図が示されている。
【0057】
図8は、本発明と一致する実施形態を実施するための例示的なコンピューターシステム801のブロック図である。コンピューターシステム801は、単独で実施されてもよいし、システム302(
図3)の複数のコンポーネントと組み合わせて実施されてもよい。コンピューターシステム801のバリエーションを、本開示に含まれるデバイスを実施するために用いてもよい。コンピューターシステム801は、中央処理ユニット(「CPU」または「ハードウェアプロセッサー」)802を含む。ハードウェアプロセッサー802は、ユーザーまたはシステムによって生成されたリクエストを実行するためのプログラムコンポーネントを実行する少なくとも1つのデータプロセッサーを含む。プロセッサーは、統合システム(バス)コントローラー、メモリー管理コントロールユニット、浮動小数点ユニット、画像処理ユニット、デジタル信号処理ユニット等のような特注の処理ユニットを含む。プロセッサーは、AMD Athlon(商標)、Duron(商標)、Opteron(商標)のようなマイクロプロセッサー、ARM‘sアプリケーション、組み込みまたはセキュアプロセッサー、IBM PowerPCTM、インテルコア、Itanium(商標)、Xeon(商標)、Celeron(商標)、または他のプロセッサー等を含む。プロセッサー802は、メインフレーム、分散プロセッサー、マルチコア、パラレル、グリッド、または他のアーキテクチャーを用いて実施されてもよい。いくつの実施形態は、特定用途向け集積回路(ASICs)、デジタル信号プロセッサー(DSPs)、フィールドプログラマブルゲートアレイ(FPGAs)等のような実装技術を利用してもよい。
【0058】
プロセッサー802は、I/Oインターフェース803を介して、1つ以上の入力/出力(I/O)デバイスと通信を行うよう配置されている。I/Oインターフェース803は、これに限定されないが、音声、アナログ、デジタル、モノラル、RCA、ステレオ、IEEE−1394、シリアルバス、ユニバーサルシリアルバス(USB)、赤外、PS/2、BNC、共軸、コンポーネント、複合、デジタルビジュアルインターフェース(DVI)、高解像度マルチメディアインターフェース(HDMI)(登録商標)、RFアンテナ、S−ビデオ、VGA、IEEE802.11a/b/g/n/x、ブルートゥース(登録商標)、セルラー(例えば、符号分割多重アクセス方式(CDMA)や高速度パケットアクセス(HSPA+)、グローバルシステムフォーモバイルコミュニケーション(GSM)(登録商標)、ロングタームエボリューション(LTE)、WiMax等)等のような通信プロトコル/方法を採用してもよい。
【0059】
I/Oインターフェース803を用いて、コンピューターシステム801は、1つ以上のI/Oデバイスと通信を行う。例えば、入力デバイス804は、アンテナ、キーボード、マウス、ジョイスティック、(赤外線)リモートコントロール、カメラ、カードリーダー、ファックス機、ドングル、生体リーダー、マイク、タッチスクリーン、タッチパッド、トラックボール、センサー(例えば、加速度計、光センサー、GPS、ジャイロスコープ、近接センサー等)、スタイラス、スキャナー、ストレージデバイス、トランシーバー、ビデオデバイス/ソース、バイザー等であってもよい。
【0060】
出力デバイス805は、プリンター、ファックス機、ビデオディスプレイ(例えば、カソードレイチューブ(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)、プラズマ等)、音声スピーカー等であってもよい。いくつかの実施形態において、トランシーバー806が、プロセッサー802と通信可能に配置されている。トランシーバーは、様々なタイプの無線伝送または受信を容易にする。例えば、トランシーバーは、トランシーバーチップ(例えば、テキサスインスツルメンツWiLink WL1283、ブロードコムBCM4750IUB8、インフィニオンテクノロジーズX−Gold 618−PMB9800等)に動作可能に接続されたアンテナを含み、これにより、IEEE802.11a/b/g/n、ブルートゥース、FM、グローバルポジショニングシステム(GPS)、2G/3G HSDPA/HSUPA通信等を提供することができる。
【0061】
いくつかの実施形態において、プロセッサー802は、ネットワークインターフェース807を介して、通信ネットワーク808と通信可能に配置されている。ネットワークインターフェース807は、通信ネットワーク808と通信を行う。ネットワークインターフェースは、これに限定されないが、直接接続、イーサネット(登録商標)(例えば、ツイストペア10/100/1000ベースT)、トランスミッションコントロールプロトコル/インターネットプロトコル(TCP/IP)、トークンリング、IEEE802.11a/b/g/n/x等であってもよい。通信ネットワーク808は、これに限定されないが、直接相互接続、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、無線ネットワーク(例えば、ワイヤレスアプリケーションプロトコルを用いたもの)、インターネット等であってもよい。ネットワークインターフェース807および通信ネットワーク808を用いることにより、コンピューターシステム801は、デバイス809および810と通信を行うことができる。これらデバイスは、これに限定されないが、パーソナルコンピューター、サーバー、ファックス機、プリンター、スキャナー、携帯電話、スマートフォン(例えば、アップルiPhone(登録商標)、ブラックベリー、アンドロイドベースのスマートフォン等)、タブレットコンピューター、eBookリーダー(アマゾンキンドル、Nook等)の様々な携帯デバイス、ラップトップコンピューター、ノートパソコン、ゲームコンソール(マイクロソフトXbox、任天堂DS、ソニープレイステーション等)等を含む。いくつかの実施形態において、コンピューターシステム801は、それ自身が、1つ以上のこれらのデバイスを具体化するものであってもよい。
【0062】
いくつかの実施形態において、プロセッサー802は、ストレージインターフェース812を介して、1つ以上のメモリーデバイス(例えば、RAM713、ROM714等)と通信可能に配置されている。ストレージインターフェースは、これに限定されないが、シリアルアドバンスドテクノロジーアッタチメント(SATA)、統合デバイスエレクトロニクス(IDE)、IEEE−1394、ユニバーサルシリアルバス(USB)、ファイバーチャンネル、スマートコンピューターシステムインターフェース(SCSI)等の接続プロトコルを採用する、メモリードライブ、リムーバブルディスクドライブ等のメモリーデバイスに接続される。さらに、メモリーデバイスは、ドラム、磁気ディスクドライブ、光磁気ドライブ、光ドライブ、独立性ディスクの冗長アレイ(RAID)、ソリッドメモリーデバイス、ソリッドステートドライブ等を含んでいてもよい。メモリーデバイスのバリエーションが、例えば、本開示において利用される任意のデータベースを実施するために用いられてもよい。
【0063】
メモリーデバイスは、これに限定されないが、オペレーティングシステム816、ユーザーインターフェースアプリケーション817、ユーザー/アプリケーションデータ818(例えば、本開示において議論された任意のデータ変数またはデータ記録)等を含むプログラムまたはデータベースコンポーネントの集合を保存する。オペレーティングシステム816は、コンピューターシステム801のリソース管理および動作を容易にする。オペレーティングシステムの例としては、これに限定されないが、アップルマッキントッシュOSX、ユニックス、ユニックス風システムディストリビューション(例えば、Berkeley Software Distribution(BSD)、FreeBSD,NetBSD,OpenBSD等)、リナックス(登録商標)ディストリビューション(例えば、Red Hat、Ubuntu、Kubuntu等)、IBM OS/2、マイクロソフトウィンドウズ(登録商標)(XP、Vista/7/8等)、アップルiOS、グーグルアンドロイド、ブラックベリーOS等を挙げることができる。ユーザーインターフェース817は、テキストまたは画像のファシリティを介して、プログラムコンポーネントの表示、実行、インタラクション、操作、または動作を容易にする。例えば、ユーザーインターフェースは、コンピューターシステム801に動作可能に接続された表示システム上のコンピューターインタラクションインターフェース要素(これに限定されないが、カーソル、アイコン、チェックボックス、メニュー、スクロール、ウィンドウ、ウィジェット等)を提供する。グラフィカルユーザーインターフェース(GUIs)は、これに限定されないが、アップルマッキントッシュオペレーティングシステムのAqua、IBS OS/2、マイクロソフトウィンドウズ(例えば、Aero、Metro等)、ユニックスX−Windows、ウェブインターフェースライブラリ(例えば、ActiveX、Java(登録商標)、Javascript,AJAX、HTML、Adobe Flash等)等を含む。
【0064】
いくつかの実施形態において、コンピューターシステム801は、データ、変数、記録等の本開示において記述されたようなユーザー/アプリケーションデータ818を保存する。このようなデータベースは、OracleまたはSybaseのようなフォールトトレラント、リレーショナル、スケーラブル、セキュアデータベースとして実施されてもよい。代替的に、そのようなデータベースは、アレイ、ハッシュ、連結リスト、構造化テキストファイル(例えば、XML)、テーブル、またはオブジェクト指向データベース(例えば、ObjectStore、Poet、Zope等を用いたもの)のような標準化データベースを用いて実施されてもよい。このようなデータベースは、本開示において上で述べられた様々なコンピューターシステム間で分散または統合されていてもよい。任意のコンピューターまたはデータベースコンポーネントの構造および動作は、任意の動作組み合わせによって、組み合わせ、統合、または分散されていてもよい。
【0065】
さらに、いくつかの実施形態において、送受信されるサーバーのメッセージおよび命令は、オペレーティングシステムを含むハードウェアおよびクラウド実施に常駐するプログラムコード(すなわち、アプリケーションコード)から発せられる。さらに、本明細書において提供される1つ以上のシステムおよび方法が、クラウドベースの実施に好適であり得ることは留意されるべきである。例えば、いくつかの実施形態において、本開示の方法において用いられるデータのいくつかまたは全てが、任意のクラウド演算プラットフォーム上から得られるもの、または、任意のクラウド演算プラットフォーム上に保存されるものであってもよい。
【0066】
様々な実施形態は、ディープラーニングアプローチを用いた自己中心のビデオにおけるジェスチャー認識のためのマーカーレス(marker-less)の動的なハンドジェスチャー認識方法およびシステムを開示する。開示のシステムは、RGB画像データのみを用いて動作するので、奥行情報の必要性を排除することができる。これにより、ARアプリケーション用の簡易なデバイスの選択肢を広げることができる。LSTMネットワークは、リアルタイムでの4つの直感的なハンドジェスチャー(花、クリック、ズームイン、およびズームアウト)を認識することができ、さらに、より現実的なハンドジェスチャーデータを用いてモデルを微調整することにより、より複雑な認識タスクに拡張可能なポテンシャルを有している。例示的なシナリオを参照して記述されたように、開示のシステムは、ターンアラウンドタイムの減少させることができ、さらに、ジェスチャー認識の精度を向上させることができる。
【0067】
本発明の実施形態は、ハードウェアおよびソフトウェア要素を含み得る。ソフトウェアにおいて実施される実施形態は、これに限定されないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含む。本明細書において記述された様々なモジュールによって実行される機能は、他のモジュールまたは他のモジュールの組み合わせにおいて実施されていてもよい。記述の目的のため、コンピューター使用可能またはコンピューター可読媒体は、命令実行システム、装置、またはデバイスによって使用、または、それらと通信されるプログラムを包含、保存、通信、伝搬、または送信可能な任意の装置であってもよい。
【0068】
媒体は、電子、磁気、光、電磁気、赤外、若しくは、半導体システム(または、装置、デバイス)、または、伝搬媒体であってもよい。コンピューター可読媒体の例としては、半導体またはソリッドステートメモリー、磁気テープ、リムーバブルコンピューターディスケット、ランダムアクセスメモリー(RAM)、リードオンリーメモリー(ROM)、剛性磁気ディスク、および光ディスクが挙げられる。光ディスクの最近の例としては、コンピューターディスクリードオンリーメモリー(CD−ROM)、コンパクトディスクリード/ライト(CD−R/W)、およびDVDが挙げられる。