(実施形態1)
図1は、情報処理システム40の構成例を示す模式図である。情報処理システム40は、第1情報処理装置10、第2情報処理装置20及びカメラ30を含む。本実施形態においては、カメラ30を用いて、賃貸住宅及び販売住宅等の不動産物件の部屋、ホテル及び民宿等の宿泊施設の部屋等を撮影する。カメラ30は、撮影装置の一例である。カメラ30は、1回のシャッターで前後左右上下の撮影を行う全天球カメラを使用する。撮影位置は、例えば矩形の部屋の2箇所とするが、これに限定しない。3箇所以上の任意の場所から撮影を行ってもよい。また撮影位置の床面からの高さは、例えば1m程度であるが、これに限定しない。立った状態の大人の目線の高さ、又は椅子に座った状態の大人の目線の高さ等の任意の高さから撮影を行ってもよい。カメラ30が撮影を行う位置及び向きは、カメラ30に内蔵されたセンサ又はカメラ30を外部から監視するセンサにより測定される。カメラ30を特定の位置及び向きに固定する治具等を利用してもよい。
カメラ30によって撮影された撮影画像(パノラマ画像)は、撮影位置を示す情報と共に第1情報処理装置10へ送信され、第1情報処理装置10のパノラマ画像DB12aに記録される。なお、カメラ30は撮影によって画像データ(撮影画像データ)を取得するが、以下では画像データを単に画像という場合がある。従って、撮影画像は撮影画像データを意味する場合があり、パノラマ画像はパノラマ画像データを意味する場合がある。撮影画像は、複数の画素を含み、撮影画像データは、各画素の撮影画像中の位置(座標)を示す位置情報と各画素の輝度(画素値)とを対応付けて有する。撮影位置の情報は、例えば矩形の部屋の任意の位置を基準とした位置の情報であり、例えばカメラ30に内蔵されているセンサにより測定されてもよく、他のセンサ等により測定されてカメラ30又は第1情報処理装置10へ送信されてもよい。なお、撮影位置の情報は必ずしも必要ではなく、2箇所の撮影位置を結んだ線分の方向(方位)が分かる情報を取得できればよい。
第2情報処理装置20は、カメラ30での撮影が行われた部屋から離れた場所、例えば不動産会社の店舗又は旅行会社の店舗にいるユーザが装着したHMD(Head Mounted Display)型の情報処理装置である。第2情報処理装置20には、各種センサが内蔵されており、ユーザの頭部の位置及び向きを検出可能である。第2情報処理装置20は、スマートフォン、タブレット又はパソコン等の汎用の情報処理装置と、HMD等の表示装置との組合せでもよい。第2情報処理装置20は、スマートフォン等の軽量の携帯型情報処理装置と、携帯型情報処理装置をユーザの目の前に固定する固定部材との組合せでもよい。
第2情報処理装置20によって検出されたユーザの頭部の位置及び向きと、パノラマ画像DB12aに記録された撮影画像とに基づいて、第1情報処理装置10は、カメラ30で撮影された部屋の中の仮想視点(仮想位置)から見た仮想画像を生成する。そして第1情報処理装置10は、生成した仮想画像を第2情報処理装置20へ送信する。このような構成により、HMDを装着したユーザは、撮影対象となった部屋の中を歩き回り、任意の向きを向いて、部屋の広さ、家具の配置、窓の外の景色等を感覚的に把握することができる。なお、ユーザは回転可能な椅子に着席した状態で、ジョイスティック等を操作することで仮想視点を移動させてもよい。転倒及び衝突のおそれなく、部屋の中を歩き回り、あるいは飛翔し、任意の向きを向いて、室内空間を把握することができる。
図2は、撮影時の情報処理システム40の構成を示す模式図である。撮影時の情報処理システム40は、インターネット、公衆通信回線又はLAN(Local Area Network)等のネットワークNを介して接続された第1情報処理装置10及びカメラ30を備える。
第1情報処理装置10は、制御部11、記憶部12、通信部13、入力部14、表示部15及びバスを備える。本実施形態の第1情報処理装置10は汎用のパーソナルコンピュータ、サーバマシン等の情報処理装置である。また、本実施形態の第1情報処理装置10は、大型計算機上で動作する仮想マシンでもよい。制御部11は、CPU(Central Processing Unit )又はMPU(Micro-Processing Unit )等のプロセッサを含み、本実施形態にかかるプログラムを実行する演算制御装置である。制御部11は、記憶部12に記憶してある制御プログラムを実行すると共に、バスを介して第1情報処理装置10を構成するハードウェア各部の動作を制御する。これにより、制御部11は、第1情報処理装置10が行う種々の制御処理及び情報処理を行う。
記憶部12は、RAM(Random Access Memory)、フラッシュメモリ、ハードディスク、SSD(Solid State Drive )等を含む。記憶部12は、制御部11が実行する制御プログラム及び制御プログラムの実行に必要な各種のデータ等を予め記憶している。また記憶部12は、制御部11が制御プログラムを実行する際に発生するデータ等を一時的に記憶する。記憶部12に記憶される制御プログラムには、本開示のプログラムである仮想画像生成プログラムPGが含まれ、記憶部12に記憶されるデータには、カメラ30によって撮影したパノラマ画像を蓄積するパノラマ画像DB12aが含まれる。なお、パノラマ画像DB12aは、第1情報処理装置10に接続された外部の大容量記憶装置等に保存されていてもよく、ネットワークNを介して第1情報処理装置10に接続された別の記憶装置に記憶されてもよい。
通信部13は、ネットワークNとの通信を行うインターフェイスである。入力部14は、キーボード及びマウス等である。表示部15は、例えば液晶表示パネル等である。
第1情報処理装置10は、通信部13を介して外部装置から仮想画像生成プログラムPGを取得して記憶部12に記憶してもよい。また、第1情報処理装置10が可搬型記憶媒体に記憶された情報を読み取る読取部等を備える場合、可搬型記憶媒体から仮想画像生成プログラムPGを読み出して記憶部12に記憶してもよい。
カメラ30は、制御部31、記憶部32、通信部33、シャッターボタン34、撮影部35及びバスを備える。制御部31は、CPU又はMPU等のプロセッサを含み、本実施形態にかかるプログラムを実行する演算制御装置である。制御部31は、記憶部32に記憶してある制御プログラムを実行すると共に、バスを介してカメラ30を構成するハードウェア各部の動作を制御する。これにより、制御部31は、カメラ30が行う種々の制御処理及び情報処理を行う。記憶部32は、RAM、フラッシュメモリ、ハードディスク、磁気テープ等を含む。記憶部32は、制御部31が実行する制御プログラム及び制御プログラムの実行に必要な各種のデータ等を予め記憶している。また記憶部32は、制御部31が制御プログラムを実行する際に発生するデータ等を一時的に記憶する。
通信部33は、ネットワークNとの通信を行うインターフェイスである。シャッターボタン34は、静止画を撮影する指示を受け付けるボタンである。なお、制御部31は、ネットワークNを通じてシャッターボタン34の操作を受け付けてもよい。撮影部35は、撮影を行う光学系と撮像素子とを含む。制御部31は、シャッターボタン34から受け付けた指示に基づいて撮像素子が取得したデータに対して、各種画像処理を行い、撮影画像を生成する。
図3は、表示時の情報処理システム40の構成を示す模式図である。表示時の情報処理システム40は、ネットワークNを介して接続された第1情報処理装置10及び第2情報処理装置20を備える。第1情報処理装置10は、図2を使用して説明した撮影時の第1情報処理装置10の構成の記憶部12に、特徴点対応テーブル12b、方位角対応テーブル12c、仮想スクリーンテーブル12d~12f、画素対応テーブル12g及び仮想ビューDB12hが追加された構成を有する。特徴点対応テーブル12b、方位角対応テーブル12c、仮想スクリーンテーブル12d~12f、画素対応テーブル12g及び仮想ビューDB12hは、制御部11が仮想画像生成プログラムPGの実行中に生成されるデータであるが、撮影時においても記憶部12に記憶されていてもよい。撮影時と表示時とで、異なるハードウェアを第1情報処理装置10に使用してもよい。
前述のとおり、第2情報処理装置20は、HMD型の情報処理装置である。第2情報処理装置20は、制御部21、記憶部22、通信部23、表示部24、センサ部25及びバスを備える。制御部21は、CPU又はMPU等のプロセッサを含み、本実施形態にかかるプログラムを実行する演算制御装置である。制御部21は、記憶部22に記憶してある制御プログラムを実行すると共に、バスを介して第2情報処理装置20を構成するハードウェア各部の動作を制御する。これにより、制御部21は、第2情報処理装置20が行う種々の制御処理及び情報処理を行う。記憶部22は、RAM、フラッシュメモリ、ハードディスク、SSD、磁気テープ等を含む。記憶部22は、制御部21が実行する制御プログラム及び制御プログラムの実行に必要な各種のデータ等を予め記憶している。また記憶部22は、制御部21が制御プログラムを実行する際に発生するデータ等を一時的に記憶する。
通信部23は、ネットワークNとの通信を行うインターフェイスである。表示部24は、例えば液晶表示パネル等である。センサ部25は、例えば地磁気センサ、傾きセンサ、GPS等の複数のセンサの組合せであり、第2情報処理装置20の位置及び向きを検出する。センサ部25は、第2情報処理装置20の位置及び向きを検出することにより、第2情報処理装置20を頭部に装着しているユーザの頭部の位置及び向きを検出できる。第2情報処理装置20は、マウス、キーボード、タッチパネル等の入力部を備えていてもよい。
図4は、カメラ30の外観を示す模式図である。本実施形態のカメラ30は、略長方形板状の板状部38を有する。以後の説明においては、板状部38の長辺方向を上下方向、板状部38の短辺方向を左右方向、板状部38の第1広面381側を前側、第2広面382側を後側にそれぞれ向けた状態で説明する。
第1広面381の上寄りに、ドーム状の第1レンズ371が設けられている。第2広面382の上寄りに、ドーム状の第2レンズ372が設けられている。第1レンズ371及び第2レンズ372の内側には、図示しない複数のレンズ及びプリズム等の光学部品が配置されており、180度以上の視野角を有する光学系を形成している。以後の説明では、第1レンズ371側の光学系の光軸を第1光軸、第2レンズ372側の光学系の光軸を第2光軸と記載する。第1光軸と第2光軸とは、同一の直線上に配置されている。第1広面381にシャッターボタン34が配置されている。
上述した構成のカメラ30が撮影時に行う処理について説明する。図5は、撮影画像の構成を説明するための模式図である。図5Aは、全天球画像を示す模式図である。図5Bは、図5Aの全天球画像を正距円筒図法により展開した画像を示す模式図である。カメラ30の制御部31は、シャッターボタン34から受け付けた指示に基づいて撮影部35による撮影を行った場合、第1光軸側で撮影した画像と第2光軸側で撮影した画像とを合成することにより、図5Aに示すように撮影位置を撮影中心C点とする全天球画像を生成する。なお、撮影対象の部屋の複数箇所で撮影を行う際、各撮影位置において、カメラ30の上下方向及び左右方向を一致させた状態で撮影を行う。これにより、それぞれの撮影位置で撮影された複数の全天球画像において共通の座標系を用いることができる。
全天球画像上の各画素の位置を定める座標系について説明する。図4を使用して説明したように、カメラ30は板状部38の長辺方向を上下方向に向けた状態で撮影する。以後の説明では、前後左右方向を含む面を水平面と記載する。全天球画像上の画素の位置は、直交座標系及び極座標系により表現することができる。直交座標系は、図4に示した右方向をX軸の正側、上方向をY軸の正側、後ろ方向をZ軸の正側とする右手系の直交座標系を用いる。極座標系は、方位角φ及び天頂角θ、並びに撮影中心C点からの距離rによって座標が示される座標系を用いる。方位角は、第2光軸側(Z軸の正側)を基準として、水平面内の反時計回りの角度φを示す。第1光軸(Z軸の負側)は、方位角φがπラジアンの位置に存在する。ここでπは円周率を意味する。第2光軸は、方位角φが0ラジアンかつ2πラジアンの位置に存在する。天頂角は、撮影中心C点から天頂への上方向(Y軸の正側)を基準として、撮影中心C点を中心として下に向かう角度θを示す。上方向は、天頂角θが0ラジアンの位置に存在する。下方向(Y軸の負側)は、天頂角θがπラジアンの位置に存在する。全天球画像上の任意の画素aの位置は、直交座標系で表した座標(xa ,ya ,za )と、極座標系で表した座標(r,θa ,φa)とによって表現することができる。なお、座標(x,y,z)及び座標(r,θ,φ)は以下の(1)式及び(2)式によって相互に変換可能である。
カメラ30の制御部31は、図5Bに示すように、全天球画像を方位角φ=0の線に沿って切断して、正距円筒図法により、横軸を方位角φとし縦軸を天頂角θとする平面に展開した長方形の撮影画像(以下では、パノラマ画像という)を生成する。このとき、方位角φ及び天頂角θをそれぞれ0~1の範囲のu値及びv値に正規化し、横軸をu軸とし縦軸をv軸とする長方形のパノラマ画像を生成する。このパノラマ画像を構成する各画素には、全天球画像における各画素の輝度(画素値)が割り当てられる。なお、図5Bに示すように、長方形(平面)のパノラマ画像は、左下を原点(0,0)とし、原点(0,0)は、方位角φが2πラジアン(u=0.0)で天頂角θがπラジアン(v=0.0)の位置の画素を示す。また、パノラマ画像は、u軸方向に方位角φが小さくなり、パノラマ画像の右端は方位角φが0ラジアン(u=1.0)の位置の画素であり、v軸方向に天頂角θが小さくなり、パノラマ画像の上端は天頂角θが0ラジアン(v=1.0)の位置の画素である。方位角φ及び天頂角θと、u値及びv値とは、以下の(3)式及び(4)式によって相互に変換可能である。
カメラ30の制御部31は、撮影中心C点(撮影位置)の位置情報と、図5Bに示すパノラマ画像とを通信部33から第1情報処理装置10へ送信する。なお、カメラ30の制御部31は、図5Aに示す全天球画像の撮影画像を第1情報処理装置10へ送信し、第1情報処理装置10が、全天球画像から、図5Bに示すパノラマ画像を生成する処理を行ってもよい。第1情報処理装置10の制御部11は、カメラ30から取得した撮影中心C点の位置情報とパノラマ画像とを対応付けてパノラマ画像DB12aに記録する。なお、カメラ30は、Exif(Exchangeable image file format)形式を使用することにより、撮影中心C点の位置情報と撮影画像とを一つのファイルで送信することが可能である。
図6は、カメラ30の撮影位置の例を示す模式図であり、図7は、パノラマ画像の例を示す模式図である。図6は、撮影対象の部屋を天井側から見た状態を示しており、図6に示す撮影対象の部屋にはベッド、ソファー、テーブル、椅子、テレビ等が設置されている。本実施形態では、例えば図6中の黒丸で示す2箇所で撮影を行い、窓側の撮影位置を前側撮影位置とし、部屋の入口側の撮影位置を後側撮影位置とする。撮影位置は図6に示す例に限らず任意の2箇所とすればよく、また3箇所以上としてもよい。図7Aは前側撮影位置で撮影したパノラマ画像の例であり、図7Bは後側撮影位置で撮影したパノラマ画像の例である。撮影を行う場合、撮影位置(カメラ30)の床面からの高さ、カメラ30の上下方向及び左右方向を、それぞれの撮影位置で一致させる。また本実施形態では、後側撮影位置から前側撮影位置への方向(図6中に矢符tで示す方向)にカメラ30の前側を向けて(第1光軸を一致させて)それぞれの撮影位置で撮影を行う。これにより、それぞれの撮影位置で、画像の上下方向が鉛直方向に一致し、左右端がZ軸の正方向(カメラ30の後側)に一致し、左右方向の中央がZ軸の負方向(カメラ30の前側)に一致するパノラマ画像を取得することができる。なお、本実施形態では、撮影対象の空間内における仮想視点の位置を、後側撮影位置を原点とし、後側撮影位置から前側撮影位置に向かう方向と、水平面内でこの方向に直交する方向とによる座標系の座標で示す。具体的には、図6に示すように、後側撮影位置から前側撮影位置に向かう方向をt軸とし、t軸に直交する方向をs軸とし、ST座標系の座標(s,t)によって仮想視点の位置を表す。また本実施形態では、仮想視点の位置をt軸上の位置とし、座標(0,t)によって表す。また、前側撮影位置と後側撮影位置との間の距離にかかわらず、後側撮影位置をST座標系の座標(0,0)で示し、前側撮影位置をST座標系の座標(0,1)で示す。
本実施形態では、撮影時の情報を用いて撮影後のパノラマ画像を補正することにより、それぞれの撮影位置で撮影したパノラマ画像の状態を一致させてもよい。例えばカメラ30に設けられた加速度センサを用いて重力加速度を検出することにより、撮影時にカメラ30が重力方向(即ち、鉛直方向の下向き)からどれだけ傾いていたかを検知できる。この情報を用いて撮影後のパノラマ画像における鉛直方向の傾きを補正(天頂補正)することにより、画像の上下方向が鉛直方向に一致するパノラマ画像を得ることができる。また地磁気センサ(電子コンパス)を用いて地磁気に対するカメラ30の傾きを取得し、取得した傾きを用いて撮影後のパノラマ画像における方位角方向の傾きを補正(方位角補正)することができる。これにより、例えば北向きが画像の中央に一致するようにそれぞれのパノラマ画像を補正することができる。例えばカメラ30の第1光軸が北東方向に一致した状態で撮影が行われた場合、カメラ30の真北方向に位置する被写体は撮影後のパノラマ画像の中心よりもπ/4ラジアンだけ左側に移動した位置に存在する。この場合、撮影後のパノラマ画像全体を画像の左右幅の1/8(全周2πに対するズレ量π/4の比率)だけ右方向に平行移動させることにより、北向きが画像の中央に一致するパノラマ画像に補正できる。なお、このとき、パノラマ画像の左端の1/8の領域には、平行移動によってパノラマ画像の右端から削除した1/8の領域をそのままコピーすればよい。更に本実施形態では、それぞれのパノラマ画像を、北向きが画像の中央に一致するように補正した後、更に後側撮影位置から前側撮影位置を見た方向が画像の中央に一致するような方位角補正を行う。
次に、第1情報処理装置10において制御部11が仮想画像生成プログラムPGを実行することによって実現される機能について説明する。図8は、第1情報処理装置10の制御部11によって実現される機能を示すブロック図である。第1情報処理装置10の制御部11は、記憶部12に記憶してある仮想画像生成プログラムPGを実行した場合、特徴点対応付け部51、仮想スクリーン設定部52、仮想スクリーン補正部53、仮想画像生成部55の各機能を実現する。なお、本実施形態では、これらの各機能を制御部11が仮想画像生成プログラムPGを実行することにより実現するが、これらの一部を専用のハードウェア回路で実現してもよい。
特徴点対応付け部51は、撮影対象の空間内の2箇所(前側撮影位置及び後側撮影位置)で撮影した2つのパノラマ画像において、同じ被写体が撮影された方位角方向の位置を対応付ける。ここで、パノラマ画像DB12aに記憶されている2つのパノラマ画像は共に、画像の上下方向が鉛直方向に一致し、左右端がカメラ30の後側(図6中のt軸の負方向)に一致し、左右方向の中央がカメラ30の前側(図6中のt軸の正方向)に一致するパノラマ画像である。また一般的に、カメラ30は、撮影高さが画像の上下方向の中央となるようなパノラマ画像を生成する。なお、このようなパノラマ画像は、それぞれの撮影位置でカメラ30を所定状態に配置して撮影することによって取得してもよく、撮影後に所定の補正処理を行うことによって取得してもよい。
よって、このような2つのパノラマ画像間では、画像の上下方向の中央部には同じ被写体が写っており、同じ被写体は、2箇所の撮影位置間の視差によってパノラマ画像中の異なる位置に写っている。また、画像の左右方向の中央部及び左右端部には同じ被写体の同じ部分が写っている。更に、一方のパノラマ画像において左側に写っている被写体は他方のパノラマ画像でも左側に写っており、一方のパノラマ画像において右側に写っている被写体は他方のパノラマ画像でも右側に写っている。
従って、特徴点対応付け部51は、2つのパノラマ画像において、上下方向の中央部に写っている被写体の特徴点(画素)について対応付けを行う。即ち、特徴点対応付け部(対応付け部)51は、2つのパノラマ画像において撮影時の撮影高さに対応する位置に方位角方向に並ぶ画素を特徴点として対応付ける。例えば、特徴点対応付け部51は、図7A,Bに示すように、2つのパノラマ画像において、上下方向の中央にL軸で示す左右方向に配置する画素のうちで同じ被写体の同じ部分の画素を特徴点L1~L4としてそれぞれ対応付ける。図7A,Bに示す2つのパノラマ画像では、特徴点L1,L2は左側のカーテンの左端及び右端であり、特徴点L3,L4は右側のカーテンの左端及び右端である。特徴点対応付け部51は、2つのパノラマ画像中の特徴点を、図7A,Bに示したL軸におけるL座標値で示し、対応付けた特徴点のL座標値をそれぞれ特徴点対応テーブル12bに記憶する。なお、特徴点を示すL座標値は、L軸においてパノラマ画像の左端を0とし、左端からの画素数を示す。
図9は、特徴点対応テーブル12bの構成例を示す模式図である。特徴点対応テーブル12bには、特徴点対応付け部51が対応付けた特徴点のペア毎に、ペア情報と、2つのパノラマ画像における特徴点のL座標値とが対応付けて記憶される。ペア情報は各ペアに固有に付与された識別情報である。2つのパノラマ画像は、撮影対象の空間内の2箇所(前側撮影位置及び後側撮影位置)で撮影したパノラマ画像であり、以下ではそれぞれを前側画像及び後側画像ということがある。特徴点対応付け部51は、2つのパノラマ画像間で対応付けるべき特徴点を、例えばユーザ入力によって受け付けてもよい。この場合、例えば特徴点対応付け部51は、第1情報処理装置10の表示部15に2つのパノラマ画像を表示し、特徴点とすべき箇所(画素)を入力部14にて受け付ける。ユーザは、表示された2つのパノラマ画像において同じ被写体の同じ部分を特徴点として入力部14を介して指定する。特徴点対応付け部51は、入力部14を介して受け付けた2つのパノラマ画像中の特徴点のL座標値をそれぞれ特定し、特定した2つのL座標値を特徴点対応テーブル12bに記憶する。
また、特徴点対応付け部51は、2つのパノラマ画像間で対応付けるべき特徴点を、2つのパノラマ画像におけるL軸上の各画素の画素値の変動に対して、Dynamic Time Warping等の手法を用いて自動的に抽出してもよい。この場合、特徴点対応付け部51は、2つのパノラマ画像間で類似する画素を自動的に抽出し、抽出した画素を特徴点としてそれぞれ抽出した画素のL座標値を特徴点対応テーブル12bに記憶する。
図9に示す特徴点対応テーブル12bでは、パノラマ画像の左側で21個のペアが対応付けられており、右側で17個のペアが対応付けられているが、対応付けられる特徴点のペア数はこれに限らない。また、図9に示す特徴点対応テーブル12bでは、パノラマ画像の左側のペアはL座標値が昇順となるように記憶されており、右側のペアはL座標値が降順となるように記憶されているが、記憶される順序はこれに限らない。
次に、特徴点対応付け部51は、図9に示すような特徴点対応テーブル12bに基づいて、それぞれ対応付けた特徴点における方位角の対応付けを行う。具体的には、特徴点対応付け部51は、特徴点対応テーブル12bに記憶したそれぞれの特徴点のL座標値を、図6に示したST座標系の方位角に変換する。カメラ30で撮影したパノラマ画像の解像度(画素数)は予め分かっているので、特徴点対応付け部51は、それぞれの特徴点のL座標値を方位角に変換できる。また、パノラマ画像における各画素のST座標系の方位角は、撮影位置を通り図6に示したs軸に平行な方向を0ラジアンとして、水平面内で撮影位置を中心に、パノラマ画像の右側では反時計回りの角度βで、パノラマ画像の左側では時計回りの角度βでそれぞれ示す。よって、t軸の負方向(カメラ30の後方向)は方位角βが-π/2ラジアンの位置に存在し、t軸の正方向(カメラ30の前方向)は方位角βがπ/2ラジアンの位置に存在する。また前側画像における各画素の方位角はβF で示し、後側画像における各画素の方位角はβR で示す。特徴点対応付け部51は、2つのパノラマ画像の特徴点のL座標値を方位角βF 、βR に変換した後、それぞれ変換した方位角βF 、βR の正接tanβF 、tanβR を更に算出し、それぞれ算出した方位角の正接を対応付けて方位角対応テーブル12cに記憶する。
図10は、特徴点対応付け部51による方位角の対応付けを示す模式図である。図10Aは、方位角対応テーブル12cの構成例を示す模式図であり、図10Bは、2つのパノラマ画像において対応付けられた特徴点の方位角の正接の関係を示す図である。方位角対応テーブル12cには、特徴点対応付け部51が算出した各特徴点の方位角の正接が、対応付けられたペア毎に記憶されている。なお、図10Aには、図9に示す特徴点対応テーブル12bに記憶されたパノラマ画像左側の特徴点のペアについて、それぞれの特徴点の方位角の正接が記憶してある方位角対応テーブル12cを示す。特徴点対応付け部51は、特徴点対応テーブル12bに記憶されたパノラマ画像右側の特徴点のペアについても同様の構成を有する方位角対応テーブル12cを生成する。
図10Bに示す図では、横軸が後側画像における各画素の方位角の正接(tanβR )を示し、縦軸がt軸(図6中のt軸であり、カメラ30の前方向)を示す。図10Bに示す図において、t=1の破線は、前側画像における各画素の方位角の正接(tanβF )を示しており、対応付けられた前側画像における特徴点の方位角の正接と後側画像における特徴点の方位角の正接とが実線で結ばれている。
本実施形態では、特徴点対応付け部51は、図9に示す特徴点対応テーブル12bを生成し、特徴点対応テーブル12bに基づいて、図10Aに示す方位角対応テーブル12cを生成するが、この構成に限らない。例えば、特徴点対応付け部51は、図9に示すように2つのパノラマ画像間で対応付けられた特徴点のL座標値を特徴点対応テーブル12bに記憶する代わりに、特徴点の方位角を特徴点対応テーブル12bに記憶してもよい。また、特徴点対応付け部51は、特徴点対応テーブル12bを生成せずに、方位角対応テーブル12cのみを生成する構成でもよい。
仮想スクリーン設定部52は、第2情報処理装置20から取得したユーザの頭部の位置及び向きに基づいて、仮想視点及び仮想スクリーンを設定する。なお、ユーザの頭部の位置及び向きは、ユーザの頭部に装着された第2情報処理装置20のセンサ部25によって所定のタイミングで検出され、検出結果が逐次第1情報処理装置10へ送信される。仮想視点の位置は、ユーザの頭部の中心であり、例えば第1情報処理装置10の動作開始時は撮影対象の部屋(空間)において前側撮影位置又は後側撮影位置、或いは前側撮影位置と後側撮影位置との間の中央位置等の所定位置としてもよい。よって、仮想スクリーン設定部52は、動作開始時は撮影対象の部屋における所定位置を仮想視点に設定し、以降はユーザの移動に伴って仮想視点を移動させる(変更する)。なお、本実施形態では、仮想視点の位置は、図6に示したt軸上の位置とし、ST座標系の座標(0,t)によって示される。仮想スクリーンは、仮想視点から、ユーザの頭部の向きが示す視線方向に所定距離隔てた位置に設けられる仮想の画像表示領域である。仮想スクリーンは、視線方向に直交し、所定の画角を有する矩形平面であり、複数の仮想画素が二次元的に配置されている。一例として、仮想視点から1mの距離を隔てた位置に画角が90°の仮想スクリーンを設定してもよい。
仮想スクリーン設定部52は、まず、仮想視点を原点とし、視線方向を天頂角θ及び方位角φが共に0ラジアンの方向とした状態(即ち、原点から一旦Z軸の正側を向き、その後真上(Y軸の正側)を見上げた状態)での基本スクリーンを設定する。なお、基本スクリーンは、仮想視点からの距離をdとし、画角をfovとした場合、以下の(5)に示す直交座標系の座標によって示される四隅の仮想画素によって設定される。
次に、仮想スクリーン設定部52は、視線方向に基づいて基本スクリーンに対して回転処理を行う。ここで、仮想視点Vの座標を(Vx ,Vy ,Vz )で表し、視線方向を示すベクトルを(Vθ,Vφ)で表す。回転の方向は回転軸の正側から見て反時計回りを正方向とすると、視線方向を示すベクトルが(Vθ,Vφ)である場合、X軸を中心にVθ回転させ、その後、Y軸を中心にVφ回転させる処理を行う。この2つの回転処理はそれぞれ3×3の行列で表現でき、全体を合成変換で表すことができる。従って、仮想スクリーン設定部52は、上記(5)に示す基本スクリーンの四隅の仮想画素の座標(x,y,z)のそれぞれに対して、以下の(6)式に基づく変換処理を行うことにより、基本スクリーンに回転処理を行うことができる。これにより、仮想スクリーンの四隅の仮想画素の座標が算出され、算出された四隅の仮想画素の座標によって、逐次変更されるユーザの頭位の位置及び向き(仮想視点V及び視線方向)に基づく仮想スクリーンを設定できる。
ここで、仮想スクリーン設定部52は、基本スクリーンを縦横に分割した例えば30×30区画のセルに分割し、セル毎に上述の処理を行う。例えば、上述のように設定した基本スクリーンの四隅の仮想画素を含み、基本スクリーンを分割した各セルの頂点となる仮想画素(これらをまとめて格子点という)に対して、上記の(6)式に基づく変換処理を行う。これにより、仮想スクリーンにおける各格子点の座標が設定され、各格子点の座標によって仮想スクリーンが設定される。なお、基本スクリーンにおける各格子点の座標は、上記の(5)に示す基本スクリーンの四隅の仮想画素の座標に基づき、X軸、Y軸及びZ軸方向にセルの数で分割した各値とすることができる。
仮想スクリーン設定部52は、仮想スクリーンにおける各格子点の直交座標系の座標値(x,y,z)を算出した後、極座標系の座標値に変換し、仮想視点Vから仮想スクリーンを見た際の各格子点の天頂角θV 及び方位角φV を算出する。なお、仮想スクリーン設定部52は、上記の(2)式によって直交座標系の座標値を極座標系の座標値に変換する。仮想スクリーン設定部52は、設定した仮想スクリーンに関する情報を仮想スクリーンテーブル12dに記憶する。
図11は、仮想スクリーンテーブル12dの構成例を示す模式図である。仮想スクリーンテーブル12dには、仮想スクリーンのセル毎に、セルIDと、各セルの四隅の仮想画素である格子点の格子点ID及び座標と、各格子点である仮想画素の仮想画素IDとが対応付けて記憶される。セルIDは各セルに固有に付与された識別情報であり、格子点IDは各格子点に固有に付与された識別情報であり、仮想画素IDは各仮想画素に固有に付与された識別情報である。仮想スクリーン設定部52は、基本スクリーンからセルを分割する都度、分割したセルに対するセルID、セルの格子点に対する格子点ID、格子点である仮想画素に対する仮想画素IDを割り当てて仮想スクリーンテーブル12dに記憶する。また、仮想スクリーン設定部52は、基本スクリーンを分割した各セルの格子点の座標値に対して上記の(6)式に基づく変換処理及び極座標系への変換処理を行う都度、算出した極座標系の座標値θV ,φV を格子点IDに対応付けて仮想スクリーンテーブル12dに記憶する。仮想スクリーン設定部52は、基本スクリーンの全てのセルについて上述した処理を行うことにより、仮想スクリーンの全てのセルの情報が仮想スクリーンテーブル12dに記憶され、仮想スクリーンが設定される。
仮想スクリーン補正部53は、仮想スクリーン設定部52によって設定された仮想スクリーンに対して、特徴点対応付け部51によって生成された方位角対応テーブル12cに基づく補正処理を行い、前側画像用仮想スクリーン及び後側画像用仮想スクリーンを生成する。具体的には、仮想スクリーン補正部53は、仮想スクリーンテーブル12dに記憶された各格子点の座標の方位角φV を、方位角対応テーブル12cに基づいてそれぞれ補正し、前側画像用仮想スクリーンテーブル12eと後側画像用仮想スクリーンテーブル12fとを生成する。前側画像用仮想スクリーンテーブル12e及び後側画像用仮想スクリーンテーブル12fは、仮想スクリーンテーブル12d中の各格子点の座標の方位角φV の値が異なるほかは仮想スクリーンテーブル12dと同様の構成を有する。
仮想スクリーン補正部53はまず、仮想スクリーンテーブル12dに記憶された各格子点の方位角φV を、以下の(7),(8)式を用いて、図6に示したST座標系における方位角βV に変換する。なお、仮想スクリーン補正部53は、パノラマ画像の右半分に対応する格子点については(7)式を用い、パノラマ画像の左半分に対応する格子点については(8)式を用いる。また、仮想スクリーン補正部53は、パノラマ画像の左右方向の中央に対応する格子点についてはβV =π/2とし、パノラマ画像の左右方向の左端又は右端に対応する格子点についてはβV =-π/2とする。
次に仮想スクリーン補正部53は、ST座標系の空間において、上述したように変換した仮想スクリーンの各格子点の方位角βV に対応する前側画像における画素の方位角βF と後側画像における画素の方位角βR とを求める。ここで、仮想スクリーンにおける方位角βVとパノラマ画像(前側画像及び後側画像)における方位角βF ,βRとの関係について説明する。図12は、仮想スクリーンにおける方位角βVとパノラマ画像における方位角βF ,βRとの関係を示す模式図である。ここでは、仮想視点VをST座標系の空間において後側撮影位置(0,0)と前側撮影位置(0,1)との間の任意の位置(0,tV )とする。図12に示すように、ST空間において被写体Pの位置は前側撮影位置(0,1)から見た方位角βF と後側撮影位置(0,0)から見た方位角βRとにより一意に定まり、仮想視点Vから被写体Pを見た方位角βVは、仮想視点Vのt座標値tV と被写体Pの位置とで一意に定まる。即ち、仮想視点Vから被写体Pを見た方位角βVは、前側撮影位置から被写体Pを見た方位角βF と後側撮影位置から被写体Pを見た方位角βRと仮想視点Vのt座標値tV とにより一意に定まる。従って、3つの方位角βV,βF ,βRは以下の(9)式で表される関係を有する。なお、図12では被写体Pがカメラ30の右側(t軸よりも右側)に位置する状態を示すが、被写体がカメラ30の左側(t軸よりも左側)に位置する場合でも同様の関係を有する。
tanβV =tV tanβF +(1-tV )tanβR …(9)
従って、仮想スクリーン補正部53は、上記の(9)式及び方位角対応テーブル12cに基づいて、仮想スクリーンの各格子点の方位角βV に対応する前側画像における画素の方位角βF と後側画像における画素の方位角βR とを求める。図13は、仮想スクリーン補正部53による処理を説明するための模式図である。図13は、図10Bに示した前側画像及び後側画像における特徴点の対応付けを示しており、例えば前側画像における特徴点(tanβFi)と後側画像における特徴点(tanβRi)とがペアCiとして対応付けられており、前側画像における特徴点(tanβFi+1)と後側画像における特徴点(tanβRi+1)とがペアCi+1として対応付けられている。
仮想スクリーン補正部53は、仮想スクリーンテーブル12dから1つの格子点の方位角βVを読み出し、仮想スクリーン設定部52が設定した仮想視点Vの位置(ここでは、t座標値tV )を取得する。仮想スクリーン補正部53は、仮想スクリーンにおける処理対象の格子点Gの方位角の正接tanβV に対応する前側画像の画素の方位角の正接tanβFV及び後側画像の画素の方位角の正接tanβRVを算出する。まず、仮想スクリーン補正部53は、方位角対応テーブル12cに記憶してある特徴点の各ペアと、仮想視点Vのt座標値と、上記の(9)式とに基づいて、特徴点の各ペアにおいてt座標値tV に対応する方位角の正接を算出する。算出した方位角の正接が、格子点Gの方位角の正接tanβV に一致した場合、仮想スクリーン補正部53は、算出に用いたペア(前側画像の特徴点の方位角の正接tanβF及び後側画像の特徴点の方位角の正接tanβR)を、格子点Gの方位角の正接tanβV に対応する前側画像の画素の方位角の正接tanβFV及び後側画像の画素の方位角の正接tanβRVに特定する。
図13Aには、ペアCi において算出したt座標値tV に対応する方位角の正接が、格子点Gの方位角の正接tanβV に一致した場合の例を示す。この場合、格子点Gの方位角の正接tanβV に対応する前側画像の画素の方位角の正接tanβFV及び後側画像の画素の方位角の正接tanβRVは、ペアCi におけるtanβFi及びtanβRiに特定される。よって、仮想スクリーン補正部53は、特定した前側画像における方位角の正接tanβFi(tanβFV)から方位角βFi(βFV)を算出し、前側画像用仮想スクリーンテーブル12eに記憶する。また、仮想スクリーン補正部53は、特定した後側画像における方位角の正接tanβRi(tanβRV)から方位角βRi(βRV)を算出し、後側画像用仮想スクリーンテーブル12fに記憶する。このとき、仮想スクリーン補正部53は、格子点Gの方位角βFi又は方位角βRi以外は仮想スクリーンテーブル12dと同じ情報をそれぞれ記憶する。
図14は、前側画像用仮想スクリーンテーブル12eの構成例を示す模式図である。前側画像用仮想スクリーンテーブル12eは仮想スクリーンテーブル12dと同様の構成を有し、セル毎に、セルIDと、各セルの四隅の仮想画素である格子点の格子点ID及び座標と、各格子点である仮想画素の仮想画素IDとが対応付けて記憶される。後側画像用仮想スクリーンテーブル12fは、前側画像用仮想スクリーンテーブル12eと同様の構成を有する。なお、前側画像用仮想スクリーンテーブル12e及び後側画像用仮想スクリーンテーブル12fは、図14に示す構成のほかに、例えば、格子点毎に格子点ID及び格子点座標と、仮想画素IDとが対応付けて記憶される構成でもよい。
図13Bは、特徴点の各ペアにおいて算出したt座標値tV に対応する方位角の正接が、格子点Gの方位角の正接tanβV に一致しない場合の例を示す。この場合、仮想スクリーン補正部53は、各ペアにおいて算出した方位角の正接が、格子点Gの方位角の正接tanβV の前後の値となるペアを特定する。図13に示す例では、ペアCi において算出した方位角の正接(Gi)と、ペアCi+1 において算出した方位角の正接(Gi+1)とが、格子点Gの方位角の正接tanβV の前後の値となる。図13Bに示すような横軸をtanβR とし縦軸をt軸とした二次元空間において、格子点G(tanβV ,tV )は、直線t=0及びt=1と、2つのペアCi 及びCi+1 の対応を示す線分とに囲まれた台形領域内に存在する。また、直線t=tV において線分GiGi+1は格子点Gで内分され、仮想スクリーン補正部53は、ペアCi において算出した方位角の正接(Gi)と、ペアCi+1 において算出した方位角の正接(Gi+1)と、格子点Gの方位角の正接tanβV とに基づいて、内分比(ε:1-ε)を算出する。そして、仮想スクリーン補正部53は、ペアCi の前側画像におけるtanβFiとペアCi+1 の前側画像におけるtanβFi+1と内分比(ε:1-ε)とに基づいて、格子点Gの方位角の正接tanβV に対応する前側画像における方位角の正接tanβFVを算出する。具体的には、仮想スクリーン補正部53は、図13Bに示す二次元空間において、線分tanβFi tanβFi+1をε:1-εで内分する点tanβFVを算出する。同様に、仮想スクリーン補正部53は、ペアCi の後側画像におけるtanβRiとペアCi+1 の後側画像におけるtanβRi+1と内分比(ε:1-ε)とに基づいて、格子点Gの方位角の正接tanβV に対応する後側画像における方位角の正接tanβRVを算出する。
そして、仮想スクリーン補正部53は、算出した前側画像における方位角の正接tanβFVから方位角βFVを算出し、前側画像用仮想スクリーンテーブル12eに記憶する。また、仮想スクリーン補正部53は、特定した後側画像における方位角の正接tanβRVから方位角βRVを算出し、後側画像用仮想スクリーンテーブル12fに記憶する。このときも仮想スクリーン補正部53は、格子点Gの方位角βFV又は方位角βRV以外は仮想スクリーンテーブル12dと同じ情報をそれぞれ記憶する。
仮想スクリーン補正部53は、仮想スクリーンテーブル12dに記憶してある全ての格子点の方位角βVに対して上述した処理を行うことにより、仮想スクリーン設定部52が設定した仮想スクリーンを補正して、前側画像用仮想スクリーン及び後側画像用仮想スクリーンを生成する。具体的には、仮想スクリーン補正部53は、前側画像用仮想スクリーンテーブル12eと後側画像用仮想スクリーンテーブル12fとを生成する。
仮想画像生成部55は、パノラマ画像DB12aに記録されたパノラマ画像(前側パノラマ画像及び後側パノラマ画像)と、仮想スクリーン設定部52及び仮想スクリーン補正部53によって生成された前側画像用仮想スクリーン及び後側画像用仮想スクリーンとに基づいて、第2情報処理装置20を装着したユーザに提供する仮想画像を生成する。仮想画像生成部55は、仮想ビュー生成部56、合成割合特定部57、合成部58を有する。仮想ビュー生成部56は、前側画像用仮想スクリーンと前側パノラマ画像とに基づいて、前側画像の仮想ビュー(中間仮想画像)を生成する。また仮想ビュー生成部56は、後側画像用仮想スクリーンと後側パノラマ画像とに基づいて、後側画像の仮想ビュー(中間仮想画像)を生成する。具体的には、仮想ビュー生成部56は、仮想スクリーンにおける各仮想画素とパノラマ画像における各画素との対応付けを行い、仮想スクリーンの各仮想画素に、それぞれ対応付けられたパノラマ画像の画素の輝度(画素値)を割り当てることにより仮想ビューを生成する。各仮想画素に割り当てられる画素値は、撮影画像(パノラマ画像)が白黒画像である場合、例えば0から255までの256階調の数値が割り当てられる。また、撮影画像がカラー画像である場合、赤色、緑色、青色のそれぞれについて例えば0から255までの数値が割り当てられる。
仮想ビュー生成部56は、まず、前側画像用仮想スクリーンテーブル12eから1つの格子点の座標値を読み出し、ST座標系における方位角βF を以下の(10),(11)式を用いて極座標系の方位角φF に変換する。なお、仮想ビュー生成部56は、前側画像用仮想スクリーンの右半分に含まれる格子点については(10)式を用い、前側画像用仮想スクリーンの左半分に含まれる格子点については(11)式を用いる。仮想ビュー生成部56は、前側画像用仮想スクリーンテーブル12eから読み出した格子点の天頂角θと、変換した方位角φF とによる極座標系の座標(θ,φF)を上記の(4)式によって座標(u,v)に変換する。仮想ビュー生成部56は、前側パノラマ画像において、得られた座標(u,v)の画素を、前側画像用仮想スクリーンの格子点(θ,βF )に対応付け、画素対応テーブル12gに記憶する。
図15は、画素対応テーブル12gの構成例を示す模式図である。画素対応テーブル12gには、パノラマ画像の画像ID(パノラマ画像ID)と、前側画像用仮想スクリーンの各格子点の格子点IDと、各格子点に対応付けられた前側パノラマ画像の画素の座標(対応画素座標)とが対応付けて記憶される。パノラマ画像IDはパノラマ画像に固有に付与された識別情報であり、例えばパノラマ画像と共にパノラマ画像DB12aに記憶されている。格子点IDは前側画像用仮想スクリーンテーブル12eに記憶されている格子点IDと同じである。対応画素座標は、上述した処理により前側画像用仮想スクリーンの各格子点に対応付けられた前側パノラマ画像における画素の座標(u,v)である。
仮想ビュー生成部56は、前側画像用仮想スクリーンテーブル12eから1つの格子点の格子点ID及び座標を読み出す都度、読み出した格子点IDを画素対応テーブル12gに記憶する。そして、仮想ビュー生成部56は、読み出した格子点の座標値に対して上述した処理を行い、この格子点に対応付けた前側パノラマ画像の画素の座標(u,v)を格子点IDに対応付けて画素対応テーブル12gに記憶する。仮想ビュー生成部56は、前側画像用仮想スクリーンテーブル12eに記憶された全ての格子点に対して上述した処理を行うことにより、前側画像用仮想スクリーンの全ての格子点と、前側パノラマ画像の画素との対応付けを行う。仮想ビュー生成部56は、後側画像用仮想スクリーンテーブル12fについても同様の処理を行い、後側画像用仮想スクリーンの全ての格子点と、後側パノラマ画像の画素との対応付けを行う。なお、後側パノラマ画像についても、パノラマ画像ID、後側画像用仮想スクリーンの各格子点の格子点ID、各格子点に対応付けられた後側パノラマ画像の画素の座標値が対応付けて画素対応テーブル12gに記憶される。
前側画像用仮想スクリーンの全ての格子点に対して前側パノラマ画像の画素の対応付けを行った後、仮想ビュー生成部56は、例えばコンピュータグラフィックスによるレンダリング機能(テクスチャマッピング)を利用し、前側画像用仮想スクリーンの各仮想画素に輝度(画素値)を割り当てて前側画像の仮想ビューを生成する。また、後側画像用仮想スクリーンの全ての格子点に対して後側パノラマ画像の画素の対応付けを行った後、仮想ビュー生成部56は、後側画像用仮想スクリーンの各仮想画素に輝度(画素値)を割り当てて後側画像の仮想ビューを生成する。具体的には、仮想ビュー生成部56は、前側画像用仮想スクリーンテーブル12e及び画素対応テーブル12gに基づいて、前側画像用仮想スクリーンの各仮想画素に対して、前側パノラマ画像の各画素の画素値(輝度)を割り当てる。また、仮想ビュー生成部56は、後側画像用仮想スクリーンテーブル12f及び画素対応テーブル12gに基づいて、後側画像用仮想スクリーンの各仮想画素に対して、後側パノラマ画像の各画素の画素値(輝度)を割り当てる。
図16は、仮想ビューDB12hの構成例を示す模式図であり、図17及び図18は、レンダリング処理を説明するための模式図である。仮想ビューDB12hには、パノラマ画像のパノラマ画像IDと、仮想スクリーンの各仮想画素の仮想画素IDと、各仮想画素に割り当てられた輝度(画素値)とが対応付けて記憶される。仮想ビュー生成部56は、例えば前側画像用仮想スクリーンテーブル12eから1つのセルにおける4つの格子点IDと、各格子点IDに対応する4つの仮想画素IDとを読み出す。次に仮想ビュー生成部56は、読み出した4つの格子点IDのそれぞれに対応付けられた前側パノラマ画像の画素の座標(対応画素座標)を画素対応テーブル12gから読み出す。そして仮想ビュー生成部56は、読み出した前側パノラマ画像の画素の座標(u,v)に対応する画素値(輝度)を、パノラマ画像DB12aに記憶してある前側パノラマ画像から取得する。仮想ビュー生成部56は、前側画像用仮想スクリーンテーブル12eから読み出した4つの仮想画素IDと、前側パノラマ画像から取得した輝度とをそれぞれ対応付けて仮想ビューDB12hに記憶する。図17に示す例では、仮想スクリーンにおける1つのセルの格子点である仮想画素C1~C4の輝度に、パノラマ画像の画素P1~P4の輝度がそれぞれ割り当てられる。
次に、仮想ビュー生成部56は、前側画像用仮想スクリーンテーブル12eから読み出した格子点IDの格子点によるセル内の他の仮想画素について、前側パノラマ画像の各画素の輝度を割り当てる。ここでは、仮想ビュー生成部56は、まず、セル内の各仮想画素に対応する前側パノラマ画像の各画素の座標値を、画素対応テーブル12gから読み出した4つの対応画素座標(u,v)に基づいて算出する。仮想ビュー生成部56は、4つの対応画素座標のu値及びv値に対して、例えばバイリニア法等の補間演算を行うことによって、セル内の各仮想画素に対応する前側パノラマ画像の各画素の座標(u,v)を算出する。そして、仮想ビュー生成部56は、算出した各画素の座標(u,v)に対応する画素値(輝度)を前側パノラマ画像から取得し、取得した各画素値(輝度)と、セル内の各仮想画素に付与された仮想画素IDとをそれぞれ対応付けて仮想ビューDB12hに記憶する。これにより、図17に示す仮想スクリーンにおけるセル内の各仮想画素の輝度に、前側パノラマ画像の画素P1~P4で囲まれた領域内の各画素の輝度がそれぞれ割り当てられる。
仮想ビュー生成部56は、前側画像用仮想スクリーンテーブル12eに記憶された全てのセルに対して上述した処理を行うことにより、前側画像用仮想スクリーンの全ての仮想画素に対して、前側パノラマ画像の各画素の輝度を割り当てることができる。これにより、1つの前側パノラマ画像から、第2情報処理装置20を装着したユーザの頭部の位置及び向きに応じた仮想ビューが生成される。なお、図17ではセルに対応するパノラマ画像(前側パノラマ画像)の領域を長方形で示しているが、セルに対応するパノラマ画像の領域は、必ずしも長方形に限定されず、4頂点で囲まれる閉領域となる。
ここで、図18Aに示す画素P1~P4で囲まれた領域のように、仮想スクリーンのセルに対応するパノラマ画像の領域が、u=1.0(u=1.0はu=0.0と一致)をまたぐ場合、図18Bに示すように各画素のu値(0.95,0.05)に基づいて、領域内の各画素のu値を正確に算出(補間)できないという問題が生じる。よって、仮想ビュー生成部56は、仮想スクリーンの各格子点(各仮想画素)に、パノラマ画像の各画素を割り当てた際に、隣り合う2つの画素のu値が規定値(例えば0.5)以上離れているか否かを判断し、離れていると判断した場合、この画素で囲まれる領域は、u=1.0をまたぐ領域である可能性が高いと判断できる。また、u=1.0をまたぐ領域である可能性が高いと判断した場合、仮想ビュー生成部56は、4つの画素のu値のうちで小さい方のu値に1.0を加算する。これにより、図18Bに示す例では、画素P2,P3のu値が1.05となるので、画素P1~P4のu値に基づく補間演算により、この領域内の各画素の座標(u値)を算出できる。
仮想ビュー生成部56は、後側画像用仮想スクリーンテーブル12fについても同様の処理を行い、後側画像用仮想スクリーンの全ての仮想画素に対して、後側パノラマ画像の各画素の輝度を割り当てる。よって、後側パノラマ画像についても仮想ビューが生成され、パノラマ画像ID、後側画像用仮想スクリーンの各仮想画素の仮想画素ID、各仮想画素に割り当てられた輝度が対応付けて仮想ビューDB12hに記憶される。
本実施形態では、仮想ビュー生成部56は、仮想スクリーンの各格子点についてのみ、対応するパノラマ画像の画素の座標を上述の演算によって算出し、仮想スクリーンの他の仮想画素に対応するパノラマ画像の画素の座標ついては補間演算によって算出する。これにより、仮想ビュー生成部56における演算負荷が軽減され、パノラマ画像描画を高速に行うことが可能となる。なお、仮想ビュー生成部56は、例えばOpenGLやDirectX等のグラフィックライブラリー(グラフィックAPI)を用いてテクスチャマッピング処理を行うことにより、仮想スクリーンの各仮想画素にパノラマ画像の各画素の画素値を割り当てるレンダリング処理を行ってもよい。この場合、例えば画素対応テーブル12gの記憶情報のように、仮想スクリーンの各格子点と、パノラマ画像の各画素との対応を指定することにより、グラフィックライブラリーが仮想スクリーンの各仮想画素に対応するパノラマ画像の各画素の座標値を算出する補間演算、各仮想画素に対するパノラマ画像の各画素の画素値の割当(コピー)等を高速に行うことができる。
本実施形態の仮想画像生成部55は、室内における2箇所(前側撮影位置及び後側撮影位置)で撮影して得られたパノラマ画像のそれぞれから、仮想ビュー生成部(中間画像生成部)56による上述した処理によって2つの仮想ビューを生成する。仮想画像生成部55は、生成した2つの仮想ビューを合成し、ユーザが指定した仮想視点及び視線方向(ユーザの頭部の位置及び向き)に応じた仮想画像を生成する。このとき、仮想画像生成部55は、撮影対象の室内において、2箇所の撮影位置と仮想視点の位置との関係に応じて、各仮想ビューの合成割合(合成率)を異ならせる。合成割合特定部(割合特定部)57は、各仮想ビューの合成割合を特定し、合成部58は、各仮想ビューを、それぞれ特定された合成割合で合成して仮想画像を生成する。
合成割合特定部57は、仮想視点の位置とそれぞれの撮影位置との位置関係に応じて、各仮想ビューに対する合成割合(合成強度)を特定する。合成割合特定部57は、例えば、仮想視点からそれぞれの撮影位置までの距離が短いほど、それぞれの撮影位置で撮影したパノラマ画像から生成された仮想ビューに対する合成割合を高く設定する。例えば、合成割合特定部57は、仮想視点と撮影位置との距離をdとした場合の合成強度Sを、S=1/dで表される関数に基づいて特定する。なお、合成強度Sが距離dの増加に伴い単調減少する関数であれば、どのような関数を用いてもよい。
また例えば、仮想視点をST座標系の空間において後側撮影位置(0,0)と前側撮影位置(0,1)との間の任意の位置(0,t)とする。合成割合特定部57は、t値の増加に伴って前側画像の仮想ビューに対する合成割合αF が単調増加し、後側画像の仮想ビューに対する合成割合αR が単調減少し、αF +αR=1を満たすように、それぞれの仮想ビューに対する合成割合を以下の(12)式を用いて特定してもよい。
また、合成割合特定部57は、仮想視点がいずれかの撮影位置から所定距離未満の位置である場合に、この撮影位置で撮影したパノラマ画像から仮想ビュー生成部56が生成した仮想ビューに対する合成割合が1(100%)となるように各仮想ビューの合成割合を設定してもよい。この場合、合成部58は、仮想ビューDB12hから読み出した、仮想視点から最も近い撮影位置で撮影されたパノラマ画像から生成された仮想ビューをそのまま仮想画像として出力する。
合成部58は、それぞれの撮影位置で撮影したパノラマ画像から仮想ビュー生成部56が生成した仮想ビューのそれぞれを、合成割合特定部57が特定した合成割合で合成し、仮想画像を生成する。合成部58は、例えば仮想ビューのそれぞれについて、各画素値に対して、仮想ビュー毎に特定された合成割合を乗算し、乗算後の各仮想ビューの各画素値を加算することにより、仮想画像を生成する。このほかに、合成部58は、各仮想ビューをアルファブレンディングによって重ねることにより仮想画像を生成してもよい。例えば、2つの第1~第2仮想ビューをそれぞれ合成割合50%,50%で合成する場合、合成部58は、初期化されたスクリーンに対して第1仮想ビューを合成割合100%で合成した後、第2仮想ビューを合成割合50%で合成する。この結果、スクリーン上には第1仮想ビュー及び第2仮想ビューがそれぞれ合成割合50%で合成された仮想画像が生成される。
上述した各機能により、第1情報処理装置10は、カメラ30で撮影されたパノラマ画像と、第2情報処理装置20によって検出されたユーザの頭部の位置及び向きとに基づいて、ユーザに提供する仮想画像を生成できる。第1情報処理装置10は、上述したように生成した仮想画像を第2情報処理装置20へ送信し、第2情報処理装置20が表示部24に表示させることにより、第2情報処理装置20を装着したユーザに、ユーザの頭部の位置及び向きに応じた仮想画像を提供できる。これにより、第1情報処理装置10は、カメラ30で撮影した部屋を、部屋の中の任意の視点から任意の方向を見た状態の仮想画像をユーザに提供できる。
次に、カメラ30を用いて室内を撮影した際にカメラ30及び第1情報処理装置10が行う処理をフローチャートに基づいて説明する。図19は、撮影時にカメラ30及び第1情報処理装置10が行う処理の手順を示すフローチャートである。以下の処理は、カメラ30の記憶部32に記憶してある制御プログラムに従って制御部31によって実行され、第1情報処理装置10の記憶部12に記憶してある制御プログラムに従って制御部11によって実行される。なお、撮影を行う場合、カメラ30はユーザ又はロボット等により所定の位置及び向きに配置されるものとする。
カメラ30の制御部31は、シャッターボタン34からの指示に基づいて撮影部35による撮影を行う(S1)。制御部31は、撮影により、図5Aに示すような全天球画像を生成し(S2)、全天球画像から図5Bに示すような平面のパノラマ画像を生成する(S3)。制御部31は、生成したパノラマ画像を第1情報処理装置10に送信する(S4)。なお、制御部31は、撮影位置を示す情報を取得し、パノラマ画像と共に送信する。第1情報処理装置10の制御部(画像取得部)11は、カメラ30からパノラマ画像を受信する(S5)。なお、制御部11は、パノラマ画像と共に撮影位置の情報も受信し、受信した撮影位置の情報とパノラマ画像とを対応付けてパノラマ画像DB12aに記録する(S6)。カメラ30は、室内の2箇所の撮影位置でユーザ又はロボット等により所定の向きに配置された状態で、上述したステップS1~S4の処理を行い、第1情報処理装置10は、カメラ30から送信されてきた2つのパノラマ画像をパノラマ画像DB12aに記録する。
次に、カメラ30で撮影した2つのパノラマ画像(前側パノラマ画像及び後側パノラマ画像)の特徴点を対応付ける際に第1情報処理装置10が行う処理をフローチャートに基づいて説明する。図20は、第1情報処理装置10による特徴点の対応付け処理の手順を示すフローチャートである。なお、2つのパノラマ画像における特徴点を対応付ける処理は、第2情報処理装置20を用いてパノラマ画像を再生(表示)する際に行ってもよいし、パノラマ画像を取得した時点で行ってもよい。
第1情報処理装置10の制御部11は、同一の部屋で撮影されたパノラマ画像(ここでは2つのパノラマ画像)をパノラマ画像DB12aから読み出す(S11)。ここで、2つのパノラマ画像は、それぞれの撮影位置で、カメラ30の上下方向を鉛直方向に一致させ、カメラ30の前側を後側撮影位置から前側撮影位置への方向に一致させた状態で撮影されている。よって、2つのパノラマ画像では、画像の上下方向が鉛直方向に一致し、画像の左右端がカメラ30の後側に一致し、画像の左右方向の中央がカメラ30の前側に一致している。
制御部11は、2つのパノラマ画像において、上下方向の中央に並ぶ画素に対して対応付けるべき特徴点を取得する(S12)。制御部11は、2つのパノラマ画像のそれぞれにおける特徴点を入力部14にて取得してもよいし、2つのパノラマ画像において上下方向の中央に並ぶ画素の画素値の変動に対して、Dynamic Time Warping等の手法を用いて自動的に取得してもよい。制御部11は、2つのパノラマ画像に対してそれぞれ取得した特徴点を対応付けて特徴点対応テーブル12bに記憶する(S13)。ここでの特徴点は、図7A,Bに示したL軸におけるL座標値で示されており、制御部11は、特徴点対応テーブル12bに記憶された2つのパノラマ画像における特徴点のL座標値をそれぞれST座標系の方位角に変換する。また制御部11は、それぞれ変換した方位角の正接を算出し、それぞれ算出した方位角の正接(方位角情報)を対応付けて方位角対応テーブル12cに記憶する(S14)。制御部11は、特徴点対応テーブル12bに記憶された全ての特徴点をそれぞれ方位角情報に変換することにより、図10Aに示すような方位角対応テーブル12cを生成し、処理を終了する。
次に、第2情報処理装置20を用いてパノラマ画像を再生(表示)する際に第1情報処理装置10及び第2情報処理装置20が行う処理をフローチャートに基づいて説明する。図21及び図22は、表示時に第1情報処理装置10及び第2情報処理装置20が行う処理の手順を示すフローチャートである。以下の処理は、第1情報処理装置10の記憶部12に記憶してある仮想画像生成プログラムPGを含む制御プログラムに従って制御部11によって実行され、第2情報処理装置20の記憶部22に記憶してある制御プログラムに従って制御部21によって実行される。ここでは、図10Aに示すような方位角対応テーブル12cは予め生成されているものとする。
第2情報処理装置20の制御部21は、センサ部25によってユーザの頭部の位置及び向きを検出し、位置及び向きを示す情報を取得する(S21)。例えば制御部21は、センサ部25のGPSによって第2情報処理装置20の現在位置を検出し、センサ部25の磁気センサによって第2情報処理装置20の向きを検出する。制御部21は、取得した位置及び向きを示す情報を通信部23にて第1情報処理装置10へ送信する(S22)。制御部21は、位置及び向きの検出及び送信を、所定時間間隔で行ってもよいし、例えば入力部(図示せず)を介したユーザからの指示に従って行ってもよい。
一方、第1情報処理装置10の制御部11は、再生すべきパノラマ画像をパノラマ画像DB12aから選択して読み出す(S31)。再生すべきパノラマ画像は、入力部14又は第2情報処理装置20を介して指定される。なお、入力部14又は第2情報処理装置20を介して、再生すべきパノラマ画像を撮影した部屋が指定され、制御部11は、指定された部屋で撮影されたパノラマ画像(ここでは2つのパノラマ画像)をパノラマ画像DB12aから読み出してもよい。
制御部(受付部)11は、ステップS22で第2情報処理装置20が送信した位置及び向きを示す情報を通信部13にて受信する(S33)。なお、制御部11は、受信した位置及び向きを示す情報を記憶部12に逐次記憶しており、前回受信した情報と比較して、位置又は向きが変化したか否かを判断する(S34)。位置及び向きのいずれも変化していないと判断した場合(S34:NO)、制御部11は、ステップS33の処理に戻り、第2情報処理装置20から位置及び向きを示す情報を受信する都度、位置又は向きが変化したか否かを判断する。
位置又は向きが変化したと判断した場合(S34:YES)、制御部11は、受信した位置及び向きに基づいて仮想視点を設定し、設定した仮想視点に応じた仮想スクリーンを設定(特定)する(S35)。例えば、制御部11は、ユーザの頭部の位置に基づいて前回設定した仮想視点を移動させ、移動後の仮想視点から、ユーザの頭部の向きが示す視線方向に所定距離隔てて、視線方向に直交し、所定の画角を有する矩形平面である仮想スクリーンを設定する。なお、制御部11は、上述したように、まず基本スクリーンを設定し、基本スクリーンに対して2回の回転処理を行うことにより仮想スクリーンを設定する。
制御部11は、設定した仮想スクリーンに対して補正処理を行う(S36)。図23は、第1情報処理装置10による仮想スクリーンの補正処理の手順を示すフローチャートである。制御部11は、設定された仮想スクリーンの1つの格子点の方位角φV を仮想スクリーンテーブル12dから読み出す(S51)。制御部11は、読み出した方位角φV を上記の(7)式又は(8)式を用いて、図6に示したST座標系における方位角βV に変換する(S52)。
制御部11は、ステップS35で設定した仮想視点のt座標値tV を取得する(S53)。制御部11は、取得したt座標値tV と、方位角対応テーブル12cに記憶してある方位角情報の各ペアと、上記の(9)式とに基づいて、各ペアにおいてt座標値tV に対応する方位角の正接tanβを算出する(S54)。制御部11は、各ペアにおいて算出したtanβのいずれかが、ステップS52で変換した方位角βV の正接に一致するか否かを判断する(S55)。一致すると判断した場合(S55:YES)、制御部11は、算出に用いたペアにおける前側画像の特徴点の方位角の正接tanβF 及び後側画像の特徴点の方位角の正接tanβR からそれぞれ方位角βF 及びβR を算出する(S56)。制御部11は、算出した方位角βF を前側画像用仮想スクリーンテーブル12eに記憶し(S57)、算出した方位角βR を後側画像用仮想スクリーンテーブル12fに記憶する(S58)。なお、算出した方位角βF 及びβR 以外の情報は仮想スクリーンテーブル12dと同じ情報をそれぞれ記憶する。
制御部11は、仮想スクリーンテーブル12dに記憶してある全ての格子点に対して上述した処理を終了したか否かを判断する(S59)。全ての格子点に対する処理を終了していないと判断した場合(S59:NO)、制御部11はステップS51の処理に戻り、未処理の格子点の方位角φV を仮想スクリーンテーブル12dから読み出し、上述した処理を繰り返す。
一方、各ペアにおいて算出したtanβの全てが、ステップS52で変換した方位角βV の正接に一致しないと判断した場合(S55:NO)、制御部11は、各ペアにおいて算出したtanβのうちで、ステップS52で変換した方位角βV の正接tanβV の前後の値となる方位角情報のペアを取得する(S60)。制御部11は、取得した方位角情報のペアに基づいて、ステップS52で変換した方位角βV の正接tanβV に対応する前側画像における方位角の正接tanβFV及び後側画像における方位角の正接tanβRVを算出する(S61)。具体的には、制御部11は、図13Bに示した二次元空間において、線分GiGi+1における格子点Gの内分比を算出し、算出した内分比と、前側画像におけるtanβFi及びtanβFi+1とに基づいて、前側画像における方位角の正接tanβFVを算出する。また、制御部11は、算出した内分比と、後側画像におけるtanβRi及びtanβRi+1とに基づいて、後側画像における方位角の正接tanβRVを算出する。
そして、制御部11は、算出した前側画像における方位角の正接tanβFV及び後側画像における方位角の正接tanβRVからそれぞれ方位角βFV及びβRVを算出する(S56)。制御部11は、算出した方位角βFVを前側画像用仮想スクリーンテーブル12eに記憶し(S57)、算出した方位角βRVを後側画像用仮想スクリーンテーブル12fに記憶する(S58)。仮想スクリーンテーブル12dに記憶してある全ての格子点に対して上述した処理を終了したと判断した場合(S59:YES)、制御部11は、仮想スクリーンの補正処理を終了し、図21及び図22の処理に戻る。
制御部11は、前側画像用仮想スクリーンテーブル12e及びステップS31でパノラマ画像DB12aから読み出した前側パノラマ画像に基づいて、前側画像の仮想ビューを生成する(S37)。具体的には、制御部11は、前側画像用仮想スクリーンの各仮想画素に、前側パノラマ画像の画素の画素値をそれぞれ対応付けることにより、前側画像の仮想ビューを生成する。同様に、制御部11は、後側画像用仮想スクリーンテーブル12f及びステップS31でパノラマ画像DB12aから読み出した後側パノラマ画像に基づいて、後側画像の仮想ビューを生成する(S38)。また制御部11は、ステップS37,S38でそれぞれ生成した2つの仮想ビューに対して合成割合を特定する(S39)。そして制御部11は、ステップS37,S38で生成した2つの仮想ビューを、ステップS39で特定した合成割合に基づいて合成して仮想画像を生成する(S40)。制御部11は、生成した仮想画像を通信部13にて第2情報処理装置20へ送信する(S41)。
第2情報処理装置20の制御部21は、第1情報処理装置10が送信した仮想画像を通信部23にて受信し(S23)、受信した仮想画像を表示部24に表示させる(S24)。第2情報処理装置20の制御部21は、ユーザの頭部の位置及び向きの検出及び送信を、所定時間間隔又はユーザからの指示に従って行い、第1情報処理装置10の制御部11は、第2情報処理装置20から位置及び向きの情報を受信する都度、ステップS34~S41の処理を行う。これにより、実写データに基づいて、任意の視点から見た画像を生成する情報処理システム40を提供することができる。
上述した処理により、ユーザは、撮影された部屋の中を移動しながら、部屋の広さ、家具の配置、窓の外の景色等を感覚的に把握することができる。なお、カメラ30を用いて撮影する空間は、博物館、美術館、テーマパーク、アミューズメント施設、観光地、商業施設等であってもよい。
上述した処理において、第2情報処理装置20の制御部21は、ステップS21で取得した位置及び向きが、前回取得した位置及び向きに対して変化したか否かを判断し、変化した場合にのみ、取得した位置及び向きの情報を第1情報処理装置10へ送信するようにしてもよい。この場合、第1情報処理装置10の制御部11は、ステップS34の処理を行う必要がなく、第2情報処理装置20から受信した位置及び向きの情報に基づいて、ステップS35以降の処理を行えばよい。
本実施形態によると、撮影した各パノラマ画像から、視点位置の移動に応じて生成された仮想スクリーンに投影される各仮想ビューが生成される。これにより、単体の各パノラマ画像から視点位置を移動した効果のある映像表現が得られる。また本実施形態によると、複数箇所で撮影したパノラマ画像(仮想ビュー)から生成された仮想画像が提供される。複数の仮想ビューから仮想画像を生成する場合、例えば仮想視点と各撮影位置との距離に応じた合成割合で複数の仮想ビューが合成される。これにより、表示されるパノラマ画像(仮想ビュー)が切り替えられる際に、仮想視点と撮影位置との距離に応じた重み付け(合成割合)を各仮想ビューに付与できるので、画像の遷移を滑らかに行うことができ、画像の切り替えの際にユーザに与える違和感を抑制できる。また、各仮想ビューを生成する際に、2つの仮想ビューにおいて横方向(方位角方向)の歪みを解消するように、仮想スクリーンの各格子点における方位角を補正する。よって、2つの仮想ビュー間において方位角方向が一致するので、2つの仮想ビューを合成した場合に生じる横方向(方位角方向)のズレを抑制できる。
本実施形態において、撮影対象の部屋における撮影位置は3箇所以上としてもよい。この場合、それぞれ2箇所の撮影位置間で、撮影したパノラマ画像における特徴点の対応付けを行い、本実施形態における処理を行えばよい。これにより、撮影対象の部屋の任意の位置に応じた2つのパノラマ画像を用いて、任意の視点から任意の方向を見た状態の仮想画像をユーザに提供できる。
本実施形態によると、HMD型の第2情報処理装置20を使用するので、コンピュータ等の操作に不慣れなユーザであっても容易に様々な視点から室内を見た状態の画像を確認できる情報処理システム40を提供できる。本実施形態によると、市販の全天球カメラ等を用いて撮影したJPEG(Joint Photographic Experts Group)形式等の汎用の形式の画像を使用して、様々な視点から室内を見た状態の画像を提供できる情報処理システム40を提供できる。
本実施形態において、例えば、右目を仮想視点に設定して作成した仮想画像を右目側に表示し、左目を仮想視点に設定して作成した仮想画像を左目側に表示することにより、立体感のある画像を提供する情報処理システム40を提供できる。
カメラ30は、全天球カメラに限定しない。たとえば、半球型の範囲を撮影可能なカメラであってもよい。通常の平面画像撮影用のカメラでもよい。
(実施形態2)
本実施形態は、仮想視点が静止している場合に1つの仮想ビューから生成された仮想画像を提供する情報処理システム40に関する。実施形態1と共通する部分については説明を省略する。
本実施形態では、仮想視点が移動している場合、上述した実施形態1と同様の処理が行われ、2箇所の撮影位置で撮影したパノラマ画像からそれぞれ生成された2つの仮想ビューが適切な合成割合にて合成され、仮想視点から任意の方向を見た場合の仮想画像が生成される。一方、仮想視点が静止している場合、仮想視点の近傍の撮影位置で撮影したパノラマ画像から生成された仮想ビューのみを用いて仮想画像が生成される。また、移動中の仮想視点が静止した場合、又は静止中の仮想視点が移動した場合に、2つの仮想ビューを合成して仮想画像を生成する処理と、1つの仮想ビューを用いて仮想画像を生成する処理とが切り替えられるが、このとき、2つの処理は所定時間をかけて切り替えられる。
具体的には、本実施形態の合成割合特定部57は、仮想視点が移動を停止した場合、この時点での各仮想ビューに対する合成割合から、仮想視点の近傍の撮影位置で撮影したパノラマ画像(仮想ビュー)に対する合成割合を徐々に大きくなるように変更し、所定時間の経過後に1(100%)に設定する。このとき、合成割合特定部57は、他方のパノラマ画像(仮想ビュー)に対する合成割合を徐々に小さくなるように変更し、所定時間の経過後に0(0%)に設定する。また、合成割合特定部57は、静止中の仮想視点が移動を開始した場合、仮想視点の近傍の撮影位置で撮影したパノラマ画像に対する合成割合を徐々に小さくなるように変更し、所定時間の経過後に、2つの撮影位置と仮想視点との位置関係に基づく合成割合に設定する。このとき、合成割合特定部57は、他方のパノラマ画像に対する合成割合を徐々に大きくなるように変更し、所定時間の経過後に、2つの撮影位置と仮想視点との位置関係に基づく合成割合に設定する。
図24は、仮想ビューに対する合成割合の変化を示す図表である。図24Aは仮想視点が移動を停止した場合における各仮想ビューの合成割合を示し、図24Bは仮想視点が移動を開始した場合における各仮想ビューの合成割合を示す。図24Aにおいて、横軸は、移動中の仮想視点が停止してからの経過時間ETを示し、縦軸は、それぞれの仮想ビューに対する合成割合αR ,αF を示す。図24Bにおいて、横軸は、停止中の仮想視点が移動を開始してからの経過時間ETを示し、縦軸は、それぞれの仮想ビューに対する合成割合αR ,αF を示す。図24A,Bに示す例では、仮想視点の近傍の撮影位置を後側撮影位置とする。本実施形態では、図24Aに示すように、移動中の仮想視点が後側撮影位置の近傍で静止した場合、後側画像の仮想ビューに対する合成割合は、この時点での合成割合αR から単調増加し、所定時間etの経過後に1となる。このとき、前側画像の仮想ビューに対する合成割合は、この時点での合成割合αF から単調減少し、所定時間etの経過後に0となる。所定時間etは例えば数秒程度としてもよい。また本実施形態では、図24Bに示すように、後側撮影位置の近傍で静止中の仮想視点が移動を開始した場合、後側画像の仮想ビューに対する合成割合は、この時点での合成割合1から単調減少し、所定時間etの経過後にαR となる。このとき、前側画像の仮想ビューに対する合成割合は、この時点での合成割合0から単調増加し、所定時間etの経過後にαF となる。
本実施形態では、例えば、図21及び図22中のステップS39の処理において、第1情報処理装置10の制御部(判断部)11は、ステップS33で受信した位置を示す情報に基づいて、仮想視点の位置が移動中(変化中)であるか否かを判断する。位置が移動中であると判断した場合、制御部11は、実施形態1におけるステップS39と同じ処理を行い、例えば仮想視点の位置とそれぞれの撮影位置との位置関係に応じて2つの仮想ビューに対する合成割合を特定する。一方、位置が移動中でないと判断した場合、制御部11は、仮想視点が移動を開始したのか、移動を停止したのかを判断する。そして、制御部11(合成割合特定部57)は、仮想視点が移動を開始したのか、移動を停止したのかに応じて、上述したように2つの仮想ビューに対する合成割合を特定し、その後、ステップS40以降の処理を行う。
上述した処理により、本実施形態では、仮想視点の移動中は、前側画像の仮想ビュー及び後側画像の仮想ビューを合成した仮想画像が生成され、実施形態1と同様の効果が得られる。また、仮想視点の静止中は、仮想視点の近傍の撮影位置で撮影したパノラマ画像から生成された仮想ビューのみを用いた仮想画像が生成される。この場合、仮想ビューを合成しないので、仮想ビューを合成した場合に生じる画像のブレが生じず、ブレのない画像を提供できる。また、仮想視点の移動停止時又は移動開始時では、2つの仮想ビューを合成して仮想画像を生成する処理と、1つの仮想ビューを用いて仮想画像を生成する処理とを所定時間をかけて切り替える。よって、2つの処理が切り替えられることに伴って表示される仮想画像が切り替えられる際にユーザに与える違和感を抑制できる。
(実施形態3)
本実施形態は、2つのパノラマ画像において、被写体の特徴点(画素)の対応付けを、撮影位置の高さに対応する画像中の位置以外の位置においても行う情報処理システム40に関する。実施形態1と共通する部分については説明を省略する。
本実施形態の第1情報処理装置10においても、制御部11は仮想画像生成プログラムPGを実行することによって、図8に示す各機能を実現する。なお、本実施形態の第1情報処理装置10では、特徴点対応付け部51、仮想スクリーン設定部52及び仮想スクリーン補正部53が行う処理が実施形態1とは異なるので、異なる処理についてのみ説明する。
本実施形態の特徴点対応付け部51は、撮影対象の空間内の2箇所(前側撮影位置及び後側撮影位置)で撮影した2つのパノラマ画像において、前側撮影位置及び後側撮影位置を結ぶ直線とそれぞれのパノラマ画像とが交差する2点を通る複数の線上で、同じ被写体が撮影された方位角方向の位置を対応付ける。図25は、パノラマ画像の例を示す模式図であり、図25Aは前側撮影位置で撮影したパノラマ画像(前側画像)の例であり、図25Bは後側撮影位置で撮影したパノラマ画像(後側画像)の例である。なお、図25は正距円筒図法により長方形に展開されたパノラマ画像を示す。図25に示す2つのパノラマ画像は、画像の上下方向が鉛直方向に一致し、左右端がカメラ30の後側(撮影方向の反対方向)に一致し、左右方向の中央がカメラ30の前側(撮影方向)に一致している。このようなパノラマ画像間では、画像の上下方向の中央部だけでなく、画像における撮影方向及び撮影方向の反対方向に対応する位置で上下方向(高さ方向)の中央位置(図25中の点D1,D2,D3,D4)を通る複数の線(曲線)上に、同じ被写体が写っている。また同じ被写体は、2箇所の撮影位置間の視差によってパノラマ画像中の異なる位置に写っている。例えば図25Aに示す前側画像において線La1上に写っている被写体は、図25Bに示す後側画像においても線La1上に写っている。このような線を以下ではエピポーラ線という。
図26は、エピポーラ線の説明図である。図26には、前側撮影位置及び後側撮影位置のそれぞれで撮影したパノラマ画像のイメージを球体で示しており、球体の表面上の曲線La1,La2,Lb1,Lb2はそれぞれエピポーラ線を示している。ここで、後側撮影位置から前側撮影位置に向かう方向を天頂方向とした極座標系(以下では共通軸極座標系という)を用いる。なお、後側撮影位置から前側撮影位置に向かう方向は、撮影方向(カメラ30の前側)であり、図5Aに示した直交座標系のZ軸の負方向(-Z軸方向)である。なお、共通軸極座標系の方位角には、撮影空間のX軸の負方向を基準として、Z軸の負方向から見てZ軸を中心に反時計回りの角度φC を用いる。また共通軸極座標系の天頂角には、Z軸の負方向を基準として、撮影位置を中心としてZ軸の正方向に向かう角度θC を用いる。以下では、共通軸極座標系と区別するために、パノラマ画像の各画素の位置を表現するための極座標系をローカル極座標系と呼び、ローカル極座標系の座標を(rL ,θL ,φL )で示す。
エピポーラ線は、それぞれのパノラマ画像が、2つの撮影位置を結ぶ直線(-Z軸)と交差する2点D1及びD2,D3及びD4を通る。具体的には、前側画像におけるエピポーラ線は、空間内の各撮影位置を結ぶ直線(-Z軸)と、前側撮影位置で撮影した全天球画像(前側画像)とが交差する2点D1,D2を通り、前側画像に係る全天球上の線である。また、後側画像におけるエピポーラ線は、-Z軸と、後側撮影位置で撮影した全天球画像(後側画像)とが交差する2点D3,D4を通り、後側画像に係る全天球上の線である。またそれぞれのエピポーラ線は、共通軸極座標系において天頂角θC 方向に並ぶ線(画素列)であり、図5Aに示す直交座標系における水平面であるXZ平面を基準として、-Z軸を中心に、共通軸極座標系における方位角方向に例えば15°間隔毎に回転させて設けられている。なお、エピポーラ線の数及び方位角方向の間隔はこれに限らず、任意の数又は任意の間隔とすることができる。図26に示す共通軸極座標系で表したエピポーラ線を正距円筒図法により展開することにより、図25に示すようにパノラマ画像上にエピポーラ線La1,La2…を表すことができる。なお、共通軸極座標系の座標(rC ,θC ,φC )をローカル極座標系の座標(rL ,θL ,φL )に変換する場合、一旦直交座標系の座標に変換した後にローカル極座標系の座標に変換する。なお、ここでの直交座標系を、パノラマ画像の各画素の位置を表現するための直交座標系と区別するためにワールド直交座標系と呼び、ワールド直交座標系の座標を(xW ,yW ,zW )で示す。
図27は、座標系の関係を説明するための模式図である。図27Aはローカル極座標系及びワールド直交座標系の関係を示し、図27Bはワールド直交座標系及び共通軸極座標系の関係を示す。ワールド直交座標系には、鉛直上方向をYW 軸の正側、水平面をXW 軸及びZW 軸で表す3次元の右手系の直交座標系を用いる。よって、空間内の任意の位置Pは、ワールド直交座標系の座標(xW ,yW ,zW )で表すことができる。図27Aに示すようにローカル極座標系は、鉛直上方向(YW 軸の正側)を基準とした天頂角θL と、鉛直上方向から見てZW 軸の正側を基準として水平面であるXW ZW 平面内の反時計回りの方位角φL と、原点0からの距離rL とによって表される。よって、3次元空間中の任意の位置Pは、ワールド直交座標系の座標(xW ,yW ,zW )とローカル極座標系の座標(rL ,θL ,φL )とで表すことができ、ワールド直交座標系の座標(xW ,yW ,zW )及びローカル極座標系の座標(rL ,θL ,φL )は以下の(13)式及び(14)式によって相互に変換可能である。
なお、ローカル極座標系の座標値(rL ,θL ,φL )で表される全天球画像は、正距円筒図法により、横軸及び縦軸をそれぞれ、方位角φL 及び天頂角θL をそれぞれ0~1の範囲に正規化したu値(u軸)及びv値(v軸)とする平面(長方形)の画像に展開できる。ここで、ローカル極座標系の方位角φL 及び天頂角θL と、u値及びv値とは、以下の(15)式及び(16)式によって相互に変換可能である。
図27Bに示すように共通軸極座標系は、ワールド直交座標系のZW 軸の負方向を基準とした天頂角θC と、ZW 軸の負方向から見てXW 軸の負側を基準としてXW YW 平面内の反時計回りの方位角φC と、原点0からの距離rC とによって表される。よって、3次元空間中の任意の位置Pは、ワールド直交座標系の座標(xW ,yW ,zW )と共通軸極座標系の座標(rC ,θC ,φC )とで表すことができ、ワールド直交座標系の座標(xW ,yW ,zW )及び共通軸極座標系の座標(rC ,θC ,φC )は以下の(17)式及び(18)式によって相互に変換可能である。
本実施形態の特徴点対応付け部(対応付け部)51は、2つのパノラマ画像において、それぞれのエピポーラ線について、エピポーラ線上に写っている被写体の特徴点(画素)の対応付けを行う。例えば、特徴点対応付け部51は、図25A,Bに示すように、2つのパノラマ画像において、エピポーラ線La4上に配置する画素のうちで同じ被写体の同じ部分の画素を特徴点La4a~La4dとしてそれぞれ対応付ける。まず、特徴点対応付け部51は、エピポーラ線毎に、対応付けるべきそれぞれの特徴点について、前側画像における座標値(uF ,vF )と後側画像における座標値(uR ,vR )とを特定する。特徴点対応付け部51は、特定した座標値(uF ,vF )及び(uR ,vR )をそれぞれ、上記の(15)式を用いてローカル極座標系の座標値(θLF,φLF)及び座標値(θLR,φLR)に変換する。次に特徴点対応付け部51は、ローカル極座標系の座標値(θLF,φLF)及び座標値(θLR,φLR)をそれぞれ、上記の(13)式を用いてワールド直交座標系の座標値(xWF,yWF,zWF)及び座標値(xWR,yWR,zWR)に変換する。なお、ローカル極座標系における距離rL は適宜の距離とすればよい。更に特徴点対応付け部51は、ワールド直交座標系の座標値(xWF,yWF,zWF)及び座標値(xWR,yWR,zWR)をそれぞれ、上記の(18)式を用いて共通軸極座標系の座標値(θCF,φCF)及び座標値(θCR,φCR)に変換する。ここで、対応付けられる特徴点は、同じエピポーラ線上の画素であるので、共通軸極座標系の方位角φC が同じである。即ち、前側画像における特徴点の共通軸極座標系の方位角φCFと後側画像における特徴点の共通軸極座標系の方位角φCRとは同じである。よって、特徴点対応付け部51は、それぞれのエピポーラ線(共通軸極座標系の方位角φC )毎に、それぞれの特徴点について、前側画像における天頂角θCFと後側画像における天頂角θCRとを対応付ける。特徴点対応付け部51は、それぞれのエピポーラ線について、特徴点毎に天頂角θCF及びθCRのペアを対応付けて記憶する。
また、特徴点対応付け部51は、共通軸極座標系の天頂角θCF及びθCRではなく、図6に示したST座標系の方位角βF 、βR (又は方位角βF 、βR の正接tanβF 、tanβR )にて対応付けを行ってもよい。なお、図6に示したST座標系を以下ではエピポーラ面座標系と呼び、ワールド直交座標系のZW 軸の負方向をt軸とし、t軸に直交する方向をs軸とし、座標(sE ,tE )によってエピポーラ面座標系の任意の位置を表すことができる。この場合、特徴点対応付け部51は、上述したように対応付けた特徴点について、前側画像における共通軸極座標系の天頂角θCF及び後側画像における共通軸極座標系の天頂角θCRをそれぞれ、以下の(19)式を用いてエピポーラ面座標系の方位角βF 、βR に変換する。
β=θC -π/2 …(19)
この場合、特徴点対応付け部51は、図9に示す特徴点対応テーブル12bは生成せずに、共通軸極座標系の方位角φC 毎に、前側画像におけるエピポーラ面座標系の方位角βF の正接tanβF と後側画像におけるエピポーラ面座標系の方位角βR の正接tanβR とを対応付けて記憶した図10Aに示すような方位角対応テーブル12cを生成する。なお、本実施形態の特徴点対応付け部51は、共通軸極座標系における方位角φC が-π/2<φC ≦π/2の範囲にあるエピポーラ線のそれぞれについて、共通軸極座標系における天頂角θC が0≦θC ≦πの範囲にある特徴点について対応付けを行う。
特徴点対応付け部51は、2つのパノラマ画像間で対応付けるべき特徴点を、例えばユーザ入力によって受け付けてもよい。この場合、例えば特徴点対応付け部51は、第1情報処理装置10の表示部15に、エピポーラ線をそれぞれ付加した2つのパノラマ画像を表示し、特徴点とすべき箇所(画素)を入力部14にて受け付ける。なお、特徴点対応付け部51は、図26に示したそれぞれのエピポーラ線について、エピポーラ線上の各画素の共通軸極座標系の座標値(θC ,φC )を、上記の(17)式を用いてワールド直交座標系の座標値(xW ,yW ,zW )に変換し、更に上記の(14)式を用いてローカル極座標系の座標値(θL ,φL )に変換する。更に特徴点対応付け部51は、ローカル極座標系の方位角φL 及び天頂角θL を上記の(16)式を用いてu値及びv値に変換する。これにより、特徴点対応付け部51は、図25に示すように、表示部15に表示した2つのパノラマ画像にエピポーラ線を重畳させることができる。
ユーザは、表示された2つのパノラマ画像においてそれぞれのエピポーラ線について、同じ被写体の同じ部分を特徴点として入力部14を介して指定する。特徴点対応付け部51は、入力部14を介して2つのパノラマ画像中の特徴点を受け付け、それぞれの特徴点について、前側画像における座標値(uF ,vF )と後側画像における座標値(uR ,vR )とを取得する。そして特徴点対応付け部51は、前側画像における座標値(uF ,vF )及び後側画像における座標値(uR ,vR )に対して、上述した変換処理を行うことにより、共通軸極座標系の座標値(θCF,φCF)及び座標値(θCR,φCR)を取得する。更に特徴点対応付け部51は、共通軸極座標系の天頂角θCF,θCRをエピポーラ面座標系の方位角βF ,βR に変換し、共通軸極座標系の方位角φCF,φCR(φCF=φCR)について、方位角βF 、βR の正接tanβF 、tanβRを対応付けて方位角対応テーブル12cに記憶する。
また、特徴点対応付け部51は、2つのパノラマ画像間で対応付けるべき特徴点を、2つのパノラマ画像におけるそれぞれのエピポーラ線上の各画素の画素値の変動に対して、Dynamic Time Warping等の手法を用いて自動的に抽出してもよい。この場合、特徴点対応付け部51は、例えば図25に示すようなパノラマ画像においてそれぞれのエピポーラ線上の画素を抽出し、前側画像及び後側画像における1次元の画素列(画素値の列)をそれぞれ生成する。例えば特徴点対応付け部51は、それぞれのエピポーラ線(共通軸極座標系の方位角φC )に対して、天頂角θC を0から所定値(微小角度)ずつ増加させながら、上述した変換処理によってパノラマ画像上のu値及びv値に変換し、得られた座標(u,v)の画素の画素値を逐次抽出することによって、前側画像及び後側画像における1次元の画素列を生成する。そして、特徴点対応付け部51は、このように生成された前側画像及び後側画像における画素列から、Dynamic Time Warping等の手法により、類似する画素値の画素を自動的に抽出する。特徴点対応付け部51は、抽出した画素を特徴点として受け付ける。そして特徴点対応付け部51は、ユーザ入力される場合と同様に、受け付けた特徴点について、前側画像における座標値(uF ,vF )と後側画像における座標値(uR ,vR )とを共通軸極座標系の座標値(θCF,φCF)及び座標値(θCR,φCR)に変換する。更に特徴点対応付け部51は、共通軸極座標系の天頂角θCF,θCRをエピポーラ面座標系の方位角βF ,βR に変換し、共通軸極座標系の方位角φCF,φCR(φCF=φCR)について、エピポーラ面座標系の方位角βF 、βR の正接tanβF 、tanβRを対応付けて方位角対応テーブル12cに記憶する。
よって、本実施形態では、それぞれのエピポーラ線(共通軸極座標系の方位角φC )毎に、前側画像における方位角情報(エピポーラ面座標系の方位角βF の正接tanβF )及び後側画像における方位角情報(エピポーラ面座標系の方位角βR の正接tanβR)が対応付けて記憶される方位角対応テーブル12cが生成される。
本実施形態の仮想スクリーン設定部52は、実施形態1と同様に、第2情報処理装置20から取得したユーザの頭部の位置及び向きに基づいて、ローカル極座標系において仮想視点Vから仮想スクリーンを見た際の各格子点の天頂角θVL及び方位角φVLを算出する。よって、各格子点の位置はローカル極座標系の座標値(θVL,φVL)で表される。そして、本実施形態の仮想スクリーン設定部52は、各格子点のローカル極座標系の座標値(θVL,φVL)を、上述した変換処理によって共通軸極座標系の座標値(θVC,φVC)に変換する。更に仮想スクリーン設定部52は、各格子点の共通軸極座標系の天頂角θVCを上記の(19)式によってエピポーラ面座標系の方位角βV に変換する。よって、本実施形態の仮想スクリーン設定部52は、設定した仮想スクリーンの各格子点の座標値として座標(βV ,φVC)を仮想スクリーンテーブル12dに記憶する。
図28は、実施形態3の仮想スクリーンテーブル12dの構成例を示す模式図である。本実施形態の仮想スクリーンテーブル12dは、図11に示した実施形態1の仮想スクリーンテーブル12dと同様の構成を有するが、各格子点の座標値として、エピポーラ面座標系の方位角βV 及び共通軸極座標系の方位角φVCで表される座標(βV ,φVC)が仮想スクリーンテーブル12dに記憶される。なお、以下では座標値βV を格子点における天頂角といい、座標値φVCを格子点における方位角という。
本実施形態の仮想スクリーン補正部53は、図28に示した仮想スクリーンテーブル12dが示す仮想スクリーンに対して、特徴点対応付け部51が生成した方位角対応テーブル12cに基づく補正処理を行い、前側画像用仮想スクリーン及び後側画像用仮想スクリーンを生成する。具体的には、仮想スクリーン補正部53は、仮想スクリーンテーブル12dに記憶された各格子点の座標(βV ,φVC)の各値を、方位角対応テーブル12cに基づいてそれぞれ補正し、前側画像用仮想スクリーンテーブル12eと後側画像用仮想スクリーンテーブル12fとを生成する。よって、前側画像用仮想スクリーンテーブル12e及び後側画像用仮想スクリーンテーブル12fは、仮想スクリーンテーブル12d中の各格子点の座標値が異なるほかは仮想スクリーンテーブル12dと同様の構成を有する。
本実施形態の仮想スクリーン補正部53はまず、仮想スクリーンテーブル12dに記憶された各格子点の座標(βV ,φVC)について、座標値φVCに一致する方位角(即ち、方位角φVC)のエピポーラ線に対する方位角対応テーブル12cがあるか否かを判断する。方位角φVCのエピポーラ線に対する方位角対応テーブル12cがある場合、仮想スクリーン補正部53は、実施形態1と同様の処理により、方位角対応テーブル12cを用いて、格子点の天頂角βV に対応する前側画像における画素の天頂角βF と後側画像における画素の天頂角βR とを求める。
一方、方位角φVCのエピポーラ線に対する方位角対応テーブル12cがない場合、仮想スクリーン補正部53は、方位角φVCの前後の方位角φJ ,φJ+1 (φJ <φVC<φJ+1 )の2つのエピポーラ線に対する方位角対応テーブル12cを用いて、格子点の天頂角βV に対応する前側画像における画素の天頂角βF と後側画像における画素の天頂角βR とを求める。ここではまず、仮想スクリーン補正部53は、実施形態1と同様の処理により、方位角φJ のエピポーラ線に対する方位角対応テーブル12cを用いて、格子点の天頂角βV に対応する前側画像における画素の天頂角βFJと後側画像における画素の天頂角βRJとを求める。また、仮想スクリーン補正部53は、方位角φJ+1 のエピポーラ線に対する方位角対応テーブル12cを用いて、格子点の天頂角βV に対応する前側画像における画素の天頂角βFJ+1と後側画像における画素の天頂角βRJ+1とを求める。そして仮想スクリーン補正部53は、算出した天頂角βFJ,βFJ+1及び天頂角βRJ,βRJ+1をそれぞれ、方位角φVCが方位角φJ ,φJ+1 を分割する内分比に応じた重み付けを行って合成することにより、格子点の天頂角βV に対応する前側画像及び後側画像における画素の天頂角βF ,βR を求める。具体的には、仮想スクリーン補正部53は、以下の(20)式を用いて、天頂角βFJ,βFJ+1及び内分比τから、格子点の天頂角βV に対応する前側画像における画素の天頂角βF を算出し、天頂角βRJ,βRJ+1及び内分比τから、格子点の天頂角βV に対応する後側画像における画素の天頂角βR を算出する。
上述した処理により、仮想スクリーン補正部53は、仮想スクリーン設定部52が設定した仮想スクリーンにおいて、各格子点の天頂角を前側画像における天頂角βF に補正した前側画像用仮想スクリーンと、後側画像における天頂角βR に補正した後側画像用仮想スクリーンとを生成する。なお、仮想スクリーン設定部52が設定した仮想スクリーンを前側画像用及び後側画像用に補正する処理は、上述した処理に限定されない。
本実施形態の仮想画像生成部55は、実施形態1と同様の処理により、パノラマ画像DB12aに記録された前側画像及び後側画像と、前側画像用仮想スクリーン及び後側画像用仮想スクリーンとに基づいて、第2情報処理装置20を装着したユーザに提供する仮想画像を生成する。なお、本実施形態の仮想ビュー生成部56は、前側画像用仮想スクリーンテーブル12eから各格子点の座標値(βF ,φVC)を読み出し、天頂角βF にπ/2を加算して共通軸極座標系の天頂角θFCに変換する。そして、仮想ビュー生成部56は、変換した天頂角θFCと、前側画像用仮想スクリーンテーブル12eから読み出した格子点の方位角φVCとによる共通軸極座標系の座標(θFC,φVC)を、上述した変換処理によってワールド直交座標系及びローカル極座標系を経て、前側画像(パノラマ画像)上の座標(u,v)に変換する。そして仮想ビュー生成部56は、前側画像において得られた座標(u,v)の画素を、前側画像用仮想スクリーンの格子点(βF ,φVC)に対応付け、画素対応テーブル12gに記憶する。仮想ビュー生成部56は、後側画像用仮想スクリーンテーブル12fについても同様の処理を行い、後側画像用仮想スクリーンの各格子点に、前側画像における画素を対応付け、画素対応テーブル12gに記憶する。これにより、本実施形態の仮想ビュー生成部56は、図15に示す画素対応テーブル12gを生成する。
本実施形態の仮想ビュー生成部56は、実施形態1と同様の処理を行い、前側画像用仮想スクリーンの各仮想画素に輝度(画素値)を割り当てて前側画像の仮想ビューを生成する。また、仮想ビュー生成部56は、後側画像用仮想スクリーンの各仮想画素に輝度(画素値)を割り当てて後側画像の仮想ビューを生成する。これにより、本実施形態の仮想ビュー生成部56は、図16に示す仮想ビューDB12hを生成する。
本実施形態では、図20に示す特徴点の対応付け処理において、第1情報処理装置10の制御部11は、ステップS13の処理を行わない。具体的には、制御部11は、2つのパノラマ画像において対応付けるべき特徴点を取得した場合(S12)、取得した各特徴点について、前側画像における座標値(uF ,vF )と後側画像における座標値(uR ,vR )とを取得する。そして制御部11は、前側画像における座標値(uF ,vF )及び後側画像における座標値(uR ,vR )に対して、座標系の変換処理を行い、共通軸極座標系の座標値(θCF,φCF)及び座標値(θCR,φCR)に変換する。更に制御部11は、共通軸極座標系の天頂角θCF,θCRをエピポーラ面座標系の方位角βF ,βR に変換し、共通軸極座標系の方位角φCF,φCR(φCF=φCR)について、方位角βF 、βR の正接tanβF 、tanβRを対応付けて方位角対応テーブル12cに記憶する(S14)。これにより、本実施形態では、エピポーラ線(共通軸極座標系の方位角φC )毎に、前側画像における方位角情報(エピポーラ面座標系の方位角βF の正接tanβF )及び後側画像における方位角情報(エピポーラ面座標系の方位角βR の正接tanβR)が対応付けられる。
また本実施形態では、図21中のステップS35の処理において、第1情報処理装置10の制御部11は、設定した仮想スクリーン各格子点のローカル極座標系の座標値(θVL,φVL)を共通軸極座標系の座標値(θVC,φVC)に変換する。また制御部11は、各格子点の共通軸極座標系の天頂角θVCをエピポーラ面座標系の方位角βV に変換する。そして制御部11は、各格子点の座標値として座標(βV ,φVC)を仮想スクリーンテーブル12dに記憶することにより、仮想スクリーンを設定する。
以下に、本実施形態における仮想スクリーンの補正処理について説明する。図29は、実施形態3の第1情報処理装置10による仮想スクリーンの補正処理の手順を示すフローチャートである。図29に示す処理は、図23中のステップS51~S52の代わりにステップS71~S76を追加したものである。図29では、ステップS58~S59の図示を省略する。本実施形態の第1情報処理装置10の制御部11は、設定された仮想スクリーンの1つの格子点の座標(βV ,φVC)を仮想スクリーンテーブル12dから読み出す(S71)。制御部11は、読み出した格子点の方位角φVCのエピポーラ線に対する方位角対応テーブル12cがあるか否かを判断する(S72)。方位角対応テーブル12cがあると判断した場合(S72:YES)、制御部11は、実施形態1と同様にステップS53以降の処理を行う。
なお、本実施形態では、ステップS55で、制御部11は、ステップS54で各ペアにおいて算出したtanβのいずれかが、ステップS71で読み出した格子点の天頂角βV の正接(天頂角情報)に一致するか否かを判断する。またステップS57で、制御部11は、算出した方位角βF を、格子点の天頂角βV に対応する前側画像における画素の天頂角βF として前側画像用仮想スクリーンテーブル12eに記憶する。同様にステップS58で、制御部11は、算出した方位角βR を、格子点の天頂角βV に対応する後側画像における画素の天頂角βR として後側画像用仮想スクリーンテーブル12fに記憶する。
一方、格子点の方位角φVCのエピポーラ線に対する方位角対応テーブル12cがないと判断した場合(S72:NO)、制御部11は方位角φVCの前後の方位角φJ ,φJ+1の2つのエピポーラ線に対する方位角対応テーブル12cを取得する(S73)。そして制御部11は、一方の方位角対応テーブル12c(例えば方位角φJのエピポーラ線に対する方位角対応テーブル12c)に基づいて、格子点の天頂角βV に対応する前側画像における画素の天頂角βFJと後側画像における画素の天頂角βRJとを算出する(S74)。また制御部11は、他方の方位角対応テーブル12c(例えば方位角φJ+1 のエピポーラ線に対する方位角対応テーブル12c)に基づいて、格子点の天頂角βV に対応する前側画像における画素の天頂角βFJ+1と後側画像における画素の天頂角βRJ+1とを算出する(S75)。
そして制御部11は、算出した天頂角βFJ,βFJ+1を、方位角φJ ,φJ+1 に対する方位角φVCの内分比に応じた重み付けを行って合成することにより、格子点の天頂角βV に対応する前側画像における画素の天頂角βF を算出する。また制御部11は、算出した天頂角βRJ,βRJ+1を、方位角φJ ,φJ+1 に対する方位角φVCの内分比に応じた重み付けを行って合成することにより、格子点の天頂角βV に対応する後側画像における画素の天頂角βR を算出する(S76)。そして制御部11は、算出した天頂角βF を前側画像用仮想スクリーンテーブル12eに記憶し(S57)、算出した天頂角βR を後側画像用仮想スクリーンテーブル12fに記憶する(S58)。
上述した処理により、本実施形態では、仮想画像を生成するための仮想ビューを生成する際に、2つの仮想ビュー(パノラマ画像)において、水平方向だけでなく鉛直方向の歪みも考慮して歪みを抑制するように、仮想スクリーンの各格子点における被写体位置(共通軸極座標における天頂角)を補正する。よって、2つの仮想ビュー間において水平方向及び鉛直方向の全箇所にわたって被写体位置を合せることができるので、2つの仮想ビューを合成した場合に生じる縦方向のズレをより抑制できる。これにより、2つの仮想ビューを合成した仮想画像であってもユーザに与える違和感が抑制された仮想画像を提供できる。
本実施形態の構成は、上述した実施形態2にも適用可能であり、実施形態2に適用した場合であっても同様の効果が得られる。
(実施形態4)
本実施形態は、撮影対象の空間内の任意の4箇所で撮影された4つのパノラマ画像に基づいて仮想画像を生成する情報処理システム40に関する。実施形態1と共通する部分については説明を省略する。本実施形態では、4つのパノラマ画像において、被写体の特徴点(画素)の対応付けを任意の位置で行うことができる。即ち、任意の位置の特徴点を対応付けることができる。本実施形態では、床面からの高さが任意であり、平面上にない4箇所の撮影位置で撮影された4つのパノラマ画像を用い、4つのパノラマ画像は、画像の上下方向が鉛直方向に一致し、画像中央に写る被写体の撮影位置からの方角が一致している。このような4つのパノラマ画像は、撮影時に撮影状態を一致させて撮影されたものであってもよく、撮影時の情報を用いて撮影後に補正処理が行われたものであってもよい。カメラ30で撮影されたパノラマ画像は、撮影位置を示す情報と共に第1情報処理装置10へ送信され、第1情報処理装置10のパノラマ画像DB12aに記録される。
図30は、実施形態4の情報処理システム40の表示時の構成を示す模式図である。本実施形態の第1情報処理装置10では表示時に制御部11が仮想画像生成プログラムPGを実行することにより、記憶部12に、特徴点対応テーブル121、パッチテーブル122、特徴点テーブル123が記憶される。第2情報処理装置20は実施形態1と同様であるので説明を省略する。
図31は、実施形態4の第1情報処理装置10の制御部11によって実現される機能を示すブロック図、図32は、各テーブル121,122,123の構成例を示す模式図である。なお、図32Aは特徴点対応テーブル121を示し、図32Bはパッチテーブル122を示し、図32Cは特徴点テーブル123を示す。本実施形態の第1情報処理装置10の制御部11は、仮想画像生成プログラムPGを実行した場合、特徴点対応付け部61、特徴点パッチ生成部62、仮想カメラ位置算出部63、特徴点算出部64、仮想画像生成部65の各機能を実現する。なお、これらの各機能の一部を専用のハードウェア回路で実現してもよい。
本実施形態の特徴点対応付け部61は、撮影対象の空間内の4箇所で撮影した4つのパノラマ画像において、同じ被写体が写っている位置の画素を特徴点として対応付ける。図33は実施形態4の特徴点を説明するための模式図である。図33には2つのパノラマ画像のみを示すが、本実施形態の特徴点対応付け部61は、4つのパノラマ画像において、図33A,Bに示すように、同じ被写体の同じ部分の画素を特徴点L1~L2として対応付ける。図33A,Bに示すパノラマ画像において、特徴点L1はテレビの角であり、特徴点L2はカーテンの角である。本実施形態では、特徴点の位置に制限がなく、同じ被写体を特徴点とすればよいので、テレビやカーテン等の角を特徴点に用いることができる。特徴点対応付け部61は、4つのパノラマ画像中の各特徴点を、画像の左上を原点(0,0)とし、原点から右方向をX軸とし下方向をY軸とした画像座標系の座標(x,y)で表し、対応付けた特徴点の画像座標系の座標値(x,y)を特徴点対応テーブル121に記憶する。
図32Aに示すように、特徴点対応テーブル121には、特徴点対応付け部61が対応付けた特徴点のセット毎に、特徴点IDと、4つのパノラマ画像(画像P1~P4)における特徴点の画像座標系の座標値(x,y)とが対応付けて記憶される。特徴点IDは各特徴点に固有に付与された識別情報である。特徴点対応付け部61は、4つのパノラマ画像間で対応付けるべき特徴点を、例えばユーザ入力によって取得してもよいし、SIFT(Scale-Invariant Feature Transform )アルゴリズム等の技術を用いて自動的に抽出してもよい。自動的に抽出する場合、特徴点対応付け部61は、4つのパノラマ画像間で類似する画素を自動的に抽出し、抽出した画素の座標値を同じ被写体の特徴点として取得する。特徴点対応付け部61は、例えば100個の特徴点のセットを対応付ける。
特徴点対応付け部61は、特徴点対応テーブル121に記憶した各特徴点の画像座標系の座標を、実施形態3で用いたワールド直交座標系の座標に変換する。なお、画像座標系の座標をワールド直交座標系の座標に変換する場合、一旦ローカル極座標系の座標に変換した後にワールド直交座標系の座標に変換する。各座標系の変換処理は、実施形態1~3で説明した処理と同じである。特徴点対応付け部61は、それぞれ変換した各特徴点のワールド直交座標系の座標を特徴点対応テーブル121に記憶する。なお、特徴点対応付け部61は、ワールド直交座標系の座標を特徴点対応テーブル121に上書き保存してもよいし、特徴点対応テーブル121と同じ構成の別のテーブルに記憶してもよい。なお、以降の説明では、特徴点対応テーブル121に、各特徴点のワールド直交座標系の座標が記憶されているものとする。
特徴点パッチ生成部62は、いずれかのパノラマ画像について、特徴点対応テーブル121に記憶された特徴点の座標値に基づいて、全ての特徴点を用いて各特徴点を頂点とする三角形の特徴点パッチを複数生成する。特徴点は、パノラマ画像の撮影位置を中心とした単位球面上に分布するため、全ての特徴点を用いて三角形の特徴点パッチを生成した場合、特徴点パッチ群は、単位球面を近似した閉曲面を構成するポリゴン群となる。例えば、特徴点パッチ生成部62は、ユーザ入力に基づいてそれぞれの特徴点パッチを生成してもよいし、ドロネー三角形分割、アルファシェイプ、ボールピボッティング等の方法を用いて自動的にそれぞれの特徴点パッチを生成してもよい。
特徴点パッチ生成部62は、生成した特徴点パッチの各頂点となる特徴点の情報をパッチテーブル122に記憶する。図32Bに示すように、パッチテーブル122には、生成された特徴点パッチ毎に、パッチIDと、特徴点パッチの各頂点となる特徴点の特徴点IDとが対応付けて記憶される。パッチIDは各特徴点パッチに固有に付与された識別情報であり、特徴点IDは特徴点対応テーブル121に記憶された各特徴点のIDである。なお、特徴点パッチ生成部62が生成する特徴点パッチは三角形に限定されない。生成された特徴点パッチ群が、パノラマ画像における単位球面を近似した閉曲面を構成すればよく、各特徴点パッチは、四角形、五角形等でもよい。
図34は、撮影位置及び仮想視点の位置関係を示す模式図である。本実施形態では、4箇所の撮影位置P1 ~P4 は1つの平面上に存在しない位置であり、仮想視点Vは撮影対象の空間内の任意の位置とすることができる。図34に示す例では、仮想視点Vは、4箇所の撮影位置P1 ~P4 を頂点とする四面体の内部に存在する位置である。撮影位置P1 ~P4 で撮影したパノラマ画像をそれぞれパノラマ画像P1~P4とする。
仮想カメラ位置算出部63は、第2情報処理装置20から取得したユーザの頭部の位置に基づいて、仮想視点の位置を算出する。ユーザの頭部の位置は、第2情報処理装置20にて所定のタイミングで検出されて逐次第1情報処理装置10へ送信される。仮想視点の位置は、ユーザの頭部の中心であり、例えば第1情報処理装置10の動作開始時は撮影対象の部屋(空間)における所定位置とし、第2情報処理装置20から送信されてくるユーザの頭部の位置に基づいて逐次変更される。よって、仮想カメラ位置算出部63は、動作開始時は撮影対象の部屋における所定位置を仮想視点Vに設定し、以降はユーザの移動に伴って移動(変更)する仮想視点Vの位置を算出する。
仮想カメラ位置算出部63は、パノラマ画像DB12aに記憶してある4箇所の撮影位置の位置情報と、逐次更新される仮想視点Vの位置とに基づいて、仮想カメラの位置を算出する。仮想カメラの位置は、4つの撮影位置のいずれかと仮想視点とを通る直線が、他の3つの撮影位置を含む平面と交差する点である第1の仮想カメラ位置と、他の3つの撮影位置を含む平面において、3つの撮影位置のいずれかと第1の仮想カメラ位置とを通る直線が、他の2つの撮影位置を通る直線と交差する点である第2の仮想カメラ位置とを含む。図34に示す例では、撮影位置P4 及び仮想視点Vを通る直線が撮影位置P1 ~P3 を含む平面と交差する点Q4 を第1仮想カメラ位置Q4 とし、撮影位置P3 及び第1仮想カメラ位置Q4 を通る直線が、撮影位置P1 ~P2 を通る直線と交差する点Q3 を第2仮想カメラ位置Q3 とする。
仮想カメラ位置算出部63は、まず、パノラマ画像DB12aから読み出した4箇所の撮影位置P1 ~P4 の位置情報及び仮想視点Vの位置情報として、それぞれのワールド直交座標系の座標値を取得する。そして、図34に示す例において、仮想カメラ位置算出部63は、撮影位置P4 及び仮想視点Vを通る直線を表す関数を算出し、撮影位置P1 ~P3 を含む平面を表す関数を算出し、算出した関数に基づいて、この直線及び平面の交点(第1仮想カメラ位置)Q4 のワールド直交座標系の座標値を算出する。また、仮想カメラ位置算出部63は、撮影位置P3 及び第1仮想カメラ位置Q4 を通る直線を表す関数を算出し、撮影位置P1 ,P2 を通る直線を表す関数を算出し、算出した関数に基づいて、2つの直線の交点(第2仮想カメラ位置)Q3 のワールド直交座標系の座標値を算出する。
特徴点算出部64は、特徴点対応テーブル121の記憶内容と、仮想カメラ位置算出部63が算出した仮想カメラ位置Q3 ,Q4 及び仮想視点Vの位置とに基づいて、仮想カメラ位置Q3 ,Q4 及び仮想視点Vのそれぞれにおける各特徴点の位置(座標値)を算出する。特徴点算出部64は、まず、撮影位置P1 ,P2 及び第2仮想カメラ位置Q3 と、特徴点対応テーブル121に記憶してあるパノラマ画像P1,P2における特徴点の座標値とに基づいて、第2仮想カメラ位置Q3 における特徴点の座標値を算出する。次に、特徴点算出部64は、撮影位置P3 及び仮想カメラ位置Q3 ,Q4 と、特徴点対応テーブル121に記憶してあるパノラマ画像P3における特徴点の座標値と、算出した第2仮想カメラ位置Q3 における特徴点の座標値とに基づいて、第1仮想カメラ位置Q4 における特徴点の座標値を算出する。そして、特徴点算出部64は、撮影位置P4 、第1仮想カメラ位置Q4 及び仮想視点Vの位置と、特徴点対応テーブル121に記憶してあるパノラマ画像P4における特徴点の座標値と、算出した第1仮想カメラ位置Q4 における特徴点の座標値とに基づいて、仮想視点Vにおける特徴点の座標値を算出する。
特徴点算出部64が、撮影位置P1 ,P2 及び第2仮想カメラ位置Q3 と、パノラマ画像P1,P2における特徴点の座標値とに基づいて、第2仮想カメラ位置Q3 における特徴点の座標値を算出する処理について説明する。撮影位置P1 、第2仮想カメラ位置Q3 及び撮影位置P2は同一直線上に存在し、第2仮想カメラ位置Q3 が撮影位置P1 から撮影位置P2 までの線分P1 P2 を内分する内分比をt0とすると、
線分P1 Q3 :線分Q3 P2 =t0:1-t0
となる。ここで、撮影位置P1 を後側撮影位置とし、撮影位置P2 を前側撮影位置とし、撮影位置P1 から撮影位置P2 に向かう方向を、実施形態3で説明した共通軸の正方向とする。線分P1 P2 を単位ベクトル化することにより、後側画像(パノラマ画像P1)及び前側画像(パノラマ画像P2)のそれぞれが共通軸と交差する点のうちで共通軸の正方向側の交点(図26中の点D1,D3)の方角が得られ、この方角をベクトルD(xD ,yD ,zD )で表す。パノラマ画像P1,P2におけるある特徴点Fk の位置は、撮影位置P1 から撮影位置P2 に向かう方向を共通軸の正方向とした共通軸極座標系において、同一の方位角φC 上に存在する。即ち、パノラマ画像P1,P2における特徴点Fk の位置は、実施形態3で説明したように同じエピポーラ線上に存在する。なお、パノラマ画像P1における特徴点Fk を特徴点Fk1とし、パノラマ画像P2における特徴点Fk を特徴点Fk2とする。
それぞれの撮影位置P1 ,P2 から特徴点Fk1,Fk2の方角は、特徴点対応テーブル121にワールド直交座標系における単位ベクトルによって、それぞれ(xk1,yk1,zk1),(xk2,yk2,zk2)と記憶されている。前側画像であるパノラマ画像P2における交点D1と特徴点Fk2とのなす角度は、ベクトルD(xD ,yD ,zD )とベクトル(xk2,yk2,zk2)との内積を用いて求めることができる。そして、この角度は共通軸極座標系における天頂角θC に相当する。2つのベクトルD(xD ,yD ,zD ),(xk2,yk2,zk2)はそれぞれ単位ベクトルであるので、以下の(21)式となり、特徴点Fk2の共通軸極座標系の天頂角θk2は、以下の(22)式を用いて求めることができる。よって、特徴点算出部64は、ベクトルD(xD ,yD ,zD )及びベクトル(xk2,yk2,zk2)と、(22)式とに基づいて、パノラマ画像P2における特徴点Fk2の共通軸極座標系の天頂角θk2を算出する。同様に、特徴点算出部64は、後側画像であるパノラマ画像P1において、交点D3と特徴点Fk1とのなす角度である共通軸極座標系の天頂角θk1を以下の(23)式を用いて算出する。なお、共通軸極座標系における特徴点Fk1,Fk2の方位角φC は不明であるが、両者は同一である。
特徴点算出部64は、算出した特徴点Fk1,Fk2の共通軸極座標系の天頂角θk1,θk2をそれぞれ以下の(24),(25)式を用いて、実施形態1で図6に示したST座標系における天頂角βR ,βF に変換する。
ST座標系の空間において、第2仮想カメラ位置Q3 における特徴点Fk の天頂角βV と、パノラマ画像P1,P2における特徴点Fk1,Fk2の天頂角βR ,βF とは、実施形態1で図12に示した関係を有する。よって、特徴点算出部64は、得られた天頂角βR ,βF と以下の(26)式とを用いて、第2仮想カメラ位置Q3 における特徴点Fk のST座標系における天頂角βV を算出する。
tanβV =t0tanβF +(1-t0)tanβR …(26)
そして、特徴点算出部64は、算出した第2仮想カメラ位置Q3 における特徴点Fk のST座標系における天頂角βV から、以下の(27)式を用いて、第2仮想カメラ位置Q3 における特徴点Fk の共通軸極座標系の天頂角θQ3k を算出する。
θQ3k =βV +π/2 …(27)
次に、特徴点算出部64は、算出した第2仮想カメラ位置Q3 における特徴点Fk の共通軸極座標系の天頂角θQ3k から、第2仮想カメラ位置Q3 における特徴点Fk のワールド直交座標系における方角を算出する。ここで、共通軸の方向(ベクトルD)、撮影位置P1 ,P2 における特徴点Fk (Fk1,Fk2)の方角、第2仮想カメラ位置Q3 における特徴点Fk の方角のそれぞれの単位ベクトルD,FP1,FQ3,FP2は全て、パノラマ画像における単位球面上の同一のエピポーラ線上に存在する。即ち、これらのベクトルで表される4点は同一のエピポーラ面上にある。
図35はエピポーラ面の例を示す模式図である。図35において、実線で示す円は1つのエピポーラ線を示しており、このエピポーラ線を含むエピポーラ面を、エピポーラ面に直交する方向から見た状態を示す。図35に示すように、共通軸の方向(ベクトルD)、撮影位置P1 における特徴点Fk の方角を示すベクトルFP1、第2仮想カメラ位置Q3 における特徴点Fk の方角を示すベクトルFQ3、撮影位置P2 における特徴点Fk の方角を示すベクトルFP2は、この順序でエピポーラ面の単位円周(エピポーラ線)上に位置し、単位円の中心CからベクトルDの方向を基準として、中心Cを中心とした時計回りにそれぞれ回転角度θP1,θQ3,θP2を有する。ここで、特徴点算出部64は、中心Cを中心とした回転における回転軸を算出する。回転軸は、ベクトルD、撮影位置P1 における特徴点Fk の方角(ベクトルFP1)、及び撮影位置P2 における特徴点Fk の方角(ベクトルFP2)のうちのいずれか2つの外積によって求められる。回転軸の方向をベクトルn=(nx ,ny ,nz )とし、例えばベクトルD及び撮影位置P2 における特徴点Fk の方角(ベクトルFP2)を用いるとすると、回転軸の方向ベクトルは以下の(28)式で算出される。
また、算出すべきベクトルFQ3=(xFQ3 ,yFQ3 ,zFQ3 )は、回転軸(ベクトルn)に対してベクトルDを回転角度θQ3だけ回転させたものである。任意の回転軸であるベクトルn=(nx ,ny ,nz )に対する回転は、以下の(29)式に示すロドリゲスの回転公式と呼ばれる行列Rn(θ)で実現できる。
従って、特徴点算出部64は、ベクトルFQ3=(xFQ3 ,yFQ3 ,zFQ3 )を以下の(30)式を用いて算出する。これにより、第2仮想カメラ位置Q3 における特徴点Fk の位置(ワールド直交座標系において第2仮想カメラ位置Q3 から特徴点Fk に向かう単位方向ベクトル)を算出できる。
特徴点算出部64は、上述した演算処理を、特徴点対応テーブル121に記憶してある全ての特徴点F1 ~Fn に対して行い、第2仮想カメラ位置Q3 における各特徴点F1 ~Fn の位置を、ワールド直交座標系における単位方向ベクトルとして得ることができる。図32Cは、第2仮想カメラ位置Q3 における各特徴点F1 ~Fn の位置を記憶した特徴点テーブル123の例を示す。特徴点算出部64は、それぞれ算出した各特徴点の位置を特徴点テーブル123に記憶し、第2仮想カメラ位置Q3 における特徴点テーブルを生成する。なお、特徴点算出部64は、例えば特徴点対応テーブル121においてパノラマ画像P1の特徴点の位置を記憶している欄に、第2仮想カメラ位置Q3 における各特徴点F1 ~Fn の位置を上書きしてもよい。
特徴点算出部64は、上述した処理と同様の処理によって、撮影位置P3 及び仮想カメラ位置Q3 ,Q4 と、特徴点対応テーブル121に記憶してあるパノラマ画像P3における特徴点の座標値と、算出した第2仮想カメラ位置Q3 における特徴点テーブル123とに基づいて、第1仮想カメラ位置Q4 における特徴点の座標値を算出する。よって、特徴点算出部64は、第1仮想カメラ位置Q4 における特徴点テーブルを生成する。そして、特徴点算出部64は、撮影位置P4 、第1仮想カメラ位置Q4 及び仮想視点Vの位置と、特徴点対応テーブル121に記憶してあるパノラマ画像P4における特徴点の座標値と、算出した第1仮想カメラ位置Q4 における特徴点テーブルとに基づいて、仮想視点Vにおける特徴点の座標値を算出する。これにより、特徴点算出部64は、最終的に仮想視点Vにおける特徴点テーブルを生成する。
仮想画像生成部65は、特徴点パッチ生成部62が生成したパッチテーブル122と、特徴点算出部64が算出した仮想視点Vにおける特徴点テーブルと、第2情報処理装置20から取得したユーザの頭部の向き(視線方向)とに基づいて、第2情報処理装置20を装着したユーザに提供する仮想画像を生成する。仮想画像生成部65は、まず、パッチテーブル122及び仮想視点Vにおける特徴点テーブルに基づいて、複数の特徴点パッチを生成し、パノラマ画像における単位球面を近似したポリゴン形状を生成する。
図36はポリゴン形状の例を示す模式図である。ポリゴン形状に含まれる各特徴点パッチは、3つの特徴点を頂点とする三角形状を有する。仮想画像生成部65は、生成したポリゴン形状において、単位球の中央の仮想視点Vからユーザの視線方向を見た状態の仮想画像を生成する。特徴点対応テーブル121において、各特徴点に、4つのパノラマ画像P1~P4における画像中の座標値が対応付けられている。よって、それぞれのパノラマ画像P1~P4において、特徴点パッチの各頂点は、各特徴点の画像中の座標値をテクスチャ座標値として有する。仮想画像生成部65は、それぞれの特徴点パッチの各頂点が有するテクスチャ座標値を用いて、テクスチャマッピングを行う。仮想画像生成部65は、例えばコンピュータグラフィックスによるレンダリング機能(OpenGL等のグラフィックライブラリ)を利用してテクスチャマッピングを行い、仮想画像中の各画素に、パノラマ画像P1~P4の画素値(輝度)を割り当てて仮想画像を生成する。
なお、仮想画像生成部65は、4つのパノラマ画像P1~P4のそれぞれに基づいて、特徴点パッチの各頂点が有するテクスチャ座標値を用いたテクスチャマッピングによって4つの中間ビューを生成し、生成した4つの中間ビューを、仮想視点Vとそれぞれの撮影位置との位置関係に応じた割合で、アルファブレンディング等で合成して仮想画像を生成してもよい。例えば、仮想画像生成部65は、仮想視点Vからそれぞれの撮影位置までの距離が短いほど高い割合で中間ビューを合成して仮想画像を生成してもよい。また、仮想画像生成部65は、仮想視点Vから最も近い撮影位置で撮影したパノラマ画像に基づいて、仮想画像を生成してもよいし、仮想視点Vから近い2箇所の撮影位置で撮影した2つのパノラマ画像に基づいて2つの中間ビューを生成し、生成した2つの中間ビューを、仮想視点Vと2つの撮影位置との位置関係に応じた割合で合成して仮想画像を生成してもよい。
第1情報処理装置10は、上述したように生成した仮想画像を第2情報処理装置20へ送信し、第2情報処理装置20が表示部24に表示させることにより、第2情報処理装置20を装着したユーザに、ユーザの頭部の位置及び向きに応じた仮想画像を提供できる。よって、第1情報処理装置10は、カメラ30で撮影した部屋を、部屋の中の任意の視点から任意の方向を見た状態の仮想画像をユーザに提供できる。
本実施形態では、カメラ30を用いて室内を撮影する際にカメラ30及び第1情報処理装置10は、図19に示す処理と同様の処理を行う。なお、本実施形態では、カメラ30は、撮影対象の室内の4箇所の撮影位置で撮影を行い、第1情報処理装置10は、カメラ30から送信された4つのパノラマ画像をパノラマ画像DB12aに記録する。
図37は、実施形態4の第1情報処理装置10による特徴点の対応付け処理の手順を示すフローチャートである。本実施形態の第1情報処理装置10は、4つのパノラマ画像の特徴点を対応付ける処理を行う。第1情報処理装置10の制御部11は、同一の部屋で撮影された4つのパノラマ画像をパノラマ画像DB12aから読み出す(S81)。制御部11は、4つのパノラマ画像において、同じ被写体が写っている位置の画素に対して対応付けるべき特徴点を取得する(S82)。制御部11は、4つのパノラマ画像に対してそれぞれ取得した特徴点を対応付けて特徴点対応テーブル121に記憶する(S83)。なお、制御部11は、特徴点を画像座標系の座標値で取得した場合、各特徴点の画像座標系の座標をワールド直交座標系の座標に変換して特徴点対応テーブル121に記憶する。なお、制御部11は、画像座標系の座標値を一旦ローカル極座標系の座標に変換した後にワールド直交座標系の座標に変換する。
制御部11は、特徴点対応テーブル121に記憶された、いずれかのパノラマ画像における特徴点の座標値に基づいて、全ての特徴点を用いて各特徴点を頂点とする三角形の特徴点パッチを生成する(S84)。これにより、パノラマ画像における単位球面を近似した閉曲面を構成するポリゴン群が生成される。制御部11は、生成した特徴点パッチの各頂点となる特徴点の情報をパッチテーブル122に記憶する(S85)。
次に、本実施形態において、パノラマ画像を再生(表示)する際に第1情報処理装置10及び第2情報処理装置20が行う処理について説明する。図38は、表示時に第1情報処理装置10及び第2情報処理装置20が行う処理の手順を示すフローチャートである。ここでは、それぞれのパノラマ画像中の各特徴点の座標値がワールド直交座標系の座標値で記憶してある特徴点対応テーブル121と、パッチテーブル122とは予め記憶部12に記憶されているものとする。
本実施形態の第2情報処理装置20の制御部21は、センサ部25によってユーザの頭部の位置及び向きを検出し、位置及び向きを示す情報を取得する(S91)。制御部21は、取得した位置及び向きを示す情報を第1情報処理装置10へ送信する(S92)。第1情報処理装置10の制御部11は、再生すべきパノラマ画像をパノラマ画像DB12aから読み出す(S101)。制御部11は、例えば撮影対象の部屋で撮影された4つのパノラマ画像を読み出す。
制御部11は、第2情報処理装置20が送信した位置及び向きを示す情報を受信し(S102)、前回受信した情報と比較して、位置又は向きが変化したか否かを判断する(S103)。位置及び向きのいずれも変化していないと判断した場合(S103:NO)、制御部11は、ステップS102の処理に戻り、第2情報処理装置20から位置及び向きを示す情報を受信する都度、位置又は向きが変化したか否かを判断する。
位置又は向きが変化したと判断した場合(S103:YES)、制御部11は、受信した位置に基づいて仮想視点の位置を算出し、算出した仮想視点の位置と、4つのパノラマ画像のそれぞれの撮影位置とに基づいて、仮想カメラの位置を算出する(S104)。仮想カメラの位置は、4つの撮影位置のいずれかと仮想視点とを通る直線が、他の3つの撮影位置を含む平面と交差する点である第1の仮想カメラ位置と、他の3つの撮影位置のいずれかと第1の仮想カメラ位置とを通る直線が、他の2つの撮影位置を通る直線と交差する点である第2の仮想カメラ位置とを含む。
制御部11は、特徴点対応テーブル121の記憶内容と、算出した仮想カメラ位置及び仮想視点の位置とに基づいて、仮想カメラ位置及び仮想視点のそれぞれにおける各特徴点の位置(座標値)を算出し、特徴点テーブルを生成する(S105)。制御部11は、まず、特徴点対応テーブル121の記憶内容と仮想カメラ位置とに基づいて、仮想カメラ位置における各特徴点の位置を算出して特徴点テーブルを生成する。そして、制御部11は、特徴点対応テーブル121の記憶内容と、仮想カメラ位置及び仮想視点の位置と、仮想カメラ位置における特徴点テーブルとに基づいて、仮想視点における各特徴点の位置を算出して特徴点テーブルを生成する。
制御部11は、パッチテーブル122と、算出した仮想視点における特徴点テーブルと、ステップS102で受信したユーザの頭部の向き(視線方向)とに基づいて、仮想画像を生成する(S106)。制御部11は、まず、パッチテーブル122及び仮想視点における特徴点テーブルに基づいて、複数の特徴点パッチを生成し、パノラマ画像における単位球面を近似したポリゴン形状を生成する。そして、制御部11は、生成したポリゴン形状において、単位球の中央の仮想視点からユーザの視線方向を見た状態の仮想画像を、4つのパノラマ画像の少なくとも1つに基づいて生成する。
制御部11は、生成した仮想画像を第2情報処理装置20へ送信する(S107)。第2情報処理装置20の制御部21は、第1情報処理装置10が送信した仮想画像を受信し(S93)、受信した仮想画像を表示部24に表示させる(S94)。第2情報処理装置20の制御部21は、ユーザの頭部の位置及び向きの検出及び送信を、所定時間間隔又はユーザからの指示に従って行い、第1情報処理装置10の制御部11は、第2情報処理装置20から位置及び向きの情報を受信する都度、ステップS103~S107の処理を行う。これにより、実写データに基づいて、任意の視点から見た画像を生成する情報処理システム40を提供することができる。
上述した処理により、本実施形態では、仮想視点の位置を撮影空間内の任意の位置とすることができる。また、本実施形態では、4つのパノラマ画像における特徴点を、画像中の任意の位置(画素)に設定できる。例えば、テレビ、カーテン、窓等の対象物の角を特徴点に利用できる。よって、特徴点で囲まれた特徴点パッチに基づいて仮想画像中の各画素に、パノラマ画像の各画素値(輝度)を割り当てて仮想画素を生成することにより、中間ビューを合成した仮想画像において、対象物のエッジ部分のブレを抑制できる。また、本実施形態によると、空間内の任意の仮想視点における仮想画像を生成することができるので、仮想視点の位置における自由度が増す。
本実施形態において、撮影対象の部屋における3箇所の撮影位置で撮影した3つのパノラマ画像を用いて、任意の仮想位置における仮想画像を生成して提供する構成としてもよい。この場合、仮想位置は、3箇所の撮影位置を含む平面上の位置とする。例えば、図34に示す例において、撮影位置P1 ~P3 で撮影した3つのパノラマ画像を用いて、点Q4 を仮想視点とした場合、第1情報処理装置10の特徴点算出部64は、撮影位置P1 ,P2 及び仮想カメラ位置Q3 と、特徴点対応テーブル121に記憶してあるパノラマ画像P1,P2における特徴点の座標値とに基づいて、仮想カメラ位置Q3 における特徴点の座標値を算出する。その後、特徴点算出部64は、撮影位置P3 、仮想カメラ位置Q3 及び仮想視点Q4 と、特徴点対応テーブル121に記憶してあるパノラマ画像P3における特徴点の座標値と、仮想カメラ位置Q3 における特徴点テーブルとに基づいて、仮想視点Q4 における特徴点の座標値を算出する。これにより、特徴点算出部64は、仮想視点Q4 における特徴点テーブルを生成する。そして、仮想画像生成部65は、パッチテーブル122と、仮想視点Q4 における特徴点テーブルと、ユーザの視線方向とに基づいて仮想画像を生成する。この場合、3つのパノラマ画像に基づいて、3箇所の撮影位置を含む平面上の任意の視点から任意の方向を見た状態の仮想画像をユーザに提供できる。
(実施形態5)
本実施形態は、パノラマ画像を管状(チューブ状)に展開した管状マップ(チューブマップ)に基づいて仮想画像を生成する情報処理システム40に関する。実施形態1と共通する部分については説明を省略する。図39は、実施形態5の情報処理システム40の表示時の構成を示すブロック図である。本実施形態の第1情報処理装置10では表示時に制御部11が仮想画像生成プログラムPGを実行することにより、記憶部12に、管状マップDB125、特徴点対応テーブル126、ポリゴンテーブル127、仮想視点の特徴点テーブル128が記憶される。第2情報処理装置20は実施形態1と同様であるので説明を省略する。図40は、第1情報処理装置10に記憶されるテーブル126,127,128の構成例を示す模式図である。図40Aは特徴点対応テーブル126を示し、図40Bはポリゴンテーブル127を示し、図40Cは仮想視点の特徴点テーブル128を示す。
以下に、本実施形態の第1情報処理装置10が、撮影対象の空間内の2箇所(前側撮影位置及び後側撮影位置)で撮影した2つのパノラマ画像に対して、特徴点の対応付けを行う処理について説明する。図41は、実施形態5の特徴点の対応付け処理手順の一例を示すフローチャート、図42は管状マップ生成処理の一例を示すフローチャート、図43は特徴点対応付け処理の一例を示すフローチャートである。なお、図42に示す管状マップ生成処理及び図43に示す特徴点対応付け処理は図41に示す特徴点の対応付け処理に含まれる処理である。本実施形態の第1情報処理装置10は、図5Bに示すような正距円筒図法により平面に展開したパノラマ画像を、管状に展開して管状マップを生成し、2つの管状マップにおいて特徴点の対応付けを行う。なお、本実施形態では、カメラ30を用いて撮影する際に、撮影位置(カメラ30)の床面からの高さはそれぞれの撮影位置で一致させて撮影が行われる。
特徴点の対応付け処理において、第1情報処理装置10の制御部11は、撮影対象の空間内(同一の部屋内)で撮影された2つのパノラマ画像をパノラマ画像DB12aから読み出す(S111)。制御部11は、読み出した2つのパノラマ画像に補正処理を行い、それぞれの撮影位置における床面からの高さ(撮影高さ)が同じであり、それぞれの画像の上下方向が撮影空間上の鉛直方向に一致し、それぞれの画像中央に写る被写体の撮影位置からの方角が一致するパノラマ画像に補正する(S112)。具体的には、制御部11はまず、読み出した2つのパノラマ画像のそれぞれに対して天頂角方向の傾きを補正(天頂補正)する。例えば、パノラマ画像DB12aにパノラマ画像と共に、撮影時に検出した重力方向(即ち、鉛直方向の下向き)に対するカメラ30の傾きが記憶されている場合、制御部11は、この情報を用いてパノラマ画像における鉛直方向の傾きを補正する。これにより、画像の上下方向が撮影空間上の鉛直方向に一致するパノラマ画像に補正できる。
また制御部11は、天頂補正後のパノラマ画像のそれぞれに対して方位角方向の傾きを補正(方位角補正)する。例えば、パノラマ画像DB12aにパノラマ画像と共に、撮影時に検出した方位角方向に対するカメラ30の傾きが記憶されている場合、制御部11は、この情報を用いてパノラマ画像における方位角方向の傾きを補正する。図44は方位角補正を説明するための模式図であり、図44は、図6に示す撮影対象の部屋における撮影位置を天井側から見た状態を示し、図44中の黒丸で示す2箇所をそれぞれ前側撮影位置及び後側撮影位置とする。例えば図44中の矢符Aで示す方向が前側撮影位置での撮影方向であった場合、制御部11は、図44中の矢符tで示す方向(後側撮影位置から前側撮影位置への方向)を撮影方向としたパノラマ画像に方位角補正を行う。即ち、制御部11は、矢符tで示す方向に位置する被写体が画像の中央に写っている状態のパノラマ画像に補正する。例えば撮影時の撮影方向(方角)が南西方向であり(カメラ30の第1光軸が南西方向に一致した状態で撮影された場合)、矢符tで示す方向が北方向であったとする。この場合、制御部11は、パノラマ画像全体を画像の左右幅の3/8(全周2πに対するズレ量3π/4の比率)だけ左方向に平行移動させることにより、北向方向が画像の中央に一致するパノラマ画像に補正できる。なお、このとき、パノラマ画像の右端の3/8の領域には、平行移動によってパノラマ画像の左端から削除した3/8の領域をそのままコピーすればよい。これにより、天頂補正後のパノラマ画像のそれぞれを、矢符tで示す方向を撮影方向としたパノラマ画像に補正(方位角補正)できる。なお、制御部11は、それぞれのパノラマ画像を一旦、北向きが画像の中央に一致する画像(北向きを撮影方向とする画像)に補正した後、更に矢符tで示す方向が画像の中央に一致する画像(矢符tで示す方向を撮影方向とする画像)に方位角補正を行ってもよい。
上述した補正処理により、パノラマ画像DB12aから読み出した2つのパノラマ画像を、撮影高さが同じであり、画像の上下方向が撮影空間上の鉛直方向に一致し、画像中央に写る被写体が、後側撮影位置から前側撮影位置への方向に位置する被写体であるパノラマ画像に変換できる。なお、このような状態の2つのパノラマ画像は、撮影時に撮影状態を一致させて撮影されたものであってもよく、この場合、パノラマ画像DB12aから読み出した2つのパノラマ画像に対して補正処理を行う必要がないので、制御部11はステップS112の処理をスキップする。
次に制御部11(展開部)は、補正処理後のパノラマ画像から管状マップを生成する処理を行う(S113)。具体的には、制御部11は、図5Bに示すような正距円筒図法により平面に展開したパノラマ画像を、管状に展開した管状マップに変換する。図45は管状マップを説明するための模式図である。図45Aでは、撮影空間を3次元の右手系の直交座標系(ワールド直交座標系)で示し、撮影位置Cで撮影した全天球画像を破線の円で模式的に示している。管状マップは、図45A中に実線で示すように、ワールド直交座標系のZW 軸方向を長手方向として正方形の開口断面を有する四角筒(四角管)の側面に、パノラマ画像上の各画素を投影した画像である。図45Aに示す四角筒は、4つの側面がそれぞれXW =±1,YW =±1に位置する面であり、ZW 軸方向の長さが任意の長さである形状を有する。以下では、管状マップの四角筒のZW 軸方向の範囲を-ZR ≦ZW ≦ZR とする。管状マップ上の任意の位置の画素PT の画素値は、撮影位置Cから画素PT への方向に対応する全天球画像上の画素PE の画素値とすることができる。よって、管状マップ上の各画素の画素値をパノラマ画像から取得することによって、管状マップが生成される。なお、管状マップは、例えば図45Bに示すように、撮影空間のZW 軸の負方向を左右方向(横方向)のX軸とし、上下方向(縦方向)をY軸とし、Y軸方向に上から左側側面、上側側面、右側側面、下側側面の順に4つの側面を展開した矩形の管状マップで処理を行う。
矩形の管状マップを構成する各画素には、パノラマ画像における各画素の画素値が割り当てられる。図45Bに示す矩形(平面)の管状マップは、左上を原点OT (0,0)とし、原点OT の画素は、ワールド直交座標系の座標(-1,-1,ZR )の位置の画素に対応する。また管状マップは、原点OTから右方向に、ワールド直交座標系のZW 座標値が順次小さくなり、右上の画素はワールド直交座標系の座標(-1,-1,-ZR )の位置の画素に対応する。よって、管状マップにおいて、左右方向の中央の画素は、ワールド直交座標系のZW 座標値が0の位置の画素に対応し、左右方向の左右端の画素はそれぞれ、ワールド直交座標系のZW座標値がZR ,-ZR の位置の画素に対応する。また、管状マップは、原点OT 及び左下の画素がワールド直交座標系の座標(-1,-1,ZR )の位置の画素に対応し、原点OTから下方向に、ワールド直交座標系のYW 座標値が順次大きくなり、ワールド直交座標系の座標(-1,1,ZR )の位置の画素に到達した後、ワールド直交座標系のXW 座標値が順次大きくなり、ワールド直交座標系の座標(1,1,ZR )の位置の画素に到達し、更にワールド直交座標系のYW 座標値が順次小さくなり、ワールド直交座標系の座標(1,-1,ZR )の位置の画素に到達した後、ワールド直交座標系のXW 座標値が順次小さくなり、ワールド直交座標系の座標(-1,-1,ZR )の位置の画素に到達する。よって、管状マップ上の各画素は、上下方向の位置に応じて、撮影空間上のXW 座標値(-1≦XW ≦+1)及びYW 座標値(-1≦YW ≦+1)が定まる。なお、管状マップの形状は、四角筒状に限定されず、正多角形の開口断面を有する多角筒状であってもよく、多角筒状の場合であっても、図45Bに示すような矩形に展開した管状マップで処理を行う。
図45Bに示す矩形の管状マップは、例えば左右方向の幅をWT 画素とし、上下方向の高さをHT 画素とし、各画素の座標値を(XT ,YT )で示す。図42に示す管状マップ生成処理において、制御部11は、管状マップ上の各画素に対して、各画素に対応するパノラマ画像上の画素の画素値を順次割り当てることにより、管状マップを生成する。具体的には、制御部11は、管状マップ上の画素のうちで処理中の画素を示す画素位置(XT ,YT )を(0,0)に設定する(S121)。制御部11は、設定した画素位置(XT ,YT )を、撮影空間上の座標値、即ち、ワールド直交座標系の座標値(XW ,YW ,ZW)に変換する(S122)。制御部11は、例えば以下の(31)式に従ってワールド直交座標系の座標値(XW ,YW ,ZW)に変換する。
次に制御部11は、ワールド直交座標系の座標値(XW ,YW ,ZW )を、上記の(14)式を用いてローカル極座標系の座標値(θL ,φL ,rL )に変換する(S123)。そして制御部11は、ローカル極座標系の座標値(θL ,φL ,rL )に対応する正距円筒図法によるパノラマ画像中の画素位置(XE ,YE )を、以下の(32)式に従って算出する(S124)。なお、(32)式中のWE はパノラマ画像の左右方向の幅を示しで、HE はパノラマ画像の上下方向の高さを示す。制御部11は、算出した画素位置(XE ,YE )の画素値を、ステップS111で読み出したパノラマ画像から特定し(S125)、管状マップ上の画素位置(XT ,YT )の画素値として管状マップDB125に記憶する(S126)。なお、算出した画素位置(XE ,YE )の画素がパノラマ画像にない場合、制御部11は、算出した画素位置(XE ,YE )の近傍の画素の画素値を特定してもよく、また、近傍の複数画素の画素値から算出した画素値を特定してもよい。
次に制御部11は、処理中の画素を示す画素位置(XT ,YT )のX座標値XT に1を加算する(S127)。そして制御部11は、加算後のX座標値XT が管状マップの幅を示すWT に一致するか否かを判断し(S128)、一致しないと判断した場合(S128:NO)、ステップS122の処理に戻り、次の画素位置(XT ,YT )について、ステップS122~S126の処理を行う。加算後のX座標値XT が管状マップの幅を示すWT に一致すると判断した場合(S128:YES)、即ち、Y座標値がYT の画素について右端の画素まで上述した処理を終了した場合、制御部11は、処理中の画素を示す画素位置(XT ,YT )のY座標値YT に1を加算し、X座標値XT を0に設定する(S129)。そして制御部11は、加算後のY座標値YT が管状マップの高さを示すHT に一致するか否かを判断し(S130)、一致しないと判断した場合(S130:NO)、ステップS122の処理に戻り、加算後のY座標値YT についてステップS122~S128の処理を行う。加算後のY座標値YT が管状マップの高さを示すHT に一致すると判断した場合(S130:YES)、即ち、右下の画素まで上述した処理を終了した場合、制御部11は図41に示す処理に戻る。図46は管状マップの例を示す模式図であり、図46Aに示すようなパノラマ画像が、図46Bに示すような管状マップに変換される。
制御部11は、補正処理後の2つのパノラマ画像からそれぞれ管状マップを生成し、2つの管状マップを生成した後、2つの管状マップにおいて、同じ被写体が写っている位置の画素(特徴点)を対応付ける特徴点対応付け処理を行う(S114)。本実施形態では、制御部11は、2つの管状マップにおいて、複数のエピポーラ線上で、同じ被写体が撮影された画素の位置を対応付ける。エピポーラ線は、図26に示したエピポーラ線と同じであり、管状マップは共通軸方向(ZW軸方向)に伸びる筒状であるので、図45B及び図46Bに示す管状マップ上ではエピポーラ線は左右方向の直線で設定される。図47は管状マップの一部の拡大図であり、図47の左側には前側画像から生成した管状マップ(以下では前側管状マップという)の一部を示し、右側には後側画像から生成した管状マップ(以下では後側管状マップという)の一部を示す。図47に示す管状マップ上の左右方向の直線はエピポーラ線を示しており、図47に示すように、管状マップ上でのエピポーラ線は直線で表される。また、補正処理が行われたパノラマ画像から生成された管状マップ間において、同じ被写体は同じエピポーラ線上の異なる位置に写る。
図43に示す特徴点対応付け処理において、制御部11は、2つの管状マップ(前側管状マップ及び後側管状マップ)のそれぞれに対してエピポーラ線を設定する(S141)。制御部11はまず、共通軸極座標系における方位角方向に所定角度間隔で設けられた複数のエピポーラ線を設定する。よって、エピポーラ線は、共通軸極座標系において特定の方位角に対応する線である。なお、制御部11は、例えば共通軸極座標系における方位角方向に5°間隔で設けられた72本のエピポーラ線を設定するが、エピポーラ線の数及び方位角方向の間隔はこれに限らず、任意の数又は任意の間隔とすることができる。制御部11は、エピポーラ線上の各点について、共通軸極座標系の座標値(θC ,φC ,rC )を上記の(17)式を用いてワールド直交座標系の座標値(XW ,YW ,ZW )に変換し、更に、上記の(31)式の逆変換を行うことにより、管状マップ上の画素位置(XT ,YT )に変換する。これにより、図26に共通軸極座標系で表したエピポーラ線が、図47に示すように管状マップ上に直線として展開される。図47において、それぞれの管状マップ上の左右方向の直線はそれぞれエピポーラ線を示す。なお、管状マップ上のエピポーラ線は直線であるので、それぞれのエピポーラ線についてエピポーラ線上の1画素について上述した変換処理を行って管状マップ上の画素位置(XT ,YT )を算出することにより、管状マップ上にエピポーラ線を展開できる。
次に制御部11は、2つの管状マップ上の特徴線対を多数取得する(S142)。図48は特徴点の対応付け処理を説明するための模式図である。図48Aは、図47に示す管状マップに特徴線対を追加した図であり、図48Bは、図47に示す管状マップに特徴点対を追加した図である。特徴線は、2つの管状マップにおいて同じ被写体の境界等を示す線分であり、管状マップ上でエピポーラ線に交差する線分であればどのような線分でもよい。図48Aに示す例では、ポスターの左端を示す線分が特徴線対として抽出されている。制御部11は、多数の特徴線対を取得することが望ましいが、特徴線対の数は任意の数でよい。制御部11は、それぞれの管状マップにおいて、特徴線の両端画素の画素位置(座標値)によって特徴線対を取得し、それぞれの管状マップ上の特徴線における両端画素の画素位置を対応付けて記憶部12に記憶する。
制御部11は、2つの管状マップ上の特徴線対を、例えば入力部14を介したユーザ入力によって取得してもよい。この場合、例えば制御部11は、第1情報処理装置10の表示部15に2つの管状マップを表示する。ユーザは、表示された2つの管状マップにおいて、同じ被写体の境界等を示す線分を特徴線として入力部14を介して指定する。これにより、制御部11は、入力部14を介して2つの管状マップ中の特徴線を受け付け、それぞれの特徴線について、特徴線の両端画素の管状マップにおける画素位置を取得する。また、制御部11は、2つの管状マップ上の特徴線対を自動的に抽出してもよい。例えば制御部11は、それぞれの管状マップにおいてエッジ検出処理を行い、それぞれの管状マップから検出したエッジから対応するエッジを特定し、対応するエッジを特徴線対として受け付けてもよい。この場合にも、ユーザ入力される場合と同様に、制御部11は、受け付けた特徴線対について、それぞれの特徴線の両端画素の管状マップにおける画素位置を取得する。
次に制御部11は、ステップS142で取得した各特徴線対について、それぞれの特徴線がエピポーラ線と交差する交点の画素を特徴点とし、特徴点(画素)の対応付けを行う。図48Bに示す例では、2つの管状マップにおける特徴線が9本のエピポーラ線とそれぞれ交差しており、9つの交点を9対の特徴点対に設定できる。まず制御部11は、ステップS141で設定したエピポーラ線のうちの1つを抽出する(S143)。制御部11は、前側管状マップ及び後側管状マップのそれぞれにおいて、抽出したエピポーラ線と、ステップS142で取得した特徴線対の各特徴線との交点(特徴点)の情報を算出する(S144)。ここでは、制御部11は、各特徴点について、レンダリング処理(テクスチャマッピング)に必要な情報を算出する。具体的には、制御部11は、各特徴点について、特徴点の撮影位置からの方角を共通軸極座標系で表した位置情報と、テクスチャ画像上での位置を示すテクスチャ座標情報(テクスチャ座標値)とを算出する。
制御部11はまず、各特徴点について、前側管状マップ上の位置を示す位置情報(XF ,YF )と、後側管状マップ上の位置を示す位置情報(XR ,YR )とを算出する。エピポーラ線及び特徴線は、管状マップ上の2次元座標系で設定されているので、その交点である特徴点の位置(画素位置)は、単純に2直線の交点を算出することで得られる。特徴点の数は多数であることが望ましく、以下ではNP 個とする。制御部11は、算出した管状マップ上の特徴点の座標情報(XF ,YF )及び(XR ,YR )をそれぞれ、上記の(31)式を用いてワールド直交座標系の座標情報(XWF,YWF,ZWF)及び(XWR,YWR,ZWR)に変換し、更に、上記の(18)式を用いて共通軸極座標系の座標情報(θCF,φCF)及び(θCR,φCR)に変換することによって、特徴点の撮影位置からの方角を共通軸極座標系で表した位置情報を取得する。なお、2つの管状マップ上の特徴点は、同じエピポーラ線上の画素であるので、共通軸極座標系の方位角φCF及びφCRは同じであるので、この方位角は方位角φC とする。また、管状マップはテクスチャ画像であるので、制御部11は、算出した管状マップ上の特徴点の座標情報(XF ,YF )及び(XR ,YR )をそれぞれテクスチャ画像上での位置を示すテクスチャ座標情報(UF ,VF )及び(UR ,VR )として取得する。
制御部11は、各特徴点対について算出した特徴点の情報を対応付けて記憶部12に記憶する(S145)。制御部11は、例えば記憶部12に図40Aに示すような特徴点対応テーブル126を生成し、各特徴点について算出した共通軸極座標系での位置情報と、テクスチャ画像上での位置情報(テクスチャ座標情報)とを記憶する。具体的には、制御部11は、各特徴点を識別するための特徴点IDを発行し、特徴点IDに対応付けて、共通軸極座標系の方位角φC と、前側画像(前側管状マップ)における共通軸極座標系の天頂角θCFと、後側画像(後側管状マップ)における共通軸極座標系の天頂角θCRと、前側画像におけるテクスチャ座標(UF ,VF )と、後側画像におけるテクスチャ座標(UR ,VR )とを記憶する。制御部11は、ステップS143で抽出したエピポーラ線が、ステップS142で取得した特徴線のそれぞれと交差する交点(特徴点)について特徴点の情報を算出して特徴点対応テーブル126に記憶する。
制御部11は、ステップS143で抽出したエピポーラ線について各特徴線との交点(特徴点)の情報を算出した後、全てのエピポーラ線に対して処理を終了したか否かを判断する(S146)。全てのエピポーラ線に対して処理を終了していないと判断した場合(S146:NO)、制御部11は、ステップS143の処理に戻り、未処理のエピポーラ線を1つ抽出し(S143)、抽出したエピポーラ線についてステップS144~S145の処理を行う。これにより、NP 個の特徴点について、各特徴点の情報が特徴点対応テーブル126に記憶される。
全てのエピポーラ線に対して処理を終了したと判断した場合(S146:YES)、制御部11は、NP 個の特徴点から、それぞれ3つの特徴点を頂点とする三角形状のポリゴンを生成する。ここでは例として、隣り合う2つのエピポーラ線上の特徴点から、それぞれ三角形状のポリゴンを生成する。図49はポリゴンの生成処理を説明するための模式図である。図49に示すように、制御部11は、隣り合う2つのエピポーラ線上の特徴点において、一方のエピポーラ線上の1つの特徴点と、他方のエピポーラ線上の2つの特徴点とで形成される三角形状のポリゴンを生成する。
特徴点を頂点とするポリゴンを生成する場合、制御部11は、特徴点対応テーブル126から、前側管状マップ又は後側管状マップのいずれかにおいて、隣り合う2つのエピポーラ線上の特徴点の共通軸極座標系の天頂角θCFを読み出す(S147)。前側管状マップ上の特徴点を読み出す場合、制御部11は、2つのエピポーラ線のそれぞれにおいて、エピポーラ線の共通軸極座標系の方位角φC に対応付けて記憶してある、前側管状マップにおける共通軸極座標系の天頂角θCFを読み出す。なお、制御部11は、隣り合うエピポーラ線上の特徴点について後側管状マップにおける共通軸極座標系の天頂角θCRを読み出してもよい。また制御部11は、前側管状マップにおける共通軸極座標系の天頂角θCFと、後側管状マップにおける共通軸極座標系の天頂角θCRとの平均値等を算出し、算出した平均値等を特徴点の共通軸極座標系の天頂角θC としてもよい。図49は、横軸を共通軸極座標系の天頂角θC とし、2つのエピポーラ線E0 ,E1 上の特徴点を示す。図49に示す例では、エピポーラ線E0 上に5つの特徴点P01~P05が設けられており、エピポーラ線E1 上に3つの特徴点P11~P13が設けられている。
制御部11は、読み出した2つのエピポーラ線上の特徴点から、三角形状のポリゴンの頂点となる3つの特徴点を特定する(S148)。具体的には、制御部11は、一方のエピポーラ線上で隣り合う2つの特徴点と、この2つの特徴点が対向する他方のエピポーラ線上の1つの特徴点とによる三角形のポリゴンを特定する。即ち、あるエピポーラ線上にM個の特徴点がある場合、そのエピポーラ線を一辺とする三角形のポリゴンがM-1個定義される。例えば制御部11は、エピポーラ線E0 上の特徴点P0i及び特徴点P0i+1と、エピポーラ線E1 上で天頂角θC の値が特徴点P0i+1の天頂角θC 未満で最大値となる特徴点とを、ポリゴンの3頂点に特定する。また制御部11は、エピポーラ線E1 上の特徴点P1i及び特徴点P1i+1と、エピポーラ線E0 上で天頂角θC の値が特徴点P1i+1の天頂角θC 以下で最大値となる特徴点とを、ポリゴンの3頂点に特定する。このように各ポリゴンの3頂点を特定することで、隣り合う2つのエピポーラ線間が三角形状のポリゴンで隙間なく充填される。図49に示す例では、エピポーラ線E0 上の特徴点P01及びP02とエピポーラ線E1 上の特徴点P11とを3頂点とするポリゴン、エピポーラ線E0 上の特徴点P02及びP03とエピポーラ線E1 上の特徴点P11とを3頂点とするポリゴン等が生成される。なお、ポリゴンは、隣り合う2つのエピポーラ線間のそれぞれに設けられる構成に限らず、また、ポリゴンの形状は四角形状、五角形状等でもよい。
制御部11は、ポリゴンの3頂点に特定した3つの特徴点を対応付けて記憶部12に記憶する(S149)。制御部11は、例えば記憶部12に図40Bに示すようなポリゴンテーブル127を生成し、各ポリゴンを識別するためのポリゴンIDを発行し、ポリゴンIDに対応付けて、3つの特徴点の特徴点IDを記憶する。制御部11は、ステップS147で読み出した2つのエピポーラ線上の全特徴点についてポリゴンの生成を終了したか否かを判断しており(S150)、終了していないと判断した場合(S150:NO)、ステップS148の処理に戻り、ステップS148~S149の処理を繰り返す。全特徴点についてポリゴンの生成を終了したと判断した場合(S150:YES)、制御部11は、全てのエピポーラ線間について処理を終了したか否かを判断する(S151)。全てのエピポーラ線間について処理を終了していないと判断した場合(S151:NO)、制御部11は、ステップS147の処理に戻り、未処理のエピポーラ線間について、ステップS147~S150の処理を行う。
全てのエピポーラ線間について処理を終了したと判断した場合(S151:YES)、即ち、管状マップの領域を覆うポリゴンを生成した場合、制御部11は図41に示す処理に戻り、処理を終了する。上述した処理により、図40Bに示すようなポリゴンテーブル127に、Nt 個のポリゴンについて3頂点となる3つの特徴点が対応付けて記憶される。なお、多数の点(点群)を3点単位で接続することで隙間なく三角形で充填する手法は上述した処理に限定されず、各種の公知技術を用いることができる。
上述したような特徴点の対応付け処理によって、図40Aに示すような特徴点対応テーブル126及び図40Bに示すようなポリゴンテーブル127が生成される。よって、これらの情報を用いてWebGL等のグラフィックライブラリーを利用したテクスチャマッピングを行うことにより、2つの管状マップから仮想視点での仮想画像を生成することができる。これにより、第1情報処理装置10は、仮想画像をインタラクティブなコンテンツとして閲覧者(第2情報処理装置20のユーザ)に提供できる。
次に、本実施形態において、パノラマ画像を再生(表示)する際に第1情報処理装置10及び第2情報処理装置20が行う処理について説明する。図50は、実施形態5の再生処理手順の一例を示すフローチャートである。ここでは、図40Aに示すような特徴点対応テーブル126と、図40Bに示すようなポリゴンテーブル127とは予め記憶部12に記憶されているものとする。
本実施形態の第2情報処理装置20の制御部21は、センサ部25によってユーザの頭部の位置及び向きを検出し、位置及び向きを示す情報を取得する(S161)。制御部21は、取得した位置及び向きを示す情報を第1情報処理装置10へ送信する(S162)。第1情報処理装置10の制御部11は、再生すべき管状マップを管状マップDB125から読み出す(S163)。制御部11は、例えば撮影対象の部屋で撮影された2つのパノラマ画像から生成された管状マップを読み出す。制御部11は、第2情報処理装置20が送信した位置及び向きを示す情報を受信し(S164)、前回受信した情報と比較して、位置又は向きが変化したか否かを判断する(S165)。位置及び向きのいずれも変化していないと判断した場合(S165:NO)、制御部11は、ステップS164の処理に戻り、第2情報処理装置20から位置及び向きを示す情報を受信する都度、位置又は向きが変化したか否かを判断する。
位置又は向きが変化したと判断した場合(S165:YES)、制御部11は、受信した位置に基づいて仮想視点の位置を算出する(S166)。例えば、制御部11は、ユーザの頭部の位置に基づいて前回設定した仮想視点を移動させる。制御部11は、特徴点対応テーブル126の記憶内容と、算出した仮想視点位置とに基づいて、仮想視点位置における各特徴点の位置(座標値)を算出し、特徴点テーブル128を生成する(S167)。ここで、図12に示すように、後側撮影位置から前側撮影位置に向かう方向をt軸とし、水平面上でt軸に直交する方向をs軸としたST座標系を用いた場合、後側撮影位置(0,0)と前側撮影位置(0,1)との間に仮想視点位置(0,t)があれば、仮想視点から被写体Pの方角βV は以下の(33)式で算出される。
tanβV =t×tanβF +(1-t)×tanβR …(33)
よって、制御部11は、特徴点対応テーブル126に記憶してある各特徴点について、前側管状マップにおける天頂角θCFと、後側管状マップにおける天頂角θCRとをそれぞれ、以下の(34)式を用いてST座標系の方位角βF ,βR に変換する。そして制御部11は、上記の(33)式を用いて、この特徴点について仮想視点からのST座標系の方位角βV を算出する。
βF =θCF-π/2
βR =θCR-π/2 …(34)
次に制御部11は、算出した仮想視点からのST座標系の方位角βV にπ/2を加算することにより(即ち、βV +π/2)、この特徴点について仮想視点における共通軸極座標系の天頂角θCVを算出する。なお、特徴点における共通軸極座標系の方位角はエピポーラ線を示すので、特徴点対応テーブル126に記憶してある共通軸極座標系の方位角φC が、この特徴点について仮想視点における共通軸極座標系の方位角φCVとなる。よって、制御部11は、この特徴点について仮想視点における共通軸極座標系の座標値(θCV,φCV)(φCV=φC )を得ることができる。制御部11は、算出した仮想視点における特徴点の共通軸極座標系の座標値(θCV,φCV)を、rC =1として上記の(17)式を用いてワールド直交座標系の座標値に変換する。これにより、この特徴点について、仮想視点を中心とした単位球面上の位置(画素位置)を算出できる。制御部11は、特徴点対応テーブル126に記憶してある各特徴点について、仮想視点におけるワールド直交座標系の座標値を算出し、算出した座標値を、それぞれの特徴点の特徴点IDに対応付けて特徴点テーブル128に記憶する。これにより、図40Cに示すような特徴点テーブル128が生成される。
次に制御部11は、特徴点対応テーブル126及びポリゴンテーブル127と、生成した仮想視点における特徴点テーブル128と、ステップS164で受信したユーザの頭部の向き(視線方向)とに基づいて、ステップS163で読み出した2つの管状マップから仮想視点での仮想画像を生成する(S168)。なお、グラフィックライブラリーでは、多数の頂点の位置情報及びテクスチャ座標情報と、各頂点によるポリゴンの情報(頂点の接続情報)とを登録しておくことにより、テクスチャマッピングが行われ、指定された視線方向及び画角によって決定される表示範囲に仮想画像が表示される。よって、特徴点対応テーブル126、ポリゴンテーブル127及び仮想視点における特徴点テーブル128に基づいて、ユーザの視線方向に応じた仮想画像を生成できる。なお、制御部11は、それぞれのポリゴンの各頂点のテクスチャ座標情報を用いてテクスチャマッピングを行い、ポリゴン毎に、仮想画像中の各画素に、2つの管状マップの画素値(輝度)に基づく画素値を割り当てて仮想画像を生成する。
例えば制御部11は、ポリゴンテーブル127から1つのポリゴンについて、3頂点となる3つの特徴点の特徴点IDを読み出す。そして制御部11は、3つの特徴点のそれぞれについて、前側管状マップにおけるテクスチャ座標情報と後側管状マップにおけるテクスチャ座標情報とを特徴点対応テーブル126から読み出し、仮想視点位置でのワールド直交座標系の座標情報を特徴点テーブル128から読み出す。そして制御部11は、3つの特徴点で構成されるポリゴン内に含まれる各画素の画素値を、前側管状マップ及び後側管状マップから読み出し、読み出した各画素値をそれぞれ、仮想視点位置でのワールド直交座標系の座標情報が示す3特徴点で構成されるポリゴン内の各画素に割り当てる。制御部11は、ポリゴンテーブル127に記憶してある全てのポリゴンについて各画素の画素値の割り当てを行うことにより仮想画像を生成する。なお、制御部11は、2つの管状マップのそれぞれに基づいて仮想位置での中間ビューを2つ生成し、生成した2つの中間ビューを、仮想視点位置とそれぞれの撮影位置との位置関係に応じた割合でアルファブレンディング等にて合成して仮想画像を生成してもよい。
制御部11は、仮想画像を生成した後、生成した仮想画像を第2情報処理装置20へ送信する(S169)。第2情報処理装置20の制御部21は、第1情報処理装置10が送信した仮想画像を受信し(S170)、受信した仮想画像を表示部24に表示させる(S171)。第2情報処理装置20の制御部21は、ユーザの頭部の位置及び向きの検出及び送信を、所定時間間隔又はユーザからの指示に従って行い、第1情報処理装置10の制御部11は、第2情報処理装置20から位置及び向きの情報を受信する都度、ステップS165~S169の処理を行う。
本実施形態では、パノラマ画像を管状マップに展開し、管状マップにおいて特徴点の対応付けを行い、管状マップから仮想画像を生成する。管状マップではエピポーラ線を直線で設定できるので、エピポーラ線上の特徴点を対応付ける際に、各特徴点の位置の特定が容易であり、対応付け処理における負荷を低減できる。また、管状マップでは被写体の直線性が維持されるので、例えば三角形状のポリゴン単位で画像を描画する際に歪みが生じない。よって、2つのパノラマ画像(管状マップ)を合成した仮想画像であってもユーザに与える違和感が抑制された仮想画像を提供できる。また、ユーザによって指定される仮想視点位置に応じた仮想画像を提供できるので、ユーザは撮影対象の空間内を移動しながら、所望の位置から室内の様子を見ることができる。
(実施形態6)
本実施形態は、実施形態5の情報処理システム40において、パノラマ画像から管状マップ、正面画像及び背面画像を生成し、管状マップ、正面画像及び背面画像に基づいて仮想画像を生成する情報処理システム40に関する。実施形態5と共有する部分については説明を省略する。
管状マップは、撮影空間におけるZ軸方向の表現範囲が有限であるので、撮影方向(カメラ30の正面方向)及びその逆方向(カメラ30の背面方向)の被写体が管状マップでは表示されない。具体的には、図49に示す例では、ポリゴンが設定されていない領域、即ち、エピポーラ線において左端に設けられた特徴点よりも左側の領域及び右端に設けられた特徴点よりも右側の領域は、テクスチャマッピングが行われない。そこで、本実施形態では、管状マップに加えて、キューブマップにおける正面画像及び背面画像を用いることにより、全ての方向の被写体が再現されたパノラマ画像を提供する。
図51は、実施形態6の特徴点の対応付け処理手順の一例を示すフローチャートである。図51に示す処理は、図41中のステップS113の後にステップS115を追加し、ステップS114の後にステップS116を追加したものである。本実施形態の第1情報処理装置10の制御部11は、実施形態5と同様にステップS111~S113の処理を行い、パノラマ画像DB12aから読み出したパノラマ画像に補正処理を行い、補正処理後のパノラマ画像から管状マップを生成する。そして、本実施形態の第1情報処理装置10の制御部11は、補正処理後のパノラマ画像のそれぞれから、カメラ30の正面方向を撮影方向とした画角が90°程度の正面画像と、カメラ30の背面方向を撮影方向とした画角が90°程度の背面画像とを生成する(S115)。図52は、正面画像及び背面画像が付加された管状マップの例を示す模式図である。本実施形態では、図52に示すように管状マップに正面画像及び背面画像を付加した画像を1つの画像(ファイル)として管状マップDB125に記憶してもよく、管状マップ、正面画像及び背面画像をそれぞれ異なる画像(ファイル)として3つの画像を対応付けて管状マップDB125に記憶してもよい。
次に制御部11は、実施形態5と同様にステップS114の処理を行い、2つの管状マップにおいて、同じ被写体が写っている位置の画素(特徴点)を対応付ける対応付け処理を行う(S114)。そして、制御部11は、正面画像及び背面画像のそれぞれにおいて、カメラ30の正面方向及び背面方向の位置の画素(以下では極点という)を特徴点とし、正面画像および背面画像のそれぞれにおける特徴点の対応付け処理を行い、極点を1頂点とする三角形状のポリゴンを生成する(S116)。
図53は、極点を含むポリゴンの生成処理を説明するための模式図である。図53は正面画像を示しており、中央に極点を有し、2つの特徴点はそれぞれのエピポーラ線において正面方向側の一番端の特徴点とする。制御部11は、図40Aに示す構成と同様の構成を有する正面画像用の特徴点対応テーブルを生成する。そして制御部11は、各エピポーラ線の正面方向側の一番端の特徴点について各情報を特徴点対応テーブル126から読み出し、読み出した特徴点の共通軸極座標系の方位角φC と、前側管状マップにおける共通軸極座標系の天頂角θCFと、後側管状マップにおける共通軸極座標系の天頂角θCRとを正面画像用の特徴点対応テーブルに記憶する。なお、制御部11は、正面画像における特徴点を識別するための特徴点IDを発行し、特徴点IDに対応付けて、読み出した方位角φC 、天頂角θCF,θCRを記憶する。そして、制御部11は、読み出した特徴点の前側管状マップにおけるテクスチャ座標情報と、後側管状マップにおけるテクスチャ座標情報とをそれぞれ正面画像におけるテクスチャ座標情報に変換し、正面画像用の特徴点対応テーブルに記憶する。制御部11は、背面画像についても同様の処理を行い、背面画像における極点を特徴点とし、各エピポーラ線の背面方向側の一番端の特徴点及び極点について共通軸極座標系の方位角φC と、前側管状マップにおける共通軸極座標系の天頂角θCFと、後側管状マップにおける共通軸極座標系の天頂角θCRと、前側管状マップの背面画像におけるテクスチャ座標情報と、後側管状マップの背面画像におけるテクスチャ座標情報とを背面画像用の特徴点対応テーブルに記憶する。
次に制御部11は、正面画像用の特徴点対応テーブル及び背面画像用の特徴点対応テーブルに記憶した特徴点に基づいて、正面画像において、極点(特徴点)と、隣り合う2つのエピポーラ線において正面方向側の一番端の2つの特徴点とを頂点とする三角形状のポリゴンと、背面画像において、極点(特徴点)と、隣り合う2つのエピポーラ線において背面方向側の一番端の2つの特徴点とを頂点とする三角形状のポリゴンとを生成する。制御部11は、このように生成した極点を含むポリコンについても、3頂点となる極点及び2つの特徴点を対応付けてポリゴンテーブル127に記憶する。なお、極点については、正面画像における極点と背面画像における極点とを識別する識別情報(極点ID)がポリゴンテーブル127に記憶されてもよい。
上述した処理により、制御部11は、正面画像及び背面画像のそれぞれについて、それぞれ隣り合う2つのエピポーラ線間において、極点と、2つのエピポーラ線上の特徴点とによるポリゴンを生成することにより、管状マップ(パノラマ画像)の全領域を覆うポリゴンを生成できる。よって、本実施形態では、パノラマ画像の全領域を覆うポリゴンの情報が記憶されたポリゴンテーブル127と特徴点対応テーブル126とを用いてテクスチャマッピングを行うことにより、仮想視点での仮想画像を生成することができる。なお、本実施形態の第1情報処理装置10及び第2情報処理装置20は、図50に示す処理と同様の処理を行うことにより、第2情報処理装置20によって指定された仮想視点位置における仮想画像を第1情報処理装置10で生成して第2情報処理装置20に提供できる。
本実施形態では、実施形態5と同様の効果が得られる。また本実施形態では、パノラマ画像の全領域を覆うポリゴンが生成されるので、パノラマ画像の全領域を表示できる仮想画像を提供できる。
(実施形態7)
本実施形態は、パソコン、スマートフォン、又は、タブレット等の汎用の情報処理装置を第2情報処理装置20に使用する情報処理システム40に関する。実施形態1と共通する部分については、説明を省略する。
図54は、実施形態7の画面例を示す模式図である。画面には、表示エリア241、上視線ボタン242、右視線ボタン243、下視線ボタン244、左視線ボタン245、移動ボタン246及びズームボタン247が含まれる。ユーザは、表示部24に設けられたタッチパネルのタッチ操作、又はマウスを用いたクリック操作等により各ボタンを選択できる。
上視線ボタン242の入力を受け付けた場合、制御部21は第2情報処理装置20の向きが上向きに変化したという入力を受け付けた場合と同様に、表示エリア241に表示される画像の範囲を上向きに変化させる。同様に、右視線ボタン243、下視線ボタン244および左視線ボタン245の選択を受け付けた場合も、制御部21は表示エリア241に表示される画像の範囲をそれぞれの向きに変化させる。
移動ボタン246は、前後左右の領域に分割されている。移動ボタン246のそれぞれの領域の選択を受け付けた場合、制御部21は第2情報処理装置20の位置がそれぞれの向きに変化したと判定し、仮想視点を移動させる。ズームボタン247の選択を受け付けた場合、制御部21は、表示エリア241に表示する画像の範囲を拡大または縮小する。
以上により、ユーザは画面上のボタンの操作により、たとえば撮影対象の部屋の中を自由に移動しながら、部屋の広さ、家具の配置、窓の外の景色等を感覚的に把握することができる。第2情報処理装置20を傾ける操作又はジョイスティック等の操作が、画面上の各ボタンの操作の代わりに用いられてもよい。
上述した各実施形態において、カメラ30は1つであっても複数であってもよい。複数のカメラ30を用いる場合、各カメラ30をそれぞれの撮影位置に設置した状態で同時に撮影を行ってもよい。また、複数のカメラ30をそれぞれの撮影位置に設置しておき、第1情報処理装置10からの指示に従って各カメラ30が撮影を行ってもよい。この場合、カメラ30で撮影された画像をリアルタイムで第2情報処理装置20のユーザに提供することができる。よって、例えば各種の部屋、劇場、動物園、植物園等で撮影した画像によって撮影対象の空間の状態をリアルタイムで確認することができる。
各実施形態で記載されている技術的特徴(構成要件)はお互いに組合せ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。