JP5307060B2 - Image processing apparatus, image processing method, and program - Google Patents

Image processing apparatus, image processing method, and program Download PDF

Info

Publication number
JP5307060B2
JP5307060B2 JP2010056120A JP2010056120A JP5307060B2 JP 5307060 B2 JP5307060 B2 JP 5307060B2 JP 2010056120 A JP2010056120 A JP 2010056120A JP 2010056120 A JP2010056120 A JP 2010056120A JP 5307060 B2 JP5307060 B2 JP 5307060B2
Authority
JP
Japan
Prior art keywords
virtual
sight
posture
user
orientation
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.)
Active
Application number
JP2010056120A
Other languages
Japanese (ja)
Other versions
JP2011191899A (en
Inventor
祐一 浅見
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.)
Konami Digital Entertainment Co Ltd
Original Assignee
Konami Digital Entertainment Co Ltd
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 Konami Digital Entertainment Co Ltd filed Critical Konami Digital Entertainment Co Ltd
Priority to JP2010056120A priority Critical patent/JP5307060B2/en
Publication of JP2011191899A publication Critical patent/JP2011191899A/en
Application granted granted Critical
Publication of JP5307060B2 publication Critical patent/JP5307060B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To allow a user to change, through a simple operation, the way of viewing an object placed inside a virtual place. <P>SOLUTION: In an image processor 300, a storage unit 301 stores the position and attitude of an object placed in a virtual space, the position of a virtual viewpoint and the direction of a virtual line of sight, when the virtual space is viewed from the position of the virtual viewpoint. A detection unit 302 detects the position and attitude of a first body part of a user and the position and attitude of a second body part of the user in a real space. A change unit 303 changes the position and attitude of the object based on the detected position and attitude of the first body part and changes the position of the virtual viewpoint and the direction of the virtual line of sight, based on the detected position and attitude of the second body part relative to the first body part. An image generation unit 304 generates an image, representing an appearance of the object seen from the position of the virtual viewpoint in the direction of the virtual line of sight. A display unit 305 displays the generated image. <P>COPYRIGHT: (C)2011,JPO&amp;INPIT

Description

本発明は、仮想空間に配置されるオブジェクトの見方をユーザが簡単な操作で変えることができるようにするために好適な画像処理装置、画像処理方法、ならびに、プログラムに関する。   The present invention relates to an image processing apparatus, an image processing method, and a program suitable for enabling a user to change the way of viewing objects arranged in a virtual space with a simple operation.

人間などのモデルにマーカーを取り付け、このマーカーの動きを検出することによって、現実空間におけるモデルの動きをデジタル化して捉える、いわゆるモーションキャプチャーと呼ばれる技術がある。また、モデルの動きを1つ又は複数のカメラで撮影したり、周囲に照射した赤外線の飛行時間やその反射波の位相差を用いてモデルまでの距離(“深さ”とも言う。)を計測したりすることによって、モデルの動きを捉える技術もある。   There is a so-called motion capture technique in which a marker is attached to a model such as a human and the movement of the marker is detected to digitize and capture the movement of the model in real space. In addition, the movement of the model is photographed with one or a plurality of cameras, and the distance to the model (also referred to as “depth”) is measured using the time of flight of the infrared rays irradiated to the surroundings and the phase difference of the reflected waves. There is also a technology to capture the movement of the model by doing.

現実空間の様子を捉えるこれらの技術は、例えば、仮想空間でのゲームにおいて、画面内のキャラクタをより自然に動かすために用いられる。特許文献1には、プレイヤーを撮影し、プレイヤーの所定の部位(例えば、頭部、両眼部など)を追尾することによって、より変化に富んだゲームを楽しめるようにした装置が開示されている。   These techniques for capturing the state of the real space are used, for example, to move the characters in the screen more naturally in a game in a virtual space. Patent Document 1 discloses an apparatus that allows a player to enjoy a more varied game by photographing a player and tracking a predetermined part of the player (for example, the head and both eyes). .

一方で、CAD(Computer Aided Design)のように、3次元仮想空間に配置した、製品や部品などといったオブジェクトを、様々な方向から眺めたり設計したりすることができるシステムが広く普及している。   On the other hand, systems such as CAD (Computer Aided Design) that can view and design objects such as products and parts arranged in a three-dimensional virtual space from various directions are widely used.

特許第4117682号公報Japanese Patent No. 4117682

ところで、従来のCADシステムでは、ユーザは、仮想空間内のオブジェクトの位置や姿勢、あるいは、オブジェクトを見る位置(仮想視点)や方向(仮想視線)などを変えたい場合、キーボードやマウスなどの所定の入力装置を使って、所望のアングルになるように調節しなければならず、操作が面倒であったり操作が複雑で扱いにくかったりするという問題があった。   By the way, in the conventional CAD system, when the user wants to change the position and orientation of the object in the virtual space, or the position (virtual viewpoint) and direction (virtual line of sight) of viewing the object, the user can use a predetermined keyboard or mouse. The input device has to be adjusted to a desired angle, and there is a problem that the operation is troublesome or the operation is complicated and difficult to handle.

本発明はこのような課題を解決するものであり、仮想空間に配置されるオブジェクトの見方をユーザが簡単な操作で変えることができるようにするために好適な画像処理装置、画像処理方法、ならびに、プログラムを提供することを目的とする。   The present invention solves such a problem, and an image processing apparatus, an image processing method, and an image processing apparatus suitable for enabling a user to change the way of viewing an object arranged in a virtual space with a simple operation. The purpose is to provide a program.

以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。   In order to achieve the above object, the following invention is disclosed in accordance with the principle of the present invention.

本発明の第1の観点に係る画像処理装置は、記憶部、検知部、変化部、画像生成部、表示部を備える。
記憶部には、仮想空間に配置されるオブジェクトの位置と姿勢と、当該仮想空間に配置される仮想視点の位置と、当該仮想視点の位置から当該仮想空間を見る仮想視線の向きと、が記憶される。
検知部は、現実空間におけるユーザの第1の部位の位置と姿勢と、当該ユーザの第2の部位の位置と姿勢と、を検知する。
変化部は、検知された第1の部位の位置と姿勢とに基づいて、記憶されるオブジェクトの位置と姿勢とを変化させ、検知された第2の部位の第1の部位に対する相対的な位置と姿勢とに基づいて、記憶される仮想視点の位置と記憶される仮想視線の向きとを変化させる。
画像生成部は、仮想視点の位置から仮想視線の向きにオブジェクトを見た様子を表す画像を生成する。
表示部は、生成された画像を現実空間におけるモニター画面に表示する。
An image processing apparatus according to a first aspect of the present invention includes a storage unit, a detection unit, a change unit, an image generation unit, and a display unit.
The storage unit stores the position and orientation of the object arranged in the virtual space, the position of the virtual viewpoint arranged in the virtual space, and the direction of the virtual line of sight of viewing the virtual space from the position of the virtual viewpoint. Is done.
The detection unit detects the position and posture of the first part of the user in the real space and the position and posture of the second part of the user.
The changing unit changes the position and posture of the stored object based on the detected position and orientation of the first part, and detects the relative position of the detected second part with respect to the first part. And the position of the stored virtual viewpoint and the stored direction of the virtual line of sight are changed based on the orientation and the posture.
The image generation unit generates an image representing a state in which the object is viewed from the position of the virtual viewpoint in the direction of the virtual line of sight.
The display unit displays the generated image on a monitor screen in the real space.

仮想空間には、位置と姿勢が可変のオブジェクトが配置される。任意の立体がオブジェクトとなりえるが、例えば、オブジェクトは、ゲームに登場するキャラクター、飛行機の立体モデル、製品、部品、立体地形図などである。
現実空間には、オブジェクトの様子を表す画像を表示するためのモニターと、ユーザを撮影するカメラと、ユーザの所定の部位の位置と姿勢を検知するセンサーと、が配置される。所定の部位は、例えば、ユーザの手、指、頭、顔、足、胴体などである。
An object whose position and orientation are variable is arranged in the virtual space. An arbitrary solid can be an object. For example, the object is a character appearing in a game, a solid model of an airplane, a product, a part, a three-dimensional topographic map, and the like.
In the real space, a monitor for displaying an image representing the state of the object, a camera for photographing the user, and a sensor for detecting the position and posture of the predetermined part of the user are arranged. The predetermined part is, for example, a user's hand, finger, head, face, foot, or torso.

画像処理装置は、現実空間におけるユーザの第1の部位の位置と姿勢を検知する。第1の部位は、例えば、手である。また、画像処理装置は、現実空間におけるユーザの第2の部位の位置と姿勢を検知する。第2の部位は、例えば、頭である。第1の部位の位置と姿勢、及び、第2の部位の位置と姿勢は、定期的なタイミングで繰り返し検知される。
撮影された画像のパターンや特徴点を画像解析することにより、第1の部位と第2の部位のこの画像内における位置と形状が判別される。更に、画像処理装置から発射された照射波(例えば赤外線)の物体による反射波を検知し、照射波の飛行時間や位相差を解析することにより、画像処理装置から第1の部位と第2の部位までの距離(センサーからの“深さ”)が判別される。画像を解析した結果と、検知された深さと、に基づいて、現実空間における第1の部位と第2の部位の位置と姿勢が特定される。
The image processing device detects the position and posture of the first part of the user in the real space. The first part is, for example, a hand. Further, the image processing device detects the position and posture of the user's second part in the real space. The second part is, for example, the head. The position and posture of the first part and the position and posture of the second part are repeatedly detected at regular timing.
By analyzing the pattern and feature points of the captured image, the positions and shapes of the first part and the second part in the image are determined. Further, the reflected wave from the object of the irradiation wave (for example, infrared rays) emitted from the image processing apparatus is detected, and the flight time and phase difference of the irradiation wave are analyzed, so that the first part and the second part are detected from the image processing apparatus. The distance to the part ("depth" from the sensor) is determined. Based on the result of analyzing the image and the detected depth, the positions and postures of the first part and the second part in the real space are specified.

本発明では、仮想空間におけるオブジェクトの動きが、現実空間におけるユーザの第1の部位と第2の部位の動きに連動するようになっている。ユーザが第1の部位の位置と姿勢を変えると、それに応じてオブジェクトの位置と姿勢が変わる。また、ユーザが第2の部位の位置と姿勢を変えると、それに応じてオブジェクトを見る視点(仮想視点)の位置とオブジェクトを見る視線(仮想視線)の向きが変わる。   In the present invention, the movement of the object in the virtual space is interlocked with the movement of the first part and the second part of the user in the real space. When the user changes the position and posture of the first part, the position and posture of the object change accordingly. When the user changes the position and orientation of the second part, the position of the viewpoint (virtual viewpoint) for viewing the object and the direction of the line of sight (virtual viewpoint) for viewing the object change accordingly.

従って、本発明によれば、ユーザは、仮想空間に配置されたオブジェクトを異なるアングルから眺めたい場合には、第1の部位の位置と姿勢を変えることによってオブジェクトの位置と姿勢を自由に変えればよいし、あるいは、第2の部位の位置と姿勢を変えることによって仮想視点の位置と仮想視線の向きを自由に変えればよい。その際、ユーザは、コントローラ、キーボード、マウスなどの入力装置を用いなくてもよく、自分の体の一部を動かすだけでよい。ユーザは、仮想空間に配置されるオブジェクトの見方を簡単な操作で変えることができる。   Therefore, according to the present invention, when the user wants to view the object arranged in the virtual space from different angles, the user can freely change the position and posture of the object by changing the position and posture of the first part. Alternatively, the position of the virtual viewpoint and the direction of the virtual line of sight may be freely changed by changing the position and posture of the second part. At that time, the user does not need to use an input device such as a controller, a keyboard, or a mouse, but only moves a part of his / her body. The user can change the view of the object arranged in the virtual space with a simple operation.

変化部は、検知された第2の部位の位置と姿勢とに基づいて、ユーザの視点から現実世界を見るときの視線(以下「ユーザ視線」という。)の位置と向きを推定してもよい。
そして、画像生成部は、ユーザ視線の位置又は向きが変化を始めてから所定時間内にユーザ視線がモニター画面と交差した場合、ユーザ視線がモニター画面と交差している間、変化を始める前に記憶部に記憶されていた、オブジェクトの位置と姿勢と、仮想視点の位置と、仮想視線の向きと、に基づいて、オブジェクトを見た様子を表す画像を生成する。
The changing unit may estimate the position and orientation of the line of sight (hereinafter referred to as “user line of sight”) when viewing the real world from the user's viewpoint based on the detected position and orientation of the second part. .
Then, when the user line of sight intersects the monitor screen within a predetermined time after the position or orientation of the user line of sight starts changing, the image generation unit stores before the change starts while the user line of sight intersects the monitor screen. Based on the position and orientation of the object, the position of the virtual viewpoint, and the direction of the virtual line of sight stored in the section, an image representing the appearance of the object is generated.

本発明によれば、画像処理装置は、ユーザがモニター画面を見ているか否かを推測し、その推測結果に応じて表示の態様を変えることができる。例えば、ユーザが仮想空間内のオブジェクトを異なるアングルから眺めたい場合、まず、ユーザは、第1の部位を所望の位置と姿勢にセットする。その後、ユーザは、一旦第1の部位から目を離してモニター画面の方を向く。すると、モニター画面には、モニター画面に向く直前の様子が表示される。
つまり、ユーザがモニター画面を見ていない(その代わりにユーザが第1の部位を見ている)と推測されるときには、仮想空間におけるオブジェクトの動きが、現実空間におけるユーザの第1の部位と第2の部位の動きに連動する。一方、ユーザがモニター画面を見ている(その代わりにユーザが第1の部位を見ていない)と推測されるときには、仮想空間におけるオブジェクトの動きと、現実空間におけるユーザの第1の部位と第2の部位の動きと、の連動が停止し、あたかも直前のリプレイ画像が表示されるかのように、オブジェクトの様子が表示される。
従って、ユーザは、第1の部位の位置と姿勢と、第2の部位の位置と姿勢と、を所望の位置と姿勢にセットした後、すぐにモニター画面に目を転じなくてもよい。また、ユーザは、第1の部位の位置と姿勢と、第2の部位の位置と姿勢と、を所望の位置と姿勢にセットしつつ、横目でモニター画面も見る、といった不自由が生じなくて済む。
According to the present invention, the image processing apparatus can estimate whether or not the user is looking at the monitor screen and can change the display mode according to the estimation result. For example, when the user wants to view an object in the virtual space from a different angle, the user first sets the first part to a desired position and posture. Thereafter, the user turns away from the first part and faces the monitor screen. Then, the state immediately before facing the monitor screen is displayed on the monitor screen.
That is, when it is assumed that the user is not looking at the monitor screen (the user is looking at the first part instead), the movement of the object in the virtual space is the same as the first part of the user in the real space. It is linked to the movement of 2 parts. On the other hand, when it is assumed that the user is looking at the monitor screen (instead, the user is not looking at the first part), the movement of the object in the virtual space and the first part and the first part of the user in the real space are The movement of the second part stops and the state of the object is displayed as if the previous replay image is displayed.
Therefore, the user does not have to turn his eyes to the monitor screen immediately after setting the position and posture of the first part and the position and posture of the second part to the desired position and posture. In addition, the user does not have the inconvenience of setting the position and posture of the first part and the position and posture of the second part to the desired position and posture and looking at the monitor screen with a horizontal eye. That's it.

記憶部には、オブジェクトの位置と姿勢の履歴と、仮想視点の位置の履歴と、仮想視線の向きの履歴と、が記憶されてもよい。
そして、画像生成部は、記憶されたオブジェクトの位置と姿勢の履歴と、記憶された仮想視点の位置の履歴と、記憶された仮想視線の向きの履歴と、に基づいて、変化を始める前にオブジェクトを見た様子を表す画像を生成してもよい。
The storage unit may store an object position and orientation history, a virtual viewpoint position history, and a virtual line-of-sight direction history.
Then, the image generation unit is configured to start the change based on the stored history of the position and orientation of the object, the stored history of the virtual viewpoint position, and the stored history of the virtual line-of-sight. An image representing the appearance of the object may be generated.

本発明によれば、オブジェクトを見た画像を表示するために必要な各種パラメータの履歴が記憶されるので、画像処理装置は、任意の過去の時刻においてオブジェクトを見た画像を表示することができる。   According to the present invention, since a history of various parameters necessary for displaying an image of viewing an object is stored, the image processing apparatus can display an image of viewing the object at an arbitrary past time. .

