[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2010515170A - 機能強化したインタラクティブシステムを用いた仮想オブジェクトの操作 - Google Patents

機能強化したインタラクティブシステムを用いた仮想オブジェクトの操作 Download PDF

Info

Publication number
JP2010515170A
JP2010515170A JP2009544260A JP2009544260A JP2010515170A JP 2010515170 A JP2010515170 A JP 2010515170A JP 2009544260 A JP2009544260 A JP 2009544260A JP 2009544260 A JP2009544260 A JP 2009544260A JP 2010515170 A JP2010515170 A JP 2010515170A
Authority
JP
Japan
Prior art keywords
image
pixel
motion history
application
detected
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009544260A
Other languages
English (en)
Inventor
エヴァン ヒルドレス
Original Assignee
ジェスチャー テック,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ジェスチャー テック,インコーポレイテッド filed Critical ジェスチャー テック,インコーポレイテッド
Publication of JP2010515170A publication Critical patent/JP2010515170A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/254Analysis of motion involving subtraction of images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Image Analysis (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Position Input By Displaying (AREA)

Abstract

カメラを介してユーザの動きを検出し、ディスプレイにユーザの動的な仮想描写を生成する。検出したユーザの動きは、動的な仮想描写を、ディスプレイの仮想オブジェクトと相互に連携させる。検出したユーザの動きの大きさと方向は、動的な仮想描写により仮想オブジェクトに加えられる力の大きさと方向を決定するためにに算出する。さらに、本構成は、ユーザの体感を向上するために、水又は煙の流体シミュレーションを含んでもよい。
【選択図】図2

Description

(関連出願)
本出願は、参照により本明細書に含まれる2006年12月29日に出願された米国仮出願第60/882,849号の優先権の利益を主張する。
本出願は、一般的には動き検出に関し、少なくとも一つの個別の装置は、ディスプレイにおけるユーザの描写とオブジェクトの間に相互に連携を提供することに関する。
カメラを用いてオブジェクトの画像を撮像することが行われている。1以上の画像の中から存在するオブジェクトの1以上の画像を分析して、オブジェクトの位置を検出する技術が研究されてきた。例えば、オプティカルフロー(optical flow)を用いて、時間的に連続して撮像されたオブジェクトの複数の画像を分析して、オブジェクトの動きを検出してきた。
一つの一般的な実施例によると、オブジェクトの少なくとも第1の画像を受け取り、第1の画像のオブジェクトを検出する。第1の画像のオブジェクトの検出に基づいて、オブジェクトデータマップを生成する。オブジェクトデータマップは、第1の画像のピクセルの各々について、ピクセルの各々でオブジェクトが検出されたか否かを示す。動き履歴を生成する。動き履歴は、オブジェクトデータマップに含まれるピクセルの各々について、ピクセルの各々でオブジェクトが検出されてからの時間の指標を示す。動き履歴に基づいてアプリケーションを制御する。
実施例は、以下の一つ以上の特徴を含んでもよい。例えば、動き履歴は、オブジェクトデータマップに含まれるピクセルの各々について、ピクセルの各々でオブジェクトが検出されてからの時間に対応する不透明度値を示してもよい。動き履歴はまた、オブジェクトデータマップに含まれるピクセルの各々について、ピクセルの各々でオブジェクトが検出されてからのフレームの数を示してもよい。動き履歴はさらに、オブジェクトデータマップに含まれるピクセルの各々について、ピクセルの各々でオブジェクトが検出された時間の測定値(measurement)を示してもよい。
いくつかの実施例では、動き履歴は、前の動き履歴にアクセスして、オブジェクトデータマップに基づいて前の動き履歴を更新して生成してもよい。前の動き履歴は、第1の画像の前に受け取ったオブジェクトの画像に基づいて生成してもよい。前の動き履歴は、オブジェクトが検出された第1の画像のピクセルの各々については、オブジェクトが検出されてからの時間の指標を、最も直近でオブジェクトが検出された時間の指標として設定し、オブジェクトが検出されなかった第1の画像のピクセルの各々については、前記オブジェクトが検出されてからの時間の指標を加齢して、更新してもよい。
オブジェクトが検出されてからの時間の指標は、オブジェクトが検出されてからの時間が増加したことを示すようにオブジェクトが検出されてからの時間の指標を更新して、加齢させる。オブジェクトが検出されてからの時間の指標は、また、オブジェクトが検出されなかった第1の画像のピクセルの各々について、前の動き履歴でオブジェクトが検出されてからの時間の指標が時間期間の閾値を超えているか否かを判断して加齢させてもよい。前の動き履歴でオブジェクトが検出されてからの時間の指標が時間期間の閾値を超えていないと判断した場合に、オブジェクトが検出されてからの時間が増加したことを示すようにオブジェクトが検出されてからの時間の指標を更新するようにしてもよい。オブジェクトが検出されてからの時間の指標は、前の動き履歴でオブジェクトが検出されてからの時間の指標が時間期間の閾値を超えていないと判断した場合に、保持するようにしてもよい。
いくつかの実施例では、動き履歴をフィルタリングして、アプリケーションはフィルタリングした動き履歴に基づいて制御してもよい。動き履歴は、ピクセルの各々について、ピクセルの各々の値と、ピクセルの各々の近傍にあるピクセルの値とに基づいて、ピクセルの各々の値を算出してフィルタリングすることができる。
いくつかの例では、ユーザの少なくとも一つの第1の画像を受け取ってもよい。アプリケーションは、アプリケーションに関連する表示画像のオブジェクトの描写を表示することによって制御してもよい。アプリケーションに関連する表示画像のオブジェクトの描写の動きを制御してもよい。アプリケーションに関連する表示画像にオブジェクトの描写をパーティクルシステムの1以上のパーティクルとして表示してもよい。アプリケーションに関連する表示画像のオブジェクトの描写を、動き履歴に基づいてオブジェクトの動きを表す輪郭線を生成し、生成した輪郭線に基づいて、アプリケーションによる表示画像に描写された仮想オブジェクトに、表示画像のオブジェクトの描写が接触したか否かを判断して、表示してもよい。
いくつかの実施例では、アプリケーションに関連する表示画像にオブジェクトの描写を、時間の指標がオブジェクトが最も直近に検出されたことを示す動き履歴のピクセルに対応するピクセルを、時間の指標をオブジェクトがより過去に検出されたことを示す動き履歴のピクセルに対応するピクセルよりも不透明度が大きくなるように表示するように、表示してもよい。例えば、動き履歴のピクセルに対応するピクセルを、ピクセルに関連する時間の指標に基づく不透明度で表示するように、オブジェクトの描写を表示してもよい。第2のピクセルより第1のピクセルでオブジェクトが直近に検出されたことを示す時間の指標に関連する第1のピクセルが、第2のピクセルの不透明度より大きな不透明度で見えるように、オブジェクトの描写を表示してもよい。
さらなる例では、アプリケーションに関連する表示画像にオブジェクトの描写の表示を、動き履歴に基づいてアルファチャネルを生成し、アルファチャネルに基づいて表示画像にオブジェクトの描写を表示して行ってもよい。効果画像を表示してもよい。効果画像は、アニメーション又はパーティクルシステムに基づくアニメ−ション効果画像でもよく、アニメーション効果画像は、水の波紋、プラズマ、火又は煙の何れか一つを表してもよい。オブジェクトのキー画像をまた表示してもよい。
さらに、動き履歴に基づいてアプリケーションによって、表示画像に描写された仮想オブジェクトに表示画像のオブジェクトの描写が接触したか否かを判断し、判断の結果に基づいてアプリケーションを制御してもよい。仮想オブジェクトは、ボタン、ボール又はパーティクルシステムの粒子の少なくとも一つであってもよい。仮想オブジェクトの速度を動き履歴に基づいて算出し、アプリケーションを得られた仮想オブジェクトの速度に基づいて制御してもよい。速度は、動き履歴に関連するオプティカルフローデータに基づいて仮想オブジェクトの動きの速度と方向を算出してもよく、アプリケーションは、得られた仮想オブジェクトの動きの速度と方向に基づいて制御してもよい。仮想オブジェクトは、パーティクルシステムのパーティクルでもよい。
また、第1の画像を含むオブジェクトの複数の画像は、受け取ってもよく、オブジェクトの動きは、複数の画像に基づいて判断してもよい。オブジェクトは、第1の画像と背景画像とを比較して検出してもよい。
本発明の他の一般的な実施例によると、ユーザの少なくとも一つの第1の画像と、ユーザの第2の画像を含む画像を受け取る。ユーザの第2の画像は、ユーザの第1の画像の後で撮像されており、第2の画像は第1の画像と比較される。第1の画像に対する第2の画図の比較に基づいて画像の動きを検出し、検出された画像の動きに基づいて第2の画像のユーザの位置を決定する。第2の画像のユーザの位置の決定に応じて、ユーザデータマップを生成する。ユーザデータマップは、第2の画像に含まれるピクセルに対応し、第2の画像のユーザの位置を示す。ユーザの前の動き履歴にアクセスする。前の動き履歴は、ユーザデータマップに含まれるピクセルの各々について、ピクセルに対応する位置においてユーザが検出されてからの時間の指標を示し、前の動き履歴は第2の画像の前に受け取ったユーザの画像に基づいて生成する。前の動き履歴は、前の動き履歴に含まれるピクセルの各々について、ピクセルに対応する位置でユーザが検出されてからの時間の指標をインクリメントして加齢する。加齢した動き履歴は、ユーザデータマップに基づいて、ユーザが検出された位置のユーザマップに含まれるピクセルの各々について、加齢した動き履歴の対応するピクセルを、ピクセルで直近にユーザの位置を検出したことを示す時間の指標に設定することによって更新する。ユーザの描写は、更新した動き履歴に基づくアプリケーションに関連する表示画像に、表示画像のユーザの描写に関連するピクセルの不透明度が、更新した動き履歴に含まれるピクセルに対応する位置でユーザが検出されてからの時間の指標に基づくように、表示する。
他の一般的な実施例によると、システムは、オブジェクトの少なくとも第1の画像を撮像するように構成されたカメラと、カメラからオブジェクトの第1の画像を受け取るように構成されたプロセッサとを含む。プロセッサはまた、第1の画像のオブジェクトを検出し、第1の画像のオブジェクトの検出に応じて、オブジェクトデータマップを生成するように構成されている。オブジェクトデータマップは、第1の画像のピクセルの各々について、ピクセルの各々でオブジェクトが検出されたか否かを示す。プロセッサはさらに、動き履歴を生成し、動き履歴に基づいてアプリケーションを制御するように構成されている。動き履歴は、オブジェクトデータマップに含まれるピクセルの各々について、ピクセルの各々でオブジェクトが検出されてからの時間の指標を示す。システムはまた、アプリケーションに関連する表示画像を描写するように構成されたディスプレイを含む、
他の一般的な実施例によると、コンピュータが読み取り可能な記憶媒体がコンピュータプログラムを組み込む。コンピュータプログラムは、オブジェクトの少なくとも第1の画像を受け取り、第1の画像のオブジェクトを検出する命令を含む。コンピュータプログラムはまた、第1の画像のオブジェクトの検出に基づいて、オブジェクトデータマップを生成する命令を含む。オブジェクトデータマップは、第1の画像のピクセルの各々について、ピクセルの各々でオブジェクトが検出されたか否かを示す、コンピュータプログラムはさらに、動き履歴を生成し、動き履歴に基づいてアプリケーションを制御する命令を含む。動き履歴は、オブジェクトデータマップに含まれるピクセルの各々について、ピクセルの各々でオブジェクトが検出されてからの時間の指標を示す。
他の一般的な実施例によると、システムは、オブジェクトの少なくとも第1の画像を受け取る手段と、第1の画像のオブジェクトを検出する手段とを含む。システムはまた、第1の画像のオブジェクトの検出に応じて、オブジェクトデータマップを生成する手段を含む。オブジェクトデータマップは、第1の画像のピクセルの各々について、ピクセルの各々でオブジェクトが検出されたか否かを示す。システムはさらに、動き履歴を生成する手段と、動き履歴に基づいてアプリケーションを制御する手段とを含む。動き履歴は、オブジェクトデータマップに含まれるピクセルの各々について、ピクセルの各々でオブジェクトが検出されてからの時間の指標を示す。
本書で説明する様々な概念及び実施例について理解を容易にするために簡単に概要を説明した。より完全な理解は、添付の図面とともに以下の詳細な説明を参照して得ることができる。その他の実施例を用いることも、変更を行うことも可能であることは明らかである。
動き履歴に基づいてアプリケーションを制御するように構成されたシステムの一例を示すブロック図である。 動き履歴に基づいてアプリケーションを制御する処理の一例を説明するフローチャートである。 画像の中のオブジェクトを検出する処理の一例を説明するフローチャートである。 画像の中のオブジェクトを検出する処理の一例を説明するフローチャートである。 画像の中のオブジェクトを検出する処理の一例を説明するフローチャートである。 動的背景モデルを生成する処理の一例を説明するフローチャートである。 画像の中のオブジェクトを検出する処理の一例を説明するフローチャートである。 動き履歴を生成する処理の一例を説明するフローチャートである。 動き履歴を生成する処理の一例を説明するフローチャートである。 動き履歴を生成する処理の一例を説明するフローチャートである。 動き履歴を生成する処理の一例を説明するフローチャートである。 アプリケーションの仮想オブジェクトを操作する例を示す図である。 アプリケーションの仮想オブジェクトを操作する例を示す図である。 アプリケーションの仮想オブジェクトを操作する例を示す図である。 アプリケーションの仮想オブジェクトを操作する例を示す図である。 アプリケーションの仮想オブジェクトを操作する例を示す図である。 アプリケーションの仮想オブジェクトを操作する例を示す図である。 アプリケーションの仮想オブジェクトを操作する例を示す図である。 アプリケーションの仮想オブジェクトを操作する例を示す図である。 アプリケーションの仮想オブジェクトを操作する例を示す図である。 アプリケーションの仮想オブジェクトを操作する例を示す図である。 アプリケーションの仮想オブジェクトを操作する例を示す図である。 マッピング処理の一例を示す図である。 動き履歴に基づいてアプリケーションを制御するように構成されたインタラクティブシステムの一例を示す図である。 動き履歴に基づいてアプリケーションを制御するように構成されたインタラクティブシステムの一例を示す図である。 動き履歴に基づいてアプリケーションを制御するように構成されたインタラクティブシステムの一例を示す図である。 動き履歴に基づいてアプリケーションを制御するように構成されたインタラクティブシステムの一例を示す図である。 動き履歴に基づいてアプリケーションを制御するように構成されたインタラクティブシステムの一例を示す図である。 動き履歴に基づいてアプリケーションを制御する処理の一例を説明するフローチャートである。 その他の一般的な実施例による、代表的なシステムの外観を説明する図である。 図30に示す装置の内部構造を説明するブロック図である。
同様の参照番号は同様の構成要素を表している。
図1は、動き履歴に基づいてアプリケーションを制御するように構成された一例としてのシステム100を示す。本システム100は、カメラ100と、表示装置120と、照明器130と、コンピューティング装置140を含む。
カメラ110は、画像を撮像する装置である。例えば、カメラ110は、デジタルカメラ、デジタルビデオカメラ、又はその他の種類の画像を撮像する装置であってもよい。カメラ110は、1以上のカメラを含んでもよい。カメラ110は、アプリケーションと相互に連携するオブジェクトの画像を撮像してもよい。例えば、カメラ110は、カメラ110の視野の中でアプリケーションと相互に連携する物理的な人物又はユーザの画像を撮像してもよい。
表示装置120は、画像を表示する。例えば、表示装置120は、モニタ、テレビ、液晶ディスプレイ(LCD)、プラズマディスプレイ装置、プロジェクタ画面を有するプロジェクタ、裸眼立体ディスプレイ、ブラウン管(CRT)ディスプレイ、DLP(digital light processing)ディスプレイ、又は画像表示を行うように構成されたその他の種類の表示装置であってもよい。表示装置120は、1以上の表示装置を含んでもよい。表示装置120は、アプリケーションと関連する画像を表示してもよい。例えば、表示装置120は、アプリケーションが生成する画像を表示してもよい。アプリケーションが生成する画像は、カメラ110が撮像した画像に基づいて、アプリケーションと相互に連携する物理的な人物又はユーザの表示(rendering)を含んでもよい。
照明器130は、光源を提供する装置である。例えば、照明器130は、フラッシュ装置、白熱電球、蛍光電球、発光ダイオード(LED)、ハロゲン光源、ネオン光源、キセノン光源、赤外線光源、又は、カメラ110が撮像するオブジェクトを照明するために構成されたその他の種類の装置であってもよい。照明器130は、1以上の照明器を含んでもよい。照明器130は、カメラ110が撮像するオブジェクトの高品質の画像を取得できるように支援する光を生成するようにしてもよい。いくつかの実施例では、システム100は、照明器130を含まなくてもよく、あるいは、照明器130は、個別の状況でのみ使用するようにしてもよい。例えば、照明器130は、夜間又は暗室でのみ使用するようにしてもよい。
コンピューティング装置140は、有線又は無線の経路でカメラ110、表示装置120、照明器130に電気的に接続されており、システム100の動作を制御できるようになっている。いくつかの例では、コンピューティング装置140は、アプリケーションを実行するように構成されたプロセッサ又は制御回路を含んでもよい。これらの例では、コンピューティング装置140は、カメラ110が撮像した画像を受け取ると、該画像を処理して、画像の中のオブジェクト(例えば、ユーザ)の位置を検出するようになっている。画像の中の検出したオブジェクトの位置を追跡して、アプリケーションの実行を制御するために用いてもよい。例えば、コンピューティング装置140が実行するアプリケーションは、画像の中の追跡したオブジェクトの位置に基づくオブジェクトの描写、ユーザ入力コマンドの生成、又は、画像の中のオブジェクトの追跡した位置に基づく別の種類のユーザとのインタラクションを含んでもよい。
コンピューティング装置140は、又、カメラ110、表示装置120、照明器130の動作と設定を制御してもよい。コンピューティング装置140は、汎用コンピュータ(例えば、デスクトップパーソナルコンピュータ、ワークステーション、又はラップトップコンピュータ)、サーバ、ゲーム機器、コンソール、又は、プロセッサ、あるいは、命令を実行するように構成されたその他の制御回路を含むその他の種類の電子機器を含んでもよい。
図2は、動き履歴に基づいてアプリケーションを制御する一例として処理200を説明するフローチャートである。簡便のため、処理200の実行については、図1を参照して説明した個別の構成要素を参照して説明する。しかしながら、異なる構成要素を用いてシステムの構造を設計する場合、又は構成要素の間で機能の分散が異なる場合など、他の実施例にも同様の手法を適用することができる。
コンピューティング装置140は、少なくともオブジェクトの第1の画像を受け取る(210)。例えば、コンピューティング装置140は、カメラ110が撮像した1以上の画像を受け取る。この場合、カメラ110が撮像した1以上の画像は、アプリケーションと相互に連携(interact)するオブジェクト(例えば、ユーザ又は、ユーザが操作するオブジェクト)の画像でもよい。アプリケーションは、コンピューティング装置140が実行するアプリケーションでもよく、アプリケーションは、表示装置120のディスプレイに表示する画像を生成してもよい。オブジェクト(例えば、ユーザ又は、ユーザが操作するオブジェクト)は、表示装置120に表示する画像に基づいてアプリケーションと相互に連携してもよい。
コンピューティング装置140は、第1の画像のオブジェクトを検出する(220)。例えば、コンピューティング装置140は、第1の画像を処理又は分析して、第1の画像に含まれるオブジェクトの位置を検出してもよい。この例では、コンピューティング装置140は、任意の種類の技術を用いてオブジェクトの複数の画像群、又は単一の画像の中のオブジェクトを検出してもよい。コンピューティング装置140は、時間的に連続して撮像された一連の画像からオブジェクトを検出して動きを追跡してもよい。
コンピューティング装置140は、様々な技術を用いて、第1の画像(220)のオブジェクトを検出することができる。図3〜7を参照して、コンピューティング装置140が第1の画像(220)のオブジェクトを検出するために用いることができる処理の例について説明する。
図3に、画像の中のオブジェクトを検出する一例として処理300を示す。画像の中のオブジェクトを検出する処理300は、処理200を実行する際に、第1の画像(220)のオブジェクトを検出するために用いてもよい。
処理300は、第1の画像群にアクセスする処理(301)と、第2の画像群にアクセスする処理(302)を含む。例えば、コンピューティング装置140は、カメラ110が撮像した1以上の画像を含む第1の画像群にアクセスし、カメラ110が撮像した1以上の画像を含む第2の画像群にアクセスする。第1の画像群と第2の画像群は、連続する処理済みのメラ画像群を意味してもよく、連続する未処理のカメラ画像群を意味してもよい。
いくつかの実施例では、第1の画像群と第2の画像群に含まれる画像は、マルチバッファリングされる。マルチバッファリングされる画像で、一つの画像が複数の画像バッファを含んでもよい。画像バッファは、循環状に満たされる。例えば、二つのバッファにマルチバッファリングされる画像では、画像は、第1の画像バッファに書き込まれ、次の画像は第2の画像バッファに書き込まれる。
次の画像(例えば、第3の画像)は、第1の画像バッファに書き込まれ、第1の画像バッファの内容と入れ替わる。次の画像(例えば、第4の画像)は、第2の画像バッファに書き込まれ、第2の画像バッファの内容と入れ替わる。この処理が、続く画像に対して、第1の画像バッファと第2の画像バッファが常時最新の画像と2番目に新しい画像を有するように、繰り返されていく。画像データはコピーする必要がないため、この処理は、システムの効率を向上することができる。カメラ110が複数のカメラを含み、複数の画像を生成する実施例では、第1の画像群は、複数のカメラからの画像を含み、第2の画像群は複数のカメラからの画像を含むようにしてもよい。
コンピューティング装置140は、第1の画像群と第2の画像群を比較する(303)。例えば、コンピューティング装置140は、第1の画像群と第2の画像群を比較して、画像群から撮像したオブジェクトの動きを検出するために用いる値を生成してもよい。この例では、コンピューティング装置は、第1の画像群に含まれる1以上の画像と、第2の画像群に含まれる1以上の画像との間の差分(例えば、差分の絶対値)を算出してもよい。算出した差分は、コンピューティング装置140が、第1の画像群と第2の画像群に含まれる画像全体からオブジェクトの動きを検出するために用いられる。
画像群は、カラー画像の場合のように複数のチャネルを含んでもよい。ピクセル値は、複数のチャネルのデータ値を含んでもよい。差分の計算値(例えば、差分の絶対値)を、チャネルの各々について算出して、その結果を組み合わせてもよい。画像群は複数のカメラからのデータを含んでもよい。ピクセル値は複数のカメラからのデータを含んでもよい。差分の計算値(例えば、差分の絶対値)を、カメラのピクセルデータの各々について算出して、その結果を組み合わせてもよい。画像群は、複数のカメラの露出レベルからのデータを含んでもよい。ピクセル値は、複数の露出レベルからのデータ値を含んでもよい。差分の計算値(例えば、差分の絶対値)を、露光レベルのピクセルデータの各々について算出して、その結果を組み合わせてもよい。
算出結果を組み合わせる処理は、様々な部分値の合計値を算出する処理を含んでもよい。あるいは、結果を組み合わせる処理は、様々な部分値の最大値を選択する処理を含んでもよい。結果を組み合わせるさらなる処理は、画像群の所定の部分値(例えば、チャネル、画像、又は露出)から生成した結果を選択する処理を含んでもよい。
コンピューティング装置140は、フィルタリング動作を用いて差分の結果を処理する(304)。フィルタリング動作は、平均化カーネル(averaging kernel)であってもよい。一実施例のフィルタリング動作では、ピクセルの各々について、そのピクセルを中心として近傍にある全てのピクセルについて合計値を算出するようにしてもよい。画像のブレについて平均化カーネルを用いてもよい。この実施例では、動作は、以下の影響を有することができる。ピクセルの差分を、その近傍のピクセルによって強化又は低下させることができる。孤立したピクセルを、その近傍のピクセルによって強化又は低下させることができる。孤立して、かつ差分値の大きなピクセルを抑圧することができる。また、比較的小さな差分値を有するピクセルのクラスタを補強し、クラスタの形状を平滑化することができる。
コンピューティング装置140は、閾値動作によってフィルタリングした差分結果を処理する(305)。閾値動作は、フィルタリングした差分結果のピクセルを一つずつ閾値と比較する。ピクセルが閾値以上の値を有する場合、そのピクセルを「動きあり」として分類し、それ以外のピクセルは「動きなし」として分類する。
閾値動作を実行する際(305)、コンピューティング装置140は、閾値を、第1の画像群と第2の画像群に含まれる画像を撮像するために使用したカメラ110に対応するカメラ制御データに基づいて調整することができる。カメラ制御データは、カメラに、撮像したシーンに差違がない場合には、連続するカメラ画像にその違い(例えば、カメラ露出時間又はゲインレベルを調整した時など)を含ませることができる。閾値動作では、閾値を、撮像したシーンに差違がない場合には連続する画像の最大予測差分によって増加させることにより、瞬間的に調整することができる。これは、カメラを調整している際に動き検出によって誤って動きが検出されることを削減する効果がある。
コンピューティング装置140は、閾値動作を実行する際に得られたピクセルの分類を動きデータとして提供する(306)。動きデータは、アプリケーションを制御する際に使うことができる。例えば、動きデータがオブジェクト(例えば、ユーザ)の動きを表す実施例では、オブジェクト(例えば、ユーザ)の描写を、アプリケーションの一部として表示装置120に表示することができる。
図3を参照して説明した処理に加えて、コンピューティング装置140は、第1の画像からオブジェクトを検出するためにその他の技術を使用してもよい(220)。例えば、図4〜7を参照して説明する処理は、コンピューティング装置140が第1の画像からオブジェクトを検出する(220)ために用いることができる追加の処理を示す
画像の中からオブジェクトを検出するその他の実施例では、オプティカルフローを算出する。一般的に、オプティカルフローのアルゴリズムは、画像の中の動き(例えば、画像の中で位置が変化したオブジェクト)を識別し、画像の中で認識した動きの速度(例えば、方向/向き、及び大きさ)を表すベクトルを構築する。このように、オプティカルフローのアルゴリズムは、画像の中に動きがあるか否かを判定するだけでなく、画像の中の動きの方向と大きさも判定する。方向と大きさに加えて、実施例では、オプティカルフローが、位置毎の信頼度を通知するようにしてもよい。
図4に、画像の中のオブジェクトを検出するその他の例として処理400を示す。画像の中のオブジェクトを検出する処理400は、処理200を実行する際に第1の画像の中のオブジェクトを検出する(220)ために用いてもよい。
処理400は、第1の画像群にアクセスする処理(401)と第2の画像群にアクセスする処理(402)を含む。第1の画像群にアクセスする処理(401)と第2の画像群にアクセスする処理(402)は、図3を参照して説明した第1の画像群にアクセスする処理(301)と第2の画像群にアクセスする処理(302)と同様の手法によって行うことができる。第1の画像群と第2の画像群は、連続する処理済みのメラ画像群を意味してもよく、連続する未処理のカメラ画像群を意味してもよい。いくつかの実施例では、第1の画像群と第2の画像群に含まれる画像は、図3を参照して説明したようにマルチバッファリングされてもよい。
オプティカルフロー処理の一実施例では、コンピューティング装置140は、画像を基準ブロックに分割する(403)。例えば、コンピューティング装置140は、画像を1以上のピクセルのブロックに分割する。いくつかの実施例では、コンピューティング装置140は、アクセスした画像の各々をブロックに分割する。基準ブロックは、サイズが同一でもよく、あるいは、異なってもよい。例えば、基準ブロックは、基準ブロックに含まれる内容の一意性に応じて異なるサイズであってもよい。
基準ブロックの各々についてコンピューティング装置140は、例えば、最も類似しているブロックなど、他の画像において類似した外観を有するブロックを識別する(404)。ブロックの類似性は、ブロック内のピクセルにおいてピクセル値の差分の合計として算出してもよい。ここでピクセル値の差分とは、基準ブロックのピクセルのピクセル値と、類似ブロックの対応するピクセルとの差分である。差分は、類似ピクセルの値から基準ピクセルの値を引いた値の絶対値として算出することができる。最も類似しているブロックとして、ピクセル値の差分の合計が最小のブロックを選択することができる。
いくつかの実施例では、コンピューティング装置140は、画像の基準ブロックと、他の画像のブロックとを比較する。コンピューティング装置140は、最初に、画像の基準ブロックの位置から所定の距離の中の位置にある他の画像のブロックを比較することができる。一意的に合うもの見つからない場合、コンピューティング装置140は、動的に、ブロックのサイズを変更してもよい。
コンピューティング装置140は、類似ブロック毎の、対応する基準ブロックに対する相対位置に基づいて、動きの方向と大きさを示すベクトルを決定する(405)。動きベクトルは、基準画像を取得した時間と、他の画像を取得した時間との間で画像の中のオブジェクトが時間的に動いた方向と距離をベクトルが示すように、基準ブロックと最も類似してマッチするブロックとの間の位置の差分として算出することができる。さらに、コンピューティング装置は、信頼度を判定してもよい。ブロックの中の画像の外観の類似性を示す信頼の程度として、信頼度をピクセル差分の合計として算出することができる。
他の実施例では、オプティカルフロー算出を用いて、カメラ110によって撮像された画像の中のオブジェクトの動きを検出してもよい。画像群は、カラー画像の場合のように複数のチャネルを含んでもよい。ピクセル値は、複数のチャネルのデータ値を含んでもよい。差分の計算値(例えば、差分の絶対値)を、チャネルの各々について算出して、その結果を組み合わせてもよい。画像群は複数のカメラからのデータを含んでもよい。ピクセル値は複数のカメラからのデータを含んでもよい。差分の計算値(例えば、差分の絶対値)を、カメラのピクセルデータの各々について算出して、その結果を組み合わせてもよい。画像群は、複数のカメラの露出レベルからのデータを含んでもよい。ピクセル値は、複数の露出レベルからのデータ値を含んでもよい。差分の計算値(例えば、差分の絶対値)を、露光レベルのピクセルデータの各々について算出して、その結果を組み合わせてもよい。結果を組み合わせる処理は、様々な部分値の合計値を算出する処理を含んでもよい。あるいは、結果を組み合わせる処理は、様々な部分値の最大値を選択する処理を含んでもよい。結果を組み合わせるさらなる処理は、画像群の所定の部分値(例えば、チャネル、画像、又は露出)から生成した結果を選択する処理を含んでもよい。
コンピューティング装置140は、閾値に基づいて動きがあるかを判定する(406)。例えば、第1の閾値を、変位の大きさが第1の閾値以上の場合に、ブロックを動きありとして分類するように、動きの大きさに基づいて適用してもよい。また、第2の閾値を、変位の大きさが第1の閾値以上であり、ブロックのマッチングの品質が第2の閾値よりも類似している場合に、ブロックを動きありとして分類するように、ブロックの類似性に基づいて適用してもよい。
コンピューティング装置140は、ピクセルの動きの方向、大きさ、分類を動きデータとして提供する(407)。さらに、動きデータは、ユーザの動きを含み、アプリケーションの制御する際に用いてもよい。
図3及び4を参照して説明した処理に加えて、コンピューティング装置140は、第1の画像の中のオブジェクトを検出する(220)ために他の技術を用いてもよい。一例として、コンピューティング装置140が第1の画像の中のオブジェクトを検出する(220)ために用いることができる他の処理について図5を参照して説明する。
図5に、画像の中のオブジェクトを検出するためのその他の例として処理500を示す。画像の中のオブジェクトを検出する処理500は、処理200を実行する際に第1の画像の中のオブジェクトを検出する(220)ために用いることができる。処理500は、カメラ110が撮像した画像の背景のモデルを用いて、カメラ110が撮像した画像の中のオブジェクト(例えば、ユーザ)を検出する。
処理500は、画像群にアクセスする処理(501)を含む。画像群にアクセスする処理(501)は、図3及び図4を参照して説明した、第1の画像群にアクセスする処理(301)及び第1の画像群にアクセスする処理(401)と同様の手法で実行することができる。
コンピューティング装置140は、背景モデルを生成する(502)。いくつかの実施例では、コンピューティング装置140は、カメラ110の視野の中に静止した、又は不変の背景要素のみが存在する時間に、カメラ110が撮像した画像に基づいて背景モデルを生成してもよい。これらの実施例では、画像の中のオブジェクトを画像と背景モデルとの比較に基づいて検出できるように背景モデルを構成することができる。いくつかの例では、背景モデルは、不動であり、動き履歴に基づいてアプリケーションを制御するために撮像する画像より前に撮像した画像に基づいて生成する。他の例では、背景モデルは、動的であり、動き履歴に基づいてアプリケーションを制御するために撮像する画像より前、及び/又は同時に撮像した画像に基づいて生成する。動的背景モデルを生成する処理の一例について、図6を参照して説明する。
コンピューティング装置140は、アクセスした画像群を背景モデルと比較して、画像の差分を識別する(503)。差分はオブジェクト又はユーザの存在を示す。差分動作は、ピクセルの各々についてピクセル値の差分の絶対値を算出することができる。
いくつかの実施例では、画像群は、カラー画像の場合のように複数のチャネルを含んでもよい。ピクセル値は、複数のチャネルのデータ値を含んでもよい。差分の計算値(例えば、差分の絶対値)を、チャネルの各々について算出して、その結果を組み合わせてもよい。画像群は複数のカメラからのデータを含んでもよい。ピクセル値は複数のカメラからのデータを含んでもよい。差分の計算値(例えば、差分の絶対値)を、カメラのピクセルデータの各々について算出して、その結果を組み合わせてもよい。画像群は、複数のカメラの露出レベルからのデータを含んでもよい。ピクセル値は、複数の露出レベルからのデータ値を含んでもよい。差分の計算値(例えば、差分の絶対値)を、露光レベルのピクセルデータの各々について算出して、その結果を組み合わせてもよい。
算出結果を組み合わせる処理は、様々な部分値の合計値を算出する処理を含んでもよい。あるいは、結果を組み合わせる処理は、様々な部分値の最大値を選択する処理を含んでもよい。結果を組み合わせるさらなる処理は、画像群の所定の部分値(例えば、チャネル、画像、又は露出)から生成した結果を選択する処理を含んでもよい。
コンピューティング装置140は、フィルタリング動作を用いて差分の結果を処理することができる(504)。フィルタリング動作(504)は、図3を参照して説明したフィルタリング動作(304)と同様の手法で実行してもよい。
コンピューティング装置140は、閾値動作によってフィルタリングした差分結果を処理する(505)。閾値動作(505)は、図3を参照して説明した閾値動作(305)と同様の手法で実行してもよい。
コンピューティング装置140は、閾値動作を実行する際に得られたピクセルの分類をオブジェクト(例えば、ユーザ)データとして提供する(506)。オブジェクトデータは、アプリケーションを制御する際に使うことができる。例えば、オブジェクトデータがオブジェクト(例えば、ユーザ)を表す実施例では、オブジェクト(例えば、ユーザ)の描写を、アプリケーションの一部として表示装置120に表示することができる。
図6に、動的背景モデルを生成する一例として処理600を示す。動的背景モデルを生成する処理600は、処理500を実行する際に背景モデルを生成する(502)ために用いることができる。処理600により生成される背景モデルは動的で、シーンで変化するように自動的に更新することができる。
コンピューティング装置140は画像群にアクセスする(602)。アクセスした画像群は、図5を参照して説明した、ステップ501でアクセスした画像群であってもよい。
コンピューティング装置140は、サンプリング処理を用いてアクセスした画像群にサンプリングを行う(603)。サンプルは、背景に加えてユーザを含むことができる。いくつかの実施例では、アクセスした画像群の中に含まれる画像のピクセルの各々について一つのピクセル値をサンプリングする。他の実施例では、アクセスした画像群の中に含まれる画像のピクセルの各々についてある範囲の値をサンプリングする。この値の範囲は、そのピクセルについて短時間に観察した値の範囲を表すことができる。
この範囲の影響を背景モデルに含ませることによって、信号ノイズをモデル化することができる。複数のフレームのデータをサンプルに寄与させることによって、この範囲を観察することが可能となるが、フレームをサンプリングしている間にユーザに動きがある場合、ユーザによって遮られうる背景部分も増える。使用するフレームの最適な数は、予測されるユーザの動きに依存する。最適な数のフレームを使用できるとしても、個別の構成に応じて、フレームの最適な数とは異なる数のフレームを使用してもよい。例えば、フレームの最適な数より少ない数のフレームを用いて、ユーザ検出に係わる処理能力を低下させてもよい。一実施例では、ユーザの動きによって背景の必要以上の部分を遮られることなく、範囲の大部分を観察するためには、10個のフレームで十分であるため、10個のフレームをサンプリングする。
画像群は、カラー画像の場合のように複数のチャネルを含んでもよい。サンプリングしたピクセル値は、複数のチャネルのデータ値を含んでもよい。画像群は複数のカメラからのデータを含んでもよい。サンプリングしたピクセル値は複数のカメラからのデータを含んでもよい。画像群は、複数のカメラの露出レベルからのデータを含んでもよい。ピクセル値は、複数の露出レベルからのデータ値を含んでもよい。
コンピューティング装置140は、サンプリング処理(603)によって得たサンプルを、複数個(例えば、n個)のサンプルを保管するための保管場所を有するバッファ604に追加する。ここで、新しいサンプルが追加される都度、履歴の最も古いサンプルは置き換えられる。したがって、履歴はピクセルの各々について、n個のサンプリングされた値を有する。サンプル値は、画像の複数のカラーチャネル又は複数のカメラからのデータを表す複数のデータ値を有してもよい。さらにサンプル値は、サンプリング処理(603)が範囲を生成する場合、範囲の表示を含んでもよい。バッファで示される時間期間であるdは、新しいサンプルが取得され、履歴に追加される速度(rate)であるrに依存するため、式(1)のように表される。
Figure 2010515170
この動的背景モデルの実施例でコンピューティング装置140は、ピクセルの各々について、そのピクセルが表す場所において背景を表すと判定した値を選択する選択処理(605)を実行する。背景を表す値を選択する処理の一つは、ピクセルの各々についてn個のサンプルの中央値を選択することである。どのピクセルでも、バッファにおけるサンプリングしたn個の値の数は、ユーザを表すことができる。期間dは、時間期間dの中で蓄積されたd/2以上で背景の何れのピクセルもユーザによって遮蔽されることのないように選択することができる。このため、どのピクセルについても、サンプリングされた値の大部分は背景を表すこととなるので、サンプリングした値の中央値が背景を表す値となる。
バッファ604の複数のサンプルを、生成したサンプルの第1群に初期化することができる。あるいは、バッファ604の複数のサンプルを、所定のデータに初期化してもよい。所定のデータは、シーンにユーザが不在であることが判明した時間に取得したサンプルを表すことができる。
コンピューティング装置140は、動的に生成した背景モデルを提供する(606)。例えば、動的に生成した背景モデルを処理500において用いて、画像群の中のオブジェクトを検出してもよい。
図3〜6を参照して説明した処理に加えて、コンピューティング装置140は、第1の画像の中のオブジェクトを検出する(220)ためにその他の技術を用いてもよい。コンピューティング装置140が、第1の画像の中のオブジェクトを検出する(220)ために実行することができるその他の処理の例について、図7を参照して説明する。
図7に、画像の中のオブジェクトを検出するその他の例として処理700を示す。画像の中のオブジェクトを検出する処理700は、処理200を実行する際に、第1の画像(220)のオブジェクトを検出するために用いてもよい。
コンピューティング装置140は、画像群にアクセスする(701)。画像群にアクセスする処理(701)は、図5を参照して説明した、画像群にアクセスする処理(501)と同様の手法で実行することができる。
コンピューティング装置140は、閾値動作を用いてアクセスした画像群に含まれる画像を処理する(702)。例えば、閾値動作は、画像のピクセルを一つずつ閾値と比較する。ピクセルが閾値以上の値を有する場合、そのピクセルを「動きあり」として分類し、それ以外のピクセルは「動きなし」として分類する。
コンピューティング装置140は、閾値動作に基づいてオブジェクトデータ(例えば、ユーザデータ)を生成する(703)。コンピューティング装置は、ピクセルの分類をオブジェクトデータとして提供する。
いくつかの実施例では、コンピューティング装置140は、カメラ制御データをカメラ110に提供して、カメラが画像を撮像する際に用いるパラメータを制御する。コンピューティング装置140はカメラ110のパラメータを制御して、カメラが撮像する画像の中のオブジェクト又はユーザを検出する性能を向上させることができる。例えば、カメラ制御データは、露出時間、ゲイン、アイリスを含むカメラのパラメータに影響を与える。いくつかの実施例では、コンピューティング装置140は、カメラ画像群の中の平均ピクセル値、又はその一部を算出する。平均ピクセル強度が閾値を下回る場合、コンピューティング装置140は、カメラにその感度(例えば画像輝度)を向上させるカメラ制御データを生成する。平均ピクセル強度が閾値を上回る場合、コンピューティング装置140は、カメラにその感度(例えば画像輝度)を低下させるカメラ制御データを生成する。
生じる感度(例えば輝度)の変化が、画像群の中のオブジェクトを検出するために適切な動作に支障のない程度に十分小さくなるように、ファインステップでカメラを調整してもよい。画像群の中のオブジェクトを検出するための処理300を行う実施例では、輝度の有効な変化が、閾値処理(305)の閾値より小さくなるように変化幅(step size)を細かくするとよい。同様に、画像の中のオブジェクトを検出するための他の処理(例えば、処理400、500又は700)を行う実施例では、輝度の有効な変化が、閾値処理の閾値(406、505又は702で用いた閾値)より小さくなるように変化幅を細かくするとよい。代替の実施例では、露出時間、ゲイン及びアイリスを含むカメラのパラメータは、カメラ110に内蔵された自動露出処理で決定するようにしてもよい。この場合、カメラ制御データはカメラ110によって生成してもよい。
カメラ制御データを、画像の中のオブジェクトを検出する処理で用いてもよい。例えば、処理300を行う実施例では、閾値がカメラ制御データによって生じるピクセル値の差分より大きくなるように閾値処理(305)の閾値を一時的に増加させてもよい。同様に、その他の処理(例えば、処理400、500又は700)を行う実施例では、閾値がカメラ制御データによって生じるピクセル値の差分より大きくなるように閾値処理(406、505又は702)の閾値を一時的に増加させてもよい。
カメラ画像群の信号対ノイズ比は、ゲインレベルによって影響されることがある。処理300を行う実施例では、閾値がカメラのゲインレベルで予測されるノイズレベルより大きくなるように閾値処理(305)の閾値を自動的に調整してもよい。同様に、その他の処理(例えば、処理400、500又は700)を行う実施例では、閾値がカメラのゲインレベルで予測されるノイズレベルより大きくなるように閾値処理(例えば、406、505又は702)の閾値を自動的に調整してもよい。
周囲光のレベルを検出するためにカメラ制御データを用いてもよい。いくつかの実施例では、コンピューティング装置140又はカメラ110は、カメラ露出時間(例えば、カメラ制御データにより示される)を閾値時間と比較し、カメラゲインレベル(例えば、カメラ制御データにより示される)を閾値ゲインレベルと比較する。露出時間が閾値時間より短い、又はゲインが閾値ゲインレベルより低い場合は、昼光(daylight)処理モードを開始するようにしてもよい。カメラ制御データが、カメラが閾値時間より長い露出時間、又は閾値レベルより高いゲインを用いていることを示す場合は、夜間処理モードを開始するようにしてもよい。カメラ制御データはさらに、照明器130の動作を制御する照明器130制御データを含んでもよい。
日光に照らされたシーンは、コントラストがとても大きくなることがある。このような条件で、いくつかのビデオカメラは、画像の中のオブジェクト(例えば、ユーザ)を検出するための十分なコントラストを影の領域で検出できなくなることがある。いくつかの実施例では、カメラ110は、高ダイナクックレンジカメラを含む。高ダイナミックレンジカメラは、高いダイナクックレンジを有するため、画像の中のオブジェクトを影の領域と日光に照らされた領域の両方から同時に検出するために必要なコントラストを提供することができる。高ダイナミックレンジカメラは、他のカメラと比較して高額となり、明るい日光の動作にはダイナミックレンジが不十分な場合がある。カメラ110は、その他の技術を用いて各種カメラのダイナミックレンジを拡張してもよい。
いくつかの実施例では、カメラのダイナミックレンジを拡張するために、カメラを制御して2つ以上の露出時間を連続して高速に入れ換える。これらの実施例では、第1のカメラ画像は第1の露出期間で撮像され、第2のカメラ画像は第2の露出期間で撮像される。第1のカメラ画像でシーンの日光に照らされた部分が高いコントラスで見えるように第1の露出期間を短くする。第1のカメラ画像ではシーンの影の部分がとても暗く見える。第2のカメラ画像でシーンの影の部分が高いコントラスで見えるように第2の露出期間を長くする。第2のカメラ画像ではシーンの日光で照らされた部分が純白に見える。
これらの実施例では、カメラ画像群と処理済みカメラ画像群は、第1の露出時間で撮像された第1のカメラ画像と、第2の露出時間で撮像された第2のカメラ画像を含む。画像の中のオブジェクトを検出する処理(220)は、画像群の第1の画像と第2の画像の両方を用いることができる。アプリケーション制御処理及びキーイング(keying)処理などのその他の処理は第1の画像のみを用いてもよい。
カメラのダイナミックレンジを拡張する他の実施例では、カメラ110は2台以上のカメラを有してもよい。これらの実施例では、第1のカメラ画像は第1のカメラによって撮像し、第2のカメラ画像は第2のカメラによって撮像する。第1のカメラは、短い露出期間を用いる、あるいは、第1のカメラ画像でシーンの日光に照らされた部分が高いコントラストで見えるようにレンズフィルタなどの他の手段を用いる。第1のカメラ画像のシーンの影の部分はとても暗く見えることがある。第2のカメラは、第1のカメラより長い露出期間を用いる、あるいは、第2のカメラ画像でシーンの影の部分が高いコントラストで見えるようにゲインレベルを高くするなどの他の手段を用いる。第2のカメラ画像のシーンの日光に照らされた部分は純白に見えることがある。これらの実施例で、カメラ画像群と処理済みカメラ画像群は、第1のカメラで撮像された第1のカメラ画像と、第2のカメラで撮像された第2のカメラ画像を含む。画像の中のオブジェクトを検出する処理(220)は、画像群の第1の画像と第2の画像の両方を用いることができる。アプリケーション制御処理及びキーイング(keying)処理などのその他の処理は第1の画像のみを用いてもよい。
カメラのダイナミックレンジを拡張するさらなる実施例では、固有のゲインレベルをセンサ要素群に適用することができるカメラを含んでもよい。これは、固有のゲインレベルをセンサ要素の赤色の群、緑色の群、青色の群に適用することができる多くのカラーカメラを含んでもよい。センサ要素の第1群のゲインレベルを低いレベルに設定し、カメラの露出をシーンの日光に照らされ部分をその群のデータで高いコントラスに見えるようにしてもよい。青色要素は他の要素と比較して感度が低い可能性があるため、カラーカメラは、例えば、第1群を青色のセンサ要素の群としてもよい。センサ要素の第2群のゲインレベルをより高いレベルに設定し、第2のカメラ画像のシーンの影の部分を高いコントラストに見えるようにしてもよい。緑色要素は感度がとても高い可能性があるため、カラーカメラは、例えば、第2群を緑色のセンサ要素の群としてもよい。センサ要素の追加の群のゲインレベルを中間の感度を取得するように設定してもよい。カラーカメラでは、レンズフィルタが緑色の光を抑圧する(しかし完全には遮断しない)ようにカラーレンズフィルタを取り付けて、センサ要素の第1群と第2群の間の感度の差を一層広げるようにしてもよい。これらの実施例では、カメラ画像群と処理済みカメラ画像群は、複数のチャネルのデータを含んでもよい。画像の中のオブジェクトを検出する処理(220)は、画像データの複数のチャネルを用いることができる。これらの実施例では、画像の外観を薄く着色されて見えるようにすることができる。第2のカメラを用いて、見栄えの良い画像を別に得るようにしてもよい。アプリケーション制御処理及びキーイング(keying)処理などのその他の処理は見栄えの良い画像を用いてもよい。
室内や夜間に撮影する場合などの薄暗いシーンでは、輝度がとても低いことがある。これらの条件では、照明器130を用いてもよい。照明器130は、カメラ110が撮像する画像が見栄えが良くなり、ユーザに表示できるように可視光を照射することができる。あるいは、照明器130は、カメラが検出することができる赤外線光を照射してもよい。赤外線の波長は、多くのカメラが検知することはできるが、ユーザが検知できない、850nmでもよい。赤外線照射を用いる実施例では、グレースケールカメラを使用してもよい。カラーカメラなどの第2のカメラを用いて、第2の画像を取得し、アプリケーション制御処理及びキーイング(keying)処理などのその他の処理は第2の画像を用いてもよい。
いくつかの実施例では、照明器130がフレームを入れ換えている間に発光するように、照明器130をカメラ110と同期させてもよい。カメラ110は、照明器130により照明された第1の画像と、照明器130により照明されていない第2の画像を撮像する。撮像処理では、第2の画像のピクセル値を第1の画像の対応するピクセル値から引いてもよい。こうして得られた画像を処理済みカメラ画像群に含めることができる。この処理は、周囲光により照明された画像の部分を効果的に削除して、照明器によって照明された画像の部分を分離する。
照明器130は、表示装置120の近傍に配置してもよい。撮像するオブジェクトから照明器130からの距離が増加する程、照射される光の強度は減少する。いくつかの実施例では、背景にある人々又はオブジェクトに投じられる照射光の量は、ユーザに投じられる照射光の量よりも大幅に小さい。これらの実施例では、例えば、図7に示す画像の中のオブジェクト(例えば、ユーザ)を検出する処理700は、十分にユーザを検出することができる。閾値処理(702)で用いる閾値は、背景の人々又はオブジェクトの予測ピクセル値より大きい。照明器130は、背景の人々又はオブジェクトより大きいユーザを照明するため、照明を強くした結果、閾値より大きなピクセルが何れもユーザと見なされるように閾値を設定してもよい。
照射される光が、背景の人々又はオブジェクトを照明することなく、ユーザを照明するように、上方に位置してもよい。この実施例では、例えば、図7に示す画像の中のオブジェクト(例えば、ユーザ)を検出する処理700は、十分にユーザを検出することができる。閾値処理(702)で用いる閾値は、照明されない背景の人々及びオブジェクトの予測ピクセル値より大きい値となるように設定してもよい。
図2を再び参照すると、コンピューティング装置140は、第1の画像の中のオブジェクトの検出に基づいてオブジェクトデータマップを生成する(230)。例えば、コンピューティング装置140は画像を複数の小部分(例えば、ピクセル)に分割し、画像の小部分の各々についてオブジェクト(例えばユーザ)が画像のその小部分から検出されたか否かを示す指標を生成してもよい。この例では、オブジェクトデータマップは、画像に含まれるピクセルの各々について関連する情報を含むことができる。例えば、オブジェクトデータマップは、オブジェクトが画像の中でピクセルの各々について検出されたか否かを示す情報を含むことができる。コンピューティング装置140は、図3〜5及び図7を参照して説明した処理300、400、500、及び/又は700により生成される動きデータ及び/又はオブジェクトデータ(例えば、ユーザデータ)に基づいてオブジェクトデータマップを生成することができる。
コンピューティング装置140は、オブジェクトデータマップに含まれる画像の小部分の各々についてオブジェクトが検出されてからの時間を示す動き履歴を生成する(240)。例えば、コンピューティング装置140は、オブジェクトデータマップに含まれる複数の小部分を分析して、オブジェクトデータマップの小部分の各々について、画像のその小部分でオブジェクト(例えばユーザ)が検出されてからの時間を示す指標を更新してもよい。この例では、コンピューティング装置140は、オブジェクトがオブジェクトデータマップの対応する小部分で検出されたか否かに基づいて動き履歴に含まれる情報を更新することができる。例えば、オブジェクトが検出されたオブジェクトデータマップの全ての小部分について最新の検出処理でオブジェクトが検出されたことを示すように動き履歴を更新することができる。オブジェクトが検出されなかったオブジェクトデータマップの全ての小部分について、コンピューティング装置140は、対応する小部分でオブジェクトが検出されてからの時間の量を増加又は維持することができる。
いくつかの実施例では、オブジェクトが検出されてからの時間に最大値を設け、その最大値を超えた時間については、その小部分に対する動き履歴の更新をしないようにしてもよい。動き履歴は、画像に含まれるピクセルの各々について関連する情報を含んでもよい。例えば、動き履歴は、画像のピクセルの各々についてオブジェクト(例えばユーザ)が検出されてからの時間を示す情報を含んでもよい。動き履歴は、オブジェクトデータマップに含まれるピクセルの各々についてオブジェクト(例えばユーザ)が検出されてからの時間を示す指標を含むピクセルマップとして保持してもよい。オブジェクト(例えばユーザ)が検出されてからの時間を示す指標は、オブジェクトが最後に検出されてからのフレームカウント(frame count)、ユーザが最後に検出された時間を示す時間値、又はユーザが最後に検出されてからの時間を示す時間値を含んでもよい。
図8に、動き履歴を生成する一例として処理800を示す。動き履歴を生成する処理800は、処理200を実行する際に動き履歴を生成する(240)ために用いてもよい。いくつかの実施例では、生成した動き履歴は、ピクセルの各々について、その位置でオブジェクト(例えばユーザ)を検出されてからのフレームの数の表現を含む。
コンピューティング装置140は、前回算出した動き履歴を加齢して(802)、加齢した動き履歴を生成する(803)。例えば、コンピューティング装置140は、前回算出した動き履歴に含まれるピクセルの各々について関連するフレームカウントをインクリメントして、加齢した動き履歴を生成する。ここで、各ピクセルのフレームカウントは、位置がオブジェクト又はユーザで占有されていた直近の時間がさらに1フレーム前であることを示す。
コンピューティング装置140は、オブジェクトデータマップ(例えばユーザデータ)に含まれるデータを加齢した動き履歴に追加する(804)。例えば、オブジェクト(例えばユーザ)の一部として分類されたオブジェクトデータマップ(例えばユーザデータ)のピクセルについて、動き履歴の対応するピクセルを、そのピクセルが現在オブジェクト(例えばユーザ)によって占有されていることを示すフレームカウントを有するように設定する。この例では、コンピューティング装置140は、オブジェクト(例えばユーザ)によって現在占有されていると判定されるピクセルをゼロの値として設定し、オブジェクト(例えばユーザ)によって占有されていないと判定されるピクセルについては加齢したフレームカウントを維持する。この結果は最新の動き履歴として生成され、前回算出した動き履歴を上書きする。
図9に、動き履歴を生成する処理の一例として処理900を示す。動き履歴を生成する処理900は、処理200を実行する際に動き履歴を生成する(240)ために用いてもよい。いくつかの実施例では、生成した動き履歴は、ピクセルの各々についてオブジェクト(例えばユーザ)がその位置で検出されてからのフレームの数の表現を含む。
コンピューティング装置140は、前回算出した中間動き履歴にアクセスし(905)、前回算出した中間動き履歴を加齢して(902)、加齢した動き履歴を生成する(903)。例えば、コンピューティング装置140は、前回算出した中間動き履歴に含まれるピクセルの各々について関連するフレームカウントをインクリメントして、加齢した動き履歴を生成する。ここで、各ピクセルのフレームカウントは、位置がオブジェクト又はユーザで占有されていた直近の時間がさらに1フレーム前であることを示す。
コンピューティング装置140は、オブジェクトデータマップ(例えばユーザデータ)に含まれるデータを加齢した動き履歴に追加する(904)。例えば、オブジェクト(例えばユーザ)の一部として分類されたオブジェクトデータマップ(例えばユーザデータ)のピクセルについて、動き履歴の対応するピクセルを、そのピクセルが現在オブジェクト(例えばユーザ)によって占有されていることを示すフレームカウントを有するように設定する。この例では、コンピューティング装置140は、オブジェクト(例えばユーザ)によって現在占有されていると判定されるピクセルをゼロの値として設定し、オブジェクト(例えばユーザ)によって占有されていないと判定されるピクセルについては加齢したフレームカウントを維持する。この結果は最新の中間動き履歴として生成され、前回算出した中間動き履歴を上書きする。
コンピューティング装置140は、最新の中間動き履歴をフィルタリングして動き履歴を生成する(906)。フィルタ処理(906)は、平均化カーネルを含んでもよい。この例では、ピクセルの各々について、そのピクセルを中心とする近傍の中にある全てのピクセルについて合計値を算出する。画像のブレについては一般的に平均化カーネルを用いる。この例では、全体的な形状をより滑らかにして、端部をよりソフトに見えるようにして、ステップ(step)を見えにくくする。
図10に、動き履歴を生成する一例として処理1000を示す。動き履歴を生成する処理1000は、処理200を実行する際に動き履歴を生成する(240)ために用いてもよい。いくつかの実施例では、生成した動き履歴は、ピクセルの各々について、その位置でオブジェクト(例えばユーザ)を検出された時間の表現を含む。
コンピューティング装置140は、オブジェクトデータマップ(例えばユーザデータ)に含まれるデータを前回の動き履歴に追加する(1012)。例えば、オブジェクト(例えばユーザ)の一部として分類されたオブジェクトデータマップ(例えばユーザデータ)のピクセルについて、動き履歴の対応するピクセルを、現在の時間の表示を有するように設定する。オブジェクト(例えばユーザ)の一部として分類されなかったオブジェクトデータマップ(例えばユーザデータ)のピクセルに対応する前回の動き履歴のピクセルについて、時間データは、その位置でオブジェクト(例えばユーザ)が検出された最新の時間を反映するように維持される。この結果は最新の動き履歴として生成される。
図11に、動き履歴を生成する一例として処理1100を示す。動き履歴を生成する処理1100は、処理200を実行する際に動き履歴を生成する(240)ために用いてもよい。いくつかの実施例では、生成した動き履歴は、ピクセルの各々について、その位置でオブジェクト(例えばユーザ)を検出した時間の表現を含む。
コンピューティング装置140は、前回算出した中間動き履歴にアクセスし(1105)、オブジェクトデータマップ(例えばユーザデータ)に含まれるデータを前回算出した中間動き履歴に追加する(1112)。例えば、オブジェクト(例えばユーザ)の一部として分類されたオブジェクトデータマップ(例えばユーザデータ)のピクセルについて、前回算出された中間動き履歴の対応するピクセルを、最新の時間の表示を有するように設定する。オブジェクト(例えばユーザ)の一部として分類されなかったオブジェクトデータマップ(例えばユーザデータ)のピクセルに対応する前回算出した中間動き履歴のピクセルについて、時間データは、その位置でオブジェクト(例えばユーザ)が検出された最新の時間を反映するように維持される。この結果は最新の中間動き履歴として生成される。
コンピューティング装置140は、最新の中間動き履歴をフィルタリングして動き履歴を生成する(1106)。フィルタ処理(1106)は、平均化カーネルを含んでもよい。この例では、ピクセルの各々について、そのピクセルを中心とする近傍の中にある全てのピクセルについて合計値を算出する。画像のブレについては一般的に平均化カーネルを用いる。この例では、全体的な形状をより滑らかにして、端部をよりソフトに見えるようにして、ステップ(step)を見えにくくする。
図2を再び参照すると、コンピューティング装置140は、動き履歴に基づいてアプリケーションを制御する(250)。例えば、コンピューティング装置140は、アプリケーションを制御して、アプリケーションに関連する表示画面にオブジェクト(例えばユーザ)を描写する。この例では、オブジェクトの描写は、アプリケーションと相互に連携するユーザの描写であってもよい。ユーザは、表示装置120に、アプリケーションによって表示される表示画面に基づいて物理的に相互に連携することができる。
いくつかの実施例では、オブジェクト(例えばユーザ)の描写は、アプリケーションの表示画像のオブジェクト(例えばユーザ)の描写として処理済み又は未処理のカメラ画像の描写を含む。オブジェクト(例えばユーザ)の描写はまた、アプリケーションの表示画像にオブジェクト(例えばユーザ)の描写としてキー画像(keyed image)の描写を含む。オブジェクト(例えばユーザ)の描写はさらに、アプリケーションの表示画像にオブジェクト(例えばユーザ)の描写として効果画像の描写を含む。
オブジェクト(例えばユーザ)の描写は、描写がオブジェクト(例えばユーザ)の過去の動きに対応する特徴を含むなど、動き履歴に基づいてもよい。例えば、オブジェクトがユーザである実施例では、表示画像におけるユーザの描写は、ユーザの運動のトレーリング(trailing)効果を含んでもよい。この例では、ユーザが動く(例えば、腕又は脚)場合、ユーザの描写は、ユーザの運動(ユーザの腕又は脚の運動など)を示すトレーリング効果を含むことができる。例えば、ユーザの現在の位置は、完全レベルの不透明さで表示し、ユーザの過去の位置は、時間とともに次第に消えていくトレーリング効果でユーザの運動が表示されるように不透明さのレベルを減少させて表示してもよい。描写は、ユーザの実際の画像であってもよく、ユーザに対応するアニメ画像(例えば、ゲームをプレイするユーザに対応するゲームアプリケーションのキャラクタなど)に基づいてもよい。トレーリング効果は、ユーザの描写を見栄え良く表示することができる。
他の実施例では、パーティクル(particle)システムでユーザの過去の動きの特徴を有するユーザの描写を表示してもよい。これらの実施例では、ユーザに関連する動き履歴をパーティクルシステムに入力し、パーティクルシステムが、動き履歴に基づいて表示することができる。例えば、流体シミュレーションのアプリケーションでは、流体シミュレーションアプリケーションがユーザの描写を水の波紋として表示することができる。この例では、ユーザの過去の運動に対応する水の波紋よりもユーザのより最近の運動に対応する水の波紋を大きくしてもよい。
いくつかの実施例では、コンピューティング装置140は、動き履歴情報をアプリケーションにアルファチャネルのアルファ値として提供してもよい。アルファチャネルの情報は、アプリケーションが直接利用してユーザの動き履歴に基づくユーザの履歴を含む表示画像を表示することができる。
いくつかの実施例では、動き履歴に基づいてアプリケーションを制御する処理は、動き履歴に基づいてユーザ入力コマンドを判定する処理を含む。例えば、コンピューティング装置140は、動き履歴に基づくアプリケーションの表示画像でユーザが仮想オブジェクトをタッチしたか否かを判定してもよい。この例では、コンピューティング装置140は、ユーザが仮想ボール、仮想キャラクタ、又は動き履歴に基づく入力制御に接触したと判定するようにしてもよい。例えば、動き履歴によって得られる、追跡しているユーザの動きが、アプリケーションによって描写される仮想オブジェクトを横切る場合、コンピューティング装置140は、仮想オブジェクトが接触したと判定してもよい。
いくつかの例では、感度を制御することによって、仮想オブジェクトに接触することをより困難、又はより容易にすることができる。例えば、コンピューティング装置140は、ユーザの最新の位置が仮想オブジェクトを横切った場合に限り、ユーザがオブジェクトに接触したと判定してもよい。他の例では、コンピューティング装置140は、動き履歴が、ユーザの位置が所定のフレーム数の間、又は所定の時間期間の間に仮想オブジェクトを横切る、又は横切ったことを示す場合にユーザがオブジェクトに接触したと判定してもよい。
図12〜22に、アプリケーションの仮想オブジェクトを操作する例を示す。アプリケーションの中の仮想オブジェクトの操作は、図2を参照して説明した動き履歴に基づくアプリケーションの制御の例でもよい。
例えば、図12に、ユーザ1201の一例を示す。矢印1202は、ユーザ1201が自分の腕及び上半身を動かす方向を示す。カメラ110は、このように動いているユーザ1201の画像を撮像し、コンピューティング装置は、撮像した画像に基づいて動き履歴を生成することができる。
図13に、動くユーザ1201の一例に対応するオブジェクトデータマップの描写を示す。例えば、黒い部分1303はユーザが最も直近に検出された画像の位置を示す。オブジェクトデータマップは、黒い部分1303を表すピクセルが、例えば、1のデータ値を有し、白い部分を表すピクセルが、例えば、ゼロのデータ値を有するように画像のピクセルの各々についてデータ値を含むようにする。
図14は、動き履歴の一例を可視化した図である。黒い部分1403は、図13を参照して説明した黒い部分1303に相当する。黒い部分1403は、ユーザが最も直近に検出された画像ん位置をあらわす。図14の灰色の部分1404は、ユーザが前回のオブジェクトデータマップ(例えばユーザデータ)で検出された部分(図示されていない)を表す。ここで、灰色が暗い方がより直近であり、灰色が明るい方がより古い。いくつかの実施例では、動き履歴は画像のピクセルの各々について、そのピクセルでオブジェクト(例えばユーザが)が検出されてからの時間を表す値(例えばフレームカウント又は時間)を含む。これらの実施例では、値は白又はなし(例えば、オブジェクトが全く検出されなかった、あるいはフレーム数又は時間量の閾値を超えて検出されなかったピクセル)から黒(例えば、オブジェクトが最も直近に検出されたピクセル)までの範囲の個別のグレースケールカラーに相当する。さらに、これらの実施例では、動き履歴に基づいてオブジェクトを描写する処理は、動き履歴に含まれるピクセルの各々について相当するグレースケールカラーを描写することによってユーザの表示画像を描写する処理を含む。
いくつかの実施例では、カラー画像を動き履歴に基づくオブジェクトの描写を表示する際に用いるように、動き履歴の値の各々を(グレースケールカラーよりもむしろ)異なるレベルの透明度に対応付けてもよい。例えば、オブジェクトが最も直近に検出されたピクセルでは、対応するピクセルをアプリケーションの表示画面に完全に不透明表示する。オブジェクトが全く検出されなかった、あるいはフレーム数又は時間量の閾値を超えて検出されなかったピクセルでは、対応するピクセルをアプリケーションの表示画面に完全に透明表示する。
図15は、フィルタリングした動き履歴の一例を可視化した図である。例えば、図14に表示したデータは(例えば、906から1106の処理で説明した技術と同様の技術を用いて)図15に示す可視化を行うことができる。図15に示すように、図14に対して全体の形状は滑らかになっており、端部はよりソフトに見えており、ステップ(step)は見えにくい。
図16に、動き履歴に基づくアプリケーションの表示画像に表示されるユーザの描写の一例を示す。図16に示すように、ユーザの過去の動きはグレースケールカラーのレベルを変化させる、あるいは、不透明度のレベルを変化させて、ユーザの過去の動きがトレーリング(trail)効果として見えるように表示する。。
図17に、動き履歴に基づくアプリケーションを制御することによって得られる画像表示の一例を示す。この例で、ユーザの描写はアプリケーション画像1706及び1707(例えば仮想オブジェクト画像)と組み合わせたキー画像1705である。この例では、キー画像1705は、アプリケーション画像1706の上に描写され、アプリケーション画像1706はアルファチャネルで判定されたように透明で、キー画像1705の不透明な部分がアプリケーション画像1706を隠すように、キー画像1705の一部として見えている。さらに、アプリケーション画像1707はキー画像1705を隠すようにアプリケーション画像1707はキー画像1705の上に描写することができる。
図18に、動き履歴に基づいてアプリケーションを制御するために用いることができる、輪郭処理を用いた画像処理の一例を示す。輪郭処理は、動き履歴の輪郭を表す輪郭データを生成する。例えば、動き履歴は、あらゆるピクセルについて要素を含むビットマップ−多次元配列のデータとして生成することができる。輪郭データは所定の閾値よりも最近の動きを有する動き履歴のピクセルを囲む座標群を有してもよい。輪郭データは、ビットマップ描写よりも少ないデータ要素を有することができるため、いくつかのアプリケーションでは有利であり、計算効率を向上することができる。
いくつかの実施例では、輪郭処理はさらに、輪郭データのデータポイントの数を削減する処理を含む。データポイントの数を削減する処理は、略直線(relatively straight line)上に該当するポイントを削除する処理を含む。輪郭処理の他の例では、処理は、サイズが小さく、孤立したオブジェクトの輪郭を削除してもよい。図18に示す、輪郭を描写する代表的な輪郭データは、図15に示す動き履歴に相当する。図示のように、ユーザの腕の厚さは、最新の時間から閾値以内に発生した、動き履歴に含まれるユーザの全ての動きに相当する輪郭を含む。削減したデータポイントを輪郭に沿ったドットで示す。輪郭処理から得られたデータを用いてアプリケーション制御を行うことができる。例えば、コンピューティング装置140は、ユーザの輪郭と仮想物との位置を比較して、この二つが横切るか否かを判定して、ユーザが仮想オブジェクトに接触したか否かを判定することができる。輪郭データはまた、(例えば、パーティクルを輪郭のポイントから削除する、又は輪郭のポイントによってはじく(repel)ように)輪郭データに基づいて制御されるパーティクルシミュレーションアプリケーションを提供してもよい。
図19に、アプリケーションの表示画像に含まれる仮想オブジェクトと相互に連結するユーザの一例を示す。いくつかの実施例でユーザは、表示画面でユーザの描写が表示画面の仮想オブジェクトに「接触する」ように移動して、相互に連携することができる。ユーザが仮想オブジェクトに接触したことの判定は、仮想オブジェクトと一致するユーザの一部を識別する処理を含んでもよい。仮想オブジェクトを表す領域1908は、アプリケ−書によって識別することができる。領域1908は仮想オブジェクトの境界の形状を表してもよいし、あるいは、ユーザが仮想オブジェクトに接触することを容易にするために、領域は仮想オブジェクトより大きい領域を表してもよい。動き履歴を領域1908と比較してもよく、動き履歴の部分1909を、所定の閾値より直近のフレームカウント(又は時間)を用いてユーザの一部として分類してもよい。フレームカウント(又は時間)が増加するに従って、単一のユーザの行動に対して複数のイベント(例えば、接触していない状態から接触している状態への変化)が発生する可能性を削減する。このため、オブジェクトデータマップを使用する場合であっても、オブジェクトデータマップ(例えば最新のユーザデータ)の代わりに、動き履歴を用いることが有利なことがある
他の実施例では、キー画像又は輪郭データのアルファチャネルを動き履歴の代わりに用いてもよい。それらが動き履歴を表すためである。いくつかの例では、領域1908は静止してもよく(例えば「ボタン」)、又はアプリケーションに応じて動いてもよい(例えば「ボール」)。イベント(例えば、接触していない状態から接触している状態への変化)によって、アプリケーションの動作を開始できる。動作には、表示画像におけるオブジェクトの起動、選択又は運動を含むことができる。
図20に、アプリケーションの表示画像に含まれる仮想オブジェクトと相互に連携するユーザの一例を示す。ユーザを表す動き履歴の部分2009と領域2008は、より詳細には、動き履歴の部分1909と領域1908を表す。画像でオブジェクトを検出する処理がオプティカルフローを使用する場合などで、動き領域が動きの方向の描写を含む実施例では、領域2008の中の部分2009の平均動きを算出して、部分2009を表す動きを生成する。
図21に、アプリケーションの表示画像に含まれる仮想オブジェクトと相互に連携するユーザの重心処理の一例を示す。いくつかの実施例では、アプリケーションは領域2108の中の部分2109の重心2110を算出し、その位置を領域の重心2111と比較する。画像の中のオブジェクトを検出するためにオプティカルフローを使用しない場合であってもアプリケーションは領域2111の中の動きの方向と大きさを推定する。
図22に、アプリケーションが複数の重心を算出する場合の一例を示す。例えば、第1の所定の閾値よりも直近のフレームカウント(又は時間)を有する、領域2211の中のオブジェクト(例えばユーザ)の動きの部分2212の第1の重心2213を決定することができる。さらに、第2の所定の閾値よりも直近のフレームカウント(又は時間)を有する、領域2211の中のオブジェクト(例えばユーザ)の動きの部分2212の第2の重心2214を決定することができる。第1の閾値は、短い時間期間を有する。例えば、第1の閾値をより直近のフレームとしてもよい。第2の閾値は、第2の重心2214の経路が第1の重心2213の経路を追跡するように、より長い時間期間を有する。第2の重心2214に対する第1の重心2213の位置は、オブジェクト(例えばユーザ)部分2212の代表的な動きとみなすことができる。
第2の領域2211は、図21を参照して説明した第1の領域2108より大きくてもよい。アプリケーションは、表示画像のオブジェクトと一致する第1の領域2108の中にユーザの存在を検出する。アプリケーションは、第1の領域2108の中のユーザの部分2109の重心2110を中心とする第2の領域2211を算出する。例えば、第1の領域2108は、表示画面に表示される「ボール」と一致してもよい。アプリケーションが、ユーザがボールに接触したことを検出すると、第2の領域2211を用いて、ユーザがボールを振り、続いてボールに力が加わったというユーザの動きの方向を決定することができる。
アプリケーションは、算出したユーザ部分2109の代表的な動きを用いて、オブジェクトに接触した時にオブジェクトに加わった力の大きさと方向を決定することができる。オブジェクトは、例えば、「ボール」又は「パーティクル」でもよい。アプリケーションは、ユーザに反応する、これら「ボール」又は「パーティクル」の多くを含んでもよい。
アプリケーションは、水又は煙などの流体シミュレーションを含んでもよい。いくつかの実施例では、アプリケーションは、高さ(例えば、水の波紋)又は圧力(例えばガス状の雲)を表すマップを保持してもよい。その場所に存在する最新のユーザを示す動きマップの要素に対応するマップ要素に値が割り当てられる。処理はその値を伝播して(例えば水の)波紋又は(例えばガス状の雲の)渦巻きを生成する。アプリケーションは、(例えば、ユーザが水面の下に見えるように)動きマップに応じてキー画像を変形(ワープ)させてもよい。アプリケーションはさらに、速度マップを含んでもよい。ユーザの速度はオプティカルフロー(又は領域2111について説明した処理)によって算出し、速度マップの対応する要素に割り当てる。
アプリケーションには多くの変形態様が可能である。アプリケーションはビデオゲーム又は広告でもよいが、本開示はビデオゲーム又は広告に限定されることのないことに留意されたい。
アプリケーションはデータロギング処理を含んでもよい。データロギング処理のいくつかの実施例でユーザの存在は、閾値より直近のフレームカウント(又は時間)を有する、ユーザが占有する動き履歴(又はオブジェクトデータマップ)の部分(例えばピクセルのカウント)を比較して決定する。ユーザの存在は記録することができる。データロギング処理の他の実施例では、閾値より直近のフレームカウント(又は時間)を有する、ユーザが占有する動き履歴(又はオブジェクトデータマップ)のピクセルをクラスタリングして、ユーザのカウントを決定する。ユーザのカウントは記録することができる。データロギング処理のさらなる実施例では、イベント(接触していない状態から接触している状態への変化)を記録し、アプリケーションの状態を記録し、及び/又は表示画像を記録してもよい。データロギング処理のいくつかの実施例では、記録は、データの保存を含む。データロギング処理の他の実施例では、記録は、データをネットワーク(例えばインターネット)を介して送信することを含む。
図23を参照して、マッピング処理の一例を用いて、動き履歴を追跡して、動き履歴に基づいてアプリケーションを制御する場合について説明する。例えば、直近に検出されたオブジェクトを表すフレームカウント(又は時間)は画像を不透明にして、フレームカウントの増加に伴い、不透度が弱まり、透明になっていくように、動き履歴のピクセル値をリマップしてもよい。図23に、この例で、対応するピクセルでオブジェクトが検出されてからフレームカウントに付与する相対的重みを示す。図示のように、ゼロのフレームカウントは100%の重み(例えば、完全に不透明)を有し、5のフレームカウントは50%の重み(例えば、半分の不透明度)を有し、10以上のフレームカウントは0%の重み(例えば、完全に透明)を有する。このマッピングは視覚的効果を与え、オブジェクトの動きが痕跡を残すように見える。
いくつかの実施例では、オブジェクトの描写を表示するためにリマップしたピクセル情報を用いることができる。図16に示すように、リマップしたピクセル情報は、不透明度のレベルが変化するものも含む、動き履歴に基づく画像を生成する。この実施例では、ユーザが現在占有するピクセルに割り当てられた値は、100%である。データが加齢すると、値を減算する。減算値は、持続するフレームの数に反比例する。例えば、第1のフレームの間にユーザがピクセル位置に検出されると、そのピクセル値に100%を割り当てる。この例では、第2のフレームの間にそのピクセル位置でユーザが検出されない場合、そのピクセル値を10%削減する。このような処理を0%になるまで続ける。値はアルファレベルを表す。しかし、最近その位置でユーザが検出されてからのフレームの数のカウントは依然としてその値から算出することができる。リマッピング処理を用いてユーザを表示画像にの描写することは、アプリケーションに関連する表示画像にオブジェクトを描写する際、オブジェクトの描写が痕跡を残すように見せるなどの、機能強化した視覚的効果を与えることができる。
図24〜28に、動き履歴に基づいてアプリケーションを制御するように構成されたインタラクティブシステムの一例を示す。このシステムを用いて、図2を参照して説明した処理200を実行することができる。
図24に、表示装置2403、キャプチャ装置2401、コンピューティング装置2042を有するシステム2400を示す。表示装置2403は、表示画像を表示する。表示装置2403はプロジェクタとプロジェクタ画面、プラズマディスプレイ、液晶ディスプレイ(LCD)、裸眼立体ディスプレイ、又は、コンピュータが生成した画像を表示することができるその他の装置であってもよい。表示装置2403は、表示画像を表示するために構成された複数の装置(例えば、複数のプロジェクタからなるビデオウォール(video wall))を含んでもよい。ユーザ2404は、表示装置2403の表示画像と相互に連携する。キャプチャ装置2401は、ユーザ2404、又はユーザの一部を含む画像をキャプチャする。キャプチャ装置2401は、1以上の連続するカメラ画像を生成する1台以上のカメラを含んでもよい。
コンピューティング装置2402は、キャプチャ装置2401がキャプチャした画像を処理して、アプリケーションを制御する。アプリケーションは、表示装置2403に表示する表示画像を生成する。アプリケーションはコンピューティング装置、又は別の装置の上で実行することができる。インタラクティブシステム2400の構成要素は、多くの異なる構成で実現することができる。例えば、図示したように、キャプチャ装置2401は、表示装置2403の上に配置してもよい。
図25に、照明器2505を有するインタラクティブシステムの一例を示す。照明器2505は、ユーザを可視光又は赤外線光で照明することができる。照明器2505はキャプチャ装置2401又はコンピューティング装置2402から制御信号を受信するようにしてもよい。照明器2505は、キャプチャ装置2401及び表示装置2403の上に配置してもよい。照明器2505は、背景2506の人々又はオブジェクトよりも強くユーザを照明してもよい。
図26に、キャプチャ装置2401をユーザ2404の頭上に配置した場合の構成を示す。
図27に、照明器2505が、背景2506のその他の人々又はオブジェクトを照明せずに、ユーザ2404を照明する場合の構成を示す。図27に、図7を参照して説明した処理700で用いるために調整した構成を示す。
図28に、装置を窓2807の中に設置した構成を示す。表示装置2403は、窓2807に組み込んでもよい。例えば、表示装置はプロジェクタとプロジェクタ画面であってもよく、プロジェクタ画面は、窓2807に貼り付けた膜(film)を含んでもよい。窓2807は小売店(retail store)の窓でもよい。
図29を参照して、ユーザ2404の動きを判定し、判定したユーザの動き2908をアプリケーション2915への入力として用いる処理2900について説明する。処理2900は、図1、図24〜28を参照して説明したシステムを含む、様々なシステムで実現することができる。説明を明確にするため、処理2900をシステム2400に適用した場合について説明するが、その他のシステムを用いてもよい。システム2400を用いた処理2900の実施例について説明するが、処理2900を限定するものではない。
キャプチャ装置2401は一連の画像群(例えばビデオ)をキャプチャする。画像群は、一連の画像の一部でもよい。例えば、画像群は、1以上のキャプチャ装置又はカメラで撮像した1以上の画像を含んでもよい。キャプチャ装置2401は複数のカメラを含んでもよい。画像群は、複数のカメラの各々で生成した画像を含んでもよい。
キャプチャ装置2401は、カメラ画像群2901を生成する。カメラ画像群2901に含まれる1以上の画像は、撮像処理2902によって処理され、カメラ制御データ2903と処理済みカメラ画像群2904が生成される。いくつかの実施例では、処理済みカメラ画像群2904は、カメラ画像群2901と同一であってもよい。カメラ制御データ2903はキャプチャ装置2401に戻される。ユーザ検出処理2905は処理済みカメラ画像群2904を分析するが、カメラ制御データ2903を用いてもよい。ユーザ検出処理2905はユーザデータ2906を生成する。
処理2900はさらに、ユーザデータ2906を処理して動き履歴2908を生成する動き履歴処理2907を含んでもよい。いくつかの実施例では、動き履歴処理2907と動き履歴2908は、アプリケーション2915の一部とし、処理2900でなくてもよい。処理2900はさらに、動き履歴2908(又はユーザデータ2906)と処理済みカメラ画像2904の群(又はカメラ画像群2901)を用いたキーイング処理2909を含んでもよい。キーイング処理2909はキー画像2910を生成する。いくつかの実施例では、キーイング処理2909とキー画像2910は、アプリケーション2915の一部とし、処理2900でなくてもよい。
処理2900はさらに、動き履歴2908(又はユーザデータ2906)を用いて効果画像2912を生成する効果(effect)処理2911を含んでもよい。いくつかの実施例では、効果処理2911と効果画像2912は、アプリケーション2915の一部とし、処理2900でなくてもよい。処理2900はさらに、動き履歴2908(又はユーザデータ2906)を用いて輪郭データ2914を生成する輪郭処理2913を含んでもよい。いくつかの実施例では、輪郭処理2913と輪郭データ2914は、アプリケーション2915の一部とし、処理2900でなくてもよい。
アプリケーション2915は、ユーザデータ2906、動き履歴2908、カメラ画像群2901、処理済みカメラ画像群2904、キー画像2910、効果画像2912及び輪郭データ2914の何れを処理してもよい。アプリケーションは、表示装置2403に表示する表示画像2916を生成する。
ユーザ検出処理2905は動きを用いてもよい。いくつかのシナリオでは、画像の中の動きの大きな部分はユーザに起因する。図3〜7を参照して説明した技術は、ユーザ検出処理2905を実行するために用いてもよい。
撮像処理2902は、キャプチャ装置2401を制御するためにカメラ制御データ2903を生成する処理を含んでもよい。カメラ制御データ2903は、露出時間、ゲイン、アイリスを含むカメラパラメータに影響を与えることができる。この処理の一例では、カメラ画像群2901の中の平均ピクセル値、又はその一部を算出してもよい。平均ピクセルの強度が閾値より低い場合、カメラにその感度(例えば、画像の輝度)を上昇させるためのカメラ制御データ2903を生成する。平均ピクセルの強度が閾値より高い場合、カメラにその感度(例えば、画像の輝度)を低下させるためのカメラ制御データ2903を生成する。
ユーザ検出処理2905の適切な動作に支障のない程度に十分小さくなるように感度(例えば画像の輝度)を変更させるファインステップで、カメラを調整してもよい。代替の実施例では、露出時間、ゲイン及びアイリスを含むカメラのパラメータは、カメラに内蔵された自動露出処理で決定するようにしてもよい。この場合、カメラ制御データ2903はキャプチャ装置2401によって生成してもよい。
(例えば、撮像処理2902又はキャプチャ装置2401で生成された)カメラ制御データ2903をユーザ検出処理2905に送信してもよい。
動き履歴2908を生成する動き履歴処理2907は、図8〜11を参照して説明した技術を用いて実行してもよい。
キーイング処理2909は、処理済みカメラ画像群2904(又はカメラ画像群2901)を動き履歴2908(又はユーザデータ2906)を組み合わせてキー画像2910を生成することができる。キー画像2910は、アプリケーションによって生成される他の図形と組み合わせた時に見える画像の不透明度を決定するアルファチャネルを含む。
キー画像2910の主要チャネルは処理済みカメラ画像群2904(又はカメラ画像群2901)から生成する。主要チャネルは赤、緑、青のカラーチャネルでもよいが、YUVなどの他のカラー空間を用いてもよいことも留意されたい。いくつかの実施例では、カメラ画像の主要チャネルはキー画像の対応するチャネルにコピーする。
キャプチャ装置2401が、複数のカメラ画像を含むカメラ画像群を生成する実施例(複数のカメラを含むキャプチャ装置2401の実施例など)では、カメラ画像を選択してキー画像の対応するチャネルにコピーしてもよい。カメラ画像の選択については、キャプチャ装置と撮像処理の様々な実施例で説明した。キャプチャ装置2401が、複数のカメラ画像を含むカメラ画像群を生成するその他の実施例(複数のカメラを含むキャプチャ装置2401の実施例など)では、カメラ画像を組み合わせてもよい。
カメラ画像を組み合わせる処理は、カメラ画像をワープする処理を含んでもよい。オブジェクトを、複数のカメラ画像の中で異なる位置に見えるようにしてもよい。これは、カメラの物理的な位置合わせによるもので、各々のカメラの視点が僅かに異なるためである(例えば、光学素子を用いて2台のカメラから同じ視点の画像を取得することは可能であるが、この構成は高額になりうる)。ワープ処理は、オブジェクトが複数の画像群で同一の位置で見えるようにピクセルの位置をリマップする。
カメラの異なる視点から得られた画像の間には差違が存在しうる。この差違はカメラ間の距離に応じて異なる。ワープ処理は、ピクセルの位置をリマップして、予想されるユーザの距離にあるオブジェクトが複数の画像群で同一の位置に見えるようにすることができる。
カメラ画像を組み合わせる処理は、(例えば、ワープ処理した)カメラ画像を混合する(blending)処理を含んでもよい。混合処理は、(例えば、ワープ処理した)カメラ画像のピクセル値を平均して、画像の中でピクセル位置の各々について組み合わせたピクセル値を生成する。キー画像2910のアルファチャネルは、動き履歴2908(又はユーザデータ2906)から生成してもよい。動き履歴2908は、そのピクセル位置でユーザを検出したフレームカウント(又は時間)を表すピクセル値を含む。これらのピクセル値をアルファ値にリマップする。ピクセル値のアルファ値へのマッピングには図23を参照して説明した処理を用いることができる。
いくつかの実施例では、動き履歴2908をワープ処理する。いくつかの実施例では、異なるカメラを用いてユーザデータ2906と動き履歴2908を生成し、さらに、キー画像2910の主要(例えば、カラー)チャネルを提供してもよい。オブジェクトは、複数のカメラ画像の中で異なる位置に現れることがある。これは、カメラの物理的な位置合わせ(例えば、各カメラが僅かに異なる視点を有するなど)によって生じることがある。ワープ処理は、カメラの視点を光学素子を用いて光学的に合わせる必要を回避することができる。
ワープ処理は、ピクセルの位置をリマップして、オブジェクトが複数の画像群で同一の位置に見えるようにする。動き履歴2908をリマップして、画像品質を最大に保つようにキー画像2910の主要(例えば、赤緑青)チャネルを生成することができる。カメラの異なる視点から得られた画像の間には差違が存在しうる。この差違はカメラ間の距離に応じて異なる。ワープ処理は、ピクセルの位置をリマップして、予想されるユーザの距離にあるオブジェクトが複数の画像群で同一の位置に見えるようにすることができる。
いくつかの実施例では、アプリケーション2915は、キー画像2910を含む表示画像2916を生成する。キー画像2910は、アプリケーションによって生成した画像を組み合わせてもよい。いくつかの実施例では、アプリケーション2915は、アルファチャネルを用いてキー画像2910を表示画像と組み合わせる。キー画像を含む表示画像の例については、図17を参照して説明した。
いくつかの実施例では、視覚的効果の画像に動き履歴2908(又はユーザデータ2906)を組み合わせる効果処理2911を実行して、効果画像2912を生成してもよい。効果画像2912は、アプリケーションが生成したその他の図形と組み合わせた際に見えうる画像の不透明度を決定するアルファチャネルを含む。アニメーション効果をもたらすために効果画像の主要(例えば、赤、緑、青色)チャネルを生成する。アニメーション効果の例として、「プラズマ」と「水の波紋」をあげることができる。アニメーション効果は、再描写したアニメーションシーケンス又はパーティクルシステムによって生成することができる。効果画像2912のアルファチャネルは、キー画像2910のアルファチャネルを生成するのと同様の手法で、動き履歴2908(又はユーザデータ2906)から生成する。
アプリケーション2915は、効果画像2912を含む表示画像2916を生成し、キー画像29105を組み合わせて表示するのと同様の手法で効果画像をアプリケーション画像と組み合わせることができる。
いくつかの実施例では、輪郭処理2913を実行してもよい。輪郭処理2913は、動き履歴2908(又はユーザデータ2906)の輪郭を表す輪郭データ2914を生成する。動き履歴はビットマップ、ピクセルの各々について要素を含む多次元配列のデータとして生成することができる。輪郭データ2914は、所定の閾値より直近の動きを有する動き履歴2908のピクセル(又はユーザの一部として分類されたユーザデータ2906のピクセル)を囲む座標群を含む。輪郭データ2914は、ビットマップの描写より少ないデータ要素を含むことができるため、いくつかのアプリケーションでは有利である。
輪郭処理2913はさらに、輪郭データのデータポイントの数を削減する処理を含んでもよい。データポイントの数を削減する処理は、略直線(relatively straight line)に該当するポイントを削除する処理を含む。輪郭処理2913はさらに、処理は、サイズが小さく、孤立したオブジェクトの輪郭を削除する処理を含んでもよい。輪郭データ2914の一例については、図16参照して説明した。
いくつかの実施例では、システムは、カメラ、表示装置、及びプロセッサを含む。プロセッサは、カメラが撮像した画像を処理し、アプリケーション(例えばコンピュータ又はビデオゲーム)の実行を制御し、表示装置に、アプリケーションに関連する表示画像を表示することができる。いくつかの実施例では、カメラはアプリケーション(例えばコンピュータ又はビデオゲーム)と相互に連携するユーザの画像を撮像する。これらの例では、カメラは、アプリケーションに関連して、表示装置に表示される表示画像に応答して、物理的に動くユーザの画像を撮像する。プロセッサは、物理的に動くユーザの画像を処理して、画像の中のユーザの位置を検出することができる。プロセッサはまた、画像の中で捉えたユーザの物理的な動きの動き履歴を追跡することができる。動き履歴の追跡は、画像を複数の小部分に分割し、複数の小部分の各々について画像の中でユーザが検出されてからの時間を追跡する。例えば、プロセッサは、ピクセルマップの中でピクセルの各々についてユーザが検出されてからの時間に関連する情報を画像のピクセルの各々について保存するピクセルマップを保持することができる。
いくつかの実施例では、動き履歴情報(例えば、ピクセルマップ)を用いて、プロセッサが実行するアプリケーションを制御することができる。例えば、プロセッサは、動き履歴情報(例えば、ピクセルマップ)にアクセスして、表示装置に、動き履歴情報に基づくユーザの描写を含む、アプリケーション(例えばコンピュータ又はビデオゲーム)に関連する表示画像を表示することができる。上述のピクセルマップを用いた例では、アプリケーションに表示したユーザの描写は、ユーザがピクセルの各々について検出されてからの時間に対応することができる。この例では、ユーザの描写は、ユーザが検出された全てのピクセルに、特殊効果(例えば煙り又は火)を付けたユーザの表示を含むようにしてもよいし、又は、最も直近で検出されなかったユーザの動きの部分のみに、特殊効果(例えば煙り又は火)を付けたユーザの表示(例えば、ユーザが腕を動かした場合、腕が動くにつれて煙又は火がユーザの腕に腕を追跡するように見える)を含むようにしてもよい。いくつかの例では、表示画像に表示されるピクセルの不透明度をピクセルマップに対応させて、ある時間期間ユーザが検出されなかった画像の部分については、時間とともに消えていくようにしてもよい(例えば、腕を動かすユーザの煙又は影が、腕が動きを開始した場所から離れて動くにつれて消えていくようにしてもよい)。他の実施例では、追跡している動き履歴情報を用いてアプリケーションを別の手法で制御してもよい。例えば、パーティクルシミュレーションのアプリケーションがユーザの描写を、パーティクルシミュレーション技術を用いて効果画像(例えば、煙、火、水など)として表示するように、動き履歴情報をパーティクルシミュレーションアプリケーションに供給してもよい。動き履歴情報はまた、アプリケーションのユーザ入力コマンドを判断するために用いてもよい。
図30に、コンピューティング装置2402又はコンピューティング装置140の外観の一例を示す。簡潔には、システム3000は、動き履歴に基づいてアプリケーションを制御するプロセッサを有するコンピューティング装置3001を含む。機器3001は、ネットワーク3006を介して、サーバ3002とサーバ3004を含む、1台以上のサーバと通信を行うことができる。
より詳細には、コンピューティング装置3001のハードウェア環境は、テキストと画像をユーザに表示するディスプレイモニタ3008と、テキストデータとユーザコマンドをコンピューティング装置3001に入力するキーボード3009と、ディスプレイモニタ3008に表示されたオブジェクトを指し示し、選択し、操作するマウス3010と、固定ディスクドライブ3011と、リムーバブルディスクドライブ3012と、テープドライブ3014と、ハードコピー出力装置3015と、コンピュータネットワーク接続3016と、デジタル入力装置3017と、を含む。
ディスプレイモニタ3008は、コンピューティング装置3001が使用するソフトウェアアプリケーション、及びコンピューティング装置3001を動作するために必要なオペレーティングシステムプログラムのためのユーザインタフェースを含む図形、画像、テキストを表示する。ユーザはキーボード3009を用いて、コンピュータのオペレーティングシステムプログラム及びアプリケーションプログラムを動作し、制御するためのコマンドとデータを入力する。マウス3010は、任意の種類のポインティング装置でよく、ジョイスティック、トラックボール、タッチパッド又はその他のポインティング装置などでもよい。仮想オブジェクトを操作するために用いるソフトウェアは、固定ディスクドライブなどのコンピュータが読み出し可能なメモリ媒体にローカルに保存する。
さらなる実施例では、固定ディスクドライブ3011自体は、RAID(redundant array of independent disks)などの複数の物理ドライブユニット(physical drive unit)、又はディスクドライブファーム(disk drive farm)又は独立したコンピューティングユニットに物理的に配設されたディスクアレイなどでもよい。かかるコンピュータ読み出し可能なメモリ媒体は、コンピューティング装置3001が、脱着可能な記憶媒体又は固定記憶媒体に保存した、コンピュータが実行可能な処理ステップ、アプリケーションプログラムなどにアクセスすることを可能にする。
コンピュータネットワーク接続3016は、モデム接続、イーサネット(登録商標)を含むローカルエリアネットワーク(LAN)接続、デジタル加入者回線(DSL)、ケーブル高速インターネット接続、ダイアルアップ接続、T1回線、T3回線、光ファイバ接続又は衛星接続などのブロードバンドWAN(Wide−Area Network)などでもよい。ネットワーク30006は、LANネットワーク、企業又は政府WANネットワーク、インターネット又はその他のネットワークでもよい。
コンピュータネットワーク接続3016は、有線又は無線コネクタでもよい。代表的な無線コネクタは、例えば、IrDA(R)(INFRARED DATA ASSOCIATION(R))wireless connector、光無線コネクタ、IEEE(R)(INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS(R))標準802.11無線コネクタ、BLUETOOTH(R)wireless connector、OFDM(orthogonal frequency division multiplexing)UWB(ultra wide band)無線コネクタ、TM−UWB(time−modulated ultra wide ban)、又はその他の無線コネクタでもよい。代表的な有線コネクタは、例えば、IEEE(R)−1394 FIREWIRE(R)コネクタ、USB(Universal Serial Bus)コネクタ、シリアルポートコネクタ、パラレルポートコネクタ又はその他の有線コネクタでもよい。
リムーバブルディスクドライブ3012は、コンピューティング装置3001からデータをオフロードする、又はデータをコンピューティング装置3001にアップデートするために使用する脱着可能な記憶装置である。リムーバブルディスクドライブ3012は、フロッピー(登録商標)ディスクドライブ、IOMEGA(R)ZIP(R)ドライブ、CD−ROM(compact disk−read only memory)ドライブ、CD−R(CD−Recordable drive)、CD−RW(CD−Rewritable drive)、フラッシュメモリ、USBフラッシュドライブ、サムドライブ、ペンドライブ、キードライブ、HD−DVD(High−Density Digital Versatile Disc)、光ディスクドライブ、ブルーレイ光ディスクドライブ、HDDS(Holographic Digital Data Storage)光ディスクドライブ、あるいは、DVD−R又はDVD+R(DVD−Recordable)、DVD−RW又はDVD+RW(DVD−Rewritable)又はDVD−RAMなどの各種記録可能又は書換可能なDVD(digital versatile disc)の何れか一つでもよい。オペレーティングシステムプログラム、アプリケーション及び各種データファイルは、ディスクに保存して固定ディスクドライブ3011又はリムーバブルディスクドライブ3012用の脱着可能な媒体に記憶する。
テープドライブ3014はコンピューティング装置3001からデータをオフロードする、又はデータをコンピューティング装置3001にアップデートするために使用するテープ記憶装置である。テープドライブ3014は、QIC(quarter−inch cartridge)、4 mm DAT(digital audio tape)、8 mm DLT(digital linear tape)ドライブ、又はその他の種類のテープでもよい。
ハードコピー出力装置3015は、オペレーティングシステムプログラム及びアプリエーション用の出力機能を提供する。ハードコピー出力装置3015は、プリンタ又は、テキストデータ又は画像データ、あるいはテキストデータ又は画像データの図形描写を含む有形の出力物(tangible output object)を生成する任意の出力装置でよい。ハードコピー出力装置3015は、コンピューティング装置3001に直接接続して示されているが、必須ではない。例えば、ハードコピー出力装置は、コンピューティング装置3001と、有線ネットワーク又は無線ネットワークなどのネットワークインタフェースを介して接続してもよい。
さらに、コンピューティング装置3001をデスクトップPCとして説明したが、さらなる実施例では、コンピューティング装置3001は、ラップトップ、ワークステーション、オフィスコンピュータ(midrange computer)、メインフレーム、組み込みシステム(embedded system)、電話、携帯用コンピュータ又はタブレットコンピュータ、PDA、あるいはその他の種類のコンピュータであってもよい。
図31は、図30に示したコンピュータの内部構造を説明するブロック図である。コンピューティング装置3001の代表的な内部構造について説明する。コンピューティング環境は、オペレーティングシステム又はアプリケーションを含むコンピュータ命令を処理するコンピュータのCPU(central processing unit)3101と、通信インタフェースと、ディスプレイモニタ3008に図形画像及びテキストを描写するための処理機能を実行するディスプレイインタフェース3102と、キーボード3009との通信インタフェースを行うキーボードインタフェース3104と、マウス3010又は類似のポインティング装置との通信インタフェースを行うポインティング装置インタフェース3105と、デジタル入力装置3017との通信インタフェースを行うデジタル入力インタフェース3106と、ハードコピー出力装置3015との通信インタフェースを行うハードコピー出力装置インタフェース3108と、コンピュータのCPU3101による処理のためにコンピュータ命令及びデータを揮発性メモリ装置に保存するRAM(random access memor)3110と、基本入出力(I/O)、スタートアップ、又はキーボード3009からのキーストロークの受け付けなどの基本システム機能のための、不変手レベルシステムコード又はを不揮発性メモリ装置に記憶するROM(read−only memory)3111と、オペレーティングシステム3121、アプリケーションプログラム3122(仮想オブジェクト操作アプリケーション3123、必要に応じてその他のアプリケーション3124を含む)を含むファイル、及びデータファイル3125を保存する、ストレージ3120又はその他の適当な種類のメモリ(例えば、RAM(random−access memory)、ROM(read−only memory)、PROM(programable read−only memory)、EPROM(erasable programable read−only memory)、EEPROM(electrically erasable programable read−only memory)、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク、ハードディスク、リムーバブルカートリッジ、フラッシュドライブ)と、コンピュータネットワーク接続3016を介してネットワーク3006との通信インタフェースを行うコンピュータネットワークインタフェース3116とを含む。これらの構成要素及びコンピュータCPU3101は、コンピュータバス3127を介して相互に通信を行っている。
RAM3110は、コンピュータバス3127とインタフェースをとり、オペレーティングシステムアプリケーションプログラム及び機器ドライバなどのソフトウェアプログラムの実行時にコンピュータCPU3101へ迅速なRAM記憶を行う。より詳細には、コンピュータCPU3101は、コンピュータが実行可能な処理ステップを固定ディスクドライブ3011又はその他のメモリ媒体からRAM3110のフィールドに読み出して、ソフトウェアプログラムを実行する。データはRAM3110に記憶され、実行時にコンピュータCPU3101はこのデータにアクセスをする。
コンピューティング装置3001は、オペレーティングシステム3121及び、ワード処理、スプレッドシート、プレゼンテーション、ゲーム又はその他のアプリケーションなどのアプリケーションプログラム3122のためのコンピュータが実行可能なコードを記憶する。上述の実施例を用いて仮想オブジェクトの操作を提供することがきるが、本開示に従って、DLL(dynamic link library)、MICROSOFT(R)Internet Explorer web browserなどのインターネットウェブブラウザなどのその他のアプリケーションプログラムへのプラグインとして機能を実施することも可能である。
コンピュータCPU3101は、INTEL(R)又はAMD(R)プロセッサ、POWERPC(R)プロセッサ、MIPS(R)RISC(reduced instruction set computer)プロセッサ、SPARC(R)プロセッサ、ARM(R)(ACORN(R)RISC Machine)アーキテクチャプロセッサ、HP ALPHASERVER(R)プロセッサ、又はメインフレーム用の専用のコンピュータプロセッサなどを含む、複数の高性能コンピュータプロセッサの一つである。追加の構成では、コンピュータCPU3101は、高性能ワークステーション及びサーバにみられるマルチプルCPU構成、又はメインフレームにみられるマルチプルスケーラブル処理装置を含む、複数の処理装置である。
オペレーティングシステム3121は、MICROSOFT(R)WINDOWS(登録商標) NT(R)/WINDOWS(登録商標)(R)2000/WINDOWS(登録商標)(R)XPワークステーションと、WINDOWS(登録商標) NT(R)/WINDOWS(登録商標)(R)2000/WINDOWS(登録商標)(R)XPサーバと、IBM(R)ワークステーション及びサーバ用AIX(R)、SUN(R)ワークステーション及びサーバ用SUNOS(R)用AIX(R)、INTEL(R)CPUベースのワークステーション及びサーバ用LINUX(R)、HP(R)ワークステーション及びサーバ用HP UX WORKLOAD MANAGER(R)、SGI(R)ワークステーション及びサーバ用IRIX(R)、デジタルイクイップメント社コンピュータ用VAX/VMS、HP ALPHASERVER(R)をベースにしたコンピュータ用OPENVMS(R)、POWERPC(R)をベースにしたワークステーション及びサーバ用MAC OS(R)を含むUNIX(登録商標)(R)に好適な各種オペレーティングシステムと、移動機器、又はコンピュータ及び組み込みシステム専用のオペレーティングシステム用EPOC(R)、PALM(R)、NOKIA(R)OS(“NOS”)、OSE(R)又はSYMBIAN OS(R)、WINDOWS(登録商標) MOBILE(R)又はWINDOWS(登録商標) CE(R)でもよい。アプリケーション開発プラットフォーム、又はオペレーティングシステム3121のフレームワークは、BREW(R)(BINARY RUNTIME ENVIRONMENT FOR WIRELESS(R))、Java(登録商標) ME(Java(登録商標) Platform, Micro Edition)、又はJ2ME(R)(Java(登録商標) 2 Platform, Micro Edition)と、YTHONTM, FLASH LITE(R)又はMICROSOFT(R).NET Compact.でもよい。
図30と図31に、動き履歴に基づくアプリケーションの制御を実行するために構成されたプログラムコード、プログラム又は処理ステップを実行するコンピューティング装置の一つの可能な実施例を示したが、その他の種類のコンピュータを用いてもよい。
以上、複数の実施例について説明した。しかしながら、本開示の趣旨と範囲から逸脱することなく様々な変形が可能であることは明らかである。したがって、以下の特許請求の範囲の中でその他の実施例も可能である。

Claims (26)

  1. オブジェクトの少なくとも第1の画像を受け取るステップと、
    前記第1の画像の前記オブジェクトを検出するステップと、
    前記第1の画像の前記オブジェクトの検出に基づいて、前記第1の画像のピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されたか否かを示す、オブジェクトデータマップを生成するステップと、
    前記オブジェクトデータマップに含まれるピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されてからの時間の指標を示す動き履歴を生成するステップと、
    前記動き履歴に基づいてアプリケーションを制御するステップと、を含むコンピュータ実施方法。
  2. 前記オブジェクトデータマップに含まれるピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されてからの時間の指標を示す動き履歴を生成するステップが、前記オブジェクトデータマップに含まれる前記ピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されてからの時間に対応する不透明度値を示す動き履歴を生成するステップを含む、請求項1記載の方法。
  3. 前記オブジェクトデータマップに含まれるピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されてからの時間の指標を示す動き履歴を生成するステップが、前記オブジェクトデータマップに含まれる前記ピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されてからのフレームの数を示す動き履歴を生成するステップを含む、請求項1記載の方法。
  4. 前記オブジェクトデータマップに含まれるピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されてからの時間の指標を示す動き履歴を生成するステップが、前記オブジェクトデータマップに含まれる前記ピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出された時間の測定値(measurement)を示す動き履歴を生成するステップを含む、請求項1記載の方法。
  5. 前記オブジェクトデータマップに含まれるピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されてからの時間の指標を示す動き履歴を生成するステップが、前記動き履歴をフィルタリングするステップを含み、
    前記動き履歴に基づいてアプリケーションを制御するステップが、フィルタリングされた動き履歴に基づいてアプリケーションを制御するステップを含む、請求項1記載の方法。
  6. 前記動き履歴をフィルタリングするステップが、ピクセルの各々について、前記ピクセルの各々の値と、前記ピクセルの各々の近傍にあるピクセルの値とに基づいて、前記ピクセルの各々の値を算出するステップを含む、請求項5記載の方法。
  7. オブジェクトの少なくとも第1の画像を受け取るステップが、ユーザの少なくとも一つの第1の画像を受け取るステップを含む、請求項1記載の方法。
  8. 前記動き履歴に基づいてアプリケーションを制御するステップが、前記アプリケーションに関連する表示画像に前記オブジェクトの描写を表示するステップを含む、請求項1記載の方法。
  9. 前記動き履歴に基づいてアプリケーションを制御するステップが、前記アプリケーションに関連する表示画像の前記オブジェクトの前記描写の動きを制御するステップを含む、請求項8記載の方法。
  10. 前記アプリケーションに関連する表示画像に前記オブジェクトの描写を表示するステップが、前記アプリケーションに関連する前記表示画像に前記オブジェクトの前記描写をパーティクルシステムの1以上のパーティクルとして表示するステップを含む、請求項8記載の方法。
  11. 前記アプリケーションに関連する表示画像に前記オブジェクトの描写を表示するステップが、
    前記動き履歴に基づいて前記オブジェクトの動きを表す輪郭線(outline contour)を生成するステップと、
    生成した輪郭線に基づいて、前記アプリケーションによる前記表示画像に描写された仮想オブジェクトに、前記表示画像の前記オブジェクトの前記描写が接触したか否かを判断するステップと、を含む、請求項8記載の方法。
  12. 前記アプリケーションに関連する表示画像に前記オブジェクトの描写を表示するステップが、
    前記時間の指標が前記オブジェクトが最も直近に検出されたことを示す動き履歴のピクセルに対応するピクセルを、前記時間の指標が前記オブジェクトがより過去に検出されたことを示す動き履歴のピクセルに対応するピクセルよりも不透明度が大きくなるように表示するように、前記オブジェクトの描写を表示するステップを含む、請求項8記載の方法。
  13. 前記時間の指標が前記オブジェクトが最も直近に検出されたことを示す動き履歴のピクセルに対応するピクセルを、前記時間の指標が前記オブジェクトがより過去に検出されたことを示す動き履歴のピクセルに対応するピクセルよりも不透明度が大きくなるように表示するように、前記オブジェクトの描写を表示するステップが、
    前記動き履歴のピクセルに対応するピクセルを、前記ピクセルに関連する前記時間の指標に基づく不透明度で表示するように、前記オブジェクトの描写を表示するステップを含む、請求項12記載の方法。
  14. 前記動き履歴のピクセルに対応するピクセルを、前記ピクセルに関連する前記時間の指標に基づく不透明度で表示するように、前記オブジェクトの描写を表示するステップが、
    第2のピクセルより第1のピクセルで前記オブジェクトが直近に検出されたことを示す時間の指標に関連する該第1のピクセルが、前記第2のピクセルの不透明度より大きな不透明度で見えるように、前記オブジェクトの描写を表示するステップを含む、請求項13記載の方法。
  15. 前記アプリケーションに関連する表示画像に前記オブジェクトの描写を表示するステップが、
    前記動き履歴に基づいてアルファチャネルを生成するステップと、
    前記アルファチャネルに基づいて前記表示画像に前記オブジェクトの描写を表示するステップと、を含む、請求項8記載の方法。
  16. 前記アプリケーションに関連する表示画像に前記オブジェクトの描写を表示するステップが、
    アニメーション又はパーティクルシステムに基づいてアニメ−ション効果画像を表示するステップを含む、請求項8記載の方法。
  17. 前記アプリケーションに関連する表示画像に前記オブジェクトの描写を表示するステップが、
    前記オブジェクトのキー画像を表示するステップを含む、請求項8記載の方法。
  18. 前記アプリケーションに関連する表示画像に前記オブジェクトの描写を表示するステップが、
    前記動き履歴に基づいて前記アプリケーションによって、前記表示画像に描写された仮想オブジェクトに前記表示画像の前記オブジェクトの前記描写が接触したか否かを判断するステップと、
    前記判断の結果に基づいて前記アプリケーションを制御するステップと、を含む、請求項8記載の方法。
  19. 前記判断の結果に基づいて前記アプリケーションを制御するステップが、
    前記動き履歴に基づいて前記仮想オブジェクトの速度を算出するステップと、
    得られた前記仮想オブジェクトの速度に基づいて前記アプリケーションを制御するステップと、を含む、請求項18記載の方法。
  20. 前記仮想オブジェクトの速度を算出するステップが、
    前記動き履歴に関連するオプティカルフローデータに基づいて前記仮想オブジェクトの動きの速度と方向を算出するステップを含み、
    前記仮想オブジェクトの速度に基づいて前記アプリケーションを制御するステップが、
    得られた前記仮想オブジェクトの動きの速度と方向に基づいて前記アプリケーションを制御するステップを含む、請求項19記載の方法。
  21. 前記仮想オブジェクトが、パーティクルシステムのパーティクルを含む、請求項18記載の方法。
  22. 前記第1の画像の前記オブジェクトを検出するステップが、前記第1の画像と背景画像とを比較するステップを含む、請求項1記載の方法。
  23. オブジェクトデータマップに含まれるピクセルの各々について、ピクセルの各々でオブジェクトが検出されてからの時間の指標を示す動き履歴に基づいてアプリケーションを制御するステップを含む、コンピュータ実施方法であって、
    前記オブジェクトデータマップは、前記オブジェクトの受け取った第1の画像において、ピクセルの各々について、前記オブジェクトが前記ピクセルの各々で検出されたか否かを示す、方法。
  24. オブジェクトの少なくとも第1の画像を撮像するように構成されたカメラと、
    前記カメラから前記オブジェクトの前記第1の画像を受け取り、
    前記第1の画像の前記オブジェクトを検出し、
    前記第1の画像の前記オブジェクトの検出に応じて、前記第1の画像のピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されたか否かを示す、オブジェクトデータマップを生成し、
    前記オブジェクトデータマップに含まれるピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されてからの時間の指標を示す動き履歴を生成し、
    前記動き履歴に基づいてアプリケーションを制御するプロセッサと、
    前記アプリケーションに関連する表示画像を描写するように構成されたディスプレイと、を含む、システム。
  25. コンピュータプログラムを組み込んだコンピュータが読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
    オブジェクトの少なくとも第1の画像を受け取り、
    前記第1の画像の前記オブジェクトを検出し、
    前記第1の画像の前記オブジェクトの検出に基づいて、前記第1の画像のピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されたか否かを示す、オブジェクトデータマップを生成し、
    前記オブジェクトデータマップに含まれるピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されてからの時間の指標を示す動き履歴を生成し、
    前記動き履歴に基づいてアプリケーションを制御する、命令を含むコンピュータプログラム。
  26. オブジェクトの少なくとも第1の画像を受け取る手段と、
    前記第1の画像の前記オブジェクトを検出する手段と、
    前記第1の画像の前記オブジェクトの検出に応じて、前記第1の画像のピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されたか否かを示す、オブジェクトデータマップを生成する手段と、
    前記オブジェクトデータマップに含まれるピクセルの各々について、前記ピクセルの各々で前記オブジェクトが検出されてからの時間の指標を示す動き履歴を生成する手段と、
    前記動き履歴に基づいてアプリケーションを制御する手段と、を含むシステム。
JP2009544260A 2006-12-29 2007-12-27 機能強化したインタラクティブシステムを用いた仮想オブジェクトの操作 Pending JP2010515170A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US88284906P 2006-12-29 2006-12-29
PCT/US2007/088913 WO2008083205A2 (en) 2006-12-29 2007-12-27 Manipulation of virtual objects using enhanced interactive system

Publications (1)

Publication Number Publication Date
JP2010515170A true JP2010515170A (ja) 2010-05-06

Family

ID=39589198

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009544260A Pending JP2010515170A (ja) 2006-12-29 2007-12-27 機能強化したインタラクティブシステムを用いた仮想オブジェクトの操作

Country Status (5)

Country Link
US (1) US8559676B2 (ja)
EP (2) EP2104905A4 (ja)
JP (1) JP2010515170A (ja)
CN (1) CN101636745A (ja)
WO (1) WO2008083205A2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015191480A (ja) * 2014-03-28 2015-11-02 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、オブジェクトの操作方法、及びオブジェクトの操作プログラム
WO2016138233A3 (en) * 2015-02-25 2016-12-08 The Regents Of The University Of Michigan Interactive projection system
WO2017081805A1 (ja) * 2015-11-13 2017-05-18 日立マクセル株式会社 操作検出装置、操作検出方法、及び映像表示システム
KR20180032320A (ko) * 2016-09-22 2018-03-30 주식회사 케이티 알파맵(Alpha Map) 분석을 통한 양방향 서비스를 제공하는 사용자 단말, 셋톱 박스 및 방법
US10080963B2 (en) 2014-03-28 2018-09-25 Sony Interactive Entertainment Inc. Object manipulation method, object manipulation program, and information processing apparatus
WO2019235608A1 (ja) * 2018-06-07 2019-12-12 日本電気株式会社 分析装置、分析方法および記録媒体

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1851750A4 (en) * 2005-02-08 2010-08-25 Oblong Ind Inc SYSTEM AND METHOD FOR CONTROL SYSTEM BASED ON GESTURES
US9075441B2 (en) * 2006-02-08 2015-07-07 Oblong Industries, Inc. Gesture based control using three-dimensional information extracted over an extended depth of field
US8537111B2 (en) 2006-02-08 2013-09-17 Oblong Industries, Inc. Control system for navigating a principal dimension of a data space
US8537112B2 (en) * 2006-02-08 2013-09-17 Oblong Industries, Inc. Control system for navigating a principal dimension of a data space
US8370383B2 (en) 2006-02-08 2013-02-05 Oblong Industries, Inc. Multi-process interactive systems and methods
US9823747B2 (en) 2006-02-08 2017-11-21 Oblong Industries, Inc. Spatial, multi-modal control device for use with spatial operating system
US9910497B2 (en) * 2006-02-08 2018-03-06 Oblong Industries, Inc. Gestural control of autonomous and semi-autonomous systems
US8531396B2 (en) 2006-02-08 2013-09-10 Oblong Industries, Inc. Control system for navigating a principal dimension of a data space
KR101545360B1 (ko) * 2007-04-24 2015-08-19 오블롱 인더스트리즈, 인크 프로세싱 환경에서의 프로틴, 풀 및 슬럭스
US7733343B2 (en) * 2007-06-25 2010-06-08 Hewlett-Packard Development Company, L.P. Virtual shadow for physical object placed on surface
US8218811B2 (en) * 2007-09-28 2012-07-10 Uti Limited Partnership Method and system for video interaction based on motion swarms
KR101417808B1 (ko) * 2007-12-06 2014-07-09 삼성전자주식회사 디지털 촬영장치, 그 제어방법 및 제어방법을 실행시키기위한 프로그램을 저장한 기록매체
US20110102570A1 (en) * 2008-04-14 2011-05-05 Saar Wilf Vision based pointing device emulation
US10642364B2 (en) 2009-04-02 2020-05-05 Oblong Industries, Inc. Processing tracking and recognition data in gestural recognition systems
US9684380B2 (en) 2009-04-02 2017-06-20 Oblong Industries, Inc. Operating environment with gestural control and multiple client devices, displays, and users
US9740922B2 (en) 2008-04-24 2017-08-22 Oblong Industries, Inc. Adaptive tracking system for spatial input devices
US9740293B2 (en) 2009-04-02 2017-08-22 Oblong Industries, Inc. Operating environment with gestural control and multiple client devices, displays, and users
US9495013B2 (en) 2008-04-24 2016-11-15 Oblong Industries, Inc. Multi-modal gestural interface
US9952673B2 (en) 2009-04-02 2018-04-24 Oblong Industries, Inc. Operating environment comprising multiple client devices, multiple displays, multiple users, and gestural control
US8723795B2 (en) 2008-04-24 2014-05-13 Oblong Industries, Inc. Detecting, representing, and interpreting three-space input: gestural continuum subsuming freespace, proximal, and surface-contact modes
EP2304527A4 (en) * 2008-06-18 2013-03-27 Oblong Ind Inc GESTIK BASED CONTROL SYSTEM FOR VEHICLE INTERFACES
US8146020B2 (en) * 2008-07-24 2012-03-27 Qualcomm Incorporated Enhanced detection of circular engagement gesture
US8433101B2 (en) * 2008-07-31 2013-04-30 Samsung Electronics Co., Ltd. System and method for waving detection based on object trajectory
JP5028676B2 (ja) * 2008-09-12 2012-09-19 ブリテッシュ ヴァージン アイランズ シューウィー グループ リミテッド グラフィカルユーザーインターフェースの操作/制御装置
PT104205A (pt) * 2008-10-03 2010-04-05 Exva Experts In Video Analisys Método e sistema de interacção entre actores e superfícies pela detecção de movimento
US10086262B1 (en) 2008-11-12 2018-10-02 David G. Capper Video motion capture for wireless gaming
US9383814B1 (en) 2008-11-12 2016-07-05 David G. Capper Plug and play wireless video game
US9586135B1 (en) 2008-11-12 2017-03-07 David G. Capper Video motion capture for wireless gaming
JP5762968B2 (ja) 2008-11-21 2015-08-12 プレシテック カーゲー 工作物に対して実施されるべきレーザ加工作業をモニタリングするための方法および装置、ならびにかかる装置を有するレーザ加工ヘッド
US8624962B2 (en) * 2009-02-02 2014-01-07 Ydreams—Informatica, S.A. Ydreams Systems and methods for simulating three-dimensional virtual interactions from two-dimensional camera images
US8517834B2 (en) * 2009-02-17 2013-08-27 Softkinetic Studios Sa Computer videogame system with body position detector that requires user to assume various body positions
US9317128B2 (en) 2009-04-02 2016-04-19 Oblong Industries, Inc. Remote devices used in a markerless installation of a spatial operating environment incorporating gestural control
US10824238B2 (en) 2009-04-02 2020-11-03 Oblong Industries, Inc. Operating environment with gestural control and multiple client devices, displays, and users
WO2010121354A1 (en) * 2009-04-20 2010-10-28 Bent 360: Medialab Inc. Object tracking system
CN101562756A (zh) * 2009-05-07 2009-10-21 昆山龙腾光电有限公司 立体显示装置及其显示方法、立体显示拼接墙
GB2483168B (en) 2009-10-13 2013-06-12 Pointgrab Ltd Computer vision gesture based control of a device
US9933852B2 (en) 2009-10-14 2018-04-03 Oblong Industries, Inc. Multi-process interactive systems and methods
US9971807B2 (en) 2009-10-14 2018-05-15 Oblong Industries, Inc. Multi-process interactive systems and methods
TWI410834B (zh) * 2009-10-30 2013-10-01 Quanta Comp Inc 利用暫存影像的基於影像之座標輸入裝置及方法
US8933884B2 (en) * 2010-01-15 2015-01-13 Microsoft Corporation Tracking groups of users in motion capture system
US20110187678A1 (en) * 2010-01-29 2011-08-04 Tyco Electronics Corporation Touch system using optical components to image multiple fields of view on an image sensor
WO2012020410A2 (en) * 2010-08-10 2012-02-16 Pointgrab Ltd. System and method for user interaction with projected content
EP2428870A1 (en) * 2010-09-13 2012-03-14 Samsung Electronics Co., Ltd. Device and method for controlling gesture for mobile device
US20120066624A1 (en) * 2010-09-13 2012-03-15 Ati Technologies Ulc Method and apparatus for controlling movement of graphical user interface objects
US8890803B2 (en) 2010-09-13 2014-11-18 Samsung Electronics Co., Ltd. Gesture control system
US20120098761A1 (en) * 2010-10-22 2012-04-26 April Slayden Mitchell Display system and method of display for supporting multiple display modes
KR101781533B1 (ko) * 2010-12-23 2017-09-27 삼성디스플레이 주식회사 영상 촬영 장치 및 이의 영상 촬영 방법
US20130004928A1 (en) * 2011-01-31 2013-01-03 Jesse Ackerman Reaction training apparatus and methods of use
JP5766479B2 (ja) * 2011-03-25 2015-08-19 京セラ株式会社 電子機器、制御方法および制御プログラム
JP5670255B2 (ja) * 2011-05-27 2015-02-18 京セラ株式会社 表示機器
JP5864144B2 (ja) 2011-06-28 2016-02-17 京セラ株式会社 表示機器
US9984489B2 (en) 2011-07-27 2018-05-29 Dreamworks Animation L.L.C. Fluid dynamics framework for animated special effects
US20130083997A1 (en) * 2011-10-04 2013-04-04 Alcatel-Lucent Usa Inc. Temporally structured light
US9478037B2 (en) * 2011-12-08 2016-10-25 Intel Corporation Techniques for efficient stereo block matching for gesture recognition
CN103167223A (zh) * 2011-12-09 2013-06-19 富泰华工业(深圳)有限公司 具有广角拍摄功能的移动装置及其影像撷取方法
CN102645555A (zh) * 2012-02-22 2012-08-22 佛山科学技术学院 一种微运动测量方法
US9239624B2 (en) 2012-04-13 2016-01-19 Nokia Technologies Oy Free hand gesture control of automotive user interface
US8938124B2 (en) 2012-05-10 2015-01-20 Pointgrab Ltd. Computer vision based tracking of a hand
TWI476381B (zh) * 2012-08-01 2015-03-11 Pixart Imaging Inc 環境光偵測裝置與方法、及使用此環境光偵測裝置之互動式裝置
CN103576845B (zh) * 2012-08-06 2018-02-02 原相科技股份有限公司 环境光侦测装置与方法、及使用此环境光侦测装置的交互式装置
TWI500320B (zh) * 2012-12-22 2015-09-11 Univ Nat Cheng Kung 在多視角環境中尋找最佳觀測視角的方法與其電腦程式產品
KR102031284B1 (ko) * 2013-03-14 2019-11-08 삼성전자주식회사 연속 촬영된 이미지를 합성하는 전자 장치 및 방법
CN103179437A (zh) * 2013-03-15 2013-06-26 苏州跨界软件科技有限公司 虚拟人物视频录制及播放系统和方法
JP6136516B2 (ja) * 2013-04-18 2017-05-31 オムロン株式会社 遊技機
US9829984B2 (en) 2013-05-23 2017-11-28 Fastvdo Llc Motion-assisted visual language for human computer interfaces
TWI505135B (zh) * 2013-08-20 2015-10-21 Utechzone Co Ltd 顯示畫面的控制系統、輸入裝置及控制方法
KR20150043818A (ko) 2013-10-15 2015-04-23 삼성전자주식회사 영상처리장치 및 그 제어방법
US9317112B2 (en) * 2013-11-19 2016-04-19 Microsoft Technology Licensing, Llc Motion control of a virtual environment
DE102014101525A1 (de) * 2014-02-07 2015-08-13 Cassidian Optronics Gmbh Verfahren und Vorrichtung zur Darstellung einer Objektliste, eines Bildes, eines Bildmosaiks, eines virtuellen 2D-Objektraums oder eines virtuellen 3D-Objektraums
US9990046B2 (en) 2014-03-17 2018-06-05 Oblong Industries, Inc. Visual collaboration interface
CN104820493B (zh) * 2015-04-23 2018-09-14 北京小小牛创意科技有限公司 一种运动驱动效果的实现方法及实现系统
US11010972B2 (en) 2015-12-11 2021-05-18 Google Llc Context sensitive user interface activation in an augmented and/or virtual reality environment
CN105678830A (zh) * 2015-12-31 2016-06-15 广州多益网络科技有限公司 2d游戏的动画实现方法和系统
CN106101578B (zh) * 2016-06-27 2019-08-16 上海小蚁科技有限公司 图像合成方法和设备
US10529302B2 (en) 2016-07-07 2020-01-07 Oblong Industries, Inc. Spatially mediated augmentations of and interactions among distinct devices and applications via extended pixel manifold
DE202017104928U1 (de) * 2016-08-23 2017-11-24 Google Inc. Manipulation virtueller Objekte anhand von Controllern mit sechs Freiheitsgraden in erweiterten bzw. virtuellen Realitätsumgebungen
US10147218B2 (en) * 2016-09-29 2018-12-04 Sony Interactive Entertainment America, LLC System to identify and use markers for motion capture
WO2018071041A1 (en) * 2016-10-14 2018-04-19 Hewlett-Packard Development Company, L.P. Rebuilding three-dimensional models to provide simplified three-dimensional models
CN109145681B (zh) * 2017-06-16 2021-02-26 北京京东尚科信息技术有限公司 用于判断目标旋转方向的方法及装置
US12141927B2 (en) 2017-06-30 2024-11-12 Microsoft Technology Licensing, Llc Presenting augmented reality display data in physical presentation environments
US11422670B2 (en) * 2017-10-24 2022-08-23 Hewlett-Packard Development Company, L.P. Generating a three-dimensional visualization of a split input device
CN107948519B (zh) * 2017-11-30 2020-03-27 Oppo广东移动通信有限公司 图像处理方法、装置及设备
US10552707B2 (en) * 2017-12-07 2020-02-04 Qualcomm Incorporated Methods and devices for image change detection
WO2019165611A1 (zh) * 2018-02-28 2019-09-06 深圳市大疆创新科技有限公司 图像的水波纹检测方法及其装置、无人机和存储装置
JP6918374B2 (ja) * 2018-06-15 2021-08-11 株式会社Mgrシステム企画 広告方法および広告装置
CN108986190A (zh) * 2018-06-21 2018-12-11 珠海金山网络游戏科技有限公司 一种基于三维动画中非人形角色的虚拟主播的方法和系统
CN108920007B (zh) * 2018-07-20 2021-03-12 京东方科技集团股份有限公司 触控报点阈值设置方法和系统
US10747331B2 (en) 2018-07-27 2020-08-18 University Of South Carolina Virtual reality platform with haptic interface for interfacing with media items having metadata
CN110971889A (zh) * 2018-09-30 2020-04-07 华为技术有限公司 一种获取深度图像的方法、摄像装置以及终端
CN113168732A (zh) * 2018-12-03 2021-07-23 麦克赛尔株式会社 增强现实显示装置和增强现实显示方法
CN110740309B (zh) * 2019-09-27 2022-05-03 北京字节跳动网络技术有限公司 一种图像显示方法、装置、电子设备及存储介质
US11495054B2 (en) * 2019-10-22 2022-11-08 Objectvideo Labs, Llc Motion-based human video detection
US12182906B2 (en) * 2020-12-25 2024-12-31 Beijing Zitiao Network Technology Co., Ltd. Dynamic fluid display method and apparatus, electronic device, and readable medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003091740A (ja) * 2001-09-17 2003-03-28 Namco Ltd 画像生成システム、プログラム及び情報記憶媒体
JP2004246578A (ja) * 2003-02-13 2004-09-02 Nippon Telegr & Teleph Corp <Ntt> 自己画像表示を用いたインタフェース方法、装置、およびプログラム
JP2005031799A (ja) * 2003-07-08 2005-02-03 Sony Computer Entertainment Inc 制御システムおよび制御方法
JP2005216061A (ja) * 2004-01-30 2005-08-11 Sony Computer Entertainment Inc 画像処理装置、画像処理方法、記録媒体、コンピュータプログラム、半導体デバイス
WO2006037786A2 (en) * 2004-10-05 2006-04-13 Sony France S.A. A content-management interface
JP2006209563A (ja) * 2005-01-31 2006-08-10 Victor Co Of Japan Ltd インターフェース装置

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4746770A (en) 1987-02-17 1988-05-24 Sensor Frame Incorporated Method and apparatus for isolating and manipulating graphic objects on computer video monitor
US5164992A (en) 1990-11-01 1992-11-17 Massachusetts Institute Of Technology Face recognition system
US5534917A (en) 1991-05-09 1996-07-09 Very Vivid, Inc. Video image based control system
US6400996B1 (en) 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US5483261A (en) 1992-02-14 1996-01-09 Itu Research, Inc. Graphical input controller and method with rear screen image detection
USRE38420E1 (en) 1992-08-12 2004-02-10 British Broadcasting Corporation Derivation of studio camera position and motion from the camera image
US6008800A (en) 1992-09-18 1999-12-28 Pryor; Timothy R. Man machine interfaces for entering data into a computer
US5982352A (en) 1992-09-18 1999-11-09 Pryor; Timothy R. Method for providing human input to a computer
US5435554A (en) 1993-03-08 1995-07-25 Atari Games Corporation Baseball simulation system
JP3727954B2 (ja) 1993-11-10 2005-12-21 キヤノン株式会社 撮像装置
DE4415167A1 (de) 1994-04-29 1995-11-02 Siemens Ag Telekommunikationsanordnung zum Übertragen von Bildern
US5528263A (en) 1994-06-15 1996-06-18 Daniel M. Platzker Interactive projected video image display system
US5554033A (en) * 1994-07-01 1996-09-10 Massachusetts Institute Of Technology System for human trajectory learning in virtual environments
JPH08179888A (ja) 1994-12-21 1996-07-12 Hitachi Ltd 大画面ディスプレイ用入力装置
US5710833A (en) 1995-04-20 1998-01-20 Massachusetts Institute Of Technology Detection, recognition and coding of complex objects using probabilistic eigenspace analysis
RU2109336C1 (ru) 1995-07-14 1998-04-20 Нурахмед Нурисламович Латыпов Способ погружения пользователя в виртуальную реальность и устройство для его реализации
US6075905A (en) 1996-07-17 2000-06-13 Sarnoff Corporation Method and apparatus for mosaic image construction
JP3876942B2 (ja) 1997-06-13 2007-02-07 株式会社ワコム 光デジタイザ
US6720949B1 (en) 1997-08-22 2004-04-13 Timothy R. Pryor Man machine interfaces and applications
US6072496A (en) 1998-06-08 2000-06-06 Microsoft Corporation Method and system for capturing and representing 3D geometry, color and shading of facial expressions and other animated objects
JP4033582B2 (ja) 1998-06-09 2008-01-16 株式会社リコー 座標入力/検出装置および電子黒板システム
US6377700B1 (en) 1998-06-30 2002-04-23 Intel Corporation Method and apparatus for capturing stereoscopic images using image sensors
US6628819B1 (en) 1998-10-09 2003-09-30 Ricoh Company, Ltd. Estimation of 3-dimensional shape from image sequence
US6468265B1 (en) * 1998-11-20 2002-10-22 Intuitive Surgical, Inc. Performing cardiac surgery without cardioplegia
US6222465B1 (en) * 1998-12-09 2001-04-24 Lucent Technologies Inc. Gesture-based computer interface
US7015950B1 (en) 1999-05-11 2006-03-21 Pryor Timothy R Picture taking method and apparatus
US6791531B1 (en) 1999-06-07 2004-09-14 Dot On, Inc. Device and method for cursor motion control calibration and object selection
US6275214B1 (en) 1999-07-06 2001-08-14 Karl C. Hansen Computer presentation system and method with optical tracking of wireless pointer
US7187412B1 (en) 2000-01-18 2007-03-06 Hewlett-Packard Development Company, L.P. Pointing device for digital camera display
US6535114B1 (en) 2000-03-22 2003-03-18 Toyota Jidosha Kabushiki Kaisha Method and apparatus for environment recognition
US6956576B1 (en) * 2000-05-16 2005-10-18 Sun Microsystems, Inc. Graphics system using sample masks for motion blur, depth of field, and transparency
US6803906B1 (en) 2000-07-05 2004-10-12 Smart Technologies, Inc. Passive touch system and method of detecting user input
US7227526B2 (en) * 2000-07-24 2007-06-05 Gesturetek, Inc. Video-based image control system
JP4059620B2 (ja) 2000-09-20 2008-03-12 株式会社リコー 座標検出方法、座標入力/検出装置及び記憶媒体
US20020153188A1 (en) 2000-12-08 2002-10-24 Brandt Kenneth A. Selectable control parameters on a power machine with four-wheel steering
US8035612B2 (en) 2002-05-28 2011-10-11 Intellectual Ventures Holding 67 Llc Self-contained interactive video display system
US7259747B2 (en) 2001-06-05 2007-08-21 Reactrix Systems, Inc. Interactive video display system
US20030098841A1 (en) 2001-11-26 2003-05-29 Jessica Broussard Powered, remotely controllable computer display device
KR100415313B1 (ko) 2001-12-24 2004-01-16 한국전자통신연구원 동영상에서 상관 정합과 시스템 모델을 이용한 광류와카메라 움직임 산출 장치
US7170492B2 (en) 2002-05-28 2007-01-30 Reactrix Systems, Inc. Interactive video display system
US20050122308A1 (en) 2002-05-28 2005-06-09 Matthew Bell Self-contained interactive video display system
US7348963B2 (en) 2002-05-28 2008-03-25 Reactrix Systems, Inc. Interactive video display system
US7710391B2 (en) 2002-05-28 2010-05-04 Matthew Bell Processing an image utilizing a spatially varying pattern
US7576727B2 (en) 2002-12-13 2009-08-18 Matthew Bell Interactive directed light/sound system
US7162075B2 (en) 2003-03-10 2007-01-09 Cranial Technologies, Inc. Three-dimensional image capture system
US7127101B2 (en) 2003-03-10 2006-10-24 Cranul Technologies, Inc. Automatic selection of cranial remodeling device trim lines
US7665041B2 (en) 2003-03-25 2010-02-16 Microsoft Corporation Architecture for controlling a computer using hand gestures
US8745541B2 (en) 2003-03-25 2014-06-03 Microsoft Corporation Architecture for controlling a computer using hand gestures
US7333133B2 (en) 2003-03-31 2008-02-19 Spatial Integrated Systems, Inc. Recursive least squares approach to calculate motion parameters for a moving camera
US7463280B2 (en) 2003-06-03 2008-12-09 Steuart Iii Leonard P Digital 3D/360 degree camera system
EP1676442A2 (en) 2003-10-24 2006-07-05 Reactrix Systems, Inc. Method and system for managing an interactive video display system
WO2005041579A2 (en) 2003-10-24 2005-05-06 Reactrix Systems, Inc. Method and system for processing captured image information in an interactive video display system
US7312819B2 (en) 2003-11-24 2007-12-25 Microsoft Corporation Robust camera motion analysis for home video
KR100594971B1 (ko) 2004-01-09 2006-06-30 삼성전자주식회사 지자기 센서를 이용한 입력장치 및 이를 이용한 입력신호생성방법
US20060209019A1 (en) * 2004-06-01 2006-09-21 Energid Technologies Corporation Magnetic haptic feedback systems and methods for virtual reality environments
US20060018516A1 (en) * 2004-07-22 2006-01-26 Masoud Osama T Monitoring activity using video information
CN101147188B (zh) 2005-01-21 2010-09-29 格斯图尔泰克股份有限公司 图像处理中基于运动的跟踪的方法和系统
WO2006084385A1 (en) 2005-02-11 2006-08-17 Macdonald Dettwiler & Associates Inc. 3d imaging system
WO2006108279A1 (en) * 2005-04-11 2006-10-19 Martin Lizee Method and apparatus for virtual presence
US7864168B2 (en) * 2005-05-25 2011-01-04 Impulse Technology Ltd. Virtual reality movement system
US7570250B2 (en) * 2006-05-04 2009-08-04 Yi-Ming Tseng Control device including a ball that stores data
US8280115B2 (en) * 2007-10-30 2012-10-02 Canon Kabushiki Kaisha Image processing apparatus and image processing method
US8243987B2 (en) * 2008-06-06 2012-08-14 International Business Machines Corporation Object tracking using color histogram and object size

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003091740A (ja) * 2001-09-17 2003-03-28 Namco Ltd 画像生成システム、プログラム及び情報記憶媒体
JP2004246578A (ja) * 2003-02-13 2004-09-02 Nippon Telegr & Teleph Corp <Ntt> 自己画像表示を用いたインタフェース方法、装置、およびプログラム
JP2005031799A (ja) * 2003-07-08 2005-02-03 Sony Computer Entertainment Inc 制御システムおよび制御方法
JP2005216061A (ja) * 2004-01-30 2005-08-11 Sony Computer Entertainment Inc 画像処理装置、画像処理方法、記録媒体、コンピュータプログラム、半導体デバイス
WO2006037786A2 (en) * 2004-10-05 2006-04-13 Sony France S.A. A content-management interface
JP2006209563A (ja) * 2005-01-31 2006-08-10 Victor Co Of Japan Ltd インターフェース装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6012068059; 竹松 克浩: '残像画像からの動きベクトル検出を用いた実時間姿勢推定' 電子情報通信学会技術研究報告 MVE Vol.99 No.723, 20000322, pp.93-98, 社団法人電子情報通信学会 *
JPN6012068062; 小泉智史,廣田薫: '疑似残像画像の提案及びその移動物体検出への応用' 日本ファジィ学会誌 Vol.12 No.3, 20000615, pp61-68, 日本知能情報ファジィ学会 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015191480A (ja) * 2014-03-28 2015-11-02 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、オブジェクトの操作方法、及びオブジェクトの操作プログラム
US10080963B2 (en) 2014-03-28 2018-09-25 Sony Interactive Entertainment Inc. Object manipulation method, object manipulation program, and information processing apparatus
WO2016138233A3 (en) * 2015-02-25 2016-12-08 The Regents Of The University Of Michigan Interactive projection system
WO2017081805A1 (ja) * 2015-11-13 2017-05-18 日立マクセル株式会社 操作検出装置、操作検出方法、及び映像表示システム
KR20180032320A (ko) * 2016-09-22 2018-03-30 주식회사 케이티 알파맵(Alpha Map) 분석을 통한 양방향 서비스를 제공하는 사용자 단말, 셋톱 박스 및 방법
KR102200820B1 (ko) * 2016-09-22 2021-01-11 주식회사 케이티 알파맵(Alpha Map) 분석을 통한 양방향 서비스를 제공하는 사용자 단말, 셋톱 박스 및 방법
WO2019235608A1 (ja) * 2018-06-07 2019-12-12 日本電気株式会社 分析装置、分析方法および記録媒体
JPWO2019235608A1 (ja) * 2018-06-07 2021-06-17 日本電気株式会社 分析装置、分析方法およびプログラム
JP7058386B2 (ja) 2018-06-07 2022-04-22 日本電気株式会社 分析装置、分析方法およびプログラム

Also Published As

Publication number Publication date
EP2104905A4 (en) 2010-12-29
US20080166022A1 (en) 2008-07-10
WO2008083205A2 (en) 2008-07-10
EP2104905A2 (en) 2009-09-30
EP2613281B1 (en) 2014-08-13
CN101636745A (zh) 2010-01-27
EP2613281A1 (en) 2013-07-10
US8559676B2 (en) 2013-10-15
WO2008083205A3 (en) 2008-08-28

Similar Documents

Publication Publication Date Title
US8559676B2 (en) Manipulation of virtual objects using enhanced interactive system
EP1851749B1 (en) Motion-based tracking
US20200133399A1 (en) Processing of gesture-based user interaction using volumetric zones
US10380803B1 (en) Methods and systems for virtualizing a target object within a mixed reality presentation
US9613454B2 (en) Automatic geometry and lighting inference for realistic image editing
US20200285311A1 (en) Gaze Detection Method and Apparatus
CN110622219B (zh) 交互式增强现实
US7536032B2 (en) Method and system for processing captured image information in an interactive video display system
JP5529146B2 (ja) シングルカメラトラッキング装置
KR102011169B1 (ko) 광 폴오프에 기초한 깊이 이미지의 생성 기법
TWI469813B (zh) 在動作擷取系統中追踪使用者群組
US20100315413A1 (en) Surface Computer User Interaction
US8081822B1 (en) System and method for sensing a feature of an object in an interactive video display
Zollmann et al. Image-based ghostings for single layer occlusions in augmented reality
JP2010500645A (ja) 視覚ディスプレイのためのバーチャルコントローラ
KR20140101406A (ko) 씨스루 디스플레이를 통한 새도우의 디스플레이
US9697642B2 (en) Image processing device and image processing method
US20180190019A1 (en) Augmented reality user interface visibility
WO2023182253A1 (ja) 炎検出装置、炎検出方法、画像生成装置、動作確認システム、画像生成方法、及びプログラム
US20220293067A1 (en) Information processing apparatus, information processing method, and program
Kulkarni et al. Gesture Based Efficient Cursor Controller Using Human Computer Interaction Technique

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101224

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130404

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131015