JP6933727B2 - 画像処理装置、画像処理方法、およびプログラム - Google Patents
画像処理装置、画像処理方法、およびプログラム Download PDFInfo
- Publication number
- JP6933727B2 JP6933727B2 JP2019560037A JP2019560037A JP6933727B2 JP 6933727 B2 JP6933727 B2 JP 6933727B2 JP 2019560037 A JP2019560037 A JP 2019560037A JP 2019560037 A JP2019560037 A JP 2019560037A JP 6933727 B2 JP6933727 B2 JP 6933727B2
- Authority
- JP
- Japan
- Prior art keywords
- image
- depth
- virtual space
- unknown
- virtual
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/332—Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
- H04N13/344—Displays for viewing with the aid of special glasses or head-mounted displays [HMD] with head-mounted left-right displays
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/213—Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/65—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/012—Head tracking input arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/111—Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/128—Adjusting depth or disparity
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/57—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
- A63F13/577—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using determination of contact between game characters or objects, e.g. to avoid collision between virtual racing cars
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/21—Collision detection, intersection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N2013/0074—Stereoscopic image analysis
- H04N2013/0081—Depth or disparity estimation from stereoscopic image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N2013/0074—Stereoscopic image analysis
- H04N2013/0092—Image segmentation from stereoscopic image signals
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Description
この発明は、拡張現実の映像を生成する画像処理技術に関する。
ゲーム機に接続されたヘッドマウントディスプレイを頭部に装着して、ヘッドマウントディスプレイに表示された画面を見ながら、コントローラなどを操作してゲームプレイすることが行われている。ヘッドマウントディスプレイを装着すると、ヘッドマウントディスプレイに表示される映像以外はユーザは見ないため、映像世界への没入感が高まり、ゲームのエンタテインメント性を一層高める効果がある。また、ヘッドマウントディスプレイに仮想現実(VR(Virtual Reality))の映像を表示させ、ヘッドマウントディスプレイを装着したユーザが頭部を回転させると、360度見渡せる全周囲の仮想空間が表示されるようにすると、さらに映像への没入感が高まり、ゲームなどのアプリケーションの操作性も向上する。
また、非透過型ヘッドマウントディスプレイを装着したユーザは外界を直接見ることができなくなるが、ヘッドマウントディスプレイに搭載されたカメラによって外界の映像を撮影してディスプレイパネルに表示することのできるビデオ透過(ビデオシースルー)型ヘッドマウントディスプレイもある。ビデオ透過型ヘッドマウントディスプレイでは、カメラで撮影される外界の映像にコンピュータグラフィックス(CG(Computer Graphics))によって生成された仮想世界のオブジェクトを重畳させることで拡張現実(AR(Augmented Reality))の映像を生成して表示することもできる。拡張現実の映像は、現実世界から切り離された仮想現実とは違って、現実世界が仮想オブジェクトで拡張されたものであり、ユーザは現実世界とのつながりを意識しつつ、仮想世界を体験することができる。
現実空間に存在する物体を仮想対象物に置き換えた拡張現実の映像をヘッドマウントディスプレイに表示する場合、現実空間に後から動的な物体が進入すると、仮想空間内に表示されない。ユーザは突然現れた物体を視認できず、その物体に誤って触れるなどして違和感を感じることがある。
本発明はこうした課題に鑑みてなされたものであり、その目的は、動的な変化のある環境において違和感のない拡張現実の映像を提供することのできる画像処理技術を提供することにある。
上記課題を解決するために、本発明のある態様の画像処理装置は、ユーザの周囲の現実空間の画像の奥行き情報に基づいて、当該現実空間内の対象物の位置を検出し、当該検出した各対象物の位置に対応する仮想空間内の位置に、仮想的な物体を配して仮想空間の情報を構成する仮想空間構成部と、前記仮想空間構成部により構成された仮想空間の画像を生成する画像生成部と、前記現実空間の画像の奥行き情報と前記仮想空間の画像の奥行き情報を比較することにより未知奥行き領域を判定する奥行き比較部とを含む。前記画像生成部は、前記仮想空間の画像の前記未知奥行き領域に未知対象物の存在を示す情報を表示する。
本発明の別の態様は、画像処理方法である。この方法は、ユーザの周囲の現実空間の画像の奥行き情報に基づいて、当該現実空間内の対象物の位置を検出し、当該検出した各対象物の位置に対応する仮想空間内の位置に、仮想的な物体を配して仮想空間の情報を構成する仮想空間構成ステップと、前記仮想空間構成ステップにより構成された仮想空間の画像を生成する画像生成ステップと、前記現実空間の画像の奥行き情報と前記仮想空間の画像の奥行き情報を比較することにより未知奥行き領域を判定する奥行き比較ステップとを含む。前記画像生成ステップは、前記仮想空間の画像の前記未知奥行き領域に未知対象物の存在を示す情報を表示する。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、動的な変化のある環境において違和感のない拡張現実の映像を提供することができる。
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る画像処理装置10を含む画像処理システム1は、図1に例示するように、画像処理装置10と、操作デバイス20と、中継装置30と、表示装置40と、を含んで構成されている。
画像処理装置10は、表示装置40が表示すべき画像を供給する装置であって、例えば家庭用ゲーム機、携帯型ゲーム機、パーソナルコンピューター、スマートフォン、タブレット等である。図1に示されるように、この画像処理装置10は、制御部11と、記憶部12と、インタフェース部13と、を含んで構成される。
制御部11は、CPU等のプログラム制御デバイスであり、記憶部12に格納されているプログラムを実行する。本実施の形態では、この制御部11は、表示装置40を装着したユーザの周囲の現実空間の情報を取得し、当該取得した現実空間の情報に基づいて、現実空間内の対象物の位置を検出し、当該検出した各対象物の位置に対応する仮想空間内の位置に、仮想的な物体(仮想対象物と呼ぶ)を配して仮想空間の情報を構成する。
またこの制御部11は、当該構成した仮想空間において、別途設定したレンダリングカメラ(仮想空間のレンダリングを行う際に用いる仮想的なカメラ)の位置からの所定視野内の画像を生成し、当該生成した画像を表示装置40に出力する。ここでレンダリングカメラの位置は、ユーザの左目に対応するものと、右目に対応するものとの2つを設定し、それぞれの位置からの視野の仮想空間の画像(左目用画像と右目用画像と)を生成して、当該生成した一対の画像を立体視画像として表示装置40に出力してもよい。以下の例では立体視画像を生成する場合を例として説明する。
具体的に、本実施の形態の一例では、この制御部11は、ユーザの位置と、ユーザの後方とを含むユーザ周囲の所定サイズ(例えば幅(初期のユーザの視線方向に直交し、床面に平行な方向)10m、奥行(床面に平行な初期のユーザの視線方向)10m、高さ3mの直方体範囲)の現実空間(以下、対象空間と呼ぶ)に対応する仮想的な三次元空間(仮想空間)を設定する。そして制御部11は、現実空間の画像を参照しつつ、この仮想空間内に仮想対象物を配し、あるいは映像効果を適用する。
記憶部12は、RAM等のメモリデバイスを少なくとも一つ含み、制御部11が実行するプログラムを格納する。また、この記憶部12は制御部11のワークメモリとしても動作し、制御部11がプログラム実行の過程で使用するデータを格納する。このプログラムは、コンピュータ可読かつ非一時的な記録媒体に格納されて提供され、この記憶部12に格納されたものであってもよい。
インタフェース部13は、操作デバイス20や中継装置30との間で画像処理装置10の制御部11がデータ通信を行うためのインタフェースである。画像処理装置10は、インタフェース部13を介して有線又は無線のいずれかで操作デバイス20や中継装置30等と接続される。一例として、このインタフェース部13は、画像処理装置10が供給する画像(立体視画像)や音声を中継装置30に送信するために、HDMI(登録商標)(High-Definition Multimedia Interface)などのマルチメディアインタフェースを含んでよい。また、中継装置30経由で表示装置40から各種の情報を受信したり、制御信号等を送信したりするために、USB等のデータ通信インタフェースを含んでよい。さらにインタフェース部13は、操作デバイス20に対するユーザの操作入力の内容を示す信号を受信するために、USB等のデータ通信インタフェースを含んでよい。
操作デバイス20は、家庭用ゲーム機のコントローラ等であって、ユーザが画像処理装置10に対して各種の指示操作を行うために使用される。操作デバイス20に対するユーザの操作入力の内容は、有線又は無線のいずれかにより画像処理装置10に送信される。なお、操作デバイス20は必ずしも画像処理装置10と別体でなくてもよく、画像処理装置10の筐体表面に配置された操作ボタンやタッチパネル等を含んでもよい。本実施の形態の一例では、この操作デバイス20は、ゲームの一時停止を指示する「ポーズボタン」などを含む。
中継装置30は、有線又は無線のいずれかにより表示装置40と接続されており、画像処理装置10から供給される立体視画像のデータを受け付けて、受け付けたデータに応じた映像信号を表示装置40に対して出力する。このとき中継装置30は、必要に応じて、供給された立体視画像が表す映像に対して、表示装置40の光学系によって生じる歪みを補正する処理などを実行し、補正された映像を表す映像信号を出力してもよい。なお、中継装置30から表示装置40に供給される映像信号は、立体視画像に基づいて生成した左目用の映像信号と右目用の映像信号との二つの映像信号を含んでいる。また、中継装置30は、立体視画像や映像信号以外にも、音声データや制御信号など、画像処理装置10と表示装置40との間で送受信される各種の情報を中継する。
表示装置40は、ユーザが頭部に装着して使用する表示デバイスであって、中継装置30から入力される映像信号に応じた映像を表示し、ユーザに閲覧させる。本実施形態では、表示装置40はユーザの右目と左目とのそれぞれの目の前に、それぞれの目に対応した映像を表示するものとする。この表示装置40は、図1に示したように、映像表示素子41、光学素子42、カメラ43、センサ44、及び通信インタフェース45を含んで構成される。
映像表示素子41は、有機EL表示パネルや液晶表示パネルなどであって、中継装置30から供給される映像信号に応じた映像を表示する。この映像表示素子41は、左目用の映像と右目用の映像とを一列に並べて表示する1つの表示素子であってもよいし、左目用の映像と右目用の映像とをそれぞれ独立に表示する一対の表示素子を含んで構成されてもよい。また、スマートフォンの画面をそのまま映像表示素子41として用いてもよい。また表示装置40は、ユーザの網膜に直接映像を投影する網膜照射型(網膜投影型)の装置であってもよい。この場合、映像表示素子41は、光を発するレーザーとその光を走査するMEMS(Micro Electro Mechanical Systems)ミラーなどによって構成されてもよい。
光学素子42は、ホログラムやプリズム、ハーフミラーなどであって、ユーザの目の前に配置され、映像表示素子41が表示する映像の光を透過又は屈折させて、ユーザの目に入射させる。具体的に、この光学素子42は、左目用光学素子42Lと、右目用光学素子42Rとを含み、映像表示素子41が表示する左目用の映像は、左目用光学素子42Lを経由してユーザの左目に入射し、右目用の映像は右目用光学素子42Rを経由してユーザの右目に入射するようにしてもよい。これによりユーザは、表示装置40を頭部に装着した状態で、例えば画像処理装置10が生成した左目用画像に基づく左目用の映像を左目で、右目用画像に基づく右目用の映像を右目で、それぞれ見ることができるようになる。なお、本実施形態において表示装置40は、ユーザが外界の様子を視認することができない非透過型の表示装置である。
なお、ここでは画像処理装置10が生成する画像が立体視画像であるものとしているが、画像処理装置10が一つの画像情報のみを出力する場合、当該画像情報に基づき、中継装置30にて左目用映像と右目用映像を生成してもよい。この場合は、左目用映像と右目用映像とは同じものとなる。つまり、この場合、表示装置40は左右の光学素子42に同じ映像を表示することとなる。
カメラ43は、表示装置40の前面(ユーザの視線方向側)の中央よりやや左側と中央よりやや右側とにそれぞれ配した一対の撮像素子430L,430R(以下の説明で左右を区別する必要のないときには、撮像素子430としてまとめて称する)を含む。このカメラ43は、各撮像素子430で撮像したユーザの視線方向側の現実空間の画像を撮像し、当該撮像して得た画像データを、中継装置30を介して画像処理装置10に対して出力する。
センサ44は、一例として、表示装置40を装着したユーザの頭部の方向(ユーザの顔の前面方向)と位置とを検出する頭部方向センサ441を含んでもよい。
この頭部方向センサ441は、ユーザの頭部の方向(顔面の方向)を検出する。具体的にこの頭部方向センサ441は、ジャイロ等であり、表示装置40の装着時当初の方向からの床面に平行な面内での頭部方向の回転角度と、仰角方向の回転角度と、視野方向の軸まわりの回転角度を検出して出力する。またこの頭部方向センサ441は、表示装置40の所定の位置(例えばカメラ43の撮像素子430Lと撮像素子430Rとを結ぶ線分を二等分する点の位置)を基準位置として、この基準位置の、ユーザの左右方向(横断面と冠状面の交差する軸、以下X軸とする)、前後方向(矢状面と横断面の交差する軸、以下Y軸とする)、上下方向(Z軸とする)への装着時からの移動量(x,y,z)を検出して出力する。なお、ここでのXYZ座標系をユーザ座標系と呼ぶ。この基準位置を原点とした各撮像素子430の相対的座標は既知であるものとする。
通信インタフェース45は、中継装置30との間で映像信号や、画像データ等のデータの通信を行うためのインタフェースである。例えば表示装置40が中継装置30との間で無線LANやBluetooth(登録商標)などの無線通信によりデータの送受信を行う場合、通信インタフェース45は通信用のアンテナ、及び通信モジュールを含む。
次に、本発明の実施の形態に係る画像処理装置10の制御部11の動作について説明する。この制御部11は、記憶部12に格納されたプログラムを実行することにより、図2に例示するように、機能的に、画像処理部51と、アプリケーション実行部52とを含み、画像処理部51は、画像取得部21と、デプス比較部22と、仮想空間構成部23と、レンダリングカメラ設定部24と、画像生成部25と、出力部26と、未知デプス処理部27とを含んで構成される。この画像処理部51は、アプリケーション実行部52から入力される指示に従って動作し、指定された視野内の仮想空間の像をレンダリングして得た一対の画像データ(左目用の画像データと右目用の画像データ)を立体視画像として生成する。
画像処理装置10の制御部11の少なくとも一部の機能を表示装置40に実装してもよい。また、画像処理装置10の制御部11の少なくとも一部の機能をネットワークを介して接続されたクラウドサーバに実装してもよい。
画像取得部21は、表示装置40を装着したユーザの周囲の現実空間の情報を取得する。具体的にこの画像取得部21が取得する現実空間の情報は、表示装置40のカメラ43で撮像された画像データである。この例では、画像取得部21は、表示装置40から中継装置30を介して、カメラ43にて撮像した画像データを、現実空間の情報として受け入れる。本実施の形態の一例では、カメラ43で撮像した画像データは、左右に配した一対の撮像素子430で撮像された一対の画像データであり、各画像データの視差により撮像された現実空間内の対象物までの距離が判断できるものである。本実施の形態では、この画像取得部21は、カメラ43で撮像された画像データに基づいて、当該画像データ(以下区別のため撮像画像データと呼ぶ)と同じサイズ(同じ画素配列)の画像データであって、カメラ43で撮像された画像データの各画素に撮像された対象物までの距離を表す奥行き情報を、当該画素に対応する画素の値とした画像データ(いわゆるデプスマップ)を生成して出力する。
画像取得部21は、撮像画像のデプスマップをデプス比較部22と仮想空間構成部23に与える。
仮想空間構成部23は、画像取得部21が出力するデプスマップの情報に基づいて、まず、環境メッシュリスト情報と、物体バッファとを生成する。ここで環境メッシュリスト情報は、例えば次のように求められる。
すなわち仮想空間構成部23は、デプスマップと、撮像画像データとを用いて、撮像画像データに撮像されている現実空間内の対象物を、対象物ごと(机、壁、床、本棚などの対象物ごと)に検出するセグメンテーション処理を行い、また各対象物が占めるデプスマップ上の領域ごとに個別のラベル(オブジェクト識別子)を設定する。
仮想空間構成部23は、個別にラベルの付された領域内のデプスマップを参照して、当該領域内の対象物の外形状に沿ってメッシュ(ポリゴンメッシュ)を設定する。なお、ユーザが位置を変えたり、頭部を回転させて、カメラ43の視野が変化することで現実空間の対象物の形状が明らかになる場合がある(他の対象物によって隠蔽されていた部分が撮像されるなど)が、この場合は、当該対象物のメッシュを更新する。このようなメッシュの設定方法は例えば多視点の情報を用いるものなど、広く知られたものを採用できるので、ここでの詳しい説明を省略する。
仮想空間構成部23は、設定した各メッシュの頂点座標(画素の位置を表す情報)と、メッシュの識別情報と、メッシュ内の画素に対応して撮像画像データ内の画素に撮像されている対象物の法線の情報と、メッシュの種類情報(予め定めた種類のいずれであるかを表す情報)と、メッシュの表面形状に関する情報と、メッシュに対応する対象物のオブジェクト識別子とを含む環境メッシュリスト情報を生成する。なお、ここでメッシュの頂点座標は、ワールド座標系(現実空間中に設定され、床面内に互いに直交するξ軸,η軸をとり、鉛直方向をζ軸とする直交座標系)での値とすればよい。また、オブジェクト識別子はメッシュの識別情報に含まれていてもよい。
このワールド座標系での値は、例えば、カメラ43が撮影して得た現実空間内の画像データに基づくユーザ座標系(XYZ座標系)で取得されたメッシュの頂点座標等の値を、座標変換情報としてのモデルビュー行列を用いて変換して得る。
ここでメッシュの種類の情報は、メッシュ内の画素に対応する撮像画像データ内の画素に撮像された対象物の位置に基づいて生成される情報であり、床、天井、壁、障害物(床から所定の高さ以内にある壁以外の物体などとして予め定めておく)、その他のいずれであるかを表す。本実施の形態では、仮想空間構成部23は、対象物のワールド座標系(現実空間中に設定され、床面内に互いに直交するx軸,y軸をとり、鉛直方向をz軸とする直交座標系)で、z軸成分が最も小さく(もっとも低い位置にある)平面を床とする。また、z軸成分が最も大きい(もっとも高い位置にある)面を天井とする。さらに床に対して垂直な面であって、x軸またはy軸方向にもっとも遠い位置にある面を壁とする。その他の対象物は、障害物として分類する。
また、メッシュの表面形状に関する情報は、平面、凹凸のある面、球状の面、複雑な形状の面といった表面形状のいずれであるかを表す情報とする。この情報は、例えば対象物を表す各メッシュの法線の情報に基づいて定めることができる。
このように、デプスマップの情報等から、撮像画像データ内の対象物の種類や、表面形状等を認識する方法には、種々のものがあるが、どのような方法を採用するかはここでは問わない。
また物体バッファは、ユーザの位置と、ユーザの視野方向より後方とを含むユーザ周囲の所定サイズ(例えば幅(初期のユーザの視野方向に直交し、床面に平行な方向)10m、奥行(床面に平行な初期のユーザの視野方向)10m、高さ3mの直方体範囲)の現実空間(以下、対象空間と呼ぶ)を仮想的にボクセル(Voxel:仮想的な体積要素、例えば幅10cm,奥行10cm,高さ10cmの立方体要素)空間で表現したものであり、物体が存在するボクセルの値(ボクセル値)を「1」、存在しないボクセルの値を「0」、存在するか否かが不明なボクセルの値を「−1」と設定したものである(図4)。
図4では、図示の都合上、対象空間内の一部のボクセルのみを示し、またボクセルのサイズも説明のために適宜変更している。この対象空間に対するボクセルのサイズは、必ずしも実施時に適したものを示したものではない。また、図4では、対象空間の奥側隅に立方体状の物体Mが配され、その表面(ユーザが見えている面)に相当するボクセルの値を、物体が存在することを表す「1」に設定し、表面から隠された部分(ユーザが見えない部分)のボクセルの値を、不明であることを表す「−1」とし、物体表面までの間にあるボクセル(物体Mが存在しない部分に対応するボクセル)の値を、何もないことを表す「0」と設定する例を示している。
仮想空間構成部23は、デプスマップの情報に基づいてこのボクセル値を設定する。デプスマップ上の各画素は、デプスマップの元となった画像データの撮影時のカメラ43の位置座標(基準位置の座標でよい、以下撮影時位置と呼ぶ)を頂点とし、デプスマップの画角に相当する仮想的な四角錐の底面を、デプスマップの解像度(縦py画素×横px画素)で分割したものである。そこで撮影時位置の座標を起点として各画素の頂点を通る線分に平行なベクトル(ワールド座標系での座標の差)や、撮影時位置の座標を起点として各画素の中心を通る線分に平行なベクトル(ワールド座標系での座標の差)が、撮影時位置の座標と、デプスマップの画角を表す情報と、デプスマップの解像度とから、各画素の方向として演算できる。
そこで、仮想空間構成部23は、デプスマップ上の各画素について、撮影時位置の座標(基準位置の座標でよい)に対応する物体バッファ内の座標から当該画素の方向にあり、デプスマップが表す物体までの距離にあたるボクセルの値を「1」とし、当該ボクセルとは異なり、当該ボクセルからカメラ43までの線上にあるボクセルの値を「0」とする。また仮想空間構成部23は、カメラ43で撮像された画像データにおいて、現実空間内にある物体により隠され、撮像されていない部分(机や壁の裏、床に置かれた物の陰となっている部分)については、物体が存在するか否かが不明であるとして、対応する部分のボクセルの値を「−1」と設定する。
仮想空間構成部23は、ユーザが移動したり、頭部の向きを変えたりすることで、視点や視野方向が変更され、当該視点から当該視野方向に向いたカメラ43によって撮像された画像データに、過去に撮像されず、物体が存在するか否かが不明であったボクセルに対応する部分(値が「−1」であったボクセルに対応する部分)のデプスマップが得られたときには、当該部分のボクセルの値を、得られたデプスマップに基づいて「0」または「1」に設定して更新する。
なお、デプスマップ等の情報から、このような物体の存在する範囲を表す三次元空間内のボクセル値を設定する方法は、ここで述べた方法のほか、3Dスキャンの方法で広く知られた方法等、種々の方法を採用できる。
さらに仮想空間構成部23は、後に述べるレンダリングカメラ設定部24が対象空間内に設定した仮想的なレンダリングカメラの位置、及び視野に基づき、対象空間に対応するボクセル空間内に、当該仮想的なレンダリングカメラと同じ視野を設定したときの、当該視野内にあるボクセルの二次元投影像を生成する。
つまり、このボクセルの二次元投影像は、レンダリング処理と同様、仮想的なレンダリングカメラの位置からレンダリングカメラの視野方向に予め定めた距離だけ離れた位置に、当該視野方向に直交し、設定された画角に対応するサイズを有する仮想的なスクリーンを配し、このスクリーン上に、画像生成部25が生成する立体視画像に含まれる画像データと同じサイズの画素配列を設定して、当該画素配列中の各画素を、次のように設定したものである。
すなわち、仮想空間構成部23は、この画素配列中の各画素を順次選択し、仮想的なレンダリングカメラの位置から選択した画素の位置への線を延長した先にあるボクセルであって、最初にある(延長線が最初に出会う)「0」以外の値のボクセルの値を、選択した画素の画素値とする。ここで、「0」以外の値のボクセルがなければ、選択した画素の画素値を「0」とする。
これにより、例えば図5に示すような二次元投影像が得られることとなる。仮想空間構成部23は、この二次元投影像をアプリケーション実行部52に出力する。
また、仮想空間構成部23は、後に説明するアプリケーション実行部52から入力される指示に従い、上記検出した現実空間内の対象物の位置(対象物に対応するメッシュの範囲)に対応する仮想空間内の位置に、仮想対象物を配した仮想空間の情報を生成することで、仮想空間を構成する。このように仮想空間内に、三次元モデルデータで表される仮想対象物を配する処理は、三次元グラフィックスを作成する際の処理において広く知られているので、ここでの詳しい説明を省略する。
具体的な例として、この仮想空間構成部23は、アプリケーション実行部52から背景画像である背景画像データと、現実空間内の対象物を特定する情報(オブジェクト識別子)と、当該情報で特定される対象物の位置に対応する仮想空間内の位置に配されるべき物体の三次元モデルデータ及び当該物体の表面に適用するべきテクスチャ(マテリアル)のデータ等との入力を受け入れる。
そして仮想空間構成部23は、入力されたオブジェクト識別子ごとに、当該オブジェクト識別子が表す対象物の外形を表すメッシュに外接する範囲に、オブジェクト識別子とともに入力された三次元モデルデータで表される仮想対象物を配置し、オブジェクト識別子とともに入力されたマテリアルの情報に対応するテクスチャ(予め設定しておく)を設定して、仮想空間を規定する情報を生成する。
レンダリングカメラ設定部24は、レンダリングを行う際の仮想的なレンダリングカメラの位置、視野方向(レンダリングカメラの向き)、及び、画角を設定する。本実施の形態では、このレンダリングカメラ設定部24は、例えばカメラ43に含まれる撮像素子430の位置によらず、予め定められた(例えばプログラムにハードコードされていてもよいし、設定ファイルに記述されたものを読取ったものであってもよい)レンダリングカメラの位置と、視野の方向を表す情報(例えばレンダリングカメラの位置を起点とし、視野の中心を通るベクトル情報)を得て、これらを視野の情報とする。
またこのレンダリングカメラ設定部24は、別の例として、ユーザの動きに伴って時間変化する現実空間内の基準位置からの相対座標として仮想空間内のレンダリングカメラの位置を得てもよい。一つの例として、先に述べた基準位置から予め定めた相対座標値だけ移動した位置に対応する仮想空間内の位置を、レンダリングカメラの位置としてもよい。
ここで相対座標は、例えば基準位置から撮像素子430Rまたは430Lの位置までの相対座標であってもよい。また相対座標は、基準位置から表示装置40を装着したユーザの右目(または左目)があるべき位置までの相対座標であってもよい。この場合、ユーザの右目(または左目)の位置に対応する仮想空間内の位置がレンダリングカメラの位置となる。
具体的に、このレンダリングカメラ設定部24は、表示装置40を装着したユーザの頭部の位置(基準位置)及び頭部の向きを表す情報を、表示装置40が備える頭部方向センサ441から取得する。すなわち、レンダリングカメラ設定部24は、図3に例示するような、表示装置40の装着時当初の方向からの床面に平行な面内での頭部方向の回転角度θと、仰角方向の回転角度φと、視野方向の軸まわりの回転角度ψと、頭部の移動量(x,y,z)を取得する。
レンダリングカメラ設定部24は、頭部の移動量の情報から、基準位置に対応する仮想空間内の座標を得る。現実空間のワールド座標と、仮想空間の座標とを一致させておき、現実空間の座標値をそのまま仮想空間の座標値として用いてもよい。レンダリングカメラ設定部24は、基準位置からユーザの右目の位置までの相対座標(予め設定しておく)を基準位置の座標値に加算して右目に対応するレンダリングカメラの位置を決定し、ユーザの頭部の向きをその視野方向とする。
また、レンダリングカメラ設定部24は、基準位置からユーザの左目の位置までの相対座標(予め設定しておく)を基準位置の座標値に加算して左目に対応するレンダリングカメラの位置を決定し、ユーザの頭部の向きをその視野方向とする。なお、画角は予め定めておく。
画像生成部25は、レンダリングカメラ設定部24が設定した左目と右目とのそれぞれに対応するレンダリングカメラの位置及び視野方向、画角の情報を用い、仮想空間構成部23が生成した、仮想空間を規定する情報を参照して仮想空間内に配された仮想対象物の立体視画像(左目及び右目のそれぞれの画像データ)をレンダリングする。
画像生成部25は、仮想対象物の立体視画像のデプスマップをデプス比較部22に与える。
デプス比較部22は、撮像画像のデプスマップと仮想対象物の立体視画像のデプスマップを比較し、画素毎にデプス値の差分を求める。即ち、デプス比較部22は、現実空間の画像の奥行き情報と仮想空間の画像の奥行き情報を比較することにより未知奥行き領域を判定する奥行き比較部を構成している。デプス比較部22は、各画素のデプス値の差分の絶対値が所定の閾値を超える場合、当該画素を未知デプス画素としてマークする。所定の閾値は、対象空間の大きさに合わせてたとえば1cmなどに設定する。デプス比較部22は、未知デプス画素としてマーク付けされた画素が一定の領域を形成する場合、その領域を未知デプス領域と判定する。デプス比較部22は、未知デプス領域を未知デプス処理部27に通知する。
現実空間に存在する静的な物体を仮想対象物に置き換えて表示する場合、現実空間の撮像画像のデプスと、レンダリングされた仮想空間の画像のデプスはほぼ一致するため、デプス値の差分の絶対値が所定の閾値を越える未知デプス領域は存在しない。所定の閾値を設けてデプス値の差分を評価するのは、現実の物体を仮想対象物に置き換える場合、デプス値が完全に一致せず、画素位置によってデプス値が多少前後するため、閾値を設けてデプス値を比較しないとノイズが発生するからである。しかしながら、現実空間に後から動的な物体が進入してきた場合、動的な物体を置き換える仮想対象物がないため、動的な物体が実写された領域では撮像画像のデプスと仮想空間の画像のデプスの間に所定の閾値を超える大きな違いが生じ、未知デプス領域ができる。
未知デプス処理部27は、未知デプス領域については未知対象物の存在を示す情報を表示するように画像生成部25に指示する。未知対象物の存在を示す情報として実写された未知対象物の画像を利用する場合は、未知デプス処理部27は、画像取得部21から撮像画像の未知デプス領域に実写された未知対象物の画像データを取得し、未知対象物の画像データを画像生成部25に提供する。
画像生成部25は、未知デプス領域が存在する場合、未知対象物の存在を示す情報を仮想空間の画像に表示する。実写された未知対象物の画像を未知対象物の存在を示す情報として利用する場合、画像生成部25は、未知デプス処理部27から与えられた未知対象物の画像をそのまま仮想空間の画像の未知デプス領域に重畳する。実写された未知対象物の代わりに代替仮想対象物を利用する場合、画像生成部25は、代替仮想対象物を仮想空間内にレンダリングして仮想空間の画像の未知デプス領域に重畳する。
画像生成部25は、未知対象物の存在を示す情報として、実写された未知対象物の画像や代替仮想対象物の画像を未知デプス領域に重畳する代わりに、未知デプス領域に映像効果を加えて表示してもよい。映像効果として、もやもやした煙などを表示させたり、光を点滅させたり、注意・警戒を表す画像を表示させてもよい。画像生成部25は、実写された未知対象物の画像や代替仮想対象物の画像を未知デプス領域に重畳した上で、未知デプス領域に映像効果を加えてもよい。ユーザの注意・警戒をさらに喚起することができる。
画像生成部25は、レンダリングして得られた一対の画像データを、立体視画像として出力部26に出力する。このレンダリングの方法は広く知られているので、ここでの詳しい説明を省略する。
出力部26は、画像生成部25から入力される立体視画像を、中継装置30を介して表示装置40へ出力する。
アプリケーション実行部52は、例えばゲームのプログラムを実行する。本実施の形態の例においてこのアプリケーション実行部52は、画像処理部51からボクセルの二次元投影像の情報の入力と、環境メッシュリスト情報との入力を受け入れる。
またアプリケーション実行部52は、ゲームの処理に従って、仮想空間に配置する仮想対象物の三次元モデルデータを決定する。具体的な例として、この決定の方法は次のようなものである。すなわち、ボクセルの値が「1」であって、対応する部分のメッシュについて、
(1)メッシュの種類が「天井」であれば、背景を合成する。
(2)メッシュの種類が障害物で、かつメッシュ表面形状が平面である物体は「操作パネル」とする。
(3)メッシュの種類が障害物で、かつメッシュ表面形状が凹凸のある面である物体は、「岩」または「箱」とする。
(4)メッシュの種類が障害物で、かつメッシュ表面形状が球状の物体は、「ライト」とする。
(5)メッシュの種類が障害物で、かつメッシュ表面形状が複雑な形状の物体は、「樹木,草木」とする。
(1)メッシュの種類が「天井」であれば、背景を合成する。
(2)メッシュの種類が障害物で、かつメッシュ表面形状が平面である物体は「操作パネル」とする。
(3)メッシュの種類が障害物で、かつメッシュ表面形状が凹凸のある面である物体は、「岩」または「箱」とする。
(4)メッシュの種類が障害物で、かつメッシュ表面形状が球状の物体は、「ライト」とする。
(5)メッシュの種類が障害物で、かつメッシュ表面形状が複雑な形状の物体は、「樹木,草木」とする。
この例に基づくアプリケーション実行部52の動作を、図6を参照して説明する。図5に例示するように、アプリケーション実行部52は、入力された環境メッシュリスト情報を参照し、これまでに未選択のオブジェクト識別子を一つ選択する(S11)。
アプリケーション実行部52は、選択したオブジェクト識別子のメッシュの種類の情報を参照し(S12)、メッシュの種類が「床」であれば、選択したオブジェクト識別子に、マテリアルを地面とする設定を関連付けて(S13)、未選択のオブジェクト識別子があるか否かを判断し(S14)、未選択のオブジェクト識別子があれば、処理S11に戻って処理を続ける。
また、処理S12においてメッシュの種類が「天井」であれば、アプリケーション実行部52は、マテリアルを「透過」とする設定を関連付けて(S15、従って当該部分は背景画像が表示されることとなる)、処理S14に移行する。
また処理S12において、メッシュの種類が「壁」であれば、アプリケーション実行部52は、マテリアルを「岩」とし、物体の三次元モデルデータとして「岩」のデータを用いるべき旨の設定を関連付けて(S16)、処理S14に移行する。さらに処理S12においてメッシュの種類が「障害物」である場合は、アプリケーション実行部52は、メッシュの表面形状の情報を参照し(S17)、表面形状が「平面」であれば、マテリアルを「操作パネル」とし、物体の三次元モデルデータとして「操作パネル」を用いるべき旨の設定を、選択されたオブジェクト識別子に関連付けて(S18)、処理S14に移行する。
また処理S17において、表面形状が「凹凸のある面」である場合は、アプリケーション実行部52は、マテリアルを「岩」とし、物体の三次元モデルデータとして「岩」のデータを用いるべき旨の設定を関連付けて(S19)、処理S14に移行する。処理S17において、表面形状が「球状」である場合は、アプリケーション実行部52は、マテリアルを「ライト」とする設定を関連付けて(S20)、処理S14に移行する。
さらに処理S17において、表面形状が「複雑な形状」である場合は、アプリケーション実行部52は、マテリアルを「草木」とし、物体の三次元モデルデータとして「草木」を用いるべき旨の設定を関連付けて(S21)、処理S14に移行する。
処理S14において、未選択のオブジェクト識別子がない場合は、アプリケーション実行部52は処理を終了する。
この結果、得られたオブジェクト識別子ごとの三次元モデルデータとマテリアルの設定に基づき仮想空間構成部23が仮想空間を構成する。
なお、ここでの処理は一例であって、ゲームの内容によっては、現実空間を撮像した画像に基づいて、現実空間内の物体について、当該物体と同じ形状、かつ同じ表面テクスチャを有する仮想対象物を、現実空間内の当該物体の位置に対応する仮想空間内の位置に配してもよい。この例では、ゲーム内でユーザの所在する現実空間の画像が仮想空間として再構成され、当該三次元空間内に配した、ユーザの目に対応する一対の仮想的なカメラ(ユーザの左右の目の位置にそれぞれ配され、ユーザの視野の方向を向いているカメラ)の視野内の画像がそれぞれレンダリングされて表示装置40にて表示されることとなる。
アプリケーション実行部52は、また、入力されたボクセルの二次元投影像を参照して、当該投影像中で「−1」となっている領域、つまり、現実空間内のうち対象物の検出を行っていない位置に対応する仮想空間内の位置に、予め定めた種類の視覚効果を与える仮想対象物を配してもよい。具体的にアプリケーション実行部52は、ボクセルの二次元投影像中で「−1」となっている領域を特定する情報(領域内の画素を特定する情報でよい)とともに、ゲームの処理として指定された映像効果または画像を表示する指示を、画像処理部51に出力してもよい。
ここで映像効果は、例えば煙のような映像を表示させるものや、光を点滅させているかのような映像効果などがある。また、表示する画像としては「?」のような画像であってもよいし、または注意・警戒を表す画像であってもよい。
画像処理部51は、この指示を受けたときには、当該指示された範囲の画素に、指示された映像効果を合成し、あるいは指示された画像を合成して出力する。
[動作]
本発明の実施の形態の画像処理装置10は以上の構成を基本的に備えており、次のように動作する。ユーザが表示装置40を頭部に装着すると、画像処理装置10は、図7に例示する処理を開始し、ワールド座標系を設定する。
本発明の実施の形態の画像処理装置10は以上の構成を基本的に備えており、次のように動作する。ユーザが表示装置40を頭部に装着すると、画像処理装置10は、図7に例示する処理を開始し、ワールド座標系を設定する。
そして表示装置40の所定位置(例えばカメラ43の各撮像素子430の重心位置)を原点として、ユーザの初期の視線方向より後方を含むユーザ周囲のX軸方向に±5m(合計10m)、Y軸方向に±5m(合計10m)、Z軸方向に床から高さ3mの直方体範囲の現実空間を対象空間として設定する(S31)。
そしてこの対象空間を、仮想的にボクセル(Voxel:仮想的な体積要素、例えば幅10cm,奥行10cm,高さ10cmの立方体要素)空間で表現した物体バッファ(当初はすべてのボクセルの値を「−1」と設定する)を設定して、記憶部12に格納する(S32)。
表示装置40は、所定のタイミングごと(例えば1/1000秒ごと)に繰り返してカメラ43よって画像を撮像し、撮像して得た撮像画像データを画像処理装置10へ送出している。画像処理装置10は表示装置40から中継装置30を介して、撮像画像データを受け入れる。そして画像処理装置10は、この撮像画像データに基づいて、当該画像データから得られるデプスマップを生成する。
画像処理装置10は、生成したデプスマップを用いて、現実空間内の対象物(天井、床、壁、家具類など)を検出する(S33)。また画像処理装置10は、検出した対象物の形状を表すメッシュ(ポリゴンメッシュ)の種類や表面形状を判断し、生成したメッシュの位置を表す情報(メッシュの頂点の座標でよい)と、メッシュの種類の情報と、表面形状の情報とを関連付けて、環境メッシュリスト情報として記憶部12に格納する(S34:環境メッシュリスト情報生成)。
画像処理装置10は、センサ44によりユーザの頭部の移動や頭部の向きを検出し、当該検出した頭部の移動や向きの情報に基づいてレンダリングカメラの位置と視野とを設定する(S35)。
画像処理装置10はさらに、デプスマップ内の各画素を順次選択しつつ、センサ44により検出されたユーザの頭部の移動に基づき、基準位置のワールド座標系中の位置座標を得る。そして、当該取得した位置座標に対応する物体バッファ中の座標からデプスマップの選択した画素が表す物体までの距離にあたるボクセルの値を「1」とし、当該ボクセルとは異なり、当該ボクセルからカメラ43までの線上にあるボクセルの値を「0」とする。ここで、カメラ43で撮像された画像データにおいて、現実空間内にある物体により隠され、撮像されていない部分については、物体が存在するか否かが不明であるとして、対応する部分のボクセルの値が「−1」のままとなる。
なお、画像処理装置10は、ユーザが移動したり、頭部の向きを変えたりすることで、カメラ43によって撮像された画像データに、過去に撮像されず、物体が存在するか否かが不明であったボクセルに対応する部分(値が「−1」であったボクセルに対応する部分)のデプスマップが得られたときには、処理S11において当該部分のボクセルの値を、得られたデプスマップに基づいて「0」または「1」に設定して更新する。
画像処理装置10は、レンダリングカメラの位置座標から、物体バッファ中でカメラ43の視野方向にあるボクセルを二次元投影した投影像を生成する(図5)。
画像処理装置10は、また、ゲームの処理として、環境メッシュリスト情報や、ボクセルの二次元投影像の情報を参照して次の処理を行う。
すなわち、画像処理装置10は、環境メッシュリスト情報を参照して、検出されている対象物ごとに、そのメッシュの種類や表面形状の情報に基づき、対象物の存在する現実空間に対応する仮想空間内の領域に、対応させる仮想対象物を配して、仮想空間を構成する(S41)。なお、仮想空間の構成に用いる背景画像や、仮想対象物の三次元モデルデータ等は、ゲームのデータとしてゲームの提供者により用意されているものを用いればよい。
一例として、平坦な床面上に机と、本棚と、テレビ台、テレビなどが置かれ、四方を壁に囲まれている室内に表示装置40を装着したユーザが所在している場合、机の天板が、表面形状が平面である障害物のメッシュと判断される。そこで画像処理装置10は、この天板のある位置に、例えば「操作パネル」の仮想対象物を配する設定を行う。また、壁については、壁の表面の位置に、「岩」として視認される仮想対象物の表面が位置するよう、仮想的な岩を配する、といった設定を行う。また天井に相当する範囲については、透明なマテリアルであるとして、背景画像を合成するよう設定して、あたかも天井がないかのような仮想空間を構成する。
そして画像処理装置10は、ここで構成した仮想空間を、処理S35で設定したレンダリングカメラの位置から、設定された視野の範囲を見たときの仮想的な立体視画像を、レンダリング処理により作成する(S42)。またこのとき、物体バッファのボクセルを二次元投影した投影像に基づき、物体の有無が不明である部分について所定の映像効果(煙を立てるなど)を設定してもよい。
画像処理装置10は、撮像画像のデプスマップと仮想的な立体視画像のデプスマップを比較し、画素毎にデプス値の差分を求める(S43)。
画像処理装置10は、画素のデプス値の差分の絶対値が所定の閾値を超える領域を未知デプス領域と判定し、未知デプス領域に未知対象物をレンダリングする(S44)。未知対象物は、実写された対象物の画像または代替仮想対象物である。画像処理装置10は、未知デプス領域に映像効果を加えたり、注意・警告を促す情報を表示してもよい。
画像処理装置10は、こうして生成した立体視画像のデータを、表示装置40へ送出して、立体視画像を表示させる(S45)。
以下、ユーザが移動したり、頭部を動かしてカメラ43の位置や視野方向が変化すると、新たに撮像画像データに撮像された画像に基づいて、ボクセル空間の情報や環境メッシュリスト情報が更新される。またユーザの頭部の位置及び方向によりレンダリングカメラの位置及び視野を設定している場合は、レンダリングカメラの位置及び視野も更新される。そして画像処理装置10は、この更新された情報を参照してレンダリングの処理を行って、立体視画像のデータを更新して表示させる。
また画像処理装置10は、ゲームの処理として、ユーザが机の天板に対応する仮想的な空間内の位置にある仮想的な操作パネルに触れると、操作パネルに対する操作を受け入れる処理を実行する。このときユーザは、仮想空間内で操作パネルの位置に手を伸ばせば、現実空間における机の天板に触れることとなるので、触覚的なフィードバックも得ることができる。またユーザが、机の天板がある範囲まで移動しようとすることがなくなる(操作パネルが表示されているため、操作パネルを押しのけるような移動をしなくなる)など、周囲に存在する障害物の位置をゲーム上の処理において自然に感得させることが可能となる。
図8〜図11を参照して、画像処理装置10によってレンダリングされる立体視画像を説明する。ここでは説明の簡単のため、片目(左目または右目)の画像データを例示する。
図8は、画像取得部21により取得される撮像画像データを説明する図である。白い机の上に箱110が置かれており、壁にはホワイトボード120が掛けられている。
図9は、画像生成部25により生成される仮想空間内の仮想対象物の立体視画像を説明する図である。机300の表面には木目調のテクスチャが貼り付けられ、天井や壁にもテクスチャや仮想的な凹凸が形成される。図8の机の上に存在していた箱110は、図9では仮想的な入れ物140に置換されて同じ位置に配置される。図8の壁に掛けられていたホワイトボード120は、図9では仮想的な掲示板150に置換されて同じ位置に配置される。
現実空間を空間スキャンして、床、壁、天井、机などの静的な物体を認識して仮想対象物に置き換えた後、動的な物体が現実空間に進入してきた場合、後から進入した動的な物体は仮想対象物に置き換えられないため、突然現れた動的な物体はそのままでは仮想空間内に表示されない。そこで動的な物体を仮想空間に表示するために、撮像画像と仮想空間の画像の間でデプスを比較して前後関係を判定して仮想対象物よりも手前にある撮像画像中の物体を仮想空間内に重畳する。
現実空間に存在する静的な物体を仮想対象物に置き換えて表示する場合、撮像画像のデプスと仮想対象物の立体視画像のデプスはほぼ一致するが、画素毎に見た場合、撮像画像の物体の方が前に位置したり、仮想対象物の方が前に位置することがあり、画素毎にデプス値が競合する。そのため、撮像画像のデプス値をそのまま仮想対象物のデプス値と比較して奥行き判断に利用すると、前後関係が正しく表示されない。そこで、デプス比較部22がデプス値の差分の絶対値が所定の閾値を越えた場合に、未知デプス領域であると判定するようにしたことで、画像生成部25は、ノイズを発生させることなく、撮像画像から仮想対象物よりも手前にある動的な物体を抽出して仮想空間に表示することができる。
図9の仮想的な入れ物140のデプスは、図8の現実の箱110のデプスとほぼ同じであり、図9の仮想的な掲示板150のデプスは、図8の現実のホワイトボード120のデプスとほぼ同じである。デプス比較部22が現実空間内の対象物のデプス値と仮想対象物のデプス値の差分を計算すると、差分の絶対値は所定の閾値内に収まる。したがって、これらの仮想対象物がレンダリングされる領域については未知デプス領域になることはない。
他方、画像取得部21が取得した撮像画像には写っていなかった動的な物体が後から現実空間内に進入してきた場合、そのような動的な物体を置換する代替仮想対象物はあらかじめ決められていない。そのため、動的な物体が実写された領域については、デプス比較部22が撮像画像のデプスと仮想画像のデプスの差分を計算すると所定の閾値を越えるので、未知デプス領域となる。
このように現実空間に後から進入してくる物体の撮像領域は未知デプス領域になるが、未知デプス領域に何も表示しないことにすると、ユーザは動的な物体の進入に気づかず、動的な物体にぶつかるなど予期しないことが発生しうる。たとえば、屋内で表示装置を装着して使用する場合、犬や人が進入してくる場合がある。屋外で表示装置を装着して使用する場合、ボールが突然飛んでくることがある。このような場合、何らかの形で仮想空間内に動的な物体の存在を表示し、仮想空間内に突然出現した物体をユーザに視認させることで、ユーザに危険を回避する行動などを取らせることができる。
図10は、現実空間に動的な物体が進入した場合に画像生成部25により生成される仮想空間内の仮想対象物の立体視画像を説明する図である。ここでは動的な物体としてボール160が現実空間に後から進入してきた場合を説明する。ボール160が実写された領域では撮像画像のデプス値と仮想画像のデプス値の差分の絶対値が所定の閾値を越えるため、ボール160が実写された領域は未知デプス領域と判定される。ここでは未知デプス処理部27は、実写されたボール160の画像を未知デプス領域に表示するように画像生成部25に指示する。画像生成部25は、レンダリングされた仮想空間の画像にボール160の画像を重畳する。ボール160の実写画像を用いずに、代替仮想対象物を未知デプス領域にレンダリングしてもよい。たとえば、現実空間に犬が進入してきた場合、仮想的な犬や別のキャラクタを未知デプス領域にレンダリングしてもよい。
図11は、現実空間にユーザの身体が進入した場合に画像生成部25により生成される仮想空間内の仮想対象物の立体視画像を説明する図である。ここではユーザが手を伸ばして仮想的な入れ物140を取ろうとする場合を説明する。現実空間に後から進入するユーザの手170についてはあらかじめ置換する仮想対象物が決められていないため、ユーザの手170が撮像される領域では、撮像画像のデプス値と仮想画像のデプス値の差分の絶対値が所定の閾値を超え、手170が実写された領域は未知デプス領域と判定される。ここでは、実写された手170の画像が未知デプス領域に重畳されている。実写された手170の画像の代わりに代替仮想対象物として、たとえばロボットの手を未知デプス領域にレンダリングしてもよい。
未知デプス領域において、未知対象物が現実空間内の対象物(または対応する仮想対象物)と衝突するかどうかを判定し、衝突することが判定された場合、何らかのインタラクションを発生させたり、ゲームのインタフェースとして利用してもよい。以下、未知デプス領域におけるインタラクションについて詳しく説明する。
撮像画像から連続した未知デプス領域を切り出し、未知対象物が占める空間を立方体や球体などで近似したコリジョン領域を生成する。未知対象物のコリジョン領域をカメラ空間からワールド空間に変換し、未知対象物のコリジョン領域が、現実空間内の対象物や対応する仮想対象物、ユーザの身体、その他の仮想オブジェクトが占める領域と接触するかどうかをデプス値を比較することで判定する。これにより、未知対象物が、現実空間内の対象物や対応する仮想対象物、ユーザの身体、その他の仮想オブジェクトと衝突するかどうかを判定することができる。この衝突判定はデプス比較部22で行われる。
未知対象物が、現実空間内の対象物や対応する仮想対象物、ユーザの身体、その他の仮想オブジェクトと衝突すると判定された場合、衝突した対象に応じてインタラクションを発生させる。衝突インタラクションの生成は未知デプス処理部27の指示により、画像生成部25で行われる。衝突インタラクションは以下のような例がある。
(1)未知対象物が現実空間の壁に衝突した場合(現実空間の壁は仮想空間の壁に置換されていることに留意する)
・仮想空間の壁の材質に合わせた効果音を鳴らす。
・衝突した場所に衝突を表現するエフェクトを表示する。
・仮想空間の壁に傷をつけたり、穴を空けて見せる。
・現実空間の壁の一部を的にした的当てをシミュレーションして、ブロック崩しのような映像効果を拡張現実の映像内に表示する。
・仮想空間の壁の材質に合わせた効果音を鳴らす。
・衝突した場所に衝突を表現するエフェクトを表示する。
・仮想空間の壁に傷をつけたり、穴を空けて見せる。
・現実空間の壁の一部を的にした的当てをシミュレーションして、ブロック崩しのような映像効果を拡張現実の映像内に表示する。
(2)未知対象物がユーザーの身体に衝突した場合
・効果音を鳴らしたり、衝突した身体部位の映像にエフェクトを重畳する。衝突した身体部位によって効果音やエフェクトのパターンを変えてもよい。
・未知対象物がユーザの身体に接触している間、未知対象物に対応する代替仮想対象物の色や見た目を変える。未知対象物に最後に接触したユーザによって色や見た目を変えてもよい。
・ユーザが未知対象物を持っている間は未知対象物に対応する代替仮想対象物にエネルギーが溜まり、たとえば形状や大きさ、色などが変化する。
・効果音を鳴らしたり、衝突した身体部位の映像にエフェクトを重畳する。衝突した身体部位によって効果音やエフェクトのパターンを変えてもよい。
・未知対象物がユーザの身体に接触している間、未知対象物に対応する代替仮想対象物の色や見た目を変える。未知対象物に最後に接触したユーザによって色や見た目を変えてもよい。
・ユーザが未知対象物を持っている間は未知対象物に対応する代替仮想対象物にエネルギーが溜まり、たとえば形状や大きさ、色などが変化する。
(3)未知対象物が他の仮想オブジェクトにぶつかった場合
・衝突の物理現象を反映させて仮想オブジェクトの位置を変化させる。
・仮想オブジェクト(たとえば敵キャラクタ)にダメージを与えたり、エフェクトを重畳して仮想オブジェクトを消す。
・仮想オブジェクト(たとえば敵キャラクタ)からの攻撃を防ぐ。
・空中に浮かぶアイテムを集める。
・モンスターを未知対象物に対応する代替仮想対象物(たとえばボール)に閉じ込める。
・衝突の物理現象を反映させて仮想オブジェクトの位置を変化させる。
・仮想オブジェクト(たとえば敵キャラクタ)にダメージを与えたり、エフェクトを重畳して仮想オブジェクトを消す。
・仮想オブジェクト(たとえば敵キャラクタ)からの攻撃を防ぐ。
・空中に浮かぶアイテムを集める。
・モンスターを未知対象物に対応する代替仮想対象物(たとえばボール)に閉じ込める。
また、撮像画像から切り出された未知デプス領域をフレーム間で差分を取ると、フレーム間で移動していく未知デプス領域が同一対象物のものであるかどうかを判定することができる。未知デプス領域のフレーム間差分が大きい場合、同一の未知対象物が移動したのではなく、新たな未知対象物が発生したと考えられる。また、未知デプス領域のフレーム間差分から未知対象物の移動速度を推定することができ、衝突判定の先読みが可能になる。
切り出された未知デプス領域に重なる撮像画像の特徴点の変化により、未知対象物のフレーム間の姿勢差分(速度と角速度)を推定することもできる。カメラがヘッドマウントディスプレイにある場合、ヘッドマウントディスプレイの姿勢を考慮して未知対象物のフレーム間の姿勢差分を推定することになる。
なお、未知対象物がカメラの画角から外れた場合は、最後に未知対象物を観測した時点の速度情報を使って、しばらくの間、未知対象物の動きやコリジョンを予測することができる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
上記の説明では、ビデオ透過(ビデオシースルー)型の表示装置を例に説明したが、表示部をハーフミラー等で構成し、ユーザに眼前の現実空間を視認させる光学透過(オプティカルシースルー)型の表示装置の場合にも本実施の形態を適用することができる。光学透過型の表示装置の場合、現実空間の奥行き情報を仮想空間の画像の奥行き情報と比較して、仮想対象物よりも手前に現実空間の物体が存在する領域については、仮想空間の画像を削除し現実空間を透過して視認させる。この奥行き情報の比較に本実施の形態のデプス比較部22で説明したデプス値の差分の絶対値を所定の閾値と比較する方法を利用することで未知デプス領域を判定し、未知デプス領域について仮想空間の画像を表示せずに透過させることで、仮想対象物よりも手前に突然進入した現実空間内の動的な物体についてはユーザは透過して見ることができる。
10 画像処理装置、 11 制御部、 12 記憶部、 13 インタフェース部、 20 操作デバイス、 21 画像取得部、 22 デプス比較部、 23 仮想空間構成部、 24 レンダリングカメラ設定部、 25 画像生成部、 26 出力部、 27 未知デプス処理部、 30 中継装置、 40 表示装置、 41 映像表示素子、 42 光学素子、 43 カメラ、 44 センサ、 45 通信インタフェース、 51 画像処理部、 52 アプリケーション実行部、 430 撮像素子、 441 頭部方向センサ。
この発明は、画像処理技術に利用できる。
Claims (8)
- ユーザの周囲の現実空間の画像の奥行き情報に基づいて、当該現実空間内の対象物の位置を検出し、当該検出した各対象物の位置に対応する仮想空間内の位置に、仮想的な物体を配して仮想空間の情報を構成する仮想空間構成部と、
前記仮想空間構成部により構成された仮想空間の画像を生成する画像生成部と、
前記現実空間の画像の奥行き情報と前記仮想空間の画像の奥行き情報を比較することにより未知奥行き領域を判定する奥行き比較部とを含み、
前記画像生成部は、前記仮想空間の画像の前記未知奥行き領域に未知対象物の存在を示す情報を表示することを特徴とする画像処理装置。 - 前記奥行き比較部は、画素単位で前記現実空間の画像の奥行き値と前記仮想空間の画像の奥行き値の差分を計算し、前記差分の絶対値が所定の閾値を越える画素の領域を未知奥行き領域と判定することを特徴とする請求項1に記載の画像処理装置。
- 前記画像生成部は、前記未知対象物の存在を示す情報として、現実空間の画像の前記未知奥行き領域に実写された物体の画像または当該物体を代替する仮想対象物の画像を前記未知奥行き領域に重畳することを特徴とする請求項1または2に記載の画像処理装置。
- 前記画像生成部は、前記未知対象物の存在を示す情報として、前記未知奥行き領域に映像効果を加えることを特徴とする請求項1から3のいずれかに記載の画像処理装置。
- 前記画像生成部は、前記仮想空間の画像の前記未知奥行き領域については現実空間を透過させるために前記仮想空間の画像を削除することを特徴とする請求項1または2に記載の画像処理装置。
- 前記奥行き比較部は、前記未知奥行き領域において前記未知対象物が、現実空間内の対象物または対応する仮想的な物体と衝突するかどうかを判定し、
前記画像生成部は、衝突が判定された場合に、仮想空間内にインタラクションを生成することを特徴とする請求項1から5のいずれかに記載の画像処理装置。 - ユーザの周囲の現実空間の画像の奥行き情報に基づいて、当該現実空間内の対象物の位置を検出し、当該検出した各対象物の位置に対応する仮想空間内の位置に、仮想的な物体を配して仮想空間の情報を構成する仮想空間構成ステップと、
前記仮想空間構成ステップにより構成された仮想空間の画像を生成する画像生成ステップと、
前記現実空間の画像の奥行き情報と前記仮想空間の画像の奥行き情報を比較することにより未知奥行き領域を判定する奥行き比較ステップとを含み、
前記画像生成ステップは、前記仮想空間の画像の前記未知奥行き領域に未知対象物の存在を示す情報を表示することを特徴とする画像処理方法。 - ユーザの周囲の現実空間の画像の奥行き情報に基づいて、当該現実空間内の対象物の位置を検出し、当該検出した各対象物の位置に対応する仮想空間内の位置に、仮想的な物体を配して仮想空間の情報を構成する仮想空間構成機能と、
前記仮想空間構成機能により構成された仮想空間の画像を生成する画像生成機能と、
前記現実空間の画像の奥行き情報と前記仮想空間の画像の奥行き情報を比較することにより未知奥行き領域を判定する奥行き比較機能とをコンピュータに実現させ、
前記画像生成機能は、前記仮想空間の画像の前記未知奥行き領域に未知対象物の存在を示す情報を表示することを特徴とするプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017242824 | 2017-12-19 | ||
JP2017242824 | 2017-12-19 | ||
PCT/JP2018/032773 WO2019123729A1 (ja) | 2017-12-19 | 2018-09-04 | 画像処理装置、画像処理方法、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2019123729A1 JPWO2019123729A1 (ja) | 2020-12-17 |
JP6933727B2 true JP6933727B2 (ja) | 2021-09-08 |
Family
ID=66994540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019560037A Active JP6933727B2 (ja) | 2017-12-19 | 2018-09-04 | 画像処理装置、画像処理方法、およびプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US11176748B2 (ja) |
JP (1) | JP6933727B2 (ja) |
WO (1) | WO2019123729A1 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018144890A1 (en) * | 2017-02-03 | 2018-08-09 | Warner Bros. Entertainment, Inc. | Rendering extended video in virtual reality |
US11120632B2 (en) * | 2018-10-16 | 2021-09-14 | Sony Interactive Entertainment Inc. | Image generating apparatus, image generating system, image generating method, and program |
JP6895128B2 (ja) * | 2018-11-09 | 2021-06-30 | オムロン株式会社 | ロボット制御装置、シミュレーション方法、及びシミュレーションプログラム |
JP2021089382A (ja) * | 2019-12-05 | 2021-06-10 | キヤノン株式会社 | 電子機器、電子機器の制御方法、プログラム、記憶媒体 |
EP4128050A1 (en) * | 2020-03-30 | 2023-02-08 | Tetavi Ltd. | Techniques for improving mesh accuracy using labeled inputs |
WO2021235316A1 (ja) * | 2020-05-21 | 2021-11-25 | ソニーグループ株式会社 | 情報処理装置、情報処理方法および情報処理プログラム |
US11210844B1 (en) | 2021-04-13 | 2021-12-28 | Dapper Labs Inc. | System and method for creating, managing, and displaying 3D digital collectibles |
US11099709B1 (en) | 2021-04-13 | 2021-08-24 | Dapper Labs Inc. | System and method for creating, managing, and displaying an interactive display for 3D digital collectibles |
USD991271S1 (en) | 2021-04-30 | 2023-07-04 | Dapper Labs, Inc. | Display screen with an animated graphical user interface |
US11227010B1 (en) | 2021-05-03 | 2022-01-18 | Dapper Labs Inc. | System and method for creating, managing, and displaying user owned collections of 3D digital collectibles |
US11533467B2 (en) * | 2021-05-04 | 2022-12-20 | Dapper Labs, Inc. | System and method for creating, managing, and displaying 3D digital collectibles with overlay display elements and surrounding structure display elements |
US11170582B1 (en) | 2021-05-04 | 2021-11-09 | Dapper Labs Inc. | System and method for creating, managing, and displaying limited edition, serialized 3D digital collectibles with visual indicators of rarity classifications |
US11890534B2 (en) * | 2021-09-28 | 2024-02-06 | Sony Group Corporation | Method for predefining a virtual entryway at a virtual boundary of an XR space |
US20230096959A1 (en) * | 2021-09-28 | 2023-03-30 | Sony Group Corporation | Method for predefining in an xr space an entryway corresponding to a real entryway |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004537082A (ja) * | 2001-01-26 | 2004-12-09 | ザクセル システムズ インコーポレイテッド | 仮想現実環境における実時間バーチャル・ビューポイント |
JP2012155655A (ja) * | 2011-01-28 | 2012-08-16 | Sony Corp | 情報処理装置、報知方法及びプログラム |
KR102077108B1 (ko) * | 2013-09-13 | 2020-02-14 | 한국전자통신연구원 | 콘텐츠 체험 서비스 제공 장치 및 그 방법 |
KR20150101612A (ko) | 2014-02-27 | 2015-09-04 | 엘지전자 주식회사 | 폐쇄형 시야(Closed-view)를 제공하는 헤드 마운티드 디스플레이 및 그 제어 방법 |
JP2016004493A (ja) * | 2014-06-18 | 2016-01-12 | キヤノン株式会社 | 画像処理装置およびその制御方法 |
GB2551396B (en) * | 2016-06-17 | 2018-10-10 | Imagination Tech Ltd | Augmented reality occlusion |
-
2018
- 2018-09-04 WO PCT/JP2018/032773 patent/WO2019123729A1/ja active Application Filing
- 2018-09-04 JP JP2019560037A patent/JP6933727B2/ja active Active
- 2018-09-04 US US16/764,364 patent/US11176748B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20200279438A1 (en) | 2020-09-03 |
US11176748B2 (en) | 2021-11-16 |
WO2019123729A1 (ja) | 2019-06-27 |
JPWO2019123729A1 (ja) | 2020-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6933727B2 (ja) | 画像処理装置、画像処理方法、およびプログラム | |
KR102060453B1 (ko) | 화상 표시 시스템, 화상 표시 시스템의 제어방법, 화상 전송 시스템 및 헤드 마운트 디스플레이 | |
JP6754678B2 (ja) | シミュレーションシステム及びプログラム | |
JP5996814B1 (ja) | 仮想空間の画像をヘッドマウントディスプレイに提供する方法及びプログラム | |
JP7073481B2 (ja) | 画像表示システム | |
US11738270B2 (en) | Simulation system, processing method, and information storage medium | |
US20160343166A1 (en) | Image-capturing system for combining subject and three-dimensional virtual space in real time | |
JP6558839B2 (ja) | 媒介現実 | |
CA2951058A1 (en) | Autostereoscopic virtual reality platform | |
JP2016522463A5 (ja) | ||
JP6298130B2 (ja) | シミュレーションシステム及びプログラム | |
JP2010253277A (ja) | ビデオゲームにおいてオブジェクトの動きを制御する方法およびシステム | |
JP2012212237A (ja) | 画像生成システム、サーバシステム、プログラム及び情報記憶媒体 | |
JP6039594B2 (ja) | 情報処理装置および情報処理方法 | |
JP2019175323A (ja) | シミュレーションシステム及びプログラム | |
WO2021152906A1 (ja) | 画像処理システム、画像処理プログラム、および画像処理方法 | |
JP2019152899A (ja) | シミュレーションシステム及びプログラム | |
US11195320B2 (en) | Feed-forward collision avoidance for artificial reality environments | |
JP6682624B2 (ja) | 画像処理装置 | |
JP6726016B2 (ja) | 情報処理装置、情報処理方法 | |
WO2017191703A1 (ja) | 画像処理装置 | |
JP2019175322A (ja) | シミュレーションシステム及びプログラム | |
JP2018171309A (ja) | シミュレーションシステム及びプログラム | |
JP2017069924A (ja) | 画像表示装置 | |
JP6613099B2 (ja) | 仮想現実空間を立体的に表示するためのプログラム、コンピュータ及びヘッドマウントディスプレイシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200612 |
|
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: 20210727 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210819 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6933727 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |