JP2007004714A - Information processing method and information processing unit - Google Patents

Information processing method and information processing unit Download PDF

Info

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
Application number
JP2005187082A
Other languages
Japanese (ja)
Inventor
Tomohiko Shimoyama
朋彦 下山
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 JP2005187082A priority Critical patent/JP2007004714A/en
Publication of JP2007004714A publication Critical patent/JP2007004714A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • Position Input By Displaying (AREA)
  • Image Analysis (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a technology for synchronizing timing for acquiring a video image of a real space and timing for acquiring position/attitude information. <P>SOLUTION: Timing when the moving amount of a sensor 5000 on hand is minimum is detected on the basis of input position/attitude information. The timing when the moving amount of the sensor 5000 on hand is minimum is detected on the basis of the video image of the real space. Also, the difference between the timing for acquiring the video image of the real space and the timing for acquiring the position/attitude information is calculated on the basis of the respective timing. <P>COPYRIGHT: (C)2007,JPO&INPIT

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 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ビューワの機器構成を示す図である。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 computer 1300 and synthesized with a CAD model CG inside. The CAD model is arranged at the position of the handheld sensor 5000 with the posture of the handheld sensor 5000. The position and orientation of the handheld sensor 5000 is measured by the sensor devices 1200 and 1210. The synthesized image is sent to the HMD 1100 as a video signal.

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

しかしながら先に示したシステムでは、取り込んだ実写映像と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 sensor 5000 and the CAD model 4000. As shown in the figure, when the hand-held sensor 5000 is stationary, even if the CAD model 4000 is displayed on the hand-held sensor 5000, if the hand-held sensor 5000 is moved, the CAD model 4000 moves behind the movement of the hand-held sensor 5000. Such symptoms are observed.

これは実写画像のキャプチャ時刻と位置情報の測定時刻が異なることが原因である。図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 computer 1300, it takes 1/30 seconds or more. In addition, it takes time for processing by the OS or the like before the video is processed in the computer 1300.

位置情報の場合には、位置センサ1200内のコントローラが磁気センサ1210からの信号を処理してセンサの位置を計算するのに時間がかかる。また位置センサ1200と計算機1300が通信する時間、計算機1300のOSなどによる処理時間がかかっている。   In the case of position information, it takes time for the controller in the position sensor 1200 to process the signal from the magnetic sensor 1210 and calculate the position of the sensor. Further, it takes time for the position sensor 1200 and the computer 1300 to communicate, and processing time by the OS of the computer 1300 and the like.

このように実写映像、位置情報の取得には遅れ要因があり、両者の遅れ時間は異なっている。そのため計算機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 computer 1300 simply acquires the actual image and position information and synthesizes the actual image and the CAD model 4000, the positions of the actual image and the CAD model 4000 are shifted as shown in FIG.

またこのような遅れの解析や、どのような応用分野にその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, reference numeral 1000 denotes a user, who observes a space (a mixed reality space) in which a virtual object is superimposed in a real space using the present system. A well-known HMD 1100 is attached to the head of the user 1000, and the user 1000 can view an image of the mixed reality space with the HMD 1100 attached to his / her head.

ユーザ1000に提供する複合現実空間の映像は、HMD1100に接続されているコンピュータ1300により生成される。   The video of the mixed reality space provided to the user 1000 is generated by a computer 1300 connected to the HMD 1100.

また、ユーザ1000は手持ちセンサ5000を手に持っている。なお、手持ちセンサ5000は必ずしも手に「持つ」必要はなく、手に「装着」していればよい。手持ちセンサ5000は、後述する3次元センサ固定局1210との相対位置姿勢を計測し、その計測結果を示す信号を後述する3次元センサ本体1200に出力する。   The user 1000 holds the handheld sensor 5000 in his / her hand. 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 later-described sensor provided in the HMD 1100, a three-dimensional sensor fixed station 1210, and a hand-held sensor 5000, and uses a result measured by the later-described sensor provided in the HMD 1100 and the hand-held sensor 5000 as data. 1300 is output.

コンピュータ1300は例えばPC(パーソナルコンピュータ)やWS(ワークステーション)等により構成されており、ユーザ1000に自身の頭部の位置姿勢に応じた複合現実空間の画像を提供するための各種の処理を行う。   The computer 1300 is configured by, for example, a PC (personal computer), WS (workstation), or the like, and performs various processes for providing the user 1000 with an image of the mixed reality space according to the position and orientation of his / her head. .

図7は、コンピュータ1300を含む、システムの基本構成を示すブロック図である。   FIG. 7 is a block diagram showing the basic configuration of the system including the computer 1300.

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から受けた信号の強度に基づいて、センサ座標系(3次元センサ固定局1210の位置を原点とし、この原点で互いに直交する3軸をそれぞれx、y、z軸とする座標系)におけるHMD内蔵センサ1120、手持ちセンサ5000の位置姿勢を示すデータを求め、コンピュータ1300に出力する。   The three-dimensional sensor main body 1200 is based on the intensity of signals received from the HMD built-in sensor 1120 and the hand-held sensor 5000, with the origin of the position of the three-dimensional sensor fixed station 1210 and three axes orthogonal to each other at this origin. Data indicating the positions and orientations of the HMD built-in sensor 1120 and the handheld sensor 5000 in the coordinate system (x, y, z axes) are 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.

図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 handheld sensor 5000. FIG. 6A is a diagram showing the appearance of the handheld sensor 5000, 5004 is a marker having a predetermined color, and 5005 is an LED that is turned on / off under the control of the computer 1300. FIG. 6B is a diagram showing the internal configuration of the handheld sensor 5000, 5001 is a sensor unit for detecting a magnetic field from the three-dimensional sensor fixed station 1210, 5002 is a sensor cover that functions as a cover for the sensor unit 5001, and 5003. Is a hand-held portion that is held when the user 1000 holds the hand-held sensor 5000 in the hand. Note that the shape and configuration of the handheld sensor 5000 are not limited to this, but may be provided with a sensor unit, a marker, and an LED.

次にコンピュータ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.

パラレルI/O1311は上記LED5005の点灯/消灯を制御するための制御信号をLED5005に送出するためのインターフェースとして機能するものである。なお、このような制御信号はCPU1301の制御により発行されるものである。   The parallel I / O 1311 functions as an interface for sending a control signal for controlling ON / OFF of the LED 5005 to the LED 5005. Such a control signal is issued under the control of the CPU 1301.

ビデオキャプチャカード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に出力される。なお、出力する画像信号はVGAに準拠したものに限定するものではない。   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. Note that the image signal to be output is not limited to that based on VGA.

CPU1301は、コンピュータ1300全体の制御を行うと共に、コンピュータ1300が行うべき後述の各処理を実行する。このような処理の実行は、メモリ1302に記憶されている各種のプログラムやデータを実行することでなされる。   The CPU 1301 controls the entire computer 1300 and executes each process 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.

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

次に、以上の構成を有するシステムによって、ユーザ1000に複合現実空間の画像を提供するための処理について説明する。   Next, processing for providing an image of the mixed reality space to the user 1000 by the system having the above configuration will be described.

図8は、ユーザ1000に複合現実空間の画像を提供するために、コンピュータ1300が行う処理のフローチャートである。なお、上述の説明のように、手持ちセンサ5000、HMD内蔵センサ1120により計測した位置姿勢と、カメラ(以下、右目カメラ1110,左目から1111の両方に共通の説明の場合には単に「カメラ」と呼称する)からの現実空間の画像とは同時刻に取得することができず、それぞれの取得タイミングは様々な要因から「ずれ」が生じる。   FIG. 8 is a flowchart of processing performed by the computer 1300 to provide the user 1000 with the mixed reality space image. Note that, as described above, the position and orientation measured by the handheld sensor 5000 and the HMD built-in sensor 1120 and the camera (hereinafter, “camera” in the description common to both the right eye camera 1110 and the left eye 1111 are simply “camera”). It is not possible to acquire the image of the real space from (referred to) at the same time, and the respective acquisition timings are “displaced” due to various factors.

そこで本実施形態ではこの「ずれ」を軽減させることで、複合現実空間の画像をユーザ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 user 1000 with an image of the mixed reality space.

なお、以下の説明では、このずれ(遅れ時間)は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 handheld sensor 5000 and the HMD built-in sensor 1120. Therefore, when n> 0, the acquisition timing of the real space image from the camera is delayed from the acquisition timing of the position and orientation measured by the handheld sensor 5000 and the HMD built-in sensor 1120, and n <0. In this case, the acquisition timing of the real space image from the camera is ahead of the acquisition timing of the position and orientation measured by the handheld sensor 5000 and the HMD built-in sensor 1120, and when n = 0, the respective timings are acquired. Will match. This n is determined in advance, and the determination of n will be described later.

また、図8に示したフローチャートに従った処理をCPU1301に実行させるためのプログラムやデータはメモリ1302に格納されており、CPU1301はこれを用いて処理を行うことで、コンピュータ1300は以下説明する各処理を行うことになる。   Further, a program and data for causing the CPU 1301 to execute processing according to the flowchart shown in FIG. 8 are stored in the memory 1302, and the CPU 1301 performs processing using this, so that the computer 1300 performs each of the following descriptions. Processing will be performed.

先ず、カメラにより撮像された現実空間の画像(ビデオ映像)がビデオキャプチャカード1320,1321を介してコンピュータ1300に入力されるので、CPU1301はこれを検知し、順次メモリ1302のビデオバッファに格納する(取り込む)(ステップS100)。   First, since a real space image (video image) captured by the camera is input to the computer 1300 via the video capture cards 1320 and 1321, the CPU 1301 detects this and sequentially stores it in the video buffer of the memory 1302 ( (Step S100).

次に、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 sensor 1120 and the position and orientation information in the sensor coordinate system of the handheld sensor 5000 (the sensor unit 5001) are transferred from the three-dimensional sensor main body 1200 to the computer 1300 via the serial I / O 1310. Since it is input, the CPU 1301 detects this and stores it in the memory 1302 (step S101). When storing, it is converted into a position and orientation in the world coordinate system and stored. The technique for converting to a position and orientation in the world coordinate system is as described above.

次に、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 handheld sensor 5000 stored in the memory 1302 in step S101 is provided in the memory 1302. Is stored (PUSH), and the position and orientation information (in the world coordinate system) of the HMD built-in sensor 1120 is stored (PUSH) in the second FIFO provided in the memory 1302 (step S108).

そして、現実空間の画像がメモリ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 memory 1302, the position / orientation information of the handheld sensor 5000 and the position / orientation information of the HMD built-in sensor 1120 are taken out (POP) from the FIFO and used in the subsequent processing. Since n data can be stored in the first and second FIFOs, and an image in the real space is stored in the memory 1302 every 1/60 seconds, 1 from the first and second FIFOs. / Position and orientation information is read every 60 seconds.

よって、n>0の場合には、以降の処理で用いる手持ちセンサ5000の位置姿勢情報、HMD内蔵センサ1120の位置姿勢情報は、FIFOに格納してから(取得してから)n/60後のものを用いることになる。   Therefore, in the case of n> 0, the position / orientation information of the handheld sensor 5000 and the position / orientation information of the HMD built-in sensor 1120 used in the subsequent processes are stored in the FIFO (after being acquired) after n / 60. I will use something.

いずれにせよ、ここでは、CPU1301が位置姿勢情報をメモリ1302に取得してから、現実空間の画像をメモリ1302に取得するまでにn/60秒の「ずれ」が生じているので、取得した現実空間の画像を以降の処理で扱う場合、本来これと同じ時刻に取得されるべき位置姿勢情報はn/60秒前のものであるので、上記FIFOから取り出し可能なもの(即ちn/60秒前にメモリ1302に取得したもの)を用いる。   In any case, since the CPU 1301 obtains the position / orientation information in the memory 1302 and then obtains the real space image in the memory 1302, an n / 60 second “displacement” has occurred. When a spatial image is handled in the subsequent processing, the position / orientation information that should be acquired at the same time as this is originally n / 60 seconds ago, so that it can be extracted from the FIFO (that is, n / 60 seconds ago). Used in the memory 1302).

よって、図8に戻って、第1のFIFOから手持ちセンサ5000の位置姿勢情報を取り出す(POPする)と共に、第2のFIFOからHMD内蔵センサ1120の位置姿勢情報を取り出す(POPする)(ステップS109)。   Accordingly, returning to FIG. 8, the position and orientation information of the handheld sensor 5000 is extracted (POP) from the first FIFO, and the position and orientation information of the HMD built-in sensor 1120 is extracted (POP) from the second FIFO (step S109). ).

