(57)【要約】ジェスチャ認識のためのパーツ及び状態検出は、人間とコンピュータとのインタラクション、コンピュータ・ゲーム、及びジェスチャがリアルタイムに認識される他の用途に有用である。様々な実施形態において、決定森分類器を使用して、パーツ・ラベル及び状態ラベルの両方により入力画像の画像要素をラベリングする。ここで、パーツ・ラベルは、指先、掌、手首、唇、ラップトップの蓋等の、変形しやすいオブジェクトのコンポーネントを識別し、状態ラベルは、開いている、閉じている、上げている、下げている、広げている、握り締めている等の、変形しやすいオブジェクトの形状を識別する。様々な実施形態において、パーツ・ラベルを使用して、身体パーツの重心を計算し、パーツ・ラベル、重心、及び状態ラベルを使用して、ジェスチャをリアルタイム又はほぼリアルタイムに認識する。
2016503220.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサにおいて、少なくとも１つのオブジェクトを表す画像を受信するステップと、
前記画像において表された前記オブジェクトの複数のパーツと、前記オブジェクトの状態と、の両方を認識するために、前記の受信された画像を、トレーニングされたランダム決定森に適用する適用ステップであって、前記状態は、向き又は形状である、適用ステップと、
を含む、方法。
【請求項２】
前記オブジェクトを表す画像のストリームを受信し、前記パーツ及び前記状態の両方の認識をリアルタイムに追跡するために、前記画像のストリームを、前記トレーニングされたランダム決定森に適用するステップと、
前記の追跡された認識されたパーツ及び状態を使用して、少なくとも１つのジェスチャを認識するステップと、
を含む、請求項１記載の方法。
【請求項３】
前記トレーニングされたランダム決定森は、前記複数のパーツ及び前記状態を同時に認識する、請求項１記載の方法。
【請求項４】
前記トレーニングされたランダム決定森は、パーツ・ラベル及び状態ラベルを、前記の受信された画像の画像要素に割り当てる、請求項１記載の方法。
【請求項５】
前記の認識されたパーツの各々の重心を計算するステップ
を含む、請求項１記載の方法。
【請求項６】
前記適用ステップは、前記の受信された画像の複数の画像要素についての状態ラベルをもたらし、当該方法は、前記状態ラベルを集約するステップを含む、請求項１記載の方法。
【請求項７】
前記ランダム決定森は、前記ランダム決定森の葉ノードにおいてパーツ・ラベル及び状態ラベルに対するジョイント確率分布を記憶するために、トレーニングされている、請求項１記載の方法。
【請求項８】
パーツ分類を得るために、前記の受信された画像を、第１段階のランダム決定森に適用し、状態分類を得るために、前記の受信された画像の画像要素を、複数の第２段階のランダム決定森のうちの選択された１以上に適用するステップ
を含む、請求項１記載の方法。
【請求項９】
プロセッサにおいて、オブジェクトの複数のトレーニング画像にアクセスするステップであって、各トレーニング画像は、パーツ・ラベル及び状態ラベルを含み、前記パーツ・ラベル及び前記状態ラベルは、前記トレーニング画像の画像要素を、前記オブジェクトの複数の可能なパーツと、複数の状態のうちの１つの状態と、に分類し、前記状態は、前記オブジェクトの向き又は形状である、ステップと、
画像の画像要素をパーツ及び状態の両方に分類するために、前記のアクセスされたトレーニング画像を用いて、ランダム決定森をトレーニングするステップと、
を含む、方法。
【請求項１０】
少なくとも１つのオブジェクトを表す画像を受信するよう構成されたインタフェースと、
前記画像において表された前記オブジェクトの複数のパーツと、前記オブジェクトの状態と、の両方を認識するために、前記の受信された画像を、トレーニングされたランダム決定森に適用するよう構成されたジェスチャ認識エンジンであって、前記状態は、向き又は形状である、ジェスチャ認識エンジンと、
を備えた、装置。
【発明の詳細な説明】
【背景技術】
【０００１】
人間とコンピュータとのインタラクション、コンピュータ・ゲーム、及び他の用途のためのジェスチャ認識は、正確且つリアルタイムに実現するのは難しい。人間の手を用いてなされるような多くのジェスチャは、細かいものであり、他のジェスチャと区別するのは難しい。また、ジェスチャの画像をキャプチャするために使用される機器は、ノイズを多く含み、エラーが発生しやすいものであり得る。
【０００２】
いくつかの従来手法は、ゲーム・プレーヤの画像内の身体パーツを識別し、次いで、別の段階において、身体パーツを使用して、プレーヤの骨格モデルを形成するために身体パーツの３Ｄ空間座標を計算していた。この手法は、集中的計算を要するものであり得、身体パーツ識別がロバストでない場合、エラーを発生させやすいものであり得る。例えば、身体パーツのオクルージョン（occlusion）が生じる場合、異常な関節角（joint  angle）が生じる場合、又は、身体サイズ及び形状の変化に起因して等である。
【０００３】
他の従来手法は、記憶されたオブジェクトのテンプレートとマッチングするために画像をスケーリング及び回転させることにより、テンプレート・マッチング（template  matching）を使用していた。このタイプの手法には、大きな計算能力及び記憶容量が伴う。
【０００４】
以下で説明する実施形態は、既知のジェスチャ認識システムの欠点のうちのいずれか又は全てを解決する実施例に限定されるものではない。
【発明の概要】
【０００５】
以下は、読者に基本的な理解を提供するために、本開示の簡略化した概要を提供する。この概要は、本開示の詳細な概要ではなく、主要な／重要な要素を特定するものではないし、あるいは本明細書の範囲を詳細に説明するものではない。その唯一の目的は、後に提供されるより詳細な説明の前段として、本明細書で開示するコンセプトのうち選択したものを簡略化した形で提供することである。
【０００６】
ジェスチャ認識のためのパーツ及び状態検出（part  and  state  detection）は、人間とコンピュータとのインタラクション、コンピュータ・ゲーム、及びジェスチャがリアルタイムに認識される他の用途に有用である。様々な実施形態において、決定森分類器（decision  forest  classifier）を使用して、パーツ・ラベル及び状態ラベルの両方により入力画像の画像要素をラベリングする。ここで、パーツ・ラベルは、指先、掌、手首、唇、ラップトップの蓋等の、変形しやすいオブジェクトのコンポーネントを識別し、状態ラベルは、開いている、閉じている、上げている（up）、下げている（down）、広げている、握り締めている等の、変形しやすいオブジェクトの形状（configuration）を識別する。様々な実施形態において、パーツ・ラベルを使用して、身体パーツの重心を計算し、パーツ・ラベル、重心、及び状態ラベルを使用して、ジェスチャをリアルタイム又はほぼリアルタイムに認識する。
【０００７】
付随する特徴の多くは、添付の図面を参照して検討される以下の詳細な説明を参照することにより、より良く理解されるようになるにつれ、より容易に理解されるであろう。
【図面の簡単な説明】
【０００８】
本説明は、添付の図面を考慮して読まれる以下の詳細な説明から、より良く理解されるであろう。同様の参照符号は、添付の図面において同様の部分を示すために使用される。
【図１】従来のキーボード入力、空中ジェスチャ、及びキーボード上ジェスチャを用いてデスクトップ・コンピューティング・システムを操作するユーザの概略図。
【図２】図１のキャプチャ・システム及びコンピューティング・デバイスの概略図。
【図３】ジェスチャ認識の方法のフロー図。
【図４】トレーニング・データを生成するための装置の概略図。
【図５】ランダム決定森の概略図。
【図６】ランダム決定木の葉ノードにおいて記憶された１つの確率分布の概略図。
【図７】ランダム決定木の葉ノードにおいて記憶された２つの確率分布の概略図。
【図８】パーツ及び状態を分類するための第１段階のランダム決定森及び第２段階のランダム決定森の概略図。
【図９】テスト時間にトレーニングされたランダム決定森を使用する方法のフロー図。
【図１０】ランダム決定森をトレーニングする方法のフロー図。
【図１１】ジェスチャ認識システムの実施形態を実装することができる例示的なコンピューティングベースのデバイスを示す図。
【発明を実施するための形態】
【０００９】
添付の図面に関連して以下で提供される詳細な説明は、本例の説明として意図されるものであり、本例を構成又は利用することができる唯一の形を表すよう意図されるものではない。本説明は、本例の機能と、本例を構成して動作させるステップのシーケンスと、を記載する。しかしながら、同じ又は同等の機能及びシーケンスが、異なる例により実現されてもよい。
【００１０】
人間の手のためのパーツ及び状態認識システム（part  and  state  recognition  system）において実施されるものとして、本例について本明細書で説明及び例示するが、説明するシステムは、一例として提供されるものであり、限定として提供されるものではない。当業者は、本例が、様々な異なるタイプのパーツ及び状態認識システムにおけるアプリケーションに対して適切であることが理解されよう。そのようなパーツ及び状態認識システムは、身体全体によるジェスチャ認識システム（fully  body  gesture  recognition  system）、手及び腕によるジェスチャ認識システム（hand  and  arm  gesture  recognition  system）、顔によるジェスチャ認識システム（facial  gesture  recognition  system）、及び、多関節オブジェクト（articulated  object）、変形しやすいオブジェクト、又は静的オブジェクトのパーツ及び状態を認識するためのシステムを含むが、これらに限定されるものではない。認識されるべきジェスチャを行うエンティティは、人間、動物、植物、又は、ラップトップ・コンピュータ等の（生きていても生きていなくてもよい）他のオブジェクトであり得る。
【００１１】
パーツ及び状態両方の画像の画像要素を分類するためにトレーニングされるランダム決定森（random  decision  forest）を含むパーツ及び状態認識システムについて説明する。例えば、人間の手及び前腕の奥行き画像のライブ・ビデオ・フィード（live  video  feed）をリアルタイムに処理して、指先、掌、手首、前腕等のパーツを検出するとともに、握り締めている、広げている、上げている、下げている等の状態を検出する。いくつかの例において、パーツ・ラベル及び状態ラベルが、トレーニングされた森（trained  forest）により、同時に割り当てられる。図１を参照してこれより説明するコンピューティングベースのデバイスを制御するためのジェスチャ認識システムの一部として、これを使用することができる。しかしながら、これは一例に過ぎない。パーツ及び状態認識機能は、他のタイプのジェスチャ認識のために使用されてもよいし、形状を変え得るラップトップ・コンピュータ等のオブジェクトのパーツ及び状態を認識するために使用されてもよいし、視点に対して向きを変え得る静的オブジェクトのパーツ及び状態を認識するために使用されてもよい。
【００１２】
まず図１を参照すると、図１は、コンピューティングベースのデバイス１０２を制御するための例示的な制御システム１００を示している。この例において、制御システム１００により、従来の入力デバイス（例えば、マウス及びキーボード）及び手のジェスチャによってコンピューティングベースのデバイス１０２を制御することが可能となる。サポートされる手のジェスチャは、タッチ・ハンド・ジェスチャ（touch  hand  gesture）であってもよいし、フリーエアー・ジェスチャ（free-air  gesture）であってもよいし、それらの組合せであってもよい。「タッチ・ハンド・ジェスチャ」は、表面に接触している間の、片手又は両手の任意の予め定められた動きである。表面は、タッチ・センサを含んでもよいし、含まなくてもよい。「フリーエアー・ジェスチャ」は、片手又は両手が表面に接触していないときの、空中における片手又は両手の任意の予め定められた動きである。
【００１３】
両制御モードを統合することにより、ユーザは、使用しやすい形で、制御モードの各々の利点を経験する。詳細には、多くのコンピューティングベースのデバイス１０２のアクティビティ、特に、文書作成、コーディング、プレゼンテーション作成、又はグラフィック・デザイン・タスク等の、広範囲に及ぶ作成（extensive  authoring）、編集、又は細かい操作を要するアクティブティは、従来の入力デバイス（例えば、マウス及びキーボード）に合わせられている。しかしながら、モード切り替え、ウィンドウ及びタスク管理、メニュー選択、並びに、ショートカット・キー及び修飾キー又はコンテキスト・メニューにオフロードされる所定のタイプのナビゲーション等、タッチ・ハンド・ジェスチャ及び／又はフリーエアー・ハンド・ジェスチャ等の他の制御手段を用いてより容易に実施することができる、これらのタスクの要素が存在する。
【００１４】
図１に示すコンピューティングベースのデバイス１０２は、別個のプロセッサ・コンポーネント１０４及びディスプレイ・スクリーン１０６を有する従来のデスクトップ・コンピュータである。しかしながら、本明細書で説明する方法及びシステムは、プロセッサ・コンポーネント１０４及びディスプレイ・スクリーン１０６が、例えば、ラップトップ・コンピュータ又はタブレット・コンピュータ内に統合されるコンピューティングベースのデバイス１０２に等しく適用され得る。
【００１５】
制御システム１００は、コンピューティングベースのデバイス１０２と通信する、ユーザが従来の手段を介してコンピューティングベースのデバイス１０２を制御することを可能にする、キーボード等の入力デバイス１０８と、環境内の基準オブジェクト（例えば、入力デバイス１０８）に対するユーザの手の位置及び動きを検出するためのキャプチャ・デバイス１１０と、キャプチャ・デバイス１１０から得られた情報を解釈してコンピューティングベースのデバイス１０２を制御するためのソフトウェア（図示せず）と、をさらに備える。いくつかの例において、キャプチャ・デバイス１１０からの情報を解釈するためのソフトウェアの少なくとも一部は、キャプチャ・デバイス１１０に統合される。他の例において、ソフトウェアは、コンピューティングベースのデバイス１０２に統合される、あるいはコンピューティングベースのデバイス１０２上にロードされる。他の例において、ソフトウェアは、例えば、インターネットを介してコンピューティングベースのデバイス１０２と通信する別のエンティティに配置される。
【００１６】
図１において、キャプチャ・デバイス１１０は、上部に設けられ、ユーザの作業面１１２に対するよう下方を向いている。しかしながら、他の例において、キャプチャ・デバイス１１０は、基準オブジェクト（例えば、キーボード）内又は基準オブジェクト上に設けられてもよいし、あるいは環境内の別の適切なオブジェクト内又は別の適切なオブジェクト上に設けられてもよい。
【００１７】
動作中、コンピューティングベースのデバイス１０２により実行されているアプリケーションを制御するために使用することができるタッチ・ハンド・ジェスチャ及び／又はフリーエアー・ジェスチャとして、ユーザの手の位置及び動きが、コンピューティングベースのデバイス１０２（及び／又は、キャプチャ・デバイス１１０）により解釈され得るように、ユーザの手は、キャプチャ・デバイス１１０を用いて、基準オブジェクト（例えば、キーボード）に対して追跡され得る。結果として、従来の入力デバイス（例えば、キーボード及びマウス）を介してコンピューティングベースのデバイス１０２を制御することができることに加えて、ユーザは、基準オブジェクト（例えば、キーボード）上又は基準オブジェクトの上方で、自分の手を予め定められた形又はパターンで動かすことにより、コンピューティングベースのデバイス１０２を制御することができる。
【００１８】
したがって、図１の制御システム１００は、基準オブジェクト（例えば、キーボード）へのタッチ及び基準オブジェクト周辺のタッチに加えて、基準オブジェクト上方のフリーエアー・ジェスチャも認識することができる。
【００１９】
次に図２を参照すると、図２は、図１の制御システム１００において使用することができるキャプチャ・デバイス１１０の概略図を示している。図２におけるキャプチャ・デバイス１１０の位置は、一例に過ぎない。上方を向いたデスクトップ上、又は他の位置等、キャプチャ・デバイスの他の位置が使用されてもよい。キャプチャ・デバイス１１０は、ユーザの手の画像のストリームをキャプチャするための少なくとも１つの撮像センサ２０２を備える。撮像センサ２０２は、奥行きカメラ、ＲＧＢカメラ、シルエット画像（silhouette  image）をキャプチャ又は生成する撮像センサのうちの１以上とすることができる。ここで、シルエット画像は、オブジェクトのプロファイル（profile）を表す。撮像センサ２０２は、シーンの奥行き情報をキャプチャするよう構成された奥行きカメラとすることができる。奥行き情報は、奥行き値を含む奥行き画像の形態であり得る。奥行き値は、すなわち、奥行きカメラと各画像要素により表されるアイテム又はオブジェクトとの間の距離に関連する奥行き画像のその各画像要素に関連付けられた値である。
【００２０】
奥行き情報は、例えば、飛行時間、構造化光（structured  light）、立体画像（stereo  image）等を含む任意の適切な技術を用いて取得することができる。
【００２１】
キャプチャされた奥行き画像は、キャプチャされたシーンの２次元（２−Ｄ）領域を含み得る。ここで、２−Ｄ領域内の各画像要素は、撮像センサ２０２からの、キャプチャされたシーンにおけるオブジェクトの長さ又は距離等の奥行き値を表す。
【００２２】
場合によっては、奥行き情報を生成するために分解することができるビジュアル立体データ（visual  stereo  data）が取得されるように、撮像センサ２０２は、異なる角度からシーンを見る物理的に分離された２以上のカメラの形態であってもよい。
【００２３】
キャプチャ・デバイス１１０はまた、撮像センサ２０２により奥行き情報を確認することができるようなやり方でシーンを照らすよう構成されたエミッタ２０４を備えることができる。
【００２４】
キャプチャ・デバイス１１０はまた、撮像センサ２０２（例えば、奥行きカメラ）及びエミッタ２０４（存在する場合には）と通信する少なくとも１つのプロセッサ２０６を備えることができる。プロセッサ２０６は、汎用マイクロプロセッサであってもよいし、専用信号／画像プロセッサであってもよい。プロセッサ２０６は、奥行き画像をキャプチャするために命令を実行して撮像センサ２０２及びエミッタ２０４（存在する場合には）を制御するよう構成される。プロセッサ２０６は、任意的に、以下でより詳細に概説されるそのような画像及び信号に対する処理を実行するよう構成されてもよい。
【００２５】
キャプチャ・デバイス１１０はまた、プロセッサ２０６による実行のための命令、撮像センサ２０２によりキャプチャされた画像若しくはフレーム、又は任意の適切な情報、画像等を記憶するよう構成されたメモリ２０８を備えることができる。いくつかの例において、メモリ２０８は、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、キャッシュ、フラッシュ・メモリ、ハード・ディスク、又は任意の他の適切な記憶コンポーネントを含み得る。メモリ２０８は、プロセッサ２０６と通信する別個のコンポーネントであってもよいし、プロセッサ２０６に統合されてもよい。
【００２６】
キャプチャ・デバイス１１０はまた、プロセッサ２０６と通信する出力インタフェース２１０を備えることができる。出力インタフェース２１０は、通信リンクを介してコンピューティングベースのデバイス１０２にデータを供給するよう構成される。通信リンクは、例えば、有線接続（例えば、ＵＳＢ、Ｆｉｒｅｗｉｒｅ（登録商標）、Ｅｔｈｅｒｎｅｔ（登録商標）、又は同様のもの）であってもよいし、且つ／あるいは、無線接続（例えば、ＷｉＦｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、又は同様のもの）であってもよい。他の例において、出力インタフェース２１０は、１以上の通信ネットワーク（例えば、インターネット）とインタフェースを取ることができ、そのようなネットワークを介してコンピューティングベースのデバイス１０２にデータを供給することができる。
【００２７】
コンピューティングベースのデバイス１０２は、ジェスチャ認識に関連する１以上の機能を実行するよう構成されているジェスチャ認識エンジン２１２を備えることができる。ジェスチャ認識エンジンにより実行され得る例示的な機能については、図３を参照して説明する。例えば、ジェスチャ認識エンジン２１２は、キャプチャ・デバイス１１０によりキャプチャされた画像の各画像要素（例えば、ピクセル）を、突出する変形しやすいオブジェクト・パーツ（例えば、指先、手首、掌）及び状態（例えば、上げている、下げている、開いている、閉じている、指し示している）として分類するよう構成され得る。状態、パーツ、及び任意的にそのパーツの重心が、セマンティックなジェスチャ認識のための基礎として、ジェスチャ認識エンジン２１２により使用され得る。この分類手法は、格段に単純化されたジェスチャ認識エンジン２１２をもたらす。例えば、これにより、予め定められた数の画像の特定のオブジェクト状態又はオブジェクト状態間の遷移を探すことによって、いくつかのジェスチャを認識することが可能となる。
【００２８】
アプリケーション・ソフトウェア２１４がまた、コンピューティングベースのデバイス１０２上で実行され、入力デバイス１０８（例えば、キーボード）から受信された入力と、ジェスチャ認識エンジン２１２の出力（例えば、検出されたタッチ・ハンド・ジェスチャ及びフリーエアー・ハンド・ジェスチャ）と、を用いて制御され得る。
【００２９】
図３は、ジェスチャ認識の方法のフロー図である。この方法の少なくとも一部は、図２のジェスチャ認識エンジン２１２において実行され得る。少なくとも１つのトレーニングされたランダム決定森３０４（又は、他の分類器）は、ジェスチャ認識エンジン２１２がアクセス可能である。ランダム決定森３０４は、オフライン・プロセス３０２で作成及びトレーニングされ得、コンピューティングベースのデバイス１０２、クラウド内の任意の他のエンティティ、又はコンピューティングベースのデバイス１０２と通信するどこかに記憶され得る。ランダム決定森３０４は、パーツ・ラベル及び状態ラベル３１０の両方により入力画像３０８の画像要素をラベリングするためにトレーニングされる。ここで、パーツ・ラベルは、指先、掌、手首、唇、ラップトップの蓋等の、変形しやすいオブジェクトのコンポーネントを識別し、状態ラベルは、開いている、閉じている、広げている、握り締めている等の、オブジェクトの形状、又は、上げている、下げている等の、オブジェクトの向きを識別する。画像要素は、ピクセル、ピクセルのグループ、ボクセル、ボクセルのグループ、ブロブ、パッチ、又は画像の他のコンポーネントとすることができる。ランダム決定森３０４は、単一スレッド実装における従来のコンピューティング・ハードウェアを用いたとしても、計算上コストがかからず、図１のキャプチャ・デバイス１１０からのライブ・ビデオ・フィードに対してリアルタイム又はほぼリアルタイムに実行することができる高速且つ単純な方法で、パーツ・ラベル及び状態ラベルの両方を提供する。また、パーツ・ラベルを、高速且つ正確なプロセスにおいて使用して、各パーツについての重心を計算することができる。これにより、オブジェクト・パーツの３Ｄ位置を取得することが可能となる。
【００３０】
状態ラベル、パーツ・ラベル、及び重心が、ジェスチャ検出システム３１２に入力され得る。ジェスチャ検出システム３１２は、以前のジェスチャ検出システムと比較すると、ジェスチャ検出システム３１２が扱う入力の性質のため、格段に単純化される。例えば、そのような入力により、予め定められた数の画像の特定のオブジェクト状態又はオブジェクト状態間の遷移を探すことによって、いくつかのジェスチャを認識することが可能となる。
【００３１】
上述したように、ランダム決定森３０４は、オフライン・プロセス３０２でトレーニングされ得る。トレーニング画像３００が使用される。トレーニング画像をどのように取得することができるかについてのさらなる詳細は、図４を参照して提供される。ランダム決定森をトレーニングする方法についての詳細は、図１０を参照して、本文書の後の方で提供される。
【００３２】
コンピュータにより実施されるトレーニング・データ生成器４１４は、トレーニング画像とも呼ばれるグラウンド・トゥルース・ラベル付き画像（ground  truth  labeled  image）４００を生成及び記録する。グラウンド・トゥルース・ラベル付き画像４００は、多くの画像のペアを含み得る。各ペア４２２は、オブジェクトの画像４２４と、その画像のラベル付きバージョンと、を含む。ここで、関連画像要素（前景画像要素等）は、パーツ・ラベルを含み、画像要素の少なくともいくつかはまた、状態ラベルを含む。画像のペア４０２の一例が、図４において概略的に示されている。画像のペア４０２は、手の画像４０４と、その画像のラベル付きバージョン４０６と、を含み、画像のラベル付きバージョン４０６は、第１のラベル値を取る指先４０８と、第２のラベル値を取る手首４１２と、第３のラベル値を取る手の残りのパーツ４１０と、を含む。トレーニング画像内に表されるオブジェクト及び使用されるラベルは、アプリケーション・ドメイン（application  domain）に応じて変わり得る。オブジェクトと、そのようなオブジェクトの形状及び向きと、のトレーニング画像における様々な例は、アプリケーション・ドメイン、ストレージ、及び利用可能なコンピューティング・リソースに応じて、できるだけ広い。
【００３３】
トレーニング画像のペアは、コンピュータ・グラフィックス技術を用いて、合成的に生成され得る。例えば、コンピュータ・システム４１６は、オブジェクトの仮想３Ｄモデル４１８及びレンダリング・ツール４２０にアクセスする。仮想３Ｄモデルを用いると、レンダリング・ツール４２０は、異なる状態の仮想３Ｄモデルの複数の画像を生成するとともに、状態及びパーツのためにラベリングされる、レンダリングされる画像のバージョンを生成するよう構成され得る。例えば、人間の手の仮想３Ｄモデルは、異なるユーザ及びジェスチャのスタイルに対応するために、ランダム決定森が分類すべき様々な別個の状態で、且つ、骨の長さや外周等の関節角の構成及び外観の点でわずかなランダムなバリエーションを有して配置される。３Ｄモデルの２Ｄレンダリングは、多くの異なる妥当な視点から自動的に生成され得る。レンダリングの１つのセットは、キャプチャされた画像が奥行き画像である場合、合成奥行き画像（synthetic  depth  image）であり得る。レンダリングの別のセットは、ラベル付きデータにより質感を持たせた３Ｄモデルを用いて生成され得る。ここで、指、前腕、及び掌は、色が付けられ、掌領域の色は、現在の手の状態に基づいて決定される。これは、ラベル付きの手のパーツを含む複数の奥行き画像をもたらす。ここで、掌を表す画像要素も、状態のためにラベリングされる。手全体又は掌及び指等の掌以外の他の領域が、状態のために使用され得る。掌を表す画像要素も状態のためにラベリングされるここで説明した例は、一例に過ぎない。
【００３４】
トレーニング画像のペアは、コンピュータにより実施される画像キャプチャ・ラベリング・コンポーネント４２８からの現実画像を含み得る。例えば、オブジェクト上のセンサを使用して、その形状及び向きを追跡し、そのパーツをラベリングすることができる。手のジェスチャの場合、デジタル・グローブ４３０が、システムにより検出されるべきジェスチャを行うために自分の手を動かすユーザにより装着され得る。デジタル・グローブ４３０により感知されたデータを使用して、カメラによりキャプチャされた画像をラベリングすることができる。
【００３５】
いくつかの例において、モーション・キャプチャ・デバイス４３２を使用して、オブジェクトの動きを記録する。例えば、音響マーカ、慣性マーカ、磁気マーカ、発光マーカ、反射マーカ、又は他のマーカが、人間又は他の変形しやすいオブジェクトにより装着され、オブジェクトの形状及び向きの変化を追跡するために使用される。
【００３６】
合成画像の使用は、正確に注釈が付けられた画像（precisely  annotated  image）に有用であるが、合成画像が現実の手の実際の画像に正確にマッチすることを確実にすることは難しい。したがって、いくつかの例において、合成画像を用いることに加えて、現実オブジェクトの画像を用いると、システムの正確性を高めることができる。別のオプションは、合成ノイズ（synthetic  noise）をレンダリングされる合成画像に付加することである。
【００３７】
図５は、３つのランダム決定木５００、５０２、５０４を含むランダム決定森の概略図である。２以上のランダム決定木が使用され得る。この例では、明瞭さのため、３つのランダム決定木が示されている。ランダム決定木は、トレーニング・フェーズ中に蓄積されるデータを記憶するために使用される一種のデータ構造であり、これを使用して、ランダム決定木により以前には未確認の例について予測を行うことができるようにするものである。ランダム決定木は、汎化を実現するために（すなわち、森をトレーニングするために使用される例とは違う例について良好な予測を行うことができるように）、特定のアプリケーション・ドメインのためにトレーニングされるランダム決定木の集合（森と呼ばれる）の一部として、通常は使用される。ランダム決定木は、根ノード５０６と、複数の分岐ノード５０８と、複数の葉ノード５１０と、を有する。トレーニング中、木の構造（ノードの数、及びノードがどのように接続されるか）が、分岐ノードの各々において使用されるべき分岐関数とともに学習される。さらに、トレーニング中、データが、葉ノードにおいて蓄積される。トレーニング・プロセスについてのさらなる詳細は、図１０を参照して以下で提供される。
【００３８】
本明細書で説明する例において、ランダム決定森は、パーツ・ラベル及び状態ラベルの両方により画像の画像要素をラベリング（又は、分類）するためにトレーニングされる。従来では、ランダム決定森は、パーツ・ラベル及び状態ラベルの両方によってではなく、パーツ・ラベルによって画像の画像要素を分類するために使用されていた。いくつかの理由のため、パーツ及び状態の両方により画像要素を分類するよう既存のランダム決定森システムを修正することは容易ではない。例えば、パーツ及び状態の可能な組合せの数は、通常、リアルタイム処理制約が存在する大抵のアプリケーション・ドメインにとって非常に大きい。非常に多くの可能な状態及びパーツの組合せが存在する場合、ランダム決定森をトレーニングするためにクラスとして状態及びパーツの外積を用いることは、計算上コストがかかる。
【００３９】
本明細書で説明する例では、単一フレームワークにおいて、個々のピクセルレベルのラベル（パーツ・ラベル）の使用と、全体画像レベルのラベル（状態ラベル）の使用と、を組み合わせることにより、ジェスチャ認識のための、高速且つ効果的な、画像のパーツ及び状態のラベリングが可能となる。
【００４０】
プロセスにおいて、根ノードから葉ノードへのランダム決定森の複数の木を通じて、画像の画像要素をプッシュすることができ、それにより、各分岐ノードにおいて決定がなされる。決定は、画像要素の特徴と、分岐ノードにおけるパラメータにより指定される空間オフセットだけ画像要素からずらされたテスト画像要素の特徴と、に従ってなされる。分岐ノードにおいて、画像要素は、決定の結果に従って選択された分岐を下がって木の次のレベルに進む。ランダム決定森は、以下でより詳細に説明する回帰（regression）又は分類を使用することができる。トレーニング中、（フィーチャとも呼ばれる）パラメータ値が、分岐ノードにおける使用のために学習され、パーツ及び状態ラベルの投票（vote）を含むデータが、葉ノードにおいて蓄積される。
【００４１】
トレーニング中に葉ノードにおいて蓄積された全てのデータを記憶することは、大量のメモリを要し得る。というのは、実際的な用途のために、大量のトレーニング・データが通常使用されるからである。いくつかの実施形態において、データは、コンパクトな形で記憶され得るように、集約される。様々な異なる集約プロセスが使用され得る。
【００４２】
決定木ｔの各葉ノードは、パーツ及び状態ｃに対する学習済み確率分布Ｐｔ（ｃ｜ｕ）を記憶することができる。次いで、このような分布が、以下の式に示す最終分布に達するために、複数の木にわたって（例えば、平均することにより）集約され得る。
【数１】
2016503220.tif 000003
【００４３】
ここで、Ｐ（ｃ｜ｕ）は、画像要素がどの手のパーツに属するかと、これがどの手の状態を符号化するかと、の画像要素ごとの投票として解釈される。Ｔは、森における木の総数である。
【００４４】
テスト時間において、以前には未確認の画像が、その画像要素をラベリングするために、トレーニングされた森に入力される。入力画像の各画像要素が、トレーニングされたランダム決定森の各木を介して送られ得、データが葉から取得される。このように、パーツ及び状態ラベルの投票が、各画像要素を、学習された空間オフセットだけ各画像要素からずらされたテスト画像要素と比較することにより、なされ得る。こうした投票が、予測されるパーツ・ラベル及び状態ラベルを与えるために、様々な異なる集約方法に従って集約され得る。テスト時間プロセスは、したがって、予測されるパーツ・ラベル及び状態ラベルを直接取得するために、入力画像をトレーニングされたランダム決定森に適用する単一段階のプロセスであり得る。この単一段階のプロセスは、リアルタイム且つ高品質の結果を与えるために、高速且つ効果的に実行され得る。
【００４５】
上述したように、トレーニング中に葉ノードにおいて蓄積されたデータを記憶することは、大量のメモリを要し得る。というのは、実際的な用途のために、大量のトレーニング・データが通常使用されるからである。これは、特に、パーツ・ラベル及び状態ラベルの可能な組合せの数が多いものであり得るときにパーツ・ラベル及び状態ラベルの両方が予測されることになる場合である。したがって、いくつかの実施形態において、図６を参照してこれから説明するように、状態ラベルは、可能なパーツのサブセットに対して予測される。
【００４６】
図６は、１つのヒストグラムの形態で記憶される、葉ノード５１０において蓄積されたデータ６００を示す、図５のランダム決定森のうちの１つの概略図である。ヒストグラムは、複数のビン（bin）を含み、各ビンについてのビン・カウント又は頻度を示している。この例において、ランダム決定木は、画像要素を、３つの可能なパーツと、４つの可能な状態ラベルと、に分類している。３つの可能なパーツは、手首、指先、及び掌である。４つの可能な状態は、上げている、下げている、開いている、及び閉じている、である。この例において、状態ラベルは、掌の画像要素について利用可能であり、他のパーツの画像要素については利用可能でない。例えば、これは、トレーニング・データが手の画像を含み、指、前腕、及び掌が色を付けられ、掌の色が現在の手の状態に基づいて変わるからである。状態ラベルが、パーツの全てについてではなく、少なくとも１つのパーツについて利用可能であるので、可能な組合せの数は低減され、データは、他の可能なものよりもコンパクトな形で記憶することができる。
【００４７】
図７は、２つのヒストグラムの形態で記憶される、葉ノード５１０において蓄積されたデータ７００を示す、図５のランダム決定森のうちの１つの概略図である。一方のヒストグラムは、状態ラベル頻度を記憶し、他方のヒストグラムは、パーツ・ラベル頻度を記憶する。これにより、記憶容量に対する要求を過度に増大させることなく、図６の例よりも多くの組合せを表すことが可能となる。この状況において、トレーニング・データは、パーツの各々についての状態ラベルを含み得る。別のオプションは、状態ラベル及びパーツ・ラベルの全ての可能な組合せを表すために、各葉において１つのヒストグラムを使用することである。再度、トレーニング・データは、パーツの各々についての状態ラベルを含み得る。
【００４８】
図８は、第１段階のランダム決定森８００を使用して、画像要素をパーツに分類しパーツ分類８０２を与える別の実施形態の概略図である。パーツ分類８０２を使用して、複数の第２段階のランダム決定森８０４、８０６、８０８のうちの１つを選択する。可能なパーツ分類（図８の例における手首、掌、指先等）のそれぞれについて、第２段階のランダム決定森が存在し得る。第２段階のランダム決定森が選択されると、テスト画像についての状態８１０の分類を得るために、テスト画像要素が、選択された第２段階の森に入力され得る。第１段階の森及び第２段階の森は、同じ画像を用いてトレーニングされ得るが、そのラベルは、第１段階及び第２段階についてのラベリング・スキームを反映するために異なる。
【００４９】
図９は、パーツ及び状態の両方のためにラベリングされたトレーニング画像を用いてトレーニングされた決定森を用いて、以前には未確認の画像におけるパーツ・ラベル及び状態ラベルを予測するためのプロセスのフローチャートを示している。トレーニング・プロセスについては、図１０を参照して以下で説明する。まず、未確認の画像が受信される（９００）。この画像は、すでに指定されたパーツ・ラベル及び状態ラベルを有するトレーニング画像と区別するために、「未確認」と呼ばれる。未確認の画像は、例えば、前景領域を識別する程度まで前処理することができ、これにより、決定森により処理されるべき画像要素の数が低減されることに留意されたい。しかしながら、前景領域を識別するための前処理は必須ではない。いくつかの例において、未確認の画像は、シルエット画像、奥行き画像、又は色画像である。
【００５０】
未確認の画像から画像要素が選択される（９０２）。決定森からトレーニングされた決定木もまた選択される（９０４）。選択された画像要素が、選択された決定木を通じてプッシュされ（９０６）、これが、ノードにおけるトレーニングされたパラメータに対してテストされ、次いで、テストの結果に応じて、適切な子に渡され、画像要素が葉ノードに達するまで、このプロセスが繰り返される。画像要素が葉ノードに達すると、この葉ノードに関連付けられた（トレーニング段階からの）蓄積されたパーツ及び状態ラベルの投票が、この画像要素のために記憶される（９０８）。パーツ及び状態ラベルの投票は、図６及び図７を参照して説明したヒストグラムの形態であってもよいし、別の形態であってもよい。
【００５１】
森においてさらなる決定木が存在すると判定された場合（９１０）、新たな決定木が選択され（９０４）、画像要素が木を通じてプッシュされ（９０６）、蓄積された投票が記憶される（９０８）。これは、森における全ての決定木について実行されるまで繰り返される。決定森における複数の木を通じて画像要素をプッシュするプロセスは、図９に示すように順番に実行される代わりに、並行して実行されてもよいことに留意されたい。
【００５２】
次いで、さらなる未解析の画像要素が、未確認の画像内に存在するかどうかが判定され（９１２）、未解析の画像要素が存在する場合、別の画像要素が選択されて、プロセスが繰り返される。未確認の画像内の全ての画像要素が解析されると、全ての画像要素について、パーツ及び状態ラベルの投票が得られる。
【００５３】
画像要素が、決定森における複数の木を通じてプッシュされるので、投票は蓄積する。所与の画像要素に関して、各画像要素についての全投票集約（overall  vote  aggregation）を形成するために、蓄積された投票が、森における複数の木にわたって集約される（９１４）。任意的に、投票のサンプルが、集約のために必要とされてもよい。例えば、Ｎ個の投票をランダムに選択して、あるいは、上位Ｎ個の重み付き投票を考慮することによりＮ個の投票を選択して、次いで、集約プロセスを、これらＮ個の投票にのみ適用してもよい。これは、速度とトレード・オフの関係にある正確性を可能にする。
【００５４】
パーツ・ラベル及び状態ラベルの少なくとも１つのセットが、次いで、出力され得る（９１６）。ここで、これらのラベルは、信頼重み付けされ得る（confidence  weighted）。これは、任意の後続のジェスチャ認識アルゴリズム（又は、他のプロセス）が、この提案が良いか良くないかを評価するのを助ける。例えば、不確実さが存在する場合、パーツ・ラベル及び状態ラベルの２以上のセットが出力されてもよい。
【００５５】
各パーツについての重心が計算され得る（９１８）。例えば、これは、平均シフト・プロセス（mean  shift  process）を用いて各パーツについての重心を計算することにより達成され得る。他のプロセスを使用して、重心を計算してもよい。画像要素ごとの状態分類がまた、全ての関連画像要素にわたって集約され得る。例えば、関連画像要素は、上述した例における掌を表すものであり得る。画像要素ごとの状態分類の集約は、様々な方法により実行され得る。そのような方法には、掌（又は、他の関連領域）における各画像要素が、グローバル状態（global  state）のために別個の投票を行うこと、各画像要素が、確立に基づいて、ソフトな（soft）（確率的）投票を行うこと、又は、一部の画像要素のみが、自身の投票について十分自信がある場合に、投票を行うことが含まれる。
【００５６】
図１０は、パーツ・ラベル及び状態ラベルを画像の画像要素に割り当てるために、決定森をトレーニングするためのプロセスのフローチャートである。これはまた、画像の画像要素についてのパーツ及び状態ラベルの投票を生成するものと考えることができる。決定森は、図４を参照して上述したトレーニング画像のセットを用いてトレーニングされる。
【００５７】
図１０を参照すると、決定木をトレーニングするために、上述したトレーニング・セットがまず受信される（１０００）。ランダム決定森において使用されるべき決定木の数が選択される（１００２）。ランダム決定森は、決定論的決定木（deterministic  decision  tree）の集合である。決定木は、分類アルゴリズム又は回帰アルゴリズムにおいて使用され得るが、過剰適合（over-fitting）、すなわち汎化できないこと（poor  generalization）に悩まされ得る。しかしながら、多くのランダムにトレーニングされた決定木の集合（ランダム森）は、改善された汎化をもたらす。トレーニング・プロセス中、木の数は固定される。
【００５８】
トレーニング・プロセスを説明するために、以下の表記が使用される。画像Ｉ内の画像要素は、その座標ｘ＝(x,y)により定められる。森は、各木をインデックス付けするｔを用いてΨ１，．．．，Ψｔ，．．．，ΨＴと表されるＴ個の木から構成される。
【００５９】
動作中、各木の各根ノード及び各分岐ノードは、入力データに対してバイナリ・テストを実行し、その結果に基づいて、そのデータを左又は右の子ノードに向かわせる。葉ノードはいかなるアクションも実行しない。葉ノードは、蓄積されたパーツ及び状態ラベルの投票（と任意的に他の情報）を記憶する。例えば、蓄積された投票を表す確率分布が記憶され得る。
【００６０】
分岐ノードの各々により使用されるパラメータが選択される方法、及び葉ノードの確率がどのように計算され得るかについて、これより説明する。決定森から決定木（例えば、第１の決定木）が選択され（１００４）、根ノードが選択される（１００６）。トレーニング画像の各々からの画像要素の少なくともサブセットが、次いで、選択される（１００８）。例えば、前景領域内の画像要素が選択されるように、画像がセグメント化され得る。
【００６１】
テスト・パラメータのランダム・セットが、次いで、候補フィーチャとして、根ノードにおいて実行されるバイナリ・テストによる使用のために生成される（１０１０）。一例において、バイナリ・テストは、ξ＞ｆ（ｘ；θ）＞τの形を取る。ｆ（ｘ；θ）は、パラメータθを含む画像要素ｘに適用される関数であり、この関数の出力が、閾値ξ及び閾値τと比較される。ｆ（ｘ；θ）の結果が、ξとτとの間の範囲にある場合、バイナリ・テストの結果は真である。そうでなければ、バイナリ・テストの結果は偽である。他の例において、ｆ（ｘ；θ）の結果が、閾値よりも大きい（あるいは、代替的に閾値よりも小さい）場合、バイナリ・テストの結果が真であるように、閾値ξ及び閾値τのうちの一方のみが使用されてもよい。ここで説明した例において、パラメータθは、画像のフィーチャを定める。
【００６２】
候補関数ｆ（ｘ；θ）は、テスト時間において利用可能である画像情報を使用できるだけである。関数ｆ（ｘ；θ）のパラメータθは、トレーニング中にランダムに生成される。パラメータθを生成するプロセスは、２次元変位又は３次元変位の形のランダムな空間オフセット値を生成することを含む。関数ｆ（ｘ；θ）の結果が、次いで、画像内の対象とする画像要素ｘからその空間オフセットだけずらされているテスト画像要素についての（奥行き画像の場合は奥行き、強度（intensity）、又は使用されている画像のタイプに応じた別の量等の）画像要素値を観測することにより計算される。空間オフセットは、任意的に、１／対象とする画像要素の量だけスケーリングすることにより評価されている量に対して不変となる。閾値ξ及び閾値τを使用して、テスト画像要素がパーツ・ラベル及び状態ラベルの特定の組合せを有するかどうかを判定することができる。
【００６３】
根ノード又は分岐ノードにおいて実行されたバイナリ・テストの結果により、画像要素がどの子ノードに渡されるかが判定される。例えば、バイナリ・テストの結果が真である場合、画像要素は、第１の子ノードに渡されるのに対し、バイナリ・テストの結果が偽である場合、画像要素は、第２の子ノードに渡される。
【００６４】
生成されるテスト・パラメータのランダム・セットは、関数パラメータθ、並びに閾値ξ及び閾値τのための複数のランダム値を含む。ランダムさを決定木に投入するために、各分岐ノードの関数パラメータθは、全ての可能なパラメータのランダムにサンプリングされたサブセットΘにわたってのみ最適化される。これは、ランダムさを決定木に投入する効果的且つ単純な方法であり、汎化を増大させる。
【００６５】
次いで、テスト・パラメータの全ての組合せが、トレーニング画像のセットにおける各画像要素に適用され得る（１０１２）。すなわち、θ（すなわち、θｉ∈Θ）について利用可能な値が、各トレーニング画像内の各画像要素についてのξ及びτの利用可能な値とともに次々に試行される。各組合せについて、基準（criteria）（オブジェクティブ（objective）とも呼ばれる）が計算される（１０１４）。一例において、計算された基準は、パーツ及び情報に対する１以上のヒストグラムの情報利得（相対エントロピとしても知られている）を含む。基準を最適化する（例えば、（θ＊、ξ＊、及びτ＊で表される）情報利得を最大にする）パラメータの組合せが選択され（１０１４）、将来の使用のために現ノードに記憶される。情報利得に対する代替として、ジニ・エントロピ（Gini  entropy）、「ｔｗｏ−ｉｎｇ」基準、又はその他等の他の基準が使用されてもよい。
【００６６】
次いで、計算された基準の値が、閾値より小さい（あるいは、大きい）かどうかが判定される（１０１６）。計算された基準の値が、閾値よりも小さい場合、これは、木のさらなる拡張が意味のある利益を提供しないことを示す。これは、さらなるノードが有益でない場合に自然に大きくなるのを止める非対称木（asymmetrical  trees）を生じさせる。そのような場合、現ノードが、葉ノードとして設定される（１０１８）。同様に、木の現在の深さ（すなわち、根ノードと現ノードとの間にどれだけの数のノードのレベルがあるか）が決定される。これが、予め定められた最大値よりも大きい場合、現ノードが、葉ノードとして設定される（１０１８）。各葉ノードは、以下で説明するように、トレーニング・プロセス中にその葉ノードにおいて蓄積するパーツ及び状態ラベルの投票を有する。
【００６７】
また、すでに述べた基準とともに別の停止基準（stopping  criterion）を使用することも可能である。例えば、葉に達する画像要素例の数を評価することである。（例えば、閾値と比較して）非常に少数の例しか存在しない場合、プロセスは、過剰適合を回避するために、停止するよう構成され得る。しかしながら、この停止基準を使用することは、必須ではない。
【００６８】
計算された基準の値が、閾値以上であり、木の深さが、最大値より小さい場合、現ノードが、分岐ノードとして設定される（１０２０）。現ノードが分岐ノードであるとき、これは子ノードを有し、プロセスは、次いで、そのような子ノードをトレーニングすることに進む。各子ノードは、現ノードにおけるトレーニング画像要素のサブセットを用いてトレーニングされる。子ノードに送られる画像要素のサブセットは、基準を最適化したパラメータを用いて決定される。そのようなパラメータが、バイナリ・テストにおいて使用され、バイナリ・テストが、現ノードにおける全ての画像要素に対して実行される（１０２２）。バイナリ・テストを通過する画像要素は、第１の子ノードに送られる第１のサブセットを形成し、バイナリ・テストを通過しない画像要素は、第２の子ノードに送られる第２のサブセットを形成する。
【００６９】
子ノードの各々について、図１０のブロック１０１０〜ブロック１０２２において概説されるプロセスが、それぞれの子ノードに送られた画像要素のサブセットに対して再帰的に実行される（１０２４）。すなわち、各子ノードについて、新たなランダム・テスト・パラメータが生成され（１０１０）、そのランダム・テスト・パラメータがそれぞれの画像要素のサブセットに適用され（１０１２）、基準を最適化するパラメータが選択され（１０１４）、ノードのタイプ（分岐ノード又は葉ノード）が決定される（１０１６）。葉ノードである場合、再帰の現在の分岐が止まる。分岐ノードである場合、画像要素のさらなるサブセットを決定するために、バイナリ・テストが実行され（１０２２）、再帰の別の分岐が始まる。したがって、このプロセスは、木を再帰的に移動し、各分岐において葉ノードに達するまで各ノードをトレーニングする。葉ノードに達すると、全ての分岐におけるノードがトレーニングされるまで、プロセスは待機する（１０２６）。他の例において、同じ機能が、再帰に対する代替技術を用いて実現されてもよいことに留意されたい。
【００７０】
各分岐ノードにおける、基準を最適化する、バイナリ・テストのためのパラメータを決定するために、木における全てのノードがトレーニングされ、各分岐を終了させるために、葉ノードが選択されると、木の葉ノードにおいて、投票が蓄積され得る（１０２８）。投票は、パーツ及び状態に対する１以上のヒストグラムにおけるパーツ及び状態の追加のカウントを含む。これはトレーニング段階であるので、所与の葉ノードに達する特定の画像要素は、グラウンド・トゥルース・トレーニング・データから知られているパーツ及び状態ラベルの投票を指定している。蓄積された投票の表現が、様々な異なる方法を用いて記憶され得る（１０３０）。ヒストグラムの記憶が、低メモリで可能であるように、ヒストグラムは、小さな固定次元（small  fixed  dimension）であり得る。
【００７１】
蓄積された投票が記憶されると、決定森においてさらなる木が存在するかどうかが判定される（１０３２）。さらなる木が存在する場合、決定森における次の木が選択され、プロセスは繰り返す。森における全ての木がトレーニングされ、他に残っていない場合、トレーニング・プロセスは完了し、プロセスは終了する（１０３４）。
【００７２】
したがって、トレーニング・プロセスの結果として、１以上の決定木が、合成されたトレーニング画像又は経験的トレーニング画像（empirical  training  image）を用いてトレーニングされる。各木は、最適化されたテスト・パラメータを記憶する複数の分岐ノードと、関連するパーツ及び状態ラベルの投票又は集約されたパーツ及び状態ラベルの投票の表現を記憶する葉ノードと、を含む。各ノードにおいて使用される限定されたサブセットからのパラメータのランダムな生成に起因して、森における木は、互いに違っている（すなわち、異なっている）。
【００７３】
代替的又は追加的に、本明細書で説明した機能は、１以上のハードウェア論理コンポーネントにより、少なくとも部分的に実行されてよい。例えば、使用することができる例示的なタイプのハードウェア論理コンポーネントは、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、特定用途向け標準品（ＡＳＳＰ）、システム・オン・チップ・システム（ＳＯＣ）、コンプレックス・プログラマブル論理デバイス（ＣＰＬＤ）、グラフィックス処理装置（ＧＰＵ）を含むが、これらに限定されるものではない。
【００７４】
図１１は、コンピューティング・デバイス及び／又は電子デバイスの任意の形態として実装することができ、本明細書で説明したシステム及び方法の実施形態を実施することができる例示的なコンピューティングベースのデバイス１０２の様々なコンポーネントを示している。
【００７５】
コンピューティングベースのデバイス１０２は、１以上のプロセッサ１１０２を備える。１以上のプロセッサ１１０２は、マイクロプロセッサ、コントローラ、又は、状態及びパーツの両方のために画像要素をラベリングして単純化されたジェスチャ認識を可能にするために、コンピュータ実行可能命令を処理してデバイスのオペレーションを制御する任意の他の適切なタイプのプロセッサとすることができる。いくつかの例において、例えば、システム・オン・チップ・アーキテクチャが使用される場合、プロセッサ１１０２は、（ソフトウェア又はファームウェアではなく）ハードウェアでコンピューティングベースのデバイスを制御する方法の一部を実装する１以上の固定機能ブロック（アクセラレータとも呼ばれる）を含み得る。オペレーティング・システム１１０４又は任意の他の適切なプラットフォーム・ソフトウェアを含むプラットフォーム・ソフトウェアが、アプリケーション・ソフトウェア２１４をデバイス上で実行できるように、コンピューティングベースのデバイスにおいて提供され得る。
【００７６】
コンピュータ実行可能命令は、コンピューティングベースのデバイス１０２によりアクセス可能な任意のコンピュータ読み取り可能媒体を用いて提供され得る。コンピュータ読み取り可能媒体は、例えば、メモリ１１０６等のコンピュータ記憶媒体と、通信媒体と、を含み得る。メモリ１１０６等のコンピュータ記憶媒体は、コンピュータ読み取り可能命令、データ構造、プログラム・モジュール、又は他のデータ等の情報を記憶するために任意の方法又は技術で実装された、揮発性及び不揮発性の取り外し可能な媒体及び取り外し不可能な媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ、若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、若しくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ、若しくは他の磁気記憶デバイス、又は、コンピューティングベースのデバイスによりアクセスされる情報を記憶するために使用することができる任意の他の非伝送媒体を含むが、これらに限定されるものではない。反対に、通信媒体は、コンピュータ読み取り可能命令、データ構造、プログラム・モジュール、又は他のデータを、搬送波又は他の搬送機構などの変調されたデータ信号内に具現化することができる。本明細書で定められるように、コンピュータ記憶媒体は、通信媒体を含まない。したがって、コンピュータ記憶媒体は、信号自体を伝搬するものと解釈されるべきではない。伝搬信号は、コンピュータ記憶媒体内に存在し得るが、伝搬信号自体は、コンピュータ記憶媒体の例ではない。コンピュータ記憶媒体（メモリ１１０６）は、コンピューティングベースのデバイス１０２内に示されているが、ストレージは、分散されてもよいし、リモートに位置し、ネットワーク又は他の通信リンクを介して（例えば、通信インタフェース１１０８を用いて）アクセスされてもよいことが理解されよう。
【００７７】
コンピューティングベースのデバイス１０２はまた、コンピューティングベースのデバイス１０２と別個のものであってもコンピューティングベースのデバイス１０２と統合されてもよいディスプレイ・デバイス１０６（図１）にディスプレイ情報を出力するよう構成された入力／出力コントローラ１１１０を備える。ディスプレイ情報は、グラフィカル・ユーザ・インタフェースを提供し得る。入力／出力コントローラ１１１０はまた、ユーザ入力デバイス１０８（図１）（例えば、マウス、キーボード、カメラ、マイクロフォン、又は他のセンサ）等の１以上のデバイスからの入力を受信及び処理するよう構成される。いくつかの例において、ユーザ入力デバイス１０８は、音声入力、ユーザ・ジェスチャ、又は他のユーザ・アクションを検出することができ、ナチュラル・ユーザ・インタフェース（ＮＵＩ）を提供し得る。一実施形態において、ディスプレイ・デバイス１０６はまた、タッチ式ディスプレイ・デバイスである場合、ユーザ入力デバイス１０８として動作することもできる。入力／出力コントローラ１１１０はまた、例えば、ローカルで接続されたプリンティング・デバイス（図１１には示していない）といった、ディスプレイ・デバイス以外のデバイスにデータを出力することもできる。
【００７８】
入力／出力コントローラ１１１０、ディスプレイ・デバイス１０６、及び任意的にユーザ入力デバイス１０８は、マウス、キーボード、リモコン等の入力デバイスにより課せられる人工的制約なく、ユーザがコンピューティングベースのデバイスと自然にインタラクトすることを可能にするＮＵＩ技術を含み得る。提供することができるＮＵＩ技術の例は、音声認識及び／又はスピーチ認識に依拠するもの、タッチ認識及び／又はスタイラス認識に依拠するもの（タッチ式ディスプレイ）、スクリーン及びスクリーンの隣接領域上のジェスチャ認識に依拠するもの、エア・ジェスチャ（air  gesture）、ヘッド・アイ・トラッキング（head  and  eye  tracking）、音声及びスピーチ、ビジョン（vision）、タッチ、ジェスチャ、並びにマシン・インテリジェンス（machine  intelligence）を含むが、これらに限定されるものではない。使用することができるＮＵＩ技術の他の例は、目的及び目標の理解システム（intention  and  goal  understanding  system）、（立体視カメラ・システム、赤外線カメラ・システム、ＲＧＢカメラ・システム、及びこれらの組合せ等の）奥行きカメラを用いたモーション・ジェスチャ検出システム、加速度計／ジャイロスコープを用いたモーション・ジェスチャ検出、顔認識、３Ｄディスプレイ、ヘッド・アイ・ゲーズ・トラッキング（head,  eye,  and  gaze  tracking）、没入型拡張現実システム及び仮想現実システム、及び電界検出電極を用いて脳活動を感知する技術（ＥＥＧ及び関連方法）を含む。
【００７９】
用語「コンピュータ」又は用語「コンピューティングベースのデバイス」は、本明細書では、命令の実行が可能であるような処理能力を有する任意のデバイスを指すために用いられている。当業者は、このような処理能力が多くの異なるデバイスに組み込まれているので、用語「コンピュータ」及び用語「コンピューティングベースのデバイス」それぞれは、ＰＣ、サーバ、携帯電話機（スマートフォンを含む）、タブレット・コンピュータ、セットトップ・ボックス、メディア・プレーヤ、ゲーム・コンソール、携帯情報端末、及び多くの他のデバイスを含むことを認識するであろう。
【００８０】
本明細書で説明した方法は、例えば、プログラムがコンピュータ上で実行されるときに本明細書で説明した方法のうちいずれかの全てのステップを実行するよう適合されたプログラム・コード手段を含むコンピュータ・プログラムの形態の、有体の記憶媒体上の機械読み取り可能な形のソフトウェアにより実行され得る。ここで、コンピュータ・プログラムは、コンピュータ読み取り可能媒体上に具現化され得る。有体の記憶媒体の例は、ディスク、サム・ドライブ、メモリ等のコンピュータ読み取り可能媒体を備えるコンピュータ記憶デバイスを含むが、伝播信号は含まない。伝搬信号は、有体の記憶媒体内に存在し得るが、伝搬信号自体は、有体の記憶媒体の例ではない。方法のステップが、任意の適切な順序で、あるいは同時に実行され得るように、ソフトウェアは、パラレル・プロセッサ又はシリアル・プロセッサ上で実行されるのに適したものであり得る。
【００８１】
このことは、ソフトウェアが高価で、個々に取引可能な商品になり得ることを認めている。「ダム（dumb）」又は標準ハードウェア上で実行され、あるいはそれらを制御して所望の機能を実行するソフトウェアを含むことを意図している。また、ＨＤＬ（hardware  description  language）ソフトウェアのように、ハードウェアの構成を「記述」又は定義するソフトウェアを含むことも意図しており、このソフトウェアは、所望の機能を実行するために、シリコン・チップを設計したり、ユニバーサル・プログラマブル・チップ（universal  programmable  chip）を構成したりするのに使用される。
【００８２】
当業者は、プログラム命令を記憶するために利用される記憶デバイスが、ネットワークにまたがって分散させることができることを認識するであろう。例えば、リモート・コンピュータは、ソフトウェアとして記述されたプロセスの例を記憶することができる。ローカル・コンピュータ又はターミナル・コンピュータは、リモート・コンピュータにアクセスして、プログラムを実行するソフトウェアの一部又は全てをダウンロードすることができる。代替的に、ローカル・コンピュータは、ソフトウェアの一部を必要に応じてダウンロードしてもよいし、一部のソフトウェア命令をローカル端末で、一部をリモート・コンピュータ（又は、コンピュータ・ネットワーク）で実行してもよい。また、当業者は、当業者に知られた従来の技術を利用することにより、ソフトウェア命令の全て又は一部が、ＤＳＰ、プログラマブル論理アレイ等の専用回路によって実行され得ることを認識するであろう。
【００８３】
本明細書で提供した範囲又はデバイス値は、当業者に明らかであるように、求める効果を失うことなく拡張又は変更され得る。
【００８４】
構造的特徴及び／又は方法論的動作に特有の言葉で主題を説明したが、添付の請求項において定められる主題は、上述した特定の特徴又は動作に必ずしも限定されないことを理解すべきである。むしろ、上述した特定の特徴及び動作は、請求項を実施する例示的な形態として開示されたものである。
【００８５】
上述した利益及び利点は、１つの実施形態に関係にしていることも、複数の実施形態に関係していることもあることが理解されよう。実施形態は、記した問題のいずれか又は全てを解決する実施形態に限定されるものではないし、記した利益及び利点のいずれか又は全てを有する実施形態に限定されるものでもない。さらに、アイテムへの言及は、そのようなアイテムの１以上を指すことが理解されよう。
【００８６】
本明細書で説明した方法のステップは、任意の適切な順序で実行されてもよいし、適切な場合には同時に実行されてもよい。さらに、個々のブロックは、本明細書で説明した主題の主旨及び範囲から逸脱することなく、方法のいずれからも削除されてもよい。上述した例のどの例の態様も、求める効果を失うことなくさらなる例を形成するために、説明した他の例のいずれかの態様と組み合されてもよい。
【００８７】
用語「備える（comprising）」は、本明細書では、特定された方法のブロック又は要素を含むことを意味しているが、このようなブロック又は要素は、排他的リスト（exclusive  list）を構成しないこと、及び、方法又は装置は、追加のブロック又は要素を含むことがあることを意味するために使用されている。
【００８８】
上記説明は、単なる例として提供されたものであり、当業者により様々な変更が行なわれ得ることが理解されよう。上記の明細書、例、及びデータは、例示的な実施形態の構造及び使用の完全な説明を提供している。様々な実施形態について、ある程度詳細に、あるいは１以上の個々の実施形態を参照して上述したが、当業者であれば、本明細書の主旨又は範囲から逸脱することなく、開示した実施形態に多数の変更を行うことが可能である。
【図１】
2016503220.tif 000004
【図２】
2016503220.tif 000005
【図３】
2016503220.tif 000006
【図４】
2016503220.tif 000007
【図５】
2016503220.tif 000008
【図６】
2016503220.tif 000009
【図７】
2016503220.tif 000010
【図８】
2016503220.tif 000011
【図９】
2016503220.tif 000012
【図１０】
2016503220.tif 000013
【図１１】
2016503220.tif 000014
【国際調査報告】
2016503220.tif 000015
2016503220.tif 000016