JP2009537923A - データ処理の制御 - Google Patents

データ処理の制御 Download PDF

Info

Publication number
JP2009537923A
JP2009537923A JP2009511563A JP2009511563A JP2009537923A JP 2009537923 A JP2009537923 A JP 2009537923A JP 2009511563 A JP2009511563 A JP 2009511563A JP 2009511563 A JP2009511563 A JP 2009511563A JP 2009537923 A JP2009537923 A JP 2009537923A
Authority
JP
Japan
Prior art keywords
image
difference
point
points
control
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
JP2009511563A
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 JP2009537923A publication Critical patent/JP2009537923A/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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • A63F13/533Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game for prompting the player, e.g. by displaying a game menu
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/757Matching configurations of points or features
    • 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/10Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
    • A63F2300/1087Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals comprising photodetecting means, e.g. a camera
    • A63F2300/1093Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals comprising photodetecting means, e.g. a camera using visible light
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/30Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device
    • A63F2300/308Details of the user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Optics & Photonics (AREA)
  • Image Analysis (AREA)
  • Processing Or Creating Images (AREA)
  • Closed-Circuit Television Systems (AREA)
  • Position Input By Displaying (AREA)

Abstract

ビデオカメラから連続する画像を受信するよう構成されるデータ処理装置であって、該データ処理装置の制御機能と対応づけられている画像領域内の選択されたポイントについて画像間動作を検出するための手段と、該画像間動作について画像領域において検出が行われた場合に制御機能を実行するための手段と、を備え、該検出手段は、先行して受信した画像内のポイントとの対応関係に基づいて、現在受信している画像内のテストポイントを選択することによって妥当性が確認された、現在の画像の画像領域内にあるポイントを選択するよう構成されており、先行して受信した画像内のポイントそれ自体は、現在受信している画像内でもともと選択されたポイントに対応するものであり、対応するテストポイントが実質的に一致しない現在の画像内のポイントは選択から外すことを特徴とするデータ処理装置。
【選択図】 図6

Description