一方、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 memory 1302 in step S100 is stored (PUSH) in a third FIFO provided in the memory 1302 (PUSH). Step S106).

そして、手持ちセンサ5000の位置姿勢情報、HMD内蔵センサ1120の位置姿勢情報がメモリ1302に格納される毎に、FIFOから現実空間の画像を取り出して(POPして)以降の処理で用いる。上記第3のFIFOにはn個のデータが格納可能となっており、且つ位置姿勢情報は1/60秒毎にメモリ1302に格納されるので、第3のFIFOからは1/60秒毎に現実空間の画像が読み出されることになる。   Each time the position / orientation information of the handheld sensor 5000 and the position / orientation information of the HMD built-in sensor 1120 are stored in the memory 1302, an image of the real space is taken out (POP) from the FIFO and used in the subsequent processing. Since n data can be stored in the third FIFO, and the position / orientation information is stored in the memory 1302 every 1/60 seconds, the third FIFO receives every 1/60 seconds. The real space image is read out.

よって、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 sensor 1120 extracted from the second FIFO or the position and orientation information of the HMD built-in sensor 1120 acquired in step S101, a ViewMatrix indicating the position and orientation of the camera is generated (step S111). ). As for the position and orientation of the camera, for example, the position and orientation relationship between the HMD built-in sensor 1120 and the camera is measured in advance as an offset and stored in the memory 1302 as data. In step S111, the position and orientation of the camera in the world coordinate system can be obtained by adding this offset to the position and orientation information of the HMD built-in sensor 1120. If it is expressed in the form of a matrix, it becomes ViewMatrix.

