(57)【特許請求の範囲】
【請求項１】
表示画像上のオブジェクトの平行移動及び／又は回転運動に作用する信号を供給する入力装置において、
ビデオ画像をキャプチャする装置と、
キャプチャされた人間の腕等のモーションのビデオ画像を出力画像プロセッサに供給される出力信号に変換する入力画像プロセッサであって、
（ａ）前記キャプチャされたビデオ画像内の背景から人間の形を分離し、
（ｂ）前記人間の形を画定するノンゼロ・ピクセルの重心及び二次水平モーメントを計算することによって前記人間の形の胴部分の水平方向の大きさを決定し、
（ｃ）前記人間の形の胴部分の前記決定した水平方向の大きさを用いて、前記人間の形の腕等の部分の位置及びモーメントを決定し、
（ｄ）前記人間の形の腕等の部分の位置及び／又は動きに応じて出力信号を生成する、
ようにプログラムされる入力画像プロセッサとを備え、
前記出力画像プロセッサが、前記入力画像プロセッサから受信した前記出力信号に応じて、表示画像上のオブジェクトの平行移動及び／又は回転運動に作用を与えるようにプログラムされる、入力装置。
【請求項２】
請求項１に記載の入力装置において、
前記出力画像プロセッサが、飛行物体から見た視点に基づいて前記表示画像を変化させる、入力装置。
【請求項３】
請求項１に記載の入力装置において、
前記出力画像プロセッサが、前記入力画像プロセッサから出力される前記信号に応じた位置とモーションを持つ飛行物体の表示画像を生成する、入力装置。
【請求項４】
人間の腕等の位置及び／又は運動データを用いて、表示画像上のオブジェクトの平行移動及び／又は回転運動に作用する信号を生成する方法において、
イメージ・プロセッサと、ビデオ画像をキャプチャする装置とを提供するステップと、
ビデオ画像をキャプチャし、それらのビデオ画像を処理することによって背景から人間の形を分離するステップと、
前記人間の形を画定するノンゼロ・ピクセルの重心及び二次水平モーメントを計算することによって前記人間の形の胴部分の水平方向の大きさを決定するステップと、
前記人間の形の胴部分の前記決定した水平方向の大きさを用いて、前記人間の形の腕等の部分を分離するステップと、
前記腕等の位置及び／又は運動データを計算するステップと、
表示画像上のオブジェクトの平行移動及び／又は回転運動に作用させるための信号を、前記腕等の位置及び／又は運動データに応じて生成するステップと、を有する方法。
【請求項５】
人間の腕等の位置及び／又は運動データを用いて信号を生成する方法において、
イメージ・プロセッサと、ビデオ画像をキャプチャする装置とを提供するステップと、
前記装置を用いてビデオ画像をキャプチャし、前記イメージ・プロセッサを用いてそれらのビデオ画像を処理して背景から人間の形を分離するステップと、
前記イメージ・プロセッサを操作して前記人間の形を画定するノンゼロ・ピクセルの重心及び二次水平モーメントを計算することによって前記人間の形の胴部分の水平方向の大きさを決定するステップと、
前記イメージ・プロセッサを操作して前記人間の形の胴部分の前記決定した水平方向の大きさを用いて前記人間の形における腕等の部分を分離するステップと、
前記イメージ・プロセッサを用いて、前記分離した前記腕等の位置及び／又は運動データを計算するステップと、
前記イメージ・プロセッサを用いて、前記腕等の位置及び／又は運動データに応じた信号を生成するステップと、を有する方法。
【請求項６】
人間の腕等の位置及び／又は運動データを用いて、表示画像上のオブジェクトの平行移動及び／又は回転運動に作用する信号を生成する方法において、
イメージ・プロセッサと、ビデオ・シーケンスをキャプチャする装置とを提供するステップと、
前記ビデオ・シーケンスから、人間の画像を含まない背景フレームをキャプチャするステップと、
前記ビデオ・シーケンスと前記背景フレームとに対してアルゴリズムを実行することにより、前景画像を分離するステップと、
前記分離された画像が人間の形の画像を含むかどうかを判定するステップと、
前記キャプチャされた各ビデオ・フレームにおいて前記人間の形の腕等の部分を分離するために、前記人間の形の胴部分の水平方向の大きさを決定するステップであって、前記人間の形の胴部分の水平方向の大きさの決定が、前記人間の形を画定するノンゼロ・ピクセルの重心及び二次水平モーメントを計算することによって実行されるステップと、
前記人間の形の腕等の部分を画定するノンゼロ・ピクセルの主軸モーメントの角度を計算することにより前記腕等の部分の角度を計算するステップと、
表示画像上のオブジェクトの平行移動及び／又は回転運動に作用させるために前記腕等の角度に応じて前記腕等の位置データ信号を生成するステップと、を有する方法。
【請求項７】
請求項６に記載の方法において、
前記分離された画像が人間の形の画像を含むかどうかを判定するステップが、
前記前景画像内のノンゼロ・ピクセルの総数をカウントするステップと、
前記ノンゼロ・ピクセルの総数が、ピクセル数の最小及び最大の閾値で規定される範囲内に入ることを保証するステップと、を有する方法。
【請求項８】
請求項６に記載の方法において、
前記前景画像を分離するステップで用いる前記アルゴリズムが、前記ビデオ・シーケンス内の個々のフレームから、前記背景フレームを差引きするステップを含む、方法。
【請求項９】
請求項６に記載の方法において、
前記前景画像を分離するステップで用いられるアルゴリズムでは、
（ａ）静止背景フレームのＹ０，Ｕ０，Ｖ０を取得し、
（ｂ）５×５マトリクスのガウスコンボリューションを用いてＹ０，Ｕ０，Ｖ０を平滑化し、
（ｃ）現在のビデオ・フレームのＹ，Ｕ，Ｖを取得し、
（ｄ）５×５マトリクスのガウスコンボリューションを用いてＹ，Ｕ，Ｖを平滑化し、
（ｅ）各ピクセルについて、Ｙdif＝abs（Ｙ−Ｙ０）を計算し、
（ｆ）各ピクセルについて、Ｕdif＝abs（Ｕ−Ｕ０）を計算し、
（ｇ）各ピクセルについて、Ｖdif＝abs（Ｖ−Ｖ０）を計算し、
（ｈ）Ｙdif，Ｕdif，Ｖdifに関する各ピクセルについて、Ｓｕｍ＝Ｙdif＋Ｕdif＊８＋Ｖdif＊８を計算し、
（ｉ）Ｓｕｍの各ピクセルについて、Ｓｕｍ＞所定の閾値ならば前景＝１、そうでない場合には前景＝０と計算し、
（ｊ）標準的収縮モルフォロジー・フィルタを用いて前景を収縮させ、これによって白黒ノイズによって生じるような任意の単一ピクセル・エラー測定値を除去し、
ここで、Ｙが輝度を表し、Ｕ及びＶが色差を表す、方法。
【請求項１０】
請求項６に記載の方法において、
前記生成ステップで生成される前記腕等の位置及び／又は運動データ信号が、オブジェクトの対気速度の加速度、バンク角、および、ピッチ角と関連する信号から成るグループの中から選択される、方法。
【請求項１１】
請求項６に記載の方法において、
前記生成ステップで生成される前記腕等の位置及び／又は運動データ信号が、平滑化のための所定の定数を用いて求められる、方法。
【請求項１２】
平行移動及び／又は回転運動に作用する人間の腕等の位置データを用いてフライト・シミュレータ表示画像で使用する信号を生成する方法において、
ビデオ画像をキャプチャする装置とイメージ・プロセッサとを提供するステップと、
前記装置を用いてビデオ画像をキャプチャし、前記イメージ・プロセッサを利用して該ビデオ画像を処理して背景から人間の形を分離するステップと、
前記人間の形を画定するノンゼロ・ピクセルの重心及び二次水平モーメントを計算することによって前記人間の形の胴部分の水平方向の大きさを決定するステップと、
前記イメージ・プロセッサを用いて、前記人間の形の胴部分の前記決定した水平方向の大きさを用いて、前記キャプチャされたビデオ画像から前記人間の形における腕等の部分を分離するステップと、
前記イメージ・プロセッサを用いて、前記腕等の位置及び／又は運動データを計算するステップと、
フライト・シミュレータ表示画像の状態を生成する際に用いる前記イメージ・プロセッサを用いて、前記腕等の位置及び／又は運動データに応じた信号を生成するステップと、を有する方法。
【請求項１３】
請求項１２に記載の方法において、
前記フライト・シミュレータ表示画像が、オブジェクトとして、羽を動かす飛行生物を含む、方法。
【請求項１４】
請求項１２に記載の方法において、
前記フライト・シミュレータ表示画像に、飛行生物の視点から見たときの変化が描かれる、方法。
【請求項１５】
請求項１３に記載の方法において、
前記飛行生物の羽の動きに対応して羽ばたき音を生成するステップを含む、方法。
【請求項１６】
請求項１５に記載の方法において、
キャプチャされた前記腕等のモーションが大きくなるのに伴って、前記羽ばたき音の音量が増える、方法。
【請求項１７】
請求項１５に記載の方法において、
前記腕等の角度の平均値の時間的変化率が所定の閾値を上回った場合に、前記羽ばたき音がトリガーされる、方法。
【請求項１８】
計算機によって実行可能な命令プログラムが記録された記録媒体であって、前記命令プログラムが、
ビデオ画像をキャプチャし、それらのビデオ画像を処理することによって背景から人間の形を分離する命令と、
前記人間の形を画定するノンゼロ・ピクセルの重心及び二次水平モーメントを計算することによって前記人間の形の胴部分の水平方向の大きさを決定する命令と、
前記人間の形の胴部分の前記決定した水平方向の大きさを用いて前記人間の形における腕等の部分を分離する命令と、
前記腕等の位置及び／又は運動データを計算する命令と、
表示画像上のオブジェクトの平行移動及び／又は回転運動に作用を与えるための、前記腕等の位置及び／又は運動データに応じた信号を生成する命令とを含む記録媒体。
【請求項１９】
請求項１８に記載の記録媒体において、
前記命令プログラムによって生成された前記信号を用いて、フライト・シミュレータ表示画像の状態を生成する、記録媒体。
【請求項２０】
計算機によって実行可能な命令プログラムが記録された記録媒体であって、前記命令プログラムが、
装置を用いてビデオ画像をキャプチャし、イメージ・プロセッサを用いてそれらのビデオ画像を処理して背景から人間の形を分離する命令と、
前記人間の形を画定するノンゼロ・ピクセルの重心及び二次水平モーメントを計算することによって前記人間の形の胴部分の水平方向の大きさを決定する命令と、
前記人間の形の胴部分の前記決定した水平方向の大きさを用いて前記人間の形における腕等の部分を分離する命令と、
前記イメージ・プロセッサを用いて、前記腕等の位置及び／又は運動データを計算する命令と、
前記イメージ・プロセッサを用いて、前記腕等の位置及び／又は運動データに応じた信号を生成する命令とを含む記録媒体。
【請求項２１】
計算機によって実行可能な命令プログラムが記録された記録媒体であって、前記命令プログラムが、
ビデオ・シーケンスから、人間の画像を含まない背景フレームをキャプチャする命令と、
前記ビデオ・シーケンスと前記背景フレームとに対してアルゴリズムを実行することにより、前景画像を分離する命令と、
前記分離された前景画像が人間の形の画像を含むかどうかを判定する命令と、
キャプチャされたビデオ・シーケンスのフレームにおいて前記人間の形の腕等の部分を分離するために、前記人間の形の胴部分の水平方向の大きさを決定する命令であって、前記人間の形の胴部分の水平方向の大きさの決定が、前記人間の形を画定するノンゼロ・ピクセルの重心及び二次水平モーメントを計算することによって実行される命令と、
前記人間の形の前記分離された腕等の部分におけるノンゼロ・ピクセルの主軸モーメントの角度を計算することにより前記腕等の角度を計算する命令と、
表示画像上のオブジェクトの平行移動及び／又は回転運動に作用させるために前記腕等の角度に応じて前記腕等の位置及び／又は運動データ信号を生成する命令とを含む記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般に、表示画像上でオブジェクトを動かすユーザー入力装置及び方法に関し、さらに具体的には、ユーザーのビデオ画像がキャプチャされ、処理されて、ディスプレイ上のオブジェクトの平行移動及び／又は回転運動を起こす信号を出力する入力装置及び方法に関する。特に、本発明はビデオ・ゲームのようなグラフィック・エンタテインメント・システムに適用可能である。
【０００２】
【従来の技術】
ビデオ・モニター等の画像表示装置上でオブジェクトを動かすために、ビデオ画像を用いるシステム、方法、入出力装置が利用される。しばしば、このようなビデオ入力装置は、ビデオ・キャプチャ装置の視野内のユーザーの動きまたは位置に応答する。最近では、一連のビデオ画像としてキャプチャされたユーザーの動きをゲーム制御用信号に変換するために、ビデオ画像処理を利用している。従来技術の入力システムには、システム・ユーザーが存在する視野を走査するビデオ・キャプチャ装置が含まれる。このキャプチャされたビデオ画像はビデオ・ディジタイザに供給され、ビデオ・ディジタイザは、該ディジタイザから受信したデジタル情報を分析し処理するプロセッサへデジタル出力を行う。次いで、視野内の参加者の位置または動きに基づいて、プロセッサは、ディスプレイ上のオブジェクトを動かすために画像作成システムによって用いられる信号を生成する。参加者の位置または動きによって装置または画像表示の操作または出力を行うことができるとはいえ、必要なコンピュータ処理時間はしばしば非常に長く、処理は複雑であることが多く、高能力のコンピュータ・リソース及び／又はタイム・リソースを必要とする傾向がある。
【０００３】
さらに、画像表示装置上でオブジェクトを動かすために利用されるユーザービデオ画像データを用いる公知の装置と方法は、一般に、ビデオカメラの視野の範囲内の参加者に対するかなりの負担によって特徴づけられる。このようなシステムには、一体化された腕カバーやグローブ、さらに容易に検出可能な部分や色、及び／又は発光ダイオード等の可視光源等の、参加者が着用を求められる追加装置が含まれる場合もある。しかし、このようなシステムは、ビデオゲーム用コントローラに求められるような消費者用アイテムの市場要件を満たすための、使い易さ、迅速なレスポンス、単純さ等を備えたユーザー入力装置の供給を考慮するものではない。
【０００４】
さらに、公知のシステムには、すでに存在しているマークとの比較などのような、生じている動きを理解したり認識したりするためのビデオ画像の追加的分析が含まれる。この分析によってシステムの複雑さと応答時間とが加わるため、公知のシステムは広く利用するには実際的なものではなくなっている。
【０００５】
さらに、公知のシステムは、画像表示を制御する目的で出力信号を生成するためにかなり多数のセグメント、境界及び／又はボックスを認識し決定するように入力ビデオ画像プロセッサに要求することができるとはいえ、これらのシステムは、限られたセグメント／モーメントの最低限の初期測定値に基づいて制御信号の配列計算を行うものではなく、入力ビデオ解像度が低い場合とシステムとに適した単純でスムーズな方法で出力信号を生成するものでもない。
【０００６】
したがって、表示画像上でのオブジェクトとのインタラクション用としてユーザービデオ画像入力を用いる現在のシステムは、出力画像表示で効率的な制御レベルを保ちながら、単純さと、応答性の良さと、求められる多くの市場性を有する性能とを一般に提供することができない。
【０００７】
【発明が解決しようとする課題】
グラフィック画像とのインタラクション用にビデオ画像を用いるユーザー入力の現状の技術に関する上述の欠点を考慮して、単純な設計と方法論とを与え、しかも確固で効率的なインタラクションを提供するユーザー入力システム及び方法を提供することが本発明の目的である。
【０００８】
いくつかのセグメント／モーメントだけの初期測定値から制御信号の配列計算を行うユーザー入力システムを提供することが本発明の実施例のさらなる目的である。
【０００９】
消費者用エンタテインメント・システムと互換性のあるコンピュータ処理能力を必要とするユーザー入力システムを提供することが本発明の実施例のさらなる目的である。
【００１０】
ビデオカメラの視野の範囲内のユーザーに負担をかけないユーザー入力システムを提供することが本発明の実施例のさらなる目的である。
【００１１】
【課題を解決するための手段】
本発明は、ユーザー入力に応じて、表示画像（または、グラフィック画像）上でオブジェクトを動かす装置及び方法に関する。入力装置は、ビデオ画像をキャプチャする構成要素と、キャプチャされたビデオ画像を処理し、このビデオ画像から得られるモーションに応じて出力信号を生成する入力画像プロセッサと、入力画像プロセッサから受信された信号に応じて表示画像上でオブジェクトを動かすようにプログラムされた出力画像プロセッサとを有する。様々なアルゴリズムが入力画像プロセッサに用いられ、表示画像上でオブジェクトを動かすための初期データ及び派生データが決定される。好適な実施例では、背景から人間の形（姿）を分離するためにビデオ画像がキャプチャされ、処理され、その人間の形から腕等の位置と動きのデータが計算され、このデータに応じて、画像表示装置上で鳥等のオブジェクトの動きを制御するための信号が入力画像プロセッサで生成される。表示画像上で制御される動きは、動くオブジェクトの形態や、このようなオブジェクトが眺める（経験する）眺望や視界（例えば鳥の眼から見た視界）の変化という形態をとることができる。
【００１２】
本発明の他の特徴と利点とは添付図面と以下の詳細な記述とから明らかとなる。
【００１３】
【発明の実施の形態】
本発明の実施の形態は、添付図の図面の中で例として示されるものにすぎず、これらの例は本発明を限定するものではない。同様の参照符号は同様のエレメントを示す。
【００１４】
以下、ユーザー入力に応じて、グラフィック画像上でオブジェクトを動かす（影響または作用を与える）装置及び方法を開示する。以下の説明では、説明を行う目的で、多数の具体的な細部が本発明の完全な理解を与えるために記述される。しかし、これらの具体的な細部がなくても本発明の実施が可能であることは、一般の当業者には明らかであろう。他の例では、説明を容易にするためにブロック図の形で周知の構造と装置とが示される。好適な実施例についての説明は、本明細書に添付の請求項の範囲の限定を意図するものではない。
【００１５】
［ハードウェアの概観］
本発明の態様は、基本ビデオ画像処理の実行が可能で画像表示が可能な装置によって実現可能である。図１は、本発明の実施例を実現するために使用できる、表示画像上のオブジェクトとのインタラクション用の例示的ユーザー入力システムを示すブロック図である。図１に図示のように、ユーザー入力システム１００は、ビデオ・キャプチャ装置１０２と、入力画像プロセッサ１０４と、出力画像プロセッサ１０６と、ビデオ表示装置１０８とから構成される。
【００１６】
ビデオ・キャプチャ装置１０２は、一連のビデオ画像をキャプチャすることが可能なものであればいずれの装置であってもよく、本好適な実施例では、“ウェブ・カム（web-cam）”等のデジタルビデオカメラや、類似のキャプチャ装置である。入力画像プロセッサ１０４は、人間の腕のモーションがキャプチャされたビデオ画像を信号に変換し、この信号を出力画像プロセッサへ供給する。１つの実施例では、入力画像プロセッサ１０４は、キャプチャされたビデオ画像内の背景から人間の形を分離し、人間のトルソ（胴部分）から腕部分を分離し、人間の腕の位置と動きとを決定（測定または検出）し、人間の腕の位置及び／又は動きに応じて出力信号を生成するようにプログラムされる。出力画像プロセッサ１０６は、入力画像プロセッサ１０４から受信される信号に応じて、ビデオ表示装置１０８上のオブジェクトの平行移動及び／又は回転運動を起こすようにプログラムされる。
【００１７】
本発明の上記の態様と追加の態様はソフトウェアの命令を実行する１以上のプロセッサによって実行することができる。本発明の１つの実施例に従って、単一プロセッサが入力画像処理と出力画像処理の双方を実行する。しかし、図に示されているように、また、説明の容易さのために、これらの処理操作は入力画像プロセッサ１０４と出力画像プロセッサ１０６との間で分けられるものとして示されている。本発明は、２つ以上のプロセッサのような、いずれかの特別のプロセッサ構成に限定されるものと解釈されるものでは決してないことに留意されたい。図１およびその他の図に示す多重処理ブロックは説明の便宜上示されているものにすぎない。
【００１８】
図２は、本発明の実施例に従う、ディスプレイに表示されたグラフィック画像上のオブジェクトとのユーザー対話（相互作用：interaction）処理用入力システムを例示する。入力システム環境２００には、ユーザー２０２と、ビデオ・キャプチャ装置２０４と、ビデオ表示装置２０６と、ビデオ・ゲーム・マシーン等のプロセッサ機能を含むコンソール２０８とが含まれる。入力システム環境２００内のユーザー２０２は、ビデオ・キャプチャ装置２０４の視野２１０の範囲内に位置する。処理システム２０８は、Ｓｏｎｙ（登録商標）・プレイステーションTMＩＩまたはＳｏｎｙ・プレイステーションTMＩタイプ等の、処理システム及びコンピュータ・エンタテインメント・システムによって実現が可能である。このような実現例について、以下の好適な実施例のセクションでより詳細に説明する。しかし、処理システム２０８は、パーソナル・コンピュータ、ワークステーション、ラップトップ・コンピュータ、無線計算機、または他のタイプの計算機（グラフィック画像データを受信し、処理することができるもの）などからなる、他のタイプのコンピュータ・システムによっても実現可能であることに留意されたい。
【００１９】
［画像処理方法］
図１及び図２のシステムは、ビデオ装置によってキャプチャされた人間の腕の位置・運動データを利用して、表示画像（モニタやスクリーン等に表示されたまたは表示するための画像）上でオブジェクトの平行移動及び／又は回転運動を起こす信号を生成する方法によって実現される。ユーザー２０２が動いたり、カメラ２０４の視野２１０の範囲内に自分の位置を定めたりするにつれて、表示装置２０６上の単数または複数のオブジェクトが対応して動いたり、位置が決められたりする。例えば、表示された背景場面に対して相対的に、カーソルまたはアニメーション・キャラクタを動かすためにユーザーの動きを利用することができる。好適な実施例では、このビデオ処理の方法論のステップは、（１）視野の範囲内の背景の差引き、（２）視野オブジェクトの決定、（３）腕／付属体（アペンデージ）の角度または位置の決定、（４）フライト・パラメータの決定の、各ステップとなる。
【００２０】
［ステップ１：バックグラウンド差引き］
表示画像の動きを制御するために利用される人物や他のオブジェクトが視野２１０の中にあるとき、人物の画像がデジタルカメラ２０４によってキャプチャされ、プロセッサ・ユニット２０８における処理のためのピクセル・データが生成される。本発明の１つの実施例では、バックグラウンド差引きを利用して、人物（前景）または非人物（背景）のいずれかとしてピクセルごとに画像のラベリングを行う（ラベルが作成される）。このラベリングは、場面が人物を含まない場合には、ビデオ・シーケンスからフレームを格納することにより行われる。この格納されたフレームはライブのビデオ・シーケンスから差引きされ、差引きフィルタリング処理を用いて前景画像が作成される。この差引きを行う方法に関していくつかのバリエーションが存在する。１つの実施例では、重み付けされた輝度の合計（weighted sum）と色差に対する単純な閾値処理方式を用いてピクセルが前景にあるか背景にあるかが判定される。基本処理は以下のようになる。すなわち、第１に、静止背景のフレームのＹ０，Ｕ０，Ｖ０を取得し；第２に、５×５マトリクスのガウスコンボリューション（Gaussian convolution）を用いてＹ０，Ｕ０，Ｖ０を平滑化し；第３に、現在のビデオ・フレームのＹ，Ｕ，Ｖを取得し；第４に、５×５マトリクスのガウスコンボリューションを用いてＹ，Ｕ，Ｖを平滑化し；第５に、Ｙ内の各ピクセルについて、Ｙdif＝abs（Ｙ−Ｙ０）を計算し；第６に、Ｕ内の各ピクセルについて、Ｕdif＝abs（Ｕ−Ｕ０）を計算し；第７に、Ｖ内の各ピクセルについて、Ｖdif＝abs（Ｖ−Ｖ０）を計算し；第８に、Ｙdif，Ｕdif，Ｖdif内の各ピクセルについて、Ｓｕｍ＝Ｙdif＋Ｕdif＊８＋Ｖdif＊８を計算し；第９に、Ｓｕｍの各ピクセルについて、Ｓｕｍ＞Threshold（閾値）ならばForeground（前景）＝１、そうでない場合にはForeground＝０と計算し；第１０に、標準収縮モルフォロジー・フィルタ（standard erosion morphological filter）を用いてForegroundを収縮する（この収縮処理は、白黒（salt-and-pepper）ノイズによって生じるような単一ピクセル・エラー測定値を取り除くために行う）。一般に、上述の第３から第１０のステップだけがビデオ・フレーム毎に反復される。上述の処理では、Ｙはピクセルの輝度を表し、ＵとＶはピクセルの色差を表す。なお、式［abs（数値）］からは、数値の絶対値が得られる。
【００２１】
［ステップ２：視野内人物の決定］
次のステップは、人物がビデオ・キャプチャ装置の視野内に存在するか否かを判定するステップである。このステップによって、画像表示アプリケーションを駆動するためにユーザーのビデオ画像処理を利用するか否かが判定される。このステップは、前景画像内のノンゼロ・ピクセル（ゼロでない値を有する画素）の総数をカウントするステップと、その総計が最小閾値と最大閾値の間に在ることを確認するステップとから構成される。最小閾値は、静止背景と現在のビデオ・フレーム間に何らかの違いが存在することの確認に用いられる。最大閾値はこの違いが大きすぎないことの確認に用いられる。この大きすぎる違いは、例えば、人物がカメラ画像を完全にブロックしている場合や、格納された背景フレームの初期化を忘れた場合に生じることもある。
【００２２】
［ステップ３：腕の角度の決定］
本発明の１つの実施例では、表示装置上に表示された画像オブジェクトの動きまたは位置は、視野内の人物の腕及び／又は脚（すなわち、身体の一部）の動きまたは位置によって作用される。この処理は一般に、分離された前景画像の領域統計値（area statistics）の計算によって行われる。図３は、本発明の１つの実施例に従う、腕の角度を決定するための左右の腕のサブイメージへの分割処理を示す、前景（人物）画像の例示図である。前景画像３０２は、人物のトルソ（胴体）部分３００と、左腕のサブイメージ３０６と、右腕のサブイメージ３０４を含む。まず、図３でわかるように、胴体部分の水平方向への大きさである、トルソの水平範囲“Ｗ”は、前景画像内のノンゼロ・ピクセルの重心（中心：Centroid）と二次水平モーメント（SecondMoment）との計算により決定される。
１．TorsoStartX＝CentroidX−sqrt（SecondMomentX）
２．TorsoEndX＝CentroidX＋sqrt（SecondMomentX）
但し、TorsoStartXはトルソ部分３００の左側を通って下りるラインとして示され、TorsoEndXはトルソ部分３００の右側を通って下りるラインとして示される。式［sqrt（数値）］からは、数値の平方根が得られる。
【００２３】
次に、左腕の角度を決定するためにTorsoStartXの左側のサブイメージ３０６が処理される。このサブイメージ内のノンゼロ・ピクセルの主モーメントの角度が計算される。この角度は０〜１８０度の範囲をとることができ、この範囲は左腕の動きの範囲として考慮されるものである。TorsoEndXの右側のサブイメージ３０４も同様に処理される。主軸モーメントの角度は、ピクセルに最も適合するラインの勾配として求めたものと考えることができる。主軸モーメントの角度を求める技術は、画像処理および動的モデリングを行う際の標準技術である。このような技術は、例えば、テキストブック「材料力学（Mechanics of Materials）」（ティモシェンコ（Timoshenko）、ギア（Gere）共著、１９９７年）中の記載から知ることができるであろう。
【００２４】
［ステップ４：フライト・パラメータ決定］
ユーザーの位置と、ユーザーの腕の動きの速度及びタイプに関する特性が、画像表示装置上に表示される図画要素を動かすために利用される。例えば、風景の上空を飛行するゲーム・キャラクタが現れるフライト・ゲーム（フライト・シミュレーション・ゲーム）中において、そのキャラクタのモーションを制御するためにユーザーの動きを利用することができる。
【００２５】
フライト・ゲームに付随するパラメータに関しては、フライト・シミュレーション・プログラムにおいて利用される対気速度の加速度（Accel）、旋回の際の機体の左右の傾きを表すバンク角（横傾斜角：BankAngle）、及び機首の上下の程度を表すピッチ角（縦傾斜角：PitchAngle）を計算するために、各ユーザー（人物）の、胴部分に対する腕の角度が処理される。バンク角は２つの腕の角度（左腕の角度（LeftAngle）及び右腕の角度（RightAngle））の有符号差分値から計算される。ピッチ角は、２つの腕の角度の平均値から９０度を減算することによって計算される。したがって、まっすぐ伸ばした腕はゼロ・ピッチ角を表す。次いで、このピッチ角は、「０.１」でスケール・ダウンされる（−９０°から９０°のピッチでは大きすぎる）。対気速加速度は、腕の角度の平均値の時間変化率として計算される（適切な値となるように定められる）。この時間変化率は、さらに平滑な信号を生成するために数フレームにわたって計算される。
【００２６】
一般に、計算されるパラメータの全ては、グラフィック表示画像の生成に用いられる前に平滑化される。この平滑化によって、若干のタイムラグが加わるがしかし、途切れ途切れになる（時間遅延になる）ことの少ないビデオ表示が得られる。この平滑化は、ビデオ・キャプチャ装置または処理システムが低解像度処理しかできない場合に特に望ましい。
【００２７】
１つの実施例では、フライト・シミュレータまたは類似のフライト・プログラムで利用されるグラフィック処理用変数を生成するための様々なパラメータの計算は、以下のように行われる。
１．BankAngle＝LeftAngle−RightAngle
２．PitchAngle＝（（（LeftAngle＋RightAngle）／2.0）−90）＊0.1
３．Accel＝abs（（LeftAngle＋RightAngle）−（LeftAnglePrev＋RightAnglePrev））＊K
４．以下のように平滑化計算が行われる：
BankAngleSmooth＝k1＊BankAngle＋（1−k1）＊BankAngleSmooth
PitchAngleSmooth＝k2＊PitchAngle＋（1−k2）＊PitchAngleSmooth
AccelSmooth＝k3＊Accel＋（1−k3）＊AccelSmooth
なお、添字Prevは、その値が先の（過去の）値であることを示しており、実際には、例えば過去の（または直前の）フレームから得られた値を示している。また、添字Smoothは、その値が平滑化後の値であることを示している。前記４式は、プログラム的に記載されているが、この式の内容をより明確にするために、右辺の「BankAngleSmooth」、「PitchAngleSmooth」及び「AccelSmooth」を、それぞれ過去の平滑化値を表す「BankAngleSmoothPrev」、「PitchAngleSmoothPrev」及び「AccelSmoothPrev」と記載するようにしてもよい。
【００２８】
これらの平滑化された量がシミュレーション用に使用される。前記３式中の「Ｋ」は、定数を表す。この定数Ｋは、ユーザーに与えられる実際の加速度に基づいて変更される。また、定数ｋ１、ｋ２、ｋ３は、表示オブジェクトのレスポンス（応答）特性を規定する。このことは、ユーザーの動きと表示オブジェクトの動きとの相関性をカスタマイズすることで、様々な経験（例えば、ゲームの体験）を得ること可能とする。例えば、フライト・シミュレータ・プログラムにおいて、様々なタイプの飛行機や飛行物体に関連する様々な特性を選択しまたは決定するように前記定数をプログラムすることができ、これによって様々なシミュレーションを経験することが可能になる。例えば、これらの定数の設定のし方によって、ジェット機の感覚をシミュレートすることや、ハンググライダーの感覚をシミュレートすることができる。
【００２９】
図４は、本発明の１つの実施例における、上述の方法論に従う、ユーザーの腕の動きに応じて表示装置上のオブジェクトを動かすステップを例示するフローチャートである。図４のフローチャート４００の最初の２つのステップは、バックグラウンド差引きのステップを有する。ステップ４０４で、キャプチャされた人物を含まないビデオ画像が格納され、ステップ４０６で、この格納されたビデオ画像がライブ（生または現在）のビデオ・シーケンスから差引きされる。次に、人物がデジタルカメラの視野の範囲内にいるかどうかが判定される（ステップ４０８）。ステップ４１０は、アーム角度決定ステップの第１の部分である、トルソの水平範囲を決定するステップで構成される。ステップ４１２では、各アーム角度が決定される。この角度の決定は、各腕のサブイメージの主モーメントの角度を計算することにより行われる。
【００３０】
この好適な実施例では、フライト・パラメータ決定ステップは、図４の最後の３つのステップで構成される。第１に、ステップ４１４で、上記列挙したものと同じ数式を用いて腕の角度を処理してフライト・パラメータの計算を行う。第２に、ステップ４１６で、特定のフライト経験（例えばジェット機、グライダーなど）用として選択される定数を含む関数を用いてこれらの量が平滑化される。最後に、ステップ４１８で、これらの平滑化されたパラメータは、表示画像上でオブジェクトの平行移動及び／又は回転運動を起こすためにフライト・シミュレーションで使用される。
【００３１】
本発明の代替実施例によれば、単に表示画像上のオブジェクトの動きに影響を与えるためだけでなく、公知の電気通信システム内で利用するために信号が生成される。本実施例は、人間の腕の位置及び／又は運動データに応じて信号を生成する方法として記述することができる。すなわち、該方法は、イメージ・プロセッサとビデオ画像をキャプチャする装置とを提供するステップと、該装置を用いてビデオ画像をキャプチャし、且つ、該イメージ・プロセッサを利用してそれらの画像を処理することにより背景から人体部分（人間の形の部分）を分離するステップと、該イメージ・プロセッサを用いて、キャプチャされたビデオ画像（または、分離された人体の画像）から人体の腕の部分を分離するステップと、該イメージ・プロセッサを用いて腕の位置と運動のデータを計算するステップと、該イメージ・プロセッサを用いて、腕の位置と運動のデータに応じて信号を生成するステップとを有する。
【００３２】
［グラフィック入力および処理機能］
本好適な実施例では、ユーザーの腕のアクションがビデオ・キャプチャ装置によってキャプチャされ、それに対応するアクションが、表示画像上に現れる鳥（飛行生物）のキャラクタのモーションに変換される。代表的な腕のアクションと、それらと鳥の動きとの相関関係が図５〜図９に例示されている。図５は、本発明の１つの実施例に従う、ユーザーの腕の羽ばたき動作と、表示画像上における鳥の上昇動作との相関関係を例示する。図５に図示のように、相関システム５００には、左腕５０４と右腕５０６とを有し、これらの腕を図中の２方向の矢印５０８で示すように羽ばたかせているユーザー５０２が図示されている。このアクションは、対応する表示画像５１０上における景観５１６との関係において、矢印５１４で示すように上昇する鳥５１２の動作と相関する。
【００３３】
図６は、本発明の１つの実施例に従う、自分の腕をまっすぐ伸ばした状態に保つユーザーの動作と、表示画像上で滑空（ソアリング）する鳥の動作との相関関係を例示する。図６に図示のように、相関システム６００には、左腕６０４と右腕６０６とを有し、これらの腕を水平の矢印６０８で示すようにまっすぐに伸ばした状態に保つユーザー６０２が例示されている。このアクションは、対応する表示画像６１０上における景観６１６との関係において、水平な飛翔針路で例示されているような鳥６１２の滑翔動作と相関する。
【００３４】
図７は、本発明の１つの実施例に従う、自分の腕を左へ傾けるユーザーと、表示画像上で左へ傾いて飛んでいる鳥との相関関係を例示する。図７に図示のように、相関システム７００には、左腕７０４と右腕７０６とを有し、下向きの矢印７０８と上向きの矢印７１０によって例示されているように、左腕７０４が右腕７０６より低くなるように位置させているユーザー７０２の動作が図示されている。このアクションは、対応する表示画像７１４上における景観７１６との関係において、正の勾配を有する鳥の体の軸線によって例示されているように左へ傾いて飛んでいる鳥７１２の動作と相関する。
【００３５】
図８は、本発明の１つの実施例に従う、自分の腕を右側へ傾けるユーザーの動作と、表示画像上で右へ傾いて飛んでいる鳥の動作との相関関係を例示する。図８に図示のように、相関システム８００には、左腕８０４と右腕８０６とを有し、上向きの矢印８０８と下向きの矢印８１０とによって例示されているように、左腕８０４の方を右腕８０６より高くなるように位置させているユーザー８０２の動作が図示されている。このアクションは、対応する表示画像８１２上における景観８１８との関係において、負の勾配を持つ鳥の体の軸線によって例示されているように右へ傾いて飛んでいる鳥８１４の動作と相関する。
【００３６】
図９は、本発明の１つの実施例に従う、自分の腕を後へしまい込む（タックする）ユーザーの動作と、表示画像上で下降している鳥の動作との相関関係を例示する。図９に図示のように、相関システム９００には、左腕９０４と右腕９０６とを有し、これらの腕を、下向き矢印９０８によって例示されているように後へタックするように位置させている、ユーザー９０２の動作が示されている。このアクションは、対応する表示画像９１０上における景観９１６との関係において、矢印９１４によって例示されているように下降する鳥９１２の動作と相関する。
【００３７】
上記好適な実施例では、本発明のユーザー入力装置及び方法は、図１０のブロック図によって例示されているコンピュータ処理システムによって実現される。この処理システムは、メイン・メモリ１００２とグラフィック処理ユニット（ＧＰＵ）１００６とに接続される中央演算処理装置（ＣＰＵ）１００４を含むコンピュータベースのエンタテインメント・システムの実施例を表している。ＣＰＵ１００４は入出力用プロセッサ（ＩＯＰ）バス１００８とも接続される。１つの実施例では、ＧＰＵ１００６はピクセルベースのグラフィック・データの高速処理用内部バッファを含む。さらに、ＧＰＵは、エンタテインメント・システム１０００あるいはそのエレメントの外部に接続されたテレビ・モニタ１００７へ送信するために、処理された画像データを規格テレビ信号（ＮＴＳＣやＰＡＬなど）に変換する出力処理部または機能を含むことができる。上記とは別に、コンピュータ用モニターや、ＬＣＤ（液晶表示）装置、あるいは、その他のタイプの表示装置のような、テレビ・モニタ以外の表示装置に対してデータ出力信号を出力することができる。
【００３８】
ＩＯＰバス１００８は、ＣＰＵ１００４を様々な入力／出力装置および他のバスや装置と接続する。ＩＯＰバス１００８は、入出力用プロセッサ（ＩＯＰ）・メモリ１０１０、コントローラ１０１２、メモリー・カード１０１４、ユニバーサル・シリアル・バス（ＵＳＢ）ポート１０１６、ＩＥＥＥ１３９４（Firewireインターフェースとしても知られている）ポート１０１８、バス１０３０と接続される。バス１０３０は、オペレーティング・システム（ＯＳ）ＲＯＭ１０２０、フラッシュ・メモリ１０２２、音声処理ユニット（ＳＰＵ）１０２４、光ディスク制御ユニット１０２６、ハードディスク・ドライブ（ＨＤＤ）１０２８を含むいくつかの他のシステム構成要素をＣＰＵ１００４と接続する。この実施例の１つの態様では、ビデオ・キャプチャ装置は、ＣＰＵ１００４への送信用として使用されるＩＯＰバス１００８と直接接続されてもよい。このＩＯＰバスの中で、ビデオ・キャプチャ装置から得られるデータを用いてＧＰＵ１００６内にグラフィック画像の生成用として使用される値を変更または更新することが可能である。さらに、本発明の実施例は、「アウトライン生成データ、生成方法及び装置」という表題の米国特許出願０９/５７３,１０５（２０００年５月１７日出願）に記載のような種々の画像処理構成と技術とを利用することができる。該特許出願はその全体が本明細書に参考文献として取り入れられている。
【００３９】
いくつかの異なる方法によって、本発明の態様を具現化するプログラムまたはコンピュータ命令を与えることができる。例えば、グラフィック画像との相互作用を与えるためのユーザー入力方法は、ＨＤＤ１０２８、フラッシュ・メモリ１０２２、ＯＳＲＯＭ１０２０またはメモリー・カード１０１２に格納されたプログラムの形で提供することが可能である。上記とは別に、ＣＰＵ１００４と接続された１以上の入力ポートを通じて処理ユニット１０００へプログラムをダウンロードすることができる。入力方法を定義するプログラム・モジュールを、ＣＰＵ１００４に実行され、表示装置１００７上に表示されるゲームまたはアプリケーション・プログラムに設けることができる。あるいは、ローカルなメイン・メモリ１００２から実行する場合のように、これらのプログラム・モジュールをアプリケーション・プログラムとは別に供給してもよい。
【００４０】
本発明の実施例はまた、分散型画像処理構成についても考慮するものである。例えば、本発明は、キャプチャされた画像や表示画像の処理が、ＣＰＵ内、または、ＣＰＵと他の１つのエレメント内で行われる場合のような、１つまたは２つの場所で行われる形態に限定されるものではない。例えば、入力画像処理は、処理の実行が可能な関連するＣＰＵ、プロセッサまたは装置内で容易に行うことが可能である。ほぼ全ての画像処理を相互接続システムを通じて分散することができる。したがって、本発明は、いずれの特定の画像処理用ハードウェア回路構成及び／又はソフトウェアにも限定されるものではない。本発明はまた、一般的ハードウェア回路構成及び／又はソフトウェアのいずれかの特定の組合せに限定されるものではなく、また、処理用構成要素によって実行される命令のいずれかの特定のソースに限定されるものでもない。
【００４１】
［その他の実施例］
１つの実施例では、フライト・シミュレータのデモンストレーションに対して羽ばたき音を追加することが可能である。腕の角度の平均値の符号付き時間変化率がある特定の閾値を上回った場合、この羽ばたき音はトリガーされる。このトリガーは、ユーザーが自分の両腕を一緒に下ろしたときにのみ羽ばたき音につながる。羽ばたき音の音量はその振舞いによっても同様にスケールされる。したがって、羽ばたきモーションが誇張されればされるほど（すなわち、モーションが大きくなればなるほど）、大きな羽ばたき音が生成される。
【００４２】
さらなる実施例にはデモンストレーションへの追加があり、この中では、腕の角度を利用して、鳥の羽ばたきを示す予め生成されたアニメーションへ変換する指標が与えられる。これらの腕の角度は、このアニメーションに変換する指標として用いられる。この実施例では、デモンストレーションは１人称の人物から見たもの、すなわち、飛行物体等のオブジェクトの視点に基づくものであってもよく、この場合、鳥のアニメーションは見えない。もっとも、風景上に日光によって投影されるような鳥の影を見ることはできる。
【００４３】
ネットワーク・デモンストレーションでは、実際の鳥のアニメーションはプレイしている一方の人物のモーションに対応する。竜、鷲、鷹等のような、鳥の変形例のいくつかのアニメーションが存在してもよい。これらのアニメーションの各々に対してわずかに異なるフライト経験を与えるために上述の平滑化パラメータが提供される。例えば竜は大きくて動きが遅いのでグライダーのパラメータが用いられるが、鷹は小さくて素早いのでジェット戦闘機用パラメータが用いられる。
【００４４】
当業者ならば理解できるように、本明細書に記載のグラフィック入力および処理方法のアプリケーションは、フライト・ゲームやシミュレータ以外の他のタイプのシミュレーションまたはプログラムに拡張可能である。例えば、ユーザーのモーションは、ドライブ用オブジェクトや走行（競争、滑走）用オブジェクトを含むビデオゲームや教育用プログラムの中で、あるいは、スキー、自転車競技、格闘、および類似のアクション等のユーザーのモーションを含む様々なスポーツゲームの中で、オブジェクトを制御するために利用することが可能である。
【００４５】
さらに、本発明の実施例を、表示オブジェクトを動かすために利用されるユーザーの腕の動きに関して例示し、説明してきたが、ユーザーの脚や頭部あるいはユーザーが把持する物体の動きに基づいてグラフィック制御を行う類似の処理技術の利用も可能であることに留意されたい。
【００４６】
本発明の実施例では、様々な後処理フィルタリングや、シャドウ効果、歪み、モーフィング効果等のような表示オブジェクトに対する特殊効果の、好適でかつ便利な手段を考慮することもできる。このような後処理フィルタリングや特殊効果は好適な追加であり、これらを用いて基本システムの単純さと効率性を活用することができる。
【００４７】
以上、表示画像上でオブジェクトを動かすユーザー入力システムについて説明した。特定の例示実施例と関連して本発明を説明したとはいえ、請求項に記載のような本発明のさらに広い精神と範囲から逸脱することなくこれらの実施例に対して様々な改変や変更を行うことが可能であることは明らである。例えば、フライトと関連する出力を有するシステムまたはフライト・ゲーム以外のアプリケーションに本発明の実施例を拡張することが可能である。一般に、表示オブジェクトの動きまたは位置決めがユーザーの動きまたは位置決めによって制御される任意のグラフィック・ベースのアプリケーションを本明細書に記載の処理方法と関連して利用することが可能である。したがって、本明細書と図面とは限定的な意味ではなく例示的な意味で考慮されるべきものである。
【発明の効果】
本発明によれば、グラフィック画像とのインタラクション用にビデオ画像を用いるユーザー入力に関し、単純な設計と方法論とを与え、しかも確固で効率的なインタラクションを提供することができる。
【図面の簡単な説明】
【図１】本発明の実施例を実現するために使用可能な、表示画像上でオブジェクトとインタラクションを行うための、例示的ユーザー入力システムを示すブロック図である。
【図２】本発明の１つの実施例に従う、表示画像上でオブジェクトとのインタラクションを行うためのユーザー入力システムを例示する。
【図３】本発明の１つの実施例に従う、腕の角度を決定するための、左右の腕のサブ画像への分割を示す人間の画像を例示する図である。
【図４】本発明の１つの実施例に従う、ユーザーの腕の動きに応じて、表示画像上でオブジェクトを動かすステップを例示するフローチャートである。
【図５】本発明の１つの実施例に従う、第１例のユーザー位置における、ユーザーの腕と表示画像上でのオブジェクトとの間の相関関係を例示する。
【図６】本発明の１つの実施例に従う、第２例のユーザー位置における、ユーザーの腕と表示画像上でのオブジェクトとの間の相関関係を例示する。
【図７】本発明の１つの実施例に従う、第３例のユーザー位置における、ユーザーの腕と表示画像上でのオブジェクトとの間の相関関係を例示する。
【図８】本発明の１つの実施例に従う、第４例のユーザー位置における、ユーザーの腕と表示画像上でのオブジェクトとの間の相関関係を例示する。
【図９】本発明の１つの実施例に従う、第５例のユーザー位置における、ユーザーの腕と表示画像上でのオブジェクトとの間の相関関係を例示する。
【図１０】本発明の実施例に従うユーザー入力装置及び方法を実現する例示的処理システムのブロック図である。
【符号の説明】
１００：ユーザー入力システム、１０２：ビデオ・キャプチャ装置、１０４：入力画像プロセッサ、１０６：出力画像プロセッサ、１０８：ビデオ表示装置、１０００：エンタテインメント・システム（処理ユニット）、１００２：メイン・メモリ、１００４：ＣＰＵ、１００６：ＧＰＵ、１００７：テレビ・モニタ、１００８：ＩＯＰ、１０１０：ＩＯＰメモリ、１０１２：コントローラ、１０１４：メモリー・カード、１０１６：ＵＳＢポート、１０１８：ＩＥＥＥ１３９４ポート、１０２０：ＯＳＲＯＭ、１０２２：フラッシュ・メモリ、１０２４：ＳＰＵ、１０２６：光ディスク制御ユニット、１０２８：ＨＤＤ、１０３０：バス
【図１】
0003733587.tif 000002
【図２】
0003733587.tif 000003
【図３】
0003733587.tif 000004
【図４】
0003733587.tif 000005
【図５】
0003733587.tif 000006
【図６】
0003733587.tif 000007
【図７】
0003733587.tif 000008
【図８】
0003733587.tif 000009
【図９】
0003733587.tif 000010
【図１０】
0003733587.tif 000011