本発明はデータ処理の制御に関する。特殊な例として、ビデオゲーム処理操作の制御に関連するが、本発明はより一般的に他の種類のデータ処理にも適用するものである。
従来のビデオゲーム機において、ユーザーは、ビデオモニターまたはテレビ画面上のゲームを見て、手持ち式のキーパッドまたはジョイスティックを使用してゲームの操作を制御する。ソニー(Sony、登録商標)プレイステーション(PlayStation、登録商標)2等のゲーム機については、手持ち式コントローラが、2本のジョイスティックと数個のユーザー操作キーを提供するものがあり、これは、ゲーム内でイベントが生じた場合、ユーザーに対し触覚性のフィードバックを提供するための振動エレメントを伴う。
これらのゲーム機は、ビデオカメラを利用できることはすでに提案されている。これによって、ユーザーの画像をゲームシナリオの中に出現させることが可能となり、あるいは、空中で「ワンド」を振る等のユーザーのアクションを、ゲーム内のキャラクターが対応するアクションをするように変換できる。
この構成において不都合な点は、ゲーム機能間で切り換えを行う場合、さらに一般的にゲーム機の操作を制御する場合、手持ち式のコントローラを操作しなければならないということである。
制御について今まで出された提案は、一般的にユーザーが特殊な手袋をはめるようにするもので、特に、取り込まれた画像内で手袋をした手によって検知を行うという特徴を有するものである。映画「マイノリティ・レポート」の中で、フィクションの例示が見られる。
本発明のさまざまな各態様および特徴は、添付の請求の範囲において定義される。従属クレームによる特徴は、必要に応じて独立クレームの特徴と組み合わせることが可能であり、ただ単にクレーム内で明確に列記されている特徴だけではない。
本発明の第一の態様は、ビデオカメラから連続した画像を受信するよう構成されたデータ処理装置を提供する。当該装置は、
データ処理装置の制御機能と対応づけられている画像領域内の選択されたポイントについて画像間動作を検出するための手段と、
該画像間動作について画像領域において検出が行われた場合、制御を実行するための手段と、を備え、
該検出手段は、先行して受信した画像内のポイントとの対応関係に基づいて、現在受信している画像内のテストポイントを選択することによって妥当性が確認された、現在の画像の画像領域内にあるポイントを選択するよう構成されており、先行して受信した画像内のポイントそれ自体は、現在受信している画像内でもともと選択されたポイントに対応するものであり、対応するテストポイントが実質的に一致しない現在の画像内のポイントは選択から外すことを特徴とする。
本発明の別の態様は、次のステップから成るデータ処理方法を提供する。すなわち、
ビデオカメラから、連続した取り込まれた画像を受信するステップと、
データ処理装置の制御機能と対応づけられている画像領域内にある、選択されたポイントについて画像間動作を検出するステップと、
画像間動作が画像領域において検出された場合に制御機能を実行するステップと、を備え、
該検出ステップは、先行して受信した画像内のポイントとの対応関係に基づいて、現在受信している画像内のテストポイントを選択することによって妥当性が確認された、現在の画像の画像領域内にあるポイントを選択するステップを備え、先行して受信した画像内のこれらのポイントは、それ自身が現在受信している画像内でもともと選択されたポイントに対応するものであり、対応するテストポイントが実質的に一致しない現在の画像内のポイントは選択から外すことを特徴とする。
本発明の別の態様は、上記の方法を実行するためのプログラムコードを有するコンピュータ・ソフトウェアを提供する。当該コンピュータ・ソフトウェアは、伝送媒体または記憶媒体等の準備媒体により提供されることが好ましい。
本発明のさらなる個々の態様および特徴は、添付の請求の範囲において定義される。明示されない場合であっても、従属クレームの特徴は、さまざまに異なる独立クレームに対して適用される。
以下、例証のみを目的として、添付の図面を参照しながら本発明の実施例について説明する。
図1は、プレイステーション2の全体的なシステムアーキテクチャを概略的に示すものである。システム・ユニット10は、システム・ユニットに接続可能なさまざまな周辺デバイスを備える。
システム・ユニット10は、エモーション・エンジン100と、グラフィックス・シンセサイザ200と、ダイナミック・ランダム・アクセス・メモリ(DRAM)を有するサウンドプロセッサ・ユニット300と、読み出し専用メモリ(ROM)400と、コンパクトディスク(CD)およびデジタル多用途ディスク(DVD)リーダ450と、ランバス・ダイナミックランダムアクセスメモリ(RDRAM)ユニット500と、専用RAM750を有する入出力プロセッサ(IOP)700とを備える。(任意の)外付けハードディスクドライブ(HDD)800を接続する場合もある。
入出力プロセッサ700は、2本のユニバーサル・シリアル・バス(USB)ポート715およびiLinkまたはIEEE1394ポート(iLinkは、株式会社ソニーがIEEE1394標準を実現したもの)を有する。IOP700は、USB、iLink、およびゲームコントローラのデータトラフィックのすべてを取り扱う。例えば、ユーザーがゲームをしているときに、IOP700はゲームコントローラからデータを受信し、このデータをエモーション・エンジン100へと送りだし、エモーション・エンジンは、それに従ってゲームの現在の状況を更新する。IOP700は、迅速なデータ転送速度を容易に実現するダイレクト・メモリ・アクセス(DMA)アーキテクチャを有する。DMAは、CPUを通過させずにメインメモリからデバイスへデータ転送を行う。USBインターフェースは、オープンホスト・コントローラ・インターフェース(OHCI)と互換性があり、1.5Mbpsから12Mbpsまでのデータ転送速度を処理できる。これらのインターフェースが装備されているということは、つまり、プレイステーション2は、ビデオカセット、レコーダー(VCRs)、デジタルカメラ、セットトップボックス、プリンタ、キーボード、マウスおよびジョイスティック等の周辺デバイスと潜在的に互換性があることを意味する。
通常、USBポート715に接続している周辺デバイスとのデータ通信が円滑に行われるように、デバイスドライバ等の適切なソフトウェアを備えなければならない。デバイスドライバ技術は大変によく知られているので、ここで詳細は記載しないが、当業者であれば、ここに記載する実施例において、デバイスドライバまたは類似のソフトウェア・インターフェースが必要であると認識していることはいうまでもない。
本実施例において、対応するマイクロフォン735とLEDインジケータ740が装備されたビデオカメラ730がUSBポートに接続されている。様々なタイプのビデオカメラを使用できるが、ビデオカメラ735として特にふさわしいタイプは、いわゆる「ウェブカム」である。すなわちこれは、単一の電荷結合素子(CCD)エレメントに基づく中分解能カメラであって、基本ハードウェアをベースとするリアルタイムデータ圧縮およびエンコーディング構成を含んでいるので、圧縮ビデオオーディオデータが、例えば画像内部をベースとするMPEG(モーション・ピクチャ・エキスパート・グループ)標準等の適切なフォーマットでカメラ730からUSBポート715へと送信され、プレイステーション2システム・ユニット10においてデコーディングされる。カメラLEDインジケータ740は、システム・ユニット10とのUSBデータ接続を介して制御データを受信し、このような制御データに応答して点灯するように構成される。
USBポートとは別の、2本の他のポート705、710は、ゲーム関連の情報を格納するための専用不揮発性RAMメモリーカード720、手持ち式ゲームコントローラ725、または、例えばダンス・マット等の手持ち式コントローラに似たようなデバイス(図示せず)の接続を可能とする専用ソケットである。
エモーション・エンジン100は、128ビット中央演算処理装置(CPU)であり、特にゲームアプリケーション用の三次元(3D)グラフィックスを効果的にシミュレーションするために設計されたものである。エモーション・エンジンの構成要素は、データバス、キャッシュメモリ、およびレジスタを含み、いずれも128ビットである。これによって、大容量マルチメディアデータの迅速な処理を容易にする。これと比較すると、従来のPCは、基本64ビットのデータ構造を有する。プレイステーション2の浮動小数点演算性能は、6.2GFLOPsである。エモーション・エンジンはまた、MPEG2デコーダ回路を備え、3DグラフィックスデータとDVDデータの同時処理を可能にする。エモーション・エンジンは、数学的変換およびトランスレーションを含む幾何学的計算を実行し、更に、例えば2つのオブジェクト間の摩擦の算出などのシミュレーションオブジェクトの物理的過程に関連する計算を行う。これによって、その次にグラフィックス・シンセサイザ200によって利用される画像レンダリングコマンドのシーケンスを作成される。画像レンダリングコマンドは、表示リスト形式で出力される。表示リストとは、描画コマンドのシーケンスであり、グラフィックス・シンセサイザに対して、どの初期グラフィックオブジェクト(例えば、点、線、三角形、スプライトなど)を画面上に描くか、および、どの座標に描くかを指示する。このように、典型的な表示リストは、頂点を描くためのコマンド、ポリゴン面に陰影をつけたり、ビットマップを描いたりする等のコマンドを含む。エモーション・エンジン100は、非同期で複数の表示リストを作成できる。
グラフィックス・シンセサイザ200は、エモーション・エンジン100により作成された表示リストのレンダリングを行うビデオ・アクセラレータである。グラフィックス・シンセサイザ200は、複数の表示リストを処理し、追跡記録し、管理するグラフィックス・インターフェースユニット(GIF)を含む。グラフィックス・シンセサイザ200のレンダリング機能は、選択肢となるいくつかの標準出力画像フォーマット、すなわちNTSC/PAL、高精細度デジタルテレビ、およびVESAをサポートする画像データを作成できる。一般に、グラフィックス・システムのレンダリング能力は、それぞれがグラフィックス・プロセッサ内に位置するピクセルエンジンとビデオメモリの間のメモリ帯域幅により定められる。従来のグラフィックス・システムは、外付けのビデオ・ランダム・アクセス・メモリ(VRAM)を使用しており、これはオフチップバスを介してピクセルロジックに接続されるので、有効な帯域幅を制限する傾向にある。しかしながら、プレイステーション2のグラフィックス・シンセサイザ200は、単一の高性能チップ上のピクセルロジックおよびビデオメモリを提供し、これによって、毎秒38.4ギガバイトという比較的大きいメモリアクセス帯域幅を可能にする。グラフィックス・シンセサイザは、理論的に、毎秒7500万ポリゴンの最高描画容量を達成することが可能である。テクスチャ、ライティング、およびトランスペアレンシー等のあらゆるエフェクトを用いた場合であっても、毎秒2000万ポリゴンの持続速度で連続して描画することが可能である。従って、グラフィックス・シンセサイザ200は、フィルム品質の画像を描画することができる。
サウンドプロセッサ・ユニット(SPU)300は、事実上、本システムのサウンドカードであり、デジタル多用途ディスク(DVDs)に使用されるサウンドフォーマットであるデジタル・シアター・サラウンド(DTS、登録商標)サウンドやAC−3(ドルビーデジタルとしても知られる)のような3Dデジタルサウンドを認識できる。
対応するスピーカー構成310を伴ったビデオモニターあるいはテレビ等のディスプレイおよびサウンド出力装置305は、グラフィックス・シンセサイザ200およびサウンドプロセッッサ・ユニット300に接続され、ビデオ信号およびオーディオ信号を受信する。
エモーション・エンジン100をサポートするメインメモリは、ランバス(Rambus)社製のRDRAM(ランバス・ダイナミック・ランダムアクセスメモリ)モジュール500である。このRDRAMメモリー・サブシステムは、RAM、RAMコントローラ、およびRAMをエモーション・エンジン100に接続するバスを備える。
図2は、図1のエモーション・エンジン100のアーキテクチャを概略的に示したものである。エモーション・エンジン100は、浮動小数点ユニット(FPU)104と、中央演算処理装置(CPU)コア102と、ベクトルユニット・ゼロ(VU0)106と、ベクトルユニット・ワン(VU1)108と、グラフィックス・インターフェース・ユニット(GIF)110と、割り込みコントローラ(INTC)112と、タイマーユニット114と、ダイレクト・メモリ・アクセス・コントローラ116と、画像データ処理ユニット(IPU)116と、ダイナミック・ランダム・アクセスメモリ・コントローラ(DRAMC)120と、サブバスインターフェース(SIF)122と、を備え、これらの構成要素の全ては、128ビット・メインバス124を介して接続される。
CPUコア102は、300MHzでクロック制御される128ビットプロセッサである。CPUコアは、DRAMC120を介して、メインメモリの32MBにアクセスする。CPUコア102の命令セットは、さらにマルチメディア命令を追加したMIPS IV RISC命令のいくつかを有するMIPS III RISCに基づくものである。MIPS IIIおよびIVは、MIPSテクノロジー社が所有する縮小命令セットコンピュータ(RISC)命令セットアーキテクチャである。標準の命令は、64ビットのツーウェイ・スーパースカラであり、これは、二つの命令を同時に実行できることを意味する。一方、マルチメディア命令は、二本のパイプラインを介した128ビット命令を使用する。CPUコア102は、16KBの命令キャッシュ、8KBのデータキャッシュ、および、CPUによるダイレクトプライベート使用のために確保されるキャッシュの一部である16KBのスクラッチパッドRAMを備える。
FPU104は、CPUコア102用の第一コプロセッサとしての機能を果たす。ベクトルユニット106は、第二のコプロセッサとして機能する。FPU104は、浮動小数点積和演算器(FMAC)および浮動小数点除算演算器(FDIV)を備える。FMACおよびFDIVはどちらも32ビット値で演算を行うので、演算が128ビット値(4つの32ビット値から成る)で実行されると、4つのすべての部分において、並行して演算を実行できる。
ベクトルユニット106および108は、数値演算を実行するものであって、ベクトル方程式の乗算および加算で数値を求める場合に極めて高速に行うことができる、基本的に専門FPUである。これらは、加算と乗算演算のための浮動小数点積和演算器(FMAC)、および除算と平方根演算のための浮動小数点除算演算器(FDIV)を使用する。また、これらは、マイクロプログラムを格納するための内蔵メモリを有し、ベクトル・インターフェース・ユニット(VIFs)を介して、システムの残りの部分とのインターフェースをとる。ベクトルユニット・ゼロ106は、専用128ビットバス124を介してCPUコア102に対するコプロセッサとして機能することが可能であり、従って、これは基本的に第二の専門FPUである。一方、ベクトルユニット・ワン108は、グラフィックス・シンセサイザ200への専用バスを有するので、それによって、完全に分離したプロセッサであると考えられる。二台のベクトルユニットを搭載することによって、ソフトウェア開発者は、CPUの異なる部分間で作業を切り分けることが可能となり、これらのベクトルユニットはシリアルまたはパラレル接続のいずれかで使用できる。
ベクトルユニット・ゼロ106は、四つのFMACSと、一つのFDIVを備える。これは、コプロセッサ接続を介してCPUコア102に接続している。また、データ用ベクトルユニットメモリ4Kbと、命令用マイクロメモリ4Kbを有する。ベクトルユニット・ゼロ106は、表示用画像に関連する物理計算を行うために有用である。これは主に、CPUコア102と共に非パターン化幾何学処理を実行する。
ベクトルユニット・ワン108は、五つのFMACSと二つのFDIVとを備える。これは、GIFユニット110へのダイレクトパスは有するが、CPUコア102へのダイレクトパスを有しない。また、データ用ベクトルユニットメモリ16Kbと、命令用マイクロメモリ16Kbを有する。ベクトルユニット・ワン108は、変換を実行する際に有用である。これは、主にパターン化された幾何学処理を実行して、作成された表示リストをGIF110に直接出力する。
GIF110は、グラフィックス・シンセサイザ200に対するインタフェースユニットである。表示リストパケットの最初のタグ指定に従って、データを変換し、相互に複数の転送を調整しながら、描画コマンドをグラフィックス・シンセサイザ200に転送する。割り込みコントローラ(INTC)112は、DMAC116を除いた周辺デバイスからの割り込みを調整する役割を果たす。
タイマーユニット114は、16ビットカウンタを有する四つの独立したタイマーから成る。このタイマーは、バスクロック(1/16または1/256間隔)によって、または外部クロックを介して駆動される。DMAC116は、メインメモリおよび周辺処理装置間の、または、メインメモリおよびスクラッチパッドメモリ間のデータ転送を行う。同時に、メインバス124を調整する。DMAC116のパフォーマンス最適化は、エモーション・エンジン性能を向上させる鍵となる方法である。画像処理装置(IPU)118は、圧縮された動画およびテクスチャ画像を展開するために用いる画像データプロセッサである。これは、I−PICTUREマクロブロック・デコーディング、カラースペース変換、およびベクトル量子化を実行する。最後に、サブバスインターフェース(SIF)122は、IOP700に対するインタフェースユニットである。サウンドチップおよび記憶装置等の入出力装置を制御するために、サブバスインターフェースは、それ自体のメモリおよびバスを有する。
図3は、グラフィックス・シンセサイザ200の構成を概略的に示したものである。グラフィックス・シンセサイザは、ホストインターフェース202、セットアップ・ラスタライズユニット204、ピクセルパイプライン206、メモリインターフェース208、フレームページ・バッファ214およびテクスチャページ・バッファ216を含むローカルメモリ212、およびビデオコンバータ210を備える。
ホストインターフェース202は、ホストとデータのやりとりを行う(エモーション・エンジン100のCPUコア102の場合)。ホストからの描画データおよびバッファデータは双方とも、このインターフェースを通過する。ホストインターフェース202からの出力は、グラフィックス・シンセサイザ200に供給される。このグラフィックス・シンセサイザ200は、グラフィックスを展開し、エモーション・エンジン100から受け取った頂点情報に基づいてピクセルを描画し、各ピクセルの、RGBA値、深度値(例えばZ値)、テクスチャ値およびフォグ値等の情報を算出する。RGBA値は、赤、緑、青(RGB)のカラー構成要素を特定し、Α(アルファ)構成要素は画像オブジェクトの不透明性を表す。アルファ値は、完全に透明から完全に不透明まで変化させることができる。ピクセルデータは、ピクセルパイプライン206に供給され、ここで、テクスチャマッピング、フォギングおよびアルファブレンディング等の処理を行い、算出されたピクセル情報に基づいて最終的な描画のカラーを決定する。
ピクセルパイプライン206は、16個のピクセルエンジンPE1、PE2、・・・PE16を備え、最大16ピクセルを同時に処理できる。ピクセルパイプライン206は、32ビットカラーおよび32ビットZバッファで、150MHzで動作する。メモリインターフェース208は、ローカル・グラフィックス・シンセサイザ・メモリ212からデータを読み込み、かつ、書き込みを行う。ピクセル操作の終了時には、メモリに対して描画ピクセル値(RGBAおよびZ)を書き込み、メモリからフレームバッファ214のピクセル値を読み込む。フレームバッファ214から読み込まれるこれらのピクセル値は、ピクセルテストまたはアルファブレンディングのために使用される。メモリインターフェース208はまた、ローカルメモリ212から、フレームバッファの現在の内容に対するRGBA値を読み込む。ローカルメモリ212は、グラフィックス・シンセサイザ200に内蔵される32Mビット(4MB)のメモリである。これは、フレームバッファ214、テクスチャバッファ216および32ビットZバッファ215で構成できる。フレームバッファ214は、カラー情報のようなピクセルデータが格納されるビデオメモリの部分である。
グラフィックス・シンセサイザは、視覚的な細部を三次元ジオメトリに加えるために、二次元から三次元へのテクスチャマッピング処理を使用する。各テクスチャは、三次元画像オブジェクトの周囲に巻きつけられ、伸ばされ、そして曲げられて、三次元のグラフィック効果を与える。テクスチャバッファは、画像オブジェクトに対するテクスチャ情報を格納するために使用される。Zバッファ215(別名、深度バッファ)は、ピクセルについての深度情報を格納するために利用できるメモリである。画像は、グラフィックスプリミティブまたはポリゴンとして知られる基本構成ブロックにより構築される。ポリゴンが、Zバッファリングを使って描かれる場合、各ピクセルの深度値は、Zバッファに格納される対応する値と比較される。Zバッファに格納される値が新しいピクセル値の深度以上の場合、このピクセルが可視であると決定され、その結果、そのピクセルは描画されることとなって、Zバッファは新しいピクセル深度により更新される。しかしながら、Zバッファ深度値が新しいピクセル深度値よりも小さい場合、新しいピクセル値はすでに描画されたものの後ろ側にあって、描かれることはない。
ローカルメモリ212は、フレームバッファとZバッファとにアクセスするための1024ビットの読み込みポートおよび1024ピットの書き込みポート、およびテクスチャ読込み用の512ビットのポートを有する。ビデオコンバータ210は、ある特定の出力フォーマットにおいて、フレームメモリの内容を表示するよう機能する。
図4および図5により、いくつかの異なるユーザーインターフェース(UI)制御について説明する。
図4は、概略的にダイヤル制御を示したものである。
図4における長方形のアウトラインは、カメラ730によって取り込まれ、ディスプレイ305上に表示されている画像の外縁を概略的に表すものである。動作中、カメラ730によって、取り込まれる連続した画像またはフレームは、エモーション・エンジン100によって、グラフィックス・シンセサイザ200に渡され、グラフィックス・シンセサイザのビデオ出力のすべてあるいは一部に対する背景として表示される。
本実施例では、カメラ730は、ユーザー1000の方へ向けられている。
ダイヤル制御1010は、(グラフィックス・シンセサイザによって、)背景取り込み画像上に重畳される。このダイヤル制御は、ポインタ1020がその中で表示される円形ボーダー1015を備える。ポインタは、ゲームまたはゲーム機の変数に対応づけてもよい。その結果、(例えば)時計回りにポインタを動かすことにより変数を増やし、逆に、反時計回りにポインタを動かすことにより変数を減少させる。このような方法で、ダイヤル制御は、ポテンショメータのような機械的回転制御の操作をシミュレーションすることができる。ポインタができる動きは、点線で示される。ユーザーがポインタをどのように動作させるかについては後述する。
ダイヤル制御を操作するために、ユーザーは、ボーダー1015内の少なくとも一部に手を置く。そして、ユーザーの手の動きが、ポインタ1020の軸(回転中心)1030を基準として検出される。この動きがどのように検出されるかについては後述するが、このような検出によって次のような効果がある。すなわち、もしボーダー1015内のユーザーの手の全体の動きが中心1030を基準として時計回り方向であると検出された場合、ポインタは、それに対応して時計回りに動かされる(そして、ゲームまたはゲーム機の変数は増加する)。もしボーダー1015内のユーザーの手の全体の動きが中心1030を基準として反時計回り方向であると検出された場合、ポインタは、それに対応して反時計回りに動かされる(そして、ゲームまたはゲーム機の変数は減少する)。ポインタの動きまたは回転は、手の動きと同じあるいは比例するよう構成できる。また、仮想の「エンドストップ」を備えることもできる。それによって、特定の方向への連続した手の動きが、ポインタの連続した回転につながることなく、エンドストップの一方に到達したときにポインタの回転が止まるようにする。
任意に、円形ボーダー1015の中で適切な動きが検出されない場合、ダイヤルをロックする(動きを抑制する)ことができ、それによって、偶発的に調整されてしまうことを防ぐ。このダイヤルは、色を変えることによって、そのロック状況を示唆できる。
ゲームまたはゲーム機の変数は、ただちに変更することができる。または、このような変更は、ユーザーがポインタの回転を止めるまで、あるいはボーダー1015内部から手を引き出すまで保留できる。ダイヤル制御を容易にしている機構については、後述する。
図5は、スクロール制御に関して概略的に示したものである。
図4に似たような方法で、スクロールアイコン1050は、カメラ730から取り込まれたユーザー1000の画像上に重畳される。本実施例では、このスクロールアイコンは垂直にスクロールように構成されるが、もちろん、適切な方向であればどの方向にスクロールさせてもよい(または実際には、例えばスクロールアイコンがたくさん並んでいる場合は複数の方向でもよい)。このアイコンは、いつでも、現在見えているものを超えて拡張可能である。エンドレスなルーレット式フォーマットに構成するのが好ましいが、単純なライン構造に構成することも可能である。
ここでの基本概念は、一般的な垂直方向の手の動きによって、(または、非垂直方向な手の動きの垂直成分によって)、アイコンを上下にスクロールさせることができるということである。前述の通り、アイコンのスクロール動作は、ユーザーの手の垂直な動作と等しくすることが可能であり、そうでなければ、このような動作に比例する、または、依存するものであるようにできる。この垂直動作は、アイコンを囲んでいる画像の領域1060内で検出できる。
検出領域1060は他の選択肢も可能である。ユーザーが、ある特定の方向にアイコンを垂直方向にスクロールさせる動きを開始し、領域1060から手を引き出しながら、垂直方向に手を動かし続けることができる。このアイコンは、エンドレスに、または、減衰(減速)するように、垂直にスクロールし続けることができる。ユーザーは、領域1060の中に、静止している手または動いている手を再び入れることによって、この連続した動きを止める(逆転させるあるいは強化する)ことができる。
選択ボックス1070を説明する。一般的にこれは、ディスプレイ内で静止しており、所望のアイコンが選択ボックス内に入るまでアイコンを上下させることにより、アイコンの一つを選択できる。従って、もしアイコンが(例えば)ゲームオプションまたは音楽トラックを表わす場合は、ユーザーが、ボックス1070内にアイコンを配置することによって、ゲームオプションを実行する、または音楽トラックを再生させることが可能である。
スクロール制御を容易にする機構について後述する。
再び図4を参照すると、ダイヤル制御の変形として、ホイール制御がある。ホイール制御は、ダイヤル制御と同様の方法で動作する。しかし、ホイールの動きは、ユーザーがホイールボーダー1015によって囲まれている領域内で動作を開始し、ホイールボーダー1015から手を引き出しながら手を動かし続けることによって、ホイールを回転させることができる点において、スクロール制御に類似している。このアクションの間、手の動きが一貫している場合、ホイールは、あたかも自身の運動量で動くように、エンドレスにまたは減衰(減速)するようにスピンし続ける。ユーザーは、必要に応じて、ホイールボーダー1015により囲まれている領域内に、静止した手または動いている手を再度入れることによって、この継続している動きを停止(逆転または強化)させることができる。
このホイール制御は、例えば、垂直スクロールアイテムが円形状をなしているホイール上に示されたオプションから選択を行うために、またはアクションを行う際にゲームキャラクターが使用するエネルギーレベルを表わすために、使用してもよい。
任意に、ホイールは常にロックを外した状態にしておくことが可能であり、それによって、ホイールボーダー1015内で検出されたどんな動きでも、潜在的にスピンを誘発するようにすることができる。
ホイール制御を容易にしている機構については、後述する。
図6は、ソフトウェア命令下で動作するエモーション・エンジン100により実行されるユーザー制御検出機構を示すブロック図である。説明を簡略化するため、この図はオブジェクト指向プログラムのためのオブジェクトクラスを示すものであり、ここでクラスは、データとそのデータ上で動作可能な関数とを備える。例えば、Imageクラス10は、画像内の各ピクセルの幅、高さ、カラーチャンネルの数、およびそのカラー等の情報を含むことが可能である。また、Imageクラス10は、このデータに作用する関数をたくさん有することができる。例えば、GetNumPixels()、GetPixelColour(int x、int y)、およびSetPixelColour(int x、int y、Colour RGB)はそれぞれ、画像サイズの数値を決め、所定の座標上にあるピクセルのカラー値を取得し、所定の座標におけるピクセルのカラー値を設定することを表す。
従って、以下の説明において、あるクラスがある特性または情報を有すると言われる場合、それはそのクラス内のデータについて言及しているのであり、一方、そのクラスがそのような情報に作用していると言われるときは、そのクラス内の関数に関連する、と理解される。
図6において、要約すると、エモーション・エンジン100等のデータ処理装置に取り付けられたビデオカメラ730が、画像(すなわち、Imageクラス10に属するデータ)を作成する。ImageHistoryクラス20は、最終のJ個の画像を格納する。DifferenceMetricクラス30は、現在およびそれより以前の画像を保持し、それらを処理して、連続画像がどこで異なっているか、またどの程度異なるかを示す画像を作成する。これらの差分画像は、閾値とされDifferenceHistoryクラス40に格納される。OpticalFlowクラス50における関数は、ImageHistoryクラス20内の画像を分析して、一つの画像から次の画像まで追跡するための有効で認識可能なポイントを見つけ出す。任意に、OpticalFlowクラス50における関数は、DifferenceHistoryクラス40を使って、この処理を検証し処理速度を上げることができる。PointHistoryクラス60は、OpticalFlowクラス50の関数により識別されたポイントのリストと、ImageHistoryクラス20内の各画像のどこにそれらのポイントが位置するかを格納する。
次に、MotionModelクラス70は、これらのポイントのペアの間で位置変更に相当する動きをモデル化する。現在およびその前の画像に対する移動ポイントについてその前後位置のリストを作り、それらの位置から規定どおりに、トランスレーション、スケールおよび回転モデルを作成する。任意に、MotionConstraintクラス80は、算出されたオブジェクトの動き・位置を取り込み、ユーザーインターフェース(UI)制御の所望の動きに従って、それを制限する(例えば、廃棄トランスレーション)。
UserlnterfaceControl(UlControl)クラス90は、PointHistoryクラス60内の位置を取り込み、MotionModelクラス70に対してそれらを供給し、それから結果として生じる動作を取り入れて、MotionConstraintsクラス80から、一般的に一つまたは複数の制約を適用する。
これによって、この制約された動作は、個々のUI制御の動きを表す。
ここで、本発明の実施例のための、これらのクラスの詳細について説明する。
Imageクラス(10)は、画像のサイズ(幅と高さ)、カラーチャンネルごとに可能な輝度値の数、およびカラーチャンネルの数を保持する。画像のサイズは、カメラの解像度(例えば320×240または640×480)に依存することが多い。しかし、制御が画面の小さな領域でのみ行われる場合、任意にこの小さな領域が画像として扱われ、元画像の残りは廃棄してもよい。
一般的に使用される画像についての三つの主要なタイプは、以下のものである。
i.カラー画像(3カラーチャンネル、各チャネルに対して256輝度値)
ii.グレースケール画像(256輝度値を伴った1カラーチャンネル)
iii.バイナリ画像(2輝度値を伴った1カラーチャンネル−白黒)
ビデオカメラ730は、ある程度固定したフレームレート(例えば毎秒30、60、または120フレーム)で、カラー画像を作成する。これらは、ImageHistory 20に渡される前に、グレースケール画像に変換される。
ImageHistoryクラス20は、上記のようにカメラから取り込まれる最終のJ 個のグレースケール画像を格納する。新規画像が追加される毎に、最も古いものは保管画像の端から落とされる。例えば、Jは、3から14あるいはそれ以上の場合もある。
DifferenceMetricクラス30は、二つの画像間の差分を算出して、それを閾値とする関数を提供する。この関数は、入力として二つのカラー画像(例えば、現在およびそれ以前の画像)を取り込む。各ピクセルに対し、各カラーチャンネルにおける差分が合計され、結果として生じる値によってグレースケール画像を作成される。その後、この画像は、スリーポイント・ガウシアンブラー・コンボリューションフィルター(three point Gaussian blur convolution filter)を用いて滑らかにされ、ある程度のトレランスが与えられる。最後に、この画像は閾値とされ、画像のどの部分が十分な量の変化があったかを示すバイナリ画像を生成する。この差分閾値がどのように選択されるかについては、ノイズ校正に関連して後で開示する。
このように、DifferenceMetricクラス30は、差分データを作成するよう動作可能であり、二つの連続する画像の間のピクセル値における差分に比例する一連の値を備え、この後、差分データを滑らかにするよう動作可能である。
さらに、DifferenceMetricクラス30は、算出された差分閾値レベルで、差分データに閾値を適用するように動作可能で、結果として生じるバイナリ差分データを出力する。
DifferenceHistoryクラス40は、一連のN−1バイナリ画像を提供する。それぞれの画像が、DifferenceMetricクラス30から取得した、ImageHistory内の二つの連続する画像間の差分を維持する。ImageHistoryクラス20と同様に、新規な画像が加えられるたびに、格納されたもののうち最も古いものは廃棄される。
さらに、これはまた「累積的な差分画像」を維持する。DifferenceHistory内の個々の画像のいずれかが白いピクセルを有する場合、これは白いピクセルを有するバイナリ画像である。従って、これはDifferenceHistoryクラス40内の個々の画像の論理和関数とみなすことが可能である。もちろん、「黒」および「白」として表現するのは、ただ単に本説明を明確化するためである。実際には、このデータはピクセル位置ごとに1ビットとして格納されてもよく、あるいは、記憶装置内の効率性により他のフォーマットで格納することも可能である。目的は、ピクセル位置に対して検出動作をマップすることにある。
例えば、別の静的な場面において、ある人が挨拶の際に手を振った場合、その累積する差分画像は、一般的にその人の肘を原点とする弓形に類似するものであり、ウェーブの範囲に相当する円弧の範囲を定める。
このように、DifferenceHistoryクラス40は、一連の画像に対するバイナリ差分データを組み合わせるよう動作可能であり、算出差分閾値を超えた連続画像間の差分を示した一連の画像全体に亘るすべての点を示す累積バイナリ差分画像を作成する。
OpticalFlowクラス50は、特徴ポイントとして作用する最新画像内のポイントを見つけ出し、ImageHistoryクラス20内の3つ以上の画像を通じてそれらのポイントを逆向きに追跡する。
本発明の実施例において、ポイント追跡は、Lucas-Kanade ポイントトラッカに基づいている。これは1981年に開発され、Lucas, B., and Kanade, T., 「An Iterative Image Registration Technique with an Application to Stereo Vision」、第7回人工知能国際合同会議 7 (IJCAI)の声明書、674〜679ページにおいて公開されている。
現在の画像、およびその前の画像の、二つの画像を与えられ、Lucas-Kanadeトラッカは、以下を行う。
1.画像内の各ピクセルと対応づけられている固有値を分析することによって容易に認識可能な、現在の画像上の一セットの位置を定める。
2.前の画像内で、これらのポイントに最も近く一致するものを見つける。
3.見つけた場合、画像上で識別可能なポイントについての、前のおよび現在の位置を示す、一セットの位置のペアを出力する。
このように、OpticalFlowクラス50は、現在の画像内で選択されたポイントとの対応関係に基づいて、前の画像内のポイントを選択するよう動作可能である。
例示されているポイントは、画像内での形状の端部を表わすものであるか、または、このような形状の凹頂点を表わすポイントである。手を例にとると、特徴ポイントは、指の先端、および隣り合う指の間の頂点で識別される。
図7乃至図9は、Lucas-Kanadeポイントトラッカにおける特徴ポイントの検出を概略的に示したものである。
図7は、制御画像領域内のユーザーの手について取り込まれた画像を表わしていると仮定する。従って、図7の範囲は、取り込まれた画像全体の一部にしか過ぎず、これは(例えば)ボーダー1015または領域1060内にある部分である。
上記に説明したように特徴ポイント2100が検出される。以下の説明を明瞭にするために、一つの特徴ポイント、つまり、ユーザーの親指先端の位置のポイント2110だけを考慮するが、同様の説明がすべての検出特徴ポイントに適用可能である。
Lucas-Kanadeのトラッキング処理を連続して使用することにより、特徴ポイント2110は、それぞれ対応する図8と図9の特徴ポイント2110’と2110”と相関する。これによって、図8と図9において概略的に示されているように、図示されているような事前の親指位置によって、手の動きが表わされることになる。
しかしながら、Lucas-Kanadeトラッカは、多くの問題に陥りやすい。特に、画像内の自己相似性により(例えばタイル張りや草木など)、無関係なポイントが画像間で相関して表れてしまう可能性があり、偽の見かけだけの動きを作り出してしまう。さらに、画像ノイズによる見かけ上のポイントの動きと、真の動き(小さい動きや遅い動き)は区別することができない。もし詳細なUI制御を実現することが望ましいのであれば、このような区別が特に重大になってくる。これらの問題点について以下に詳述する。
問題点1:
例えば、壁、天井、または床のタイルの線に沿ったタイル間の接合は、全て非常に類似して見える。一つのフレームから次のフレームへのカメラ画像における、わずかなノイズまたはブレにより、次の画像において、一つの接合点が、そのライン上のどこか別の接合点に似て見えてしまうことがある。結果的に、画像ノイズによって、Lucas-Kanadeトラッカのステップ2におけるポイントマッチが、フレーム間で異なるタイル接合点を対応づけてしまうことになり、見かけ上の動きを生じさせてしまう可能性がある。似たような問題は、壁紙や縞模様のTシャツなどの繰り返し模様の場合に起こりうる。
問題点2:
問題点1と同様に、タイルやプリントの繰り返し模様などのように完全に類似するものではないとしても、草木などのような自己相似性オブジェクトは十分に類似性があるので、以下の例示シナリオにおいて問題を生じ得る。ユーザーが手を上げて室内用鉢植えの前に立っており、植物の最上部は覆い隠され、下部の枝が見えるようになっている。例えば指先と葉の集まりに該当する画像内のポイントを識別する。その後、ユーザーが手の位置を低くして、植物の下方の枝を覆い隠し、最上部の枝が見えるようにする。Lucas-Kanadeトラッカは、下方に動く手の中のポイントを追跡するが、植物の下半分において識別されたオリジナルポイントがないので、見えるようになった植物の上半分において、類似ポイントを見つけ出そうとする。そのため、これを上向きの動きと解釈して、感知されたユーザーの動きを効率よく打ち消してしまう。
問題点3:
ここで、図10(a)と図10(b)を参照する。これらの図は、あるポイントが6枚の連続したフレーム上をどのように移動するように見えるかを示す例である。図10(a)は、このシーンでは静止しているポイントであるが、カメラ画像内のノイズのために移動しているように見える。このポイントは遠くへの動きはなく、恐らく1または2ピクセル分の動きである。図10(b)は、直線上を移動しているポイントを示す。この場合、ノイズによって、ポイントが少しだけ進路から逸脱しているように見える。これらの図から、単に、ポイントが二つのフレーム間で移動した距離についての閾値だけでは、ポイントが本当に静止しているかどうかを判断するには不十分であるということが明らかである。二つの連続するフレーム間において、静止ポイントが、移動ポイントの見え方に相当する距離を移動するように見える。ポイントの本当の動きの速度が遅くなるにつれ、あるいはカメラのフレームレートが増すにつれ、この問題は悪化する。
これらの問題をすべて考慮し、本発明の実施例では、Lucas-Kanadeトラッカに対する一連の改良をOptical Flowクラス50内に組み込むこととした。
第一に、問題点1と2に記載されたような自己相似ラインに対する誤ったマッチングと、自己相似オブジェクトに亘るポイントの出現を減らすための技術としてリバースマッチングがある。トラッカは、現在のフレーム内でトラックすべき良い点を見つけ、その位置をその前のフレーム内で決めると仮定する。前のフレーム内のこのポイントをあたかも追跡に適した特徴を有しているととらえ、現在のフレームにおいて、そのポイントの位置を決めようとすることによって、この位置を確認できる(すなわち、逆時間での追跡)。トラッキング・アルゴリズムによって、その現在のフレーム内のポイントが(例えば)そのポイントがあるべき場所のピクセル内、または他の閾値距離内であると分かった場合、有効なポイントのペアであるとみなされる。そうでなければこのポイントは廃棄される。
このように、この技術は、画像フレーム間の自己類似性によるトラッキングエラーにより(特に、ノイズを画像化するような変動が入り込んだ場合)、画像フレーム間で相互交換できる見込みがなくなるため、フレームペアの中で反対方向に適用されると一貫性がなくなる可能性があるという事実を利用するものである。従って、この技術によって、このような誤った追跡の大部分が除去される。
このように、OpticalFlowクラス50は、もともと現在の画像内で選択された点に対応する、先行する画像内のポイントとの対応に基づいて、現在の画像内のテストポイントを選択し、現在の画像内でもともと選択されたポイントとテストポイントが実質的に一致しないポイントのペアを廃棄するよう動作することができる。
第二に、図11をさらに参照すると、差分イメージングは、二重の効果をもたらす技術である。その主目的は、マッチングをするためのなんらかの試みがなされる前に移動をしなかったポイントを取り除くことによって、マッチング処理を高速化することにあるが、逆マッチングを行う前に、誤ってマッチしたいくつかのポイントを取り除くという第二の利点もある。
図11に示される差分画像は、前述したように、画像ペアを得るためにDifferenceMetricクラス30によって作成され、画像内のポイントは以下のように取り除かれるか、あるいは維持される。
i.差分画像の黒い(静止)部分にある、現在の画像からのポイントは即座に取り除かれる。
ii.差分画像の白い(稼働)部分にある、現在の画像からのポイントは、前の画像に対して追跡される。もし前の画像でのこのポイントが、差分画像の黒い部分にある場合、そのポイントは取り除かれる。
iii.一方、もし前の画像でのポイントもまた差分画像の白い部分にある場合は、逆マッチングが適用され、ポイントのペアの妥当性が確認される。
このように、OpticalFlowクラス50は、先行する画像においてポイントを選択する前に、差分画像での均等位置が、算出された差分閾値レベルを下回る差分を示している現在の画像内のポイントを廃棄するよう動作することができる。
上記に代えてまたはそれに加えて、OpticalFlowクラス50は、先行する画像におけるポイントとの一致に基づいて現在の画像でのテストポイントの選択を行う前に、差分画像における均等位置が、算出閾値レベルを下回る差分を示している先行する画像でのポイントを廃棄するように動作することも可能である。
前述のように、DifferenceMetricクラス30は、ポイントが移動したかどうか決めるために可変の閾値を適用する。これは、もし画像の中で非常に大きい動きがあると思われる場合は、(ユーザーによって、あるいは現行のゲームコンテキストを考慮しながら自動的に)この閾値を上げることが可能であり、それによって、システムが些細な移動に対してそれほど敏感にならないようにするだけでなく、逆マッチングがそれ自体で取り除くことができる数よりもっと多くの誤った結果を取り除くことができる。
差分画像を算出することと、この画像を参照してポイントの状況を算出することは、ポイントマッチングと逆マッチングを行う場合と比較して、非常に高速であり、従って、全体のトラッキング精度を改善するだけでなく、かなりコンピューティング資源を節約できる。
任意に、想定されているまたはこれまでに算出された、画像フレームレートとユーザー動作の一般的なスピードについての知識を考慮して、さらに、UI制御を囲む領域の外にあるポイントを自動的に取り除くことが可能である。UI制御を囲む領域とは、典型的な移動により一つ、二つのフレームによりカバーする距離に相当するが、フレーム数は多いことが望まれる。これによって、画像のどこか別の場所にある真の動きであって無関係な動きを無視しながら、トラッキングするためのUI制御への移動ポイントを検出することが可能になる。
第三に、マルチフレーム移動ポイント分析を使用して、上記に概説した第三の問題点に対処し、本当に移動しているポイントと、ノイズの微小震動を示している静止ポイントとを区別する。
図12(a)および図12(b)を参照すると、ノイズ微小震動のランダムな性質は、静止ポイントの動きが全体に亘る方向に向くわけではないということを意味していることがわかる。従って、移動をしているポイントは結果的に、元の場所からかなり離れたところへ移動して測定可能となり、一方、対照的に、ただランダムに動いているポイントは同じ場所にとどまる傾向がある。
これらの二つの結果を区別するために、一般的に、ImageHistoryクラス20内にある数多くの画像を考慮する(少なくとも3つ、一般的には10から20)。最初に、現在の画像内で見つけられるトラッキングポイントを正常なものとして先行する画像内で位置を決める。しかし、先行する画像内のそれらの各位置は、追跡すべきポイントとされ、さらにその前の画像等の中で探し出される。フレームレートがどのくらい速いか、動きがどれくらい遅いと予想されるかによって、このポイントは必要とされる限り逆に追跡することが可能であるが、ImageHistoryクラス20内のメモリ制限や、(各フレームの追加に従い直線的に増加する)処理時間の制限に左右される。
このポイントの履歴を分析し、最後のR個のフレームの間に、いずれかのポイントがある閾値(例えば、円1101により表された閾値)よりも遠くへ離れたかどうかを判断し、それに従い、このポイントは、静止ポイントよりむしろ移動ポイントであると判断する。一般的に、Rは経験的に決定されるものであるか、あるいは、ビデオキャプチャフレームレートの関数である。計算負荷を減らすため、任意に、あるポイントが一旦、移動ポイントであると判断されたとき(すなわち、関係する画像数に亘って閾値となる画像間動作を超えた場合)は、さらなるフレームを使ってこれ以上逆トラッキングをする必要はない。
本当に移動しているピクセルにより見込まれる移動量に対する閾値は、もちろん、数Rおよびビデオフレームレートにより変動する。この閾値は、より高いR値に対して概して高くなり、より低いフレームレートに対しても概して高くなる。
このように、OpticalFlowクラス50は、ImageHistoryクラス20に格納される先行する画像に対して動きを検出するため、ポイントのペアを再帰的に取得し、これらのポイントのペアによる累積した最終的な動きを、距離閾値と比較し、意図的な動きを画像ノイズから区別するよう動作可能である。
この技術の付加的な利点は、以前に移動していたが現在は止まっているポイントを、一度も移動しなかった点から区別して拾い上げることもできるということである。任意に、これらのポイントは、例えば、もし現在のフレームよりも前に、ポイントが静止しているフレーム数が所定のフレーム数より少ない場合は、差分画像化技術のもとでの排除の対象から外される場合もある。
任意に、この技術によって、移動しているポイントおよび静止しているポイントが、ディスプレイ305上で異なるように描き、移動しているポイントについては、辿ってきた経路を示すことができる。これは、例えば、指導モードにおいて、どのようにして制御が行われるかについてユーザーに対して有益なフィードバックを与えることができるので、ユーザーはより速く使い方を学ぶことができる。
上記したトラッキング方法は、誤ったポイントのペアを取り除いて演算を軽減するために、差分画像化技術を用いるのが好ましいので、DifferenceHistoryクラス40は、ImageHistoryクラス20内の画像に対応する差分画像を格納する。
特に、「累積した」差分画像の黒の領域で開始するポイントは、最終のJ個の画像内ではいかなるポイントにおいても動いていないことが保証される。このように、差分画像での解決を使用する場合、累積的差分の中にある任意の黒いポイントは、マルチフレーム移動ポイント分析から除外することが可能である。というのは、それらが全体の画像履歴にわたって静止しているであろうことは周知だからである。このように、画像履歴の中で前回の画像から再帰的にポイントのペアを取得する前に、累積した差分データを使用して、連続した画像間で、算出された差分閾値レベルを超えるには十分な差分がなかったような点を廃棄する。
PointHistoryクラス60は、追跡するのによいと識別されたポイントの最終J個の画像全体での位置を維持する(すなわち、ある程度の時間、意図的な動きを示したと判断された点を格納する)。以下で説明するように、これらのポイントのうちの少なくともいくつかは、UI制御とユーザーのインタラクションを分析するために使用される。
MotionModelクラス70は、剛性体の動作をモデル化するための関数を備えるクラスである。通例は、一連の事前事後のポイントのペアがとられ、この事前ポイントと事後ポイントを最もよくマップする動作が算出される。一般的に、この動作モデルからの出力は4つの値であり、それらは、X方向移動量(Xトランスレーション)、Y方向移動量(Yトランスレーション)、スケール、および、ある原点を中心とする回転(ローテーション)である。
本発明の実施例において、ポイントのペアは、現在および先行する画像から取り出される。別の実施例において、より滑らかな動作モデルを作成するために、さらに古い画像からのポイントペアが使用されるが、使用される画像数およびカメラフレームレートによって、この履歴データはUI制御のレスポンスの中に残像の出現を作り出してしまう場合もある。
これをモデル化するための方法はたくさんあるが、一般的に、このモデルを描写し、前後のポイントをマップする一連の数式が使用される。この数式は、回転量、トランスレーション量およびスケール量を描写する多くの未知数を含む。観察されたポイントからこれらの未知数を予測するために、ポイントのペアに対して最小二乗誤差式解法が使用される。
本発明の実施例において、この数式の解法は、ハウスホルダーの直交化最小二乗法(Householder Orthogonalization least squares method)と呼ばれ、例えば、Gene H. Golub and Charles F Van loan "Matrix Computations", 第三版(ISBN: 0801854148)に記載されている。
MotionModelクラス70は、後述のように、多くの動作モデル(またはサブクラス)を含む。
RotScaleTransModel関数は、ボディが、回転、拡大縮小(スケール)、およびX方向またはY方向の並進移動(トランスレーション)が可能であると仮定する。これらの動作が測定されるときに基準とする原点の位置は必ず与えられなければならない。
主計算の前に、原点位置は、各ポイントの位置から減算される。
ポイントについての修正された現在およびそれより以前の位置は以下のように与えられると仮定する。
xCurrentkは、第k番目のポイントの現在のx座標
yCurrentkは、第k番目のポイントの現在のy座標
xPrevkは、第k番目のポイントの前回のx座標
yPrevkは、第k番目のポイントの前回のy座標
これらのポイントの集合体から、以下の未知数を予測する必要がある。
スケール:ボディのサイズが増えた量
Θ:ボディの回転角
transX:トランスレーションにおけるXコンポーネント
transY:トランスレーションにおけるYコンポーネント
このモデルにおいて、現在のポイントがどのようにして前のポイントから導き出されたかを表す数式は、次のようになる。
Figure 2009537923

