(57)【要約】カメラを介してユーザの動きを検出し、ディスプレイにユーザの動的な仮想描写を生成する。検出したユーザの動きは、動的な仮想描写を、ディスプレイの仮想オブジェクトと相互に連携させる。検出したユーザの動きの大きさと方向は、動的な仮想描写により仮想オブジェクトに加えられる力の大きさと方向を決定するためにに算出する。さらに、本構成は、ユーザの体感を向上するために、水又は煙の流体シミュレーションを含んでもよい。【選択図】図２
2010515170.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクトの少なくとも第１の画像を受け取るステップと、
前記第１の画像の前記オブジェクトを検出するステップと、
前記第１の画像の前記オブジェクトの検出に基づいて、前記第１の画像のピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されたか否かを示す、オブジェクトデータマップを生成するステップと、
前記オブジェクトデータマップに含まれるピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されてからの時間の指標を示す動き履歴を生成するステップと、
前記動き履歴に基づいてアプリケーションを制御するステップと、を含むコンピュータ実施方法。
【請求項２】
前記オブジェクトデータマップに含まれるピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されてからの時間の指標を示す動き履歴を生成するステップが、前記オブジェクトデータマップに含まれる前記ピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されてからの時間に対応する不透明度値を示す動き履歴を生成するステップを含む、請求項１記載の方法。
【請求項３】
前記オブジェクトデータマップに含まれるピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されてからの時間の指標を示す動き履歴を生成するステップが、前記オブジェクトデータマップに含まれる前記ピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されてからのフレームの数を示す動き履歴を生成するステップを含む、請求項１記載の方法。
【請求項４】
前記オブジェクトデータマップに含まれるピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されてからの時間の指標を示す動き履歴を生成するステップが、前記オブジェクトデータマップに含まれる前記ピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出された時間の測定値（ｍｅａｓｕｒｅｍｅｎｔ）を示す動き履歴を生成するステップを含む、請求項１記載の方法。
【請求項５】
前記オブジェクトデータマップに含まれるピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されてからの時間の指標を示す動き履歴を生成するステップが、前記動き履歴をフィルタリングするステップを含み、
前記動き履歴に基づいてアプリケーションを制御するステップが、フィルタリングされた動き履歴に基づいてアプリケーションを制御するステップを含む、請求項１記載の方法。
【請求項６】
前記動き履歴をフィルタリングするステップが、ピクセルの各々について、前記ピクセルの各々の値と、前記ピクセルの各々の近傍にあるピクセルの値とに基づいて、前記ピクセルの各々の値を算出するステップを含む、請求項５記載の方法。
【請求項７】
オブジェクトの少なくとも第１の画像を受け取るステップが、ユーザの少なくとも一つの第１の画像を受け取るステップを含む、請求項１記載の方法。
【請求項８】
前記動き履歴に基づいてアプリケーションを制御するステップが、前記アプリケーションに関連する表示画像に前記オブジェクトの描写を表示するステップを含む、請求項１記載の方法。
【請求項９】
前記動き履歴に基づいてアプリケーションを制御するステップが、前記アプリケーションに関連する表示画像の前記オブジェクトの前記描写の動きを制御するステップを含む、請求項８記載の方法。
【請求項１０】
前記アプリケーションに関連する表示画像に前記オブジェクトの描写を表示するステップが、前記アプリケーションに関連する前記表示画像に前記オブジェクトの前記描写をパーティクルシステムの１以上のパーティクルとして表示するステップを含む、請求項８記載の方法。
【請求項１１】
前記アプリケーションに関連する表示画像に前記オブジェクトの描写を表示するステップが、
前記動き履歴に基づいて前記オブジェクトの動きを表す輪郭線（ｏｕｔｌｉｎｅ  ｃｏｎｔｏｕｒ）を生成するステップと、
生成した輪郭線に基づいて、前記アプリケーションによる前記表示画像に描写された仮想オブジェクトに、前記表示画像の前記オブジェクトの前記描写が接触したか否かを判断するステップと、を含む、請求項８記載の方法。
【請求項１２】
前記アプリケーションに関連する表示画像に前記オブジェクトの描写を表示するステップが、
前記時間の指標が前記オブジェクトが最も直近に検出されたことを示す動き履歴のピクセルに対応するピクセルを、前記時間の指標が前記オブジェクトがより過去に検出されたことを示す動き履歴のピクセルに対応するピクセルよりも不透明度が大きくなるように表示するように、前記オブジェクトの描写を表示するステップを含む、請求項８記載の方法。
【請求項１３】
前記時間の指標が前記オブジェクトが最も直近に検出されたことを示す動き履歴のピクセルに対応するピクセルを、前記時間の指標が前記オブジェクトがより過去に検出されたことを示す動き履歴のピクセルに対応するピクセルよりも不透明度が大きくなるように表示するように、前記オブジェクトの描写を表示するステップが、
前記動き履歴のピクセルに対応するピクセルを、前記ピクセルに関連する前記時間の指標に基づく不透明度で表示するように、前記オブジェクトの描写を表示するステップを含む、請求項１２記載の方法。
【請求項１４】
前記動き履歴のピクセルに対応するピクセルを、前記ピクセルに関連する前記時間の指標に基づく不透明度で表示するように、前記オブジェクトの描写を表示するステップが、
第２のピクセルより第１のピクセルで前記オブジェクトが直近に検出されたことを示す時間の指標に関連する該第１のピクセルが、前記第２のピクセルの不透明度より大きな不透明度で見えるように、前記オブジェクトの描写を表示するステップを含む、請求項１３記載の方法。
【請求項１５】
前記アプリケーションに関連する表示画像に前記オブジェクトの描写を表示するステップが、
前記動き履歴に基づいてアルファチャネルを生成するステップと、
前記アルファチャネルに基づいて前記表示画像に前記オブジェクトの描写を表示するステップと、を含む、請求項８記載の方法。
【請求項１６】
前記アプリケーションに関連する表示画像に前記オブジェクトの描写を表示するステップが、
アニメーション又はパーティクルシステムに基づいてアニメ−ション効果画像を表示するステップを含む、請求項８記載の方法。
【請求項１７】
前記アプリケーションに関連する表示画像に前記オブジェクトの描写を表示するステップが、
前記オブジェクトのキー画像を表示するステップを含む、請求項８記載の方法。
【請求項１８】
前記アプリケーションに関連する表示画像に前記オブジェクトの描写を表示するステップが、
前記動き履歴に基づいて前記アプリケーションによって、前記表示画像に描写された仮想オブジェクトに前記表示画像の前記オブジェクトの前記描写が接触したか否かを判断するステップと、
前記判断の結果に基づいて前記アプリケーションを制御するステップと、を含む、請求項８記載の方法。
【請求項１９】
前記判断の結果に基づいて前記アプリケーションを制御するステップが、
前記動き履歴に基づいて前記仮想オブジェクトの速度を算出するステップと、
得られた前記仮想オブジェクトの速度に基づいて前記アプリケーションを制御するステップと、を含む、請求項１８記載の方法。
【請求項２０】
前記仮想オブジェクトの速度を算出するステップが、
前記動き履歴に関連するオプティカルフローデータに基づいて前記仮想オブジェクトの動きの速度と方向を算出するステップを含み、
前記仮想オブジェクトの速度に基づいて前記アプリケーションを制御するステップが、
得られた前記仮想オブジェクトの動きの速度と方向に基づいて前記アプリケーションを制御するステップを含む、請求項１９記載の方法。
【請求項２１】
前記仮想オブジェクトが、パーティクルシステムのパーティクルを含む、請求項１８記載の方法。
【請求項２２】
前記第１の画像の前記オブジェクトを検出するステップが、前記第１の画像と背景画像とを比較するステップを含む、請求項１記載の方法。
【請求項２３】
オブジェクトデータマップに含まれるピクセルの各々について、ピクセルの各々でオブジェクトが検出されてからの時間の指標を示す動き履歴に基づいてアプリケーションを制御するステップを含む、コンピュータ実施方法であって、
前記オブジェクトデータマップは、前記オブジェクトの受け取った第１の画像において、ピクセルの各々について、前記オブジェクトが前記ピクセルの各々で検出されたか否かを示す、方法。
【請求項２４】
オブジェクトの少なくとも第１の画像を撮像するように構成されたカメラと、
前記カメラから前記オブジェクトの前記第１の画像を受け取り、
前記第１の画像の前記オブジェクトを検出し、
前記第１の画像の前記オブジェクトの検出に応じて、前記第１の画像のピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されたか否かを示す、オブジェクトデータマップを生成し、
前記オブジェクトデータマップに含まれるピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されてからの時間の指標を示す動き履歴を生成し、
前記動き履歴に基づいてアプリケーションを制御するプロセッサと、
前記アプリケーションに関連する表示画像を描写するように構成されたディスプレイと、を含む、システム。
【請求項２５】
コンピュータプログラムを組み込んだコンピュータが読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
オブジェクトの少なくとも第１の画像を受け取り、
前記第１の画像の前記オブジェクトを検出し、
前記第１の画像の前記オブジェクトの検出に基づいて、前記第１の画像のピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されたか否かを示す、オブジェクトデータマップを生成し、
前記オブジェクトデータマップに含まれるピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されてからの時間の指標を示す動き履歴を生成し、
前記動き履歴に基づいてアプリケーションを制御する、命令を含むコンピュータプログラム。
【請求項２６】
オブジェクトの少なくとも第１の画像を受け取る手段と、
前記第１の画像の前記オブジェクトを検出する手段と、
前記第１の画像の前記オブジェクトの検出に応じて、前記第１の画像のピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されたか否かを示す、オブジェクトデータマップを生成する手段と、
前記オブジェクトデータマップに含まれるピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されてからの時間の指標を示す動き履歴を生成する手段と、
前記動き履歴に基づいてアプリケーションを制御する手段と、を含むシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願）
本出願は、参照により本明細書に含まれる２００６年１２月２９日に出願された米国仮出願第６０／８８２，８４９号の優先権の利益を主張する。
【０００２】
本出願は、一般的には動き検出に関し、少なくとも一つの個別の装置は、ディスプレイにおけるユーザの描写とオブジェクトの間に相互に連携を提供することに関する。
【背景技術】
【０００３】
カメラを用いてオブジェクトの画像を撮像することが行われている。１以上の画像の中から存在するオブジェクトの１以上の画像を分析して、オブジェクトの位置を検出する技術が研究されてきた。例えば、オプティカルフロー（ｏｐｔｉｃａｌ  ｆｌｏｗ）を用いて、時間的に連続して撮像されたオブジェクトの複数の画像を分析して、オブジェクトの動きを検出してきた。
【発明の概要】
【課題を解決するための手段】
【０００４】
一つの一般的な実施例によると、オブジェクトの少なくとも第１の画像を受け取り、第１の画像のオブジェクトを検出する。第１の画像のオブジェクトの検出に基づいて、オブジェクトデータマップを生成する。オブジェクトデータマップは、第１の画像のピクセルの各々について、ピクセルの各々でオブジェクトが検出されたか否かを示す。動き履歴を生成する。動き履歴は、オブジェクトデータマップに含まれるピクセルの各々について、ピクセルの各々でオブジェクトが検出されてからの時間の指標を示す。動き履歴に基づいてアプリケーションを制御する。
【０００５】
実施例は、以下の一つ以上の特徴を含んでもよい。例えば、動き履歴は、オブジェクトデータマップに含まれるピクセルの各々について、ピクセルの各々でオブジェクトが検出されてからの時間に対応する不透明度値を示してもよい。動き履歴はまた、オブジェクトデータマップに含まれるピクセルの各々について、ピクセルの各々でオブジェクトが検出されてからのフレームの数を示してもよい。動き履歴はさらに、オブジェクトデータマップに含まれるピクセルの各々について、ピクセルの各々でオブジェクトが検出された時間の測定値（ｍｅａｓｕｒｅｍｅｎｔ）を示してもよい。
【０００６】
いくつかの実施例では、動き履歴は、前の動き履歴にアクセスして、オブジェクトデータマップに基づいて前の動き履歴を更新して生成してもよい。前の動き履歴は、第１の画像の前に受け取ったオブジェクトの画像に基づいて生成してもよい。前の動き履歴は、オブジェクトが検出された第１の画像のピクセルの各々については、オブジェクトが検出されてからの時間の指標を、最も直近でオブジェクトが検出された時間の指標として設定し、オブジェクトが検出されなかった第１の画像のピクセルの各々については、前記オブジェクトが検出されてからの時間の指標を加齢して、更新してもよい。
【０００７】
オブジェクトが検出されてからの時間の指標は、オブジェクトが検出されてからの時間が増加したことを示すようにオブジェクトが検出されてからの時間の指標を更新して、加齢させる。オブジェクトが検出されてからの時間の指標は、また、オブジェクトが検出されなかった第１の画像のピクセルの各々について、前の動き履歴でオブジェクトが検出されてからの時間の指標が時間期間の閾値を超えているか否かを判断して加齢させてもよい。前の動き履歴でオブジェクトが検出されてからの時間の指標が時間期間の閾値を超えていないと判断した場合に、オブジェクトが検出されてからの時間が増加したことを示すようにオブジェクトが検出されてからの時間の指標を更新するようにしてもよい。オブジェクトが検出されてからの時間の指標は、前の動き履歴でオブジェクトが検出されてからの時間の指標が時間期間の閾値を超えていないと判断した場合に、保持するようにしてもよい。
【０００８】
いくつかの実施例では、動き履歴をフィルタリングして、アプリケーションはフィルタリングした動き履歴に基づいて制御してもよい。動き履歴は、ピクセルの各々について、ピクセルの各々の値と、ピクセルの各々の近傍にあるピクセルの値とに基づいて、ピクセルの各々の値を算出してフィルタリングすることができる。
【０００９】
いくつかの例では、ユーザの少なくとも一つの第１の画像を受け取ってもよい。アプリケーションは、アプリケーションに関連する表示画像のオブジェクトの描写を表示することによって制御してもよい。アプリケーションに関連する表示画像のオブジェクトの描写の動きを制御してもよい。アプリケーションに関連する表示画像にオブジェクトの描写をパーティクルシステムの１以上のパーティクルとして表示してもよい。アプリケーションに関連する表示画像のオブジェクトの描写を、動き履歴に基づいてオブジェクトの動きを表す輪郭線を生成し、生成した輪郭線に基づいて、アプリケーションによる表示画像に描写された仮想オブジェクトに、表示画像のオブジェクトの描写が接触したか否かを判断して、表示してもよい。
【００１０】
いくつかの実施例では、アプリケーションに関連する表示画像にオブジェクトの描写を、時間の指標がオブジェクトが最も直近に検出されたことを示す動き履歴のピクセルに対応するピクセルを、時間の指標をオブジェクトがより過去に検出されたことを示す動き履歴のピクセルに対応するピクセルよりも不透明度が大きくなるように表示するように、表示してもよい。例えば、動き履歴のピクセルに対応するピクセルを、ピクセルに関連する時間の指標に基づく不透明度で表示するように、オブジェクトの描写を表示してもよい。第２のピクセルより第１のピクセルでオブジェクトが直近に検出されたことを示す時間の指標に関連する第１のピクセルが、第２のピクセルの不透明度より大きな不透明度で見えるように、オブジェクトの描写を表示してもよい。
【００１１】
さらなる例では、アプリケーションに関連する表示画像にオブジェクトの描写の表示を、動き履歴に基づいてアルファチャネルを生成し、アルファチャネルに基づいて表示画像にオブジェクトの描写を表示して行ってもよい。効果画像を表示してもよい。効果画像は、アニメーション又はパーティクルシステムに基づくアニメ−ション効果画像でもよく、アニメーション効果画像は、水の波紋、プラズマ、火又は煙の何れか一つを表してもよい。オブジェクトのキー画像をまた表示してもよい。
【００１２】
さらに、動き履歴に基づいてアプリケーションによって、表示画像に描写された仮想オブジェクトに表示画像のオブジェクトの描写が接触したか否かを判断し、判断の結果に基づいてアプリケーションを制御してもよい。仮想オブジェクトは、ボタン、ボール又はパーティクルシステムの粒子の少なくとも一つであってもよい。仮想オブジェクトの速度を動き履歴に基づいて算出し、アプリケーションを得られた仮想オブジェクトの速度に基づいて制御してもよい。速度は、動き履歴に関連するオプティカルフローデータに基づいて仮想オブジェクトの動きの速度と方向を算出してもよく、アプリケーションは、得られた仮想オブジェクトの動きの速度と方向に基づいて制御してもよい。仮想オブジェクトは、パーティクルシステムのパーティクルでもよい。
【００１３】
また、第１の画像を含むオブジェクトの複数の画像は、受け取ってもよく、オブジェクトの動きは、複数の画像に基づいて判断してもよい。オブジェクトは、第１の画像と背景画像とを比較して検出してもよい。
【００１４】
本発明の他の一般的な実施例によると、ユーザの少なくとも一つの第１の画像と、ユーザの第２の画像を含む画像を受け取る。ユーザの第２の画像は、ユーザの第１の画像の後で撮像されており、第２の画像は第１の画像と比較される。第１の画像に対する第２の画図の比較に基づいて画像の動きを検出し、検出された画像の動きに基づいて第２の画像のユーザの位置を決定する。第２の画像のユーザの位置の決定に応じて、ユーザデータマップを生成する。ユーザデータマップは、第２の画像に含まれるピクセルに対応し、第２の画像のユーザの位置を示す。ユーザの前の動き履歴にアクセスする。前の動き履歴は、ユーザデータマップに含まれるピクセルの各々について、ピクセルに対応する位置においてユーザが検出されてからの時間の指標を示し、前の動き履歴は第２の画像の前に受け取ったユーザの画像に基づいて生成する。前の動き履歴は、前の動き履歴に含まれるピクセルの各々について、ピクセルに対応する位置でユーザが検出されてからの時間の指標をインクリメントして加齢する。加齢した動き履歴は、ユーザデータマップに基づいて、ユーザが検出された位置のユーザマップに含まれるピクセルの各々について、加齢した動き履歴の対応するピクセルを、ピクセルで直近にユーザの位置を検出したことを示す時間の指標に設定することによって更新する。ユーザの描写は、更新した動き履歴に基づくアプリケーションに関連する表示画像に、表示画像のユーザの描写に関連するピクセルの不透明度が、更新した動き履歴に含まれるピクセルに対応する位置でユーザが検出されてからの時間の指標に基づくように、表示する。
【００１５】
他の一般的な実施例によると、システムは、オブジェクトの少なくとも第１の画像を撮像するように構成されたカメラと、カメラからオブジェクトの第１の画像を受け取るように構成されたプロセッサとを含む。プロセッサはまた、第１の画像のオブジェクトを検出し、第１の画像のオブジェクトの検出に応じて、オブジェクトデータマップを生成するように構成されている。オブジェクトデータマップは、第１の画像のピクセルの各々について、ピクセルの各々でオブジェクトが検出されたか否かを示す。プロセッサはさらに、動き履歴を生成し、動き履歴に基づいてアプリケーションを制御するように構成されている。動き履歴は、オブジェクトデータマップに含まれるピクセルの各々について、ピクセルの各々でオブジェクトが検出されてからの時間の指標を示す。システムはまた、アプリケーションに関連する表示画像を描写するように構成されたディスプレイを含む、
【００１６】
他の一般的な実施例によると、コンピュータが読み取り可能な記憶媒体がコンピュータプログラムを組み込む。コンピュータプログラムは、オブジェクトの少なくとも第１の画像を受け取り、第１の画像のオブジェクトを検出する命令を含む。コンピュータプログラムはまた、第１の画像のオブジェクトの検出に基づいて、オブジェクトデータマップを生成する命令を含む。オブジェクトデータマップは、第１の画像のピクセルの各々について、ピクセルの各々でオブジェクトが検出されたか否かを示す、コンピュータプログラムはさらに、動き履歴を生成し、動き履歴に基づいてアプリケーションを制御する命令を含む。動き履歴は、オブジェクトデータマップに含まれるピクセルの各々について、ピクセルの各々でオブジェクトが検出されてからの時間の指標を示す。
【００１７】
他の一般的な実施例によると、システムは、オブジェクトの少なくとも第１の画像を受け取る手段と、第１の画像のオブジェクトを検出する手段とを含む。システムはまた、第１の画像のオブジェクトの検出に応じて、オブジェクトデータマップを生成する手段を含む。オブジェクトデータマップは、第１の画像のピクセルの各々について、ピクセルの各々でオブジェクトが検出されたか否かを示す。システムはさらに、動き履歴を生成する手段と、動き履歴に基づいてアプリケーションを制御する手段とを含む。動き履歴は、オブジェクトデータマップに含まれるピクセルの各々について、ピクセルの各々でオブジェクトが検出されてからの時間の指標を示す。
【００１８】
本書で説明する様々な概念及び実施例について理解を容易にするために簡単に概要を説明した。より完全な理解は、添付の図面とともに以下の詳細な説明を参照して得ることができる。その他の実施例を用いることも、変更を行うことも可能であることは明らかである。
【図面の簡単な説明】
【００１９】
【図１】動き履歴に基づいてアプリケーションを制御するように構成されたシステムの一例を示すブロック図である。
【図２】動き履歴に基づいてアプリケーションを制御する処理の一例を説明するフローチャートである。
【図３】画像の中のオブジェクトを検出する処理の一例を説明するフローチャートである。
【図４】画像の中のオブジェクトを検出する処理の一例を説明するフローチャートである。
【図５】画像の中のオブジェクトを検出する処理の一例を説明するフローチャートである。
【図６】動的背景モデルを生成する処理の一例を説明するフローチャートである。
【図７】画像の中のオブジェクトを検出する処理の一例を説明するフローチャートである。
【図８】動き履歴を生成する処理の一例を説明するフローチャートである。
【図９】動き履歴を生成する処理の一例を説明するフローチャートである。
【図１０】動き履歴を生成する処理の一例を説明するフローチャートである。
【図１１】動き履歴を生成する処理の一例を説明するフローチャートである。
【図１２】アプリケーションの仮想オブジェクトを操作する例を示す図である。
【図１３】アプリケーションの仮想オブジェクトを操作する例を示す図である。
【図１４】アプリケーションの仮想オブジェクトを操作する例を示す図である。
【図１５】アプリケーションの仮想オブジェクトを操作する例を示す図である。
【図１６】アプリケーションの仮想オブジェクトを操作する例を示す図である。
【図１７】アプリケーションの仮想オブジェクトを操作する例を示す図である。
【図１８】アプリケーションの仮想オブジェクトを操作する例を示す図である。
【図１９】アプリケーションの仮想オブジェクトを操作する例を示す図である。
【図２０】アプリケーションの仮想オブジェクトを操作する例を示す図である。
【図２１】アプリケーションの仮想オブジェクトを操作する例を示す図である。
【図２２】アプリケーションの仮想オブジェクトを操作する例を示す図である。
【図２３】マッピング処理の一例を示す図である。
【図２４】動き履歴に基づいてアプリケーションを制御するように構成されたインタラクティブシステムの一例を示す図である。
【図２５】動き履歴に基づいてアプリケーションを制御するように構成されたインタラクティブシステムの一例を示す図である。
【図２６】動き履歴に基づいてアプリケーションを制御するように構成されたインタラクティブシステムの一例を示す図である。
【図２７】動き履歴に基づいてアプリケーションを制御するように構成されたインタラクティブシステムの一例を示す図である。
【図２８】動き履歴に基づいてアプリケーションを制御するように構成されたインタラクティブシステムの一例を示す図である。
【図２９】動き履歴に基づいてアプリケーションを制御する処理の一例を説明するフローチャートである。
【図３０】その他の一般的な実施例による、代表的なシステムの外観を説明する図である。
【図３１】図３０に示す装置の内部構造を説明するブロック図である。
【発明を実施するための形態】
【００２０】
同様の参照番号は同様の構成要素を表している。
【００２１】
図１は、動き履歴に基づいてアプリケーションを制御するように構成された一例としてのシステム１００を示す。本システム１００は、カメラ１００と、表示装置１２０と、照明器１３０と、コンピューティング装置１４０を含む。
【００２２】
カメラ１１０は、画像を撮像する装置である。例えば、カメラ１１０は、デジタルカメラ、デジタルビデオカメラ、又はその他の種類の画像を撮像する装置であってもよい。カメラ１１０は、１以上のカメラを含んでもよい。カメラ１１０は、アプリケーションと相互に連携するオブジェクトの画像を撮像してもよい。例えば、カメラ１１０は、カメラ１１０の視野の中でアプリケーションと相互に連携する物理的な人物又はユーザの画像を撮像してもよい。
【００２３】
表示装置１２０は、画像を表示する。例えば、表示装置１２０は、モニタ、テレビ、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ装置、プロジェクタ画面を有するプロジェクタ、裸眼立体ディスプレイ、ブラウン管（ＣＲＴ）ディスプレイ、ＤＬＰ（ｄｉｇｉｔａｌ  ｌｉｇｈｔ  ｐｒｏｃｅｓｓｉｎｇ）ディスプレイ、又は画像表示を行うように構成されたその他の種類の表示装置であってもよい。表示装置１２０は、１以上の表示装置を含んでもよい。表示装置１２０は、アプリケーションと関連する画像を表示してもよい。例えば、表示装置１２０は、アプリケーションが生成する画像を表示してもよい。アプリケーションが生成する画像は、カメラ１１０が撮像した画像に基づいて、アプリケーションと相互に連携する物理的な人物又はユーザの表示（ｒｅｎｄｅｒｉｎｇ）を含んでもよい。
【００２４】
照明器１３０は、光源を提供する装置である。例えば、照明器１３０は、フラッシュ装置、白熱電球、蛍光電球、発光ダイオード（ＬＥＤ）、ハロゲン光源、ネオン光源、キセノン光源、赤外線光源、又は、カメラ１１０が撮像するオブジェクトを照明するために構成されたその他の種類の装置であってもよい。照明器１３０は、１以上の照明器を含んでもよい。照明器１３０は、カメラ１１０が撮像するオブジェクトの高品質の画像を取得できるように支援する光を生成するようにしてもよい。いくつかの実施例では、システム１００は、照明器１３０を含まなくてもよく、あるいは、照明器１３０は、個別の状況でのみ使用するようにしてもよい。例えば、照明器１３０は、夜間又は暗室でのみ使用するようにしてもよい。
【００２５】
コンピューティング装置１４０は、有線又は無線の経路でカメラ１１０、表示装置１２０、照明器１３０に電気的に接続されており、システム１００の動作を制御できるようになっている。いくつかの例では、コンピューティング装置１４０は、アプリケーションを実行するように構成されたプロセッサ又は制御回路を含んでもよい。これらの例では、コンピューティング装置１４０は、カメラ１１０が撮像した画像を受け取ると、該画像を処理して、画像の中のオブジェクト（例えば、ユーザ）の位置を検出するようになっている。画像の中の検出したオブジェクトの位置を追跡して、アプリケーションの実行を制御するために用いてもよい。例えば、コンピューティング装置１４０が実行するアプリケーションは、画像の中の追跡したオブジェクトの位置に基づくオブジェクトの描写、ユーザ入力コマンドの生成、又は、画像の中のオブジェクトの追跡した位置に基づく別の種類のユーザとのインタラクションを含んでもよい。
【００２６】
コンピューティング装置１４０は、又、カメラ１１０、表示装置１２０、照明器１３０の動作と設定を制御してもよい。コンピューティング装置１４０は、汎用コンピュータ（例えば、デスクトップパーソナルコンピュータ、ワークステーション、又はラップトップコンピュータ）、サーバ、ゲーム機器、コンソール、又は、プロセッサ、あるいは、命令を実行するように構成されたその他の制御回路を含むその他の種類の電子機器を含んでもよい。
【００２７】
図２は、動き履歴に基づいてアプリケーションを制御する一例として処理２００を説明するフローチャートである。簡便のため、処理２００の実行については、図１を参照して説明した個別の構成要素を参照して説明する。しかしながら、異なる構成要素を用いてシステムの構造を設計する場合、又は構成要素の間で機能の分散が異なる場合など、他の実施例にも同様の手法を適用することができる。
【００２８】
コンピューティング装置１４０は、少なくともオブジェクトの第１の画像を受け取る（２１０）。例えば、コンピューティング装置１４０は、カメラ１１０が撮像した１以上の画像を受け取る。この場合、カメラ１１０が撮像した１以上の画像は、アプリケーションと相互に連携（ｉｎｔｅｒａｃｔ）するオブジェクト（例えば、ユーザ又は、ユーザが操作するオブジェクト）の画像でもよい。アプリケーションは、コンピューティング装置１４０が実行するアプリケーションでもよく、アプリケーションは、表示装置１２０のディスプレイに表示する画像を生成してもよい。オブジェクト（例えば、ユーザ又は、ユーザが操作するオブジェクト）は、表示装置１２０に表示する画像に基づいてアプリケーションと相互に連携してもよい。
【００２９】
コンピューティング装置１４０は、第１の画像のオブジェクトを検出する（２２０）。例えば、コンピューティング装置１４０は、第１の画像を処理又は分析して、第１の画像に含まれるオブジェクトの位置を検出してもよい。この例では、コンピューティング装置１４０は、任意の種類の技術を用いてオブジェクトの複数の画像群、又は単一の画像の中のオブジェクトを検出してもよい。コンピューティング装置１４０は、時間的に連続して撮像された一連の画像からオブジェクトを検出して動きを追跡してもよい。
【００３０】
コンピューティング装置１４０は、様々な技術を用いて、第１の画像（２２０）のオブジェクトを検出することができる。図３〜７を参照して、コンピューティング装置１４０が第１の画像（２２０）のオブジェクトを検出するために用いることができる処理の例について説明する。
【００３１】
図３に、画像の中のオブジェクトを検出する一例として処理３００を示す。画像の中のオブジェクトを検出する処理３００は、処理２００を実行する際に、第１の画像（２２０）のオブジェクトを検出するために用いてもよい。
【００３２】
処理３００は、第１の画像群にアクセスする処理（３０１）と、第２の画像群にアクセスする処理（３０２）を含む。例えば、コンピューティング装置１４０は、カメラ１１０が撮像した１以上の画像を含む第１の画像群にアクセスし、カメラ１１０が撮像した１以上の画像を含む第２の画像群にアクセスする。第１の画像群と第２の画像群は、連続する処理済みのメラ画像群を意味してもよく、連続する未処理のカメラ画像群を意味してもよい。
【００３３】
いくつかの実施例では、第１の画像群と第２の画像群に含まれる画像は、マルチバッファリングされる。マルチバッファリングされる画像で、一つの画像が複数の画像バッファを含んでもよい。画像バッファは、循環状に満たされる。例えば、二つのバッファにマルチバッファリングされる画像では、画像は、第１の画像バッファに書き込まれ、次の画像は第２の画像バッファに書き込まれる。
【００３４】
次の画像（例えば、第３の画像）は、第１の画像バッファに書き込まれ、第１の画像バッファの内容と入れ替わる。次の画像（例えば、第４の画像）は、第２の画像バッファに書き込まれ、第２の画像バッファの内容と入れ替わる。この処理が、続く画像に対して、第１の画像バッファと第２の画像バッファが常時最新の画像と２番目に新しい画像を有するように、繰り返されていく。画像データはコピーする必要がないため、この処理は、システムの効率を向上することができる。カメラ１１０が複数のカメラを含み、複数の画像を生成する実施例では、第１の画像群は、複数のカメラからの画像を含み、第２の画像群は複数のカメラからの画像を含むようにしてもよい。
【００３５】
コンピューティング装置１４０は、第１の画像群と第２の画像群を比較する（３０３）。例えば、コンピューティング装置１４０は、第１の画像群と第２の画像群を比較して、画像群から撮像したオブジェクトの動きを検出するために用いる値を生成してもよい。この例では、コンピューティング装置は、第１の画像群に含まれる１以上の画像と、第２の画像群に含まれる１以上の画像との間の差分（例えば、差分の絶対値）を算出してもよい。算出した差分は、コンピューティング装置１４０が、第１の画像群と第２の画像群に含まれる画像全体からオブジェクトの動きを検出するために用いられる。
【００３６】
画像群は、カラー画像の場合のように複数のチャネルを含んでもよい。ピクセル値は、複数のチャネルのデータ値を含んでもよい。差分の計算値（例えば、差分の絶対値）を、チャネルの各々について算出して、その結果を組み合わせてもよい。画像群は複数のカメラからのデータを含んでもよい。ピクセル値は複数のカメラからのデータを含んでもよい。差分の計算値（例えば、差分の絶対値）を、カメラのピクセルデータの各々について算出して、その結果を組み合わせてもよい。画像群は、複数のカメラの露出レベルからのデータを含んでもよい。ピクセル値は、複数の露出レベルからのデータ値を含んでもよい。差分の計算値（例えば、差分の絶対値）を、露光レベルのピクセルデータの各々について算出して、その結果を組み合わせてもよい。
【００３７】
算出結果を組み合わせる処理は、様々な部分値の合計値を算出する処理を含んでもよい。あるいは、結果を組み合わせる処理は、様々な部分値の最大値を選択する処理を含んでもよい。結果を組み合わせるさらなる処理は、画像群の所定の部分値（例えば、チャネル、画像、又は露出）から生成した結果を選択する処理を含んでもよい。
【００３８】
コンピューティング装置１４０は、フィルタリング動作を用いて差分の結果を処理する（３０４）。フィルタリング動作は、平均化カーネル（ａｖｅｒａｇｉｎｇ  ｋｅｒｎｅｌ）であってもよい。一実施例のフィルタリング動作では、ピクセルの各々について、そのピクセルを中心として近傍にある全てのピクセルについて合計値を算出するようにしてもよい。画像のブレについて平均化カーネルを用いてもよい。この実施例では、動作は、以下の影響を有することができる。ピクセルの差分を、その近傍のピクセルによって強化又は低下させることができる。孤立したピクセルを、その近傍のピクセルによって強化又は低下させることができる。孤立して、かつ差分値の大きなピクセルを抑圧することができる。また、比較的小さな差分値を有するピクセルのクラスタを補強し、クラスタの形状を平滑化することができる。
【００３９】
コンピューティング装置１４０は、閾値動作によってフィルタリングした差分結果を処理する（３０５）。閾値動作は、フィルタリングした差分結果のピクセルを一つずつ閾値と比較する。ピクセルが閾値以上の値を有する場合、そのピクセルを「動きあり」として分類し、それ以外のピクセルは「動きなし」として分類する。
【００４０】
閾値動作を実行する際（３０５）、コンピューティング装置１４０は、閾値を、第１の画像群と第２の画像群に含まれる画像を撮像するために使用したカメラ１１０に対応するカメラ制御データに基づいて調整することができる。カメラ制御データは、カメラに、撮像したシーンに差違がない場合には、連続するカメラ画像にその違い（例えば、カメラ露出時間又はゲインレベルを調整した時など）を含ませることができる。閾値動作では、閾値を、撮像したシーンに差違がない場合には連続する画像の最大予測差分によって増加させることにより、瞬間的に調整することができる。これは、カメラを調整している際に動き検出によって誤って動きが検出されることを削減する効果がある。
【００４１】
コンピューティング装置１４０は、閾値動作を実行する際に得られたピクセルの分類を動きデータとして提供する（３０６）。動きデータは、アプリケーションを制御する際に使うことができる。例えば、動きデータがオブジェクト（例えば、ユーザ）の動きを表す実施例では、オブジェクト（例えば、ユーザ）の描写を、アプリケーションの一部として表示装置１２０に表示することができる。
【００４２】
図３を参照して説明した処理に加えて、コンピューティング装置１４０は、第１の画像からオブジェクトを検出するためにその他の技術を使用してもよい（２２０）。例えば、図４〜７を参照して説明する処理は、コンピューティング装置１４０が第１の画像からオブジェクトを検出する（２２０）ために用いることができる追加の処理を示す
【００４３】
画像の中からオブジェクトを検出するその他の実施例では、オプティカルフローを算出する。一般的に、オプティカルフローのアルゴリズムは、画像の中の動き（例えば、画像の中で位置が変化したオブジェクト）を識別し、画像の中で認識した動きの速度（例えば、方向／向き、及び大きさ）を表すベクトルを構築する。このように、オプティカルフローのアルゴリズムは、画像の中に動きがあるか否かを判定するだけでなく、画像の中の動きの方向と大きさも判定する。方向と大きさに加えて、実施例では、オプティカルフローが、位置毎の信頼度を通知するようにしてもよい。
【００４４】
図４に、画像の中のオブジェクトを検出するその他の例として処理４００を示す。画像の中のオブジェクトを検出する処理４００は、処理２００を実行する際に第１の画像の中のオブジェクトを検出する（２２０）ために用いてもよい。
【００４５】
処理４００は、第１の画像群にアクセスする処理（４０１）と第２の画像群にアクセスする処理（４０２）を含む。第１の画像群にアクセスする処理（４０１）と第２の画像群にアクセスする処理（４０２）は、図３を参照して説明した第１の画像群にアクセスする処理（３０１）と第２の画像群にアクセスする処理（３０２）と同様の手法によって行うことができる。第１の画像群と第２の画像群は、連続する処理済みのメラ画像群を意味してもよく、連続する未処理のカメラ画像群を意味してもよい。いくつかの実施例では、第１の画像群と第２の画像群に含まれる画像は、図３を参照して説明したようにマルチバッファリングされてもよい。
【００４６】
オプティカルフロー処理の一実施例では、コンピューティング装置１４０は、画像を基準ブロックに分割する（４０３）。例えば、コンピューティング装置１４０は、画像を１以上のピクセルのブロックに分割する。いくつかの実施例では、コンピューティング装置１４０は、アクセスした画像の各々をブロックに分割する。基準ブロックは、サイズが同一でもよく、あるいは、異なってもよい。例えば、基準ブロックは、基準ブロックに含まれる内容の一意性に応じて異なるサイズであってもよい。
【００４７】
基準ブロックの各々についてコンピューティング装置１４０は、例えば、最も類似しているブロックなど、他の画像において類似した外観を有するブロックを識別する（４０４）。ブロックの類似性は、ブロック内のピクセルにおいてピクセル値の差分の合計として算出してもよい。ここでピクセル値の差分とは、基準ブロックのピクセルのピクセル値と、類似ブロックの対応するピクセルとの差分である。差分は、類似ピクセルの値から基準ピクセルの値を引いた値の絶対値として算出することができる。最も類似しているブロックとして、ピクセル値の差分の合計が最小のブロックを選択することができる。
【００４８】
いくつかの実施例では、コンピューティング装置１４０は、画像の基準ブロックと、他の画像のブロックとを比較する。コンピューティング装置１４０は、最初に、画像の基準ブロックの位置から所定の距離の中の位置にある他の画像のブロックを比較することができる。一意的に合うもの見つからない場合、コンピューティング装置１４０は、動的に、ブロックのサイズを変更してもよい。
【００４９】
コンピューティング装置１４０は、類似ブロック毎の、対応する基準ブロックに対する相対位置に基づいて、動きの方向と大きさを示すベクトルを決定する（４０５）。動きベクトルは、基準画像を取得した時間と、他の画像を取得した時間との間で画像の中のオブジェクトが時間的に動いた方向と距離をベクトルが示すように、基準ブロックと最も類似してマッチするブロックとの間の位置の差分として算出することができる。さらに、コンピューティング装置は、信頼度を判定してもよい。ブロックの中の画像の外観の類似性を示す信頼の程度として、信頼度をピクセル差分の合計として算出することができる。
【００５０】
他の実施例では、オプティカルフロー算出を用いて、カメラ１１０によって撮像された画像の中のオブジェクトの動きを検出してもよい。画像群は、カラー画像の場合のように複数のチャネルを含んでもよい。ピクセル値は、複数のチャネルのデータ値を含んでもよい。差分の計算値（例えば、差分の絶対値）を、チャネルの各々について算出して、その結果を組み合わせてもよい。画像群は複数のカメラからのデータを含んでもよい。ピクセル値は複数のカメラからのデータを含んでもよい。差分の計算値（例えば、差分の絶対値）を、カメラのピクセルデータの各々について算出して、その結果を組み合わせてもよい。画像群は、複数のカメラの露出レベルからのデータを含んでもよい。ピクセル値は、複数の露出レベルからのデータ値を含んでもよい。差分の計算値（例えば、差分の絶対値）を、露光レベルのピクセルデータの各々について算出して、その結果を組み合わせてもよい。結果を組み合わせる処理は、様々な部分値の合計値を算出する処理を含んでもよい。あるいは、結果を組み合わせる処理は、様々な部分値の最大値を選択する処理を含んでもよい。結果を組み合わせるさらなる処理は、画像群の所定の部分値（例えば、チャネル、画像、又は露出）から生成した結果を選択する処理を含んでもよい。
【００５１】
コンピューティング装置１４０は、閾値に基づいて動きがあるかを判定する（４０６）。例えば、第１の閾値を、変位の大きさが第１の閾値以上の場合に、ブロックを動きありとして分類するように、動きの大きさに基づいて適用してもよい。また、第２の閾値を、変位の大きさが第１の閾値以上であり、ブロックのマッチングの品質が第２の閾値よりも類似している場合に、ブロックを動きありとして分類するように、ブロックの類似性に基づいて適用してもよい。
【００５２】
コンピューティング装置１４０は、ピクセルの動きの方向、大きさ、分類を動きデータとして提供する（４０７）。さらに、動きデータは、ユーザの動きを含み、アプリケーションの制御する際に用いてもよい。
【００５３】
図３及び４を参照して説明した処理に加えて、コンピューティング装置１４０は、第１の画像の中のオブジェクトを検出する（２２０）ために他の技術を用いてもよい。一例として、コンピューティング装置１４０が第１の画像の中のオブジェクトを検出する（２２０）ために用いることができる他の処理について図５を参照して説明する。
【００５４】
図５に、画像の中のオブジェクトを検出するためのその他の例として処理５００を示す。画像の中のオブジェクトを検出する処理５００は、処理２００を実行する際に第１の画像の中のオブジェクトを検出する（２２０）ために用いることができる。処理５００は、カメラ１１０が撮像した画像の背景のモデルを用いて、カメラ１１０が撮像した画像の中のオブジェクト（例えば、ユーザ）を検出する。
【００５５】
処理５００は、画像群にアクセスする処理（５０１）を含む。画像群にアクセスする処理（５０１）は、図３及び図４を参照して説明した、第１の画像群にアクセスする処理（３０１）及び第１の画像群にアクセスする処理（４０１）と同様の手法で実行することができる。
【００５６】
コンピューティング装置１４０は、背景モデルを生成する（５０２）。いくつかの実施例では、コンピューティング装置１４０は、カメラ１１０の視野の中に静止した、又は不変の背景要素のみが存在する時間に、カメラ１１０が撮像した画像に基づいて背景モデルを生成してもよい。これらの実施例では、画像の中のオブジェクトを画像と背景モデルとの比較に基づいて検出できるように背景モデルを構成することができる。いくつかの例では、背景モデルは、不動であり、動き履歴に基づいてアプリケーションを制御するために撮像する画像より前に撮像した画像に基づいて生成する。他の例では、背景モデルは、動的であり、動き履歴に基づいてアプリケーションを制御するために撮像する画像より前、及び／又は同時に撮像した画像に基づいて生成する。動的背景モデルを生成する処理の一例について、図６を参照して説明する。
【００５７】
コンピューティング装置１４０は、アクセスした画像群を背景モデルと比較して、画像の差分を識別する（５０３）。差分はオブジェクト又はユーザの存在を示す。差分動作は、ピクセルの各々についてピクセル値の差分の絶対値を算出することができる。
【００５８】
いくつかの実施例では、画像群は、カラー画像の場合のように複数のチャネルを含んでもよい。ピクセル値は、複数のチャネルのデータ値を含んでもよい。差分の計算値（例えば、差分の絶対値）を、チャネルの各々について算出して、その結果を組み合わせてもよい。画像群は複数のカメラからのデータを含んでもよい。ピクセル値は複数のカメラからのデータを含んでもよい。差分の計算値（例えば、差分の絶対値）を、カメラのピクセルデータの各々について算出して、その結果を組み合わせてもよい。画像群は、複数のカメラの露出レベルからのデータを含んでもよい。ピクセル値は、複数の露出レベルからのデータ値を含んでもよい。差分の計算値（例えば、差分の絶対値）を、露光レベルのピクセルデータの各々について算出して、その結果を組み合わせてもよい。
【００５９】
算出結果を組み合わせる処理は、様々な部分値の合計値を算出する処理を含んでもよい。あるいは、結果を組み合わせる処理は、様々な部分値の最大値を選択する処理を含んでもよい。結果を組み合わせるさらなる処理は、画像群の所定の部分値（例えば、チャネル、画像、又は露出）から生成した結果を選択する処理を含んでもよい。
【００６０】
コンピューティング装置１４０は、フィルタリング動作を用いて差分の結果を処理することができる（５０４）。フィルタリング動作（５０４）は、図３を参照して説明したフィルタリング動作（３０４）と同様の手法で実行してもよい。
【００６１】
コンピューティング装置１４０は、閾値動作によってフィルタリングした差分結果を処理する（５０５）。閾値動作（５０５）は、図３を参照して説明した閾値動作（３０５）と同様の手法で実行してもよい。
【００６２】
コンピューティング装置１４０は、閾値動作を実行する際に得られたピクセルの分類をオブジェクト（例えば、ユーザ）データとして提供する（５０６）。オブジェクトデータは、アプリケーションを制御する際に使うことができる。例えば、オブジェクトデータがオブジェクト（例えば、ユーザ）を表す実施例では、オブジェクト（例えば、ユーザ）の描写を、アプリケーションの一部として表示装置１２０に表示することができる。
【００６３】
図６に、動的背景モデルを生成する一例として処理６００を示す。動的背景モデルを生成する処理６００は、処理５００を実行する際に背景モデルを生成する（５０２）ために用いることができる。処理６００により生成される背景モデルは動的で、シーンで変化するように自動的に更新することができる。
【００６４】
コンピューティング装置１４０は画像群にアクセスする（６０２）。アクセスした画像群は、図５を参照して説明した、ステップ５０１でアクセスした画像群であってもよい。
【００６５】
コンピューティング装置１４０は、サンプリング処理を用いてアクセスした画像群にサンプリングを行う（６０３）。サンプルは、背景に加えてユーザを含むことができる。いくつかの実施例では、アクセスした画像群の中に含まれる画像のピクセルの各々について一つのピクセル値をサンプリングする。他の実施例では、アクセスした画像群の中に含まれる画像のピクセルの各々についてある範囲の値をサンプリングする。この値の範囲は、そのピクセルについて短時間に観察した値の範囲を表すことができる。
【００６６】
この範囲の影響を背景モデルに含ませることによって、信号ノイズをモデル化することができる。複数のフレームのデータをサンプルに寄与させることによって、この範囲を観察することが可能となるが、フレームをサンプリングしている間にユーザに動きがある場合、ユーザによって遮られうる背景部分も増える。使用するフレームの最適な数は、予測されるユーザの動きに依存する。最適な数のフレームを使用できるとしても、個別の構成に応じて、フレームの最適な数とは異なる数のフレームを使用してもよい。例えば、フレームの最適な数より少ない数のフレームを用いて、ユーザ検出に係わる処理能力を低下させてもよい。一実施例では、ユーザの動きによって背景の必要以上の部分を遮られることなく、範囲の大部分を観察するためには、１０個のフレームで十分であるため、１０個のフレームをサンプリングする。
【００６７】
画像群は、カラー画像の場合のように複数のチャネルを含んでもよい。サンプリングしたピクセル値は、複数のチャネルのデータ値を含んでもよい。画像群は複数のカメラからのデータを含んでもよい。サンプリングしたピクセル値は複数のカメラからのデータを含んでもよい。画像群は、複数のカメラの露出レベルからのデータを含んでもよい。ピクセル値は、複数の露出レベルからのデータ値を含んでもよい。
【００６８】
コンピューティング装置１４０は、サンプリング処理（６０３）によって得たサンプルを、複数個（例えば、ｎ個）のサンプルを保管するための保管場所を有するバッファ６０４に追加する。ここで、新しいサンプルが追加される都度、履歴の最も古いサンプルは置き換えられる。したがって、履歴はピクセルの各々について、ｎ個のサンプリングされた値を有する。サンプル値は、画像の複数のカラーチャネル又は複数のカメラからのデータを表す複数のデータ値を有してもよい。さらにサンプル値は、サンプリング処理（６０３）が範囲を生成する場合、範囲の表示を含んでもよい。バッファで示される時間期間であるｄは、新しいサンプルが取得され、履歴に追加される速度（ｒａｔｅ）であるｒに依存するため、式（１）のように表される。
【数１】
2010515170.tif 000003
【００６９】
この動的背景モデルの実施例でコンピューティング装置１４０は、ピクセルの各々について、そのピクセルが表す場所において背景を表すと判定した値を選択する選択処理（６０５）を実行する。背景を表す値を選択する処理の一つは、ピクセルの各々についてｎ個のサンプルの中央値を選択することである。どのピクセルでも、バッファにおけるサンプリングしたｎ個の値の数は、ユーザを表すことができる。期間ｄは、時間期間ｄの中で蓄積されたｄ／２以上で背景の何れのピクセルもユーザによって遮蔽されることのないように選択することができる。このため、どのピクセルについても、サンプリングされた値の大部分は背景を表すこととなるので、サンプリングした値の中央値が背景を表す値となる。
【００７０】
バッファ６０４の複数のサンプルを、生成したサンプルの第１群に初期化することができる。あるいは、バッファ６０４の複数のサンプルを、所定のデータに初期化してもよい。所定のデータは、シーンにユーザが不在であることが判明した時間に取得したサンプルを表すことができる。
【００７１】
コンピューティング装置１４０は、動的に生成した背景モデルを提供する（６０６）。例えば、動的に生成した背景モデルを処理５００において用いて、画像群の中のオブジェクトを検出してもよい。
【００７２】
図３〜６を参照して説明した処理に加えて、コンピューティング装置１４０は、第１の画像の中のオブジェクトを検出する（２２０）ためにその他の技術を用いてもよい。コンピューティング装置１４０が、第１の画像の中のオブジェクトを検出する（２２０）ために実行することができるその他の処理の例について、図７を参照して説明する。
【００７３】
図７に、画像の中のオブジェクトを検出するその他の例として処理７００を示す。画像の中のオブジェクトを検出する処理７００は、処理２００を実行する際に、第１の画像（２２０）のオブジェクトを検出するために用いてもよい。
【００７４】
コンピューティング装置１４０は、画像群にアクセスする（７０１）。画像群にアクセスする処理（７０１）は、図５を参照して説明した、画像群にアクセスする処理（５０１）と同様の手法で実行することができる。
【００７５】
コンピューティング装置１４０は、閾値動作を用いてアクセスした画像群に含まれる画像を処理する（７０２）。例えば、閾値動作は、画像のピクセルを一つずつ閾値と比較する。ピクセルが閾値以上の値を有する場合、そのピクセルを「動きあり」として分類し、それ以外のピクセルは「動きなし」として分類する。
【００７６】
コンピューティング装置１４０は、閾値動作に基づいてオブジェクトデータ（例えば、ユーザデータ）を生成する（７０３）。コンピューティング装置は、ピクセルの分類をオブジェクトデータとして提供する。
【００７７】
いくつかの実施例では、コンピューティング装置１４０は、カメラ制御データをカメラ１１０に提供して、カメラが画像を撮像する際に用いるパラメータを制御する。コンピューティング装置１４０はカメラ１１０のパラメータを制御して、カメラが撮像する画像の中のオブジェクト又はユーザを検出する性能を向上させることができる。例えば、カメラ制御データは、露出時間、ゲイン、アイリスを含むカメラのパラメータに影響を与える。いくつかの実施例では、コンピューティング装置１４０は、カメラ画像群の中の平均ピクセル値、又はその一部を算出する。平均ピクセル強度が閾値を下回る場合、コンピューティング装置１４０は、カメラにその感度（例えば画像輝度）を向上させるカメラ制御データを生成する。平均ピクセル強度が閾値を上回る場合、コンピューティング装置１４０は、カメラにその感度（例えば画像輝度）を低下させるカメラ制御データを生成する。
【００７８】
生じる感度（例えば輝度）の変化が、画像群の中のオブジェクトを検出するために適切な動作に支障のない程度に十分小さくなるように、ファインステップでカメラを調整してもよい。画像群の中のオブジェクトを検出するための処理３００を行う実施例では、輝度の有効な変化が、閾値処理（３０５）の閾値より小さくなるように変化幅（ｓｔｅｐ  ｓｉｚｅ）を細かくするとよい。同様に、画像の中のオブジェクトを検出するための他の処理（例えば、処理４００、５００又は７００）を行う実施例では、輝度の有効な変化が、閾値処理の閾値（４０６、５０５又は７０２で用いた閾値）より小さくなるように変化幅を細かくするとよい。代替の実施例では、露出時間、ゲイン及びアイリスを含むカメラのパラメータは、カメラ１１０に内蔵された自動露出処理で決定するようにしてもよい。この場合、カメラ制御データはカメラ１１０によって生成してもよい。
【００７９】
カメラ制御データを、画像の中のオブジェクトを検出する処理で用いてもよい。例えば、処理３００を行う実施例では、閾値がカメラ制御データによって生じるピクセル値の差分より大きくなるように閾値処理（３０５）の閾値を一時的に増加させてもよい。同様に、その他の処理（例えば、処理４００、５００又は７００）を行う実施例では、閾値がカメラ制御データによって生じるピクセル値の差分より大きくなるように閾値処理（４０６、５０５又は７０２）の閾値を一時的に増加させてもよい。
【００８０】
カメラ画像群の信号対ノイズ比は、ゲインレベルによって影響されることがある。処理３００を行う実施例では、閾値がカメラのゲインレベルで予測されるノイズレベルより大きくなるように閾値処理（３０５）の閾値を自動的に調整してもよい。同様に、その他の処理（例えば、処理４００、５００又は７００）を行う実施例では、閾値がカメラのゲインレベルで予測されるノイズレベルより大きくなるように閾値処理（例えば、４０６、５０５又は７０２）の閾値を自動的に調整してもよい。
【００８１】
周囲光のレベルを検出するためにカメラ制御データを用いてもよい。いくつかの実施例では、コンピューティング装置１４０又はカメラ１１０は、カメラ露出時間（例えば、カメラ制御データにより示される）を閾値時間と比較し、カメラゲインレベル（例えば、カメラ制御データにより示される）を閾値ゲインレベルと比較する。露出時間が閾値時間より短い、又はゲインが閾値ゲインレベルより低い場合は、昼光（ｄａｙｌｉｇｈｔ）処理モードを開始するようにしてもよい。カメラ制御データが、カメラが閾値時間より長い露出時間、又は閾値レベルより高いゲインを用いていることを示す場合は、夜間処理モードを開始するようにしてもよい。カメラ制御データはさらに、照明器１３０の動作を制御する照明器１３０制御データを含んでもよい。
【００８２】
日光に照らされたシーンは、コントラストがとても大きくなることがある。このような条件で、いくつかのビデオカメラは、画像の中のオブジェクト（例えば、ユーザ）を検出するための十分なコントラストを影の領域で検出できなくなることがある。いくつかの実施例では、カメラ１１０は、高ダイナクックレンジカメラを含む。高ダイナミックレンジカメラは、高いダイナクックレンジを有するため、画像の中のオブジェクトを影の領域と日光に照らされた領域の両方から同時に検出するために必要なコントラストを提供することができる。高ダイナミックレンジカメラは、他のカメラと比較して高額となり、明るい日光の動作にはダイナミックレンジが不十分な場合がある。カメラ１１０は、その他の技術を用いて各種カメラのダイナミックレンジを拡張してもよい。
【００８３】
いくつかの実施例では、カメラのダイナミックレンジを拡張するために、カメラを制御して２つ以上の露出時間を連続して高速に入れ換える。これらの実施例では、第１のカメラ画像は第１の露出期間で撮像され、第２のカメラ画像は第２の露出期間で撮像される。第１のカメラ画像でシーンの日光に照らされた部分が高いコントラスで見えるように第１の露出期間を短くする。第１のカメラ画像ではシーンの影の部分がとても暗く見える。第２のカメラ画像でシーンの影の部分が高いコントラスで見えるように第２の露出期間を長くする。第２のカメラ画像ではシーンの日光で照らされた部分が純白に見える。
【００８４】
これらの実施例では、カメラ画像群と処理済みカメラ画像群は、第１の露出時間で撮像された第１のカメラ画像と、第２の露出時間で撮像された第２のカメラ画像を含む。画像の中のオブジェクトを検出する処理（２２０）は、画像群の第１の画像と第２の画像の両方を用いることができる。アプリケーション制御処理及びキーイング（ｋｅｙｉｎｇ）処理などのその他の処理は第１の画像のみを用いてもよい。
【００８５】
カメラのダイナミックレンジを拡張する他の実施例では、カメラ１１０は２台以上のカメラを有してもよい。これらの実施例では、第１のカメラ画像は第１のカメラによって撮像し、第２のカメラ画像は第２のカメラによって撮像する。第１のカメラは、短い露出期間を用いる、あるいは、第１のカメラ画像でシーンの日光に照らされた部分が高いコントラストで見えるようにレンズフィルタなどの他の手段を用いる。第１のカメラ画像のシーンの影の部分はとても暗く見えることがある。第２のカメラは、第１のカメラより長い露出期間を用いる、あるいは、第２のカメラ画像でシーンの影の部分が高いコントラストで見えるようにゲインレベルを高くするなどの他の手段を用いる。第２のカメラ画像のシーンの日光に照らされた部分は純白に見えることがある。これらの実施例で、カメラ画像群と処理済みカメラ画像群は、第１のカメラで撮像された第１のカメラ画像と、第２のカメラで撮像された第２のカメラ画像を含む。画像の中のオブジェクトを検出する処理（２２０）は、画像群の第１の画像と第２の画像の両方を用いることができる。アプリケーション制御処理及びキーイング（ｋｅｙｉｎｇ）処理などのその他の処理は第１の画像のみを用いてもよい。
【００８６】
カメラのダイナミックレンジを拡張するさらなる実施例では、固有のゲインレベルをセンサ要素群に適用することができるカメラを含んでもよい。これは、固有のゲインレベルをセンサ要素の赤色の群、緑色の群、青色の群に適用することができる多くのカラーカメラを含んでもよい。センサ要素の第１群のゲインレベルを低いレベルに設定し、カメラの露出をシーンの日光に照らされ部分をその群のデータで高いコントラスに見えるようにしてもよい。青色要素は他の要素と比較して感度が低い可能性があるため、カラーカメラは、例えば、第１群を青色のセンサ要素の群としてもよい。センサ要素の第２群のゲインレベルをより高いレベルに設定し、第２のカメラ画像のシーンの影の部分を高いコントラストに見えるようにしてもよい。緑色要素は感度がとても高い可能性があるため、カラーカメラは、例えば、第２群を緑色のセンサ要素の群としてもよい。センサ要素の追加の群のゲインレベルを中間の感度を取得するように設定してもよい。カラーカメラでは、レンズフィルタが緑色の光を抑圧する（しかし完全には遮断しない）ようにカラーレンズフィルタを取り付けて、センサ要素の第１群と第２群の間の感度の差を一層広げるようにしてもよい。これらの実施例では、カメラ画像群と処理済みカメラ画像群は、複数のチャネルのデータを含んでもよい。画像の中のオブジェクトを検出する処理（２２０）は、画像データの複数のチャネルを用いることができる。これらの実施例では、画像の外観を薄く着色されて見えるようにすることができる。第２のカメラを用いて、見栄えの良い画像を別に得るようにしてもよい。アプリケーション制御処理及びキーイング（ｋｅｙｉｎｇ）処理などのその他の処理は見栄えの良い画像を用いてもよい。
【００８７】
室内や夜間に撮影する場合などの薄暗いシーンでは、輝度がとても低いことがある。これらの条件では、照明器１３０を用いてもよい。照明器１３０は、カメラ１１０が撮像する画像が見栄えが良くなり、ユーザに表示できるように可視光を照射することができる。あるいは、照明器１３０は、カメラが検出することができる赤外線光を照射してもよい。赤外線の波長は、多くのカメラが検知することはできるが、ユーザが検知できない、８５０ｎｍでもよい。赤外線照射を用いる実施例では、グレースケールカメラを使用してもよい。カラーカメラなどの第２のカメラを用いて、第２の画像を取得し、アプリケーション制御処理及びキーイング（ｋｅｙｉｎｇ）処理などのその他の処理は第２の画像を用いてもよい。
【００８８】
いくつかの実施例では、照明器１３０がフレームを入れ換えている間に発光するように、照明器１３０をカメラ１１０と同期させてもよい。カメラ１１０は、照明器１３０により照明された第１の画像と、照明器１３０により照明されていない第２の画像を撮像する。撮像処理では、第２の画像のピクセル値を第１の画像の対応するピクセル値から引いてもよい。こうして得られた画像を処理済みカメラ画像群に含めることができる。この処理は、周囲光により照明された画像の部分を効果的に削除して、照明器によって照明された画像の部分を分離する。
【００８９】
照明器１３０は、表示装置１２０の近傍に配置してもよい。撮像するオブジェクトから照明器１３０からの距離が増加する程、照射される光の強度は減少する。いくつかの実施例では、背景にある人々又はオブジェクトに投じられる照射光の量は、ユーザに投じられる照射光の量よりも大幅に小さい。これらの実施例では、例えば、図７に示す画像の中のオブジェクト（例えば、ユーザ）を検出する処理７００は、十分にユーザを検出することができる。閾値処理（７０２）で用いる閾値は、背景の人々又はオブジェクトの予測ピクセル値より大きい。照明器１３０は、背景の人々又はオブジェクトより大きいユーザを照明するため、照明を強くした結果、閾値より大きなピクセルが何れもユーザと見なされるように閾値を設定してもよい。
【００９０】
照射される光が、背景の人々又はオブジェクトを照明することなく、ユーザを照明するように、上方に位置してもよい。この実施例では、例えば、図７に示す画像の中のオブジェクト（例えば、ユーザ）を検出する処理７００は、十分にユーザを検出することができる。閾値処理（７０２）で用いる閾値は、照明されない背景の人々及びオブジェクトの予測ピクセル値より大きい値となるように設定してもよい。    
【００９１】
図２を再び参照すると、コンピューティング装置１４０は、第１の画像の中のオブジェクトの検出に基づいてオブジェクトデータマップを生成する（２３０）。例えば、コンピューティング装置１４０は画像を複数の小部分（例えば、ピクセル）に分割し、画像の小部分の各々についてオブジェクト（例えばユーザ）が画像のその小部分から検出されたか否かを示す指標を生成してもよい。この例では、オブジェクトデータマップは、画像に含まれるピクセルの各々について関連する情報を含むことができる。例えば、オブジェクトデータマップは、オブジェクトが画像の中でピクセルの各々について検出されたか否かを示す情報を含むことができる。コンピューティング装置１４０は、図３〜５及び図７を参照して説明した処理３００、４００、５００、及び／又は７００により生成される動きデータ及び／又はオブジェクトデータ（例えば、ユーザデータ）に基づいてオブジェクトデータマップを生成することができる。
【００９２】
コンピューティング装置１４０は、オブジェクトデータマップに含まれる画像の小部分の各々についてオブジェクトが検出されてからの時間を示す動き履歴を生成する（２４０）。例えば、コンピューティング装置１４０は、オブジェクトデータマップに含まれる複数の小部分を分析して、オブジェクトデータマップの小部分の各々について、画像のその小部分でオブジェクト（例えばユーザ）が検出されてからの時間を示す指標を更新してもよい。この例では、コンピューティング装置１４０は、オブジェクトがオブジェクトデータマップの対応する小部分で検出されたか否かに基づいて動き履歴に含まれる情報を更新することができる。例えば、オブジェクトが検出されたオブジェクトデータマップの全ての小部分について最新の検出処理でオブジェクトが検出されたことを示すように動き履歴を更新することができる。オブジェクトが検出されなかったオブジェクトデータマップの全ての小部分について、コンピューティング装置１４０は、対応する小部分でオブジェクトが検出されてからの時間の量を増加又は維持することができる。
【００９３】
いくつかの実施例では、オブジェクトが検出されてからの時間に最大値を設け、その最大値を超えた時間については、その小部分に対する動き履歴の更新をしないようにしてもよい。動き履歴は、画像に含まれるピクセルの各々について関連する情報を含んでもよい。例えば、動き履歴は、画像のピクセルの各々についてオブジェクト（例えばユーザ）が検出されてからの時間を示す情報を含んでもよい。動き履歴は、オブジェクトデータマップに含まれるピクセルの各々についてオブジェクト（例えばユーザ）が検出されてからの時間を示す指標を含むピクセルマップとして保持してもよい。オブジェクト（例えばユーザ）が検出されてからの時間を示す指標は、オブジェクトが最後に検出されてからのフレームカウント（ｆｒａｍｅ  ｃｏｕｎｔ）、ユーザが最後に検出された時間を示す時間値、又はユーザが最後に検出されてからの時間を示す時間値を含んでもよい。
【００９４】
図８に、動き履歴を生成する一例として処理８００を示す。動き履歴を生成する処理８００は、処理２００を実行する際に動き履歴を生成する（２４０）ために用いてもよい。いくつかの実施例では、生成した動き履歴は、ピクセルの各々について、その位置でオブジェクト（例えばユーザ）を検出されてからのフレームの数の表現を含む。
【００９５】
コンピューティング装置１４０は、前回算出した動き履歴を加齢して（８０２）、加齢した動き履歴を生成する（８０３）。例えば、コンピューティング装置１４０は、前回算出した動き履歴に含まれるピクセルの各々について関連するフレームカウントをインクリメントして、加齢した動き履歴を生成する。ここで、各ピクセルのフレームカウントは、位置がオブジェクト又はユーザで占有されていた直近の時間がさらに１フレーム前であることを示す。
【００９６】
コンピューティング装置１４０は、オブジェクトデータマップ（例えばユーザデータ）に含まれるデータを加齢した動き履歴に追加する（８０４）。例えば、オブジェクト（例えばユーザ）の一部として分類されたオブジェクトデータマップ（例えばユーザデータ）のピクセルについて、動き履歴の対応するピクセルを、そのピクセルが現在オブジェクト（例えばユーザ）によって占有されていることを示すフレームカウントを有するように設定する。この例では、コンピューティング装置１４０は、オブジェクト（例えばユーザ）によって現在占有されていると判定されるピクセルをゼロの値として設定し、オブジェクト（例えばユーザ）によって占有されていないと判定されるピクセルについては加齢したフレームカウントを維持する。この結果は最新の動き履歴として生成され、前回算出した動き履歴を上書きする。
【００９７】
図９に、動き履歴を生成する処理の一例として処理９００を示す。動き履歴を生成する処理９００は、処理２００を実行する際に動き履歴を生成する（２４０）ために用いてもよい。いくつかの実施例では、生成した動き履歴は、ピクセルの各々についてオブジェクト（例えばユーザ）がその位置で検出されてからのフレームの数の表現を含む。
【００９８】
コンピューティング装置１４０は、前回算出した中間動き履歴にアクセスし（９０５）、前回算出した中間動き履歴を加齢して（９０２）、加齢した動き履歴を生成する（９０３）。例えば、コンピューティング装置１４０は、前回算出した中間動き履歴に含まれるピクセルの各々について関連するフレームカウントをインクリメントして、加齢した動き履歴を生成する。ここで、各ピクセルのフレームカウントは、位置がオブジェクト又はユーザで占有されていた直近の時間がさらに１フレーム前であることを示す。
【００９９】
コンピューティング装置１４０は、オブジェクトデータマップ（例えばユーザデータ）に含まれるデータを加齢した動き履歴に追加する（９０４）。例えば、オブジェクト（例えばユーザ）の一部として分類されたオブジェクトデータマップ（例えばユーザデータ）のピクセルについて、動き履歴の対応するピクセルを、そのピクセルが現在オブジェクト（例えばユーザ）によって占有されていることを示すフレームカウントを有するように設定する。この例では、コンピューティング装置１４０は、オブジェクト（例えばユーザ）によって現在占有されていると判定されるピクセルをゼロの値として設定し、オブジェクト（例えばユーザ）によって占有されていないと判定されるピクセルについては加齢したフレームカウントを維持する。この結果は最新の中間動き履歴として生成され、前回算出した中間動き履歴を上書きする。
【０１００】
コンピューティング装置１４０は、最新の中間動き履歴をフィルタリングして動き履歴を生成する（９０６）。フィルタ処理（９０６）は、平均化カーネルを含んでもよい。この例では、ピクセルの各々について、そのピクセルを中心とする近傍の中にある全てのピクセルについて合計値を算出する。画像のブレについては一般的に平均化カーネルを用いる。この例では、全体的な形状をより滑らかにして、端部をよりソフトに見えるようにして、ステップ（ｓｔｅｐ）を見えにくくする。
【０１０１】
図１０に、動き履歴を生成する一例として処理１０００を示す。動き履歴を生成する処理１０００は、処理２００を実行する際に動き履歴を生成する（２４０）ために用いてもよい。いくつかの実施例では、生成した動き履歴は、ピクセルの各々について、その位置でオブジェクト（例えばユーザ）を検出された時間の表現を含む。
【０１０２】
コンピューティング装置１４０は、オブジェクトデータマップ（例えばユーザデータ）に含まれるデータを前回の動き履歴に追加する（１０１２）。例えば、オブジェクト（例えばユーザ）の一部として分類されたオブジェクトデータマップ（例えばユーザデータ）のピクセルについて、動き履歴の対応するピクセルを、現在の時間の表示を有するように設定する。オブジェクト（例えばユーザ）の一部として分類されなかったオブジェクトデータマップ（例えばユーザデータ）のピクセルに対応する前回の動き履歴のピクセルについて、時間データは、その位置でオブジェクト（例えばユーザ）が検出された最新の時間を反映するように維持される。この結果は最新の動き履歴として生成される。
【０１０３】
図１１に、動き履歴を生成する一例として処理１１００を示す。動き履歴を生成する処理１１００は、処理２００を実行する際に動き履歴を生成する（２４０）ために用いてもよい。いくつかの実施例では、生成した動き履歴は、ピクセルの各々について、その位置でオブジェクト（例えばユーザ）を検出した時間の表現を含む。
【０１０４】
コンピューティング装置１４０は、前回算出した中間動き履歴にアクセスし（１１０５）、オブジェクトデータマップ（例えばユーザデータ）に含まれるデータを前回算出した中間動き履歴に追加する（１１１２）。例えば、オブジェクト（例えばユーザ）の一部として分類されたオブジェクトデータマップ（例えばユーザデータ）のピクセルについて、前回算出された中間動き履歴の対応するピクセルを、最新の時間の表示を有するように設定する。オブジェクト（例えばユーザ）の一部として分類されなかったオブジェクトデータマップ（例えばユーザデータ）のピクセルに対応する前回算出した中間動き履歴のピクセルについて、時間データは、その位置でオブジェクト（例えばユーザ）が検出された最新の時間を反映するように維持される。この結果は最新の中間動き履歴として生成される。
【０１０５】
コンピューティング装置１４０は、最新の中間動き履歴をフィルタリングして動き履歴を生成する（１１０６）。フィルタ処理（１１０６）は、平均化カーネルを含んでもよい。この例では、ピクセルの各々について、そのピクセルを中心とする近傍の中にある全てのピクセルについて合計値を算出する。画像のブレについては一般的に平均化カーネルを用いる。この例では、全体的な形状をより滑らかにして、端部をよりソフトに見えるようにして、ステップ（ｓｔｅｐ）を見えにくくする。
【０１０６】
図２を再び参照すると、コンピューティング装置１４０は、動き履歴に基づいてアプリケーションを制御する（２５０）。例えば、コンピューティング装置１４０は、アプリケーションを制御して、アプリケーションに関連する表示画面にオブジェクト（例えばユーザ）を描写する。この例では、オブジェクトの描写は、アプリケーションと相互に連携するユーザの描写であってもよい。ユーザは、表示装置１２０に、アプリケーションによって表示される表示画面に基づいて物理的に相互に連携することができる。
【０１０７】
いくつかの実施例では、オブジェクト（例えばユーザ）の描写は、アプリケーションの表示画像のオブジェクト（例えばユーザ）の描写として処理済み又は未処理のカメラ画像の描写を含む。オブジェクト（例えばユーザ）の描写はまた、アプリケーションの表示画像にオブジェクト（例えばユーザ）の描写としてキー画像（ｋｅｙｅｄ  ｉｍａｇｅ）の描写を含む。オブジェクト（例えばユーザ）の描写はさらに、アプリケーションの表示画像にオブジェクト（例えばユーザ）の描写として効果画像の描写を含む。
【０１０８】
オブジェクト（例えばユーザ）の描写は、描写がオブジェクト（例えばユーザ）の過去の動きに対応する特徴を含むなど、動き履歴に基づいてもよい。例えば、オブジェクトがユーザである実施例では、表示画像におけるユーザの描写は、ユーザの運動のトレーリング（ｔｒａｉｌｉｎｇ）効果を含んでもよい。この例では、ユーザが動く（例えば、腕又は脚）場合、ユーザの描写は、ユーザの運動（ユーザの腕又は脚の運動など）を示すトレーリング効果を含むことができる。例えば、ユーザの現在の位置は、完全レベルの不透明さで表示し、ユーザの過去の位置は、時間とともに次第に消えていくトレーリング効果でユーザの運動が表示されるように不透明さのレベルを減少させて表示してもよい。描写は、ユーザの実際の画像であってもよく、ユーザに対応するアニメ画像（例えば、ゲームをプレイするユーザに対応するゲームアプリケーションのキャラクタなど）に基づいてもよい。トレーリング効果は、ユーザの描写を見栄え良く表示することができる。
【０１０９】
他の実施例では、パーティクル（ｐａｒｔｉｃｌｅ）システムでユーザの過去の動きの特徴を有するユーザの描写を表示してもよい。これらの実施例では、ユーザに関連する動き履歴をパーティクルシステムに入力し、パーティクルシステムが、動き履歴に基づいて表示することができる。例えば、流体シミュレーションのアプリケーションでは、流体シミュレーションアプリケーションがユーザの描写を水の波紋として表示することができる。この例では、ユーザの過去の運動に対応する水の波紋よりもユーザのより最近の運動に対応する水の波紋を大きくしてもよい。
【０１１０】
いくつかの実施例では、コンピューティング装置１４０は、動き履歴情報をアプリケーションにアルファチャネルのアルファ値として提供してもよい。アルファチャネルの情報は、アプリケーションが直接利用してユーザの動き履歴に基づくユーザの履歴を含む表示画像を表示することができる。
【０１１１】
いくつかの実施例では、動き履歴に基づいてアプリケーションを制御する処理は、動き履歴に基づいてユーザ入力コマンドを判定する処理を含む。例えば、コンピューティング装置１４０は、動き履歴に基づくアプリケーションの表示画像でユーザが仮想オブジェクトをタッチしたか否かを判定してもよい。この例では、コンピューティング装置１４０は、ユーザが仮想ボール、仮想キャラクタ、又は動き履歴に基づく入力制御に接触したと判定するようにしてもよい。例えば、動き履歴によって得られる、追跡しているユーザの動きが、アプリケーションによって描写される仮想オブジェクトを横切る場合、コンピューティング装置１４０は、仮想オブジェクトが接触したと判定してもよい。
【０１１２】
いくつかの例では、感度を制御することによって、仮想オブジェクトに接触することをより困難、又はより容易にすることができる。例えば、コンピューティング装置１４０は、ユーザの最新の位置が仮想オブジェクトを横切った場合に限り、ユーザがオブジェクトに接触したと判定してもよい。他の例では、コンピューティング装置１４０は、動き履歴が、ユーザの位置が所定のフレーム数の間、又は所定の時間期間の間に仮想オブジェクトを横切る、又は横切ったことを示す場合にユーザがオブジェクトに接触したと判定してもよい。
【０１１３】
図１２〜２２に、アプリケーションの仮想オブジェクトを操作する例を示す。アプリケーションの中の仮想オブジェクトの操作は、図２を参照して説明した動き履歴に基づくアプリケーションの制御の例でもよい。
【０１１４】
例えば、図１２に、ユーザ１２０１の一例を示す。矢印１２０２は、ユーザ１２０１が自分の腕及び上半身を動かす方向を示す。カメラ１１０は、このように動いているユーザ１２０１の画像を撮像し、コンピューティング装置は、撮像した画像に基づいて動き履歴を生成することができる。
【０１１５】
図１３に、動くユーザ１２０１の一例に対応するオブジェクトデータマップの描写を示す。例えば、黒い部分１３０３はユーザが最も直近に検出された画像の位置を示す。オブジェクトデータマップは、黒い部分１３０３を表すピクセルが、例えば、１のデータ値を有し、白い部分を表すピクセルが、例えば、ゼロのデータ値を有するように画像のピクセルの各々についてデータ値を含むようにする。
【０１１６】
図１４は、動き履歴の一例を可視化した図である。黒い部分１４０３は、図１３を参照して説明した黒い部分１３０３に相当する。黒い部分１４０３は、ユーザが最も直近に検出された画像ん位置をあらわす。図１４の灰色の部分１４０４は、ユーザが前回のオブジェクトデータマップ（例えばユーザデータ）で検出された部分（図示されていない）を表す。ここで、灰色が暗い方がより直近であり、灰色が明るい方がより古い。いくつかの実施例では、動き履歴は画像のピクセルの各々について、そのピクセルでオブジェクト（例えばユーザが）が検出されてからの時間を表す値（例えばフレームカウント又は時間）を含む。これらの実施例では、値は白又はなし（例えば、オブジェクトが全く検出されなかった、あるいはフレーム数又は時間量の閾値を超えて検出されなかったピクセル）から黒（例えば、オブジェクトが最も直近に検出されたピクセル）までの範囲の個別のグレースケールカラーに相当する。さらに、これらの実施例では、動き履歴に基づいてオブジェクトを描写する処理は、動き履歴に含まれるピクセルの各々について相当するグレースケールカラーを描写することによってユーザの表示画像を描写する処理を含む。
【０１１７】
いくつかの実施例では、カラー画像を動き履歴に基づくオブジェクトの描写を表示する際に用いるように、動き履歴の値の各々を（グレースケールカラーよりもむしろ）異なるレベルの透明度に対応付けてもよい。例えば、オブジェクトが最も直近に検出されたピクセルでは、対応するピクセルをアプリケーションの表示画面に完全に不透明表示する。オブジェクトが全く検出されなかった、あるいはフレーム数又は時間量の閾値を超えて検出されなかったピクセルでは、対応するピクセルをアプリケーションの表示画面に完全に透明表示する。
【０１１８】
図１５は、フィルタリングした動き履歴の一例を可視化した図である。例えば、図１４に表示したデータは（例えば、９０６から１１０６の処理で説明した技術と同様の技術を用いて）図１５に示す可視化を行うことができる。図１５に示すように、図１４に対して全体の形状は滑らかになっており、端部はよりソフトに見えており、ステップ（ｓｔｅｐ）は見えにくい。
【０１１９】
図１６に、動き履歴に基づくアプリケーションの表示画像に表示されるユーザの描写の一例を示す。図１６に示すように、ユーザの過去の動きはグレースケールカラーのレベルを変化させる、あるいは、不透明度のレベルを変化させて、ユーザの過去の動きがトレーリング（ｔｒａｉｌ）効果として見えるように表示する。。
【０１２０】
図１７に、動き履歴に基づくアプリケーションを制御することによって得られる画像表示の一例を示す。この例で、ユーザの描写はアプリケーション画像１７０６及び１７０７（例えば仮想オブジェクト画像）と組み合わせたキー画像１７０５である。この例では、キー画像１７０５は、アプリケーション画像１７０６の上に描写され、アプリケーション画像１７０６はアルファチャネルで判定されたように透明で、キー画像１７０５の不透明な部分がアプリケーション画像１７０６を隠すように、キー画像１７０５の一部として見えている。さらに、アプリケーション画像１７０７はキー画像１７０５を隠すようにアプリケーション画像１７０７はキー画像１７０５の上に描写することができる。
【０１２１】
図１８に、動き履歴に基づいてアプリケーションを制御するために用いることができる、輪郭処理を用いた画像処理の一例を示す。輪郭処理は、動き履歴の輪郭を表す輪郭データを生成する。例えば、動き履歴は、あらゆるピクセルについて要素を含むビットマップ−多次元配列のデータとして生成することができる。輪郭データは所定の閾値よりも最近の動きを有する動き履歴のピクセルを囲む座標群を有してもよい。輪郭データは、ビットマップ描写よりも少ないデータ要素を有することができるため、いくつかのアプリケーションでは有利であり、計算効率を向上することができる。
【０１２２】
いくつかの実施例では、輪郭処理はさらに、輪郭データのデータポイントの数を削減する処理を含む。データポイントの数を削減する処理は、略直線（ｒｅｌａｔｉｖｅｌｙ  ｓｔｒａｉｇｈｔ  ｌｉｎｅ）上に該当するポイントを削除する処理を含む。輪郭処理の他の例では、処理は、サイズが小さく、孤立したオブジェクトの輪郭を削除してもよい。図１８に示す、輪郭を描写する代表的な輪郭データは、図１５に示す動き履歴に相当する。図示のように、ユーザの腕の厚さは、最新の時間から閾値以内に発生した、動き履歴に含まれるユーザの全ての動きに相当する輪郭を含む。削減したデータポイントを輪郭に沿ったドットで示す。輪郭処理から得られたデータを用いてアプリケーション制御を行うことができる。例えば、コンピューティング装置１４０は、ユーザの輪郭と仮想物との位置を比較して、この二つが横切るか否かを判定して、ユーザが仮想オブジェクトに接触したか否かを判定することができる。輪郭データはまた、（例えば、パーティクルを輪郭のポイントから削除する、又は輪郭のポイントによってはじく（ｒｅｐｅｌ）ように）輪郭データに基づいて制御されるパーティクルシミュレーションアプリケーションを提供してもよい。
【０１２３】
図１９に、アプリケーションの表示画像に含まれる仮想オブジェクトと相互に連結するユーザの一例を示す。いくつかの実施例でユーザは、表示画面でユーザの描写が表示画面の仮想オブジェクトに「接触する」ように移動して、相互に連携することができる。ユーザが仮想オブジェクトに接触したことの判定は、仮想オブジェクトと一致するユーザの一部を識別する処理を含んでもよい。仮想オブジェクトを表す領域１９０８は、アプリケ−書によって識別することができる。領域１９０８は仮想オブジェクトの境界の形状を表してもよいし、あるいは、ユーザが仮想オブジェクトに接触することを容易にするために、領域は仮想オブジェクトより大きい領域を表してもよい。動き履歴を領域１９０８と比較してもよく、動き履歴の部分１９０９を、所定の閾値より直近のフレームカウント（又は時間）を用いてユーザの一部として分類してもよい。フレームカウント（又は時間）が増加するに従って、単一のユーザの行動に対して複数のイベント（例えば、接触していない状態から接触している状態への変化）が発生する可能性を削減する。このため、オブジェクトデータマップを使用する場合であっても、オブジェクトデータマップ（例えば最新のユーザデータ）の代わりに、動き履歴を用いることが有利なことがある
【０１２４】
他の実施例では、キー画像又は輪郭データのアルファチャネルを動き履歴の代わりに用いてもよい。それらが動き履歴を表すためである。いくつかの例では、領域１９０８は静止してもよく（例えば「ボタン」）、又はアプリケーションに応じて動いてもよい（例えば「ボール」）。イベント（例えば、接触していない状態から接触している状態への変化）によって、アプリケーションの動作を開始できる。動作には、表示画像におけるオブジェクトの起動、選択又は運動を含むことができる。
【０１２５】
図２０に、アプリケーションの表示画像に含まれる仮想オブジェクトと相互に連携するユーザの一例を示す。ユーザを表す動き履歴の部分２００９と領域２００８は、より詳細には、動き履歴の部分１９０９と領域１９０８を表す。画像でオブジェクトを検出する処理がオプティカルフローを使用する場合などで、動き領域が動きの方向の描写を含む実施例では、領域２００８の中の部分２００９の平均動きを算出して、部分２００９を表す動きを生成する。
【０１２６】
図２１に、アプリケーションの表示画像に含まれる仮想オブジェクトと相互に連携するユーザの重心処理の一例を示す。いくつかの実施例では、アプリケーションは領域２１０８の中の部分２１０９の重心２１１０を算出し、その位置を領域の重心２１１１と比較する。画像の中のオブジェクトを検出するためにオプティカルフローを使用しない場合であってもアプリケーションは領域２１１１の中の動きの方向と大きさを推定する。
【０１２７】
図２２に、アプリケーションが複数の重心を算出する場合の一例を示す。例えば、第１の所定の閾値よりも直近のフレームカウント（又は時間）を有する、領域２２１１の中のオブジェクト（例えばユーザ）の動きの部分２２１２の第１の重心２２１３を決定することができる。さらに、第２の所定の閾値よりも直近のフレームカウント（又は時間）を有する、領域２２１１の中のオブジェクト（例えばユーザ）の動きの部分２２１２の第２の重心２２１４を決定することができる。第１の閾値は、短い時間期間を有する。例えば、第１の閾値をより直近のフレームとしてもよい。第２の閾値は、第２の重心２２１４の経路が第１の重心２２１３の経路を追跡するように、より長い時間期間を有する。第２の重心２２１４に対する第１の重心２２１３の位置は、オブジェクト（例えばユーザ）部分２２１２の代表的な動きとみなすことができる。
【０１２８】
第２の領域２２１１は、図２１を参照して説明した第１の領域２１０８より大きくてもよい。アプリケーションは、表示画像のオブジェクトと一致する第１の領域２１０８の中にユーザの存在を検出する。アプリケーションは、第１の領域２１０８の中のユーザの部分２１０９の重心２１１０を中心とする第２の領域２２１１を算出する。例えば、第１の領域２１０８は、表示画面に表示される「ボール」と一致してもよい。アプリケーションが、ユーザがボールに接触したことを検出すると、第２の領域２２１１を用いて、ユーザがボールを振り、続いてボールに力が加わったというユーザの動きの方向を決定することができる。
【０１２９】
アプリケーションは、算出したユーザ部分２１０９の代表的な動きを用いて、オブジェクトに接触した時にオブジェクトに加わった力の大きさと方向を決定することができる。オブジェクトは、例えば、「ボール」又は「パーティクル」でもよい。アプリケーションは、ユーザに反応する、これら「ボール」又は「パーティクル」の多くを含んでもよい。
【０１３０】
アプリケーションは、水又は煙などの流体シミュレーションを含んでもよい。いくつかの実施例では、アプリケーションは、高さ（例えば、水の波紋）又は圧力（例えばガス状の雲）を表すマップを保持してもよい。その場所に存在する最新のユーザを示す動きマップの要素に対応するマップ要素に値が割り当てられる。処理はその値を伝播して（例えば水の）波紋又は（例えばガス状の雲の）渦巻きを生成する。アプリケーションは、（例えば、ユーザが水面の下に見えるように）動きマップに応じてキー画像を変形（ワープ）させてもよい。アプリケーションはさらに、速度マップを含んでもよい。ユーザの速度はオプティカルフロー（又は領域２１１１について説明した処理）によって算出し、速度マップの対応する要素に割り当てる。
【０１３１】
アプリケーションには多くの変形態様が可能である。アプリケーションはビデオゲーム又は広告でもよいが、本開示はビデオゲーム又は広告に限定されることのないことに留意されたい。
【０１３２】
アプリケーションはデータロギング処理を含んでもよい。データロギング処理のいくつかの実施例でユーザの存在は、閾値より直近のフレームカウント（又は時間）を有する、ユーザが占有する動き履歴（又はオブジェクトデータマップ）の部分（例えばピクセルのカウント）を比較して決定する。ユーザの存在は記録することができる。データロギング処理の他の実施例では、閾値より直近のフレームカウント（又は時間）を有する、ユーザが占有する動き履歴（又はオブジェクトデータマップ）のピクセルをクラスタリングして、ユーザのカウントを決定する。ユーザのカウントは記録することができる。データロギング処理のさらなる実施例では、イベント（接触していない状態から接触している状態への変化）を記録し、アプリケーションの状態を記録し、及び／又は表示画像を記録してもよい。データロギング処理のいくつかの実施例では、記録は、データの保存を含む。データロギング処理の他の実施例では、記録は、データをネットワーク（例えばインターネット）を介して送信することを含む。
【０１３３】
図２３を参照して、マッピング処理の一例を用いて、動き履歴を追跡して、動き履歴に基づいてアプリケーションを制御する場合について説明する。例えば、直近に検出されたオブジェクトを表すフレームカウント（又は時間）は画像を不透明にして、フレームカウントの増加に伴い、不透度が弱まり、透明になっていくように、動き履歴のピクセル値をリマップしてもよい。図２３に、この例で、対応するピクセルでオブジェクトが検出されてからフレームカウントに付与する相対的重みを示す。図示のように、ゼロのフレームカウントは１００％の重み（例えば、完全に不透明）を有し、５のフレームカウントは５０％の重み（例えば、半分の不透明度）を有し、１０以上のフレームカウントは０％の重み（例えば、完全に透明）を有する。このマッピングは視覚的効果を与え、オブジェクトの動きが痕跡を残すように見える。
【０１３４】
いくつかの実施例では、オブジェクトの描写を表示するためにリマップしたピクセル情報を用いることができる。図１６に示すように、リマップしたピクセル情報は、不透明度のレベルが変化するものも含む、動き履歴に基づく画像を生成する。この実施例では、ユーザが現在占有するピクセルに割り当てられた値は、１００％である。データが加齢すると、値を減算する。減算値は、持続するフレームの数に反比例する。例えば、第１のフレームの間にユーザがピクセル位置に検出されると、そのピクセル値に１００％を割り当てる。この例では、第２のフレームの間にそのピクセル位置でユーザが検出されない場合、そのピクセル値を１０％削減する。このような処理を０％になるまで続ける。値はアルファレベルを表す。しかし、最近その位置でユーザが検出されてからのフレームの数のカウントは依然としてその値から算出することができる。リマッピング処理を用いてユーザを表示画像にの描写することは、アプリケーションに関連する表示画像にオブジェクトを描写する際、オブジェクトの描写が痕跡を残すように見せるなどの、機能強化した視覚的効果を与えることができる。
【０１３５】
図２４〜２８に、動き履歴に基づいてアプリケーションを制御するように構成されたインタラクティブシステムの一例を示す。このシステムを用いて、図２を参照して説明した処理２００を実行することができる。
【０１３６】
図２４に、表示装置２４０３、キャプチャ装置２４０１、コンピューティング装置２０４２を有するシステム２４００を示す。表示装置２４０３は、表示画像を表示する。表示装置２４０３はプロジェクタとプロジェクタ画面、プラズマディスプレイ、液晶ディスプレイ（ＬＣＤ）、裸眼立体ディスプレイ、又は、コンピュータが生成した画像を表示することができるその他の装置であってもよい。表示装置２４０３は、表示画像を表示するために構成された複数の装置（例えば、複数のプロジェクタからなるビデオウォール（ｖｉｄｅｏ  ｗａｌｌ））を含んでもよい。ユーザ２４０４は、表示装置２４０３の表示画像と相互に連携する。キャプチャ装置２４０１は、ユーザ２４０４、又はユーザの一部を含む画像をキャプチャする。キャプチャ装置２４０１は、１以上の連続するカメラ画像を生成する１台以上のカメラを含んでもよい。
【０１３７】
コンピューティング装置２４０２は、キャプチャ装置２４０１がキャプチャした画像を処理して、アプリケーションを制御する。アプリケーションは、表示装置２４０３に表示する表示画像を生成する。アプリケーションはコンピューティング装置、又は別の装置の上で実行することができる。インタラクティブシステム２４００の構成要素は、多くの異なる構成で実現することができる。例えば、図示したように、キャプチャ装置２４０１は、表示装置２４０３の上に配置してもよい。
【０１３８】
図２５に、照明器２５０５を有するインタラクティブシステムの一例を示す。照明器２５０５は、ユーザを可視光又は赤外線光で照明することができる。照明器２５０５はキャプチャ装置２４０１又はコンピューティング装置２４０２から制御信号を受信するようにしてもよい。照明器２５０５は、キャプチャ装置２４０１及び表示装置２４０３の上に配置してもよい。照明器２５０５は、背景２５０６の人々又はオブジェクトよりも強くユーザを照明してもよい。
【０１３９】
図２６に、キャプチャ装置２４０１をユーザ２４０４の頭上に配置した場合の構成を示す。
【０１４０】
図２７に、照明器２５０５が、背景２５０６のその他の人々又はオブジェクトを照明せずに、ユーザ２４０４を照明する場合の構成を示す。図２７に、図７を参照して説明した処理７００で用いるために調整した構成を示す。
【０１４１】
図２８に、装置を窓２８０７の中に設置した構成を示す。表示装置２４０３は、窓２８０７に組み込んでもよい。例えば、表示装置はプロジェクタとプロジェクタ画面であってもよく、プロジェクタ画面は、窓２８０７に貼り付けた膜（ｆｉｌｍ）を含んでもよい。窓２８０７は小売店（ｒｅｔａｉｌ  ｓｔｏｒｅ）の窓でもよい。
【０１４２】
図２９を参照して、ユーザ２４０４の動きを判定し、判定したユーザの動き２９０８をアプリケーション２９１５への入力として用いる処理２９００について説明する。処理２９００は、図１、図２４〜２８を参照して説明したシステムを含む、様々なシステムで実現することができる。説明を明確にするため、処理２９００をシステム２４００に適用した場合について説明するが、その他のシステムを用いてもよい。システム２４００を用いた処理２９００の実施例について説明するが、処理２９００を限定するものではない。
【０１４３】
キャプチャ装置２４０１は一連の画像群（例えばビデオ）をキャプチャする。画像群は、一連の画像の一部でもよい。例えば、画像群は、１以上のキャプチャ装置又はカメラで撮像した１以上の画像を含んでもよい。キャプチャ装置２４０１は複数のカメラを含んでもよい。画像群は、複数のカメラの各々で生成した画像を含んでもよい。
【０１４４】
キャプチャ装置２４０１は、カメラ画像群２９０１を生成する。カメラ画像群２９０１に含まれる１以上の画像は、撮像処理２９０２によって処理され、カメラ制御データ２９０３と処理済みカメラ画像群２９０４が生成される。いくつかの実施例では、処理済みカメラ画像群２９０４は、カメラ画像群２９０１と同一であってもよい。カメラ制御データ２９０３はキャプチャ装置２４０１に戻される。ユーザ検出処理２９０５は処理済みカメラ画像群２９０４を分析するが、カメラ制御データ２９０３を用いてもよい。ユーザ検出処理２９０５はユーザデータ２９０６を生成する。
【０１４５】
処理２９００はさらに、ユーザデータ２９０６を処理して動き履歴２９０８を生成する動き履歴処理２９０７を含んでもよい。いくつかの実施例では、動き履歴処理２９０７と動き履歴２９０８は、アプリケーション２９１５の一部とし、処理２９００でなくてもよい。処理２９００はさらに、動き履歴２９０８（又はユーザデータ２９０６）と処理済みカメラ画像２９０４の群（又はカメラ画像群２９０１）を用いたキーイング処理２９０９を含んでもよい。キーイング処理２９０９はキー画像２９１０を生成する。いくつかの実施例では、キーイング処理２９０９とキー画像２９１０は、アプリケーション２９１５の一部とし、処理２９００でなくてもよい。
【０１４６】
処理２９００はさらに、動き履歴２９０８（又はユーザデータ２９０６）を用いて効果画像２９１２を生成する効果（ｅｆｆｅｃｔ）処理２９１１を含んでもよい。いくつかの実施例では、効果処理２９１１と効果画像２９１２は、アプリケーション２９１５の一部とし、処理２９００でなくてもよい。処理２９００はさらに、動き履歴２９０８（又はユーザデータ２９０６）を用いて輪郭データ２９１４を生成する輪郭処理２９１３を含んでもよい。いくつかの実施例では、輪郭処理２９１３と輪郭データ２９１４は、アプリケーション２９１５の一部とし、処理２９００でなくてもよい。
【０１４７】
アプリケーション２９１５は、ユーザデータ２９０６、動き履歴２９０８、カメラ画像群２９０１、処理済みカメラ画像群２９０４、キー画像２９１０、効果画像２９１２及び輪郭データ２９１４の何れを処理してもよい。アプリケーションは、表示装置２４０３に表示する表示画像２９１６を生成する。
【０１４８】
ユーザ検出処理２９０５は動きを用いてもよい。いくつかのシナリオでは、画像の中の動きの大きな部分はユーザに起因する。図３〜７を参照して説明した技術は、ユーザ検出処理２９０５を実行するために用いてもよい。
【０１４９】
撮像処理２９０２は、キャプチャ装置２４０１を制御するためにカメラ制御データ２９０３を生成する処理を含んでもよい。カメラ制御データ２９０３は、露出時間、ゲイン、アイリスを含むカメラパラメータに影響を与えることができる。この処理の一例では、カメラ画像群２９０１の中の平均ピクセル値、又はその一部を算出してもよい。平均ピクセルの強度が閾値より低い場合、カメラにその感度（例えば、画像の輝度）を上昇させるためのカメラ制御データ２９０３を生成する。平均ピクセルの強度が閾値より高い場合、カメラにその感度（例えば、画像の輝度）を低下させるためのカメラ制御データ２９０３を生成する。
【０１５０】
ユーザ検出処理２９０５の適切な動作に支障のない程度に十分小さくなるように感度（例えば画像の輝度）を変更させるファインステップで、カメラを調整してもよい。代替の実施例では、露出時間、ゲイン及びアイリスを含むカメラのパラメータは、カメラに内蔵された自動露出処理で決定するようにしてもよい。この場合、カメラ制御データ２９０３はキャプチャ装置２４０１によって生成してもよい。
【０１５１】
（例えば、撮像処理２９０２又はキャプチャ装置２４０１で生成された）カメラ制御データ２９０３をユーザ検出処理２９０５に送信してもよい。
【０１５２】
動き履歴２９０８を生成する動き履歴処理２９０７は、図８〜１１を参照して説明した技術を用いて実行してもよい。
【０１５３】
キーイング処理２９０９は、処理済みカメラ画像群２９０４（又はカメラ画像群２９０１）を動き履歴２９０８（又はユーザデータ２９０６）を組み合わせてキー画像２９１０を生成することができる。キー画像２９１０は、アプリケーションによって生成される他の図形と組み合わせた時に見える画像の不透明度を決定するアルファチャネルを含む。
【０１５４】
キー画像２９１０の主要チャネルは処理済みカメラ画像群２９０４（又はカメラ画像群２９０１）から生成する。主要チャネルは赤、緑、青のカラーチャネルでもよいが、ＹＵＶなどの他のカラー空間を用いてもよいことも留意されたい。いくつかの実施例では、カメラ画像の主要チャネルはキー画像の対応するチャネルにコピーする。
【０１５５】
キャプチャ装置２４０１が、複数のカメラ画像を含むカメラ画像群を生成する実施例（複数のカメラを含むキャプチャ装置２４０１の実施例など）では、カメラ画像を選択してキー画像の対応するチャネルにコピーしてもよい。カメラ画像の選択については、キャプチャ装置と撮像処理の様々な実施例で説明した。キャプチャ装置２４０１が、複数のカメラ画像を含むカメラ画像群を生成するその他の実施例（複数のカメラを含むキャプチャ装置２４０１の実施例など）では、カメラ画像を組み合わせてもよい。
【０１５６】
カメラ画像を組み合わせる処理は、カメラ画像をワープする処理を含んでもよい。オブジェクトを、複数のカメラ画像の中で異なる位置に見えるようにしてもよい。これは、カメラの物理的な位置合わせによるもので、各々のカメラの視点が僅かに異なるためである（例えば、光学素子を用いて２台のカメラから同じ視点の画像を取得することは可能であるが、この構成は高額になりうる）。ワープ処理は、オブジェクトが複数の画像群で同一の位置で見えるようにピクセルの位置をリマップする。
【０１５７】
カメラの異なる視点から得られた画像の間には差違が存在しうる。この差違はカメラ間の距離に応じて異なる。ワープ処理は、ピクセルの位置をリマップして、予想されるユーザの距離にあるオブジェクトが複数の画像群で同一の位置に見えるようにすることができる。
【０１５８】
カメラ画像を組み合わせる処理は、（例えば、ワープ処理した）カメラ画像を混合する（ｂｌｅｎｄｉｎｇ）処理を含んでもよい。混合処理は、（例えば、ワープ処理した）カメラ画像のピクセル値を平均して、画像の中でピクセル位置の各々について組み合わせたピクセル値を生成する。キー画像２９１０のアルファチャネルは、動き履歴２９０８（又はユーザデータ２９０６）から生成してもよい。動き履歴２９０８は、そのピクセル位置でユーザを検出したフレームカウント（又は時間）を表すピクセル値を含む。これらのピクセル値をアルファ値にリマップする。ピクセル値のアルファ値へのマッピングには図２３を参照して説明した処理を用いることができる。
【０１５９】
いくつかの実施例では、動き履歴２９０８をワープ処理する。いくつかの実施例では、異なるカメラを用いてユーザデータ２９０６と動き履歴２９０８を生成し、さらに、キー画像２９１０の主要（例えば、カラー）チャネルを提供してもよい。オブジェクトは、複数のカメラ画像の中で異なる位置に現れることがある。これは、カメラの物理的な位置合わせ（例えば、各カメラが僅かに異なる視点を有するなど）によって生じることがある。ワープ処理は、カメラの視点を光学素子を用いて光学的に合わせる必要を回避することができる。
【０１６０】
ワープ処理は、ピクセルの位置をリマップして、オブジェクトが複数の画像群で同一の位置に見えるようにする。動き履歴２９０８をリマップして、画像品質を最大に保つようにキー画像２９１０の主要（例えば、赤緑青）チャネルを生成することができる。カメラの異なる視点から得られた画像の間には差違が存在しうる。この差違はカメラ間の距離に応じて異なる。ワープ処理は、ピクセルの位置をリマップして、予想されるユーザの距離にあるオブジェクトが複数の画像群で同一の位置に見えるようにすることができる。
【０１６１】
いくつかの実施例では、アプリケーション２９１５は、キー画像２９１０を含む表示画像２９１６を生成する。キー画像２９１０は、アプリケーションによって生成した画像を組み合わせてもよい。いくつかの実施例では、アプリケーション２９１５は、アルファチャネルを用いてキー画像２９１０を表示画像と組み合わせる。キー画像を含む表示画像の例については、図１７を参照して説明した。  
【０１６２】
いくつかの実施例では、視覚的効果の画像に動き履歴２９０８（又はユーザデータ２９０６）を組み合わせる効果処理２９１１を実行して、効果画像２９１２を生成してもよい。効果画像２９１２は、アプリケーションが生成したその他の図形と組み合わせた際に見えうる画像の不透明度を決定するアルファチャネルを含む。アニメーション効果をもたらすために効果画像の主要（例えば、赤、緑、青色）チャネルを生成する。アニメーション効果の例として、「プラズマ」と「水の波紋」をあげることができる。アニメーション効果は、再描写したアニメーションシーケンス又はパーティクルシステムによって生成することができる。効果画像２９１２のアルファチャネルは、キー画像２９１０のアルファチャネルを生成するのと同様の手法で、動き履歴２９０８（又はユーザデータ２９０６）から生成する。
【０１６３】
アプリケーション２９１５は、効果画像２９１２を含む表示画像２９１６を生成し、キー画像２９１０５を組み合わせて表示するのと同様の手法で効果画像をアプリケーション画像と組み合わせることができる。
【０１６４】
いくつかの実施例では、輪郭処理２９１３を実行してもよい。輪郭処理２９１３は、動き履歴２９０８（又はユーザデータ２９０６）の輪郭を表す輪郭データ２９１４を生成する。動き履歴はビットマップ、ピクセルの各々について要素を含む多次元配列のデータとして生成することができる。輪郭データ２９１４は、所定の閾値より直近の動きを有する動き履歴２９０８のピクセル（又はユーザの一部として分類されたユーザデータ２９０６のピクセル）を囲む座標群を含む。輪郭データ２９１４は、ビットマップの描写より少ないデータ要素を含むことができるため、いくつかのアプリケーションでは有利である。
【０１６５】
輪郭処理２９１３はさらに、輪郭データのデータポイントの数を削減する処理を含んでもよい。データポイントの数を削減する処理は、略直線（ｒｅｌａｔｉｖｅｌｙ  ｓｔｒａｉｇｈｔ  ｌｉｎｅ）に該当するポイントを削除する処理を含む。輪郭処理２９１３はさらに、処理は、サイズが小さく、孤立したオブジェクトの輪郭を削除する処理を含んでもよい。輪郭データ２９１４の一例については、図１６参照して説明した。
【０１６６】
いくつかの実施例では、システムは、カメラ、表示装置、及びプロセッサを含む。プロセッサは、カメラが撮像した画像を処理し、アプリケーション（例えばコンピュータ又はビデオゲーム）の実行を制御し、表示装置に、アプリケーションに関連する表示画像を表示することができる。いくつかの実施例では、カメラはアプリケーション（例えばコンピュータ又はビデオゲーム）と相互に連携するユーザの画像を撮像する。これらの例では、カメラは、アプリケーションに関連して、表示装置に表示される表示画像に応答して、物理的に動くユーザの画像を撮像する。プロセッサは、物理的に動くユーザの画像を処理して、画像の中のユーザの位置を検出することができる。プロセッサはまた、画像の中で捉えたユーザの物理的な動きの動き履歴を追跡することができる。動き履歴の追跡は、画像を複数の小部分に分割し、複数の小部分の各々について画像の中でユーザが検出されてからの時間を追跡する。例えば、プロセッサは、ピクセルマップの中でピクセルの各々についてユーザが検出されてからの時間に関連する情報を画像のピクセルの各々について保存するピクセルマップを保持することができる。
【０１６７】
いくつかの実施例では、動き履歴情報（例えば、ピクセルマップ）を用いて、プロセッサが実行するアプリケーションを制御することができる。例えば、プロセッサは、動き履歴情報（例えば、ピクセルマップ）にアクセスして、表示装置に、動き履歴情報に基づくユーザの描写を含む、アプリケーション（例えばコンピュータ又はビデオゲーム）に関連する表示画像を表示することができる。上述のピクセルマップを用いた例では、アプリケーションに表示したユーザの描写は、ユーザがピクセルの各々について検出されてからの時間に対応することができる。この例では、ユーザの描写は、ユーザが検出された全てのピクセルに、特殊効果（例えば煙り又は火）を付けたユーザの表示を含むようにしてもよいし、又は、最も直近で検出されなかったユーザの動きの部分のみに、特殊効果（例えば煙り又は火）を付けたユーザの表示（例えば、ユーザが腕を動かした場合、腕が動くにつれて煙又は火がユーザの腕に腕を追跡するように見える）を含むようにしてもよい。いくつかの例では、表示画像に表示されるピクセルの不透明度をピクセルマップに対応させて、ある時間期間ユーザが検出されなかった画像の部分については、時間とともに消えていくようにしてもよい（例えば、腕を動かすユーザの煙又は影が、腕が動きを開始した場所から離れて動くにつれて消えていくようにしてもよい）。他の実施例では、追跡している動き履歴情報を用いてアプリケーションを別の手法で制御してもよい。例えば、パーティクルシミュレーションのアプリケーションがユーザの描写を、パーティクルシミュレーション技術を用いて効果画像（例えば、煙、火、水など）として表示するように、動き履歴情報をパーティクルシミュレーションアプリケーションに供給してもよい。動き履歴情報はまた、アプリケーションのユーザ入力コマンドを判断するために用いてもよい。
【０１６８】
図３０に、コンピューティング装置２４０２又はコンピューティング装置１４０の外観の一例を示す。簡潔には、システム３０００は、動き履歴に基づいてアプリケーションを制御するプロセッサを有するコンピューティング装置３００１を含む。機器３００１は、ネットワーク３００６を介して、サーバ３００２とサーバ３００４を含む、１台以上のサーバと通信を行うことができる。
【０１６９】
より詳細には、コンピューティング装置３００１のハードウェア環境は、テキストと画像をユーザに表示するディスプレイモニタ３００８と、テキストデータとユーザコマンドをコンピューティング装置３００１に入力するキーボード３００９と、ディスプレイモニタ３００８に表示されたオブジェクトを指し示し、選択し、操作するマウス３０１０と、固定ディスクドライブ３０１１と、リムーバブルディスクドライブ３０１２と、テープドライブ３０１４と、ハードコピー出力装置３０１５と、コンピュータネットワーク接続３０１６と、デジタル入力装置３０１７と、を含む。
【０１７０】
ディスプレイモニタ３００８は、コンピューティング装置３００１が使用するソフトウェアアプリケーション、及びコンピューティング装置３００１を動作するために必要なオペレーティングシステムプログラムのためのユーザインタフェースを含む図形、画像、テキストを表示する。ユーザはキーボード３００９を用いて、コンピュータのオペレーティングシステムプログラム及びアプリケーションプログラムを動作し、制御するためのコマンドとデータを入力する。マウス３０１０は、任意の種類のポインティング装置でよく、ジョイスティック、トラックボール、タッチパッド又はその他のポインティング装置などでもよい。仮想オブジェクトを操作するために用いるソフトウェアは、固定ディスクドライブなどのコンピュータが読み出し可能なメモリ媒体にローカルに保存する。
【０１７１】
さらなる実施例では、固定ディスクドライブ３０１１自体は、ＲＡＩＤ（ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｄｅｐｅｎｄｅｎｔ  ｄｉｓｋｓ）などの複数の物理ドライブユニット（ｐｈｙｓｉｃａｌ  ｄｒｉｖｅ  ｕｎｉｔ）、又はディスクドライブファーム（ｄｉｓｋ  ｄｒｉｖｅ  ｆａｒｍ）又は独立したコンピューティングユニットに物理的に配設されたディスクアレイなどでもよい。かかるコンピュータ読み出し可能なメモリ媒体は、コンピューティング装置３００１が、脱着可能な記憶媒体又は固定記憶媒体に保存した、コンピュータが実行可能な処理ステップ、アプリケーションプログラムなどにアクセスすることを可能にする。
【０１７２】
コンピュータネットワーク接続３０１６は、モデム接続、イーサネット（登録商標）を含むローカルエリアネットワーク（ＬＡＮ）接続、デジタル加入者回線（ＤＳＬ）、ケーブル高速インターネット接続、ダイアルアップ接続、Ｔ１回線、Ｔ３回線、光ファイバ接続又は衛星接続などのブロードバンドＷＡＮ（Ｗｉｄｅ−Ａｒｅａ  Ｎｅｔｗｏｒｋ）などでもよい。ネットワーク３０００６は、ＬＡＮネットワーク、企業又は政府ＷＡＮネットワーク、インターネット又はその他のネットワークでもよい。
【０１７３】
コンピュータネットワーク接続３０１６は、有線又は無線コネクタでもよい。代表的な無線コネクタは、例えば、ＩｒＤＡ（Ｒ）（ＩＮＦＲＡＲＥＤ  ＤＡＴＡ  ＡＳＳＯＣＩＡＴＩＯＮ（Ｒ））ｗｉｒｅｌｅｓｓ  ｃｏｎｎｅｃｔｏｒ、光無線コネクタ、ＩＥＥＥ（Ｒ）（ＩＮＳＴＩＴＵＴＥ  ＯＦ  ＥＬＥＣＴＲＩＣＡＬ  ＡＮＤ  ＥＬＥＣＴＲＯＮＩＣＳ  ＥＮＧＩＮＥＥＲＳ（Ｒ））標準８０２．１１無線コネクタ、ＢＬＵＥＴＯＯＴＨ（Ｒ）ｗｉｒｅｌｅｓｓ  ｃｏｎｎｅｃｔｏｒ、ＯＦＤＭ（ｏｒｔｈｏｇｏｎａｌ  ｆｒｅｑｕｅｎｃｙ  ｄｉｖｉｓｉｏｎ  ｍｕｌｔｉｐｌｅｘｉｎｇ）ＵＷＢ（ｕｌｔｒａ  ｗｉｄｅ  ｂａｎｄ）無線コネクタ、ＴＭ−ＵＷＢ（ｔｉｍｅ−ｍｏｄｕｌａｔｅｄ  ｕｌｔｒａ  ｗｉｄｅ  ｂａｎ）、又はその他の無線コネクタでもよい。代表的な有線コネクタは、例えば、ＩＥＥＥ（Ｒ）−１３９４  ＦＩＲＥＷＩＲＥ（Ｒ）コネクタ、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）コネクタ、シリアルポートコネクタ、パラレルポートコネクタ又はその他の有線コネクタでもよい。
【０１７４】
リムーバブルディスクドライブ３０１２は、コンピューティング装置３００１からデータをオフロードする、又はデータをコンピューティング装置３００１にアップデートするために使用する脱着可能な記憶装置である。リムーバブルディスクドライブ３０１２は、フロッピー（登録商標）ディスクドライブ、ＩＯＭＥＧＡ（Ｒ）ＺＩＰ（Ｒ）ドライブ、ＣＤ−ＲＯＭ（ｃｏｍｐａｃｔ  ｄｉｓｋ−ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）ドライブ、ＣＤ−Ｒ（ＣＤ−Ｒｅｃｏｒｄａｂｌｅ  ｄｒｉｖｅ）、ＣＤ−ＲＷ（ＣＤ−Ｒｅｗｒｉｔａｂｌｅ  ｄｒｉｖｅ）、フラッシュメモリ、ＵＳＢフラッシュドライブ、サムドライブ、ペンドライブ、キードライブ、ＨＤ−ＤＶＤ（Ｈｉｇｈ−Ｄｅｎｓｉｔｙ  Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、光ディスクドライブ、ブルーレイ光ディスクドライブ、ＨＤＤＳ（Ｈｏｌｏｇｒａｐｈｉｃ  Ｄｉｇｉｔａｌ  Ｄａｔａ  Ｓｔｏｒａｇｅ）光ディスクドライブ、あるいは、ＤＶＤ−Ｒ又はＤＶＤ＋Ｒ（ＤＶＤ−Ｒｅｃｏｒｄａｂｌｅ）、ＤＶＤ−ＲＷ又はＤＶＤ＋ＲＷ（ＤＶＤ−Ｒｅｗｒｉｔａｂｌｅ）又はＤＶＤ−ＲＡＭなどの各種記録可能又は書換可能なＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｃ）の何れか一つでもよい。オペレーティングシステムプログラム、アプリケーション及び各種データファイルは、ディスクに保存して固定ディスクドライブ３０１１又はリムーバブルディスクドライブ３０１２用の脱着可能な媒体に記憶する。
【０１７５】
テープドライブ３０１４はコンピューティング装置３００１からデータをオフロードする、又はデータをコンピューティング装置３００１にアップデートするために使用するテープ記憶装置である。テープドライブ３０１４は、ＱＩＣ（ｑｕａｒｔｅｒ−ｉｎｃｈ  ｃａｒｔｒｉｄｇｅ）、４  ｍｍ  ＤＡＴ（ｄｉｇｉｔａｌ  ａｕｄｉｏ  ｔａｐｅ）、８  ｍｍ  ＤＬＴ（ｄｉｇｉｔａｌ  ｌｉｎｅａｒ  ｔａｐｅ）ドライブ、又はその他の種類のテープでもよい。
【０１７６】
ハードコピー出力装置３０１５は、オペレーティングシステムプログラム及びアプリエーション用の出力機能を提供する。ハードコピー出力装置３０１５は、プリンタ又は、テキストデータ又は画像データ、あるいはテキストデータ又は画像データの図形描写を含む有形の出力物（ｔａｎｇｉｂｌｅ  ｏｕｔｐｕｔ  ｏｂｊｅｃｔ）を生成する任意の出力装置でよい。ハードコピー出力装置３０１５は、コンピューティング装置３００１に直接接続して示されているが、必須ではない。例えば、ハードコピー出力装置は、コンピューティング装置３００１と、有線ネットワーク又は無線ネットワークなどのネットワークインタフェースを介して接続してもよい。
【０１７７】
さらに、コンピューティング装置３００１をデスクトップＰＣとして説明したが、さらなる実施例では、コンピューティング装置３００１は、ラップトップ、ワークステーション、オフィスコンピュータ（ｍｉｄｒａｎｇｅ  ｃｏｍｐｕｔｅｒ）、メインフレーム、組み込みシステム（ｅｍｂｅｄｄｅｄ  ｓｙｓｔｅｍ）、電話、携帯用コンピュータ又はタブレットコンピュータ、ＰＤＡ、あるいはその他の種類のコンピュータであってもよい。
【０１７８】
図３１は、図３０に示したコンピュータの内部構造を説明するブロック図である。コンピューティング装置３００１の代表的な内部構造について説明する。コンピューティング環境は、オペレーティングシステム又はアプリケーションを含むコンピュータ命令を処理するコンピュータのＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）３１０１と、通信インタフェースと、ディスプレイモニタ３００８に図形画像及びテキストを描写するための処理機能を実行するディスプレイインタフェース３１０２と、キーボード３００９との通信インタフェースを行うキーボードインタフェース３１０４と、マウス３０１０又は類似のポインティング装置との通信インタフェースを行うポインティング装置インタフェース３１０５と、デジタル入力装置３０１７との通信インタフェースを行うデジタル入力インタフェース３１０６と、ハードコピー出力装置３０１５との通信インタフェースを行うハードコピー出力装置インタフェース３１０８と、コンピュータのＣＰＵ３１０１による処理のためにコンピュータ命令及びデータを揮発性メモリ装置に保存するＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒ）３１１０と、基本入出力（Ｉ／Ｏ）、スタートアップ、又はキーボード３００９からのキーストロークの受け付けなどの基本システム機能のための、不変手レベルシステムコード又はを不揮発性メモリ装置に記憶するＲＯＭ（ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）３１１１と、オペレーティングシステム３１２１、アプリケーションプログラム３１２２（仮想オブジェクト操作アプリケーション３１２３、必要に応じてその他のアプリケーション３１２４を含む）を含むファイル、及びデータファイル３１２５を保存する、ストレージ３１２０又はその他の適当な種類のメモリ（例えば、ＲＡＭ（ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＲＯＭ（ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、ＰＲＯＭ（ｐｒｏｇｒａｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、ＥＰＲＯＭ（ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、磁気ディスク、光ディスク、フロッピー（登録商標）ディスク、ハードディスク、リムーバブルカートリッジ、フラッシュドライブ）と、コンピュータネットワーク接続３０１６を介してネットワーク３００６との通信インタフェースを行うコンピュータネットワークインタフェース３１１６とを含む。これらの構成要素及びコンピュータＣＰＵ３１０１は、コンピュータバス３１２７を介して相互に通信を行っている。
【０１７９】
ＲＡＭ３１１０は、コンピュータバス３１２７とインタフェースをとり、オペレーティングシステムアプリケーションプログラム及び機器ドライバなどのソフトウェアプログラムの実行時にコンピュータＣＰＵ３１０１へ迅速なＲＡＭ記憶を行う。より詳細には、コンピュータＣＰＵ３１０１は、コンピュータが実行可能な処理ステップを固定ディスクドライブ３０１１又はその他のメモリ媒体からＲＡＭ３１１０のフィールドに読み出して、ソフトウェアプログラムを実行する。データはＲＡＭ３１１０に記憶され、実行時にコンピュータＣＰＵ３１０１はこのデータにアクセスをする。
【０１８０】
コンピューティング装置３００１は、オペレーティングシステム３１２１及び、ワード処理、スプレッドシート、プレゼンテーション、ゲーム又はその他のアプリケーションなどのアプリケーションプログラム３１２２のためのコンピュータが実行可能なコードを記憶する。上述の実施例を用いて仮想オブジェクトの操作を提供することがきるが、本開示に従って、ＤＬＬ（ｄｙｎａｍｉｃ  ｌｉｎｋ  ｌｉｂｒａｒｙ）、ＭＩＣＲＯＳＯＦＴ（Ｒ）Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ  ｗｅｂ  ｂｒｏｗｓｅｒなどのインターネットウェブブラウザなどのその他のアプリケーションプログラムへのプラグインとして機能を実施することも可能である。
【０１８１】
コンピュータＣＰＵ３１０１は、ＩＮＴＥＬ（Ｒ）又はＡＭＤ（Ｒ）プロセッサ、ＰＯＷＥＲＰＣ（Ｒ）プロセッサ、ＭＩＰＳ（Ｒ）ＲＩＳＣ（ｒｅｄｕｃｅｄ  ｉｎｓｔｒｕｃｔｉｏｎ  ｓｅｔ  ｃｏｍｐｕｔｅｒ）プロセッサ、ＳＰＡＲＣ（Ｒ）プロセッサ、ＡＲＭ（Ｒ）（ＡＣＯＲＮ（Ｒ）ＲＩＳＣ  Ｍａｃｈｉｎｅ）アーキテクチャプロセッサ、ＨＰ  ＡＬＰＨＡＳＥＲＶＥＲ（Ｒ）プロセッサ、又はメインフレーム用の専用のコンピュータプロセッサなどを含む、複数の高性能コンピュータプロセッサの一つである。追加の構成では、コンピュータＣＰＵ３１０１は、高性能ワークステーション及びサーバにみられるマルチプルＣＰＵ構成、又はメインフレームにみられるマルチプルスケーラブル処理装置を含む、複数の処理装置である。
【０１８２】
オペレーティングシステム３１２１は、ＭＩＣＲＯＳＯＦＴ（Ｒ）ＷＩＮＤＯＷＳ（登録商標）  ＮＴ（Ｒ）／ＷＩＮＤＯＷＳ（登録商標）（Ｒ）２０００／ＷＩＮＤＯＷＳ（登録商標）（Ｒ）ＸＰワークステーションと、ＷＩＮＤＯＷＳ（登録商標）  ＮＴ（Ｒ）／ＷＩＮＤＯＷＳ（登録商標）（Ｒ）２０００／ＷＩＮＤＯＷＳ（登録商標）（Ｒ）ＸＰサーバと、ＩＢＭ（Ｒ）ワークステーション及びサーバ用ＡＩＸ（Ｒ）、ＳＵＮ（Ｒ）ワークステーション及びサーバ用ＳＵＮＯＳ（Ｒ）用ＡＩＸ（Ｒ）、ＩＮＴＥＬ（Ｒ）ＣＰＵベースのワークステーション及びサーバ用ＬＩＮＵＸ（Ｒ）、ＨＰ（Ｒ）ワークステーション及びサーバ用ＨＰ  ＵＸ  ＷＯＲＫＬＯＡＤ  ＭＡＮＡＧＥＲ（Ｒ）、ＳＧＩ（Ｒ）ワークステーション及びサーバ用ＩＲＩＸ（Ｒ）、デジタルイクイップメント社コンピュータ用ＶＡＸ／ＶＭＳ、ＨＰ  ＡＬＰＨＡＳＥＲＶＥＲ（Ｒ）をベースにしたコンピュータ用ＯＰＥＮＶＭＳ（Ｒ）、ＰＯＷＥＲＰＣ（Ｒ）をベースにしたワークステーション及びサーバ用ＭＡＣ  ＯＳ（Ｒ）を含むＵＮＩＸ（登録商標）（Ｒ）に好適な各種オペレーティングシステムと、移動機器、又はコンピュータ及び組み込みシステム専用のオペレーティングシステム用ＥＰＯＣ（Ｒ）、ＰＡＬＭ（Ｒ）、ＮＯＫＩＡ（Ｒ）ＯＳ（“ＮＯＳ”）、ＯＳＥ（Ｒ）又はＳＹＭＢＩＡＮ  ＯＳ（Ｒ）、ＷＩＮＤＯＷＳ（登録商標）  ＭＯＢＩＬＥ（Ｒ）又はＷＩＮＤＯＷＳ（登録商標）  ＣＥ（Ｒ）でもよい。アプリケーション開発プラットフォーム、又はオペレーティングシステム３１２１のフレームワークは、ＢＲＥＷ（Ｒ）（ＢＩＮＡＲＹ  ＲＵＮＴＩＭＥ  ＥＮＶＩＲＯＮＭＥＮＴ  ＦＯＲ  ＷＩＲＥＬＥＳＳ（Ｒ））、Ｊａｖａ（登録商標）  ＭＥ（Ｊａｖａ（登録商標）  Ｐｌａｔｆｏｒｍ，  Ｍｉｃｒｏ  Ｅｄｉｔｉｏｎ）、又はＪ２ＭＥ（Ｒ）（Ｊａｖａ（登録商標）  ２  Ｐｌａｔｆｏｒｍ，  Ｍｉｃｒｏ  Ｅｄｉｔｉｏｎ）と、ＹＴＨＯＮＴＭ，  ＦＬＡＳＨ  ＬＩＴＥ（Ｒ）又はＭＩＣＲＯＳＯＦＴ（Ｒ）．ＮＥＴ  Ｃｏｍｐａｃｔ．でもよい。
【０１８３】
図３０と図３１に、動き履歴に基づくアプリケーションの制御を実行するために構成されたプログラムコード、プログラム又は処理ステップを実行するコンピューティング装置の一つの可能な実施例を示したが、その他の種類のコンピュータを用いてもよい。
【０１８４】
以上、複数の実施例について説明した。しかしながら、本開示の趣旨と範囲から逸脱することなく様々な変形が可能であることは明らかである。したがって、以下の特許請求の範囲の中でその他の実施例も可能である。
【図１】
2010515170.tif 000004
【図２】
2010515170.tif 000005
【図３】
2010515170.tif 000006
【図４】
2010515170.tif 000007
【図５】
2010515170.tif 000008
【図６】
2010515170.tif 000009
【図７】
2010515170.tif 000010
【図８】
2010515170.tif 000011
【図９】
2010515170.tif 000012
【図１０】
2010515170.tif 000013
【図１１】
2010515170.tif 000014
【図１２】
2010515170.tif 000015
【図１３】
2010515170.tif 000016
【図１４】
2010515170.tif 000017
【図１５】
2010515170.tif 000018
【図１６】
2010515170.tif 000019
【図１７】
2010515170.tif 000020
【図１８】
2010515170.tif 000021
【図１９】
2010515170.tif 000022
【図２０】
2010515170.tif 000023
【図２１】
2010515170.tif 000024
【図２２】
2010515170.tif 000025
【図２３】
2010515170.tif 000026
【図２４】
2010515170.tif 000027
【図２５】
2010515170.tif 000028
【図２６】
2010515170.tif 000029
【図２７】
2010515170.tif 000030
【図２８】
2010515170.tif 000031
【図２９】
2010515170.tif 000032
【図３０】
2010515170.tif 000033
【図３１】
2010515170.tif 000034
【国際調査報告】
2010515170.tif 000035