変化部は、検知された第1の部位の位置と姿勢の各変化量の所定倍数量だけ、記憶される仮想視点の位置と仮想視線の向きとを変化させ、検知された第2の部位の位置と姿勢の相対的な各変化量の所定倍数量だけ、記憶されるオブジェクトの位置と姿勢とを変化させてもよい。   The changing unit changes the stored position of the virtual viewpoint and the direction of the virtual line of sight by a predetermined multiple of the detected amount of change in the position and orientation of the first part, and changes the direction of the detected second part. The stored position and orientation of the object may be changed by a predetermined multiple of each relative change in position and orientation.

つまり、第1の部位の位置の変化量、第1の部位の姿勢の変化量、第2の部位の位置の変化量、及び、第2の部位の姿勢の変化量が、オブジェクトの位置の変化量、オブジェクトの姿勢の変化量、仮想視点の位置の変化量、及び、仮想視線の向きの変化量に忠実に再現されなくてもよい。本発明によれば、例えば、第1の部位を90度傾ければ、オブジェクトがその2倍の180度傾く、といった仕様を実現することができる。なお、所定倍数は2倍に限定されるわけではなく、所定倍数を任意の値に設定することが可能である。   That is, the amount of change in the position of the first part, the amount of change in the posture of the first part, the amount of change in the position of the second part, and the amount of change in the position of the second part are the changes in the position of the object. It is not necessary to faithfully reproduce the amount, the amount of change in the posture of the object, the amount of change in the position of the virtual viewpoint, and the amount of change in the direction of the virtual line of sight. According to the present invention, for example, it is possible to realize a specification that if the first part is tilted by 90 degrees, the object is tilted by 180 degrees which is twice that of the first part. The predetermined multiple is not limited to double, and the predetermined multiple can be set to an arbitrary value.

変化部は、検知された第1の部位の位置と姿勢とに基づいて第1の部位の表面の形状を近似する平面を求め、当該求められた平面を用いてオブジェクトの位置と姿勢とを決定してもよい。   The changing unit obtains a plane that approximates the shape of the surface of the first part based on the detected position and orientation of the first part, and determines the position and orientation of the object using the obtained plane. May be.

本発明によれば、画像処理装置は第1の部位の正確な形状を判別しなくてもよいので、画像処理がより簡略化される。   According to the present invention, since the image processing apparatus does not have to determine the exact shape of the first part, the image processing is further simplified.

変化部は、検知された第2の部位の位置と姿勢とに基づいて第2の部位の表面の形状を近似する平面を求め、当該求められた平面を用いて仮想視点の位置と仮想視線の向きとを決定してもよい。   The changing unit obtains a plane that approximates the shape of the surface of the second part based on the detected position and orientation of the second part, and uses the obtained plane to determine the position of the virtual viewpoint and the virtual line of sight The direction may be determined.

本発明によれば、画像処理装置は第2の部位の正確な形状を判別しなくてもよいので、画像処理がより簡略化される。   According to the present invention, since the image processing apparatus does not have to determine the exact shape of the second part, the image processing is further simplified.

第1の部位はユーザの手であり、第2の部位はユーザの頭であってもよい。
また、検知部は、現実空間におけるユーザの手の位置と姿勢と、ユーザの頭の位置と姿勢と、を検知してもよい。
そして、変化部は、検知された手の位置と姿勢とに基づいて、記憶されるオブジェクトの位置と姿勢とを変化させ、検知された頭の、手に対する相対的な位置と姿勢とに基づいて、記憶される仮想視点の位置と記憶される仮想視線の向きとを変化させてもよい。
The first part may be the user's hand, and the second part may be the user's head.
The detection unit may detect the position and posture of the user's hand in the real space and the position and posture of the user's head.
The changing unit changes the position and posture of the stored object based on the detected hand position and posture, and based on the detected relative position and posture of the head to the hand. The stored virtual viewpoint position and the stored virtual visual line direction may be changed.

すなわち、ユーザは、手と頭を動かすだけで、様々なアングルからオブジェクトを眺めた様子を見ることができる。その際、ユーザは、コントローラ、キーボード、マウスといった入力装置を扱わなくてもよく、手と頭を動かすという直感的な動作をするだけでよい。   That is, the user can see the object viewed from various angles simply by moving the hand and head. At that time, the user does not need to handle an input device such as a controller, a keyboard, and a mouse, and only needs to perform an intuitive operation of moving a hand and a head.

本発明のその他の観点に係る画像処理方法は、記憶部、検知部、変化部、画像生成部、表示部を有する画像処理装置にて実行される画像処理方法であって、検知ステップ、変化ステップ、画像生成ステップ、表示ステップを備える。
記憶部には、仮想空間に配置されるオブジェクトの位置と姿勢と、当該仮想空間に配置される仮想視点の位置と、当該仮想視点の位置から当該仮想空間を見る仮想視線の向きと、が記憶される。
検知ステップでは、検知部が、現実空間におけるユーザの第1の部位の位置と姿勢と、当該ユーザの第2の部位の位置と姿勢と、を検知する。
変化ステップでは、変化部が、検知された第1の部位の位置と姿勢とに基づいて、記憶されるオブジェクトの位置と姿勢とを変化させ、検知された第2の部位の第1の部位に対する相対的な位置と姿勢とに基づいて、記憶される仮想視点の位置と記憶される仮想視線の向きとを変化させる。
画像生成ステップでは、画像生成部が、仮想視点の位置から仮想視線の向きにオブジェクトを見た様子を表す画像を生成する。
表示ステップでは、表示部が、生成された画像を現実空間におけるモニター画面に表示する。
An image processing method according to another aspect of the present invention is an image processing method executed by an image processing apparatus having a storage unit, a detection unit, a change unit, an image generation unit, and a display unit, and includes a detection step and a change step. An image generation step and a display step.
The storage unit stores the position and orientation of the object arranged in the virtual space, the position of the virtual viewpoint arranged in the virtual space, and the direction of the virtual line of sight of viewing the virtual space from the position of the virtual viewpoint. Is done.
In the detection step, the detection unit detects the position and posture of the first part of the user in the real space and the position and posture of the second part of the user.
In the changing step, the changing unit changes the position and posture of the stored object based on the detected position and posture of the first part, and detects the detected second part with respect to the first part. Based on the relative position and orientation, the position of the stored virtual viewpoint and the stored direction of the virtual line of sight are changed.
In the image generation step, the image generation unit generates an image representing a state where the object is viewed from the position of the virtual viewpoint in the direction of the virtual line of sight.
In the display step, the display unit displays the generated image on a monitor screen in the real space.

本発明によれば、ユーザは、仮想空間に配置されるオブジェクトの見方を簡単な操作で変えることができる。   According to the present invention, the user can change how to view an object placed in the virtual space with a simple operation.

本発明のその他の観点に係るプログラムは、コンピュータを、記憶部、検知部、変化部、画像生成部、表示部として機能させる。
記憶部には、仮想空間に配置されるオブジェクトの位置と姿勢と、当該仮想空間に配置される仮想視点の位置と、当該仮想視点の位置から当該仮想空間を見る仮想視線の向きと、が記憶される。
検知部は、現実空間におけるユーザの第1の部位の位置と姿勢と、当該ユーザの第2の部位の位置と姿勢と、を検知する。
変化部は、検知された第1の部位の位置と姿勢とに基づいて、記憶されるオブジェクトの位置と姿勢とを変化させ、検知された第2の部位の第1の部位に対する相対的な位置と姿勢とに基づいて、記憶される仮想視点の位置と記憶される仮想視線の向きとを変化させる。
画像生成部は、仮想視点の位置から仮想視線の向きにオブジェクトを見た様子を表す画像を生成する。
表示部は、生成された画像を現実空間におけるモニター画面に表示する。
A program according to another aspect of the present invention causes a computer to function as a storage unit, a detection unit, a change unit, an image generation unit, and a display unit.
The storage unit stores the position and orientation of the object arranged in the virtual space, the position of the virtual viewpoint arranged in the virtual space, and the direction of the virtual line of sight of viewing the virtual space from the position of the virtual viewpoint. Is done.
The detection unit detects the position and posture of the first part of the user in the real space and the position and posture of the second part of the user.
The changing unit changes the position and posture of the stored object based on the detected position and orientation of the first part, and detects the relative position of the detected second part with respect to the first part. And the position of the stored virtual viewpoint and the stored direction of the virtual line of sight are changed based on the orientation and the posture.
The image generation unit generates an image representing a state in which the object is viewed from the position of the virtual viewpoint in the direction of the virtual line of sight.
The display unit displays the generated image on a monitor screen in the real space.

本発明によれば、コンピュータを上述のように動作する画像処理装置として機能させることができる。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
According to the present invention, it is possible to cause a computer to function as an image processing apparatus that operates as described above.
The program of the present invention can be recorded on a computer-readable information storage medium such as a compact disk, flexible disk, hard disk, magneto-optical disk, digital video disk, magnetic tape, and semiconductor memory.
The above program can be distributed and sold via a computer communication network independently of the computer on which the program is executed. The information storage medium can be distributed and sold independently from the computer.

本発明によれば、仮想空間に配置されるオブジェクトの見方をユーザが簡単な操作で変えることができるようにするために好適な画像処理装置、画像処理方法、ならびに、プログラムを提供することができる。   According to the present invention, it is possible to provide an image processing apparatus, an image processing method, and a program suitable for enabling a user to change the way of viewing an object placed in a virtual space with a simple operation. .

本発明の画像処理装置が実現される典型的な情報処理装置の概要構成を示す図である。It is a figure which shows schematic structure of the typical information processing apparatus with which the image processing apparatus of this invention is implement | achieved. 情報処理装置の外観を模式的に表す図である。It is a figure showing typically the appearance of an information processor. 画像処理装置の機能的な構成を説明するための図である。It is a figure for demonstrating the functional structure of an image processing apparatus. (a)仮想空間に配置されるオブジェクトと仮想視点と仮想視線を説明するための図である。(b)仮想視線の延長上の点からオブジェクトを見た様子を表す図である。(A) It is a figure for demonstrating the object arrange | positioned in virtual space, a virtual viewpoint, and a virtual eyes | visual_axis. (B) It is a figure showing a mode that the object was seen from the point on the extension of virtual eyes | visual_axis. (a)現実空間における第1の部位と第2の部位を説明するための図である。(b)第1の部位の近似平面を表す図である。(c)第2の部位の近似平面を表す図である。(A) It is a figure for demonstrating the 1st site | part and 2nd site | part in real space. (B) It is a figure showing the approximate plane of a 1st site | part. (C) It is a figure showing the approximate plane of a 2nd site | part. (a)初期状態におけるオブジェクトを表す図である。(b)オブジェクトの位置を移動する様子を表す図である。(c)オブジェクトの姿勢を変化させる様子を表す図である。(A) It is a figure showing the object in an initial state. (B) It is a figure showing a mode that the position of an object is moved. (C) It is a figure showing a mode that the attitude | position of an object is changed. (a),(b)は、第1の部位の姿勢の変化量と、オブジェクトの姿勢の変化量と、の関係を示す図である。(A), (b) is a figure which shows the relationship between the variation | change_quantity of the attitude | position of a 1st site | part, and the variation | change_quantity of the attitude | position of an object. (a)初期状態における仮想視点と仮想視線を表す図である。(b)仮想視点を移動する様子を表す図である。(c)仮想視線を移動する様子を表す図である。(A) It is a figure showing the virtual viewpoint and virtual eyes | visual_axis in an initial state. (B) It is a figure showing a mode that a virtual viewpoint is moved. (C) It is a figure showing a mode that a virtual eyes | visual_axis is moved. (a),(b)は、第2の部位の第1の部位に対する相対的な姿勢の変化量と、仮想視線の変化量と、の関係を示す図である。(A), (b) is a figure which shows the relationship between the variation | change_quantity of a relative attitude | position with respect to the 1st site | part of a 2nd site | part, and the variation | change_quantity of a virtual gaze. 画像処理を説明するためのフローチャートである。It is a flowchart for demonstrating image processing. ユーザ視線の向きの履歴の構成例を示す図である。It is a figure which shows the structural example of the log | history of the direction of a user gaze. (a),(b)は、現実空間におけるユーザの第1の部位と第2の部位とモニターとの位置関係を模式的に表す図である。(A), (b) is a figure which represents typically the positional relationship of a user's 1st site | part, 2nd site | part, and monitor in real space. (a),(b),(c)は、現実空間におけるユーザの第1の部位と第2の部位と、仮想空間に配置されるオブジェクトを見た様子と、の関係を説明するための図である。(A), (b), (c) is a figure for demonstrating the relationship between a user's 1st site | part and 2nd site | part in real space, and a mode that the object arrange | positioned in virtual space was seen. It is.

本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下の実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。   An embodiment of the present invention will be described. In the following, for ease of understanding, an embodiment in which the present invention is realized using an information processing apparatus for games will be described. However, the following embodiment is for explanation, and the scope of the present invention There is no limit. Therefore, those skilled in the art can employ embodiments in which each or all of these elements are replaced with equivalent ones, and these embodiments are also included in the scope of the present invention.

(実施形態1)
図1は、本発明の画像処理装置の機能を果たす典型的な情報処理装置100の概要構成を示す模式図である。
(Embodiment 1)
FIG. 1 is a schematic diagram showing a schematic configuration of a typical information processing apparatus 100 that functions as an image processing apparatus of the present invention.

情報処理装置100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、ハードディスク104と、インターフェース105と、外部メモリ106と、入力装置107と、DVD−ROM(Digital Versatile Disk - Read Only Memory)ドライブ108と、画像処理部109と、音声処理部110と、NIC(Network Interface Card)111と、を備える。   The information processing apparatus 100 includes a CPU (Central Processing Unit) 101, a ROM (Read Only Memory) 102, a RAM (Random Access Memory) 103, a hard disk 104, an interface 105, an external memory 106, an input device 107, and the like. And a DVD-ROM (Digital Versatile Disk-Read Only Memory) drive 108, an image processing unit 109, an audio processing unit 110, and a NIC (Network Interface Card) 111.

ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着し、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施形態の画像処理装置が実現される。   A DVD-ROM storing a game program and data is loaded into the DVD-ROM drive 108 and the information processing apparatus 100 is turned on to execute the program, thereby realizing the image processing apparatus of the present embodiment. The

CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、ALU(Arithmetic Logic Unit)(図示せず)を用いて、レジスタという高速アクセスが可能な記憶領域に記憶されたデータの加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、CPU 101は、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行うことができるコプロセッサを備える。   The CPU 101 controls the overall operation of the information processing apparatus 100 and is connected to each component to exchange control signals and data. The CPU 101 uses an ALU (Arithmetic Logic Unit) (not shown) to perform arithmetic operations such as addition, subtraction, multiplication, and division of data stored in a high-speed accessible storage area called a register, logical sum, logical product, Logical operations such as logical negation, bit operations such as bit sum, bit product, bit inversion, bit shift, and bit rotation can be performed. Further, the CPU 101 includes a coprocessor that can perform saturation calculation such as addition / subtraction / multiplication / division for multimedia processing, vector calculation such as trigonometric function at high speed.

ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録される。IPLがCPU 101によって実行されることにより、DVD−ROMに記録されたプログラムがRAM 103に読み出され、CPU 101による起動処理が開始される。   The ROM 102 records an IPL (Initial Program Loader) that is executed immediately after the power is turned on. When the IPL is executed by the CPU 101, the program recorded on the DVD-ROM is read to the RAM 103, and the startup process by the CPU 101 is started.

RAM 103は、データやプログラムを一時的に記憶するためのもので、例えば、DVD−ROMから読み出されたプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。   The RAM 103 is for temporarily storing data and programs, and holds, for example, programs and data read from a DVD-ROM, and other data necessary for game progress and chat communication. Further, the CPU 101 provides a variable area in the RAM 103 and performs an operation by directly operating the ALU on the value stored in the variable, or temporarily stores the value stored in the RAM 103 in the register. Perform operations such as performing operations on registers and writing back the operation results to memory.

ハードディスク104は、情報処理装置100全体の動作制御に必要なオペレーティングシステム(OS)のプログラムや各種のゲームデータ等を格納する。CPU 101は、ハードディスク104に記憶される情報を随時書き換えることができる。   The hard disk 104 stores an operating system (OS) program necessary for operation control of the entire information processing apparatus 100, various game data, and the like. The CPU 101 can rewrite information stored in the hard disk 104 at any time.

