図1は、本発明を適用した撮像/表示システム(システムとは、複数の装置が論理的に集合した物をいい、各構成の装置が同一筐体中にあるか否かは問わない)の一実施の形態の構成例を示している。
撮像システム1は、被写体と、その被写体の全方位の画像を撮像し、その結果得られる画像データを、例えば、光ディスクや、磁気ディスク、磁気テープ、半導体メモリその他の記録媒体3に記録し、あるいは、例えば、電話回線、衛星回線、CATV(Cable Television)網、インターネットその他の伝送媒体4を介して送信する。
表示システム2は、記録媒体3から画像データを再生し、あるいは、伝送媒体4を介して送信されてくる画像データを受信して表示する。
図2は、図1の撮像システム1の構成例を示している。
広角撮像部11は、被写体の周囲を広角で撮像する広角カメラ(ビデオカメラ)で構成され、その広角カメラによって撮像される広角画像データ(動画データ)を、マルチプレクサ13に供給する。ここで、広角撮像部11を構成する広角カメラとしては、例えば、後述するように、被写体の全方位を撮像する全方位カメラを採用することができ、従って、広角画像部11から出力される広角画像データは、被写体の周囲の景色などの画像である。
囲い込み撮像部12は、被写体の水平方向や垂直方向の周囲を囲むように、多数配置された複数のカメラ(ビデオカメラ)で構成され、その複数のカメラによって撮像される画像データ(動画データ)を、マルチプレクサ13に供給する。ここで、囲い込み撮像部12では、複数の位置に配置されたカメラそれぞれから、そのカメラの位置(カメラ位置)から被写体を撮像した画像データが出力されるが、この複数の位置から撮像された被写体の画像データを、以下、適宜、まとめて、囲い込み画像データという。
マルチプレクサ13は、広角撮像部11から供給される広角画像データと、囲い込み撮像部12から供給される囲い込み画像データとを多重化し、その結果得られる多重化画像データを、記録/送信部14に供給する。
ここで、マルチプレクサ13は、広角画像データと囲い込み画像データの同一フレームどうしを対応付けて多重化する。また、マルチプレクサ13は、囲い込み画像データである複数のカメラ位置から撮像された画像データの各フレームに、そのカメラ位置を対応付けて多重化するようにもなっている。なお、囲い込み撮像部12を構成する各カメラのカメラ位置は、あらかじめ分かっているものとする。また、カメラ位置としては、例えば、被写体のある位置を原点とする3次元座標系上での位置を表す座標などを採用することができる。
記録/送信部14は、マルチプレクサ13から供給される多重化画像データを、記録媒体3(図1)に記録し、あるいは伝送媒体4を介して送信する。
次に、図3は、図2の広角撮像部11の構成例を示している。
広角撮像部11は、全方位カメラ21で構成されている。全方位カメラ21は、理想的には、光軸に垂直な面から撮像方向側の、図3に示すような半球状の面を通って全方位カメラ21に入射する光線を受光し、その光線に対応する画像データを出力する。
ここで、全方位カメラ21としては、例えば、魚眼レンズ付きのカメラや、双曲面ミラー付きのカメラなどを採用することができる。なお、本実施の形態では、全方位カメラ21として、魚眼レンズ付きのカメラを採用することとする。
全方位カメラ21は、被写体の周囲の全方位の風景等を撮像することができるように設置されている。従って、例えば、被写体が、競技場で行われているサッカーの試合であるとすると、全方位カメラ21は、例えば、競技場の中央に設置され、これにより、全方位カメラ21では、サッカーの試合を観戦している観客がいるスタンドの風景が撮像される。
次に、図4は、図2の囲い込み撮像部12の構成例を示している。
囲い込み撮像部12は、被写体の周囲に、その被写体を囲い込むように配置された多数の囲い込みカメラ22k(k=1,2,・・・)で構成され、これにより、囲い込み撮像部12では、多数の視点から見た被写体の画像が撮像される。従って、被写体が、例えば、上述したように、競技場で行われているサッカーの試合であるとすると、囲い込み撮像部12を構成する多数の囲い込みカメラ22kは、競技場に設けられたサッカーフィールドを囲むように配置され、これにより、囲い込みカメラ22kでは、サッカーフィールド上でのサッカーの試合の模様が撮像される。
なお、囲い込みカメラ22kは、ある水平面内の、被写体の経度方向(水平方向)にのみ配置しても良いし、被写体の経度及び緯度のあらゆる方向(水平、垂直方向)に配置しても良い。囲い込みカメラ22kを、ある水平面内の、被写体の経度方向にのみ配置する場合には、後述する左右パララックス方式しか採用し得なくなるが、囲い込みカメラ22kを、被写体の経度及び緯度のあらゆる方向に配置する場合には、後述する左右パララックス方式と上下左右パララックス方式のいずれをも採用することが可能となる。
次に、図5は、全方位カメラ21(図3)と囲い込みカメラ22k(図4)の配置関係を示している。
囲い込みカメラ22kは、例えば、被写体を囲む半球の球面上に、等経度かつ等緯度間隔で配置され、その囲い込みカメラ22kの位置(カメラ位置)を視点として、被写体を撮像する。
全方位カメラ21は、例えば、囲い込みカメラ22kが配置された半球の中心に配置され、被写体の周囲の全方位、即ち、囲い込みカメラ22kが配置された半球の中心から、その半球の球面上の各点の方向を撮像する。
ここで、図5の実施の形態では、全方位カメラ21は、その光軸が、囲い込みカメラ22kが配置された半球の北極方向(緯度が90度の方向)を向くように配置されている。また、囲い込みカメラ22kは、その光軸が、囲い込みカメラ22kが配置された半球の中心方向を向くように配置されている。
なお、全方位カメラ21および囲い込みカメラ22kの配置方法は、図5に示した配置に限定されるものではない。
図2に示した撮像システム1では、広角撮像部11において、全方位カメラ21(図3)が、被写体の全方位の画像を撮像し、その結果得られる全方位画像データ(広角画像データ)を、マルチプレクサ13に供給する。同時に、囲い込み撮像部12において、囲い込みカメラ22k(図4)が、そのカメラ位置から見た被写体の画像を撮像し、その結果得られる囲い込み画像データを、マルチプレクサ13に供給する。
マルチプレクサ13は、広角撮像部11から供給される全方位画像データと、囲い込み撮像部12から供給される囲い込み画像データとを多重化し、その多重化の結果得られる多重化画像データを、記録/送信部14に供給する。
記録/送信部14は、マルチプレクサ13から供給される多重化画像データを、記録媒体3(図1)に記録し、あるいは、伝送媒体4を介して送信する。
従って、撮像システム1では、被写体が、例えば、競技場で行われているサッカーの試合である場合には、サッカーの試合を観戦している観客がいるスタンドの風景や大きく蹴り上げられたサッカーボールなどが、全方位画像データとして撮像されるとともに、そのサッカーの試合のグランドやプレーをしている選手などを多数の視点から見た画像が、囲い込み画像データとして撮像される。
次に、図6は、図1の表示システム2の構成例を示している。
再生/受信部31は、記録媒体3(図1)から多重化画像データを再生し、あるいは、伝送媒体4(図1)を介して送信されてくる多重化画像データを受信し、その多重化画像データを、デマルチプレクサ32に供給する。
デマルチプレクサ32は、再生/受信部31から供給される多重化画像データを、フレームごとの全方位画像データと囲い込み画像データとに分離し、全方位画像データを、広角画像処理部33に供給するとともに、囲い込み画像データを、囲い込み画像処理部35に供給する。
広角画像処理部33は、デマルチプレクサ32から供給される全方位画像データを処理し、その処理の結果得られる画像データを、広角画像表示部34に供給する。
広角画像表示部34は、広角画像処理部33から供給される画像データを表示することにより、ユーザに没入感を提供する没入画像を表示する。
囲い込み画像処理部35は、デマルチプレクサ32から供給される囲い込み画像データを、視点検出部37から供給されるユーザの視点に応じて処理し、そのユーザの視点から被写体を見たときの画像データを生成して、囲い込み画像表示部36に供給する。
囲い込み画像表示部36は、囲い込み画像処理部35から供給される画像データを表示することにより、ユーザの視点などの所定の視点から被写体を見たときの鳥瞰画像を表示する。
視点検出部37は、ユーザの視点を検出し、囲い込み画像処理部35に供給する。ここで、視点検出部37としては、例えば、ポヒマス(Polhemus)社の3次元位置センサとしての磁気センサなどを採用することができる。この場合、磁気センサである視点検出部37は、例えば、ユーザの頭部に装着される。また、視点検出部37としては、例えば、ジョイスティックやトラックボールなどの、視点(の変化)を入力することのできる手段を採用することも可能である。即ち、視点検出部37は、実際のユーザの視点を検知する手段である必要はなく、仮想的なユーザの視点を入力することができる手段であってもよい。
次に、図7は、図6の広角画像表示部34の構成例を示している。
広角画像表示部34は、外側用全方位プロジェクタ41と外側ドームスクリーン42で構成されている。
外側用全方位プロジェクタ41は、広角に光線を発することができるプロジェクタで、例えば、一般的なプロジェクタと、そのプロジェクタが発する光線を広角なものとする光学系としての魚眼レンズなどから構成される。
外側ドームスクリーン42は、例えば、半球ドーム形状をしており、ユーザを囲むように配置されている。また、外側ドームスクリーン42としての半球ドームは、その半球ドームの中に、複数のユーザが入っても、ある程度動き回れる程度の大きさとなっており、その直径が、例えば5m程度とされている。
外側ドームスクリーン42の内側(または外側)の面には、例えば、光を散乱する塗料が塗布されている。そして、外側ドームスクリーン42の内部には、その内側の面に向かって光線が発光されるように、外側用全方位プロジェクタ41が配置されている。
即ち、外側用全方位プロジェクタ41は、例えば、その光学中心が、外側ドームスクリーン42としての半球ドームの中心に一致し、その光軸が水平面と直交するように配置されている。そして、外側用全方位プロジェクタ41は、広角画像処理部33から供給される画像データに対応する光線を、魚眼レンズを介して発することにより、その光線を、半球ドームである外側ドームスクリーン42の内側の面全体に向かって射出する。
外側用全方位プロジェクタ41が発する光線は、半球ドームである外側ドームスクリーン42の内側の面上の各点で受光されて散乱される。これにより、ユーザを覆う外側ドームスクリーン42の内側の面においては、外側用全方位プロジェクタ41が発する光線に対応する没入画像、即ち、撮像システム1で撮像された被写体の全方位の画像が表示される。
なお、外側ドームスクリーン42の形状は、ユーザを囲むような形状であれば、半球ドーム形状に限定されるものではなく、その他、円筒形などを採用することが可能である。
次に、図8は、図6の囲い込み画像表示部36の構成例を示している。
囲い込み画像表示部35は、内側用全方位プロジェクタ43と内側ドームスクリーン44で構成されている。
内側用全方位プロジェクタ43は、図7の外側用全方位プロジェクタ41と同様に、広角に光線を発することができるプロジェクタで、例えば、一般的なプロジェクタと、そのプロジェクタが発する光線を広角なものとする光学系としての魚眼レンズなどから構成される。
内側ドームスクリーン44は、例えば、半球ドーム形状をしており、その内側(または外側)の面には、例えば、光を散乱する塗料が塗布されている。そして、内側ドームスクリーン44の内部には、その内側の面に向かって光線が発光されるように、内側用全方位プロジェクタ43が配置されている。
即ち、内側用全方位プロジェクタ43は、例えば、その光学中心が、内側ドームスクリーン44としての半球ドームの中心に一致し、その光軸が水平面と直交するように配置されている。そして、内側用全方位プロジェクタ43は、広角画像処理部33から供給される画像データに対応する光線を、魚眼レンズを介して発することにより、その光線を、半球ドームである内側ドームスクリーン44の内側の面全体に向かって射出する。
内側用全方位プロジェクタ43が発する光線は、半球ドームである内側ドームスクリーン44の内側の面上の各点で受光されて散乱される。内側ドームスクリーン44自体は、透明な部材で構成されており、その内側の面において、内側用全方位プロジェクタ43が発する光線が散乱されることにより、その外側の面には、内側用全方位プロジェクタ43が発する光線に対応する鳥瞰画像、即ち、撮像システム1で撮像された被写体をある視点から見た画像が、いわゆる背面投影される形で表示される。
なお、ここでは、内側ドームスクリーン44の形状を、図7の外側ドームスクリーン42の形状と相似の形状である半球ドームとしたが、内側ドームスクリーン44の形状は、外側ドームスクリーン42の形状と相似である必要はない。即ち、内側ドームスクリーン44の形状は、外側ドームスクリーン42の形状とは独立に、例えば、円筒形や、多角柱形状などとすることが可能である。
次に、図9は、外側ドームスクリーン42(図7)と内側ドームスクリーン44の配置関係を示している。
上述したように、外側ドームスクリーン42は、ユーザを囲むように配置される。そして、内側ドームスクリーン44は、外側ドームスクリーン42の内側に配置される。
従って、外側ドームスクリーン42の内側で、かつ内側ドームスクリーン44の外側にいるユーザは、外側ドームスクリーン42の内側の面に表示される没入画像と、内側ドームスクリーン44の外側の面に表示される鳥瞰画像とを同時に視聴することができる。その結果、ユーザは、没入画像によって提供される没入感を享受することができるとともに、鳥瞰画像によって自身の位置を容易に把握することができる。
即ち、外側ドームスクリーン42の内側の面には、例えば、サッカーの競技場のスタンドの風景等の没入画像が表示され、内側ドームスクリーン44の外側の面には、ユーザの視点から、サッカーフィールドを見たときの試合の様子が表示されるので、ユーザは、実際に、サッカーの競技場で、サッカーの試合を観戦しているかのような臨場感を味わうことができる。
次に、図10に示すように、外側ドームスクリーン42の内部には、一人だけでなく、複数人のユーザが入ることができ、従って、表示システム2によれば、複数のユーザが、外側ドームスクリーン42に表示される没入画像と、内側ドームスクリーン44に表示される鳥瞰画像とを、同時に視聴することができる。
そして、例えば、いま、図11に示すように、外側ドームスクリーン42の内部に、二人のユーザAとBが存在し、そのユーザAとBが、異なる位置にいる場合には、内側ドームスクリーン44では、ユーザAに対しては、そのユーザAの視点から被写体を見たときの鳥瞰画像が表示され、ユーザBに対しては、そのユーザAの視点から被写体を見たときの鳥瞰画像が表示される。
即ち、表示システム2では、内側ドームスクリーン44において、ユーザに対して、そのユーザの視点から被写体を見たときの鳥瞰画像が表示される。
従って、ユーザは、その視点から被写体を見たときの画像(鳥瞰画像)を視聴することができ、その視点を選択する自由を有する。
ここで、ユーザが選択しうる視点の位置は、例えば、図12に示すように、外側ドームスクリーン42内部の、ある高さの水平面内の位置に限定することもできるし、そのような限定をせずに、例えば、図13に示すように、外側ドームスクリーン42内部の任意の位置とすることもできる。なお、図12のように、視点を、ある水平面内の位置に限定する方式は、ユーザが視点を左右方向にのみ移動することができるので、左右パララックス(parallax)方式ということができる。また、図13のように、視点を、任意の位置とすることができる方式は、ユーザが視点を上下左右の任意の方向に移動することができるので、上下左右パララックス方式ということができる。
次に、図14は、図6の広角画像処理部33の構成例を示している。
デマルチプレクサ32(図6)が出力するフレームごとの全方位画像データは、フレームメモリ51に供給され、フレームメモリ51は、デマルチプレクサ32から供給される全方位画像データをフレーム単位で記憶し、その記憶した全方位画像データをフレーム単位で読み出して、広角画像変換部52に供給する。なお、フレームメモリ51は、複数のメモリバンクを有しており、バンク切り替えを行うことで、全方位画像データの記憶と読み出しを同時に行うことができるようになっている。
広角画像変換部52は、コントローラ56の制御の下、フレームメモリ51から供給される全方位画像データを、緯度方向と経度方向で規定される平面上の長方形状の緯度経度画像データに変換し、画角補正部53に供給する。
画角補正部53は、コントローラ56の制御の下、広角画像変換部52から供給される緯度経度画像データを、広角画像表示部34(図7)の外側用全方位プロジェクタ41の光学特性に基づいて補正し、その補正後の緯度経度画像データを、緯度経度画像変換部54に供給する。
緯度経度画像変換部54は、コントローラ56の制御の下、画角補正部53から供給される緯度経度画像データを、全方位画像データに変換し、フレームメモリ55に供給する。
フレームメモリ55は、緯度経度画像変換部54から供給される全方位画像データをフレーム単位で記憶し、その記憶した全方位画像データをフレーム単位で読み出して、広角画像表示部34(図7)の外側用全方位プロジェクタ41に供給する。なお、フレームメモリ55も、フレームメモリ51と同様に、複数のメモリバンクを有しており、バンク切り替えを行うことで、全方位画像データの記憶と読み出しを同時に行うことができるようになっている。
コントローラ56は、フレームメモリ51における全方位画像データの記憶状況に基づいて、広角画像変換部52、画角補正部53、および緯度経度画像変換部54を制御する。
次に、図15乃至図17を参照して、図14の広角画像変換部52、画角補正部53、および緯度経度画像変換部54の処理について説明する。
広角画像変換部52には、フレームメモリ51に記憶された全方位画像データ、即ち、図3の広角撮像部11を構成する全方位カメラ21で撮像された全方位画像データが供給される。
いま、図15に示すように、全方位カメラ21の光軸をz軸とするとともに、全方位カメラ21の撮像面(受光面)をxy平面とする3次元座標系を、広角画像撮像座標系と呼ぶこととして、この広角画像撮像系において、全方位カメラ21に入射する光線と、全方位カメラ21がその光線を受光することにより撮像する全方位画像データとの関係を考える。
全方位カメラ21に入射する光線Lは、その魚眼レンズで屈折し、全方位カメラ21の撮像面に入射する。即ち、魚眼レンズは、光線Lを、広角画像撮像座標系のz軸と光線Lとを含む平面内において屈折し、xy平面に入射させる。従って、全方位カメラ21では、例えば、円形状、または図16に斜線を付して示すような、いわばドーナツ形状の画像データが、全方位画像データとして撮像される。
ここで、広角画像撮像座標系において、図15に示すように、xy平面上でx軸となす角度を、経度θというとともに、z軸となす角度を、緯度φということとして、経度がθで、緯度がφの方向を、方向(θ,φ)と表すこととすると、全方位カメラ21に対して、方向(θ,φ)から入射する光線Lは、全方位カメラ21の魚眼レンズにおいて、緯度φに応じて屈折する。
従って、方向(θ,φ)から入射する光線Lを、光線L(θ,φ)と表すとともに、その光線L(θ,φ)が射影されるxy平面上の点を、Q(x,y)と表すこととすると、経度θと緯度φは、点Qのx座標とy座標を用いて、次式で表される。
但し、式(2)において、関数f1()は、全方位カメラ21の魚眼レンズの光学特性によって決まる関数である。なお、関数f1()の逆関数を、f1 -1()と表すと、式(2)は、√(x2+y2)=f1 -1(θ)と表すことができる。逆関数f1 -1(θ)は魚眼レンズの光学特性を表すが、この逆関数f1 -1(θ)が、[魚眼レンズの焦点距離]×θで表される魚眼レンズは、等距離射影(equidistance projection)方式と呼ばれる。
式(1)と(2)から、全方位カメラ21で撮像される全方位画像上のある点Q(x,y)は、その点に入射する光線L(θ,φ)の方向を表す経度θと緯度φで表現することができる。
即ち、点Q(x,y)と原点Oとを結ぶ直線と、x軸とがなす角度は、光線Lの経度θに等しい。また、点Q(x,y)と原点Oとの距離√(x2+y2)は、光線Lの緯度φに依存する。そして、経度θと緯度φとは、独立した値である。
従って、例えば、経度θを横軸とするとともに、経度φを縦軸とする2次元座標系としての緯度経度座標系を考えると、全方位画像データを構成する画素Q(x,y)は、緯度経度座標系上の点Q’(θ,φ)に射影することができる。
全方位画像データを、緯度経度座標系に射影することにより、図17に示すように、ドーナツ形状の全方位画像データは、経度θと緯度φで規定される長方形状の画像データ、即ち、緯度経度画像データに変換される。
図14の広角画像変換部52は、以上のように、全方位画像データを緯度経度画像データに変換する。
次に、全方位画像を撮像する広角撮像部11(図3)の全方位カメラ21の魚眼レンズの光学特性と、全方位画像に対応する光線を発する広角画像表示部34(図7)の外側用全方位プロジェクタ41の魚眼レンズの光学特性とが同一であるとした場合、外側用全方位プロジェクタ41に、全方位カメラ21で得られた全方位画像データをそのまま供給すれば、外側用全方位プロジェクタ41からは、全方位カメラ21に入射する光線と向きだけが逆向きの光線が射出されるから、外側用全方位プロジェクタ41からの光線を受光する外側ドームスクリーン42(図7)では、理論的には、全方位カメラ21で撮像された風景等と同一の画像が表示される。
しかしながら、全方位カメラ21(図3)と外側用全方位プロジェクタ41(図7)の魚眼レンズの光学特性が同一であるとは限らず、異なる場合がある。
ここで、全方位カメラ21に入射する光線L(θ,φ)が到達する撮像面上の点Q(x,y)と、経度θおよび緯度φとの間には、式(1)および(2)に示した関係がある。
そして、式(1)で表される経度θは、魚眼レンズの光学特性に影響を受けないが、式(2)で表される緯度φは、関数f1()を用いて求められ、この関数f1()の逆関数関数f1 -1()は、上述したように、魚眼レンズの光学特性を表すから、魚眼レンズの光学特性に影響を受ける。
従って、全方位カメラ21(図3)と外側用全方位プロジェクタ41(図7)の魚眼レンズの光学特性が異なる場合に、外側ドームスクリーン42(図7)で表示される画像を、全方位カメラ21で撮像された風景等と同一の画像とするには、全方位カメラ21で撮像された全方位画像データの緯度φ方向の補正が必要となる。
全方位画像データの緯度φ方向は、図17に示した緯度経度画像データの縦軸方向となるから、図14の画角補正部53は、広角画像変換部52から供給される緯度経度画像データの縦軸方向である緯度φを、例えば次式によって、緯度φ’に補正する。
但し、式(3)において、αは、全方位カメラ21(図3)と外側用全方位プロジェクタ41(図7)の魚眼レンズの光学特性によって決まる値である。
従って、広角画像変換部52から供給される緯度経度画像データを構成する画素を、Q’(θ,φ)と表すと、画角補正部53では、画素Q’(θ,φ)が、画素Q’(θ,φ’)に補正される。
なお、緯度φは、図17に示したように、緯度経度画像データの縦軸方向を表すから、緯度経度画像データの縦方向の画角に相当する。従って、緯度φの補正は、緯度経度画像データの縦方向の画角を小さくまたは広くすることに相当する。
長方形状の緯度経度画像データを、そのまま、外側用全方位プロジェクタ41(図7)に供給しても、外側ドームスクリーン42には、全方位カメラ21(図3)で撮像された全方位画像が表示されないため、図14の緯度経度画像変換部54は、画角補正部53で緯度φの補正が行われた緯度経度画像データを、再び、図16に示したようなドーナツ形状(あるいは円形状)の全方位画像データに変換する。緯度経度画像変換部54で得られる全方位画像データは、その緯度φ方向のスケールが、全方位カメラ21(図3)と外側用全方位プロジェクタ41(図7)の魚眼レンズの光学特性に基づいて補正されており、この全方位画像データを、外側用全方位プロジェクタ41(図7)に供給することで、外側ドームスクリーン42では、全方位カメラ21(図3)で撮像された全方位画像が表示されることになる。
次に、図18のフローチャートを参照して、図14の広角画像処理部33で行われる処理(広角画像処理)について説明する。
コントローラ56は、フレームメモリ51を監視しており、フレームメモリ51が全方位画像データの記憶を開始すると、広角画像処理を開始する。
即ち、広角画像処理では、まず最初に、ステップS1において、コントローラ56が、フレーム数をカウントする変数iに、初期値としての、例えば1をセットし、ステップS2に進む。ステップS2では、フレームメモリ51が、そこに記憶された第iフレームの全方位画像データを読み出し、広角画像変換部52に供給して、ステップS3に進む。
ステップS3では、広角画像変換部52が、フレームメモリ51から供給される全方位画像データを構成する各画素Q(x,y)について、式(1)により、経度θを求め、ステップS4に進む。ステップS4では、広角画像変換部52が、フレームメモリ51から供給される全方位画像データを構成する各画素Q(x,y)について、式(2)により、緯度φを求め、ステップS5に進む。
ステップS5では、広角画像変換部52が、フレームメモリ51から供給される全方位画像データを構成する各画素Q(x,y)を、その画素Q(x,y)について求められた経度θと緯度φで表される緯度経度座標系上の点(θ,φ)に配置することによって、図17に示したように、ドーナツ形状の全方位画像データを、長方形状の緯度経度画像データに変換する。
広角画像変換部52は、ステップS5において、以上のようにして緯度経度画像データを求めると、その緯度経度画像データを、画角補正部53に供給して、ステップS6に進む。
ステップS6では、画角補正部53が、広角画像変換部52から供給される緯度経度画像データの緯度φ方向を、式(3)にしたがって、緯度φ’に補正し、その補正後の緯度φ’と、経度θで表される緯度経度画像データを、緯度経度画像変換部54に供給して、ステップS7に進む。
ステップS7では、緯度経度画像変換部54が、画角補正部53から供給される緯度経度画像データを構成する各画素Q’(θ,φ’)について、広角画像撮像座標系のxy平面上のx座標を、式(4)にしたがって求め、ステップS8に進む。
ステップS8では、緯度経度画像変換部54が、画角補正部53から供給される緯度経度画像データを構成する各画素Q’(θ,φ’)について、広角画像撮像座標系のxy平面上のy座標を、式(5)にしたがって求め、ステップS9に進む。
ここで、式(4)および(5)における関数f2(φ’)は、外側用全方位プロジェクタ41(図7)の光学特性を表す関数(外側用全方位プロジェクタ41の魚眼レンズの射影方式によって決まる関数)である。なお、式(1)と(2)を、xとyそれぞれについて解くことにより、式(4)および(5)と同様の式を得ることができる。
ステップS9では、緯度経度画像変換部54が、画角補正部53から供給される緯度経度画像データを構成する各画素Q’(θ,φ’)を、その画素Q’(θ,φ’)について求められたx座標とy座標で表される広角画像撮像座標系のxy平面上の点(x,y)に配置することによって、長方形状の緯度経度画像データを、ドーナツ形状の全方位画像データに変換し、この全方位画像データが、外側用全方位プロジェクタ41(図7)に発光させる画像データである発光全方位画像データとして、フレームメモリ55に供給されて記憶される。
以上のようにして、フレームメモリ55に記憶された発光全方位画像データは、順次読み出され、広角画像表示部34(図6)に供給される。そして、広角画像表示部34では、その外側用全方位プロジェクタ41(図7)が、発光全方位画像データに対応する光線を発し、この光線が、外側ドームスクリーン42(図7)で受光されることで、外側ドームスクリーン42では、全方位カメラ21(図3)で撮像された被写体の全方位の風景の画像が、没入画像として表示される。
その後、ステップS10に進み、コントローラ51は、フレームメモリ51を参照することにより、第iフレームが、最後のフレームであるか否かを判定する。ステップS10において、第iフレームが最後のフレームでないと判定された場合、即ち、フレームメモリ51に、第iフレームより後のフレームの全方位画像データが記憶されている場合、ステップS11に進み、コントローラ56は、変数iを1だけインクリメントして、ステップS2に戻り、以下、同様の処理が繰り返される。
また、ステップS10において、第iフレームが最後のフレームであると判定された場合、即ち、フレームメモリ51に、第iフレームより後のフレームの全方位画像データが記憶されていない場合、広角画像処理を終了する。
なお、全方位カメラ21(図3)と外側用全方位プロジェクタ41(図7)の光学特性が同一である場合には、デマルチプレクサ32(図6)が出力する全方位画像データは、図14の広角画像処理部33をスルーして、そのまま、発光全方位画像データとして、広角画像表示部34に供給することが可能である。
次に、図6の囲い込み画像処理部35の処理の概要について説明する。
囲い込み画像表示部36(図6)では、上述したように、その内側ドームスクリーン44(図8)において、ユーザに対し、そのユーザの視点から被写体を見た画像が表示される。また、複数のユーザが存在する場合には、内側ドームスクリーン44(図8)において、複数のユーザそれぞれに対し、そのユーザの視点から被写体を見た画像が表示される。
従って、内側ドームスクリーン44では、図19に示すように、その内側ドームスクリーン44が仮に透明であり、かつ、その内側ドームスクリーン44の内部に、囲い込み撮像部12(図2)で撮像対象となった被写体が仮に存在するとした場合に、各ユーザの視覚に映る被写体と画像と同一の画像が表示される。
即ち、図19の実施の形態では、二人のユーザAとBが存在するが、内側ドームスクリーン44では、その中心とユーザAの視点とを結ぶ直線と交わる部分に、ユーザAの視点から被写体を見たときの画像が表示される。さらに、内側ドームスクリーン44では、その中心とユーザBの視点とを結ぶ直線と交わる部分に、ユーザBの視点から被写体を見たときの画像が表示される。
このため、図8の囲い込み表示部36では、例えば、図20に示すように、内側用全方位プロジェクタ43が、図示せぬ液晶パネルなどの表示面に、各ユーザの視点から見た被写体の画像(以下、適宜、視点画像という)を表示して、その視点画像に対応する光線を、魚眼レンズを介して発し、これにより、内側ドームスクリーン44において、各ユーザの視点から見た被写体の画像が、各ユーザに表示される。
そこで、図6の囲い込み画像処理部35は、デマルチプレクサ32から供給される囲い込み画像データを用い、視点検出部37から供給される各視点について、その視点から被写体を見たときの画像(視点画像)を生成し、さらに、各視点についての視点画像を、その視点に応じた位置に配置することにより、内側用全方位プロジェクタ43(図8)に発光させる光線に対応する発光画像、即ち、内側用全方位プロジェクタ43の表示面に表示させる発光画像(以下、表示用画像ともいう)を生成する。
ところで、例えば、図21に示すように、ユーザAとBが離れており、従って、ユーザAとBの視点も離れている場合は、内側ドームスクリーン44において、ユーザAとBそれぞれに対して、その視点から見た被写体の画像(視点画像)を表示しても、ユーザAは、そのユーザAの視点についての視点画像だけを見ることができ、ユーザBも、そのユーザBの視点についての視点画像だけを見ることができる。
即ち、ユーザAには、ユーザBの視点についての視点画像は見えず、あるいは、見えても、ユーザAの視点についての視点画像の視聴を妨げない程度にしか見えない。ユーザBについても、同様に、ユーザAの視点についての視点画像は見えず、あるいは、見えても、ユーザBの視点についての視点画像の視聴を妨げない程度にしか見えない。
一方、例えば、図22に示すように、ユーザAとBが近い位置にいる場合には、視点どうしも近くなり、内側ドームスクリーン44に表示されるユーザAとBそれぞれについての視点画像どうしが重なることがある。また、内側ドームスクリーン44に表示されるユーザAとBそれぞれについての視点画像どうしが重ならない場合であっても、ユーザAとBそれぞれについての視点画像が、内側ドームスクリーン44において近い位置に表示されるため、ユーザBの視点についての視点画像が、ユーザAの視点についての視点画像の、ユーザAによる視聴を妨げるとともに、ユーザAの視点についての視点画像が、ユーザBの視点についての視点画像の、ユーザBによる視聴を妨げることになる。
そこで、囲い込み画像処理部35は、ユーザAとBの視点どうしの距離が短い場合には、そのユーザAとBの視点の両方から近い位置に、ユーザAとBに共通の視点を設定し、その視点から被写体を見た画像(視点画像)を生成する。この場合、内側ドームスクリーン44では、図22に示すように、ユーザAとBの両方に対して、共通の視点から被写体を見た画像が表示されることとなり、ユーザAとBによる画像の視聴が妨げられることを防止することができる。
図23は、以上のような処理(囲い込み画像処理)を行う、図6の囲い込み画像処理部35の構成例を示している。
視点バッファ61には、視点検出部37(図6)が出力するユーザの視点が供給されるようになっており、視点バッファ61は、視点検出部37から供給される視点を記憶する。なお、複数のユーザが存在する場合には、図6の視点検出部37は、その複数のユーザの視点を検出し、視点バッファ61に供給する。この場合、視点バッファ61は、視点検出部37から供給される複数のユーザの視点すべてを記憶する。
視点処理部62は、視点バッファ61に記憶されたユーザの視点を読み出し、その視点について所定の処理を必要に応じて施しながら、視点記憶部63に供給する。視点記憶部63は、視点処理部62から供給される視点を記憶する。視点方向算出部64は、視点記憶部63に記憶された視点の方向(視点方向)を求め、視点画像変換部67に供給する。
フレームメモリ65は、デマルチプレクサ32(図6)から供給される囲い込み画像データをフレーム単位で記憶し、その記憶した囲い込み画像データを読み出して、画像選択部66に供給する。なお、フレームメモリ65も、図14のフレームメモリ51と同様に構成されており、これにより、フレームメモリ65では、囲い込み画像データの記憶と読み出しとを同時に行うことができるようになっている。
画像選択部66は、視点記憶部63に記憶された視点についての視点画像を生成するのに必要な画像データを、フレームメモリ65から供給される囲い込み画像データの中から選択する。即ち、囲い込み画像データは、図4に示したように、複数のカメラ位置に配置された複数の囲い込みカメラ221,222,223,・・・で撮像された画像データの集合であり、いま、この囲い込み画像データを構成する囲い込みカメラ22kで撮像された画像データを、カメラ画像データというものとすると、画像選択部66は、視点記憶部63に記憶された視点に基づき、囲い込み画像データからカメラ画像データを選択する。
そして、画像選択部66は、視点記憶部63に記憶された視点に基づいて囲い込み画像データから選択したカメラ画像データを、そのまま、あるいは処理し、その視点についての視点画像データとして、視点画像変換部67に供給する。
視点画像変換部67は、視点方向算出部64から供給される視点方向と、内側ドームスクリーン44(図8)の形状とに基づき、画像選択部66から供給される視点画像データを用いて、内側用全方位プロジェクタ43(図8)の表示面に表示させる表示用画像データを生成し、フレームメモリ68に供給する。
なお、以上の画像選択部66と視点画像変換部67によって、ユーザの視点と、内側ドームスクリーン44(図8)の形状とに基づき、囲い込み画像データから表示用画像データを生成する表示用画像生成部70が構成されている。
フレームメモリ68は、視点画像変換部67から供給される表示用画像データを記憶し、その記憶した表示用画像データを、内側用全方位プロジェクタ43(図8)に供給する。ここで、フレームメモリ68も、図14のフレームメモリ51と同様に構成されており、これにより、フレームメモリ68では、表示用画像データの記憶と読み出しとを同時に行うことができるようになっている。
コントローラ69は、フレームメモリ65における囲い込み画像データの記憶状況を参照しながら、視点処理部62、視点方向算出部64、画像選択部66、および視点画像変換部67を制御する。
次に、図24を参照して、図23の視点方向算出部64の処理について説明する。
視点方向算出部64は、視点記憶部63に記憶された視点の方向(視点方向)を表す経度と緯度を求める。
即ち、いま、内側用全方位プロジェクタ43の光軸をz軸とするとともに、内側用全方位プロジェクタ43の表示面をxy平面とする3次元座標系を、囲い込み画像表示座標系と呼ぶこととすると、視点方向算出部64は、囲い込み画像表示座標系において、ある位置にある視点V(x,y,z)を、原点Oから見た方向を、視点方向として求める。
そこで、いま、囲い込み画像表示座標系において、図24に示すように、xy平面上でx軸となす角度を、経度θというとともに、z軸となす角度を、緯度φということとして、経度がθで、緯度がφの方向を、方向(θ,φ)と表すこととすると、視点V(x,y,z)の視点方向(θ,φ)を表す経度θと緯度φは、それぞれ次式で求めることができる。
視点方向算出部64は、式(6)および(7)によって、視点方向(θ,φ)を求め、視点画像変換部67に供給する。
次に、図25乃至図27を参照して、図23の表示用画像生成部70の処理について説明する。
内側ドームスクリーン44(図8)において、ユーザに対し、そのユーザの視点から被写体を見た視点画像を表示するには、単純には、例えば、図25に示すように、ユーザの視点の視点方向(θ,φ)と内側ドームスクリーン44との交点Uを中心とする、内側ドームスクリーン44上の所定の範囲に、その視点方向(θ,φ)から撮像したカメラ画像データを、視点画像として表示すればよい。
従って、いま、視点方向(θ,φ)から撮像したカメラ画像データである視点画像を、視点画像(θ,φ)と表すとともに、ユーザの視点の視点方向(θ,φ)と内側ドームスクリーン44との交点Uを中心とする、内側ドームスクリーン44上の所定の範囲を、表示エリア(θ,φ)と表すこととすると、視点画像(θ,φ)を、表示エリア(θ,φ)に表示させることができるように、視点画像(θ,φ)を、内側用全方位プロジェクタ43(図8)の表示面に表示させる表示用画像上の位置に書き込む必要がある。
そこで、図23の表示用画像生成部70では、画像選択部66において、視点記憶部63に記憶された視点の視点方向(θ,φ)から撮像したカメラ画像データとしての視点画像(θ,φ)を選択し、視点画像変換部67において、その視点画像(θ,φ)を、表示エリア(θ,φ)に表示させることができるように、表示用画像に配置する。
いま、例えば、内側用全方位プロジェクタ43の表示面をxy平面とする2次元座標系を、表示面座標系と呼ぶこととして、図26に示すように、そのx座標とy座標を、xs座標とys座標と表す。また、視点画像(θ,φ)をxy平面とする2次元座標系を、視点画像座標系と呼ぶこととする。なお、図26に示すように、表示面座標系の原点Osは、内側用全方位プロジェクタ43の光軸と表示面との交点にとり、視点画像座標系の原点Oは、長方形状の視点画像(θ,φ)の中心(長方形状の視点画像(θ,φ)の対角線どうしの交点)にとることとする。
視点画像(θ,φ)を、表示エリア(θ,φ)に表示させるには、第1に、図26に示すように、視点画像(θ,φ)を、表示面座標系の原点Osから、緯度φに対応する距離g(φ)だけ離れた位置に配置する必要がある。さらに、視点画像(θ,φ)を、表示エリア(θ,φ)に表示させるには、第2に、図27に示すように、視点画像(θ,φ)を、反時計回りに、角度π/2+θだけ回転する必要がある。
そこで、視点画像変換部67は、まず、式(8)にしたがい、視覚画像(θ,φ)の視点画像座標系の原点Oの、表示面座標系における座標O(xsO,ysO)を求める。
ここで、式(8)において、関数g(φ)は、内側用全方位プロジェクタ43(図8)の光学特性を表す関数(内用全方位プロジェクタ43の魚眼レンズの射影方式によって決まる関数)である。
さらに、視点画像変換部67は、視覚画像(θ,φ)を構成する画素Qの、視点画像座標系における座標を、Q(xQ,yQ)と表すとともに、表示面座標系における座標を、Q(xsQ,ysQ)と表すこととすると、式(9)にしたがい、視覚画像(θ,φ)を構成する画素Qの、表示面座標系における座標Q(xsQ,ysQ)を求める。
そして、視点画像変換部67は、視覚画像(θ,φ)を構成する各画素Q(xQ,yQ)の画素値を、式(9)で表される座標(xsQ,ysQ)に対応するフレームメモリ68上の位置に書き込むことで、視覚画像(θ,φ)を、表示用画像に変換する。
次に、図28および図29のフローチャートを参照して、図23の囲い込み画像処理部35の処理(囲い込み画像処理)について説明する。
コントローラ69は、フレームメモリ65を監視しており、フレームメモリ65が囲い込み画像データの記憶を開始すると、囲い込み画像処理を開始する。
即ち、囲い込み画像処理では、まず最初に、ステップS21において、コントローラ69は、フレーム数をカウントする変数iに、初期値としての、例えば1をセットし、ステップS22に進む。
なお、ステップS21において変数iに1をセットする処理と、後述するステップS53の変数iをインクリメントする処理とは、上述した図18のステップS1において変数iに1をセットする処理と、ステップS11において変数iをインクリメントする処理と、それぞれ同期して行われる。即ち、広角画像処理部33における広角画像処理と、囲い込み画像処理部35における囲い込み画像処理とは、同一フレームを対象として、同期して行われる。これにより、広角画像表示部34と囲い込み画像表示部36では、同一フレームの没入画像と鳥瞰画像が同期して表示される。
ステップS22では、コントローラ69が、ユーザ数をカウントする変数nに、初期値としての、例えば1をセットし、ステップS23に進む。ステップS23では、視点処理部62が、視点バッファ61からユーザ#nの視点を読み出し、視点記憶部63に登録する。
即ち、視点検出部37(図6)は、外側スクリーンドーム42(図7)内にいるユーザすべての視点を、例えばフレーム周期で検出し、その検出した最新の視点によって、視点バッファ61の記憶内容を更新するようになっており、ステップS23では、視点処理部62は、第iフレームのタイミングにおいて視点バッファ61に記憶されているユーザ#nの視点を読み出し、視点記憶部63に登録する。なお、ユーザ#nの視点は、例えば、そのユーザ#nを表すID(Identification)とともに、視点記憶部63に記憶するようにすることができる。
視点処理部62が、ユーザ#nの視点を、視点記憶部63に登録した後は、ステップS24に進み、コントローラ69は、変数nが、外側スクリーンドーム42(図7)内にいるユーザの総数Nに等しいかどうかを判定する。ステップS23において、変数nがNに等しくないと判定された場合、ステップS25に進み、コントローラ69は、変数nを1だけインクリメントして、ステップS23に戻り、以下、同様の処理を繰り返す。
また、ステップS24において、変数nがNに等しいと判定された場合、即ち、視点記憶部63に、外側スクリーンドーム42(図7)内にいるユーザすべての視点が記憶された場合、ステップS26に進み、コントローラ69は、視点選択部66で処理の対象とする視点の総数を表す変数Mに、初期値としての、外側スクリーンドーム42(図7)内にいるユーザの総数Nをセットし、ステップS27に進む。
ステップS27では、コントローラ69は、視点をカウントする変数mに、初期値としての、例えば1をセットするとともに、後述する近距離視点の有無を表すフラグflagに、初期値としての、近距離視点がないことを表す、例えば0をセットし、ステップS28に進む。
ステップS28では、視点処理部62が、視点記憶部63に記憶されたM個の視点のうちのm番目の視点について、他のM−1個の視点それぞれとの間の距離(視点間距離)を求め、その視点間距離が、所定の閾値TH1以下(または未満)の視点を、m番目の視点についての近距離視点として検出する。そして、ステップS29に進み、視点処理部62は、m番目の視点についての近距離視点が存在するかどうかを判定する。
ステップS29において、m番目の視点についての近距離視点がないと判定された場合、即ち、m番目の視点との視点間距離が閾値TH1以下の視点が、視点記憶部63に記憶(登録)されていない場合、ステップS30乃至S34をスキップして、ステップS35に進む。
また、ステップS29において、m番目の視点についての近距離視点があると判定された場合、即ち、m番目の視点との視点間距離が閾値TH1以下の視点(近距離視点)が、視点記憶部63に記憶(登録)されている場合、ステップS30に進み、コントローラ69は、フラグflagに、近距離視点があることを表す、例えば1をセットし、ステップS31に進む。
ここで、ステップS30の処理は、フラグflagに、既に1がセットされている場合は、スキップすることができる。
ステップS31では、視点処理部62は、視点記憶部63に記憶された視点のうち、m番目の視点についての近距離視点とされたものの数を検出し、さらに、その近距離視点とm番目の視点の重心を検出する。
そして、ステップS32に進み、視点処理部62は、視点記憶部63におけるm番目の視点として、ステップS31で求めた重心を、上書きする形で登録し(書き込み)、ステップS33に進む。ステップS33では、視点処理部62が、視点記憶部63に記憶された視点のうち、m番目の視点についての近距離視点とされたものを削除し、ステップS34に進む。
ステップS34では、コントローラ69が、視点選択部66で処理の対象とする視点の総数を表す変数Mから、ステップS31で検出された近距離視点の数を減算し、その減算値を、変数Mに新たにセットして、ステップS35に進む。即ち、ステップS33では、視点記憶部63に記憶された視点のうちの近距離視点が削除されるため、ステップS34では、その削除された近距離視点の数だけ、変数Mの値が小さくされる。
従って、図28において点線で囲んであるステップS28乃至S34の処理によれば、m番目の視点との距離が近い1以上の視点が検出され、その1以上の視点とm番目の視点が、それらの視点の重心の位置に統合される。
ステップS35では、コントローラ69が、変数mが、変数M、即ち、視点記憶部63に記憶されている視点の数Mに等しいかどうかを判定する。ステップS35において、変数mが変数Mに等しくないと判定された場合、ステップS36に進み、コントローラ69は、変数mを1だけインクリメントして、ステップS28に戻り、以下、同様の処理が繰り返される。
また、ステップS35において、変数mが変数Mに等しいと判定された場合、ステップS37に進み、コントローラ69が、フラグflagが1に等しいかどうかを判定する。ステップS37において、フラグflagが1に等しいと判定された場合、即ち、視点記憶部63に記憶されている視点の中に、前回行われたステップS28乃至S36のループ処理において統合された視点が存在し、まだ視点を統合することができるかもしれない場合、ステップS27に戻り、以下、同様の処理が繰り返される。
一方、ステップS37において、フラグflagが1に等しくないと判定された場合、即ち、フラグflagが、ステップS27でセットされた0のままであり、視点記憶部63に記憶されている視点の中に、他の視点との距離が閾値TH1以下となるものが存在しない場合、図29のステップS41に進む。
ステップS41では、コントローラ69が、視点をカウントする変数mに、初期値としての、例えば1をセットし、ステップS42に進む。ステップS42では、画像選択部66が、視点記憶部66に記憶されたm番目の視点と、囲い込み撮像部12を構成する各囲い込みカメラ22kのカメラ視点との距離を、カメラ距離として算出する。
ここで、囲い込みカメラ22kのカメラ視点とは、囲い込み画像データに多重化されているカメラ位置を、所定の正規化係数βで正規化(除算)したものである。正規化係数βとしては、例えば、囲い込み画像表示座標系においてユーザが取り得る最も遠い視点と原点との距離を、被写体から最も遠い囲い込みカメラ22kと被写体との距離で除算した値などを採用することができる。
ステップS42の処理後は、ステップS43に進み、画像選択部66は、ステップS42でm番目の視点について求められたカメラ距離のうちの最小値Dminを、最小カメラ距離として求め、ステップS44に進む。ステップS44では、画像選択部66が、m番目の視点についての最小カメラ距離Dminが所定の閾値TH2以下(または未満)であるかどうかを判定する。
ステップS44において、m番目の視点についての最小カメラ距離Dminが所定の閾値TH2以下であると判定された場合、即ち、m番目の視点と、最小カメラ距離Dminを与えるカメラ視点とが近く、従って、そのカメラ視点を、m番目の視点とみなすことができる場合、ステップS45に進み、画像選択部66は、フレームメモリ65に記憶された囲い込み画像データの中から、最小カメラ距離Dminを与えるカメラ視点の囲い込みカメラ22kで撮像された第iフレームのカメラ画像を、m番目の視点についての視点画像として選択し、視点画像変換部67に供給して、ステップS49に進む。
また、ステップS44において、m番目の視点についての最小カメラ距離Dminが所定の閾値TH2以下でないと判定された場合、即ち、m番目の視点と、最小カメラ距離Dminを与えるカメラ視点とが近いとはいえず、従って、そのカメラ視点を、m番目の視点とみなすことができない場合、ステップS47に進み、画像選択部66は、m番目の視点について求められたカメラ距離のうちの2番目に小さいものを、第2のカメラ距離D2として検出し、フレームメモリ65に記憶された囲い込み画像データの中から、最小カメラ距離Dminを与えるカメラ視点の囲い込みカメラ22kで撮像された第iフレームのカメラ画像と、第2のカメラ距離D2を与えるカメラ視点の囲い込みカメラ22k'で撮像された第iフレームのカメラ画像の2つのカメラ画像を選択する。さらに、ステップS47では、画像選択部66が、最小カメラ距離Dminを与えるカメラ視点の囲い込みカメラ22kで撮像された第iフレームのカメラ画像と、第2のカメラ距離D2を与えるカメラ視点の囲い込みカメラ22k'で撮像された第iフレームのカメラ画像とを、第2のカメラ距離D2と最小カメラ距離Dminとの比D2:Dminで合成し、合成画像を生成する。
即ち、最小カメラ距離Dminを与えるカメラ視点の囲い込みカメラ22kで撮像された第iフレームのカメラ画像を構成するc番目の画素を、pcで表すとともに、第2のカメラ距離D2を与えるカメラ視点の囲い込みカメラ22k'で撮像された第iフレームのカメラ画像を構成するc番目の画素を、qcで表すとすると、画像選択部66は、画素pcとqcを、式(D2×pc+Dmin×qc)/(D2+Dmin)にしたがって合成して合成画素を生成し、そのような合成画素で構成される合成画像を生成する。
なお、ここでは、2つのカメラ画像を用いて合成画像を生成するようにしたが、合成画像は、その他、3以上のカメラ画像を用いて生成することが可能である。
その後、ステップS48に進み、画像選択部66は、ステップS47で生成した合成画像を、m番目の視点についての視点画像として選択し、視点画像変換部67に供給して、ステップS49に進む。
ステップS49では、m番目の視点についての視点画像が、表示用画像に変換される。
即ち、ステップS49では、視点方向算出部64が、視点記憶部63に記憶されたm番目の視点の視点方向(θ,φ)を算出し、視点画像変換部67に供給する。視点画像変換部67は、視点方向算出部64から供給されるm番目の視点の視点方向(θ,φ)に基づき、画像選択部66から供給されるm番目の視点についての視点画像の各画素を配置すべき、表示用画像の位置を、式(8)および(9)によって算出する。そして、視点画像変換部67は、そのようにして求めた表示用画像の位置に対応するフレームメモリ68上の位置(アドレス)に、m番目の視点についての視点画像の画素を配置し(書き込み)、ステップS50に進む。
ここで、以上のようにしてフレームメモリ68に書き込まれた表示用画像に対応する光線が、内側用全方位プロジェクタ43から発光されることにより、内側ドームスクリーン44には、m番目の視点から見た場合に、その視点から被写体を見たときの画像が表示される。
ステップS50では、コントローラ69が、変数mが、視点記憶部63に記憶された視点の総数Mに等しいかどうかを判定する。ステップS50において、変数mがMに等しくないと判定された場合、ステップS51に進み、コントローラ69は、変数mを1だけインクリメントして、ステップS42に戻り、以下、同様の処理を繰り返す。
また、ステップS50において、変数mがMに等しいと判定された場合、即ち、視点記憶部63に記憶されたすべての視点についての視点画像が、表示用画像に変換され、フレームメモリ68に書き込まれた場合、内側用全方位プロジェクタ43(図8)は、そのフレームメモリ68に記憶された表示用画像を、第iフレームの画像として、その画像に対応する光線を発光する。これにより、内側ドームスクリーン44では、1乃至M番目の視点それぞれから見た場合に、その視点から被写体を見たときの鳥瞰画像が、各視点に対応する位置に表示される。
その後、ステップS52に進み、コントローラ69は、フレームメモリ65を参照することにより、第iフレームが、最後のフレームであるか否かを判定する。ステップS52において、第iフレームが最後のフレームでないと判定された場合、即ち、フレームメモリ65に、第iフレームより後のフレームの囲い込み画像データが記憶されている場合、ステップS53に進み、コントローラ69は、変数iを1だけインクリメントして、図28のステップS22に戻り、以下、同様の処理が繰り返される。
また、ステップS52において、第iフレームが最後のフレームであると判定された場合、即ち、フレームメモリ65に、第iフレームより後のフレームの囲い込み画像データが記憶されていない場合、囲い込み画像処理を終了する。
以上のように、表示システム2では、外側ドームスクリーン42の内側の面に第iフレームの没入画像が表示されるとともに、内側ドームスクリーン44の外側の面に第iフレームの鳥瞰画像が表示されるので、ユーザは、没入画像によって提供される没入感を享受することができるとともに、鳥瞰画像によって自身の位置を容易に把握することができる。
従って、図1の撮像/表示システムを、例えば、スポーツ番組の撮像および表示に用いた場合には、撮像システム1の囲い込みカメラ22k(図4)を、そのスポーツが行われるスタジアムを取り囲むように多数連続的に配置するとともに、全方位カメラ21(図3)をスタジアムの中央に配置して撮像を行うことで、表示システム2において、臨場感あふれる画像表示が可能となる。
また、表示システム2の内側ドームスクリーン44では、ユーザの視点に応じた鳥瞰画像が、ユーザの視点に応じた位置に表示されるので、ユーザに提示される鳥瞰画像は、ユーザが視点を移動することにより変化する。従って、ユーザは、いわゆるのぞき込みが可能となり、ある視点からは隠れていた被写体の画像を、視点を移動することで見ることができるようになる。さらに、複数のユーザに対して、各ユーザの視点から被写体を見た鳥瞰画像を提示することが可能となる。
また、表示システム2によれば、例えば、外側ドームスクリーン42(図7)に、遠くにいる魚や動物等を表示し、内側ドームスクリーン44(図8)に、近くにいる魚や動物等を表示することで、水族館や動物園などの自然観察型施設を仮想的に実現することができる。
さらに、表示システム2においては、実際に撮像された画像ではなく、コンピュータグラフィックスなどの人為的に作られた画像を表示することが可能である。即ち、表示システム2においては、コンピュータグラフィックスとして作られた宇宙空間の画像や、分子などのミクロの構造の画像などを表示することが可能である。この場合、通常は視認することができない構造を、ユーザが直感的に把握することができるインタフェースの提供が可能となる。
また、表示システム2は、例えば、いわゆるテレビゲームの画像表示にも適用可能である。
次に、図6の広角画像処理部33や囲い込み画像処理部35による一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
そこで、図30は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク105やROM103に予め記録しておくことができる。
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体111に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体111は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体111からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部108で受信し、内蔵するハードディスク105にインストールすることができる。
コンピュータは、CPU(Central Processing Unit)102を内蔵している。CPU102には、バス101を介して、入出力インタフェース110が接続されており、CPU102は、入出力インタフェース110を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部107が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)103に格納されているプログラムを実行する。あるいは、また、CPU102は、ハードディスク105に格納されているプログラム、衛星若しくはネットワークから転送され、通信部108で受信されてハードディスク105にインストールされたプログラム、またはドライブ109に装着されたリムーバブル記録媒体111から読み出されてハードディスク105にインストールされたプログラムを、RAM(Random Access Memory)104にロードして実行する。これにより、CPU102は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU102は、その処理結果を、必要に応じて、例えば、入出力インタフェース110を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部106から出力、あるいは、通信部108から送信、さらには、ハードディスク105に記録等させる。
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
また、プログラムは、1のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
なお、表示システム2では、記録媒体3(図1)に記録された画像を、いわばオフラインで表示することも可能であるし、伝送媒体4を介して伝送されてくる画像を、リアルタイムで表示することも可能である。
また、上述したように、内側用全方位プロジェクタ43(図8)において、表示用画像に対応する光線を発し、その光線を、内側ドームスクリーン44(図8)に背面投影することで、視点画像を表示する場合には、その視点画像において左右が反転する。この内側ドームスクリーン44に表示される視点画像の左右の反転を防止するためには、例えば、視点画像の元となるカメラ画像の左右をあらかじめ反転しておく必要があるが、この反転処理は、例えば、囲い込み画像処理部35の画像選択部66(図23)に行わせることが可能である。あるいは、このカメラ画像の左右の反転は、例えば、撮像システム1の囲い込みカメラ22k(図4)においてカメラ画像を撮像する際に、光学的に行うようにすることも可能である。
さらに、本実施の形態では、内側用全方位プロジェクタ43(図8)において、表示用画像に対応する光線を発し、その光線を、内側ドームスクリーン44(図8)に背面投影することで、視点画像を表示するようにしたが、この場合、表示用画像を、内側ドームスクリーン44(図8)の形状を考慮して生成する必要がある。即ち、視点画像は、長方形状であるため、その長方形状の視点画像を、表示用画像の所定の位置に配置し、その表示用画像に対応する光線を、内側用全方位プロジェクタ43から発することにより、内側ドームスクリーン44において視点画像を表示する場合には、長方形状の視点画像が、半球状の内側ドームスクリーン44の球面に射影されるため、内側ドームスクリーン44に表示された視点画像は歪むことになる。従って、視点画像変換部67(図23)では、内側ドームスクリーン44において視点画像が歪みのない長方形状に表示されるように、内側ドームスクリーン44の形状に基づき、表示用画像に配置する視点画像を変換する必要がある。
但し、本実施の形態では、内側ドームスクリーン44(図8)の半径がある程度大きく、視点画像が表示される範囲は、平面とみなすことができるものとされている。この場合には、内側ドームスクリーン44の形状に基づく、表示用画像に配置する視点画像の変換は、してもしなくてもよい。
また、本実施の形態では、撮像システム1において、囲い込み撮像部12(図2)を1つしか設けなかったが、囲い込み撮像部12は、複数設けることが可能である。この場合、複数の囲い込み撮像部12において、空間的または時間的に隔てられた複数の被写体を撮像し、表示システム2において、その複数の被写体の画像をスーパインポーズした画像をカメラ画像として処理を行うようにすることが可能である。
さらに、図6の広角画像処理部33、囲い込み画像処理部35、および視点検出部37は、表示システム1に設けるのではなく、撮像システム1(図2)に設けることが可能である。
1 撮像システム, 2 表示システム, 3 記録媒体, 4 伝送媒体, 11 広角撮像部, 12 囲い込み撮像部, 13 マルチプレクサ, 14 記録/送信部, 21 全方位カメラ, 22k 囲い込みカメラ, 31 再生/受信部, 32 デマルチプレクサ, 33 広角画像処理部, 34 広角画像表示部, 35 囲い込み画像処理部, 36 囲い込み画像表示部, 37 視点検出部, 41 外側用全方位プロジェクタ, 42 外側ドームスクリーン, 43 内側用全方位プロジェクタ, 44 内側ドームスクリーン, 51 フレームメモリ, 52 広角画像変換部, 53 画角補正部, 54 緯度経度画像変換部, 55 フレームメモリ, 56 コントローラ, 61 視点バッファ, 62 視点処理部, 63 視点記憶部, 64 視点方向算出部, 65 フレームメモリ, 66 画像選択部, 67 視点画像変換部, 68 フレームメモリ, 69 コントローラ, 70 表示用画像生成部, 101 バス, 102 CPU, 103 ROM, 104 RAM, 105 ハードディスク, 106 出力部, 107 入力部, 108 通信部, 109 ドライブ, 110 入出力インタフェース, 111 リムーバブル記録媒体