(57)【特許請求の範囲】
【請求項１】
１本以上の指を含むユーザーの手のモデルを生成する方法であって、
（ａ）計算デバイスに付随するセンサーと相互作用しているユーザーの位置を表す、前記計算デバイスの位置データを受け取るステップであって、前記位置データが、前記ユーザーの手を表す深度データおよび画像データの内少なくとも１つを含む、ステップと、
（ｂ）手が開いた状態にあるかまたは閉じた状態にあるかを特定するために前記位置データを分析するステップと
を含み、前記ステップ（ｂ）が、
（ｂ）（１）前記位置データを前記手のデータに区分するために、前記ステップ（ａ）において取り込んだ前記位置データから深度データを分析するステップと、
（ｂ）（２）前記ステップ（ｂ）（１）において特定した前記手の画像データに１つ以上のフィルターを適用することによって、１組の特徴記述子を抽出するステップであって、前記１つ以上のフィルターが、前記手の形状を含む前記手の特徴を識別するために、前記手の境界形状に基づき前記手の境界の外側となる画像データと比較して、前記手の画像データを分析する、ステップと
を含む、方法。
【請求項２】
請求項１記載の方法であって、更に、前記センサーを介してコマンドを受け取るアプリケーションを実行するステップと、前記ステップ（ｂ）において特定した、前記手が開いているかまたは閉じているかに基づいて、前記アプリケーションにおいて制御動作に作用させるステップとを備えている、方法。
【請求項３】
請求項１記載の方法であって、更に、前記センサーを介してコマンドを受け取るゲーム・アプリケーションを実行するステップと、前記ステップ（ｂ）において特定した、前記手が開いているかまたは閉じているかに基づいて、前記ゲーム・アプリケーションにおいて動作に作用させるステップとを備えている、方法。
【請求項４】
請求項１記載の方法において、前記ステップ（ｂ）（１）が、最良の手の候補を突き止めるために、前記画像データから構成した重心を分析するステップを含む、方法。
【請求項５】
請求項４記載の方法において、前記ステップ（ｂ）（１）が、更に、前記最良の手の候補を分析して、前記手の中心の最良の候補を決定するステップを含む、方法。
【請求項６】
請求項１記載の方法において、前記ステップ（ｂ）（２）が、画素分類フィルター(pixel classifier)を適用するステップを含み、
該ステップが、
前記手の形状記述子の境界内部にある画素を選択するステップと、
各画素の周囲に所定のサイズのボックスを形成するステップであって、各ボックスを前記形状記述子の平面内に形成する、ステップと、
前記画像データが前景点と背景点との間で移行する、各ボックスとの交点を判定するステップと、
調べる画素毎に、各ボックスの前記交点を分析することから、手が開いているかまたは閉じているか特定するステップと、
を含む、方法。
【請求項７】
請求項１記載の方法において、前記ステップ（ｂ）（２）が、湾曲分析フィルターを適用するステップを含み、
該ステップが、
前記手の形状記述子の境界に沿った画素を選択するステップと、
選択した画素を取り囲む複数の画素を調べて、周囲の画素も前記形状記述子の境界に沿っていることを示す値を、前記選択した画素に割り当てるステップと、
前記値を、角度と、ピークおよび谷を含む前記手の周囲の輪郭とに変換するステップと、
前記ピークの内どれが、前記手の開いている指または閉じている指を表すのかを判断するステップと、
を含む、方法。
【請求項８】
請求項１記載の方法において、前記ステップ（ｂ）（２）が、自然グラブ・フィルターを適用するステップを含み、該ステップが、
指を開いて閉じる状態へ動かすと共に、前記センサーに向かう前記手の動きを検出するステップを含む、方法。
【請求項９】
検出した手が開いているかまたは閉じているか判断するシステムであって、当該システムが、計算デバイスに動作可能に結合されている検知メカニズムを含み、当該システムが、
画像データおよび深度データの内少なくとも１つを含む受信データから、ユーザーの骨格の少なくとも一部を認識する骨格認識エンジンと、
前記骨格認識エンジンから受信した深度データを分析して、身体の１つ以上の領域を、前記ユーザーの手を表す領域に区分する画像区分エンジンと、
１本以上の指を含む手と、この手が開いているかまたは閉じているかとを表すデータを抽出する記述子抽出エンジンと
を備えており、
前記記述子抽出エンジンが、前記手を表す前記領域にある画素を分析するために複数のフィルターを適用し、前記複数のフィルターにおける各フィルターが、前記手の境界形状に基づいて前記手についての位置と開いている状態または閉じている状態とを判定し、前記記述子抽出エンジンが、前記手が開いているかまたは閉じているかについての最良の推定値に到達するために、各フィルターの結果を組み合わせる、システム。
【請求項１０】
請求項９記載のシステムにおいて、前記記述子抽出エンジンの前記複数のフィルターが、手であると想定した形状の周囲における輪郭不連続を測定する不連続フィルターを含み、前記輪郭不連続が所定の閾値よりも低いときに、前記不連続フィルターが、閉じている手を特定する、システム。
【請求項１１】
請求項９記載のシステムにおいて、前記記述子抽出エンジンの複数のフィルターが、前記検知メカニズムに向かう手の動きを検出し、前記手の指が開いているかまたは閉じているかを検出する自然グラブ・フィルターを含む、システム。
【請求項１２】
請求項１１記載のシステムにおいて、前記自然グラブ・フィルターは、手と同一の腕の肘として特定される骨格の点から最も離れている、前記手の画素を特定することによって、前記手の指が部分的に開いているかまたは閉じているかを判断する、システム。
【請求項１３】
請求項９記載のシステムにおいて、前記記述子抽出エンジンの前記複数のフィルターが、更に、前記手の指が開いているかまたは閉じているかを判断する１つ以上のサブフィルターを含み、前記１つ以上のサブフィルターの内の第１サブフィルターは、円サブフィルターであり、前記手のシルエットが円に近いかを判断し、前記円サブフィルターは前記シルエットが円に近い場合に前記手が閉じていることを示す、システム。
【請求項１４】
請求項１３記載のシステムにおいて、前記円サブフィルターは、前記手であると推定される質量の中心を特定し、前記質量の中心と前記肘から最も離れているものとして特定される画素との間の標準偏差を決定する、システム。
【請求項１５】
請求項１３記載のシステムにおいて、前記１つ以上のサブフィルターの内の第２サブフィルターは、深度ジャンプを測定し、深度ジャンプの回数が或る所定の閾値未満である場合に、前記手が閉じていると推定する、システム。
【請求項１６】
請求項１４記載のシステムにおいて、前記１つ以上のサブフィルターの内の第３サブフィルターは、パドル・サブフィルターであり、手が、広げられ且つ一緒である指を含むかどうかを判断し、前記パドル・サブフィルターが、ヒストグラムを用いて、指先の画素をビンに分類し、開き且つ閉じる手についてのモデルを用いて各ビンの画素数を調べ、前記手が開いているか閉じているかを推定する、システム。
【請求項１７】
請求項１６記載のシステムにおいて、前記１つ以上のサブフィルターの各々についての結果および信頼性を組み合わせて、手が開いているか閉じているかを判断する、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  これまで、コンピューター・ゲームおよびマルチメディア・アプリケーションというような計算アプリケーション(computing application)は、コントローラー、リモコン、キーボード、マウス等を用いて、ユーザーがアプリケーションのゲーム・キャラクタまたはその他の態様を操作することを可能にしていた。更に最近になって、コンピューター・ゲームおよびマルチメディア・アプリケーションは、カメラやソフトウェア・ジェスチャー認識エンジンを採用して、自然(natural)ユーザー・インターフェース（「ＮＵＩ」）を提供し始めている。ＮＵＩによって、生の関節データやユーザーのジェスチャーを検出し、解釈し、そしてアプリケーションのゲーム・キャラクタまたはその他の態様を制御するために用いられる。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
[0002]  ＮＵＩシステムの課題の１つは、画像センサーの視野内において人を区別し、その視野内における手および指を含む彼または彼女の身体部分の位置を正しく特定することである。腕、脚、頭、および胴体を追跡するルーチンは周知である。しかしながら、ユーザーの手の微妙な詳細や多様な位置を考えると、従来のシステムは、指および手の位置を含むユーザーの身体を満足できるように認識および追跡を行うことができない。ユーザーの手が開いているかまたは閉じているかの検出は、広範囲にわたる種々の制御および／またはアプリケーション・メトリック(metric)において用いることができる。ユーザーの手（一方または双方）の開いた状態または閉じた状態を信頼性高く検出することができるシステムを有することができれば、有用であろう。
【課題を解決するための手段】
【０００３】
[0003]  本明細書では、手および指の位置を含むユーザーの骨格関節、ならびに手が開いているかまたは閉じているかについて、ＮＵＩシステムを用いて、認識し追跡するシステムおよび方法を開示する。例では、手および指の位置の追跡は、画面上においてオブジェクトを選択する、かみ合わせる(engage)、または掴むおよび引きずるというようなイベントを誘起するために、ＮＵＩシステムによって用いることができる。本技術によって、手および指の位置ならびに動きを認識および追跡するための種々の他のジェスチャー、制御動作、およびアプリケーションも実施可能にすることができる。ユーザーの手の開いている状態または閉じている状態を判定することによって、ＮＵＩシステムまたは他のシステムとユーザーとの対話処理のし易さ(interactivity)を高めることができ、一層簡単で直感的なインターフェースをユーザーに提示することができる。
【０００４】
[0004]  一例としては、本開示は、１本以上の指を含むユーザーの手のモデルを生成する方法に関する。この方法は、（ａ）センサーと相互作用しているユーザーの位置を表す位置データを受け取るステップであって、この位置データが、ユーザーの手を表す深度データおよび画像データの内少なくとも１つを含む、ステップと、（ｂ）手が開いた状態にあるのかまたは閉じた状態にあるのか特定するために位置データを分析するステップとを備えており、前記ステップ（ｂ）が、（ｂ）（１）位置データを手のデータに区分するために、ステップ（ａ）において取り込んだ位置データから深度データを分析するステップと、（ｂ）（２）ステップ（ｂ）（１）において特定した手の画像データに１つ以上のフィルターを適用することによって、１組の特徴記述子を抽出するステップであって、１つ以上のフィルターが、手の形状を含む手の特徴を識別するために、手の境界の外側となる画像データに対して、手の画像データを分析する、ステップとを含む。
【０００５】
[0005]  他の例としては、本開示は、検出した手が開いているかまたは閉じているか判断するシステムに関する。このシステムは、計算デバイスに動作可能に結合されている検知メカニズムを含む。このシステムは、画像データおよび深度データの内少なくとも１つを含む受信データから、ユーザーの骨格の少なくとも一部を認識する骨格認識エンジンと、身体の１つ以上の領域を、ユーザーの手を表す領域に区分する画像区分エンジンと、１本以上の指を含む手を表すデータと、この手が開いているかまたは閉じているかを表すデータとを抽出する記述子抽出エンジンとを備えており、記述子抽出エンジンが、手を表す領域にある画素を分析するために複数のフィルターを適用し、複数のフィルターにおける各フィルターが、手の位置および開いている状態または閉じている状態を判定し、記述子抽出エンジンが、手が開いているかまたは閉じているかについての最良の推定値に到達するために、各フィルターの結果を組み合わせる。
【０００６】
[0006]  他の例としては、本開示は、変調データ信号で構成されているのではないコンピューター読み取り可能記憶媒体に関する。このコンピューター読み取り可能記憶媒体は、自然ユーザー・インターフェースのために、１本以上の指を含むユーザーの手のモデルを生成する方法を実行するようにプロセッサーをプログラミングするコンピューター実行可能命令を有する。前述の方法は、（ａ）自然ユーザー・インターフェースと対話処理するユーザーの画像データを受け取るステップと、（ｂ）画像データにおいて手を特定するために、画像データを分析するステップと、（ｃ）ユーザーが、以下の既定の手のジェスチャーまたは制御動作の内１つを実行したか否か判断するために、特定した手の画像データを、既定の手の位置と比較するステップであって、既定のジェスチャーが、（ｃ）（１）掴むジェスチャー、（ｃ）（２）放すジェスチャー、（ｃ）（３）引くジェスチャーであって、手が仮想オブジェクトの周囲で閉じて仮想オブジェクトを作動させる、ジェスチャー、（ｃ）（４）開いている手を識別することによって、動作を開始し永続させる、（ｃ）（５）閉じている手を識別することによって動作を終了させることを含む、ステップと、
を備えている。
【０００７】
[0007]  この摘要は、詳細な説明の章において以下で更に説明する概念から選択したものを簡略化された形式で紹介するために、設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を判断するときに補助として使用されることを意図するのでもない。更に、特許請求する主題は、本開示において、いずれかの欠点を解決する実施態様や全ての欠点を解決する実施態様がいずれの部分に記されていても、これらに限定されない。
【図面の簡単な説明】
【０００８】
【図１Ａ】図１Ａは、目標認識、分析、および追跡システムの一実施形態例を示す。
【図１Ｂ】図１Ｂは、目標認識、分析、および追跡システムの他の実施形態例を示す。
【図１Ｃ】図１Ｃは、目標認識、分析、および追跡システムの更に他の実施形態例を示す。
【図２】図２は、目標認識、分析、および追跡システムにおいて用いることができるキャプチャー・デバイスの一実施形態例を示す。
【図３】図３は、人間の目標物を表すために用いられる身体モデル例を示す。
【図４】図４は、人間の目標物を表すために用いられる骨格モデル例の実質的な正面図を示す。
【図５】図５は、人間の目標物を表すために用いられる骨格モデル例を歪ませた図を示す。
【図６】図６は、本技術の一実施形態による目標物を追跡するパイプラインのフローチャートを示す。
【図７】図７は、本開示の一実施形態によるユーザーの手の状態を判定する方法例を示す。
【図８】図８は、本開示の一実施形態による画像区分エンジンの動作のフローチャートである。
【図９】図９は、本開示の一実施形態による画素分類フィルターの動作のフローチャートである。
【図１０】図１０は、本開示の一実施形態による画素分類フィルターの動作の判断ツリーである。
【図１１Ａ】図１１Ａは、本開示の一実施形態による、画素分類フィルターを用いた指先識別を示す。
【図１１Ｂ】図１１Ｂは、本開示の一実施形態による、画素分類フィルターを用いた指先識別を示す。
【図１２】図１２は、本開示の一実施形態による、画素分類フィルターを用いた指先識別を示す。
【図１３】図１３は、本開示の一実施形態による、画素分類フィルターを用いて特定した手の一部を示す。
【図１４】図１４は、本開示の一実施形態による、画素分類フィルターを用いた手および指識別を示す。
【図１５】図１５は、本開示の一実施形態による湾曲分析フィルターの動作のフロー図である。
【図１６】図１６は、本開示の一実施形態による、湾曲分析フィルターを用いた手および指識別を示す。
【図１７】図１７は、本開示の一実施形態による、深度ヒストグラム・フィルターを用いた、手開閉分析(open and closed hand analysis)を示す。
【図１８】図１８は、本開示の一実施形態にしたがって、統計フィルターを用いた、開いた手および閉じた手を示す。
【図１９】図１９は、本開示の一実施形態による自然グラブ・フィルター(natural grab filter)の動作のフローチャートである。
【図２０】図２０は、ハンド・フィルター(hand filter)に基づいて手の位置を分類するスーパーバイザー・フィルターのフロー図である。
【図２１Ａ】図２１Ａは、目標認識、分析、および追跡システムにおいて１つ以上のジェスチャーを解釈するために用いることができる計算環境の一実施形態例を示す。
【図２１Ｂ】図２１Ｂは、目標認識、分析、および追跡システムにおいて１つ以上のジェスチャーを解釈するために用いることができる計算環境の他の実施形態例を示す。
【発明を実施するための形態】
【０００９】
[0032]  これより、図１Ａから図２１Ｂを参照しながら本技術の実施形態について説明する。図１Ａから図２１Ｂは、全般的に、ＮＵＩシステムにおける画像センサーによって取り込まれた、ユーザーの手および指のハンド・モデル(hand model)を含む、目標ユーザーのコンピューター・モデルを生成するパイプラインに関する。このコンピューター・モデルは、取り込まれた画像データの１フレーム毎に１回生成することができ、フレーム取り込みの間における、ユーザーの姿勢を含む、最良の位置推定値を表す。フレーム毎に生成したハンド・モデル(hand model)は、ゲーミング・アプリケーションまたはその他のアプリケーションによって、ユーザーのジェスチャーおよび制御行為(action)というような事項を判定するために用いることができる。また、ハンド・モデルをパイプラインにフィードバックし、今後のモデル判定に役立てることもできる。
【００１０】
[0033]  最初に図１Ａから図２を参照すると、本技術を実現するハードウェアは、目標認識、分析、および追跡システム１０を含む。このシステム１０は、ユーザー１８のような人間の目標物を認識、分析、および／または追跡するために用いることができる。目標認識、分析、および対駅システム１０の実施形態は、ゲーミング・アプリケーションまたはその他のアプリケーションを実行する計算環境１２を含む。計算環境１２は、ゲーミング・アプリケーションおよびゲーム以外のアプリケーションというようなアプリケーションを実行するために計算環境１２を用いることができるように、ハードウェア・コンポーネントおよび／またはソフトウェア・コンポーネントを含むことができる。一実施形態では、計算環境１２は、標準的なプロセッサー、特殊プロセッサー、マイクロプロセッサー等を含むことができ、このプロセッサーは、本明細書において説明するプロセスを実行するために、プロセッサー読み取り可能記憶デバイスに格納されている命令を実行することができる。
【００１１】
[0034]  更に、システム１０は、キャプチャー・デバイスによって検知された１人以上のユーザーおよび／またはオブジェクトに関する画像およびオーディオ・データを取り込むキャプチャー・デバイス２０も含む。実施形態では、キャプチャー・デバイス２０は、身体および手の動き(movement)および／またはジェスチャー、ならびに１人以上のユーザーの音声に関する情報を取り込むために用いることができ、この情報は、計算環境によって受け取られ、ゲーミング・アプリケーションまたはその他のアプリケーションの態様(aspects)をレンダリングする、これらと対話処理する、および／またはこれらを制御するために用いられる。計算環境１２およびキャプチャー・デバイス２０の例については、以下で更に詳しく説明する。
【００１２】
[0035]  目標認識、分析、および追跡システム１０の実施形態は、ディスプレイ１４を有するオーディオ／ビジュアル（Ａ／Ｖ）デバイス１６に接続することができる。デバイス１６は、例えば、テレビジョン、電話機、コンピューター用モニター、高品位テレビジョン（ＨＤＴＶ）等であってもよく、ゲームまたはアプリケーションの映像および／または音響をユーザーに供給することができる。例えば、計算環境１２は、グラフィクス・カードのようなビデオ・アダプター、および／またはサウンド・カードのようなオーディオ・アダプターを含むことができ、これらのアダプターはゲームまたはその他のアプリケーションに関連するオーディオ／ビジュアル信号を供給することができる。Ａ／Ｖデバイス１６は、計算環境１２からオーディオ／ビジュアル信号を受け取ることができ、次いでこのオーディオ／ビジュアル信号に関連するゲームまたはアプリケーションの映像および／または音響をユーザー１８に出力することができる。一実施形態によれば、オーディオ／ビジュアル・デバイス１６は、例えば、Ｓ−ビデオ・ケーブル、同軸ケーブル、ＨＤＭＩ（登録商標）ケーブル、ＤＶＩケーブル、ＶＧＡケーブル、コンポーネント・ビデオ・ケーブル等を通じて、計算環境１２に接続することができる。
【００１３】
[0036]  実施形態では、計算環境１２、Ａ／Ｖデバイス１６、およびキャプチャー・デバイス２０は、協働してアバターまたは画面上のキャラクタ１９をディスプレイ１４上にレンダリングすることができる。例えば、図１Ａは、サッカー・ゲーミング・アプリケーションをプレーしているユーザー１８を示す。このユーザーの動きを追跡し、アバター１９の動きをアニメ化する(animate)ために用いる。実施形態では、アバター１９は実世界空間におけるユーザー１８の動きを模擬するので、ユーザー１８は、ディスプレイ１４上においてアバター１９の動き(movement)および行為(action)を制御する動きおよびジェスチャーを行うことができる。
【００１４】
[0037]  以上で説明したように、骨格マッピング・システムのような動き推定ルーチンは、例えば、ユーザーの手の動きというような、ユーザーの微妙なジェスチャーを検出する能力に欠けることがある。例えば、ユーザーが、図１Ｂに示すように、彼または彼女の手によってユーザー・インターフェース２１全体をスクロールし制御することによって、ＮＵＩシステム１０と対話処理することを望む場合もあり得る。あるいは、ユーザーが、例えば、図１Ｃにおいて２３および２５として示すように、彼女の手を開くおよび／または閉じることによって、種々のジェスチャーを行おうとすることもあり得る。
【００１５】
[0038]  したがって、本明細書において以下で説明するシステムおよび方法は、ユーザーの手の状態を判定することを対象とする。例えば、手を閉じるおよび開く動作は、画面上にあるオブジェクト、例えば、オブジェクト２７（図１Ｃ）を選択する、係合する、または掴んで引きずるというようなイベントを誘起するために、このようなシステムによって用いることができる。これらの行為は、本技術以外では、コントローラーを用いるときであれば、ボタンを押すことに対応するであろう。このようなコントローラー不要の細かな対話処理は、手を振る行為やホバリングする(hovering)行為に基づく手法が直感的でなく煩わしい場合もあるので、その代わりに用いることができる。種々の他のジェスチャー、制御動作、およびアプリケーションも、本技術によって、手の動きを認識し追跡するために実施可能にすることができる。これらの一部について以下で更に詳しく説明する。以下で説明するようにユーザーの手の状態を判定することによって、ユーザーのシステムとの対話処理のし易さを高めることができ、一層簡単で直感的なインターフェースをユーザーに提示することができる。
【００１６】
[0039]  図１Ａおよび図１Ｂは、床、椅子、および植物というような静止した背景オブジェクト２３を含む。これらは、キャプチャー・デバイス２０によって捉えられる視野（ＦＯＶ）内にあるオブジェクトであるが、フレーム毎に変化しない。図示する床、椅子、および植物に加えて、静止オブジェクトは、キャプチャー・デバイス２０内にある撮像カメラによって捉えられるいずれのオブジェクトでもよい。この場面内にある追加の静止オブジェクトには、あらゆる壁、天井、窓、ドア、壁の飾り等を含むことができる。
【００１７】
[0040]  システム１０およびそのコンポーネントに相応しい例が、以下の同時係属中の特許出願において見いだせる。これらの特許出願の全ては、ここで引用したことによって、具体的に本願に包含するものとする。２００９年５月２９日に出願され"Environment and/or Target Segmentation"（環境および／または目標物区分）と題する米国特許出願第１２／４７５，０９４号、２００９年７月２９日に出願され"Auto Generating a Visual Representation"（視覚表現の自動生成）と題する米国特許出願第１２／５１１,８５０号、２００９年５月２９日に出願され"Gesture Tool"（ジェスチャー・ツール）と題する米国特許出願第１２／４７４，６５５号、２００９年１０月２1日に出願され"Pose Tracking Pipeline"（姿勢追跡パイプライン）と題する米国特許出願第１２／６０３，４３７号、２００９年５月２９日に出願され"Device for Identifying and Tracking Multiple Humans Over Time"（ときの経過と共に複数の人間を識別および追跡するデバイス）と題する米国特許出願第１２／４７５，３０８号、 ２００９年１０月７日に出願され"Human Tracking System"（人間追跡システム）と題する米国特許出願第１２／５７５,３８８号、２００９年４月１３日に出願され"Gesture Recognizer System Architecture"（ジェスチャー認識システムのアーキテクチャー）と題する米国特許出願第１２／４２２，６６１号、および２００９年２月２３日に出願され"Standard Gesture"（標準的なジェスチャー）と題する米国特許出願第１２／３９１，１５０号。
【００１８】
[0041]  図２は、目標認識、分析、および追跡システム１０において用いることができるキャプチャー・デバイス２０の一実施形態例を示す。一実施形態例では、キャプチャー・デバイス２０は、例えば、飛行時間、構造化光、ステレオ画像等を含む、いずれかの適した技法によって、深度値を含む深度画像を有するビデオを取り込むように構成することができる。一実施形態によれば、キャプチャー・デバイス２０は、計算した深度情報を「Ｚレイヤー」に編成することができる。即ち、深度カメラからその見通し線に沿って延びるＺ軸に対して垂直であることができるレイヤーに編成することができる。ＸおよびＹ軸は、Ｚ軸に対して垂直であると定義することができる。Ｙ軸は垂直であり、Ｘ軸は水平であるとよい。Ｘ、Ｙ、およびＺ軸は、併せて、キャプチャー・デバイス２０によって取り込まれる３−Ｄ実世界空間を定める。
【００１９】
[0042]  図２に示すように、キャプチャー・デバイス２０は、撮像カメラ・コンポーネント２２を含むことができる。一実施形態によれば、撮像カメラ・コンポーネント２２は、場面の深度画像を取り込むことができる深度カメラであるとよい。深度画像は、取り込んだ場面の二次元（２−Ｄ）画素エリアを含むことができ、この２−Ｄ画素エリアにおける各画素が、取り込まれた場面におけるオブジェクトの長さまたはオブジェクトのカメラからの距離というような深度値、例えば、センチメートル、ミリメートル等の単位で表すことができる。
【００２０】
[0043]  図２に示すように、一実施形態例によれば、撮像カメラ・コンポーネント２２は、ＩＲ発光素子２４、三次元（３−Ｄ）カメラ２６、およびＲＧＢカメラ２８を含むことができ、これらは場面の深度画像を取り込むために用いることができる。例えば、飛行時間分析では、キャプチャー・デバイス２０のＩＲ発光素子２４は、場面に向けて赤外線光を放出することができ、次いでセンサー（図示せず）を用いて、その場面の中にある１つ以上の目標物およびオブジェクトの表面からの後方散乱光を、例えば、３Ｄカメラ２６および／またはＲＧＢカメラ２８を用いて検出することができる。
【００２１】
[0044]  実施形態の中には、パルス状赤外線光を用いて、出射光パルスと対応する入射光パルスとの間の時間を測定し、キャプチャー・デバイス２０から場面内にある目標物またはオブジェクト上における特定の場所までの物理的距離を判定するために、この時間を用いることができるようにするとよい場合がある。加えて、他の実施形態例では、出射光波の位相を入射光波の位相と比較して、位相ずれを判定することもできる。次いで、位相ずれを用いて、キャプチャー・デバイス２０から目標物またはオブジェクト上の特定の場所までの物理的距離を判定することができる。
【００２２】
[0045]  他の実施形態例によれば、飛行時間分析を用いて、例えば、散乱光パルス撮像(shuttered light pulse imaging)を含む種々の技法によって、経時的な光の反射ビームの強度を分析することにより、キャプチャー・デバイス２０から目標物またはオブジェクト上の特定の場所までの物理的距離を間接的に判定することもできる。
【００２３】
[0046]  他の一実施形態例では、キャプチャー・デバイス２０は、構造化光を用いて深度情報を取り込むことができる。このような分析では、パターン光（即ち、格子パターン、縞模様パターンのような既知のパターンとして表示される光）を、例えば、ＩＲ発光素子２４によって場面に向けて投射する。場面における１つ以上の目標物またはオブジェクトの表面に衝突したときに、パターンが、それに応答して、変形することができる。このようなパターンの変形を、例えば、３Ｄカメラ２６および／またはＲＧＢカメラ２８によって取り込むことができ、次いで分析して、キャプチャー・デバイス２０から目標物またはオブジェクト上における特定の場所までの物理的距離を判定することができる。
【００２４】
[0047]  他の実施形態によれば、キャプチャー・デバイス２０は、２つ以上の物理的に分離されたカメラを含むことができ、これらが異なる角度から１つの場面を捕らえて、視覚的な立体像を得て、これを解明することによって深度情報を生成することができる。他の実施形態例では、キャプチャー・デバイス２０は、ポイント・クラウド・データ(point cloud data)および目標ディジタル化技法を使用して、ユーザーの特徴を検出することもできる。更に他の実施形態では、例えば、ｘ，ｙ，ｚを検出することができる超音波システムのような、他のセンサー・システムも用いることができる。
【００２５】
[0048]  更に、キャプチャー・デバイス２０は、マイクロフォン３０を含むこともできる。マイクロフォン３０は、音響を受けて電気信号に変換する変換器またはセンサーを含むことができる。一実施形態によれば、マイクロフォン３０は、目標認識、分析、および追跡システム１０においてキャプチャー・デバイス２０と計算環境１２との間におけるフィードバックを減らすために使用することができる。加えて、マイクロフォン３０は、計算環境１２によって実行することができる、ゲーム・アプリケーション、ゲーム以外のアプリケーション等のようなアプリケーションを制御するために、ユーザーが供給することもできるオーディオ信号を受け取るために用いることもできる。
【００２６】
[0049]  一実施形態例では、キャプチャー・デバイス２０は、更に、撮像カメラ・コンポーネント２２と動作可能に通信することができるプロセッサー３２も含むことができる。プロセッサー３２は、命令を実行することができる標準的なプロセッサー、特殊プロセッサー、マイクロプロセッサー等を含むことができる。これらの命令には、深度画像を受け取り、この深度画像に適した目標物が含まれ得るか否か判定を行い、適した目標物をその目標物の骨格表現またはモデルに変換する命令、またはあらゆる他の適した命令を含むことができる。
【００２７】
[0050]  更に、キャプチャー・デバイス２０は、メモリー・コンポーネント３４も含むことができる。メモリー・コンポーネント３４は、プロセッサー３２が実行することができる命令、３−ＤカメラまたはＲＧＢカメラが取り込んだ画像または画像のフレーム、あるいは他のいずれかの適した情報、画像等を格納することができる。一実施形態例によれば、メモリー・コンポーネント３４は、ランダム・アクセス・メモリー（ＲＡＭ）、リード・オンリー・メモリー（ＲＯＭ）、キャッシュ、フラッシュ・メモリー、ハード・ディスク、または他のいずれかの適した記憶コンポーネントを含むことができる。図２に示すように、一実施形態では、メモリー・コンポーネント３４は、撮像カメラ・コンポーネント２２およびプロセッサー３２と通信可能な別個のコンポーネントであってもよい。他の実施形態によれば、メモリー・コンポーネント３４をプロセッサー３２および／または撮像カメラ・コンポーネント２２に統合してもよい。
【００２８】
[0051]  図２に示すように、キャプチャー・デバイス２０は、通信リンク３６を介して計算環境１２と通信することができる。通信リンク３６は、例えば、ＵＳＢ接続、Ｆｉｒｅｗｉｒｅ接続、イーサネット（登録商標）・ケーブル接続等のような有線接続、および／またはワイヤレス８０２．１１ｂ，ｇ，ａ，ｎ接続のいずれかようなワイヤレス接続であってもよい。一実施形態によれば、計算環境１２は、クロックをキャプチャー・デバイス２０に通信リンク３６を介して供給することができ、このクロックは、例えば、いつ場面を取り込むべきか判断するために用いることができる。
【００２９】
[0052]  加えて、キャプチャー・デバイス２０は、例えば、３−Ｄカメラ２６および／またはＲＧＢカメラ２８によって取り込まれた深度情報および画像も供給することができる。これらのデバイスの補助によって、本技術にしたがって、部分的な骨格モデルを作り出し、結果的に得られたデータを計算環境１２に通信リンク３６を介して供給する。
【００３０】
[0053]  更に、計算環境１２は、以下に説明するようにジェスチャーを認識するジェスチャー認識エンジン９０も含むことができる。本システムによれば、計算環境１２は、更に、骨格認識エンジン１９２、画像区分エンジン１９４、記述子抽出エンジン１９６、および分類エンジン１９８も含むことができる。これらのソフトウェア・エンジンの各々について、以下に更に詳しく説明する。
【００３１】
[0054]  図３は、骨格認識エンジン１９２によって生成された身体モデル例の非限定的な視覚表現を示す。身体モデル７０は、モデル化した目標物（例えば、図１Ａおよび図１Ｂからのユーザー１８）の機械表現である。この身体モデルは、ゲームまたは他のアプリケーション／オペレーティング・システムの言語で、モデル化した目標物を集合的に定義する１組の変数を含む１つ以上のデータ構造を含むことができる。
【００３２】
[0055]  目標物のモデルは、本開示の範囲から逸脱することなく、様々に構成することができる。例の中には、モデルが、剛性(rigid)形状および／または変形可能形状を含む三次元モデル、または身体部分として目標物を表す１つ以上のデータ構造を含むとよい場合もある。各身体部分は、数学的原線として特徴付けることができ、その例には、異方的に拡縮された球体(anisotropically-scaled sphere)、円筒、異方性円筒、滑らかな円筒、箱形、面取された箱形(beveled box)、角柱等が含まれるが、これらに限定されるのではない。
【００３３】
[0056]  例えば、図３の身体モデル７０は、身体部分ｂｐ１からｂｐ１４までを含み、その各々が、モデル化された目標物の異なる部分を表す。各身体部分は、三次元形状である。例えば、ｂｐ３は、モデル化された目標物の左手を表す矩形角柱であり、ｂｐ５は、モデル化された目標物の左上腕を表す八画柱である。１つの身体モデルがいずれの数の身体部分でも含んでもよく、その各々が、モデル化された目標物の対応する部分のいずれの機械理解可能な表現であってもよいことから、 身体モデル７０は例示である。
【００３４】
[0057]  ２つ以上の身体部分を含むモデルは、１つ以上の関節も含むことができる。各関節は、１つ以上の身体部分が１つ以上の他の身体部分に対して動かせるようにすることができる。例えば、人間の目標物を表すモデルは、複数の剛性の身体部分および／または変形可能な身体部分を含むことができ、一部の身体部分は、この人間の目標物の対応する解剖学的身体部分を表すことができる。更に、モデルの各身体部分は、１つ以上の構造的部材（即ち、「骨」または骨格要素）を含むことができ、関節は隣接する骨の交点に位置する。尚、一部の骨には人間の目標物における解剖学的な骨に対応すると考えられるものがあること、および／または骨の一部は人間の目標物において対応する解剖学的な骨を有さないと考えられるものがあることは理解されて然るべきである。
【００３５】
[0058]  骨および関節は、集合的にスケルトン・モデルを構成することができ、このスケルトン・モデルが他のモデルの構成要素となることもある。実施形態の中には、骨格モデルが、図３のモデル７０のような、他のタイプのモデルの代わりに用いられてもよい場合もある。このスケルトン・モデルは、身体部分毎に１つ以上のスケルトン部材と、隣接するスケルトン部材間に関節とを含む。三次元スケルトン・モデルの例、スケルトン・モデル８０およびスケルトン・モデル８２を、それぞれ、図４および図５に示す。図４は、前方から見たスケルトン・モデル８０を示し、関節ｊ１〜ｊ３３までを有する。図５は、歪んだ視点から見たときのスケルトン・モデル８２を示し、同様に関節ｊ１〜ｊ３３までがある。本開示の主旨から逸脱することなく、骨格モデルは、これらよりも多い関節または少ない関節を含むのでもよい。以下で説明する本発明の更に他の実施形態は、３１個の関節を有する骨格モデルを用いて動作する。
【００３６】
[0059]  以上で説明した身体部分モデルおよび骨格モデルは、モデル化された目標物の機械表現として用いることができるタイプのモデルの非限定的な例である。他のモデルも、本開示の範囲に該当するものとする。例えば、モデルがポリゴン・メッシュ、パッチ、非均一有理Ｂ−スプライン(non-uniform rational B-spline)、再分割表面(subdivision surface)、または他の高次表面を含むのでもよい。また、モデルは、より精度高く衣服、髪、および／またはモデル化された目標物の他の態様を表すために、表面模様および／または他の情報も含むこともできる。任意に、モデルは、現在の姿勢、１つ以上の過去の姿勢、および／またはモデルの物理的特性に関する情報を含んでもよい。尚、姿勢を取ることができる種々の異なるモデルが、本明細書において説明した目標認識、分析、および追跡システムと調和することは、理解されて然るべきである。
【００３７】
[0060]  キャプチャー・デバイス２０のＦＯＶ内にいる１人以上のユーザーの骨格モデルを生成するソフトウェア・パイプラインは周知である。このようなシステムの１つが、２０１０年９月７日に出願され、"System For Fast, Probabilistic Skeletal Tracking"（高速確率的骨格追跡システム）と題する米国特許出願第１２／８７６，４１８号に開示されている。この出願をここで引用したことにより、その内容全体を本願に包含するものとする。ある一定条件の下では、例えば、ユーザーがキャプチャー・デバイス２０に十分近接しており、ユーザーの手の少なくとも１つが他の背景ノイズから区別可能である場合、ソフトウェア・パイプラインは、更に、ＦＶＯ内にいる１人以上のユーザーの手および／または指のハンド・モデルを生成することができる場合もある。
【００３８】
[0061]  図６は、ユーザーの手および／または指を認識し追跡するソフトウェア・パイプラインのフローチャートである。ステップ２００において、このパイプラインはキャプチャー・デバイス２０から深度画像を受け取る。ユーザーの一部の深度画像を図７において３０２で示す。この深度画像における各画素は、例えば図７に示すような、中間階調(gray-scale gradient)による深度情報を含む。例えば、３０２において、黒くなっているユーザーの左手によって示されるように、ユーザーの左手の方がキャプチャー・デバイス２０の近くにある。キャプチャー・デバイスまたは深度カメラは、観察中の場面におけるユーザーの画像を取り込む。以下で説明するように、ユーザーの深度画像は、ユーザーの領域の距離情報、ユーザーの倍率(scale)情報、湾曲、およびユーザーの骨格情報を判定するために用いることができる。
【００３９】
[0062]  ステップ２０４において、このパイプラインの骨格認識エンジン１９２は、ステップ２００において得られた深度画像から仮想骨格を得るために、先に説明したようにユーザーの骨格モデルを推定する。例えば、図７には、３０２に示ユーザーのす深度画像から推定した、仮想骨格３０４が示されている。
【００４０】
[0063]  ステップ２０８において、このパイプラインは、当該パイプラインの画像区分エンジン１９４によって、ユーザーの一方または両方の手を区分する。例の中には、画像区分エンジン１９４が、付加的に、手に加えて、身体の１つ以上の領域も区分するとよい場合もある。ユーザーの手を区分するステップは、手に対応する深度画像の領域を特定することを含む。この特定は、ステップ２０４において得られた骨格情報に少なくとも部分的に基づく。図７は、推定したスケルトン３０４に基づいて、ユーザーの深度画像を、異なる陰影が付けられた領域で示すような、異なる領域３０６に区分する例を示す。図７は、上にあげたユーザーの右手に対応する手の領域３０８の位置を特定する(localize)過程を示す。
【００４１】
[0064]  手または身体領域は、種々の方法で区分するまたは位置を特定することができ、以上で説明した骨格推定において特定した関節から選択したものに基づくこともできる。一例として、深度画像における手の検出および位置特定は、推定した骨格からの推定した手首の関節および／または手先の関節(hand tip joint)に基づくことができる。例えば、実施形態の中には、手の関節周囲の深度画像の組織分布的な検索を用いて、深度画像における手の区分を実行し、深度画像における近隣の極値を指先の候補として突き止めるとよい場合もある。次いで、画像区分エンジン１９４は、推定した骨格から決定される身体サイズ(body size)の倍率、および境界識別のための深度不連続を考慮に入れることによって、手の残り部分を区分する。
【００４２】
[0065]  他の例として、ユーザーの手に対応する深度画像の領域を特定するために、フラッド・フィル(flood-fill)手法を採用することもできる。フラッド・フィル手法では、開始点および開始方向から深度画像を検索することができる。例えば、開始点は手首の関節としてもよく、開始方向は肘から手首の関節に向かう方向としてもよい。深度画像における近隣画素について、肘から離れ手先に向かう点を優先するための方法として、開始方向への投射に基づいて繰り返し採点しつつ、深度画像におけるユーザーの手の境界または極値を特定するために深度不連続というような深度一貫性制約を用いることができる。例の中には、固定値に基づいて開始方向の正および負双方の方向における深度マップ検索を制限するために閾値距離値を用いること、あるいは、例えば、ユーザーの推定サイズに基づいて閾値距離値を増減(scale)できる場合もある。
【００４３】
[0066]  更に他の例として、骨格関節（例えば、手首または手先の関節）に基づいて位置付けられた境界球体(bounding sphere)または他の適した境界形状を用いて、深度画像における深度不連続までの全ての画素を含ませることもできる。例えば、深度不連続を特定するために、境界球体上でウィンドウを滑らすこともでき、この深度不連続は、深度画像の手の領域における境界を確定するために用いることができる。
【００４４】
[0067]  また、境界形状方法は、手の平の中心の回りに境界形状を置くために用いることもでき、境界形状は繰り返し特定することができる。このような繰り返し境界決定方法の一例が、"Kinext Developer Summit at GDC 2011: Kinext for XBOX 360"と題し、添付資料１として本明細書に添付されている、 David Tuftによる紹介、およびK. Abe, H. Saito, S. Ozawaによる"3D drawing system via hand motion recognition from cameras"（カメラからの手の動き認識による３Ｄ描画システム）(IEEE International Conference on Systems, Man, and Cybernetics, vol. 2, 2000)と題する刊行物において開示されている。この刊行物は、ここで引用したことにより、その内容全体を本願に包含するものとする。
【００４５】
[0068]  一般に、このような方法は、モデルから画素を選別する(cull)ために、数回の繰り返しパスを必要とする。各パスにおいて、この方法は球体の外側にある画素、または手を中心とする他の形状の外側にある画素を選別する。次に、この方法は手の先端から遠すぎる画素を選別する（腕のベクトルに沿って）。次いで、この方法はエッジ検出ステップを実行して、手の境界のエッジを検出し、接続されていない孤立点(islands)を取り除く。図８のフローチャートにこのような方法からのステップ例を示す。ステップ２２４において、骨格認識エンジン１９２からの手関節データによって与えられる手の中心の回りに、境界形状を生成する。境界形状は、手全体を包囲できるくらいに十分に大きく、三次元である。ステップ２２６において、境界形状の外側にある画素を選別する。
【００４６】
[0069]  尚、深度画像において、ユーザーの手が彼または彼女の身体に、またはユーザーの２つめの手に近接しており、これら他の身体部分からのデータが初期状態において区分された画像に含まれるということが起こる場合がある。区分画像における異なる重心を区別するために、接続成分区別(connected component labeling)を実行することもできる。重心は、手であることの可能性が最も高いが、そのサイズおよび手関節の位置に基づいて、重心を選択する。選択されなかった重心を選別すればよい。ステップ２３０において、添えられている腕(attached arm)からのベクトルに沿って手の先端から離れすぎている画素も選別してもよい。
【００４７】
[0070]  骨格認識エンジン１９２からの骨格データはノイズが多い場合もあるので、手の中心を特定するために、手についてのデータを更に純化する。これは、画像を繰り返し用いて、各画素から手のシルエットのエッジまでの距離を測定することによって行うことができる。画像区分エンジン１９４は、次に、加重平均を計算して最大／最小距離を求めることができる。即ち、ステップ２３２において、区分された手の画像における画素毎に、手のシルエットのエッジまでのｘおよびｙ軸に沿った最大距離を特定し、手のシルエットのエッジまでのｘおよびｙ軸に沿った最小距離を特定する。エッジまでの距離を重みとして取り込み、次いで、測定した全ての画素にわたって、最小と判定された距離の加重平均を計算し、画像内における手の位置の中心らしき点を求める（ステップ２３４）。新たな中心を用いて、直前の繰り返しからの掌の中心の変化が何らかの許容度以内になるまで、本プロセスを反復的に繰り返すことができる。
【００４８】
[0071]  手法の中には、手の領域の区分を、ユーザーが手を外側または上に、あるいは胴体の前に上げたときに実行するとよい場合もある。このようにすると、手の領域を身体から一層容易に区別できるので、深度画像における手の領域の特定が更に明確になると考えられる。ユーザーの手が手の平をキャプチャー・デバイス２０に向けているときは、手の画像が特に明確になり、その時点において、この手の特徴をシルエットとして検出することができる。特徴にノイズが多い場合があるが、手のシルエットを得ることによって、例えば、指間の隙間を検出し、手の全体的な形状を見て、種々の異なる手法を用いてそれをマッピングすることに基づいて、手が何をしているのか、何らかの判断を伝えること(informed decision)が可能になる。これらの隙間およびその他の特徴を検出することにより、特定の指の認識、およびその指が指しているところの概略的な方向を認識することができる。
【００４９】
[0072]  尚、以上で説明した例および区分例は、例示の目的に限って紹介したのであって、本開示の範囲を限定することは意図していないことは言うまでもない。一般に、いずれの手または身体部分区分方法でも、単独でまたは互いに組み合わせて、および／または以上で説明した方法例の内１つと組み合わせて用いることもできる。
【００５０】
[0073]  図７のパイプラインを続けると、ステップ２１０では、領域、例えば、ステップ２０８において特定した手に対応する深度画像の領域に対する形状記述子を引き出す動作を含む。ステップ２１０のおける形状記述子は、記述子抽出エンジン１９６によって抽出され、手の領域を分類するために用いられるのに適した手の領域の表現であれば、いずれでもよい。実施形態の中には、形状記述子が、手の領域の形状をコード化または記述するために用いられるベクトルあるいは１組の数値とするとよい場合もある。
【００５１】
[0074]  記述子抽出エンジン１９６は、形状記述子を抽出するために、ステップ２１０において種々のフィルターの内いずれでも用いることができる。１つのフィルターは、画素分類フィルター(image classifier)と呼ぶことができ、これより図９のフローチャート、図１０の判断ツリー、および図１１から図１４の例示を参照しながら説明する。ステップ２４０において、区分画像の前景において1つの画素を選択する。これらは、ユーザーの手の一部であると少なくとも名目上(nominally)考えられる画素である。選択した画素の周囲において、選択した画素が中心に来る、既定サイズのボックスを取り込む。実施形態では、このボックスのサイズは、正規化した指の幅の１．５倍に選択するとよい。「正規化した指」とは、骨格モデルのサイズおよびキャプチャー・デバイス２０からユーザーまでの検出距離に基づいて正規化したサイズに既に調節されているユーザーの指のことである。手の一部であると名目上考えられる画素毎に、次のステップを連続的に実行する。
【００５２】
[0075]  ステップ２４２において、画素分類フィルターは、ボックスのエッジがいくつ交差しているか判断する。交点とは、画像が前景（手の上）から背景（手の上ではない）に移行するところである。例えば、図１１Aは、指２７６、この指上において選択された画素２７８、およびこの画素の周囲にある半径ｒの前述のボックス２８０を示す。このボックスは、１つのエッジに沿って２点で、即ち、点２８１ａおよび２８１ｂにおいて交差する。点２８１ａ、２８１ｂは、画像が前景（指）から背景に移行するところである。画素２７８がそれぞれのボックス２８０のエッジとの交点を２つ以上有する場合、以下で説明するように、手の重心を定める目的のために、画素２７８全てを指先（あるいは、以下で説明するように、拳または腕の一部）と見なすこととする。
【００５３】
[0076]  ステップ２４６において、画素分類フィルターは、これらの交点が同じエッジにあるのか、または異なるエッジにあるのか判断する。図１１Ｂに示すように、指は、同じエッジに沿うのではなく、２本の隣接するエッジに沿ってボックス２８０と交差することもある。この情報は、以下で説明するように、指を指し示している方向を判定するために、用いられる。
【００５４】
[0077]  指先とは異なり、画素がそのボックス２８０と４つの点で交差するときは、以下で説明するように手の重心を定める目的のために、この画素を指と見なす。例えば、図１２は、選択された画素２７８が指先から十分に離れており、ボックスとの４つの交点２８１ａ、２８１ｂ、２８１ｃ、および２８１ｄがある例を示す。  
【００５５】
[0078]  図９のフローチャートのステップ２４２、および図１０の判断ツリーの２６４において、画素分類フィルターは、ボックス２８０のエッジの内いくつと交差しているかチェックする。交差しているエッジがない場合、２６５において、選択した画素はユーザーの手の平の内部にあると見なされる。即ち、ボックス２８０のサイズは、画素が指または指先の中にある場合には少なくとも2本のエッジと交差するように選択されているので、画素が手の上にあり交差するエッジがない場合、この画素は手の平の中にあると見なされる。２本のエッジと交差している場合、以下で説明するように、フィルターは２６６に進み、交差していないエッジの角がソリッド(solid)か（手の上）またはエンプティ(empty)か（背景）かチェックする。２６７において、４本のエッジが交差している場合、以上で説明したようにこれを指と見なす。２６８においてボックス２８０のエッジが６回交差している場合、これは無効の読み取りと見なし、破棄する（ステップ２５０）。
【００５６】
[0079]  再度２６６に戻り、２本のエッジが交差している場合、指先である可能性があるが、隣接する２本の指の間の空間である可能性もある。したがって、画素分類フィルターは、交差していないエッジの角をチェックする（ステップ２４８）。交差していないエッジの角がソリッドである場合、これは、ボックスがこれらの角において手の上にあり、交点は隣接する指の間にある谷を定めることを意味する。逆に、交差していないエッジの角がエンプティである場合（２６６に関連する図において示すように）、これは、ボックスがこれらの角において背景画素上にあり、交点が手の一部を定めることを意味する。
【００５７】
[0080]  角がエンプティである場合、画素分類フィルターは、２６９において、交差点間における、コード長(chord length)と呼ばれる距離が指の最大幅未満であるか否かチェックする（ステップ２５２）。即ち、２つの交点がある場合、図１１Ａに示すように指先である可能性がある。しかしながら、この画素は、図１３に示すように、腕の一部、または拳のような、手の一部である可能性もある。その場合、コード長２８２は、指の最大幅よりも大きい可能性がある。その場合、２７１（図１０）において、ボックス２８０が調べられている画素２７８は、腕または拳の上にあると言う。
【００５８】
[0081]  指先または指を特定することに加えて、二点または四点交差が、指先／指が指し示している方向を明示することもできる。例えば、図１１Ａにおいて、指の最大幅未満の２つの交点があったので、画素２７８は指先の中にあると判断された。しかしながら、このような交差を仮定すると、指先が指し示している方向について、推論を引き出すことができる。同じことは、図１２に示す指についても言える。図１１Ａは、真上を指し示す指２７６を示す。しかし、指先２７６は、他の上向きの方向を指し示している可能性もある。指先２７６における点２７８付近にある他の点からの情報を用いると、この方向について更に推論を引き出すことができる。
【００５９】
[0082]  図１１Ｂは、二点交差を示し、指／指先が指し示している方向について追加の推論が得られる。即ち、共有する角までの距離の比率から、方向を推論することもできる。言い換えると、点２８１ａおよび２８１ｂ間のコード長は、三角形の斜辺を定める。この三角形は、点２８１ａ，２８１ｂ間にある辺、および共有する角も含む。指は斜辺に対して垂直な方向を指し示していると推論することができる。
【００６０】
[0083]  尚、１つの手で、２本の指が一緒になっていること、または３本の指が一緒になっていること、または４本の指が一緒になっていることも起こる場合がある。このため、手の中にある画素毎にボックス２８０を用いて以上のステップを実行した後、２本の指を合わせた最大幅よりも多少大きなボックス２８０を用いて、本プロセスを繰り返し、次いで３本の指を合わせた最大幅よりも多少大きなボックス２８０を用いて、本プロセスを再度繰り返す等とするとよい。
【００６１】
[0084]  一旦画素分類フィルター・データが集められたなら、画素分類フィルターは次にステップ２５８（図９）においてデータからハンド・モデルを構築することを試みる。例えば、指先である領域というような、小さな特定領域、即ち、重心、ならびに手の平である領域、および手区分ステップからの手の平の中心の着想(idea)がある。次いで、分類エンジン１９８は、指先とは分類されなかったが、これらが４点で交差したという事実によって指であると分類された指の重心を調べる。指または指先領域について、方向方位(directional orientation)も特定されている。指の重心が指先の重心と一直線状になっており、これらが互いに正しい相対位置にある場合、本アルゴリズムは、これらの重心が同じ指に属するとして、これらの重心を接続する。
【００６２】
[0085]  次に、骨格のサイズと、指がどの位大きいと考えられるかとに基づいて、指領域の向きを用いて、その指の拳があると考えられる所に投影する。また、決定したハンド・モデルを確認するためには、指の間で特定されたいずれの谷のサイズ、位置、および向きも用いることができる。次に、投影した拳の位置を手の平に接続する。完了したときに、画素分類エンジンは、骨格ハンド・モデル２８４を決定する。その例を２つ、図１４に示す。このモデルは、「指先、手および指を接続する拳、および手の平までの中心骨(center bone)に関する手追跡セグメントの縮小骨格モデル」と呼ぶこともでき、手の平の重心に接続された拳の重心に接続された指の重心に接続された指先の重心を含む。また、指先、指、拳、および／または手の平の重心位置の決定した位置を検証するまたは論じ合うために、更には手の一部を形成しないと判定されるかもしれない重心データを破棄するために、既知の手の外形および既知の腕位置からのこの手の位置に関するデータを用いることができる。
【００６３】
[0086]  以上によって、手の１つ以上の部分がモデルから失われても、ハンド・モデルを構築できる。例えば、指が隠されていること、あるいはユーザーの身体または検出すべき他方の手に指が近すぎることもあり得る。または、ユーザーに指がない場合もある。画素分類フィルターは、それが検出した指および手の位置を用いて、ハンド・モデルを構築する。
【００６４】
[0087]  画素分類フィルターに加えてまたはその代わりに実行することができる他のフィルターがあってもよく、湾曲分析フィルターと呼ぶことができるものがある。このフィルターは、区分された手のシルエットの境界に沿った湾曲に照準をあて、指を区別する試みにおいてピークおよび谷を判定する。図１５におけるフローチャートを参照すると、ステップ２８６において、第１画素から開始して、周囲にある８つの画素を調べて、どれが手の上における次の画素であるか判定を行う。このために、その画素と次の画素との間の接続性(connectivity)について、０から７までの値を各画素に割り当てる。手のシルエットの周囲に、一連のこれらの数値を並べる(build)と、手の境界が得られる。ステップ２８８において、これらの値を、角度および手の回りの輪郭に変換すると、図１６に示すような、手の輪郭およびピークのグラフを得ることができる。手の輪郭およびピークを生成するためのこれらのステップについては、例えば、F. Leymarie, M.D. Levineによる"Curvature morphology"（湾曲形態）, Computer Vision and Robotics Laboratory, McGill University, Montreal, Quebec, Canada, 1988と題する論文において記載されている。この論文をここで引用したことにより、その内容全体を本願に包含するものとする。
【００６５】
[0088]  ステップ２８９において、手のシルエット周囲にあるピークを特定し、ピークの種々の特徴に関して各々を分析する。ピークは、開始点、ピーク、および終点によって定めることができる。これら３つの点は、以下で説明するように、三角形を形成することができる。調べるとよいピークの種々の特徴には、例えば、次の事項が含まれる。
【００６６】
・ピークの幅
・所与のピークの最大高さ
・ピーク内における湾曲サンプルの平均高さ
・ピーク形状比（最大高さ／平均高さ）
・ピークの面積
・手からピークまでの距離
・肘から手への方向（ｘ、ｙ、およびｚ）
・ピーク方向および腕の方向のクロス積（腕の方向とピーク方向との間の角度がどれ位小さいか）
・ピーク開始点と最大点との間のベクトル、および最大点と終点との間のベクトルのクロス積
[0089]  ステップ２９０において、例えば、サポート・ベクトル・マシン(support vector machine)のような種々の機械学習技法によって、この情報を使い回し(run)、指および手を区別することができる。サポート・ベクトル・マシンは周知であり、例えば、C. Cortes and V.VapnikのSupport-Vector Networks, Machine Learning（サポート・ベクトル・マシン・ネットワーク、機械学習）と題する論文(20(3):273-297, September 1995)、およびVladimir N. VapnikのThe Nature of Statistical Learning Theory（統計学習理論の特徴）と題する論文 (Springer, New York, 1995) に記載されている。これらの論文をここで引用したことにより、それらの内容全体を本願に包含するものとする。実施形態では、隠れマルコフ・モデルを用いて、ノイズの多いデータをスムージングして、ノイズのない手およびフィルターの状態を維持することができる。
【００６７】
[0090]  以上で説明したフィルターは、手のシルエットに関係するデータを調べることから、シルエット・フィルターと呼ぶこともできる。用いることができる更に他のフィルターに、ヒストグラム・フィルターがあり、深度データを用いてハンド・モデルを構築することから、深度フィルターと呼ぶ。このフィルターは、以上で説明したフィルターに加えて、またはその代わりに用いることができ、特に、ユーザーが彼または彼女の手を画像キャプチャー・デバイス２０に向けて指し示すときに有用であると考えられる。
【００６８】
[0091]  ヒストグラム・フィルターでは、手の領域における距離のヒストグラムを構築することができる。例えば、このようなヒストグラムは１５個のビンを含むことができ、各ビンは、手の領域において、最も近い点からカメラまでのＺ−方向（深度）の距離、そのビンに関連付けられている一定の距離範囲以内である点の数を含む。例えば、このようなヒストグラムにおける第１のビンは、手の領域において、手の重心までの距離が０および０．４０センチメートルの間である点の数を含むことができ、第２のビンは、手の領域において、手の重心までの距離が０．４０および０．８０センチメートルの間である点の数を含む等である。このようにして、手の形状をコード化するベクトルを構築することができる。更に、このようなベクトルは、例えば、推定した身体の大きさに基づいて正規化することもできる。
【００６９】
[0092]  一般に、ビン全体における分布を分析することによって、キャプチャー・デバイス２０に向けて指し示している手が開いているかまたは閉じているか判断することができる。分布が前寄り(front heavy)である（最初の数個のビンが、最後の数個のビンと比較して、多数の画素を有する）、手は閉じていると推論することができる。分布が後ろ寄り(back heavy)である場合（最後の数個のビンが、最初の数個のビンと比較して、多数の画素を有する）、手は開いていて、キャプチャー・デバイス２０に向けて指し示していると推論することができる。このように、開いた状態または閉じた状態は、ヒストグラムによって示される質量分布から推論することができる。あるいは、ヒストグラムは、学習して手の状態を自動的に予測するために、種々の機械学習分類技法（本明細書において説明した）によって、特徴として用いることができる。
【００７０】
[0093]  他の手法例では、手の領域における点から、推定したユーザーの骨格からの関節、骨区間(bone segment)、または手の平の面、例えば、肘関節、手首関節等までの距離および／または角度に基づいて、ヒストグラムを構築することもできる。図１７は、閉じた手および開いた手について判定したヒストグラムを示す２つのグラフを示す。
【００７１】
[0094]  更に他のフィルターに、フーリエ・フィルターがある。フーリエ記述子の構成は、例えば、手の領域における各画素から手の領域の周囲(perimeter)までの距離を、手の境界の放物線はめ込み(elliptical fitting)の半径に対してマッピングを行い、次いでこのマップに対してフーリエ変換を行うことによって、手の領域の輪郭をコード化することを含む。更に、このような記述子は、例えば、推定身体サイズに対して正規化することもできる。このような記述子は、変換、拡縮、および回転に対して不変であることもできる。
【００７２】
[0095]  更に他のフィルターは、例えば、手の領域の輪郭の面積の手の領域の凸包(convex hull)に対する比率を判定することによって、手の領域の凸状部を判定することを含む。
【００７３】
[0096]  以上のフィルターでは十分な情報が得られない場合に有用であり得る他のフィルターに、不連続フィルターと呼ばれるものがある。このようなフィルターは、認識をせず位置情報も提供しないが、画像が手であることを想定し、その手が開いているかまたは閉じているか識別する。不連続フィルターは、閉じたこぶしは比較的滑らかであり、開いた手の輪郭と比較すると、殆ど輪郭の不連続がないという事実に基づく。つまり、測定した輪郭の不連続が何らかの所定の閾値よりも低い場合、不連続フィルターは閉じた手を識別する。測定した輪郭の不連続が所定の閾値よりも高い場合、不連続フィルターは、開いた手を識別する。このような画像データの例を図１８に示す。
【００７４】
[0097]  手の開いた状態／閉じた状態を検出する更に他のフィルターに、自然グラブ・フィルター(natural grab filter)と呼ばれるものがある。一般に、自然グラブ・フィルターは、ユーザーがキャプチャー・デバイス２０に向けて腕を伸ばし、彼または彼女の手を開いて閉じる動きを検出する。手の平は、キャプチャー・デバイス２０に面していてもいなくてもよい。自然グラブ・フィルターについて、図１９のフローチャートを参照しながら更に説明する。ステップ２９１において、別の区分を行う。この別の区分では、骨格認識エンジン１９２によって与えられた、下腕を記述する肘−手ベクトルを調べる。次いで、自然グラブ・フィルターは現在の手の区分を繰り返し、画素毎に、その画素が肘からどれ位離れているか算出する。肘から最も離れている画素のみを維持し、最も離れている画素を、ユーザーの特定の骨格サイズに基づいて、ウィンドウとして定める。一例として、大人では、肘から最も遠い点において開始すると、４インチのウィンドウとなる。このウィンドウは、子供、または、もっと小さい人に対しては変更することができる。
【００７５】
[0098]  この時点で、３つのサブフィルターの内１つ以上を実行する。第１のサブフィルターは、深度変化、即ち、ジャンプを測定する。ステップ２９２において、深度ジャンプ・サブフィルターは、新たに区分した手の画像において行および列の画素毎に繰り返す。この繰り返しは、全ての行に対して行い、次いで全ての列について行っても、その逆でもよい。このサブフィルターは、深度ジャンプの回数を数える。深度ジャンプと見なされるのは、画像における深度読み取り値において、１つの画素から次の画素までの大きなジャンプがあるときである。全ての行および列にわたって繰り返すと、このサブフィルターは、深度ジャンプがあった行および列の割合を求める。
【００７６】
[0099]  この割合に基づいて、深度ジャンプ・サブフィルターは、手が開いているかまたは閉じているかについて有理な推定を形成することができる。閉じた手は、開いた手よりも、深度ジャンプが遙かに少ない。何故なら、開いた手は、指の間にある空間によって深度ジャンプが生ずるからである（深度ジャンプは、カメラのデータ・ノイズというような他の理由でも生ずることがあり、例えば、開いた指という結果が得られる）。深度ジャンプ・サブフィルターの出力は割合なので、手のサイズの影響を受けない。この出力は、検査から確定される何らかの既定の閾値割合値に基づいて、バイナリ（開／閉）とすることができる。あるいはまたは加えて、この出力は信頼値（この割合がどれ位閾値に近いか）がある開／閉出力とすることができる。
【００７７】
[00100]  第２のサブフィルターは、円サブフィルターと呼ぶこともできる。ステップ２９３において、円サブフィルターは、新たに区分した手の画像のシルエットをしらべて、このシルエットが全体的に円形か否か判断する。全体的に円形である場合、これは閉じた手を示す。手が開いている場合、いずれにしても区分画像は指またはカメラからの余分なノイズを含むので、円形ではなくなる。
【００７８】
[00101]  この判断を行う方法は、新たに区分した手の質量の中心を計算し、次いでこの画像のシルエットの半径の標準偏差を調べることである。閉じたこぶしは、円形に近く、シルエットの中心から縁までの異なる半径の標準偏差は比較的小さい。標準偏差は、円形ではないものに対しては高くなる。何故なら、ばらつきが多いからである。このように、標準偏差値に基づいて、円サブフィルターは、手が開いているかまたは閉じているかについて推定を出力する。また、このフィルターは、手が、キャプチャー・デバイスからの光線に対して垂直なシルエットの中にあるか、またはキャプチャー・デバイスを指し示しているかについても機能する。円サブフィルターの出力は、検査から確定される何らかの既定の敷地委標準偏差に基づいて、バイナリ（開／閉）とすることができる。あるいはまたは加えて、出力は信頼値（この標準偏差がどれ位閾値に近いか）がある開／閉出力とすることができる。
【００７９】
[00102]  第３のサブフィルターは、パドル・サブフィルター(paddle sub-filter)と呼ぶこともできる。ステップ２９４において、パドル・サブフィルターは、ユーザーが彼らの手または彼らの指を広げている、したがって、手を開いているが、彼らの指は全て一緒であり、本質的にパドルを形成しているか否か調べる。パドル・サブフィルターは、指先から逆に肘までのビンを用いて、ヒストグラムを生成し、これらのビンの各々における画素数を調べる。次いで、これらのビンが大きくなりつつあるように見えるか否か、またはこれらが一定のままに留まり最終的に小さくなりつつあるか否か分析する。
【００８０】
[00103]  この考えは、手の指先を合わせてパドルのようにすると、指先では画素が少なくなり、手の中心に向かって画素が増大するということである。逆に、手を握ってこぶしにすると、こぶしがある上面には比較的多くの画素があり、手首および腕に向かって徐々に細くなる。つまり、パドル・サブフィルターのヒストグラムを用い、パドル状のときおよびこぶし状のときとわかる手の外形(configuration)を用いて、得られたビンを分析することにより、パドル・サブフィルターは、区分した手が開いているかまたは閉じているかについての推定を提示することができる。この場合も、パドル・サブフィルターの出力は、検査から確定した何らかの既定の閾値に基づいて、バイナリ（開／閉）にすることができる。あるいはまたは代わりに、 この出力は信頼値（どれ位閾値に近いか）がある開／閉出力とすることができる。
【００８１】
[00104]  ステップ２９５において、サブフィルターからの結果を組み合わせて、手が開いているかまたは閉じているかについての最終出力、即ち、推定を得る。ステップ２９５の組み合わせでは、判断ツリーを用いる。判断ツリーは、これらのフィルターの各々について、開いている手／閉じている手、および信頼値を確認し、これらを一緒に組み合わせて最終的な開／閉出力を得る。この判断ツリーは、各サブフィルターの長所を最大化し、短所を最小化するようにカスタム化することもできる。深度ジャンプ・サブフィルターは、最も信頼性があると考えられる。このため、深度ジャンプ・サブフィルターの出力が何らかの閾値よりも高い信頼度を有するとき、これを最終出力として採用するとよい。
【００８２】
[00105]  円サブフィルターの結果は、２番目に信頼性が高いと考えられる。深度ジャンプ・サブフィルターの結果が閾値よりも高い信頼度を有していない場合、または深度ジャンプ・サブフィルターの出力と円サブフィルターの出力が一致しない場合、円サブフィルターの結果を、その信頼値と共に考慮するとよい。信頼値が高い場合、円サブフィルターの出力を最終出力として採用するとよい。
【００８３】
[00106]  パドル・サブフィルターの結果は、次に信頼性が高いと考えられる。深度ジャンプ・サブフィルターまたは円サブフィルターのいずれも信頼性のある結果を提供しない場合、パドル・フィルターの結果を考慮し、その信頼値が何らかの閾値よりも高い場合、最終出力として用いるとよい。
【００８４】
[00107]  同じ判断ツリー型の分析は、前述した他のフィルターの結果を考慮するためにも用いることができる。一実施形態では、湾曲分析フィルターが何らかの所定の閾値よりも高い信頼度の出力を供給する場合、この結果を最終出力として採用するのでもよい。湾曲分析フィルターの信頼度が閾値よりも高くない場合、ヒストグラム・フィルターの信頼度を調べるとよい。何らかの所定の閾値よりも高い場合、その結果を最終出力として採用するとよい。ヒストグラム・フィルターの信頼度が閾値よりも高くない場合、自然グラブ・フィルターの信頼度を調べればよい。何らかの所定の閾値よりも高い場合、その結果を最終出力として採用するとよい。
【００８５】
[00108]  以上で説明したフィルターは、異なるサイズの手に対して正規化すること、および／または不変にすることもできる。また、これらの異なるフィルターは、多数のプレーヤに、またはこのようなプレーヤ各々の一方または両方の手に拡張可能にしてもよい。
【００８６】
[00109]  尚、形状記述子のフィルター例は、性質上例示であり、本開示の範囲を限定することは意図していないことは言うまでもない。一般に、手の領域に適した形状記述子であればいずれも、単独で、あるいは互いに組み合わせて、および／または以上で説明した方法例の内１つと組み合わせて用いることもできる。例えば、以上で説明したヒストグラムまたはベクトルのような形状記述子は、もっと大きなベクトルと混合すること、照合する(match)こと、組み合わせること、および／または連結すること等が可能である。これによって、個々にこれらを見ても特定できなかった新たなパターンの特定が可能になることもある。これらのフィルターは、履歴フレーム・データの使用により増強することもできる。履歴フレーム・データは、例えば、特定した指が、以前のフレームにおいて特定したその指から逸脱し過ぎているか否か示すことができる。
【００８７】
[00110]  図６に示したパイプラインを続けると、以上で説明したフィルターからの情報を用いて、分類エンジン１９８（図２）は、ステップ２１４において、手を分類することができる。例えば、ステップ２１０において抽出した形状記述子は、手の状態を推定するために格納されている訓練データに基づいて分類することができる。例えば、図７の３１０において示すように、手が開いているまたは閉じていると分類することができる。例の中には、訓練データが、種々の手の状態の深度画像例を、標識付きで備えているとよい場合もある。訓練データは、実物であっても、合成して生成したのでもよく、異なる身体サイズおよび腕の向きで全身または上半身の３Dモデルを描き、更に動き取り込み（motion capture)に基づいて、曲げ方が異なる手の姿勢、または手描きの(hand-designed)手の姿勢を描くことできる。合成画像は、ノイズが多い実際の画像を模擬するために、劣化させることもできる。
【００８８】
[00111]  例の中には、分類ステップ２１４において用いる訓練データが、所定の１組の手の例に基づくとよい場合もある。手の例は、代表的な手の状態に基づいて類別するかまたは標識を付けることができ、これらに対して、手の領域についての形状記述子を比較する。
【００８９】
[00112]  例の中には、訓練データを分割するために種々のメタデータを用いるとよい場合もある。例えば、訓練データは、複数の手の状態の例を含むこともあり、例えば、手の側（例えば、左または右）、手の向き（例えば、下腕角または下腕の向き）、深度、および／またはユーザーの身体サイズの内１つ以上に基づいて分割することができる。これらの訓練用の手の例を別個の部分集合に分割すると、各区分内における手の形状の変異性(variability)を低減することができ、一層精度が高い総合的な手の状態の分類を行うことが可能になる。
【００９０】
[00113]  加えて、例の中には、訓練データが特定のアプリケーションに限定的であるとよい場合もある。即ち、訓練データは、所与のアプリケーションにおいて予期される動作、例えば、ゲームにおいて予期される行動に応じて異なっていてもよい。更に、例の中には、訓練データがユーザーに限定的であるとよい場合もある。例えば、アプリケーションまたはゲームが訓練モジュールを含むのでもよく、ユーザーは１つ以上の訓練用の実習を行って訓練データを較正する。例えば、ユーザーが一連の手を開いた姿勢および手を閉じた姿勢を取り、後続のシステムとの対話処理の間にユーザーの手の状態を推定する際に用いられる訓練データ集合を作成することができる。
【００９１】
[00114]  ユーザーの手の分類は、訓練用の例に基づいて、種々の方法で行うことができる。例えば、種々の機械学習技法を分類において採用することができる。非限定的な例には、サポート・ベクトル・マシン訓練、回帰、最近傍法(nearest neighbor)、（非）教師なしクラスタリング((un)supervised clustering)等が含まれる。
【００９２】
[00115]  図２０は、以上で説明した種々のフィルターの結果を組み合わせるスーパーバイザー・フィルター(supervisor filter)を示す。例えば、湾曲分析フィルター、深度ヒストグラム・フィルター、不連続フィルター、図２０には示されていない他の開／閉フィルター、および腕の方向に関するデータを、例えば、サポート・ベクトル・マシンのような機械に供給することができる。更に、隠れマルコフ・モデルを用いてこの結果の精度を更に高めて、開いている手または閉じている手の指示を与えることができる。前述のように、本明細書において説明した種々のフィルターで用いたシルエットは、その手のサイズおよびセンサー距離が、カメラからのユーザーの距離および分析した骨格から推論される手のサイズの知識によって影響を受けない (invariant)ように、拡縮する(scale)こともできる。
【００９３】
[00116]  先に論じたように、分類技法は、観察対象の手が様々な状態の内の１つである可能性を予測するために、種々の手の状態の深度画像例に標識を付けて用いることもできる。加えて、分類ステップの最中またはその後に、信頼度を分類に付加することもできる。例えば、訓練データに基づいて、あるいはシグモイド関数または他の適した誤差関数を分類ステップの出力に当てはめることによって、信頼度間隔を、推定した手の状態に割り当てることもできる。
【００９４】
[00117]  手の状態を分類する単純な非限定的一例として、図７の３１０に示すように、２つの可能な手の状態、開いている状態または閉じている状態があるとよい。この例では、訓練データは２つの標識付きの手の集合を含むことができる。第１の手の例の集合は、開いているまたはほぼ開いている手の状態を表し、第２の手の例の集合は、閉じているまたはほぼ閉じている手の状態を表す。このように、特定された手の領域に対して、形状記述子が抽出されたとすると、この特定された手の領域の抽出された形状記述子を、第１（開いた）および第２（閉じた）の手の集合における手の例と比較して、特定された手の領域が各集合に該当する可能性を判定することができる。次いで、高い方の可能性に基づいて、手の状態を推定することができる。
【００９５】
[00118]  開いた手または閉じた手の状態に加えて、本技術は、例えば、１本以上の指によって特定の方向を指し示すというような、特定の指の向きを識別するためにも用いることができる。また、本技術は、ｘ，ｙ，ｚデカルト空間内において種々の角度に向けられた種々の手の位置を識別するためにも用いることができる。
【００９６】
[00119]  例えば、図７の３１０に示すように、特定された手の領域は、開いている可能性の方が高いと判定され、そのように分類される。加えて、例の中には、特定された手が特定の手の状態にあると判定された可能性を用いて、手の状態の推定に対する信頼度間隔を確定することもできる場合がある。
【００９７】
[00120]  実施形態では、ステップ２１６（図６）における手および指の位置の推定精度を高めるために、種々の分類後フィルタリング・ステップを採用するとよい。例えば、時間的整合性フィルタリング、例えば、ロー・パス・フィルター・ステップを、連続する深度画像フレーム間において予測した手および指の位置に適用して、予測をスムージングし、例えば、偽りの手の動き、センサーのノイズ、または場合によって起こり得る分類の誤りによる時間的ジッタリング(temporal jittering)を低減することができる。即ち、キャプチャー・デバイスまたはセンサーからの複数の深度画像に基づく複数の手および指の位置を推定し、手および指の位置を推定するための複数の推定値の時間的フィルタリングを実行することができる。更に、例の中には、アプリケーションによっては、他のアプリケーションよりも擬陽性に対して一層敏感である（一方向または他方に）こともあるので、分類結果を一方の状態または他方の状態に（例えば、開いた手または閉じた手に向けて）偏らせるとよい場合もある。
【００９８】
[00121]  ステップ２２０において、図６のパイプラインは、推定した手の状態に基づいて、フレーム毎に応答を出力することができる。例えば、計算システム１０のコンソール１２のような、計算システムのコンソールにコマンドを出力することができる。他の例として、ディスプレイ・デバイス１６のようなディスプレイ・デバイスに、応答を出力することもできる。このように、推定した手の状態を含む、推定したユーザーの動きを、システム１０のコンソール１２へのコマンドに変換することができるので、ユーザーは、前述のように、システムと対話処理することができる。更に、以上で説明した方法およびプロセスは、ユーザーの身体のいずれの部分、例えば、口、目等についても推定値を決定するために実装することができる。例えば、以上で説明した方法を用いて、ユーザーの身体の一部について姿勢を推定することもできる。
【００９９】
[00122]  本技術は、例えば、図１Ａから図１Ｃに示したようなＮＵＩシステムとの多種多様な対話処理を可能にする。 広い範囲の自然な対話処理があり、手／指の動きに基づくもの、または大きな身体の動きおよびきめ細かい手の制御の双方を組み合わせるものもあり、これらは、新たに認識するジェスチャー、一層深く没頭する体験、および非常におもしろいゲームを創作するには望ましい。これらの使用および対話処理は、以下のことを含むが、これらに限定されるのではない。
【０１００】
・掴む／放すという動きの手順(mechanics)−ユーザーの手が開いているかまたは閉じているか正確に判断することができると、ＮＵＩシステムまたはアプリケーションは、掴む動きまたは放す動きをするときを、正確に判断することができる。このため、例えば、ゲームにおいてユーザーがオブジェクトを投げているときに、ＮＵＩシステムまたはアプリケーションは、ユーザーが投げたオブジェクトを放そうとした正確な放出点（閉じた手から開いた手への移行）を判断することができる。他の例には、登ること、ぱちんこ、風船飛ばし、および仮想レバーを引くことが含まれるが、これらに限定されるのではない。
【０１０１】
・オブジェクトを引く−開いた手および閉じた手の検出を用いて、ロープ、レバー等の仮想オブジェクトを引く。
・開始／終了動作−手を開いてある行為を開始して継続し、手を閉じてそれを終了する。一例には、ゲームにおける消防ホースの使用が含まれる。手を開いてそれをオンに切り替え、手および腕の向きでホースを導き、手を閉じてそれをオフに切り替える。
【０１０２】
[00123]  その他の指および手の相互作用も考えられる。
[00124]  図２１Ａは、目標認識、分析、および追跡システムにおいてユーザーの１つ以上の位置および動きを解釈するために用いることができる計算環境の一実施形態例を示す。図１Aから図２に関して先に説明した計算環境１２のような計算環境は、ゲーミング・コンソールのような、マルチメディア・コンソール６００であってもよい。図２１Aに示すように、マルチメディア・コンソール６００は、レベル１キャッシュ６０２、レベル２キャッシュ６０４、およびフラッシュＲＯＭ６０６を有する中央演算装置（ＣＰＵ）６０１を有する。レベル１キャッシュ６０２およびレベル２キャッシュ６０４は、一時的にデータを格納し、こうしてメモリー・アクセス・サイクルの回数を減らすことによって、処理速度およびスループットを向上させる。ＣＰＵ６０１は、１つよりも多いコア、つまり、追加のレベル１およびレベル２キャッシュ６０２および６０４を有するものを設けてもよい。フラッシュＲＯＭ６０６は、実行可能コードを格納することができる。実行可能コードは、マルチメディア・コンソール６００に電源を入れたときに、ブート・プロセスの初期段階の間にロードされる。
【０１０３】
[00125]  グラフィクス処理ユニット（ＧＰＵ）６０８およびビデオ・エンコーダー／ビデオ・コデック（コーダ／デコーダ）６１４は、高速および高解像度グラフィクス処理のためのビデオ処理パイプラインを形成する。データは、ＧＰＵ６０８からビデオ・エンコーダー／ビデオ・コデック６１４にバスを通じて搬送される。このビデオ処理パイプラインは、テレビジョンまたは他のディスプレイへの送信のためにデータをＡ／Ｖ（オーディオ／ビデオ）ポート６４０に出力する。メモリー・コントローラー６１０は、限定ではないが、ＲＡＭのような種々のタイプのメモリー６１２にプロセッサーがアクセスし易くするために、ＧＰＵ６０８に接続されている。
【０１０４】
[00126]  マルチメディア・コンソール６００は、Ｉ／Ｏコントローラー６２０、システム管理コントローラー６２２、オーディオ処理ユニット６２３、ネットワーク・インターフェース・コントローラー６２４、第１ＵＳＢのホスト・コントローラー６２６、第２のＵＳＢコントローラー６２８、およびフロント・パネルＩ／Ｏサブアセンブリ６３０を含む。これらは、好ましくは、モジュール６１８上に実装されている。ＵＳＢコントローラー６２６および６２８は、周辺コントローラー６４２（１）〜６４２（２）、ワイヤレス・アダプター６４８、および外部メモリー・デバイス６４６（例えば、フラッシュ・メモリー、外部ＣＤ／ＤＶＤ  ＲＯＭドライブ、リムーバブル媒体等）のためのホストとしての役割を果たす。ネットワーク・インターフェース６２４および／またはワイヤレス・アダプター６４８は、ネットワーク（例えば、インターネット、家庭内ネットワーク等）へのアクセスを与え、イーサネット（登録商標）・カード、モデム、Bluetoothモジュール、ケーブル・モデム等を含む広範囲にわたる種々の有線またはワイヤレス・アダプター・コンポーネントの内いずれでもよい。
【０１０５】
[00127]  システム・メモリー６４３は、ブート・プロセスの間にロードされるアプリケーション・データを格納するために設けられている。メディア・ドライブ６４４が設けられており、ＤＶＤ／ＣＤドライブ、ハード・ドライブ、またはその他のリムーバブル・メディア・ドライブを備えることができる。メディア・ドライブ６４４は、マルチメディア・コンソール６００の内部にあっても外部にあってもよい。アプリケーション・データには、マルチメディア・コンソール６００が実行、再生等のために、メディア・ドライブ６４４を介してアクセスすることができる。メディア・ドライブ６４４は、シリアルＡＴＡバスまたはその他の高速接続（例えば、IEEE1394）のようなバスを介して、Ｉ／Ｏコントローラー６２０に接続されている。
【０１０６】
[00128]  システム管理コントローラー６２２は、メディア・コンソール６００が利用可能であることを確保することに関する種々のサービス機能を提供する。オーディオ処理ユニット６２３およびオーディオ・コデック６３２は、高忠実度およびステレオ処理を行う、対応のオーディオ処理パイプラインを形成する。オーディオ・データは、通信リンクを介して、オーディオ処理ユニット６２３とオーディオ・コデック６３２との間で搬送される。オーディオ処理パイプラインは、外部オーディオ・プレーヤーまたはオーディオ処理能力を有するデバイスによる再生のために、データをＡ／Ｖポート６４０に出力する。
【０１０７】
[00129]  フロント・パネルＩ／Ｏサブアセンブリ６３０は、電力ボタン６５０およびイジェクト・ボタン６５２の機能をサポートするだけでなく、あらゆるＬＥＤ（発光ダイオード）またはマルチメディア・コンソール６００の外面上に表出されているその他のインディケーターもサポートする。システム電源モジュール６３６は、マルチメディア・コンソール６００のコンポーネントに電力を供給する。ファン６３８は、マルチメディア・コンソール６００内部にある回路を冷却する。
【０１０８】
[00130]  ＣＰＵ６０１、ＧＰＵ６０８、メモリー・コントローラー６１０、およびマルチメディア・コンソール６００内部にある種々のその他のコンポーネントは、１系統以上のバスを介して相互接続されている。これらのバスには、シリアルおよびパラレル・バス、メモリー・バス、周辺バス、ならびに種々のバス・アーキテクチャの内いずれかを用いるプロセッサー・バスまたはローカル・バスが含まれる。一例として、このようなアーキテクチャーは、ペリフェラル・コンポーネント相互接続（ＰＣＩ）バス、PCI-Expressバス等を含むことができる。
【０１０９】
[00131]  マルチメディア・コンソール６００に電源を入れると、システム・メモリー６４３からメモリー６１２および／またはキャッシュ６０２、６０４にアプリケーション・データがロードされ、ＣＰＵ６０１において実行することができる。アプリケーションは、グラフィカル・ユーザー・インターフェースを提示することができる。このグラフィカル・ユーザー・インターフェースは、マルチメディア・コンソール６００において利用可能な異なるタイプのメディアにナビゲートするときに、一貫性のあるユーザー体験を提供する。動作において、アプリケーションおよび／またはメディア・ドライブ６４４内に収容されている他のメディアをメディア・ドライブ６４４から起動または再生して、マルチメディア・コンソール６００に追加の機能を設けることもできる。
【０１１０】
[00132]  マルチメディア・コンソール６００は、単にシステムをテレビジョンまたはその他のディスプレイに接続することによって、単体システムとして動作させることができる。この単体モードでは、マルチメディア・コンソール６００は、１人以上のユーザーがシステムと対話処理を行い、ムービーを見ること、または音楽を聞くことを可能にする。しかしながら、ネットワーク・インターフェース６２４またはワイヤレス・アダプター６４８によって利用可能となるブロードバンド接続機能を統合することにより、マルチメディア・コンソール６００を更に大きなネットワーク・コミュニティにおける関与個体(participant)として動作させることもできる。
【０１１１】
[00133]  マルチメディア・コンソール６００に電源を入れると、マルチメディア・コンソールのオペレーティング・システムによって、設定されている量のハードウェア・リソースがシステムの使用のために確保される。これらのリソースは、メモリー（例えば、１６ＭＢ）、ＣＰＵおよびＧＰＵサイクル（例えば、５％）、ネットワーク接続帯域幅（例えば、８ｋｂｓ）等の確保を含むことができる。これらのリソースは、システムのブート時に確保されるので、確保されたリソースは、アプリケーションの視点からは存在しない。
【０１１２】
[00134]  特に、メモリーの確保は、起動カーネル、コンカレント・システム・アプリケーション、およびドライバーを収容できる程に十分大きいことが好ましい。確保されたＣＰＵ使用枠(usage)がシステム・アプリケーションによって用いられない場合、アイドルのスレッドがいずれかの未使用サイクルを消費するように、ＣＰＵの確保は一定であることが好ましい。
【０１１３】
[00135]  ＧＰＵの確保に関して、ＧＰＵ割り込みを用いてポップアップをオーバーレイにレンダリングするコードをスケジューリングすることによって、システム・アプリケーション（例えば、ポップアップ）が生成する軽量メッセージ(lightweight message)を表示する。オーバーレイに用いられるメモリー量は、オーバーレイのエリア・サイズによって異なり、オーバーレイは画面の解像度に合わせて倍率調整する(scale)ことが好ましい。コンカレント・システム・アプリケーションによってフル・ユーザー・インターフェースが用いられる場合、アプリケーションの解像度とは独立した解像度を用いることが好ましい。周波数を変更してＴＶの同期を取り直す必要性をなくすように、この解像度を設定するためにスケーラー(scaler)を用いるとよい。
【０１１４】
[00136]  マルチメディア・コンソール６００がブートして、システム・リソースが確保された後、コンカレント・システム・アプリケーションが実行してシステム機能を提供する。システム機能は、前述の確保したシステム・リソースの内部で実行する１組のシステム・アプリケーションの中にカプセル化されている。オペレーティング・システム・カーネルは、システム・アプリケーション・スレッドと、ゲーミング・アプリケーション・スレッドとの間でスレッドを識別する。一貫したシステム・リソース・ビューをアプリケーションに提供するために、システム・アプリケーションは、所定の時点および間隔でＣＰＵ６０１において実行するようにスケジューリングされていることが好ましい。このスケジューリングは、コンソール上で実行しているゲーミング・アプリケーションに対するキャッシュ破壊(disruption)を最少に抑えるためにある。
【０１１５】
[00137]  コンカレント・システム・アプリケーションがオーディオを必要とする場合、時間に敏感であるため、ゲーミング・アプリケーションには非同期にオーディオ処理をスケジューリングする。マルチメディア・コンソール・アプリケーション・マネージャー（以下で説明する）は、システム・アプリケーションがアクティブのとき、ゲーミング・アプリケーションのオーディオ・レベル（例えば、無音化、減衰）を制御する。
【０１１６】
[00138]  入力デバイス（例えば、コントローラー６４２（１）および６４２（２））は、ゲーミング・アプリケーションおよびシステム・アプリケーションによって共有される。入力デバイスは、確保されるリソースではないが、各々がデバイスのフォーカス(focus)を有するように、システム・アプリケーションとゲーミング・アプリケーションとの間で切り換えられる。アプリケーション・マネージャーは、ゲーミング・アプリケーションの知識を用いずに入力ストリームの切換を制御し、ドライバーはフォーカス・スイッチ(focus switches)に関する状態情報を維持する。カメラ２６、２８およびキャプチャー・システム２０は、コンソール６００の追加の入力デバイスを定めることができる。
【０１１７】
[00139]  図２１Ｂは、目標認識、分析、および追跡システムにおいて１つ以上の位置および動き(motion)を解釈するために用いられる、計算環境７２０の他の実施形態例を示す。計算環境７２０は、図１Ａから図２に示した計算環境１２であってもよい。計算システム環境７２０は、適した計算環境の一例に過ぎず、本明細書において開示される主題の使用範囲または機能に関して、いかなる限定を示唆する意図もない。また、計算環境７２０が、本明細書において例示されるいずれの１つのコンポーネントまたはコンポーネントの組み合わせに関して何らかの依存性または要件を有するように解釈してはならない。実施形態によっては、図示する種々の計算エレメントが、本開示の特定の態様をインスタンス化するように構成されている回路を含むこともあり得る。例えば、本開示において用いられる回路という用語は、ファームウェアまたはスイッチによって機能（１つまたは複数）を実行するように構成されている特殊ハードウェア・コンポーネントを含むことができる。別の実施形態例では、回路という用語は、機能（１つまたは複数）を実行するために動作可能なロジックを具体化するソフトウェア命令によって構成される汎用演算装置、メモリー等を含むことができる。回路がハードウェアおよびソフトウェアの組み合わせを含む実施形態例では、実装者(implementer)は、ロジックを具体化するソース・コードを書くことができ、ソース・コードを機械読み取り可能コードにコンパイルすることができ、この機械読み取り可能コードを汎用演算装置によって処理することができる。技術的現状では、ハードウェア、ソフトウェア、またはハードウェア／ソフトウェアの組み合わせの間には殆ど差がないというところまで発展していることを当業者は認めることができるので、特定の機能を実行するためにハードウェアまたはソフトウェアのどちらを選択するかということは、実装者に委ねられた設計選択事項である。更に具体的には、ソフトウェア・プロセスを等価のハードウェア構造に変換することができ、更にハードウェア構造自体を等価のソフトウェア・プロセスに変換することができることを、当業者は認めることができる。つまり、ハードウェアの実施態様およびソフトウェアの実施態様のどちらを選択するかということは、実装者に委ねられた設計選択事項の１つである。
【０１１８】
[00140]  図２１Ｂにおいて、計算環境７２０は、コンピューター７４１を含む。コンピューター７４１は、通例、種々のコンピューター読み取り可能媒体を含む。コンピューター読み取り可能媒体は、コンピューター７４１がアクセス可能な入手可能な媒体であればいずれでも可能であり、揮発性および不揮発性の双方、リムーバブル、および非リムーバブル媒体を含む。システム・メモリー７２２は、リード・オンリー・メモリー（ＲＯＭ）７２３およびランダム・アクセス・メモリー（ＲＡＭ）７６０のような揮発性および／または不揮発性メモリーの形態で、コンピューター記憶媒体を含む。基本入出力システム７２４（ＢＩＯＳ）は、起動中のように、コンピューター７４１内のエレメント間におけるデータ転送を補助する基本的なルーチンを含み、通例ＲＯＭ７２３内に格納されている。ＲＡＭ７６０は、通例、演算装置７５９が直ちにアクセス可能であるデータおよび／またはプログラム・モジュール、または現在これによって処理されているデータおよび／またはプログラム・モジュールを収容する。一例として、そして限定ではなく、図２１Ｂは、オペレーティング・システム７２５、アプリケーション・プログラム７２６、その他のプログラム・モジュール７２７、およびプログラム・データ７２８を示す。更に、図２１Ｂは、グラフィクス・プロセッサー・ユニット（ＧＰＵ）７２９も含む。グラフィクス・プロセッサー・ユニット７２９は、高速および高解像度グラフィクス処理および格納のために、付随するビデオ・メモリー７３０を有する。ＧＰＵ７２９は、グラフィクス・インターフェース７３１を介して、システム・バス７２１に接続することができる。
【０１１９】
[00141]  また、コンピューター７４１は、その他のリムーバブル／非リムーバブル揮発性／不揮発性コンピューター記憶媒体も含むことができる。一例にすぎないが、図２１Ｂは、非リムーバブル不揮発性磁気媒体からの読み取りおよびこれへの書き込みを行なうハード・ディスク・ドライブ７３８、リムーバブル不揮発性磁気ディスク７５４からの読み取りおよびこれへの書き込みを行なう磁気ディスク・ドライブ７３９、ならびにＣＤ  ＲＯＭまたはその他の光媒体のようなリムーバブル不揮発性光ディスク７５３からの読み取りおよびこれへの書き込みを行なう光ディスク・ドライブ７４０を示す。動作環境の一例において使用可能なその他のリムーバブル／非リムーバブル、揮発性／不揮発性コンピューター記憶媒体には、限定する訳ではないが、磁気テープ・カセット、フラッシュ・メモリー・カード、ディジタル・バーサタイル・ディスク、ディジタル・ビデオ・テープ、ソリッド・ステートＲＡＭ、ソリッド・ステートＲＯＭ等が含まれる。ハード・ディスク・ドライブ７３８は、通例、インターフェース７３４のような非リムーバブル・メモリー・インターフェースを介してシステム・バス７２１に接続され、磁気ディスク・ドライブ７３９および光ディスク・ドライブ７４０は、通例、インターフェース７３５のようなリムーバブル・メモリー・インターフェースによって、システム・バス７２１に接続する。
【０１２０】
[00142]  先に論じ図２１Ｂに示すドライブおよびそれらと関連のあるコンピューター記憶媒体は、コンピューター読み取り可能命令、データ構造、プログラム・モジュール、およびコンピューター７４１のその他のデータを格納する。図２１Ｂでは、例えば、ハード・ディスク・ドライブ７３８は、オペレーティング・システム７５８、アプリケーション・プログラム７５７、他のプログラム・モジュール７５６、およびプログラム・データ７５５を格納するように示されている。尚、これらの構成要素は、オペレーティング・システム７２５、アプリケーション・プログラム７２６、他のプログラム・モジュール７２７、およびプログラム・データ７２８と同じでも異なっていても可能であることを注記しておく。オペレーティング・システム７５８、アプリケーション・プログラム７５７、他のプログラム・モジュール７５６、およびプログラム・データ７５５は、ここで、少なくともこれらが異なるコピーであることを示すために、異なる番号が与えられている。ユーザーは、キーボード７５１、および一般にマウス、トラックボールまたはタッチ・パッドと呼ばれているポインティング・デバイス７５２のような入力デバイスによって、コマンドおよび情報をコンピューター７４１に入力することができる。他の入力デバイス（図示せず）には、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナー等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、ユーザー入力インターフェース７３６を介して、演算装置７５９に接続されている。ユーザー入力インターフェース７３６は、システム・バスに結合されているが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス（ＵＳＢ）によって接続することも可能である。カメラ２６、２８およびキャプチャー・デバイス２０は、コンソール７００の追加入力デバイスを定めることができる。モニター７４２またはその他のタイプの表示装置も、ビデオ・インターフェース７３２のようなインターフェースを介して、システム・バス７２１に接続されている。モニターに加えて、コンピューターは、スピーカー７４４およびプリンター７４３のような、その他の周辺出力装置も含むことができ、これらは出力周辺インターフェース７３３を介して接続することができる。
【０１２１】
[00143]  コンピューター７４１は、リモート・コンピューター７４６のような１つ以上のリモート・コンピューターへの論理接続を用いて、ネットワーク環境において動作することも可能である。リモート・コンピューター７４６は、パーソナル・コンピューター、サーバー、ルータ、ネットワークＰＣ、ピア・デバイス、またはその他の共通ネットワーク・ノードとすることができ、通例、コンピューター７４１に関して先に説明したエレメントの多くまたは全てを含むが、図２１Ｂにはメモリー記憶装置７４７のみを示す。図２１Ｂに示す論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）７４５およびワイド・エリア・ネットワーク（ＷＡＮ）７４９を含むが、他のネットワークも含むことができる。このようなネットワーク環境は、事務所、企業規模のコンピューター・ネットワーク、イントラネットおよびインターネットにおいては一般的である。
【０１２２】
[00144]  ＬＡＮネットワーク環境で用いる場合、コンピューター７４１は、ネットワーク・インターフェースまたはアダプター７３７を介してＬＡＮ７４５に接続する。ＷＡＮネットワーク環境で用いる場合、コンピューター７４１は、通例、モデム７５０、またはインターネットのようなＷＡＮ７４９を通じて通信を設定するその他の手段を含む。モデム７５０は、内蔵でも外付けでもよく、ユーザー入力インターフェース７３６またはその他の適切な機構を介してシステム・バス７２１に接続することができる。ネットワーク環境では、コンピューター７４１に関係付けて図示したプログラム・モジュール、またはその一部は、リモート・メモリー記憶装置に格納することもできる。一例として、そして限定ではなく、図２１Ｂは、リモート・アプリケーション・プログラム７４８がメモリー・デバイス７４７に存在するものとして示している。尚、図示のネットワーク接続は一例であり、コンピューター間で通信リンクを設定する他の手段も使用可能であることは認められよう。
【０１２３】
[00145]  以上の本発明のシステムについての詳細な説明は、例示および説明の目的で提示された。これは、網羅的であることも、開示された技術を開示された形態そのものに限定することを意図するのではない。多くの変更や変形が、以上の教示に照らして、可能である。記載した実施形態は、本技術の原理およびその実用的な用途を最良に説明し、それによって当業者が本技術を種々の実施形態において、そして個々の考えられる使用に適するような種々の変更と共に、最良に利用することを可能にするために選択されたのである。本発明のシステムの範囲は、本明細書に添付されている特許請求の範囲によって定義されることを意図している。
【図１Ａ】
0006021902.tif 000002
【図１Ｂ】
0006021902.tif 000003
【図１Ｃ】
0006021902.tif 000004
【図２】
0006021902.tif 000005
【図３】
0006021902.tif 000006
【図４】
0006021902.tif 000007
【図５】
0006021902.tif 000008
【図６】
0006021902.tif 000009
【図８】
0006021902.tif 000010
【図９】
0006021902.tif 000011
【図１１Ａ】
0006021902.tif 000012
【図１１Ｂ】
0006021902.tif 000013
【図１２】
0006021902.tif 000014
【図１３】
0006021902.tif 000015
【図１５】
0006021902.tif 000016
【図１６】
0006021902.tif 000017
【図１９】
0006021902.tif 000018
【図２１Ａ】
0006021902.tif 000019
【図２１Ｂ】
0006021902.tif 000020
【図７】
0006021902.tif 000021
【図１０】
0006021902.tif 000022
【図１４】
0006021902.tif 000023
【図１７】
0006021902.tif 000024
【図１８】
0006021902.tif 000025
【図２０】
0006021902.tif 000026