(57)【要約】  一実施形態では、まず、第１の撮影画像にアクセスする。第１の撮影画像は、（１）第１の時点で生成される第１の表示と、（２）第１の表示の一部ではなく、第１の表示とインタラクションするユーザとを含む。第２の撮影画像にアクセスする。第２の撮影画像は、（１）第２の時点で生成される第２の表示と、（２）前記第２の表示の一部ではなく、前記第２の表示とインタラクションするユーザとを含む。第１の撮影画像と第２の撮影画像とを比較する。第１の撮影画像と第２の撮影画像との比較結果に基づいてユーザの動作を決定する。決定されたユーザの動作を１つ以上の第１および第２の撮影画像の一部分と関連付ける。
2008529135.tif 000002
【特許請求の範囲】
【請求項１】
（１）演算装置により実行される一連の指示により第１の時点で生成される第１の表示と（２）前記第１の表示の一部ではなく、前記第１の表示とインタラクションするユーザとを含む第１の撮影画像にアクセスする工程と、
（１）前記演算装置により実行される一連の指示により第２の時点で生成される第２の表示と（２）前記第２の表示の一部ではなく、前記第２の表示とインタラクションする前記ユーザとを含む第２の撮影画像にアクセスする工程と、
前記第１の撮影画像と前記第２の撮影画像とを比較する工程と、
前記第１の撮影画像と前記第２の撮影画像との比較結果に基づいて前記ユーザの動作を決定する工程と、
前記決定されたユーザの動作を１つ以上の前記第１および第２の撮影画像の一部分と関連付ける工程とを含む方法。
【請求項２】
前記決定されたユーザの動作に関する指標（indication）および前記一部分を前記演算装置に与える工程をさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記決定された動作および前記一部分に基づいて、一連の指示に対する入力を決定する工程をさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
第１の撮影画像と第２の撮影画像との比較工程は、前記第１の撮影画像および前記第２の撮影画像に対して絶対差分処理を行うことを含むことを特徴とする請求項１に記載の方法。
【請求項５】
第１の撮影画像と第２の撮影画像との比較工程は、前記第１の撮影画像および前記第２の撮影画像に対してオプティカルフロー処理を行うことを含むことを特徴とする請求項１に記載の方法。
【請求項６】
第１の撮影画像と第２の撮影画像との比較工程は、結果を得ることを含み、前記結果は、前記ユーザの動作と、前記第１および第２の表示に含まれる１つ以上の対象物に関する動作とを示す画像であることを特徴とする請求項１に記載の方法。
【請求項７】
前記結果に対して幾何学的変換処理を行う工程をさらに含むこと特徴とする請求項６に記載の方法。
【請求項８】
前記第１の撮影画像および前記第２の撮影画像の比較結果に基づいてユーザの動作を決定する工程が、前記結果において、前記第１および第２の表示に含まれる１つ以上の対象物に関する動作から前記ユーザの動作を分離することを含むことを特徴とする請求項６に記載の方法。
【請求項９】
前記第１および前記第２の表示に含まれる１つ以上の対象物に関する動作を示す画像にアクセスする工程をさらに含み、
前記結果において、前記第１および第２の表示に含まれる１つ以上の対象物に関する動作から前記ユーザの動作を分離する工程が、前記結果と、前記第１および前記第２の表示に含まれる１つ以上の対象物に関する動作を示す画像とを比較することを含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記第１および前記第２の表示に含まれる１つ以上の対象物に関する動作を示す画像にアクセスする工程が、
前記第１の表示に対応する第１の表示画像にアクセスする工程と、
前記第２の表示に対応する第２の表示画像にアクセスする工程と、
前記第１の表示画像および前記第２の表示画像に対して絶対差分処理を行うことにより、前記第１および前記第２の表示に含まれる１つ以上の対象物に関する動作を示す前記画像を生成する工程とを含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記第１および前記第２の表示に含まれる１つ以上の対象物に関する動作を示す画像にアクセスする工程が、
前記第１の表示に対応する第１の表示画像にアクセスする工程と、
前記第２の表示に対応する第２の表示画像にアクセスする工程と、
前記第１の表示画像および前記第２の表示画像に対してオプティカルフロー処理を行うことにより、前記第１および前記第２の表示に含まれる１つ以上の対象物に関する動作を示す前記画像を生成する工程とを含むことを特徴とする請求項９に記載の方法。
【請求項１２】
前記第１および前記第２の表示に含まれる１つ以上の対象物に関する動作を示す画像に対して、待ち時間補償処理を行う工程をさらに含むことを特徴とする請求項９に記載の方法。
【請求項１３】
（１）演算装置により実行される一連の指示により第１の時点で生成される第１の表示と（２）前記第１の表示の一部ではなく、前記第１の表示とインタラクションするユーザとを含む第１の撮影画像にアクセスし、
（１）前記演算装置により実行される一連の指示により第２の時点で生成される第２の表示と（２）前記第２の表示の一部ではなく、前記第２の表示とインタラクションする前記ユーザとを含む第２の撮影画像にアクセスし、
前記第１の撮影画像と前記第２の撮影画像とを比較することにより前記第１および第２の撮影画像間の動作を表わす画像を生成する
よう構成された撮影画像動作検知モジュールと、
前記第１および第２の表示に含まれる１つ以上の対象物に関する動作を表わす画像と、前記第１および第２の撮影画像間の動作を表わす前記画像との比較結果に基づいて、前記ユーザの動作を表わす画像を生成するよう構成された比較モジュールとを含むことを特徴とするシステム。
【請求項１４】
前記第１の表示画像にアクセスし、
前記第２の表示画像にアクセスし、
前記第１の表示画像を前記第２の表示画像と比較することにより、前記第１および前記第２の表示に含まれる１つ以上の対象物に関する動作を表わす前記画像を生成する
よう構成された表示画像動作検知モジュールをさらに含むことを特徴とする請求項１３に記載のシステム。
【請求項１５】
（１）前記第１の撮影画像を撮影し、前記第１の撮影画像を前記撮影画像動作検知モジュールに与え、（２）前記第２の撮影画像を撮影し、前記第２の撮影画像を前記撮影画像動作検知モジュールに与えるよう構成されたカメラと、
画像を表示するためのディスプレイと、
一連の指示を実行して前記第１および前記第２の表示画像を生成するよう構成された演算装置と
をさらに含むことを特徴とする請求項１４に記載のシステム。
【請求項１６】
前記第１および前記第２の表示に含まれる１つ以上の対象物に関する動作を表わす画像に対して、待ち時間補償処理を行うよう構成された待ち時間補償モジュールをさらに含むことを特徴とする請求項１４に記載のシステム。
【請求項１７】
前記第１および前記第２の撮影画像間の動作を表わす前記画像に対して、幾何学的変換処理を行うよう構成された幾何学的変換モジュールをさらに含むことを特徴とする請求項１３に記載のシステム。
【請求項１８】
処理装置により実行された場合、少なくとも
（１）演算装置により実行される一連の指示により第１の時点で生成される第１の表示と（２）前記第１の表示の一部ではなく、前記第１の表示とインタラクションするユーザとを含む第１の撮影画像にアクセスする指示と、
（１）前記演算装置により実行される一連の指示により第２の時点で生成される第２の表示と（２）前記第２の表示の一部ではなく、前記第２の表示とインタラクションする前記ユーザとを含む第２の撮影画像にアクセスする指示と、
前記第１の撮影画像と前記第２の撮影画像とを比較する指示と、
前記第１の撮影画像と前記第２の撮影画像との比較結果に基づいてユーザの動作を決定する指示と、
前記決定されたユーザの動作を、１つ以上の前記第１および第２の撮影画像の一部分と関連付ける指示と
を含むコンピュータ読取可能な媒体を具備することを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一部では画像処理に関し、特に、画像の動作の検知に関する。
【０００２】
＜関連出願への相互参照＞
本願は、２００５年１月２１日付けで出願した「投影された背景の前にいるユーザの動作に基づくトラッキング（Motion-Based Tracking of a User in Front of a Projected Background）」と題する米国仮特許出願第６０／６４５，０７４号に対して優先権を主張し、その全ての開示内容をここに参照により援用する。
【背景技術】
【０００３】
様々なシステムが、少なくとも間接的に、ユーザがインタラクションしようとする情報を投影または表示する。例えば、多くの場合、コンピュータがモニタに文書を表示すると、ユーザはマウスを用いて、表示された文書内にカーソルを置くことにより、表示された文書に対して間接的にインタラクションすると思われる。このようなコンピュータは、モニタに文書を表示するのではなく、プロジェクタを用いて投影スクリーンに文書を投影することもできる。別の例として、タッチスクリーンコンピュータがあり、ユーザは、例えば、モニタの画像が示す位置に触れることにより、すなわち、表示された画像の特定の要素を選択するためにその要素に触れることにより、より直接的に表示された画像とインタラクションすることができる。
【発明の開示】
【課題を解決するための手段】
【０００４】
開示された実施形態の１つによると、ユーザの動作を検知し、ユーザの動作に基づいて入力を生成することにより、ユーザは表示または投影された画像と直接的にインタラクションすることが可能となる。例えば、ビデオゲームにより画像が生成され表示されると、ユーザは、画像にあるアイコンをポイントしてそのアイコンを選択することができる。開示されたシステムは、ユーザの動作を検知し、検知した動作をアイコンの選択と関連付け、ユーザが選択したアイコンを示す入力をアプリケーションに与える。このシステムはカメラを用いてユーザの動作を検知する。
【０００５】
包括的態様の１つにあっては、まず、第１の撮影画像にアクセスする。第１の撮影画像は、（１）第１の時点で生成される第１の表示と、（２）前記第１の表示の一部ではなく、前記第１の表示とインタラクションするユーザとを含む。第２の撮影画像にアクセスする。第２の撮影画像は、（１）第２の時点で生成される第２の表示と、（２）第２の表示の一部ではなく、第２の表示とインタラクションするユーザとを含む。第１の撮影画像と第２の撮影画像とを比較する。第１の撮影画像と第２の撮影画像との比較結果に基づいてユーザの動作を決定する。決定されたユーザの動作を１つ以上の第１および第２の撮影画像の一部分と関連付ける。
【０００６】
上記包括的態様の実施形態には、以下の特徴を１つ以上含んでいてもよい。例えば、決定されたユーザの動作に関する指標および前記一部分を演算装置に与えてもよい。これに加えてまたはこれに代えて、決定されたユーザの動作および前記一部分に基づいて、一連の指示に対する入力を決定してもよい。
【０００７】
第１および第２の撮影画像の比較には、第１の撮影画像および第２の撮影画像に対して絶対差分処理またはオプティカルフロー処理を行うことを含み得る。第１および第２の撮影画像の比較は、結果を得ることを含んでいてもよく、その結果は、ユーザの動作と第１および第２の表示に含まれる１つ以上の対象物に関する動作とを示す画像であり得る。その結果に対して幾何学的変換処理を行ってもよい。
【０００８】
第１の撮影画像と第２の撮影画像の比較結果に基づいたユーザの動作の決定には、その結果において、第１および第２の表示に含まれる１つ以上の対象物に関する動作からユーザの動作を分離することを含んでいてもよい。
【０００９】
第１および第２の表示に含まれる１つ以上の対象物に関する動作を示す画像にアクセスしてもよい。結果における第１および第２の表示に含まれる１つ以上の対象物に関する動作からユーザの動作の分離は、結果と、第１および第２の表示に含まれる１つ以上の対象物に関する動作を示す画像との比較を含んでいてもよい。
【００１０】
第１および第２の表示に含まれる１つ以上の対象物に関する動作を示す画像へのアクセスは、第１の表示に対応する第１の表示画像へのアクセスと、第２の表示に対応する第２の表示画像へのアクセスと、第１および第２の表示に含まれる１つ以上の対象物に関する動作を示す画像の生成とを含んでいてもよい。第１および第２の表示に含まれる１つ以上の対象物に関する動作を示す画像は、第１の表示画像および第２の表示画像に対して絶対差分処理を行うことにより生成してもよい。または、第１および第２の表示に含まれる１つ以上の対象物に関する動作を示す画像は、第１の表示画像および第２の表示画像に対してオプティカルフロー処理を行うことにより生成してもよい。
【００１１】
第１および第２の表示に含まれる１つ以上の対象物に関する動作を示す画像に対して、待ち時間補償処理を行ってもうよい。
【００１２】
別の包括的態様によると、システムは、撮影画像動作検知モジュールと、比較モジュールとを含む。撮影画像動作検知モジュールは、（１）演算装置により実行される一連の指示により、第１の時点で生成される第１の表示と（２）第１の表示の一部ではなく、第１の表示とインタラクションするユーザとを含む第１の撮影画像にアクセスするよう構成される。撮影画像動作検知モジュールは、また、（１）演算装置により実行される一連の指示により、第２の時点で生成される第２の表示と（２）第２の表示の一部ではなく、第２の表示とインタラクションするユーザとを含む第２の撮影画像にアクセスするよう構成される。撮影画像動作検知モジュールはさらに、第１の撮影画像と第２の撮影画像とを比較することにより、第１および第２の撮影画像間の動作を表わす画像を生成するよう構成される。比較モジュールは、第１および第２の表示の１つ以上の対象物に関する動作を表わす画像と、第１および第２の撮影画像間の動作を表わす画像との比較結果に基づいて、ユーザの動作を表わす画像を生成するよう構成される。
【００１３】
上記包括的態様の実施形態には、以下の特徴を１つ以上含んでいてもよい。例えば、システムは、第１の表示画像にアクセスし、第２の表示画像にアクセスし、第１の表示画像を第２の表示画像と比較することにより第１および第２の表示に含まれる１つ以上の対象物に関する動作を表わす画像を生成するよう構成された表示画像動作検知モジュールを含んでもよい。
【００１４】
また、システムは、（１）第１の撮影画像を撮影し、第１の撮影画像を撮影画像動作検知モジュールに与え、（２）第２の撮影画像を撮影し、第２の撮影画像を撮影画像動作検知モジュールに与えるよう構成されたカメラを含んでいてもよい。これに加えてまたはこれに代えて、システムは、画像を表示するディスプレイと、一連の指示を実行して第１および第２の表示画像を生成するよう構成された演算装置とを含んでいてもよい。
【００１５】
システムは、第１および第２の表示に含まれる１つ以上の対象物に関する動作を表わす画像に対して、待ち時間補償処理を行うよう構成された待ち時間補償モジュールをさらに含んでいてもよい。また、システムは、第１および第２の撮影画像間の動作を表わす画像に対して、幾何学的変換処理を行うよう構成された幾何学的変換モジュールも含んでいてもよい。
【００１６】
上記において、たとえ１つの方法しか用いられていない場合でも、様々な態様、実施形態および特徴を１つ以上の様々な方法で実施することができる。例えば、方法、装置、方法を行うための装置、道具または処理装置、プログラムやその他一連の指示、プログラムや一連の指示を含む装置およびコンピュータ読取可能な媒体の１つまたはそれ以上を用いて、例えば、様々な態様、実施形態および特徴を実施することができる。コンピュータ読取可能な媒体は、例えば、指示、ソフトウェア、画像およびその他のデータを含み得る。
【００１７】
１つ以上の実施形態の詳細について、添付の図面を参照して以下に説明する。他の特徴も説明、図面および特許請求から明らかとなる。
【発明を実施するための最良の形態】
【００１８】
特定の実施形態の一つにおいて、ビデオゲームアプリケーションは画像を生成し、コンピュータシステムはユーザのためにその画像を投影する。ユーザは、投影された画像の前で動くことによりビデオゲームをプレーし、その投影画像が現実に存在するかのようにユーザは投影画像とインタラクションする。例えば、ユーザが、投影画像に対象物として含まれているターゲットに対してスイングする（ターゲットに対して手を振り付ける）場合がある。この例においては、実施するにあたって、ユーザのスイング（手の振り）を検知し、ユーザがターゲットに対してスイングしていると判断し、ユーザがターゲットに対してスイングしたということを示す入力をビデオゲームアプリケーションに与える。そして、ビデオゲームアプリケーションは、ユーザがターゲットに対してスイングしたという入力を受けると、適切な投影画像を生成する。
【００１９】
本実施形態では、ユーザがスイングすると、カメラが投影画像とユーザとを含む連続する画像を撮影することにより、ユーザの動作を検知することができる。また、本実施形態では、ユーザのいない一連の投影画像にアクセスし、各連続画像の動作を決定し、決定された連続画像の動作を比較して、ユーザの動作を分離（以下、「セグメント化」ともいう）する。本実施形態では、ターゲットの位置情報を用いて、ユーザの動作が実際にターゲットに対するスイングであると判断し、その決定情報をビデオゲームアプリケーションに入力する。
【００２０】
照明条件が変化すると投影画像の表示の質が悪くなる場合がある。というのは、人間またはカメラに認識されるためには、投影画像は、周囲の光のレベルに対して十分に明るくなくてはならないからである。そうでなければ、投影画像の見掛け上のコントラストが低くなりすぎて認識できなくなる場合がある。カメラのダイナミックレンジは、人間の目よりも低いことがある。このため、カメラが投影画像を含む画像を撮影するためには、人間に認識されるための明るさよりも投影画像を明るくする必要がある。例えば、投影画像を含む画像をカメラが撮影するためには、投影画像を、（例えば、１日の間に太陽が傾くにつれ）変化する周囲の光のレベル（例えば、太陽光または天井照明）よりも明るくする必要がある。周囲の光のレベルと同じまたはそれよりも明るく画像を投影することは、非実用的および／または高コストである。
【００２１】
しかし、本実施形態では、局所的に照明条件が変化しても、ユーザの動作を検出する能力に大きな影響を与えたり、その能力を大幅に低下させることはない。これは少なくとも、投影画像の動作からユーザの動作を分離することによりユーザの動作を決定するからである。局所的な照明の条件により、投影画像の表示の質が低下したり、投影画像を撮影するカメラの能力を損なう場合がある。しかし、一般的に、局所的に照明条件が変化しても、ユーザが十分な光量を反射するため、ユーザの動作を撮影するカメラの能力に大きな影響を与えることはない。このため、連続する撮影画像が投影画像の動作を含んでいない場合でも、その連続する撮影画像はユーザの動作を含む。
【００２２】
また、本実施形態では、カメラは、連続するフレーム間の照明条件の変化を無視できるようなサンプリングレートで画像を撮影する。一般的に、照明条件は分または時間単位で変化するが、カメラのサンプリングレートは、例えば、毎秒３０画像であり得る。このため、本実施形態では、通常、連続するフレームにおいてほぼ同じ照明条件を撮影するため、これらフレーム間の動作決定が、照明の変化と動作とを混同することがない。本実施形態では、局所的に照明条件が変化しても、ユーザの動作を検出する能力に大きな影響を与えることはないため、局所的に照明条件が変化する間でも、ユーザの動作を検知し続けることができる。
【００２３】
図１Ａ〜１Ｅは、様々なインタラクティブシステム１００、１２０、１３０、１４０、１５０の例を示す。図１Ａは、表示スクリーン１０４上に画像（以下、「表示画像」という）を表示する表示装置（例えば、プロジェクタ１０２および表示スクリーン１０４）を含むシステム１００を示す。カメラ１１０は、例えば、毎秒３０画像のサンプリングレートで画像を撮影し得る。表示画像は、演算装置１０６に搭載されているアプリケーション、または外部アプリケーションにより生成され得る。本明細書における説明では、表示画像は「表示される」と記載するが、画像が投影される場合もあることは明白である。また、別の実施形態では、画像を投影する必要がない場合もあることも明白である。例えば、液晶表示スクリーンを用いることができる。
【００２４】
ユーザ１０８は、表示スクリーン１０４上の表示画像とインタラクションする。カメラ１１０は、ユーザ１０８と、表示スクリーン１０４上に表示される表示画像の両方を含む画像を撮影する。演算装置１０６は、カメラ１１０が撮影した画像を処理し、表示の動作からユーザ１０８の動作を分離（すなわち、セグメント化）し、ユーザ１０８の動作を決定する。決定されたユーザ１０８の動作は、表示画像を生成するアプリケーションへの入力として用いられる。
【００２５】
インタラクティブシステム１００の構成要素は、例えば、図１Ａ〜１Ｅに示す様々なシステムのように、数多くの様々な構成で配置することができる。図１Ａを見ると、表示スクリーン１０４はユーザ１０８の前に配置され、プロジェクタ１０２とカメラ１１０は、ユーザ１０８の後ろに配置されている。このため、ユーザ１０８は、プロジェクタ１０２と表示スクリーン１０４との間に位置する。このため、ユーザ１０８が、表示スクリーン１０４上のプロジェクタ１０２により投影された表示画像を完全にまたは部分的に妨げてしまうおそれがある。
【００２６】
図１Ｂを見ると、システム１２０にあっては、ユーザ１０８の上にプロジェクタ１０２が配置され、表示スクリーン１０４はユーザ１０８の前に配置され、カメラ１１０はユーザ１０８の後ろに配置されている。この構成によると、ユーザ１０４が表示画像を部分的に妨げることを低減またはなくすことができる。
【００２７】
図１Ｃを見ると、システム１３０にあっては、プロジェクタ１０２とカメラ１１０がユーザ１０８の上に配置され、表示スクリーン１０４がユーザ１０８の下に配置されている。図１Ｃに示すように、表示スクリーンは、例えば、床であってもよい。
【００２８】
図１Ｄを見ると、システム１４０にあっては、プロジェクタ１０２とカメラ１１０がユーザ１０８の上に配置され、表示スクリーン１０４がテーブル上面１１２に配置されている。この構成でも、ユーザ１０８は、限られた、大抵の場合最小限ではあるが、表示画像を部分的に妨げるおそれがある。
【００２９】
図１Ｅを見ると、システム１５０にあっては、プロジェクタ１０２がテーブル１１４の内側に配置されている。プロジェクタ１０２は、表示画像が反射装置１１６（例えば、鏡）で反射して表示スクリーン１０４に表示されるように表示画像を投影する。表示スクリーン１０４はテーブル１１４の上に配置され、カメラ１１０はユーザ１０８の上に配置される。ユーザ１０８が表示画像を妨げることはない。任意に、演算装置１０６をテーブル１１４の内側に配置してもよい。
【００３０】
上記以外の構成も考えられ、様々なバリエーションが可能である。例えば、カメラが、表示スクリーン１０４の一部と、表示スクリーン１０４上に表示された表示画像とインタラクションするユーザ１０８の一部を少なくとも含む画像を撮影できるようにカメラを配置してもよい。
【００３１】
図１Ａ〜図１Ｅに示すように、表示装置は、プロジェクタ１０２と表示スクリーン１０４とを含む。しかし、表示装置はさらに、例えば、プラズマディスプレイ、液晶ディスプレイ（ＬＣＤ）、陰極線管（ＣＲＴ）ディスプレイ、またはメガネなし立体ディスプレイを含むこともできる。
【００３２】
図２を見ると、プロセス２００を用いて、ユーザ１０８の動作を決定し、決定されたユーザ１０８の動作をアプリケーションへの入力として利用することができる。プロセス２００は、システム１００を含む様々なシステムで実行され得る。説明を明確にするため、システム１００を用いた場合についてプロセス２００を説明するが、他のシステムを用いることも可能である。また、プロセス２００の実施形態を説明するためにシステム１００を用いているが、システム１００の使用は、プロセス２００を限定するものではない。
【００３３】
プロセス２００は、第１の撮影画像（２０２）と第２の撮影画像（２０４）にアクセスする工程を含む。表示スクリーン１０４の少なくとも一部と、表示スクリーン１０４とインタラクションするユーザ１０８の少なくとも一部の画像を撮影するのに、カメラ１１０が用いられる。撮影画像は画像バッファに保存され、画像バッファからアクセスされうる。
【００３４】
次に、第１の撮影画像と第２の撮影画像とが比較される（２０６）。第１の撮影画像と第２の撮影画像との比較結果に基づいて、ユーザ１０８の動作が決定される（２０８）。そして、決定されたユーザの動作は、１つ以上の第１および第２の撮影画像の一部分と関連付けられる（２１０）。以下に、プロセス２００の実施形態の実施方法について、図３を参照してさらに詳しく説明する。
【００３５】
図３には、システムのアーキテクチャ３００が示されている。説明を明確にするため、システム１００を用いた場合についてアーキテクチャ３００を説明するが、他のシステムを用いることも可能である。また、アーキテクチャ３００の実施形態を説明するためにシステム１００を用いているが、システム１００の使用は、アーキテクチャ３００を限定するものではない。
【００３６】
アーキテクチャ３００は、表示画像３０４を生成し、表示画像３０４を、演算装置１０６の表示画像動作検知モジュール３０６と表示装置３１０とに与えるアプリケーション３０２を含む。表示画像３０４は、動画として表される一以上の対象物（animated objects）を含んでいてもよい。つまり、表示画像３０４中の対象物の位置が経時的に変化することにより、動画効果（例えば、動作）が生じてもよい。例えば、連続する表示画像３０４中の対象物の位置のずれにより、表示画像３０４における動作を決めることができる。表示画像動作検知モジュール３０６は各表示画像３０４を比較し、表示画像３０４における動作を特定する表示画像動作マップ３０８を作成する。これについては、図４Ａ〜４Ｅを参照してより詳しく説明する。
【００３７】
一方、表示装置３１０は、表示画像３０４を表示（例えば、投影）する。投影された表示画像３１１は、表示スクリーン１０４（図示せず）上に表示され、ユーザ１０８（図示せず）は表示画像３０４とインタラクションする。本実施形態では、ユーザ１０８は、動くことにより表示画像３０４とインタラクションする。例えば、ユーザ１０８は、表示画像３０４にある対象物に手を伸ばしたり触ったりできる。
【００３８】
カメラ１１０は、投影された表示画像３１１とユーザ１０８の両者を含む一以上の画像３１３を撮影する。カメラ１１０は、これら撮影画像３１４を、演算装置１０６の撮影画像動作検知モジュール３１６に与える。カメラ１１０は、撮影画像３１４を、撮影画像動作検知モジュール３１６に直接与えてもよいし、あるいは、撮影画像３１４を画像バッファに保存し、撮影画像動作検知モジュール３１６が画像バッファの撮影画像３１４にアクセスしてもよい。撮影画像３１４におけるユーザ１０８の位置は経時的に変化する。連続する撮影画像３１４におけるユーザ１０８の位置のずれにより、例えば、ユーザ１０８の動作を決めることができる。撮影画像動作検知モジュール３１６は撮影画像３１４を比較し、撮影画像３１４の動作を特定する撮影画像動作マップ３１８を作成する。これについては、図５Ａ〜５Ｅを参照してより詳しく説明する。撮影画像３１４はユーザ１０８と表示画像３０４の両方を含むため、撮影画像動作マップ３１８で特定された動作には、ユーザ１０８の動作と表示画像３０４の動作の両方が含まれる。
【００３９】
実施形態によっては、同期モジュール３１２を用いて、表示画像３０４の表示をカメラ１１０の画像撮影と同期させてもよい。表示装置３１０（例えば、デジタル光処理（ＤＬＰ）プロジェクタを含む表示装置）の中には、表示画像３０４の赤色成分、緑色成分および青色成分を連続的に表示するものがある。人間の目は、表示画像３０４の赤色成分、緑色成分および青色成分の連続表示を検知できないかもしれないが、カメラ１１０は、赤色成分、緑色成分および青色成分の可変部分を撮影し得る。その結果、連続する撮影画像３１４内の撮影された表示画像３０４の赤色成分、緑色成分および青色成分が異なり、撮影画像動作検知モジュール３１６が、表示装置３１０が作成する撮影画像３１４の動作ではなく、表示画像３０４の動作によらない撮影画像３１４の動作を検知してしまう可能性がある。このため、各撮影画像３１４において、赤色成分、緑色成分および青色成分のむらのない部分をカメラ１１０が確実に撮影するように同期モジュール３１２を用いてもよい。
【００４０】
実施形態によっては、表示画像動作検知モジュール３０６と撮影画像動作検知モジュール３１６は、２つの画像に対して、比較処理、例えば、絶対差分処理を行って動作マップを生成する。グレースケール画像の場合、２つの画像の各画素の値の差の大きさ（例えば、絶対値）を計算することにより動作マップを得る。または、カラー画像の場合、２つの画像の各画素の各カラーチャンネル（例えば、赤、緑、青）の値の差の大きさを合計することにより、動作マップを得る。２つの画像に対して絶対差分処理を行うことにより生成された動作マップは、画像の領域内での動作の存在を特定する。例えば、連続するグレースケール画像のある領域の動作は、動作マップで明るい点として現れる大きな絶対差分を生む。
【００４１】
別の実施形態では、表示画像動作検知モジュール３０６と撮影画像動作検知モジュール３１６は、２つの画像に対して、オプティカルフロー処理を行って動作マップを生成する。一般的に、オプティカルフロー・アルゴリズムは、画像内の動作（例えば、画像内で位置が変わった対象物）を認識し、画像で認識された動作の速度（例えば、方向／向きおよび大きさ）を表わすベクトルを作成する。これにより、オプティカルフロー・アルゴリズムは、画像内の動作の存在だけでなく、画像内の動作の方向および大きさも決定する。従って、２つの画像に対してオプティカルフロー処理を行うことにより生成された動作マップは、画像の動作の存在、向きおよび大きさを特定する。
【００４２】
動作検知モジュール３０６および３１６はフィルタリング処理を行うこともできる。例えば、２つの画像に対して絶対差分処理を行って生成した動作マップにフィルタリングを用いることができる。実施形態によっては、動作検知モジュール３０６および３１６は、平均カーネルフィルタを用いて動作マップをフィルタリングする。平均カーネルフィルタは、動作マップの個々の画素を囲む画素の値を基に、個々の画素の値を決定する。例えば、３×３の平均カーネルフィルタを用いた場合、個々の画素の値に対して、個々の画素および個々の画素に隣接する８つの画素の合計または平均値が付与される。平均カーネルフィルタを用いて動作マップをフィルタリングすることにより、動作の領域の端縁を平滑化することができ、また、動作マップのノイズ（例えば、動作の不要な領域）を低減させることもできる。
【００４３】
これに加えてまたはこれに代えて、動作検知モジュール３０６および３１６は、動作マップに対して、拡張フィルタ処理および浸食フィルタ処理を行うことができる。拡張および浸食フィルタ処理はどちらも、個々の画素を囲む画素の値に基づいて、個々の画素の値を決定する。拡張処理では、フィルタ窓を、個々の画素および個々の画素を囲む一組の画素の上を通過させ、個々の画素の値に、フィルタ窓内で最大値を有する画素と同じ値を付与する。浸食処理では、フィルタ窓を、個々の画素および個々の画素を囲む一組の画素の上を通過させ、個々の画素の値に、フィルタ窓内で最小値を有する画素と同じ値を付与する。
【００４４】
動作検知モジュール３０６および３１６はまた、動作マップに対して分類処理を行うこともできる。例えば、動作検知モジュール３０６および３１６は、動作マップに対して閾値処理を行うことができる。閾値処理では、画素の値が既定値よりも大きい場合、個々の画素に「真」を表わす値を付与し、画素の値が既定値と同じまたはそれよりも小さい場合、「偽」を表わす値を付与する。真の値が付与された画素を、動作を表わす画素として分類し、偽の値が付与された画素を、動作を表わさない画素として分類することができる。反対に、真の値が付与された画素を、動作を表わさない画素として分類し、偽の値が付与された画素を、動作を表わす画素として分類することもできる。
【００４５】
比較モジュール３２０は、特定の表示画像動作マップ３０８を、対応する撮影画像動作マップ３１８と比較することによりユーザ１０８の動作を決定する。表示画像動作マップ３０８と撮影画像動作マップ３１８の両方に現れる動作は表示の動作により、撮影画像動作マップ３１８のみに現れる動作はユーザ１０８の動作による。従って、比較モジュール３２０は、表示画像動作マップ３０８を撮影画像動作マップ３１８と比較し、表示の動作からユーザ１０８の動作を分離（すなわち、セグメント化）することにより、ユーザ１０８単独による（または、優勢的）動作を特定するユーザ動作マップ３２２を作成する。
【００４６】
動作検知モジュール３０６および３１６が絶対差分処理を行う実施形態では、表示画像動作マップ３０８と撮影画像動作マップ３１８の両方において動作を表わす画素は、表示の動作による。従って、このような画素は、ユーザ動作マップ３２２において動作を表わす画素として分類されない。反対に、撮影画像動作マップ３１８だけに動作を表わす画素は、ユーザ１０８の動作によるため、ユーザ動作マップ３２２において動作を表わす値が付与される。
【００４７】
動作検知モジュール３０６および３１６がオプティカルフロー処理を行う実施形態では、表示画像動作マップ３０８の動作と大きく異なる撮影画像動作マップ３１８の動作が、ユーザ１０８の動作により、ユーザ動作マップ３２２に残される。撮影画像動作マップ３１８の動作は、表示画像動作マップ３０８の動作と大きく異なると考えられるのは、例えば、（１）大きさにおける差が、大きさの閾値を超えた場合、または、（２）向き（例えば、方向）における差が、向きの閾値を超えた場合である。このため、このような実施形態においては、表示の動作をも示す領域内であってもユーザ１０８の動作を検出することができる。
【００４８】
表示の動作からユーザ１０８の動作を分離するメカニズムは他にもある。例えば、表示画像３０４を対応する撮影画像３１４から減じてユーザ画像を生成し、連続するユーザ画像に基づいて、ユーザ動作マップを生成することができる。
【００４９】
決定されたユーザ１０８の動作（例えば、ユーザ動作マップ３２２に示されているような動作）は、アプリケーション３０２への入力として用いられる。例えば、アプリケーション３０２は、ユーザ動作マップ３２２を受け取り、ユーザ動作マップ３２２から、ユーザ１０８が表示画像３０４にあるターゲットに対してスイングしていると判断する。ユーザ１０８がターゲットに対してスイングしたと判断されると、アプリケーション３０２は、適切な表示画像３０４を生成し、表示画像動作検知モジュール３０６と表示装置３１０に表示画像を与える。
【００５０】
図４Ａ〜図４Ｅ、図５Ａ〜図５Ｅおよび図６Ａ〜図６Ｂに示す画像を用いて、ユーザ１０８の動作を決定するのに用いられる画像処理技術を説明することができる。このような画像処理技術は、例えば、図３に示すアーキテクチャ３００によって行われ得る。そこで、説明を明確にするため、図３に示すアーキテクチャ３００を用いた場合について、図４Ａ〜図４Ｅ、図５Ａ〜図５Ｅおよび図６Ａ〜６Ｂの画像を説明するが、他のアーキテクチャおよびシステムを用いて同じ画像処理技術を行ってもよい。図４Ａ〜図４Ｅ、図５Ａ〜図５Ｅおよび図６Ａ〜図６Ｂの画像について説明する際、図３に示すアーキテクチャ３００を参照するが、図４Ａ〜図４Ｅ、図５Ａ〜図５Ｅおよび図６Ａ〜図６Ｂの画像について説明する画像処理技術を行うために用いるアーキテクチャおよびシステムを限定するものではない。
【００５１】
図４Ａ〜図４Ｅを簡単に説明すると、図４Ａ〜図４Ｂは、連続する表示画像を示す。図４Ｃは、図４Ａ〜図４Ｂの連続する表示画像の合成画像を示す。図４Ｄ〜図４Ｅは、図４Ａ〜図４Ｂの連続する表示画像の動作を特定する表示動作マップを示す。
【００５２】
図５Ａ〜図５Ｅを簡単に説明すると、図５Ａ〜図５Ｂは、連続する撮影画像を示す。図５Ｃは、図５Ａ〜図５Ｂの連続する撮影画像の合成画像を示し、図５Ｄ〜図５Ｅは、図５Ａ〜図５Ｂの連続する撮影画像の動作を特定する撮影画像動作マップを示す。
【００５３】
図６Ａ〜図６Ｂを簡単に説明すると、図６Ａ〜図６Ｂは、図４Ｄ〜図４Ｅの表示画像動作マップおよび図５Ｄ〜図５Ｅの撮影画像動作マップに対応するユーザ動作マップを示す。
【００５４】
図４Ａは、第１の表示画像３０４（ａ）を示し、図５Ａは、第１の表示画像３０４（ａ）と、表示とインタラクションするユーザ１０８とを含む、対応する第１の撮影画像３１４（ａ）を示す。アプリケーション３０２は、時点ｔ−１で第１の表示画像３０４（ａ）を生成し、第１の表示画像３０４（ａ）を表示画像動作検知モジュール３０６および表示装置３１０に与える。図４Ａに示すように、第１の表示画像３０４（ａ）は、ボール４０２を含む。表示装置３１０が、第１の表示画像３０４（ａ）を表示スクリーン１０４に表示すると、ユーザ１０８は表示とインタラクションする。カメラ１１０は、第１の表示画像３０４（ａ）と、表示とインタラクションするユーザ１０８とを含む第１の撮影画像３１４（ａ）を撮影する。このため、第１の撮影画像３１４（ａ）は、ユーザ１０８と、第１の表示画像３０４（ａ）のボール４０２の両方を含む。
【００５５】
図４Ｂは、第２の表示画像３０４（ｂ）を示し、図５ｂは、第２の表示画像３０４（ｂ）と、表示とインタラクションするユーザ１０８とを含む、対応する第２の撮影画像３１４（ｂ）を示す。アプリケーション３０２は、時点ｔで第２の表示画像３０４（ｂ）を生成し、第２の表示画像３０４（ｂ）を表示画像動作検知モジュール３０６および表示装置３１０に与える。図４Ｂに示すように、第２の表示画像３０４（ｂ）は、第１の表示画像３０４（ａ）と同じボール４０２を含む。しかし、第２の表示画像３０４（ｂ）のボール４０２の位置は、第１の表示画像３０４（ａ）のボール４０２の位置よりも左側にある。図４Ｃは、第１の表示画像３０４（ａ）と第２の表示画像３０４（ｂ）とのボール４０２の位置が異なっていることを示すための、第１の表示画像３０４（ａ）と第２の表示画像３０４（ｂ）の合成画像４０３である。図４Ｃの合成画像４０３は、アーキテクチャ３００やアーキテクチャ３００の構成要素により生成されるのではなく、第１の表示画像３０４（ａ）と第２の表示画像３０４（ｂ）とのボール４０２の位置が異なることを示すためのものである。破線の円４０２（ａ）は、第１の表示画像３０４（ａ）におけるボール４０２の位置を表わし、破線の円４０２（ｂ）は、第２の表示画像３０４（ｂ）におけるボール４０２の位置を表わす。
【００５６】
表示装置３１０が、第２の表示画像３０４（ｂ）を表示スクリーン１０４に表示すると、ユーザ１０８は表示とインタラクションする。カメラ１１０は、第２の表示画像３０４（ｂ）と、表示とインタラクションするユーザ１０８とを含む第２の撮影画像３１４（ｂ）を撮影する。このため、第２の撮影画像３１４（ｂ）は、ユーザ１０８と第２の表示画像３０４（ｂ）のボール４０２の両方を含む。図５Ｂに示すように、第２の撮影画像３１４（ｂ）において、ユーザ１０８は、第１の撮影画像３１４（ａ）のユーザ１０８の位置よりも右側に位置し、第２の撮影画像３１４（ｂ）のボール４０２の位置は、第１の撮影画像３１４（ａ）のボール４０２の位置よりも左側にある。図５Ｃは、第１の撮影画像３１４（ａ）と第２の撮影画像３１４（ｂ）とのボール４０２の位置が異なっていることを示すための、第１の撮影画像３１４（ａ）と第２の撮影画像３１４（ｂ）の合成画像５０１である。図５Ｃの合成画像５０１は、アーキテクチャ３００やアーキテクチャ３００の構成要素により生成されるのではなく、第１の撮影画像３１４（ａ）と第２の撮影画像３１４（ｂ）とのボール４０２の位置が異なることを示すためのものである。破線で示したユーザ１０８（ａ）は、第１の撮影画像３１４（ａ）のユーザ１０８の位置を表わし、破線で示したユーザ１０８（ｂ）は、第２の撮影画像３１４（ｂ）のユーザ１０８の位置を表わす。破線の円４０２（ｃ）は、第１の撮影画像３１４（ａ）のボール４０２の位置を表わし、破線の円４０２（ｄ）は、第２の撮影画像３１４（ｂ）のボール４０２の位置を表わす。
【００５７】
第２の表示画像３０４（ｂ）と第１の表示画像３０４（ａ）とのずれにより、表示に動き（動作）が現れる。第１の表示画像３０４（ａ）のボール４０２の位置と、第２の表示画像３０４（ｂ）のボール４０２の位置とのずれは、時点ｔ−１から時点ｔまでのボールの動作を表わす。より一般的には、第１の表示画像３０４（ａ）と第２の表示画像３０４（ｂ）とのずれは、時点ｔ−１から時点ｔまでの表示の動作を表わす。
【００５８】
第１の表示画像３０４（ａ）および第２の表示画像３０４（ｂ）は、表示画像動作検知モジュール３０６に与えられ、表示画像３０４（ａ）と３０４（ｂ）の動作が決定される。表示画像動作検知モジュール３０６は、第１の表示画像３０４（ａ）を第２の表示画像３０４（ｂ）と比較し、２つの画像３０４（ａ）と３０４（ｂ）内の動作を特定する表示画像動作マップ３０８を作成する。図４Ｄは、第１の表示画像３０４（ａ）と第２の表示画像３０４（ｂ）に対して絶対差分処理を行うことにより生成した表示画像動作マップ３０８（ａ）の一例を示す。図４Ｄに示すように、第１の表示画像３０４（ａ）と第２の表示画像３０４（ｂ）に対して絶対差分処理を行うことにより生成した表示画像動作マップ３０８（ａ）は、表示画像３０４（ａ）と３０４（ｂ）の領域内の動作４０４の存在を特定する。
【００５９】
図４Ｅは、第１の表示画像３０４（ａ）と第２の表示画像３０４（ｂ）に対してオプティカルフロー処理を行うことにより生成した表示画像動作マップ３０８（ｂ）の一例を示す。図４Ｅに示すように、第１の表示画像３０４（ａ）と第２の表示画像３０４（ｂ）に対してオプティカルフロー処理を行うことにより生成した表示画像動作マップ３０８（ｂ）は、表示画像３０４（ａ）と３０４（ｂ）内の動作の存在、方向および大きさを特定するためにベクトル４０６を用いる。
【００６０】
上で説明したように、第２の撮影画像３１４（ｂ）のユーザ１０８の位置は、第１の撮影画像３１４（ａ）のユーザ１０８の位置よりも右側に位置する。ユーザ１０８の位置のずれは、表示とインタラクションするユーザの動作により得る。例えば、バレーボールのシミュレーション（例えば、バーチャル）ゲームをしている場合のように、ユーザ１０８が、ボール４０２を打とうとボール４０２に近づく場合、第１の撮影画像３１４（ａ）のユーザ１０８の位置と第２の撮影画像３１４（ｂ）のユーザの位置とのずれは、時点ｔ−１から時点ｔまでのユーザ１０８の動作を表わす。
【００６１】
第１の撮影画像３１４（ａ）および第２の撮影画像３１４（ｂ）は、撮影画像検知モジュール３１６に与えられる。撮影画像動作検知モジュール３１６は、第１の撮影画像３１４（ａ）を第２の撮影画像３１４（ｂ）と比較し、２つの画像３１４（ａ）および３１４（ｂ）内の動作を特定する撮影画像動作マップ３１８を作成する。図５Ｄは、第１の撮影画像３１４（ａ）と第２の撮影画像３１４（ｂ）に対して絶対差分処理を行うことにより生成した撮影画像動作マップ３１８（ａ）の一例を示す。図５Ｄに示すように、撮影画像動作マップ３１８（ａ）は、ユーザ５００による動作に加えて、表示５０２の動作も特定する。図５Ｅは、第１の撮影画像３１４（ａ）と第２の撮影画像３１４（ｂ）に対してオプティカルフロー処理を行うことにより生成した表示画像動作マップ３１８（ｂ）の一例を示す。図５Ｅに示すように、撮影画像動作マップ３１８（ｂ）は、ユーザ５０４による動作およびディスプレイ５０６の動作を特定するためにベクトルを用いる。撮影画像動作マップ３１８（ｂ）を生成するのに用いるオプティカルフロー・アルゴリズムは、第１の撮影画像３１４（ａ）および第２の撮影画像３１４（ｂ）に共通の対象物（例えば、ユーザ１０８とボール４０２）を認識し、第１の撮影画像３１４（ａ）と第２の撮影画像３１４（ｂ）に共通の対象物の位置を比較して、画像３１４（ａ）および３１４（ｂ）の動作を特定するベクトルを生成し得る。
【００６２】
比較モジュール３２０は、表示画像動作マップ３０８を撮影画像動作マップ３１８と比較することにより、ユーザ動作マップ３２２を生成する。図６Ａは、表示画像動作マップ３０８（ａ）と撮影画像動作マップ３１８（ａ）に対応するユーザ動作マップ３２２（ａ）の一例を示す。図６Ａに示すように、ユーザ動作マップ３２２（ａ）は、ユーザ５００単独による（または、優勢的）動作を特定する。図６Ｂは、表示動作マップ３０８（ｂ）と撮影画像動作マップ３１８（ｂ）に対応するユーザ動作マップ３２２（ｂ）の一例を示す。図６Ｂに示すように、ユーザ動作マップ３２２（ｂ）は、ユーザ５０４単独による（または、優勢的）動作を特定する。
【００６３】
図７において、システムのアーキテクチャ７００が示されている。以下に記載する違いを除いて、アーキテクチャ７００は、図３を参照して説明したアーキテクチャ３００と実質的に同じである。
【００６４】
実施形態によっては、例えば、カメラ１１０が表示スクリーン１０４に対向して回転し、プロジェクタ１０２とカメラ１１０が互いにオフアクシス（例えば、図１Ａに示すように、カメラ１１０がプロジェクタ１０２の上に位置するため、プロジェクタ１０２とカメラ１１０は同一軸を有しない）となる場合、または、撮影画像動作マップ３１８を生成するのに用いる撮影画像３１４の解像度が、表示画像動作マップ３０８を生成するのに用いる表示画像３０４の解像度と異なる場合、撮影画像動作マップ３１８の物体の位置と、表示画像動作マップ３０８の対応する物体の位置との間に、ずれが発生することがある。従って、実施形態によっては、演算装置１０６は、変換撮影画像動作マップ７０４の物体が、表示画像動作マップ３０８の対応する物体と合致するよう撮影画像動作マップ３１８のデータを変換撮影画像動作マップ７０４に変換（例えば、歪曲、回転、倍率変更、移動）するための幾何学的変換モジュール７０２を含む。このため、幾何学的変換処理により、逆さに設置されたカメラ１１０や、プロジェクタ１０２からオフアクシスで設置されたカメラ１１０や、表示スクリーン１０４に表示画像を反射する鏡１１６に投影される表示画像を補償することができる。幾何学的変換処理には、例えば、画素の移動や再配置、撮影画像動作マップ３１８のサイズ変更、動作値の補間、および／または動作値の補外が含まれ得る。
【００６５】
表示画像と表示画像を含む撮影画像の座標間の幾何学的マッピングを決定するのに較正法を用いることができる。また、幾何学的マッピングを用いて、撮影画像動作マップ３１８の物体を表示画像動作マップ３０８の対応する物体と合致させるのに必要な幾何学的変換処理を決定することができる。
【００６６】
較正法は、表示スクリーン１０４上に、既知のパターン、例えば、ドット格子または碁盤目を表示することを含み得る。カメラ１１０はパターンを含む画像を撮影し、撮影画像内のパターンの位置を計算する。そして、表示画像内の対応する要素の位置に対する撮影画像内のパターンの要素の位置を用いて、撮影画像の画素ごとに撮影画像と表示画像の座標間の幾何学的マッピングを定義することができる。
【００６７】
これに加えてまたはこれに代えて、較正法には、パターンを表示する前にブランク画像を短時間表示することや、パターンの位置を表示することが含まれていてもよい。撮影画像動作検知モジュール３１６は、撮影画像の変化（例えば、動作）を検知することによりパターンを検知することができる。
【００６８】
上述したように、幾何学的変換モジュール７０２は、撮影画像動作マップ３１８に対して幾何学的変換処理を行う。しかし、別の実施形態では、幾何学的変換モジュール７０２は、撮影画像３１４が撮影画像動作検知モジュール３１６に与えられる前に、撮影画像３１４に対して幾何学的変換処理を行う。
【００６９】
表示画像３０４をアプリケーション３０２から表示装置３１０に伝送し、表示画像を表示し、カメラ１１０で画像を撮影し、撮影画像３１４を処理するプロセスは、通常、待ち時間（すなわち、遅延）をもたらす。その結果、カメラが時点ｔで撮影する画像には、その少し前に生成された表示画像が含まれる。このため、実施形態によっては、演算装置１０６は、確実に、比較モジュール３２０が、同じ時間の対応する待ち時間補償された表示画像動作マップ７０８と変換撮影画像動作マップ７０４とを比較するよう、待ち時間補償処理を行う待ち時間補償モジュール７０６を含む。
【００７０】
実施形態によっては、待ち時間補償モジュール７０６は、待ち時間補償された表示画像動作マップ７０８を比較モジュール３２０に与える前に、表示画像動作マップ３０８を待ち時間と同じ時間バッファに保存する。その結果、待ち時間補償された表示画像動作マップ７０８は、対応する変換撮影画像動作マップ７０４とほぼ同じ時間に比較モジュール３２０に到達する。別の実施形態では、待ち時間補償モジュール７０６は、表示画像３０４を表示画像動作検知モジュール３０６に与える前に、表示画像３０４を待ち時間と同じ時間バッファに保存する。
【００７１】
これに加えてまたはこれに代えて、表示装置３１０のフレームレートとカメラ１１０のサンプリングレートとのずれを補償するのに待ち時間補償モジュール７０６を用いることができる。例えば、表示装置３１０のフレームレートが、カメラ１１０のサンプリングレート（例えば、露出時間）よりも大きいことがある。従って、１枚の撮影画像３１４が複数の表示画像３０４の露光を含むことがある。このような表示装置３１０のフレームレートとカメラ１１０のサンプリングレートとのずれを補償するため、待ち時間補償モジュール７０６は、複数の連続する表示画像動作マップ３０８を１つの待ち時間補償された表示画像動作マップ７０８に合成することができる。１つの待ち時間補償された表示画像動作マップ７０８に合成される表示動作マップ３０８の数は、カメラ１１０の１つのサンプリング時間（例えば、露出）の間に表示される表示画像の数と一致するように選択される。
【００７２】
絶対差分処理を用いて生成される表示画像動作マップ３０８は、論理関数「ＯＲ」処理を用いて合成してもよい。すなわち、待ち時間補償された表示画像動作マップ７０８を生成するのに合成された複数の表示画像動作マップ３０８のうちいずれかの対応する画素が動作を表わすと定義された場合、待ち時間補償された表示画像動作マップ７０８の画素は、動作を表わす画素として定義される。
【００７３】
あるいは、オプティカルフロー処理を用いて生成される表示画像動作マップ３０８は、待ち時間補償された表示画像動作マップ７０８の各画素に対して、各画素の動作の範囲が、待ち時間補償された表示画像動作マップ７０８を生成するために合成した複数の表示画像動作マップ３０８の対応する画素の動作を含むように動作の範囲を付与することにより合成してもよい。
【００７４】
較正法を用いて、表示画像が表示装置３１０に伝送される時間からカメラ１１０が対応する画像を撮影する時間までの待ち時間を決定することができる。較正法は、一定時間ブランク表示画像を表示し、その後、パターンを含む表示画像を表示することを含み得る。パターンを含む表示画像が表示装置３１０に伝送される時間を記録し、対応する撮影画像においてパターンが検出される時間と比較して、待ち時間を決定する。
【００７５】
実施形態によっては、アプリケーション３０２は、演算装置１０６に直接、表示画像動作マップ３０８を与える。このような実施形態では、表示画像動作検知モジュール３０６は必要ない。さらに、図３および図７において、アプリケーション３０２は演算装置１０６の外に格納されているが、実施形態によっては、アプリケーション３０２は演算装置１０６に搭載されて動作する。これらの実施形態が明らかにするように、本明細書に記載の機能は様々なモジュールおよび装置で実行することができる。従って、機能が１つの装置から別の装置に移る場合、装置間のインターフェイスは変化し得る。
【００７６】
実施形態によっては、ユーザ動作マップ３２２が生成されると、入力として、表示画像３０４を生成するアプリケーション３０２に与える。アプリケーション３０２は、ユーザ動作マップ３２２を用いてユーザ１０８のインタラクションを検出する。
【００７７】
例えば、アプリケーション３２２は、１つ以上の連続するフレームにわたって、表示画像３０４の対象物の既知の位置に対応する領域において、ユーザ１０８の動作を検出すると、ユーザ１０８が対象物に「触っている」と判断する。例えば、ユーザ１０８はボタンを「触る」ことにより、（例えば、ボタンを「オン」または「オフ」にする）ボタンを選択することが出来得る。但し、ユーザ１０８が表示画像３０４の対象物を「触っている」とアプリケーション３０２が決定するために、ユーザ１０８がディスプレイ表面１０４に物理的に触る必要はない。ユーザ１０８が表示スクリーン１０４に物理的に触る場合もあるが、表示スクリーン１０４に表示されている対象物の上や近くで、ユーザ１０８の体の一部を上下または左右に動かすと、ユーザ１０８が表示画像３０４の対象物を「触っている」とアプリケーション３０２が決定することもある。
【００７８】
さらに、アプリケーション３０２は、ユーザ１０８の動作を含むと分類される領域部分を決定することにより、表示画像３０４の対象物に対応する領域のユーザ１０８の動作の量を決定することができる。これにより、アプリケーション３０２は、ユーザ１０８の異なる動作（例えば、微妙な動作と意図的動作）を見分け、ユーザ１０８の異なる動作を用いて対象物の位置および／または挙動を制御することができる。また、当然のことながら、表示画像の対象領域近くで起こらないユーザの動作は無視される。
【００７９】
あるいは、アプリケーション３０２がオプティカルフローユーザ動作マップ３２２を受け取ると、アプリケーション３０２は、ある領域の動作ベクトルの大きさの平均値または最大値に基づいて、その領域での動作の量を決定することができる。従って、アプリケーション３２２は、ユーザ１０８の動作の速さを用いて、対象物の位置および／または挙動を制御することができる。例えば、ユーザ１０８が触る前に対象物が速度を有する場合、ユーザ１０８が対象物に触ると、アプリケーション３０２は、得られる対象物の速度が、対象物の最初の速度とユーザ１０８が対象物に与えた速度の組み合わせを反映するよう、対象物の速度を変えることができる。
【００８０】
また、アプリケーション３０２は、ユーザ１０８が動くことにより、表示画像３０４の対象物の外観を変えることもできる。例えば、ユーザが表示スクリーン１０４を「拭く」ことにより、アプリケーションは、元の対象物の代わりに新しい対象物を表示することができる。
【００８１】
実施形態においては、他の様々な方法でユーザの動作を決定することができる。例えば、動作を決定する前に表示画像３０４を撮影画像３１４から「減じる」ことができる。同様に、別の実施形態では、上述した機能が行われる順番を変更してもよい。
【００８２】
演算装置１０６は、コンピュータまたは別のタイプの演算装置であってもよい。例えば、演算装置１０６は、マイクロソフトウィンドウズオペレーティングシステムを実行するパーソナルコンピュータ（ＰＣ）であり得る。これに加えてまたはこれに代えて、演算装置１０６は、デジタル信号処理（ＤＳＰ）チップおよび／またはプログラム可能なピクセルシェーダを有するビデオグラフィックカードを含んでいてもよい。さらに、演算装置１０６は単体であってもよく、表示装置３１０に内蔵されてもよい。演算装置１０６を表示装置３１０に内蔵することにより、表示画像の伝送、表示、キャプチャリングおよび処理をする際に通常生じる遅延を低減することができる。
【００８３】
アプリケーション３０２が演算装置１０６に搭載されている場合、アプリケーションは、アクティブＸ方式のマクロメディア・フラッシュを用いてもよい。演算装置１０６は、ウィンドウズ・デバイス・コンテキストを表示画像バッファと関連付けることができる。演算装置１０６が、デバイス・コンテキストをマクロメディア・フラッシュ・アクティブＸオブジェクトに与えることにより、マクロメディア・フラッシュは画像を表示画像バッファに格納することができる。
【００８４】
または、アプリケーション３０２は、演算装置１０６の外に格納されていてもよい。アプリケーション３０２が演算装置１０６の外部にある場合、ビデオ信号（例えば、ビデオ・グラフィックス・アレイ（ＶＧＡ）信号）を、表示装置３１０とビデオ・キャプチャ・デバイス（例えば、ＶＧＡフレームグラバ）の両方に伝送することができる。ビデオ・キャプチャ・デバイスは、表示画像の表示を生成し、表示画像バッファに表示画像の表示を保存してもよい。
【００８５】
実施形態では、１つ以上のプロセスを行うように構成された装置が１つ以上含まれていてもよい。装置は、例えば、個別のまたは集積されたハードウェア、ファームウェアおよびソフトウェアを含んでいてもよい。装置は、例えば、マイクロプロセッサ、集積回路またはプログラム可能な論理素子を含む、例えば、一般的に処理装置と呼ばれるプロセッサを含んでいてもよい。
【００８６】
また、装置は、１つ以上のプロセスを実行する指示を有するコンピュータ読取可能な媒体を１つ以上含んでいてもよい。コンピュータ読取可能な媒体には、例えば、ハードディスク、コンパクトディスク、ランダム・アクセス・メモリ（ＲＡＭ）および読み出し専用メモリ（ＲＯＭ）などの、例えば、記憶装置が含まれ得る。また、コンピュータ読取可能な媒体は、例えば、指示を符号化または伝送するフォーマットされた電磁波を含んでいてもよい。指示は、例えば、ハードウェア、ファームウェアおよび電磁波に含まれていてもよい。指示は、例えば、オペレーティングシステム、別のアプリケーション、またはこれら２つの組み合わせに含まれていてもよい。このため、プロセッサは、例えば、プロセスを実行するよう構成された装置と、プロセスを実行する指示を有するコンピュータ読取可能な媒体を含む装置の両方を含む点に特徴を有し得る。
【００８７】
多数の実施形態について説明したが、様々な変更が可能であることは言うまでもない。例えば、異なる実施形態の要素を組み合わせたり、補充、変更または外すことにより別の実施形態を作製してもよい。従って、別の実施形態も添付の特許請求の範囲に含まれる。
【図面の簡単な説明】
【００８８】
【図１Ａ】第１のインタラクティブシステムを示す。
【図１Ｂ】第２のインタラクティブシステムを示す。
【図１Ｃ】第３のインタラクティブシステムを示す。
【図１Ｄ】第４のインタラクティブシステムを示す。
【図１Ｅ】第５のインタラクティブシステムを示す。
【図２】ユーザの動作を決定し、決定された動作をアプリケーションに入力するプロセスの一例を示すフローチャートである。
【図３】インタラクティブシステムのアーキテクチャのブロック図である。
【図４Ａ】第１の表示画像を示す。
【図４Ｂ】第２の表示画像を示す。
【図４Ｃ】図４Ａ〜図４Ｂの第１および第２の表示画像の合成画像を示す。
【図４Ｄ】図４Ａ〜図４Ｂの第１および第２の表示画像に対応する第１の表示画像動作マップを示す。
【図４Ｅ】図４Ａ〜図４Ｂの第１および第２の表示画像に対応する第２の表示画像動作マップを示す。
【図５Ａ】第１の撮影画像を示す。
【図５Ｂ】第２の撮影画像を示す。
【図５Ｃ】図５Ａ〜図５Ｂの第１および第２の撮影画像の合成画像を示す。
【図５Ｄ】図５Ａ〜図５Ｂの第１および第２の撮影画像に対応する第１の撮影画像動作マップを示す。
【図５Ｅ】図５Ａ〜図５Ｂの撮影画像に対応する第２の撮影画像動作マップを示す。
【図６Ａ】第１のユーザ動作マップを示す。
【図６Ｂ】第２のユーザ動作マップを示す。
【図７】インタラクティブシステムの別のアーキテクチャのブロック図である。
【図１Ａ】
2008529135.tif 000003
【図１Ｂ】
2008529135.tif 000004
【図１Ｃ】
2008529135.tif 000005
【図１Ｄ】
2008529135.tif 000006
【図１Ｅ】
2008529135.tif 000007
【図２】
2008529135.tif 000008
【図３】
2008529135.tif 000009
【図４Ａ】
2008529135.tif 000010
【図４Ｂ】
2008529135.tif 000011
【図４Ｃ】
2008529135.tif 000012
【図４Ｄ】
2008529135.tif 000013
【図４Ｅ】
2008529135.tif 000014
【図５Ａ】
2008529135.tif 000015
【図５Ｂ】
2008529135.tif 000016
【図５Ｃ】
2008529135.tif 000017
【図５Ｄ】
2008529135.tif 000018
【図５Ｅ】
2008529135.tif 000019
【図６Ａ】
2008529135.tif 000020
【図６Ｂ】
2008529135.tif 000021
【図７】
2008529135.tif 000022
【国際調査報告】
2008529135.tif 000023