それぞれのポイントペアはすべてこのような二つの数式をもたらす。この目的は、式の集合体におけるエラーを最小限にするスケール、Θ、transXおよびtransYを見出すことである。
この数式は、マトリックス/ベクトル方程式として再公式化される。
Figure 2009537923

n個のポイントに対し、マトリックスは2n列を有する。ハウスホルダー直交化アルゴリズムは、このマトリックス式に対して最小誤差解(M、N、PおよびQ)を見出すために使用され、ここで、M = scale.sinΘ、N = scale.cosΘ、P = transX、およびQ = transYである。
このようにして、一旦、M、N、P、およびQの値が得られると、スケール、Θ、transX、およびtransYに対する値が以下のように算出される。以前に開示されたポイントペア式から以下が確認される。
Figure 2009537923

これは、次を意味する。
Figure 2009537923

ここで、Θのすべての値に対して
Figure 2009537923

である。従って、
Figure 2009537923

である。それによって、
Figure 2009537923

これを、第二のポイントペア式に代入すると、
Figure 2009537923

をもたらし、一方、transX = PおよびtransY = Qである。
RotScaleModel関数は、RotScaleTransModelと同様の方法で機能し、ボディが枢着点で固定されると仮定する。これによって、この点を中心に拡大縮小し、回転させることができるが、並進移動値は常にゼロである。
結果的に、ポイントペアの数式は、すでに与えられている式とは若干異なる。
Figure 2009537923

