近年、現実世界と仮想世界とをリアルタイムかつシームレスに融合させる技術として複合現実感、いわゆるMR(Mixed Reality)技術が知られている。MR技術の1つに、次のような技術が知られている。即ち、ビデオシースルー型HMD(Head Mounted Display)の装着者の瞳位置から観察される被写体と略一致する被写体をビデオカメラなどで撮像する。そして、その撮像画像にCG(Computer Graphics)を重畳表示した複合現実画像を、HMDの装着者に提供する。
図7は、ビデオシースルー型HMDを用いた一般的な複合現実感提示システムの機能構成を示すブロック図である。
701は、ビデオシースルー型のHMDである。HMD701は、撮像部703、表示部704、3次元位置姿勢センサ705、I/F(インターフェース)706を有する。
702は、HMD701から受け取った3次元位置姿勢情報に基づいて仮想空間画像(CG)を生成し、HMD701から受け取った撮像画像との合成処理を行う画像処理装置である。画像処理装置702は、一般にはPC(パーソナルコンピュータ)やワークステーション等の高性能な演算処理機能やグラフィック表示機能を有する装置により構成されている。画像処理装置702は、I/F707、位置姿勢情報生成部708、CG描画合成部710、コンテンツDB(データベース)709を有する。
先ず、HMD701を構成する各部の動作について説明する。
撮像部703は、HMD701を頭部に装着するユーザの視線位置と略一致する外界の画像を撮像する。撮像部703は、ステレオ画像を撮像すべく、右目用の撮像素子、左目用の撮像素子、光学系、そして後段の画像処理のためのDSP(Digital Signal Processing)により構成されている。
表示部704は、画像処理装置702から送出される右目用のMR画像、左目用のMR画像を表示するためのものである。従って、表示部704は、右目用の表示デバイス、左目用の表示デバイス、光学系により構成されている。それぞれの表示デバイスとしては、小型の液晶ディスプレイやMEMS(Micro Electro−Mechanical Systems)による網膜スキャンタイプのデバイスが用いられる。
3次元位置姿勢センサ705は、自身の位置姿勢を計測するためのものである。3次元位置姿勢センサ705には、磁気センサやジャイロセンサ(加速度、角速度)が使用される。
I/F706は、画像処理装置702とのデータ通信を行うために用いられるものであり、撮像部703により撮像された撮像画像、3次元位置姿勢センサ705により計測された位置姿勢情報は、このI/F706を介して画像処理装置702に送信される。また、画像処理装置702から送信されたMR画像は、このI/F706を介して受信する。I/F706には、リアルタイム性が求められかつ大容量の伝送が可能な、USBやIEEE1394のメタル線、GigabitEthernet(登録商標)等の光ファイバが用いられる。
次に、画像処理装置702を構成する各部の動作について説明する。
I/F707は、HMD701とのデータ通信を行うために用いられるものであり、画像処理装置702が生成したMR画像は、このI/F707を介してHMD701に送信される。また、HMD701から送信された撮像画像、位置姿勢情報は、このI/F707を介して受信する。
位置姿勢情報生成部708は、HMD701から送信された位置姿勢情報に基づいて、HMD701を装着したユーザの目の位置姿勢を示す位置姿勢情報を生成する。ユーザの目の位置姿勢を示す位置姿勢情報を生成する方法としては、このほかにも、例えば、撮像部703が撮像した画像を用いる方法もある。
コンテンツDB709には、仮想空間を構成する各仮想物体に係るデータが保存されている。
CG描画合成部710は、コンテンツDB709に保存されているデータを用いて仮想空間を構築し、構築した仮想空間を、位置姿勢情報生成部708が生成した位置姿勢情報が示す位置姿勢を有する視点から見た画像を、仮想空間画像として生成する。そして、生成した仮想空間画像を、I/F707を介してHMD701から受信した撮像画像上に合成したMR画像を生成する。生成したMR画像は、I/F707を介してHMD701に送信する。
仮想空間画像の生成は上述の通り、3次元位置姿勢センサ705による計測結果に基づいて行われており、撮像画像を背景として仮想空間画像が重畳される。ここで、仮想空間画像を生成するために用いる位置姿勢情報を計測したタイミングと、この仮想空間画像を重畳する対象となる撮像画像の撮像タイミングとは、略一致していることが好ましい。そこで、システム間の伝送遅延や処理時間等、リアルタイム性を損なうような影響を考慮した場合は、仮想空間画像を生成したタイミングに最も近いタイミングで撮像された撮像画像に対してこの仮想空間画像を重畳するのが好ましい。
以上説明した構成による処理によって、HMD701を頭部に装着したユーザに対して、現実世界と仮想世界とがリアルタイムかつシームレスに融合した複合現実世界を提供することができる。一般的なMR技術およびシステムの構成については特許文献1に開示されている。
ここで、複合現実世界の現実感・没入感をより増加させる為に、表示を高画角にし、視野を広げることが挙げられる。光学的に表示画角を広くするほど光学系レンズ歪みが相対的に増加してしまうため、違和感の無い表示画像を提示するためにはこのレンズ歪みの補正を行う必要がある。レンズ歪み補正の一つの方法として、光学系への入力画像を予め電気的に補正する手法がある。
図8Aは、光学系の2次元的な歪みの一例を示す図である。図8Aに示す如く、光学系の構成によっては上下非対称な歪みが生じる場合がある。従って、矩形の表示エリアに表示された矩形画像を、図8Aに示すような歪みを有する光学系を介して観察した場合、図8Aに示すように、歪んだ画像として観察されることになる。こうした歪みを電気的に打ち消す方法として、光学的に歪む量を打ち消すように予め逆に歪んだ画像を用意する手法がある。
図8Bは、矩形画像に対して、図8Aに示した歪みの逆の歪みを与えた場合に得られる画像を示す図である。従って、図8Bに示した画像を、図8Aに示した歪みを有する光学系を介して観察すると、図8Cに示す如く、元の矩形画像を観察することができる。図8Cは、元々の矩形画像を示す図である。
図9は、図7に示した構成に、光学歪みを考慮して表示前に画像を変形させる構成を加えた、複合現実感提示システムの機能構成を示すブロック図である。図9に示した構成が図7に示した構成と異なるのは、HMD701の代わりに、HMD701に歪み補正部911を加えたHMD901を用いている点にある。
光学系の構成によっては上下方向と左右方向とのアスペクトがずれた歪みが生じるため、歪み補正部911は、I/F706を介して受信したMR画像から、表示部704が有する光学系の光学歪み特性に基づいて決まる部分を切り取る。そして、マスク処理と光学歪み補正のための画像マッピングを行う。
図8Dは、光学歪みを考慮して画像を電子的に歪ませた際の画像と、表示領域との関係を示す図である。係る表示領域に表示画像をマッピングするため、表示画像の上部(斜線で示した領域)が切り捨てられていることがわかる。図8Dでは画像上部を切り取っているが、光学歪みによっては上下左右のいずれか、また、その組み合わせた領域が切り取られることになる。
特開平11−88913号公報(図7、段落[0035])
以下、添付図面を参照し、本発明の好適な実施形態について詳細に説明する。
[第1の実施形態]
図1は、仮想空間の画像と現実空間の画像とを合成した複合現実空間画像をユーザに提示するための、本実施形態に係るシステムの機能構成を示すブロック図である。図1に示す如く、本実施形態に係るシステムは、HMD101と画像処理装置102とで構成されている。
先ず、HMD101について説明する。HMD101は頭部装着型表示装置の一例として用いる装置であり、HMD101の機能として後述する機能を有しているのであれば、HMD101以外の頭部装着型表示装置を用いても良い。
HMD101は、撮像部103、表示部104、3次元位置姿勢センサ105、I/F106、表示画像制御情報デコード部113、歪み補正部111、レンズ歪み情報格納テーブル115、により構成されている。以下、HMD101を構成するこれらの各部について説明する。
撮像部103は、自身の位置姿勢に応じて見える現実空間の動画像を撮像するものであり、撮像した各フレームの画像(撮像画像、現実空間画像)は後段のI/F106に順次送出される。本実施形態では、撮像部103は、ステレオ画像を撮像すべく、右目用の撮像素子、左目用の撮像素子、光学系、そして後段の画像処理のためのDSP(Digital Signal Processing)により構成されている。以下では、一方の目に特化した説明ではない限り、それぞれの目に対する撮像部103をまとめて説明する。
表示部104は、画像処理装置102から送出される右目用のMR画像、左目用のMR画像を歪み補正部111が補正した結果を表示するためのものである。従って、表示部104は、右目用の表示装置、左目用の表示装置、表示装置が表示した画像を光学的に変形させてユーザの目に対して提示する光学系、により構成されている。それぞれの表示装置としては、小型の液晶ディスプレイやMEMSによる網膜スキャンタイプのデバイスが用いられる。このような構成を有する表示部104は、HMD101を頭部に装着したユーザの眼前に位置するようにHMD101に取り付けられている。なお、表示部104による表示は、表示画像制御情報デコード部113がI/F106を介して画像処理装置102から受信したMR画像から取得した表示画像制御情報(制御情報)に基づいて制御される。
3次元位置姿勢センサ105は、自身の位置姿勢を計測するものである。例えば、3次元位置姿勢センサ105として磁気センサを用いる場合、現実空間中の所定の位置には磁界を発生するトランスミッタが設置されることになる。3次元位置姿勢センサ105は、係るトランスミッタが発生した磁界中における自身の位置姿勢に応じた磁気の変化を検知し、その検知結果は、トランスミッタの動作制御を行うセンサ制御装置に送出される。センサ制御装置は、係る検知結果に基づいて、センサ座標系における3次元位置姿勢センサ105の位置姿勢を求める。そして求めた位置姿勢を、I/F106に送出する。ここで、センサ座標系とは、トランスミッタの位置を原点とし、係る原点で互いに直交する3軸をそれぞれ、x軸、y軸、z軸とする座標系である。なお、3次元位置姿勢センサ105として適用可能なセンサはこれ以外でも良く、例えば、光学式センサ、超音波センサ、ジャイロセンサ(加速度、角速度)などを用いることもできる。
表示画像制御情報デコード部113は、I/F106を介して画像処理装置102から受信したMR画像から制御情報を取得し、取得した制御情報に基づいて、この受信したMR画像に対する様々な画像処理を行う。画像処理後のMR画像、及び制御情報は、後段の歪み補正部111に送出する。
歪み補正部111は、表示画像制御情報デコード部113から受けたMR画像を、表示部104が有する光学系の歪み特性(光学歪み特性)とは逆の光学歪み特性に基づいて変形させたMR画像を生成する。そして生成したMR画像を後段の表示部104に送出する。
レンズ歪み情報格納テーブル115は、表示部104が有する光学系の歪み特性とは逆の光学歪み特性を示すレンズ歪み情報を保持しており、係るレンズ歪み情報は要求に応じて適宜外部に送信する。レンズ歪み情報について詳しくは後述する。
I/F106は、画像処理装置102とのデータ通信を行うためのものであり、リアルタイム性が求められかつ大容量の伝送が可能な、USBやIEEE1394のメタル線、GigabitEthernet(登録商標)等の光ファイバにより構成されている。撮像部103が撮像した現実空間画像や、3次元位置姿勢センサ105が計測した結果としての位置姿勢情報、レンズ歪み情報格納テーブル115が保持するレンズ歪み情報は、このI/F106を介して画像処理装置102に送信される。
次に、画像処理装置102について説明する。画像処理装置102は、HMD101から送信された位置姿勢情報に基づいた仮想空間画像を生成し、生成した仮想空間画像を、HMD101から送信された現実空間画像上に重畳させたMR画像を生成する。そして生成したMR画像上に、後述する制御情報を埋め込む。そして、制御情報を埋め込んだMR画像をHMD101に対して送信する。画像処理装置102は、一般にはパソコンやワークステーション等の高性能な演算処理機能やグラフィック表示機能を有する装置により構成される。
画像処理装置102は、I/F107、位置姿勢情報生成部108、CG描画合成部110、コンテンツDB109、表示画像制御情報エンコード部112、レンズ歪み情報解析部114、により構成されている。
I/F107はHMD101とのデータ通信を行うためのものであり、I/F106と同様、リアルタイム性が求められかつ大容量の伝送が可能な、USBやIEEE1394のメタル線、GigabitEthernet(登録商標)等の光ファイバにより構成されている。
位置姿勢情報生成部108は、HMD101から送出された位置姿勢情報から、撮像部103の位置姿勢を求める。HMD101から送出された位置姿勢情報は、3次元位置姿勢センサ105の位置姿勢を示すものである。従って、例えば、撮像部103と3次元位置姿勢センサ105との位置姿勢関係を予め求めておき、係る位置姿勢関係を3次元位置姿勢センサ105の位置姿勢に加えることで、撮像部103の位置姿勢情報を求めることができる。もちろん、撮像部103の位置姿勢情報を求める方法は他にもあり、例えば、撮像部103が撮像した画像を用いて撮像部103の位置姿勢情報を求める方法もある。
コンテンツDB109には、仮想空間を構成する各仮想物体についてのデータが登録されている。例えば、仮想物体がポリゴンで構成されている場合には、各ポリゴンの色や法線ベクトルのデータ、ポリゴンを構成する各頂点の座標データ等が、コンテンツDB109に登録されている。
CG描画合成部110は、コンテンツDB109に登録されているデータを用いて仮想空間を構築する。そして係る仮想空間を、位置姿勢情報生成部108が生成した位置姿勢情報が示す位置姿勢を有する視点から見える画像を、仮想空間画像として生成する。そして生成した仮想空間画像を、I/F107を介してHMD101から受信した現実空間画像上に合成することで、MR画像を生成する。生成したMR画像は、後段の表示画像制御情報エンコード部112に送出する。
レンズ歪み情報解析部114は、HMD101内のレンズ歪み情報格納テーブル115から上記レンズ歪み情報を取得し、取得したレンズ歪み情報を用いて、CG描画合成部110が生成したMR画像内で制御情報を埋め込む領域を特定する。
ここで、制御情報とは、表示部104における表示制御、表示する画像に係る制御を行うために用いられるものである。制御情報には、例えば、表示画像の明るさ、色味、ガンマなどの画質を制御する情報、表示画像の提示位置、サイズなどの画面自体を制御する情報、MR画像に重畳する警告メッセージなどの重畳文字を制御する情報が含まれている。
なお、レンズ歪み情報解析部114による上記レンズ歪み情報の取得は、画像処理装置102の電源投入直後の初期化処理において行うことが好ましい。これは、異なるレンズ歪み情報をもつHMDが画像処理装置102に接続されても対応することができるからである。
表示画像制御情報エンコード部112は、CG描画合成部110から受けたMR画像内のレンズ歪み情報解析部114が特定した領域に対して、制御情報を埋め込む。MR画像に対する制御情報の埋め込み処理について詳しくは後述する。そして表示画像制御情報エンコード部112は、制御情報を埋め込んだMR画像をI/F107を介してHMD101に送信する。
図3Aは、画像処理装置102が、制御情報を埋め込んだMR画像を生成してHMD101に送信するための一連の処理のフローチャートである。
ステップS300では、レンズ歪み情報解析部114はHMD101に対してアクセスし、レンズ歪み情報格納テーブル115に登録されているレンズ歪み情報を取得する。
ここで、レンズ歪み情報とは、表示部104が有する光学歪み特性とは逆の光学歪み特性を示す情報である。従って、レンズ歪み情報を用いれば、例えば、図8Cに示す矩形画像を図8Bに示した画像(画像B)に変形させることができる。これにより、図8Aに示す光学歪み特性を有する光学系を介して観察される画像が画像Cとなる。換言すれば、画像Cを構成する各画素について、対応する画像B上の画素を特定することができる。
ステップS301では、レンズ歪み情報解析部114は、ステップS300で取得したレンズ歪み情報を参照する。そして、表示部104が有する光学系の光学歪み特性とは逆の光学歪み特性に基づいてMR画像を変形させた場合に、非表示対象となる領域として予め定めた画素位置範囲に含まれている領域を特定する。図8C、8Dを例に取ると、ステップS301では、図8Cに示した画像において、図8Dに示した斜線部分(非表示対象となる領域として予め定めた画素位置範囲)に対応する領域を求めることになる。即ち、ステップS301では、MR画像において、非表示対象となる領域を示す領域情報を予め求めておく。
上記ステップS300、ステップS301における処理は、画像処理装置102の電源投入直後の初期化処理で行うことが望ましい。
一方、上述したように、HMD101からは、撮像部103が撮像した現実空間画像と、3次元位置姿勢センサ105が計測した、3次元位置姿勢センサ105の位置姿勢を示す位置姿勢情報が、I/F106を介して送信される。従って、ステップS302では、I/F107を介して、この送信された現実空間画像と、位置姿勢情報とを受信(取得)する。I/F107を介して受信した現実空間画像は、CG描画合成部110に入力されるし、I/F107を介して受信した位置姿勢情報は、位置姿勢情報生成部108に入力される。
次に、ステップS303では先ず、位置姿勢情報生成部108は上述の通り、I/F107を介して受信した位置姿勢情報と、撮像部103と3次元位置姿勢センサ105との位置姿勢関係とを用いて、撮像部103の位置姿勢情報を求める。そしてその後、CG描画合成部110は、コンテンツDB109に登録されているデータを用いて仮想空間を構築し、係る仮想空間を、撮像部103の位置姿勢から見た画像を、仮想空間画像として生成する。そして、生成した仮想空間画像を、I/F107を介して受信した現実空間画像上に合成することで、合成画像としてのMR画像(第1の画像)を生成する。生成したMR画像は後段の表示画像制御情報エンコード部112に送出する。
次に、ステップS303で生成したMR画像に対する制御処理を行う場合には、処理はステップS304を介してステップS305に進むし、制御処理を行わない場合には、処理はステップS304を介してステップS390に進む。あるフレームにおけるMR画像に対して制御処理を行うか否かは、事前に設定しておいても良いし、ユーザ指示入力などを検知することで適宜判断しても良い。
ステップS390では、表示画像制御情報エンコード部112は、ステップS303で生成したMR画像に対しては制御処理は行わない旨を示すヘッダ情報を、ステップS301で特定した(第1の画像内の)非表示対象となる領域に対して埋め込む。ここでの埋め込み処理は、非表示対象となる領域を構成するデータを単にヘッダ情報を構成するデータに置換する処理でも良いし、電子透かしとして埋め込む処理でも良い。また、非表示対象となる領域が複数箇所の場合には、例えば最も左上隅の領域に埋め込むなど、予め決めておいても良い。
一方、ステップS305では、表示画像制御情報エンコード部112は、ステップS301で特定した非表示対象となる領域に対して、制御情報を埋め込む。ステップS305における埋め込み処理は、埋め込む情報が異なるのみで、それ以外についてはステップS390と同様にして行う。
次にステップS391では、表示画像制御情報エンコード部112は、ステップS305で制御情報を埋め込んだ、若しくはステップS390でヘッダ情報を埋め込んだMR画像、のうち何れか(第2の画像)を、I/F107を介してHMD101に送信する。なお、MR画像において、非表示対象となる領域を構成する各画素のデータは、例えば、画素値が0を示すデータ(例えば、MR画像がRGB画像である場合には、R=G=B=0を示すデータ)に置換する。
次に、本処理を終了する指示が入力されたことを検知した、若しくは本処理を終了する条件が満たされた場合には本処理を終了する。一方、本処理を終了する指示は入力されていないし、本処理を終了する条件も満たされていない場合には、ステップS392を介してステップS302に戻り、次のフレームに対してステップS302以降の処理を行う。
図2は、ステップS305で行う制御情報の埋め込み処理を説明する図である。
図2(a)には、表示部104が有する光学系の光学歪み特性とは逆の光学歪み特性に基づいて変形させたMR画像201と、表示部104が有する表示装置の表示画面202との関係を示している。光学系のレンズにより上下方向と左右方向とのアスペクトがずれた歪みが生じるため、変形後のMR画像201の上部は実際には表示しない領域となる。表示しない領域を構成する画素のデータは、ある画素値を示すデータに置換するか、若しくは係る領域そのものを物理的に遮光する等、係る領域を観察できないようにする。
図2(b)には、変形していないMR画像における非表示対象となる領域を示している。図2(b)に示した斜線領域は、図2(a)に示した斜線領域、即ち、非表示対象となる領域に対応している。
図2(c)には、変形していないMR画像における非表示対象となる領域に、制御情報を埋め込んだ場合のMR画像を示している。制御情報は、画像中に埋め込んでいるので、係る画像に対する様々な処理の実行の可否や、制御情報のサイズ、属性を管理することが望ましい。
図10A、10Bに、制御情報を構成するヘッダ情報と、重畳文字制御情報と、の構成例を示す。もちろん、制御情報に含めうる情報に関しては、図10A、10Bに示したものに限定しない。
図10Aは、ヘッダ情報の構成例を示す図である。
「実行可否」とは、制御情報に基づいた様々な表示制御を行うか否かを示している。
「サイズ」とは、制御情報の全データサイズ、制御情報が1フレームの画像に埋め込むことができない場合に何フレーム分の画像に埋め込んでいるか、その場合に、現ヘッダ情報が何フレーム目に埋め込まれているのかを示している。
「属性」とは、制御情報に基づいた表示制御が、画像制御、画面制御、重畳文字制御の何れであるのかを示している。
図10Bは、重畳文字制御情報の構成例を示す図である。
「表示時間」とは、文字を表示する時間の長さを示している。
「表示位置」とは、表示する文字の表示位置(座標値)を示している。
「表示色」とは、表示する文字の色を示している。
「文字サイズ」とは、表示する文字のサイズ(ポイント数)を示している。
「表示内容」とは、実際に表示する文字列を示している。
なお、上述の説明では特に触れていないが、ヘッダ情報の先頭部分には、ヘッダ情報に固有の情報(コード)が記録されているものとする。これは、係る制御情報を抽出する側で、MR画像中のどこにヘッダ情報が記録されているのかを検索する際に用いられるものである。
次に、HMD101が、画像処理装置102から送信されたMR画像を受信し、これを表示部104に表示するために行う一連の処理について、同処理のフローチャートを示す図4Aを用いて、以下説明する。
ステップS400では、上記ステップS300においてレンズ歪み情報解析部114から要求された、レンズ歪み情報格納テーブル115内に登録されているレンズ歪み情報を、I/F106を介して画像処理装置102に対して送信する。ステップS400における処理は、HMD101の電源投入直後の初期化処理で行うことが望ましい。
次に、ステップS401では、撮像部103が撮像した現実空間画像、3次元位置姿勢センサ105が計測した位置姿勢情報を、I/F106を介して画像処理装置102に対して送信する。
次にステップS402では、図3Aのフローチャートに従って画像処理装置102から送信された、制御情報が埋め込まれたMR画像を、I/F106を介して表示画像制御情報デコード部113が取得する。
次にステップS403では、表示画像制御情報デコード部113は、ステップS402で取得したMR画像中を検索し、ヘッダ情報に固有の情報(コード)を検索する。即ち、ステップS403では、MR画像中に埋め込まれた制御情報を検索し、取得する。従って、ステップS403では、制御情報の埋め込み方法に応じた抽出処理を行うことになる。
そして、制御情報を抽出した結果、表示画像制御情報デコード部113は、抽出した制御情報中のヘッダ情報中の「実行可否」を参照し、表示制御を行う(値が「0」)か表示制御を行わない(値が「1」)かを判断する。係る判断の結果、表示制御を行う場合には処理をステップS404に進め、表示制御を行わない場合には、処理をステップS490に進める。
ステップS404では、表示画像制御情報デコード部113は、ステップS403で抽出した制御情報中のヘッダ情報、重畳文字制御情報を参照し、ステップS402で取得したMR画像に対して対応する表示制御処理を行う。そして歪み補正部111は、表示制御処理結果としてのMR画像を、表示部104が有する光学系の光学歪み特性とは逆の光学歪み特性に基づいて変形させたMR画像を生成し、表示部104に対して送出する。即ち、表示部104の表示領域(表示画面上)にMR画像をマッピングする。
次に、本処理を終了する指示が入力されたことを検知した、若しくは本処理を終了する条件が満たされた場合には本処理を終了する。一方、本処理を終了する指示は入力されていないし、本処理を終了する条件も満たされていない場合には、ステップS490を介してステップS401に戻り、次のフレームに対してステップS401以降の処理を行う。
以上の説明により、本実施形態によれば、MR画像において表示しない領域に対して制御情報を埋め込むので、表示する領域に対する画質に何等影響を与えないし、係るMR画像の送信帯域内でMR画像と制御情報とを両方送信することができる。また、制御情報とMR画像とが1対1の関係でHMD101に送信されるので、制御情報に基づいた制御処理と、この制御情報を埋め込んだMR画像の表示処理との同期を容易に取ることができる。
[第2の実施形態]
第1の実施形態では、MR画像において非表示対象となる領域を構成するデータサイズが、制御情報のデータサイズよりも大きいことが前提となる。しかし、MR画像において非表示対象となる領域を構成するデータサイズが、制御情報のデータサイズ以下である場合には、この制御情報を分割し、分割したそれぞれの分割制御情報を連続する複数フレームのMR画像のそれぞれに分散させて埋め込んでも良い。
この場合、図3AのフローチャートにおけるステップS305における処理は、次のようになる。
図3Bは、本実施形態に係るステップS305における処理の詳細を示すフローチャートである。なお、本実施形態では、ステップS305における処理は、表示画像制御情報エンコード部112が行うものとする。
先ずステップS306では、上記ステップS301で特定した領域を構成するデータサイズXと、制御情報のデータサイズYとの大小比較を行う。係る大小比較の結果、X>Yの場合には処理をステップS310に進め、X≦Yの場合には、処理をステップS308に進める。
ステップS306からステップS310に進んだ場合、ステップS310では、第1の実施形態と同様にして、制御情報を埋め込む。
一方、ステップS308では、制御情報をデータサイズXよりも小さくなるような単位に分割するのであるが、実際に分割されるのは重畳文字制御情報であり、分割したそれぞれの単位には、元のヘッダ情報に基づいて新たにヘッダ情報が発行される。新たに発行するヘッダ情報は、元のヘッダ情報において「サイズ」の項目だけである。そしてステップS310では、分割した単位に新たに発行したヘッダ情報を付加した分割制御情報を、ステップS301で特定した領域に埋め込む。即ち、分割制御情報のデータサイズが、上記データサイズXよりも小さくなるように分割されている。
一方、本実施形態に係る上記ステップS404では、次のような処理を行う。
図4Bは、本実施形態に係るステップS404における処理の詳細を示すフローチャートである。
先ずステップS405では、表示画像制御情報デコード部113は、ステップS403で抽出した制御情報中のヘッダ情報を参照し、「分割フレーム数」が2以上、即ち、係る制御情報が分割制御情報であるのか否かを判断する。係る判断の結果、「分割フレーム数」が1である場合、即ち、係る制御情報が分割制御情報ではない場合には、処理をステップS409に進め、2以上であれば、処理をステップS406に進める。
ステップS409では、表示画像制御情報デコード部113は、ステップS403で抽出した制御情報中の重畳文字制御情報を参照する。そしてステップS410では、表示画像制御情報デコード部113は、ステップS402で取得したMR画像に対して対応する表示制御処理を行う。そして歪み補正部111は、表示制御処理結果としてのMR画像を、表示部104が有する光学系の光学歪み特性とは逆の光学歪み特性に基づいて変形させたMR画像を生成し、表示部104に対して送出する。
一方、ステップS406では、表示画像制御情報デコード部113は、ステップS403で抽出した分割制御情報を保持しておく。なお、この取得した分割制御情報中のヘッダ情報中の「分割フレーム数」が、ヘッダ情報中の「分割フレームの場合における現フレーム番号」と等しくなった場合にはステップS407を介してステップS408に進む。即ち、分割元が復元可能な数の分割制御情報が集まった場合にはステップS407を介してステップS408に進む。一方、未だ集まっていない場合には、次のフレームにて分割制御情報を取得すべく、本処理を終了する。
ステップS408では、表示画像制御情報デコード部113は、収集した全ての分割制御情報を1つにまとめる。即ち、それぞれの分割制御情報中の重畳文字制御情報を1つにマージする。
ステップS409では、表示画像制御情報デコード部113は、この1つにマージした重畳文字制御情報を参照する。そしてステップS410では、表示画像制御情報デコード部113は、ステップS402で取得したMR画像に対して対応する表示制御処理を行う。そして歪み補正部111は、表示制御処理結果としてのMR画像を、表示部104が有する光学系の光学歪み特性とは逆の光学歪み特性に基づいて変形させたMR画像を生成し、表示部104に対して送出する。即ち、表示部104の表示領域にMR画像をマッピングする。
[第3の実施形態]
第1の実施形態では、表示するMR画像に対して、表示部104が有する光学系の歪み特性とは逆の歪み特性に応じて変形させる処理をHMD101側で行っていたが、画像処理装置102側で行うようにしても良い。
図5は、画像処理装置側で、表示対象のMR画像に対して、表示部104が有する光学系の光学歪み特性とは逆の光学歪み特性に応じた変形を行う場合の、システムの機能構成を示すブロック図である。本実施形態に係るシステムは、第1の実施形態に係るシステムの構成とは異なるものの、その目的とするところは同じである。即ち、現実空間画像と仮想空間画像とを合成させたMR画像を、HMDを頭部に装着したユーザの眼前に提供する。
また、図5に示した各部のうち、図1に示したものと同じものについては同じ参照番号を付けており、その説明は省略する。HMD501は、HMD101から歪み補正部111を省いた構成を有し、画像処理装置502は、画像処理装置102に歪み補正部111と同じ動作を行う歪み補正部511を加えた構成を有する。
即ち、画像処理装置502側では、歪み補正部511は、CG描画合成部110が生成したMR画像を歪み補正部111と同様にして変形させ、表示画像制御情報エンコード部112は、この変形させたMR画像に対して制御情報を埋め込む。そしてこの変形させたMR画像に対して制御情報が埋め込まれたものをHMD501に対して送信する。
HMD501側では、単にこのMR画像から制御情報を抽出し、このMR画像をそのまま何等変形させることなく、この制御情報に基づいて表示部104に表示させる。
図6は、画像処理装置502からHMD501に対して送信する、制御情報が埋め込まれたMR画像と、表示部104の表示画面との関係を示す図である。表示部104が有する光学系のレンズにより上下と左右に斜線で示す実際には表示しない領域が存在する。表示しない領域は、第1の実施形態と同様に、ある画素値のデータで埋めるか、物理的に遮光するなどの手段により観察できないようにする。MR画像に対するそれ以外の取り扱いについては第1の実施形態と同じである。
[第4の実施形態]
図1,5に示した画像処理装置102、502としては、一般のPC(パーソナルコンピュータ)を用いることが好ましく、その場合、係るコンピュータのハードウェア構成の一例としては、図11に示すようなハードウェア構成が考えられる。
図11は、画像処理装置102、502に適用可能なコンピュータのハードウェア構成例を示すブロック図である。
CPU1101は、RAM1102やROM1103に格納されているプログラムやデータを用いて、コンピュータ全体の制御を行うと共に、画像処理装置102、502が行うものとして上述した各処理を実行する。例えば、CPU1101は、位置姿勢情報生成部108、CG描画合成部110、表示画像制御情報エンコード部112、レンズ歪み情報解析部114、歪み補正部111、として機能する。
RAM1102は、外部記憶装置1106からロードされたプログラムやデータ、I/F107を介してHMD101(501)から受信した現実空間画像、位置姿勢情報、レンズ歪み情報を一時的に記憶するためのエリアを有する。また、RAM1102は、CPU1101が各種の処理を実行する際に用いるワークエリアも有する。即ち、RAM1102は、各種のエリアを適宜提供することができる。
ROM1103には、本コンピュータの設定データや、ブートプログラムなどが格納されている。
操作部1104は、キーボードやマウス等により構成されており、本コンピュータの操作者が操作することで、各種の指示をCPU1101に対して入力することができる。
表示部1105は、CRTや液晶画面などにより構成されており、CPU1101による処理結果を画像や文字などでもって表示することができる。
外部記憶装置1106は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。ここには、OS(オペレーティングシステム)や、画像処理装置102(502)が行うものとして上述した処理をCPU1101に実行させるためのプログラムやデータが保存されている。係るプログラムには、位置姿勢情報生成部108、CG描画合成部110、表示画像制御情報エンコード部112、レンズ歪み情報解析部114、歪み補正部111、の機能をCPU1101に実行させるためのプログラムも含まれている。また、係るデータには、仮想空間を構成する各仮想物体のデータも含まれている。即ち、コンテンツDB109は、外部記憶装置1106内に含められていることになる。
外部記憶装置1106に保存されているプログラムやデータは、CPU1101による制御に従って適宜RAM1102にロードされる。そしてCPU1101はこのロードされたプログラムやデータを用いて、処理を実行する。
I/F107は、図1に示したものと同じものであり、HMD101(501)とのデータ通信は、このI/F107を介して行われる。
1108は、上述の各部を繋ぐバスである。
[その他の実施形態]
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給する。係る記憶媒体は言うまでもなく、コンピュータ読み取り可能な記憶媒体である。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。