次に、第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 handheld sensor 5000 taken out from the first FIFO or the position and orientation information of the handheld sensor 5000 acquired in step S101, a Modeling Matrix indicating the position and orientation of the handheld sensor 5000 is generated (step S112). ). This indicates the position and orientation of the hand-held sensor 5000 in the world coordinate system. Therefore, next, a virtual object (here, a CAD model) is placed at the position and orientation of the hand-held sensor 5000, and an image of the virtual space including the CAD model that can be seen from the camera is generated using the ViewMatrix, and the video in the memory 1302 is generated. Drawing in the buffer (step S113). Since the real space image is previously drawn in step S100 or step S107 in this video buffer, as a result, the video buffer is an image in which the virtual space image is superimposed on the real space image, that is, Since the mixed reality space image has been generated, the CPU 1301 transfers it to the video cards 1330 and 1331 (step S114).

そしてビデオカード1330、1331に転送された複合現実空間の画像は右目LCD1130,左目LCD1131に転送されることになるので、ユーザ1000の右目、左目の眼前にはそれぞれの目の位置姿勢に応じた複合現実空間の画像が表示されることになる。   Since the mixed reality space image transferred to the video cards 1330 and 1331 is transferred to the right eye LCD 1130 and the left eye LCD 1131, a composite image corresponding to the position and orientation of each eye is placed in front of the right eye and left eye of the user 1000. A real space image is displayed.

