(57)【要約】  仮想空間構成部２３は、ユーザの周囲の現実空間の画像の奥行き情報に基づいて、当該現実空間内の対象物の位置を検出し、当該検出した各対象物の位置に対応する仮想空間内の位置に、仮想的な物体を配して仮想空間の情報を構成する。画像生成部２５は、仮想空間構成部２３により構成された仮想空間の画像を生成する。デプス比較部２２は、現実空間の画像の奥行き情報と仮想空間の画像の奥行き情報を比較することにより未知奥行き領域を判定する。画像生成部２５は、仮想空間の画像の未知奥行き領域に未知対象物の存在を示す情報を表示する。
2019123729.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの周囲の現実空間の画像の奥行き情報に基づいて、当該現実空間内の対象物の位置を検出し、当該検出した各対象物の位置に対応する仮想空間内の位置に、仮想的な物体を配して仮想空間の情報を構成する仮想空間構成部と、
前記仮想空間構成部により構成された仮想空間の画像を生成する画像生成部と、
前記現実空間の画像の奥行き情報と前記仮想空間の画像の奥行き情報を比較することにより未知奥行き領域を判定する奥行き比較部とを含み、
前記画像生成部は、前記仮想空間の画像の前記未知奥行き領域に未知対象物の存在を示す情報を表示することを特徴とする画像処理装置。
【請求項２】
前記奥行き比較部は、画素単位で前記現実空間の画像の奥行き値と前記仮想空間の画像の奥行き値の差分を計算し、前記差分の絶対値が所定の閾値を越える画素の領域を未知奥行き領域と判定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画像生成部は、前記未知対象物の存在を示す情報として、現実空間の画像の前記未知奥行き領域に実写された物体の画像または当該物体を代替する仮想対象物の画像を前記未知奥行き領域に重畳することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記画像生成部は、前記未知対象物の存在を示す情報として、前記未知奥行き領域に映像効果を加えることを特徴とする請求項１から３のいずれかに記載の画像処理装置。
【請求項５】
前記画像生成部は、前記仮想空間の画像の前記未知奥行き領域については現実空間を透過させるために前記仮想空間の画像を削除することを特徴とする請求項１または２に記載の画像処理装置。
【請求項６】
前記奥行き比較部は、前記未知奥行き領域において前記未知対象物が、現実空間内の対象物または対応する仮想的な物体と衝突するかどうかを判定し、
前記画像生成部は、衝突が判定された場合に、仮想空間内にインタラクションを生成することを特徴とする請求項１から５のいずれかに記載の画像処理装置。
【請求項７】
ユーザの周囲の現実空間の画像の奥行き情報に基づいて、当該現実空間内の対象物の位置を検出し、当該検出した各対象物の位置に対応する仮想空間内の位置に、仮想的な物体を配して仮想空間の情報を構成する仮想空間構成ステップと、
前記仮想空間構成ステップにより構成された仮想空間の画像を生成する画像生成ステップと、
前記現実空間の画像の奥行き情報と前記仮想空間の画像の奥行き情報を比較することにより未知奥行き領域を判定する奥行き比較ステップとを含み、
前記画像生成ステップは、前記仮想空間の画像の前記未知奥行き領域に未知対象物の存在を示す情報を表示することを特徴とする画像処理方法。
【請求項８】
ユーザの周囲の現実空間の画像の奥行き情報に基づいて、当該現実空間内の対象物の位置を検出し、当該検出した各対象物の位置に対応する仮想空間内の位置に、仮想的な物体を配して仮想空間の情報を構成する仮想空間構成機能と、
前記仮想空間構成機能により構成された仮想空間の画像を生成する画像生成機能と、
前記現実空間の画像の奥行き情報と前記仮想空間の画像の奥行き情報を比較することにより未知奥行き領域を判定する奥行き比較機能とをコンピュータに実現させ、
前記画像生成機能は、前記仮想空間の画像の前記未知奥行き領域に未知対象物の存在を示す情報を表示することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、拡張現実の映像を生成する画像処理技術に関する。
【背景技術】
【０００２】
ゲーム機に接続されたヘッドマウントディスプレイを頭部に装着して、ヘッドマウントディスプレイに表示された画面を見ながら、コントローラなどを操作してゲームプレイすることが行われている。ヘッドマウントディスプレイを装着すると、ヘッドマウントディスプレイに表示される映像以外はユーザは見ないため、映像世界への没入感が高まり、ゲームのエンタテインメント性を一層高める効果がある。また、ヘッドマウントディスプレイに仮想現実（ＶＲ(Virtual Reality)）の映像を表示させ、ヘッドマウントディスプレイを装着したユーザが頭部を回転させると、３６０度見渡せる全周囲の仮想空間が表示されるようにすると、さらに映像への没入感が高まり、ゲームなどのアプリケーションの操作性も向上する。【０００３】
また、非透過型ヘッドマウントディスプレイを装着したユーザは外界を直接見ることができなくなるが、ヘッドマウントディスプレイに搭載されたカメラによって外界の映像を撮影してディスプレイパネルに表示することのできるビデオ透過（ビデオシースルー）型ヘッドマウントディスプレイもある。ビデオ透過型ヘッドマウントディスプレイでは、カメラで撮影される外界の映像にコンピュータグラフィックス（ＣＧ(Computer Graphics)）によって生成された仮想世界のオブジェクトを重畳させることで拡張現実（ＡＲ(Augmented Reality)）の映像を生成して表示することもできる。拡張現実の映像は、現実世界から切り離された仮想現実とは違って、現実世界が仮想オブジェクトで拡張されたものであり、ユーザは現実世界とのつながりを意識しつつ、仮想世界を体験することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
現実空間に存在する物体を仮想対象物に置き換えた拡張現実の映像をヘッドマウントディスプレイに表示する場合、現実空間に後から動的な物体が進入すると、仮想空間内に表示されない。ユーザは突然現れた物体を視認できず、その物体に誤って触れるなどして違和感を感じることがある。【０００５】
本発明はこうした課題に鑑みてなされたものであり、その目的は、動的な変化のある環境において違和感のない拡張現実の映像を提供することのできる画像処理技術を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のある態様の画像処理装置は、ユーザの周囲の現実空間の画像の奥行き情報に基づいて、当該現実空間内の対象物の位置を検出し、当該検出した各対象物の位置に対応する仮想空間内の位置に、仮想的な物体を配して仮想空間の情報を構成する仮想空間構成部と、前記仮想空間構成部により構成された仮想空間の画像を生成する画像生成部と、前記現実空間の画像の奥行き情報と前記仮想空間の画像の奥行き情報を比較することにより未知奥行き領域を判定する奥行き比較部とを含む。前記画像生成部は、前記仮想空間の画像の前記未知奥行き領域に未知対象物の存在を示す情報を表示する。【０００７】
本発明の別の態様は、画像処理方法である。この方法は、ユーザの周囲の現実空間の画像の奥行き情報に基づいて、当該現実空間内の対象物の位置を検出し、当該検出した各対象物の位置に対応する仮想空間内の位置に、仮想的な物体を配して仮想空間の情報を構成する仮想空間構成ステップと、前記仮想空間構成ステップにより構成された仮想空間の画像を生成する画像生成ステップと、前記現実空間の画像の奥行き情報と前記仮想空間の画像の奥行き情報を比較することにより未知奥行き領域を判定する奥行き比較ステップとを含む。前記画像生成ステップは、前記仮想空間の画像の前記未知奥行き領域に未知対象物の存在を示す情報を表示する。【０００８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００９】
本発明によれば、動的な変化のある環境において違和感のない拡張現実の映像を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態に係る画像処理装置を含む画像処理システムの例を表す構成ブロック図である。
【図２】本発明の実施の形態に係る画像処理装置の例を表す機能ブロック図である。
【図３】本発明の実施の形態に係る画像処理装置が用いる頭部の傾きの情報の例を表す説明図である。
【図４】本発明の実施の形態に係る画像処理装置が生成する物体バッファの例を表す説明図である。
【図５】本発明の実施の形態に係る画像処理装置が生成する物体バッファの投影像を表す説明図である。
【図６】本発明の実施の形態に係る画像処理装置の動作例を表すフローチャート図である。
【図７】本発明の実施の形態に係る画像処理装置の動作例を表すフローチャート図である。
【図８】本発明の実施の形態に係る画像処理装置により取得される撮像画像データを説明する図である。
【図９】本発明の実施の形態に係る画像処理装置により生成される仮想空間内の仮想対象物の立体視画像を説明する図である。
【図１０】現実空間に動的な物体が進入した場合に本発明の実施の形態に係る画像処理装置により生成される仮想空間内の仮想対象物の立体視画像を説明する図である。
【図１１】現実空間にユーザの身体が進入した場合に本発明の実施の形態に係る画像処理装置により生成される仮想空間内の仮想対象物の立体視画像を説明する図である。
【発明を実施するための形態】
【００１１】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る画像処理装置１０を含む画像処理システム１は、図１に例示するように、画像処理装置１０と、操作デバイス２０と、中継装置３０と、表示装置４０と、を含んで構成されている。
【００１２】
画像処理装置１０は、表示装置４０が表示すべき画像を供給する装置であって、例えば家庭用ゲーム機、携帯型ゲーム機、パーソナルコンピューター、スマートフォン、タブレット等である。図１に示されるように、この画像処理装置１０は、制御部１１と、記憶部１２と、インタフェース部１３と、を含んで構成される。
【００１３】
制御部１１は、ＣＰＵ等のプログラム制御デバイスであり、記憶部１２に格納されているプログラムを実行する。本実施の形態では、この制御部１１は、表示装置４０を装着したユーザの周囲の現実空間の情報を取得し、当該取得した現実空間の情報に基づいて、現実空間内の対象物の位置を検出し、当該検出した各対象物の位置に対応する仮想空間内の位置に、仮想的な物体（仮想対象物と呼ぶ）を配して仮想空間の情報を構成する。
【００１４】
またこの制御部１１は、当該構成した仮想空間において、別途設定したレンダリングカメラ（仮想空間のレンダリングを行う際に用いる仮想的なカメラ）の位置からの所定視野内の画像を生成し、当該生成した画像を表示装置４０に出力する。ここでレンダリングカメラの位置は、ユーザの左目に対応するものと、右目に対応するものとの２つを設定し、それぞれの位置からの視野の仮想空間の画像（左目用画像と右目用画像と）を生成して、当該生成した一対の画像を立体視画像として表示装置４０に出力してもよい。以下の例では立体視画像を生成する場合を例として説明する。
【００１５】
具体的に、本実施の形態の一例では、この制御部１１は、ユーザの位置と、ユーザの後方とを含むユーザ周囲の所定サイズ（例えば幅（初期のユーザの視線方向に直交し、床面に平行な方向）１０ｍ、奥行（床面に平行な初期のユーザの視線方向）１０ｍ、高さ３ｍの直方体範囲）の現実空間（以下、対象空間と呼ぶ）に対応する仮想的な三次元空間（仮想空間）を設定する。そして制御部１１は、現実空間の画像を参照しつつ、この仮想空間内に仮想対象物を配し、あるいは映像効果を適用する。
【００１６】
記憶部１２は、ＲＡＭ等のメモリデバイスを少なくとも一つ含み、制御部１１が実行するプログラムを格納する。また、この記憶部１２は制御部１１のワークメモリとしても動作し、制御部１１がプログラム実行の過程で使用するデータを格納する。このプログラムは、コンピュータ可読かつ非一時的な記録媒体に格納されて提供され、この記憶部１２に格納されたものであってもよい。
【００１７】
インタフェース部１３は、操作デバイス２０や中継装置３０との間で画像処理装置１０の制御部１１がデータ通信を行うためのインタフェースである。画像処理装置１０は、インタフェース部１３を介して有線又は無線のいずれかで操作デバイス２０や中継装置３０等と接続される。一例として、このインタフェース部１３は、画像処理装置１０が供給する画像（立体視画像）や音声を中継装置３０に送信するために、ＨＤＭＩ（登録商標）（High-Definition Multimedia Interface）などのマルチメディアインタフェースを含んでよい。また、中継装置３０経由で表示装置４０から各種の情報を受信したり、制御信号等を送信したりするために、ＵＳＢ等のデータ通信インタフェースを含んでよい。さらにインタフェース部１３は、操作デバイス２０に対するユーザの操作入力の内容を示す信号を受信するために、ＵＳＢ等のデータ通信インタフェースを含んでよい。
【００１８】
操作デバイス２０は、家庭用ゲーム機のコントローラ等であって、ユーザが画像処理装置１０に対して各種の指示操作を行うために使用される。操作デバイス２０に対するユーザの操作入力の内容は、有線又は無線のいずれかにより画像処理装置１０に送信される。なお、操作デバイス２０は必ずしも画像処理装置１０と別体でなくてもよく、画像処理装置１０の筐体表面に配置された操作ボタンやタッチパネル等を含んでもよい。本実施の形態の一例では、この操作デバイス２０は、ゲームの一時停止を指示する「ポーズボタン」などを含む。
【００１９】
中継装置３０は、有線又は無線のいずれかにより表示装置４０と接続されており、画像処理装置１０から供給される立体視画像のデータを受け付けて、受け付けたデータに応じた映像信号を表示装置４０に対して出力する。このとき中継装置３０は、必要に応じて、供給された立体視画像が表す映像に対して、表示装置４０の光学系によって生じる歪みを補正する処理などを実行し、補正された映像を表す映像信号を出力してもよい。なお、中継装置３０から表示装置４０に供給される映像信号は、立体視画像に基づいて生成した左目用の映像信号と右目用の映像信号との二つの映像信号を含んでいる。また、中継装置３０は、立体視画像や映像信号以外にも、音声データや制御信号など、画像処理装置１０と表示装置４０との間で送受信される各種の情報を中継する。
【００２０】
表示装置４０は、ユーザが頭部に装着して使用する表示デバイスであって、中継装置３０から入力される映像信号に応じた映像を表示し、ユーザに閲覧させる。本実施形態では、表示装置４０はユーザの右目と左目とのそれぞれの目の前に、それぞれの目に対応した映像を表示するものとする。この表示装置４０は、図１に示したように、映像表示素子４１、光学素子４２、カメラ４３、センサ４４、及び通信インタフェース４５を含んで構成される。
【００２１】
映像表示素子４１は、有機ＥＬ表示パネルや液晶表示パネルなどであって、中継装置３０から供給される映像信号に応じた映像を表示する。この映像表示素子４１は、左目用の映像と右目用の映像とを一列に並べて表示する１つの表示素子であってもよいし、左目用の映像と右目用の映像とをそれぞれ独立に表示する一対の表示素子を含んで構成されてもよい。また、スマートフォンの画面をそのまま映像表示素子４１として用いてもよい。また表示装置４０は、ユーザの網膜に直接映像を投影する網膜照射型（網膜投影型）の装置であってもよい。この場合、映像表示素子４１は、光を発するレーザーとその光を走査するＭＥＭＳ（Micro Electro Mechanical Systems）ミラーなどによって構成されてもよい。
【００２２】
光学素子４２は、ホログラムやプリズム、ハーフミラーなどであって、ユーザの目の前に配置され、映像表示素子４１が表示する映像の光を透過又は屈折させて、ユーザの目に入射させる。具体的に、この光学素子４２は、左目用光学素子４２Ｌと、右目用光学素子４２Ｒとを含み、映像表示素子４１が表示する左目用の映像は、左目用光学素子４２Ｌを経由してユーザの左目に入射し、右目用の映像は右目用光学素子４２Ｒを経由してユーザの右目に入射するようにしてもよい。これによりユーザは、表示装置４０を頭部に装着した状態で、例えば画像処理装置１０が生成した左目用画像に基づく左目用の映像を左目で、右目用画像に基づく右目用の映像を右目で、それぞれ見ることができるようになる。なお、本実施形態において表示装置４０は、ユーザが外界の様子を視認することができない非透過型の表示装置である。
【００２３】
なお、ここでは画像処理装置１０が生成する画像が立体視画像であるものとしているが、画像処理装置１０が一つの画像情報のみを出力する場合、当該画像情報に基づき、中継装置３０にて左目用映像と右目用映像を生成してもよい。この場合は、左目用映像と右目用映像とは同じものとなる。つまり、この場合、表示装置４０は左右の光学素子４２に同じ映像を表示することとなる。
【００２４】
カメラ４３は、表示装置４０の前面（ユーザの視線方向側）の中央よりやや左側と中央よりやや右側とにそれぞれ配した一対の撮像素子４３０Ｌ，４３０Ｒ（以下の説明で左右を区別する必要のないときには、撮像素子４３０としてまとめて称する）を含む。このカメラ４３は、各撮像素子４３０で撮像したユーザの視線方向側の現実空間の画像を撮像し、当該撮像して得た画像データを、中継装置３０を介して画像処理装置１０に対して出力する。
【００２５】
センサ４４は、一例として、表示装置４０を装着したユーザの頭部の方向（ユーザの顔の前面方向）と位置とを検出する頭部方向センサ４４１を含んでもよい。
【００２６】
この頭部方向センサ４４１は、ユーザの頭部の方向（顔面の方向）を検出する。具体的にこの頭部方向センサ４４１は、ジャイロ等であり、表示装置４０の装着時当初の方向からの床面に平行な面内での頭部方向の回転角度と、仰角方向の回転角度と、視野方向の軸まわりの回転角度を検出して出力する。またこの頭部方向センサ４４１は、表示装置４０の所定の位置（例えばカメラ４３の撮像素子４３０Ｌと撮像素子４３０Ｒとを結ぶ線分を二等分する点の位置）を基準位置として、この基準位置の、ユーザの左右方向（横断面と冠状面の交差する軸、以下Ｘ軸とする）、前後方向（矢状面と横断面の交差する軸、以下Ｙ軸とする）、上下方向（Ｚ軸とする）への装着時からの移動量（ｘ，ｙ，ｚ）を検出して出力する。なお、ここでのＸＹＺ座標系をユーザ座標系と呼ぶ。この基準位置を原点とした各撮像素子４３０の相対的座標は既知であるものとする。
【００２７】
通信インタフェース４５は、中継装置３０との間で映像信号や、画像データ等のデータの通信を行うためのインタフェースである。例えば表示装置４０が中継装置３０との間で無線ＬＡＮやＢｌｕｅｔｏｏｔｈ（登録商標）などの無線通信によりデータの送受信を行う場合、通信インタフェース４５は通信用のアンテナ、及び通信モジュールを含む。
【００２８】
次に、本発明の実施の形態に係る画像処理装置１０の制御部１１の動作について説明する。この制御部１１は、記憶部１２に格納されたプログラムを実行することにより、図２に例示するように、機能的に、画像処理部５１と、アプリケーション実行部５２とを含み、画像処理部５１は、画像取得部２１と、デプス比較部２２と、仮想空間構成部２３と、レンダリングカメラ設定部２４と、画像生成部２５と、出力部２６と、未知デプス処理部２７とを含んで構成される。この画像処理部５１は、アプリケーション実行部５２から入力される指示に従って動作し、指定された視野内の仮想空間の像をレンダリングして得た一対の画像データ（左目用の画像データと右目用の画像データ）を立体視画像として生成する。
【００２９】
画像処理装置１０の制御部１１の少なくとも一部の機能を表示装置４０に実装してもよい。また、画像処理装置１０の制御部１１の少なくとも一部の機能をネットワークを介して接続されたクラウドサーバに実装してもよい。
【００３０】
画像取得部２１は、表示装置４０を装着したユーザの周囲の現実空間の情報を取得する。具体的にこの画像取得部２１が取得する現実空間の情報は、表示装置４０のカメラ４３で撮像された画像データである。この例では、画像取得部２１は、表示装置４０から中継装置３０を介して、カメラ４３にて撮像した画像データを、現実空間の情報として受け入れる。本実施の形態の一例では、カメラ４３で撮像した画像データは、左右に配した一対の撮像素子４３０で撮像された一対の画像データであり、各画像データの視差により撮像された現実空間内の対象物までの距離が判断できるものである。本実施の形態では、この画像取得部２１は、カメラ４３で撮像された画像データに基づいて、当該画像データ（以下区別のため撮像画像データと呼ぶ）と同じサイズ（同じ画素配列）の画像データであって、カメラ４３で撮像された画像データの各画素に撮像された対象物までの距離を表す奥行き情報を、当該画素に対応する画素の値とした画像データ（いわゆるデプスマップ）を生成して出力する。
【００３１】
画像取得部２１は、撮像画像のデプスマップをデプス比較部２２と仮想空間構成部２３に与える。
【００３２】
仮想空間構成部２３は、画像取得部２１が出力するデプスマップの情報に基づいて、まず、環境メッシュリスト情報と、物体バッファとを生成する。ここで環境メッシュリスト情報は、例えば次のように求められる。
【００３３】
すなわち仮想空間構成部２３は、デプスマップと、撮像画像データとを用いて、撮像画像データに撮像されている現実空間内の対象物を、対象物ごと（机、壁、床、本棚などの対象物ごと）に検出するセグメンテーション処理を行い、また各対象物が占めるデプスマップ上の領域ごとに個別のラベル（オブジェクト識別子）を設定する。
【００３４】
仮想空間構成部２３は、個別にラベルの付された領域内のデプスマップを参照して、当該領域内の対象物の外形状に沿ってメッシュ（ポリゴンメッシュ）を設定する。なお、ユーザが位置を変えたり、頭部を回転させて、カメラ４３の視野が変化することで現実空間の対象物の形状が明らかになる場合がある（他の対象物によって隠蔽されていた部分が撮像されるなど）が、この場合は、当該対象物のメッシュを更新する。このようなメッシュの設定方法は例えば多視点の情報を用いるものなど、広く知られたものを採用できるので、ここでの詳しい説明を省略する。
【００３５】
仮想空間構成部２３は、設定した各メッシュの頂点座標（画素の位置を表す情報）と、メッシュの識別情報と、メッシュ内の画素に対応して撮像画像データ内の画素に撮像されている対象物の法線の情報と、メッシュの種類情報（予め定めた種類のいずれであるかを表す情報）と、メッシュの表面形状に関する情報と、メッシュに対応する対象物のオブジェクト識別子とを含む環境メッシュリスト情報を生成する。なお、ここでメッシュの頂点座標は、ワールド座標系（現実空間中に設定され、床面内に互いに直交するξ軸，η軸をとり、鉛直方向をζ軸とする直交座標系）での値とすればよい。また、オブジェクト識別子はメッシュの識別情報に含まれていてもよい。
【００３６】
このワールド座標系での値は、例えば、カメラ４３が撮影して得た現実空間内の画像データに基づくユーザ座標系（ＸＹＺ座標系）で取得されたメッシュの頂点座標等の値を、座標変換情報としてのモデルビュー行列を用いて変換して得る。
【００３７】
ここでメッシュの種類の情報は、メッシュ内の画素に対応する撮像画像データ内の画素に撮像された対象物の位置に基づいて生成される情報であり、床、天井、壁、障害物（床から所定の高さ以内にある壁以外の物体などとして予め定めておく）、その他のいずれであるかを表す。本実施の形態では、仮想空間構成部２３は、対象物のワールド座標系（現実空間中に設定され、床面内に互いに直交するｘ軸，ｙ軸をとり、鉛直方向をｚ軸とする直交座標系）で、ｚ軸成分が最も小さく（もっとも低い位置にある）平面を床とする。また、ｚ軸成分が最も大きい（もっとも高い位置にある）面を天井とする。さらに床に対して垂直な面であって、ｘ軸またはｙ軸方向にもっとも遠い位置にある面を壁とする。その他の対象物は、障害物として分類する。
【００３８】
また、メッシュの表面形状に関する情報は、平面、凹凸のある面、球状の面、複雑な形状の面といった表面形状のいずれであるかを表す情報とする。この情報は、例えば対象物を表す各メッシュの法線の情報に基づいて定めることができる。
【００３９】
このように、デプスマップの情報等から、撮像画像データ内の対象物の種類や、表面形状等を認識する方法には、種々のものがあるが、どのような方法を採用するかはここでは問わない。
【００４０】
また物体バッファは、ユーザの位置と、ユーザの視野方向より後方とを含むユーザ周囲の所定サイズ（例えば幅（初期のユーザの視野方向に直交し、床面に平行な方向）１０ｍ、奥行（床面に平行な初期のユーザの視野方向）１０ｍ、高さ３ｍの直方体範囲）の現実空間（以下、対象空間と呼ぶ）を仮想的にボクセル（Voxel：仮想的な体積要素、例えば幅１０ｃｍ，奥行１０ｃｍ，高さ１０ｃｍの立方体要素）空間で表現したものであり、物体が存在するボクセルの値（ボクセル値）を「１」、存在しないボクセルの値を「０」、存在するか否かが不明なボクセルの値を「−１」と設定したものである（図４）。
【００４１】
図４では、図示の都合上、対象空間内の一部のボクセルのみを示し、またボクセルのサイズも説明のために適宜変更している。この対象空間に対するボクセルのサイズは、必ずしも実施時に適したものを示したものではない。また、図４では、対象空間の奥側隅に立方体状の物体Ｍが配され、その表面（ユーザが見えている面）に相当するボクセルの値を、物体が存在することを表す「１」に設定し、表面から隠された部分（ユーザが見えない部分）のボクセルの値を、不明であることを表す「−１」とし、物体表面までの間にあるボクセル（物体Ｍが存在しない部分に対応するボクセル）の値を、何もないことを表す「０」と設定する例を示している。
【００４２】
仮想空間構成部２３は、デプスマップの情報に基づいてこのボクセル値を設定する。デプスマップ上の各画素は、デプスマップの元となった画像データの撮影時のカメラ４３の位置座標（基準位置の座標でよい、以下撮影時位置と呼ぶ）を頂点とし、デプスマップの画角に相当する仮想的な四角錐の底面を、デプスマップの解像度（縦ｐｙ画素×横ｐｘ画素）で分割したものである。そこで撮影時位置の座標を起点として各画素の頂点を通る線分に平行なベクトル（ワールド座標系での座標の差）や、撮影時位置の座標を起点として各画素の中心を通る線分に平行なベクトル（ワールド座標系での座標の差）が、撮影時位置の座標と、デプスマップの画角を表す情報と、デプスマップの解像度とから、各画素の方向として演算できる。
【００４３】
そこで、仮想空間構成部２３は、デプスマップ上の各画素について、撮影時位置の座標（基準位置の座標でよい）に対応する物体バッファ内の座標から当該画素の方向にあり、デプスマップが表す物体までの距離にあたるボクセルの値を「１」とし、当該ボクセルとは異なり、当該ボクセルからカメラ４３までの線上にあるボクセルの値を「０」とする。また仮想空間構成部２３は、カメラ４３で撮像された画像データにおいて、現実空間内にある物体により隠され、撮像されていない部分（机や壁の裏、床に置かれた物の陰となっている部分）については、物体が存在するか否かが不明であるとして、対応する部分のボクセルの値を「−１」と設定する。
【００４４】
仮想空間構成部２３は、ユーザが移動したり、頭部の向きを変えたりすることで、視点や視野方向が変更され、当該視点から当該視野方向に向いたカメラ４３によって撮像された画像データに、過去に撮像されず、物体が存在するか否かが不明であったボクセルに対応する部分（値が「−１」であったボクセルに対応する部分）のデプスマップが得られたときには、当該部分のボクセルの値を、得られたデプスマップに基づいて「０」または「１」に設定して更新する。
【００４５】
なお、デプスマップ等の情報から、このような物体の存在する範囲を表す三次元空間内のボクセル値を設定する方法は、ここで述べた方法のほか、３Ｄスキャンの方法で広く知られた方法等、種々の方法を採用できる。
【００４６】
さらに仮想空間構成部２３は、後に述べるレンダリングカメラ設定部２４が対象空間内に設定した仮想的なレンダリングカメラの位置、及び視野に基づき、対象空間に対応するボクセル空間内に、当該仮想的なレンダリングカメラと同じ視野を設定したときの、当該視野内にあるボクセルの二次元投影像を生成する。
【００４７】
つまり、このボクセルの二次元投影像は、レンダリング処理と同様、仮想的なレンダリングカメラの位置からレンダリングカメラの視野方向に予め定めた距離だけ離れた位置に、当該視野方向に直交し、設定された画角に対応するサイズを有する仮想的なスクリーンを配し、このスクリーン上に、画像生成部２５が生成する立体視画像に含まれる画像データと同じサイズの画素配列を設定して、当該画素配列中の各画素を、次のように設定したものである。
【００４８】
すなわち、仮想空間構成部２３は、この画素配列中の各画素を順次選択し、仮想的なレンダリングカメラの位置から選択した画素の位置への線を延長した先にあるボクセルであって、最初にある（延長線が最初に出会う）「０」以外の値のボクセルの値を、選択した画素の画素値とする。ここで、「０」以外の値のボクセルがなければ、選択した画素の画素値を「０」とする。
【００４９】
これにより、例えば図５に示すような二次元投影像が得られることとなる。仮想空間構成部２３は、この二次元投影像をアプリケーション実行部５２に出力する。
【００５０】
また、仮想空間構成部２３は、後に説明するアプリケーション実行部５２から入力される指示に従い、上記検出した現実空間内の対象物の位置（対象物に対応するメッシュの範囲）に対応する仮想空間内の位置に、仮想対象物を配した仮想空間の情報を生成することで、仮想空間を構成する。このように仮想空間内に、三次元モデルデータで表される仮想対象物を配する処理は、三次元グラフィックスを作成する際の処理において広く知られているので、ここでの詳しい説明を省略する。
【００５１】
具体的な例として、この仮想空間構成部２３は、アプリケーション実行部５２から背景画像である背景画像データと、現実空間内の対象物を特定する情報（オブジェクト識別子）と、当該情報で特定される対象物の位置に対応する仮想空間内の位置に配されるべき物体の三次元モデルデータ及び当該物体の表面に適用するべきテクスチャ（マテリアル）のデータ等との入力を受け入れる。
【００５２】
そして仮想空間構成部２３は、入力されたオブジェクト識別子ごとに、当該オブジェクト識別子が表す対象物の外形を表すメッシュに外接する範囲に、オブジェクト識別子とともに入力された三次元モデルデータで表される仮想対象物を配置し、オブジェクト識別子とともに入力されたマテリアルの情報に対応するテクスチャ（予め設定しておく）を設定して、仮想空間を規定する情報を生成する。
【００５３】
レンダリングカメラ設定部２４は、レンダリングを行う際の仮想的なレンダリングカメラの位置、視野方向（レンダリングカメラの向き）、及び、画角を設定する。本実施の形態では、このレンダリングカメラ設定部２４は、例えばカメラ４３に含まれる撮像素子４３０の位置によらず、予め定められた（例えばプログラムにハードコードされていてもよいし、設定ファイルに記述されたものを読取ったものであってもよい）レンダリングカメラの位置と、視野の方向を表す情報（例えばレンダリングカメラの位置を起点とし、視野の中心を通るベクトル情報）を得て、これらを視野の情報とする。
【００５４】
またこのレンダリングカメラ設定部２４は、別の例として、ユーザの動きに伴って時間変化する現実空間内の基準位置からの相対座標として仮想空間内のレンダリングカメラの位置を得てもよい。一つの例として、先に述べた基準位置から予め定めた相対座標値だけ移動した位置に対応する仮想空間内の位置を、レンダリングカメラの位置としてもよい。
【００５５】
ここで相対座標は、例えば基準位置から撮像素子４３０Ｒまたは４３０Ｌの位置までの相対座標であってもよい。また相対座標は、基準位置から表示装置４０を装着したユーザの右目（または左目）があるべき位置までの相対座標であってもよい。この場合、ユーザの右目（または左目）の位置に対応する仮想空間内の位置がレンダリングカメラの位置となる。
【００５６】
具体的に、このレンダリングカメラ設定部２４は、表示装置４０を装着したユーザの頭部の位置（基準位置）及び頭部の向きを表す情報を、表示装置４０が備える頭部方向センサ４４１から取得する。すなわち、レンダリングカメラ設定部２４は、図３に例示するような、表示装置４０の装着時当初の方向からの床面に平行な面内での頭部方向の回転角度θと、仰角方向の回転角度φと、視野方向の軸まわりの回転角度ψと、頭部の移動量（ｘ，ｙ，ｚ）を取得する。
【００５７】
レンダリングカメラ設定部２４は、頭部の移動量の情報から、基準位置に対応する仮想空間内の座標を得る。現実空間のワールド座標と、仮想空間の座標とを一致させておき、現実空間の座標値をそのまま仮想空間の座標値として用いてもよい。レンダリングカメラ設定部２４は、基準位置からユーザの右目の位置までの相対座標（予め設定しておく）を基準位置の座標値に加算して右目に対応するレンダリングカメラの位置を決定し、ユーザの頭部の向きをその視野方向とする。
【００５８】
また、レンダリングカメラ設定部２４は、基準位置からユーザの左目の位置までの相対座標（予め設定しておく）を基準位置の座標値に加算して左目に対応するレンダリングカメラの位置を決定し、ユーザの頭部の向きをその視野方向とする。なお、画角は予め定めておく。
【００５９】
画像生成部２５は、レンダリングカメラ設定部２４が設定した左目と右目とのそれぞれに対応するレンダリングカメラの位置及び視野方向、画角の情報を用い、仮想空間構成部２３が生成した、仮想空間を規定する情報を参照して仮想空間内に配された仮想対象物の立体視画像（左目及び右目のそれぞれの画像データ）をレンダリングする。
【００６０】
画像生成部２５は、仮想対象物の立体視画像のデプスマップをデプス比較部２２に与える。
【００６１】
デプス比較部２２は、撮像画像のデプスマップと仮想対象物の立体視画像のデプスマップを比較し、画素毎にデプス値の差分を求める。即ち、デプス比較部２２は、現実空間の画像の奥行き情報と仮想空間の画像の奥行き情報を比較することにより未知奥行き領域を判定する奥行き比較部を構成している。デプス比較部２２は、各画素のデプス値の差分の絶対値が所定の閾値を超える場合、当該画素を未知デプス画素としてマークする。所定の閾値は、対象空間の大きさに合わせてたとえば１ｃｍなどに設定する。デプス比較部２２は、未知デプス画素としてマーク付けされた画素が一定の領域を形成する場合、その領域を未知デプス領域と判定する。デプス比較部２２は、未知デプス領域を未知デプス処理部２７に通知する。
【００６２】
現実空間に存在する静的な物体を仮想対象物に置き換えて表示する場合、現実空間の撮像画像のデプスと、レンダリングされた仮想空間の画像のデプスはほぼ一致するため、デプス値の差分の絶対値が所定の閾値を越える未知デプス領域は存在しない。所定の閾値を設けてデプス値の差分を評価するのは、現実の物体を仮想対象物に置き換える場合、デプス値が完全に一致せず、画素位置によってデプス値が多少前後するため、閾値を設けてデプス値を比較しないとノイズが発生するからである。しかしながら、現実空間に後から動的な物体が進入してきた場合、動的な物体を置き換える仮想対象物がないため、動的な物体が実写された領域では撮像画像のデプスと仮想空間の画像のデプスの間に所定の閾値を超える大きな違いが生じ、未知デプス領域ができる。
【００６３】
未知デプス処理部２７は、未知デプス領域については未知対象物の存在を示す情報を表示するように画像生成部２５に指示する。未知対象物の存在を示す情報として実写された未知対象物の画像を利用する場合は、未知デプス処理部２７は、画像取得部２１から撮像画像の未知デプス領域に実写された未知対象物の画像データを取得し、未知対象物の画像データを画像生成部２５に提供する。
【００６４】
画像生成部２５は、未知デプス領域が存在する場合、未知対象物の存在を示す情報を仮想空間の画像に表示する。実写された未知対象物の画像を未知対象物の存在を示す情報として利用する場合、画像生成部２５は、未知デプス処理部２７から与えられた未知対象物の画像をそのまま仮想空間の画像の未知デプス領域に重畳する。実写された未知対象物の代わりに代替仮想対象物を利用する場合、画像生成部２５は、代替仮想対象物を仮想空間内にレンダリングして仮想空間の画像の未知デプス領域に重畳する。
【００６５】
画像生成部２５は、未知対象物の存在を示す情報として、実写された未知対象物の画像や代替仮想対象物の画像を未知デプス領域に重畳する代わりに、未知デプス領域に映像効果を加えて表示してもよい。映像効果として、もやもやした煙などを表示させたり、光を点滅させたり、注意・警戒を表す画像を表示させてもよい。画像生成部２５は、実写された未知対象物の画像や代替仮想対象物の画像を未知デプス領域に重畳した上で、未知デプス領域に映像効果を加えてもよい。ユーザの注意・警戒をさらに喚起することができる。
【００６６】
画像生成部２５は、レンダリングして得られた一対の画像データを、立体視画像として出力部２６に出力する。このレンダリングの方法は広く知られているので、ここでの詳しい説明を省略する。
【００６７】
出力部２６は、画像生成部２５から入力される立体視画像を、中継装置３０を介して表示装置４０へ出力する。
【００６８】
アプリケーション実行部５２は、例えばゲームのプログラムを実行する。本実施の形態の例においてこのアプリケーション実行部５２は、画像処理部５１からボクセルの二次元投影像の情報の入力と、環境メッシュリスト情報との入力を受け入れる。
【００６９】
またアプリケーション実行部５２は、ゲームの処理に従って、仮想空間に配置する仮想対象物の三次元モデルデータを決定する。具体的な例として、この決定の方法は次のようなものである。すなわち、ボクセルの値が「１」であって、対応する部分のメッシュについて、
（１）メッシュの種類が「天井」であれば、背景を合成する。
（２）メッシュの種類が障害物で、かつメッシュ表面形状が平面である物体は「操作パネル」とする。
（３）メッシュの種類が障害物で、かつメッシュ表面形状が凹凸のある面である物体は、「岩」または「箱」とする。
（４）メッシュの種類が障害物で、かつメッシュ表面形状が球状の物体は、「ライト」とする。
（５）メッシュの種類が障害物で、かつメッシュ表面形状が複雑な形状の物体は、「樹木，草木」とする。
【００７０】
この例に基づくアプリケーション実行部５２の動作を、図６を参照して説明する。図５に例示するように、アプリケーション実行部５２は、入力された環境メッシュリスト情報を参照し、これまでに未選択のオブジェクト識別子を一つ選択する（Ｓ１１）。
【００７１】
アプリケーション実行部５２は、選択したオブジェクト識別子のメッシュの種類の情報を参照し（Ｓ１２）、メッシュの種類が「床」であれば、選択したオブジェクト識別子に、マテリアルを地面とする設定を関連付けて（Ｓ１３）、未選択のオブジェクト識別子があるか否かを判断し（Ｓ１４）、未選択のオブジェクト識別子があれば、処理Ｓ１１に戻って処理を続ける。
【００７２】
また、処理Ｓ１２においてメッシュの種類が「天井」であれば、アプリケーション実行部５２は、マテリアルを「透過」とする設定を関連付けて（Ｓ１５、従って当該部分は背景画像が表示されることとなる）、処理Ｓ１４に移行する。
【００７３】
また処理Ｓ１２において、メッシュの種類が「壁」であれば、アプリケーション実行部５２は、マテリアルを「岩」とし、物体の三次元モデルデータとして「岩」のデータを用いるべき旨の設定を関連付けて（Ｓ１６）、処理Ｓ１４に移行する。さらに処理Ｓ１２においてメッシュの種類が「障害物」である場合は、アプリケーション実行部５２は、メッシュの表面形状の情報を参照し（Ｓ１７）、表面形状が「平面」であれば、マテリアルを「操作パネル」とし、物体の三次元モデルデータとして「操作パネル」を用いるべき旨の設定を、選択されたオブジェクト識別子に関連付けて（Ｓ１８）、処理Ｓ１４に移行する。
【００７４】
また処理Ｓ１７において、表面形状が「凹凸のある面」である場合は、アプリケーション実行部５２は、マテリアルを「岩」とし、物体の三次元モデルデータとして「岩」のデータを用いるべき旨の設定を関連付けて（Ｓ１９）、処理Ｓ１４に移行する。処理Ｓ１７において、表面形状が「球状」である場合は、アプリケーション実行部５２は、マテリアルを「ライト」とする設定を関連付けて（Ｓ２０）、処理Ｓ１４に移行する。
【００７５】
さらに処理Ｓ１７において、表面形状が「複雑な形状」である場合は、アプリケーション実行部５２は、マテリアルを「草木」とし、物体の三次元モデルデータとして「草木」を用いるべき旨の設定を関連付けて（Ｓ２１）、処理Ｓ１４に移行する。
【００７６】
処理Ｓ１４において、未選択のオブジェクト識別子がない場合は、アプリケーション実行部５２は処理を終了する。
【００７７】
この結果、得られたオブジェクト識別子ごとの三次元モデルデータとマテリアルの設定に基づき仮想空間構成部２３が仮想空間を構成する。
【００７８】
なお、ここでの処理は一例であって、ゲームの内容によっては、現実空間を撮像した画像に基づいて、現実空間内の物体について、当該物体と同じ形状、かつ同じ表面テクスチャを有する仮想対象物を、現実空間内の当該物体の位置に対応する仮想空間内の位置に配してもよい。この例では、ゲーム内でユーザの所在する現実空間の画像が仮想空間として再構成され、当該三次元空間内に配した、ユーザの目に対応する一対の仮想的なカメラ（ユーザの左右の目の位置にそれぞれ配され、ユーザの視野の方向を向いているカメラ）の視野内の画像がそれぞれレンダリングされて表示装置４０にて表示されることとなる。
【００７９】
アプリケーション実行部５２は、また、入力されたボクセルの二次元投影像を参照して、当該投影像中で「−１」となっている領域、つまり、現実空間内のうち対象物の検出を行っていない位置に対応する仮想空間内の位置に、予め定めた種類の視覚効果を与える仮想対象物を配してもよい。具体的にアプリケーション実行部５２は、ボクセルの二次元投影像中で「−１」となっている領域を特定する情報（領域内の画素を特定する情報でよい）とともに、ゲームの処理として指定された映像効果または画像を表示する指示を、画像処理部５１に出力してもよい。
【００８０】
ここで映像効果は、例えば煙のような映像を表示させるものや、光を点滅させているかのような映像効果などがある。また、表示する画像としては「？」のような画像であってもよいし、または注意・警戒を表す画像であってもよい。
【００８１】
画像処理部５１は、この指示を受けたときには、当該指示された範囲の画素に、指示された映像効果を合成し、あるいは指示された画像を合成して出力する。
【００８２】
［動作］
本発明の実施の形態の画像処理装置１０は以上の構成を基本的に備えており、次のように動作する。ユーザが表示装置４０を頭部に装着すると、画像処理装置１０は、図７に例示する処理を開始し、ワールド座標系を設定する。
【００８３】
そして表示装置４０の所定位置（例えばカメラ４３の各撮像素子４３０の重心位置）を原点として、ユーザの初期の視線方向より後方を含むユーザ周囲のＸ軸方向に±５ｍ（合計１０ｍ）、Ｙ軸方向に±５ｍ（合計１０ｍ）、Ｚ軸方向に床から高さ３ｍの直方体範囲の現実空間を対象空間として設定する（Ｓ３１）。
【００８４】
そしてこの対象空間を、仮想的にボクセル（Voxel：仮想的な体積要素、例えば幅１０ｃｍ，奥行１０ｃｍ，高さ１０ｃｍの立方体要素）空間で表現した物体バッファ（当初はすべてのボクセルの値を「−１」と設定する）を設定して、記憶部１２に格納する（Ｓ３２）。
【００８５】
表示装置４０は、所定のタイミングごと（例えば１／１０００秒ごと）に繰り返してカメラ４３よって画像を撮像し、撮像して得た撮像画像データを画像処理装置１０へ送出している。画像処理装置１０は表示装置４０から中継装置３０を介して、撮像画像データを受け入れる。そして画像処理装置１０は、この撮像画像データに基づいて、当該画像データから得られるデプスマップを生成する。
【００８６】
画像処理装置１０は、生成したデプスマップを用いて、現実空間内の対象物（天井、床、壁、家具類など）を検出する（Ｓ３３）。また画像処理装置１０は、検出した対象物の形状を表すメッシュ（ポリゴンメッシュ）の種類や表面形状を判断し、生成したメッシュの位置を表す情報（メッシュの頂点の座標でよい）と、メッシュの種類の情報と、表面形状の情報とを関連付けて、環境メッシュリスト情報として記憶部１２に格納する（Ｓ３４：環境メッシュリスト情報生成）。
【００８７】
画像処理装置１０は、センサ４４によりユーザの頭部の移動や頭部の向きを検出し、当該検出した頭部の移動や向きの情報に基づいてレンダリングカメラの位置と視野とを設定する（Ｓ３５）。
【００８８】
画像処理装置１０はさらに、デプスマップ内の各画素を順次選択しつつ、センサ４４により検出されたユーザの頭部の移動に基づき、基準位置のワールド座標系中の位置座標を得る。そして、当該取得した位置座標に対応する物体バッファ中の座標からデプスマップの選択した画素が表す物体までの距離にあたるボクセルの値を「１」とし、当該ボクセルとは異なり、当該ボクセルからカメラ４３までの線上にあるボクセルの値を「０」とする。ここで、カメラ４３で撮像された画像データにおいて、現実空間内にある物体により隠され、撮像されていない部分については、物体が存在するか否かが不明であるとして、対応する部分のボクセルの値が「−１」のままとなる。
【００８９】
なお、画像処理装置１０は、ユーザが移動したり、頭部の向きを変えたりすることで、カメラ４３によって撮像された画像データに、過去に撮像されず、物体が存在するか否かが不明であったボクセルに対応する部分（値が「−１」であったボクセルに対応する部分）のデプスマップが得られたときには、処理Ｓ１１において当該部分のボクセルの値を、得られたデプスマップに基づいて「０」または「１」に設定して更新する。
【００９０】
画像処理装置１０は、レンダリングカメラの位置座標から、物体バッファ中でカメラ４３の視野方向にあるボクセルを二次元投影した投影像を生成する（図５）。
【００９１】
画像処理装置１０は、また、ゲームの処理として、環境メッシュリスト情報や、ボクセルの二次元投影像の情報を参照して次の処理を行う。
【００９２】
すなわち、画像処理装置１０は、環境メッシュリスト情報を参照して、検出されている対象物ごとに、そのメッシュの種類や表面形状の情報に基づき、対象物の存在する現実空間に対応する仮想空間内の領域に、対応させる仮想対象物を配して、仮想空間を構成する（Ｓ４１）。なお、仮想空間の構成に用いる背景画像や、仮想対象物の三次元モデルデータ等は、ゲームのデータとしてゲームの提供者により用意されているものを用いればよい。
【００９３】
一例として、平坦な床面上に机と、本棚と、テレビ台、テレビなどが置かれ、四方を壁に囲まれている室内に表示装置４０を装着したユーザが所在している場合、机の天板が、表面形状が平面である障害物のメッシュと判断される。そこで画像処理装置１０は、この天板のある位置に、例えば「操作パネル」の仮想対象物を配する設定を行う。また、壁については、壁の表面の位置に、「岩」として視認される仮想対象物の表面が位置するよう、仮想的な岩を配する、といった設定を行う。また天井に相当する範囲については、透明なマテリアルであるとして、背景画像を合成するよう設定して、あたかも天井がないかのような仮想空間を構成する。
【００９４】
そして画像処理装置１０は、ここで構成した仮想空間を、処理Ｓ３５で設定したレンダリングカメラの位置から、設定された視野の範囲を見たときの仮想的な立体視画像を、レンダリング処理により作成する（Ｓ４２）。またこのとき、物体バッファのボクセルを二次元投影した投影像に基づき、物体の有無が不明である部分について所定の映像効果（煙を立てるなど）を設定してもよい。
【００９５】
画像処理装置１０は、撮像画像のデプスマップと仮想的な立体視画像のデプスマップを比較し、画素毎にデプス値の差分を求める（Ｓ４３）。
【００９６】
画像処理装置１０は、画素のデプス値の差分の絶対値が所定の閾値を超える領域を未知デプス領域と判定し、未知デプス領域に未知対象物をレンダリングする（Ｓ４４）。未知対象物は、実写された対象物の画像または代替仮想対象物である。画像処理装置１０は、未知デプス領域に映像効果を加えたり、注意・警告を促す情報を表示してもよい。
【００９７】
画像処理装置１０は、こうして生成した立体視画像のデータを、表示装置４０へ送出して、立体視画像を表示させる（Ｓ４５）。
【００９８】
以下、ユーザが移動したり、頭部を動かしてカメラ４３の位置や視野方向が変化すると、新たに撮像画像データに撮像された画像に基づいて、ボクセル空間の情報や環境メッシュリスト情報が更新される。またユーザの頭部の位置及び方向によりレンダリングカメラの位置及び視野を設定している場合は、レンダリングカメラの位置及び視野も更新される。そして画像処理装置１０は、この更新された情報を参照してレンダリングの処理を行って、立体視画像のデータを更新して表示させる。
【００９９】
また画像処理装置１０は、ゲームの処理として、ユーザが机の天板に対応する仮想的な空間内の位置にある仮想的な操作パネルに触れると、操作パネルに対する操作を受け入れる処理を実行する。このときユーザは、仮想空間内で操作パネルの位置に手を伸ばせば、現実空間における机の天板に触れることとなるので、触覚的なフィードバックも得ることができる。またユーザが、机の天板がある範囲まで移動しようとすることがなくなる（操作パネルが表示されているため、操作パネルを押しのけるような移動をしなくなる）など、周囲に存在する障害物の位置をゲーム上の処理において自然に感得させることが可能となる。
【０１００】
図８〜図１１を参照して、画像処理装置１０によってレンダリングされる立体視画像を説明する。ここでは説明の簡単のため、片目（左目または右目）の画像データを例示する。
【０１０１】
図８は、画像取得部２１により取得される撮像画像データを説明する図である。白い机の上に箱１１０が置かれており、壁にはホワイトボード１２０が掛けられている。
【０１０２】
図９は、画像生成部２５により生成される仮想空間内の仮想対象物の立体視画像を説明する図である。机３００の表面には木目調のテクスチャが貼り付けられ、天井や壁にもテクスチャや仮想的な凹凸が形成される。図８の机の上に存在していた箱１１０は、図９では仮想的な入れ物１４０に置換されて同じ位置に配置される。図８の壁に掛けられていたホワイトボード１２０は、図９では仮想的な掲示板１５０に置換されて同じ位置に配置される。
【０１０３】
現実空間を空間スキャンして、床、壁、天井、机などの静的な物体を認識して仮想対象物に置き換えた後、動的な物体が現実空間に進入してきた場合、後から進入した動的な物体は仮想対象物に置き換えられないため、突然現れた動的な物体はそのままでは仮想空間内に表示されない。そこで動的な物体を仮想空間に表示するために、撮像画像と仮想空間の画像の間でデプスを比較して前後関係を判定して仮想対象物よりも手前にある撮像画像中の物体を仮想空間内に重畳する。
【０１０４】
現実空間に存在する静的な物体を仮想対象物に置き換えて表示する場合、撮像画像のデプスと仮想対象物の立体視画像のデプスはほぼ一致するが、画素毎に見た場合、撮像画像の物体の方が前に位置したり、仮想対象物の方が前に位置することがあり、画素毎にデプス値が競合する。そのため、撮像画像のデプス値をそのまま仮想対象物のデプス値と比較して奥行き判断に利用すると、前後関係が正しく表示されない。そこで、デプス比較部２２がデプス値の差分の絶対値が所定の閾値を越えた場合に、未知デプス領域であると判定するようにしたことで、画像生成部２５は、ノイズを発生させることなく、撮像画像から仮想対象物よりも手前にある動的な物体を抽出して仮想空間に表示することができる。
【０１０５】
図９の仮想的な入れ物１４０のデプスは、図８の現実の箱１１０のデプスとほぼ同じであり、図９の仮想的な掲示板１５０のデプスは、図８の現実のホワイトボード１２０のデプスとほぼ同じである。デプス比較部２２が現実空間内の対象物のデプス値と仮想対象物のデプス値の差分を計算すると、差分の絶対値は所定の閾値内に収まる。したがって、これらの仮想対象物がレンダリングされる領域については未知デプス領域になることはない。
【０１０６】
他方、画像取得部２１が取得した撮像画像には写っていなかった動的な物体が後から現実空間内に進入してきた場合、そのような動的な物体を置換する代替仮想対象物はあらかじめ決められていない。そのため、動的な物体が実写された領域については、デプス比較部２２が撮像画像のデプスと仮想画像のデプスの差分を計算すると所定の閾値を越えるので、未知デプス領域となる。
【０１０７】
このように現実空間に後から進入してくる物体の撮像領域は未知デプス領域になるが、未知デプス領域に何も表示しないことにすると、ユーザは動的な物体の進入に気づかず、動的な物体にぶつかるなど予期しないことが発生しうる。たとえば、屋内で表示装置を装着して使用する場合、犬や人が進入してくる場合がある。屋外で表示装置を装着して使用する場合、ボールが突然飛んでくることがある。このような場合、何らかの形で仮想空間内に動的な物体の存在を表示し、仮想空間内に突然出現した物体をユーザに視認させることで、ユーザに危険を回避する行動などを取らせることができる。
【０１０８】
図１０は、現実空間に動的な物体が進入した場合に画像生成部２５により生成される仮想空間内の仮想対象物の立体視画像を説明する図である。ここでは動的な物体としてボール１６０が現実空間に後から進入してきた場合を説明する。ボール１６０が実写された領域では撮像画像のデプス値と仮想画像のデプス値の差分の絶対値が所定の閾値を越えるため、ボール１６０が実写された領域は未知デプス領域と判定される。ここでは未知デプス処理部２７は、実写されたボール１６０の画像を未知デプス領域に表示するように画像生成部２５に指示する。画像生成部２５は、レンダリングされた仮想空間の画像にボール１６０の画像を重畳する。ボール１６０の実写画像を用いずに、代替仮想対象物を未知デプス領域にレンダリングしてもよい。たとえば、現実空間に犬が進入してきた場合、仮想的な犬や別のキャラクタを未知デプス領域にレンダリングしてもよい。
【０１０９】
図１１は、現実空間にユーザの身体が進入した場合に画像生成部２５により生成される仮想空間内の仮想対象物の立体視画像を説明する図である。ここではユーザが手を伸ばして仮想的な入れ物１４０を取ろうとする場合を説明する。現実空間に後から進入するユーザの手１７０についてはあらかじめ置換する仮想対象物が決められていないため、ユーザの手１７０が撮像される領域では、撮像画像のデプス値と仮想画像のデプス値の差分の絶対値が所定の閾値を超え、手１７０が実写された領域は未知デプス領域と判定される。ここでは、実写された手１７０の画像が未知デプス領域に重畳されている。実写された手１７０の画像の代わりに代替仮想対象物として、たとえばロボットの手を未知デプス領域にレンダリングしてもよい。
【０１１０】
未知デプス領域において、未知対象物が現実空間内の対象物（または対応する仮想対象物）と衝突するかどうかを判定し、衝突することが判定された場合、何らかのインタラクションを発生させたり、ゲームのインタフェースとして利用してもよい。以下、未知デプス領域におけるインタラクションについて詳しく説明する。
【０１１１】
撮像画像から連続した未知デプス領域を切り出し、未知対象物が占める空間を立方体や球体などで近似したコリジョン領域を生成する。未知対象物のコリジョン領域をカメラ空間からワールド空間に変換し、未知対象物のコリジョン領域が、現実空間内の対象物や対応する仮想対象物、ユーザの身体、その他の仮想オブジェクトが占める領域と接触するかどうかをデプス値を比較することで判定する。これにより、未知対象物が、現実空間内の対象物や対応する仮想対象物、ユーザの身体、その他の仮想オブジェクトと衝突するかどうかを判定することができる。この衝突判定はデプス比較部２２で行われる。
【０１１２】
未知対象物が、現実空間内の対象物や対応する仮想対象物、ユーザの身体、その他の仮想オブジェクトと衝突すると判定された場合、衝突した対象に応じてインタラクションを発生させる。衝突インタラクションの生成は未知デプス処理部２７の指示により、画像生成部２５で行われる。衝突インタラクションは以下のような例がある。
【０１１３】
（１）未知対象物が現実空間の壁に衝突した場合（現実空間の壁は仮想空間の壁に置換されていることに留意する）
・仮想空間の壁の材質に合わせた効果音を鳴らす。
・衝突した場所に衝突を表現するエフェクトを表示する。
・仮想空間の壁に傷をつけたり、穴を空けて見せる。
・現実空間の壁の一部を的にした的当てをシミュレーションして、ブロック崩しのような映像効果を拡張現実の映像内に表示する。
【０１１４】
（２）未知対象物がユーザーの身体に衝突した場合
・効果音を鳴らしたり、衝突した身体部位の映像にエフェクトを重畳する。衝突した身体部位によって効果音やエフェクトのパターンを変えてもよい。
・未知対象物がユーザの身体に接触している間、未知対象物に対応する代替仮想対象物の色や見た目を変える。未知対象物に最後に接触したユーザによって色や見た目を変えてもよい。
・ユーザが未知対象物を持っている間は未知対象物に対応する代替仮想対象物にエネルギーが溜まり、たとえば形状や大きさ、色などが変化する。
【０１１５】
（３）未知対象物が他の仮想オブジェクトにぶつかった場合
・衝突の物理現象を反映させて仮想オブジェクトの位置を変化させる。
・仮想オブジェクト（たとえば敵キャラクタ）にダメージを与えたり、エフェクトを重畳して仮想オブジェクトを消す。
・仮想オブジェクト（たとえば敵キャラクタ）からの攻撃を防ぐ。
・空中に浮かぶアイテムを集める。
・モンスターを未知対象物に対応する代替仮想対象物（たとえばボール）に閉じ込める。
【０１１６】
また、撮像画像から切り出された未知デプス領域をフレーム間で差分を取ると、フレーム間で移動していく未知デプス領域が同一対象物のものであるかどうかを判定することができる。未知デプス領域のフレーム間差分が大きい場合、同一の未知対象物が移動したのではなく、新たな未知対象物が発生したと考えられる。また、未知デプス領域のフレーム間差分から未知対象物の移動速度を推定することができ、衝突判定の先読みが可能になる。
【０１１７】
切り出された未知デプス領域に重なる撮像画像の特徴点の変化により、未知対象物のフレーム間の姿勢差分（速度と角速度）を推定することもできる。カメラがヘッドマウントディスプレイにある場合、ヘッドマウントディスプレイの姿勢を考慮して未知対象物のフレーム間の姿勢差分を推定することになる。
【０１１８】
なお、未知対象物がカメラの画角から外れた場合は、最後に未知対象物を観測した時点の速度情報を使って、しばらくの間、未知対象物の動きやコリジョンを予測することができる。
【０１１９】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【０１２０】
上記の説明では、ビデオ透過（ビデオシースルー）型の表示装置を例に説明したが、表示部をハーフミラー等で構成し、ユーザに眼前の現実空間を視認させる光学透過（オプティカルシースルー）型の表示装置の場合にも本実施の形態を適用することができる。光学透過型の表示装置の場合、現実空間の奥行き情報を仮想空間の画像の奥行き情報と比較して、仮想対象物よりも手前に現実空間の物体が存在する領域については、仮想空間の画像を削除し現実空間を透過して視認させる。この奥行き情報の比較に本実施の形態のデプス比較部２２で説明したデプス値の差分の絶対値を所定の閾値と比較する方法を利用することで未知デプス領域を判定し、未知デプス領域について仮想空間の画像を表示せずに透過させることで、仮想対象物よりも手前に突然進入した現実空間内の動的な物体についてはユーザは透過して見ることができる。
【符号の説明】
【０１２１】
１０  画像処理装置、  １１  制御部、  １２  記憶部、  １３  インタフェース部、  ２０  操作デバイス、  ２１  画像取得部、  ２２  デプス比較部、  ２３  仮想空間構成部、  ２４  レンダリングカメラ設定部、  ２５  画像生成部、  ２６  出力部、  ２７  未知デプス処理部、  ３０  中継装置、  ４０  表示装置、  ４１  映像表示素子、  ４２  光学素子、  ４３  カメラ、  ４４  センサ、  ４５  通信インタフェース、  ５１  画像処理部、  ５２  アプリケーション実行部、  ４３０  撮像素子、  ４４１  頭部方向センサ。
【産業上の利用可能性】
【０１２２】
この発明は、画像処理技術に利用できる。
【図１】
2019123729.tif 000003
【図２】
2019123729.tif 000004
【図３】
2019123729.tif 000005
【図４】
2019123729.tif 000006
【図５】
2019123729.tif 000007
【図６】
2019123729.tif 000008
【図７】
2019123729.tif 000009
【図８】
2019123729.tif 000010
【図９】
2019123729.tif 000011
【図１０】
2019123729.tif 000012
【図１１】
2019123729.tif 000013
【国際調査報告】
2019123729.tif 000014
2019123729.tif 000015