また、この等式は、マトリックス/ベクトル式として再公式化され、
Figure 2009537923

前回と同様に解かれて、スケールとΘを得る。
RotScaleTransModelおよびRotScaleModel関数に代えて、あるいはこれに加えて、画像内のポイントはラインとして接合することが可能であり、あるいは、これらのポイントを横切るエッジについてエッジ検出を行うことが可能である(例えば、指の周りなど)。結果として生じるラインは、いわゆるラドン変換を用いて相対角度の変化を決定するために使用することができ、これによって、変換の投影角度が、画像内のライン角度と一致する場合のピークレスポンス(あるいは分布)が得られる。この技術は、回転データを得るために用いることができる。
同様に、一つのフレームから次のフレームまで、ラインにより表される物体のサイズは固定しているとみなすことができる。従って、ラドン変換の投射角に沿ってラインを測定することによって、スケールの変化およびそれによる距離の変化を決定できる。
TransModel関数は、ボディが単に移動することはできても、回転あるいは拡大縮小することができないと仮定する。よって、このモデルは、全てのポイントの平均動作をとり、適宜、transXおよびtransYを設定する。
Figure 2009537923

MotionConstraintsクラス80は、多くの制約をモデル化する関数を備える。すでに開示された動作モデルを使って、概念上のボディのために、とりわけ次のようなプロパティを決定できる。
つまり、位置、向き、スケール、速度、角速度およびスケーリング速度である。
制約関数は、これらのプロパティの値を取り込み、ある程度の制約に従うようにそれらの値を修正する。このようなボディは、すぐに作用するような制約をいくつか有することが可能である。
考えられる制約関数のいくつかの例について以下に記載する。
LinearConstraint関数は、ボディが、直線に沿って存在するように位置を固定する。また、この線の方向の速度成分によって速度を置き換えることも可能である。
RangeConstraint関数は、ボディのプロパティのいずれに対しても上限値と下限値を設定する。例えば、この関数は以下のために使用することが可能である。
- 有限長のスクロールバーを作る。
- ダイヤルが半分だけ回るようにする。
- 並進移動(トランスレーション)をゼロに固定する(それによって本体はその位置で枢軸回転する)。
- ボディがほぼ最大速度を維持することを確実にする。
尚、並進移動をゼロに固定するための制約を使用してRotScaleTransModel関数を使用することと、制約なしでRotScaleModel関数を使用することは等しくない。前者においては、並進移動はモデル化された後、捨ててしまう。後者において、モデル化は、(RotScaleModel関数によって、できる限り最良であると解釈される並進移動の存在している状態で)単に回転およびスケールをモデル化することのみに向けられている。
UIControlクラス90は、PointHistoryクラス60、MotionModelクラス70、およびMotionConstraintsクラス80の間を調整して、UI制御の、位置、向き、スケール、速度、角速度、スケール速度(スケール変化率)、および形(円、細長い形、正方形等一定を維持するもの)のためのデータを管理できる。
UIControlクラス90は、PointHistoryクラス60を調べて、現在移動しているポイントのみを考慮する。その後、UIControlの形状(例えば、図4において、外側境界線1015)の外側に現在位置があるものはすべて除外する。
このようなポイントが十分にある場合、PointHistoryクラス60内の移動ポイントについての現在と以前の位置のみを取り、これらをMotionModelクラス70に渡して、このフレームペアに対して変換を行う。
UI制御の速度、角速度、およびスケール速度は、このフレームに対する変換に一致するよう設定される。これらのプロパティ(位置、向き、およびスケールも同様に)は、この修正制御のために存在するMotionConstraintsクラス80内の制約のいずれかの対象となる。このように修正されたプロパティは、ユーザー入力として機能するために利用可能になる。
任意に、これらの修正されたプロパティに対してエラー値を算出できる。このエラー値は、修正された速度、角速度およびスケール速度を使用して、最後のフレーム内のすべてのポイントを変換し、それらのポイントが終了する場所と、現在のフレーム内で観察された場所との差分を見ることにより算出される。この差分はその後スケール変更されるので、このエラーは、移動をした各ポイントに対する総距離の一部となる。この値のログをとって、すべてのポイントからのすべてのエラーの合計をポイントの数で割る。これによって、動作の大きさや、いくつのポイントが観察されたかということとは無関係なエラー値が得られ、ユーザーの動きがどの程度うまく制約内にとどまっているのかという表示をすることができる。このような表示は、例えば、ユーザーにフィードバックを与える場合に使うことができる。一例として、もしユーザーがあまりに速くスクロール制御を動かそうとしている場合、赤く点灯するようにしてもよい。
任意に、エラー値は、検出された動きのエラーの程度が低くUI制御の動作制約にしっかりと適合しているかどうかによって、UI制御のロックを制御する際に利用することもできる。この構成により可能なのは、例えば、人がダイヤル制御を「通過して」歩くときに、ダイヤル制御はロックしたままにできる。というのは、動きの推移成分に比べると回転成分が非常に低いので、結果的に高いエラーになるからである。逆に、もし人が一つの手ではなく二つの手を使っても、もし、あたかもハンドルを操作するように両手を一緒に回転させた場合は、ダイヤル制御のロックを解除するために有効な動作となる。
制御の中で、ユーザーのインタラクションであると解釈するような移動ポイントが十分にない場合(例えば、ユーザーの手がUI制御の境界線を離れている場合)、速度(必要に応じて、ダイレクトの速度、角速度および/またはスカラー速度)を均等に維持できるので運動量をモデル化する、あるいは、ゆるやかに減速する(摩擦をモデル化する)、あるいは、ゼロを設定する(簡単であるがしっかりとした制御をモデル化する)、という三つの選択肢がある。
ここで、上で例示されたUI制御に特有なUIControlクラス90の作用の構成を詳述する。
再び図5を参照すると、スクロール制御は、TransModelMotion関数を使用して実行され、(この場合では)垂直なラインに動きを拘束するためにLinearConstraint関数を使用する。また任意に、(有限長のスクロール制御が要求される場合は)ラインに沿って範囲を制限できる。もし十分な移動ポイントが見つからない場合、速度はゆっくりと減速するままにしておき、運動量とある程度の摩擦を伴ったスクロールバーをモデル化する。
スクロール制御はまた、前に開示された差分画像化技術を使うことにより、オプティカルフロー計算の効率を改善することができる。非常に大きくて速いユーザーの動きが予想されるときは、差分画像化閾値を適切に上昇させることが可能である。差分画像化技術は、このUI制御にとって特に有益である。というのは、この技術は比較的範囲が広いので、それに比例して、外部からのポイントをより多く含んでいることが期待されるからである。
再び図4を参照すると、ダイヤル制御は、RotScaleTrans関数を使用して実行され、RangeConstraint関数を使用して、速度ゼロおよびスケール速度ゼロの場合を有するように制限する。ダイヤル制御はまた、その動きから算出したエラー値を使って、ユーザーが好適な回転動作を行ったかどうかを判断する。そのような動作が行われなかった場合、ダイヤル制御はロックする。同様に、移動ポイントが十分にない場合、ダイヤル制御はロックする。
任意に、このダイヤル制御は、OpticalFlowケース50関数の効率化を行うため、差分バッファを使用しない。その理由は、差分バッファは、あまり感度が高くないので、ダイヤル制御を操作しているときに生じる非常にゆっくりで微細な動きを拾い上げることができないからである(後で開示するようなノイズ校正に依存する)。しかし、ダイヤル制御の領域は、スクロール制御よりもかなり小さいので、計算負荷に対するインパクトも同様に小さい。
ホイール制御は、ダイヤル制御と同様の方法で実行されるが、ロックは全くかけない。これによって、ホイール内で算出された動作はすべて回転動作として解釈されることが可能となり、ホイール内で十分な移動ポイントが見つからない場合は、ホイールはスピンを続ける(あるいは減速する)。
ダイヤル制御についての他の変形としては、スケールダイヤルがある。これは、RotScaleTrans関数が、ダイヤルの原点から離れる移動ポイントのトランスレーションを、ダイヤルを表示すべきスケールを示すと解釈することを利用する。従って、上記のダイヤル制御とは異なり、RotScaleTrans関数がスカラー速度を制限せず、その代わりに、ダイヤルが速度ゼロと角速度ゼロの場合を有するように制限する。従って、スケールダイヤルは、ユーザーが手を開閉するのに従って、拡大したり縮小したりする。一般的に、スケールダイヤルは、通常のダイヤル制御と同じようにロックする。
角速度ゼロに対する制約もまた取り除かれる場合は、ダイヤルの回転とスケール変更を同時に行うことができる。従って、例えば、回転をステレオバランスに関連づける一方、スケールをゲーム機により演奏される音のボリュームに関連付けることが可能である。
RangeConstraint関数は、例えば、スケールダイヤルが小さくなりすぎて明確に見ることができなくなることを避けるために、あるいは、動作分析のために十分なポイントが含まれるように、最大およびまたは最小スケールを制限することが可能である。スケールホイールも、同様に実現可能である。
上記の動作と制約を使用した制御についての他の組み合わせは、当業者にとっては明らかなことである。また、スケールダイヤルと同じように、ポイントのトランスレーションに対し長さが依存するようなバー等、他のUIフォームファクタも同様に当業者にとって明らかである。
同じように、インタラクションの他のモードにおいては、グラフィック制御を表示しない場合もある。例えば、RotScaleTransModelおよびRotScaleModelは、ビデオカメラに向かってパンチをする拳のスケールの変化を、ボクシングゲームでの入力として作用するように解釈できる。このシナリオにおいては、全体画像は「透明な」制御領域であって、その領域内のユーザーの動きは適宜解釈される。
このタイプのインタラクションは、制御の表面的な見かけにより示される。例えば、ダイヤル制御は、予期される通りダイヤルで示され、片手でダイヤルを調節するように自然にユーザーを促す。対照的に、このダイヤルをステアリングホイールによって表すことも可能であり、これは両手でのアプローチを促す。ダイヤルのグラフィックスは、線画または画像に似たものでよく、透明な領域を伴っても伴わなくてもよい。グラフィックとのインタラクションの際、グラフィックと一致している取り込み画像内の移動領域は、重畳され、あるいはアルファブレンドされ、ユーザーはその行為についてよりよいフィードバックを受けられるようにする。
同様に、UI制御が、状況に応じて動作を起動し、変化させ、あるいは、動作を取得することはいうまでもない。例えば、スクロール制御は、多くのダイヤルを含む多くのアイコンを表示することが可能である。これらのアイコンが「アクティブな」領域にスクロールして入ると、同じグラフィックを使った実際のダイヤル制御(またはその変形)に継ぎ目なく入れ替わる。ユーザーは、スクロール制御が多くの選択可能なダイヤル制御を格納しているということを経験する。他の例では、UI制御は、アクティブ領域内にスクロールするときのみ並進移動可能とすることにより、「好みの」または「ショートカットとなる」制御を選択し、画面上に常駐させるためにスクロールバーから引き出すことができる。
図13は、ビデオカメラが装着あるいは接続されたソニー(商標登録)プレイステーション・ポータブル(商標登録)ビデオゲーム装置(PSP)についての本発明の実施例を示したものである。PSPにより使用されている「クロスメディアバー」ナビゲーションシステムが例示されており、これは、カテゴリアイコンの横列1310を備える。そのうちの一つであるセッティング1315がアクティブ領域に位置し、設定に関連するサブカテゴリの縦列1320が表示されるようにする。これらのサブカテゴリの中で、現在は「ネットワーク更新」が反転表示されている。
カテゴリアイコンの横列は、上記のスクロール制御を使って制御され、このカテゴリアイコンの一つに関連するサブカテゴリの縦列が表示されると、これも同様にスクロール制御を使って制御される。両者の違いは、動作モデルに適用された横のトランスレーション制限内にあるか、縦のトランスレーション制限内にあるかということである。同様に、反転表示されるカテゴリの値またはプロパティを変更することも可能であり、例えば、上記のダイヤル制御を使って、オン/オフのために左に回したり右に回したり、あるいは該当する場合には連続値を設定する。
これらの制御間のインタラクションは、起動、変更(例えば、ロックとロック解除)、または所望の結果を得るために適切な動作の取得をすることにより管理できる。例えば、縦方向スクロール制御あるいはダイヤル制御のいずれかが使用されているとき、現在のカテゴリアイコンにより占有されるアクティブ領域において、横方向の動きが検出されるまで、この横方向スクロールの制御をロックすることができる。これによって、例えば、ユーザーがサブカテゴリの設定を調整している間に、うっかり主要動作がカテゴリを変更してしまうことを防止し、他の制御を調整中は、ユーザーによって具体的に再開が行われるまで横方向スクロールバーはロックするという経験をユーザーに与える。これとは別のインタラクションスキームにおいて、他のUI制御が動きを検出したとき、横方向スクロール制御はただロックするようにする。その結果、横方向スクロール制御はレスポンスの優先度が最も低い。縦方向スクロール制御は、次の優先度レベルを有し、現在反転表示されているサブカテゴリのためのダイヤル制御が最も高い優先度を有する。
ここで図14を参照すると、ユーザー制御検出の方法は、
S10 画像を取り込むステップと、
S20 ImageHistoryクラス20に画像を格納するステップと、
S30 現在とそれより前の画像の間の差分に従って画像を作成するステップと、
S40 DifferenceHistoryクラス40に差分画像の閾値型を格納するステップと、
S50 ImageHistoryクラス20に格納されている画像を分析し、ある画像から次の画像へと追跡するための有効なポイントを見出すステップと、
S60 これらのポイントをPointsHistoryクラス60内に格納するステップと、
S70 現在およびそれより前のフレームにおいて選択されたポイントの動きをモデル化するステップと、
S80 UI制御に適する動作制約を適用するステップと、
S90 制約された動作をユーザー入力として解釈するステップと、を備える。
ここで開示されるユーザー制御検出機構の実施例の作用に相当する、上記方法のさらに別の実施例は、本発明の範囲の想定内であることはいうまでもない。
図15は、ノイズ校正方法を説明するフローチャートである。すでに開示されているように、入力されたグレースケール画像をバイナリ画像に変えるために閾値をDifferenceMetricクラス30内に設定することが必要とされる。ノイズ校正方法は、カメラ画像から効果的にノイズを取り除く一方で、好ましくは、できる限り低くすることできる閾値を見出すように設計される。また、暗騒音をサンプリングするためにユーザーがそのシーンから外に出ることなく達成できるものであることが好ましい。
この方法は、DifferenceMetricクラス30を校正するためにOpticalFlowクラス50の関数を使用する。これによって、OpticalFlowクラス50が動きとみなすものとDifferenceMetricクラス30が動きとみなすものの間に、好適な対応関係があることを保証する。
この方法は、以下のステップを備える。
S1.移動ポイントを決定するために、全体の画像領域に亘って最終のJ個のフレームに対してOpticalFlowクラス50の計算を行うステップ。この計算を支援するためにDifferenceMetricクラス30は使用しない。
S2.PointHistory 60からのすべての移動ポイントを識別して、それらを廃棄するステップ。
S3.残っている各静止ポイントに対し、その位置におけるもっとも最近の、閾値差分画像でない画像を見て、その値を記録するステップ。これによって、静止している画像にあるポイントから一組の差分値が求められる。
S4.統計学的に有意であるように充分な値を得るために、いくつかのフレームに対してステップ1から3を繰り返すステップ。
S5.これらの静止差分値を、ゼロを中心とする正規分布としてモデル化し、変動量を算出するステップ。
S6.この変動量にある程度適切な値(例えば3)を乗じ、それを差分距離閾値に対する基礎として使用するステップ。3という値は、静止ポイントは閾値の要因にはならないという99.7%の信頼度を示している。
別の実施例において、多くの連続したフレームに亘って、各ピクセルに対する差分値のヒストグラムを作成することによって、ノイズが校正される。これは、カメラノイズが常に存在し、かつレベルが同じぐらいなので、ヒストグラムでのピークを形成することが予想されるということを利用するものであり、これに対して、画像における実際の動きはランダムなものであり、広く分散する差分値を有する。結果的に、最小から最大まで差分値を見た場合に、ヒストグラムで発生する最初の明瞭なピークが平均ノイズ値であり、そこに閾値を設定する。
いずれかの実施例によるノイズ校正を行う場合であっても、このときのシーンの照度が均一であることが好ましい。従って、好ましい実施例においては、テレビディスプレイによる輝度とカラー出力は校正の間は大きく変動すべきではない。主な目的は、テレビ画面による環境での照度における急激な変化によってシャドーが急速に変化し、それによって、見かけ上の動きが生じるのを回避するためである。これとは対照的に、ここで記載されている方法を通常に実行している間は、テレビまたは他の環境要因からの照度変化による見かけ上の動きに対して、各画像をトラッキングするための候補ポイントを評価することによって、有効に耐性を提供することができる。
任意に、ランダムなカメラノイズを抑制するために、ノイズ低減法を使用することも可能であり、それによって、意図的な動きを区別する。カメラノイズのランダム性とは、空間または時間での平均化によって、効果的なノイズレベルを減らすことを意味する。しかしながら、(各ピクセルに対してn×nピクセル領域に亘る)空間での平均化は、小さいながらも真の動きに対する感度を減少させる一方で、(連続した画像に亘る)時間での平均化は、ゆっくりであっても真の動きに対する感度を減少させる。このように、これらの技術の適用性は、ビデオカメラのフレームレートまたは解像度にそれぞれ依存するものであり、またユーザーがインタラクションを行うと考えられる制御のタイプにも依存する。差分の閾値化をする前に、どのポイントにおいても平均化を適用できることはいうまでもない。オリジナルの画像から最良の結果が得られるとしても、これはグレースケール差分画像に対する単一平均化に比べると、(赤、緑、青値に対する)三回の平均化が必要であり、したがって、品質と計算負荷に関するこれらの比較値は、アプリケーションに依存する。
ソフトウェアにより制御されたデータ処理装置によって、少なくとも部分的であっても、上記のような本発明の実施例が実行される限りは、このようなソフトウェアを提供するコンピュータプログラムと、このようなコンピュータプログラムが格納される記憶装置または伝送媒体が、本発明の態様として認識されることはいうまでもない。
図1は、プレイステーション2の全体的なシステムアーキテクチャを概略的に示す。 図2は、エモーション・エンジンのアーキテクチャを概略的に示す。 図3は、グラフィックス・シンセサイザの構成を概略的に示す。 図4は、ダイヤル制御を概略的に示す。 図5は、スクロール制御を概略的に示す。 図6は、ユーザー制御検出機構のブロック図である。 図7は、特徴点の比較について概略的に示す。 図8は、特徴点の比較について概略的に示す。 図9は、特徴点の比較について概略的に示す。 図10は、動作タイプを区別する際の問題点を示す。 図11は、2つの画像間の閾値差分を示す。 図12は、動作のタイプを区別するための手段を示す。 図13は、ソニー(登録商標)PSP(登録商標)のナビゲーションシステムに対するユーザー制御検知機構の適用を例示する。 図14は、ユーザー制御検出の方法を示すフローチャートである。 図15は、ノイズ校正の方法を示すフローチャートである。

