JP2005251118A - Method and device for image processing - Google Patents

Method and device for image processing Download PDF

Info

Publication number
JP2005251118A
JP2005251118A JP2004064491A JP2004064491A JP2005251118A JP 2005251118 A JP2005251118 A JP 2005251118A JP 2004064491 A JP2004064491 A JP 2004064491A JP 2004064491 A JP2004064491 A JP 2004064491A JP 2005251118 A JP2005251118 A JP 2005251118A
Authority
JP
Japan
Prior art keywords
virtual object
orientation
observer
image
sensor
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.)
Withdrawn
Application number
JP2004064491A
Other languages
Japanese (ja)
Inventor
Tomohiko Shimoyama
朋彦 下山
Akihiro Katayama
昭宏 片山
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 JP2004064491A priority Critical patent/JP2005251118A/en
Publication of JP2005251118A publication Critical patent/JP2005251118A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a technique capable of intuitively operating a virtual object arranged in a compound real space to an observer who observes a compound real space that is compounded of a real space and a virtual space. <P>SOLUTION: A position attitude of a handy sensor mounted on a hand of the observer is set up as the position attitude of the target virtual object observed by the observer (S206), an image that observes the virtual object establishing its position attitude from a view point of the observer is produced (S208), and the image is provided to the observer by superposing it on the real space (S211). <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明は、現実空間中に仮想物体を重畳させて観察者に提供する為の技術に関するものである。   The present invention relates to a technique for providing an observer with a virtual object superimposed in a real space.

MR、AR技術は実写映像とCG(Computer Graphics)とを合成し、仮想のCG物体が利用者の前に存在するかのように見せる為の技術である。   The MR and AR techniques are techniques for synthesizing a live-action video and CG (Computer Graphics) and making it appear as if a virtual CG object exists in front of the user.

MR技術の典型的なアプリケーションでは、利用者はビデオシースルー型のHMDを装着する。HMD内のディスプレイには、HMDの前面のカメラからの映像と、計算機が作成したCG映像が合成される。CG映像は、位置センサにより測定した利用者の視点の位置姿勢に応じて描かれるため、利用者にはあたかも現実空間に仮想のCGが存在するかのように見える。   In a typical application of MR technology, a user wears a video see-through type HMD. On the display in the HMD, the video from the camera in front of the HMD and the CG video created by the computer are combined. Since the CG image is drawn according to the position and orientation of the user's viewpoint measured by the position sensor, it appears to the user as if a virtual CG exists in the real space.

実際のMR技術の応用としては、図1に示すような工業デザインの検証が挙げられる。図1は、CADモデル(プリンタのトナーカートリッジのCADモデル)100を上記CG物体として表示し、CADモデルのプレビューに使用している様子を示す図である。このとき、上述の通り、このCADモデルをプレビューする利用者は、自身の頭部に上記HMD(Head Mount Display)を装着する必要がある。   As an actual application of MR technology, verification of industrial design as shown in FIG. 1 can be mentioned. FIG. 1 is a diagram showing a state in which a CAD model (CAD model of a printer toner cartridge) 100 is displayed as the CG object and used for previewing the CAD model. At this time, as described above, the user who previews the CAD model needs to wear the HMD (Head Mount Display) on his / her head.

図2は、HMDの構成を示す図である。   FIG. 2 is a diagram illustrating the configuration of the HMD.

同図に示すHMDはビデオシースルー方式のHMDである。HMDは、右目カメラ1110、左目カメラ1111、HMD内蔵位置センサ1120、右目LCD1130、左目LCD1131からなる。   The HMD shown in the figure is a video see-through HMD. The HMD includes a right eye camera 1110, a left eye camera 1111, an HMD built-in position sensor 1120, a right eye LCD 1130, and a left eye LCD 1131.

利用者はHMDを自身の頭部に装着してCADモデルをプレビューする。このとき、図3に示す如く、HMD内の各LCD1130、1131には、各カメラ1110、1111で撮影された実写映像と、CG画像として描かれたCADモデル300が合成されて表示される。   The user wears the HMD on his / her head and previews the CAD model. At this time, as shown in FIG. 3, on the LCDs 1130 and 1131 in the HMD, the live-action video photographed by the cameras 1110 and 1111 and the CAD model 300 drawn as a CG image are combined and displayed.

図4は、複数人により観察できる、MR技術を使用したCADビューワの機器構成を示す図である。ここでは3人(4a〜4c)同時にCADモデル4000をプレビューしているが、3人のそれぞれに対する機器の構成はほぼ同一である。   FIG. 4 is a diagram showing a device configuration of a CAD viewer using MR technology that can be observed by a plurality of people. Here, the CAD model 4000 is previewed simultaneously by three people (4a to 4c), but the configuration of the equipment for each of the three people is almost the same.

利用者4bを例に取ると、HMD1100に備わっているカメラにより撮影された実写映像は計算機1300にキャプチャされ、内部でCADモデル4000のCGと合成される。合成した画像は映像信号としてHMD1100に送られる。   Taking the user 4b as an example, a live-action video shot by a camera provided in the HMD 1100 is captured by the computer 1300 and is synthesized with the CG of the CAD model 4000 inside. The synthesized image is sent to the HMD 1100 as a video signal.

計算機1300は位置センサ1200から、HMD1100の3次元での位置を知ることができる。計算機1300はこの位置情報から、画面中にどのようにCADモデル4000のCGを描画するかを決める。   The computer 1300 can know the position of the HMD 1100 in three dimensions from the position sensor 1200. The computer 1300 determines how to draw the CG of the CAD model 4000 on the screen from this position information.

実写映像の上にCADモデル4000が合成されることで、利用者にはあたかもCADモデル4000がその場にあるかのように観測される。
特開2002−271693号公報 特開2003−303356号公報
By synthesizing the CAD model 4000 on the live-action image, the user can observe the CAD model 4000 as if it were on the spot.
JP 2002-271893 A JP 2003-303356 A

しかしながら先に示したMR技術を使ったCADモデルのプレビューでは、表示しているCADモデル4000を直感的に移動させることが難しかった。   However, in the CAD model preview using the MR technique described above, it is difficult to intuitively move the displayed CAD model 4000.

先に説明したように計算機1300は、CADモデルの描画位置をHMDの位置情報から決めていた。つまり図4の例では、HMD1100を移動させると、LCD1130,1131の画面上でのCADモデル4000の位置は変わるが、CADモデル4000は常にあらかじめ設定しておいた机の上に描画される。   As described above, the computer 1300 determines the drawing position of the CAD model from the position information of the HMD. That is, in the example of FIG. 4, when the HMD 1100 is moved, the position of the CAD model 4000 on the screens of the LCDs 1130 and 1131 changes, but the CAD model 4000 is always drawn on a desk set in advance.

しかし、CADモデル4000をいろいろな方向から見るためには、CADモデル4000が常に机の上に描画されるのでは不都合である。例えばCADモデル4000の底面を見たい場合、なんらかの方法でCADモデル4000の描画位置を変更しなければならない。   However, in order to view the CAD model 4000 from various directions, it is inconvenient if the CAD model 4000 is always drawn on the desk. For example, when it is desired to view the bottom surface of the CAD model 4000, the drawing position of the CAD model 4000 must be changed by some method.

従来、CADモデル4000の描画位置の変更は、計算機1300にCADモデル4000を向けたい方向を入力する必要があった。そのためには向けたい方向のベクトルや角度を数値で入力する必要があり、直感的にモデルを移動させられるとは言いがたかった。   Conventionally, to change the drawing position of the CAD model 4000, it is necessary to input a direction in which the CAD model 4000 is to be directed to the computer 1300. For that purpose, it is necessary to input the vector and angle of the direction you want to turn in numerical values, and it was hard to say that the model can be moved intuitively.

このことは多人数でCADモデル4000を見るような際に、特に問題になっていた。例えばCADモデルとして特定の部品を利用者全員で見たい場合、どのようにモデルを置けばよいか相談し、計算機1300を操作するのでは使い勝手が悪かった。   This was particularly a problem when the CAD model 4000 was viewed by a large number of people. For example, when all users want to see a specific part as a CAD model, it is not easy to use the computer 1300 by consulting how to place the model.

またもう一つの問題点として、CADモデル4000に新しい部品を追加、削除したとき、追加、削除した部品がどこにあるのかわからなくなることがあげられる。追加、削除した部品が利用者からみてCADモデル4000の裏側にある場合、CADモデル4000にどんな変更が加えられたかを把握することが難しかった。   Another problem is that when a new part is added to or deleted from the CAD model 4000, it is impossible to know where the added or deleted part is. When the added and deleted parts are on the back side of the CAD model 4000 from the viewpoint of the user, it is difficult to grasp what changes have been made to the CAD model 4000.

本発明は以上の問題に鑑みてなされたものであり、現実空間と仮想空間とを合成した複合現実空間を観察している観察者に、この複合現実空間中に配置される仮想物体を、より直感的に操作可能とさせるための技術を提供することを目的とする。   The present invention has been made in view of the above problems, and to a viewer observing a mixed reality space obtained by synthesizing a real space and a virtual space, a virtual object placed in the mixed reality space is more An object is to provide a technique for enabling intuitive operation.

本発明の目的を達成するために、例えば本発明の画像処理方法は以下の構成を備える。   In order to achieve the object of the present invention, for example, an image processing method of the present invention comprises the following arrangement.

すなわち、現実空間中に仮想物体を重畳させて観察者に提供する画像処理方法であって、
前記観察者の視点の位置姿勢を計測する為のセンサの計測結果に基づいて、当該視点の位置姿勢を計算する第1の計算工程と、
前記観察者の手に装着されている手持ちセンサにより計測された結果に基づいて、当該手持ちセンサの位置姿勢を求める第2の計算工程と、
前記第2の計算工程で計算された位置姿勢を、前記観察者が観察する対象の仮想物体の位置姿勢として設定する設定工程と、
前記設定工程で位置姿勢が設定された仮想物体を前記第1の計算工程で求めた位置姿勢の視点から見た場合の画像を生成して、現実空間に重畳させて前記観察者に提供する提供工程とを備え、
更に前記提供工程では、
前記仮想物体における一部分が指示された場合、当該一部分が前記視点の位置姿勢から見えるように前記仮想物体の向きを変化させた前記仮想物体を前記第1の計算工程で求めた位置姿勢の視点から見た場合の画像を生成して、現実空間に重畳させて前記観察者に提供することを特徴とする。
That is, an image processing method for providing an observer with a virtual object superimposed in real space,
A first calculation step of calculating a position and orientation of the viewpoint based on a measurement result of a sensor for measuring the position and orientation of the observer's viewpoint;
A second calculation step for determining a position and orientation of the handheld sensor based on a result measured by the handheld sensor attached to the observer's hand;
A setting step for setting the position and orientation calculated in the second calculation step as a position and orientation of a virtual object to be observed by the observer;
Provided to the observer by generating an image when the virtual object having the position and orientation set in the setting step is viewed from the viewpoint of the position and orientation obtained in the first calculation step and superimposing it on a real space A process,
Furthermore, in the providing step,
When a part of the virtual object is instructed, the virtual object whose orientation has been changed so that the part can be seen from the position and orientation of the viewpoint is determined from the viewpoint of the position and orientation obtained in the first calculation step. An image when viewed is generated and superimposed on a real space and provided to the observer.

本発明の目的を達成するために、例えば本発明の画像処理装置は以下の構成を備える。   In order to achieve the object of the present invention, for example, an image processing apparatus of the present invention comprises the following arrangement.

すなわち、現実空間中に仮想物体を重畳させて観察者に提供する画像処理装置であって、
前記観察者の視点の位置姿勢を計測する為のセンサの計測結果に基づいて、当該視点の位置姿勢を計算する第1の計算手段と、
前記観察者の手に装着されている手持ちセンサにより計測された結果に基づいて、当該手持ちセンサの位置姿勢を求める第2の計算手段と、
前記第2の計算手段によって計算された位置姿勢を、前記観察者が観察する対象の仮想物体の位置姿勢として設定する設定手段と、
前記設定手段によって位置姿勢が設定された仮想物体を前記第1の計算手段によって求めた位置姿勢の視点から見た場合の画像を生成して、現実空間に重畳させて前記観察者に提供する提供手段とを備え、
更に前記提供手段は、
前記仮想物体における一部分が指示された場合、当該一部分が前記視点の位置姿勢から見えるように前記仮想物体の向きを変化させた前記仮想物体を前記第1の計算手段によって求めた位置姿勢の視点から見た場合の画像を生成して、現実空間に重畳させて前記観察者に提供することを特徴とする。
That is, an image processing apparatus that provides a viewer with a virtual object superimposed in real space,
First calculation means for calculating the position and orientation of the viewpoint based on a measurement result of a sensor for measuring the position and orientation of the observer's viewpoint;
Second calculation means for obtaining a position and orientation of the handheld sensor based on a result measured by the handheld sensor attached to the observer's hand;
Setting means for setting the position and orientation calculated by the second calculation means as the position and orientation of a virtual object to be observed by the observer;
Provided to the observer by generating an image when the virtual object having the position and orientation set by the setting means is viewed from the viewpoint of the position and orientation obtained by the first calculation means and superimposing it on a real space Means and
Further, the providing means includes
When a part of the virtual object is designated, the virtual object in which the direction of the virtual object is changed so that the part can be seen from the position and orientation of the viewpoint is determined from the viewpoint of the position and orientation obtained by the first calculation unit. An image when viewed is generated and superimposed on a real space and provided to the observer.

本発明の構成により、現実空間と仮想空間とを合成した複合現実空間を観察している観察者に、この複合現実空間中に配置される仮想物体を、より直感的に操作させることができる。   According to the configuration of the present invention, an observer observing a mixed reality space obtained by synthesizing a real space and a virtual space can more intuitively operate a virtual object placed in the mixed reality space.

以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。   Hereinafter, the present invention will be described in detail according to preferred embodiments with reference to the accompanying drawings.

図8は、本実施形態に係るシステムの外観図である。同図では、システムと共に、このシステムを利用している観察者を示している。なお、同図では観察者の数を3としているが、以下の説明はこれに限定するものではない。   FIG. 8 is an external view of a system according to the present embodiment. In the figure, an observer who uses this system is shown together with the system. In the figure, the number of observers is three, but the following description is not limited to this.

本実施形態に係るシステムは、現実空間中に仮想物体(CGモデル)を重畳させて観察者に提供する周知のMR技術を用いて、観察者の観察対象である仮想物体に対して、観察者がその位置や姿勢の変更といった各種の操作をより簡便にするためのものである。以下、本実施形態に係るシステムについて詳細に説明する。   The system according to the present embodiment uses a well-known MR technology that provides a virtual object (CG model) to a viewer by superimposing a virtual object in a real space. However, this is for making various operations such as changing the position and posture easier. Hereinafter, the system according to the present embodiment will be described in detail.

同図において1000,2000,3000はそれぞれ観察者で、本システムを用いて、現実空間中に仮想物体を重畳させた空間(複合現実空間)を観察する。それぞれの観察者の頭部には周知のHMD1100,2100,3100が装着されており、それぞれの観察者は自身の頭部に装着されたHMDにより、複合現実空間の画像を見ることができる。   In the figure, reference numerals 1000, 2000, and 3000 denote observers, respectively, that use this system to observe a space (a mixed reality space) in which a virtual object is superimposed on a real space. The well-known HMDs 1100, 2100, and 3100 are attached to the heads of the respective observers, and each observer can see an image of the mixed reality space by the HMD attached to the own head.

それぞれの観察者に提供する複合現実空間の画像は、それぞれのHMDに接続されている計算機1300,2300,3300により生成される。   An image of the mixed reality space provided to each observer is generated by computers 1300, 2300, and 3300 connected to the respective HMDs.

ここで、それぞれの観察者に対して複合現実空間の画像を生成して提供する為の装置の構成については実施的には同じであるので、以下の説明では観察者1000に対して複合現実空間の画像を提供する装置の構成について説明するが、同様の説明は特に断らない限り、それ以外の観察者2000,3000に対しても同様に適用可能である。   Here, since the configuration of the apparatus for generating and providing an image of the mixed reality space for each observer is practically the same, in the following description, the mixed reality space for the observer 1000 is described. The configuration of the apparatus that provides the image will be described, but the same description is similarly applicable to other observers 2000 and 3000 unless otherwise specified.

観察者1000は自身の頭部にHMD1100を装着しており、MR技術では周知の通り、観察者1000はこのHMDにより自身の頭部の位置姿勢に応じた複合現実空間の画像を見ることができる。   The observer 1000 wears the HMD 1100 on his / her head, and as is well known in the MR technology, the observer 1000 can see an image of the mixed reality space according to the position / posture of his / her head using the HMD. .

また、観察者1000は手持ちセンサ5000を手に持っている。本実施形態では手持ちセンサ5000は観察者1000、2000、3000の何れかが持っていればよいが、本実施形態では観察者1000のみが持っているものとする。   In addition, the observer 1000 has a hand-held sensor 5000 in his / her hand. In this embodiment, the hand-held sensor 5000 only needs to be held by any one of the observers 1000, 2000, and 3000, but in this embodiment, only the observer 1000 has it.

なお、手持ちセンサ5000は必ずしも手に「持つ」必要はなく、手に「装着」していればよい。手持ちセンサ5000は、後述する3次元センサ固定局1210との相対位置姿勢を計測し、その計測結果を示す信号を後述する3次元センサ本体1200に出力する。   Note that the hand-held sensor 5000 does not necessarily need to be “held” in the hand, but may be “attached” to the hand. The hand-held sensor 5000 measures the relative position and orientation with a three-dimensional sensor fixed station 1210 described later, and outputs a signal indicating the measurement result to the three-dimensional sensor main body 1200 described later.

3次元センサ固定局1210は、磁気センサの場合、HMD1100に備わっている後述のセンサ、手持ちセンサ5000がそれぞれの位置姿勢の計測を行うために検知する磁界を発生する。以下の説明では便宜上、センサは全て磁気センサものを用いることとするが、その他のセンサ、例えば、超音波センサなどを用いても以下の説明は実質的には同じである。   In the case of a magnetic sensor, the three-dimensional sensor fixed station 1210 generates a magnetic field that is detected by a later-described sensor and a hand-held sensor 5000 provided in the HMD 1100 to measure each position and orientation. In the following description, for the sake of convenience, all sensors are magnetic sensors, but the following description is substantially the same even when other sensors such as an ultrasonic sensor are used.

3次元センサ本体1200は、HMD1100に備わっている後述のセンサ、3次元センサ固定局1210、手持ちセンサ5000を制御し、HMD1100に備わっている後述のセンサ、手持ちセンサ5000が計測した結果をデータとして計算機1300に出力する。   The three-dimensional sensor main body 1200 controls a sensor (to be described later) provided in the HMD 1100, a three-dimensional sensor fixed station 1210, and a handheld sensor 5000, and calculates a result obtained by measuring the sensor and handheld sensor 5000 (to be described later) provided in the HMD1100 as data. 1300 is output.

計算機1300は例えばPC(パーソナルコンピュータ)やWS(ワークステーション)等により構成されており、観察者1000に自身の頭部の位置姿勢に応じた複合現実空間の画像を提供するための各種の処理を行う。また、計算機1300はネットワークハブ6000に接続されており、他の計算機2300,3300とのデータ通信を行うことができ、例えば手持ちセンサ5000により計測された結果を計算機1300から計算機2300,3300に送信することができる。   The computer 1300 includes, for example, a PC (personal computer), WS (workstation), and the like, and performs various processes for providing the observer 1000 with an image of the mixed reality space according to the position and orientation of his / her head. Do. Further, the computer 1300 is connected to the network hub 6000 and can perform data communication with other computers 2300 and 3300. For example, the result measured by the handheld sensor 5000 is transmitted from the computer 1300 to the computers 2300 and 3300. be able to.

図9は、観察者1000に対して複合現実空間の画像を提供する為の装置の基本構成を示す図である。   FIG. 9 is a diagram showing a basic configuration of an apparatus for providing an image of the mixed reality space to the observer 1000.

HMD1100はHMD内蔵センサ1120,右目カメラ1110、左目カメラ1111、右目LCD1130,左目LCD1131により構成されている。HMD内蔵センサ1120は、3次元センサ固定局1210から発せられる磁界を検知し、検知した磁界の強度を示す信号を3次元センサ本体1200に出力する。   The HMD 1100 includes an HMD built-in sensor 1120, a right eye camera 1110, a left eye camera 1111, a right eye LCD 1130, and a left eye LCD 1131. The HMD built-in sensor 1120 detects a magnetic field emitted from the three-dimensional sensor fixed station 1210, and outputs a signal indicating the intensity of the detected magnetic field to the three-dimensional sensor main body 1200.