以上の処理により、ほぼ同時刻に取得されるべき現実空間の画像、位置姿勢情報を用いて複合現実空間の画像を生成することができるので、例えばユーザ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 user 1000 moves and moves the handheld sensor 5000. However, the CAD model can be moved following the sensor position without shifting from the position of the sensor, and the position shift between the real space and the virtual space can be reduced.

次に、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 CPU 1301 to execute the processing according to the flowchart shown in FIG. 9 are stored in the memory 1302, and the computer 1300 performs processing using the CPU 1301. Processing will be performed.

ここでは、ユーザ1000は手に保持している手持ちセンサ5000を左右に振る。そしてその様をHMD1100を介して見る。即ち、カメラによりその様を撮像する。   Here, the user 1000 swings the hand-held sensor 5000 held by the hand to the left and right. And that is seen through the HMD 1100. That is, such a thing is imaged with a camera.

その場合に、コンピュータ1300は以下のような処理を行う。   In that case, the computer 1300 performs the following processing.

先ず、カメラにより撮像された上記様は現実空間の画像としてビデオキャプチャカード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 memory 1302 via the video capture cards 1320 and 1321 as an image of the real space (step S200). Next, since the position and orientation information of the handheld sensor 5000 measured by the sensor unit 5001 of the handheld sensor 5000 is input to the computer 1300 via the three-dimensional sensor main body 1200 and the serial I / O 1310, the CPU 1301 detects this. After being converted into position and orientation information in the world coordinate system, it is stored in the memory 1302 (step S201). Note that the memory 1302 also holds the position and orientation information stored before that. That is, it is assumed that a predetermined amount of past position and orientation information is stored from what is currently stored.