Claims (33)

  1. ビデオカメラから連続する画像を受信するよう構成されるデータ処理装置であって、
    該データ処理装置の制御機能と対応づけられている画像領域内の選択されたポイントについて画像間動作を検出するための手段と、
    該画像間動作について画像領域において検出が行われた場合に制御機能を実行するための手段と、を備え、
    該検出手段は、先行して受信した画像内のポイントとの対応関係に基づいて、現在受信している画像内のテストポイントを選択することによって妥当性が確認された、現在の画像の画像領域内にあるポイントを選択するよう構成されており、先行して受信した画像内のポイントそれ自体は、現在受信している画像内でもともと選択されたポイントに対応するものであり、
    対応するテストポイントが実質的に一致しない現在の画像内のポイントは選択から外すことを特徴とするデータ処理装置。
  2. 請求項1に記載の装置であって、
    前記連続する画像を供給するためのビデオカメラを備えることを特徴とするデータ処理装置。
  3. 前記各項のいずれか一つに記載の装置であって、
    ビデオディスプレイと、
    該ビデオディスプレイ上に移動可能なユーザー制御を表示するための手段と、を備える装置であって、
    前記制御機能は、少なくとも該移動可能なユーザー制御の移動を含むことを特徴とする装置。
  4. 請求項3に記載の装置であって、
    前記移動可能なユーザー制御は、前記検出手段によって検出された画像間動作の程度に依存する量だけ動かされることを特徴とする装置。
  5. 前記各項のいずれか一つに記載の装置は、差分測定手段を備え、
    該差分測定手段は、
    二つの連続する画像間のピクセル値における差分に比例する、一連の値を備える差分データを作成し、
    その後、該差分データを平滑化するよう動作可能であることを特徴とする装置。
  6. 請求項5に記載の装置であって、
    前記差分測定装置はさらに、異なる閾値レベルで差分データに対して閾値を適用し、結果として生じるバイナリ差分データを出力するよう動作可能であることを特徴とする装置。
  7. 請求項6に記載の装置は、差分データ記憶手段を備え、
    該差分データ記憶手段は、連続する画像間で差分閾値を超える差分を示した、一連の画像に亘るすべてのポイントを示す累積的バイナリ差分画像を作成するために、一連の画像に対するバイナリ差分データを組み合わせるよう動作可能であることを特徴とする装置。
  8. 請求項6または請求項7に記載の装置であって、
    i.空間的平均化、および
    ii.時間的平均化
    のうちの一つまたは両方の処理を適用することによって、前記ビデオカメラから受信した画像データを処理する手段を備えることを特徴とする装置。
  9. 請求項6に記載の装置であって、
    前記画像間動作を検出する手段は、先行する画像内のポイントの選択の前に、差分画像にある均等位置が差分閾値レベルを下回る差分を示している、現在の画像におけるポイントを廃棄するよう動作可能であることを特徴とする装置。
  10. 請求項6に記載の装置であって、
    前記画像間動作を検出する手段は、先行する画像内のポイントとの対応関係に基づく現在の画像内のテストポイントの選択の前に、差分画像にある均等位置が差分閾値レベルを下回る差分を示している、先行する画像におけるポイントを廃棄するよう動作可能であることを特徴とする装置。
  11. 請求項5乃至請求項10のいずれか一つに記載の装置であって、
    前記差分測定手段は、静止しているということが見出された選択ポイントの差分値における変動量に基づいて、連続する画像間の差分閾値を算出するよう動作可能であることを特徴とする装置。
  12. 請求項5乃至請求項10のいずれか一つに記載の装置であって、
    前記差分測定手段は、連続する画像間の差分閾値を算出するよう動作可能であって、該算出は、二つ以上の連続する画像内のピクセルについての差分値のヒストグラムに基づくものであり、ヒストグラムの末端にある低い差分値から見て最初に遭遇するヒストグラムピークを、それより上に差分閾値を設定すべき平均カメラノイズであると識別することを特徴とする装置。
  13. 請求項9乃至請求項12のいずれか一つに記載の装置であって、
    前記差分測定手段は、画像履歴記憶装置に格納されたn個の先行する画像について動作を検出するためのポイントのペアを再帰的に取得し、これらのポイントのペアの累積した最終的な動作を距離閾値と比較し、意図的な動きを画像ノイズから区別するよう動作可能であることを特徴とする装置。
  14. 請求項13に記載の装置であって、
    nは、3以上であることを特徴とする装置。
  15. 請求項13乃至請求項14のいずれか一つに記載の装置であって、
    前記画像間動作を検出するための手段は、画像履歴にある先行する画像から再帰的にポイントのペアを取得する前に、連続する画像間に差分閾値レベルを超えるのに十分な差分がないということが生じたポイントを廃棄するために、累積的差分画像を使用するよう動作可能であることを特徴とする装置。
  16. 請求項13乃至請求項15のいずれか一つに記載の装置であって、
    意図的な動きを示したと検出されたポイントを格納するためのポイント履歴記憶手段を備えることを特徴とする装置。
  17. 請求項16に記載の装置であって、
    ユーザーに対して検出された動作についての情報を供給するために、ポイント履歴から引き出されたデータを、グラフィカルに表示するための手段を備えることを特徴とする装置。
  18. 請求項13乃至請求項17のいずれか一つに記載の装置であって、
    意図的な動きを示したと判断された、現在の画像および先行する画像に対するポイントのペアにおける、
    i. トランスレーション
    ii. ローテーション
    iii. スケール
    のいずれか、またはすべてに対する変更について決定するよう動作可能である動作モデル化手段を備えることを特徴とする装置。
  19. 請求項18に記載の装置であって、
    現在の画像および先行する画像よりも古い、いくつかのまたはすべての格納された画像に対するポイントペアは、前記動作モデル化手段によって使用されることを特徴とする装置。
  20. 請求項18および請求項19のいずれか一つに記載の装置であって、
    所望の動きに一致するように、モデル化された動作を制約するよう動作可能な動作制約手段を備えることを特徴とする装置。
  21. 請求項18乃至請求項20のいずれか一つに記載の装置であって、
    前記モデル化された動作に従って、少なくとも最初の表示アイテムを更新するための表示手段を備えることを特徴とする装置。
  22. 請求項21に記載の装置であって、
    前記表示アイテムまたは各表示アイテムは、ユーザーインターフェース制御を表わすことを特徴とする装置。
  23. 請求項22記載の装置であって、
    前記ユーザーインターフェース制御は、
    i. ホイール制御
    ii. ダイヤル制御
    iii. スクロール制御
    iv. スケール制御
    のいずれか一つであることを特徴とする装置。
  24. 請求項23記載の装置であって、
    前記ホイール制御とダイヤル制御は、スケール変更が可能であることを特徴とする装置。
  25. 請求項20乃至請求項24のいずれか一つに記載の装置であって、
    制約のあるモデル化された動作から、ユーザーが逸脱したと判断されると、この逸脱が閾値を超えている場合は、ユーザーインターフェース制御がロックされることを特徴とする装置。
  26. 請求項18乃至請求項25のいずれか一つに記載の装置であって、
    前記モデル化された動作は、装置に対するユーザー入力として解釈されることを特徴とする装置。
  27. 前記各項のいずれか一つに記載の装置であって、前記データ処理装置はゲーム機であることを特徴とする装置。
  28. データ処理方法であって、
    ビデオカメラから連続して取り込んだ画像を受信するステップと、
    データ処理装置の制御機能と対応づけられている画像領域内の選択されたポイントについての画像間動作を検出するステップと、
    画像領域において該画像間動作が検出された場合に制御機能を実行するステップと、を備え、
    該検出ステップは、先行して受信した画像内のポイントとの対応関係に基づいて、現在受信している画像内のテストポイントを選択することによって妥当性が確認された、現在の画像の画像領域内にあるポイントを選択するよう構成されており、先行して受信した画像内のポイントそれ自体は、現在受信している画像内でもともと選択されたポイントに対応するものであり、
    対応するテストポイントが実質的に一致しない現在の画像内のポイントは選択から外すことを特徴とするデータ処理方法。
  29. コンピュータ・ソフトウェアであって、
    コンピュータにロードされると、コンピュータが請求項1乃至請求項27のいずれか一つに記載のデータ処理装置として動作できるようになるプログラムコードを有することを特徴とするソフトウェア。
  30. コンピュータ・ソフトウェアであって、
    請求項28に記載の方法を実行するためのプログラムコードを有することを特徴とするコンピュータ・ソフトウェア。
  31. 請求項29または請求項30に記載のソフトウェアを提供するための提供媒体。
  32. 請求項31に記載の媒体であって、前記媒体は、伝送媒体であることを特徴とする媒体。
  33. 請求項31に記載の媒体であって、前記媒体は、記憶媒体であることを特徴とする媒体。