手持ちセンサ5000は、上述の通り、観察者1000の手に装着されているもので、その位置姿勢は観察者1000の手が動くことにより変化する。手持ちセンサ5000は、3次元センサ固定局1210から発せられる磁界を検知し、検知した磁界の強度を示す信号を3次元センサ本体1200に出力する。   As described above, the hand-held sensor 5000 is attached to the hand of the observer 1000, and the position and orientation thereof changes as the observer's 1000 hand moves. The handheld sensor 5000 detects a magnetic field emitted from the three-dimensional sensor fixed station 1210 and outputs a signal indicating the intensity of the detected magnetic field to the three-dimensional sensor main body 1200.

3次元センサ本体1200は、HMD内蔵センサ1120、手持ちセンサ5000から受けた信号の強度に基づいて、センサ座標系(世界座標系(現実空間中の1点を原点とし、この原点で互いに直交する3軸をそれぞれx、y、z軸とする座標系)における位置がわかっている所定位置を原点とし、この原点で互いに直交する3軸をそれぞれx、y、z軸とする座標系)におけるHMD内蔵センサ1120、手持ちセンサ5000の位置姿勢を示すデータを求め、計算機1300に出力する。   The three-dimensional sensor main body 1200 has a sensor coordinate system (world coordinate system (one point in the real space as an origin, and three orthogonal to each other at this origin based on the strength of signals received from the HMD built-in sensor 1120 and the handheld sensor 5000). Built-in HMD in a coordinate system in which the axes are x, y, and z axes, and the origin is a predetermined position where the position is known, and the three axes orthogonal to each other at the origin are x, y, and z axes, respectively. Data indicating the position and orientation of the sensor 1120 and the handheld sensor 5000 is obtained and output to the computer 1300.

右目カメラ1110、左目カメラ1111はそれぞれ、HMD1100を頭部に装着する観察者1000の右目、左目から見える現実空間の動画像を撮像するものである。右目カメラ1110、左目カメラ1111のそれぞれにより撮像された動画像を構成する各フレームの画像データは計算機1300に出力する。   The right-eye camera 1110 and the left-eye camera 1111 capture moving images in real space that can be seen from the right and left eyes of an observer 1000 who wears the HMD 1100 on the head. Image data of each frame constituting a moving image captured by each of the right eye camera 1110 and the left eye camera 1111 is output to the computer 1300.

右目LCD1130、左目LCD1131はそれぞれ、右目カメラ1110、左目カメラ1111のそれぞれによって撮像された現実空間に、計算機1300が生成した仮想物体の画像を重畳させた画像(複合現実空間の画像)を表示するものであり、これにより、HMD1100を頭部に装着した観察者1000は、自身の右目、左目に対応する複合現実空間の画像を眼前に見ることができる。   The right-eye LCD 1130 and the left-eye LCD 1131 display images (mixed reality space images) obtained by superimposing virtual object images generated by the computer 1300 on the real spaces captured by the right-eye camera 1110 and the left-eye camera 1111, respectively. Thus, the observer 1000 wearing the HMD 1100 on the head can see an image of the mixed reality space corresponding to his / her right eye and left eye in front of his / her eyes.

次に計算機1300について説明する。   Next, the computer 1300 will be described.

シリアルI/O1310は、3次元センサ本体1200から出力されるデータを受ける為のインターフェースとして機能するものであり、受けたデータはメモリ1302に出力される。なお、このデータは上述の取り、HMD内蔵センサ1120や手持ちセンサ5000のセンサ座標系における位置姿勢を示すデータである。本実施形態ではこの位置姿勢は、位置(x、y、z)を示すデータと、姿勢(roll,pitch,yaw)を示すデータにより構成されているものとする。すなわち、HMD内蔵センサ1120、手持ちセンサ5000は、6自由度の計測センサである。   The serial I / O 1310 functions as an interface for receiving data output from the three-dimensional sensor main body 1200, and the received data is output to the memory 1302. This data is data indicating the position and orientation of the HMD built-in sensor 1120 and the handheld sensor 5000 in the sensor coordinate system. In the present embodiment, this position and orientation is composed of data indicating the position (x, y, z) and data indicating the orientation (roll, pitch, yaw). That is, the HMD built-in sensor 1120 and the handheld sensor 5000 are measurement sensors with six degrees of freedom.

なお、位置姿勢を表現する方法は他にも考えられ、これに限定するものではない。   Note that there are other methods for expressing the position and orientation, and the present invention is not limited to this.

ここで、メモリ1302には、世界座標系における予め計測された3次元センサ固定局1210の位置姿勢を示すデータ(オフセットデータ)が記憶されている。従って、このオフセットデータを用いれば周知の通り、センサ座標系における任意の位置姿勢を、世界座標系における位置姿勢に変換することができるので、CPU1301は、オフセットデータと、シリアルI/O1310を介してメモリ1302に入力された「センサ座標系におけるHMD内蔵センサ1120の位置姿勢を示すデータ」とを用いれば、「世界座標系におけるHMD内蔵センサ1120の位置姿勢」を求めることができるし、オフセットデータと、シリアルI/O1310を介してメモリ1302に入力された「センサ座標系における手持ちセンサ5000の位置姿勢を示すデータ」とを用いれば、「世界座標系における手持ちセンサ5000の位置姿勢」を求めることができる。   Here, the memory 1302 stores data (offset data) indicating the position and orientation of the three-dimensional sensor fixed station 1210 measured in advance in the world coordinate system. Therefore, as is well known using this offset data, any position and orientation in the sensor coordinate system can be converted into a position and orientation in the world coordinate system, so the CPU 1301 can send the offset data and the serial I / O 1310 via the offset data. By using “data indicating the position and orientation of the HMD built-in sensor 1120 in the sensor coordinate system” input to the memory 1302, “position and orientation of the HMD built-in sensor 1120 in the world coordinate system” can be obtained, and offset data and Using the “data indicating the position and orientation of the handheld sensor 5000 in the sensor coordinate system” input to the memory 1302 via the serial I / O 1310, the “position and orientation of the handheld sensor 5000 in the world coordinate system” can be obtained. it can.

このような座標変換による位置姿勢の計算技術については周知の技術であるので、これ以上の説明は省略する。   Since the position / orientation calculation technique based on such coordinate transformation is a well-known technique, further explanation is omitted.

ビデオキャプチャカード1320、1321はそれぞれ、右目カメラ1110、左目カメラ1111から入力される、各フレームの画像を受けるためのインターフェースとして機能するものであり、受けた画像は順次メモリ1302に出力する。本実施形態では、各フレームの画像はNTSCに準拠したものであるとするが、これに限定するものではない。   Each of the video capture cards 1320 and 1321 functions as an interface for receiving an image of each frame input from the right eye camera 1110 and the left eye camera 1111, and the received images are sequentially output to the memory 1302. In the present embodiment, the image of each frame is assumed to conform to NTSC, but the present invention is not limited to this.

ビデオカード1330,1331はそれぞれ、CPU1301が後述する処理により生成した右目、左目に対応する複合現実空間の画像を右目LCD1130、左目LCD1131に出力するためのインターフェースとして機能するものであり、右目、左目に対応する複合現実空間の画像はそれぞれ、VGAに準拠した画像信号としてビデオカード1330、1331を介して右目LCD1130、左目LCD1131に出力される。   Each of the video cards 1330 and 1331 functions as an interface for outputting the mixed reality space image corresponding to the right eye and left eye generated by the processing described later by the CPU 1301 to the right eye LCD 1130 and the left eye LCD 1131. The corresponding mixed reality space images are output to the right eye LCD 1130 and the left eye LCD 1131 via the video cards 1330 and 1331 as VGA-compliant image signals, respectively.

CPU1301は、計算機1300全体の制御を行うと共に、他の計算機2300,3300とのデータ通信を制御したり、計算機1300が行うべき後述の各処理を実行する。このような処理の実行は、メモリ1302に記憶されている各種のプログラムやデータを実行することでなされる。   The CPU 1301 controls the entire computer 1300, controls data communication with other computers 2300 and 3300, and executes processing described later that should be performed by the computer 1300. Execution of such processing is performed by executing various programs and data stored in the memory 1302.

メモリ1302は、CPU1301が各種の処理を実行するために使用するワークエリアや、CPU1301に各種の処理を実行させるためのプログラムやデータを記憶するためのエリア、また、シリアルI/O1310、ビデオキャプチャカード1320、1321を介して入力される各種のデータを一時的に記憶するためのエリアを備える。   The memory 1302 is a work area used by the CPU 1301 to execute various processes, an area for storing programs and data for causing the CPU 1301 to execute various processes, a serial I / O 1310, and a video capture card. An area for temporarily storing various data input via 1320 and 1321 is provided.

ネットワークI/F(インターフェース)1390は、計算機1300を通信路を介して上記ネットワークハブ6000に接続するためのインターフェースとして機能するものであり、このネットワークI/F1390を介して計算機1300は他の計算機2300、3300とのデータ通信を行うことができる。   The network I / F (interface) 1390 functions as an interface for connecting the computer 1300 to the network hub 6000 via a communication path. The computer 1300 is connected to the other computer 2300 via the network I / F 1390. Data communication with 3300 can be performed.

PCIブリッジ1303は、CPU1301、メモリ1302、ネットワークI/F1390がつながっているバスと、シリアルI/O1310、ビデオキャプチャカード1320、1321,ビデオカード1330、1331を繋ぐバスとを電気的に繋ぐためのものである。   The PCI bridge 1303 is for electrically connecting a bus connecting the CPU 1301, the memory 1302, and the network I / F 1390 to a bus connecting the serial I / O 1310, the video capture cards 1320 and 1321, and the video cards 1330 and 1331. It is.

次に、以上の構成を備える各装置によって、観察者1000に複合現実空間の画像を提示する処理について説明する。また、以下の説明における「仮想物体」は、観察者1000が観察しようとする対象の仮想物体である。すなわち、よく観察するために、その位置姿勢を観察者1000が簡便に変更するための仮想物体である。   Next, processing for presenting an image of the mixed reality space to the observer 1000 by each apparatus having the above configuration will be described. Further, “virtual object” in the following description is a virtual object to be observed by the observer 1000. That is, it is a virtual object for the observer 1000 to easily change the position and orientation in order to observe well.

3次元センサ本体1200は常に手持ちセンサ5000、HMD内蔵センサ1120から出力される信号を受け、受けた信号に応じたデータ、すなわち、センサ座標系における位置姿勢を示すデータに変換して計算機1300に出力する。計算機1300のCPU1301は、上記オフセットデータとシリアルI/O1310を介してメモリ1302に入力されたデータとを用いて、世界座標系における手持ちセンサ5000の位置姿勢、世界座標系におけるHMD内蔵センサ1120の位置姿勢を計算する。計算結果を示すデータは後述する処理で用いるために、一時的にメモリ1302に記憶させておく。   The three-dimensional sensor main body 1200 always receives signals output from the handheld sensor 5000 and the HMD built-in sensor 1120, converts the data into data corresponding to the received signals, that is, data indicating the position and orientation in the sensor coordinate system, and outputs the data to the computer 1300. To do. The CPU 1301 of the computer 1300 uses the offset data and the data input to the memory 1302 via the serial I / O 1310 to determine the position and orientation of the handheld sensor 5000 in the world coordinate system and the position of the HMD built-in sensor 1120 in the world coordinate system. Calculate posture. Data indicating the calculation result is temporarily stored in the memory 1302 for use in processing to be described later.

図5は、手持ちセンサ5000の構成例を示す図である。手持ちセンサ5000は、3次元センサ固定局1210からの磁界を検知するセンサ部5001と、このセンサ部5001のカバーとして機能するセンサカバー5002と、観察者1000が手に持つ部分の手持ち部5003とから成る。   FIG. 5 is a diagram illustrating a configuration example of the handheld sensor 5000. The hand-held sensor 5000 includes a sensor unit 5001 that detects a magnetic field from the three-dimensional sensor fixed station 1210, a sensor cover 5002 that functions as a cover for the sensor unit 5001, and a hand-held unit 5003 that the observer 1000 holds in the hand. Become.

一方、右目カメラ1110、左目カメラ1111は常に、HMD1100の位置姿勢(換言すれば、観察者1000の頭部の位置姿勢)に応じて見える現実空間の動画像を撮像するので、この動画像を構成する各フレームの画像はデータとしてビデオキャプチャカード1320、1321を介して順次メモリ1302に入力される。   On the other hand, the right-eye camera 1110 and the left-eye camera 1111 always capture a moving image of the real space that is visible according to the position and orientation of the HMD 1100 (in other words, the position and orientation of the head of the observer 1000). The image of each frame is sequentially input to the memory 1302 through the video capture cards 1320 and 1321 as data.

CPU1301は、先に計算したHMD内蔵センサ1120の世界座標系における位置姿勢に、HMD内蔵センサ1120と左目カメラ1111との位置姿勢のずれ(予め計測し、その計測結果を示すデータはメモリ1302に記憶されている)を加算して、世界座標系における左目カメラ1111の位置姿勢を求め、求めた位置姿勢から見える仮想物体の画像を生成する。   The CPU 1301 calculates the displacement of the position and orientation between the HMD built-in sensor 1120 and the left-eye camera 1111 in advance based on the previously calculated position and orientation in the world coordinate system of the HMD built-in sensor 1120 (data indicating the measurement result is stored in the memory 1302). The position and orientation of the left-eye camera 1111 in the world coordinate system are obtained, and an image of a virtual object that can be seen from the obtained position and orientation is generated.

ここで、仮想物体の位置姿勢には、手持ちセンサ5000の世界座標系における位置姿勢を設定する。すなわち、観察者1000は、手持ちセンサ5000を任意の位置姿勢に移動させることで、仮想物体の位置姿勢を任意に設定することができる。   Here, the position and orientation of the hand-held sensor 5000 in the world coordinate system is set as the position and orientation of the virtual object. That is, the observer 1000 can arbitrarily set the position and orientation of the virtual object by moving the handheld sensor 5000 to an arbitrary position and orientation.

これにより、世界座標系における手持ちセンサ5000の位置姿勢に仮想物体を配置することができる。なお、仮想物体の位置姿勢の決定処理の詳細については後述する。   Thereby, a virtual object can be arranged at the position and orientation of the hand-held sensor 5000 in the world coordinate system. The details of the process of determining the position and orientation of the virtual object will be described later.

そしてCPU1301は仮想物体の配置後、世界座標系における左目カメラ1111の位置姿勢から見える仮想物体の画像を生成する。また、仮想物体の画像を生成する際には、仮想物体に関するデータ(例えば、仮想物体の形状に関するデータ、色やテクスチャに関するデータなど)を用いるのであるが、このデータはメモリ1302に記憶されている。   The CPU 1301 then generates an image of the virtual object that can be seen from the position and orientation of the left-eye camera 1111 in the world coordinate system after the placement of the virtual object. Further, when generating an image of a virtual object, data related to the virtual object (for example, data related to the shape of the virtual object, data related to color and texture, etc.) is used, and this data is stored in the memory 1302. .

そしてCPU1301は、上記処理により生成した仮想物体の画像を、先にメモリ1302にビデオキャプチャカード1321から入力された「観察者の左目から見える現実空間の画像」上に重畳させる。これにより、観察者1000の左目から見た現実空間に、観察者1000の左目から見た仮想物体を重畳させた上記複合現実空間画像を生成することができるので、CPU1301は生成した複合現実空間の画像をビデオカード1331を介してHMD1100の左目LCD1131に出力する。これにより、HMD1100の左目LCD1131には、観察者1000の左目から見た複合現実空間の画像が表示される。   Then, the CPU 1301 superimposes the virtual object image generated by the above processing on the “real space image that can be seen from the left eye of the observer” input from the video capture card 1321 to the memory 1302 previously. As a result, the mixed reality space image in which the virtual object viewed from the left eye of the observer 1000 is superimposed on the real space viewed from the left eye of the observer 1000 can be generated. The image is output to the left-eye LCD 1131 of the HMD 1100 via the video card 1331. As a result, an image of the mixed reality space viewed from the left eye of the observer 1000 is displayed on the left eye LCD 1131 of the HMD 1100.

なお、右目LCD1130に観察者1000の右目から見た複合現実空間の画像を表示させる処理についても、上記左目の場合と同様にして行う。すなわち、CPU1301は、先に計算したHMD内蔵センサ1120の世界座標系における位置姿勢に、HMD内蔵センサ1120と右目カメラ1110との位置姿勢のずれ(予め計測し、その計測結果を示すデータはメモリ1302に記憶されている)を加算して、世界座標系における右目カメラ1110の位置姿勢を求め、求めた位置姿勢から見える仮想物体の画像を生成する。   Note that the process of displaying the mixed reality space image viewed from the right eye of the viewer 1000 on the right eye LCD 1130 is performed in the same manner as in the case of the left eye. That is, the CPU 1301 adds the position and orientation of the HMD built-in sensor 1120 and the right-eye camera 1110 to the position and orientation calculated in advance in the world coordinate system (measured in advance, and data indicating the measurement result is stored in the memory 1302. Is stored to obtain the position and orientation of the right-eye camera 1110 in the world coordinate system, and an image of a virtual object that can be seen from the obtained position and orientation is generated.

そして生成した仮想物体の画像を、先にメモリ1302にビデオキャプチャカード1320から入力された「観察者の右目から見える現実空間の画像」上に重畳させる。これにより、観察者1000の右目から見た現実空間に、観察者1000の右目から見た仮想物体を重畳させた上記複合現実空間画像を生成することができるので、CPU1301は生成した複合現実空間の画像をビデオカード1330を介してHMD1100の右目LCD1130に出力する。これにより、HMD1100の右目LCD1130には、観察者1000の右目から見た複合現実空間の画像が表示される。   Then, the generated image of the virtual object is superimposed on the “real space image that can be seen from the right eye of the observer” input from the video capture card 1320 to the memory 1302 first. As a result, the mixed reality space image in which the virtual object viewed from the right eye of the observer 1000 is superimposed on the real space viewed from the right eye of the observer 1000 can be generated. The image is output to the right eye LCD 1130 of the HMD 1100 via the video card 1330. Thereby, an image of the mixed reality space viewed from the right eye of the observer 1000 is displayed on the right eye LCD 1130 of the HMD 1100.

以上の処理により、右目LCD1130、左目LCD1131にはそれぞれ、観察者1000の右目、左目から見える複合現実空間の画像が表示されるので、HMD1100を観察者1000は自身の頭部の位置姿勢に応じた複合現実空間の画像を眼前に見ることができる。   Through the above processing, the right-eye LCD 1130 and the left-eye LCD 1131 display the mixed reality space images that can be seen from the right and left eyes of the observer 1000, respectively. Therefore, the observer 1000 uses the HMD 1100 according to the position and orientation of his / her head. You can see an image of the mixed reality space in front of you.

図6は、手持ちセンサ5000の位置姿勢が設定された仮想物体の表示例を示す図である。同図左は、仮想物体を表示していない状態を示しており、同図右は、手持ちセンサ5000の位置姿勢が設定された仮想物体4000の表示例を示している。同図では、仮想物体4000の重心位置(予め決められており、仮想物体に関するデータに含められている)を、手持ちセンサ5000の位置に合わせている。   FIG. 6 is a diagram illustrating a display example of a virtual object in which the position and orientation of the handheld sensor 5000 is set. The left side of the figure shows a state where no virtual object is displayed, and the right side of the figure shows a display example of the virtual object 4000 in which the position and orientation of the handheld sensor 5000 is set. In the figure, the position of the center of gravity of the virtual object 4000 (predetermined and included in the data related to the virtual object) is matched with the position of the hand-held sensor 5000.

以上の処理により、観察者1000は、観察しようとする仮想物体の位置姿勢を、手持ちセンサ5000を持った手を動かすだけで変更することができるので、より直感的に仮想物体の位置姿勢を変更することができ、仮想物体をよく観察することができる。   With the above processing, the observer 1000 can change the position and orientation of the virtual object to be observed simply by moving the hand holding the handheld sensor 5000, so the position and orientation of the virtual object can be changed more intuitively. The virtual object can be observed well.

図10は、計算機1300を起動した際にCPU1301が行う処理のフローチャートである。   FIG. 10 is a flowchart of processing performed by the CPU 1301 when the computer 1300 is activated.

先ず、HMD1100の右目カメラ1110、左目カメラ1111のカメラパラメータ(画角や焦点距離など)から、projection matrixを作成し、メモリ1302にデータとして記憶しておく(ステップS100)。ここでprojection matrixとは、周知の通り、仮想空間中の物体を表示面に投影して画像を生成するための投影行列である。このprojection matrixを生成しておくことでこのprojection matrixを用いて生成した仮想物体の画像と、右目カメラ1110、左目カメラ1111により撮像された現実空間の画像とを合成した場合に、それぞれの画像間で画角や焦点距離などの整合性がとれる。   First, a projection matrix is created from the camera parameters (view angle, focal length, etc.) of the right-eye camera 1110 and left-eye camera 1111 of the HMD 1100, and stored as data in the memory 1302 (step S100). Here, the projection matrix is a projection matrix for generating an image by projecting an object in the virtual space onto a display surface, as is well known. By generating this projection matrix, when a virtual object image generated by using this projection matrix and a real space image captured by the right-eye camera 1110 and the left-eye camera 1111 are combined, the image between the images is displayed. This ensures consistency of the angle of view and focal length.

次に、仮想物体のローカル座標(仮想物体をCGソフトなどで作成する際にこの仮想物体について設定する原点、及びこの原点で互いに直交する軸をそれぞれx、y、z軸とすることで規定される座標系)での重心(gx、gy、gz)を求める。そして(−gx、−gy、−gz)だけ平行移動する変換行列MGを作成する(ステップS101)。この変換行列MGを仮想物体に適用すれば、仮想物体の重心をローカル座標の原点とすることができる。   Next, the local coordinates of the virtual object (specified by setting the origin set for the virtual object when the virtual object is created by CG software and the axes orthogonal to each other at the origin as x, y, z axes, respectively. Centroid (gx, gy, gz) in the coordinate system). Then, a transformation matrix MG that translates by (−gx, −gy, −gz) is created (step S101). If this transformation matrix MG is applied to a virtual object, the center of gravity of the virtual object can be used as the origin of local coordinates.

次に、仮想物体の方向補正行列MDに単位行列を代入する(ステップS102)。仮想物体の方向補正行列MDは、手持ちセンサ5000に対して、仮想物体がどのような方向を向いているかを示している。初期状態ではMDには単位行列が入っているので、手持ちセンサ5000と仮想物体とは同じ方向を向いている。   Next, a unit matrix is substituted into the direction correction matrix MD of the virtual object (step S102). The virtual object direction correction matrix MD indicates in what direction the virtual object is facing the handheld sensor 5000. Since MD has a unit matrix in the initial state, the hand-held sensor 5000 and the virtual object face the same direction.

このMDに回転を表す行列を設定することで、図7に示す如く、指定された部品を利用者の方向に向けることができる。   By setting a matrix representing rotation in the MD, the designated component can be directed toward the user as shown in FIG.

このMDは計算機1300のみが保持している(より具体的には計算機1300のメモリ1302のみが保持している)行列であり、この行列は、計算機1300のCPU1301が求めた、世界座標系における手持ちセンサ5000の位置姿勢と共に、計算機2300、3300に送信される。   This MD is a matrix held only by the computer 1300 (more specifically, only held by the memory 1302 of the computer 1300). This matrix is a handheld in the world coordinate system obtained by the CPU 1301 of the computer 1300. Along with the position and orientation of the sensor 5000, it is transmitted to the computers 2300 and 3300.

また、移動中フラグをFALSEに設定する(ステップS102)。移動中フラグは、図7に示す如く、仮想物体が回転中であるか否かを示すためのフラグである。その詳細については後述するが、その使用用途は、指定された部品を観察者の方向に向けるアニメーション動作を実行するかどうかの判断に使用する。   Further, the moving flag is set to FALSE (step S102). The moving flag is a flag for indicating whether or not the virtual object is rotating as shown in FIG. Although the details will be described later, the usage is used to determine whether or not to execute an animation operation in which a designated part is directed toward the observer.

以上の処理が、計算機1300が起動した際に実行される。   The above processing is executed when the computer 1300 is activated.

図11は、上記処理の後に、CPU1301、及びその他の各部が、複合現実空間の画像を生成して観察者1000に提示する為の処理のフローチャートである。なお、上述の通り、右目LCD1130に複合現実空間の画像を表示するための処理、左目LCD1131に複合現実空間の画像を表示するための処理は何れも実質的には同じであり、その何れも図11に示したフローチャートに従っている。   FIG. 11 is a flowchart of a process for the CPU 1301 and other units to generate an image of the mixed reality space and present it to the viewer 1000 after the above process. As described above, the processing for displaying the mixed reality space image on the right-eye LCD 1130 and the processing for displaying the mixed reality space image on the left-eye LCD 1131 are both substantially the same. The flowchart shown in FIG.

従って、以下の説明では、右目LCD1130に複合現実空間の画像を表示するための処理を例にとって説明するが、左目LCD1131に複合現実空間の画像を表示する場合についても、係る処理は同じである。   Therefore, in the following description, a process for displaying an image of the mixed reality space on the right eye LCD 1130 will be described as an example. However, the same process is performed when an image of the mixed reality space is displayed on the left eye LCD 1131.

右目カメラ1110により撮像された現実空間の動画像を構成する各フレームの画像(ビデオ映像)は、ビデオキャプチャカード1320を介して計算機1300に入力されるので、CPU1301はこれをメモリ1302に順次入力し(ステップS200)、メモリ1302上に設けられているビデオバッファに書き込む(ステップS201)。本実施形態では、各フレームの画像は、1フレーム(2フィールド)分、640×480ピクセルでもって右目カメラ1110から入力されるが、これに限定するものではない。   Since each frame image (video image) constituting the moving image in the real space captured by the right-eye camera 1110 is input to the computer 1300 via the video capture card 1320, the CPU 1301 sequentially inputs this to the memory 1302. (Step S200), the data is written in the video buffer provided on the memory 1302 (Step S201). In this embodiment, the image of each frame is input from the right-eye camera 1110 with 640 × 480 pixels for one frame (two fields), but is not limited to this.

一方、シリアルI/O1310を介して、3次元センサ本体1200から、HMD内蔵センサ1120が計測した位置姿勢を示すデータが入力されるので、CPU1301はこのデータと上記オフセットデータとを用いて周知の計算により、世界座標系におけるHMD内蔵センサ1120の位置姿勢を求め、求めた位置姿勢に、HMD内蔵センサ1120と右目カメラ1110との位置姿勢のずれのデータを加算して、世界座標系における右目カメラ1110の位置姿勢を求める(ステップS202)。   On the other hand, since data indicating the position and orientation measured by the HMD built-in sensor 1120 is input from the three-dimensional sensor main body 1200 via the serial I / O 1310, the CPU 1301 uses this data and the offset data to perform a well-known calculation. Thus, the position and orientation of the HMD built-in sensor 1120 in the world coordinate system is obtained, and the position and orientation deviation data between the HMD built-in sensor 1120 and the right-eye camera 1110 is added to the obtained position and orientation, and the right-eye camera 1110 in the world coordinate system. Is obtained (step S202).

次に、上記projection matrixや右目カメラ1110の位置姿勢などに応じて、周知のviewing matrixを生成し、生成したviewing matrixのデータをメモリ1302に記録する(ステップS203)。このviewing matrixは周知の通り、仮想物体を見る仮想カメラの位置姿勢を右目カメラ1110の位置姿勢に一致させるためのものである。   Next, a known viewing matrix is generated according to the projection matrix, the position and orientation of the right-eye camera 1110, and the generated viewing matrix data is recorded in the memory 1302 (step S203). As is well known, this viewing matrix is for matching the position and orientation of the virtual camera viewing the virtual object with the position and orientation of the right-eye camera 1110.

また、シリアルI/O1310を介して、3次元センサ本体1200から、手持ちセンサ5000が計測した位置姿勢を示すデータが入力されるので、CPU1301はこのデータと上記オフセットデータとを用いて周知の計算により、世界座標系における手持ちセンサ5000の位置姿勢を求める(ステップS204)。より具体的には、世界座標系における原点から世界座標系における手持ちセンサ5000の位置姿勢への変換行列STを求める処理を行う。求めた変換行列STのデータはメモリ1302に記録される。   Further, since data indicating the position and orientation measured by the handheld sensor 5000 is input from the three-dimensional sensor main body 1200 via the serial I / O 1310, the CPU 1301 performs a known calculation using this data and the offset data. Then, the position and orientation of the hand-held sensor 5000 in the world coordinate system is obtained (step S204). More specifically, processing for obtaining a conversion matrix ST from the origin in the world coordinate system to the position and orientation of the hand-held sensor 5000 in the world coordinate system is performed. The obtained transformation matrix ST data is recorded in the memory 1302.

また、この変換行列STのデータは、ネットワークI/F1390、ネットワークハブ6000を介してその他の計算機2300,3300に出力される。   The data of the transformation matrix ST is output to the other computers 2300 and 3300 via the network I / F 1390 and the network hub 6000.

次に、仮想物体の方向調整行列MDを更新する(ステップS205)。これは先に図7で示したように、指定した部品を観察者1000の方向に向けるアニメーションを実現するための処理である。   Next, the direction adjustment matrix MD of the virtual object is updated (step S205). This is a process for realizing an animation in which the designated part is directed toward the observer 1000 as shown in FIG.

図15は、このステップS205における処理の詳細を示すフローチャートである。   FIG. 15 is a flowchart showing details of the processing in step S205.

先ず、CPU1301は、仮想物体が回転中であるか否かを示すフラグを参照し、このフラグがTRUEであるか否かを判断する(ステップS400)。このフラグがFALSEである場合には仮想物体は回転していない、すなわち、回転する必要がないので、同図のフローチャートに従った処理を終了し、図11のステップS206に処理をリターンする。   First, the CPU 1301 refers to a flag indicating whether or not the virtual object is rotating, and determines whether or not this flag is TRUE (step S400). When this flag is FALSE, the virtual object is not rotated, that is, it is not necessary to rotate, so the process according to the flowchart of FIG. 11 is terminated, and the process returns to step S206 of FIG.

一方、このフラグがTRUEである場合、処理をステップS401に進め、仮想物体を回転させたい角度(方向補正目標値)RAと、現在の仮想物体の角度(方向補正現在値)RCのとの差が閾値θより小さいか否かを判断する(ステップS401)。本実施形態では閾値θとして「3度」とするが、これに限定されるものではない。また、角度RAについては後述する。   On the other hand, if this flag is TRUE, the process proceeds to step S401, and the difference between the angle (direction correction target value) RA at which the virtual object is to be rotated and the current virtual object angle (direction correction current value) RC. Is less than the threshold θ (step S401). In the present embodiment, the threshold θ is “3 degrees”, but is not limited to this. The angle RA will be described later.

上記差がθよりも小さい場合には、処理をステップS402に進め、回転が終了したものと判断し、フラグの値をFALSEに更新し(ステップS402)、同図のフローチャートに従った処理を終了し、図11のステップS206に処理をリターンする。   If the difference is smaller than θ, the process proceeds to step S402, it is determined that the rotation is completed, the flag value is updated to FALSE (step S402), and the process according to the flowchart of FIG. Then, the process returns to step S206 in FIG.

一方、上記差がθ以上である場合には、処理をステップS403に進め、現在の仮想物体の角度RCにθを加算して更新する処理を行う(ステップS403)。そして、上記方向調整行列MDに、「仮想物体の回転軸を示すベクトルRVを中心にθだけ回転する変換行列」を乗じて行列MDを更新する処理を行う(ステップS404)。   On the other hand, if the difference is equal to or larger than θ, the process proceeds to step S403, and the process of updating by adding θ to the current virtual object angle RC is performed (step S403). Then, a process for updating the matrix MD is performed by multiplying the direction adjustment matrix MD by the “transformation matrix that rotates by θ around the vector RV indicating the rotation axis of the virtual object” (step S404).

従って、ベクトルRVを軸に、仮想物体を回転させ、仮想物体の所望の部分(例えば仮想物体において観察者1000が選択した一部分)が観察者1000に見えるような角度になる場合、この角度が上記角度RAに相当する。   Therefore, when the virtual object is rotated around the vector RV and the desired part of the virtual object (for example, a part selected by the observer 1000 in the virtual object) is seen by the observer 1000, this angle is This corresponds to the angle RA.

以上説明したステップS205における処理を繰り返し行うことで、仮想物体の所望の部分を観察者1000に向けるアニメーションを実現させることができる。   By repeatedly performing the process in step S205 described above, an animation in which a desired portion of the virtual object is directed to the observer 1000 can be realized.

図11に戻って、仮想物体の位置姿勢を示す行列であるworld matrixを以下の式に従って求める(ステップS206)。   Returning to FIG. 11, a world matrix which is a matrix indicating the position and orientation of the virtual object is obtained according to the following equation (step S206).

MD・MG・ST
ここで、MDは仮想物体の方向補正行列、MGは仮想物体の重心をローカル座標の原点に移動させる変換行列である。これにより求まる行列world matrixは、仮想物体の重心位置を、手持ちセンサ5000の位置姿勢に一致させる為のものである。
MD / MG / ST
Here, MD is a virtual object direction correction matrix, and MG is a transformation matrix that moves the center of gravity of the virtual object to the origin of the local coordinates. The matrix world matrix thus obtained is for making the position of the center of gravity of the virtual object coincide with the position and orientation of the handheld sensor 5000.

次に、上記フラグがTRUEであるか否かを判断する(ステップS207)。フラグがFALSEである場合、処理をステップS208に進め、CPU1301は、仮想物体の画像をworld matrix等を用いて周知の技術により生成する(ステップS208)。この画像は上述の通り、世界座標系における右目カメラ1110の位置姿勢に応じて見える仮想物体の画像である。生成した仮想物体の画像はメモリ1302上でレンダリングする。   Next, it is determined whether or not the flag is TRUE (step S207). If the flag is FALSE, the process proceeds to step S208, and the CPU 1301 generates a virtual object image using a known technique using a world matrix or the like (step S208). As described above, this image is an image of a virtual object that can be seen according to the position and orientation of the right-eye camera 1110 in the world coordinate system. The generated virtual object image is rendered on the memory 1302.

一方、ステップS207で、フラグがTRUEである場合、処理をステップS209に進める。ステップS209,S210ではそれぞれ、仮想物体の所望の部分の画像、所望の部分ではない部分の画像をステップS208と同様にしてレンダリングするのであるが、ステップS210でのレンダリングは、レンダリング対象の画像を半透明にしてレンダリングする。レンダリング対象の画像を半透明形式にする技術については周知のものであるので、ここでの説明は省略する。   On the other hand, if the flag is TRUE in step S207, the process proceeds to step S209. In steps S209 and S210, an image of a desired portion of the virtual object and an image of a portion that is not the desired portion are rendered in the same manner as in step S208. However, in rendering in step S210, the image to be rendered is half-finished. Render with transparency. Since the technology for rendering the rendering target image in a translucent format is well known, a description thereof is omitted here.

以上のステップS208、もしくはステップS209,S210の何れの処理を行っても、メモリ1302上には仮想物体の画像がレンダリングされるのであるが、メモリ1302には先に現実空間の画像が格納されており、ステップS208、もしくはステップS209,S210の何れでも、この現実空間の画像上に仮想物体の画像をレンダリングする。これにより、結果としてメモリ1302上には、現実空間の画像上に仮想物体の画像が重畳された画像、すなわち、複合現実空間の画像が生成されるので、CPU1301はこの複合現実空間の画像のデータを、ビデオカード1330のフレームバッファに出力する(ステップS211)。その結果、ビデオカード1330のフレームバッファの画像は右目LCD1130に出力される
以上の処理を繰り返し行うことにより、観察者1000は、観察しようとする仮想物体の位置姿勢を、手持ちセンサ5000を持った手を動かすだけで変更することができるので、より直感的に仮想物体の位置姿勢を変更することができ、仮想物体をよく観察することができる。
The virtual object image is rendered on the memory 1302 regardless of the above-described processing of step S208 or steps S209 and S210, but the real space image is stored in the memory 1302 first. In step S208, or in any of steps S209 and S210, a virtual object image is rendered on the real space image. As a result, an image in which the virtual object image is superimposed on the real space image, that is, an image of the mixed reality space is generated on the memory 1302, so that the CPU 1301 stores the data of the mixed reality space image. Is output to the frame buffer of the video card 1330 (step S211). As a result, the image in the frame buffer of the video card 1330 is output to the right-eye LCD 1130. By repeating the above processing, the observer 1000 determines the position and orientation of the virtual object to be observed by the hand holding the handheld sensor 5000. The position and orientation of the virtual object can be changed more intuitively and the virtual object can be observed well.

また上述の通り、計算機1300が求めた、世界座標系における手持ちセンサ5000の位置姿勢、すなわち、行列STのデータを他の計算機2300,3300に送信することにより、計算機2300,3300は計算機1300と同様の処理を行う(上記処理において行列STを求める処理の代わりに、計算機1300から行列STのデータを受ける処理を行う)ことにより、観察者2000、3000に対して、観察者1000が手持ちセンサ5000でもってその位置や姿勢を操作している仮想物体を見せることができる。   Further, as described above, the computer 2300 and 3300 are the same as the computer 1300 by transmitting the position and orientation of the hand-held sensor 5000 in the world coordinate system, that is, the data of the matrix ST, to the other computers 2300 and 3300, as determined by the computer 1300. (The process of receiving the data of the matrix ST from the computer 1300 is performed instead of the process of obtaining the matrix ST in the above process), so that the observer 1000 can use the handheld sensor 5000 for the observers 2000 and 3000. Therefore, it is possible to show a virtual object that is manipulating the position and posture.

次に、仮想物体の一部分を観察者が指示(選択)した場合に、選択した部分を観察者1000に見えるように、仮想物体を回転させる処理について説明する。   Next, a process for rotating the virtual object so that the viewer 1000 can see the selected part when the observer instructs (selects) a part of the virtual object will be described.

仮想物体の一部分とは、例えば、仮想物体を構成する部品などである。また、その指示(選択)手段については、例えば、予め選択されているものでも良いし、計算機1300のオペレータが計算機1300に備わっているキーボードやマウスなどを用いて指示するようにしても良いし、その指示方法は特に限定するものではない。また、仮想物体の一部分とは、観察者1000に指示されたものに限定するものではなく、仮想物体に追加した部品や、削除した部品などであっても良い。すなわち、仮想物体の一部分とは、観察者1000が観察する対象の部分であって、これが何であるかは特に限定するものではない。   The part of the virtual object is, for example, a part constituting the virtual object. The instruction (selection) means may be selected in advance, for example, or an operator of the computer 1300 may instruct using a keyboard or mouse provided in the computer 1300, The instruction method is not particularly limited. Further, the part of the virtual object is not limited to that instructed by the observer 1000, and may be a part added to the virtual object or a deleted part. That is, the part of the virtual object is a part to be observed by the observer 1000, and what this is is not particularly limited.

例えば仮想モデルが図14に示す如く、複数の部品(同図では各立方体に相当)により構成されており、且つこの仮想物体を紙面手前から観察者1000が観察しており、同図において4100で示す部品が選択された場合、観察者1000はこの部品4100を観察したいのであるから、この部品4100をより見やすくするために、仮想物体を回転させ、部品4100が紙面手前にくるようにしたい。以下では同図の仮想物体を例に取り説明するが、以下の説明の本質はこれに限定されるものではないことは明らかである。   For example, as shown in FIG. 14, the virtual model is composed of a plurality of parts (corresponding to each cube in the figure), and the observer 1000 observes this virtual object from the front of the page. When the part to be shown is selected, the observer 1000 wants to observe the part 4100. In order to make the part 4100 easier to see, the virtual object is rotated so that the part 4100 comes to the front of the page. In the following description, the virtual object shown in the figure will be described as an example, but it is clear that the essence of the following description is not limited to this.

図12は、仮想物体の一部分が指示されている場合に、この一部分を観察者に対して向けるべく、仮想物体を回転させる処理のフローチャートである。同図のフローチャートに従った処理は、仮想物体の一部が選択された際に、図15のフローチャートにおいて、ステップS400の前で行われるものである。   FIG. 12 is a flowchart of processing for rotating a virtual object so that the virtual object is directed to the observer when a part of the virtual object is instructed. The process according to the flowchart of FIG. 15 is performed before step S400 in the flowchart of FIG. 15 when a part of the virtual object is selected.

先ず、CPU1301は、選択された部品4100の重心位置(部品4100の位置)を求める(ステップS300)。この重心位置は、例えば部品4100がポリゴンにより構成されている場合には、各ポリゴンの頂点位置の平均値で近似する。   First, the CPU 1301 obtains the position of the center of gravity of the selected component 4100 (the position of the component 4100) (step S300). This centroid position is approximated by the average value of the vertex positions of each polygon, for example, when the component 4100 is formed of polygons.

次に、CPU1301は、ステップS300で求めた重心位置と、仮想物体全体の重心位置とを結ぶベクトルPDを求める(ステップS301)。ベクトルPDは、選択された部品4100が、現在どの方向を向いているかを示すものである。   Next, the CPU 1301 obtains a vector PD that connects the centroid position obtained in step S300 and the centroid position of the entire virtual object (step S301). The vector PD indicates which direction the selected component 4100 is currently facing.

次に、CPU1301は、世界座標系におけるHMD内蔵センサ1120の位置(この位置を元に、例えば右目カメラ1110の世界座標系における位置や左目カメラ1111の世界座標系における位置を計算し、これらの位置を用いても良いが、観察者1000の「視点位置」とする位置であることが好ましい)と、仮想物体の重心位置とを結ぶベクトルUDを求める(ステップS302)。なお、本実施形態の場合には、観察者は3人いるので、それぞれの観察者の頭部に装着されているHMDに備わっているHMD内蔵センサの世界座標系における位置を取得し、取得した3つの位置を平均化した位置を求め、求めた位置と仮想物体の重心位置とを結ぶベクトルを上記ベクトルUDとして求める。ベクトルUDは、部品4100を向けるべき方向を示すものである。   Next, the CPU 1301 calculates the position of the HMD built-in sensor 1120 in the world coordinate system (for example, based on this position, the position of the right eye camera 1110 in the world coordinate system or the position of the left eye camera 1111 in the world coordinate system) May be used, but it is preferable that the position is the “viewpoint position” of the observer 1000) and the center of gravity position of the virtual object is obtained (step S302). In the case of the present embodiment, since there are three observers, the position in the world coordinate system of the HMD built-in sensor provided in the HMD attached to the head of each observer is acquired and acquired. A position obtained by averaging the three positions is obtained, and a vector connecting the obtained position and the position of the center of gravity of the virtual object is obtained as the vector UD. The vector UD indicates the direction in which the part 4100 should be directed.

次に、CPU1301は、ベクトルPDとベクトルUDとがなす角RAをそれぞれのベクトルの内積を計算することにより求める(ステップS303)。RAは、仮想物体を回転させる角度(方向補正目標値)となる。次に、CPU1301は、ベクトルPDとベクトルUDとの外積を計算し、それぞれのベクトルに垂直なベクトルRVを求める(ステップS304)。ベクトルRVは、仮想物体を回転させるときの回転軸となる。図13は、上記各ベクトルRV、UD、PDを示す図である。   Next, the CPU 1301 obtains an angle RA formed by the vector PD and the vector UD by calculating the inner product of the vectors (step S303). RA is an angle (direction correction target value) for rotating the virtual object. Next, the CPU 1301 calculates the outer product of the vector PD and the vector UD, and obtains a vector RV perpendicular to each vector (step S304). The vector RV becomes a rotation axis when rotating the virtual object. FIG. 13 shows the vectors RV, UD, and PD.

次に、CPU1301は、角度RAが180度より大きかった場合には(ステップS305)、回転の向きを逆にするため、回転軸RVの向きを反転させ、角度RAを「180度−RA」に更新する(ステップS306)。   Next, when the angle RA is greater than 180 degrees (step S305), the CPU 1301 reverses the direction of the rotation axis RV and reverses the angle RA to “180 degrees−RA” in order to reverse the rotation direction. Update (step S306).

次に、現在何度だけ仮想物体を回転させたかを示す角RC(方向補正現在値)を0度に設定し、仮想物体を回転させている途中であることを示すフラグをTRUEにする(ステップS307)。   Next, an angle RC (direction correction current value) indicating how many times the virtual object has been rotated is set to 0 degrees, and a flag indicating that the virtual object is being rotated is set to TRUE (step S307).

そして処理を、図15のステップS400に進める。   Then, the process proceeds to step S400 in FIG.

すなわち、この処理では、仮想物体の重心位置と部品4100の位置とを結ぶベクトルが、仮想物体の重心位置と観察者の視点位置とを結ぶベクトルと略一致するように、仮想物体を回転させている。   That is, in this process, the virtual object is rotated so that the vector connecting the center of gravity of the virtual object and the position of the part 4100 substantially matches the vector connecting the center of gravity of the virtual object and the viewpoint position of the observer. Yes.

以上の処理により、部品4100を、手持ちセンサ5000の位置で仮想物体の重心を中心に回転させて、観察者1000側に向けることができる。   Through the above processing, the component 4100 can be rotated toward the observer 1000 by rotating the center of the center of gravity of the virtual object at the position of the handheld sensor 5000.

以上の説明により、本実施形態によって、手持ちセンサの位置を変えたり、向きを変えることで、仮想物体を自由な角度から眺めることができる。   As described above, according to the present embodiment, the virtual object can be viewed from a free angle by changing the position or direction of the handheld sensor.

また、手持ちセンサの位置は、仮想物体の重心と一致している。重心が一致しているため、観察者は「手持ちセンサで仮想モデルを持っている」という感覚で仮想物体を操作することができる。   In addition, the position of the handheld sensor coincides with the center of gravity of the virtual object. Since the centers of gravity coincide with each other, the observer can operate the virtual object with a sense that “the handheld sensor has a virtual model”.

また仮想モデルを構成する一部分(部品)を選択すると、その部品が観察者側に向くよう仮想物体を重心を中心に回転させることができる。また、観察者が複数人のときには、最も多くの観察者に見える方向に仮想物体を回転させることができる。これにより、仮想物体の検討などをスムーズに行うことができる。   When a part (part) constituting the virtual model is selected, the virtual object can be rotated around the center of gravity so that the part faces the viewer. Further, when there are a plurality of observers, the virtual object can be rotated in a direction that can be seen by the most observers. Thereby, a virtual object can be examined smoothly.

また仮想物体が見やすい方向に回転している間は、仮想物体の選択された部品以外の部分は半透明に表示する。これにより選択した部品をよりわかりやすく観察者に提示できる。   Further, while the virtual object is rotated in an easy-to-view direction, the parts other than the selected part of the virtual object are displayed translucently. As a result, the selected part can be presented to the observer in an easy-to-understand manner.

なお、本実施形態では、仮想物体の位置姿勢として上記world matrixが示す位置姿勢を設定していたが、単純に、手持ちセンサ5000の位置姿勢をそのまま設定しても良い。 また、本実施形態では、選択した部品の画像以外を半透明にして表示したが、選択した部品以外を半透明にして表示するか否かを切り替えるようにしても良いし、選択した部品以外を所定の色でもって表示するようにしても良いし、選択した部品、選択した部品以外をどのようにして表示するかの表示形態は特に限定するものではない。   In the present embodiment, the position and orientation indicated by the world matrix is set as the position and orientation of the virtual object. However, the position and orientation of the handheld sensor 5000 may be set as it is. Further, in the present embodiment, images other than the selected component image are displayed in a semi-transparent state. However, it is possible to switch whether to display other than the selected component in a semi-transparent state. The display may be displayed in a predetermined color, and the display form of how to display the selected component and other than the selected component is not particularly limited.

また、HMDの位置姿勢を求める方法は上記方法に限定するものではなく、右目カメラ1110、左目カメラ1111が撮像した画像中の世界座標系における位置が既知であるマーカなどから周知の技術によりHMDの姿勢を推定してもよい。   In addition, the method of obtaining the position and orientation of the HMD is not limited to the above method, and the HMD can be obtained by a known technique from a marker or the like whose position in the world coordinate system in the image captured by the right eye camera 1110 and the left eye camera 1111 is known. The posture may be estimated.

また、本実施形態では、仮想物体を重心位置を中心として回転させたが、回転の中心位置は重心位置に限定するものではなく、仮想物体中の任意の1点でも良いし、その中心位置の設定は特に限定するもではない。   In this embodiment, the virtual object is rotated around the center of gravity. However, the center position of the rotation is not limited to the center of gravity, and may be any one point in the virtual object. The setting is not particularly limited.

また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。   Also, an object of the present invention is to supply a recording medium (or storage medium) in which a program code of software that realizes the functions of the above-described embodiments is recorded to a system or apparatus, and a computer (or CPU or CPU) of the system or apparatus. Needless to say, this can also be achieved when the MPU) reads and executes the program code stored in the recording medium. In this case, the program code itself read from the recording medium realizes the functions of the above-described embodiment, and the recording medium on which the program code is recorded constitutes the present invention.

