JP2008009646A - 画像処理装置、画像処理方法 - Google Patents

画像処理装置、画像処理方法 Download PDF

Info

Publication number
JP2008009646A
JP2008009646A JP2006178582A JP2006178582A JP2008009646A JP 2008009646 A JP2008009646 A JP 2008009646A JP 2006178582 A JP2006178582 A JP 2006178582A JP 2006178582 A JP2006178582 A JP 2006178582A JP 2008009646 A JP2008009646 A JP 2008009646A
Authority
JP
Japan
Prior art keywords
operation input
input device
orientation
information
image
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.)
Granted
Application number
JP2006178582A
Other languages
English (en)
Other versions
JP4757115B2 (ja
JP2008009646A5 (ja
Inventor
Yasuhiro Okuno
泰弘 奥野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2006178582A priority Critical patent/JP4757115B2/ja
Priority to EP07109691A priority patent/EP1873617A3/en
Priority to US11/764,377 priority patent/US8207909B2/en
Priority to CN200710127090A priority patent/CN100578426C/zh
Publication of JP2008009646A publication Critical patent/JP2008009646A/ja
Publication of JP2008009646A5 publication Critical patent/JP2008009646A5/ja
Application granted granted Critical
Publication of JP4757115B2 publication Critical patent/JP4757115B2/ja
Priority to US13/485,080 priority patent/US8633871B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • 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
    • 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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • 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/1006Features 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 having additional degrees of freedom
    • 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/1025Features 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 details of the interface with the game device, e.g. USB version detection
    • 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
    • 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/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8082Virtual reality

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Burglar Alarm Systems (AREA)

Abstract

【課題】 HMDと操作入力装置との対応付けをより簡便に行うための技術を提供すること。
【解決手段】 ビデオカメラ113から取得した画像中に、操作入力装置116に固有の情報である2次元バーコードが含まれている場合には、ビデオカメラ113に固有の情報と、操作入力装置116に固有の情報とを関連付けて、共有メモリ107内で管理する。
【選択図】 図1

Description

本発明は、複合現実感提示技術に関するものである。
従来より、複合現実感(MR : Mixed Reality)提示装置が存在する。複合現実感提示装置の例としては、映像表示手段(たとえば、頭部装着型ディスプレイ(HMD: Head Mounted Display))と、現実映像撮影手段と、仮想映像生成手段と、位置姿勢検出手段(たとえば位置姿勢センサ)と、現実映像と仮想映像とを合成する合成手段とを備えているものである。
現実映像撮影手段の典型的な例としては、小型のカメラをHMDに取り付け、HMD前面の風景を撮影し、キャプチャされた画像を計算機のメモリ内に記録するような手段があげられる。
位置姿勢検出手段は、現実映像撮影手段の位置姿勢などを検出するためなどに用いられる手段である。たとえば、磁気方式による位置姿勢センサなどを検出対象(上記現実映像撮影手段である小型ビデオカメラなど)に取り付け、その位置姿勢を検出する。磁気方式の位置姿勢センサとは、磁気発生装置(発信機)と磁気センサ(受信機)との間の相対位置・姿勢を検出するものであり、センサの3次元位置(X,Y,Z)と姿勢(Pitch, Yaw, Roll)をリアルタイムに検出することができるものである。
仮想映像生成手段は、三次元モデリングされたCGを現実空間と同じスケールの仮想空間に配置し、小型ビデオカメラが現実空間を撮影している位置姿勢と同じ位置姿勢からその仮想空間のシーンをレンダリングし、CG映像を得るものである。
合成手段は、現実映像撮影手段によって得られた画像の上に、仮想映像生成手段によって得られた仮想映像を重畳し、複合現実感映像を生成するものである。合成手段の一例としては、現実映像撮影手段によってキャプチャされた画像を計算機のビデオメモリに書き込み、その上に仮想映像生成手段によってCG映像を書き込むという処理があげられる。
このようにして得られた複合現実感映像を映像表示手段によりに映像表示装置(HMDなど)に表示することにより、観察者は、現実空間の中に仮想物体(CG)が出現したかのような感覚を得ることができる。
また、複合現実感提示装置に、操作入力手段を備え、仮想物体(CG)の位置姿勢などを操作することができるシステムが存在する。操作入力手段とは、例えばゲーム用の操作入力装置を用いるものなどがあげられる(例えば、特許文献1)。
また、現実映像撮影手段をもたない構成もある。この場合、映像表示装置自体が光学的にシースルーになっており、計算機からの出力によらずに眼前の現実空間を観察することができる必要がある。この場合は仮想映像生成手段が仮想物体を表示するだけでよく、合成手段を必要としない。
複合現実空間を同時に観察・操作する人数は一人とは限らず、複数人で同じ複合現実空間を体験・操作するシステムが存在する。この場合は、仮想空間のシーンの状態を管理する仮想シーン管理手段を設ける。それぞれの観察者の仮想映像生成手段は、仮想シーン管理手段から得られるシーン情報をもとにしておのおのの観察視点から仮想空間の映像を描画する。こうすれば、どの観察者も同じ内容のシーンを自分の視点から観察することができる。操作入力装置を複数用意すれば、それぞれの観察者が同じ仮想空間を操作することもできる。
このようなシステム構成によれば、それぞれの体験者は同時に、自分自身の視点から複合現実空間を観察することができ、それぞれが仮想物体に対する操作を行うことが可能である。
従来の複合現実感提示装置における操作は、操作入力装置に入力された情報に加えて、体験者が見ている視線の方向などの観察者情報を組み合わせて操作内容を決定することがあった。そのような例を説明する。図11は、二人の観察者のそれぞれが複合現実映像を観察している様子を示している図である。
1101,1102はそれぞれ観察者で、それぞれの観察者1101,1102は自身の頭部にHMD1103,1104を装着しており、手には操作入力装置1105,1106を保持している。図12は、操作入力装置1105、1106に適用可能な操作入力装置の一例を示す図である。図12において1206は十字ボタンで、操作対象の仮想物体を奥、手前、右、左に移動させる指示を入力するためのものであり、例えば、Xが記された方向に十字ボタン1206を押下すると、操作対象の仮想物体を奥側に移動させる指示を入力することができる。1202から1205のそれぞれは、各種の指示を入力するためのボタンである。
この操作入力装置は、ケーブルを介して不図示の計算機に接続されており、このケーブルを介して十字ボタン1206やボタン群1202〜1205による操作指示が計算機に送出される。
図11に戻って1107は、それぞれの操作入力装置1105、1106の操作対象となる仮想物体である。1199は、観察者1102の視点方向にそって観察者1102から見て奥側を示す説明のための矢印であり、1198は、観察者1101の視線方向にそって観察者1101から見て奥側を示す説明のための矢印である。この例では、観察者1101は、操作入力装置1105を用いて(ここでは例として、Xが記された方向に十字ボタン1206を押下する)、仮想物体1107を矢印1198に示す方向に移動させる指示を入力することができ、観察者1102は、操作入力装置1106を用いて(ここでは例として、Xが記された方向に十字ボタン1206を押下する)、仮想物体1107を矢印1199に示す方向に移動させる指示を入力することができる。
この場合では、観察者は自分から離れる方向(自分から見て奥の方向)に仮想物体1107を移動させたいという意図をもっており、同じキー操作(Xが記された方向に十字ボタン1206を押下する)を行っても、観察者の視線方向に応じて仮想物体1107を移動させる方向が変化するといった操作方法が便利である。
この他の例としては、複数存在する仮想物体1107の中から一つの仮想物体1107を選択する操作を行った場合に、観察者が見ている映像中の一番画面中央寄りにある仮想物体1107を選択する、といった操作方法などもある。
このように、観察者の情報(観察者の頭部位置姿勢や観察している画面の情報)と、操作入力装置からの操作入力情報とを合わせて判断し、操作に反映することが従来から行われている。
また、観察者が自分が装着しているHMDの設定値(色設定など)を変更する際に操作入力装置を使うような場合でも、装置に入力された情報がどのHMDの設定値を変更しようとしているのかと特定するために、観察者の情報(どの観察者がどのHMDを装着しているか)と操作入力装置との間の対応関係を管理する必要があった。
特開2001−195601号公報
従来の手法によれば、操作入力装置と映像表示装置との対応付けは事前に決めておく必要があり、煩雑であった。また、操作入力装置の数が映像表示装置の数より少ない場合には問題があった。この問題について以下により詳細に説明する。
上述のように、図11では、複数人で同じ複合現実空間を共有し、協調作業を行っている。同図において、操作入力装置1105はHMD1103と対応していることが事前に決められている。従って、HMD1103を装着した観察者1101が操作入力装置1105においてXが記された方向に十字ボタン1206を押下する操作を行った場合には、HMD1103の視線方向、即ち、観察者1101の視線方向(矢印1198の方向)が「奥の方向」と解釈され、仮想物体1107が矢印1198の方向に移動されることになる。
同様に、観察者1102が操作入力装置1106においてXが記された方向に十字ボタン1206を押下する操作を行った場合には、観察者1102の視線方向(矢印1199の方向)が「奥の方向」と解釈され、仮想物体1107が矢印1199の方向に移動されることになる。
ここでもし観察者1101が誤って操作入力装置1106を手にとってXが記された方向に十字ボタン1206を押下すると、観察者1102の視線方向が「奥の方向」と解釈されてしまい、観察者1101の意図とは異なる操作結果(観察者1101の「手前」に仮想物体1107が移動する)となってしまう。従って、それぞれの観察者1101、1102は、自分がどのHMDを装着したかに応じてどの操作入力装置を持つべきなのか注意を払わなければならず、煩雑であるという課題があった。また、操作入力装置を複数の観察者が共有利用することができず、操作入力装置を観察者の数だけ用意しなければならない、という問題があった。
本発明は以上の問題に鑑みてなされたものであり、HMDと操作入力装置との対応付けをより簡便に行うための技術を提供することを目的とする。
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
即ち、現実空間を撮像する撮像装置から、当該画像を取得する取得工程と、
前記取得工程で取得した画像中に、仮想物体に対する操作入力を行うための操作入力装置に固有の情報が含まれている場合には、前記撮像装置に固有の情報と、当該操作入力装置に固有の情報とを関連付けて、メモリ内で管理する管理工程と
を備えることを特徴とする。
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
即ち、頭部装着型表示装置の位置姿勢を取得する第1の取得工程と、
仮想物体に対する操作入力を行うための操作入力装置の位置姿勢を取得する第2の取得工程と、
前記第1の取得工程で取得した位置姿勢と、前記第2の取得工程で取得した位置姿勢と、の関係が予め定めた関係を満たす場合には、前記頭部装着型表示装置に固有の情報と、前記操作入力装置に固有の情報とを関連付けて、メモリ内で管理する管理工程と
を備えることを特徴とする。
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
即ち、現実空間を撮像する撮像装置から、当該画像を取得する取得手段と、
前記取得手段が取得した画像中に、仮想物体に対する操作入力を行うための操作入力装置に固有の情報が含まれている場合には、前記撮像装置に固有の情報と、当該操作入力装置に固有の情報とを関連付けて、メモリ内で管理する管理手段と
を備えることを特徴とする。
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
即ち、頭部装着型表示装置の位置姿勢を取得する第1の取得手段と、
仮想物体に対する操作入力を行うための操作入力装置の位置姿勢を取得する第2の取得手段と、
前記第1の取得手段が取得した位置姿勢と、前記第2の取得手段が取得した位置姿勢と、の関係が予め定めた関係を満たす場合には、前記頭部装着型表示装置に固有の情報と、前記操作入力装置に固有の情報とを関連付けて、メモリ内で管理する管理手段と
を備えることを特徴とする。
本発明の構成によれば、HMDと操作入力装置との対応付けをより簡便に行うことができる。
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
[第1の実施形態]
図1は、本実施形態に係るシステムの構成例を示す図である。同図に示したシステムは、二人の観察者に複合現実空間(現実空間と仮想空間との複合空間)を体感させるための構成を有している。しかし詳しくは後述するが、任意の数の観察者に対して複合現実感を体感させるためのシステムを、後述する説明に基づいて構成することは、当業者であれば容易になし得る。
また、詳しくは以下で説明するが、本実施形態に適用可能なシステムの構成は同図に示すものに限定するものではなく、当業者であれば適宜変形例が考えられるであろう。
同図において101はPC(パーソナルコンピュータ)で、一方の観察者(第1の観察者)に対して提示する複合現実空間の画像(複合現実空間画像)を生成し、生成した複合現実空間画像をこのPC101に接続されているHMD111に送出する。
102はPCで、他方の観察者(第2の観察者)に対して提示する複合現実空間画像を生成し、生成した複合現実空間画像をこのPC102に接続されているHMD112に送出する。
それぞれのPC101,102には外部記憶装置としてのメモリ199,198が接続されており、それぞれのPCにおいて必要なプログラムやデータが保存されている。また、新たに情報を記録することもできる。
HMD111には、第1の観察者がこのHMD111を自身の頭部に装着した場合に、第1の観察者の眼前における現実空間の動画像を撮像する為のビデオカメラ113が装着されている。このビデオカメラ113によって撮像された各フレームの画像(現実空間画像)は順次PC101に送出される。
これはHMD112についても同様で、HMD112には、第2の観察者がこのHMD112を自身の頭部に装着した場合に、第2の観察者の眼前における現実空間の動画像を撮像する為のビデオカメラ114が装着されている。このビデオカメラ114によって撮像された各フレームの画像(現実空間画像)は順次PC102に送出される。
ここで、PCとこれに接続されているHMD、ビデオカメラには全て同じ識別情報が割り当てられている。ここではこの識別情報としてPID(Player ID)を用いる。本実施形態では、PC101、HMD111、ビデオカメラ113にはPID=1を割り当て、PC102、HMD112、ビデオカメラ114にはPID=2を割り当てる。
また、HMD111には、ビデオカメラ113の位置姿勢を計測するための位置姿勢センサ120がビデオカメラ113の位置近傍に取り付けられている。位置姿勢センサ120は、例えば、位置姿勢センサ120が磁気センサである場合には、磁気の発信源の位置を原点とし、この原点で互いに直交する3軸をそれぞれx軸、y軸、z軸とする座標系(センサ座標系)における自身の位置姿勢に応じた磁気を検知し、検知した結果を示す信号を後述するコントローラ115に送出する。なお、ビデオカメラ113の位置姿勢を計測できるのであれば、如何なるものを用いても良い。
これはHMD112についても同様で、HMD112には、ビデオカメラ114の位置姿勢を計測するための位置姿勢センサ121がビデオカメラ114の位置近傍に取り付けられている。位置姿勢センサ121は、例えば、位置姿勢センサ121が磁気センサである場合には、センサ座標系における自身の位置姿勢に応じた磁気を検知し、検知した結果を示す信号を後述するコントローラ115に送出する。なお、ビデオカメラ114の位置姿勢を計測できるのであれば、如何なるものを用いても良い。
ここで、それぞれの位置姿勢センサには、計測対象となるビデオカメラに対応する識別情報が割り当てられている。ここではこの識別情報としてSID(Sensor ID)を用いる。本実施形態では、PID=1のビデオカメラ113の位置姿勢を計測する位置姿勢センサ120にはSID=1を割り当て、PID=2のビデオカメラ114の位置姿勢を計測する位置姿勢センサ121にはSID=2を割り当てる。
また同図において、103はPCで、コントローラ115が接続されている。上述の通り、コントローラ115には、位置姿勢センサ120,121が接続されており、コントローラ115は、位置姿勢センサから受けた信号に基づいて位置姿勢を求める処理を行う。即ち、位置姿勢センサ120から信号を受けた場合には、この信号に基づいて、位置姿勢センサ120の位置姿勢を求める。位置姿勢センサ121から信号を受けた場合には、この信号に基づいて、位置姿勢センサ121の位置姿勢を求める。求めた位置姿勢はデータとしてPC103に送出する。PC103は受けたデータを、後述するPC106に送出する。
また、PC103には外部記憶装置としてのメモリ194が接続されており、PC103において必要なプログラムやデータが保存されている。また、新たに情報を記録することもできる。
104、105はPCで、それぞれには操作入力装置116、117が接続されている。ここで、それぞれの操作入力装置116、117には識別情報が割り当てられている。ここではこの識別情報としてDID(Device ID)を用いる。本実施形態では、操作入力装置116のDIDは「1」とし、操作入力装置117のDIDは「2」とする。
図9は、操作入力装置116(117)の外観図である。図9において、906は十字ボタンで、操作対象の仮想物体を奥、手前、右、左に移動させる指示を入力するためのものである。例えば、Xが記された方向に十字ボタン906を押下すると、操作対象の仮想物体を奥側に移動させる指示を入力することができる。902〜905のそれぞれは、各種の指示を入力するためのボタンである。
901はケーブルであり、上記十字キー906やボタン群902〜905を用いて入力した操作指示は信号としてこのケーブル901を介してPC104(105)に送出される。
907は2次元バーコードで、操作入力装置116(117)に対応する識別情報を表すものであり、操作入力装置116(117)上の所定の位置に張り付けられている。この2次元バーコードが示す識別情報をPicID(>0)とする。本実施形態では、このPicIDは、DIDと同じ値を有するものとする。即ち、DID=1の操作入力装置116には、PicID=1を表す2次元バーコード907が張り付けられており、DID=2の操作入力装置117には、PicID=2を表す2次元バーコード907が張り付けられている。
図1に戻って、それぞれのPC104,105には外部記憶装置としてのメモリ197,196が接続されており、それぞれのPCにおいて必要なプログラムやデータが保存されている。また、新たに情報を記録することもできる。
106はPCで、外部からアクセス可能な共有メモリ107を有する。共有メモリ107には、後述する各種の情報が格納されており、他のPCはこの共有メモリ107に対してアクセスすることで、共有メモリ107に格納されている情報を読み取ったり、更新したりすることができる。PC106は、このような共有メモリ107に対するアクセス制御を行う。
160は、LANなどのネットワークであり、上記各PCはこのネットワークに接続されている。従って、上記各PCはこのネットワーク160を介して互いにデータ通信を行うことができる。
以上説明した各装置によって本実施形態に係るシステムは構成されているが、上述の通り、本システムは、二人の観察者に対して複合現実感を提供するものである。しかし、例え、N(N≧1)人の観察者に対して複合現実感を提供する場合であったとしても、同図点線で示した装置群(セット)181をNセットネットワーク160に接続し、それぞれのセットにおける位置姿勢センサをコントローラ115に接続すればよい。
また、同図のシステムでは、それぞれの目的に応じてPCを設けたが、1台のPCにより多くの処理を割り当てることができるのであれば、より少ないPCでもってシステムを構成することができる。
即ち、上述の通り、システムの構成は、当業者であれば、適宜変形例を考えることができる。
図10は、上記各PCに適用可能なコンピュータのハードウェア構成例を示す図である。
CPU1701は、RAM1702やROM1703に格納されているプログラムやデータを用いて、本コンピュータを適用したPCが行う各種の処理を実行する。
RAM1702には、外部記憶装置1706(本コンピュータを適用したPCに接続されており、図1に示したメモリに相当)からロードされたプログラムやデータ、I/F1707やNIC1708を介して外部から受信したプログラムやデータを一時的に記憶するためのエリアや、CPU1701が各種の処理を実行する際に用いるワークエリアなど、各種のエリアを適宜提供することができる。
ROM1703は、本コンピュータを適用したPCの設定データやブートプログラムなどを格納する。
操作部1704は、キーボードやマウスなどにより構成されており、本コンピュータの操作者が操作することで、各種の指示をCPU1701に対して入力することができる。
表示部1705は、CRTや液晶画面などにより構成されており、CPU1701による処理結果を画像や文字などでもって表示することができる。
外部記憶装置1706は、ハードディスクドライブ装置に代表される大容量情報記憶装置であり、ここにはOS(オペレーティングシステム)や、本コンピュータを適用したPCが保持するものとして説明する各種のプログラムやデータが保存されている。そしてこれらのプログラムやデータはCPU1701による制御に従って適宜RAM1702にロードされる。そしてCPU1701はこのロードされたプログラムやデータを用いて処理を実行する。
I/F1707は、本コンピュータを適用したPCに接続されているものとして説明した各種の外部機器を接続するためのものであり、本コンピュータを適用したPCは、このI/F1707を介して各種の外部機器とのデータ通信を行うことになる。
NIC1708は、本コンピュータを上記ネットワーク160に接続するためのものであり、本コンピュータはこのNIC1708を介して他のPCとのデータ通信を行うことになる。
1709は上述の各部を繋ぐバスである。
なお、上記各PCに適用可能なコンピュータのハードウェア構成については各種の変形例が考えられ、例えば、上記構成に画像処理専用のハードウェアを設け、画像処理全般をこのハードウェアに任せるようにしても良い。
図2は、本システムにおけるPC101、PC102が1フレーム分の複合現実空間画像を生成し、出力する処理のフローチャートである。なお、同図のフローチャートに従った処理をPC101(102)のCPU1701に実行させるためのプログラムやデータは、PC101(102)の外部記憶装置1706に保存されている。CPU1701はこのプログラムやデータをRAM1702にロードし、このロードしたプログラムやデータを用いて処理を実行する。これにより、PC101(102)は、以下説明する各処理を実行する。
なお、以下では、PID=PのPCが行う処理について説明する。即ち、以下説明する処理は、P=1とすればPC101が行う処理であり、P=2とすればPC102が行う処理となる。
先ず、ステップS201では、PID=Pのビデオカメラ(P=1の場合にはビデオカメラ113、P=2の場合にはビデオカメラ114)により撮像された現実空間画像をRAM1702に取得する。次にステップS202では、共有メモリ107に対してアクセスし、PID=Pのビデオカメラの位置姿勢(PID=Pの位置姿勢センサ(P=1の場合には位置姿勢センサ120、P=2の場合には位置姿勢センサ121)が計測したビデオカメラの位置姿勢)を共有メモリ107から取得する。
図4は、共有メモリ107に格納されている、それぞれのビデオカメラ113,114の位置姿勢を管理するテーブルの構成例を示す図である。同図のテーブルには、各SIDに対応する位置姿勢センサが計測した位置(x、y、z)と姿勢(Roll,Pitch,Yaw)が管理されている。同図のテーブルは、各SIDに対応する位置姿勢センサが計測した計測結果に基づいてコントローラ115が求めた位置姿勢情報をPC103がコントローラ115から受け、そしてPC103が各SIDに対応する位置姿勢情報を、対応するSIDと共に共有メモリ107に対して書き込むことで生成されるものである。
本実施形態では、位置姿勢センサのSIDは、この位置姿勢センサが計測対象とするビデオカメラのPIDと同じ値であるので、ステップS202ではCPU1701は、自身に割り当てられているPIDを外部記憶装置1706から取得し、取得したPIDと同じ値を有するSIDに対応する位置姿勢を共有メモリ107内に格納されている上記テーブルから取得する。
次にステップS203においてCPU1701は、ステップS201で取得した画像中に上記2次元バーコードが位置しているか否かをチェックする。画像中におけるバーコードの検出技術については周知の技術であるので、これについての説明は省略する。
このチェックの結果、2次元バーコード907が位置していた場合には、この2次元バーコード907を読み取ることで、この2次元バーコード907が示すPicIDを取得し、RAM1702に一時的に記憶する。そして処理をステップS204に進める。
ステップS204では、共有メモリ107にアクセスし、共有メモリ107に保持されている「DIDとPIDとの対応関係を示すテーブル」を参照する。図8は、各種の状態におけるこのテーブルの構成例を示す図である。
そして、このテーブルにおいて、ステップS203で取得したPicIDと同じ値が記録されているDIDの欄に、所定の値(例えば「−1」)を書き込む。例えばPID=Nに対応するDIDの値がこの所定の値である場合には、「PID=Nの機器に対応する操作入力装置は存在しない」ことになる。
そしてステップS204における処理の後、ステップS205では、ステップS204で参照したテーブルにおいてPID=Pに対応するDIDの欄に、ステップS203で取得したPicIDを記録することで、テーブルを更新する。そして処理をステップS206に進める。
ここで、「DIDとPIDとの対応関係を示すテーブル」について、図8を用いて説明する。図8(a)は、初期状態におけるテーブルの構成例を示しており、同図に示す如く、PID=1に対応するDIDの値として「−1」、PID=2に対応するDIDの値として「−1」が格納されている。即ち、同図のテーブルは、PID=1、PID=2の何れの機器についても、対応する操作入力装置は存在しないことを示している。
図8(b)は、PID=1にはDID=1、PID=2にはDID=2が対応付けられているテーブルの構成例を示す図である。同図に示す如く、PID=1にはDID=1、PID=2にはDID=2が対応付けられているので、このテーブルは、PID=1の機器にはDID=1の操作入力装置116が対応付けられており、PID=2の機器にはDID=2の操作入力装置117が対応付けられていることを示している。即ち、このテーブルは、PID=1のビデオカメラ113がDID=1の操作入力装置116上の2次元バーコード907を撮像し、PID=2のビデオカメラ117がDID=2の操作入力装置117上の2次元バーコード907を撮像することにより生成されたものである。
図8(c)は、図8(b)におけるテーブル状態の後に、PID=1のビデオカメラ113がDID=2の操作入力装置117上の2次元バーコード907を撮像したことにより生成されるテーブルの構成例を示す図である。図8(b)におけるテーブル状態の後に、PID=1のビデオカメラ113がDID=2の操作入力装置117上の2次元バーコード907を撮像すると、この2次元バーコード907のPicIDが「2」であるので、上記ステップS204では、DID=2となっている欄に「−1」を記録する。そして、上記ステップS205では、ビデオカメラ113のPID=1に対応するDIDの欄にこの2次元バーコード907のPicIDである「2」を記録する。
図2に戻って、上記ステップS203におけるチェック処理の結果、2次元バーコード907が位置していない場合には、処理をステップS206に進める。
ステップS206では、共有メモリ107にアクセスし、共有メモリ107に格納されているシーン情報を読み出す。シーン情報とは、仮想空間を規定するデータ群であり、例えば、仮想空間を構成する各仮想物体の描画データ(仮想物体がポリゴンでもって構成されている場合には、各ポリゴンの色データや法線データ、ポリゴンを構成する各頂点の位置データ、テクスチャデータ等)、各仮想物体の配置位置姿勢データ、仮想空間中に配置する光源に係るデータ等により構成されている。このシーン情報は、後述する各処理により、適宜更新される。
次にステップS208では、上記ステップS201で取得した現実空間画像をRAM1702中の所定のエリアに描画する。次にステップS209では、上記ステップS206で取得したシーン情報に基づく仮想空間を、上記ステップS202で取得した位置姿勢を有する視点から見た画像(仮想空間画像)を生成し、ステップS208で現実空間画像を描画した所定のエリア上に描画する。
これにより、この所定のエリアには、現実空間画像上に仮想空間画像が重畳された複合現実空間画像が生成されることになるので、ステップS210においてCPU1701は、この複合現実空間画像をI/F1707を介して、PID=PのHMD(P=1の場合にはHMD111、P=2の場合にはHMD112)に出力する。
次にステップS211では、本処理を終了する条件が満たされたか、若しくはその指示が操作部1704を介して入力された否かをチェックする。このチェックの結果、本処理を終了する条件が満たされたか、若しくはその指示が操作部1704を介して入力された場合には本処理を終了する。一方、本処理を終了する条件は満たされていないし、その指示が操作部1704を介して入力されていない場合には処理をステップS201に戻し、次のフレームの複合現実空間画像を生成すべく処理を行う。なお、HMDが左右独立(立体視可能)である場合は、上記の処理を左右の目(画面)毎に繰り返して行えばよい。
次に、PC103が、コントローラ115から受けた位置姿勢のデータを共有メモリ107に登録する処理について、同処理のフローチャートを示す図3を用いて以下説明する。なお、同図のフローチャートに従った処理をPC103のCPU1701に実行させるためのプログラムやデータは、PC103の外部記憶装置1706に保存されている。CPU1701はこのプログラムやデータをRAM1702にロードし、このロードしたプログラムやデータを用いて処理を実行する。これにより、PC103は、以下説明する各処理を実行する。
位置姿勢センサ120、121はそれぞれ、コントローラ115が有する複数のコネクタのうち何れかのコネクタに接続されている。ここで、どの位置姿勢センサをそのコネクタに接続するのかを予め決定しおけば、コントローラ115は、得られた位置姿勢データがどの位置姿勢センサのものであるのかを特定することができる。換言すれば、コントローラ115は、所望するSIDに対応するセンサの位置姿勢データを取得することができる。
従ってステップS301では、CPU1701は、コントローラ115から、すべてのSIDに対応する位置姿勢データを取得し、SIDと取得した位置姿勢データをRAM1702に一時的に記憶する。
次にステップS302では、共有メモリ107に登録されている図4に示すテーブルにおいて、SIDとステップS301で取得した位置姿勢データとを、このテーブルに登録する。例えば、図4において、SID=1の位置データとしては(x1,y1,z1)が登録されており、姿勢データとしては(Roll1,Pitch1,Yaw1)が登録されている。同様に、SID=2の位置データとしては(x2,y2,z2)が登録されており、姿勢データとしては(Roll2,Pitch2,Yaw2)が登録されている。
なお、図4は、2つのセンサの位置姿勢データが登録された状態を示しているが、N個のセンサから位置姿勢データがコントローラ115、PC103を介して共有メモリ107に送出された場合には、N行のテーブルとなり、各行には、対応するSIDの位置姿勢データが登録されることになる。
図3に戻って次に、ステップS303では、本処理を終了する条件が満たされたか、若しくはその指示が操作部1704を介して入力された否かをチェックする。このチェックの結果、本処理を終了する条件が満たされたか、若しくはその指示が操作部1704を介して入力された場合には本処理を終了する。一方、本処理を終了する条件は満たされていないし、その指示が操作部1704を介して入力されていない場合には処理をステップS304に進める。
ステップS304では、適当な時間(例えばビデオ映像の1フレーム分に当たる1/30秒など)だけ処理を待機し、その後、処理をステップS301に進める。
次に、PC104,105が、操作入力装置116、117から操作入力を受け付け、その結果を共有メモリ107に登録する一連の処理について、同処理のフローチャートを示す図5を用いて、以下説明する。なお、同図のフローチャートに従った処理をPC104(105)のCPU1701に実行させるためのプログラムやデータは、PC104(105)の外部記憶装置1706に保存されている。CPU1701はこのプログラムやデータをRAM1702にロードし、このロードしたプログラムやデータを用いて処理を実行する。これにより、PC104(105)は、以下説明する各処理を実行する。
なお、以下では、DID=Dの操作入力装置に接続されたPCが行う処理について説明する。即ち、以下説明する処理は、D=1とすれば操作入力装置116に接続されたPC104が行う処理であり、D=2とすれば操作入力装置117に接続されたPC105が行う処理となる。
先ず、ステップS501では、DID=Dの操作入力装置から送出された操作情報を受け付ける。以下では説明を簡単にするために、Xが記された方向に十字ボタン906を押下する操作がなされたか否かを示す操作情報が操作入力装置から送出されるものとする。CPU1701は、操作情報を受けると、これをRAM1702に一時的に記憶する。
そしてステップS502では、共有メモリ107に保持されている、図6に示すテーブルにおいて、DID=Dに対応する操作情報の項目に、Xが記された方向に十字ボタン906が押下されている場合には「1」、押下されていない場合には「0」を記録する。図6は、DID=1,2に対応する操作入力装置において、Xが記された方向に十字ボタン906が押下されているか否かを管理するためのテーブルの構成例を示す図である。
なお、図6は、2つの操作入力装置の操作情報が登録された状態を示しているが、N個の操作入力装置の操作情報を登録する場合には、このテーブルはN行のテーブルとなり、各行には、対応するDIDの操作情報が登録されることになる。
また更に、複数の操作に対する操作情報を管理する場合には、それぞれの操作毎にこのテーブルを設ければよい。
また、1台のPCに複数の操作入力装置が接続されている場合には、上記ステップS501,S502における処理をそれぞれの操作入力装置について行えばよい。
図5に戻って次に、ステップS503では、本処理を終了する条件が満たされたか、若しくはその指示が操作部1704を介して入力された否かをチェックする。このチェックの結果、本処理を終了する条件が満たされたか、若しくはその指示が操作部1704を介して入力された場合には本処理を終了する。一方、本処理を終了する条件は満たされていないし、その指示が操作部1704を介して入力されていない場合には処理をステップS504に進める。
ステップS504では、適当な時間(例えばビデオ映像の1フレーム分に当たる1/30秒など)だけ処理を待機し、その後、処理をステップS501に進める。
次に、PC106が、共有メモリ107に登録されている各種の情報を管理する一連の処理について、同処理のフローチャートを示す図7を用いて、以下説明する。なお、同図のフローチャートに従った処理をPC106のCPU1701に実行させるためのプログラムやデータは、PC106の外部記憶装置1706に保存されている。CPU1701はこのプログラムやデータをRAM1702にロードし、このロードしたプログラムやデータを用いて処理を実行する。これにより、PC106は、以下説明する各処理を実行する。
先ず、ステップS701では、変数kを1に初期化する。次にステップS702では、共有メモリ107内に管理されている図6に示す上記テーブルにおいて、DID=kに対応する操作情報を参照し、操作がなされているか否かをチェックする。即ち、本実施形態の場合、操作情報=1であるか否かをチェックする。このチェックの結果、操作情報=1である場合、即ち、DID=kの操作入力装置においてXが記された方向に十字ボタン906が押下されている場合には処理をステップS703に進め、操作情報=0である場合には処理をステップS707に進める。
ステップS703では、図8に示す上記テーブルを参照し、DID=kに対応するPIDが所定の値(本実施形態では「−1」)であるのかをチェックし、所定の値である場合、即ち、DID=kの操作入力装置に対応する機器が存在しない場合には処理をステップS707に進める。一方、DID=kに対応するPIDが所定の値ではない場合、即ち、DID=kの操作入力装置に対応する機器が存在する場合には処理をステップS704に進める。
ステップS704では、図8のテーブルでDID=kに対応するPIDの値をmとした場合に、図4のテーブルから、PID=mに対応する位置姿勢を取得する。そしてステップS705では操作対象の仮想物体の移動量、移動方向を算出する。本実施形態では、ステップS704で取得した姿勢を方向ベクトルとする方向に、予め定めた量だけ操作対象の仮想物体を移動させるものとするが、移動に関してはこれに限定するものではない。
次に、ステップS706では、共有メモリ107に格納されているシーン情報を、操作対象の仮想物体の位置姿勢をステップS705で算出した移動方向、移動量のぶんだけ変化させたシーン情報に更新する処理を行う。
次にステップS707では、変数kが、操作入力装置の総数MAX(本実施形態の場合、MAX=2)と同じであるか、即ち、全ての操作入力装置についてステップS702からステップS706の処理を行ったか否かをチェックする。そしてk=MAXである場合には処理をステップS709に進める。一方、k≠MAXである場合には、処理をステップS708に進める。
ステップS708では、k=k+1を計算することで、変数kの値を1つインクリメントする。そして処理をステップS702に進め、以降の処理を行う。
一方、ステップS709では、本処理を終了する条件が満たされたか、若しくはその指示が操作部1704を介して入力された否かをチェックする。このチェックの結果、本処理を終了する条件が満たされたか、若しくはその指示が操作部1704を介して入力された場合には本処理を終了する。一方、本処理を終了する条件は満たされていないし、その指示が操作部1704を介して入力されていない場合には処理をステップS710に進める。
ステップS710では、適当な時間(例えばビデオ映像の1フレーム分に当たる1/30秒など)だけ処理を待機し、その後、処理をステップS701に進める。
以上の説明により、本実施形態によれば、操作入力装置とHMDとの対応関係を設定するためには、このHMDを頭部に装着したユーザは、このHMDに対応させたい操作入力装置上における2次元バーコードを観察するだけでよいので、従来よりもこの対応関係をより簡便に設定することができる。
これにより、ユーザは、自身に対応付けられた操作入力装置を用いて仮想物体に対する操作を行うことができるので、自身の意図する操作を行うことができる。また、複数人のユーザが操作入力装置を持ち替えて使用する場合であっても、操作入力装置を手に持ったユーザは、この操作入力装置上における2次元バーコードを観察するだけで、この操作入力装置を用いて、自身の意図する操作を入力することができる。これにより、複数人のそれぞれについて操作入力装置を設けなくても良い、という効果を奏することができる。
また、操作入力装置とHMDとの対応関係を設定した後、このHMDに搭載された表示装置のパラメータをこの操作入力装置を用いて操作することができるようにしても良い。このパラメータには、例えば、表示装置における表示の明るさや、色味などがある。
[第2の実施形態]
図13は、本実施形態に係るシステムの構成を示す図である。同図に示した構成は、図1に示した構成において、HMD101,102を光学シースルー方式のものにし、ビデオカメラ113,114を省いている。従って位置姿勢センサ120、121はそれぞれ、HMD101,102の位置姿勢を計測している。更に、操作入力装置116、117にはそれぞれ、位置姿勢センサ122,123を取り付けている。
以下では、第1の実施形態と異なる点について説明する。
位置姿勢センサ122は操作入力装置116の位置姿勢を計測し、計測結果を信号としてコントローラ115に送出する。コントローラ115は受けた信号に基づいて位置姿勢センサ122の位置姿勢を求め、求めたデータをPC103に送出する。PC103は、この受けたデータをPC106に送出する。
位置姿勢センサ123は操作入力装置117の位置姿勢を計測し、計測結果を信号としてコントローラ115に送出する。コントローラ115は受けた信号に基づいて位置姿勢センサ123の位置姿勢を求め、求めたデータをPC103に送出する。PC103は、この受けたデータをPC106に送出する。
即ち、位置姿勢センサ122,123により計測された結果は、位置姿勢センサ120、121により計測された結果と同様にして処理され、コントローラ115、PC103を介してPC106に送出される。PC106は、受けた位置姿勢データを第1の実施形態と同様にして、共有メモリ107に格納する。
図14は、本システムにおけるPC101、PC102が1フレーム分の複合現実空間画像を生成し、出力する処理のフローチャートである。なお、同図のフローチャートに従った処理をPC101(102)のCPU1701に実行させるためのプログラムやデータは、PC101(102)の外部記憶装置1706に保存されている。CPU1701はこのプログラムやデータをRAM1702にロードし、このロードしたプログラムやデータを用いて処理を実行する。これにより、PC101(102)は、以下説明する各処理を実行する。
なお、以下では、PID=PのPCが行う処理について説明する。即ち、以下説明する処理は、P=1とすればPC101が行う処理であり、P=2とすればPC102が行う処理となる。
先ずステップS1401では、共有メモリ107に管理されている図15に示すテーブルを参照する。図15は、共有メモリ107に管理されている、それぞれの位置姿勢センサ120、121,122,123の位置姿勢(HMD101,102の位置姿勢、操作入力装置116、117の位置姿勢)が登録されたテーブルの構成例を示す図である。
同図においてSID=1に対応する(x、y、z)の欄には、SID=1の位置姿勢センサ120が計測したHMD101の位置が登録されており、(Roll,Pitch,Yaw)の欄には、SID=1の位置姿勢センサ120が計測したHMD101の姿勢が登録されている。
また、SID=2に対応する(x、y、z)の欄には、SID=2の位置姿勢センサ121が計測したHMD102の位置が登録されており、(Roll,Pitch,Yaw)の欄には、SID=2の位置姿勢センサ121が計測したHMD102の姿勢が登録されている。
また、SID=3に対応する(x、y、z)の欄には、SID=3の位置姿勢センサ122が計測した操作入力装置116の位置が登録されており、(Roll,Pitch,Yaw)の欄には、SID=3の位置姿勢センサ122が計測した操作入力装置116の姿勢が登録されている。
また、SID=4に対応する(x、y、z)の欄には、SID=4の位置姿勢センサ123が計測した操作入力装置117の位置が登録されており、(Roll,Pitch,Yaw)の欄には、SID=4の位置姿勢センサ123が計測した操作入力装置117の姿勢が登録されている。
このようなテーブルは、各SIDに対応する位置姿勢センサが計測した計測結果に基づいてコントローラ115が求めた位置姿勢情報をPC103がコントローラ115から受け、そしてPC103が各SIDに対応する位置姿勢情報を、対応するSIDと共に共有メモリ107に対して書き込むことで生成されるものである。
ステップS1401では、CPU1701は、自身に割り当てられているPIDを外部記憶装置1706から取得し、取得したPIDと同じ値を有するSIDに対応する位置姿勢を共有メモリ107内に格納されている上記テーブルから取得する。
ステップS1402では上記ステップS206同様の処理を行う。即ち、共有メモリ107にアクセスし、共有メモリ107に格納されているシーン情報を読み出す。
ステップS1404では、ステップS1402で取得したシーン情報に基づく仮想空間を、ステップS1401で取得した位置姿勢を有する視点から見た画像(仮想空間画像)を生成し、RAM1702中の所定のエリア上に描画する。
そしてステップS1405では、CPU1701は、この仮想空間画像をI/F1707を介して、PID=PのHMD(P=1の場合にはHMD111、P=2の場合にはHMD112)に出力する。
次にステップS1406では、本処理を終了する条件が満たされたか、若しくはその指示が操作部1704を介して入力された否かをチェックする。このチェックの結果、本処理を終了する条件が満たされたか、若しくはその指示が操作部1704を介して入力された場合には本処理を終了する。一方、本処理を終了する条件は満たされていないし、その指示が操作部1704を介して入力されていない場合には処理をステップS1401に戻し、次のフレームの仮想空間画像を生成すべく処理を行う。なお、HMDが左右独立(立体視可能)である場合は、上記の処理を左右の目(画面)毎に繰り返して行えばよい。
次に、PC106が、共有メモリ107に登録されている各種の情報を管理する一連の処理について、同処理のフローチャートを示す図16を用いて、以下説明する。なお、同図のフローチャートに従った処理をPC106のCPU1701に実行させるためのプログラムやデータは、PC106の外部記憶装置1706に保存されている。CPU1701はこのプログラムやデータをRAM1702にロードし、このロードしたプログラムやデータを用いて処理を実行する。これにより、PC106は、以下説明する各処理を実行する。
先ず、ステップS1601では、変数kを1に初期化する。次にステップS1602では、共有メモリ107内に管理されている図6に示す上記テーブルにおいて、DID=kに対応する操作情報を参照し、操作がなされているか否かをチェックする。この処理は上記ステップS702と同様にして行う。
そして、DID=kの操作入力装置においてXが記された方向に十字ボタン906が押下されている場合には処理をステップS1603に進め、操作情報=0である場合には処理をステップS1606に進める。
ステップS1603では先ず、図15に示す上記テーブルを参照し、DID=kの操作入力装置に取り付けられている位置姿勢センサ(本実施形態の場合、k=1の場合には、DID=1の操作入力装置116に取り付けられているSID=3の位置姿勢センサ122、k=2の場合には、DID=2の操作入力装置117に取り付けられているSID=4の位置姿勢センサ123)の位置姿勢を図15のテーブルから取得する。そして、このテーブルに登録されている全てのHMDの位置(図15の場合、SID=1に対応する位置姿勢、SID=2に対応する位置姿勢)のうち、DID=kの操作入力装置に取り付けられている位置姿勢センサの位置に最も近い位置のHMDを特定する。
なお、本ステップにおける処理は以下のように適宜変形例が考えられる。例えば、このテーブルに登録されている全てのHMDの姿勢のうち、DID=kの操作入力装置に取り付けられている位置姿勢センサの姿勢に最も近い姿勢を有するHMDを特定しても良い。また、DID=kの操作入力装置に取り付けられている位置姿勢センサの位置から所定距離以内にどのHMDも位置していない場合には、特定するHMDが存在しないと判断しても良いし、あらかじめ定めておいたHMDを規定値として特定しても良い。
このように、DID=kの操作入力装置に取り付けられている位置姿勢センサの位置姿勢に基づいてHMDが1つ特定できれば処理をステップS1604に進めるし、特定できなかった場合には、処理をステップS1606に進める。
ステップS1604では、ステップS1603で特定したHMDのSIDに対応する位置姿勢を図15のテーブルから取得し、操作対象の仮想物体の移動量、移動方向を算出する。本実施形態では、ステップS1603で特定したHMDのSIDに対応する姿勢を方向ベクトルとする方向に、予め定めた量だけ操作対象の仮想物体を移動させるものとするが、移動に関してはこれに限定するものではない。
次に、ステップS1605では、共有メモリ107に格納されているシーン情報を、操作対象の仮想物体の位置姿勢をステップS1604で算出した移動方向、移動量のぶんだけ変化させたシーン情報に更新する処理を行う。
次にステップS1606では、変数kが、操作入力装置の総数MAX(本実施形態の場合、MAX=2)と同じであるか、即ち、全ての操作入力装置についてステップS1602からステップS1605の処理を行ったか否かをチェックする。そしてk=MAXである場合には処理をステップS1608に進める。一方、k≠MAXである場合には、処理をステップS1607に進める。
ステップS1607では、k=k+1を計算することで、変数kの値を1つインクリメントする。そして処理をステップS1602に進め、以降の処理を行う。
一方、ステップS1608では、本処理を終了する条件が満たされたか、若しくはその指示が操作部1704を介して入力された否かをチェックする。このチェックの結果、本処理を終了する条件が満たされたか、若しくはその指示が操作部1704を介して入力された場合には本処理を終了する。一方、本処理を終了する条件は満たされていないし、その指示が操作部1704を介して入力されていない場合には処理をステップS1609に進める。
ステップS1609では、適当な時間(例えばビデオ映像の1フレーム分に当たる1/30秒など)だけ処理を待機し、その後、処理をステップS1601に進める。
なお、上記説明では、操作入力装置に対応するHMDが特定できた場合に、それぞれの識別情報をメモリに登録するという点について説明は行わなかったが、この登録処理は第1の実施形態と同様に行うようにしても良い。
また、操作入力装置に対応するHMDが特定できなかった場合には第1の実施形態と同様に、操作入力装置の識別情報と所定の値とを関連付けてメモリに登録するようにしても良い。
<変形例>
位置を利用して操作入力装置とHMDとの対応付けを管理する方法としては、操作入力装置の位置姿勢を固定しておいて、その位置姿勢の値を事前に記録しておき、それに最も近い位置姿勢にあるHMDを対応付けるという方法も考えられる。この場合は操作入力装置に位置姿勢センサを取り付ける必要がないという利点がある。この場合の処理としては、操作入力装置の位置姿勢は位置姿勢テーブル中で決まった値にしておき、これは更新しないようにすればよい。
上記第1,2の実施形態においては、ユーザが操作入力装置の2次元バーコードを観察した時や、操作入力装置に近寄った時に、動的に対応付けが変更される処理になっている。もし、対応付けを変更したくないような要求がある場合は、対応付けの変更を一時的に禁止し、対応付けを固定する処理を設けることが考えられる。
例えば、共有メモリ107中に対応付け変更禁止のためのフラグを設けておき、対応テーブルを変更する処理を行う前にはこのフラグを確認して対応テーブルの変更を行うかどうか判定するようにすればよい。
[その他の実施形態]
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
本発明の第1の実施形態に係るシステムの構成例を示す図である。 システムにおけるPC101、PC102が1フレーム分の複合現実空間画像を生成し、出力する処理のフローチャートである。 PC103が、コントローラ115から受けた位置姿勢のデータを共有メモリ107に登録する処理のフローチャートである。 共有メモリ107に格納されている、それぞれのビデオカメラ113,114の位置姿勢を管理するテーブルの構成例を示す図である。 PC104,105が、操作入力装置116、117から操作入力を受け付け、その結果を共有メモリ107に登録する一連の処理のフローチャートである。 DID=1,2に対応する操作入力装置において、Xが記された方向に十字ボタン906が押下されているか否かを管理するためのテーブルの構成例を示す図である。 PC106が、共有メモリ107に登録されている各種の情報を管理する一連の処理のフローチャートである。 各種の状態におけるこのテーブルの構成例を示す図である。 操作入力装置116(117)の外観図である。 各PCに適用可能なコンピュータのハードウェア構成例を示す図である。 二人の観察者のそれぞれが複合現実映像を観察している様子を示している図である。 操作入力装置1105、1106に適用可能な操作入力装置の一例を示す図である。 本発明の第2の実施形態に係るシステムの構成を示す図である。 システムにおけるPC101、PC102が1フレーム分の複合現実空間画像を生成し、出力する処理のフローチャートである。 共有メモリ107に管理されている、それぞれの位置姿勢センサ120、121,122,123の位置姿勢が登録されたテーブルの構成例を示す図である。 PC106が、共有メモリ107に登録されている各種の情報を管理する一連の処理のフローチャートである。

Claims (11)

  1. 現実空間を撮像する撮像装置から、当該画像を取得する取得工程と、
    前記取得工程で取得した画像中に、仮想物体に対する操作入力を行うための操作入力装置に固有の情報が含まれている場合には、前記撮像装置に固有の情報と、当該操作入力装置に固有の情報とを関連付けて、メモリ内で管理する管理工程と
    を備えることを特徴とする画像処理方法。
  2. 更に、
    操作入力装置からの操作入力を検知した場合には、当該操作入力装置に固有の情報に関連付けて前記管理工程で管理されている情報が示す撮像装置の位置姿勢に基づいて、当該操作入力の対象となる仮想物体について処理を行う処理工程と、
    前記撮像装置の位置姿勢に応じて見える仮想空間の画像を生成する生成工程と、
    前記取得工程で取得した画像と、前記生成工程で生成した画像との合成画像を生成し、外部に出力する出力工程と
    を備えることを特徴とする請求項1に記載の画像処理方法。
  3. 前記管理工程では、前記取得工程で取得した画像中に、仮想物体に対する操作入力を行うための操作入力装置に固有の情報が含まれていない場合には、前記撮像装置に固有の情報と、予め定めた値とを関連付けて、メモリ内で管理することを特徴とする請求項1に記載の画像処理方法。
  4. 頭部装着型表示装置の位置姿勢を取得する第1の取得工程と、
    仮想物体に対する操作入力を行うための操作入力装置の位置姿勢を取得する第2の取得工程と、
    前記第1の取得工程で取得した位置姿勢と、前記第2の取得工程で取得した位置姿勢と、の関係が予め定めた関係を満たす場合には、前記頭部装着型表示装置に固有の情報と、前記操作入力装置に固有の情報とを関連付けて、メモリ内で管理する管理工程と
    を備えることを特徴とする画像処理方法。
  5. 前記頭部装着型表示装置、前記操作入力装置がそれぞれ複数存在する場合、
    前記管理工程では、
    操作入力装置の姿勢に最も近い姿勢を有する頭部装着型表示装置を特定し、当該特定した頭部装着型表示装置に固有の情報と、当該操作入力装置に固有の情報とを関連付けて前記メモリに管理する処理を、それぞれの操作入力装置について行う
    ことを特徴とする請求項4に記載の画像処理方法。
  6. 前記頭部装着型表示装置と前記操作入力装置のそれぞれが複数存在する場合、
    前記管理工程では、
    操作入力装置の位置に最も近い頭部装着型表示装置を特定し、当該特定した頭部装着型表示装置に固有の情報と、当該操作入力装置に固有の情報とを関連付けて前記メモリに管理する処理を、それぞれの操作入力装置について行う
    ことを特徴とする請求項4に記載の画像処理方法。
  7. 更に、前記管理工程では、
    操作入力装置の位置からある距離以内に頭部装着型表示装置が存在しない場合には、当該操作入力装置に固有の情報と、予め定めた値とを関連付けて前記メモリ内で管理することを特徴とする請求項4に記載の画像処理方法。
  8. 現実空間を撮像する撮像装置から、当該画像を取得する取得手段と、
    前記取得手段が取得した画像中に、仮想物体に対する操作入力を行うための操作入力装置に固有の情報が含まれている場合には、前記撮像装置に固有の情報と、当該操作入力装置に固有の情報とを関連付けて、メモリ内で管理する管理手段と
    を備えることを特徴とする画像処理装置。
  9. 頭部装着型表示装置の位置姿勢を取得する第1の取得手段と、
    仮想物体に対する操作入力を行うための操作入力装置の位置姿勢を取得する第2の取得手段と、
    前記第1の取得手段が取得した位置姿勢と、前記第2の取得手段が取得した位置姿勢と、の関係が予め定めた関係を満たす場合には、前記頭部装着型表示装置に固有の情報と、前記操作入力装置に固有の情報とを関連付けて、メモリ内で管理する管理手段と
    を備えることを特徴とする画像処理装置。
  10. コンピュータに請求項1乃至7の何れか1項に記載の画像処理方法を実行させるためのプログラム。
  11. 請求項10に記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
JP2006178582A 2006-06-28 2006-06-28 画像処理装置、画像処理方法 Expired - Fee Related JP4757115B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2006178582A JP4757115B2 (ja) 2006-06-28 2006-06-28 画像処理装置、画像処理方法
EP07109691A EP1873617A3 (en) 2006-06-28 2007-06-06 Image processing apparatus and image processing method
US11/764,377 US8207909B2 (en) 2006-06-28 2007-06-18 Image processing apparatus and image processing method
CN200710127090A CN100578426C (zh) 2006-06-28 2007-06-28 管理信息的设备和方法
US13/485,080 US8633871B2 (en) 2006-06-28 2012-05-31 Image processing apparatus and image processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006178582A JP4757115B2 (ja) 2006-06-28 2006-06-28 画像処理装置、画像処理方法

Publications (3)

Publication Number Publication Date
JP2008009646A true JP2008009646A (ja) 2008-01-17
JP2008009646A5 JP2008009646A5 (ja) 2009-07-23
JP4757115B2 JP4757115B2 (ja) 2011-08-24

Family

ID=38564517

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006178582A Expired - Fee Related JP4757115B2 (ja) 2006-06-28 2006-06-28 画像処理装置、画像処理方法

Country Status (4)

Country Link
US (2) US8207909B2 (ja)
EP (1) EP1873617A3 (ja)
JP (1) JP4757115B2 (ja)
CN (1) CN100578426C (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8494212B2 (en) 2008-09-11 2013-07-23 Brother Kogyo Kabushiki Kaisha Head mounted display
JP2015135573A (ja) * 2014-01-16 2015-07-27 キヤノン株式会社 情報処理装置および情報処理方法
JP2018067060A (ja) * 2016-10-17 2018-04-26 俊八 生田 仮想3次元模型を対象とした立体複合現実感提供プログラム
JP2018101425A (ja) * 2018-01-09 2018-06-28 株式会社東芝 電子機器、表示方法及びシステム
JP2019522832A (ja) * 2016-04-26 2019-08-15 マジック リープ, インコーポレイテッドMagic Leap,Inc. 拡張現実システムを用いた電磁追跡
JP2019161524A (ja) * 2018-03-15 2019-09-19 Kddi株式会社 ウェアラブル端末、視聴管理システム、コンテンツ注文システム及び視聴管理方法
US11244485B2 (en) 2016-01-19 2022-02-08 Magic Leap, Inc. Augmented reality systems and methods utilizing reflections

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008021857A2 (en) * 2006-08-08 2008-02-21 Texas Instruments Incorporated Method and system for multi-channel viewing applications
US7808449B2 (en) 2006-12-29 2010-10-05 Texas Instruments Incorporated Method and system for multi-channel viewing applications
JP5067850B2 (ja) * 2007-08-02 2012-11-07 キヤノン株式会社 システム、頭部装着型表示装置、その制御方法
CN101788755B (zh) * 2010-02-28 2011-12-21 明基电通有限公司 可摄影电子装置以及其操作方法
JP5656514B2 (ja) * 2010-08-27 2015-01-21 キヤノン株式会社 情報処理装置及び方法
US10579109B2 (en) * 2014-09-19 2020-03-03 Sony Corporation Control device and control method
JP6298432B2 (ja) * 2015-10-19 2018-03-20 株式会社コロプラ 画像生成装置、画像生成方法、及び画像生成プログラム
JP6810093B2 (ja) * 2018-04-25 2021-01-06 ファナック株式会社 ロボットのシミュレーション装置
US12051170B2 (en) * 2022-09-23 2024-07-30 Apple Inc. Visual techniques for 3D content

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000102036A (ja) * 1998-09-22 2000-04-07 Mr System Kenkyusho:Kk 複合現実感提示システム、複合現実感提示方法、マン・マシーンインタフェース装置、およびマン・マシーンインタフェース方法
JP2005165776A (ja) * 2003-12-03 2005-06-23 Canon Inc 画像処理方法、画像処理装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742263A (en) * 1995-12-18 1998-04-21 Telxon Corporation Head tracking system for a head mounted display system
JP3413127B2 (ja) 1999-06-11 2003-06-03 キヤノン株式会社 複合現実感装置及び複合現実感提示方法
US6972734B1 (en) 1999-06-11 2005-12-06 Canon Kabushiki Kaisha Mixed reality apparatus and mixed reality presentation method
JP2000350865A (ja) * 1999-06-11 2000-12-19 Mr System Kenkyusho:Kk 複合現実空間のゲーム装置、その画像処理方法およびプログラム記憶媒体
JP3363861B2 (ja) 2000-01-13 2003-01-08 キヤノン株式会社 複合現実感提示装置及び複合現実感提示方法並びに記憶媒体
GB2376397A (en) * 2001-06-04 2002-12-11 Hewlett Packard Co Virtual or augmented reality
JP2004127024A (ja) * 2002-10-03 2004-04-22 Canon Inc 複合現実感システム用コンテンツ保護装置及び保護方法
US20050285878A1 (en) * 2004-05-28 2005-12-29 Siddharth Singh Mobile platform
US7295220B2 (en) * 2004-05-28 2007-11-13 National University Of Singapore Interactive system and method
US8547401B2 (en) * 2004-08-19 2013-10-01 Sony Computer Entertainment Inc. Portable augmented reality device and method
US7991220B2 (en) * 2004-09-01 2011-08-02 Sony Computer Entertainment Inc. Augmented reality game system using identification information to display a virtual object in association with a position of a real object
JP4133976B2 (ja) * 2004-09-01 2008-08-13 株式会社ソニー・コンピュータエンタテインメント 画像処理装置、ゲーム装置および画像処理方法
JP4500632B2 (ja) * 2004-09-07 2010-07-14 キヤノン株式会社 仮想現実感提示装置および情報処理方法
US7773098B2 (en) * 2005-05-11 2010-08-10 Canon Kabushiki Kaisha Virtual reality presentation apparatus and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000102036A (ja) * 1998-09-22 2000-04-07 Mr System Kenkyusho:Kk 複合現実感提示システム、複合現実感提示方法、マン・マシーンインタフェース装置、およびマン・マシーンインタフェース方法
JP2005165776A (ja) * 2003-12-03 2005-06-23 Canon Inc 画像処理方法、画像処理装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8494212B2 (en) 2008-09-11 2013-07-23 Brother Kogyo Kabushiki Kaisha Head mounted display
JP2015135573A (ja) * 2014-01-16 2015-07-27 キヤノン株式会社 情報処理装置および情報処理方法
US9607439B2 (en) 2014-01-16 2017-03-28 Canon Kabushiki Kaisha Information processing apparatus and information processing method
US11244485B2 (en) 2016-01-19 2022-02-08 Magic Leap, Inc. Augmented reality systems and methods utilizing reflections
JP2019522832A (ja) * 2016-04-26 2019-08-15 マジック リープ, インコーポレイテッドMagic Leap,Inc. 拡張現実システムを用いた電磁追跡
JP7027336B2 (ja) 2016-04-26 2022-03-01 マジック リープ, インコーポレイテッド 拡張現実システムを用いた電磁追跡
US11460698B2 (en) 2016-04-26 2022-10-04 Magic Leap, Inc. Electromagnetic tracking with augmented reality systems
JP2018067060A (ja) * 2016-10-17 2018-04-26 俊八 生田 仮想3次元模型を対象とした立体複合現実感提供プログラム
JP2018101425A (ja) * 2018-01-09 2018-06-28 株式会社東芝 電子機器、表示方法及びシステム
JP2019161524A (ja) * 2018-03-15 2019-09-19 Kddi株式会社 ウェアラブル端末、視聴管理システム、コンテンツ注文システム及び視聴管理方法

Also Published As

Publication number Publication date
US8633871B2 (en) 2014-01-21
CN100578426C (zh) 2010-01-06
JP4757115B2 (ja) 2011-08-24
US20120236179A1 (en) 2012-09-20
CN101097485A (zh) 2008-01-02
US20080106488A1 (en) 2008-05-08
US8207909B2 (en) 2012-06-26
EP1873617A2 (en) 2008-01-02
EP1873617A3 (en) 2013-02-27

Similar Documents

Publication Publication Date Title
JP4757115B2 (ja) 画像処理装置、画像処理方法
KR102517876B1 (ko) 증강 현실 데이터를 레코딩하기 위한 기술
JP4262011B2 (ja) 画像提示方法及び装置
JP4065507B2 (ja) 情報提示装置および情報処理方法
CN103180893B (zh) 用于提供三维用户界面的方法和系统
JP4739002B2 (ja) 画像処理方法、画像処理装置
US7782320B2 (en) Information processing method and information processing apparatus
US20080204453A1 (en) Method and apparatus for generating three-dimensional model information
JP7182976B2 (ja) 情報処理装置、情報処理方法、およびプログラム
US10386633B2 (en) Virtual object display system, and display control method and display control program for the same
JP2006285609A (ja) 画像処理方法、画像処理装置
JP2008146108A (ja) 指標、画像処理装置、画像処理方法
JP2009087161A (ja) 画像処理装置、画像処理方法
JP2005339377A (ja) 画像処理方法、画像処理装置
JP4689344B2 (ja) 情報処理方法、情報処理装置
CN110431601A (zh) 信息处理装置
JP2005251118A (ja) 画像処理方法、画像処理装置
JP2021131490A (ja) 情報処理装置、情報処理方法、プログラム
JP4125085B2 (ja) 画像処理装置、画像処理方法
JP2019040357A (ja) 画像処理装置、画像処理方法、コンピュータプログラム
WO2018173206A1 (ja) 情報処理装置
JP2019040356A (ja) 画像処理装置、画像処理方法、コンピュータプログラム
WO2024047990A1 (ja) 情報処理装置
JP2016224809A (ja) 情報処理装置、情報処理方法
JP2006252059A (ja) 画像処理方法、画像処理装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090604

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090604

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110524

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110527

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110531

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140610

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees