JP2007004714A - Information processing method and information processing unit - Google Patents
Information processing method and information processing unit Download PDFInfo
- Publication number
- JP2007004714A JP2007004714A JP2005187082A JP2005187082A JP2007004714A JP 2007004714 A JP2007004714 A JP 2007004714A JP 2005187082 A JP2005187082 A JP 2005187082A JP 2005187082 A JP2005187082 A JP 2005187082A JP 2007004714 A JP2007004714 A JP 2007004714A
- Authority
- JP
- Japan
- Prior art keywords
- input
- timing
- image
- sensor
- orientation information
- 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
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
- Position Input By Displaying (AREA)
- Image Analysis (AREA)
Abstract
Description
本発明は、現実空間と仮想空間とを合成した複合現実空間の画像を提供するための技術に関するものである。 The present invention relates to a technique for providing an image of a mixed reality space obtained by synthesizing a real space and a virtual 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
利用者は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
図4は、MR技術を使用したCADビューワの機器構成を示す図である。HMD1100に備わっているカメラにより撮影された実写映像は計算機1300にキャプチャされ、内部でCADモデルのCGと合成される。CADモデルは手持ちセンサ5000の位置に手持ちセンサ5000の姿勢でもって配置される。手持ちセンサ5000の位置姿勢はセンサ装置1200,1210により計測される。合成した画像は映像信号としてHMD1100に送られる。
FIG. 4 is a diagram showing a device configuration of a CAD viewer using MR technology. A live-action image taken by a camera provided in the HMD 1100 is captured by a
実写映像の上にCADモデルが合成されることで、利用者にはあたかもCADモデルがその場にあるかのように観測される。
しかしながら先に示したシステムでは、取り込んだ実写映像とCADモデルとが完全に一致しないという問題があった。 However, the above-described system has a problem that the captured real image and the CAD model do not completely match.
図5は、手持ちセンサ5000とCADモデル4000との位置姿勢関係を示す図である。同図に示す如く、手持ちセンサ5000が静止しているときには手持ちセンサ5000上にCADモデル4000が表示されていても、手持ちセンサ5000を移動させると手持ちセンサ5000の動きに遅れてCADモデル4000が動くといった症状が観測される。
FIG. 5 is a diagram illustrating a position and orientation relationship between the hand-held
これは実写画像のキャプチャ時刻と位置情報の測定時刻が異なることが原因である。図5の場合には、実写画像のキャプチャ時刻の方が位置情報の測定時刻より早い場合である。言い換えると実写画像のキャプチャに時間がかかり、位置センサに比べてキャプチャが遅れている状況である。 This is because the capture time of the actual image and the measurement time of the position information are different. In the case of FIG. 5, the capture time of the real image is earlier than the measurement time of the position information. In other words, it takes time to capture a real image, and the capture is delayed as compared to the position sensor.
実写映像の場合には、HMD1100からの映像は計算機1300内のビデオキャプチャカード内で1フレーム分バッファされるので1/30秒以上の時間がかかる。また計算機1300内で映像を処理する前に、OSなどによる処理時間がかかっている。
In the case of a live-action video, since the video from the HMD 1100 is buffered for one frame in the video capture card in the
位置情報の場合には、位置センサ1200内のコントローラが磁気センサ1210からの信号を処理してセンサの位置を計算するのに時間がかかる。また位置センサ1200と計算機1300が通信する時間、計算機1300のOSなどによる処理時間がかかっている。
In the case of position information, it takes time for the controller in the
このように実写映像、位置情報の取得には遅れ要因があり、両者の遅れ時間は異なっている。そのため計算機1300が単に実写映像と位置情報を取得して実写映像とCADモデル4000を合成しても、図5のように実写映像とCADモデル4000の位置がずれてしまっていた。
As described above, there are delay factors in the acquisition of the actual image and position information, and the delay times of the two are different. Therefore, even if the
またこのような遅れの解析や、どのような応用分野にそのMRシステムを使用できるか見極めるため、実写映像や位置情報の遅れの絶対量を知りたいという要求もある。例えば映像の遅れが0.3秒ほどあるから改良の余地があるとか、遅れが0.3秒ほどあるからHMDをかけてキャッチボールは難しそうだ、とかいった判断を行いたい。 In addition, there is also a demand for knowing the absolute amount of delays in live-action video and position information in order to analyze such delays and determine in which application fields the MR system can be used. For example, I would like to make a judgment that there is room for improvement because there is a delay of about 0.3 seconds, or that it is difficult to catch a ball with HMD because there is a delay of about 0.3 seconds.
だがそのような遅れの絶対量も、従来のシステムでは知ることはできなかった。 However, the absolute amount of such delays could not be known by conventional systems.
本発明は以上の問題に鑑みてなされたものであり、現実空間の映像を取得するタイミングと、位置姿勢情報を取得するタイミングとの同期を取るための技術を提供することを目的とする。 The present invention has been made in view of the above problems, and an object of the present invention is to provide a technique for synchronizing the timing of acquiring a real space image and the timing of acquiring position and orientation information.
また、それぞれの取得タイミングの同期を取ることが必要なシステムに適用することを目的とする。 Moreover, it aims at applying to the system which needs to synchronize each acquisition timing.
本発明の目的を達成するために、例えば本発明の情報処理方法は以下の構成を備える。 In order to achieve the object of the present invention, for example, an information processing method of the present invention comprises the following arrangement.
即ち、指示具の位置姿勢情報を連続して入力する第1の入力工程と、
前記指示具を含む現実空間の映像を連続して入力する第2の入力工程と、
前記第1の入力工程で入力した位置姿勢情報に基づいて、前記指示具の移動量が極小となるタイミングを検知する第1の検知工程と、
前記第2の入力工程で入力した映像に基づいて、前記指示具の移動量が極小となるタイミングを検知する第2の検知工程と、
前記第1の検知工程で検知したタイミングと前記第2の検知工程で検知したタイミングとに基づいて、前記現実空間の映像の取得タイミングと前記位置姿勢情報の取得タイミングとのずれを求める計算工程と、
前記計算工程で求めた前記ずれを出力する第1の出力工程と
を備えることを特徴とする。
That is, a first input step for continuously inputting the position and orientation information of the pointing tool;
A second input step of continuously inputting an image of the real space including the pointing device;
Based on the position and orientation information input in the first input step, a first detection step of detecting a timing at which the amount of movement of the pointing tool is minimized;
A second detection step of detecting a timing at which the amount of movement of the pointing tool is minimized based on the video input in the second input step;
A calculation step for obtaining a difference between the acquisition timing of the image in the real space and the acquisition timing of the position and orientation information based on the timing detected in the first detection step and the timing detected in the second detection step; ,
And a first output step for outputting the deviation obtained in the calculation step.
本発明の目的を達成するために、例えば本発明の情報処理方法は以下の構成を備える。 In order to achieve the object of the present invention, for example, an information processing method of the present invention comprises the following arrangement.
即ち、第1の状態、第2の状態の何れかの状態を取るように制御可能なデバイスを制御する制御工程と、
前記制御工程における制御に従って前記デバイスが第1の状態となったタイミングを検知する第1の検知工程と、
指示具を含む現実空間の映像に基づいて、前記デバイスが第1の状態となったタイミングを検知する第2の検知工程と、
前記第1の検知工程で検知したタイミングと、前記第2の検知工程で検知したタイミングとの差分を出力するの出力工程と
を備えることを特徴とする。
That is, a control step of controlling a device that can be controlled to take either the first state or the second state;
A first detection step of detecting the timing when the device is in the first state according to the control in the control step;
A second detection step of detecting a timing when the device is in the first state based on an image of the real space including the pointing tool;
An output step of outputting a difference between the timing detected in the first detection step and the timing detected in the second detection step is provided.
本発明の目的を達成するために、例えば本発明の情報処理装置は以下の構成を備える。 In order to achieve the object of the present invention, for example, an information processing apparatus of the present invention comprises the following arrangement.
即ち、指示具の位置姿勢情報を連続して入力する第1の入力手段と、
前記指示具を含む現実空間の映像を連続して入力する第2の入力手段と、
前記第1の入力手段が入力した位置姿勢情報に基づいて、前記指示具の移動量が極小となるタイミングを検知する第1の検知手段と、
前記第2の入力手段が入力した映像に基づいて、前記指示具の移動量が極小となるタイミングを検知する第2の検知手段と、
前記第1の検知手段が検知したタイミングと前記第2の検知手段が検知したタイミングとに基づいて、前記現実空間の映像の取得タイミングと前記位置姿勢情報の取得タイミングとのずれを求める計算手段と、
前記計算手段で求めた前記ずれを出力する第1の出力手段と
を備えることを特徴とする。
That is, a first input means for continuously inputting the position and orientation information of the pointing tool;
Second input means for continuously inputting an image of a real space including the pointing device;
First detection means for detecting a timing at which the amount of movement of the pointing tool is minimized based on the position and orientation information input by the first input means;
Second detection means for detecting a timing at which the amount of movement of the pointing tool is minimized based on the video input by the second input means;
Calculation means for obtaining a difference between the acquisition timing of the image of the real space and the acquisition timing of the position and orientation information based on the timing detected by the first detection means and the timing detected by the second detection means; ,
And a first output means for outputting the deviation obtained by the calculation means.
本発明の目的を達成するために、例えば本発明の情報処理装置は以下の構成を備える。 In order to achieve the object of the present invention, for example, an information processing apparatus of the present invention comprises the following arrangement.
即ち、第1の状態、第2の状態の何れかの状態を取るように制御可能なデバイスを制御する制御手段と、
前記制御手段による制御に従って前記デバイスが第1の状態となったタイミングを検知する第1の検知手段と、
指示具を含む現実空間の映像に基づいて、前記デバイスが第1の状態となったタイミングを検知する第2の検知手段と、
前記第1の検知手段が検知したタイミングと、前記第2の検知手段が検知したタイミングとの差分を出力するの出力手段と
を備えることを特徴とする。
That is, control means for controlling a device that can be controlled to take either the first state or the second state;
First detection means for detecting timing when the device is in a first state in accordance with control by the control means;
Second detection means for detecting timing when the device is in the first state based on an image of the real space including the pointing tool;
An output means for outputting a difference between the timing detected by the first detection means and the timing detected by the second detection means.
本発明の構成により、現実空間の映像を取得するタイミングと、位置姿勢情報を取得するタイミングとの同期を取ることができる。また、それぞれの取得タイミングの同期を取ることが必要なシステムに適用することができる。 With the configuration of the present invention, it is possible to synchronize the timing for acquiring the video in the real space and the timing for acquiring the position and orientation information. Further, the present invention can be applied to a system that needs to synchronize each acquisition timing.
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。 Hereinafter, the present invention will be described in detail according to preferred embodiments with reference to the accompanying drawings.
[第1の実施形態]
ユーザに現実空間と仮想空間とを合成した空間(以下、複合現実空間と呼称する)を提供するための本実施形態に係るシステムの外観については従来のものを用いるので、その外観は図4に示すものとなる。
[First Embodiment]
Since the conventional appearance of the system according to this embodiment for providing a user with a space (hereinafter referred to as a mixed reality space) obtained by combining the real space and the virtual space is used, the appearance is shown in FIG. It will be shown.
改めて、図4に示す各部について説明する。本実施形態に係るシステムは、現実空間中に仮想物体(CGモデル)を重畳させてユーザに提供する周知のMR技術を用いて、ユーザの観察対象である仮想物体に対して、ユーザがその位置や姿勢の変更といった各種の操作をより簡便にするためのものである。以下、本実施形態に係るシステムについて詳細に説明する。 Again, each part shown in FIG. 4 is demonstrated. The system according to the present embodiment uses the well-known MR technology that provides a user with a virtual object (CG model) superimposed on the real space, and the user positions the virtual object that is the observation target of the user. This is to make various operations such as changing the position and posture easier. Hereinafter, the system according to the present embodiment will be described in detail.
同図において1000はユーザで、本システムを用いて、現実空間中に仮想物体を重畳させた空間(複合現実空間)を観察する。ユーザ1000の頭部には周知のHMD1100が装着されており、ユーザ1000は自身の頭部に装着されたHMD1100により、複合現実空間の映像を見ることができる。
In the figure,
ユーザ1000に提供する複合現実空間の映像は、HMD1100に接続されているコンピュータ1300により生成される。
The video of the mixed reality space provided to the
また、ユーザ1000は手持ちセンサ5000を手に持っている。なお、手持ちセンサ5000は必ずしも手に「持つ」必要はなく、手に「装着」していればよい。手持ちセンサ5000は、後述する3次元センサ固定局1210との相対位置姿勢を計測し、その計測結果を示す信号を後述する3次元センサ本体1200に出力する。
The
3次元センサ固定局1210は、磁気センサの場合、HMD1100に備わっている後述のセンサ、手持ちセンサ5000がそれぞれの位置姿勢の計測を行うために検知する磁界を発生する。以下の説明では便宜上、センサは全て磁気センサものを用いることとするが、その他のセンサ、例えば、超音波センサなどを用いても以下の説明は実質的には同じである。
In the case of a magnetic sensor, the three-dimensional sensor fixed
3次元センサ本体1200は、HMD1100に備わっている後述のセンサ、3次元センサ固定局1210、手持ちセンサ5000を制御し、HMD1100に備わっている後述のセンサ、手持ちセンサ5000が計測した結果をデータとしてコンピュータ1300に出力する。
The three-dimensional sensor
コンピュータ1300は例えばPC(パーソナルコンピュータ)やWS(ワークステーション)等により構成されており、ユーザ1000に自身の頭部の位置姿勢に応じた複合現実空間の画像を提供するための各種の処理を行う。
The
図7は、コンピュータ1300を含む、システムの基本構成を示すブロック図である。
FIG. 7 is a block diagram showing the basic configuration of the system including the
HMD1100はHMD内蔵センサ1120,右目カメラ1110、左目カメラ1111、右目LCD1130,左目LCD1131により構成されている。HMD内蔵センサ1120は、3次元センサ固定局1210から発せられる磁界を検知し、検知した磁界の強度を示す信号を3次元センサ本体1200に出力する。
The
手持ちセンサ5000は、上述の通り、観察者1000の手に装着されているもので、その位置姿勢は観察者1000の手が動くことにより変化する。手持ちセンサ5000は、3次元センサ固定局1210から発せられる磁界を検知し、検知した磁界の強度を示す信号を3次元センサ本体1200に出力する。
As described above, the hand-held
3次元センサ本体1200は、HMD内蔵センサ1120、手持ちセンサ5000から受けた信号の強度に基づいて、センサ座標系(3次元センサ固定局1210の位置を原点とし、この原点で互いに直交する3軸をそれぞれx、y、z軸とする座標系)におけるHMD内蔵センサ1120、手持ちセンサ5000の位置姿勢を示すデータを求め、コンピュータ1300に出力する。
The three-dimensional sensor
右目カメラ1110、左目カメラ1111はそれぞれ、HMD1100を頭部に装着する観察者1000の右目、左目から見える現実空間の動画像を撮像するものである。右目カメラ1110、左目カメラ1111のそれぞれにより撮像された動画像を構成する各フレームの画像データはコンピュータ1300に出力する。
The right-
右目LCD1130、左目LCD1131はそれぞれ、右目カメラ1110、左目カメラ1111のそれぞれによって撮像された現実空間に、コンピュータ1300が生成した仮想物体の画像を重畳させた画像(複合現実空間の画像)を表示するものであり、これにより、HMD1100を頭部に装着した観察者1000は、自身の右目、左目に対応する複合現実空間の画像を眼前に見ることができる。
The right-
図6は、手持ちセンサ5000の外観、内部構成を示す図である。図6(a)は手持ちセンサ5000の外観示す図で、5004は所定の色を有するマーカ、5005はコンピュータ1300の制御により点灯/消灯するLEDである。図6(b)は手持ちセンサ5000の内部構成を示す図で、5001は3次元センサ固定局1210からの磁界を検知するためのセンサ部、5002はセンサ部5001のカバーとして機能するセンサカバー、5003は手持ちセンサ5000をユーザ1000が手に保持する際に持つ手持ち部である。なお、手持ちセンサ5000の形状や構成についてもはこれに限定するものではないが、センサ部、マーカ、LEDが備わっていればよい。
FIG. 6 is a diagram illustrating an external appearance and an internal configuration of the
次にコンピュータ1300について説明する。
Next, the
シリアルI/O1310は、3次元センサ本体1200から出力されるデータを受ける為のインターフェースとして機能するものであり、受けたデータはメモリ1302に出力される。なお、このデータは上述の取り、HMD内蔵センサ1120や手持ちセンサ5000のセンサ座標系における位置姿勢を示すデータである。本実施形態ではこの位置姿勢は、位置(x、y、z)を示すデータと、姿勢(roll,pitch,yaw)を示すデータにより構成されているものとする。すなわち、HMD内蔵センサ1120、手持ちセンサ5000は、6自由度の計測センサである。
The serial I /
なお、位置姿勢を表現する方法は他にも考えられ、これに限定するものではない。 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
このような座標変換による位置姿勢の計算技術については周知の技術であるので、これ以上の説明は省略する。 Since the position / orientation calculation technique based on such coordinate transformation is a well-known technique, further explanation is omitted.
パラレルI/O1311は上記LED5005の点灯/消灯を制御するための制御信号をLED5005に送出するためのインターフェースとして機能するものである。なお、このような制御信号はCPU1301の制御により発行されるものである。
The parallel I /
ビデオキャプチャカード1320、1321はそれぞれ、右目カメラ1110、左目カメラ1111から入力される、各フレームの画像を受けるためのインターフェースとして機能するものであり、受けた画像は順次メモリ1302に出力する。本実施形態では、各フレームの画像はNTSCに準拠したものであるとするが、これに限定するものではない。
Each of the
ビデオカード1330,1331はそれぞれ、CPU1301が後述する処理により生成した右目、左目に対応する複合現実空間の画像を右目LCD1130、左目LCD1131に出力するためのインターフェースとして機能するものであり、右目、左目に対応する複合現実空間の画像はそれぞれ、VGAに準拠した画像信号としてビデオカード1330、1331を介して右目LCD1130、左目LCD1131に出力される。なお、出力する画像信号はVGAに準拠したものに限定するものではない。
Each of the
CPU1301は、コンピュータ1300全体の制御を行うと共に、コンピュータ1300が行うべき後述の各処理を実行する。このような処理の実行は、メモリ1302に記憶されている各種のプログラムやデータを実行することでなされる。
The
メモリ1302は、CPU1301が各種の処理を実行するために使用するワークエリアや、CPU1301に各種の処理を実行させるためのプログラムやデータを記憶するためのエリア、また、シリアルI/O1310、ビデオキャプチャカード1320、1321を介して入力される各種のデータを一時的に記憶するためのエリアを備える。
The
PCIブリッジ1303は、CPU1301、メモリ1302がつながっているバスと、シリアルI/O1310、パラレルI/O1311、ビデオキャプチャカード1320、1321,ビデオカード1330、1331を繋ぐバスとを電気的に繋ぐためのものである。
The
次に、以上の構成を有するシステムによって、ユーザ1000に複合現実空間の画像を提供するための処理について説明する。
Next, processing for providing an image of the mixed reality space to the
図8は、ユーザ1000に複合現実空間の画像を提供するために、コンピュータ1300が行う処理のフローチャートである。なお、上述の説明のように、手持ちセンサ5000、HMD内蔵センサ1120により計測した位置姿勢と、カメラ(以下、右目カメラ1110,左目から1111の両方に共通の説明の場合には単に「カメラ」と呼称する)からの現実空間の画像とは同時刻に取得することができず、それぞれの取得タイミングは様々な要因から「ずれ」が生じる。
FIG. 8 is a flowchart of processing performed by the
そこで本実施形態ではこの「ずれ」を軽減させることで、複合現実空間の画像をユーザ1000に提供する際、現実空間と仮想空間とのずれを軽減させる。
Therefore, in the present embodiment, by reducing this “shift”, the shift between the real space and the virtual space is reduced when providing the
なお、以下の説明では、このずれ(遅れ時間)はn/60秒であるとする。即ち、手持ちセンサ5000、HMD内蔵センサ1120により計測した位置姿勢の取得タイミングよりも、カメラからの現実空間の画像の取得タイミングはn/60秒遅れているとする。よって、n>0の場合には手持ちセンサ5000、HMD内蔵センサ1120により計測した位置姿勢の取得タイミングよりも、カメラからの現実空間の画像の取得タイミングが遅れていることになるし、n<0の場合には、手持ちセンサ5000、HMD内蔵センサ1120により計測した位置姿勢の取得タイミングよりも、カメラからの現実空間の画像の取得タイミングが進んでいるし、n=0の場合にはそれぞれのタイミングは一致していることになる。このnについては予め決まっており、nの決定については後述する。
In the following description, this deviation (delay time) is assumed to be n / 60 seconds. That is, it is assumed that the acquisition timing of the real space image from the camera is delayed by n / 60 seconds from the acquisition timing of the position and orientation measured by the
また、図8に示したフローチャートに従った処理をCPU1301に実行させるためのプログラムやデータはメモリ1302に格納されており、CPU1301はこれを用いて処理を行うことで、コンピュータ1300は以下説明する各処理を行うことになる。
Further, a program and data for causing the
先ず、カメラにより撮像された現実空間の画像(ビデオ映像)がビデオキャプチャカード1320,1321を介してコンピュータ1300に入力されるので、CPU1301はこれを検知し、順次メモリ1302のビデオバッファに格納する(取り込む)(ステップS100)。
First, since a real space image (video image) captured by the camera is input to the
次に、HMD内蔵センサ1120のセンサ座標系における位置姿勢情報、手持ちセンサ5000(のセンサ部5001)のセンサ座標系における位置姿勢情報が3次元センサ本体1200からシリアルI/O1310を介してコンピュータ1300に入力されるので、CPU1301はこれを検知して、メモリ1302に格納する(ステップS101)。なお、格納する際には、世界座標系の位置姿勢に変換してから格納する。世界座標系における位置姿勢に変換する技術については上述の通りである。
Next, the position and orientation information in the sensor coordinate system of the HMD built-in
次に、n=0であるのかをチェックする(ステップS102)。n=0である場合には、処理をステップS111に進め、以降の処理を行う。一方、n≠0である場合には処理をステップS103に進め、n>0であるのかをチェックする(ステップS103)。n>0である場合には処理をステップS108に進め、先ず、ステップS101でメモリ1302に格納した手持ちセンサ5000の(世界座標系における)位置姿勢情報をメモリ1302内に備わっている第1のFIFOに格納(PUSH)すると共に、HMD内蔵センサ1120の(世界座標系における)位置姿勢情報をメモリ1302内に備わっている第2のFIFOに格納(PUSH)する(ステップS108)。
Next, it is checked whether n = 0 (step S102). If n = 0, the process proceeds to step S111 to perform the subsequent processes. On the other hand, if n ≠ 0, the process proceeds to step S103 to check whether n> 0 is satisfied (step S103). If n> 0, the process proceeds to step S108. First, the first FIFO in which the position / orientation information (in the world coordinate system) of the
そして、現実空間の画像がメモリ1302に格納される毎に、FIFOから手持ちセンサ5000の位置姿勢情報、HMD内蔵センサ1120の位置姿勢情報を取り出して(POPして)以降の処理で用いる。上記第1,2のFIFOにはn個のデータが格納可能となっており、且つ現実空間の画像は1/60秒毎にメモリ1302に格納されるので、第1,2のFIFOからは1/60秒毎に位置姿勢情報が読み出されることになる。
Each time an image of the real space is stored in the
よって、n>0の場合には、以降の処理で用いる手持ちセンサ5000の位置姿勢情報、HMD内蔵センサ1120の位置姿勢情報は、FIFOに格納してから(取得してから)n/60後のものを用いることになる。
Therefore, in the case of n> 0, the position / orientation information of the
いずれにせよ、ここでは、CPU1301が位置姿勢情報をメモリ1302に取得してから、現実空間の画像をメモリ1302に取得するまでにn/60秒の「ずれ」が生じているので、取得した現実空間の画像を以降の処理で扱う場合、本来これと同じ時刻に取得されるべき位置姿勢情報はn/60秒前のものであるので、上記FIFOから取り出し可能なもの(即ちn/60秒前にメモリ1302に取得したもの)を用いる。
In any case, since the
よって、図8に戻って、第1のFIFOから手持ちセンサ5000の位置姿勢情報を取り出す(POPする)と共に、第2のFIFOからHMD内蔵センサ1120の位置姿勢情報を取り出す(POPする)(ステップS109)。
Accordingly, returning to FIG. 8, the position and orientation information of the
一方、n<0である場合には処理をステップS106に進め、先ず、ステップS100でメモリ1302のビデオバッファに格納した画像をメモリ1302内に備わっている第3のFIFOに格納(PUSH)する(ステップS106)。
On the other hand, if n <0, the process proceeds to step S106. First, the image stored in the video buffer of the
そして、手持ちセンサ5000の位置姿勢情報、HMD内蔵センサ1120の位置姿勢情報がメモリ1302に格納される毎に、FIFOから現実空間の画像を取り出して(POPして)以降の処理で用いる。上記第3のFIFOにはn個のデータが格納可能となっており、且つ位置姿勢情報は1/60秒毎にメモリ1302に格納されるので、第3のFIFOからは1/60秒毎に現実空間の画像が読み出されることになる。
Each time the position / orientation information of the
よって、n<0の場合には、以降の処理で用いる現実空間の画像は、FIFOに格納してから(取得してから)n/60後のものを用いることになる。 Therefore, in the case of n <0, the real space image used in the subsequent processing is the one after n / 60 after being stored (acquired) in the FIFO.
そして、第3のFIFOから、画像を取り出す(POPする)(ステップS107)。取り出した画像は上記ビデオバッファに格納する。 Then, an image is taken out (POP) from the third FIFO (step S107). The extracted image is stored in the video buffer.
次に、第2のFIFOから取り出したHMD内蔵センサ1120の位置姿勢情報、若しくはステップS101で取得したHMD内蔵センサ1120の位置姿勢情報を用いて、カメラの位置姿勢を示すViewMatrixを生成する(ステップS111)。カメラの位置姿勢については、例えば、HMD内蔵センサ1120とカメラとの位置姿勢関係を予めオフセットとして測定しておき、データとしてメモリ1302に保持させておく。そして、ステップS111では、HMD内蔵センサ1120の位置姿勢情報にこのオフセットを付加することで、世界座標系におけるカメラの位置姿勢を求めることができる。それをマトリックスの形態でもって表現すると、ViewMatrixとなる。
Next, using the position and orientation information of the HMD built-in
次に、第1のFIFOから取り出した手持ちセンサ5000の位置姿勢情報、若しくはステップS101で取得した手持ちセンサ5000の位置姿勢情報を用いて、手持ちセンサ5000の位置姿勢を示すModelingMatrixを生成する(ステップS112)。これは即ち、世界座標系における手持ちセンサ5000の位置姿勢を示すものである。よって、次に、仮想物体(ここではCADモデル)を手持ちセンサ5000の位置姿勢に配置し、上記ViewMatrixを用いて、カメラから見えるCADモデルを含む仮想空間の画像を生成し、メモリ1302における上記ビデオバッファに描画する(ステップS113)。このビデオバッファには先にステップS100、若しくはステップS107で現実空間の画像が描画されているので、結果としてこのビデオバッファには現実空間の画像上に仮想空間の画像が重畳された画像、即ち、複合現実空間の画像が生成されたことになるので、CPU1301はこれをビデオカード1330,1331に転送する(ステップS114)。
Next, using the position and orientation information of the
そしてビデオカード1330、1331に転送された複合現実空間の画像は右目LCD1130,左目LCD1131に転送されることになるので、ユーザ1000の右目、左目の眼前にはそれぞれの目の位置姿勢に応じた複合現実空間の画像が表示されることになる。
Since the mixed reality space image transferred to the
以上の処理により、ほぼ同時刻に取得されるべき現実空間の画像、位置姿勢情報を用いて複合現実空間の画像を生成することができるので、例えばユーザ1000が手持ちセンサ5000を動かして移動させても、それに追従してセンサの位置とずれることなくCADモデルを移動させることができ、現実空間と仮想空間との位置ずれを軽減することができる。
Through the above processing, the mixed reality space image can be generated using the real space image and the position / orientation information that should be acquired at almost the same time. For example, the
次に、FIFOが保持可能なデータ数n(換言すればずらす時間を決定するパラメータ)を決定する処理について、同処理のフローチャートを示す図9を用いて説明する。なお、同処理は、図8に示したフローチャートに従った処理を行う前に行われるべきものである。また、図9に示したフローチャートに従った処理をCPU1301に実行させるためのプログラムやデータはメモリ1302に格納されており、これをCPU1301が用いて処理を行うことで、コンピュータ1300は以下説明する各処理を行うことになる。
Next, a process for determining the number of data n that can be held by the FIFO (in other words, a parameter for determining the shift time) will be described with reference to FIG. 9 showing a flowchart of the process. This process should be performed before performing the process according to the flowchart shown in FIG. Further, a program and data for causing the
ここでは、ユーザ1000は手に保持している手持ちセンサ5000を左右に振る。そしてその様をHMD1100を介して見る。即ち、カメラによりその様を撮像する。
Here, the
その場合に、コンピュータ1300は以下のような処理を行う。
In that case, the
先ず、カメラにより撮像された上記様は現実空間の画像としてビデオキャプチャカード1320,1321を介して順次メモリ1302に格納される(ステップS200)。次に、手持ちセンサ5000のセンサ部5001により計測された手持ちセンサ5000の位置姿勢情報が3次元センサ本体1200、シリアルI/O1310を介してコンピュータ1300に入力されるので、CPU1301はこれを検知して、世界座標系における位置姿勢情報に変換してからメモリ1302に格納する(ステップS201)。なお、メモリ1302にはその前に格納した位置姿勢情報も保持されているものとする。即ち、現時点で格納したものから所定量分の過去の位置姿勢情報が格納されているものとする。
First, the above image captured by the camera is sequentially stored in the
そして、ステップS201で位置姿勢情報を格納した時刻を「キャプチャ時刻」としてメモリ1302に格納する(ステップS202)。時刻についてはCPU1301が常に計時しているので、CPU1301はステップS201における処理を行うと共に、このときの時刻をメモリ1302に格納する。
The time when the position / orientation information is stored in step S201 is stored in the
次に、CPU1301は、ステップS200でメモリ1302に格納した現実空間の画像から、マーカ5004の領域を検出し、検出した位置を求める(ステップS203)。ステップS203における処理としては例えば、画像を構成する各画素の画素値を参照し、マーカ5004の色を有する画素群による領域を1以上検出し、検出した領域の中で最も面積の大きい領域(構成する画素の数が最も多い領域)を特定し、特定した領域の重心位置をマーカ5004の画像における位置とする。
Next, the
このようにして、画像におけるマーカ5004の位置を求め、メモリ1302に格納するのであるが、メモリ1302には過去に求めた重心位置のデータも保持されているものとする。
In this manner, the position of the
そして次に、前回のステップS201で求めた手持ちセンサ5000の位置と、今回のステップS201で求めた手持ちセンサ5000の位置との差分を計算して、その差分値が所定量以下であるのか否かを判断し(ステップS204)、所定量以下である場合、即ち、手持ちセンサ5000がほぼ静止した場合には処理をステップS205に進め、そのときの時刻(タイミング)をメモリ1302に格納する(ステップS205)。
Then, the difference between the position of the
なお、ステップS204,S205における処理は一般的には、手持ちセンサ5000の位置情報を用いて移動量が極小となる時刻を求め、求めた時刻をメモリ1302に格納する処理であり、ここで説明したステップS204,S205における処理はその一例である。
Note that the processing in steps S204 and S205 is generally processing for obtaining a time at which the amount of movement is minimized using the position information of the
また、前回のステップS203で求めたマーカ5004の画像における位置と、今回のステップS203で求めたマーカ5004の画像における位置との差分を計算して、その差分値が所定量以下であるのか否かを判断し(ステップS206)、所定量以下である場合、即ち、手持ちセンサ5000がほぼ静止した場合には処理をステップS207に進め、そのときの時刻(タイミング)をメモリ1302に格納する(ステップS207)。
Also, the difference between the position in the image of the
なお、ステップS206,S207における処理は一般的には、マーカ5004の画像上における位置を用いて手持ちセンサ5000の移動量が極小となる時刻を求め、求めた時刻をメモリ1302に格納する処理であり、ここで説明したステップS206,S207における処理はその一例である。
Note that the processing in steps S206 and S207 is generally processing for obtaining a time at which the amount of movement of the
例えば手持ちセンサ5000を三角形をトレースするように移動させる場合などは、加速度が極大値をとったタイミングをステップS205でメモリ1302に格納するようにしても良い。また、手持ちセンサ5000を手に取り付けずに、様々な運動体に取り付けることも考えられるので、取得するタイミングには様々なものが考えられる。
For example, when the hand-held
そして、ステップS205でメモリ1302に格納した時刻と、ステップS207でメモリ1302に格納した時刻との差分(即ち上記遅れ時間=n/60秒)を求め、求めた差分を示すデータをメモリ1302に格納する(ステップS208)。
Then, the difference between the time stored in the
ここで、ステップS208における処理の詳細について、図10のフローチャートを用いて説明する。図10は、ステップS208における処理の詳細を示すフローチャートである。同図のフローチャートでは、上記遅れ時間n/60秒は、手持ちセンサ5000を振る周期の1/2より小さいことを仮定している。図10に示したフローチャートでの遅れ時間の計算方法の概略を図11に示す。
Details of the processing in step S208 will be described with reference to the flowchart of FIG. FIG. 10 is a flowchart showing details of the processing in step S208. In the flowchart of FIG. 5, it is assumed that the delay time n / 60 seconds is smaller than ½ of the period of shaking the hand-held
ステップS205で取得した時刻を古い順に並べるとts0, ts1, …., ts(n-1), ts(n)であるとする。ts(n)が最新の取得時刻である。同様にステップS207で取得した時刻を古い順に並べるとtv0, tv1, …., tv(n-1), tv(n)であるとする。 It is assumed that the times acquired in step S205 are arranged in chronological order as ts0, ts1, ..., ts (n-1), ts (n). ts (n) is the latest acquisition time. Similarly, when the times acquired in step S207 are arranged in chronological order, tv0, tv1,..., Tv (n-1), tv (n) are assumed.
このときtv(n-1)<ts(k)<tv(n)を満たすts(k)をts0〜ts(n)の中から探し、|tv(n-1) - ts(k)|と、|tv(n) - ts(k)|とを比較する(ステップS210)。 At this time, ts (k) satisfying tv (n-1) <ts (k) <tv (n) is searched from ts0 to ts (n), and | tv (n-1) -ts (k) | , | Tv (n) −ts (k) | are compared (step S210).
その結果、|tv(n-1) - ts(k)|の方が大きい場合には、処理をステップS211を介してステップS212に進め、tv(n) - ts(k)を上記遅れ時間=n/60秒として出力する(ステップS212)。 As a result, if | tv (n-1) -ts (k) | is larger, the process proceeds to step S212 via step S211 and tv (n) -ts (k) is set to the delay time = It outputs as n / 60 seconds (step S212).
一方、|tv(n) - ts(k)|の方が大きいか等しい場合には、処理をステップS211を介してステップS213に進め、tv(n-1) - ts(k)を上記遅れ時間=n/60秒として出力する(ステップS213)。このとき遅れ時間は負の数となり、現実空間の画像の取得タイミングの方が進んでいることになる。 On the other hand, if | tv (n) -ts (k) | is greater or equal, the process proceeds to step S213 via step S211 and tv (n-1) -ts (k) is set to the delay time. = N / 60 seconds are output (step S213). At this time, the delay time is a negative number, and the acquisition timing of the image in the real space is advanced.
なお、上述の通り、図10のフローチャートでは、上記遅れ時間は手持ちセンサ5000を振る周期の1/2より小さいことを仮定していたが、図12に示すようにしてxを求め、tv(k+x) - ts(k)を遅れ時間とすればそのような仮定をする必要はない。
Note that, as described above, in the flowchart of FIG. 10, it is assumed that the delay time is smaller than half of the period of shaking the
そして処理を図9のフローチャートに戻し、以降の処理を繰り返す。 Then, the processing is returned to the flowchart of FIG. 9, and the subsequent processing is repeated.
ここで、手持ちセンサ5000が略静止しているという同一事象をセンサ5000により求めた時刻と画像により求めた時刻とに差があれは、それはメモリ1302に位置姿勢情報が格納された時刻と、メモリ1302に現実空間の画像が格納された時刻とに差があるということであり、且つこの差はメモリ1302に位置姿勢情報が格納された時刻と、メモリ1302に現実空間の画像が格納された時刻との差(D)である。よって、ある時点でメモリ1302に格納された現実空間の画像が撮像されたときに計測された位置姿勢は、この「ある時点」よりもこの「差D」の分だけ前にメモリ1302に格納された位置姿勢である。よって、差Dが求まると、これを60倍した値を上記nに代入すれば良いことになる(Dの単位を秒とした場合)。
Here, if there is a difference between the time when the
また、本実施形態では、FIFOを用いて情報の遅延処理を行っているが、FIFOを用いる以外にも同様の目的は達成されるし、このような手段に限定するものではない。 Further, in this embodiment, information delay processing is performed using a FIFO, but the same object can be achieved other than using the FIFO, and the present invention is not limited to such means.
以上の説明により、本実施形態によって、ほぼ同時刻に取得されるべき現実空間の画像、位置姿勢情報を用いて複合現実空間の画像を生成することができるので、現実空間と仮想空間とのずれを軽減することができる、また例えばユーザ1000が手持ちセンサ5000を動かして移動させても、それに追従して遅れることなく、CADモデルを移動させることができ、現実空間と仮想空間との位置ずれを軽減することができる。
As described above, according to the present embodiment, it is possible to generate the mixed reality space image using the real space image and the position / orientation information that should be acquired at almost the same time. For example, even if the
[第2の実施形態]
本実施形態では、カメラが撮像を行ってから、メモリ1302にその撮像した画像が格納されるまでの時間を計測する。なお、本実施形態に係るこのような計測処理を行うシステムについては第1の実施形態と同じである。
[Second Embodiment]
In this embodiment, the time from when the camera captures an image until the captured image is stored in the
図13は、このような計測処理のフローチャートである。CPU1301は、パラレルI/O1311を介してLED5005の点灯/消灯を制御するための制御信号を発する。ここでは制御信号は発してからLED5005が点灯/消灯するまでに要する時間は0であるとする。
FIG. 13 is a flowchart of such a measurement process. The
先ず、内部状態(内部ステート)を示す変数を”アイドル”に設定すると共に、LED5005を消灯する制御信号をパラレルI/O1311を介して発する(ステップS300)。
First, a variable indicating the internal state (internal state) is set to “idle”, and a control signal for turning off the
次に、カメラにより撮像された現実空間の画像がビデオキャプチャカード1320,1321を介して順次メモリ1302に格納される(ステップS301)ので、CPU1301はこれを検知して、そのときの時刻をキャプチャ時刻としてメモリ1302に格納する(ステップS302)。
Next, since the real space images captured by the camera are sequentially stored in the
次に、ステップS301で取り込んだ画像を参照して、LED5005が点灯しているのか否かをチェックする(ステップS303)。このチェック処理としては、例えば、画像を構成する各画素の画素値を参照し、画素値をYCrCbで見たときに、Y値が所定値以上である画素の集合を1以上特定し、特定した集合のうち最もサイズの大きい集合のサイズが所定サイズ以上であれば、LED5005が点灯していると判断する。
Next, with reference to the image captured in step S301, it is checked whether the
次に、内部状態を示す変数を参照し(ステップS304)、”アイドル”である場合には処理をステップS307に進める。内部状態が”アイドル”である場合、即ち、LED5005が消灯している場合には先ず、CPU1301はLED5005を点灯させる制御信号をパラレルI/O1311を介してLED5005に発する(ステップS307)ので、LED5005は点灯するのであるが、CPU1301はこの制御信号を発したときの時刻をメモリ1302に格納する(ステップS308)。そして内部状態を示す変数を”検出待ち”に変更する(ステップS309)。
Next, a variable indicating the internal state is referred to (step S304), and if it is “idle”, the process proceeds to step S307. When the internal state is “idle”, that is, when the
一方、ステップS304において内部状態を示す変数が”アイドル”ではない場合には処理をステップS305に進め、内部状態を示す変数が”検出待ち”であるのか否かを判断する(ステップS305)。内部状態を示す変数が”検出待ち”、即ち、LED5005が点灯している場合には処理をステップS310に進め、ステップS303でLED5005が点灯していると判断しているか否かを判断し(ステップS310)、点灯していると判断している場合には処理をステップS311に進め、CPU1301はLED5005を消灯させる制御信号をパラレルI/O1311を介してLED5005に発する(ステップS311)ので、LED5005は消灯する。そして、そのときの時刻とステップS302でメモリ1302に格納した時刻との差分を求める(ステップS312)。
On the other hand, if the variable indicating the internal state is not “idle” in step S304, the process proceeds to step S305 to determine whether or not the variable indicating the internal state is “waiting for detection” (step S305). If the variable indicating the internal state is “waiting for detection”, that is, if the
この差分値は即ち、LED5005が実際に点灯してから、点灯しているLED5005を含む現実空間の画像を得るまでに要する時間を表している。
That is, this difference value represents the time required from when the
そしてCPU1301は内部状態を示す変数を”終了待ち”に変更する(ステップS313)。
Then, the
一方、ステップS305で、内部状態を示す変数が”検出待ち”ではない場合には処理をステップS306に進め、内部状態を示す変数が”終了待ち”であるのか否かを判断し、”終了待ち”であれば処理をステップS314に進め、ステップS303でLED5005が点灯していると判断しているか否かを判断し(ステップS314)、点灯していると判断している場合には処理をステップS315に進め、CPU1301は内部状態を示す変数を”アイドル”に変更する(ステップS315)。
On the other hand, if the variable indicating the internal state is not “waiting for detection” in step S305, the process proceeds to step S306 to determine whether or not the variable indicating the internal state is “waiting for completion”. "", The process proceeds to step S314, and it is determined whether or not it is determined in step S303 that the
以上の説明により、本実施形態によって、カメラが撮像してからコンピュータ1300のメモリ1302に格納され、CPU1301がそれを用いて処理を行おうとするまでに要する時間を計測することができる。
As described above, according to the present embodiment, it is possible to measure the time required for the
また、本実施形態では発光体としてLEDを用いたが、これ以外の発光体を用いても良い。また、発光体に限定するものではなく、液晶画面などを用いても良い。即ち、撮影した画像上で第1の状態(本実施形態では「点灯」に対応)、第2の状態(本実施形態では「消灯」に対応)が検出されるような状態を取りうるものであればよい。 Moreover, although LED was used as a light-emitting body in this embodiment, you may use light-emitting bodies other than this. Moreover, it is not limited to a light emitter, and a liquid crystal screen or the like may be used. In other words, the first state (corresponding to “lighting” in the present embodiment) and the second state (corresponding to “lighting off” in the present embodiment) can be detected on the photographed image. I just need it.
[第3の実施形態]
本実施形態では、位置姿勢情報の取得タイミングと、現実空間の画像の取得タイミングとの同期を取りながら動作するCADビューワシステムと、それぞれの取得タイミングのずれ(即ち上記遅れ時間)を求めるためのツールとを切り替えて使用する実施例について説明する。
[Third Embodiment]
In the present embodiment, a CAD viewer system that operates while synchronizing the acquisition timing of position and orientation information and the acquisition timing of an image in the real space, and a tool for obtaining a difference between the acquisition timings (that is, the delay time). An embodiment that switches between and uses will be described.
以下の説明では第1の実施形態と異なる部分についてのみ説明する。即ち、以下説明する点以外については第1の実施形態と同様である。 In the following description, only parts different from the first embodiment will be described. That is, the second embodiment is the same as the first embodiment except for the points described below.
図14は、本実施形態で用いる手持ちセンサ5900を示す図である。同図に示す手持ちセンサ5900は、図5に示した、第1の実施形態で用いた手持ちセンサ5000にキャリブレーションスイッチ5006が備わっている。このキャリブレーションスイッチ5006は、コンピュータ1300に備わっているパラレルI/O1311に接続されており、キャリブレーションスイッチ5006が押下されると、その旨を示す信号がキャリブレーションスイッチ5006からパラレルI/O1311に対して出力されるので、CPU1301はこの信号を検知することで、キャリブレーションスイッチ5006の押下を検知することができる。
FIG. 14 is a diagram showing a hand-held
しかし、このキャリブレーションスイッチ5006は必須なものではなく、キーボードやマウスをコンピュータ1300に接続し、これをキャリブレーションスイッチ5006の代わりに用いるようにしても良い。
However, the
従って本実施形態では、コンピュータ1300は、キャリブレーションスイッチ5006が押下されていない場合には、CADビューワシステムのアプリケーションプログラムを実行し、押下されている場合には、図9のフローチャートに従った処理を実行して上記遅れ時間を計測する処理を行う。
Therefore, in this embodiment, the
図15は、本実施形態に係るコンピュータ1300が行う処理のフローチャートである。
FIG. 15 is a flowchart of processing performed by the
CPU1301は、パラレルI/O1311を介して、キャリブレーションスイッチ5006の押下を示す信号が入力されたことを検知すると、処理をステップS400を介してステップS401に進め、キャリブレーションツールの実行、即ち、図9のフローチャートに従った処理を実行する(ステップS401)。なお、本実施形態では、図9のフローチャートに従った処理においてステップS208における処理の次にはステップS200に戻らずに、ステップS402に進む。
When the
ここで、図9のフローチャートに従った処理を実行した結果、遅れ時間=0(若しくは略0)である場合には処理をステップS400に戻すが、遅れ時間≠0である場合には処理をステップS402を介してステップS403に進め、CADビューワシステムで用いる遅れ時間にステップS401で求めた遅れ時間をセットする(ステップS403)。 Here, as a result of executing the processing according to the flowchart of FIG. 9, when the delay time = 0 (or substantially 0), the processing returns to step S400, but when the delay time ≠ 0, the processing is stepped. The process proceeds to step S403 via S402, and the delay time obtained in step S401 is set to the delay time used in the CAD viewer system (step S403).
一方、CPU1301は、パラレルI/O1311を介して、キャリブレーションスイッチ5006の押下を示す信号が入力されたことを検知していないと、処理をステップS400を介してステップS404に進め、キャリブレーションツールの作業履歴をクリアし(ステップS404)、CADビューワシステムを起動する(ステップS405)。CADビューワシステムの動作については図8のフローチャートに従ったものとなる。なお、本実施形態では、図8のフローチャートに従った処理においてステップS114における処理の次にはステップS100に戻らずに、ステップS400に進む。
On the other hand, if the
また、ステップS404でのキャリブレーションツールの作業履歴のクリアとは、図9のフローチャートにおける、前回の手持ちセンサ位置と、前回のマーカ検出位置と、時刻の履歴ts(i)、tv(i)である。これらはキャリブレーションツールが連続して動作していなければ意味を成さない履歴であり、キャリブレーションツールが動作していないときにはクリアしておく必要がある。 The clearing of the calibration tool work history in step S404 means the previous hand-held sensor position, the previous marker detection position, and the time history ts (i) and tv (i) in the flowchart of FIG. is there. These are histories that do not make sense if the calibration tool is not operating continuously, and must be cleared when the calibration tool is not operating.
[第4の実施形態]
本実施形態では、第3の実施形態で説明したCADビューワシステムとキャリブレーションツールとを並行して動作させ、常に現実空間の画像の取得タイミングと位置姿勢情報の取得タイミングとの遅れ時間を求めてCADビューワシステムに反映させる。
[Fourth Embodiment]
In this embodiment, the CAD viewer system and the calibration tool described in the third embodiment are operated in parallel, and the delay time between the acquisition timing of the real space image and the acquisition timing of the position and orientation information is always obtained. Reflect in the CAD viewer system.
以下の説明では第1の実施形態と異なる部分についてのみ説明する。即ち、以下説明する点以外については第1の実施形態と同様である。 In the following description, only parts different from the first embodiment will be described. That is, the second embodiment is the same as the first embodiment except for the points described below.
上述の通り、本実施形態では、CADビューワシステムとキャリブレーションツールとを並行して動作させるが、例えば、マルチスレッドでそれぞれを動作させる。 As described above, in the present embodiment, the CAD viewer system and the calibration tool are operated in parallel. For example, each is operated in multithread.
図16は、キャリブレーションツールの動作を示すフローチャート、図17は、CADビューワシステムの動作を示すフローチャートである。なお、それぞれのフローチャートに従った処理は第3の実施形態と同様、コンピュータ1300が行う。
FIG. 16 is a flowchart showing the operation of the calibration tool, and FIG. 17 is a flowchart showing the operation of the CAD viewer system. Note that the processing according to each flowchart is performed by the
図16において、ステップS500〜ステップS502はそれぞれ、ステップS401〜ステップS403と同じであるが、マルチスレッド動作に対応させるため、ステップS403でセットする遅れ時間を設定する変数に対してスレッド間での排他制御を行っている。 In FIG. 16, Steps S500 to S502 are the same as Steps S401 to S403, respectively. However, in order to correspond to the multi-thread operation, exclusion between threads for the variable for setting the delay time set in Step S403. Control is in progress.
図17において、ステップS510、S511はそれぞれ、ステップS404,S405と同じであるが、マルチスレッド動作に対応させるため、ステップS405で遅れ時間を読み出す変数に対してスレッド間での排他制御を行っている。 In FIG. 17, steps S510 and S511 are the same as steps S404 and S405, respectively, but exclusive control between threads is performed for the variable from which the delay time is read in step S405 to correspond to the multithread operation. .
以上の説明により、本実施形態、及び第3の実施形態によれば、上記遅れ時間を考慮し、現実空間の画像の取得タイミングと位置姿勢情報の取得タイミングの同期が取れたCADビューワシステムを構築することができる。特に本実施形態によれば、遅れ時間を求めるツールの存在を意識させることなく、上記それぞれの取得タイミングの同期が取れたCADビューワシステムを構築することができる。 As described above, according to the present embodiment and the third embodiment, a CAD viewer system is constructed in which the acquisition timing of the real space image and the acquisition timing of the position and orientation information are synchronized in consideration of the delay time. can do. In particular, according to the present embodiment, it is possible to construct a CAD viewer system in which the above acquisition timings are synchronized without being aware of the existence of a tool for obtaining the delay time.
[その他の実施形態]
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
[Other Embodiments]
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 the computer (or CPU or 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 determined 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.
Claims (11)
前記指示具を含む現実空間の映像を連続して入力する第2の入力工程と、
前記第1の入力工程で入力した位置姿勢情報に基づいて、前記指示具の移動量が極小となるタイミングを検知する第1の検知工程と、
前記第2の入力工程で入力した映像に基づいて、前記指示具の移動量が極小となるタイミングを検知する第2の検知工程と、
前記第1の検知工程で検知したタイミングと前記第2の検知工程で検知したタイミングとに基づいて、前記現実空間の映像の取得タイミングと前記位置姿勢情報の取得タイミングとのずれを求める計算工程と、
前記計算工程で求めた前記ずれを出力する第1の出力工程と
を備えることを特徴とする情報処理方法。 A first input step for continuously inputting the position and orientation information of the pointing tool;
A second input step of continuously inputting an image of the real space including the pointing device;
Based on the position and orientation information input in the first input step, a first detection step of detecting a timing at which the amount of movement of the pointing tool is minimized;
A second detection step of detecting a timing at which the amount of movement of the pointing tool is minimized based on the video input in the second input step;
A calculation step for obtaining a difference between the acquisition timing of the image in the real space and the acquisition timing of the position and orientation information based on the timing detected in the first detection step and the timing detected in the second detection step; ,
And a first output step for outputting the deviation obtained in the calculation step.
前記第1の検知工程で検知したタイミングを古い順に並べるとts0, ts1, …., ts(n-1), ts(n)であるとし、前記第2の検知工程で検知したタイミングを古い順に並べるとtv0, tv1, …., tv(n-1), tv(n)であるとした場合に、
ts0〜ts(n)の中からtv(n-1)<ts(k)<tv(n)を満たすts(k)を探す工程と、
|tv(n-1) - ts(k)|と、|tv(n) - ts(k)|とを比較する工程と、
|tv(n-1) - ts(k)|の方が大きい場合には、tv(n) - ts(k)を前記ずれとして求める工程と、
|tv(n) - ts(k)|の方が大きいか等しい場合には、tv(n-1) - ts(k)を前記ずれとして求める工程と
を備えることを特徴とする請求項1乃至3の何れか1項に記載の情報処理方法。 The calculation step includes:
When the timings detected in the first detection step are arranged in chronological order, it is assumed that ts0, ts1,... When arranged as tv0, tv1,…., Tv (n-1), tv (n),
searching for ts (k) satisfying tv (n-1) <ts (k) <tv (n) from ts0 to ts (n);
Comparing | tv (n-1) -ts (k) | with | tv (n) -ts (k) |
If | tv (n-1) -ts (k) | is larger, tv (n) -ts (k) is determined as the deviation;
If | tv (n) -ts (k) | is greater or equal, tv (n-1) -ts (k) is determined as the deviation. 4. The information processing method according to any one of items 3.
現実空間の映像を入力する第3の入力工程と、
ユーザの視点の位置姿勢情報を入力する第4の入力工程と、
前記第3の入力工程で映像を入力した時点から、前記計算工程で求めた前記ずれの分だけ前の時間に前記第4の入力工程で入力した位置姿勢情報に基づく視点から見える仮想空間の映像を生成する生成工程と、
前記生成工程で生成した映像を前記第3の入力工程で入力した映像上に重畳させてから出力する第2の出力工程と
を備えることを特徴とする請求項1乃至4の何れか1項に記載の情報処理方法。 Furthermore,
A third input step of inputting a real space image;
A fourth input step for inputting the position and orientation information of the user's viewpoint;
Virtual space video viewed from the viewpoint based on the position and orientation information input in the fourth input step at a time before the shift obtained in the calculation step from the time when the video was input in the third input step A generating step for generating
5. The method according to claim 1, further comprising: a second output step of superimposing the video generated in the generation step on the video input in the third input step and then outputting. The information processing method described.
現実空間の映像を入力する第3の入力工程と、
ユーザの視点の位置姿勢情報を入力する第4の入力工程と、
前記第4の入力工程で入力した位置姿勢情報に基づく視点から見える仮想空間の映像を生成する生成工程と、
前記第4の入力工程で位置姿勢情報を入力した時点から前記計算工程で求めた前記ずれの分だけ前の時間に前記第3の入力工程で入力した映像上に、前記生成工程で生成した映像を重畳させてから出力する第2の出力工程と
を備えることを特徴とする請求項1乃至4の何れか1項に記載の情報処理方法。 Furthermore,
A third input step of inputting a real space image;
A fourth input step for inputting the position and orientation information of the user's viewpoint;
A generation step of generating a video of a virtual space seen from a viewpoint based on the position and orientation information input in the fourth input step;
The video generated in the generation step on the video input in the third input step at the time before the deviation obtained in the calculation step from the time when the position and orientation information was input in the fourth input step. The information processing method according to any one of claims 1 to 4, further comprising: a second output step of outputting after superimposing.
前記制御工程における制御に従って前記デバイスが第1の状態となったタイミングを検知する第1の検知工程と、
指示具を含む現実空間の映像に基づいて、前記デバイスが第1の状態となったタイミングを検知する第2の検知工程と、
前記第1の検知工程で検知したタイミングと、前記第2の検知工程で検知したタイミングとの差分を出力するの出力工程と
を備えることを特徴とする情報処理方法。 A control process for controlling a device that can be controlled to take either the first state or the second state;
A first detection step of detecting the timing when the device is in the first state according to the control in the control step;
A second detection step of detecting a timing when the device is in the first state based on an image of the real space including the pointing tool;
An information processing method comprising: an output step of outputting a difference between the timing detected in the first detection step and the timing detected in the second detection step.
前記指示具を含む現実空間の映像を連続して入力する第2の入力手段と、
前記第1の入力手段が入力した位置姿勢情報に基づいて、前記指示具の移動量が極小となるタイミングを検知する第1の検知手段と、
前記第2の入力手段が入力した映像に基づいて、前記指示具の移動量が極小となるタイミングを検知する第2の検知手段と、
前記第1の検知手段が検知したタイミングと前記第2の検知手段が検知したタイミングとに基づいて、前記現実空間の映像の取得タイミングと前記位置姿勢情報の取得タイミングとのずれを求める計算手段と、
前記計算手段で求めた前記ずれを出力する第1の出力手段と
を備えることを特徴とする情報処理装置。 First input means for continuously inputting the position and orientation information of the pointing tool;
Second input means for continuously inputting an image of a real space including the pointing device;
First detection means for detecting a timing at which the amount of movement of the pointing tool is minimized based on the position and orientation information input by the first input means;
Second detection means for detecting a timing at which the amount of movement of the pointing tool is minimized based on the video input by the second input means;
Calculation means for obtaining a difference between the acquisition timing of the image of the real space and the acquisition timing of the position and orientation information based on the timing detected by the first detection means and the timing detected by the second detection means; ,
An information processing apparatus comprising: first output means for outputting the deviation obtained by the calculation means.
前記制御手段による制御に従って前記デバイスが第1の状態となったタイミングを検知する第1の検知手段と、
指示具を含む現実空間の映像に基づいて、前記デバイスが第1の状態となったタイミングを検知する第2の検知手段と、
前記第1の検知手段が検知したタイミングと、前記第2の検知手段が検知したタイミングとの差分を出力するの出力手段と
を備えることを特徴とする情報処理装置。 Control means for controlling a device that can be controlled to take either the first state or the second state;
First detection means for detecting timing when the device is in a first state in accordance with control by the control means;
Second detection means for detecting timing when the device is in the first state based on an image of the real space including the pointing tool;
An information processing apparatus comprising: output means for outputting a difference between the timing detected by the first detection means and the timing detected by the second detection means.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005187082A JP2007004714A (en) | 2005-06-27 | 2005-06-27 | Information processing method and information processing unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005187082A JP2007004714A (en) | 2005-06-27 | 2005-06-27 | Information processing method and information processing unit |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007004714A true JP2007004714A (en) | 2007-01-11 |
Family
ID=37690237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005187082A Withdrawn JP2007004714A (en) | 2005-06-27 | 2005-06-27 | Information processing method and information processing unit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007004714A (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008293209A (en) * | 2007-05-23 | 2008-12-04 | Canon Inc | Compound reality presentation device, its control method and computer program |
JP2011081453A (en) * | 2009-10-02 | 2011-04-21 | Toshiba Corp | Apparatus and method for reproducing video |
JP2011234388A (en) * | 2011-06-10 | 2011-11-17 | Toshiba Corp | Video reproduction device and video reproduction method |
JP2012104023A (en) * | 2010-11-12 | 2012-05-31 | Nintendo Co Ltd | Display control program, display control device, display control system and display control method |
JP2013061870A (en) * | 2011-09-14 | 2013-04-04 | Namco Bandai Games Inc | Program, information storage medium, and electronic device |
US8884987B2 (en) | 2010-09-22 | 2014-11-11 | Nintendo Co., Ltd. | Storage medium having stored thereon display control program, display control apparatus, display control system, and display control method for setting and controlling display of a virtual object using a real world image |
JP2016225885A (en) * | 2015-06-01 | 2016-12-28 | キヤノン株式会社 | Information processor, method for controlling information processor, image processing system, and program |
JP2019175294A (en) * | 2018-03-29 | 2019-10-10 | 富士通株式会社 | Display control program, apparatus therefor, and method thereof |
JP2021117057A (en) * | 2020-01-23 | 2021-08-10 | キヤノン株式会社 | Head mounted display device, method of controlling head mounted display device, system, synchronous control apparatus, and method of controlling synchronous control apparatus |
JP2021520528A (en) * | 2018-02-23 | 2021-08-19 | テレフオンアクチーボラゲット エルエム エリクソン(パブル) | Coordinate system alignment of the coordinate system used in computer-generated reality and tactile devices |
-
2005
- 2005-06-27 JP JP2005187082A patent/JP2007004714A/en not_active Withdrawn
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008293209A (en) * | 2007-05-23 | 2008-12-04 | Canon Inc | Compound reality presentation device, its control method and computer program |
JP2011081453A (en) * | 2009-10-02 | 2011-04-21 | Toshiba Corp | Apparatus and method for reproducing video |
US8884987B2 (en) | 2010-09-22 | 2014-11-11 | Nintendo Co., Ltd. | Storage medium having stored thereon display control program, display control apparatus, display control system, and display control method for setting and controlling display of a virtual object using a real world image |
JP2012104023A (en) * | 2010-11-12 | 2012-05-31 | Nintendo Co Ltd | Display control program, display control device, display control system and display control method |
JP2011234388A (en) * | 2011-06-10 | 2011-11-17 | Toshiba Corp | Video reproduction device and video reproduction method |
JP2013061870A (en) * | 2011-09-14 | 2013-04-04 | Namco Bandai Games Inc | Program, information storage medium, and electronic device |
JP2016225885A (en) * | 2015-06-01 | 2016-12-28 | キヤノン株式会社 | Information processor, method for controlling information processor, image processing system, and program |
JP2021520528A (en) * | 2018-02-23 | 2021-08-19 | テレフオンアクチーボラゲット エルエム エリクソン(パブル) | Coordinate system alignment of the coordinate system used in computer-generated reality and tactile devices |
JP7079848B2 (en) | 2018-02-23 | 2022-06-02 | テレフオンアクチーボラゲット エルエム エリクソン(パブル) | Coordinate system alignment of the coordinate system used in computer-generated reality and haptic devices |
US11526216B2 (en) | 2018-02-23 | 2022-12-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Coordinating alignment of coordinate systems used for a computer generated reality device and a haptic device |
US11868545B2 (en) | 2018-02-23 | 2024-01-09 | Telefonaktiebolaget Lm Ericsson (Publ) | Coordinating alignment of coordinate systems used for a computer generated reality device and a haptic device |
JP2019175294A (en) * | 2018-03-29 | 2019-10-10 | 富士通株式会社 | Display control program, apparatus therefor, and method thereof |
JP2021117057A (en) * | 2020-01-23 | 2021-08-10 | キヤノン株式会社 | Head mounted display device, method of controlling head mounted display device, system, synchronous control apparatus, and method of controlling synchronous control apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007004714A (en) | Information processing method and information processing unit | |
EP3596542B1 (en) | Technique for recording augmented reality data | |
JP4227561B2 (en) | Image processing method and image processing apparatus | |
US10095458B2 (en) | Information processing apparatus, information processing method, non-transitory computer-readable storage medium, and system | |
JP2018511098A (en) | Mixed reality system | |
EP3572916B1 (en) | Apparatus, system, and method for accelerating positional tracking of head-mounted displays | |
JP4677281B2 (en) | Image processing method and image processing apparatus | |
JP2009025918A (en) | Image processor and image processing method | |
JP2008146109A (en) | Image processing method and image processor | |
JP2005227876A (en) | Method and apparatus for image processing | |
JP6344530B2 (en) | Input device, input method, and program | |
JP2012053631A (en) | Information processor and information processing method | |
JP2007004713A (en) | Image processing method and image processor | |
JP2005174021A (en) | Method and device for presenting information | |
JP2007034628A (en) | Method and system for image processing | |
JP2009087161A (en) | Image processor and image processing method | |
JP2006252468A (en) | Image processing method and image processing system | |
WO2014054317A1 (en) | User interface device and user interface method | |
JP7279113B2 (en) | IMAGE PROCESSING APPARATUS, IMAGE PROCESSING METHOD, COMPUTER PROGRAM | |
JP2013218423A (en) | Directional video control device and method | |
WO2019106862A1 (en) | Operation guiding system | |
JP4689344B2 (en) | Information processing method and information processing apparatus | |
WO2018196221A1 (en) | Interaction method, device and system | |
JP4217661B2 (en) | Image processing method and image processing apparatus | |
JP2009015648A (en) | Image processor and image processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080902 |