(57)【要約】  ユーザが頭部に装着して使用する表示装置と接続される画像処理装置であって、当該ユーザの周囲の現実空間の画像を取得し、視野の情報を決定して、取得した現実空間の画像に基づき、決定した情報で特定される視野の画像を生成する。そして当該生成した画像を、前記表示装置に出力する画像処理装置である。
2017191703.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが頭部に装着して使用する表示装置と接続される画像処理装置であって、
当該ユーザの周囲の現実空間の画像を取得する画像取得手段と、
視野の情報を決定する決定手段と、
前記取得した現実空間の画像に基づき、前記決定した情報で特定される視野の画像を生成する画像生成手段と、
を有し、前記画像生成手段が生成した画像を、前記表示装置に出力する画像処理装置。
【請求項２】
請求項１記載の画像処理装置であって、
前記視野の情報は、前記表示装置を装着したユーザの目の位置を表す情報を含む画像処理装置。
【請求項３】
請求項１または２に記載の画像処理装置であって、
前記視野の情報は、前記表示装置を装着したユーザの顔の向きの情報を含む画像処理装置。
【請求項４】
請求項１から３のいずれか一項に記載の画像処理装置であって、
前記画像生成手段は、前記取得した現実空間の画像に基づいて、現実空間内に配された物体を検出し、現実空間に対応する仮想空間であって、前記検出した各物体に対応する三次元モデルを、前記現実空間の各物体の位置に対応する仮想空間内の位置に配し、前記視野の画像を生成する画像処理装置。
【請求項５】
請求項１から４のいずれか一項に記載の画像処理装置であって、
前記画像生成手段は、前記取得した現実空間の画像に基づいて、現実空間内に配された物体を検出し、現実空間に対応する仮想空間であって、前記検出した各物体に対応する三次元モデルを、前記現実空間の各物体の位置に対応する仮想空間内の位置に配し、前記視野の画像を生成する画像生成手段であり、
指示により、
前記取得した現実空間の画像を出力する処理と、
前記画像生成手段により生成された画像を出力する処理と、
のいずれかを実行する画像処理装置。
【請求項６】
ユーザが頭部に装着して使用する表示装置と接続される画像処理装置を、
当該ユーザの周囲の現実空間の画像を取得する画像取得手段と、
視野の情報を決定する決定手段と、
前記取得した現実空間の画像に基づき、前記決定した情報で特定される視野の画像を生成する画像生成手段と、
として機能させ、前記画像生成手段が生成した画像を、前記表示装置に出力させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザが頭部に装着して使用する表示装置と接続される画像処理装置に関する。
【背景技術】
【０００２】
近年、ヘッドマウントディスプレイなど、ユーザが頭部に装着して使用する表示装置が普及しつつある。このような表示装置は、ユーザの目の前に画像を結像させることで、その画像をユーザに閲覧させる。こうした表示装置には、ユーザの眼前を表示部で覆い、ユーザに眼前の現実空間を見せないようにする非透過型のものと、表示部をハーフミラー等で構成し、ユーザに眼前の現実空間を視認させる透過型（光学シースルー方式）のものがある。【０００３】
また、非透過型の表示装置であっても、別途、カメラで撮影したユーザの眼前の現実空間を表示部に表示することで、透過型の表示装置同様にユーザに眼前の現実空間を視認させる、疑似的に透過型の表示装置を実現するもの（カメラシースルー方式と呼ばれる）が存在する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、カメラシースルー方式の表示装置では、ユーザの実際の目の位置を視点とした画像と異なり、カメラからの視点の画像をユーザが見ることとなるので、ユーザは例えば手の位置の距離感がつかみにくいという問題点があった。【０００５】
本発明は上記実情に鑑みて為されたもので、その目的の一つは、ユーザに対してより正確な手の位置の距離感を与えつつ画像を表示できる画像処理装置を提供することである。
【課題を解決するための手段】
【０００６】
上記従来例の問題点を解決する本発明は、ユーザが頭部に装着して使用する表示装置と接続される画像処理装置であって、当該ユーザの周囲の現実空間の画像を取得する画像取得手段と、視野の情報を決定する決定手段と、前記取得した現実空間の画像に基づき、前記決定した情報で特定される視野の画像を生成する画像生成手段と、を有し、前記画像生成手段が生成した画像を、前記表示装置に出力することとしたものである。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施の形態に係る画像処理装置を含む画像処理システムの例を表す構成ブロック図である。
【図２】本発明の実施の形態に係る画像処理装置の例を表す機能ブロック図である。
【図３】本発明の実施の形態に係る画像処理装置が用いる頭部の傾きの情報の例を表す説明図である。
【図４】本発明の実施の形態に係る画像処理装置が生成する物体バッファの概要を表す説明図である。
【図５】本発明の実施の形態に係る画像処理装置が生成する物体バッファの投影像を表す説明図である。
【図６】本発明の実施の形態に係る画像処理装置の動作例を表すフローチャート図である。
【図７】本発明の実施の形態に係る画像処理装置の動作例を表す説明図である。
【発明を実施するための形態】
【０００８】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る画像処理装置１０を含む画像処理システム１は、図１に例示するように、画像処理装置１０と、操作デバイス２０と、中継装置３０と、表示装置４０と、を含んで構成されている。
【０００９】
画像処理装置１０は、表示装置４０が表示すべき画像を供給する装置である。例えば画像処理装置１０は、家庭用ゲーム機、携帯型ゲーム機、パーソナルコンピューター、スマートフォン、タブレット等である。図１に示されるように、この画像処理装置１０は、制御部１１と、記憶部１２と、インタフェース部１３と、を含んで構成される。
【００１０】
制御部１１は、ＣＰＵ等のプログラム制御デバイスであり、記憶部１２に格納されているプログラムを実行する。本実施の形態では、この制御部１１は、表示装置４０を装着したユーザの周囲の現実空間の画像を取得し、当該取得した現実空間の画像に基づいて、指定された視野の画像を生成する。
【００１１】
具体的に、本実施の形態の一例では、この制御部１１は、ユーザの位置を中心として、ユーザの後方と含むユーザ周囲の所定サイズ（例えば幅（ユーザが表示装置４０を装着した時点（つまり初期）のユーザの視線方向に直交し、床面に平行な方向）１０ｍ、奥行（床面に平行な初期のユーザの視線方向）１０ｍ、高さ３ｍの直方体範囲）の現実空間（以下、対象空間と呼ぶ）に対応する仮想的な三次元空間（以下、仮想空間と呼ぶ）を構成する。
【００１２】
すなわち制御部１１は、現実空間の画像を参照しつつ、この仮想空間内に仮想的な三次元の物体を配し、あるいは映像効果を適用する。また、この制御部１１は、この仮想空間内に、仮想空間の画像をレンダリングする際に用いる視野に係る情報（ユーザの左目に対応する視野と右目に対応する視野の二つに係る情報または共通の一つの視野の情報）を得て、当該得た情報で特定される視野から見た仮想空間の画像（左右のそれぞれの目に対応する視野の情報を用いる場合は立体視画像となる）を生成する。そして制御部１１は、生成した画像を表示装置４０に出力する。この制御部１１の詳しい動作については、後に述べる。
【００１３】
記憶部１２は、ＲＡＭ等のメモリデバイスを少なくとも一つ含み、制御部１１が実行するプログラムを格納する。また、この記憶部１２は制御部１１のワークメモリとしても動作し、制御部１１がプログラム実行の過程で使用するデータを格納する。このプログラムは、コンピュータ可読かつ非一時的な記録媒体に格納されて提供され、この記憶部１２に格納されたものであってもよい。
【００１４】
インタフェース部１３は、操作デバイス２０や中継装置３０との間で画像処理装置１０の制御部１１がデータ通信を行うためのインタフェースである。画像処理装置１０は、インタフェース部１３を介して有線又は無線のいずれかで操作デバイス２０や中継装置３０等と接続される。一例として、このインタフェース部１３は、画像処理装置１０が供給する画像（立体視画像）や音声を中継装置３０に送信するために、ＨＤＭＩ（登録商標）（High-Definition Multimedia Interface）などのマルチメディアインタフェースを含んでよい。また、中継装置３０経由で表示装置４０から各種の情報を受信したり、制御信号等を送信したりするために、ＵＳＢ等のデータ通信インタフェースを含んでよい。さらにインタフェース部１３は、操作デバイス２０に対するユーザの操作入力の内容を示す信号を受信するために、ＵＳＢ等のデータ通信インタフェースを含んでよい。
【００１５】
操作デバイス２０は、家庭用ゲーム機のコントローラ等であって、ユーザが画像処理装置１０に対して各種の指示操作を行うために使用される。操作デバイス２０に対するユーザの操作入力の内容は、有線又は無線のいずれかにより画像処理装置１０に送信される。なお、操作デバイス２０は必ずしも画像処理装置１０と別体でなくてもよく、画像処理装置１０の筐体表面に配置された操作ボタンやタッチパネル等を含んでもよい。
【００１６】
中継装置３０は、有線又は無線のいずれかにより表示装置４０と接続されており、画像処理装置１０から供給される画像（立体視画像）のデータを受け付けて、受け付けたデータに応じた映像信号を表示装置４０に対して出力する。このとき中継装置３０は、必要に応じて、供給された画像が表す映像に対して、表示装置４０の光学系によって生じる歪みを補正する処理などを実行し、補正された映像を表す映像信号を出力してもよい。なお画像処理装置１０から供給される画像が立体視画像であれば、中継装置３０から表示装置４０に供給される映像信号は、立体視画像に基づいて生成した左目用の映像信号と右目用の映像信号との二つの映像信号を含んでいる。また、中継装置３０は、立体視画像や映像信号以外にも、音声データや制御信号など、画像処理装置１０と表示装置４０との間で送受信される各種の情報を中継する。
【００１７】
表示装置４０は、ユーザが頭部に装着して使用する表示デバイスであって、中継装置３０から入力される映像信号に応じた映像を表示し、ユーザに閲覧させる。本実施形態では、表示装置４０はユーザの右目と左目とのそれぞれの目の前に、それぞれの目に対応した映像を表示するものとする。この表示装置４０は、図１に示したように、映像表示素子４１、光学素子４２、カメラ４３、センサ部４４、及び通信インタフェース４５を含んで構成される。
【００１８】
映像表示素子４１は、有機ＥＬ表示パネルや液晶表示パネルなどであって、中継装置３０から供給される映像信号に応じた映像を表示する。この映像表示素子４１は、左目用の映像と右目用の映像とを一列に並べて表示する１つの表示素子であってもよいし、左目用の映像と右目用の映像とをそれぞれ独立に表示する一対の表示素子を含んで構成されてもよい。また、スマートフォン等のディスプレイ画面が、そのまま映像表示素子４１として用いられてもよい。この場合、スマートフォン等が、中継装置３０から供給される映像信号に応じた映像を表示することとなる。
【００１９】
また表示装置４０は、ユーザの網膜に直接映像を投影する網膜照射型（網膜投影型）の装置であってもよい。この場合、映像表示素子４１は、光を発するレーザーとその光を走査するＭＥＭＳ（Micro Electro Mechanical Systems）ミラーなどによって構成されてもよい。
【００２０】
光学素子４２は、ホログラムやプリズム、ハーフミラーなどであって、ユーザの目の前に配置され、映像表示素子４１が表示する映像の光を透過又は屈折させて、ユーザの目に入射させる。具体的に、この光学素子４２は、左目用光学素子４２Ｌと、右目用光学素子４２Ｒとを含んでもよい。この場合、映像表示素子４１が表示する左目用の映像は、左目用光学素子４２Ｌを経由してユーザの左目に入射し、右目用の映像は右目用光学素子４２Ｒを経由してユーザの右目に入射するようにしてもよい。これによりユーザは、表示装置４０を頭部に装着した状態で、左目用の映像を左目で、右目用の映像を右目で、それぞれ見ることができるようになる。なお、本実施形態において表示装置４０は、ユーザが外界の様子を視認することができない非透過型の表示装置であるものとする。
【００２１】
カメラ４３は、表示装置４０の前面（ユーザの前面側）の中央よりやや左側と中央よりやや右側とにそれぞれ配した一対の撮像素子４３０Ｌ，４３０Ｒ（以下の説明で左右を区別する必要のないときには、撮像素子４３０としてまとめて称する）を含む。またこのカメラ４３は、ユーザの背面側に配された少なくとも一つの撮像素子４３０Ｂを含んでもよい。このカメラ４３は、少なくとも撮像素子４３０Ｌ，Ｒで撮像したユーザ前方の現実空間の画像を撮像し、当該撮像して得た画像データを、中継装置３０を介して画像処理装置１０に対して出力する。
【００２２】
センサ４４は、ユーザの頭部の方向（ユーザの顔の前面方向）と位置とを検出する頭部方向センサ４４１をさらに含んでもよい。この場合、当該頭部方向センサ４４１は、ユーザの頭部の方向（顔面の方向）を検出する。具体的にこの頭部方向センサ４４１は、ジャイロ等であり、表示装置４０の装着時の初期の方向からの床面に平行な面内での頭部方向の回転角度と、仰角方向の回転角度と、視野方向の軸まわりの回転角度を検出して出力する。またこの頭部方向センサ４４１は、表示装置４０の所定の位置（例えばカメラ４３の撮像素子４３０Ｌと撮像素子４３０Ｒとを結ぶ線分を二等分する点の位置）を基準位置として、この基準位置の、ユーザの左右方向（横断面と冠状面の交差する軸、以下Ｘ軸とする）、前後方向（矢状面と横断面の交差する軸、以下Ｙ軸とする）、上下方向（Ｚ軸とする）への装着時からの移動量（ｘ，ｙ，ｚ）を検出して出力する。この基準位置を原点とした各撮像素子４３０の相対的座標は既知であるものとする。
【００２３】
通信インタフェース４５は、中継装置３０との間で映像信号や、画像データ等のデータの通信を行うためのインタフェースである。例えば表示装置４０が中継装置３０との間で無線ＬＡＮやＢｌｕｅｔｏｏｔｈ（登録商標）などの無線通信によりデータの送受信を行う場合、通信インタフェース４５は通信用のアンテナ、及び通信モジュールを含む。
【００２４】
次に、本発明の実施の形態に係る画像処理装置１０の制御部１１の動作について説明する。この制御部１１は、記憶部１２に格納されたプログラムを実行することにより、図２に例示するように、機能的に、画像取得部２１と、視野決定処理部２３と、画像生成部２４と、出力部２５とを実現する。
【００２５】
画像取得部２１は、表示装置４０を装着したユーザの周囲の現実空間の画像を取得する。具体的にこの画像取得部２１は、表示装置４０から中継装置３０を介して、カメラ４３にて撮像した画像データを受け入れる。本実施の形態の例では、カメラ４３で撮像した画像データは、左右に配した一対の撮像素子４３０で撮像された一対の画像データであり、各画像データの視差により撮像された現実空間内の対象物までの距離が判断できるものである。本実施の形態では、この画像取得部２１は、カメラ４３で撮像された画像データに基づいて、当該画像データ（以下区別のため撮像画像データと呼ぶ）と同じサイズのデプスマップを生成して出力する。ここでデプスマップは、カメラ４３で撮像された画像データの各画素に撮像された対象物までの距離を表す情報を、当該画素に対応する画素の値とした画像データである。
【００２６】
視野決定処理部２３は、仮想空間をレンダリングするための視野の情報を決定する。具体的な例として、この視野決定処理部２３は、カメラ４３に含まれる撮像素子４３０の位置によらず、予め定められた（例えばプログラムにハードコードされていてもよいし、設定ファイルに記述されたものを読取ったものであってもよい）仮想空間内のレンダリングを行う際のカメラ（以下、レンダリングカメラと呼ぶ。このレンダリングカメラの位置から見た画像がレンダリングされる）の位置座標ＲＣと、視野の方向を表す情報（例えば位置座標ＲＣを起点とし、視野の中心を通るベクトル情報）を得て、これらを視野の情報とする。
【００２７】
またこの視野決定処理部２３は、別の例として、ユーザの動きに伴って時間変化する現実空間内の基準位置からの相対座標として仮想空間内のレンダリングカメラの位置座標ＲＣを得てもよい。一つの例として、基準位置は、撮像素子４３０の位置とし、この撮像素子４３０から予め定めた相対座標値だけ移動した位置に対応する仮想空間内の位置を、レンダリングカメラの位置座標ＲＣとしてもよい。
【００２８】
ここで相対座標は、例えば撮像素子４３０Ｒ（または４３０Ｌ）の位置から、表示装置４０を装着したユーザの右目（または左目）があるべき位置への相対座標であってもよい。この例では、ユーザの目の位置に対応する仮想空間内の位置がレンダリングカメラの位置座標ＲＣとなる。
【００２９】
またこの視野決定処理部２３は、頭部方向センサ４４１が出力する情報から、視野の方向を表す情報（例えば位置座標ＲＣを起点とし、視野の中心を通るベクトル情報）を得てもよい。この場合、視野決定処理部２３は、頭部方向センサ４４１が出力する情報から、図３に例示するような、表示装置４０の装着時の初期の方向からの床面に平行な面内での頭部方向の回転角度θと、仰角方向の回転角度φと、視野方向の軸まわりの回転角度ψと、頭部の移動量（ｘ，ｙ，ｚ）を取得する。そして視野決定処理部２３は、回転角度θ、φによりユーザの視野の方向が決定され、回転角度ψによって視野の方向を軸としたユーザの首の傾きが決定される。
【００３０】
一例としてこの視野決定処理部２３は、現実空間におけるユーザの左右の目の位置に対応する仮想空間内の座標を、レンダリングカメラの位置座標ＲＣとする。すなわち、カメラ４３に含まれる左側の撮像素子４３０Ｌと、右側の撮像素子４３０Ｒの対象空間内の座標情報（ユーザの頭部の移動量に係る情報及び、基準位置から各撮像素子４３０までの相対的座標とにより演算できる）と、各撮像素子４３０の位置に対する当該左右の目の相対座標の情報とから、対象空間内のＸＹＺ座標系における、ユーザの左右の目の位置に対応する仮想空間内の座標情報を、レンダリングカメラの位置座標ＲＣとして画像生成部２４に出力する。
【００３１】
またこの視野決定処理部２３は、回転角度θ、φによりユーザの視野の方向が決定した視野の方向の情報と、回転角度ψによって決定された、視野の方向を軸としたユーザの首の傾きの情報とを画像生成部２４に出力する。
【００３２】
画像生成部２４は、視野決定処理部２３からレンダリングカメラの位置座標ＲＣ及び視野の方向の情報を受け入れる。そしてこの画像生成部２４は、取得した現実空間の画像に基づいて、上記情報で特定される視野を見たときの立体視画像を生成する。
【００３３】
本実施の形態の一例では、この画像生成部２４は、画像取得部２１が出力するデプスマップの情報に基づいて、まず、環境メッシュリスト情報と、物体バッファと、を生成する。ここで環境メッシュリスト情報は、デプスマップをメッシュに分割し、当該メッシュの頂点座標（画素の位置を表す情報）と、メッシュの識別情報と、メッシュ内の画素に対応する撮像画像データ内の画素に撮像された対象物の法線の情報と、メッシュの種類情報（予め定めた種類のいずれであるかを表す情報）と、メッシュの表面形状に関する情報とを含む。
【００３４】
このメッシュの種類の情報は、メッシュ内の画素に対応する撮像画像データ内の画素に撮像された対象物が床、天井、壁、障害物（床から所定の高さ以内にある壁以外の物体などとして予め定めておく）、その他のいずれであるかを表す。また、メッシュの表面形状に関する情報は、平面、凹凸のある面、球状の面、複雑な形状の面といった表面形状のいずれであるかを表す情報とする。
【００３５】
このように、デプスマップの情報等から、撮像画像データ内の対象物の種類や、表面形状等を認識する方法には、種々のものがあるが、どのような方法を採用するかはここでは問わないこととする。
【００３６】
また物体バッファは、ユーザの位置と、ユーザの視線方向より後方とを含むユーザ周囲の所定サイズ（例えば幅（初期のユーザの視線方向に直交し、床面に平行な方向）１０ｍ、奥行（床面に平行な初期のユーザの視線方向）１０ｍ、高さ３ｍの直方体範囲）の現実空間（以下、対象空間と呼ぶ）を仮想的にボクセル（Voxel：仮想的な体積要素、例えば幅１０ｃｍ，奥行１０ｃｍ，高さ１０ｃｍの立方体要素）空間で表現したものであり、物体が存在するボクセルの値（ボクセル値）を「１」、存在しないボクセルの値を「０」、存在するか否かが不明なボクセルの値を「−１」と設定したものである（図４）。
【００３７】
図４では、図示の都合上、一部のボクセルのみを示し、またボクセルのサイズも説明のために適宜設定している。この対象空間に対するボクセルのサイズは、必ずしも実施時に適したものを示したものではない。また、図４では、対象空間の奥側隅に立方体状の物体が配され、その表面に相当するボクセルの値を、物体が存在することを表す「１」に設定され、表面から隠された部分のボクセルの値を、不明であることを表す「−１」とし、物体表面までの間にあるボクセルの値を、何もないことを表す「０」と設定する例を示している。
【００３８】
画像生成部２４は、デプスマップの情報に基づいてこのボクセル値を設定する。デプスマップ上の各画素は、デプスマップの元となった画像データの撮影時のカメラ４３の位置座標（基準位置の座標でよい、以下撮影時位置と呼ぶ）を頂点とし、デプスマップの画角に相当する仮想的な四角錐の底辺を、デプスマップの解像度（縦ｐｙ画素×横ｐｘ画素）で分割したものである。そこで撮影時位置の座標を起点として各画素の頂点を通る線分に平行なベクトル（ワールド座標系での座標の差）や、撮影時位置の座標を起点として各画素の中心を通る線分に平行なベクトル（ワールド座標系での座標の差）が、撮影時位置の座標と、デプスマップの画角を表す情報と、デプスマップの解像度とから、各画素の方向として演算できる。
【００３９】
そこで、画像生成部２４は、デプスマップ上の各画素について、撮影時位置の座標（基準位置の座標でよい）に対応する物体バッファ内の座標から当該画素の方向にあり、デプスマップが表す物体までの距離にあたるボクセルの値を「１」とし、当該ボクセルとは異なり、当該ボクセルからカメラ４３までの線上にあるボクセルの値を「０」とする。また画像生成部２４は、カメラ４３で撮像された画像データにおいて、現実空間内にある物体により隠され、撮像されていない部分（机や壁の裏、床に置かれた物の陰となっている部分）については、物体が存在するか否かが不明であるとして、対応する部分のボクセルの値を「−１」と設定する。
【００４０】
画像生成部２４は、ユーザが移動したり、視線方向を変えたりすることで、カメラ４３によって撮像された画像データに、過去に撮像されず、物体が存在するか否かが不明であったボクセルに対応する部分（値が「−１」であったボクセルに対応する部分）のデプスマップが得られたときには、当該部分のボクセルの値を、得られたデプスマップに基づいて「０」または「１」に設定して更新する。
【００４１】
なお、デプスマップ等の情報から、このような物体の存在する範囲を表す三次元空間内のボクセル値を設定する方法は、ここで述べた方法のほか、３Ｄスキャンの方法で広く知られた方法等、種々の方法を採用できる。
【００４２】
さらに画像生成部２４は、視野決定処理部２３から入力された情報で特定されるレンダリングカメラの位置座標ＲＣから、物体バッファ中で、視野決定処理部２３から入力された情報で特定される視野方向にある、値が「０」でないボクセルを二次元投影した投影像を生成する（図５）。そして画像生成部２４は、取得された現実空間の画像に基づいて、現実空間内に配された物体を検出し、当該検出した各物体の位置に仮想的な物体を配した立体視画像を生成して出力する。具体的な例として、画像生成部２４は、予め定めた規則（対象物変換規則と呼ぶ）に従って、仮想空間を構成する。
【００４３】
一例として、この対象物変換規則は次のようなものである。ボクセルの値が「１」であって、対応する部分のメッシュについて、
（１）メッシュの種類が「天井」であれば、背景を合成する。
（２）メッシュの種類が障害物で、かつメッシュ表面形状が平面である物体の位置には仮想オブジェクト「操作パネル」を配置する。
（３）メッシュの種類が障害物で、かつメッシュ表面形状が凹凸のある面である物体の位置は、仮想オブジェクトである「岩」または「箱」を配置する。
（４）メッシュの種類が障害物で、かつメッシュ表面形状が球状の物体の位置には、仮想オブジェクトである「ライト」を配置する。
（５）メッシュの種類が障害物で、かつメッシュ表面形状が複雑な形状の物体のある範囲には、仮想オブジェクトである「樹木，草木」を配置する。
【００４４】
画像生成部２４は、別途、背景画像と、操作パネルや、岩、箱、樹木、草木等の仮想オブジェクトの三次元モデルデータ等の入力を受け入れる。そして、図５に例示した投影像のうちボクセル値が「１」であるボクセルが投影された範囲であって、対応する範囲のメッシュが対象物変換規則に基づいて「操作パネル」とされた位置に、操作パネルの仮想オブジェクトを配する。以下、同様に、投影像のうちボクセル値が「１」であるボクセルが投影された範囲であって、対応する範囲のメッシュが対象物変換規則に基づいて「岩」または「箱」とされた部分に対応する位置に、「岩」または「箱」の仮想オブジェクトを配し、…というように、各仮想オブジェクトを配していく。このように仮想空間内に、三次元モデルデータで表される仮想オブジェクトを配する処理は、三次元グラフィックスを作成する際の処理において広く知られているので、ここでの詳しい説明を省略する。
【００４５】
そして画像生成部２４は、仮想オブジェクトを配した後に、視野決定処理部２３から入力された、レンダリングカメラの位置座標ＲＣ（ここではユーザの左目及び右目のそれぞれに対応する座標とする）から、視野決定処理部２３から入力された情報で特定される視野方向を見た像をそれぞれレンダリングする。画像生成部２４は、レンダリングして得た一対の画像データを、立体視画像として出力部２５に出力する。そして出力部２５は、画像生成部２４が生成した立体視画像の画像データを、表示装置４０に対して中継装置３０を介して出力する。
【００４６】
なお、画像生成部２４は、レンダリングの際、ユーザの首の傾きに係る角度ψの情報を用いて、この角度ψだけ傾いた画像データを生成してもよい。
【００４７】
さらに本実施の形態では、画像生成部２４は、指示により、仮想空間の立体視画像に代えて、カメラ４３の撮像素子４３０Ｌ，Ｒが撮像した現実空間の画像を、そのまま現実空間の立体視画像として出力する（いわゆるカメラシースルーの機能を提供する）こととしてもよい。
【００４８】
この例では画像生成部２４は、カメラ４３に含まれる左側の撮像素子４３０Ｌと、右側の撮像素子４３０Ｒとで撮像した画像データをそのまま出力し、出力部２５が、これらの画像データに基づく画像をそのまま、左目用の画像、及び右目用の画像として表示する。
【００４９】
［動作］
本発明の実施の形態の画像処理装置１０は以上の構成を基本的に備えており、次のように動作する。ユーザが表示装置４０を頭部に装着すると、画像処理装置１０は、図６に例示する処理を開始し、当該表示装置４０の基準位置（例えばカメラ４３の各撮像素子４３０の重心位置）を原点として、ユーザの後方を含むユーザ周囲のＸ軸方向に±５ｍ（合計１０ｍ）、Ｙ軸方向に±５ｍ（合計１０ｍ）、Ｚ軸方向に床から高さ３ｍの直方体範囲の現実空間を対象空間として設定する（Ｓ１）。
【００５０】
そしてこの対象空間を、仮想的にボクセル（Voxel：仮想的な体積要素、例えば幅１０ｃｍ，奥行１０ｃｍ，高さ１０ｃｍの立方体要素）空間で表現した物体バッファ（当初はすべてのボクセルの値を「−１」と設定する）を設定して、記憶部１２に格納する（Ｓ２）。
【００５１】
表示装置４０は、所定のタイミングごと（例えば１／１０００秒ごと）に繰り返してカメラ４３にて画像を撮像し、撮像して得た画像データを画像処理装置１０へ送出している。画像処理装置１０は表示装置４０から中継装置３０を介して、カメラ４３にて撮像した画像データを受け入れる（Ｓ３）。
【００５２】
画像処理装置１０は、ユーザの頭部の方向（顔面の方向）及び移動量の情報（例えば上記ＸＹＺ空間の座標値で表す）を取得する。具体的にこのユーザの頭部の方向及び移動量の情報は、表示装置４０の頭部方向センサ４４１が検出し、画像処理装置１０に出力したものであってもよい。
【００５３】
画像処理装置１０は、レンダリングカメラの位置座標ＲＣと、視野方向とを決定する（Ｓ４）。具体的には、画像処理装置１０は、図７に例示するように、上記取得した頭部の移動量の情報を参照し、カメラ４３に含まれる左側の撮像素子４３０Ｌと、右側の撮像素子４３０Ｒの対象空間内の座標情報を得る。そしてここで得られた座標情報と、予め定めた、各撮像素子４３０Ｌ，Ｒと、ユーザの対応する目（撮像素子４３０Ｌに対するユーザの左目と、撮像素子４３０Ｒに対するユーザの右目）のそれぞれとの相対的な座標情報とを用い、対象空間内のＸＹＺ座標系における、ユーザの左右の目の座標情報を得る。そしてこの座標情報に対応する仮想空間内の座標情報を、レンダリングカメラの位置座標ＲＣとする。なお、対象空間のＸＹＺ座標系と、仮想空間の座標系とを一致させておき、対象空間内のＸＹＺ座標系での座標値をそのままレンダリングカメラの位置座標ＲＣとしてもよい。また、画像処理装置１０は、取得した頭部の方向の情報に基づいて、視野方向を決定する。
【００５４】
さらに画像処理装置１０は、例えば操作デバイス２０から、ユーザから現実空間の画像（いわゆるカメラシースルーとしての動作）と、仮想空間の画像とのどちらを表示するかの指示を受け入れる（Ｓ５）。そして画像処理装置１０は当該指示された画像を表示する処理を開始する。ここではまず、現実空間の画像を表示する場合について説明する（Ｓ５：「現実空間」）。
【００５５】
この場合、画像処理装置１０は、Ｓ３で受け入れた表示装置４０からカメラ４３が撮像した現実空間の画像を用いて、画像を表示する。本実施の形態の一例では、画像処理装置１０は、カメラ４３の撮像素子４３０Ｌから入力される画像データをそのまま左目用の画像データとする。また画像処理装置１０は、カメラ４３の撮像素子４３０Ｒから入力される画像データをそのまま右目用の画像データとする。画像処理装置１０は例えばこのようにして、左目用、右目用の画像データを生成する（Ｓ６）。
【００５６】
画像処理装置１０は、ここで生成した左目用の画像データと、右目用の画像データとを表示装置４０に対して中継装置３０を介して出力する（Ｓ７）。そして表示装置４０は、左目用の画像データを、左目用の映像として、左目用光学素子４２Ｌを経由してユーザの左目に入射させる。また表示装置４０は、右目用の画像データを、右目用の映像として、右目用光学素子４２Ｒを経由してユーザの右目に入射させる。これより、ユーザはカメラ４３で撮影され、ユーザの目の位置に視点が変換された現実空間の画像を視認することとなる。以下、画像処理装置１０は、処理Ｓ３に戻って処理を繰り返す。
【００５７】
また処理Ｓ５において、ユーザが仮想空間の画像の表示を指示したと判断すると（Ｓ５：「仮想空間」）、画像処理装置１０は、カメラ４３で撮像された画像データに基づいて、当該画像データから得られるデプスマップを生成する（Ｓ８）。
【００５８】
画像処理装置１０は、生成したデプスマップをメッシュに分割し、各メッシュ内の画素に対応する撮像画像データ内の画素に撮像された対象物が天井、壁、障害物（床から所定の高さ以内にある壁以外の物体などとして予め定めておく）、その他のいずれであるかを判断する。また、各メッシュ内のデプスマップ上の画素の値から、メッシュの表面形状が平面、凹凸のある面、球状の面、複雑な形状の面といった表面形状のいずれであるかを判断する。
【００５９】
そして画像処理装置１０は、生成したデプスマップに関連する情報として、各メッシュのデプスマップ上の位置を表す情報（メッシュの頂点の座標でよい）と、メッシュの種類の情報と、表面形状の情報とを関連付けて、環境メッシュリスト情報として記憶部１２に格納する（Ｓ９：環境メッシュリスト情報生成）。
【００６０】
画像処理装置１０は、デプスマップの各画素を順次選択しつつ、デプスマップ上で選択した画素に対応する方向にあり、デプスマップの選択した画素が表す物体までの距離にあたるボクセルの値を「１」とし、当該ボクセルとは異なり、当該ボクセルからカメラ４３までの線上にあるボクセルの値を「０」とする。ここで、カメラ４３で撮像された画像データにおいて、現実空間内にある物体により隠され、撮像されていない部分については、物体が存在するか否かが不明であるとして、対応する部分のボクセルの値が「−１」のままとなる。
【００６１】
なお、画像処理装置１０は、ユーザが移動したり、視線方向を変えたりすることで、カメラ４３によって撮像された画像データに、過去に撮像されず、物体が存在するか否かが不明であったボクセルに対応する部分（値が「−１」であったボクセルに対応する部分）のデプスマップが得られたときには、処理Ｓ１１において当該部分のボクセルの値を、得られたデプスマップに基づいて「０」または「１」に設定して更新する（Ｓ１０：物体バッファの更新）。
【００６２】
画像処理装置１０は、レンダリングカメラの位置座標が表す座標から、物体バッファ中で、処理Ｓ４において決定した視野方向にある、値が「０」でないボクセルを二次元投影した投影像を生成する（図５）。そして画像処理装置１０は、取得された現実空間の画像に基づいて、現実空間内に配された物体を検出し、当該検出した各物体を、予め定めた規則（ゲームの処理を行う場合、ゲームのプログラムで定めた規則）に従って仮想オブジェクトに置き換えた立体視画像を出力する。
【００６３】
具体的に画像処理装置１０は、背景画像と、操作パネル、岩や箱、樹木や草木等の三次元モデルデータ等の入力を受け入れており、仮想的な三次元空間内で、ボクセル値が「１」であるボクセルが投影された範囲に対応し、当該対応する範囲のメッシュが対象物変換規則に基づいて「操作パネル」とされている位置に、操作パネルの仮想オブジェクトを配する。以下、同様に、投影像のうちボクセル値が「１」であるボクセルが投影された範囲であって、対応する範囲のメッシュが対象物変換規則に基づいて「岩」または「箱」とされている位置に、「岩」または「箱」の仮想オブジェクトを配し、…というように、仮想空間内に各仮想オブジェクトを配して、仮想空間を構成する。また天井に相当する範囲については、背景画像を合成して、あたかも天井がないかのような仮想空間を構成する（Ｓ１１：仮想空間を構成）。
【００６４】
画像処理装置１０は、上記三次元モデルデータを配した仮想的な三次元空間（対象空間に対応する座標系の空間）内で、処理Ｓ４にて決定されたレンダリングカメラの位置座標ＲＣ（ユーザの左目及び右目のそれぞれに対応する各座標情報）から見た、処理Ｓ４にて決定された視野方向の画像データ（左目及び右目のそれぞれに提示されるべき画像データ）をレンダリングして得る（Ｓ１２：レンダリング）。そして画像処理装置１０は、こうしてレンダリングした一対の画像データを、立体視画像として出力する（Ｓ１３）。
【００６５】
表示装置４０は、左目用の画像データを、左目用の映像として、左目用光学素子４２Ｌを経由してユーザの左目に入射させる。また表示装置４０は、右目用の画像データを、右目用の映像として、右目用光学素子４２Ｒを経由してユーザの右目に入射させる。これより、ユーザは、現実空間内の物体が、仮想的な物体（操作パネルや岩、箱等）に変化した仮想的な空間内の画像を視認することとなる。以下、画像処理装置１０は、処理Ｓ３に戻って処理を繰り返す。
【００６６】
なお、この図６の例において、物体バッファを更新する処理（処理Ｓ１０）は、現実空間の画像を表示する処理Ｓ６乃至Ｓ７の処理を実行する際にも行うようにしてもよい。
【００６７】
このように本実施の形態の例では、仮想空間の表示の際に、図７に例示したように、例えばユーザの目の位置に対応する位置にレンダリングカメラを配し、現実空間を反映した（現実空間内の対象物を仮想オブジェクトに置き換えるなどした画像データ）レンダリング画像が提示されるので、ユーザに対してより正確な手の距離感を与えつつ画像を表示できる。すなわち仮想空間の仮想オブジェクトに触れるようにユーザが手を伸ばせば、ユーザは現実空間における対応する対象物に触れることとなる。
【００６８】
また上記図６の処理Ｓ６において、生成する左目用、右目用の画像データは、対象空間を再構成したもの（処理Ｓ８から処理Ｓ９と同じ処理で得られるメッシュに、現実空間の画像データから抽出したテクスチャを貼り付けたものを仮想オブジェクトとし、対象空間に対応する仮想空間内にこれらの仮想オブジェクトを配置して仮想空間を構成し、処理Ｓ４で決定したレンダリングカメラの位置座標ＲＣから視野方向を見た画像としてレンダリングしたもの）として表示してもよい。
【００６９】
この例によると、現実空間を表す画像についてもユーザの目の位置など、任意の位置から見た画像が提示され、仮想空間内の画像についても、同じ位置から見たレンダリング画像が提示されるので、現実空間の画像と仮想的な空間の画像とを切り替えても、切り替えの際に視野が実質的に移動せず、違和感をより軽減でき、また現実空間から仮想空間への切替えにおいて、仮想空間の構成の処理Ｓ１１において仮想オブジェクトに置き換える現実空間内の物体を順次選択しつつ、レンダリングと、レンダリングして得た画像データの出力を行うことで、あたかも現実空間の物体が少しずつゲーム等で用いる仮想空間内の仮想オブジェクトに置き換えられていくかのようなシーン演出も可能となる。
【００７０】
［変形例］
ここまでの説明において、ユーザ周囲の現実空間の画像は、ユーザの装着する表示装置４０に設けられたカメラ４３によって得られるものとしたが、本実施の形態はこれに限られない。本実施の形態の別の例として、ユーザの所在する室内に配置されたカメラによって撮像されたものであっても構わない。
【００７１】
また、ここまでの説明では、レンダリングカメラの位置座標ＲＣを、ユーザの目の位置に対応する位置を表すものとし、視野方向をユーザの顔の向きとする例について述べたが、本実施の形態はこれに限られない。例えば、レンダリングカメラの位置座標ＲＣは、仮想空間を俯瞰して見る位置を表す座標（例えばＸ軸，Ｙ軸成分の座標値についてはユーザの位置座標とし、Ｚ軸成分の座標値を予め定めた値としたもの）に設定してもよい。また、視野の方向は、ユーザの背後方向（ユーザの顔の向きと反対の方向）としてもよい。さらに、視野の範囲を変更して、ズームが行われたような効果を演出してもよい。視野の範囲（画角）は、ユーザの操作により任意に設定可能としてもよい。
【００７２】
［ユーザの頭部の位置及び傾きの情報を取得する別の例］
また上述の説明では、ユーザの頭部の位置及び傾きの情報は、表示装置４０に設けられた頭部方向センサ４４１から得られるものとしていたが、本実施の形態はこれに限られず、例えば、ユーザの所在する室内の既知の位置に配置されたカメラによってユーザを撮像し、ユーザの頭部とともに移動する所定の点、例えばユーザが装着している表示装置４０上に予め配した所定のマーカーの位置及び姿勢を検出することで、ユーザの頭部の位置及び傾き角度を検出してもよい。このようなマーカーとそれを撮像した画像データに基づく、マーカーの位置及び傾きを検出する技術は広く知られているので、ここでの詳しい説明は省略する。
【００７３】
この方法でユーザの頭部の位置及び傾きの情報を取得する場合、表示装置４０には頭部方向センサ４４１を設ける必要は必ずしもない。
【００７４】
［目センサの利用］
さらに、ここまでの説明では、例えば撮像素子４３０とユーザの目との相対座標など、基準位置とユーザの目の位置との相対座標が予め定められたものとしたが、本実施の形態は、これに限られず、表示装置４０にユーザの目の位置を検出する目センサ４４０を設けて、これにより、ユーザの目の位置を検出して基準位置とユーザの目の位置との相対座標を求めてもよい。
【００７５】
このような目センサ４４０としては、表示装置４０の所定位置に対して既知の位置に配された可視カメラまたは赤外カメラがある。この目センサ４４０は、ユーザの目頭や虹彩、角膜や瞳孔の位置（目センサ４４０との相対的な位置）を検出し、上記既知の表示装置４０の所定位置（例えば左目については左側の撮像素子４３０Ｌの位置、右目については右側の撮像素子４３０Ｒの位置）からの相対的な座標情報を求めて、眼球表面の虹彩または瞳孔の中心位置を表す情報として出力する。
【００７６】
［視線の情報を用いる例］
さらにこの目センサ４４０が、ユーザの視線の方向（眼球の向き）のベクトル情報を検出できる場合は、視線の情報を用いて、表示装置４０に表示する映像のパラメータ（例えば歪み補正のパラメータ）を変更してもよい。
【００７７】
［被写界深度］
また、この視線情報を用い、レンダリング時、当該視線の方向にある仮想オブジェクトまでの距離を求め、被写界深度（ここでは、ピントの合う距離の範囲ｒを指定するｒmin≦ｒ≦ｒmaxを意味するものとする）を設定してもよい。一例として画像処理装置１０は、対象空間内のＸＹＺ座標系におけるユーザの左右の目のそれぞれについての視線の方向のベクトルＶＬ，ＶＲを得た後、レンダリングカメラの位置座標ＲＣからこれらのベクトルの方向にある仮想オブジェクトまでの距離ｒＬ，ｒＲを求める。
【００７８】
そして画像処理装置１０は、例えば次のようにピントの合う距離の範囲ｒを特定するｒmin（下限距離），ｒmax（上限距離）を決定する。一例として、画像処理装置１０は、上記求めた距離ｒＬ，ｒＲの算術平均ｒを求める。そして、このｒが所定のしきい値ｒthを超えていれば、ｒminを「０」、ｒmaxを無限大とする（つまりパンフォーカスとする）。また画像処理装置１０は、ｒが所定のしきい値ｒthを超えていなければ、ｒminを、ｒmin＝ｒ−α、ｒmaxをｒ＋βとする。なお、α，βは実験的に定められる正の値である。ここでα＝βであってもよい。
【００７９】
もっとも、ここで示したｒmin、ｒmaxの演算例は一例であって、ユーザの視線の方向に応じて違和感のない被写界深度が実験的に設定できれば他の演算方法であってもよい。画像処理装置１０は、ここで演算した被写界深度を特定する情報（ここでの例ではｒmin，ｒmax）を用いて、レンダリングした画像データ（立体視画像の画像データ）を加工する。
【００８０】
すなわち画像処理装置１０の画像生成部２４は、生成した立体視画像の画像データ（左目用と右目用との画像データのそれぞれ）を、複数の画像領域（例えば所定サイズの画像ブロック）に分割する。画像生成部２４は、各画像領域について、当該画像領域内の画素に対応する、デプスマップ上の画素値（ユーザが装着する表示装置４０からの距離）を得る。画像生成部２４は、ここで得たデプスマップ上の画素値とユーザの目の位置に係る情報とに基づいて、ユーザの目から、画像領域内の画素（例えば画像領域の中心の画素）に撮像された物体までの距離Ｄを求める。そして画像生成部２４は、当該距離Ｄが、ｒmin，ｒmaxに対して、ｒmin≦Ｄ≦ｒmaxであれば、当該画像領域については何もしない。
【００８１】
また、画像生成部２４は、ここで求めた距離ＤがＤ＜ｒminであれば、当該画像領域の画素に、ｒmin−Ｄの大きさに応じた強度のぼかし処理（例えばガウシアンフィルタ）を適用して、ピントが合っていないかのような画像とする。
【００８２】
同様に、画像生成部２４は、ここで求めた距離ＤがＤ＞ｒmaxであれば、当該画像領域の画素に、Ｄ−ｒmaxの大きさに応じた強度のぼかし処理（これも例えばガウシアンフィルタ）を適用して、ピントが合っていないかのような画像とする。
【００８３】
これにより、被写界深度を指定する情報に基づき、取得した現実空間の画像に基づく、ビュー変換された現実空間の画像であっても、またレンダリングして得られた仮想空間の画像であっても、当該指定された被写界深度を有した立体視画像を生成できる。
【００８４】
本実施の形態のこの例によると、ユーザが注視している距離範囲外の画像部分がぼかされて見えることとなり、より自然な画像がユーザに提供される。
【符号の説明】
【００８５】
１０  画像処理装置、１１  制御部、１２  記憶部、１３  インタフェース部、２０  操作デバイス、２１  画像取得部、２３  視野決定処理部、２４  画像生成部、２５  出力部、３０  中継装置、４０  表示装置、４１  映像表示素子、４２  光学素子、４３  カメラ、４４  センサ、４５  通信インタフェース、４３０  撮像素子、４４０  目センサ、４４１  頭部方向センサ。
【図１】
2017191703.tif 000003
【図２】
2017191703.tif 000004
【図３】
2017191703.tif 000005
【図４】
2017191703.tif 000006
【図５】
2017191703.tif 000007
【図６】
2017191703.tif 000008
【図７】
2017191703.tif 000009
【国際調査報告】
2017191703.tif 000010
2017191703.tif 000011
2017191703.tif 000012
2017191703.tif 000013