JP2009511563A 2006-05-24 2007-05-17 データ処理の制御 Pending JP2009537923A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0610324.6A GB2438449C (en) 2006-05-24 2006-05-24 Control of data processing
PCT/GB2007/001810 WO2007135376A2 (en) 2006-05-24 2007-05-17 Control of data processing using cumulative inter-frame motion

Publications (1)

Publication Number Publication Date
JP2009537923A true JP2009537923A (ja) 2009-10-29

Family

ID=36687665

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009511563A Pending JP2009537923A (ja) 2006-05-24 2007-05-17 データ処理の制御
JP2009511564A Active JP5275978B2 (ja) 2006-05-24 2007-05-17 データ処理の制御

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2009511564A Active JP5275978B2 (ja) 2006-05-24 2007-05-17 データ処理の制御

Country Status (5)

Country Link
US (2) US20090251553A1 (ja)
EP (2) EP2029247B1 (ja)
JP (2) JP2009537923A (ja)
GB (1) GB2438449C (ja)
WO (2) WO2007135376A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101355589B1 (ko) 2013-01-30 2014-01-24 한국기술교육대학교 산학협력단 각 분할 스핀영상을 이용한 얼굴인식 방법
JP2020201674A (ja) * 2019-06-07 2020-12-17 キヤノン株式会社 映像解析装置及びその制御方法及びプログラム

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8249334B2 (en) 2006-05-11 2012-08-21 Primesense Ltd. Modeling of humanoid forms from depth maps
GB2438449C (en) * 2006-05-24 2018-05-30 Sony Computer Entertainment Europe Ltd Control of data processing
WO2008029889A1 (fr) * 2006-09-08 2008-03-13 Panasonic Corporation Terminal de traitement des informations, procédé de génération d'informations musicales et programme
US9035876B2 (en) 2008-01-14 2015-05-19 Apple Inc. Three-dimensional user interface session control
US8933876B2 (en) 2010-12-13 2015-01-13 Apple Inc. Three dimensional user interface session control
US8166421B2 (en) 2008-01-14 2012-04-24 Primesense Ltd. Three-dimensional user interface
JP5183398B2 (ja) * 2008-09-29 2013-04-17 株式会社日立製作所 入力装置
JP2010277197A (ja) * 2009-05-26 2010-12-09 Sony Corp 情報処理装置、情報処理方法およびプログラム
US8565479B2 (en) 2009-08-13 2013-10-22 Primesense Ltd. Extraction of skeletons from 3D maps
JP2011081469A (ja) * 2009-10-05 2011-04-21 Hitachi Consumer Electronics Co Ltd 入力装置
JP2011152297A (ja) * 2010-01-27 2011-08-11 Namco Bandai Games Inc プログラム、情報記憶媒体、ゲームシステム
US8787663B2 (en) 2010-03-01 2014-07-22 Primesense Ltd. Tracking body parts by combined color image and depth processing
JP2011233039A (ja) * 2010-04-28 2011-11-17 Sony Corp 画像処理装置、画像処理方法、撮像装置、およびプログラム
US8594425B2 (en) 2010-05-31 2013-11-26 Primesense Ltd. Analysis of three-dimensional scenes
US9201501B2 (en) 2010-07-20 2015-12-01 Apple Inc. Adaptive projector
JP5791131B2 (ja) 2010-07-20 2015-10-07 アップル インコーポレイテッド 自然な相互作用のための相互作用的現実拡張
US8582867B2 (en) 2010-09-16 2013-11-12 Primesense Ltd Learning-based pose estimation from depth maps
US8959013B2 (en) 2010-09-27 2015-02-17 Apple Inc. Virtual keyboard for a non-tactile three dimensional user interface
KR101364571B1 (ko) * 2010-10-06 2014-02-26 한국전자통신연구원 영상 기반의 손 검출 장치 및 그 방법
US8872762B2 (en) 2010-12-08 2014-10-28 Primesense Ltd. Three dimensional user interface cursor control
US9848106B2 (en) * 2010-12-21 2017-12-19 Microsoft Technology Licensing, Llc Intelligent gameplay photo capture
CN103347437B (zh) 2011-02-09 2016-06-08 苹果公司 3d映射环境中的凝视检测
US9459758B2 (en) 2011-07-05 2016-10-04 Apple Inc. Gesture-based interface with enhanced features
US9377865B2 (en) 2011-07-05 2016-06-28 Apple Inc. Zoom-based gesture user interface
US8881051B2 (en) 2011-07-05 2014-11-04 Primesense Ltd Zoom-based gesture user interface
US9030498B2 (en) 2011-08-15 2015-05-12 Apple Inc. Combining explicit select gestures and timeclick in a non-tactile three dimensional user interface
US9218063B2 (en) 2011-08-24 2015-12-22 Apple Inc. Sessionless pointing user interface
US9122311B2 (en) 2011-08-24 2015-09-01 Apple Inc. Visual feedback for tactile and non-tactile user interfaces
US9002099B2 (en) 2011-09-11 2015-04-07 Apple Inc. Learning-based estimation of hand and finger pose
US9229534B2 (en) 2012-02-28 2016-01-05 Apple Inc. Asymmetric mapping for tactile and non-tactile user interfaces
US9377863B2 (en) 2012-03-26 2016-06-28 Apple Inc. Gaze-enhanced virtual touchscreen
DE102012205051B4 (de) * 2012-03-29 2016-09-15 Siemens Healthcare Gmbh Verfahren zur Reduzierung von Direct-Hit-Artefakten und Röntgeneinrichtung
US9047507B2 (en) 2012-05-02 2015-06-02 Apple Inc. Upper-body skeleton extraction from depth maps
GB2501925B (en) * 2012-05-11 2015-04-29 Sony Comp Entertainment Europe Method and system for augmented reality
US9019267B2 (en) 2012-10-30 2015-04-28 Apple Inc. Depth mapping with enhanced resolution
JP5386645B2 (ja) * 2013-01-10 2014-01-15 日立コンシューマエレクトロニクス株式会社 入力方法
JP2014232516A (ja) * 2013-05-30 2014-12-11 トヨタ自動車株式会社 対象物変化検出装置、警報装置、対象物変化検出方法及び警報方法
US10031925B2 (en) * 2014-10-15 2018-07-24 Thinkcx Technologies, Inc. Method and system of using image recognition and geolocation signal analysis in the construction of a social media user identity graph
US20200218413A1 (en) 2014-10-30 2020-07-09 Google Llc Systems and methods for presenting scrolling online content on mobile devices
GB2533553B (en) * 2014-12-15 2020-09-09 Sony Interactive Entertainment Inc Image processing method and apparatus
EP3040835B1 (en) * 2014-12-31 2021-12-01 Nokia Technologies Oy Image navigation
US10043279B1 (en) 2015-12-07 2018-08-07 Apple Inc. Robust detection and classification of body parts in a depth map
CN109328460A (zh) * 2016-07-01 2019-02-12 脸谱公司 立体图像捕获
US10366278B2 (en) 2016-09-20 2019-07-30 Apple Inc. Curvature-based face detector
US10860845B2 (en) * 2018-10-22 2020-12-08 Robert Bosch Gmbh Method and system for automatic repetitive step and cycle detection for manual assembly line operations
CN111714888A (zh) * 2020-06-10 2020-09-29 咪咕互动娱乐有限公司 游戏地图生成方法、装置、电子设备及存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02117276A (ja) * 1988-10-27 1990-05-01 Canon Inc 追尾制御方法及び装置並びにぶれ補正方法及び装置
JPH04196993A (ja) * 1990-11-28 1992-07-16 Toshiba Corp 画像監視装置
US5764283A (en) * 1995-12-29 1998-06-09 Lucent Technologies Inc. Method and apparatus for tracking moving objects in real time using contours of the objects and feature paths
JP2000163193A (ja) * 1998-11-25 2000-06-16 Seiko Epson Corp 携帯情報機器及び情報記憶媒体
JP2001307124A (ja) * 2000-02-15 2001-11-02 Sega Corp 画像処理システム、画像処理装置及び撮像装置
JP2002196855A (ja) * 2000-10-06 2002-07-12 Sony Computer Entertainment Inc 画像処理装置、画像処理方法、記録媒体、コンピュータプログラム、半導体デバイス
US6571024B1 (en) * 1999-06-18 2003-05-27 Sarnoff Corporation Method and apparatus for multi-view three dimensional estimation
JP2005087754A (ja) * 2004-12-01 2005-04-07 Konami Computer Entertainment Yokyo Inc ゲーム装置、コンピュータゲームシステムの制御方法及びプログラム
JP2005122492A (ja) * 2003-10-16 2005-05-12 Japan Science & Technology Agency 画像に含まれる身体形状を判定する方法及び非接触型ポインティング・デバイスの実現方法
JP2005526318A (ja) * 2002-05-17 2005-09-02 サーノフ・コーポレーション オプティカルフローを決定する方法及び装置
JP2006127541A (ja) * 2005-12-06 2006-05-18 Nec Corp ジェスチャー認識方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4240109A (en) * 1976-10-14 1980-12-16 Micro Consultants, Limited Video movement detection
US5012270A (en) 1988-03-10 1991-04-30 Canon Kabushiki Kaisha Image shake detecting device
US4937878A (en) 1988-08-08 1990-06-26 Hughes Aircraft Company Signal processing for autonomous acquisition of objects in cluttered background
US4953032A (en) * 1988-11-30 1990-08-28 Hitachi, Ltd. Motion signal generating circuit for use in a television receiver
JP3062394B2 (ja) 1994-05-30 2000-07-10 沖電気工業株式会社 動体像抽出方法
US6985172B1 (en) * 1995-12-01 2006-01-10 Southwest Research Institute Model-based incident detection system with motion classification
US6504569B1 (en) 1998-04-22 2003-01-07 Grass Valley (U.S.), Inc. 2-D extended image generation from 3-D data extracted from a video sequence
US6301386B1 (en) * 1998-12-09 2001-10-09 Ncr Corporation Methods and apparatus for gray image based text identification
RU2187904C1 (ru) * 2000-12-19 2002-08-20 Многопрофильное предприятие ООО "Элсис" Способ и устройство преобразования изображения
JP4290124B2 (ja) * 2002-11-26 2009-07-01 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 動き系列パターン検出
GB2398691B (en) 2003-02-21 2006-05-31 Sony Comp Entertainment Europe Control of data processing
WO2005006545A1 (ja) 2003-07-10 2005-01-20 Murata Manufacturing Co., Ltd. 電子部品の周波数調整装置及びそれを用いた電子部品の周波数調整方法
US7535515B2 (en) * 2003-12-23 2009-05-19 Ravi Ananthapur Bacche Motion detection in video signals
US7643066B2 (en) * 2004-02-19 2010-01-05 Robert Bosch Gmbh Method and apparatus for producing frame accurate position data in a PTZ dome camera with open loop control
EP1645944B1 (en) * 2004-10-05 2012-08-15 Sony France S.A. A content-management interface
US7489341B2 (en) * 2005-01-18 2009-02-10 Primax Electronics Ltd. Method to stabilize digital video motion
JP4689684B2 (ja) * 2005-01-21 2011-05-25 ジェスチャー テック,インコーポレイテッド 動作に基づくトラッキング
GB2438449C (en) 2006-05-24 2018-05-30 Sony Computer Entertainment Europe Ltd Control of data processing

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02117276A (ja) * 1988-10-27 1990-05-01 Canon Inc 追尾制御方法及び装置並びにぶれ補正方法及び装置
JPH04196993A (ja) * 1990-11-28 1992-07-16 Toshiba Corp 画像監視装置
US5764283A (en) * 1995-12-29 1998-06-09 Lucent Technologies Inc. Method and apparatus for tracking moving objects in real time using contours of the objects and feature paths
JP2000163193A (ja) * 1998-11-25 2000-06-16 Seiko Epson Corp 携帯情報機器及び情報記憶媒体
US6571024B1 (en) * 1999-06-18 2003-05-27 Sarnoff Corporation Method and apparatus for multi-view three dimensional estimation
JP2001307124A (ja) * 2000-02-15 2001-11-02 Sega Corp 画像処理システム、画像処理装置及び撮像装置
JP2002196855A (ja) * 2000-10-06 2002-07-12 Sony Computer Entertainment Inc 画像処理装置、画像処理方法、記録媒体、コンピュータプログラム、半導体デバイス
JP2005526318A (ja) * 2002-05-17 2005-09-02 サーノフ・コーポレーション オプティカルフローを決定する方法及び装置
JP2005122492A (ja) * 2003-10-16 2005-05-12 Japan Science & Technology Agency 画像に含まれる身体形状を判定する方法及び非接触型ポインティング・デバイスの実現方法
JP2005087754A (ja) * 2004-12-01 2005-04-07 Konami Computer Entertainment Yokyo Inc ゲーム装置、コンピュータゲームシステムの制御方法及びプログラム
JP2006127541A (ja) * 2005-12-06 2006-05-18 Nec Corp ジェスチャー認識方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101355589B1 (ko) 2013-01-30 2014-01-24 한국기술교육대학교 산학협력단 각 분할 스핀영상을 이용한 얼굴인식 방법
JP2020201674A (ja) * 2019-06-07 2020-12-17 キヤノン株式会社 映像解析装置及びその制御方法及びプログラム