そして、ステップS201で位置姿勢情報を格納した時刻を「キャプチャ時刻」としてメモリ1302に格納する(ステップS202)。時刻についてはCPU1301が常に計時しているので、CPU1301はステップS201における処理を行うと共に、このときの時刻をメモリ1302に格納する。   The time when the position / orientation information is stored in step S201 is stored in the memory 1302 as the “capture time” (step S202). Since the CPU 1301 always keeps track of the time, the CPU 1301 performs the processing in step S201 and stores the time at this time in the memory 1302.

次に、CPU1301は、ステップS200でメモリ1302に格納した現実空間の画像から、マーカ5004の領域を検出し、検出した位置を求める(ステップS203)。ステップS203における処理としては例えば、画像を構成する各画素の画素値を参照し、マーカ5004の色を有する画素群による領域を1以上検出し、検出した領域の中で最も面積の大きい領域(構成する画素の数が最も多い領域)を特定し、特定した領域の重心位置をマーカ5004の画像における位置とする。   Next, the CPU 1301 detects the area of the marker 5004 from the real space image stored in the memory 1302 in step S200, and obtains the detected position (step S203). As the processing in step S203, for example, by referring to the pixel value of each pixel constituting the image, one or more regions by the pixel group having the color of the marker 5004 are detected, and the region having the largest area (configuration) is detected. The area having the largest number of pixels to be identified), and the position of the center of gravity of the identified area is set as the position in the image of the marker 5004.

このようにして、画像におけるマーカ5004の位置を求め、メモリ1302に格納するのであるが、メモリ1302には過去に求めた重心位置のデータも保持されているものとする。   In this manner, the position of the marker 5004 in the image is obtained and stored in the memory 1302, and it is assumed that the memory 1302 also holds data on the center of gravity obtained in the past.

そして次に、前回のステップS201で求めた手持ちセンサ5000の位置と、今回のステップS201で求めた手持ちセンサ5000の位置との差分を計算して、その差分値が所定量以下であるのか否かを判断し(ステップS204)、所定量以下である場合、即ち、手持ちセンサ5000がほぼ静止した場合には処理をステップS205に進め、そのときの時刻(タイミング)をメモリ1302に格納する(ステップS205)。   Then, the difference between the position of the handheld sensor 5000 obtained in the previous step S201 and the position of the handheld sensor 5000 obtained in the current step S201 is calculated, and whether or not the difference value is equal to or less than a predetermined amount. (Step S204), if it is equal to or smaller than the predetermined amount, that is, if the handheld sensor 5000 is almost stationary, the process proceeds to step S205, and the time (timing) at that time is stored in the memory 1302 (step S205). ).

なお、ステップ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 handheld sensor 5000 and storing the obtained time in the memory 1302, which has been described here. The processing in steps S204 and S205 is an example.

また、前回のステップS203で求めたマーカ5004の画像における位置と、今回のステップS203で求めたマーカ5004の画像における位置との差分を計算して、その差分値が所定量以下であるのか否かを判断し(ステップS206)、所定量以下である場合、即ち、手持ちセンサ5000がほぼ静止した場合には処理をステップS207に進め、そのときの時刻(タイミング)をメモリ1302に格納する(ステップS207)。   Also, the difference between the position in the image of the marker 5004 obtained in the previous step S203 and the position in the image of the marker 5004 obtained in the current step S203 is calculated, and whether or not the difference value is equal to or less than a predetermined amount. (Step S206), if it is equal to or less than the predetermined amount, that is, if the handheld sensor 5000 is almost stationary, the process proceeds to step S207, and the time (timing) at that time is stored in the memory 1302 (step S207). ).

なお、ステップ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 handheld sensor 5000 is minimized using the position of the marker 5004 on the image, and storing the obtained time in the memory 1302. The processing in steps S206 and S207 described here is an example.

例えば手持ちセンサ5000を三角形をトレースするように移動させる場合などは、加速度が極大値をとったタイミングをステップS205でメモリ1302に格納するようにしても良い。また、手持ちセンサ5000を手に取り付けずに、様々な運動体に取り付けることも考えられるので、取得するタイミングには様々なものが考えられる。   For example, when the hand-held sensor 5000 is moved so as to trace a triangle, the timing at which the acceleration takes the maximum value may be stored in the memory 1302 in step S205. Further, since it is possible to attach the hand-held sensor 5000 to various moving bodies without attaching it to the hand, various timings for acquisition can be considered.

そして、ステップS205でメモリ1302に格納した時刻と、ステップS207でメモリ1302に格納した時刻との差分(即ち上記遅れ時間=n/60秒)を求め、求めた差分を示すデータをメモリ1302に格納する(ステップS208)。   Then, the difference between the time stored in the memory 1302 in step S205 and the time stored in the memory 1302 in step S207 (that is, the delay time = n / 60 seconds) is obtained, and data indicating the obtained difference is stored in the memory 1302. (Step S208).

ここで、ステップ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 sensor 5000. FIG. 11 shows an outline of a method for calculating the delay time in the flowchart shown in FIG.

ステップ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 handheld sensor 5000, but x is obtained as shown in FIG. + x)-If ts (k) is the delay time, there is no need to make such an assumption.

そして処理を図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 sensor 5000 has obtained the same event that the hand-held sensor 5000 is substantially stationary and the time obtained from the image, there is a difference between the time when the position / orientation information is stored in the memory 1302 and the memory The difference between the time when the real space image is stored in 1302 and the difference between the time when the position / orientation information is stored in the memory 1302 and the time when the real space image is stored in the memory 1302. Difference (D). Therefore, the position and orientation measured when an image of the real space stored in the memory 1302 at a certain time is captured is stored in the memory 1302 before this “some time” by this “difference D”. Position and posture. Therefore, when the difference D is obtained, a value obtained by multiplying the difference D by 60 may be substituted for n (when the unit of D is seconds).

また、本実施形態では、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 user 1000 moves the hand-held sensor 5000 and moves it, the CAD model can be moved without being delayed, and the positional deviation between the real space and the virtual space can be reduced. Can be reduced.