また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。   Further, by executing the program code read by the computer, not only the functions of the above-described embodiments are realized, but also an operating system (OS) running on the computer based on the instruction of the program code. It goes without saying that a case where the function of the above-described embodiment is realized by performing part or all of the actual processing and the processing is included.

さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。   Furthermore, after the program code read from the recording medium is written into a memory provided in a function expansion card inserted into the computer or a function expansion unit connected to the computer, the function is based on the instruction of the program code. It goes without saying that the CPU or the like provided in the expansion card or the function expansion unit performs part or all of the actual processing and the functions of the above-described embodiments are realized by the processing.

本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。   When the present invention is applied to the recording medium, program code corresponding to the flowchart described above is stored in the recording medium.

CADモデル(プリンタのトナーカートリッジのCADモデル)100をCG物体として表示し、CADモデルのプレビューに使用している様子を示す図である。FIG. 3 is a diagram illustrating a state in which a CAD model (CAD model of a toner cartridge of a printer) 100 is displayed as a CG object and used for a CAD model preview. HMDの構成を示す図である。It is a figure which shows the structure of HMD. HMD内の各LCD1130、1131に表示される、各カメラ1110、1111で撮影された実写映像と、CG画像として描かれたCADモデル300が合成された画像を示す図である。It is a figure which shows the image by which the CAD model 300 drawn as a CG image and the real image image | photographed with each camera 1110, 1111 displayed on each LCD1130,1311 in HMD was synthesize | combined. 複数人により観察できる、MR技術を使用したCADビューワの機器構成を示す図である。It is a figure which shows the apparatus structure of the CAD viewer using MR technique which can be observed by several persons. 手持ちセンサ5000の構成例を示す図である。It is a figure which shows the structural example of the handheld sensor 5000. FIG. 手持ちセンサ5000の位置姿勢が設定された仮想物体の表示例を示す図である。It is a figure which shows the example of a display of the virtual object to which the position and orientation of the handheld sensor 5000 was set. 指定された部品を利用者の方向に向ける様子を示す図である。It is a figure which shows a mode that the designated components are orient | assigned to a user's direction. 本発明の実施形態に係るシステムの外観図である。1 is an external view of a system according to an embodiment of the present invention. 観察者1000に対して複合現実空間の画像を提供する為の装置の基本構成を示す図である。It is a figure which shows the basic composition of the apparatus for providing the image of mixed reality space with respect to the observer 1000. FIG. 計算機1300を起動した際にCPU1301が行う処理のフローチャートである。10 is a flowchart of processing performed by a CPU 1301 when a computer 1300 is activated. CPU1301、及びその他の各部が、複合現実空間の画像を生成して観察者1000に提示する為の処理のフローチャートである。6 is a flowchart of processing for generating an image of a mixed reality space and presenting it to an observer 1000 by the CPU 1301 and other units. 仮想物体の一部分が指示されている場合に、この一部分を観察者に対して向けるべく、仮想物体を回転させる処理のフローチャートである。When a part of a virtual object is instructed, it is a flowchart of a process of rotating the virtual object so that the part is directed toward the observer. 各ベクトルRV、UD、PDを示す図である。It is a figure which shows each vector RV, UD, PD. 複数の部品(同図では各立方体に相当)により構成されている仮想物体を示す図である。It is a figure which shows the virtual object comprised by several components (equivalent to each cube in the same figure). ステップS205における処理の詳細を示すフローチャートである。It is a flowchart which shows the detail of the process in step S205.

Claims (7)

現実空間中に仮想物体を重畳させて観察者に提供する画像処理方法であって、
前記観察者の視点の位置姿勢を計測する為のセンサの計測結果に基づいて、当該視点の位置姿勢を計算する第1の計算工程と、
前記観察者の手に装着されている手持ちセンサにより計測された結果に基づいて、当該手持ちセンサの位置姿勢を求める第2の計算工程と、
前記第2の計算工程で計算された位置姿勢を、前記観察者が観察する対象の仮想物体の位置姿勢として設定する設定工程と、
前記設定工程で位置姿勢が設定された仮想物体を前記第1の計算工程で求めた位置姿勢の視点から見た場合の画像を生成して、現実空間に重畳させて前記観察者に提供する提供工程とを備え、
更に前記提供工程では、
前記仮想物体における一部分が指示された場合、当該一部分が前記視点の位置姿勢から見えるように前記仮想物体の向きを変化させた前記仮想物体を前記第1の計算工程で求めた位置姿勢の視点から見た場合の画像を生成して、現実空間に重畳させて前記観察者に提供することを特徴とする画像処理方法。
An image processing method for providing an observer with a virtual object superimposed in a real space,
A first calculation step of calculating a position and orientation of the viewpoint based on a measurement result of a sensor for measuring the position and orientation of the observer's viewpoint;
A second calculation step for determining a position and orientation of the handheld sensor based on a result measured by the handheld sensor attached to the observer's hand;
A setting step for setting the position and orientation calculated in the second calculation step as a position and orientation of a virtual object to be observed by the observer;
Provided to the observer by generating an image when the virtual object having the position and orientation set in the setting step is viewed from the viewpoint of the position and orientation obtained in the first calculation step and superimposing it on a real space A process,
Furthermore, in the providing step,
When a part of the virtual object is instructed, the virtual object whose orientation has been changed so that the part can be seen from the position and orientation of the viewpoint is determined from the viewpoint of the position and orientation obtained in the first calculation step. An image processing method characterized in that an image when viewed is generated and provided to the observer by superimposing it on a real space.
前記設定工程では、前記観察者が観察する対象の仮想物体の重心の位置姿勢として、前記第2の計算工程で計算された位置姿勢を設定することを特徴とする請求項1に記載の画像処理方法。   2. The image processing according to claim 1, wherein in the setting step, the position and orientation calculated in the second calculation step is set as a position and orientation of a center of gravity of a virtual object to be observed by the observer. Method. 前記提供工程では、前記仮想物体の重心位置と前記一部分の位置とを結ぶベクトルが、前記仮想物体の重心位置と前記観察者の視点位置とを結ぶベクトルと略一致するように、前記仮想物体を回転させることを特徴とする請求項1に記載の画像処理方法。   In the providing step, the virtual object is set such that a vector connecting the center of gravity position of the virtual object and the position of the part substantially matches a vector connecting the center of gravity position of the virtual object and the viewpoint position of the observer. The image processing method according to claim 1, wherein the image processing method is rotated. 前記提供工程では、前記仮想物体の画像を生成する際、前記一部分以外を半透明にした画像を生成することを特徴とする請求項3に記載の画像処理方法。   The image processing method according to claim 3, wherein, in the providing step, when generating the image of the virtual object, an image in which a part other than the part is made translucent is generated. 現実空間中に仮想物体を重畳させて観察者に提供する画像処理装置であって、
前記観察者の視点の位置姿勢を計測する為のセンサの計測結果に基づいて、当該視点の位置姿勢を計算する第1の計算手段と、
前記観察者の手に装着されている手持ちセンサにより計測された結果に基づいて、当該手持ちセンサの位置姿勢を求める第2の計算手段と、
前記第2の計算手段によって計算された位置姿勢を、前記観察者が観察する対象の仮想物体の位置姿勢として設定する設定手段と、
前記設定手段によって位置姿勢が設定された仮想物体を前記第1の計算手段によって求めた位置姿勢の視点から見た場合の画像を生成して、現実空間に重畳させて前記観察者に提供する提供手段とを備え、
更に前記提供手段は、
前記仮想物体における一部分が指示された場合、当該一部分が前記視点の位置姿勢から見えるように前記仮想物体の向きを変化させた前記仮想物体を前記第1の計算手段によって求めた位置姿勢の視点から見た場合の画像を生成して、現実空間に重畳させて前記観察者に提供することを特徴とする画像処理装置。
An image processing apparatus that provides a viewer with a virtual object superimposed in a real space,
First calculation means for calculating the position and orientation of the viewpoint based on a measurement result of a sensor for measuring the position and orientation of the observer's viewpoint;
Second calculation means for obtaining a position and orientation of the handheld sensor based on a result measured by the handheld sensor attached to the observer's hand;
Setting means for setting the position and orientation calculated by the second calculation means as the position and orientation of a virtual object to be observed by the observer;
Provided to the observer by generating an image when the virtual object having the position and orientation set by the setting means is viewed from the viewpoint of the position and orientation obtained by the first calculation means and superimposing it on a real space Means and
Further, the providing means includes
When a part of the virtual object is designated, the virtual object in which the direction of the virtual object is changed so that the part can be seen from the position and orientation of the viewpoint is determined from the viewpoint of the position and orientation obtained by the first calculation unit. An image processing apparatus, characterized in that an image when viewed is generated and provided to the observer by being superimposed on a real space.
コンピュータに、請求項1乃至4の何れか1項に記載の画像処理方法を実行させることを特徴とするプログラム。   A program causing a computer to execute the image processing method according to any one of claims 1 to 4. 請求項6に記載のプログラムを格納することを特徴とする、コンピュータ読みとり可能な記憶媒体。   A computer-readable storage medium storing the program according to claim 6.
JP2004064491A 2004-03-08 2004-03-08 Method and device for image processing Withdrawn JP2005251118A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004064491A JP2005251118A (en) 2004-03-08 2004-03-08 Method and device for image processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004064491A JP2005251118A (en) 2004-03-08 2004-03-08 Method and device for image processing

Publications (1)

Publication Number Publication Date
JP2005251118A true JP2005251118A (en) 2005-09-15

Family

ID=35031510

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004064491A Withdrawn JP2005251118A (en) 2004-03-08 2004-03-08 Method and device for image processing

Country Status (1)

Country Link
JP (1) JP2005251118A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007042073A (en) * 2005-07-01 2007-02-15 Canon Inc Video presentation system, video presentation method, program for causing computer to execute video presentation method and storage medium
JP2012108842A (en) * 2010-11-19 2012-06-07 Konica Minolta Holdings Inc Display system, display processing device, display method, and display program
JP2012178067A (en) * 2011-02-25 2012-09-13 Nintendo Co Ltd Information processing system, information processing method, information processor and information processing program
JP2013061978A (en) * 2007-01-05 2013-04-04 Total Immersion Method and devices for real time insertion of virtual objects in image stream using data from real scene represented by the images
JP2015228256A (en) * 2011-03-29 2015-12-17 クアルコム,インコーポレイテッド System for rendering of shared digital interfaces relative to each user's point of view
US10078914B2 (en) 2013-09-13 2018-09-18 Fujitsu Limited Setting method and information processing device
CN112348753A (en) * 2020-10-28 2021-02-09 杭州如雷科技有限公司 Projection method and system for immersive content
JP7480388B2 (en) 2019-03-06 2024-05-09 マクセル株式会社 Head-mounted information processing device

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007042073A (en) * 2005-07-01 2007-02-15 Canon Inc Video presentation system, video presentation method, program for causing computer to execute video presentation method and storage medium
JP2013061978A (en) * 2007-01-05 2013-04-04 Total Immersion Method and devices for real time insertion of virtual objects in image stream using data from real scene represented by the images
JP2012108842A (en) * 2010-11-19 2012-06-07 Konica Minolta Holdings Inc Display system, display processing device, display method, and display program
JP2012178067A (en) * 2011-02-25 2012-09-13 Nintendo Co Ltd Information processing system, information processing method, information processor and information processing program
US8970623B2 (en) 2011-02-25 2015-03-03 Nintendo Co., Ltd. Information processing system, information processing method, information processing device and tangible recoding medium recording information processing program
JP2015228256A (en) * 2011-03-29 2015-12-17 クアルコム,インコーポレイテッド System for rendering of shared digital interfaces relative to each user's point of view
US10078914B2 (en) 2013-09-13 2018-09-18 Fujitsu Limited Setting method and information processing device
JP7480388B2 (en) 2019-03-06 2024-05-09 マクセル株式会社 Head-mounted information processing device
CN112348753A (en) * 2020-10-28 2021-02-09 杭州如雷科技有限公司 Projection method and system for immersive content

Similar Documents

Publication Publication Date Title
KR102517876B1 (en) Technique for recording augmented reality data
JP4227561B2 (en) Image processing method and image processing apparatus
JP4262011B2 (en) Image presentation method and apparatus
JP4950834B2 (en) Image processing apparatus and image processing method
JP4533087B2 (en) Image processing method and image processing apparatus
JP4933406B2 (en) Image processing apparatus and image processing method
JP4553362B2 (en) System, image processing apparatus, and information processing method
JP4757115B2 (en) Image processing apparatus and image processing method
JP2009025918A (en) Image processor and image processing method
JP2004062756A (en) Information-presenting device and information-processing method
JP2020514909A (en) Mixed reality system with multi-source virtual content composition and method of using the same to generate virtual content
JP2005107971A (en) Augmented reality space image generation method and augmented reality system
JP2008040832A (en) Mixed sense of reality presentation system and control method for it
JP2019008623A (en) Information processing apparatus, information processing apparatus control method, computer program, and storage medium
JP2005174021A (en) Method and device for presenting information
JP2016122392A (en) Information processing apparatus, information processing system, control method and program of the same
JP2006252468A (en) Image processing method and image processing system
JP2005251118A (en) Method and device for image processing
JP4235522B2 (en) Image processing apparatus, image processing method, and program
JP6726016B2 (en) Information processing device and information processing method
JP4689344B2 (en) Information processing method and information processing apparatus
JP2023065528A (en) Head-mounted information processing apparatus and head-mounted display system
JP4217661B2 (en) Image processing method and image processing apparatus
JP2008217119A (en) System, image processor and image processing method
JP2019040357A (en) Image processing system, image processing method and computer program

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070605