(57)【特許請求の範囲】
【請求項１】
手の位置の検出の方法であって、
所定のプログラムによって動作するプロセッサが、電子デバイスの画像処理モジュールを通じて少なくとも１つの入力画像からハンド動作検出及びハンドポーズ推測に関連付けられた特徴セットを抽出する段階と、
所定のプログラムによって動作するプロセッサが、訓練されたマルチクラスサポートベクトル機械（ＳＶＭ）を使用してハンドポーズタイプを推測する段階と、
所定のプログラムによって動作するプロセッサが、逆運動学（ＩＫ）最適化を使用して前記ハンドポーズを近似する段階と、
を含み、
前記電子デバイスの画像処理モジュールを通じて前記少なくとも１つの入力画像からのハンド動作検出及びハンドポーズ推測に関連付けられた前記特徴セットを抽出する段階は、
前記少なくとも１つの入力画像にわたって複数の向きの輝度勾配を測定する段階と、
前記測定した輝度勾配から画像ピラミッドを生成する段階と、
を含むことを特徴とする方法。
【請求項２】
前記生成した画像ピラミッドを使用してピクセル輝度／変位特徴とスケール不変特徴変換（ＳＩＦＴ）特徴とを抽出する段階、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記生成した画像ピラミッドから前記ピクセル輝度／変位特徴と前記ＳＩＦＴ特徴とを抽出する段階に関連してカスケードフィルタを適用する段階を更に含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記少なくとも１つの入力画像は、複数の入力画像を含み、前記電子デバイスの画像処理モジュールを通じて前記少なくとも１つの入力画像からのハンド動作検出及びハンドポーズ推測に関連付けられた前記特徴セットを抽出する段階は、
特徴のフロックとして前記複数の入力画像のその後のビデオフレーム間の関心領域（ＲＯＩ）を追跡する段階と、
スケール不変特徴変換（ＳＩＦＴ）特徴抽出をトリガする段階と、
前記特徴のフロックの光学フロー経路を計算する段階と、
を含む、
ことを特徴とする請求項１に記載の方法。
【請求項５】
前記特徴のフロックとして前記複数の入力画像のその後のビデオフレーム間の前記ＲＯＩを追跡する段階は、
ピクセル輝度／変位特徴と学習された前景カラー分布との２次元（２Ｄ）組合せを追跡する段階、
を含む、
ことを特徴とする請求項４に記載の方法。
【請求項６】
前記特徴のフロックの前記光学フロー経路を計算する段階は、該特徴のフロックが互いからの最小距離を維持するように該特徴のフロックの各々に少なくとも１つの制約を課す段階を含むことを特徴とする請求項４に記載の方法。
【請求項７】
前記訓練されたマルチクラスＳＶＭを使用してハンドポーズタイプを推測する段階は、  訓練画像及び前記少なくとも１つの入力画像内の少なくとも１つの特徴を検出する段階と、
前記少なくとも１つの入力画像内の前記少なくとも１つの特徴のインスタンスと要素の有限セットから取り出された少なくとも１つのラベルとの１対１マッピングを実行する段階と、
を含む、
ことを特徴とする請求項１に記載の方法。
【請求項８】
前記少なくとも１つのラベルは、モーションキャプチャ３次元（３Ｄ）データセットに基づいて訓練段階中に生成された少なくとも１つのラベルを含むことを特徴とする請求項７に記載の方法。
【請求項９】
ＩＫ最適化を使用して前記ハンドポーズを近似する段階は、
前記少なくとも１つの入力画像を複数の処理領域に区分化する段階と、
前記複数の処理領域の各々内の特徴の重心を判断する段階と、
各特徴重心の位置をモーションキャプチャデータセットに関連付けられた３次元（３Ｄ）ポーズデータ上にマップする段階と、
を含む、
ことを特徴とする請求項１に記載の方法。
【請求項１０】
前記複数の処理領域の各々内の前記特徴の重心を判断する段階は、
各特徴重心からの分散を前記３Ｄポーズデータ内の最も近いマッチングと比較する段階と、
複数の関節制約のどれが前記ＩＫ最適化に影響を与えるかを判断する段階と、
を含む、
ことを特徴とする請求項９に記載の方法。
【請求項１１】
各特徴重心を前記３Ｄポーズデータ内に格納された最も近い関節にマップする段階を更に含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記３Ｄポーズデータに基づいて訓練画像内の各マップされた最も近い関節の距離を最小にする段階と、
前記訓練画像内の各マップされた最も近い関節の前記最小にされた距離に基づいて最終的な手の位置を判断する段階と、
を更に含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
画像処理に対する設定可能な解像度閾値を定める段階と、
前記設定可能な解像度閾値を調節する段階と、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項１４】
前記ハンド動作検出及び前記ハンドポーズ推測に関連付けられた前記抽出された特徴セットを格納する段階を更に含むことを特徴とする請求項１に記載の方法。
【請求項１５】
１つ又はそれよりも多くのプログラムされたプロセッサで実行された時に請求項１に記載の方法を実行する命令を格納するコンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
〔関連出願への相互参照〕
本出願は、２００９年１１月６日に米国特許事務所に出願され、かつ本明細書にその全内容が引用により組み込まれている「ＳＩＦＴ及びＫＬＴを使用したリアルタイムハンド追跡及びポーズ分類」という名称の米国特許仮出願番号第６１／２５８，９７５号に対する優先権を請求し、かつその恩典を請求するものである。
【０００２】
〔権利及び商標権通知〕
本特許文書の開示の部分は、権利保護された対象材料を含む。権利所有者は、合衆国特許及び商標権事務所のファイル又は記録内に現れるような特許文書又は特許開示の複製に異議を唱えることはないが、それ以外は全ての権利を留保する。商標権は、それぞれの権利所有者の所有物である。
【背景技術】
【０００３】
手は、２７の動きの自由度（ＤＯＦ）を呈している。２７の自由度のうちで、２１は、関節の角度を表し、６は、向き及び位置を表している。ハンド追跡は、従来から、カラー手袋及びカラーパターンマッチング、重複するカメラ（立体カメラシステムなど）のアレイを使用する手に取り付けた逆反射マーカ、又は計器付き手袋／センサシステムを利用している。
【０００４】
目的及び利点と共に作動の編成及び方法を例証するある一定の例示的な実施形態は、添付の図面に関連した以下の詳細説明を参照することで最も良く理解することができる。
【図面の簡単な説明】
【０００５】
【図１】本発明のある一定の実施形態と矛盾しない自動リアルタイムハンド追跡、ポーズ分類、及びインタフェース制御を実行することができるテレビジョンの実施の例を示す図である。
【図２】本発明のある一定の実施形態と矛盾しない図１のテレビジョンに関連付けられた自動リアルタイムハンド追跡、ポーズ分類、及びインタフェース制御を提供する例示的なコア処理モジュールを示すブロック図である。
【図３】本発明のある一定の実施形態と矛盾しない自動リアルタイムハンド追跡、ポーズ分類、及びインタフェース制御を提供する処理の実施の例を示す流れ図である。
【図４】本発明のある一定の実施形態と矛盾しない自動リアルタイムハンド追跡、ポーズ分類、及びインタフェース制御に関連付けられた訓練処理を提供する処理の実施の例を示す流れ図である。
【図５】本発明のある一定の実施形態と矛盾しない自動リアルタイムハンド追跡、ポーズ分類、及びインタフェース制御に関連付けられた検出及びポーズ認識処理を提供する処理の実施の例を示す流れ図である。
【図６】本発明のある一定の実施形態と矛盾しない自動リアルタイムハンド追跡、ポーズ分類、及びインタフェース制御に関連付けられた電子デバイスユーザインタフェース処理を提供する処理の実施の例を示す流れ図である。
【図７】本発明のある一定の実施形態と矛盾しない電子デバイスユーザインタフェース処理と自動リアルタイムハンド追跡、ポーズ分類、及びインタフェース制御に関連付けられた電子デバイスの制御機能へのポーズ割り当てとを提供する処理の実施の例を示す流れ図である。
【発明を実施するための形態】
【０００６】
本発明は、多くの異なる形態における実施形態が可能であるが、このような実施形態の本発明の開示が原理の例として見なされ、本発明を図示して説明する特定の実施形態に制限されるものではないという理解により、特定の実施形態を図に示して詳しく説明する。以下の説明では、図面のいくつかの図における同じ、類似、又は対応する部分を説明するために同じ参照番号を使用する。
【０００７】
本明細書で使用する「ａ」又は「ａｎ」という語は、１つ又は１つよりも多いものとして定める。本明細書で使用する「複数の」という語は、２つ又は２つよりも多いものとして定める。本明細書で使用する「別の」という語は、少なくとも第２の又はそれよりも多くのものとして定める。本明細書で使用する「含む」及び／又は「有する」という語は、包含的として定める（すなわち、包括的言語）。本明細書で使用する「結合した」という語は、必ずしも直接ではなく及び必ずしも機械的ではなく接続するものとして定める。本明細書で使用する「プログラム」又は「コンピュータプログラム」又は類似の語は、コンピュータシステムで実行するように設計された命令のシーケンスとして定める。「プログラム」又は「コンピュータプログラム」は、実行可能なアプリケーション、アプレット、サーブレット、ソースコード、オブジェクトコード、共有ライブラリ／動的負荷ライブラリ、及び／又は１つ又はそれよりも多くのプロセッサを有するコンピュータシステムで実行するように設計された命令の他のシーケンスにおけるサブルーチン、関数、手順、オブジェクト方法、オブジェクト実施を含むことができる。
【０００８】
本明細書で使用する「プログラム」という語はまた、第２の関連で（上述の定義を第１の関連のためのものとする）使用することができる。第２の関連では、この語は、「テレビ番組」の意味で使用される。この関連では、コンテンツが映画、スポーツイベント、複数の部分があるシリーズの一回分、ニュース放送などか否かに関わらず、単一のテレビ番組として解釈して電子番組ガイド（ＥＰＧ）に記録されるコンテンツのようなオーディオビデオコンテンツのいずれの整合性のあるシーケンスも意味するように「プログラム」という語を使用する。この語はまた、電子番組ガイドで番組として記録することができない商業スポット及び他の番組に似たコンテンツを含むと解釈することができる。
【０００９】
この文書を通して「一実施形態」、「ある一定の実施形態」、「実施形態」、「実施」、「実施例」、又は類似の語の引用は、実施例に関して説明した特定の特徴、構造、又は特性が本発明の少なくとも１つの実施形態に含まれることを意味する。従って、本明細書を通した様々な箇所でのこのような句の出現は、必ずしも全て同じ実施形態を示すものではない。更に、特定の特徴、構造、又は特性は、非限定的にあらゆる適切な方式で１つ又はそれよりも多くの実施形態に組み合わせることができる。
【００１０】
本明細書で使用する「又は」という語は、いずれか１つ又はあらゆる組合せを含むか又は意味するものとして解釈すべきである。従って、「Ａ、Ｂ、又はＣ」は、Ａ；Ｂ；Ｃ；Ａ及びＢ；Ａ及びＣ；Ｂ及びＣ；Ａ、Ｂ、及びＣのいずれか」を意味する。この定義の例外は、要素、機能、段階、又は行為の組合せが、何らかの方法で本質的に相互に排他的である場合にのみ発生することになる。
【００１１】
本発明の主題は、自動リアルタイムハンド追跡、ポーズ分類、及びインタフェース制御を提供する。本発明の主題は、素手の場合のハンドポーズ及びハンドポーズの変化を識別及び分類するシステムに関連して使用することができる。本発明の主題はまた、消費者電子デバイスのようなデバイスをハンド動作が制御することを可能にするためのユーザインタフェース制御システムに関連して使用することができる。本明細書で説明するリアルタイムハンド追跡、ポーズ分類、及びインタフェース制御は、ハンド動作に基づいてユーザが入力制御を形成することを可能にするように更に適応可能である。更に、けがから生じる特性又は他の特性のようなユーザインタフェースシステムの各個々のユーザのハンド特性は、消費者電子デバイスの動作に基づく制御に関して処理及び構成することができ、ハンド動作の個別化された自動認識が共通又は異なるユーザインタフェース制御を制御することを可能にする。多くの他の可能性がリアルタイムハンド追跡、ポーズ分類、及びインタフェース制御に存在し、これらの全てが本発明の主題の範囲内と考えられる。
【００１２】
消費者電子デバイスのようなデバイスを制御するために識別及び使用することができる例示的な検出ハンド動作は、消費者電子デバイスの電源を入れるための制御指令を識別してこれに関連付けることができる「親指を上に向ける」ハンド動作又は「上を指す」ハンド動作検出を含む。同様に、「親指を下に向ける」又は「下を指す」ハンド動作検出は、例えば、消費者電子デバイスの電源を切るための制御指令を識別することができ、かつこれに関連付けることができる。本発明の主題に基づいて検出及び識別することができるあらゆるハンド動作は、デバイスのユーザインタフェースのようなインタフェースを制御するために使用することができる。更に、ハンド動作は、ユーザが作成することができ、ハンド動作の入力に応じた制御機能に割り当てることができる。多くの可能性がユーザインタフェース制御に存在し、全てが本発明の主題の範囲内と考えられる。
【００１３】
本発明の主題は、一眼カメラのような単一のカメラ、及び３次元の手の関節部分のポーズを追跡するだけでなく分類するために抽出される特徴としてスケール不変特徴変換（ＳＩＦＴ）記述子及びピクセル輝度／変位記述子を使用するデータ駆動式手法を使用して作動させることができる。しかし、本明細書に説明する処理は、劇的に精度を改善することができる複数のカメラを使用するように拡張させることができることに注意すべきである。リアルタイム態様により、それを消費者電子デバイスに統合することができる。リアルタイム態様はまた、３次元（３Ｄ）モデリング、新しいデスクトップユーザインタフェース、及びマルチタッチインタフェースにおける応用を有することができる。リアルタイム組込システムはまた、このような実施に対してより直感的なインタフェースデバイスを作成することによって改善することができる。
【００１４】
ＳＩＦＴは、回転、平行移動、スケーリングに不変の突出した特徴記述子を抽出する画像を処理するための技術である。従って、ＳＩＦＴ記述子は、マッチング、認識、及び画像登録タスクに対して堅牢であると考えることができる。ピクセル輝度／変位は、画像内のピクセルを追跡するためにその近くのピクセルに関してピクセルの輝度及びピクセルの変位の局所性を使用する画像を処理するための技術である。画像のシーケンス内で追跡する特徴は、１つの画像と既知の値だけ変位した同じ画像との間の画像勾配を計算し、かつ画像勾配行列を形成することによって求められるピクセルである。画像勾配行列の固有値が、例えば、マグニチュード１０（１０．０）のような指定された閾値よりも大きい場合、各々のこのような特徴は、追跡の目的に適する情報を提供する特徴と考えることができる。Ｋａｎａｄｅ、Ｌｕｃａｓ、及びＴｏｍａｓｉ（ＫＬＴ）記述子は、使用することができるピクセル輝度／変位記述子の１つの可能な形式を表している。しかし、ピクセル輝度／変位記述子のあらゆる形式は、所定の実施に対して適切なものとして使用することができることが理解される。
【００１５】
追跡態様は、動いている手の面外回転及び他の特性を追跡する段階を含むことができる。３次元の手の分類された関節部分のポーズは、消費者電子デバイスのためのユーザインタフェース制御に関連付けることができる。構成及び訓練モードにより、カスタマイズされたポーズの向きを電子システムの特定の制御に関連付けることができる。素手の追跡及びポーズ認識を単一のカメラを使用して実行するので、逆反射マーカ、カメラのアレイ、又は他の従来の技術を利用する従来の技術は必要ない。更に、ハンド追跡、ポーズ分類、及びインタフェース制御をリアルタイムで実行しながら、解像度及び範囲を維持することができる。
【００１６】
本明細書で説明する主題は、増加した自由度を捕捉するために利用することができ、特定の従来の技術と比較した場合に動作の拡張されたセットの直接編集タスク及び認識を可能にする。本明細書で説明する方法は、格納されたポーズ情報の縮小されたセットに基づいて、ポーズを正確に識別するために単一のフレームを使用することを可能にするデータ駆動式手法の例を示している。堅牢なスケール不変特徴が、ハンドポーズの単一のフレームから抽出され、マルチクラスサポートベクトル機械（ＳＶＭ）が、リアルタイムでポーズを分類するために利用される。マルチ仮説推測が、リアルタイム素手追跡及びポーズ認識を可能にするために利用される。
【００１７】
本発明の主題は、最も近いマッチングの迅速な検索を可能にする最も近いポーズ画像を推測するために、画像特徴の選択の使用によって及びマルチクラスＳＶＭの使用によってリアルタイム性能を促進する。画像特徴の選択に関して、ＳＩＦＴ及びピクセル輝度／変位特徴の両方を迅速に計算することができ、マルチクラスＳＶＭは、突出した情報を抽出して抽出速度を早めるために類似のフィルタを使用することができる。マルチクラスＳＶＭは、以前の画像セットで訓練されるので、検索速度は、更に改善することができる。本発明の主題に関連して実行される処理の更なる詳細を本発明の主題を実施することができる一部の導入的例示的アーキテクチャに従って以下に説明する。
【００１８】
ここで図１を参照すると、図１は、自動リアルタイムハンド追跡、ポーズ分類、及びインタフェース制御を実行することができるテレビジョン１００の実施の例の図である。本実施例内のテレビジョン１００の使用は、例示的な目的のみであることに注意すべきである。従って、本明細書に説明する自動リアルタイムハンド追跡、ポーズ分類、及びインタフェース制御を実施するシステムは、本発明の主題の範囲から逸脱することなく手持ち式消費者電子デバイス又はあらゆる他の適切なデバイスの一部分を形成することができる。
【００１９】
筐体１０２は、テレビジョン１００のユーザに視覚的及び／又は他の情報を提供するディスプレイ１０４を収容する。ディスプレイ１０４は、ブラウン管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）、投影又は他のディスプレイ要素又はパネルのようなあらゆる種類のディスプレイデバイスを含むことができる。ディスプレイ１０４はまた、タッチスクリーン入力デバイスを含む手持ち式消費者電子デバイス又は他のデバイスに関連付けられたタッチスクリーンディスプレイのようなタッチスクリーディスプレイを含むことができる。
【００２０】
赤外線（ＩＲ）（又は無線周波数（ＲＦ））応答入力デバイス１０６は、赤外線遠隔制御デバイス（図示せず）のようなデバイスを通じてテレビジョン１００のユーザのための入力機能を提供する。音声出力デバイス１０８は、レンダリングされるコンテンツに関連付けられた音声のようなテレビジョン１００のための音声出力機能を提供する。音声出力デバイス１０８は、所定の実施に対して適切な１対のスピーカ、ドライバ回路、及びインタフェース回路を含むことができる。
【００２１】
発光ダイオード（ＬＥＤ）出力モジュール１１０は、テレビジョン１００のユーザに特定のイベント又は肯定応答を伝えるための１つ又はそれよりも多くの出力ＬＥＤ及び関連のドライバ回路を提供する。多くの可能性がＬＥＤ信号送信を通じてユーザに情報を伝達するために存在し、全ては、本発明の主題の範囲内と考えられる。
【００２２】
カメラ１１２は、テレビジョン１００に対する画像取り込み機能を提供する。カメラ１１２によって取り込まれた画像は、以下に詳しく説明するように、本発明の主題に関連付けられた自動リアルタイムハンド追跡、ポーズ分類、及びインタフェース制御を実行するために処理することができる。
【００２３】
図２は、図１のテレビジョン１００に関連付けられた自動リアルタイムハンド追跡、ポーズ分類、及びインタフェース制御を提供する例示的なコア処理モジュール２００のブロック図である。コア処理モジュール２００は、テレビジョン１００に統合することができ、又は所定の実施に対して適切な場合は個別の相互接続したモジュールの一部として実施することができる。プロセッサ２０２は、コンピュータ命令実行、計算、及びコア処理モジュール２００内の他の機能を提供する。赤外線入力デバイス１０６が示されており、赤外線遠隔制御デバイス（図示せず）のようなデバイスを通じてテレビジョン１００のユーザに対する入力機能を提供する。
【００２４】
音声出力デバイス１０８を示しており、音声出力デバイス１０８は、コア処理モジュール２００に対する音声出力機能を提供する。音声出力デバイス１０８は、所定の実施に対して適切な場合に１つ又はそれよりも多くのスピーカ、ドライバ回路、及びインタフェース回路を含むことができる。
【００２５】
チューナ／デコーダモジュール２０４は、テレビジョン（音声／映像など）コンテンツを受信して、ディスプレイ１０４を通じた表示のためにこのコンテンツを復号する。コンテンツは、モーション・ピクチャ・エクスパート・グループ（ＭＰＥＧ）規格のいずれかを通じてフォーマット設定されたコンテンツ、又はチューナ／デコーダモジュール２０４が受信するのに適する他のあらゆるフォーマットでフォーマット設定されたコンテンツを含むことができる。チューナ／デコーダモジュール２０４は、特定用途向け集積回路（ＡＳＩＣ）、アンテナ、プロセッサ、及び／又はコア処理モジュール２００への無線又は有線接続のいずれかを通じて受信したコンテンツを同調及び復号するためのチューナ／デコーダモジュール２０４に関連付けられた電気制御活動を実行するための個別の集積回路及び構成要素の形態の付加的なコントローラ回路を含むことができる。ディスプレイ１０４を示しており、これは、チューナ／デコーダモジュール２０４を通じてコア処理モジュール２００のための視覚的及び／又は他の情報を提供する。
【００２６】
通信モジュール２０６は、静止画像コンテンツ、音声及び映像コンテンツ、又は衛星、ケーブル、ストレージ媒体、インターネット、又は他のコンテンツプロバイダを通じた他のコンテンツの検索、及び所定の実施に適切な場合の他の活動のようなコア処理モジュール２００の通信機能を代わりに提供することができる。通信モジュール２０６は、所定の実施に適切な場合に有線又は無線規格をサポートすることができる。例示的な有線規格には、ホームネットワーク内のインターネットビデオリンク（ＩＶＬ）相互接続、例えば、ソニー・コーポレーションのＢｒａｖｉａ（登録商標）インターネットビデオリンク（ＢＩＶＬ（登録商標））などが含まれる。例示的な無線規格には、セルラー無線通信及び「Ｂｌｕｅｔｏｏｔｈ（登録商標）」無線通信規格が含まれる。多くの他の有線及び無線通信規格が可能であり、全ては、本発明の主題の範囲内と考えられる。
【００２７】
メモリ２０８は、ハンドポーズ格納区域２１０、ハンド追跡及びポーズ処理格納区域２１２、及び制御相関格納区域２１４を含む。ハンドポーズ格納区域２１０は、本発明の主題の自動リアルタイムハンド追跡、ポーズ分類、及びインタフェース制御を処理するために取り込まれて利用されるハンドポーズの語彙のような情報を格納することができる。ハンド追跡及びポーズ処理格納区域２１２は、カメラ１１２が取り込んだ画像及びハンドポーズ識別に関連付けられた取り込まれた画像の処理の中間及び最終段階のような情報を格納することができる。制御相関格納区域２１４は、テレビジョン１００のための制御指令に相関付けられる手の位置又は手の位置の識別子のような情報を格納することができる。
【００２８】
メモリ２０８は、適切な場合に分散又はローカライズされた意図された目的に適する揮発性及び不揮発性メモリのあらゆる組合せを含むことができ、例証し易いように本実施例内には示されていない他のメモリ部分を含むことができることが理解される。例えば、メモリ２０８は、本発明の主題の範囲から逸脱することなく、符号格納区域、符号実行区域、及びデータ区域を含むことができる。
【００２９】
ハンド追跡及びポーズ処理モジュール２１６も示している。ハンド追跡及びポーズ処理モジュール２１６は、上記に及び以下に更に詳しく説明するように、自動リアルタイムハンド追跡、ポーズ分類、及びインタフェース制御を実行するためにコア処理モジュール２００の処理機能を提供する。カメラ１１２を示しており、カメラ１１２は、コア処理モジュール２００の画像取り込み機能を提供する。
【００３０】
コア処理モジュール２００に関連して上述したモジュールは、例証及び説明し易いように構成要素レベルのモジュールとして示していることに注意すべきである。これらのモジュールは、上記に及び以下に更に詳しく説明するように、これらのモジュールのそれぞれの機能を実行するのに使用されるあらゆるハードウエア、プログラムされたプロセッサ、及びメモリを含むことが理解される。例えば、それぞれのモジュールは、電気制御活動を実行するための特定用途向け集積回路（ＡＳＩＣ）、プロセッサ、及び／又は個別の集積回路及び構成要素の形態で付加的なコントローラ回路を含むことができる。更に、モジュールは、適切な場合に、割り込みレベル、スタックレベル、及びアプリケーションレベルモジュールを含むことができる。更に、モジュールは、それぞれの処理活動を実行するためのこれらのモジュールによる格納、実行、及びデータ処理のために使用されるあらゆるメモリ構成要素を含むことができる。
【００３１】
ハンド追跡及びポーズ処理モジュール２１６は、本発明の主題の範囲から逸脱することなく、説明する他の回路の一部分を形成することができることに注意すべきである。更に、ハンド追跡及びポーズ処理モジュール２１６は、代わりに、メモリ２０８に格納されたアプリケーションとして実施することができる。このような実施では、ハンド追跡及びポーズ処理モジュール２１６は、本明細書で説明する機能を実行するためのプロセッサ２０２によって実行される命令を含むことができる。プロセッサ２０２は、コア処理モジュール２００のための上記に及び以下に詳しく説明する処理機能を提供するためにこれらの命令を実行することができる。ハンド追跡及びポーズ処理モジュール２１６は、本発明の主題の範囲から逸脱することなく、割り込みサービスルーチン（ＩＳＲ）の一部分、作動システムの一部分、ブラウザアプリケーションの一部分、又は個別のアプリケーションの一部分を形成することができる。
【００３２】
プロセッサ２０２、赤外線入力デバイス１０６、音声出力デバイス１０８、チューナ／デコーダモジュール２０４、通信モジュール２０６、メモリ２０８、カメラ１１２、及びハンド追跡及びポーズ処理モジュール２１６は、例示し易いように相互接続２１８として示される１つ又はそれよりも多くの相互接続を通じて相互接続される。相互接続２１８は、システムバス、ネットワーク、又はそれぞれの目的のための適切な相互接続をそれぞれの構成要素に提供することができる他のあらゆる相互接続を含むことができる。
【００３３】
本明細書で説明する処理は、活動のある一定のカテゴリを含む。ハンド検出及びポーズ推測のための堅牢な特徴セットが抽出されて格納される。訓練されたマルチクラスＳＶＭは、ポーズの種類を推測するのに使用される。次に、関節部分のポーズは、逆運動学（ＩＫ）最適化を使用して近似される。これらの処理態様の各々を以下に詳しく説明する。
【００３４】
特徴セットの抽出及び格納
手の検出及びポーズ推測のための堅牢な特徴セットの抽出及び格納に関して、特徴追跡アルゴリズムの即席のフロックを次のビデオフレーム間の関心領域（ＲＯＩ）を追跡するために使用することができる。特徴追跡のフロックは、手のような硬くない関節が良く動く物体の迅速な追跡のために使用することができる。特徴追跡のフロックは、ピクセル輝度／変位特徴及び学習された前景カラー分布を組み合わせて２次元（２Ｄ）追跡を容易にする。一群の特徴追跡は、更に、ＳＩＦＴ特徴抽出をトリガする。抽出されたＳＩＦＴ特徴は、ポーズ推測のために使用することができる。特徴追跡のフロックは、関節が動く物体内の突出した特徴が鳥の群れと同様にフレームからフレームに動くと仮定する。経路は、光学フローアルゴリズムを使用して計算される。
【００３５】
付加的な条件又は制約は、例えば、全ての特徴が互いからの最小距離を維持し、かつこれらの特徴が必ずしも特徴中点からの定められた距離を超えることはないなどの特定の実施において利用することができる。このような実施内でも、条件又は制約が侵害された場合、肌の色のフィルタリングに強い応答を有する領域に基づいて特徴の位置を再計算して配置することができる。特徴挙動のフロックは、フレーム遷移にわたる関心領域の追跡を改善し、領域の外観が時間の経過と共に変化することがある状況に対する追跡を改善することができる。肌の色における付加的な合図は、フレームのシーケンスにわたって特徴が失われた時に使用することができる付加的な情報を可能にする。
【００３６】
ピクセル輝度／変位特徴は、画像全体の複数の向きにおける輝度勾配を測定することによって抽出され、段階は、ＳＩＦＴ記述子を抽出する時に有向勾配を見出す段階に密接に関連付けられる。生成された画像ピラミッドに組み合わせて、特徴の画像区域を次のビデオフレームのサーチウィンドウ内の「実質的に」類似した区域に効率良くマッチングさせることができる。画像ピラミッドは、以下に詳しく説明するように、手のヒストグラムデータからの可能性を処理する反復のための構成百分率（例えば、１０パーセント（１０％））だけ画像内のグレースケールを縮小することなどにより、元の画像に基づいて生成された一連の徐々に小さくなる解像度補間と考えることができる。特徴サイズは、マッチングに使用することができる関連知識の量を判断する。２つの連続フレーム間の特徴マッチング相関が設定可能な閾値よりも下である場合、特徴は「失われた」と考えることができる。従って、設定可能な閾値は、追跡及び識別目的のための解像度調節を可能にする。
【００３７】
生成された画像ピラミッドは、ピクセル輝度／変位及びＳＩＦＴ特徴の両方を抽出するために使用することができる。ピクセル輝度／変位特徴は、追跡目的に適切であると考えることができる。しかし、ピクセル輝度／変位特徴は、スケール又は回転に対して不変ではなく、精度のためにハンドポーズを推測するためには利用されないことが理解される。ＳＩＦＴ特徴は、画像スケーリング及び回転に対して不変であり、照明及び２Ｄカメラ位置の変化に対して少なくとも一部不変である。閉塞、混乱、ノイズ、又は他のファクタによる割り込みの可能性を低減することができるＳＩＦＴ特徴は、空間及び周波数ドメインの両方でローカライズされる。
【００３８】
ピクセル輝度／変位及びＳＩＦＴ特徴を抽出する時間的影響は、より時間費用的作動が初期試験をパスした位置に適用されるカスケードフィルタリング方法の使用によって低減することができる。初期試験は、例えば、画像を３２ｘ３２ピクセルの小ウィンドウに分割する段階を含むことができる。各小ウィンドウにおいて、ガウスフィルタの差を使用してキーポイントを計算することができる。いずれかの小ウィンドウに多くのキーポイントがある場合、完全なＳＩＦＴ記述子を計算することができる。そうでなければ、手の位置の検出に関係のない画像の大きな部分を消去するために小ウィンドウを廃棄することができる。ＳＩＦＴ記述子が画像データをローカル特徴に対するスケール不変座標に変換するので、ＳＩＦＴ記述子は、この実施のために選択されたものである。
【００３９】
ＳＩＦＴ記述子を使用したローカル特徴に対するスケール不変座標への画像データの変換は、４つの段階を含む。第１の段階は、スケール−スペース極値検出を含む。第２の段階は、キーポイントローカリゼーションを含む。第３の段階は、方向割り当てを含む。第４の段階は、キーポイント記述子変換を含む。
【００４０】
スケール−スペース極値検出に関して、スケール−スペース極値検出は、全てのスケール及び画像位置にわたるコンピュータ検索を含む。スケール−スペース極値検出は、例えば、ガウス差フィルタを使用して実行することができる。
【００４１】
キーポイントローカリゼーションに関して、スケール−スペース極値検出を通じて識別される各候補位置に対して、詳述されたモデルは、ロケーション及びスケールを判断するのに適している。キーポイントは、画像又は画像のシーケンス内のその安定性の尺度に基づいて選択される。画像又は画像のシーケンス内の安定性は、キーポイント自体とその近くのピクセル間の高いコントラストを有するキーポイントとして定めることができる。この安定性は、ノイズに対して反応し易い場合があるか又はエッジに沿って確実にローカライズすることができない低コントラスト関心ポイントに対する反応性を減少又は取り除くために使用することができる。
【００４２】
方向割り当てに関して、１つ又はそれよりも多くの方向が、ローカル画像勾配方向に基づくキーポイントローカリゼーションを通じて識別された各キーポイント位置に割り当てられる。全ての将来の作動は、各特徴に対する割り当てられた方向、スケール、及び位置に対して変換された画像データに実行することができ、それによって不変性をこれらの変換に提供する。
【００４３】
キーポイント記述子変換に関して、方向割り当てから生じるローカル画像勾配は、各キーポイント近くの区域における選択されたスケールで測定される。次に、ローカル画像勾配は、照明におけるローカル形状の歪み及び変化の重大なレベルを可能にする表示に変換することができる。
【００４４】
本方法の興味深い態様は、スケール及び位置の全区域にわたって画像を密に覆う多数の特徴を生成することである。例えば、５００ｘ５００ピクセルの一般的な画像サイズでは、この処理は、この数字が様々なパラメータに対する画像コンテンツ及び選択の両方に依存する可能性があるが、約２０００の安定した特徴をもたらすことができる。認識のための相対的に迅速な方法は、基準画像に対する近接の尺度としてユークリッド距離を使用して基準データベースから抽出された特徴と生成した特徴を比較する段階を含むことができる。しかし、本方法は、低い精度をもたらすことがある。マルチクラスＳＶＭは、従って、各個々のハンドポーズを表して１つのクラスとして考えることができるマッチングの精度を上げるために利用することができる。
【００４５】
以下の疑似テキスト処理は、Ｋａｎａｄｅ、Ｌｕｃａｓ、及びＴｏｍａｓｉ（ＫＬＴ）フロック検出の例を表している。以下の疑似テキスト処理は、所定の実施に適切ないずれの構文においても実行することができることが理解される。更に、他のいずれのピクセル輝度／変位技術も所定の実施に適切な場合は使用することができることが理解される。
初期化処理：
１．カラーヒストグラムを学習する
２．最小距離で追跡するためにｎ*ｋ特徴を識別する
３．カラー及び固定ハンドマスクに基づいて識別された特徴をランク付ける
４．ｎ個の最高ランクの特徴追跡を選択する；
フロック検出処理；
１．画像ピラミッドでＫＬＴ特徴位置を更新する
２．平均特徴を計算する
３．各特徴に対して、
以下の場合には：
ａ）他のあらゆる特徴からの最小距離よりも小さく、又は
ｂ）平均を中心として最大範囲の外側、又は
ｃ）低マッチング相関、
次に：
フロッキング条件を満たす最良カラースポット上に特徴を再配置する
【００４６】
上述の疑似テキスト処理から分るように、初期化は、カラーヒストグラムの学習、識別した特徴間の最小距離で追跡するための特徴のセットの識別、識別した特徴セットのランク付け、及び追跡のための最高ランクの特徴の部分集合の選択を含む。初期化処理が完了した後、フロック検出処理を開始することができる。フロック検出処理は、画像ピラミッドでＫＬＴ特徴位置を更新する段階及び平均特徴を計算する段階を含む。各平均特徴では、条件処理を実行することができる。例えば、それぞれの特徴が他のあらゆる特徴から定められた最小距離（ｍｉｎ＿ｄｉｓｔ）よりも小さい場合、計算された平均に中心がある最大（ｍａｘ）範囲の外側になるか、又は低マッチング相関を有し、次に、フロッキング条件を満たすカラーヒストグラム内のカラースポットに特徴を再配置することができる。この処理に応答して、画像内のフロック検出を実行することができる。
【００４７】
ポーズの種類を推測するための訓練されたマルチクラスＳＶＭの使用
ポーズの種類を推測するための訓練されたマルチクラスＳＶＭの使用に関して、要素の有限セットから引き出されるラベルとの要素のインスタンスの１対１マッピングは、ポーズの種類の学習又は推測の形態を達成するように設定することができる。ＳＶＭは、二進分類問題（例えば、可能なラベルのセットがサイズ２である問題）を解決する方法と考えることができる。マルチクラスＳＶＭは、この理論をマルチクラスドメインに拡張する。単一のマルチクラス問題をマルチ二進問題に低減することによってサポートベクトル機械を使用してマルチクラス問題を解決する従来の方法は、数百の異なるハンドポーズタイプを区別するのに実用的ではない場合がある。本発明の主題は、検出した各特徴間の１対１対応をマップすることによって次の訓練及び入力画像内の突出した特徴を検出することにより、ハンドポーズを区別する。
【００４８】
この１対１マッピングは、複数の２Ｄ画像にわたる特徴のマッチングを可能にし、更に訓練セットを生成するのに使用される３Ｄ訓練モデルにわたるマッピングを可能にする。次に、この情報は、以下に詳しく説明するように、処理の後の段階でポーズの推測を最適化するために利用することができる。従って、ＳＩＦＴ特徴は、関心領域（ＲＯＩ）のローカライズされた記述を提供できるだけでなく、特に３Ｄ訓練モデルにマップされた時に関心領域の全世界の位置の見当を提供することができる。従って、得られる当該のドメインは、高度に構造化されて相互接続され、それによって複数の画像における特徴の位置及び他の特徴に対するその関係は、相互依存する構造化された出力スペースに対して設計されたマルチクラスＳＶＭの使用を通じて付加的な情報も提供することができる。
【００４９】
この分類問題は、以下の通りに定式化することができる。訓練セットは、以下の式（１）内に例証することができる。
0005455167.tif 000002
0005455167.tif 000003
においてラベルｙiを有する            式（１）
ここで、ｘ1は、記述子の垂直座標位置を表す変数「ｙ」を有するｍ個のＳＩＦＴ特徴［ｔ1．．．ｔm］のセットであり、変数「ｍ」は、ＳＩＦＴ特徴の数を表し、ｋは、様々なポーズの種類を示すラベルの数を表している。変数「ｎ」は、処理するＳＩＦＴ記述子のサイズを表し、変数「ｔ」は、完全な特徴ベクトル（ｘ1，ｙ1）．．．（ｘn，ｙn）を表している。
【００５０】
本方法の手法は、以下の式（２）に示す最適化問題を解決することである。
0005455167.tif 000004
式（２）
ただし、
0005455167.tif 000005
0005455167.tif 000006
【００５１】
定数「Ｃ」は、マージンサイズと訓練誤差を交換する規則化パラメータを表している。要素Δ（ｙn，ｙ）は、ｙnがｙに等しい場合はゼロ（０）をそれ以外は１を戻す損失関数を表している。変数「ｗ」は、実際の３Ｄｍｏｃａｐデータ内の関節の位置までのピクセル（ｘ、ｙ）の距離に依存する初期重みパラメータを表し、変数「ｎ」は、記述子のサイズを表し、変数「ｋ」は、様々なハンドポーズを定めるラベルの数を表し、「ｙ」は、画像における記述の垂直座標位置を表している。
【００５２】
データベースサンプリングに関して、訓練データの適切なセットを取得することは、推測方法の精度を改善する。全ての自然の手の構成を均一にサンプルし冗長サンプルを除外する小さなデータベースは、所定の実施に対して適切である場合に好ましい。本明細書で説明するマルチクラスＳＶＭのための訓練は、反復方法を使用して実行することができる。
【００５３】
例えば、あらゆる利用可能なモーションキャプチャ（ｍｏｃａｐ）データベースから得られるビデオフレームから抽出された４０００の手の画像の適切な訓練セットを収集することができる。このようなデータはまた、３次元（３Ｄ）関節データ、並びにポーズの推測精度を上げる対応及び／又は相関を設定するために使用することができる２Ｄ合成画像を含むことができる。各セットは、訓練と試験の目的のための２つのセットに分割することができる。従って、処理は、例えば、１００画像のセットから始めることができる。次に、セットカウントを各反復に対して１００画像ずつ増すことができる。各反復では、試験ラベル間で二乗平均平方根誤差を測定することができる。このような実施では、１４００もの画像のセットをサンプルデータベースで利用することができ、所定の実施に対して適切な場合に許容可能な結果をもたらすことができる。
【００５４】
訓練パラメータに関して、ＩＫソルバに対する入力のために結果を最適化することができ、各々の合成して生成した訓練画像に対して重心を計算することができる。これらの合成して生成した訓練画像及び計算された重心を上述のような３Ｄｍｏｃａｐデータベースからの関節データに関連付けることができる。６０要素の特徴ベクトルのような特徴ベクトルの訓練及び抽出を使用することができる。このような数字の量は、所定の特徴スペースにおける異常値データ要素の影響を排除するために使用することができる発見的推定値を表している。データセットにおける偏りの影響を低減／最小にするために所定のマルチクラスＳＶＭ実施内で規則化パラメータを使用することができる。例示的な規則化パラメータは、例えば、１００分の７８（０．７８）を含むことができる。この値は、誤差の二乗平方根（ＲＭＳ）値が、例えば、１０分の１（０．１）のような望ましい誤差レベルよりも小さくなるまで、規則化値を増分しながらマルチクラスＳＶＭを繰返し訓練することによって求めることができる。
【００５５】
逆運動学（ＩＫ）最適化を使用した関節部分のポーズの近似
ＩＫ最適化を使用した関節部分のポーズの近似に関して、関節部分のポーズを改良するために逆運動学を使用することができる。上述のように、本発明の主題は、カラーグローブに頼らない。しかし、本発明の主題は、例えば、寒い天候で手袋をはめた手で利用することができるように適用することができることに注意すべきである。本実施例によると、素ハンドポーズの識別が行われる。ポーズの推定の精度を改善するためにＳＩＦＴ記述子の重心が使用される。ＩＫ最適化なしの処理は、１０又はそれよりも多くの異なるポーズの種類を持続的に区別することができるが、ＩＫ最適化は、純粋なＳＶＭ実施が解決できないポーズにおけるある一定の曖昧さを取り除くことができることに注意すべきである。
【００５６】
従って、処理の初期部分は、３Ｄポーズデータ（ｍｏｃａｐデータベースなどから）と検出されている２ＤＳＩＦＴ特徴との間の１対１マッピングを設定する。画像は、記述の目的のためのピクセルパッチと考えることができる３２ｘ３２の画像領域に分割される。各領域に対して別々に特徴が抽出される。各領域では、領域内の特徴の重心が計算され、次に、その位置が、対応する３Ｄポーズデータにマップされる。この結果、訓練セット内のあらゆる重心特徴に対して、本物の手のデータにおける３次元ポイントを識別することができる。
【００５７】
３２ｘ３２ピクセルパッチの特徴の分析中に、各々の３２Ｘ３２ピクセルパッチの特徴に対して重心を再度計算することができる。各重心からの分散と訓練データベース内の最も近いマッチングとを比較することができ、どの関節の制約（手の骨の関節の制約など）がＩＫ処理に影響を与える場合があるかを特定することができる。
【００５８】
次に、各特徴重心は、３Ｄｍｏｃａｐデータベースデータに格納している最も近い関節にマップすることができる。このマッピングから、ＩＫ処理は、訓練画像の位置からの関節の距離が最小になるように関節部分の手の最終的な位置を判断することができる。手内の関節の複雑な性質のために閉じた形の解決を得るための直接分析計算が複雑になる場合があり、計算に時間を消費する場合がある。従って、最適解決に反復収束するための数値的技術を利用することができる。リアルタイム性能制限は、あらゆる所定の実施に対して実行することができる反復の数を限定することができる。しかし、処理は、特定の実施に対する５０の反復内に妥当な精度（例えば、最小）で解決することができることに注意すべきである。
【００５９】
従って、２Ｄ訓練セットから抽出された重心は、３Ｄｍｏｃａｐデータベースデータにおけるその最も近い関節にマップすることができる。入力画像の検出に応答して、重心を抽出することができる。ポーズの種類の最も近いマッチングは、ＳＶＭ結果に基づいて推測することができる。データベースにおける各ポーズの種類に対して、ＩＫ処理に対する制約として３Ｄ関節データを使用することができる。入力画像と２Ｄ訓練画像の間でマッチングされた特徴間の１対１対応があり、これが、３Ｄｍｏｃａｐデータベースデータにおける３Ｄ関節との関係の特定を可能にする。この情報を使用して、最適化の問題は、式（３）から式（５）内に表される以下の式に分解され、その次に、これらの式の反復処理のための例の疑似コードが続く。
【００６０】
特徴重心が２Ｄ訓練ポーズから得るためのターゲット自由度（ＤＯＦ）と考えられる所定の重力画像に対して以下の通りである。
0005455167.tif 000007
式（３）
【００６１】
結果「ｇ」は、ハンドポーズの「地上較正」位置（関節の既知の本当の向きなど）と考えることができる３Ｄｍｏｃａｐデータから得られる「ｎ」関節の全てを含むセットを表し、変数「Ｉ」は、個々の関節の位置及び向きを示すベクトルを表し、更に変数「ｎ」は、３Ｄｍｏｃａｐデータモデルの関節の数を表している。
【００６２】
Φは、推測された訓練ポーズに対する関節の現在のセットを表している。かつ以下の通りである。
0005455167.tif 000008
式（４）
【００６３】
結果「ｅ」は、検出段階から推測された「ｎ」個の関節全てを含むセットを表し、変数「Ｃ」は、個々の関節の向き及び位置を表すベクトルを表し、変数「ｎ」は、手のモデルの関節の数を表し、この結果は、現在の終了エフェクタとして推測された訓練ポーズ特徴を表している。現在の終了エフェクタは、推測された訓練ポーズの関節と考えることができる。現在の終了エフェクタの向き及び位置は、地上較正関節位置における位置と関節の間の差が最小になるまで繰返し変更される。
【００６４】
誤差を最小にするために次式のように定める。
0005455167.tif 000009
式（５）
【００６５】
結果のシグマは、最小になった誤差を表している。
【００６６】
以下は、疑似コード形態で表される問題を解決するために使用することができる例示的な反復段階である。
一方（α＜閾値）
｛
Ｊ（ｅ，Φ）を計算する／／現在のポーズのため
Ｊ-1を計算する／／ヤコビ行列を逆転する
Δｅ＝β（ｇ−ｅ）／／近似段階を選択する
ΔΦ＝Ｊ-1・Δｅ／／ＤＯＦに変更を加える
ΔΦ＝Φ＋ΔΦ／／ＤＯＦに変更を加える
新しいｅベクトルを計算する
｝
【００６７】
この例示的な疑似コードから分るように、処理は、誤差が定義／構成された閾値よりも下である限り繰り返される。反復処理は、現在の推測される訓練ポーズに対する推測される訓練ポーズ特徴ベクトルのヤコビ行列を計算する段階を含む。次に、ヤコビ行列が逆転される。近似は、関節の現在のセットに対して選択される。選択された近似は、関節の現在のセットに対するターゲット自由度（ＤＯＦ）への変更を特定するために適用される。関節の現在のセットに対するターゲット自由度（ＤＯＦ）への変更は、推測された訓練ポーズに初期化される手のモデルの現在の関節に加えられる。新しい誤差ベクトルが、モーションキャプチャデータから得られた関節の地上較正位置に対して計算される。上述のように、処理は、誤差が定義／構成された閾値よりも下である限り繰り返される。これらの処理作動は、１つの処理に統合することができるが、ＩＫ実施は、検出システムと同時に実行される個別の処理として作動させることができることに注意されたい。
【００６８】
以下の図３から図７は、本発明の主題に関連付けられた自動リアルタイムハンド追跡、ポーズ分類、及びインタフェース制御を実行するためのテレビジョン１００のようなデバイスによって実行することができる例示的な処理を示している。例示的な処理における多くの他の変形が可能であり、全ては、本発明の主題の範囲内と考えられる。例示的な処理は、ハンド追跡及びポーズ処理モジュール２１６のようなモジュールによって実行することができ、及び／又はこのようなデバイスに関連付けられたプロセッサ２０２によって実行することができる。タイムアウト手順及び他の誤差制御手順は、例示し易いように以下に説明する例示的な処理内に示されていないことに注意すべきである。しかし、全てのこのような手順は、本発明の主題の範囲にあると考えられることが理解される。
【００６９】
図３は、自動リアルタイムハンド追跡、ポーズ分類、及びインタフェース制御を提供する処理３００の実施の例示的な流れ図である。処理３００は、３０２で開始される。ブロック３０４で、処理３００は、電子デバイスの画像処理モジュールを通じて少なくとも１つの入力画像からのハンド動作検出及びハンドポーズ推測に関連付けられた特徴セットを抽出する。ブロック３０６で、処理３００は、訓練されたマルチクラスサポートベクトル機械（ＳＶＭ）を使用してハンドポーズタイプを推測する。ブロック３０８で、処理３００は、逆運動学（ＩＫ）最適化を使用してハンドポーズを近似する。
【００７０】
図４は、自動リアルタイムハンド追跡、ポーズの分類、及びインタフェース制御に関連付けられた訓練処理を提供する処理４００の実施の例示的な流れ図である。処理４００は、４０２で開始される。判断ポイント４０４で、処理４００は、ユーザ入力、初めての起動、又は消費者電子デバイスのための訓練モードへのエントリの開始の他の形態などを通じて、訓練モードが開始されたか否かの判断を実行する。訓練モードが開始されているという判断に応答して、処理４００は、ブロック４０６で上述のような３Ｄモーションキャプチャ（ｍｏｃａｐ）データを取得する。ｍｏｃａｐデータを取得する段階は、動画の各フレームに対して関節の位置及び向きを含むテキストファイルを検索する段階を含むことができる。例示的なｍｏｃａｐファイルは、手の１つの完全な動きを表す数百のフレームのシーケンスを含むことができる。
【００７１】
ブロック４０８で、処理４００は、ｍｏｃａｐデータに関連付けられたフレームのシーケンスをレンダリングしてアニメ化する。ｍｏｃａｐデータに関連付けられたフレームのシーケンスのレンダリング及びアニメ化は、フレーム毎にｍｏｃａｐデータファイルを読取り、手のように見える３Ｄメッシュを作成する段階を含むことができ、従って、手の位置及び向きは、各フレームに対するｍｏｃａｐデータデータファイルに格納された関節データによって識別される。ｍｏｃａｐデータに関連付けられたフレームのシーケンスのレンダリング及びアニメ化は、例えば、ＯｐｅｎＧＬ（登録商標）又は他のグラフィックライブラリを使用してｍｏｃａｐデータをレンダリングしアニメ化する段階を含むことができる。
【００７２】
ブロック４１０で、処理４００は、アニメーションの３Ｄレンダリング出力から２Ｄ画像を抽出する。例えば、２Ｄ携帯式ネットワークグラフィック（ＰＮＧ）画像をｍｏｃａｐデータの各３Ｄレンダリングフレームに対して作成することができる。２ＤＰＮＧ画像は、カメラ写真に類似のフォーマットの画像ファイルに保存された３Ｄレンダリング出力の各フレームのカラー画像を表している。
【００７３】
ブロック４１２で、処理４００は、抽出された２Ｄ画像をグレースケールに変換する。各２Ｄ画像は、黒と白のフォーマット画像に変換することができる。従って、各画像に対して、輝度情報だけを維持し、全ての付加的なカラー情報は廃棄することができる。付加的なカラー情報を廃棄することで、ｍｏｃａｐデータ又は抽出された２Ｄ画像データのノイズの影響を低減することを助けることができる。
【００７４】
ブロック４１４で、処理４００は、２Ｄグレースケール画像からスケール不変特徴変換（ＳＩＦＴ）特徴を抽出する。上述のように、ＳＩＦＴは、回転、平行移動、及びスケーリングされた時に変わらない特徴を画像から取得するために使用することができる技術を表している。特徴は、画像内の「ｘ」及び「ｙ」位置のような座標によって表される２Ｄ画像上の点として示すことができる。ｍｏｃａｐ訓練データから抽出された全ての画像に対して、フレームからフレームで手に対して変化しない位置である画像の座標のアレイ（ｘ、ｙ位置など）を取得するためにこの処理を適用することができる。このような領域の例は、指の先端、指が曲がっている時に形成された線、又は他のこのような領域を含む。
【００７５】
ブロック４１６で、処理４００は、重心を計算し、特徴ベクトルを作成するために関節データを照合する。例えば、重心は、画像内で検出された座標（ｘ、ｙ位置ポイントなど）から計算することができる。これは、座標のアレイ全体の平均値（ｎがポイントの数である場合に、ｘ１＋ｘ２＋．．．ｘｎ／ｎなど）を計算する段階を含むことができる。更に、手の関節の各々からの重心の距離を計算することができる。関節の情報は、オリジナルの３Ｄｍｏｃａｐデータから取得することができる。関節の座標（ｘ、ｙ位置など）だけが使用される場合、近似として距離を計算することができる。しかし、この近似は、現在のポーズと３Ｄｍｏｃａｐデータ間の違いを識別するために使用することができる固有の値を表している。３Ｄｍｏｃａｐデータでは、指骨、指の真ん中の骨、又は他の骨のような手の骨の影響を各々が表す１６の関節があることが多い。従って、この処理は、６０の座標（（ｘ、ｙ）位置）のアレイである特徴ベクトルをもたらす。特徴ベクトルは、ＳＩＦＴ抽出、重心位置（（ｃｘ、ｃｙ）など）、及び距離のアレイ（｛ｄ１、ｄ２、ｄ３．．．ｄ１６｝など）として表すことができる関節重心距離から取得することができる。しかし、この例は、特徴ベクトルの１つの可能なフォーマットを表すに過ぎないことに注意すべきである。
【００７６】
ブロック４１８で、処理４００は、マルチクラスＳＶＭへの入力として特徴ベクトルを処理する。上述のように、ＳＶＭは、サポートベクトル機械を表し、訓練段階中の監督された学習方法を表している。処理は、特徴ベクトル及び特徴ベクトルの種類を示すラベルを提供することによって実行される。例えば、カメラに向いた手のひらを有する手のための特徴ベクトルを提供することができる。このような特徴ベクトルは、「手のひらの前部」として特徴ベクトルに割り当てられたラベルを有することができる。同様に、この処理は、各々にこのようなラベルを割り当てられる２００の特徴ベクトルのような数量に対して実行することができる。全ての利用可能な特徴ベクトルの処理の終了に応答して、この処理は、例えば、数を分析して変数として特徴ベクトルを有する式を定めるために、様々なパラメータを使用して数時間実行することができ、各ラベルに対して固有である数値を認めるために使用することができる。これらの種類の式は、多変量式を表している。従って、マルチクラスＳＶＭは、数の形態のデータを取り、数の各々が、割り当てられたラベルの１つに収まらなくてはならないという規則によって制約されている間はこれらの数を生成した式を近似しようとする。
【００７７】
ブロック４２０で、処理４００は、訓練されたマルチクラスＳＶＭカーネルを試験データによって試験する。訓練処理が終了した後、訓練されたマルチクラスＳＶＭを「カーネル」と呼ぶことができる。試験データは、評価のためにこのカーネルに入力することができる。試験データは、訓練されたマルチクラスＳＶＫカーネルから正しいラベルが生じるという追跡を可能にすることができる事前にラベル付けされた特徴ベクトルを含むことができる。例えば、ハンド特徴ベクトルでは、全ての指が閉じている入力特徴ベクトルにこのポーズに対する「閉じた手」の事前ラベルを割り当てることができる。この特徴ベクトルを訓練されたマルチクラスＳＶＭカーネルに送る段階を実行することができ、訓練されたマルチクラスＳＶＭカーネルから戻された予想が「閉じた手」のラベルであるか否かを判断するために結果を検査することができる。「閉じた手」のラベルが戻された場合、訓練されたマルチクラスＳＶＭカーネルはポーズを正確に予想したことになる。「閉じた手」のラベルが戻されなかった場合、予想は不正確と考えられ、更に訓練を実行することができる。あらゆる所定の数量に対して、例えば、訓練された２００特徴ベクトルに対しても、特徴ベクトルの数量は、精度の百分率値を獲得するために試験することができる点に更に注意すべきである。予想の精度が、例えば、８５から９０％の精度のようなターゲット精度レベルに達するまで、訓練を続けることができる。
【００７８】
従って、判断ポイント４２２で、処理４００は、ターゲット精度レベルが達成されたか否かを判断する。ターゲット精度レベルが達成されなかったという判断に応答して、処理４００は、ブロック４２０に戻り、更に試験データを処理し、上述のように繰り返す。ターゲット精度レベルが達成されたという判断に応答して、処理４００は、判断ポイント４０４に戻り、訓練モードに入るための新しい要求を待つ。
【００７９】
従って、処理４００は、３Ｄｍｏｃａｐデータを取得し、このデータをレンダリングしてアニメ化する。処理４００は、レンダリングされてアニメ化された３Ｄｍｏｃａｐデータから２Ｄ画像を抽出する。処理４００は、グレースケール変換２Ｄ画像からＳＩＦＴ特徴を抽出し、重心を計算し、更に特徴ベクトルを作成するために関節データを相関付ける。処理４００は、マルチクラスＳＶＭへの入力として特徴ベクトルを処理し、結果の訓練されたマルチクラスＳＶＭを試験データで試験する。
【００８０】
図５は、自動リアルタイムハンド追跡、ポーズの分類、及びインタフェース制御に関連付けられた検出及びポーズ認識処理を提供する処理５００の実施の例示的な流れ図である。処理５００は、５０２で開始される。判断ポイント５０４で、処理５００は、ポーズ検出及び認識を含むポーズ分析を開始するか否かを判断する。ポーズ分析は、例えば、カメラ１１２のようなカメラを通じた動きの検出に応答して、又は分析に関連付けられたユーザ入力要求の検出に応答して開始することができる。本発明の例示の目的のために、カメラ１１２は、初期化されておらず、ポーズ分析を開始する判断は、カメラ１１２を初期化する処理の後に続くことを仮定する。
【００８１】
従って、ポーズ分析を開始する判断に応答して、処理５００は、ブロック５０６で、カメラ１１２を初期化して単一のフレームを取り込む。ブロック５０８で、処理５００は、取り込まれたフレーム内の画像に対するカラーヒストグラムを生成する。ブロック５１０で、処理５００は、画像内の各ピクセルに対する既知の手のカラーヒストグラム情報に基づいて、手の一部分を形成している各ピクセルの可能性の確率値を割り当てる。この処理は、背景の画像コンテンツからの手のローカリゼーションを可能にする。ブロック５１２で、処理５００は、手の一部分を形成する非常に高い確率を有するピクセルに追跡ポイントを置く。これらの追跡ポイントは、次のフレームにわたって追跡する特徴を表している。
【００８２】
ブロック５１４で、処理５００は、カラーからグレースケールに画像を変換し、画像に異なるスケールでガウスフィルタを適用する。この処理は、処理速度を改善するために１つのループにおけるピクセル輝度／変位及びＳＩＦＴ特徴抽出の両方に対して実行することができる。ブロック５１６で、処理５００は、１０パーセントだけ画像のスケールを縮小し、上述のように、各ピクセルに対する確率を再計算する。この処理は、画像ピラミッドを作成し、ノイズの影響を低減する。この処理はまた、手がカメラから離れたり近づいたりする時に、変化する深度及び距離にわたって特徴の追跡を可能にする。
【００８３】
ブロック５１８で、処理５００は、様々なスケールでのガウスフィルタリングからの結果を使用して関心ポイントを配置するためにガウス関数の差を計算し、画像に対する重心を計算する。関心ポイントは、グレースケール画像における座標（ｘ、ｙポイントなど）によって表すことができる。例えば、ピクセルの逆タンジェント（ｔａｎ）及びその近くのピクセルを計算し、エッジの応答を取り除くことにより、ローカル画像特性に基づいて各キーポイントに一貫した向きを割り当てる段階を基本的に含む向き割り当てのような機構を使用して、この関心ポイント情報からＳＩＦＴキーポイントを計算することができる。画像に置かれた追跡ポイントは、画像の重心を計算するために、識別した関心ポイントを使用することができる。画像の重心は、例示的な目的のために検出された手の中心であると仮定することができる。
【００８４】
ブロック５２０で、処理５００は、検出したＳＩＦＴキーポイントを使用して特徴ベクトルを作成する。特徴ベクトルは、例えば、画像から得られた最良の６０ポイントを含むことができる。特徴ベクトルは、メモリ２０８のハンド追跡及びポーズ処理格納領域２１２の中などにアレイとして格納することができる。ピクセル輝度／変位処理の結果として重心を計算することができ、このアレイに追加することができる。重心からの距離は、上位１６のＳＩＦＴポイント位置から計算することができる。この処理は、上述の訓練段階中に形成された特徴ベクトルに類似の特徴ベクトルを作成する。関節距離を計算するのに使用されるＳＩＦＴ特徴は、実際のマッチングを形成できない。しかし、ＳＩＦＴ特徴は、一般的にコントラストにおける識別することができる変化を示すポイントを関節が表すので、指の曲がりのように形成されたエッジの妥当な近似を提供する。
【００８５】
ブロック５２２で、処理５００は、上述の図４に関して説明した訓練段階／モード中に訓練されたサポートベクトル機械のような訓練されたマルチクラスＳＶＭカーネルに特徴ベクトルを入力する。上述のように、マルチクラスＳＶＭは、パラメータとして特徴ベクトルを使用することによって訓練されたデータを近似的に定める複素数学関数を表している。この関数は、訓練段階／モードによって既に定められているので、マルチクラスＳＶＭへの特徴アレイの送信に応答して結果を迅速に計算することができる。
【００８６】
ブロック５２４で、処理５００は、マルチクラスＳＶＭカーネルから結果を受け取る。この結果は、マルチクラスＳＶＭを訓練するのに使用されるラベルの数量（例えば、８）の１つとして戻すことができる。選択された数量は、検出することができる個別の手の位置の数を表すと考えることができる。従って、８つのラベルの例を用いると、処理５００は、８の個別の手の位置を検出することができる。増加した訓練処理及びラベル数量は、検出することができる個別の手の位置の数を増すことができる。
【００８７】
ブロック５２６で、処理５００は、更に、逆運動学（ＩＫ）ソルバを使用して結果を処理する。ラベルが既知なので、処理５００は、各ラベルが１つのハンドポーズに関連付けられるとすると、ハンドポーズの近似／推定を有する。この検出されたポーズの関節の各々の位置も既知である。最終的なポーズが上位１６のＳＩＦＴ記述子（関節の最終位置であると仮定する）を使用して検出されると仮定すると、オリジナルのハンドポーズの関節は、ＳＩＦＴポイントが位置するのと同じ位置に移動することができることに更に注意すべきである。この処理は、ＩＫソルバを使用して実行される。
【００８８】
関節は、互いに接続され、かつ互いとの固定されて制限された関係及び変化する自由度（ＤＯＦ）を有するので、ＩＫソルバを使用したＳＩＦＴキーポイント位置へのオリジナルのハンドポーズの動きは、制約を満足させられるように実行することができる。位置は、多くの場合に正確にマッチングしないことに注意すべきである。従って、ＩＫソルバは、ＩＫソルバ処理が判断することができるほど関節が最終位置に近いと考えられる時に、関節位置及び停止を密接に近似する。この段階又は処理は、手の最終ポーズと考えることができる。ＩＫソルバの出力は、関節の位置及び向きを示す数の量（例えば、１６）を含むことができる。処理５００内に示していないが、関節位置及び向きは、３Ｄの手をアニメ化するために使用することができ、ディスプレイ１０４のような画面に表示する最終ポーズをもたらすことができることに注意すべきである。処理５００は、判断ポイント５０４に戻り、ポーズ分析を開始するために別の指示を待つ。
【００８９】
従って、処理５００は、カメラを初期化して単一のフレームを取り込む。単一のフレームを利用して、処理５００は、カラーヒストグラムを生成し、手の一部分を形成しているピクセルの可能性の確率を各ピクセルに割り当てる。追跡ポイントが、各ピクセルに置かれ、画像は、グレースケールに変換される。グレースケール画像は、繰返し縮小され、確率が再計算される。関心ポイントを配置するためにガウス関数の差が計算される。ＳＩＦＴキーポイントが計算され、ＳＩＦＴキーポイントを使用して特徴ベクトルが作成される。特徴ベクトルが、訓練されたマルチクラスＳＶＭに入力され、結果を訓練された手のデータ内の最終的な手の位置にマップするために、ＩＫソルバを使用して結果を処理する。
【００９０】
図６は、自動リアルタイムハンド追跡、ポーズの分類、及びインタフェース制御に関連付けられた電子デバイスユーザインタフェース処理を提供する処理６００の実施の例示的な流れ図である。処理６００は、６０２で開始される。ブロック６０４で、処理６００は、電子デバイスの画像処理モジュールを通じて、カメラ入力を通じたハンド動作を検出する。ブロック６０６で、処理６００は、ハンド動作の語彙から検出したハンド動作を識別する。ブロック６０８で、処理６００は、識別したハンド動作に応答して電子デバイスを制御する。
【００９１】
図７は、電子デバイスユーザインタフェース処理と、自動リアルタイムハンド追跡、ポーズの分類、及びインタフェース制御に関連付けられた電子デバイスの制御機能へのポーズ割り当てとを提供する処理７００の実施の例示的な流れ図である。処理７００は、７０２で開始される。判断ポイント７０４で、処理７００は、動作が検出されたか否かを判断する。図５に関して上述した処理のような処理は、動作が検出されたか否かを判断するために使用することができることが理解される。ハンド動作検出は、上述のような素手の位置を検出する段階を含むことができる。更に、ハンド動作検出は、素手の位置のシーケンスを検出する段階を含むことができる。
【００９２】
動作が検出されたという判断に応答して、処理７００は、ブロック７０６で検出した動作を識別する。検出したハンド動作は、例えば、ハンド動作の語彙から識別することができる。
【００９３】
判断ポイント７０８で、処理７００は、識別した動作が電子デバイスの制御機能に関連付けられたか否かを判断する。例えば、ハンド動作は、電子デバイスの電源を入れること、電子デバイスの電源を切ること、音声出力の音量を調節すること、又は電子デバイスの他の制御機能に関連付けることができる。
【００９４】
識別した動作が電子デバイスの制御機能に関連付けられたという判断に応答して、処理７００は、判断ポイント７１０で電子デバイスの制御に関連付けられた閾値持続時間にわたってハンド動作が検出されたか否かを判断する。例えば、偽制御信号を排除するために電子デバイス制御へのヒステリシスを実施するように制御閾値を使用することができる。構成された制御閾値は、例えば、２００ミリ秒（２００ｍｓ）又は所定の実施に対して適切な場合により高い又は低い持続時間のような所定の実施に対するあらゆる適切な範囲を含むことができる。
【００９５】
ハンド動作が電子デバイスの制御に関連付けられた閾値持続時間にわたって検出されたという判断に応答して、処理７００は、ブロック７１２で識別したハンド動作に応答して電子デバイスを制御する。例えば、識別したハンド動作に応答して電子デバイスを制御する段階は、電子デバイスの電源を入れる段階、電子デバイスの電源を切る段階、出力音量を調節する段階、又は所定の実施に適する他のあらゆる制御機能を含むことができる。
【００９６】
ブロック７１２で識別したハンド動作に応じた電子デバイスの制御の終了に応答して、又は判断ポイント７１０で閾値持続時間にわたってハンド動作が検出されなかったという判断に応答して、処理７００は、判断ポイント７０４に戻り、別のハンド動作検出を待ち、上述のように繰り返す。
【００９７】
判断ポイント７０８の説明に戻って、識別した動作が電子デバイスの制御機能に関連付けられないという判断に応答して、処理７００は、電子デバイスの制御機能への識別したハンド動作の割り当てを命令する表示が検出されたか否かを判断ポイント７１４で判断する。例えば、遠隔制御デバイス（図示せず）又はタッチスクリーン入力（図示せず）などを通じた個別の入力は、電子デバイスの制御機能への識別した動作の割り当てを示すために使用することができる。代わりに、上述のように、表示を識別した動作として受け取ることができる。このような実施では、判断ポイント７０４及びブロック７０６に関して上述したような付加的な処理を実行することができ、電子デバイスの制御機能に対する割り当てられたハンド動作として使用される第２のハンド動作を検出して識別することができる。この付加的な処理は、判断ポイント７１４での処理の一部分と考えることができる。いずれの実施でも、制御割り当てが示されたという判断に応答して、処理７００は、検出した動作（又は所定の実施に適切である場合の第２の検出した動作）をブロック７１６で電子デバイスの制御機能に割り当てる。ブロック７１６で電子デバイスの制御機能への検出した動作（又は第２の検出した動作）の割り当ての完了時に、又は判断ポイント７１４での制御機能への識別したハンド動作の割り当てを命令する表示が検出されなかったという判断に応答して、処理７００は、判断ポイント７０４に戻り、別のハンド動作検出を待ち、上述のように繰り返す。
【００９８】
従って、処理７００は、ハンド動作を検出及び識別し、識別したハンド動作に基づいて電子デバイスを制御する。処理７００はまた、検出したハンド動作を処理し、ヒステリシスを提供し、ハンド動作検出に関する偽陽性を阻止する。処理７００は、更に、動作を電子デバイスの制御機能に割り当てる。多くの他の可能性がハンド動作の電子デバイス制御処理に存在し、全てが本発明の主題の範囲内と考えられる。
【００９９】
すなわち、ある一定の実施によると、ハンド動作を通じて電子デバイスを制御する方法は、電子デバイスの画像処理モジュールを通じて、素手の位置の検出したシーケンスに基づいてカメラ入力を通じた素手の位置を検出する段階、素手の位置が閾値持続時間にわたって検出されたか否かを判断する段階、識別した素手の位置が電子デバイスの電源を入れることに関連付けられたハンド動作を含む場合、ハンド動作の語彙から検出した素手の位置を識別する段階、及び閾値持続時間に素手の位置が検出されたという判断に応答して、電子デバイスの電源を入れることによる識別した素手の位置に応じで電子デバイスを制御する段階を含む。
【０１００】
別の実施では、コンピュータ可読ストレージ媒体は、１つ又はそれよりも多くのプログラムされたプロセッサで実行された時に、素手の位置の検出したシーケンスに基づいてカメラ入力を通じて素手の位置を検出する処理、素手の位置が閾値持続時間にわたって検出されたか否かを判断する処理、識別した素手の位置が電子デバイスの電源を入れる段階に関連付けられたハンド動作を含む場合、ハンド動作の語彙から検出した素手の位置を識別する処理、及び素手の位置が閾値持続時間にわたって検出されたという判断に応答して、電子デバイスの電源を入れることによって識別した素手の位置に応答して電子デバイスを制御する処理を実行する命令を格納することができる。
【０１０１】
ある一定の実施では、ハンド動作を通じて電子デバイスを制御する方法は、電子デバイスの画像処理モジュールを通じて、カメラ入力を通じたハンド動作を検出する段階、ハンド動作の語彙から検出したハンド動作を識別する段階、及び識別したハンド動作に応答して電子デバイスを制御する段階を含む。
【０１０２】
ある一定の実施では、電子デバイスの画像処理モジュールを通じてカメラ入力を通じたハンド動作を検出する段階を含むハンド動作を通じて電子デバイスを制御する方法は、素手の位置を検出する段階を含む。ある一定の実施では、電子デバイスの画像処理モジュールを通じてカメラ入力を通じたハンド動作を検出する方法は、素手の位置のシーケンスを検出する段階を含む。ある一定の実施では、識別したハンド動作は、電子デバイスの電源を入れる段階に関連付けられたハンド動作を含み、識別したハンド動作に応答して電子デバイスを制御する方法は、電子デバイスの電源を入れる段階を含む。ある一定の実施では、識別したハンド動作は、電子デバイスの電源を切る段階に関連付けられたハンド動作を含み、識別したハンド動作に応答して電子デバイスの制御する方法は、電子デバイスの電源を切る段階を含む。ある一定の実施では、本方法は、電子デバイスの制御に関連付けられたハンド動作が閾値持続時間にわたって検出されたか否かを判断する段階を更に含み、電子デバイスの画像処理モジュールを通じてカメラ入力を通じてハンド動作を検出する方法は、閾値持続時間に電子デバイスの制御に関連付けられたハンド動作を検出する段階を含む。ある一定の実施では、本方法は、電子デバイスの制御に関連付けられたハンド動作が閾値持続時間にわたって検出されたか否かを判断する段階を更に含み、ハンド動作の語彙から検出したハンド動作を識別する方法は、電子デバイスの制御に関連付けられたハンド動作が閾値持続時間にわたって検出されたという判断に応答して、ハンド動作の語彙から検出したハンド動作を識別する段階を含む。ある一定の実施では、本方法は、電子デバイスの制御機能へのハンド動作の語彙の１つの割り当てを示すユーザ入力を検出する段階、及びハンド動作の語彙の１つを電子デバイスの制御機能に割り当てる段階を更に含む。ある一定の実施では、電子デバイスの制御機能へのハンド動作の語彙の１つの割り当てを示すユーザ入力を検出する方法は、電子デバイスの制御機能へのハンド動作の語彙の１つの割り当てに関連付けられたハンド動作を検出する段階を含む。
【０１０３】
別の実施では、コンピュータ可読ストレージ媒体は、１つ又はそれよりも多くのプログラムされたプロセッサで実行された時に、カメラ入力を通じたハンド動作を検出する段階、ハンド動作の語彙から検出したハンド動作を識別する段階、及び識別したハンド動作に応答して電子デバイスを制御する段階を含むハンド動作を通じて電子デバイスを制御する処理を実行する命令を格納することができる。
【０１０４】
ある一定の実施では、手の位置の検出の方法は、電子デバイスの画像処理モジュールを通じて、特徴のフロックとして複数の入力画像のその後のビデオフレーム間の関心領域（ＲＯＩ）を追跡することによって複数の入力画像からハンド動作検出及びハンドポーズ推測に関連付けられた特徴セットを抽出する段階、スケール不変特徴変換（ＳＩＦＴ）特徴抽出をトリガする段階、特徴のフロックの光学フロー経路を計算する段階、複数の入力画像にわたって複数の向きの輝度勾配を測定する段階、測定した輝度勾配から画像ピラミッドを生成する段階、生成した画像ピラミッドを使用してピクセル輝度／変位特徴及びＳＩＦＴ特徴を抽出する段階、及び生成した画像ピラミッドからピクセル輝度／変位特徴及びＳＩＦＴ特徴を抽出することに関連してカスケードフィルタを適用する段階を含み、本方法は、訓練画像及び複数の入力画像内の少なくとも１つの特徴を検出することによって訓練されたマルチクラスサポートベクトル機械（ＳＶＭ）を使用してハンドポーズタイプを推測する段階、及び要素の有限セットから抜き取られた少なくとも１つのラベルとの複数の入力画像内の少なくとも１つの特徴のインスタンスとの１対１マッピングを実行する段階を含み、従って、少なくとも１つのラベルは、モーションキャプチャ３次元（３Ｄ）データセットに基づいて訓練段階中に生成された少なくとも１つのラベルを含み、本方法は、複数の入力画像を複数の処理領域に区分化することによって逆運動学（ＩＫ）最適化を使用してハンドポーズを近似する段階、複数の処理領域の各々内で特徴の重心を判断する段階、モーションキャプチャデータセットに関連付けられた３次元（３Ｄ）ポーズデータに各特徴重心の位置をマップする段階、各特徴重心からの分散を３Ｄポーズデータ内の最も近いマッチングと比較する段階、複数の関節制約のどれがＩＫ最適化に影響を与えるかを判断する段階、各特徴重心を３Ｄポーズデータに格納された最も近い関節にマップする段階、３Ｄポーズデータに基づいて訓練画像内の各マップされた最も近い関節の距離を最小にする段階、及び訓練画像内の各マップされた最も近い関節の最小距離に基づいて最終的な手の位置を判断する段階を含む。
【０１０５】
別の実施では、コンピュータ可読ストレージ媒体は、１つ又はそれよりも多くのプログラムされたプロセッサで実行された時に、電子デバイスの画像処理モジュールを通じて、特徴のフロックとして複数の入力画像のその後のビデオフレーム間の関心領域（ＲＯＩ）を追跡することによって複数の入力画像からハンド動作検出及びハンドポーズ推測に関連付けられた特徴セットを抽出する段階、スケール不変特徴変換（ＳＩＦＴ）特徴抽出をトリガする段階、特徴のフロックの光学フロー経路を計算する段階、複数の入力画像にわたって複数の向きの輝度勾配を測定する段階、測定した輝度勾配から画像ピラミッドを生成する段階、生成した画像ピラミッドを使用してピクセル輝度／変位特徴及びＳＩＦＴ特徴を抽出する段階、及び生成した画像ピラミッドからピクセル輝度／変位特徴及びＳＩＦＴ特徴を抽出することに関連してカスケードフィルタを適用する段階を含む手の位置の検出の処理を実行する命令を格納することができ、この処理は、訓練画像及び複数の入力画像内の少なくとも１つの特徴を検出することによって訓練されたマルチクラスサポートベクトル機械（ＳＶＭ）を使用してハンドポーズタイプを推測する段階、及び要素の有限セットから取られた少なくとも１つのラベルと複数の入力画像内の少なくとも１つの特徴のインスタンスとの１対１マッピングを実行する段階を含み、従って、少なくとも１つのラベルは、モーションキャプチャ３次元（３Ｄ）データセットに基づいて訓練段階中に生成された少なくとも１つのラベルを含み、また、この処理は、複数の入力画像を複数の処理領域に区分化することによって逆運動学（ＩＫ）最適化を使用してハンドポーズを近似する段階、複数の処理領域の各々内の特徴の重心を判断する段階、モーションキャプチャデータセットに関連付けられた３次元（３Ｄ）ポーズデータに各特徴重心の位置をマップする段階、各特徴重心からの分散を３Ｄポーズデータ内の最も近いマッチングと比較する段階、複数の関節制約のどれがＩＫ最適化に影響を与えるかを判断する段階、各特徴重心を３Ｄポーズデータに格納された最も近い関節にマップする段階、３Ｄポーズデータに基づいて訓練画像内の各マップされた最も近い関節の距離を最小にする段階、及び訓練画像内の各マップされた最も近い関節の最小距離に基づいて最終的な手の位置を判断する段階を含む。
【０１０６】
ある一定の実施では、手の位置の検出の方法は、電子デバイスの画像処理モジュールを通じて、少なくとも１つの入力画像からのハンド動作検出及びハンドポーズ推測に関連付けられた特徴セットを抽出する段階、訓練されたマルチクラスサポートベクトル機械（ＳＶＭ）を使用してハンドポーズタイプを推測する段階、及び逆運動学（ＩＫ）最適化を使用してハンドポーズを近似する段階を含む。
【０１０７】
ある一定の実施では、電子デバイスの画像処理モジュールを通じた少なくとも１つの入力画像からのハンド動作検出及びハンドポーズ推測に関連付けられた特徴セットを抽出する段階を含む手の位置の検出の方法は、少なくとも１つの入力画像にわたる複数の向きの輝度勾配を測定する段階、及び測定した輝度勾配から画像ピラミッドを生成する段階を含む。ある一定の実施では、本方法は、生成した画像ピラミッドを使用してピクセル輝度／変位特徴及びスケール不変特徴変換（ＳＩＦＴ）特徴を抽出する段階を更に含む。ある一定の実施では、本方法は、生成した画像ピラミッドからピクセル輝度／変位特徴及びＳＩＦＴ特徴を抽出することに関連してカスケードフィルタを適用する段階を更に含む。ある一定の実施では、少なくとも１つの入力画像は、複数の入力画像を含み、電子デバイスの画像処理モジュールを通じて少なくとも１つの入力画像からのハンド動作検出及びハンドポーズ推測に関連付けられた特徴セットを抽出する方法は、特徴のフロックとして複数の入力画像のその後のビデオフレーム間の関心領域（ＲＯＩ）を追跡する段階、スケール不変特徴変換（ＳＩＦＴ）特徴抽出をトリガする段階、及び特徴のフロックの光学フロー経路を計算する段階を含む。ある一定の実施では、特徴のフロックとして複数の入力画像のその後のビデオフレーム間のＲＯＩを追跡する方法は、ピクセル輝度／変位特徴及び学習された前景カラー分布の２次元（２Ｄ）組合せを追跡する段階を含む。ある一定の実施では、特徴のフロックの光学フロー経路を計算する方法は、特徴のフロックが互いからの最小距離を維持するように特徴のフロックの各々に少なくとも１つの制約を加える段階を含む。ある一定の実施では、訓練されたマルチクラスＳＶＭを使用したハンドポーズタイプを推測する方法は、訓練画像及び少なくとも１つの入力画像内の少なくとも１つの特徴を検出する段階、及び要素の有限セットから取られた少なくとも１つのラベルと少なくとも１つの入力画像内の少なくとも１つの特徴のインスタンスとの１対１マッピングを実行する段階を含む。ある一定の実施では、少なくとも１つのラベルは、モーションキャプチャ３次元（３Ｄ）データセットに基づいて訓練段階中に生成された少なくとも１つのラベルを含む。ある一定の実施では、ＩＫ最適化を使用してハンドポーズを近似する方法は、少なくとも１つの入力画像を複数の処理領域に区分化する段階、複数の処理領域の各々内で特徴の重心を判断する段階、及びモーションキャプチャデータセットに関連付けられた３次元（３Ｄ）ポーズデータに各特徴重心の位置をマップする段階を含む。ある一定の実施では、複数の処理領域の各々内の特徴の重心を判断する方法は、各特徴重心からの分散を３Ｄポーズデータ内の最も近いマッチングと比較する段階、及び複数の関節制約のどれがＩＫ最適化に影響を与えるかを判断する段階を含む。ある一定の実施では、本方法は、各特徴重心を３Ｄポーズデータに格納された最も近い関節にマップする段階を更に含む。ある一定の実施では、本方法は、３Ｄポーズデータに基づいて訓練画像内の各マップされた最も近い関節の距離を最小にする段階、及び訓練画像内の各マップされた最も近い関節の最小距離に基づいて最終的な手の位置を判断する段階を更に含む。ある一定の実施では、本方法は、画像処理に対する設定可能な解像度閾値を定める段階、及び設定可能な解像度閾値を調節する段階を更に含む。ある一定の実施では、本方法は、ハンド動作検出及びハンドポーズ推測に関連付けられた抽出された特徴セットを格納する段階を更に含む。
【０１０８】
別の実施では、コンピュータ可読ストレージ媒体は、１つ又はそれよりも多くのプログラムされたプロセッサで実行された時に、少なくとも１つの入力画像からのハンド動作検出及びハンドポーズ推測に関連付けられた特徴セットを抽出する段階、訓練されたマルチクラスサポートベクトル機械（ＳＶＭ）を使用してハンドポーズタイプを推測する段階、及び逆運動学（ＩＫ）最適化を使用してハンドポーズを近似する段階を含む手の位置の検出の処理を実行する命令を格納することができる。
【０１０９】
ある一定の実施と矛盾しないハンド動作を通じて電子デバイスを制御するための装置は、カメラと、素手の位置の検出したシーケンスに基づいてカメラを通じて素手の位置を検出し、閾値持続時間に素手の位置が検出されたか否かを判断し、ハンド動作の語彙から検出した素手の位置を識別し、識別した素手の位置は、電子デバイスの電源を入れる段階に関連付けられたハンド動作を含み、かつ閾値持続時間に素手の位置が検出されたという判断に応答して、電子デバイスの電源を入れることによって識別した素手の位置に応答して電子デバイスを制御するようにプログラムされたプロセッサとを有する。
【０１１０】
ある一定の実施と矛盾しないハンド動作を通じて電子デバイスを制御するための装置は、カメラと、カメラを通じてハンド動作を検出し、ハンド動作の語彙から検出したハンド動作を識別し、更に、識別したハンド動作に応答して電子デバイスを制御するようにプログラムされたプロセッサとを有する。
【０１１１】
ある一定の実施では、カメラを通じてハンド動作を検出するようにプログラムされる際に、プロセッサは、素手の位置を検出するようにプログラムされる。ある一定の実施では、カメラを通じてハンド動作を検出するようにプログラムされる際に、プロセッサは、素手の位置のシーケンスを検出するようにプログラムされる。ある一定の実施では、識別されるハンド動作は、電子デバイスの電源を入れることに関連付けられたハンド動作を含み、識別したハンド動作に応答して電子デバイスを制御するようにプログラムされる際に、プロセッサは、電子デバイスの電源を入れるようにプログラムされる。ある一定の実施では、識別されるハンド動作は、電子デバイスの電源を切ることに関連付けられたハンド動作を含み、識別したハンド動作に応答して電子デバイスを制御するようにプログラムされる際に、プロセッサは、電子デバイスの電源を切るようにプログラムされる。ある一定の実施では、プロセッサは、電子デバイスの制御に関連付けられたハンド動作が閾値持続時間にわたって検出されたか否かを判断するように更にプログラムされ、カメラを通じてハンド動作を検出するようにプログラムされる際に、プロセッサは、閾値持続時間に電子デバイスの制御に関連付けられたハンド動作を検出するようにプログラムされる。ある一定の実施では、プロセッサは、電子デバイスの制御に関連付けられたハンド動作が閾値持続時間にわたって検出されたか否かを判断するように更にプログラムされ、ハンド動作の語彙から検出したハンド動作を識別するようにプログラムされる際に、プロセッサは、電子デバイスの制御に関連付けられた検出したハンド動作が閾値持続時間にわたって検出されたという判断に応答してハンド動作の語彙から検出したハンド動作を識別するようにプログラムされる。ある一定の実施では、プロセッサは、電子デバイスの制御機能へのハンド動作の語彙の１つの割り当てを示すユーザ入力を検出し、更に、ハンド動作の語彙の１つを電子デバイスの制御機能に割り当てるように更にプログラムされる。ある一定の実施では、電子デバイスの制御機能へのハンド動作の語彙の１つの割り当てを示すユーザ入力を検出するようにプログラムされる際に、プロセッサは、電子デバイスの制御機能へのハンド動作の語彙の１つの割り当てに関連付けられたハンド動作を検出するようにプログラムされる。
【０１１２】
ある一定の実施と矛盾しない手の位置の検出のための装置は、カメラと、カメラを通じて受信した複数の入力画像からハンド動作検出及びハンドポーズ推測に関連付けられた特徴セットを抽出するようにプログラムされたプロセッサとを有し、プロセッサは、特徴のフロックとして複数の入力画像のその後のビデオフレーム間の関心領域（ＲＯＩ）を追跡し、スケール不変特徴変換（ＳＩＦＴ）特徴抽出をトリガし、特徴のフロックの光学フロー経路を計算し、複数の入力画像にわたって複数の向きの輝度勾配を測定し、測定した輝度勾配から画像ピラミッドを生成し、生成した画像ピラミッドを使用してピクセル輝度／変位特徴及びＳＩＦＴ特徴を抽出し、更に、生成した画像ピラミッドからピクセル輝度／変位特徴及びＳＩＦＴ特徴を抽出することに関連してカスケードフィルタを適用するように更にプログラムされ、プロセッサは、訓練されたマルチクラスサポートベクトル機械（ＳＶＭ）を使用してハンドポーズタイプを推測するようにプログラムされ、プロセッサは、訓練画像及び複数の入力画像内の少なくとも１つの特徴を検出し、更に、要素の有限セットから取られた少なくとも１つのラベルと複数の入力画像内の少なくとも１つの特徴のインスタンスとの１対１マッピングを実行するようにプログラムされ、従って、少なくとも１つのラベルは、モーションキャプチャ３次元（３Ｄ）データセットに基づいて訓練段階中に生成された少なくとも１つのラベルを含み、プロセッサは、逆運動学（ＩＫ）最適化を使用してハンドポーズを近似するようにプログラムされ、プロセッサは、複数の入力画像を複数の処理領域に区分化し、複数の処理領域の各々内で特徴の重心を判断し、モーションキャプチャデータセットに関連付けられた３次元（３Ｄ）ポーズデータに各特徴重心の位置をマップし、各特徴重心からの分散を３Ｄポーズデータ内の最も近いマッチングと比較し、複数の関節制約のどれがＩＫ最適化に影響を与えるかを判断し、各特徴重心を３Ｄポーズデータに格納された最も近い関節にマップし、３Ｄポーズデータに基づいて訓練画像内の各マップされた最も近い関節の距離を最小にし、更に、訓練画像内の各マップされた最も近い関節の最小距離に基づいて最終的な手の位置を判断するように更にプログラムされる。
【０１１３】
ある一定の実施と矛盾しない手の位置の検出のための装置は、カメラと、カメラを通じて受信した少なくとも１つの入力画像からのハンド動作検出及びハンドポーズ推測に関連付けられた特徴のセットを抽出し、訓練されたマルチクラスサポートベクトル機械（ＳＶＭ）を使用してハンドポーズタイプを推測し、更に、逆運動学（ＩＫ）最適化を使用してハンドポーズを近似するようにプログラムされたプロセッサとを有する。
【０１１４】
ある一定の実施では、カメラを通じて受け取った少なくとも１つの入力画像からのハンド動作検出及びハンドポーズ推測に関連付けられた特徴セットを抽出するようにプログラムされる際に、プロセッサは、少なくとも１つの入力画像にわたって複数の向きの輝度勾配を測定し、更に、測定した輝度勾配から画像ピラミッドを生成するようにプログラムされる。ある一定の実施では、プロセッサは、生成した画像ピラミッドを使用してピクセル輝度／変位特徴及びスケール不変特徴変換（ＳＩＦＴ）特徴を抽出するように更にプログラムされる。ある一定の実施では、プロセッサは、生成した画像ピラミッドからピクセル輝度／変位特徴及びＳＩＦＴ特徴を抽出することに関連してカスケードフィルタを適用するように更にプログラムされる。ある一定の実施では、少なくとも１つの入力画像は、複数の入力画像を含み、カメラを通じて受け取った少なくとも１つの入力画像からのハンド動作検出及びハンドポーズ推測に関連付けられた特徴のセットを抽出するようにプログラムされる際に、プロセッサは、特徴のフロックとして複数の入力画像のその後のビデオフレーム間の関心領域（ＲＯＩ）を追跡し、スケール不変特徴変換（ＳＩＦＴ）特徴抽出をトリガし、更に、特徴のフロックの光学フロー経路を計算するようにプログラムされる。ある一定の実施では、特徴のフロックとして複数の入力画像のその後のビデオフレーム間のＲＯＩを追跡するようにプログラムされる際に、プロセッサは、ピクセル輝度／変位特徴及び学習された前景カラー分布の２次元（２Ｄ）組合せを追跡するようにプログラムされる。ある一定の実施では、特徴のフロックの光学フロー経路を計算するようにプログラムされる際に、プロセッサは、特徴のフロックが互いからの最小距離を維持するように特徴のフロックの各々に少なくとも１つの制約を課すようにプログラムされる。ある一定の実施では、訓練されたマルチクラスＳＶＭを使用してハンドポーズタイプを推測するようにプログラムされる際に、プロセッサは、訓練画像及び少なくとも１つの入力画像内の少なくとも１つの特徴を検出し、更に、要素の有限セットから取られた少なくとも１つのラベルと少なくとも１つの入力画像内の少なくとも１つの特徴のインスタンスとの１対１マッピングを実行するようにプログラムされる。ある一定の実施では、少なくとも１つのラベルは、モーションキャプチャ３次元（３Ｄ）データセットに基づいて訓練段階中に生成された少なくとも１つのラベルを含む。ある一定の実施では、ＩＫ最適化を使用してハンドポーズを近似するようにプログラムされる際に、プロセッサは、少なくとも１つの入力画像を複数の処理領域に区分化し、複数の処理領域の各々内の特徴の重心を判断し、更に、モーションキャプチャデータセットに関連付けられた３次元（３Ｄ）ポーズデータに各特徴重心の位置をマップするようにプログラムされる。ある一定の実施では、複数の処理領域の各々内で特徴の重心を判断するようにプログラムされる際に、プロセッサは、各特徴重心からの分散を３Ｄポーズデータ内の最も近いマッチングと比較し、更に、複数の関節制約のどれがＩＫ最適化に影響を与えるかを判断するようにプログラムされる。ある一定の実施では、プロセッサは、各特徴重心を３Ｄポーズデータに格納された最も近い関節にマップするように更にプログラムされる。ある一定の実施では、プロセッサは、３Ｄポーズデータに基づいて訓練画像内の各マップされた最も近い関節の距離を最小にし、更に、訓練画像内の各マップされた最も近い関節の最小距離に基づいて最終的な手の位置を判断するように更にプログラムされる。ある一定の実施では、プロセッサは、画像処理に対する設定可能な解像度閾値を定め、更に、設定可能な解像度閾値を調節するように更にプログラムされる。ある一定の実施では、手の位置の検出のための装置は、メモリを有し、プロセッサは、ハンド動作検出及びハンドポーズ推測に関連付けられた抽出した特徴セットをメモリに格納するように更にプログラムされる。
【０１１５】
本明細書のある一定の実施形態は、説明した機能を実行する特定の回路に関して説明したが、回路機能が１つ又はそれよりも多くのプログラムされたプロセッサで実行される同等の要素を使用して実行される他の実施形態も考えられる。他の同等の実施形態を構成するために、汎用コンピュータ、マイクロプロセッサベースのコンピュータ、マイクロコントローラ、光学コンピュータ、アナログコンピュータ、専用プロセッサ、特定用途向け回路及び／又は専用ハードワイヤード論理、及びアナログ回路を使用することができる。専用ハードウエア、専用プロセッサ、又はその組合せのようなハードウエア構成要素の均等物を使用する他の実施形態も実施することができる。
【０１１６】
ある一定の実施形態は、あらゆる適切な電子又はコンピュータ可読ストレージ媒体（例えば、ディスクストレージ、「読取専用メモリ（ＲＯＭ）」デバイス、「ランダムアクセスメモリ（ＲＡＭ）」デバイス、ネットワークメモリデバイス、光学格納要素、磁気格納要素、磁気光学格納要素、フラッシュメモリ、コアメモリ、及び／又は他の同等の揮発性及び不揮発性格納技術など）に格納することができるある一定の事例において流れ図形式で広義に上述したプログラミング命令を実行する１つ又はそれよりも多くのプログラムされたプロセッサを使用して実施することができる。しかし、当業者は、本教示を考えた上で、本発明の実施形態から逸脱することなく上述の処理をいずれの数の変形においても及び多くの適切なプログラミング言語に実施することができることを認めるであろう。例えば、実行するある一定の作動の順序は、変更することができる場合が多く、本発明のある一定の実施形態から逸脱することなく付加的な作動を追加することができ、又は作動を削除することができる。本発明のある一定の実施形態から逸脱することなく誤差捕捉を追加及び／又は強化することができ、ユーザインタフェース及び情報呈示に変形を実行することができる。このような変形が考えられており、かつ同等と見なされる。
【０１１７】
ある一定の例示的な実施形態を説明したが、多くの代替、修正、置換、及び変形が以上の説明の観点から当業者に明らかになることは明らかである。
【符号の説明】
【０１１８】
５００  自動リアルタイムハンド追跡、ポーズの分類、及びインタフェース制御に関連付けられた検出及びポーズ認識処理を提供する処理
５０６  カメラを初期化して単一のフレームを取り込む段階
５０８  取り込まれた画像に対するカラーヒストグラムを生成する段階
５１０  手の一部分を形成する可能性の各ピクセルに確率を割り当てる段階
５２０  検出したＳＩＦＴキーポイントを使用して特徴ベクトルを作成する段階
【図１】
0005455167.tif 000010
【図２】
0005455167.tif 000011
【図３】
0005455167.tif 000012
【図４】
0005455167.tif 000013
【図５】
0005455167.tif 000014
【図６】
0005455167.tif 000015
【図７】
0005455167.tif 000016