[第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 memory 1302 is measured. The system for performing such measurement processing according to the present embodiment is the same as that of the first embodiment.

図13は、このような計測処理のフローチャートである。CPU1301は、パラレルI/O1311を介してLED5005の点灯/消灯を制御するための制御信号を発する。ここでは制御信号は発してからLED5005が点灯/消灯するまでに要する時間は0であるとする。   FIG. 13 is a flowchart of such a measurement process. The CPU 1301 issues a control signal for controlling turning on / off of the LED 5005 via the parallel I / O 1311. Here, it is assumed that the time required from when the control signal is issued until the LED 5005 is turned on / off is zero.

先ず、内部状態(内部ステート)を示す変数を”アイドル”に設定すると共に、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 LED 5005 is issued via the parallel I / O 1311 (step S300).

次に、カメラにより撮像された現実空間の画像がビデオキャプチャカード1320,1321を介して順次メモリ1302に格納される(ステップS301)ので、CPU1301はこれを検知して、そのときの時刻をキャプチャ時刻としてメモリ1302に格納する(ステップS302)。   Next, since the real space images captured by the camera are sequentially stored in the memory 1302 via the video capture cards 1320 and 1321 (step S301), the CPU 1301 detects this and captures the time at that time as the capture time. Is stored in the memory 1302 (step S302).

次に、ステップS301で取り込んだ画像を参照して、LED5005が点灯しているのか否かをチェックする(ステップS303)。このチェック処理としては、例えば、画像を構成する各画素の画素値を参照し、画素値をYCrCbで見たときに、Y値が所定値以上である画素の集合を1以上特定し、特定した集合のうち最もサイズの大きい集合のサイズが所定サイズ以上であれば、LED5005が点灯していると判断する。   Next, with reference to the image captured in step S301, it is checked whether the LED 5005 is lit (step S303). As the checking process, for example, the pixel value of each pixel constituting the image is referred to, and when the pixel value is viewed in YCrCb, one or more sets of pixels whose Y value is a predetermined value or more are specified and specified. If the size of the largest set among the sets is equal to or larger than a predetermined size, it is determined that the LED 5005 is lit.

次に、内部状態を示す変数を参照し(ステップ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 LED 5005 is turned off, first, the CPU 1301 issues a control signal for turning on the LED 5005 to the LED 5005 via the parallel I / O 1311 (step S307). The CPU 1301 stores the time when the control signal is issued in the memory 1302 (step S308). Then, the variable indicating the internal state is changed to “waiting for detection” (step S309).

一方、ステップ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 LED 5005 is lit, the process proceeds to step S310, and it is determined whether or not it is determined in step S303 that the LED 5005 is lit (step S303). If it is determined that the LED 5005 is lit, the process proceeds to step S311, and the CPU 1301 issues a control signal for turning off the LED 5005 to the LED 5005 via the parallel I / O 1311 (step S311). To do. Then, a difference between the time at that time and the time stored in the memory 1302 in step S302 is obtained (step S312).

この差分値は即ち、LED5005が実際に点灯してから、点灯しているLED5005を含む現実空間の画像を得るまでに要する時間を表している。   That is, this difference value represents the time required from when the LED 5005 is actually turned on until an image of the real space including the lit LED 5005 is obtained.

そしてCPU1301は内部状態を示す変数を”終了待ち”に変更する(ステップS313)。   Then, the CPU 1301 changes the variable indicating the internal state to “wait for completion” (step S313).

一方、ステップ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 LED 5005 is lit (step S314). If it is determined that the LED 5005 is lit, the process proceeds to step S314. Proceeding to S315, the CPU 1301 changes the variable indicating the internal state to “idle” (step S315).

以上の説明により、本実施形態によって、カメラが撮像してからコンピュータ1300のメモリ1302に格納され、CPU1301がそれを用いて処理を行おうとするまでに要する時間を計測することができる。   As described above, according to the present embodiment, it is possible to measure the time required for the CPU 1301 to perform processing using the image captured by the camera and stored in the memory 1302 of the computer 1300.

また、本実施形態では発光体として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 sensor 5900 used in the present embodiment. The hand-held sensor 5900 shown in the figure includes a calibration switch 5006 in the hand-held sensor 5000 used in the first embodiment shown in FIG. The calibration switch 5006 is connected to the parallel I / O 1311 provided in the computer 1300. When the calibration switch 5006 is pressed, a signal indicating that is sent from the calibration switch 5006 to the parallel I / O 1311. Therefore, the CPU 1301 can detect pressing of the calibration switch 5006 by detecting this signal.

しかし、このキャリブレーションスイッチ5006は必須なものではなく、キーボードやマウスをコンピュータ1300に接続し、これをキャリブレーションスイッチ5006の代わりに用いるようにしても良い。   However, the calibration switch 5006 is not indispensable, and a keyboard or a mouse may be connected to the computer 1300 and used instead of the calibration switch 5006.

従って本実施形態では、コンピュータ1300は、キャリブレーションスイッチ5006が押下されていない場合には、CADビューワシステムのアプリケーションプログラムを実行し、押下されている場合には、図9のフローチャートに従った処理を実行して上記遅れ時間を計測する処理を行う。   Therefore, in this embodiment, the computer 1300 executes the application program of the CAD viewer system when the calibration switch 5006 is not pressed, and performs processing according to the flowchart of FIG. 9 when the calibration switch 5006 is pressed. A process for measuring the delay time is executed.

図15は、本実施形態に係るコンピュータ1300が行う処理のフローチャートである。   FIG. 15 is a flowchart of processing performed by the computer 1300 according to this embodiment.

CPU1301は、パラレルI/O1311を介して、キャリブレーションスイッチ5006の押下を示す信号が入力されたことを検知すると、処理をステップS400を介してステップS401に進め、キャリブレーションツールの実行、即ち、図9のフローチャートに従った処理を実行する(ステップS401)。なお、本実施形態では、図9のフローチャートに従った処理においてステップS208における処理の次にはステップS200に戻らずに、ステップS402に進む。   When the CPU 1301 detects that a signal indicating that the calibration switch 5006 has been pressed is input via the parallel I / O 1311, the CPU 1301 advances the process to step S 401 via step S 400, and executes the calibration tool. 9 is executed (step S401). In the present embodiment, in the process according to the flowchart of FIG. 9, the process proceeds to step S402 without returning to step S200 after the process in step S208.

ここで、図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 CPU 1301 does not detect that a signal indicating that the calibration switch 5006 is pressed is input via the parallel I / O 1311, the process proceeds to step S404 via step S400, and the calibration tool The work history is cleared (step S404), and the CAD viewer system is activated (step S405). The operation of the CAD viewer system follows the flowchart of FIG. In the present embodiment, in the process according to the flowchart of FIG. 8, the process proceeds to step S400 without returning to step S100 after the process in step S114.

また、ステップ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 computer 1300 as in the third embodiment.

図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.

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 example of a display of the image 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 were synthesize | combined. MR技術を使用したCADビューワの機器構成を示す図である。It is a figure which shows the apparatus structure of the CAD viewer using MR technique. 手持ちセンサ5000とCADモデル4000との位置姿勢関係を示す図である。It is a figure which shows the position and orientation relationship between the handheld sensor 5000 and the CAD model 4000. 手持ちセンサ5000の外観、内部構成を示す図である。It is a figure which shows the external appearance of the handheld sensor 5000, and an internal structure. コンピュータ1300を含む、システムの基本構成を示すブロック図である。1 is a block diagram showing a basic configuration of a system including a computer 1300. FIG. ユーザ1000に複合現実空間の画像を提供するために、コンピュータ1300が行う処理のフローチャートである。10 is a flowchart of processing performed by a computer 1300 to provide a user 1000 with an image of a mixed reality space. IFOが保持可能なデータ数n(換言すればずらす時間を決定するパラメータ)を決定する処理のフローチャートである。It is a flowchart of the process which determines the number of data n which IFO can hold | maintain (in other words, the parameter which determines the time to shift). ステップS208における処理の詳細を示すフローチャートである。It is a flowchart which shows the detail of the process in step S208. 図10に示したフローチャートでの遅れ時間の計算方法の概略を示す図である。It is a figure which shows the outline of the calculation method of the delay time in the flowchart shown in FIG. 図10に示したフローチャートでの遅れ時間の計算方法の概略を示す図である。It is a figure which shows the outline of the calculation method of the delay time in the flowchart shown in FIG. カメラが撮像を行ってから、メモリ1302にその撮像した画像が格納されるまでの時間の計測処理のフローチャートである。10 is a flowchart of a process for measuring time from when a camera performs imaging until the captured image is stored in a memory 1302; 本発明の第3の実施形態で用いる手持ちセンサ5900を示す図である。It is a figure which shows the hand-held sensor 5900 used in the 3rd Embodiment of this invention. 本発明の第3の実施形態に係るコンピュータ1300が行う処理のフローチャートである。It is a flowchart of the process which the computer 1300 which concerns on the 3rd Embodiment of this invention performs. キャリブレーションツールの動作を示すフローチャートである。It is a flowchart which shows operation | movement of a calibration tool. キャリブレーションツールの動作を示すフローチャートである。It is a flowchart which shows operation | movement of a calibration tool.

Claims (11)

指示具の位置姿勢情報を連続して入力する第1の入力工程と、
前記指示具を含む現実空間の映像を連続して入力する第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の検知工程では、前記第1の入力工程で入力した位置姿勢情報の変化に基づいて、前記指示具の移動量が極小となるタイミングを検知することを特徴とする請求項1に記載の情報処理方法。   2. The timing according to claim 1, wherein in the first detection step, a timing at which the amount of movement of the pointing tool is minimized is detected based on a change in position and orientation information input in the first input step. Information processing method. 前記第2の検知工程では、前記指示具に取り付けられた所定の色を有するマーカの、前記第2の入力工程で入力した映像上における位置の変化に基づいて、前記指示具の移動量が極小となるタイミングを検知することを特徴とする請求項1に記載の情報処理方法。   In the second detection step, the amount of movement of the pointing tool is minimized based on a change in the position of the marker having a predetermined color attached to the pointing tool on the image input in the second input step. The information processing method according to claim 1, further comprising: detecting a timing at which 前記計算工程は、
前記第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の状態、第2の状態の何れかの状態を取るように制御可能なデバイスを制御する制御工程と、
前記制御工程における制御に従って前記デバイスが第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.
指示具の位置姿勢情報を連続して入力する第1の入力手段と、
前記指示具を含む現実空間の映像を連続して入力する第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の状態、第2の状態の何れかの状態を取るように制御可能なデバイスを制御する制御手段と、
前記制御手段による制御に従って前記デバイスが第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.
コンピュータに請求項1乃至7の何れか1項に記載の情報処理方法を実行させることを特徴とするプログラム。   A program that causes a computer to execute the information processing method according to any one of claims 1 to 7. 請求項10に記載のプログラムを格納することを特徴とする、コンピュータ読み取り可能な記憶媒体。   A computer-readable storage medium storing the program according to claim 10.
JP2005187082A 2005-06-27 2005-06-27 Information processing method and information processing unit Withdrawn JP2007004714A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (13)

* Cited by examiner, † Cited by third party
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