インターフェース105を介して着脱自在に接続された外部メモリ106には、ゲームのプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、ネットワークを用いた他の装置との通信のログ(記録)のデータなどが記憶される。CPU 101は、外部メモリ106に記憶される情報を随時書き換えることができる。また、情報処理装置100は、インターフェース105を介して、増設用のハードディスクを接続することができる。   The external memory 106 detachably connected via the interface 105 stores data indicating game play status (past results, etc.), data indicating the progress of the game, and communication with other devices using the network. Log (record) data and the like are stored. The CPU 101 can rewrite information stored in the external memory 106 at any time. In addition, the information processing apparatus 100 can connect an additional hard disk via the interface 105.

入力装置107は、図2に示すように、ゲーム画面が表示されるモニター250付近に設置される。入力装置107は、ユーザの様子などを撮影するカメラを備える。CPU 101は、カメラによって撮影された画像を表す画像データを解析し、画像に含まれるユーザの部位(例えばユーザの手、足、顔など)を判別する。画像解析の手法には、例えば、パターン認識による解析、特徴点の抽出による解析、空間周波数の算出による解析などがある。カメラによる撮影は、ゲーム中に継続的に行われる。   As shown in FIG. 2, the input device 107 is installed near a monitor 250 on which a game screen is displayed. The input device 107 includes a camera that captures a user's situation. The CPU 101 analyzes image data representing an image photographed by the camera, and determines a user part (for example, a user's hand, foot, face, etc.) included in the image. Image analysis methods include, for example, analysis by pattern recognition, analysis by extraction of feature points, analysis by calculation of spatial frequency, and the like. Shooting by the camera is continuously performed during the game.

また、入力装置107は、入力装置107からユーザ(もしくはユーザの任意の部位)までの距離を測定する深度センサーを備える。例えば、入力装置107は、赤外線を周囲に照射し、この赤外線の反射波を検知する。そして、入力装置107は、照射波と反射波との位相差や、赤外線が発射されてからその反射光が検知されるまでの時間(飛行時間)に基づいて、照射波の発射口から照射波を反射した物体までの距離(以下「深度」ともいう。)を求める。深度センサーによる深度の検知は、赤外線を発射可能な方向のそれぞれについて、所定の時間間隔で繰り返し行われる。   The input device 107 includes a depth sensor that measures the distance from the input device 107 to the user (or any part of the user). For example, the input device 107 irradiates the surroundings with infrared rays and detects the reflected waves of the infrared rays. Then, the input device 107 determines the irradiation wave from the irradiation wave emission port based on the phase difference between the irradiation wave and the reflected wave and the time (flight time) from when the infrared ray is emitted until the reflected light is detected. The distance (hereinafter also referred to as “depth”) to the object that reflects is obtained. Depth detection by the depth sensor is repeatedly performed at predetermined time intervals in each of the directions in which infrared rays can be emitted.

深度センサーを備えることにより、情報処理装置100は、現実空間に配置された物体の3次元的な位置や形状をより詳しく把握することが可能になる。具体的には、CPU 101が第1の時刻に取得された第1の画像データと第2の時刻に取得された第2の画像データとを画像解析した結果、第1の画像データと第2の画像データの両方にユーザの頭部を表す部分が含まれていることを判別したとする。CPU 101は、第1の画像データ内における頭部の位置と、第2の画像データ内における頭部の位置と、の変化から、カメラから見てユーザの頭部が上下左右のどの方向にどの程度動いたのかを判別することができるだけでなく、第1の画像データにおける頭部の深度と、第2の画像データ内における頭部の深度と、の変化から、カメラから見てユーザの頭部が前後のどちらの方向にどの程度動いたのか(どの程度カメラに近づいたりカメラから遠ざかったりしたのか)を判別することもできる。   By providing the depth sensor, the information processing apparatus 100 can grasp in more detail the three-dimensional position and shape of the object arranged in the real space. Specifically, as a result of image analysis of the first image data acquired at the first time and the second image data acquired at the second time by the CPU 101, the first image data and the second image data Assume that it is determined that a part representing the user's head is included in both of the image data. The CPU 101 determines in which direction the user's head is up, down, left, or right as viewed from the camera based on the change in the position of the head in the first image data and the position of the head in the second image data. In addition to being able to determine whether it has moved to some extent, the head of the user as viewed from the camera from the change in the depth of the head in the first image data and the depth of the head in the second image data It is also possible to determine how far the camera has moved in either the forward or backward direction (how close or away from the camera).

このように、CPU 101は、入力装置107が備えるカメラによって撮影された画像と、入力装置107が備える深度センサーによって測定された距離(深度)と、に基づいて、いわゆるモーションキャプチャーのように、現実空間におけるユーザの3次元的な動きをデジタル化して把握することができる。   As described above, the CPU 101 uses the image captured by the camera included in the input device 107 and the distance (depth) measured by the depth sensor included in the input device 107 as in the case of so-called motion capture. The user's three-dimensional movement in the space can be digitized and grasped.

例えば、ボーリングゲームにおいて、プレイヤーがモニター250画面の前(つまり入力装置107の前)でボールを投げるモーションをすると、CPU 101は、プレイヤーがボールを投げるモーションを行ったことを認識することができる。そして、CPU 101は、認識したモーションに応じて、ゲームを進行することができる。つまり、プレイヤーは、タッチパッド型のコントローラなどを持つことなく、自分の体を自由に動かすことによって、所望の指示を入力することができる。入力装置107は、プレイヤーからの指示入力を受け付ける、いわゆる“コントローラ”の役割を果たす。   For example, in a bowling game, when the player makes a motion of throwing a ball in front of the monitor 250 screen (that is, in front of the input device 107), the CPU 101 can recognize that the player has made a motion of throwing the ball. Then, the CPU 101 can proceed with the game according to the recognized motion. That is, the player can input a desired instruction by freely moving his / her body without having a touchpad controller or the like. The input device 107 serves as a so-called “controller” that receives an instruction input from a player.

撮影された画像を表すデジタルの画像データは、複数の画素の集合である。典型的には、画素のそれぞれに三原色(R,G,B)の強度を表す値が対応付けられる。画像深度センサーにより各方向の深度が測定されるということは、実質的には、1つの画素が、赤(R),緑(G),青(B)に加えて、深度(D)というもう一次元を用いて表されることを意味する。   Digital image data representing a captured image is a set of a plurality of pixels. Typically, a value representing the intensity of the three primary colors (R, G, B) is associated with each pixel. The fact that the depth in each direction is measured by the image depth sensor means that, in effect, one pixel has a depth (D) in addition to red (R), green (G), and blue (B). It is expressed using one dimension.

DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データなどが予め記録される。DVD−ROMドライブ108は、CPU 101の制御によって、装着されたDVD−ROMに記録されたプログラムやデータを読み出す。CPU 101は、読み出されたプログラムやデータをRAM 103等に一時的に記憶する。   A DVD-ROM mounted on the DVD-ROM drive 108 stores in advance a program for realizing a game, image data and sound data associated with the game, and the like. The DVD-ROM drive 108 reads programs and data recorded on the attached DVD-ROM under the control of the CPU 101. The CPU 101 temporarily stores the read program and data in the RAM 103 or the like.

画像処理部109は、DVD−ROMから読み出されたデータをCPU 101や画像処理部109が備える画像演算プロセッサ(図示せず)によって加工処理した後、画像処理部109が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され、画像処理部109に接続されるモニター250へ出力される。   The image processing unit 109 processes data read from the DVD-ROM by the CPU 101 or an image arithmetic processor (not shown) included in the image processing unit 109, and then performs a frame memory (not shown) included in the image processing unit 109. Record). Image information recorded in the frame memory is converted into a video signal at a predetermined synchronization timing, and is output to the monitor 250 connected to the image processing unit 109.

画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。また、画像演算プロセッサは、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。   The image calculation processor can execute a two-dimensional image overlay calculation, a transmission calculation such as α blending, and various saturation calculations at high speed. Further, the image arithmetic processor renders polygon information arranged in the virtual three-dimensional space and added with various pieces of texture information by the Z buffer method, so that the polygon arranged in the virtual three-dimensional space from a predetermined viewpoint position is rendered. It is also possible to perform a high-speed execution of a calculation for obtaining a rendering image viewed from a predetermined line of sight.

さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報に従って、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。   Furthermore, by the cooperative operation of the CPU 101 and the image arithmetic processor, it is possible to draw a character string as a two-dimensional image on a frame memory or draw it on the surface of each polygon according to font information that defines the character shape. .

また、CPU 101と画像演算プロセッサがDVD−ROMに予め格納された画像データをフレームメモリに書き込むことによって、ゲームの様子などを画面に表示することができる。画像データをフレームメモリに書き込み表示させる処理を、定期的なタイミング(典型的には垂直同期割り込み(VSYNC)のタイミング)で繰り返し行うことにより、モニター250にアニメーションを表示することが可能になる。   In addition, the CPU 101 and the image arithmetic processor can write the image data stored in advance in the DVD-ROM into the frame memory, thereby displaying the state of the game on the screen. By repeatedly performing the process of writing and displaying the image data in the frame memory at a regular timing (typically the timing of the vertical synchronization interrupt (VSYNC)), an animation can be displayed on the monitor 250.

音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、スピーカーから出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲などの音声データを生成し、生成された音声データをデコードすることにより、様々な音声をスピーカーから出力させる。   The audio processing unit 110 converts audio data read from the DVD-ROM into an analog audio signal and outputs it from a speaker. Further, under the control of the CPU 101, sound data such as sound effects and music to be generated during the progress of the game is generated, and various sound is output from the speaker by decoding the generated sound data.

音声処理部110は、DVD−ROMに記録された音声データがMIDIデータである場合には、音声処理部110が有する音源データを参照して、MIDIデータをPCMデータに変換する。また、音声処理部110は、ADPCM(Adaptive Differential Pulse Code Modulation)形式やOgg Vorbis形式等により圧縮された音声データである場合には、圧縮された音声データをPCMデータに変換する。PCMデータは、サンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカーに出力することにより、音声出力が可能となる。   When the audio data recorded on the DVD-ROM is MIDI data, the audio processing unit 110 refers to the sound source data included in the audio processing unit 110 and converts the MIDI data into PCM data. In addition, when the audio processing unit 110 is audio data compressed in an ADPCM (Adaptive Differential Pulse Code Modulation) format, an Ogg Vorbis format, or the like, the audio processing unit 110 converts the compressed audio data into PCM data. The PCM data can be output by performing D / A (Digital / Analog) conversion at a timing corresponding to the sampling frequency and outputting it to a speaker.

NIC 111は、情報処理装置100をインターネット等のコンピュータ通信網に接続する。NIC 111は、例えば、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)と、から構成される。   The NIC 111 connects the information processing apparatus 100 to a computer communication network such as the Internet. The NIC 111 is based on, for example, a 10BASE-T / 100BASE-T standard used when configuring a LAN (Local Area Network), an analog modem for connecting to the Internet using a telephone line, ISDN (Integrated Services). A digital network (ADSL) modem, an ADSL (Asymmetric Digital Subscriber Line) modem, a cable modem for connecting to the Internet using a cable television line, and an interface (not shown) that mediates between these and the CPU 101 Composed.

次に、上記構成を有する情報処理装置100により実現される、本実施形態の画像処理装置300の機能的な構成等について説明する。画像処理装置300は、現実空間におけるユーザの位置や姿勢に応じて、仮想空間に配置されるオブジェクトの位置や姿勢を変化させた画像をモニター250に表示する。ユーザは、まるで現実のプラモデルを手に持って回しながら眺めるかのように、仮想空間に配置されるオブジェクトを様々な角度から眺めることができるのである。以下詳述する。   Next, a functional configuration and the like of the image processing apparatus 300 of the present embodiment realized by the information processing apparatus 100 having the above configuration will be described. The image processing apparatus 300 displays on the monitor 250 an image in which the position and orientation of the object arranged in the virtual space are changed according to the position and orientation of the user in the real space. The user can view the object arranged in the virtual space from various angles as if he / she looked while holding a real plastic model in his / her hand. This will be described in detail below.

図3は、画像処理装置300の機能的な構成を示す図である。画像処理装置300は、記憶部301、検知部302、変化部303、画像生成部304、表示部305を備える。   FIG. 3 is a diagram illustrating a functional configuration of the image processing apparatus 300. The image processing apparatus 300 includes a storage unit 301, a detection unit 302, a change unit 303, an image generation unit 304, and a display unit 305.

記憶部301は、(1)3次元の仮想空間に配置されるオブジェクトの位置と姿勢と、(2)この仮想空間に配置される仮想視点の位置と、(3)仮想視点の位置からこの仮想空間を見る仮想視線の向きと、を記憶する。RAM 103が記憶部301として機能する。   The storage unit 301 includes (1) the position and orientation of the object arranged in the three-dimensional virtual space, (2) the position of the virtual viewpoint arranged in the virtual space, and (3) the virtual viewpoint from the position of the virtual viewpoint. The direction of the virtual line of sight to see the space is stored. The RAM 103 functions as the storage unit 301.

図4(a)に、仮想空間に配置されるオブジェクト400と仮想視点450と仮想視線470とを模式的に示す。仮想空間には、グローバル座標系(XYZ座標系)が予め定義される。図4では、グローバル座標系としてデカルト座標系が用いられているが、極座標系など他の種類の座標系を用いてグローバル座標系が定義されてもよい。   FIG. 4A schematically shows an object 400, a virtual viewpoint 450, and a virtual line of sight 470 arranged in the virtual space. A global coordinate system (XYZ coordinate system) is defined in advance in the virtual space. In FIG. 4, a Cartesian coordinate system is used as the global coordinate system, but the global coordinate system may be defined using other types of coordinate systems such as a polar coordinate system.

仮想空間におけるオブジェクト400の位置は、グローバル座標系における座標値で表される。オブジェクト400の位置として、オブジェクト400の代表点401の座標値が用いられる。代表点401は、例えば、オブジェクト400の重心である。   The position of the object 400 in the virtual space is represented by coordinate values in the global coordinate system. As the position of the object 400, the coordinate value of the representative point 401 of the object 400 is used. The representative point 401 is the center of gravity of the object 400, for example.

図4(b)に、仮想視線470の延長上の点からオブジェクト400を見た様子の例を示す。仮想空間におけるオブジェクト400の姿勢は、グローバル座標系におけるベクトル402と、基準方向403からの傾きの角度αと、によって表される。本実施形態では、基準方向403はZ軸方向である。   FIG. 4B shows an example of a state where the object 400 is viewed from a point on the extension of the virtual line of sight 470. The posture of the object 400 in the virtual space is represented by a vector 402 in the global coordinate system and an inclination angle α from the reference direction 403. In the present embodiment, the reference direction 403 is the Z-axis direction.

仮想視点450の位置は、グローバル座標系における座標値で表される。仮想視点450の位置は、仮想空間を写す仮想カメラが配置される位置であり、ユーザからの指示により、もしくは、所定のアルゴリズムにより、変化しうる。   The position of the virtual viewpoint 450 is represented by coordinate values in the global coordinate system. The position of the virtual viewpoint 450 is a position where a virtual camera that captures the virtual space is arranged, and can be changed by an instruction from the user or by a predetermined algorithm.

仮想視線470の向きは、グローバル座標系におけるベクトルで表される。仮想視線470の向きは、仮想空間を写す仮想カメラの向きであり、ユーザからの指示により、もしくは、所定のアルゴリズムにより、変化しうる。   The direction of the virtual visual line 470 is represented by a vector in the global coordinate system. The direction of the virtual line of sight 470 is the direction of the virtual camera that captures the virtual space, and can be changed by an instruction from the user or by a predetermined algorithm.

CPU 101は、ユーザからの指示により、もしくは、所定のアルゴリズムにより、RAM 103に記憶されるオブジェクトの位置と姿勢と、仮想視点450の位置と、仮想視線470の向きと、を随時更新する。   The CPU 101 updates the position and orientation of the object stored in the RAM 103, the position of the virtual viewpoint 450, and the orientation of the virtual line of sight 470 as needed according to an instruction from the user or according to a predetermined algorithm.