Also Published As

Publication number Publication date
GB2438449B (en) 2010-01-27
WO2007135378A3 (en) 2008-12-31
JP5275978B2 (ja) 2013-08-28
WO2007135376A3 (en) 2008-12-31
GB2438449C (en) 2018-05-30
US20090251553A1 (en) 2009-10-08
EP2029247B1 (en) 2016-02-03
WO2007135378A2 (en) 2007-11-29
EP2029247A2 (en) 2009-03-04
JP2009537924A (ja) 2009-10-29
US8654099B2 (en) 2014-02-18
WO2007135376A2 (en) 2007-11-29
EP2029248B1 (en) 2018-10-03
GB0610324D0 (en) 2006-07-05
EP2029248A2 (en) 2009-03-04
US20090268040A1 (en) 2009-10-29
GB2438449A (en) 2007-11-28

Similar Documents

Publication Publication Date Title
JP5275978B2 (ja) データ処理の制御
EP2422319B1 (en) Entertainment device, system, and method
US7639233B2 (en) Man-machine interface using a deformable device
EP2427869B1 (en) Entertainment device, system, and method
EP2521097B1 (en) System and Method of Input Processing for Augmented Reality
US8542250B2 (en) Entertainment device, system, and method
US8705845B2 (en) Entertainment device and method of interaction
JP5368454B2 (ja) 画像解析装置および方法
EP2512141A1 (en) System and method of user interaction in augmented reality
JP2006520213A (ja) データ処理の制御
JP2006528395A (ja) リアルタイムの3次元インタラクティブ環境を提供するシステム及び方法
JP2006518237A (ja) データ処理の制御
CN109189302B (zh) Ar虚拟模型的控制方法及装置
Henrysson et al. Using a mobile phone for 6 DOF mesh editing
EP2169622A1 (en) Apparatus and method of image analysis
KR20050019872A (ko) 변형될 수 있는 장치를 사용하는 인간-컴퓨터간 인터페이스

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111220

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120314

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120322

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120412

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120518

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121023