検知部302は、現実空間におけるユーザの第1の部位の位置と姿勢と、このユーザの第2の部位の位置と姿勢と、を検知する。CPU 101と入力装置107が協働して、検知部302として機能する。   The detection unit 302 detects the position and posture of the first part of the user in the real space and the position and posture of the second part of the user. The CPU 101 and the input device 107 cooperate to function as the detection unit 302.

図5(a)に、現実空間におけるユーザの第1の部位510と第2の部位520を示す。本実施形態では、ユーザの第1の部位510は“手”(左手と右手のどちらでもよい)であり、ユーザの第2の部位520は“頭”である。   FIG. 5A shows a first part 510 and a second part 520 of the user in the real space. In the present embodiment, the first part 510 of the user is a “hand” (which may be either a left hand or a right hand), and the second part 520 of the user is a “head”.

CPU 101は、入力装置107によって取得された画像データの画像解析結果と、入力装置107によって検知された第1の部位510の深度(入力装置107が備える赤外線発射口からユーザの手までの距離)と、に基づいて、現実空間において第1の部位510がどの位置にどのような姿勢で配置されているかを判別する。   The CPU 101 determines the image analysis result of the image data acquired by the input device 107 and the depth of the first part 510 detected by the input device 107 (the distance from the infrared emission port provided in the input device 107 to the user's hand). Based on the above, it is determined in what position and in what posture the first part 510 is arranged in the real space.

第1の部位510の位置は、現実空間に定義される座標系(xyz座標系)における座標値で表される。   The position of the first part 510 is represented by coordinate values in a coordinate system (xyz coordinate system) defined in the real space.

第1の部位510の姿勢は、以下に示すように、近似平面を用いて特定される。図5(b)は、第1の部位510の姿勢を説明するための図である。   The posture of the first part 510 is specified using an approximate plane as described below. FIG. 5B is a diagram for explaining the posture of the first part 510.

まず、CPU 101は、ユーザの手の表面の形状を近似する平面(近似平面)512を求める。例えば、CPU 101は、画像解析等によって判別された手のひら(もしくは手の甲)の表面上の点を所定個数抽出し、抽出した各点の現実空間における座標値を取得する。そして、CPU 101は、最小自乗法などを用いて、抽出した各点による近似平面512を計算する。   First, the CPU 101 obtains a plane (approximate plane) 512 that approximates the shape of the surface of the user's hand. For example, the CPU 101 extracts a predetermined number of points on the surface of the palm (or the back of the hand) determined by image analysis or the like, and acquires coordinate values in the real space of the extracted points. Then, the CPU 101 calculates an approximate plane 512 by each extracted point using a least square method or the like.

現実空間に定義される座標系(xyz座標系)において、近似平面512は、パラメータa1,b1,c1,r1を用いて、[数1]で表される。   In the coordinate system (xyz coordinate system) defined in the real space, the approximate plane 512 is expressed by [Equation 1] using parameters a1, b1, c1, and r1.

a1・x + b1・y + c1・z = r1 ・・・[数1]       a1 · x + b1 · y + c1 · z = r1 [Equation 1]

次に、CPU 101は、近似平面512上の単位ベクトルであって、画像認識等によって判別された手の指が伸びる方向のベクトル511を求める。このベクトル511の向きが、第1の部位510の向きとなる。   Next, the CPU 101 obtains a vector 511 that is a unit vector on the approximate plane 512 and that is a direction in which the finger of the hand determined by image recognition or the like extends. The direction of the vector 511 is the direction of the first part 510.

更に、CPU 101は、現実空間における鉛直方向513と、近似平面512の法線ベクトル514と、のなす角度αを求める。鉛直方向513と、現実空間に定義される座標系における1つの軸の向き(本実施形態ではz軸方向)と、を一致させると良い。   Further, the CPU 101 obtains an angle α formed by the vertical direction 513 in the real space and the normal vector 514 of the approximate plane 512. The vertical direction 513 and the direction of one axis in the coordinate system defined in the real space (in this embodiment, the z-axis direction) are preferably matched.

法線ベクトル514は、[数1]で表されるパラメータa1,b1,c1を用いて、[数2]のように定義される。   The normal vector 514 is defined as [Expression 2] using parameters a1, b1, and c1 expressed by [Expression 1].

法線ベクトル514 : (a1,b1,c1) ・・・[数2]       Normal vector 514: (a1, b1, c1) (Equation 2)

ベクトル511の向きが“手がどちらを向いているか”を表し、角度αが“どのくらい手が傾いているか”を表す。従って、ベクトル511と角度αが求まれば、第1の部位510の姿勢が特定されたことになる。   The direction of the vector 511 represents “how the hand is pointing”, and the angle α represents “how much the hand is tilted”. Therefore, when the vector 511 and the angle α are obtained, the posture of the first part 510 is specified.

同様に、CPU 101は、入力装置107によって取得された画像データの画像解析結果と、入力装置107によって検知された第2の部位520の深度(入力装置107が備える赤外線発射口からユーザの頭までの距離)と、に基づいて、現実空間において第2の部位520がどの位置にどのような姿勢で配置されているかを判別する。   Similarly, the CPU 101 determines the image analysis result of the image data acquired by the input device 107 and the depth of the second part 520 detected by the input device 107 (from the infrared emission port included in the input device 107 to the user's head). And the position of the second part 520 in the real space and in what posture.

第2の部位520の位置は、現実空間に定義される座標系における座標値で表される。   The position of the second part 520 is represented by a coordinate value in a coordinate system defined in the real space.

第2の部位520の姿勢は、第1の部位510の姿勢を求める手法と同様に、近似平面を用いて特定される。図5(c)は、第2の部位520の姿勢を説明するための図である。   The posture of the second part 520 is specified by using an approximate plane, similarly to the method for obtaining the posture of the first part 510. FIG. 5C is a diagram for explaining the posture of the second part 520.

まず、CPU 101は、ユーザの顔の表面の形状を表す近似平面522を求める。例えば、CPU 101は、画像解析等によって判別された顔の表面上の点を所定個数抽出し、抽出した各点の現実空間における座標値を取得する。そして、CPU 101は、最小自乗法などを用いて、抽出した各点による近似平面522を計算する。   First, the CPU 101 obtains an approximate plane 522 representing the shape of the surface of the user's face. For example, the CPU 101 extracts a predetermined number of points on the surface of the face determined by image analysis or the like, and acquires coordinate values in the real space of the extracted points. Then, the CPU 101 calculates an approximate plane 522 by each extracted point using a least square method or the like.

現実空間に定義される座標系(xyz座標系)において、近似平面522は、パラメータa2,b2,c2,r2を用いて、[数3]で表される。   In the coordinate system (xyz coordinate system) defined in the real space, the approximate plane 522 is expressed by [Equation 3] using parameters a2, b2, c2, and r2.

a2・x + b2・y + c2・z = r2 ・・・[数3]       a2 * x + b2 * y + c2 * z = r2 [Formula 3]

次に、CPU 101は、第2の部位520の向きを求める。第2の部位520の向きは、近似平面522の法線ベクトル521の向きで表される。法線ベクトル521は、[数4]で表されるパラメータa2,b2,c2を用いて、[数4]のように定義される。   Next, the CPU 101 obtains the orientation of the second part 520. The direction of the second part 520 is represented by the direction of the normal vector 521 of the approximate plane 522. The normal vector 521 is defined as [Expression 4] using parameters a2, b2, and c2 expressed by [Expression 4].

法線ベクトル521 : (a2,b2,c2) ・・・[数4]       Normal vector 521: (a2, b2, c2) [Equation 4]

第2の部位520の向き、つまりユーザの頭(もしくは顔)の向きは、現実空間におけるユーザの視線(以下「ユーザ視線」という。)の向きと推定される。   The orientation of the second part 520, that is, the orientation of the user's head (or face) is estimated as the orientation of the user's line of sight (hereinafter referred to as “user's line of sight”) in real space.

更に、CPU 101は、現実空間における水平方向を表す直線523と、画像解析等によって判別された左目と右目とを通過する直線524と、のなす角度βを求める。直線524は、画像解析等によって判別された左耳と右耳とを通過する直線でもよい。   Further, the CPU 101 obtains an angle β formed by the straight line 523 representing the horizontal direction in the real space and the straight line 524 passing through the left eye and the right eye determined by image analysis or the like. The straight line 524 may be a straight line passing through the left ear and the right ear determined by image analysis or the like.

法線ベクトル521の向きが“顔がどちらを向いているか”を表し、角度βが“どのくらい頭が傾いているか”を表す。従って、法線ベクトル521と角度βが求まれば、第2の部位520の姿勢が特定されたことになる。   The direction of the normal vector 521 represents “which face is facing”, and the angle β represents “how much the head is tilted”. Therefore, when the normal vector 521 and the angle β are obtained, the posture of the second part 520 is specified.

なお、ここで説明した第1の部位510の姿勢と第2の部位520の姿勢を特定する手法は一例に過ぎず、他の手法を用いてこれらの姿勢を特定してもよい。例えば、近似平面512,522を求める代わりに、手の形状を近似する近似曲面と顔の形状を近似する近似曲面を求めてもよい。この場合、近似曲面の重心位置における法線ベクトルを、手の向き又は頭の向きとすればよい。   The method for specifying the posture of the first part 510 and the posture of the second part 520 described here is merely an example, and these postures may be specified using other methods. For example, instead of obtaining the approximate planes 512 and 522, an approximate curved surface that approximates the shape of the hand and an approximate curved surface that approximates the shape of the face may be obtained. In this case, the normal vector at the centroid position of the approximate curved surface may be the hand direction or the head direction.

次に、変化部303は、検知部302により検知された第1の部位510の位置と姿勢とに基づいて、記憶部301に記憶されるオブジェクト400の位置と姿勢とを変化させる。また、変化部303は、検知部302により検知された第2の部位520の第1の部位510に対する相対的な位置と姿勢とに基づいて、記憶部301に記憶される仮想視点450の位置と仮想視線470の向きとを変化させる。CPU 101とRAM 103が協働して、変化部303として機能する。   Next, the changing unit 303 changes the position and posture of the object 400 stored in the storage unit 301 based on the position and posture of the first part 510 detected by the detecting unit 302. The changing unit 303 also determines the position of the virtual viewpoint 450 stored in the storage unit 301 based on the relative position and posture of the second part 520 with respect to the first part 510 detected by the detecting unit 302. The direction of the virtual line of sight 470 is changed. The CPU 101 and the RAM 103 work together to function as the changing unit 303.

まず、変化部303がオブジェクト400の位置と姿勢を変化させる処理について説明する。   First, a process in which the changing unit 303 changes the position and orientation of the object 400 will be described.

初期状態において、CPU 101は、仮想空間内の所定の位置に所定の姿勢でオブジェクト400を配置する。例えば、CPU 101は、仮想空間に定義されるグローバル座標系における原点の位置へ、水平方向に、オブジェクト400を配置する。   In the initial state, the CPU 101 places the object 400 in a predetermined posture at a predetermined position in the virtual space. For example, the CPU 101 arranges the object 400 in the horizontal direction at the position of the origin in the global coordinate system defined in the virtual space.

例えば、図6(a)に示すように、CPU 101は、初期状態のオブジェクト400の代表点の位置401を、グローバル座標系における原点の位置とし、初期状態のオブジェクト400の向きを表すベクトル402の向きを、グローバル座標系におけるX軸の正の向きとする。この例では、オブジェクト400は飛行機のモデルであるが、CPU 101は、初期状態では飛行機の翼が水平になるように配置している。また、CPU 101は、現実空間における近似平面512を、仮想空間に定義されるグローバル座標系におけるX−Y平面と対応付ける。   For example, as illustrated in FIG. 6A, the CPU 101 sets the representative point position 401 of the object 400 in the initial state as the position of the origin in the global coordinate system, and a vector 402 representing the orientation of the object 400 in the initial state. The direction is the positive direction of the X axis in the global coordinate system. In this example, the object 400 is a model of an airplane, but the CPU 101 is arranged so that the wings of the airplane are horizontal in the initial state. Further, the CPU 101 associates the approximate plane 512 in the real space with the XY plane in the global coordinate system defined in the virtual space.

検知された第1の部位510(本実施形態ではユーザの手)の位置が変化すると、図6(b)に示すように、CPU 101は、第1の部位510の位置の変化量に応じて、仮想空間内におけるオブジェクト400の代表点401を移動する。つまり、現実空間においてユーザが手を平行移動させると、仮想空間においてオブジェクト400も平行移動する。   When the detected position of the first part 510 (in this embodiment, the user's hand) changes, the CPU 101 changes the position of the first part 510 in accordance with the amount of change in the position of the first part 510 as shown in FIG. The representative point 401 of the object 400 in the virtual space is moved. That is, when the user translates the hand in the real space, the object 400 also translates in the virtual space.

CPU 101は、現実空間における第1の部位510の位置の変化量ΔPrealが大きいほど、仮想空間における代表点401の移動量ΔPvirtualを大きくする。典型的には、変化量ΔPrealと移動量ΔPvirtualは、比例関係にある。   The CPU 101 increases the movement amount ΔPvirtual of the representative point 401 in the virtual space as the change amount ΔPreal of the position of the first part 510 in the real space is larger. Typically, the change amount ΔPreal and the movement amount ΔPvirtual are in a proportional relationship.

また、検知される第1の部位510の姿勢が変化すると、CPU 101は、第1の部位510の姿勢の変化量に応じて、仮想空間におけるオブジェクト400の姿勢を変化させる。   In addition, when the detected posture of the first part 510 changes, the CPU 101 changes the posture of the object 400 in the virtual space according to the amount of change in the posture of the first part 510.

例えば、第1の部位510の近似平面512が角度αだけ傾くと、図6(c)に示すように、CPU 101は、オブジェクト400を角度αだけ傾ける。つまり、現実空間においてユーザが手を傾けると、仮想空間においてオブジェクト400が同じ量だけ傾く。ユーザは、仮想空間内のオブジェクト400を傾けたときの様子を眺めたい場合には、同じ量だけ手を傾ければよい。   For example, when the approximate plane 512 of the first part 510 is tilted by the angle α, the CPU 101 tilts the object 400 by the angle α as shown in FIG. That is, when the user tilts his / her hand in the real space, the object 400 tilts by the same amount in the virtual space. When the user wants to see the state when the object 400 in the virtual space is tilted, the user only needs to tilt the hand by the same amount.

ここで、CPU 101は、第1の部位510の近似平面512が角度αだけ傾いた場合にオブジェクト400を傾ける量を、角度αではなく、角度αを所定倍した量としてもよい。すなわち、現実空間における第1の部位510の近似平面512の傾きαrealと、仮想空間におけるオブジェクト400の傾きαvirtualと、の間には、[数5]の関係が成り立つ。   Here, the CPU 101 may set the amount by which the object 400 is tilted when the approximate plane 512 of the first part 510 is tilted by the angle α as an amount obtained by multiplying the angle α by a predetermined amount instead of the angle α. That is, the relationship of [Equation 5] is established between the inclination αreal of the approximate plane 512 of the first part 510 in the real space and the inclination αvirtual of the object 400 in the virtual space.

αvirtual = C・αreal ・・・[数5]
ただし、Cは倍率を表し、ゼロでない実数である。
αvirtual = C · αreal (5)
However, C represents a magnification and is a non-zero real number.

C=1の場合、図6(c)に示すように、現実空間における手の傾き量と同じ量だけ、仮想空間におけるオブジェクト400が傾く。   When C = 1, as shown in FIG. 6C, the object 400 in the virtual space is tilted by the same amount as the hand tilt amount in the real space.

0<C<1の場合、図7(a)に示すように、仮想空間におけるオブジェクト400の傾き量は、現実空間における手の傾き量よりも少ない。つまり、姿勢変化の感度がより鈍くなる。   In the case of 0 <C <1, the inclination amount of the object 400 in the virtual space is smaller than the inclination amount of the hand in the real space as shown in FIG. That is, the sensitivity of posture change becomes duller.

C>1の場合、図7(b)に示すように、仮想空間におけるオブジェクト400の傾き量は、現実空間における手の傾き量よりも多い。つまり、姿勢変化の感度がより敏感になる。   In the case of C> 1, as shown in FIG. 7B, the inclination amount of the object 400 in the virtual space is larger than the inclination amount of the hand in the real space. That is, the sensitivity of posture change becomes more sensitive.

なお、大抵の場合、人間が自分の手を360度近く(もしくは360度以上)ねじることは難しいため、オブジェクト400をどの方向からも簡単に眺めることができる仕様にしたい場合、「C=2」程度にすることが望ましい。この場合、手を半回転させれば、オブジェクト400は一回転することになる。   In most cases, it is difficult for a human to twist his hand near 360 degrees (or more than 360 degrees). Therefore, when the specification is such that the object 400 can be easily viewed from any direction, “C = 2”. It is desirable to make it about. In this case, if the hand is rotated halfway, the object 400 is rotated once.

図6(c)は、Y軸を回転軸にしてオブジェクト400を回転させたとき、すなわち指先が上になるようにユーザが手を傾けたときの様子を表しているが、任意の軸を回転軸にすることができ、また、任意の点を回転の中心点にすることができる。   FIG. 6C shows a state where the object 400 is rotated with the Y axis as the rotation axis, that is, when the user tilts his / her hand so that the fingertip is on the upper side. It can be an axis, and any point can be the center point of rotation.

次に、変化部303が仮想視点450の位置と仮想視線470の向きを変化させる処理について説明する。   Next, processing in which the changing unit 303 changes the position of the virtual viewpoint 450 and the direction of the virtual visual line 470 will be described.

初期状態において、CPU 101は、仮想空間の所定の位置に仮想視点450を配置し、所定の方向を仮想視線470の向きに設定する。   In the initial state, the CPU 101 arranges the virtual viewpoint 450 at a predetermined position in the virtual space, and sets the predetermined direction to the direction of the virtual visual line 470.

例えば、図8(a)に示すように、CPU 101は、位置(X0,Y0,Z0)を初期状態の仮想視点450の位置とし、初期状態の仮想視点450の位置から初期状態のオブジェクト400の代表点401への向きを、初期状態の仮想視線470の向きとする。   For example, as shown in FIG. 8A, the CPU 101 sets the position (X0, Y0, Z0) as the position of the virtual viewpoint 450 in the initial state, and the position of the object 400 in the initial state from the position of the virtual viewpoint 450 in the initial state. The direction toward the representative point 401 is the direction of the virtual visual line 470 in the initial state.

検知された第2の部位520(本実施形態ではユーザの頭)の第1の部位510に対する相対的な位置が変化すると、図8(b)に示すように、CPU 101は、第2の部位520の相対位置の変化量に応じて、仮想空間における仮想視点450の位置を移動する。つまり、現実空間においてユーザが頭の手に対する相対位置を移動させると、仮想空間において仮想視点450が移動する。   When the relative position of the detected second part 520 (in this embodiment, the user's head) with respect to the first part 510 changes, as shown in FIG. The position of the virtual viewpoint 450 in the virtual space is moved according to the amount of change in the relative position 520. That is, when the user moves the relative position with respect to the head hand in the real space, the virtual viewpoint 450 moves in the virtual space.

CPU 101は、現実空間における第2の部位520の第1の部位510に対する相対位置の変化量ΔQrealが大きいほど、仮想空間における仮想視点450の移動量ΔQvirtualを大きくする。典型的には、変化量ΔQrealと移動量ΔQvirtualは、比例関係にある。   The CPU 101 increases the movement amount ΔQvirtual of the virtual viewpoint 450 in the virtual space as the change amount ΔQreal of the relative position of the second portion 520 in the real space with respect to the first portion 510 is larger. Typically, the change amount ΔQreal and the movement amount ΔQvirtual are in a proportional relationship.

また、検知される第2の部位520の姿勢が変化すると、CPU 101は、第2の部位520の第1の部位510に対する相対的な姿勢の変化量に応じて、仮想空間における仮想視線470の姿勢を変化させる。   Further, when the detected posture of the second part 520 changes, the CPU 101 changes the virtual line of sight 470 in the virtual space according to the amount of change in the relative posture of the second part 520 with respect to the first part 510. Change posture.

例えば、第2の部位520の近似平面522が角度βだけ傾くと、図8(c)に示すように、CPU 101は、仮想視線470の向きを角度βだけ傾ける。つまり、現実空間においてユーザが頭を傾けると、仮想空間において仮想視線470が同じ量だけ傾く。ユーザは、仮想空間内のオブジェクト400を違う角度から眺めたい場合には、同じ量だけ頭を傾ければよい。   For example, when the approximate plane 522 of the second part 520 is tilted by the angle β, the CPU 101 tilts the direction of the virtual line of sight 470 by the angle β as shown in FIG. That is, when the user tilts his / her head in the real space, the virtual line of sight 470 tilts by the same amount in the virtual space. When the user wants to view the object 400 in the virtual space from different angles, the user only has to tilt his / her head by the same amount.

ここで、CPU 101は、第2の部位520の近似平面522が角度βだけ傾いた場合に仮想視線470を傾ける量を、角度βではなく、角度βを所定倍した量としてもよい。すなわち、現実空間における第2の部位520の近似平面522の傾きβrealと、仮想空間における仮想視線470の傾きβvirtualと、の間には、[数6]の関係が成り立つ。   Here, the CPU 101 may set the amount by which the virtual visual line 470 is inclined when the approximate plane 522 of the second portion 520 is inclined by the angle β as an amount obtained by multiplying the angle β by a predetermined amount instead of the angle β. That is, the relationship of [Equation 6] is established between the inclination βreal of the approximate plane 522 of the second part 520 in the real space and the inclination βvirtual of the virtual visual line 470 in the virtual space.

βvirtual = D・βreal ・・・[数6]
ただし、Dは倍率を表し、ゼロでない実数である。
βvirtual = D · βreal (Equation 6)
However, D represents a magnification and is a non-zero real number.

D=1の場合、図8(c)に示すように、現実空間における頭の傾き量と同じ量だけ、仮想空間における仮想視線470が傾く。   In the case of D = 1, as shown in FIG. 8C, the virtual line of sight 470 in the virtual space is tilted by the same amount as the tilt amount of the head in the real space.

0<D<1の場合、図9(a)に示すように、仮想空間における仮想視線470の傾き量は、現実空間における頭の傾き量よりも少ない。つまり、仮想視線470の変化の感度がより鈍くなる。   When 0 <D <1, as shown in FIG. 9A, the inclination amount of the virtual visual line 470 in the virtual space is smaller than the inclination amount of the head in the real space. That is, the sensitivity of the change in the virtual visual line 470 becomes duller.

D>1の場合、図9(b)に示すように、仮想空間における仮想視線470の傾き量は、現実空間における頭の傾き量よりも多い。つまり、仮想視線470の変化の感度がより敏感になる。   In the case of D> 1, as shown in FIG. 9B, the inclination amount of the virtual line of sight 470 in the virtual space is larger than the inclination amount of the head in the real space. That is, the sensitivity of changes in the virtual line of sight 470 becomes more sensitive.

次に、画像生成部304は、仮想視点450の位置から仮想視線470の向きにオブジェクト400を見た様子を表す画像を生成する。CPU 101と画像処理部109が協働して、画像生成部304として機能する。   Next, the image generation unit 304 generates an image representing a state in which the object 400 is viewed from the position of the virtual viewpoint 450 in the direction of the virtual visual line 470. The CPU 101 and the image processing unit 109 cooperate to function as the image generation unit 304.

表示部305は、画像生成部304によって生成された画像をモニター250に表示する。CPU 101と画像処理部109が協働して、表示部305として機能する。   The display unit 305 displays the image generated by the image generation unit 304 on the monitor 250. The CPU 101 and the image processing unit 109 cooperate to function as the display unit 305.

上述のように、オブジェクト400の位置とオブジェクト400の姿勢と仮想視点450の位置と仮想視線470の向きは、現実空間におけるユーザの第1の部位510の位置と姿勢と、第2の部位520の位置と姿勢の変化とに応じて変わるので、ユーザは、様々な位置から様々な方向にオブジェクト400を眺めた様子を見ることができる。ユーザは、所望のアングルになるように、手と頭を動かせばよい。例えば、オブジェクト400が飛行機のモデルであるとき、ユーザが飛行機を下から(車輪が出る側から)見たいときには、手の姿勢を裏返すように変えるか、もしくは、手を静止したまま手を下からのぞき込むような格好をすればよい。また、例えば、ユーザが飛行機を前から(コックピット側から)見たいときには、手先を顔に向けて伸ばすように手の姿勢を変えるか、もしくは、手を静止したまま爪先からのぞき込むような格好をすればよい。   As described above, the position of the object 400, the posture of the object 400, the position of the virtual viewpoint 450, and the orientation of the virtual line of sight 470 are the positions and postures of the user's first part 510 in the real space, and the second part 520. Since it changes according to the change in position and posture, the user can see the object 400 viewed in various directions from various positions. The user may move his hand and head so that the desired angle is obtained. For example, when the object 400 is a model of an airplane, when the user wants to see the airplane from the bottom (from the side where the wheels come out), change the posture of the hand so that the hand is turned over, or keep the hand stationary and keep the hand from the bottom. You just have to look into it. Also, for example, when the user wants to see the airplane from the front (from the cockpit side), change the posture of the hand so that the hand extends toward the face, or look into the toe while keeping the hand stationary. That's fine.

次に、画像処理装置300の上記各部が実行する画像処理について、図10のフローチャートを用いて説明する。   Next, image processing executed by the above-described units of the image processing apparatus 300 will be described with reference to the flowchart of FIG.

まず、CPU 101は、仮想空間におけるオブジェクト400の位置と姿勢と、仮想視点450の位置と、仮想視線470の向きを、それぞれ初期値に設定する(ステップS1001)。   First, the CPU 101 sets initial values for the position and orientation of the object 400 in the virtual space, the position of the virtual viewpoint 450, and the orientation of the virtual line of sight 470 (step S1001).

CPU 101は、入力装置107を制御して、現実空間におけるユーザの第1の部位510の位置と姿勢と、ユーザの第2の部位520の位置と姿勢と、を取得する(ステップS1002)。   The CPU 101 controls the input device 107 to acquire the position and posture of the user's first part 510 and the position and posture of the user's second part 520 in the real space (step S1002).

CPU 101は、ステップS1002で取得した第1の部位510の位置又は姿勢が、前回取得した第1の部位510の位置又は姿勢と比べて変化したか否かを判別する(ステップS1003)。   The CPU 101 determines whether or not the position or orientation of the first part 510 acquired in step S1002 has changed compared to the position or orientation of the first part 510 acquired last time (step S1003).

例えば、CPU 101は、入力装置107を制御して、第1の部位510の位置と姿勢、及び、第2の部位520の位置と姿勢を、所定の定期的なタイミングで繰り返し検知し、所定回数分の検知結果の履歴をRAM 103に記憶する。CPU 101は、第1のタイミングで検知しRAM 103に記憶した第1の部位510の位置と姿勢及び第2の部位520の位置と姿勢と、第1のタイミングより後の第2のタイミングで検知しRAM 103に記憶した第1の部位510の位置と姿勢及び第2の部位520の位置と姿勢と、を比較する。   For example, the CPU 101 controls the input device 107 to repeatedly detect the position and posture of the first part 510 and the position and posture of the second part 520 at a predetermined periodic timing, and a predetermined number of times. A history of detection results for minutes is stored in the RAM 103. The CPU 101 detects the position and posture of the first part 510 and the position and posture of the second part 520 that are detected at the first timing and stored in the RAM 103, and the second timing after the first timing. The position and posture of the first part 510 and the position and posture of the second part 520 stored in the RAM 103 are compared.

第1の部位510の位置又は姿勢が変化していないと判別された場合(ステップS1003;NO)、CPU 101は、後述のステップS1005の処理に移る。一方、第1の部位510の位置又は姿勢が変化したと判別された場合(ステップS1003;YES)、CPU 101は、ステップS1002で取得した第1の部位510の位置と姿勢に基づいて、オブジェクト400の位置又は姿勢を変化させる(ステップS1004)。CPU 101は、変化させたオブジェクト400の位置を示す情報と、変化させたオブジェクト400の姿勢を示す情報を、RAM 103に記憶する。   When it is determined that the position or orientation of the first part 510 has not changed (step S1003; NO), the CPU 101 proceeds to the process of step S1005 described later. On the other hand, when it is determined that the position or orientation of the first part 510 has changed (step S1003; YES), the CPU 101 determines that the object 400 is based on the position and orientation of the first part 510 acquired in step S1002. The position or posture is changed (step S1004). The CPU 101 stores information indicating the changed position of the object 400 and information indicating the changed posture of the object 400 in the RAM 103.

次に、CPU 101は、ステップS1002で取得した第2の部位520の第1の部位510に対する相対的な位置(以下「相対位置」という。)、又は、ステップS1002で取得した第2の部位520の第1の部位510に対する相対的な姿勢(以下「相対姿勢」という。)が、前回取得した第2の部位520の相対位置又は相対姿勢と比べて変化したか否かを判別する(ステップS1005)。   Next, the CPU 101 determines the relative position of the second part 520 acquired in step S1002 with respect to the first part 510 (hereinafter referred to as “relative position”), or the second part 520 acquired in step S1002. It is determined whether or not the relative posture with respect to the first part 510 (hereinafter referred to as “relative posture”) has changed compared to the relative position or relative posture of the second part 520 acquired previously (step S1005). ).

第2の部位520の相対位置又は相対姿勢が変化していないと判別された場合(ステップS1005;NO)、CPU 101は、後述のステップS1007の処理に移る。一方、第2の部位520の相対位置又は相対姿勢が変化したと判別された場合(ステップS1005;YES)、CPU 101は、今回取得した相対位置と相対姿勢に基づいて、仮想視点450の位置又は仮想視線470の向きを変化させる(ステップS1006)。CPU 101は、変化させた仮想視点450の位置を示す情報と、変化させた仮想視線470の向きを示す情報を、RAM 103に記憶する。   When it is determined that the relative position or the relative posture of the second part 520 has not changed (step S1005; NO), the CPU 101 proceeds to the process of step S1007 described later. On the other hand, when it is determined that the relative position or relative posture of the second part 520 has changed (step S1005; YES), the CPU 101 determines the position of the virtual viewpoint 450 based on the relative position and the relative posture acquired this time. The direction of the virtual line of sight 470 is changed (step S1006). The CPU 101 stores information indicating the changed position of the virtual viewpoint 450 and information indicating the changed direction of the virtual visual line 470 in the RAM 103.

CPU 101は、オブジェクト400の位置と姿勢と、仮想視点450の位置と、仮想視線470の向きと、に基づいて、仮想視点450の位置から仮想視線470の向きへオブジェクト400を見た様子を表す画像を生成する(ステップS1007)。   Based on the position and orientation of the object 400, the position of the virtual viewpoint 450, and the direction of the virtual visual line 470, the CPU 101 represents a state in which the object 400 is viewed from the position of the virtual viewpoint 450 to the virtual visual line 470. An image is generated (step S1007).

そして、CPU 101は、ステップS1007で生成した画像をモニター250に表示する(ステップS1008)。   Then, the CPU 101 displays the image generated in step S1007 on the monitor 250 (step S1008).

CPU 101は、ステップS1002〜S1008の処理を繰り返し行う。この結果、ユーザが手や頭を動かすとそれに応じてオブジェクト400の位置や姿勢が変化する様子が、モニター250に映し出される。   The CPU 101 repeats the processes of steps S1002 to S1008. As a result, when the user moves his / her hand or head, the state in which the position and posture of the object 400 change accordingly is displayed on the monitor 250.

本実施形態によれば、画像処理装置300は、仮想空間に配置されたオブジェクト400の位置や姿勢をユーザが容易に且つ自由に動かして見ることができる。例えば、ユーザは、現実空間で模型を手にとって様々な角度から眺めるかのように、仮想空間に配置されたオブジェクト400を動かして眺めることができる。その際、ユーザは、コントローラのボタンを押すような面倒な操作を必要とせず、自分の手をオブジェクト400に見立てて直感的に位置や姿勢を変えることができる。   According to the present embodiment, the image processing apparatus 300 allows the user to easily and freely move and view the position and posture of the object 400 arranged in the virtual space. For example, the user can move and view the object 400 arranged in the virtual space as if he / she viewed the model in the real space from various angles. At that time, the user can intuitively change the position and orientation of his / her hand as if it were the object 400 without requiring a troublesome operation such as pressing a button on the controller.

(実施形態2)
次に、本発明のその他の実施形態について説明する。上記実施形態では、オブジェクト400の位置と姿勢、及び、仮想視点450の位置と仮想視線470の向きが、ユーザの第1の部位510の位置の変化と姿勢の変化、及び、第2の部位520の位置の変化と姿勢の変化に応じて直ちに変化する様子がモニター250に表示される。ところで、現実空間における第1の部位510と第2の部位520とモニター250との位置関係によっては、ユーザは、第1の部位510や第2の部位520を動かしつつモニター250を眺めることが困難になる可能性がある。そこで、本実施形態では、画像処理装置300は、オブジェクト400の位置と姿勢、及び、仮想視点450の位置と仮想視線470の向きを直ちに変化させるのではなく、第1の部位510の位置の変化と姿勢の変化、又は、第2の部位520の位置の変化が発生してから時間差を置いて、オブジェクト400の位置と姿勢、及び、仮想視点450の位置と仮想視線470の向きを変化させることができるようにしている。以下詳述する。
(Embodiment 2)
Next, other embodiments of the present invention will be described. In the above embodiment, the position and orientation of the object 400, the position of the virtual viewpoint 450, and the orientation of the virtual line of sight 470 are the position change and posture change of the user's first part 510, and the second part 520. The monitor 250 displays a state of immediately changing according to the change in position and the change in posture. By the way, depending on the positional relationship between the first part 510, the second part 520, and the monitor 250 in the real space, it is difficult for the user to view the monitor 250 while moving the first part 510 and the second part 520. There is a possibility. Therefore, in the present embodiment, the image processing apparatus 300 does not immediately change the position and orientation of the object 400 and the position of the virtual viewpoint 450 and the direction of the virtual line of sight 470, but changes the position of the first part 510. Change the position and orientation of the object 400, and the position of the virtual viewpoint 450 and the orientation of the virtual line of sight with a time difference after the change of the posture and the change of the position of the second part 520 occur. To be able to. This will be described in detail below.

変化部303は、検知部302によって検知された第2の部位520の位置と姿勢とに基づいて、ユーザの視点から現実世界を見るときの視線(ユーザ視線)の位置と向きを推定する。   Based on the position and orientation of the second part 520 detected by the detection unit 302, the changing unit 303 estimates the position and orientation of the line of sight (user line of sight) when viewing the real world from the user's viewpoint.

上述したように、CPU 101は、第2の部位520の表面の形状を表す近似平面522の法線ベクトル521の向きを、ユーザ視線の向きと推定する。   As described above, the CPU 101 estimates the direction of the normal vector 521 of the approximate plane 522 representing the shape of the surface of the second part 520 as the direction of the user's line of sight.

また、CPU 101は、画像認識等によって判別された左目と右目を結ぶ線分の中点の座標を、現実空間におけるユーザ視線の位置と推定する。   Further, the CPU 101 estimates the coordinates of the midpoint of the line segment connecting the left eye and the right eye determined by image recognition or the like as the position of the user's line of sight in the real space.

画像生成部304は、ユーザ視線の位置又は向きが変化を始めてから所定時間内に、ユーザ視線がモニター250の画像表示領域と交差した場合、ユーザ視線がモニター250と交差している間、変化を始める前に記憶部301に記憶されていた、オブジェクト400の位置と姿勢と、仮想視点450の位置と、仮想視線470の向きと、に基づいて、オブジェクト400を見た様子を表す画像を生成する。   When the user line of sight intersects the image display area of the monitor 250 within a predetermined time after the position or orientation of the user line of sight begins to change, the image generation unit 304 changes the user line of sight while the user line of sight intersects the monitor 250. Based on the position and orientation of the object 400, the position of the virtual viewpoint 450, and the direction of the virtual line of sight 470 stored in the storage unit 301 before starting, an image representing the appearance of the object 400 is generated. .

CPU 101は、オブジェクト400の位置と姿勢と、仮想視点450の位置と、仮想視線470の向きのそれぞれについて、直近の所定回数分の判別結果の履歴をRAM 103に記憶する。   The CPU 101 stores, in the RAM 103, a history of determination results for the most recent predetermined number of times for each of the position and orientation of the object 400, the position of the virtual viewpoint 450, and the direction of the virtual line of sight 470.

図11は、仮想視線470の向きの履歴の構成例を示す図である。
図12(a),(b)は、現実空間におけるユーザの第1の部位510と第2の部位520とモニター250との位置関係を模式的に表す図である。本図は、ユーザの真上から(頭上から)見下ろしたときの様子を表している。
FIG. 11 is a diagram illustrating a configuration example of the history of the direction of the virtual line of sight 470.
12A and 12B are diagrams schematically showing the positional relationship among the first part 510, the second part 520, and the monitor 250 of the user in the real space. This figure shows a state when looking down from directly above the user (over the head).

図11では、RAM 103には、直近のn回分(nは2以上の整数)の判別結果の履歴が記憶されている。時刻は、第2の部位520の位置と姿勢が検知部302によって検知された時刻である。ユーザ視線の向きは、ユーザ視線の位置1210とモニター250の表示領域の中心1230とを結ぶ線分1240と、近似平面522の法線ベクトル521の向きと、のなす角度γで表される。   In FIG. 11, the RAM 103 stores a history of discrimination results for the latest n times (n is an integer of 2 or more). The time is the time when the position and posture of the second part 520 are detected by the detection unit 302. The direction of the user's line of sight is represented by an angle γ formed by the line segment 1240 connecting the position 1210 of the user's line of sight and the center 1230 of the display area of the monitor 250 and the direction of the normal vector 521 of the approximate plane 522.

例えば、時刻T(n−2)までの向きの変位γ−γ、γ−γ、・・・、γn−2−γn−3がいずれも所定の閾値より小さかったものの、時刻T(n−2)から時刻T(n−1)までの間の向きの変位γn−1−γn−2が所定の閾値より大きかった場合、CPU 101は、時刻T(n−1)にユーザが第2の部位520を動かし始めたと判断する。つまり、時刻T(n−1)が、ユーザ視線の向きが変化し始めた時刻と推定される。 For example, the displacements γ 1 −γ 0 , γ 2 −γ 1 ,..., Γ n−2− γ n−3 in the direction until time T (n−2) are all smaller than a predetermined threshold, When the displacement γ n−1 −γ n−2 in the direction from time T (n−2) to time T (n−1) is greater than a predetermined threshold, the CPU 101 determines that the time T (n−1) It is determined that the user has started to move the second part 520. That is, the time T (n−1) is estimated as the time when the direction of the user's line of sight begins to change.

ユーザ視線がモニター250の画像表示領域と交差する場合とは、図12(b)に示すように、ユーザ視線の位置1210から法線ベクトル521の向きに延伸した半直線1250が、モニター250と交差する場合を指す。   When the user's line of sight intersects with the image display area of the monitor 250, as shown in FIG. 12B, a half line 1250 extending from the position 1210 of the user's line of sight toward the normal vector 521 intersects the monitor 250. If you want to.

CPU 101は、現実空間におけるモニター250の四隅の座標値を予めRAM 103に記憶しておく。そして、CPU 101は、半直線1250とモニター250の表面を含む平面との交点が、モニター250の四隅によって作られる矩形の中に入る場合に、ユーザ視線がモニター250の画像表示領域に含まれる(つまり、ユーザがモニターに表示される画像を見ている)と判別する。それ以外の場合、CPU 101は、ユーザ視線がモニター250の画像表示領域に含まれない(つまり、ユーザがモニターに表示される画像を見ていない)と判別する。   The CPU 101 stores the coordinate values of the four corners of the monitor 250 in the real space in the RAM 103 in advance. Then, the CPU 101 includes the user's line of sight in the image display area of the monitor 250 when the intersection of the half line 1250 and the plane including the surface of the monitor 250 falls within the rectangle formed by the four corners of the monitor 250 ( That is, it is determined that the user is looking at an image displayed on the monitor. In other cases, the CPU 101 determines that the user's line of sight is not included in the image display area of the monitor 250 (that is, the user does not see the image displayed on the monitor).

上述のステップS1007において、CPU 101は、ユーザ視線がモニター250の画像表示領域と交差する場合、ユーザ視線がモニター250と交差している間、変化が始まる前の仮想視点450の位置から、変化が始まる前の仮想視線470の向きへ、変化が始まる前の位置と姿勢で配置されたオブジェクト400を見た様子を表す画像を生成する。そして、ステップS1008において、CPU 101は、生成した画像をモニター250に表示する。   In step S1007 described above, when the user's line of sight intersects the image display area of the monitor 250, the CPU 101 changes from the position of the virtual viewpoint 450 before the change starts while the user's line of sight intersects the monitor 250. An image representing a state in which the object 400 arranged at the position and posture before the change is started is generated in the direction of the virtual visual line 470 before the start. In step S1008, the CPU 101 displays the generated image on the monitor 250.

例えば、時刻T(n−2)までの向きの変位γ−γ、γ−γ、・・・、γn−2−γn−3がいずれも所定の閾値より小さかったものの、時刻T(n−2)から時刻T(n−1)までの間の向きの変位γn−1−γn−2が所定の閾値より大きかった場合、CPU 101は、ユーザが第2の部位520を動かし始めたと判断した時刻T(n−1)に対応付けられてRAM 103に記憶されている、オブジェクト400の位置と姿勢を示す情報と、仮想視点450の位置を示す情報と、仮想視線470の向きを示す情報と、に基づいて、画像を生成する。 For example, the displacements γ 1 −γ 0 , γ 2 −γ 1 ,..., Γ n−2− γ n−3 in the direction until time T (n−2) are all smaller than a predetermined threshold, When the displacement γ n−1 −γ n−2 in the direction from time T (n−2) to time T (n−1) is larger than a predetermined threshold, the CPU 101 determines that the user Information indicating the position and orientation of the object 400, information indicating the position of the virtual viewpoint 450, and virtual line of sight, which are stored in the RAM 103 in association with the time T (n−1) when it is determined that the 520 has started to move. An image is generated based on the information indicating the orientation of 470.

仮に、手の位置の変化と姿勢の変化と、頭の位置の変化と姿勢の変化と、に直ちに連動するように、オブジェクト400の位置と姿勢を変化させるとしたとき、現実空間においてモニター250と手が離れていると、ユーザのとって、手を動かしながらモニター250を見る、という動作がやりづらいことがある。
例えば、図13(a)に示すように、ユーザが現実空間で第1の部位510と第2の部位520を配置し、且つ、ユーザの視線方向や矢印YA方向であるときに、オブジェクト400がモニター250の表示領域の中央に配置されたとする。ここで、ユーザがモニター250を正面から眺めようと向き直り、視線方向が矢印YB方向になると、第2の部位520の位置もしくは姿勢が変化するため、仮想視点450もしくは仮想視線470が変化してしまう。すると、モニター250には、図13(b)に示すように、仮想視点450もしくは仮想視線470が変化した後の様子が映ることになり、結果としてユーザはオブジェクト400がモニター250の中央に表示されているときの様子を見られないことになってしまう。この問題を回避するために、モニター250を横目でチラチラと見続けることは、ユーザにとって大きな負担であり、またこのような行為にも限界がある。
そこで、ユーザの視線方向がモニター250の画像表示領域外から画像表示領域内に入ってきた場合には、本実施形態の画像処理装置300は、図13(c)に示すように、ユーザがモニター250の方向へ振り向く直前に表示していた画像を表示することとしている。つまり、ユーザは、視線方向を矢印YB方向に移動した後でも、視線方向が矢印YA方向である場合の映像を見ることができるのである。ユーザは、“少し前の”手と頭の位置と姿勢によって作られる画像を見ることができる。
なお、CPU 101が、ユーザがモニター250を眺めていると判断する場合とは、図13(b)に示すように、「視線方向を示すベクトルの向きが、第2の部位の位置1305から、モニター250の表示領域の4隅の点1301〜1304へ、結ぶ4つの線分によって囲まれる四角柱状の領域内に収まる場合」である。
If the position and posture of the object 400 are changed so as to be immediately linked to the change in the position and posture of the hand, the change in the position of the head and the change in posture, If the hand is far away, it may be difficult for the user to see the monitor 250 while moving the hand.
For example, as shown in FIG. 13A, when the user places the first part 510 and the second part 520 in the real space and the user's line-of-sight direction or the arrow YA direction, the object 400 It is assumed that it is arranged at the center of the display area of the monitor 250. Here, when the user turns to look at the monitor 250 from the front and the line-of-sight direction is the arrow YB direction, the position or posture of the second part 520 changes, and thus the virtual viewpoint 450 or the virtual line-of-sight 470 changes. . Then, as shown in FIG. 13B, the monitor 250 shows a state after the virtual viewpoint 450 or the virtual line of sight 470 is changed, and as a result, the user displays the object 400 in the center of the monitor 250. You will not be able to see what you are doing. In order to avoid this problem, it is a heavy burden on the user to keep the monitor 250 flickering from the side, and there is a limit to such an action.
Therefore, when the user's line-of-sight direction enters the image display area from outside the image display area of the monitor 250, the image processing apparatus 300 according to the present embodiment allows the user to monitor as shown in FIG. The image displayed immediately before turning in the direction 250 is displayed. That is, even after the user moves the line-of-sight direction in the direction of the arrow YB, the user can view an image when the line-of-sight direction is the direction of the arrow YA. The user can see an image created by the position and posture of the “slightly forward” hand and head.
When the CPU 101 determines that the user is looking at the monitor 250, as shown in FIG. 13B, “the direction of the vector indicating the direction of the line of sight is determined from the position 1305 of the second part. This is a case where the four corners 1301 to 1304 of the display area of the monitor 250 fall within a quadrangular prism-shaped area surrounded by four connecting line segments.

なお、CPU 101は、変化が始まる前の仮想視点450の位置から、変化が始まる前の仮想視線470の向きへ、変化が始まる前の位置と姿勢で配置されたオブジェクト400を見た様子を表す画像を表示した後、ユーザ視線がモニター250と交差しなくなった場合、ユーザがモニター250から目をそらしたと推定し、手の位置の変化と姿勢の変化と、頭の位置の変化と姿勢の変化と、に直ちに連動させてオブジェクト400の位置と姿勢を変化させた画像を生成して表示する。   Note that the CPU 101 represents a state in which the object 400 arranged at the position and posture before the change starts from the position of the virtual viewpoint 450 before the change starts to the direction of the virtual visual line 470 before the change starts. If the user's line of sight no longer intersects the monitor 250 after displaying the image, it is assumed that the user has looked away from the monitor 250, and the hand position change, posture change, head position change, posture change An image in which the position and orientation of the object 400 is changed in synchronization with the change is generated and displayed.

言い換えれば、ユーザがモニター250を向いていないと推定される場合、オブジェクト400が手や頭と“連動”して表示され、ユーザがモニター250を向いていると推定される場合、オブジェクト400と手や頭との連動が一旦中断して“リプレイ”画像が表示される。   In other words, if it is estimated that the user is not facing the monitor 250, the object 400 is displayed “linked” with the hand or head, and if the user is estimated to be facing the monitor 250, Interlocking with the head and the head is temporarily interrupted, and a “replay” image is displayed.

本実施形態では、CPU 101は、ユーザがモニター250の方へ振り向く動作をする直前のオブジェクト400を表す画像を表示するが、RAM 103に記憶している任意の過去のタイミングにおけるオブジェクト400を表す画像を表示することもできる。例えば、CPU 101は、ユーザがモニター250の方へ振り向いたと推定された場合、直近の過去の所定時間分(例えば、現在よりX秒前から、現在まで、など)の履歴を用いて、オブジェクト400を表す画像を生成して表示してもよい。また、この所定時間をユーザが自由に設定できるようにしてもよい。   In this embodiment, the CPU 101 displays an image representing the object 400 immediately before the user turns to the monitor 250, but the image representing the object 400 at any past timing stored in the RAM 103. Can also be displayed. For example, when it is estimated that the user has turned to the monitor 250, the CPU 101 uses the history of the latest past predetermined time (for example, from X seconds before the present to the present, etc.) to use the object 400. May be generated and displayed. In addition, the predetermined time may be set freely by the user.

本発明は、上述した実施形態に限定されず、種々の変形及び応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。   The present invention is not limited to the above-described embodiments, and various modifications and applications are possible. Moreover, it is also possible to freely combine the constituent elements of the above-described embodiments.

上記の画像処理装置300の全部又は一部としてコンピュータを動作させるためのプログラムを、メモリカード、CD−ROM、DVD、MO(Magneto Optical disk)などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。   A program for operating a computer as all or part of the image processing apparatus 300 is stored and distributed in a computer-readable recording medium such as a memory card, CD-ROM, DVD, or MO (Magneto Optical disk). This may be installed in another computer and operated as the above-described means, or the above-described steps may be executed.

さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。   Furthermore, the program may be stored in a disk device or the like included in a server device on the Internet, and may be downloaded onto a computer by being superimposed on a carrier wave, for example.

以上説明したように、本発明によれば、仮想空間に配置されるオブジェクトの見方をユーザが簡単な操作で変えることができるようにするために好適な画像処理装置、画像処理方法、ならびに、プログラムを提供することができる。   As described above, according to the present invention, an image processing apparatus, an image processing method, and a program suitable for enabling a user to change the way of viewing an object arranged in a virtual space with a simple operation. Can be provided.

100 情報処理装置
101 CPU
102 ROM
103 RAM
104 ハードディスク
105 インターフェース
106 外部メモリ
107 入力装置
108 DVD−ROMドライブ
109 画像処理部
110 音声処理部
111 NIC
250 モニター
300 画像処理装置
301 記憶部
302 検知部
303 変化部
304 画像生成部
305 表示部
400 オブジェクト
450 仮想視点
470 仮想視線
510 第1の部位
511 ベクトル(第1の部位の向き)
512 近似平面(第1の部位を表す近似平面)
513 鉛直方向
514 法線ベクトル(第1の部位を表す近似平面の法線ベクトル)
520 第2の部位
521 法線ベクトル(第2の部位を表す近似平面の法線ベクトル)
522 近似平面(第2の部位を表す近似平面)
523 水平方向を表す直線
524 直線
1210 ユーザ視線の位置
1230 中心(モニターの表示領域の中心)
1240 線分
1250 半直線
100 Information processing apparatus 101 CPU
102 ROM
103 RAM
104 Hard disk 105 Interface 106 External memory 107 Input device 108 DVD-ROM drive 109 Image processing unit 110 Audio processing unit 111 NIC
250 Monitor 300 Image processing device 301 Storage unit 302 Detection unit 303 Change unit 304 Image generation unit 305 Display unit 400 Object 450 Virtual viewpoint 470 Virtual line of sight 510 First part 511 Vector (direction of the first part)
512 approximate plane (approximate plane representing the first part)
513 Vertical direction 514 normal vector (normal vector of the approximate plane representing the first part)
520 Second part 521 normal vector (normal vector of the approximate plane representing the second part)
522 approximate plane (approximate plane representing the second part)
523 Horizontal line 524 Straight line 1210 User line of sight position 1230 Center (center of display area of monitor)
1240 line segment 1250 half straight line

Claims (13)

仮想空間に配置されるオブジェクトの位置と姿勢と、当該仮想空間に配置される仮想視点の位置と、当該仮想視点の位置から当該仮想空間を見る仮想視線の向きと、が記憶される記憶部と、
現実空間におけるユーザの第1の部位の位置と姿勢と、当該ユーザの第2の部位の位置と姿勢と、を検知する検知部と、
前記検知された第1の部位の位置と姿勢とに基づいて、前記記憶されるオブジェクトの位置と姿勢とを変化させ、前記検知された第2の部位の前記第1の部位に対する相対的な位置と姿勢とに基づいて、前記記憶される仮想視点の位置と前記記憶される仮想視線の向きとを変化させる変化部と、
前記仮想視点の位置から前記仮想視線の向きに前記オブジェクトを見た様子を表す画像を生成する画像生成部と、
前記生成された画像を前記現実空間におけるモニター画面に表示する表示部と、
を備え、
前記変化部は、前記検知された第2の部位の位置と姿勢とに基づいて、前記ユーザの視点から現実世界を見るときの視線(以下「ユーザ視線」という。)の位置と向きを推定し、
前記画像生成部は、前記ユーザ視線の位置又は向きが変化を始めてから所定時間内に前記ユーザ視線が前記モニター画面と交差した場合、前記ユーザ視線が前記モニター画面と交差している間、前記変化を始める前に前記記憶部に記憶されていた、前記オブジェクトの位置と姿勢と、前記仮想視点の位置と、前記仮想視線の向きと、に基づいて、前記オブジェクトを見た様子を表す画像を生成する、
ことを特徴とする画像処理装置。
A storage unit that stores the position and orientation of an object arranged in the virtual space, the position of the virtual viewpoint arranged in the virtual space, and the direction of the virtual line of sight of viewing the virtual space from the position of the virtual viewpoint; ,
A detection unit that detects the position and posture of the first part of the user in the real space and the position and posture of the second part of the user;
Based on the detected position and orientation of the first part, the position and orientation of the stored object are changed, and the relative position of the detected second part with respect to the first part is changed. And a changing unit that changes the position of the stored virtual viewpoint and the stored direction of the virtual line of sight based on the orientation and the posture,
An image generation unit that generates an image representing a state in which the object is viewed in the direction of the virtual line of sight from the position of the virtual viewpoint;
A display unit for displaying the generated image on a monitor screen in the real space;
With
The changing unit estimates the position and orientation of a line of sight (hereinafter referred to as “user line of sight”) when viewing the real world from the viewpoint of the user, based on the detected position and posture of the second part. ,
When the user line of sight intersects the monitor screen within a predetermined time after the position or orientation of the user line of sight begins to change, the image generation unit changes the change while the user line of sight intersects the monitor screen. An image representing the appearance of the object is generated based on the position and orientation of the object, the position of the virtual viewpoint, and the direction of the virtual line of sight stored in the storage unit before starting the operation. To
An image processing apparatus.
請求項に記載の画像処理装置であって、
前記記憶部には、前記オブジェクトの位置と姿勢の履歴と、前記仮想視点の位置の履歴と、前記仮想視線の向きの履歴と、が記憶され、
前記画像生成部は、前記記憶された前記オブジェクトの位置と姿勢の履歴と、前記記憶された前記仮想視点の位置の履歴と、前記記憶された前記仮想視線の向きの履歴と、に基づいて、前記変化を始める前に前記オブジェクトを見た様子を表す画像を生成する、
ことを特徴とする画像処理装置。
The image processing apparatus according to claim 1 ,
The storage unit stores a history of the position and orientation of the object, a history of the position of the virtual viewpoint, and a history of the direction of the virtual line of sight,
The image generation unit, based on the stored history of the position and orientation of the object, the stored history of the position of the virtual viewpoint, and the stored history of the direction of the virtual line of sight, Generating an image showing how the object was viewed before starting the change,
An image processing apparatus.
請求項1又は2に記載の画像処理装置であって、
前記変化部は、前記検知された第2の部位の位置と姿勢の各変化量の所定倍数量だけ、前記記憶される仮想視点の位置と仮想視線の向きとを変化させ、前記検知された第1の部位の位置と姿勢の相対的な各変化量の所定倍数量だけ、前記記憶されるオブジェクトの位置と姿勢とを変化させる、
ことを特徴とする画像処理装置。
The image processing apparatus according to claim 1 , wherein:
The changing unit changes the stored position of the virtual viewpoint and the direction of the virtual line of sight by a predetermined multiple of each detected change amount of the position and orientation of the second part, and detects the detected first position. Changing the position and posture of the stored object by a predetermined multiple of the relative change amounts of the position and posture of one part;
An image processing apparatus.
仮想空間に配置されるオブジェクトの位置と姿勢と、当該仮想空間に配置される仮想視点の位置と、当該仮想視点の位置から当該仮想空間を見る仮想視線の向きと、が記憶される記憶部と、
現実空間におけるユーザの第1の部位の位置と姿勢と、当該ユーザの第2の部位の位置と姿勢と、を検知する検知部と、
前記検知された第1の部位の位置と姿勢とに基づいて、前記記憶されるオブジェクトの位置と姿勢とを変化させ、前記検知された第2の部位の前記第1の部位に対する相対的な位置と姿勢とに基づいて、前記記憶される仮想視点の位置と前記記憶される仮想視線の向きとを変化させる変化部と、
前記仮想視点の位置から前記仮想視線の向きに前記オブジェクトを見た様子を表す画像を生成する画像生成部と、
前記生成された画像を前記現実空間におけるモニター画面に表示する表示部と、
を備え、
前記変化部は、前記検知された第1の部位の位置と姿勢とに基づいて前記第1の部位の表面の形状を近似する平面を求め、当該求められた平面を用いて前記オブジェクトの位置と姿勢とを決定する、
ことを特徴とする画像処理装置。
A storage unit that stores the position and orientation of an object arranged in the virtual space, the position of the virtual viewpoint arranged in the virtual space, and the direction of the virtual line of sight of viewing the virtual space from the position of the virtual viewpoint; ,
A detection unit that detects the position and posture of the first part of the user in the real space and the position and posture of the second part of the user;
Based on the detected position and orientation of the first part, the position and orientation of the stored object are changed, and the relative position of the detected second part with respect to the first part is changed. And a changing unit that changes the position of the stored virtual viewpoint and the stored direction of the virtual line of sight based on the orientation and the posture,
An image generation unit that generates an image representing a state in which the object is viewed in the direction of the virtual line of sight from the position of the virtual viewpoint;
A display unit for displaying the generated image on a monitor screen in the real space;
With
The changing unit obtains a plane that approximates the shape of the surface of the first part based on the detected position and posture of the first part, and uses the obtained plane to determine the position of the object. Determine the posture,
An image processing apparatus.
仮想空間に配置されるオブジェクトの位置と姿勢と、当該仮想空間に配置される仮想視点の位置と、当該仮想視点の位置から当該仮想空間を見る仮想視線の向きと、が記憶される記憶部と、
現実空間におけるユーザの第1の部位の位置と姿勢と、当該ユーザの第2の部位の位置と姿勢と、を検知する検知部と、
前記検知された第1の部位の位置と姿勢とに基づいて、前記記憶されるオブジェクトの位置と姿勢とを変化させ、前記検知された第2の部位の前記第1の部位に対する相対的な位置と姿勢とに基づいて、前記記憶される仮想視点の位置と前記記憶される仮想視線の向きとを変化させる変化部と、
前記仮想視点の位置から前記仮想視線の向きに前記オブジェクトを見た様子を表す画像を生成する画像生成部と、
前記生成された画像を前記現実空間におけるモニター画面に表示する表示部と、
を備え、
前記変化部は、前記検知された第2の部位の位置と姿勢とに基づいて前記第2の部位の表面の形状を近似する平面を求め、当該求められた平面を用いて前記仮想視点の位置と前記仮想視線の向きとを決定する、
ことを特徴とする画像処理装置。
A storage unit that stores the position and orientation of an object arranged in the virtual space, the position of the virtual viewpoint arranged in the virtual space, and the direction of the virtual line of sight of viewing the virtual space from the position of the virtual viewpoint; ,
A detection unit that detects the position and posture of the first part of the user in the real space and the position and posture of the second part of the user;
Based on the detected position and orientation of the first part, the position and orientation of the stored object are changed, and the relative position of the detected second part with respect to the first part is changed. And a changing unit that changes the position of the stored virtual viewpoint and the stored direction of the virtual line of sight based on the orientation and the posture,
An image generation unit that generates an image representing a state in which the object is viewed in the direction of the virtual line of sight from the position of the virtual viewpoint;
A display unit for displaying the generated image on a monitor screen in the real space;
With
The changing unit obtains a plane that approximates the shape of the surface of the second part based on the detected position and posture of the second part, and uses the obtained plane to determine the position of the virtual viewpoint. And the direction of the virtual line of sight,
An image processing apparatus.
請求項1乃至のいずれか1項に記載の画像処理装置であって、
前記第1の部位は前記ユーザの手であり、前記第2の部位は前記ユーザの頭であり、
前記検知部は、現実空間における前記ユーザの手の位置と姿勢と、前記ユーザの頭の位置と姿勢と、を検知し、
前記変化部は、前記検知された手の位置と姿勢とに基づいて、前記記憶されるオブジェクトの位置と姿勢とを変化させ、前記検知された頭の、手に対する相対的な位置と姿勢とに基づいて、前記記憶される仮想視点の位置と前記記憶される仮想視線の向きとを変化させる、
ことを特徴とする画像処理装置。
An image processing apparatus according to any one of claims 1 to 5 ,
The first part is the user's hand, the second part is the user's head;
The detection unit detects the position and posture of the user's hand in the real space and the position and posture of the user's head;
The changing unit changes the position and posture of the stored object based on the detected position and posture of the hand, and changes the position and posture of the detected head relative to the hand. Based on the stored virtual viewpoint position and the stored virtual visual line direction,
An image processing apparatus.
請求項1乃至6のいずれか1項に記載の画像処理装置であって、
前記変化部は、前記検知された第2の部位の前記第1の部位に対する相対的な位置、又は、前記検知された第2の部位の前記第1の部位に対する相対的な姿勢が変化した場合に、前記記憶される仮想視点の位置、又は、前記記憶される仮想視線の向きを変化させる、
ことを特徴とする画像処理装置。
The image processing apparatus according to any one of claims 1 to 6 ,
When the relative position of the detected second part relative to the first part or the relative posture of the detected second part relative to the first part is changed Changing the position of the stored virtual viewpoint or the stored direction of the virtual line of sight,
An image processing apparatus.
記憶部、検知部、変化部、画像生成部、表示部を有する画像処理装置にて実行される画像処理方法であって、
前記記憶部には、仮想空間に配置されるオブジェクトの位置と姿勢と、当該仮想空間に配置される仮想視点の位置と、当該仮想視点の位置から当該仮想空間を見る仮想視線の向きと、が記憶され、
前記検知部が、現実空間におけるユーザの第1の部位の位置と姿勢と、当該ユーザの第2の部位の位置と姿勢と、を検知する検知ステップと、
前記変化部が、前記検知された第1の部位の位置と姿勢とに基づいて、前記記憶されるオブジェクトの位置と姿勢とを変化させ、前記検知された第2の部位の前記第1の部位に対する相対的な位置に基づいて、前記記憶される仮想視点の位置を変化させ、前記検知された第2の部位の前記第1の部位に対する相対的な姿勢に基づいて、前記記憶される仮想視線の向きを変化させる変化ステップと、
前記画像生成部が、前記変化ステップにおいて変化された仮想視点の位置から前記変化ステップにおいて変化された仮想視線の向きに前記オブジェクトを見た様子を表す画像を生成する画像生成ステップと、
前記表示部が、前記生成された画像を前記現実空間におけるモニター画面に表示する表示ステップと、
を備え
前記変化ステップでは、前記変化部は、前記検知された第2の部位の位置と姿勢とに基づいて、前記ユーザの視点から現実世界を見るときの視線(以下「ユーザ視線」という。)の位置と向きを推定し、
前記画像生成ステップでは、前記画像生成部は、前記ユーザ視線の位置又は向きが変化を始めてから所定時間内に前記ユーザ視線が前記モニター画面と交差した場合、前記ユーザ視線が前記モニター画面と交差している間、前記変化を始める前に前記記憶部に記憶されていた、前記オブジェクトの位置と姿勢と、前記仮想視点の位置と、前記仮想視線の向きと、に基づいて、前記オブジェクトを見た様子を表す画像を生成する、
ことを特徴とする画像処理方法。
An image processing method executed by an image processing apparatus having a storage unit, a detection unit, a change unit, an image generation unit, and a display unit,
The storage unit includes a position and orientation of an object arranged in the virtual space, a position of a virtual viewpoint arranged in the virtual space, and a direction of a virtual line of sight viewing the virtual space from the position of the virtual viewpoint. Remembered,
A detecting step for detecting the position and posture of the first part of the user in the real space and the position and posture of the second part of the user;
The changing unit changes the position and posture of the stored object based on the detected position and posture of the first part, and the first part of the detected second part. The position of the stored virtual viewpoint is changed based on the relative position with respect to the image, and the stored virtual line of sight is determined based on the relative posture of the detected second part with respect to the first part. A change step that changes the orientation of the
An image generation step in which the image generation unit generates an image representing a state in which the object is viewed in the direction of the virtual line of sight changed in the change step from the position of the virtual viewpoint changed in the change step;
A display step in which the display unit displays the generated image on a monitor screen in the real space; and
Equipped with a,
In the changing step, the changing unit is based on the detected position and posture of the second part, and the position of the line of sight when viewing the real world from the viewpoint of the user (hereinafter referred to as “user line of sight”). And direction,
In the image generation step, when the user line of sight intersects the monitor screen within a predetermined time after the position or orientation of the user line of sight begins to change, the user line of sight intersects the monitor screen. The object was viewed based on the position and orientation of the object, the position of the virtual viewpoint, and the direction of the virtual line of sight stored in the storage unit before starting the change. Generate an image of the situation,
An image processing method.
コンピュータを、
仮想空間に配置されるオブジェクトの位置と姿勢と、当該仮想空間に配置される仮想視点の位置と、当該仮想視点の位置から当該仮想空間を見る仮想視線の向きと、が記憶される記憶部、
現実空間におけるユーザの第1の部位の位置と姿勢と、当該ユーザの第2の部位の位置と姿勢と、を検知する検知部、
前記検知された第1の部位の位置と姿勢とに基づいて、前記記憶されるオブジェクトの位置と姿勢とを変化させ、前記検知された第2の部位の前記第1の部位に対する相対的な位置に基づいて、前記記憶される仮想視点の位置を変化させ、前記検知された第2の部位の前記第1の部位に対する相対的な姿勢に基づいて、前記記憶される仮想視線の向きを変化させる変化部、
前記変化部によって変化された仮想視点の位置から前記変化部によって変化された仮想視線の向きに前記オブジェクトを見た様子を表す画像を生成する画像生成部、
前記生成された画像を前記現実空間におけるモニター画面に表示する表示部、
として機能させ
前記変化部は、前記検知された第2の部位の位置と姿勢とに基づいて、前記ユーザの視点から現実世界を見るときの視線(以下「ユーザ視線」という。)の位置と向きを推定し、
前記画像生成部は、前記ユーザ視線の位置又は向きが変化を始めてから所定時間内に前記ユーザ視線が前記モニター画面と交差した場合、前記ユーザ視線が前記モニター画面と交差している間、前記変化を始める前に前記記憶部に記憶されていた、前記オブジェクトの位置と姿勢と、前記仮想視点の位置と、前記仮想視線の向きと、に基づいて、前記オブジェクトを見た様子を表す画像を生成する、
ことを特徴とするプログラム。
Computer
A storage unit that stores the position and orientation of an object arranged in the virtual space, the position of the virtual viewpoint arranged in the virtual space, and the direction of the virtual line of sight of viewing the virtual space from the position of the virtual viewpoint;
A detection unit for detecting the position and posture of the first part of the user in the real space and the position and posture of the second part of the user;
Based on the detected position and orientation of the first part, the position and orientation of the stored object are changed, and the relative position of the detected second part with respect to the first part is changed. And changing the position of the stored virtual viewpoint, and changing the direction of the stored virtual line of sight based on the relative posture of the detected second part with respect to the first part. Change part,
An image generation unit that generates an image representing a state in which the object is viewed in the direction of the virtual line of sight changed by the change unit from the position of the virtual viewpoint changed by the change unit;
A display unit for displaying the generated image on a monitor screen in the real space;
To function as,
The changing unit estimates the position and orientation of a line of sight (hereinafter referred to as “user line of sight”) when viewing the real world from the viewpoint of the user, based on the detected position and posture of the second part. ,
When the user line of sight intersects the monitor screen within a predetermined time after the position or orientation of the user line of sight begins to change, the image generation unit changes the change while the user line of sight intersects the monitor screen. An image representing the appearance of the object is generated based on the position and orientation of the object, the position of the virtual viewpoint, and the direction of the virtual line of sight stored in the storage unit before starting the operation. To
A program characterized by that.
記憶部、検知部、変化部、画像生成部、表示部を有する画像処理装置にて実行される画像処理方法であって、  An image processing method executed by an image processing apparatus having a storage unit, a detection unit, a change unit, an image generation unit, and a display unit,
前記記憶部には、仮想空間に配置されるオブジェクトの位置と姿勢と、当該仮想空間に配置される仮想視点の位置と、当該仮想視点の位置から当該仮想空間を見る仮想視線の向きと、が記憶され、  The storage unit includes a position and orientation of an object arranged in the virtual space, a position of a virtual viewpoint arranged in the virtual space, and a direction of a virtual line of sight viewing the virtual space from the position of the virtual viewpoint. Remembered,
前記検知部が、現実空間におけるユーザの第1の部位の位置と姿勢と、当該ユーザの第2の部位の位置と姿勢と、を検知する検知ステップと、  A detecting step for detecting the position and posture of the first part of the user in the real space and the position and posture of the second part of the user;
前記変化部が、前記検知された第1の部位の位置と姿勢とに基づいて、前記記憶されるオブジェクトの位置と姿勢とを変化させ、前記検知された第2の部位の前記第1の部位に対する相対的な位置と姿勢とに基づいて、前記記憶される仮想視点の位置と前記記憶される仮想視線の向きとを変化させる変化ステップと、  The changing unit changes the position and posture of the stored object based on the detected position and posture of the first part, and the first part of the detected second part. A change step for changing the position of the stored virtual viewpoint and the direction of the stored virtual line of sight based on the relative position and orientation with respect to
前記画像生成部が、前記仮想視点の位置から前記仮想視線の向きに前記オブジェクトを見た様子を表す画像を生成する画像生成ステップと、  An image generation step for generating an image representing a state in which the image generation unit views the object in the direction of the virtual line of sight from the position of the virtual viewpoint;
前記表示部が、前記生成された画像を前記現実空間におけるモニター画面に表示する表示ステップと、  A display step in which the display unit displays the generated image on a monitor screen in the real space; and
を備え、  With
前記変化ステップでは、前記変化部は、前記検知された第1の部位の位置と姿勢とに基づいて前記第1の部位の表面の形状を近似する平面を求め、当該求められた平面を用いて前記オブジェクトの位置と姿勢とを決定する、  In the changing step, the changing unit obtains a plane that approximates the shape of the surface of the first part based on the detected position and posture of the first part, and uses the obtained plane. Determining the position and orientation of the object;
ことを特徴とする画像処理方法。  An image processing method.
コンピュータを、  Computer
仮想空間に配置されるオブジェクトの位置と姿勢と、当該仮想空間に配置される仮想視点の位置と、当該仮想視点の位置から当該仮想空間を見る仮想視線の向きと、が記憶される記憶部、  A storage unit that stores the position and orientation of an object arranged in the virtual space, the position of the virtual viewpoint arranged in the virtual space, and the direction of the virtual line of sight of viewing the virtual space from the position of the virtual viewpoint;
現実空間におけるユーザの第1の部位の位置と姿勢と、当該ユーザの第2の部位の位置と姿勢と、を検知する検知部、  A detection unit for detecting the position and posture of the first part of the user in the real space and the position and posture of the second part of the user;
前記検知された第1の部位の位置と姿勢とに基づいて、前記記憶されるオブジェクトの位置と姿勢とを変化させ、前記検知された第2の部位の前記第1の部位に対する相対的な位置と姿勢とに基づいて、前記記憶される仮想視点の位置と前記記憶される仮想視線の向きとを変化させる変化部、  Based on the detected position and orientation of the first part, the position and orientation of the stored object are changed, and the relative position of the detected second part with respect to the first part is changed. And a changing unit that changes the position of the stored virtual viewpoint and the stored direction of the virtual line of sight based on the orientation and the posture,
前記仮想視点の位置から前記仮想視線の向きに前記オブジェクトを見た様子を表す画像を生成する画像生成部、  An image generation unit that generates an image representing a state in which the object is viewed in the direction of the virtual line of sight from the position of the virtual viewpoint;
前記生成された画像を前記現実空間におけるモニター画面に表示する表示部、  A display unit for displaying the generated image on a monitor screen in the real space;
として機能させ、  Function as
前記変化部は、前記検知された第1の部位の位置と姿勢とに基づいて前記第1の部位の表面の形状を近似する平面を求め、当該求められた平面を用いて前記オブジェクトの位置と姿勢とを決定する、  The changing unit obtains a plane that approximates the shape of the surface of the first part based on the detected position and posture of the first part, and uses the obtained plane to determine the position of the object. Determine the posture,
ことを特徴とするプログラム。  A program characterized by that.
記憶部、検知部、変化部、画像生成部、表示部を有する画像処理装置にて実行される画像処理方法であって、  An image processing method executed by an image processing apparatus having a storage unit, a detection unit, a change unit, an image generation unit, and a display unit,
前記記憶部には、仮想空間に配置されるオブジェクトの位置と姿勢と、当該仮想空間に配置される仮想視点の位置と、当該仮想視点の位置から当該仮想空間を見る仮想視線の向きと、が記憶され、  The storage unit includes a position and orientation of an object arranged in the virtual space, a position of a virtual viewpoint arranged in the virtual space, and a direction of a virtual line of sight viewing the virtual space from the position of the virtual viewpoint. Remembered,
前記検知部が、現実空間におけるユーザの第1の部位の位置と姿勢と、当該ユーザの第2の部位の位置と姿勢と、を検知する検知ステップと、  A detecting step for detecting the position and posture of the first part of the user in the real space and the position and posture of the second part of the user;
前記変化部が、前記検知された第1の部位の位置と姿勢とに基づいて、前記記憶されるオブジェクトの位置と姿勢とを変化させ、前記検知された第2の部位の前記第1の部位に対する相対的な位置と姿勢とに基づいて、前記記憶される仮想視点の位置と前記記憶される仮想視線の向きとを変化させる変化ステップと、  The changing unit changes the position and posture of the stored object based on the detected position and posture of the first part, and the first part of the detected second part. A change step for changing the position of the stored virtual viewpoint and the direction of the stored virtual line of sight based on the relative position and orientation with respect to
前記画像生成部が、前記仮想視点の位置から前記仮想視線の向きに前記オブジェクトを見た様子を表す画像を生成する画像生成ステップと、  An image generation step for generating an image representing a state in which the image generation unit views the object in the direction of the virtual line of sight from the position of the virtual viewpoint;
前記表示部が、前記生成された画像を前記現実空間におけるモニター画面に表示する表示ステップと、  A display step in which the display unit displays the generated image on a monitor screen in the real space; and
を備え、  With
前記変化ステップでは、前記変化部は、前記検知された第2の部位の位置と姿勢とに基づいて前記第2の部位の表面の形状を近似する平面を求め、当該求められた平面を用いて前記仮想視点の位置と前記仮想視線の向きとを決定する、  In the changing step, the changing unit obtains a plane that approximates the shape of the surface of the second part based on the detected position and posture of the second part, and uses the obtained plane. Determining the position of the virtual viewpoint and the direction of the virtual line of sight;
ことを特徴とする画像処理方法。  An image processing method.
コンピュータを、  Computer
仮想空間に配置されるオブジェクトの位置と姿勢と、当該仮想空間に配置される仮想視点の位置と、当該仮想視点の位置から当該仮想空間を見る仮想視線の向きと、が記憶される記憶部、  A storage unit that stores the position and orientation of an object arranged in the virtual space, the position of the virtual viewpoint arranged in the virtual space, and the direction of the virtual line of sight of viewing the virtual space from the position of the virtual viewpoint;
現実空間におけるユーザの第1の部位の位置と姿勢と、当該ユーザの第2の部位の位置と姿勢と、を検知する検知部、  A detection unit for detecting the position and posture of the first part of the user in the real space and the position and posture of the second part of the user;
前記検知された第1の部位の位置と姿勢とに基づいて、前記記憶されるオブジェクトの位置と姿勢とを変化させ、前記検知された第2の部位の前記第1の部位に対する相対的な位置と姿勢とに基づいて、前記記憶される仮想視点の位置と前記記憶される仮想視線の向きとを変化させる変化部、  Based on the detected position and orientation of the first part, the position and orientation of the stored object are changed, and the relative position of the detected second part with respect to the first part is changed. And a changing unit that changes the position of the stored virtual viewpoint and the stored direction of the virtual line of sight based on the orientation and the posture,
前記仮想視点の位置から前記仮想視線の向きに前記オブジェクトを見た様子を表す画像を生成する画像生成部、  An image generation unit that generates an image representing a state in which the object is viewed in the direction of the virtual line of sight from the position of the virtual viewpoint;
前記生成された画像を前記現実空間におけるモニター画面に表示する表示部、  A display unit for displaying the generated image on a monitor screen in the real space;
として機能させ、  Function as
前記変化部は、前記検知された第2の部位の位置と姿勢とに基づいて前記第2の部位の表面の形状を近似する平面を求め、当該求められた平面を用いて前記仮想視点の位置と前記仮想視線の向きとを決定する、  The changing unit obtains a plane that approximates the shape of the surface of the second part based on the detected position and posture of the second part, and uses the obtained plane to determine the position of the virtual viewpoint. And the direction of the virtual line of sight,
ことを特徴とするプログラム。  A program characterized by that.
JP2010056120A 2010-03-12 2010-03-12 Image processing apparatus, image processing method, and program Active JP5307060B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010056120A JP5307060B2 (en) 2010-03-12 2010-03-12 Image processing apparatus, image processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010056120A JP5307060B2 (en) 2010-03-12 2010-03-12 Image processing apparatus, image processing method, and program

Publications (2)

Publication Number Publication Date
JP2011191899A JP2011191899A (en) 2011-09-29
JP5307060B2 true JP5307060B2 (en) 2013-10-02

Family

ID=44796769

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010056120A Active JP5307060B2 (en) 2010-03-12 2010-03-12 Image processing apparatus, image processing method, and program

Country Status (1)

Country Link
JP (1) JP5307060B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092346B (en) * 2013-01-14 2016-01-27 哈尔滨工业大学 A kind of Virtual force field based on scanning electron microscope is distant receives operating platform and realize the method for virtual dynamic sensing interexchanging
JP7060544B6 (en) 2019-04-26 2022-05-23 塁 佐藤 Exercise equipment
JP7353690B1 (en) * 2023-01-16 2023-10-02 株式会社スペースデータ Information processing device, method, program, and system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2924750B2 (en) * 1995-12-26 1999-07-26 日本電気株式会社 Three-dimensional shape modeling method and apparatus
US7071914B1 (en) * 2000-09-01 2006-07-04 Sony Computer Entertainment Inc. User input device and method for interaction with graphic images
JP3517639B2 (en) * 2000-09-27 2004-04-12 キヤノン株式会社 Mixed reality presentation apparatus and method, and storage medium

Also Published As

Publication number Publication date
JP2011191899A (en) 2011-09-29

Similar Documents

Publication Publication Date Title
TWI469813B (en) Tracking groups of users in motion capture system
TWI517881B (en) Determining location and movement of ball-attached controller
JP5739872B2 (en) Method and system for applying model tracking to motion capture
TWI470534B (en) Three dimensional user interface effects on a display by using properties of motion
US9495800B2 (en) Storage medium having stored thereon image processing program, image processing apparatus, image processing system, and image processing method
JP5256269B2 (en) Data generation apparatus, data generation apparatus control method, and program
US20170352188A1 (en) Support Based 3D Navigation
LaViola et al. 3D spatial interaction: applications for art, design, and science
WO2009119453A1 (en) Game device, game processing method, information recording medium, and program
JP5519591B2 (en) Information display device, information display method, and program
KR20120020137A (en) Systems and methods for applying animations or motions to a character
JP2008136694A (en) Program, information storage medium and game apparatus
KR101160851B1 (en) Image generating device, image generating method, and information recording medium
JP2011258158A (en) Program, information storage medium and image generation system
JP5580156B2 (en) GAME DEVICE, GAME CONTROL METHOD, AND PROGRAM
US20130005434A1 (en) Game device, control method for game device, and information recording medium
JP5307060B2 (en) Image processing apparatus, image processing method, and program
JP4267646B2 (en) Image generating apparatus, image generating method, and program
JP2011239937A (en) Game device, game processing method, and program
Cheok et al. Combined wireless hardware and real-time computer vision interface for tangible mixed reality
JP5124545B2 (en) GAME DEVICE, GAME PROCESSING METHOD, AND PROGRAM
JP2017086542A (en) Image change system, method, and program
JP4575937B2 (en) Image generating apparatus, image generating method, and program
JP5238764B2 (en) GAME DEVICE, GAME PROCESSING METHOD, AND PROGRAM
JP5499001B2 (en) Game device and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111017

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130430

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130618

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130626

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5307060

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250