(57)【要約】【課題】画像の切り替えに伴う違和感を抑制した画像を生成することが可能な情報処理装置等を提供する。【解決手段】情報処理装置は、空間内の複数の撮影位置で撮影した複数のパノラマ画像を取得する。また、情報処理装置は、複数のパノラマ画像間において、パノラマ画像に係る全天球上の複数の特徴点の対応付けを行う。そして、情報処理装置は、複数のパノラマ画像間で対応付けた特徴点の対応付けに応じて、前記複数のパノラマ画像を合成し、仮想位置での仮想画像を生成する。【選択図】図１
2020024687.tif 000002
【特許請求の範囲】
【請求項１】
空間内の撮影位置で撮影した全天球画像からなる複数のパノラマ画像を取得する画像取得部と、
前記複数のパノラマ画像間において、前記パノラマ画像に係る全天球上の特徴点の対応付けを行う対応付け部と、
仮想位置を受け付ける受付部と、
前記対応付け部による対応付け及び前記受付部が受け付けた前記仮想位置に応じて前記複数のパノラマ画像を合成し、前記仮想位置での仮想画像を生成する生成部と
を備える情報処理装置。
【請求項２】
前記対応付け部は、前記空間上の各撮影位置を結ぶ直線とそれぞれの前記パノラマ画像に係る全天球とが交差する２点を通る前記全天球上の線上における特徴点の対応付けを行う
請求項１に記載の情報処理装置。
【請求項３】
前記対応付け部は、前記パノラマ画像における撮影高さに対応する位置の線上で方位角方向に並ぶ複数の特徴点の対応付けを行う
請求項１又は２に記載の情報処理装置。
【請求項４】
前記対応付け部は、前記パノラマ画像における撮影方向及び該撮影方向の反対方向に対応する位置で高さ方向の中央位置を通る複数の線上で方位角方向に並ぶ複数の特徴点の対応付けを行う
請求項１から３までのいずれかひとつに記載の情報処理装置。
【請求項５】
前記生成部は、前記対応付け部による対応付けに基づいて、前記仮想画像における各画素の方位角情報に対応する前記パノラマ画像のそれぞれにおける方位角情報を特定し、前記パノラマ画像のそれぞれにおいて特定した方位角情報に応じた領域内の画素を合成する
請求項１から４までのいずれかひとつに記載の情報処理装置。
【請求項６】
前記生成部は、前記仮想位置が２つの撮影位置の間にあり、前記２つの撮影位置のそれぞれから前記仮想位置までの距離をｔV 及び１−ｔV とし、前記仮想画像における各画素の方位角情報をtanβV とし、前記方位角情報tanβV に対応する前記２つの撮影位置で撮影したパノラマ画像のそれぞれにおける方位角情報をtanβF 及びtanβR とした場合、以下の式を満たす方位角情報tanβF 及びtanβR を特定する
請求項１から５までのいずれかひとつに記載の情報処理装置。
tanβV ＝ｔV tanβF ＋（１−ｔV ）tanβR       …（式）
【請求項７】
前記複数のパノラマ画像のそれぞれから、前記仮想画像を生成するための中間仮想画像を生成する中間画像生成部と、
前記仮想位置及び前記複数の撮影位置の位置関係に応じて、前記中間画像生成部が生成した前記中間仮想画像のそれぞれに対する合成割合を特定する割合特定部とを備え、
前記生成部は、前記割合特定部が特定した合成割合で、前記中間画像生成部が生成した中間仮想画像を合成する
請求項１から６までのいずれかひとつに記載の情報処理装置。
【請求項８】
前記仮想画像を生成するための仮想スクリーンを特定するスクリーン特定部と、
前記スクリーン特定部が特定した仮想スクリーンにおける仮想画素の方位角方向の位置を、前記対応付け部による対応付けに基づいて前記仮想画素の方位角方向の位置に対応する前記パノラマ画像のそれぞれにおける画素の方位角方向の位置に補正して、前記パノラマ画像のそれぞれに対応した仮想スクリーンを生成する補正部とを備え、
前記中間画像生成部は、前記補正部が生成した仮想スクリーンのそれぞれにおける仮想画素に、対応する前記パノラマ画像のそれぞれにおける画素の輝度を割り当てて前記中間仮想画像を生成する
請求項７に記載の情報処理装置。
【請求項９】
前記受付部は前記仮想位置を連続して受け付けており、
前記受付部が受け付けた仮想位置が停止中であるか否かを判断する判断部を備え、
前記生成部は、前記仮想位置が停止中であると判断された場合、前記受付部が受け付けた仮想位置に近い前記撮影位置で撮影したパノラマ画像を用いて前記仮想画像を生成する
請求項１から８までのいずれかひとつに記載の情報処理装置。
【請求項１０】
前記生成部は、
移動中の前記仮想位置が停止したと判断された場合、前記仮想位置に近い前記撮影位置で撮影したパノラマ画像に対する合成割合を所定時間毎に増加させ、それ以外のパノラマ画像に対する合成割合を所定時間毎に減少させつつ、前記複数のパノラマ画像を合成し、
停止中の前記仮想位置が移動したと判断された場合、前記仮想位置に近い前記撮影位置で撮影したパノラマ画像に対する合成割合を所定時間毎に減少させ、それ以外のパノラマ画像に対する合成割合を所定時間毎に増加させつつ、前記複数のパノラマ画像を合成する
請求項９に記載の情報処理装置。
【請求項１１】
前記生成部は、前記全天球画像を平面に展開した前記パノラマ画像を合成する
請求項１から１０までのいずれかひとつに記載の情報処理装置。
【請求項１２】
前記生成部は、前記全天球画像を角管状に展開した前記パノラマ画像を合成して前記仮想画像を生成する
請求項１から１０までのいずれかひとつに記載の情報処理装置。
【請求項１３】
前記画像取得部が取得した全天球画像からなるパノラマ画像を、前記空間上の各撮影位置を結ぶ方向を軸方向とした角管状に展開して管状のパノラマ画像を生成する展開部を備え、
前記対応付け部は、複数の前記管状のパノラマ画像間において、前記軸方向に平行な線上における特徴点の対応付けを行う
請求項１２に記載の情報処理装置。
【請求項１４】
前記対応付け部による対応付け、並びに、前記撮影位置及び前記受付部が受け付けた前記仮想位置に基づいて、前記仮想位置における前記全天球上の特徴点の位置を算出する算出部を備え、
前記生成部は、前記算出部が算出した前記仮想位置における前記全天球上の特徴点の位置と、前記複数のパノラマ画像とに基づいて、前記仮想位置での仮想画像を生成する
請求項１に記載の情報処理装置。
【請求項１５】
第１情報処理装置と第２情報処理装置とを含む情報処理システムにおいて、
前記第２情報処理装置は、
仮想位置を示す情報を送信する送信部を有し、
前記第１情報処理装置は、
前記仮想位置を示す情報を受信する受信部と、
空間内の撮影位置で撮影した全天球画像からなる複数のパノラマ画像を取得する画像取得部と、
前記複数のパノラマ画像間において、前記パノラマ画像に係る全天球上の特徴点の対応付けを行う対応付け部と、
前記対応付け部による対応付け及び前記受信部が受信した前記仮想位置に応じて前記複数のパノラマ画像を合成し、前記仮想位置での仮想画像を生成する生成部と、
前記生成部が生成した仮想画像を送信する送信部とを有し、
前記第２情報処理装置は、
前記仮想画像を受信する受信部と、
受信した前記仮想画像を表示する表示部とを更に有する
情報処理システム。
【請求項１６】
情報処理装置が、
空間内の撮影位置で撮影した全天球画像からなる複数のパノラマ画像を取得し、
前記複数のパノラマ画像間において、前記パノラマ画像に係る全天球上の特徴点の対応付けを行い、
仮想位置を受け付け、
前記対応付け及び受け付けた前記仮想位置に応じて前記複数のパノラマ画像を合成し、前記仮想位置での仮想画像を生成する
処理を行う情報処理方法。
【請求項１７】
コンピュータに、
空間内の撮影位置で撮影した全天球画像からなる複数のパノラマ画像を取得し、
前記複数のパノラマ画像間において、前記パノラマ画像に係る全天球上の特徴点の対応付けを行い、
仮想位置を受け付け、
前記対応付け及び受け付けた前記仮想位置に応じて前記複数のパノラマ画像を合成し、前記仮想位置での仮想画像を生成する
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
１８０度より広い画角のパノラマ画像を取得するカメラを用いて、撮影位置を移動しつつ撮影を行い、得られた複数のパノラマ画像を適宜切り替えることにより、任意の視点から見た状態の画像を提供するシステムが提案されている（特許文献１）。特許文献１に開示されたシステムでは、隣り合う撮影位置で撮影した２つのパノラマ画像を切り替える際に、表示中のパノラマ画像を徐々にズームインしつつ、次のパノラマ画像との合成比率を徐々に変化させることにより次のパノラマ画像の表示に遷移する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−８４３０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示された技術では、表示されるパノラマ画像が切り替えられる際に、視聴するユーザは、画像の遷移を認識し、画像の遷移に伴う違和感を感じる虞がある。
【０００５】
本発明は、このような事情に鑑みてなされたものであり、その目的とするところは、画像の切り替えに伴う違和感を抑制した画像を生成することが可能な情報処理装置等を提供することにある。
【課題を解決するための手段】
【０００６】
本開示の一態様に係る情報処理装置は、空間内の撮影位置で撮影した全天球画像からなる複数のパノラマ画像を取得する画像取得部と、前記複数のパノラマ画像間において、前記パノラマ画像に係る全天球上の特徴点の対応付けを行う対応付け部と、仮想位置を受け付ける受付部と、前記対応付け部による対応付け及び前記受付部が受け付けた前記仮想位置に応じて前記複数のパノラマ画像を合成し、前記仮想位置での仮想画像を生成する生成部とを備える。
【発明の効果】
【０００７】
本開示の一態様によれば、実写画像に基づいて任意の視点から見た仮想画像を生成できる。また、表示されるパノラマ画像（実写画像）が切り替えられる際に、画像の遷移をより滑らかに行うことにより、画像の遷移に伴ってユーザに与える違和感を抑制した画像（仮想画像）を生成することができる。更に、切り替えられるパノラマ画像間における方位角方向のズレが抑制された画像を生成することができる。
【図面の簡単な説明】
【０００８】
【図１】情報処理システムの構成例を示す模式図である。
【図２】撮影時の情報処理システムの構成を示す模式図である。
【図３】表示時の情報処理システムの構成を示す模式図である。
【図４】カメラの外観を示す模式図である。
【図５】撮影画像の構成を説明するための模式図である。
【図６】カメラの撮影位置の例を示す模式図である。
【図７】パノラマ画像の例を示す模式図である。
【図８】第１情報処理装置の制御部によって実現される機能を示すブロック図である。
【図９】特徴点対応テーブルの構成例を示す模式図である。
【図１０】特徴点対応付け部による方位角の対応付けを示す模式図である。
【図１１】仮想スクリーンテーブルの構成例を示す模式図である。
【図１２】仮想スクリーンにおける方位角とパノラマ画像における方位角との関係を示す模式図である。
【図１３】仮想スクリーン補正部による処理を説明するための模式図である。
【図１４】前側画像用仮想スクリーンテーブルの構成例を示す模式図である。
【図１５】画素対応テーブルの構成例を示す模式図である。
【図１６】仮想ビューＤＢの構成例を示す模式図である。
【図１７】レンダリング処理を説明するための模式図である。
【図１８】レンダリング処理を説明するための模式図である。
【図１９】撮影時にカメラ及び第１情報処理装置が行う処理の手順を示すフローチャートである。
【図２０】第１情報処理装置による特徴点の対応付け処理の手順を示すフローチャートである。
【図２１】表示時に第１情報処理装置及び第２情報処理装置が行う処理の手順を示すフローチャートである。
【図２２】表示時に第１情報処理装置及び第２情報処理装置が行う処理の手順を示すフローチャートである。
【図２３】第１情報処理装置による仮想スクリーンの補正処理の手順を示すフローチャートである。
【図２４】仮想ビューに対する合成割合の変化を示す図表である。
【図２５】パノラマ画像の例を示す模式図である。
【図２６】エピポーラ線の説明図である。
【図２７】座標系の関係を説明するための模式図である。
【図２８】実施形態３の仮想スクリーンテーブルの構成例を示す模式図である。
【図２９】実施形態３の第１情報処理装置による仮想スクリーンの補正処理の手順を示すフローチャートである。
【図３０】実施形態４の情報処理システムの表示時の構成を示す模式図である。
【図３１】実施形態４の第１情報処理装置の制御部によって実現される機能を示すブロック図である。
【図３２】各テーブルの構成例を示す模式図である。
【図３３】実施形態４の特徴点を説明するための模式図である。
【図３４】撮影位置及び仮想視点の位置関係を示す模式図である。
【図３５】エピポーラ面の例を示す模式図である。
【図３６】ポリゴン形状の例を示す模式図である。
【図３７】実施形態４の第１情報処理装置による特徴点の対応付け処理の手順を示すフローチャートである。
【図３８】表示時に第１情報処理装置及び第２情報処理装置が行う処理の手順を示すフローチャートである。
【図３９】実施形態５の情報処理システムの表示時の構成を示すブロック図である。
【図４０】第１情報処理装置に記憶されるテーブルの構成例を示す模式図である。
【図４１】実施形態５の特徴点の対応付け処理手順の一例を示すフローチャートである。
【図４２】管状マップ生成処理の一例を示すフローチャートである。
【図４３】特徴点対応付け処理の一例を示すフローチャートである。
【図４４】方位角補正を説明するための模式図である。
【図４５】管状マップを説明するための模式図である。
【図４６】管状マップの例を示す模式図である。
【図４７】管状マップの一部の拡大図である。
【図４８】特徴点の対応付け処理を説明するための模式図である。
【図４９】ポリゴンの生成処理を説明するための模式図である。
【図５０】実施形態５の再生処理手順の一例を示すフローチャートである。
【図５１】実施形態６の特徴点の対応付け処理手順の一例を示すフローチャートである。
【図５２】正面画像及び背面画像が付加された管状マップの例を示す模式図である。
【図５３】極点を含むポリゴンの生成処理を説明するための模式図である。
【図５４】実施形態７の画面例を示す模式図である。
【発明を実施するための形態】
【０００９】
（実施形態１）
図１は、情報処理システム４０の構成例を示す模式図である。情報処理システム４０は、第１情報処理装置１０、第２情報処理装置２０及びカメラ３０を含む。本実施形態においては、カメラ３０を用いて、賃貸住宅及び販売住宅等の不動産物件の部屋、ホテル及び民宿等の宿泊施設の部屋等を撮影する。カメラ３０は、撮影装置の一例である。カメラ３０は、１回のシャッターで前後左右上下の撮影を行う全天球カメラを使用する。撮影位置は、例えば矩形の部屋の２箇所とするが、これに限定しない。３箇所以上の任意の場所から撮影を行ってもよい。また撮影位置の床面からの高さは、例えば１ｍ程度であるが、これに限定しない。立った状態の大人の目線の高さ、又は椅子に座った状態の大人の目線の高さ等の任意の高さから撮影を行ってもよい。カメラ３０が撮影を行う位置及び向きは、カメラ３０に内蔵されたセンサ又はカメラ３０を外部から監視するセンサにより測定される。カメラ３０を特定の位置及び向きに固定する治具等を利用してもよい。
【００１０】
カメラ３０によって撮影された撮影画像（パノラマ画像）は、撮影位置を示す情報と共に第１情報処理装置１０へ送信され、第１情報処理装置１０のパノラマ画像ＤＢ１２ａに記録される。なお、カメラ３０は撮影によって画像データ（撮影画像データ）を取得するが、以下では画像データを単に画像という場合がある。従って、撮影画像は撮影画像データを意味する場合があり、パノラマ画像はパノラマ画像データを意味する場合がある。撮影画像は、複数の画素を含み、撮影画像データは、各画素の撮影画像中の位置（座標）を示す位置情報と各画素の輝度（画素値）とを対応付けて有する。撮影位置の情報は、例えば矩形の部屋の任意の位置を基準とした位置の情報であり、例えばカメラ３０に内蔵されているセンサにより測定されてもよく、他のセンサ等により測定されてカメラ３０又は第１情報処理装置１０へ送信されてもよい。なお、撮影位置の情報は必ずしも必要ではなく、２箇所の撮影位置を結んだ線分の方向（方位）が分かる情報を取得できればよい。
【００１１】
第２情報処理装置２０は、カメラ３０での撮影が行われた部屋から離れた場所、例えば不動産会社の店舗又は旅行会社の店舗にいるユーザが装着したＨＭＤ（Head Mounted Display）型の情報処理装置である。第２情報処理装置２０には、各種センサが内蔵されており、ユーザの頭部の位置及び向きを検出可能である。第２情報処理装置２０は、スマートフォン、タブレット又はパソコン等の汎用の情報処理装置と、ＨＭＤ等の表示装置との組合せでもよい。第２情報処理装置２０は、スマートフォン等の軽量の携帯型情報処理装置と、携帯型情報処理装置をユーザの目の前に固定する固定部材との組合せでもよい。
【００１２】
第２情報処理装置２０によって検出されたユーザの頭部の位置及び向きと、パノラマ画像ＤＢ１２ａに記録された撮影画像とに基づいて、第１情報処理装置１０は、カメラ３０で撮影された部屋の中の仮想視点（仮想位置）から見た仮想画像を生成する。そして第１情報処理装置１０は、生成した仮想画像を第２情報処理装置２０へ送信する。このような構成により、ＨＭＤを装着したユーザは、撮影対象となった部屋の中を歩き回り、任意の向きを向いて、部屋の広さ、家具の配置、窓の外の景色等を感覚的に把握することができる。なお、ユーザは回転可能な椅子に着席した状態で、ジョイスティック等を操作することで仮想視点を移動させてもよい。転倒及び衝突のおそれなく、部屋の中を歩き回り、あるいは飛翔し、任意の向きを向いて、室内空間を把握することができる。
【００１３】
図２は、撮影時の情報処理システム４０の構成を示す模式図である。撮影時の情報処理システム４０は、インターネット、公衆通信回線又はＬＡＮ（Local Area Network）等のネットワークＮを介して接続された第１情報処理装置１０及びカメラ３０を備える。
【００１４】
第１情報処理装置１０は、制御部１１、記憶部１２、通信部１３、入力部１４、表示部１５及びバスを備える。本実施形態の第１情報処理装置１０は汎用のパーソナルコンピュータ、サーバマシン等の情報処理装置である。また、本実施形態の第１情報処理装置１０は、大型計算機上で動作する仮想マシンでもよい。制御部１１は、ＣＰＵ（Central Processing Unit ）又はＭＰＵ（Micro-Processing Unit ）等のプロセッサを含み、本実施形態にかかるプログラムを実行する演算制御装置である。制御部１１は、記憶部１２に記憶してある制御プログラムを実行すると共に、バスを介して第１情報処理装置１０を構成するハードウェア各部の動作を制御する。これにより、制御部１１は、第１情報処理装置１０が行う種々の制御処理及び情報処理を行う。
【００１５】
記憶部１２は、ＲＡＭ（Random Access Memory）、フラッシュメモリ、ハードディスク、ＳＳＤ（Solid State Drive ）等を含む。記憶部１２は、制御部１１が実行する制御プログラム及び制御プログラムの実行に必要な各種のデータ等を予め記憶している。また記憶部１２は、制御部１１が制御プログラムを実行する際に発生するデータ等を一時的に記憶する。記憶部１２に記憶される制御プログラムには、本開示のプログラムである仮想画像生成プログラムＰＧが含まれ、記憶部１２に記憶されるデータには、カメラ３０によって撮影したパノラマ画像を蓄積するパノラマ画像ＤＢ１２ａが含まれる。なお、パノラマ画像ＤＢ１２ａは、第１情報処理装置１０に接続された外部の大容量記憶装置等に保存されていてもよく、ネットワークＮを介して第１情報処理装置１０に接続された別の記憶装置に記憶されてもよい。
【００１６】
通信部１３は、ネットワークＮとの通信を行うインターフェイスである。入力部１４は、キーボード及びマウス等である。表示部１５は、例えば液晶表示パネル等である。
第１情報処理装置１０は、通信部１３を介して外部装置から仮想画像生成プログラムＰＧを取得して記憶部１２に記憶してもよい。また、第１情報処理装置１０が可搬型記憶媒体に記憶された情報を読み取る読取部等を備える場合、可搬型記憶媒体から仮想画像生成プログラムＰＧを読み出して記憶部１２に記憶してもよい。
【００１７】
カメラ３０は、制御部３１、記憶部３２、通信部３３、シャッターボタン３４、撮影部３５及びバスを備える。制御部３１は、ＣＰＵ又はＭＰＵ等のプロセッサを含み、本実施形態にかかるプログラムを実行する演算制御装置である。制御部３１は、記憶部３２に記憶してある制御プログラムを実行すると共に、バスを介してカメラ３０を構成するハードウェア各部の動作を制御する。これにより、制御部３１は、カメラ３０が行う種々の制御処理及び情報処理を行う。記憶部３２は、ＲＡＭ、フラッシュメモリ、ハードディスク、磁気テープ等を含む。記憶部３２は、制御部３１が実行する制御プログラム及び制御プログラムの実行に必要な各種のデータ等を予め記憶している。また記憶部３２は、制御部３１が制御プログラムを実行する際に発生するデータ等を一時的に記憶する。
【００１８】
通信部３３は、ネットワークＮとの通信を行うインターフェイスである。シャッターボタン３４は、静止画を撮影する指示を受け付けるボタンである。なお、制御部３１は、ネットワークＮを通じてシャッターボタン３４の操作を受け付けてもよい。撮影部３５は、撮影を行う光学系と撮像素子とを含む。制御部３１は、シャッターボタン３４から受け付けた指示に基づいて撮像素子が取得したデータに対して、各種画像処理を行い、撮影画像を生成する。
【００１９】
図３は、表示時の情報処理システム４０の構成を示す模式図である。表示時の情報処理システム４０は、ネットワークＮを介して接続された第１情報処理装置１０及び第２情報処理装置２０を備える。第１情報処理装置１０は、図２を使用して説明した撮影時の第１情報処理装置１０の構成の記憶部１２に、特徴点対応テーブル１２ｂ、方位角対応テーブル１２ｃ、仮想スクリーンテーブル１２ｄ〜１２ｆ、画素対応テーブル１２ｇ及び仮想ビューＤＢ１２ｈが追加された構成を有する。特徴点対応テーブル１２ｂ、方位角対応テーブル１２ｃ、仮想スクリーンテーブル１２ｄ〜１２ｆ、画素対応テーブル１２ｇ及び仮想ビューＤＢ１２ｈは、制御部１１が仮想画像生成プログラムＰＧの実行中に生成されるデータであるが、撮影時においても記憶部１２に記憶されていてもよい。撮影時と表示時とで、異なるハードウェアを第１情報処理装置１０に使用してもよい。
【００２０】
前述のとおり、第２情報処理装置２０は、ＨＭＤ型の情報処理装置である。第２情報処理装置２０は、制御部２１、記憶部２２、通信部２３、表示部２４、センサ部２５及びバスを備える。制御部２１は、ＣＰＵ又はＭＰＵ等のプロセッサを含み、本実施形態にかかるプログラムを実行する演算制御装置である。制御部２１は、記憶部２２に記憶してある制御プログラムを実行すると共に、バスを介して第２情報処理装置２０を構成するハードウェア各部の動作を制御する。これにより、制御部２１は、第２情報処理装置２０が行う種々の制御処理及び情報処理を行う。記憶部２２は、ＲＡＭ、フラッシュメモリ、ハードディスク、ＳＳＤ、磁気テープ等を含む。記憶部２２は、制御部２１が実行する制御プログラム及び制御プログラムの実行に必要な各種のデータ等を予め記憶している。また記憶部２２は、制御部２１が制御プログラムを実行する際に発生するデータ等を一時的に記憶する。
【００２１】
通信部２３は、ネットワークＮとの通信を行うインターフェイスである。表示部２４は、例えば液晶表示パネル等である。センサ部２５は、例えば地磁気センサ、傾きセンサ、ＧＰＳ等の複数のセンサの組合せであり、第２情報処理装置２０の位置及び向きを検出する。センサ部２５は、第２情報処理装置２０の位置及び向きを検出することにより、第２情報処理装置２０を頭部に装着しているユーザの頭部の位置及び向きを検出できる。第２情報処理装置２０は、マウス、キーボード、タッチパネル等の入力部を備えていてもよい。
【００２２】
図４は、カメラ３０の外観を示す模式図である。本実施形態のカメラ３０は、略長方形板状の板状部３８を有する。以後の説明においては、板状部３８の長辺方向を上下方向、板状部３８の短辺方向を左右方向、板状部３８の第１広面３８１側を前側、第２広面３８２側を後側にそれぞれ向けた状態で説明する。
第１広面３８１の上寄りに、ドーム状の第１レンズ３７１が設けられている。第２広面３８２の上寄りに、ドーム状の第２レンズ３７２が設けられている。第１レンズ３７１及び第２レンズ３７２の内側には、図示しない複数のレンズ及びプリズム等の光学部品が配置されており、１８０度以上の視野角を有する光学系を形成している。以後の説明では、第１レンズ３７１側の光学系の光軸を第１光軸、第２レンズ３７２側の光学系の光軸を第２光軸と記載する。第１光軸と第２光軸とは、同一の直線上に配置されている。第１広面３８１にシャッターボタン３４が配置されている。
【００２３】
上述した構成のカメラ３０が撮影時に行う処理について説明する。図５は、撮影画像の構成を説明するための模式図である。図５Ａは、全天球画像を示す模式図である。図５Ｂは、図５Ａの全天球画像を正距円筒図法により展開した画像を示す模式図である。カメラ３０の制御部３１は、シャッターボタン３４から受け付けた指示に基づいて撮影部３５による撮影を行った場合、第１光軸側で撮影した画像と第２光軸側で撮影した画像とを合成することにより、図５Ａに示すように撮影位置を撮影中心Ｃ点とする全天球画像を生成する。なお、撮影対象の部屋の複数箇所で撮影を行う際、各撮影位置において、カメラ３０の上下方向及び左右方向を一致させた状態で撮影を行う。これにより、それぞれの撮影位置で撮影された複数の全天球画像において共通の座標系を用いることができる。
【００２４】
全天球画像上の各画素の位置を定める座標系について説明する。図４を使用して説明したように、カメラ３０は板状部３８の長辺方向を上下方向に向けた状態で撮影する。以後の説明では、前後左右方向を含む面を水平面と記載する。全天球画像上の画素の位置は、直交座標系及び極座標系により表現することができる。直交座標系は、図４に示した右方向をＸ軸の正側、上方向をＹ軸の正側、後ろ方向をＺ軸の正側とする右手系の直交座標系を用いる。極座標系は、方位角φ及び天頂角θ、並びに撮影中心Ｃ点からの距離ｒによって座標が示される座標系を用いる。方位角は、第２光軸側（Ｚ軸の正側）を基準として、水平面内の反時計回りの角度φを示す。第１光軸（Ｚ軸の負側）は、方位角φがπラジアンの位置に存在する。ここでπは円周率を意味する。第２光軸は、方位角φが０ラジアンかつ２πラジアンの位置に存在する。天頂角は、撮影中心Ｃ点から天頂への上方向（Ｙ軸の正側）を基準として、撮影中心Ｃ点を中心として下に向かう角度θを示す。上方向は、天頂角θが０ラジアンの位置に存在する。下方向（Ｙ軸の負側）は、天頂角θがπラジアンの位置に存在する。全天球画像上の任意の画素ａの位置は、直交座標系で表した座標（ｘa ，ｙa ，ｚa ）と、極座標系で表した座標（ｒ，θa ，φa）とによって表現することができる。なお、座標（ｘ，ｙ，ｚ）及び座標（ｒ，θ，φ）は以下の（１）式及び（２）式によって相互に変換可能である。
【００２５】
【数１】
2020024687.tif 000003
【００２６】
カメラ３０の制御部３１は、図５Ｂに示すように、全天球画像を方位角φ＝０の線に沿って切断して、正距円筒図法により、横軸を方位角φとし縦軸を天頂角θとする平面に展開した長方形の撮影画像（以下では、パノラマ画像という）を生成する。このとき、方位角φ及び天頂角θをそれぞれ０〜１の範囲のｕ値及びｖ値に正規化し、横軸をｕ軸とし縦軸をｖ軸とする長方形のパノラマ画像を生成する。このパノラマ画像を構成する各画素には、全天球画像における各画素の輝度（画素値）が割り当てられる。なお、図５Ｂに示すように、長方形（平面）のパノラマ画像は、左下を原点（０，０）とし、原点（０，０）は、方位角φが２πラジアン（ｕ＝０．０）で天頂角θがπラジアン（ｖ＝０．０）の位置の画素を示す。また、パノラマ画像は、ｕ軸方向に方位角φが小さくなり、パノラマ画像の右端は方位角φが０ラジアン（ｕ＝１．０）の位置の画素であり、ｖ軸方向に天頂角θが小さくなり、パノラマ画像の上端は天頂角θが０ラジアン（ｖ＝１．０）の位置の画素である。方位角φ及び天頂角θと、ｕ値及びｖ値とは、以下の（３）式及び（４）式によって相互に変換可能である。
【００２７】
【数２】
2020024687.tif 000004
【００２８】
カメラ３０の制御部３１は、撮影中心Ｃ点（撮影位置）の位置情報と、図５Ｂに示すパノラマ画像とを通信部３３から第１情報処理装置１０へ送信する。なお、カメラ３０の制御部３１は、図５Ａに示す全天球画像の撮影画像を第１情報処理装置１０へ送信し、第１情報処理装置１０が、全天球画像から、図５Ｂに示すパノラマ画像を生成する処理を行ってもよい。第１情報処理装置１０の制御部１１は、カメラ３０から取得した撮影中心Ｃ点の位置情報とパノラマ画像とを対応付けてパノラマ画像ＤＢ１２ａに記録する。なお、カメラ３０は、Ｅｘｉｆ（Exchangeable image file format）形式を使用することにより、撮影中心Ｃ点の位置情報と撮影画像とを一つのファイルで送信することが可能である。
【００２９】
図６は、カメラ３０の撮影位置の例を示す模式図であり、図７は、パノラマ画像の例を示す模式図である。図６は、撮影対象の部屋を天井側から見た状態を示しており、図６に示す撮影対象の部屋にはベッド、ソファー、テーブル、椅子、テレビ等が設置されている。本実施形態では、例えば図６中の黒丸で示す２箇所で撮影を行い、窓側の撮影位置を前側撮影位置とし、部屋の入口側の撮影位置を後側撮影位置とする。撮影位置は図６に示す例に限らず任意の２箇所とすればよく、また３箇所以上としてもよい。図７Ａは前側撮影位置で撮影したパノラマ画像の例であり、図７Ｂは後側撮影位置で撮影したパノラマ画像の例である。撮影を行う場合、撮影位置（カメラ３０）の床面からの高さ、カメラ３０の上下方向及び左右方向を、それぞれの撮影位置で一致させる。また本実施形態では、後側撮影位置から前側撮影位置への方向（図６中に矢符ｔで示す方向）にカメラ３０の前側を向けて（第１光軸を一致させて）それぞれの撮影位置で撮影を行う。これにより、それぞれの撮影位置で、画像の上下方向が鉛直方向に一致し、左右端がＺ軸の正方向（カメラ３０の後側）に一致し、左右方向の中央がＺ軸の負方向（カメラ３０の前側）に一致するパノラマ画像を取得することができる。なお、本実施形態では、撮影対象の空間内における仮想視点の位置を、後側撮影位置を原点とし、後側撮影位置から前側撮影位置に向かう方向と、水平面内でこの方向に直交する方向とによる座標系の座標で示す。具体的には、図６に示すように、後側撮影位置から前側撮影位置に向かう方向をｔ軸とし、ｔ軸に直交する方向をｓ軸とし、ＳＴ座標系の座標（ｓ，ｔ）によって仮想視点の位置を表す。また本実施形態では、仮想視点の位置をｔ軸上の位置とし、座標（０，ｔ）によって表す。また、前側撮影位置と後側撮影位置との間の距離にかかわらず、後側撮影位置をＳＴ座標系の座標（０，０）で示し、前側撮影位置をＳＴ座標系の座標（０，１）で示す。
【００３０】
本実施形態では、撮影時の情報を用いて撮影後のパノラマ画像を補正することにより、それぞれの撮影位置で撮影したパノラマ画像の状態を一致させてもよい。例えばカメラ３０に設けられた加速度センサを用いて重力加速度を検出することにより、撮影時にカメラ３０が重力方向（即ち、鉛直方向の下向き）からどれだけ傾いていたかを検知できる。この情報を用いて撮影後のパノラマ画像における鉛直方向の傾きを補正（天頂補正）することにより、画像の上下方向が鉛直方向に一致するパノラマ画像を得ることができる。また地磁気センサ（電子コンパス）を用いて地磁気に対するカメラ３０の傾きを取得し、取得した傾きを用いて撮影後のパノラマ画像における方位角方向の傾きを補正（方位角補正）することができる。これにより、例えば北向きが画像の中央に一致するようにそれぞれのパノラマ画像を補正することができる。例えばカメラ３０の第１光軸が北東方向に一致した状態で撮影が行われた場合、カメラ３０の真北方向に位置する被写体は撮影後のパノラマ画像の中心よりもπ／４ラジアンだけ左側に移動した位置に存在する。この場合、撮影後のパノラマ画像全体を画像の左右幅の１／８（全周２πに対するズレ量π／４の比率）だけ右方向に平行移動させることにより、北向きが画像の中央に一致するパノラマ画像に補正できる。なお、このとき、パノラマ画像の左端の１／８の領域には、平行移動によってパノラマ画像の右端から削除した１／８の領域をそのままコピーすればよい。更に本実施形態では、それぞれのパノラマ画像を、北向きが画像の中央に一致するように補正した後、更に後側撮影位置から前側撮影位置を見た方向が画像の中央に一致するような方位角補正を行う。
【００３１】
次に、第１情報処理装置１０において制御部１１が仮想画像生成プログラムＰＧを実行することによって実現される機能について説明する。図８は、第１情報処理装置１０の制御部１１によって実現される機能を示すブロック図である。第１情報処理装置１０の制御部１１は、記憶部１２に記憶してある仮想画像生成プログラムＰＧを実行した場合、特徴点対応付け部５１、仮想スクリーン設定部５２、仮想スクリーン補正部５３、仮想画像生成部５５の各機能を実現する。なお、本実施形態では、これらの各機能を制御部１１が仮想画像生成プログラムＰＧを実行することにより実現するが、これらの一部を専用のハードウェア回路で実現してもよい。
【００３２】
特徴点対応付け部５１は、撮影対象の空間内の２箇所（前側撮影位置及び後側撮影位置）で撮影した２つのパノラマ画像において、同じ被写体が撮影された方位角方向の位置を対応付ける。ここで、パノラマ画像ＤＢ１２ａに記憶されている２つのパノラマ画像は共に、画像の上下方向が鉛直方向に一致し、左右端がカメラ３０の後側（図６中のｔ軸の負方向）に一致し、左右方向の中央がカメラ３０の前側（図６中のｔ軸の正方向）に一致するパノラマ画像である。また一般的に、カメラ３０は、撮影高さが画像の上下方向の中央となるようなパノラマ画像を生成する。なお、このようなパノラマ画像は、それぞれの撮影位置でカメラ３０を所定状態に配置して撮影することによって取得してもよく、撮影後に所定の補正処理を行うことによって取得してもよい。
【００３３】
よって、このような２つのパノラマ画像間では、画像の上下方向の中央部には同じ被写体が写っており、同じ被写体は、２箇所の撮影位置間の視差によってパノラマ画像中の異なる位置に写っている。また、画像の左右方向の中央部及び左右端部には同じ被写体の同じ部分が写っている。更に、一方のパノラマ画像において左側に写っている被写体は他方のパノラマ画像でも左側に写っており、一方のパノラマ画像において右側に写っている被写体は他方のパノラマ画像でも右側に写っている。
【００３４】
従って、特徴点対応付け部５１は、２つのパノラマ画像において、上下方向の中央部に写っている被写体の特徴点（画素）について対応付けを行う。即ち、特徴点対応付け部（対応付け部）５１は、２つのパノラマ画像において撮影時の撮影高さに対応する位置に方位角方向に並ぶ画素を特徴点として対応付ける。例えば、特徴点対応付け部５１は、図７Ａ，Ｂに示すように、２つのパノラマ画像において、上下方向の中央にＬ軸で示す左右方向に配置する画素のうちで同じ被写体の同じ部分の画素を特徴点Ｌ１〜Ｌ４としてそれぞれ対応付ける。図７Ａ，Ｂに示す２つのパノラマ画像では、特徴点Ｌ１，Ｌ２は左側のカーテンの左端及び右端であり、特徴点Ｌ３，Ｌ４は右側のカーテンの左端及び右端である。特徴点対応付け部５１は、２つのパノラマ画像中の特徴点を、図７Ａ，Ｂに示したＬ軸におけるＬ座標値で示し、対応付けた特徴点のＬ座標値をそれぞれ特徴点対応テーブル１２ｂに記憶する。なお、特徴点を示すＬ座標値は、Ｌ軸においてパノラマ画像の左端を０とし、左端からの画素数を示す。
【００３５】
図９は、特徴点対応テーブル１２ｂの構成例を示す模式図である。特徴点対応テーブル１２ｂには、特徴点対応付け部５１が対応付けた特徴点のペア毎に、ペア情報と、２つのパノラマ画像における特徴点のＬ座標値とが対応付けて記憶される。ペア情報は各ペアに固有に付与された識別情報である。２つのパノラマ画像は、撮影対象の空間内の２箇所（前側撮影位置及び後側撮影位置）で撮影したパノラマ画像であり、以下ではそれぞれを前側画像及び後側画像ということがある。特徴点対応付け部５１は、２つのパノラマ画像間で対応付けるべき特徴点を、例えばユーザ入力によって受け付けてもよい。この場合、例えば特徴点対応付け部５１は、第１情報処理装置１０の表示部１５に２つのパノラマ画像を表示し、特徴点とすべき箇所（画素）を入力部１４にて受け付ける。ユーザは、表示された２つのパノラマ画像において同じ被写体の同じ部分を特徴点として入力部１４を介して指定する。特徴点対応付け部５１は、入力部１４を介して受け付けた２つのパノラマ画像中の特徴点のＬ座標値をそれぞれ特定し、特定した２つのＬ座標値を特徴点対応テーブル１２ｂに記憶する。
【００３６】
また、特徴点対応付け部５１は、２つのパノラマ画像間で対応付けるべき特徴点を、２つのパノラマ画像におけるＬ軸上の各画素の画素値の変動に対して、Dynamic Time Warping等の手法を用いて自動的に抽出してもよい。この場合、特徴点対応付け部５１は、２つのパノラマ画像間で類似する画素を自動的に抽出し、抽出した画素を特徴点としてそれぞれ抽出した画素のＬ座標値を特徴点対応テーブル１２ｂに記憶する。
図９に示す特徴点対応テーブル１２ｂでは、パノラマ画像の左側で２１個のペアが対応付けられており、右側で１７個のペアが対応付けられているが、対応付けられる特徴点のペア数はこれに限らない。また、図９に示す特徴点対応テーブル１２ｂでは、パノラマ画像の左側のペアはＬ座標値が昇順となるように記憶されており、右側のペアはＬ座標値が降順となるように記憶されているが、記憶される順序はこれに限らない。
【００３７】
次に、特徴点対応付け部５１は、図９に示すような特徴点対応テーブル１２ｂに基づいて、それぞれ対応付けた特徴点における方位角の対応付けを行う。具体的には、特徴点対応付け部５１は、特徴点対応テーブル１２ｂに記憶したそれぞれの特徴点のＬ座標値を、図６に示したＳＴ座標系の方位角に変換する。カメラ３０で撮影したパノラマ画像の解像度（画素数）は予め分かっているので、特徴点対応付け部５１は、それぞれの特徴点のＬ座標値を方位角に変換できる。また、パノラマ画像における各画素のＳＴ座標系の方位角は、撮影位置を通り図６に示したｓ軸に平行な方向を０ラジアンとして、水平面内で撮影位置を中心に、パノラマ画像の右側では反時計回りの角度βで、パノラマ画像の左側では時計回りの角度βでそれぞれ示す。よって、ｔ軸の負方向（カメラ３０の後方向）は方位角βが−π／２ラジアンの位置に存在し、ｔ軸の正方向（カメラ３０の前方向）は方位角βがπ／２ラジアンの位置に存在する。また前側画像における各画素の方位角はβF で示し、後側画像における各画素の方位角はβR で示す。特徴点対応付け部５１は、２つのパノラマ画像の特徴点のＬ座標値を方位角βF 、βR に変換した後、それぞれ変換した方位角βF 、βR の正接tanβF 、tanβR を更に算出し、それぞれ算出した方位角の正接を対応付けて方位角対応テーブル１２ｃに記憶する。
【００３８】
図１０は、特徴点対応付け部５１による方位角の対応付けを示す模式図である。図１０Ａは、方位角対応テーブル１２ｃの構成例を示す模式図であり、図１０Ｂは、２つのパノラマ画像において対応付けられた特徴点の方位角の正接の関係を示す図である。方位角対応テーブル１２ｃには、特徴点対応付け部５１が算出した各特徴点の方位角の正接が、対応付けられたペア毎に記憶されている。なお、図１０Ａには、図９に示す特徴点対応テーブル１２ｂに記憶されたパノラマ画像左側の特徴点のペアについて、それぞれの特徴点の方位角の正接が記憶してある方位角対応テーブル１２ｃを示す。特徴点対応付け部５１は、特徴点対応テーブル１２ｂに記憶されたパノラマ画像右側の特徴点のペアについても同様の構成を有する方位角対応テーブル１２ｃを生成する。
図１０Ｂに示す図では、横軸が後側画像における各画素の方位角の正接（tanβR ）を示し、縦軸がｔ軸（図６中のｔ軸であり、カメラ３０の前方向）を示す。図１０Ｂに示す図において、ｔ＝１の破線は、前側画像における各画素の方位角の正接（tanβF ）を示しており、対応付けられた前側画像における特徴点の方位角の正接と後側画像における特徴点の方位角の正接とが実線で結ばれている。
【００３９】
本実施形態では、特徴点対応付け部５１は、図９に示す特徴点対応テーブル１２ｂを生成し、特徴点対応テーブル１２ｂに基づいて、図１０Ａに示す方位角対応テーブル１２ｃを生成するが、この構成に限らない。例えば、特徴点対応付け部５１は、図９に示すように２つのパノラマ画像間で対応付けられた特徴点のＬ座標値を特徴点対応テーブル１２ｂに記憶する代わりに、特徴点の方位角を特徴点対応テーブル１２ｂに記憶してもよい。また、特徴点対応付け部５１は、特徴点対応テーブル１２ｂを生成せずに、方位角対応テーブル１２ｃのみを生成する構成でもよい。
【００４０】
仮想スクリーン設定部５２は、第２情報処理装置２０から取得したユーザの頭部の位置及び向きに基づいて、仮想視点及び仮想スクリーンを設定する。なお、ユーザの頭部の位置及び向きは、ユーザの頭部に装着された第２情報処理装置２０のセンサ部２５によって所定のタイミングで検出され、検出結果が逐次第１情報処理装置１０へ送信される。仮想視点の位置は、ユーザの頭部の中心であり、例えば第１情報処理装置１０の動作開始時は撮影対象の部屋（空間）において前側撮影位置又は後側撮影位置、或いは前側撮影位置と後側撮影位置との間の中央位置等の所定位置としてもよい。よって、仮想スクリーン設定部５２は、動作開始時は撮影対象の部屋における所定位置を仮想視点に設定し、以降はユーザの移動に伴って仮想視点を移動させる（変更する）。なお、本実施形態では、仮想視点の位置は、図６に示したｔ軸上の位置とし、ＳＴ座標系の座標（０，ｔ）によって示される。仮想スクリーンは、仮想視点から、ユーザの頭部の向きが示す視線方向に所定距離隔てた位置に設けられる仮想の画像表示領域である。仮想スクリーンは、視線方向に直交し、所定の画角を有する矩形平面であり、複数の仮想画素が二次元的に配置されている。一例として、仮想視点から１ｍの距離を隔てた位置に画角が９０°の仮想スクリーンを設定してもよい。
【００４１】
仮想スクリーン設定部５２は、まず、仮想視点を原点とし、視線方向を天頂角θ及び方位角φが共に０ラジアンの方向とした状態（即ち、原点から一旦Ｚ軸の正側を向き、その後真上（Ｙ軸の正側）を見上げた状態）での基本スクリーンを設定する。なお、基本スクリーンは、仮想視点からの距離をｄとし、画角をfovとした場合、以下の（５）に示す直交座標系の座標によって示される四隅の仮想画素によって設定される。
【００４２】
【数３】
2020024687.tif 000005
【００４３】
次に、仮想スクリーン設定部５２は、視線方向に基づいて基本スクリーンに対して回転処理を行う。ここで、仮想視点Ｖの座標を（Ｖx ，Ｖy ，Ｖz ）で表し、視線方向を示すベクトルを（Ｖθ，Ｖφ）で表す。回転の方向は回転軸の正側から見て反時計回りを正方向とすると、視線方向を示すベクトルが（Ｖθ，Ｖφ）である場合、Ｘ軸を中心にＶθ回転させ、その後、Ｙ軸を中心にＶφ回転させる処理を行う。この２つの回転処理はそれぞれ３×３の行列で表現でき、全体を合成変換で表すことができる。従って、仮想スクリーン設定部５２は、上記（５）に示す基本スクリーンの四隅の仮想画素の座標（ｘ，ｙ，ｚ）のそれぞれに対して、以下の（６）式に基づく変換処理を行うことにより、基本スクリーンに回転処理を行うことができる。これにより、仮想スクリーンの四隅の仮想画素の座標が算出され、算出された四隅の仮想画素の座標によって、逐次変更されるユーザの頭位の位置及び向き（仮想視点Ｖ及び視線方向）に基づく仮想スクリーンを設定できる。
【００４４】
【数４】
2020024687.tif 000006
【００４５】
ここで、仮想スクリーン設定部５２は、基本スクリーンを縦横に分割した例えば３０×３０区画のセルに分割し、セル毎に上述の処理を行う。例えば、上述のように設定した基本スクリーンの四隅の仮想画素を含み、基本スクリーンを分割した各セルの頂点となる仮想画素（これらをまとめて格子点という）に対して、上記の（６）式に基づく変換処理を行う。これにより、仮想スクリーンにおける各格子点の座標が設定され、各格子点の座標によって仮想スクリーンが設定される。なお、基本スクリーンにおける各格子点の座標は、上記の（５）に示す基本スクリーンの四隅の仮想画素の座標に基づき、Ｘ軸、Ｙ軸及びＺ軸方向にセルの数で分割した各値とすることができる。
【００４６】
仮想スクリーン設定部５２は、仮想スクリーンにおける各格子点の直交座標系の座標値（ｘ，ｙ，ｚ）を算出した後、極座標系の座標値に変換し、仮想視点Ｖから仮想スクリーンを見た際の各格子点の天頂角θV 及び方位角φV を算出する。なお、仮想スクリーン設定部５２は、上記の（２）式によって直交座標系の座標値を極座標系の座標値に変換する。仮想スクリーン設定部５２は、設定した仮想スクリーンに関する情報を仮想スクリーンテーブル１２ｄに記憶する。
【００４７】
図１１は、仮想スクリーンテーブル１２ｄの構成例を示す模式図である。仮想スクリーンテーブル１２ｄには、仮想スクリーンのセル毎に、セルＩＤと、各セルの四隅の仮想画素である格子点の格子点ＩＤ及び座標と、各格子点である仮想画素の仮想画素ＩＤとが対応付けて記憶される。セルＩＤは各セルに固有に付与された識別情報であり、格子点ＩＤは各格子点に固有に付与された識別情報であり、仮想画素ＩＤは各仮想画素に固有に付与された識別情報である。仮想スクリーン設定部５２は、基本スクリーンからセルを分割する都度、分割したセルに対するセルＩＤ、セルの格子点に対する格子点ＩＤ、格子点である仮想画素に対する仮想画素ＩＤを割り当てて仮想スクリーンテーブル１２ｄに記憶する。また、仮想スクリーン設定部５２は、基本スクリーンを分割した各セルの格子点の座標値に対して上記の（６）式に基づく変換処理及び極座標系への変換処理を行う都度、算出した極座標系の座標値θV ，φV を格子点ＩＤに対応付けて仮想スクリーンテーブル１２ｄに記憶する。仮想スクリーン設定部５２は、基本スクリーンの全てのセルについて上述した処理を行うことにより、仮想スクリーンの全てのセルの情報が仮想スクリーンテーブル１２ｄに記憶され、仮想スクリーンが設定される。
【００４８】
仮想スクリーン補正部５３は、仮想スクリーン設定部５２によって設定された仮想スクリーンに対して、特徴点対応付け部５１によって生成された方位角対応テーブル１２ｃに基づく補正処理を行い、前側画像用仮想スクリーン及び後側画像用仮想スクリーンを生成する。具体的には、仮想スクリーン補正部５３は、仮想スクリーンテーブル１２ｄに記憶された各格子点の座標の方位角φV を、方位角対応テーブル１２ｃに基づいてそれぞれ補正し、前側画像用仮想スクリーンテーブル１２ｅと後側画像用仮想スクリーンテーブル１２ｆとを生成する。前側画像用仮想スクリーンテーブル１２ｅ及び後側画像用仮想スクリーンテーブル１２ｆは、仮想スクリーンテーブル１２ｄ中の各格子点の座標の方位角φV の値が異なるほかは仮想スクリーンテーブル１２ｄと同様の構成を有する。
【００４９】
仮想スクリーン補正部５３はまず、仮想スクリーンテーブル１２ｄに記憶された各格子点の方位角φV を、以下の（７），（８）式を用いて、図６に示したＳＴ座標系における方位角βV に変換する。なお、仮想スクリーン補正部５３は、パノラマ画像の右半分に対応する格子点については（７）式を用い、パノラマ画像の左半分に対応する格子点については（８）式を用いる。また、仮想スクリーン補正部５３は、パノラマ画像の左右方向の中央に対応する格子点についてはβV ＝π／２とし、パノラマ画像の左右方向の左端又は右端に対応する格子点についてはβV ＝−π／２とする。
【００５０】
【数５】
2020024687.tif 000007
【００５１】
次に仮想スクリーン補正部５３は、ＳＴ座標系の空間において、上述したように変換した仮想スクリーンの各格子点の方位角βV に対応する前側画像における画素の方位角βF と後側画像における画素の方位角βR とを求める。ここで、仮想スクリーンにおける方位角βVとパノラマ画像（前側画像及び後側画像）における方位角βF ，βRとの関係について説明する。図１２は、仮想スクリーンにおける方位角βVとパノラマ画像における方位角βF ，βRとの関係を示す模式図である。ここでは、仮想視点ＶをＳＴ座標系の空間において後側撮影位置（０，０）と前側撮影位置（０，１）との間の任意の位置（０，ｔV ）とする。図１２に示すように、ＳＴ空間において被写体Ｐの位置は前側撮影位置（０，１）から見た方位角βF と後側撮影位置（０，０）から見た方位角βRとにより一意に定まり、仮想視点Ｖから被写体Ｐを見た方位角βVは、仮想視点Ｖのｔ座標値ｔV と被写体Ｐの位置とで一意に定まる。即ち、仮想視点Ｖから被写体Ｐを見た方位角βVは、前側撮影位置から被写体Ｐを見た方位角βF と後側撮影位置から被写体Ｐを見た方位角βRと仮想視点Ｖのｔ座標値ｔV とにより一意に定まる。従って、３つの方位角βV，βF ，βRは以下の（９）式で表される関係を有する。なお、図１２では被写体Ｐがカメラ３０の右側（ｔ軸よりも右側）に位置する状態を示すが、被写体がカメラ３０の左側（ｔ軸よりも左側）に位置する場合でも同様の関係を有する。
【００５２】
tanβV ＝ｔV tanβF ＋（１−ｔV ）tanβR       …（９）
【００５３】
従って、仮想スクリーン補正部５３は、上記の（９）式及び方位角対応テーブル１２ｃに基づいて、仮想スクリーンの各格子点の方位角βV に対応する前側画像における画素の方位角βF と後側画像における画素の方位角βR とを求める。図１３は、仮想スクリーン補正部５３による処理を説明するための模式図である。図１３は、図１０Ｂに示した前側画像及び後側画像における特徴点の対応付けを示しており、例えば前側画像における特徴点（tanβFi）と後側画像における特徴点（tanβRi）とがペアＣｉとして対応付けられており、前側画像における特徴点（tanβFi+1）と後側画像における特徴点（tanβRi+1）とがペアＣi+1として対応付けられている。
【００５４】
仮想スクリーン補正部５３は、仮想スクリーンテーブル１２ｄから１つの格子点の方位角βVを読み出し、仮想スクリーン設定部５２が設定した仮想視点Ｖの位置（ここでは、ｔ座標値ｔV ）を取得する。仮想スクリーン補正部５３は、仮想スクリーンにおける処理対象の格子点Ｇの方位角の正接tanβV に対応する前側画像の画素の方位角の正接tanβFV及び後側画像の画素の方位角の正接tanβRVを算出する。まず、仮想スクリーン補正部５３は、方位角対応テーブル１２ｃに記憶してある特徴点の各ペアと、仮想視点Ｖのｔ座標値と、上記の（９）式とに基づいて、特徴点の各ペアにおいてｔ座標値ｔV に対応する方位角の正接を算出する。算出した方位角の正接が、格子点Ｇの方位角の正接tanβV に一致した場合、仮想スクリーン補正部５３は、算出に用いたペア（前側画像の特徴点の方位角の正接tanβF及び後側画像の特徴点の方位角の正接tanβR）を、格子点Ｇの方位角の正接tanβV に対応する前側画像の画素の方位角の正接tanβFV及び後側画像の画素の方位角の正接tanβRVに特定する。
【００５５】
図１３Ａには、ペアＣi において算出したｔ座標値ｔV に対応する方位角の正接が、格子点Ｇの方位角の正接tanβV に一致した場合の例を示す。この場合、格子点Ｇの方位角の正接tanβV に対応する前側画像の画素の方位角の正接tanβFV及び後側画像の画素の方位角の正接tanβRVは、ペアＣi におけるtanβFi及びtanβRiに特定される。よって、仮想スクリーン補正部５３は、特定した前側画像における方位角の正接tanβFi（tanβFV）から方位角βFi（βFV）を算出し、前側画像用仮想スクリーンテーブル１２ｅに記憶する。また、仮想スクリーン補正部５３は、特定した後側画像における方位角の正接tanβRi（tanβRV）から方位角βRi（βRV）を算出し、後側画像用仮想スクリーンテーブル１２ｆに記憶する。このとき、仮想スクリーン補正部５３は、格子点Ｇの方位角βFi又は方位角βRi以外は仮想スクリーンテーブル１２ｄと同じ情報をそれぞれ記憶する。
【００５６】
図１４は、前側画像用仮想スクリーンテーブル１２ｅの構成例を示す模式図である。前側画像用仮想スクリーンテーブル１２ｅは仮想スクリーンテーブル１２ｄと同様の構成を有し、セル毎に、セルＩＤと、各セルの四隅の仮想画素である格子点の格子点ＩＤ及び座標と、各格子点である仮想画素の仮想画素ＩＤとが対応付けて記憶される。後側画像用仮想スクリーンテーブル１２ｆは、前側画像用仮想スクリーンテーブル１２ｅと同様の構成を有する。なお、前側画像用仮想スクリーンテーブル１２ｅ及び後側画像用仮想スクリーンテーブル１２ｆは、図１４に示す構成のほかに、例えば、格子点毎に格子点ＩＤ及び格子点座標と、仮想画素ＩＤとが対応付けて記憶される構成でもよい。
【００５７】
図１３Ｂは、特徴点の各ペアにおいて算出したｔ座標値ｔV に対応する方位角の正接が、格子点Ｇの方位角の正接tanβV に一致しない場合の例を示す。この場合、仮想スクリーン補正部５３は、各ペアにおいて算出した方位角の正接が、格子点Ｇの方位角の正接tanβV の前後の値となるペアを特定する。図１３に示す例では、ペアＣi において算出した方位角の正接（Ｇi）と、ペアＣi+1 において算出した方位角の正接（Ｇi+1）とが、格子点Ｇの方位角の正接tanβV の前後の値となる。図１３Ｂに示すような横軸をtanβR とし縦軸をｔ軸とした二次元空間において、格子点Ｇ（tanβV ，ｔV ）は、直線ｔ＝０及びｔ＝１と、２つのペアＣi 及びＣi+1 の対応を示す線分とに囲まれた台形領域内に存在する。また、直線ｔ＝ｔV において線分ＧiＧi+1は格子点Ｇで内分され、仮想スクリーン補正部５３は、ペアＣi において算出した方位角の正接（Ｇi）と、ペアＣi+1 において算出した方位角の正接（Ｇi+1）と、格子点Ｇの方位角の正接tanβV とに基づいて、内分比（ε：１−ε）を算出する。そして、仮想スクリーン補正部５３は、ペアＣi の前側画像におけるtanβFiとペアＣi+1 の前側画像におけるtanβFi+1と内分比（ε：１−ε）とに基づいて、格子点Ｇの方位角の正接tanβV に対応する前側画像における方位角の正接tanβFVを算出する。具体的には、仮想スクリーン補正部５３は、図１３Ｂに示す二次元空間において、線分tanβFi tanβFi+1をε：１−εで内分する点tanβFVを算出する。同様に、仮想スクリーン補正部５３は、ペアＣi の後側画像におけるtanβRiとペアＣi+1 の後側画像におけるtanβRi+1と内分比（ε：１−ε）とに基づいて、格子点Ｇの方位角の正接tanβV に対応する後側画像における方位角の正接tanβRVを算出する。
【００５８】
そして、仮想スクリーン補正部５３は、算出した前側画像における方位角の正接tanβFVから方位角βFVを算出し、前側画像用仮想スクリーンテーブル１２ｅに記憶する。また、仮想スクリーン補正部５３は、特定した後側画像における方位角の正接tanβRVから方位角βRVを算出し、後側画像用仮想スクリーンテーブル１２ｆに記憶する。このときも仮想スクリーン補正部５３は、格子点Ｇの方位角βFV又は方位角βRV以外は仮想スクリーンテーブル１２ｄと同じ情報をそれぞれ記憶する。
仮想スクリーン補正部５３は、仮想スクリーンテーブル１２ｄに記憶してある全ての格子点の方位角βVに対して上述した処理を行うことにより、仮想スクリーン設定部５２が設定した仮想スクリーンを補正して、前側画像用仮想スクリーン及び後側画像用仮想スクリーンを生成する。具体的には、仮想スクリーン補正部５３は、前側画像用仮想スクリーンテーブル１２ｅと後側画像用仮想スクリーンテーブル１２ｆとを生成する。
【００５９】
仮想画像生成部５５は、パノラマ画像ＤＢ１２ａに記録されたパノラマ画像（前側パノラマ画像及び後側パノラマ画像）と、仮想スクリーン設定部５２及び仮想スクリーン補正部５３によって生成された前側画像用仮想スクリーン及び後側画像用仮想スクリーンとに基づいて、第２情報処理装置２０を装着したユーザに提供する仮想画像を生成する。仮想画像生成部５５は、仮想ビュー生成部５６、合成割合特定部５７、合成部５８を有する。仮想ビュー生成部５６は、前側画像用仮想スクリーンと前側パノラマ画像とに基づいて、前側画像の仮想ビュー（中間仮想画像）を生成する。また仮想ビュー生成部５６は、後側画像用仮想スクリーンと後側パノラマ画像とに基づいて、後側画像の仮想ビュー（中間仮想画像）を生成する。具体的には、仮想ビュー生成部５６は、仮想スクリーンにおける各仮想画素とパノラマ画像における各画素との対応付けを行い、仮想スクリーンの各仮想画素に、それぞれ対応付けられたパノラマ画像の画素の輝度（画素値）を割り当てることにより仮想ビューを生成する。各仮想画素に割り当てられる画素値は、撮影画像（パノラマ画像）が白黒画像である場合、例えば０から２５５までの２５６階調の数値が割り当てられる。また、撮影画像がカラー画像である場合、赤色、緑色、青色のそれぞれについて例えば０から２５５までの数値が割り当てられる。
【００６０】
仮想ビュー生成部５６は、まず、前側画像用仮想スクリーンテーブル１２ｅから１つの格子点の座標値を読み出し、ＳＴ座標系における方位角βF を以下の（１０），（１１）式を用いて極座標系の方位角φF に変換する。なお、仮想ビュー生成部５６は、前側画像用仮想スクリーンの右半分に含まれる格子点については（１０）式を用い、前側画像用仮想スクリーンの左半分に含まれる格子点については（１１）式を用いる。仮想ビュー生成部５６は、前側画像用仮想スクリーンテーブル１２ｅから読み出した格子点の天頂角θと、変換した方位角φF とによる極座標系の座標（θ，φF）を上記の（４）式によって座標（ｕ，ｖ）に変換する。仮想ビュー生成部５６は、前側パノラマ画像において、得られた座標（ｕ，ｖ）の画素を、前側画像用仮想スクリーンの格子点（θ，βF ）に対応付け、画素対応テーブル１２ｇに記憶する。
【００６１】
【数６】
2020024687.tif 000008
【００６２】
図１５は、画素対応テーブル１２ｇの構成例を示す模式図である。画素対応テーブル１２ｇには、パノラマ画像の画像ＩＤ（パノラマ画像ＩＤ）と、前側画像用仮想スクリーンの各格子点の格子点ＩＤと、各格子点に対応付けられた前側パノラマ画像の画素の座標（対応画素座標）とが対応付けて記憶される。パノラマ画像ＩＤはパノラマ画像に固有に付与された識別情報であり、例えばパノラマ画像と共にパノラマ画像ＤＢ１２ａに記憶されている。格子点ＩＤは前側画像用仮想スクリーンテーブル１２ｅに記憶されている格子点ＩＤと同じである。対応画素座標は、上述した処理により前側画像用仮想スクリーンの各格子点に対応付けられた前側パノラマ画像における画素の座標（ｕ，ｖ）である。
【００６３】
仮想ビュー生成部５６は、前側画像用仮想スクリーンテーブル１２ｅから１つの格子点の格子点ＩＤ及び座標を読み出す都度、読み出した格子点ＩＤを画素対応テーブル１２ｇに記憶する。そして、仮想ビュー生成部５６は、読み出した格子点の座標値に対して上述した処理を行い、この格子点に対応付けた前側パノラマ画像の画素の座標（ｕ，ｖ）を格子点ＩＤに対応付けて画素対応テーブル１２ｇに記憶する。仮想ビュー生成部５６は、前側画像用仮想スクリーンテーブル１２ｅに記憶された全ての格子点に対して上述した処理を行うことにより、前側画像用仮想スクリーンの全ての格子点と、前側パノラマ画像の画素との対応付けを行う。仮想ビュー生成部５６は、後側画像用仮想スクリーンテーブル１２ｆについても同様の処理を行い、後側画像用仮想スクリーンの全ての格子点と、後側パノラマ画像の画素との対応付けを行う。なお、後側パノラマ画像についても、パノラマ画像ＩＤ、後側画像用仮想スクリーンの各格子点の格子点ＩＤ、各格子点に対応付けられた後側パノラマ画像の画素の座標値が対応付けて画素対応テーブル１２ｇに記憶される。
【００６４】
前側画像用仮想スクリーンの全ての格子点に対して前側パノラマ画像の画素の対応付けを行った後、仮想ビュー生成部５６は、例えばコンピュータグラフィックスによるレンダリング機能（テクスチャマッピング）を利用し、前側画像用仮想スクリーンの各仮想画素に輝度（画素値）を割り当てて前側画像の仮想ビューを生成する。また、後側画像用仮想スクリーンの全ての格子点に対して後側パノラマ画像の画素の対応付けを行った後、仮想ビュー生成部５６は、後側画像用仮想スクリーンの各仮想画素に輝度（画素値）を割り当てて後側画像の仮想ビューを生成する。具体的には、仮想ビュー生成部５６は、前側画像用仮想スクリーンテーブル１２ｅ及び画素対応テーブル１２ｇに基づいて、前側画像用仮想スクリーンの各仮想画素に対して、前側パノラマ画像の各画素の画素値（輝度）を割り当てる。また、仮想ビュー生成部５６は、後側画像用仮想スクリーンテーブル１２ｆ及び画素対応テーブル１２ｇに基づいて、後側画像用仮想スクリーンの各仮想画素に対して、後側パノラマ画像の各画素の画素値（輝度）を割り当てる。
【００６５】
図１６は、仮想ビューＤＢ１２ｈの構成例を示す模式図であり、図１７及び図１８は、レンダリング処理を説明するための模式図である。仮想ビューＤＢ１２ｈには、パノラマ画像のパノラマ画像ＩＤと、仮想スクリーンの各仮想画素の仮想画素ＩＤと、各仮想画素に割り当てられた輝度（画素値）とが対応付けて記憶される。仮想ビュー生成部５６は、例えば前側画像用仮想スクリーンテーブル１２ｅから１つのセルにおける４つの格子点ＩＤと、各格子点ＩＤに対応する４つの仮想画素ＩＤとを読み出す。次に仮想ビュー生成部５６は、読み出した４つの格子点ＩＤのそれぞれに対応付けられた前側パノラマ画像の画素の座標（対応画素座標）を画素対応テーブル１２ｇから読み出す。そして仮想ビュー生成部５６は、読み出した前側パノラマ画像の画素の座標（ｕ，ｖ）に対応する画素値（輝度）を、パノラマ画像ＤＢ１２ａに記憶してある前側パノラマ画像から取得する。仮想ビュー生成部５６は、前側画像用仮想スクリーンテーブル１２ｅから読み出した４つの仮想画素ＩＤと、前側パノラマ画像から取得した輝度とをそれぞれ対応付けて仮想ビューＤＢ１２ｈに記憶する。図１７に示す例では、仮想スクリーンにおける１つのセルの格子点である仮想画素Ｃ１〜Ｃ４の輝度に、パノラマ画像の画素Ｐ１〜Ｐ４の輝度がそれぞれ割り当てられる。
【００６６】
次に、仮想ビュー生成部５６は、前側画像用仮想スクリーンテーブル１２ｅから読み出した格子点ＩＤの格子点によるセル内の他の仮想画素について、前側パノラマ画像の各画素の輝度を割り当てる。ここでは、仮想ビュー生成部５６は、まず、セル内の各仮想画素に対応する前側パノラマ画像の各画素の座標値を、画素対応テーブル１２ｇから読み出した４つの対応画素座標（ｕ，ｖ）に基づいて算出する。仮想ビュー生成部５６は、４つの対応画素座標のｕ値及びｖ値に対して、例えばバイリニア法等の補間演算を行うことによって、セル内の各仮想画素に対応する前側パノラマ画像の各画素の座標（ｕ，ｖ）を算出する。そして、仮想ビュー生成部５６は、算出した各画素の座標（ｕ，ｖ）に対応する画素値（輝度）を前側パノラマ画像から取得し、取得した各画素値（輝度）と、セル内の各仮想画素に付与された仮想画素ＩＤとをそれぞれ対応付けて仮想ビューＤＢ１２ｈに記憶する。これにより、図１７に示す仮想スクリーンにおけるセル内の各仮想画素の輝度に、前側パノラマ画像の画素Ｐ１〜Ｐ４で囲まれた領域内の各画素の輝度がそれぞれ割り当てられる。
【００６７】
仮想ビュー生成部５６は、前側画像用仮想スクリーンテーブル１２ｅに記憶された全てのセルに対して上述した処理を行うことにより、前側画像用仮想スクリーンの全ての仮想画素に対して、前側パノラマ画像の各画素の輝度を割り当てることができる。これにより、１つの前側パノラマ画像から、第２情報処理装置２０を装着したユーザの頭部の位置及び向きに応じた仮想ビューが生成される。なお、図１７ではセルに対応するパノラマ画像（前側パノラマ画像）の領域を長方形で示しているが、セルに対応するパノラマ画像の領域は、必ずしも長方形に限定されず、４頂点で囲まれる閉領域となる。
【００６８】
ここで、図１８Ａに示す画素Ｐ１〜Ｐ４で囲まれた領域のように、仮想スクリーンのセルに対応するパノラマ画像の領域が、ｕ＝１．０（ｕ＝１．０はｕ＝０．０と一致）をまたぐ場合、図１８Ｂに示すように各画素のｕ値（０．９５，０．０５）に基づいて、領域内の各画素のｕ値を正確に算出（補間）できないという問題が生じる。よって、仮想ビュー生成部５６は、仮想スクリーンの各格子点（各仮想画素）に、パノラマ画像の各画素を割り当てた際に、隣り合う２つの画素のｕ値が規定値（例えば０．５）以上離れているか否かを判断し、離れていると判断した場合、この画素で囲まれる領域は、ｕ＝１．０をまたぐ領域である可能性が高いと判断できる。また、ｕ＝１．０をまたぐ領域である可能性が高いと判断した場合、仮想ビュー生成部５６は、４つの画素のｕ値のうちで小さい方のｕ値に１．０を加算する。これにより、図１８Ｂに示す例では、画素Ｐ２，Ｐ３のｕ値が１．０５となるので、画素Ｐ１〜Ｐ４のｕ値に基づく補間演算により、この領域内の各画素の座標（ｕ値）を算出できる。
【００６９】
仮想ビュー生成部５６は、後側画像用仮想スクリーンテーブル１２ｆについても同様の処理を行い、後側画像用仮想スクリーンの全ての仮想画素に対して、後側パノラマ画像の各画素の輝度を割り当てる。よって、後側パノラマ画像についても仮想ビューが生成され、パノラマ画像ＩＤ、後側画像用仮想スクリーンの各仮想画素の仮想画素ＩＤ、各仮想画素に割り当てられた輝度が対応付けて仮想ビューＤＢ１２ｈに記憶される。
【００７０】
本実施形態では、仮想ビュー生成部５６は、仮想スクリーンの各格子点についてのみ、対応するパノラマ画像の画素の座標を上述の演算によって算出し、仮想スクリーンの他の仮想画素に対応するパノラマ画像の画素の座標ついては補間演算によって算出する。これにより、仮想ビュー生成部５６における演算負荷が軽減され、パノラマ画像描画を高速に行うことが可能となる。なお、仮想ビュー生成部５６は、例えばＯｐｅｎＧＬやＤｉｒｅｃｔＸ等のグラフィックライブラリー（グラフィックＡＰＩ）を用いてテクスチャマッピング処理を行うことにより、仮想スクリーンの各仮想画素にパノラマ画像の各画素の画素値を割り当てるレンダリング処理を行ってもよい。この場合、例えば画素対応テーブル１２ｇの記憶情報のように、仮想スクリーンの各格子点と、パノラマ画像の各画素との対応を指定することにより、グラフィックライブラリーが仮想スクリーンの各仮想画素に対応するパノラマ画像の各画素の座標値を算出する補間演算、各仮想画素に対するパノラマ画像の各画素の画素値の割当（コピー）等を高速に行うことができる。
【００７１】
本実施形態の仮想画像生成部５５は、室内における２箇所（前側撮影位置及び後側撮影位置）で撮影して得られたパノラマ画像のそれぞれから、仮想ビュー生成部（中間画像生成部）５６による上述した処理によって２つの仮想ビューを生成する。仮想画像生成部５５は、生成した２つの仮想ビューを合成し、ユーザが指定した仮想視点及び視線方向（ユーザの頭部の位置及び向き）に応じた仮想画像を生成する。このとき、仮想画像生成部５５は、撮影対象の室内において、２箇所の撮影位置と仮想視点の位置との関係に応じて、各仮想ビューの合成割合（合成率）を異ならせる。合成割合特定部（割合特定部）５７は、各仮想ビューの合成割合を特定し、合成部５８は、各仮想ビューを、それぞれ特定された合成割合で合成して仮想画像を生成する。
【００７２】
合成割合特定部５７は、仮想視点の位置とそれぞれの撮影位置との位置関係に応じて、各仮想ビューに対する合成割合（合成強度）を特定する。合成割合特定部５７は、例えば、仮想視点からそれぞれの撮影位置までの距離が短いほど、それぞれの撮影位置で撮影したパノラマ画像から生成された仮想ビューに対する合成割合を高く設定する。例えば、合成割合特定部５７は、仮想視点と撮影位置との距離をｄとした場合の合成強度Ｓを、Ｓ＝１／ｄで表される関数に基づいて特定する。なお、合成強度Ｓが距離ｄの増加に伴い単調減少する関数であれば、どのような関数を用いてもよい。
【００７３】
また例えば、仮想視点をＳＴ座標系の空間において後側撮影位置（０，０）と前側撮影位置（０，１）との間の任意の位置（０，ｔ）とする。合成割合特定部５７は、ｔ値の増加に伴って前側画像の仮想ビューに対する合成割合αF が単調増加し、後側画像の仮想ビューに対する合成割合αR が単調減少し、αF ＋αR＝１を満たすように、それぞれの仮想ビューに対する合成割合を以下の（１２）式を用いて特定してもよい。
【００７４】
【数７】
2020024687.tif 000009
【００７５】
また、合成割合特定部５７は、仮想視点がいずれかの撮影位置から所定距離未満の位置である場合に、この撮影位置で撮影したパノラマ画像から仮想ビュー生成部５６が生成した仮想ビューに対する合成割合が１（１００％）となるように各仮想ビューの合成割合を設定してもよい。この場合、合成部５８は、仮想ビューＤＢ１２ｈから読み出した、仮想視点から最も近い撮影位置で撮影されたパノラマ画像から生成された仮想ビューをそのまま仮想画像として出力する。
【００７６】
合成部５８は、それぞれの撮影位置で撮影したパノラマ画像から仮想ビュー生成部５６が生成した仮想ビューのそれぞれを、合成割合特定部５７が特定した合成割合で合成し、仮想画像を生成する。合成部５８は、例えば仮想ビューのそれぞれについて、各画素値に対して、仮想ビュー毎に特定された合成割合を乗算し、乗算後の各仮想ビューの各画素値を加算することにより、仮想画像を生成する。このほかに、合成部５８は、各仮想ビューをアルファブレンディングによって重ねることにより仮想画像を生成してもよい。例えば、２つの第１〜第２仮想ビューをそれぞれ合成割合５０％，５０％で合成する場合、合成部５８は、初期化されたスクリーンに対して第１仮想ビューを合成割合１００％で合成した後、第２仮想ビューを合成割合５０％で合成する。この結果、スクリーン上には第１仮想ビュー及び第２仮想ビューがそれぞれ合成割合５０％で合成された仮想画像が生成される。
【００７７】
上述した各機能により、第１情報処理装置１０は、カメラ３０で撮影されたパノラマ画像と、第２情報処理装置２０によって検出されたユーザの頭部の位置及び向きとに基づいて、ユーザに提供する仮想画像を生成できる。第１情報処理装置１０は、上述したように生成した仮想画像を第２情報処理装置２０へ送信し、第２情報処理装置２０が表示部２４に表示させることにより、第２情報処理装置２０を装着したユーザに、ユーザの頭部の位置及び向きに応じた仮想画像を提供できる。これにより、第１情報処理装置１０は、カメラ３０で撮影した部屋を、部屋の中の任意の視点から任意の方向を見た状態の仮想画像をユーザに提供できる。
【００７８】
次に、カメラ３０を用いて室内を撮影した際にカメラ３０及び第１情報処理装置１０が行う処理をフローチャートに基づいて説明する。図１９は、撮影時にカメラ３０及び第１情報処理装置１０が行う処理の手順を示すフローチャートである。以下の処理は、カメラ３０の記憶部３２に記憶してある制御プログラムに従って制御部３１によって実行され、第１情報処理装置１０の記憶部１２に記憶してある制御プログラムに従って制御部１１によって実行される。なお、撮影を行う場合、カメラ３０はユーザ又はロボット等により所定の位置及び向きに配置されるものとする。
【００７９】
カメラ３０の制御部３１は、シャッターボタン３４からの指示に基づいて撮影部３５による撮影を行う（Ｓ１）。制御部３１は、撮影により、図５Ａに示すような全天球画像を生成し（Ｓ２）、全天球画像から図５Ｂに示すような平面のパノラマ画像を生成する（Ｓ３）。制御部３１は、生成したパノラマ画像を第１情報処理装置１０に送信する（Ｓ４）。なお、制御部３１は、撮影位置を示す情報を取得し、パノラマ画像と共に送信する。第１情報処理装置１０の制御部（画像取得部）１１は、カメラ３０からパノラマ画像を受信する（Ｓ５）。なお、制御部１１は、パノラマ画像と共に撮影位置の情報も受信し、受信した撮影位置の情報とパノラマ画像とを対応付けてパノラマ画像ＤＢ１２ａに記録する（Ｓ６）。カメラ３０は、室内の２箇所の撮影位置でユーザ又はロボット等により所定の向きに配置された状態で、上述したステップＳ１〜Ｓ４の処理を行い、第１情報処理装置１０は、カメラ３０から送信されてきた２つのパノラマ画像をパノラマ画像ＤＢ１２ａに記録する。
【００８０】
次に、カメラ３０で撮影した２つのパノラマ画像（前側パノラマ画像及び後側パノラマ画像）の特徴点を対応付ける際に第１情報処理装置１０が行う処理をフローチャートに基づいて説明する。図２０は、第１情報処理装置１０による特徴点の対応付け処理の手順を示すフローチャートである。なお、２つのパノラマ画像における特徴点を対応付ける処理は、第２情報処理装置２０を用いてパノラマ画像を再生（表示）する際に行ってもよいし、パノラマ画像を取得した時点で行ってもよい。
【００８１】
第１情報処理装置１０の制御部１１は、同一の部屋で撮影されたパノラマ画像（ここでは２つのパノラマ画像）をパノラマ画像ＤＢ１２ａから読み出す（Ｓ１１）。ここで、２つのパノラマ画像は、それぞれの撮影位置で、カメラ３０の上下方向を鉛直方向に一致させ、カメラ３０の前側を後側撮影位置から前側撮影位置への方向に一致させた状態で撮影されている。よって、２つのパノラマ画像では、画像の上下方向が鉛直方向に一致し、画像の左右端がカメラ３０の後側に一致し、画像の左右方向の中央がカメラ３０の前側に一致している。
【００８２】
制御部１１は、２つのパノラマ画像において、上下方向の中央に並ぶ画素に対して対応付けるべき特徴点を取得する（Ｓ１２）。制御部１１は、２つのパノラマ画像のそれぞれにおける特徴点を入力部１４にて取得してもよいし、２つのパノラマ画像において上下方向の中央に並ぶ画素の画素値の変動に対して、Dynamic Time Warping等の手法を用いて自動的に取得してもよい。制御部１１は、２つのパノラマ画像に対してそれぞれ取得した特徴点を対応付けて特徴点対応テーブル１２ｂに記憶する（Ｓ１３）。ここでの特徴点は、図７Ａ，Ｂに示したＬ軸におけるＬ座標値で示されており、制御部１１は、特徴点対応テーブル１２ｂに記憶された２つのパノラマ画像における特徴点のＬ座標値をそれぞれＳＴ座標系の方位角に変換する。また制御部１１は、それぞれ変換した方位角の正接を算出し、それぞれ算出した方位角の正接（方位角情報）を対応付けて方位角対応テーブル１２ｃに記憶する（Ｓ１４）。制御部１１は、特徴点対応テーブル１２ｂに記憶された全ての特徴点をそれぞれ方位角情報に変換することにより、図１０Ａに示すような方位角対応テーブル１２ｃを生成し、処理を終了する。
【００８３】
次に、第２情報処理装置２０を用いてパノラマ画像を再生（表示）する際に第１情報処理装置１０及び第２情報処理装置２０が行う処理をフローチャートに基づいて説明する。図２１及び図２２は、表示時に第１情報処理装置１０及び第２情報処理装置２０が行う処理の手順を示すフローチャートである。以下の処理は、第１情報処理装置１０の記憶部１２に記憶してある仮想画像生成プログラムＰＧを含む制御プログラムに従って制御部１１によって実行され、第２情報処理装置２０の記憶部２２に記憶してある制御プログラムに従って制御部２１によって実行される。ここでは、図１０Ａに示すような方位角対応テーブル１２ｃは予め生成されているものとする。
【００８４】
第２情報処理装置２０の制御部２１は、センサ部２５によってユーザの頭部の位置及び向きを検出し、位置及び向きを示す情報を取得する（Ｓ２１）。例えば制御部２１は、センサ部２５のＧＰＳによって第２情報処理装置２０の現在位置を検出し、センサ部２５の磁気センサによって第２情報処理装置２０の向きを検出する。制御部２１は、取得した位置及び向きを示す情報を通信部２３にて第１情報処理装置１０へ送信する（Ｓ２２）。制御部２１は、位置及び向きの検出及び送信を、所定時間間隔で行ってもよいし、例えば入力部（図示せず）を介したユーザからの指示に従って行ってもよい。
【００８５】
一方、第１情報処理装置１０の制御部１１は、再生すべきパノラマ画像をパノラマ画像ＤＢ１２ａから選択して読み出す（Ｓ３１）。再生すべきパノラマ画像は、入力部１４又は第２情報処理装置２０を介して指定される。なお、入力部１４又は第２情報処理装置２０を介して、再生すべきパノラマ画像を撮影した部屋が指定され、制御部１１は、指定された部屋で撮影されたパノラマ画像（ここでは２つのパノラマ画像）をパノラマ画像ＤＢ１２ａから読み出してもよい。
【００８６】
制御部（受付部）１１は、ステップＳ２２で第２情報処理装置２０が送信した位置及び向きを示す情報を通信部１３にて受信する（Ｓ３３）。なお、制御部１１は、受信した位置及び向きを示す情報を記憶部１２に逐次記憶しており、前回受信した情報と比較して、位置又は向きが変化したか否かを判断する（Ｓ３４）。位置及び向きのいずれも変化していないと判断した場合（Ｓ３４：ＮＯ）、制御部１１は、ステップＳ３３の処理に戻り、第２情報処理装置２０から位置及び向きを示す情報を受信する都度、位置又は向きが変化したか否かを判断する。
【００８７】
位置又は向きが変化したと判断した場合（Ｓ３４：ＹＥＳ）、制御部１１は、受信した位置及び向きに基づいて仮想視点を設定し、設定した仮想視点に応じた仮想スクリーンを設定（特定）する（Ｓ３５）。例えば、制御部１１は、ユーザの頭部の位置に基づいて前回設定した仮想視点を移動させ、移動後の仮想視点から、ユーザの頭部の向きが示す視線方向に所定距離隔てて、視線方向に直交し、所定の画角を有する矩形平面である仮想スクリーンを設定する。なお、制御部１１は、上述したように、まず基本スクリーンを設定し、基本スクリーンに対して２回の回転処理を行うことにより仮想スクリーンを設定する。
【００８８】
制御部１１は、設定した仮想スクリーンに対して補正処理を行う（Ｓ３６）。図２３は、第１情報処理装置１０による仮想スクリーンの補正処理の手順を示すフローチャートである。制御部１１は、設定された仮想スクリーンの１つの格子点の方位角φV を仮想スクリーンテーブル１２ｄから読み出す（Ｓ５１）。制御部１１は、読み出した方位角φV を上記の（７）式又は（８）式を用いて、図６に示したＳＴ座標系における方位角βV に変換する（Ｓ５２）。
【００８９】
制御部１１は、ステップＳ３５で設定した仮想視点のｔ座標値ｔV を取得する（Ｓ５３）。制御部１１は、取得したｔ座標値ｔV と、方位角対応テーブル１２ｃに記憶してある方位角情報の各ペアと、上記の（９）式とに基づいて、各ペアにおいてｔ座標値ｔV に対応する方位角の正接tanβを算出する（Ｓ５４）。制御部１１は、各ペアにおいて算出したtanβのいずれかが、ステップＳ５２で変換した方位角βV の正接に一致するか否かを判断する（Ｓ５５）。一致すると判断した場合（Ｓ５５：ＹＥＳ）、制御部１１は、算出に用いたペアにおける前側画像の特徴点の方位角の正接tanβF 及び後側画像の特徴点の方位角の正接tanβR からそれぞれ方位角βF 及びβR を算出する（Ｓ５６）。制御部１１は、算出した方位角βF を前側画像用仮想スクリーンテーブル１２ｅに記憶し（Ｓ５７）、算出した方位角βR を後側画像用仮想スクリーンテーブル１２ｆに記憶する（Ｓ５８）。なお、算出した方位角βF 及びβR 以外の情報は仮想スクリーンテーブル１２ｄと同じ情報をそれぞれ記憶する。
【００９０】
制御部１１は、仮想スクリーンテーブル１２ｄに記憶してある全ての格子点に対して上述した処理を終了したか否かを判断する（Ｓ５９）。全ての格子点に対する処理を終了していないと判断した場合（Ｓ５９：ＮＯ）、制御部１１はステップＳ５１の処理に戻り、未処理の格子点の方位角φV を仮想スクリーンテーブル１２ｄから読み出し、上述した処理を繰り返す。
【００９１】
一方、各ペアにおいて算出したtanβの全てが、ステップＳ５２で変換した方位角βV の正接に一致しないと判断した場合（Ｓ５５：ＮＯ）、制御部１１は、各ペアにおいて算出したtanβのうちで、ステップＳ５２で変換した方位角βV の正接tanβV の前後の値となる方位角情報のペアを取得する（Ｓ６０）。制御部１１は、取得した方位角情報のペアに基づいて、ステップＳ５２で変換した方位角βV の正接tanβV に対応する前側画像における方位角の正接tanβFV及び後側画像における方位角の正接tanβRVを算出する（Ｓ６１）。具体的には、制御部１１は、図１３Ｂに示した二次元空間において、線分ＧiＧi+1における格子点Ｇの内分比を算出し、算出した内分比と、前側画像におけるtanβFi及びtanβFi+1とに基づいて、前側画像における方位角の正接tanβFVを算出する。また、制御部１１は、算出した内分比と、後側画像におけるtanβRi及びtanβRi+1とに基づいて、後側画像における方位角の正接tanβRVを算出する。
【００９２】
そして、制御部１１は、算出した前側画像における方位角の正接tanβFV及び後側画像における方位角の正接tanβRVからそれぞれ方位角βFV及びβRVを算出する（Ｓ５６）。制御部１１は、算出した方位角βFVを前側画像用仮想スクリーンテーブル１２ｅに記憶し（Ｓ５７）、算出した方位角βRVを後側画像用仮想スクリーンテーブル１２ｆに記憶する（Ｓ５８）。仮想スクリーンテーブル１２ｄに記憶してある全ての格子点に対して上述した処理を終了したと判断した場合（Ｓ５９：ＹＥＳ）、制御部１１は、仮想スクリーンの補正処理を終了し、図２１及び図２２の処理に戻る。
【００９３】
制御部１１は、前側画像用仮想スクリーンテーブル１２ｅ及びステップＳ３１でパノラマ画像ＤＢ１２ａから読み出した前側パノラマ画像に基づいて、前側画像の仮想ビューを生成する（Ｓ３７）。具体的には、制御部１１は、前側画像用仮想スクリーンの各仮想画素に、前側パノラマ画像の画素の画素値をそれぞれ対応付けることにより、前側画像の仮想ビューを生成する。同様に、制御部１１は、後側画像用仮想スクリーンテーブル１２ｆ及びステップＳ３１でパノラマ画像ＤＢ１２ａから読み出した後側パノラマ画像に基づいて、後側画像の仮想ビューを生成する（Ｓ３８）。また制御部１１は、ステップＳ３７，Ｓ３８でそれぞれ生成した２つの仮想ビューに対して合成割合を特定する（Ｓ３９）。そして制御部１１は、ステップＳ３７，Ｓ３８で生成した２つの仮想ビューを、ステップＳ３９で特定した合成割合に基づいて合成して仮想画像を生成する（Ｓ４０）。制御部１１は、生成した仮想画像を通信部１３にて第２情報処理装置２０へ送信する（Ｓ４１）。
【００９４】
第２情報処理装置２０の制御部２１は、第１情報処理装置１０が送信した仮想画像を通信部２３にて受信し（Ｓ２３）、受信した仮想画像を表示部２４に表示させる（Ｓ２４）。第２情報処理装置２０の制御部２１は、ユーザの頭部の位置及び向きの検出及び送信を、所定時間間隔又はユーザからの指示に従って行い、第１情報処理装置１０の制御部１１は、第２情報処理装置２０から位置及び向きの情報を受信する都度、ステップＳ３４〜Ｓ４１の処理を行う。これにより、実写データに基づいて、任意の視点から見た画像を生成する情報処理システム４０を提供することができる。
【００９５】
上述した処理により、ユーザは、撮影された部屋の中を移動しながら、部屋の広さ、家具の配置、窓の外の景色等を感覚的に把握することができる。なお、カメラ３０を用いて撮影する空間は、博物館、美術館、テーマパーク、アミューズメント施設、観光地、商業施設等であってもよい。
【００９６】
上述した処理において、第２情報処理装置２０の制御部２１は、ステップＳ２１で取得した位置及び向きが、前回取得した位置及び向きに対して変化したか否かを判断し、変化した場合にのみ、取得した位置及び向きの情報を第１情報処理装置１０へ送信するようにしてもよい。この場合、第１情報処理装置１０の制御部１１は、ステップＳ３４の処理を行う必要がなく、第２情報処理装置２０から受信した位置及び向きの情報に基づいて、ステップＳ３５以降の処理を行えばよい。
【００９７】
本実施形態によると、撮影した各パノラマ画像から、視点位置の移動に応じて生成された仮想スクリーンに投影される各仮想ビューが生成される。これにより、単体の各パノラマ画像から視点位置を移動した効果のある映像表現が得られる。また本実施形態によると、複数箇所で撮影したパノラマ画像（仮想ビュー）から生成された仮想画像が提供される。複数の仮想ビューから仮想画像を生成する場合、例えば仮想視点と各撮影位置との距離に応じた合成割合で複数の仮想ビューが合成される。これにより、表示されるパノラマ画像（仮想ビュー）が切り替えられる際に、仮想視点と撮影位置との距離に応じた重み付け（合成割合）を各仮想ビューに付与できるので、画像の遷移を滑らかに行うことができ、画像の切り替えの際にユーザに与える違和感を抑制できる。また、各仮想ビューを生成する際に、２つの仮想ビューにおいて横方向（方位角方向）の歪みを解消するように、仮想スクリーンの各格子点における方位角を補正する。よって、２つの仮想ビュー間において方位角方向が一致するので、２つの仮想ビューを合成した場合に生じる横方向（方位角方向）のズレを抑制できる。
【００９８】
本実施形態において、撮影対象の部屋における撮影位置は３箇所以上としてもよい。この場合、それぞれ２箇所の撮影位置間で、撮影したパノラマ画像における特徴点の対応付けを行い、本実施形態における処理を行えばよい。これにより、撮影対象の部屋の任意の位置に応じた２つのパノラマ画像を用いて、任意の視点から任意の方向を見た状態の仮想画像をユーザに提供できる。
【００９９】
本実施形態によると、ＨＭＤ型の第２情報処理装置２０を使用するので、コンピュータ等の操作に不慣れなユーザであっても容易に様々な視点から室内を見た状態の画像を確認できる情報処理システム４０を提供できる。本実施形態によると、市販の全天球カメラ等を用いて撮影したＪＰＥＧ（Joint Photographic Experts Group）形式等の汎用の形式の画像を使用して、様々な視点から室内を見た状態の画像を提供できる情報処理システム４０を提供できる。
本実施形態において、例えば、右目を仮想視点に設定して作成した仮想画像を右目側に表示し、左目を仮想視点に設定して作成した仮想画像を左目側に表示することにより、立体感のある画像を提供する情報処理システム４０を提供できる。
カメラ３０は、全天球カメラに限定しない。たとえば、半球型の範囲を撮影可能なカメラであってもよい。通常の平面画像撮影用のカメラでもよい。
【０１００】
（実施形態２）
本実施形態は、仮想視点が静止している場合に１つの仮想ビューから生成された仮想画像を提供する情報処理システム４０に関する。実施形態１と共通する部分については説明を省略する。
【０１０１】
本実施形態では、仮想視点が移動している場合、上述した実施形態１と同様の処理が行われ、２箇所の撮影位置で撮影したパノラマ画像からそれぞれ生成された２つの仮想ビューが適切な合成割合にて合成され、仮想視点から任意の方向を見た場合の仮想画像が生成される。一方、仮想視点が静止している場合、仮想視点の近傍の撮影位置で撮影したパノラマ画像から生成された仮想ビューのみを用いて仮想画像が生成される。また、移動中の仮想視点が静止した場合、又は静止中の仮想視点が移動した場合に、２つの仮想ビューを合成して仮想画像を生成する処理と、１つの仮想ビューを用いて仮想画像を生成する処理とが切り替えられるが、このとき、２つの処理は所定時間をかけて切り替えられる。
【０１０２】
具体的には、本実施形態の合成割合特定部５７は、仮想視点が移動を停止した場合、この時点での各仮想ビューに対する合成割合から、仮想視点の近傍の撮影位置で撮影したパノラマ画像（仮想ビュー）に対する合成割合を徐々に大きくなるように変更し、所定時間の経過後に１（１００％）に設定する。このとき、合成割合特定部５７は、他方のパノラマ画像（仮想ビュー）に対する合成割合を徐々に小さくなるように変更し、所定時間の経過後に０（０％）に設定する。また、合成割合特定部５７は、静止中の仮想視点が移動を開始した場合、仮想視点の近傍の撮影位置で撮影したパノラマ画像に対する合成割合を徐々に小さくなるように変更し、所定時間の経過後に、２つの撮影位置と仮想視点との位置関係に基づく合成割合に設定する。このとき、合成割合特定部５７は、他方のパノラマ画像に対する合成割合を徐々に大きくなるように変更し、所定時間の経過後に、２つの撮影位置と仮想視点との位置関係に基づく合成割合に設定する。
【０１０３】
図２４は、仮想ビューに対する合成割合の変化を示す図表である。図２４Ａは仮想視点が移動を停止した場合における各仮想ビューの合成割合を示し、図２４Ｂは仮想視点が移動を開始した場合における各仮想ビューの合成割合を示す。図２４Ａにおいて、横軸は、移動中の仮想視点が停止してからの経過時間ＥＴを示し、縦軸は、それぞれの仮想ビューに対する合成割合αR ，αF を示す。図２４Ｂにおいて、横軸は、停止中の仮想視点が移動を開始してからの経過時間ＥＴを示し、縦軸は、それぞれの仮想ビューに対する合成割合αR ，αF を示す。図２４Ａ，Ｂに示す例では、仮想視点の近傍の撮影位置を後側撮影位置とする。本実施形態では、図２４Ａに示すように、移動中の仮想視点が後側撮影位置の近傍で静止した場合、後側画像の仮想ビューに対する合成割合は、この時点での合成割合αR から単調増加し、所定時間ｅｔの経過後に１となる。このとき、前側画像の仮想ビューに対する合成割合は、この時点での合成割合αF から単調減少し、所定時間ｅｔの経過後に０となる。所定時間ｅｔは例えば数秒程度としてもよい。また本実施形態では、図２４Ｂに示すように、後側撮影位置の近傍で静止中の仮想視点が移動を開始した場合、後側画像の仮想ビューに対する合成割合は、この時点での合成割合１から単調減少し、所定時間ｅｔの経過後にαR となる。このとき、前側画像の仮想ビューに対する合成割合は、この時点での合成割合０から単調増加し、所定時間ｅｔの経過後にαF となる。
【０１０４】
本実施形態では、例えば、図２１及び図２２中のステップＳ３９の処理において、第１情報処理装置１０の制御部（判断部）１１は、ステップＳ３３で受信した位置を示す情報に基づいて、仮想視点の位置が移動中（変化中）であるか否かを判断する。位置が移動中であると判断した場合、制御部１１は、実施形態１におけるステップＳ３９と同じ処理を行い、例えば仮想視点の位置とそれぞれの撮影位置との位置関係に応じて２つの仮想ビューに対する合成割合を特定する。一方、位置が移動中でないと判断した場合、制御部１１は、仮想視点が移動を開始したのか、移動を停止したのかを判断する。そして、制御部１１（合成割合特定部５７）は、仮想視点が移動を開始したのか、移動を停止したのかに応じて、上述したように２つの仮想ビューに対する合成割合を特定し、その後、ステップＳ４０以降の処理を行う。
【０１０５】
上述した処理により、本実施形態では、仮想視点の移動中は、前側画像の仮想ビュー及び後側画像の仮想ビューを合成した仮想画像が生成され、実施形態１と同様の効果が得られる。また、仮想視点の静止中は、仮想視点の近傍の撮影位置で撮影したパノラマ画像から生成された仮想ビューのみを用いた仮想画像が生成される。この場合、仮想ビューを合成しないので、仮想ビューを合成した場合に生じる画像のブレが生じず、ブレのない画像を提供できる。また、仮想視点の移動停止時又は移動開始時では、２つの仮想ビューを合成して仮想画像を生成する処理と、１つの仮想ビューを用いて仮想画像を生成する処理とを所定時間をかけて切り替える。よって、２つの処理が切り替えられることに伴って表示される仮想画像が切り替えられる際にユーザに与える違和感を抑制できる。
【０１０６】
（実施形態３）
本実施形態は、２つのパノラマ画像において、被写体の特徴点（画素）の対応付けを、撮影位置の高さに対応する画像中の位置以外の位置においても行う情報処理システム４０に関する。実施形態１と共通する部分については説明を省略する。
本実施形態の第１情報処理装置１０においても、制御部１１は仮想画像生成プログラムＰＧを実行することによって、図８に示す各機能を実現する。なお、本実施形態の第１情報処理装置１０では、特徴点対応付け部５１、仮想スクリーン設定部５２及び仮想スクリーン補正部５３が行う処理が実施形態１とは異なるので、異なる処理についてのみ説明する。
【０１０７】
本実施形態の特徴点対応付け部５１は、撮影対象の空間内の２箇所（前側撮影位置及び後側撮影位置）で撮影した２つのパノラマ画像において、前側撮影位置及び後側撮影位置を結ぶ直線とそれぞれのパノラマ画像とが交差する２点を通る複数の線上で、同じ被写体が撮影された方位角方向の位置を対応付ける。図２５は、パノラマ画像の例を示す模式図であり、図２５Ａは前側撮影位置で撮影したパノラマ画像（前側画像）の例であり、図２５Ｂは後側撮影位置で撮影したパノラマ画像（後側画像）の例である。なお、図２５は正距円筒図法により長方形に展開されたパノラマ画像を示す。図２５に示す２つのパノラマ画像は、画像の上下方向が鉛直方向に一致し、左右端がカメラ３０の後側（撮影方向の反対方向）に一致し、左右方向の中央がカメラ３０の前側（撮影方向）に一致している。このようなパノラマ画像間では、画像の上下方向の中央部だけでなく、画像における撮影方向及び撮影方向の反対方向に対応する位置で上下方向（高さ方向）の中央位置（図２５中の点Ｄ１，Ｄ２，Ｄ３，Ｄ４）を通る複数の線（曲線）上に、同じ被写体が写っている。また同じ被写体は、２箇所の撮影位置間の視差によってパノラマ画像中の異なる位置に写っている。例えば図２５Ａに示す前側画像において線Ｌａ１上に写っている被写体は、図２５Ｂに示す後側画像においても線Ｌａ１上に写っている。このような線を以下ではエピポーラ線という。
【０１０８】
図２６は、エピポーラ線の説明図である。図２６には、前側撮影位置及び後側撮影位置のそれぞれで撮影したパノラマ画像のイメージを球体で示しており、球体の表面上の曲線Ｌａ１，Ｌａ２，Ｌｂ１，Ｌｂ２はそれぞれエピポーラ線を示している。ここで、後側撮影位置から前側撮影位置に向かう方向を天頂方向とした極座標系（以下では共通軸極座標系という）を用いる。なお、後側撮影位置から前側撮影位置に向かう方向は、撮影方向（カメラ３０の前側）であり、図５Ａに示した直交座標系のＺ軸の負方向（−Ｚ軸方向）である。なお、共通軸極座標系の方位角には、撮影空間のＸ軸の負方向を基準として、Ｚ軸の負方向から見てＺ軸を中心に反時計回りの角度φC を用いる。また共通軸極座標系の天頂角には、Ｚ軸の負方向を基準として、撮影位置を中心としてＺ軸の正方向に向かう角度θC を用いる。以下では、共通軸極座標系と区別するために、パノラマ画像の各画素の位置を表現するための極座標系をローカル極座標系と呼び、ローカル極座標系の座標を（ｒL ，θL ，φL ）で示す。
【０１０９】
エピポーラ線は、それぞれのパノラマ画像が、２つの撮影位置を結ぶ直線（−Ｚ軸）と交差する２点Ｄ１及びＤ２，Ｄ３及びＤ４を通る。具体的には、前側画像におけるエピポーラ線は、空間内の各撮影位置を結ぶ直線（−Ｚ軸）と、前側撮影位置で撮影した全天球画像（前側画像）とが交差する２点Ｄ１，Ｄ２を通り、前側画像に係る全天球上の線である。また、後側画像におけるエピポーラ線は、−Ｚ軸と、後側撮影位置で撮影した全天球画像（後側画像）とが交差する２点Ｄ３，Ｄ４を通り、後側画像に係る全天球上の線である。またそれぞれのエピポーラ線は、共通軸極座標系において天頂角θC 方向に並ぶ線（画素列）であり、図５Ａに示す直交座標系における水平面であるＸＺ平面を基準として、−Ｚ軸を中心に、共通軸極座標系における方位角方向に例えば１５°間隔毎に回転させて設けられている。なお、エピポーラ線の数及び方位角方向の間隔はこれに限らず、任意の数又は任意の間隔とすることができる。図２６に示す共通軸極座標系で表したエピポーラ線を正距円筒図法により展開することにより、図２５に示すようにパノラマ画像上にエピポーラ線Ｌａ１，Ｌａ２…を表すことができる。なお、共通軸極座標系の座標（ｒC ，θC ，φC ）をローカル極座標系の座標（ｒL ，θL ，φL ）に変換する場合、一旦直交座標系の座標に変換した後にローカル極座標系の座標に変換する。なお、ここでの直交座標系を、パノラマ画像の各画素の位置を表現するための直交座標系と区別するためにワールド直交座標系と呼び、ワールド直交座標系の座標を（ｘW ，ｙW ，ｚW ）で示す。
【０１１０】
図２７は、座標系の関係を説明するための模式図である。図２７Ａはローカル極座標系及びワールド直交座標系の関係を示し、図２７Ｂはワールド直交座標系及び共通軸極座標系の関係を示す。ワールド直交座標系には、鉛直上方向をＹW 軸の正側、水平面をＸW 軸及びＺW 軸で表す３次元の右手系の直交座標系を用いる。よって、空間内の任意の位置Ｐは、ワールド直交座標系の座標（ｘW ，ｙW ，ｚW ）で表すことができる。図２７Ａに示すようにローカル極座標系は、鉛直上方向（ＹW 軸の正側）を基準とした天頂角θL と、鉛直上方向から見てＺW 軸の正側を基準として水平面であるＸW ＺW 平面内の反時計回りの方位角φL と、原点０からの距離ｒL とによって表される。よって、３次元空間中の任意の位置Ｐは、ワールド直交座標系の座標（ｘW ，ｙW ，ｚW ）とローカル極座標系の座標（ｒL ，θL ，φL ）とで表すことができ、ワールド直交座標系の座標（ｘW ，ｙW ，ｚW ）及びローカル極座標系の座標（ｒL ，θL ，φL ）は以下の（１３）式及び（１４）式によって相互に変換可能である。
【０１１１】
【数８】
2020024687.tif 000010
【０１１２】
なお、ローカル極座標系の座標値（ｒL ，θL ，φL ）で表される全天球画像は、正距円筒図法により、横軸及び縦軸をそれぞれ、方位角φL 及び天頂角θL をそれぞれ０〜１の範囲に正規化したｕ値（ｕ軸）及びｖ値（ｖ軸）とする平面（長方形）の画像に展開できる。ここで、ローカル極座標系の方位角φL 及び天頂角θL と、ｕ値及びｖ値とは、以下の（１５）式及び（１６）式によって相互に変換可能である。
【０１１３】
【数９】
2020024687.tif 000011
【０１１４】
図２７Ｂに示すように共通軸極座標系は、ワールド直交座標系のＺW 軸の負方向を基準とした天頂角θC と、ＺW 軸の負方向から見てＸW 軸の負側を基準としてＸW ＹW 平面内の反時計回りの方位角φC と、原点０からの距離ｒC とによって表される。よって、３次元空間中の任意の位置Ｐは、ワールド直交座標系の座標（ｘW ，ｙW ，ｚW ）と共通軸極座標系の座標（ｒC ，θC ，φC ）とで表すことができ、ワールド直交座標系の座標（ｘW ，ｙW ，ｚW ）及び共通軸極座標系の座標（ｒC ，θC ，φC ）は以下の（１７）式及び（１８）式によって相互に変換可能である。
【０１１５】
【数１０】
2020024687.tif 000012
【０１１６】
本実施形態の特徴点対応付け部（対応付け部）５１は、２つのパノラマ画像において、それぞれのエピポーラ線について、エピポーラ線上に写っている被写体の特徴点（画素）の対応付けを行う。例えば、特徴点対応付け部５１は、図２５Ａ，Ｂに示すように、２つのパノラマ画像において、エピポーラ線Ｌａ４上に配置する画素のうちで同じ被写体の同じ部分の画素を特徴点Ｌａ４ａ〜Ｌａ４ｄとしてそれぞれ対応付ける。まず、特徴点対応付け部５１は、エピポーラ線毎に、対応付けるべきそれぞれの特徴点について、前側画像における座標値（ｕF ，ｖF ）と後側画像における座標値（ｕR ，ｖR ）とを特定する。特徴点対応付け部５１は、特定した座標値（ｕF ，ｖF ）及び（ｕR ，ｖR ）をそれぞれ、上記の（１５）式を用いてローカル極座標系の座標値（θLF，φLF）及び座標値（θLR，φLR）に変換する。次に特徴点対応付け部５１は、ローカル極座標系の座標値（θLF，φLF）及び座標値（θLR，φLR）をそれぞれ、上記の（１３）式を用いてワールド直交座標系の座標値（ｘWF，ｙWF，ｚWF）及び座標値（ｘWR，ｙWR，ｚWR）に変換する。なお、ローカル極座標系における距離ｒL は適宜の距離とすればよい。更に特徴点対応付け部５１は、ワールド直交座標系の座標値（ｘWF，ｙWF，ｚWF）及び座標値（ｘWR，ｙWR，ｚWR）をそれぞれ、上記の（１８）式を用いて共通軸極座標系の座標値（θCF，φCF）及び座標値（θCR，φCR）に変換する。ここで、対応付けられる特徴点は、同じエピポーラ線上の画素であるので、共通軸極座標系の方位角φC が同じである。即ち、前側画像における特徴点の共通軸極座標系の方位角φCFと後側画像における特徴点の共通軸極座標系の方位角φCRとは同じである。よって、特徴点対応付け部５１は、それぞれのエピポーラ線（共通軸極座標系の方位角φC ）毎に、それぞれの特徴点について、前側画像における天頂角θCFと後側画像における天頂角θCRとを対応付ける。特徴点対応付け部５１は、それぞれのエピポーラ線について、特徴点毎に天頂角θCF及びθCRのペアを対応付けて記憶する。
【０１１７】
また、特徴点対応付け部５１は、共通軸極座標系の天頂角θCF及びθCRではなく、図６に示したＳＴ座標系の方位角βF 、βR （又は方位角βF 、βR の正接tanβF 、tanβR ）にて対応付けを行ってもよい。なお、図６に示したＳＴ座標系を以下ではエピポーラ面座標系と呼び、ワールド直交座標系のＺW 軸の負方向をｔ軸とし、ｔ軸に直交する方向をｓ軸とし、座標（ｓE ，ｔE ）によってエピポーラ面座標系の任意の位置を表すことができる。この場合、特徴点対応付け部５１は、上述したように対応付けた特徴点について、前側画像における共通軸極座標系の天頂角θCF及び後側画像における共通軸極座標系の天頂角θCRをそれぞれ、以下の（１９）式を用いてエピポーラ面座標系の方位角βF 、βR に変換する。
【０１１８】
β＝θC −π／２      …（１９）
【０１１９】
この場合、特徴点対応付け部５１は、図９に示す特徴点対応テーブル１２ｂは生成せずに、共通軸極座標系の方位角φC 毎に、前側画像におけるエピポーラ面座標系の方位角βF の正接tanβF と後側画像におけるエピポーラ面座標系の方位角βR の正接tanβR とを対応付けて記憶した図１０Ａに示すような方位角対応テーブル１２ｃを生成する。なお、本実施形態の特徴点対応付け部５１は、共通軸極座標系における方位角φC が−π／２＜φC ≦π／２の範囲にあるエピポーラ線のそれぞれについて、共通軸極座標系における天頂角θC が０≦θC ≦πの範囲にある特徴点について対応付けを行う。
【０１２０】
特徴点対応付け部５１は、２つのパノラマ画像間で対応付けるべき特徴点を、例えばユーザ入力によって受け付けてもよい。この場合、例えば特徴点対応付け部５１は、第１情報処理装置１０の表示部１５に、エピポーラ線をそれぞれ付加した２つのパノラマ画像を表示し、特徴点とすべき箇所（画素）を入力部１４にて受け付ける。なお、特徴点対応付け部５１は、図２６に示したそれぞれのエピポーラ線について、エピポーラ線上の各画素の共通軸極座標系の座標値（θC ，φC ）を、上記の（１７）式を用いてワールド直交座標系の座標値（ｘW ，ｙW ，ｚW ）に変換し、更に上記の（１４）式を用いてローカル極座標系の座標値（θL ，φL ）に変換する。更に特徴点対応付け部５１は、ローカル極座標系の方位角φL 及び天頂角θL を上記の（１６）式を用いてｕ値及びｖ値に変換する。これにより、特徴点対応付け部５１は、図２５に示すように、表示部１５に表示した２つのパノラマ画像にエピポーラ線を重畳させることができる。
【０１２１】
ユーザは、表示された２つのパノラマ画像においてそれぞれのエピポーラ線について、同じ被写体の同じ部分を特徴点として入力部１４を介して指定する。特徴点対応付け部５１は、入力部１４を介して２つのパノラマ画像中の特徴点を受け付け、それぞれの特徴点について、前側画像における座標値（ｕF ，ｖF ）と後側画像における座標値（ｕR ，ｖR ）とを取得する。そして特徴点対応付け部５１は、前側画像における座標値（ｕF ，ｖF ）及び後側画像における座標値（ｕR ，ｖR ）に対して、上述した変換処理を行うことにより、共通軸極座標系の座標値（θCF，φCF）及び座標値（θCR，φCR）を取得する。更に特徴点対応付け部５１は、共通軸極座標系の天頂角θCF，θCRをエピポーラ面座標系の方位角βF ，βR に変換し、共通軸極座標系の方位角φCF，φCR（φCF＝φCR）について、方位角βF 、βR の正接tanβF 、tanβRを対応付けて方位角対応テーブル１２ｃに記憶する。
【０１２２】
また、特徴点対応付け部５１は、２つのパノラマ画像間で対応付けるべき特徴点を、２つのパノラマ画像におけるそれぞれのエピポーラ線上の各画素の画素値の変動に対して、Dynamic Time Warping等の手法を用いて自動的に抽出してもよい。この場合、特徴点対応付け部５１は、例えば図２５に示すようなパノラマ画像においてそれぞれのエピポーラ線上の画素を抽出し、前側画像及び後側画像における１次元の画素列（画素値の列）をそれぞれ生成する。例えば特徴点対応付け部５１は、それぞれのエピポーラ線（共通軸極座標系の方位角φC ）に対して、天頂角θC を０から所定値（微小角度）ずつ増加させながら、上述した変換処理によってパノラマ画像上のｕ値及びｖ値に変換し、得られた座標（ｕ，ｖ）の画素の画素値を逐次抽出することによって、前側画像及び後側画像における１次元の画素列を生成する。そして、特徴点対応付け部５１は、このように生成された前側画像及び後側画像における画素列から、Dynamic Time Warping等の手法により、類似する画素値の画素を自動的に抽出する。特徴点対応付け部５１は、抽出した画素を特徴点として受け付ける。そして特徴点対応付け部５１は、ユーザ入力される場合と同様に、受け付けた特徴点について、前側画像における座標値（ｕF ，ｖF ）と後側画像における座標値（ｕR ，ｖR ）とを共通軸極座標系の座標値（θCF，φCF）及び座標値（θCR，φCR）に変換する。更に特徴点対応付け部５１は、共通軸極座標系の天頂角θCF，θCRをエピポーラ面座標系の方位角βF ，βR に変換し、共通軸極座標系の方位角φCF，φCR（φCF＝φCR）について、エピポーラ面座標系の方位角βF 、βR の正接tanβF 、tanβRを対応付けて方位角対応テーブル１２ｃに記憶する。
【０１２３】
よって、本実施形態では、それぞれのエピポーラ線（共通軸極座標系の方位角φC ）毎に、前側画像における方位角情報（エピポーラ面座標系の方位角βF の正接tanβF ）及び後側画像における方位角情報（エピポーラ面座標系の方位角βR の正接tanβR）が対応付けて記憶される方位角対応テーブル１２ｃが生成される。
【０１２４】
本実施形態の仮想スクリーン設定部５２は、実施形態１と同様に、第２情報処理装置２０から取得したユーザの頭部の位置及び向きに基づいて、ローカル極座標系において仮想視点Ｖから仮想スクリーンを見た際の各格子点の天頂角θVL及び方位角φVLを算出する。よって、各格子点の位置はローカル極座標系の座標値（θVL，φVL）で表される。そして、本実施形態の仮想スクリーン設定部５２は、各格子点のローカル極座標系の座標値（θVL，φVL）を、上述した変換処理によって共通軸極座標系の座標値（θVC，φVC）に変換する。更に仮想スクリーン設定部５２は、各格子点の共通軸極座標系の天頂角θVCを上記の（１９）式によってエピポーラ面座標系の方位角βV に変換する。よって、本実施形態の仮想スクリーン設定部５２は、設定した仮想スクリーンの各格子点の座標値として座標（βV ，φVC）を仮想スクリーンテーブル１２ｄに記憶する。
図２８は、実施形態３の仮想スクリーンテーブル１２ｄの構成例を示す模式図である。本実施形態の仮想スクリーンテーブル１２ｄは、図１１に示した実施形態１の仮想スクリーンテーブル１２ｄと同様の構成を有するが、各格子点の座標値として、エピポーラ面座標系の方位角βV 及び共通軸極座標系の方位角φVCで表される座標（βV ，φVC）が仮想スクリーンテーブル１２ｄに記憶される。なお、以下では座標値βV を格子点における天頂角といい、座標値φVCを格子点における方位角という。
【０１２５】
本実施形態の仮想スクリーン補正部５３は、図２８に示した仮想スクリーンテーブル１２ｄが示す仮想スクリーンに対して、特徴点対応付け部５１が生成した方位角対応テーブル１２ｃに基づく補正処理を行い、前側画像用仮想スクリーン及び後側画像用仮想スクリーンを生成する。具体的には、仮想スクリーン補正部５３は、仮想スクリーンテーブル１２ｄに記憶された各格子点の座標（βV ，φVC）の各値を、方位角対応テーブル１２ｃに基づいてそれぞれ補正し、前側画像用仮想スクリーンテーブル１２ｅと後側画像用仮想スクリーンテーブル１２ｆとを生成する。よって、前側画像用仮想スクリーンテーブル１２ｅ及び後側画像用仮想スクリーンテーブル１２ｆは、仮想スクリーンテーブル１２ｄ中の各格子点の座標値が異なるほかは仮想スクリーンテーブル１２ｄと同様の構成を有する。
【０１２６】
本実施形態の仮想スクリーン補正部５３はまず、仮想スクリーンテーブル１２ｄに記憶された各格子点の座標（βV ，φVC）について、座標値φVCに一致する方位角（即ち、方位角φVC）のエピポーラ線に対する方位角対応テーブル１２ｃがあるか否かを判断する。方位角φVCのエピポーラ線に対する方位角対応テーブル１２ｃがある場合、仮想スクリーン補正部５３は、実施形態１と同様の処理により、方位角対応テーブル１２ｃを用いて、格子点の天頂角βV に対応する前側画像における画素の天頂角βF と後側画像における画素の天頂角βR とを求める。
【０１２７】
一方、方位角φVCのエピポーラ線に対する方位角対応テーブル１２ｃがない場合、仮想スクリーン補正部５３は、方位角φVCの前後の方位角φJ ，φJ+1 （φJ ＜φVC＜φJ+1 ）の２つのエピポーラ線に対する方位角対応テーブル１２ｃを用いて、格子点の天頂角βV に対応する前側画像における画素の天頂角βF と後側画像における画素の天頂角βR とを求める。ここではまず、仮想スクリーン補正部５３は、実施形態１と同様の処理により、方位角φJ のエピポーラ線に対する方位角対応テーブル１２ｃを用いて、格子点の天頂角βV に対応する前側画像における画素の天頂角βFJと後側画像における画素の天頂角βRJとを求める。また、仮想スクリーン補正部５３は、方位角φJ+1 のエピポーラ線に対する方位角対応テーブル１２ｃを用いて、格子点の天頂角βV に対応する前側画像における画素の天頂角βFJ+1と後側画像における画素の天頂角βRJ+1とを求める。そして仮想スクリーン補正部５３は、算出した天頂角βFJ，βFJ+1及び天頂角βRJ，βRJ+1をそれぞれ、方位角φVCが方位角φJ ，φJ+1 を分割する内分比に応じた重み付けを行って合成することにより、格子点の天頂角βV に対応する前側画像及び後側画像における画素の天頂角βF ，βR を求める。具体的には、仮想スクリーン補正部５３は、以下の（２０）式を用いて、天頂角βFJ，βFJ+1及び内分比τから、格子点の天頂角βV に対応する前側画像における画素の天頂角βF を算出し、天頂角βRJ，βRJ+1及び内分比τから、格子点の天頂角βV に対応する後側画像における画素の天頂角βR を算出する。
【０１２８】
【数１１】
2020024687.tif 000013
【０１２９】
上述した処理により、仮想スクリーン補正部５３は、仮想スクリーン設定部５２が設定した仮想スクリーンにおいて、各格子点の天頂角を前側画像における天頂角βF に補正した前側画像用仮想スクリーンと、後側画像における天頂角βR に補正した後側画像用仮想スクリーンとを生成する。なお、仮想スクリーン設定部５２が設定した仮想スクリーンを前側画像用及び後側画像用に補正する処理は、上述した処理に限定されない。
【０１３０】
本実施形態の仮想画像生成部５５は、実施形態１と同様の処理により、パノラマ画像ＤＢ１２ａに記録された前側画像及び後側画像と、前側画像用仮想スクリーン及び後側画像用仮想スクリーンとに基づいて、第２情報処理装置２０を装着したユーザに提供する仮想画像を生成する。なお、本実施形態の仮想ビュー生成部５６は、前側画像用仮想スクリーンテーブル１２ｅから各格子点の座標値（βF ，φVC）を読み出し、天頂角βF にπ／２を加算して共通軸極座標系の天頂角θFCに変換する。そして、仮想ビュー生成部５６は、変換した天頂角θFCと、前側画像用仮想スクリーンテーブル１２ｅから読み出した格子点の方位角φVCとによる共通軸極座標系の座標（θFC，φVC）を、上述した変換処理によってワールド直交座標系及びローカル極座標系を経て、前側画像（パノラマ画像）上の座標（ｕ，ｖ）に変換する。そして仮想ビュー生成部５６は、前側画像において得られた座標（ｕ，ｖ）の画素を、前側画像用仮想スクリーンの格子点（βF ，φVC）に対応付け、画素対応テーブル１２ｇに記憶する。仮想ビュー生成部５６は、後側画像用仮想スクリーンテーブル１２ｆについても同様の処理を行い、後側画像用仮想スクリーンの各格子点に、前側画像における画素を対応付け、画素対応テーブル１２ｇに記憶する。これにより、本実施形態の仮想ビュー生成部５６は、図１５に示す画素対応テーブル１２ｇを生成する。
【０１３１】
本実施形態の仮想ビュー生成部５６は、実施形態１と同様の処理を行い、前側画像用仮想スクリーンの各仮想画素に輝度（画素値）を割り当てて前側画像の仮想ビューを生成する。また、仮想ビュー生成部５６は、後側画像用仮想スクリーンの各仮想画素に輝度（画素値）を割り当てて後側画像の仮想ビューを生成する。これにより、本実施形態の仮想ビュー生成部５６は、図１６に示す仮想ビューＤＢ１２ｈを生成する。
【０１３２】
本実施形態では、図２０に示す特徴点の対応付け処理において、第１情報処理装置１０の制御部１１は、ステップＳ１３の処理を行わない。具体的には、制御部１１は、２つのパノラマ画像において対応付けるべき特徴点を取得した場合（Ｓ１２）、取得した各特徴点について、前側画像における座標値（ｕF ，ｖF ）と後側画像における座標値（ｕR ，ｖR ）とを取得する。そして制御部１１は、前側画像における座標値（ｕF ，ｖF ）及び後側画像における座標値（ｕR ，ｖR ）に対して、座標系の変換処理を行い、共通軸極座標系の座標値（θCF，φCF）及び座標値（θCR，φCR）に変換する。更に制御部１１は、共通軸極座標系の天頂角θCF，θCRをエピポーラ面座標系の方位角βF ，βR に変換し、共通軸極座標系の方位角φCF，φCR（φCF＝φCR）について、方位角βF 、βR の正接tanβF 、tanβRを対応付けて方位角対応テーブル１２ｃに記憶する（Ｓ１４）。これにより、本実施形態では、エピポーラ線（共通軸極座標系の方位角φC ）毎に、前側画像における方位角情報（エピポーラ面座標系の方位角βF の正接tanβF ）及び後側画像における方位角情報（エピポーラ面座標系の方位角βR の正接tanβR）が対応付けられる。
【０１３３】
また本実施形態では、図２１中のステップＳ３５の処理において、第１情報処理装置１０の制御部１１は、設定した仮想スクリーン各格子点のローカル極座標系の座標値（θVL，φVL）を共通軸極座標系の座標値（θVC，φVC）に変換する。また制御部１１は、各格子点の共通軸極座標系の天頂角θVCをエピポーラ面座標系の方位角βV に変換する。そして制御部１１は、各格子点の座標値として座標（βV ，φVC）を仮想スクリーンテーブル１２ｄに記憶することにより、仮想スクリーンを設定する。
【０１３４】
以下に、本実施形態における仮想スクリーンの補正処理について説明する。図２９は、実施形態３の第１情報処理装置１０による仮想スクリーンの補正処理の手順を示すフローチャートである。図２９に示す処理は、図２３中のステップＳ５１〜Ｓ５２の代わりにステップＳ７１〜Ｓ７６を追加したものである。図２９では、ステップＳ５８〜Ｓ５９の図示を省略する。本実施形態の第１情報処理装置１０の制御部１１は、設定された仮想スクリーンの１つの格子点の座標（βV ，φVC）を仮想スクリーンテーブル１２ｄから読み出す（Ｓ７１）。制御部１１は、読み出した格子点の方位角φVCのエピポーラ線に対する方位角対応テーブル１２ｃがあるか否かを判断する（Ｓ７２）。方位角対応テーブル１２ｃがあると判断した場合（Ｓ７２：ＹＥＳ）、制御部１１は、実施形態１と同様にステップＳ５３以降の処理を行う。
【０１３５】
なお、本実施形態では、ステップＳ５５で、制御部１１は、ステップＳ５４で各ペアにおいて算出したtanβのいずれかが、ステップＳ７１で読み出した格子点の天頂角βV の正接（天頂角情報）に一致するか否かを判断する。またステップＳ５７で、制御部１１は、算出した方位角βF を、格子点の天頂角βV に対応する前側画像における画素の天頂角βF として前側画像用仮想スクリーンテーブル１２ｅに記憶する。同様にステップＳ５８で、制御部１１は、算出した方位角βR を、格子点の天頂角βV に対応する後側画像における画素の天頂角βR として後側画像用仮想スクリーンテーブル１２ｆに記憶する。
【０１３６】
一方、格子点の方位角φVCのエピポーラ線に対する方位角対応テーブル１２ｃがないと判断した場合（Ｓ７２：ＮＯ）、制御部１１は方位角φVCの前後の方位角φJ ，φJ+1の２つのエピポーラ線に対する方位角対応テーブル１２ｃを取得する（Ｓ７３）。そして制御部１１は、一方の方位角対応テーブル１２ｃ（例えば方位角φJのエピポーラ線に対する方位角対応テーブル１２ｃ）に基づいて、格子点の天頂角βV に対応する前側画像における画素の天頂角βFJと後側画像における画素の天頂角βRJとを算出する（Ｓ７４）。また制御部１１は、他方の方位角対応テーブル１２ｃ（例えば方位角φJ+1 のエピポーラ線に対する方位角対応テーブル１２ｃ）に基づいて、格子点の天頂角βV に対応する前側画像における画素の天頂角βFJ+1と後側画像における画素の天頂角βRJ+1とを算出する（Ｓ７５）。
【０１３７】
そして制御部１１は、算出した天頂角βFJ，βFJ+1を、方位角φJ ，φJ+1 に対する方位角φVCの内分比に応じた重み付けを行って合成することにより、格子点の天頂角βV に対応する前側画像における画素の天頂角βF を算出する。また制御部１１は、算出した天頂角βRJ，βRJ+1を、方位角φJ ，φJ+1 に対する方位角φVCの内分比に応じた重み付けを行って合成することにより、格子点の天頂角βV に対応する後側画像における画素の天頂角βR を算出する（Ｓ７６）。そして制御部１１は、算出した天頂角βF を前側画像用仮想スクリーンテーブル１２ｅに記憶し（Ｓ５７）、算出した天頂角βR を後側画像用仮想スクリーンテーブル１２ｆに記憶する（Ｓ５８）。
【０１３８】
上述した処理により、本実施形態では、仮想画像を生成するための仮想ビューを生成する際に、２つの仮想ビュー（パノラマ画像）において、水平方向だけでなく鉛直方向の歪みも考慮して歪みを抑制するように、仮想スクリーンの各格子点における被写体位置（共通軸極座標における天頂角）を補正する。よって、２つの仮想ビュー間において水平方向及び鉛直方向の全箇所にわたって被写体位置を合せることができるので、２つの仮想ビューを合成した場合に生じる縦方向のズレをより抑制できる。これにより、２つの仮想ビューを合成した仮想画像であってもユーザに与える違和感が抑制された仮想画像を提供できる。
本実施形態の構成は、上述した実施形態２にも適用可能であり、実施形態２に適用した場合であっても同様の効果が得られる。
【０１３９】
（実施形態４）
本実施形態は、撮影対象の空間内の任意の４箇所で撮影された４つのパノラマ画像に基づいて仮想画像を生成する情報処理システム４０に関する。実施形態１と共通する部分については説明を省略する。本実施形態では、４つのパノラマ画像において、被写体の特徴点（画素）の対応付けを任意の位置で行うことができる。即ち、任意の位置の特徴点を対応付けることができる。本実施形態では、床面からの高さが任意であり、平面上にない４箇所の撮影位置で撮影された４つのパノラマ画像を用い、４つのパノラマ画像は、画像の上下方向が鉛直方向に一致し、画像中央に写る被写体の撮影位置からの方角が一致している。このような４つのパノラマ画像は、撮影時に撮影状態を一致させて撮影されたものであってもよく、撮影時の情報を用いて撮影後に補正処理が行われたものであってもよい。カメラ３０で撮影されたパノラマ画像は、撮影位置を示す情報と共に第１情報処理装置１０へ送信され、第１情報処理装置１０のパノラマ画像ＤＢ１２ａに記録される。
【０１４０】
図３０は、実施形態４の情報処理システム４０の表示時の構成を示す模式図である。本実施形態の第１情報処理装置１０では表示時に制御部１１が仮想画像生成プログラムＰＧを実行することにより、記憶部１２に、特徴点対応テーブル１２１、パッチテーブル１２２、特徴点テーブル１２３が記憶される。第２情報処理装置２０は実施形態１と同様であるので説明を省略する。
【０１４１】
図３１は、実施形態４の第１情報処理装置１０の制御部１１によって実現される機能を示すブロック図、図３２は、各テーブル１２１，１２２，１２３の構成例を示す模式図である。なお、図３２Ａは特徴点対応テーブル１２１を示し、図３２Ｂはパッチテーブル１２２を示し、図３２Ｃは特徴点テーブル１２３を示す。本実施形態の第１情報処理装置１０の制御部１１は、仮想画像生成プログラムＰＧを実行した場合、特徴点対応付け部６１、特徴点パッチ生成部６２、仮想カメラ位置算出部６３、特徴点算出部６４、仮想画像生成部６５の各機能を実現する。なお、これらの各機能の一部を専用のハードウェア回路で実現してもよい。
【０１４２】
本実施形態の特徴点対応付け部６１は、撮影対象の空間内の４箇所で撮影した４つのパノラマ画像において、同じ被写体が写っている位置の画素を特徴点として対応付ける。図３３は実施形態４の特徴点を説明するための模式図である。図３３には２つのパノラマ画像のみを示すが、本実施形態の特徴点対応付け部６１は、４つのパノラマ画像において、図３３Ａ，Ｂに示すように、同じ被写体の同じ部分の画素を特徴点Ｌ１〜Ｌ２として対応付ける。図３３Ａ，Ｂに示すパノラマ画像において、特徴点Ｌ１はテレビの角であり、特徴点Ｌ２はカーテンの角である。本実施形態では、特徴点の位置に制限がなく、同じ被写体を特徴点とすればよいので、テレビやカーテン等の角を特徴点に用いることができる。特徴点対応付け部６１は、４つのパノラマ画像中の各特徴点を、画像の左上を原点（０，０）とし、原点から右方向をＸ軸とし下方向をＹ軸とした画像座標系の座標（ｘ，ｙ）で表し、対応付けた特徴点の画像座標系の座標値（ｘ，ｙ）を特徴点対応テーブル１２１に記憶する。
【０１４３】
図３２Ａに示すように、特徴点対応テーブル１２１には、特徴点対応付け部６１が対応付けた特徴点のセット毎に、特徴点ＩＤと、４つのパノラマ画像（画像Ｐ１〜Ｐ４）における特徴点の画像座標系の座標値（ｘ，ｙ）とが対応付けて記憶される。特徴点ＩＤは各特徴点に固有に付与された識別情報である。特徴点対応付け部６１は、４つのパノラマ画像間で対応付けるべき特徴点を、例えばユーザ入力によって取得してもよいし、ＳＩＦＴ（Scale-Invariant Feature Transform ）アルゴリズム等の技術を用いて自動的に抽出してもよい。自動的に抽出する場合、特徴点対応付け部６１は、４つのパノラマ画像間で類似する画素を自動的に抽出し、抽出した画素の座標値を同じ被写体の特徴点として取得する。特徴点対応付け部６１は、例えば１００個の特徴点のセットを対応付ける。
【０１４４】
特徴点対応付け部６１は、特徴点対応テーブル１２１に記憶した各特徴点の画像座標系の座標を、実施形態３で用いたワールド直交座標系の座標に変換する。なお、画像座標系の座標をワールド直交座標系の座標に変換する場合、一旦ローカル極座標系の座標に変換した後にワールド直交座標系の座標に変換する。各座標系の変換処理は、実施形態１〜３で説明した処理と同じである。特徴点対応付け部６１は、それぞれ変換した各特徴点のワールド直交座標系の座標を特徴点対応テーブル１２１に記憶する。なお、特徴点対応付け部６１は、ワールド直交座標系の座標を特徴点対応テーブル１２１に上書き保存してもよいし、特徴点対応テーブル１２１と同じ構成の別のテーブルに記憶してもよい。なお、以降の説明では、特徴点対応テーブル１２１に、各特徴点のワールド直交座標系の座標が記憶されているものとする。
【０１４５】
特徴点パッチ生成部６２は、いずれかのパノラマ画像について、特徴点対応テーブル１２１に記憶された特徴点の座標値に基づいて、全ての特徴点を用いて各特徴点を頂点とする三角形の特徴点パッチを複数生成する。特徴点は、パノラマ画像の撮影位置を中心とした単位球面上に分布するため、全ての特徴点を用いて三角形の特徴点パッチを生成した場合、特徴点パッチ群は、単位球面を近似した閉曲面を構成するポリゴン群となる。例えば、特徴点パッチ生成部６２は、ユーザ入力に基づいてそれぞれの特徴点パッチを生成してもよいし、ドロネー三角形分割、アルファシェイプ、ボールピボッティング等の方法を用いて自動的にそれぞれの特徴点パッチを生成してもよい。
【０１４６】
特徴点パッチ生成部６２は、生成した特徴点パッチの各頂点となる特徴点の情報をパッチテーブル１２２に記憶する。図３２Ｂに示すように、パッチテーブル１２２には、生成された特徴点パッチ毎に、パッチＩＤと、特徴点パッチの各頂点となる特徴点の特徴点ＩＤとが対応付けて記憶される。パッチＩＤは各特徴点パッチに固有に付与された識別情報であり、特徴点ＩＤは特徴点対応テーブル１２１に記憶された各特徴点のＩＤである。なお、特徴点パッチ生成部６２が生成する特徴点パッチは三角形に限定されない。生成された特徴点パッチ群が、パノラマ画像における単位球面を近似した閉曲面を構成すればよく、各特徴点パッチは、四角形、五角形等でもよい。
【０１４７】
図３４は、撮影位置及び仮想視点の位置関係を示す模式図である。本実施形態では、４箇所の撮影位置Ｐ1 〜Ｐ4 は１つの平面上に存在しない位置であり、仮想視点Ｖは撮影対象の空間内の任意の位置とすることができる。図３４に示す例では、仮想視点Ｖは、４箇所の撮影位置Ｐ1 〜Ｐ4 を頂点とする四面体の内部に存在する位置である。撮影位置Ｐ1 〜Ｐ4 で撮影したパノラマ画像をそれぞれパノラマ画像Ｐ１〜Ｐ４とする。
【０１４８】
仮想カメラ位置算出部６３は、第２情報処理装置２０から取得したユーザの頭部の位置に基づいて、仮想視点の位置を算出する。ユーザの頭部の位置は、第２情報処理装置２０にて所定のタイミングで検出されて逐次第１情報処理装置１０へ送信される。仮想視点の位置は、ユーザの頭部の中心であり、例えば第１情報処理装置１０の動作開始時は撮影対象の部屋（空間）における所定位置とし、第２情報処理装置２０から送信されてくるユーザの頭部の位置に基づいて逐次変更される。よって、仮想カメラ位置算出部６３は、動作開始時は撮影対象の部屋における所定位置を仮想視点Ｖに設定し、以降はユーザの移動に伴って移動（変更）する仮想視点Ｖの位置を算出する。
【０１４９】
仮想カメラ位置算出部６３は、パノラマ画像ＤＢ１２ａに記憶してある４箇所の撮影位置の位置情報と、逐次更新される仮想視点Ｖの位置とに基づいて、仮想カメラの位置を算出する。仮想カメラの位置は、４つの撮影位置のいずれかと仮想視点とを通る直線が、他の３つの撮影位置を含む平面と交差する点である第１の仮想カメラ位置と、他の３つの撮影位置を含む平面において、３つの撮影位置のいずれかと第１の仮想カメラ位置とを通る直線が、他の２つの撮影位置を通る直線と交差する点である第２の仮想カメラ位置とを含む。図３４に示す例では、撮影位置Ｐ4 及び仮想視点Ｖを通る直線が撮影位置Ｐ1 〜Ｐ3 を含む平面と交差する点Ｑ4 を第１仮想カメラ位置Ｑ4 とし、撮影位置Ｐ3 及び第１仮想カメラ位置Ｑ4 を通る直線が、撮影位置Ｐ1 〜Ｐ2 を通る直線と交差する点Ｑ3 を第２仮想カメラ位置Ｑ3 とする。
【０１５０】
仮想カメラ位置算出部６３は、まず、パノラマ画像ＤＢ１２ａから読み出した４箇所の撮影位置Ｐ1 〜Ｐ4 の位置情報及び仮想視点Ｖの位置情報として、それぞれのワールド直交座標系の座標値を取得する。そして、図３４に示す例において、仮想カメラ位置算出部６３は、撮影位置Ｐ4 及び仮想視点Ｖを通る直線を表す関数を算出し、撮影位置Ｐ1 〜Ｐ3 を含む平面を表す関数を算出し、算出した関数に基づいて、この直線及び平面の交点（第１仮想カメラ位置）Ｑ4 のワールド直交座標系の座標値を算出する。また、仮想カメラ位置算出部６３は、撮影位置Ｐ3 及び第１仮想カメラ位置Ｑ4 を通る直線を表す関数を算出し、撮影位置Ｐ1 ，Ｐ2 を通る直線を表す関数を算出し、算出した関数に基づいて、２つの直線の交点（第２仮想カメラ位置）Ｑ3 のワールド直交座標系の座標値を算出する。
【０１５１】
特徴点算出部６４は、特徴点対応テーブル１２１の記憶内容と、仮想カメラ位置算出部６３が算出した仮想カメラ位置Ｑ3 ，Ｑ4 及び仮想視点Ｖの位置とに基づいて、仮想カメラ位置Ｑ3 ，Ｑ4 及び仮想視点Ｖのそれぞれにおける各特徴点の位置（座標値）を算出する。特徴点算出部６４は、まず、撮影位置Ｐ1 ，Ｐ2 及び第２仮想カメラ位置Ｑ3 と、特徴点対応テーブル１２１に記憶してあるパノラマ画像Ｐ１，Ｐ２における特徴点の座標値とに基づいて、第２仮想カメラ位置Ｑ3 における特徴点の座標値を算出する。次に、特徴点算出部６４は、撮影位置Ｐ3 及び仮想カメラ位置Ｑ3 ，Ｑ4 と、特徴点対応テーブル１２１に記憶してあるパノラマ画像Ｐ３における特徴点の座標値と、算出した第２仮想カメラ位置Ｑ3 における特徴点の座標値とに基づいて、第１仮想カメラ位置Ｑ4 における特徴点の座標値を算出する。そして、特徴点算出部６４は、撮影位置Ｐ4 、第１仮想カメラ位置Ｑ4 及び仮想視点Ｖの位置と、特徴点対応テーブル１２１に記憶してあるパノラマ画像Ｐ４における特徴点の座標値と、算出した第１仮想カメラ位置Ｑ4 における特徴点の座標値とに基づいて、仮想視点Ｖにおける特徴点の座標値を算出する。
【０１５２】
特徴点算出部６４が、撮影位置Ｐ1 ，Ｐ2 及び第２仮想カメラ位置Ｑ3 と、パノラマ画像Ｐ１，Ｐ２における特徴点の座標値とに基づいて、第２仮想カメラ位置Ｑ3 における特徴点の座標値を算出する処理について説明する。撮影位置Ｐ1 、第２仮想カメラ位置Ｑ3 及び撮影位置Ｐ2は同一直線上に存在し、第２仮想カメラ位置Ｑ3 が撮影位置Ｐ1 から撮影位置Ｐ2 までの線分Ｐ1 Ｐ2 を内分する内分比をｔ０とすると、
線分Ｐ1 Ｑ3 ：線分Ｑ3 Ｐ2 ＝ｔ０：１−ｔ０
となる。ここで、撮影位置Ｐ1 を後側撮影位置とし、撮影位置Ｐ2 を前側撮影位置とし、撮影位置Ｐ1 から撮影位置Ｐ2 に向かう方向を、実施形態３で説明した共通軸の正方向とする。線分Ｐ1 Ｐ2 を単位ベクトル化することにより、後側画像（パノラマ画像Ｐ１）及び前側画像（パノラマ画像Ｐ２）のそれぞれが共通軸と交差する点のうちで共通軸の正方向側の交点（図２６中の点Ｄ１，Ｄ３）の方角が得られ、この方角をベクトルＤ（ｘD ，ｙD ，ｚD ）で表す。パノラマ画像Ｐ１，Ｐ２におけるある特徴点Ｆk の位置は、撮影位置Ｐ1 から撮影位置Ｐ2 に向かう方向を共通軸の正方向とした共通軸極座標系において、同一の方位角φC 上に存在する。即ち、パノラマ画像Ｐ１，Ｐ２における特徴点Ｆk の位置は、実施形態３で説明したように同じエピポーラ線上に存在する。なお、パノラマ画像Ｐ１における特徴点Ｆk を特徴点Ｆk1とし、パノラマ画像Ｐ２における特徴点Ｆk を特徴点Ｆk2とする。
【０１５３】
それぞれの撮影位置Ｐ1 ，Ｐ2 から特徴点Ｆk1，Ｆk2の方角は、特徴点対応テーブル１２１にワールド直交座標系における単位ベクトルによって、それぞれ（ｘk1，ｙk1，ｚk1），（ｘk2，ｙk2，ｚk2）と記憶されている。前側画像であるパノラマ画像Ｐ２における交点Ｄ１と特徴点Ｆk2とのなす角度は、ベクトルＤ（ｘD ，ｙD ，ｚD ）とベクトル（ｘk2，ｙk2，ｚk2）との内積を用いて求めることができる。そして、この角度は共通軸極座標系における天頂角θC に相当する。２つのベクトルＤ（ｘD ，ｙD ，ｚD ），（ｘk2，ｙk2，ｚk2）はそれぞれ単位ベクトルであるので、以下の（２１）式となり、特徴点Ｆk2の共通軸極座標系の天頂角θk2は、以下の（２２）式を用いて求めることができる。よって、特徴点算出部６４は、ベクトルＤ（ｘD ，ｙD ，ｚD ）及びベクトル（ｘk2，ｙk2，ｚk2）と、（２２）式とに基づいて、パノラマ画像Ｐ２における特徴点Ｆk2の共通軸極座標系の天頂角θk2を算出する。同様に、特徴点算出部６４は、後側画像であるパノラマ画像Ｐ１において、交点Ｄ３と特徴点Ｆk1とのなす角度である共通軸極座標系の天頂角θk1を以下の（２３）式を用いて算出する。なお、共通軸極座標系における特徴点Ｆk1，Ｆk2の方位角φC は不明であるが、両者は同一である。
【０１５４】
【数１２】
2020024687.tif 000014
【０１５５】
特徴点算出部６４は、算出した特徴点Ｆk1，Ｆk2の共通軸極座標系の天頂角θk1，θk2をそれぞれ以下の（２４），（２５）式を用いて、実施形態１で図６に示したＳＴ座標系における天頂角βR ，βF に変換する。
【０１５６】
【数１３】
2020024687.tif 000015
【０１５７】
ＳＴ座標系の空間において、第２仮想カメラ位置Ｑ3 における特徴点Ｆk の天頂角βV と、パノラマ画像Ｐ１，Ｐ２における特徴点Ｆk1，Ｆk2の天頂角βR ，βF とは、実施形態１で図１２に示した関係を有する。よって、特徴点算出部６４は、得られた天頂角βR ，βF と以下の（２６）式とを用いて、第２仮想カメラ位置Ｑ3 における特徴点Ｆk のＳＴ座標系における天頂角βV を算出する。
【０１５８】
tanβV ＝ｔ０tanβF ＋（１−ｔ０）tanβR       …（２６）
【０１５９】
そして、特徴点算出部６４は、算出した第２仮想カメラ位置Ｑ3 における特徴点Ｆk のＳＴ座標系における天頂角βV から、以下の（２７）式を用いて、第２仮想カメラ位置Ｑ3 における特徴点Ｆk の共通軸極座標系の天頂角θQ3k を算出する。
【０１６０】
θQ3k ＝βV ＋π／２      …（２７）
【０１６１】
次に、特徴点算出部６４は、算出した第２仮想カメラ位置Ｑ3 における特徴点Ｆk の共通軸極座標系の天頂角θQ3k から、第２仮想カメラ位置Ｑ3 における特徴点Ｆk のワールド直交座標系における方角を算出する。ここで、共通軸の方向（ベクトルＤ）、撮影位置Ｐ1 ，Ｐ2 における特徴点Ｆk （Ｆk1，Ｆk2）の方角、第２仮想カメラ位置Ｑ3 における特徴点Ｆk の方角のそれぞれの単位ベクトルＤ，ＦP1，ＦQ3，ＦP2は全て、パノラマ画像における単位球面上の同一のエピポーラ線上に存在する。即ち、これらのベクトルで表される４点は同一のエピポーラ面上にある。
【０１６２】
図３５はエピポーラ面の例を示す模式図である。図３５において、実線で示す円は１つのエピポーラ線を示しており、このエピポーラ線を含むエピポーラ面を、エピポーラ面に直交する方向から見た状態を示す。図３５に示すように、共通軸の方向（ベクトルＤ）、撮影位置Ｐ1 における特徴点Ｆk の方角を示すベクトルＦP1、第２仮想カメラ位置Ｑ3 における特徴点Ｆk の方角を示すベクトルＦQ3、撮影位置Ｐ2 における特徴点Ｆk の方角を示すベクトルＦP2は、この順序でエピポーラ面の単位円周（エピポーラ線）上に位置し、単位円の中心ＣからベクトルＤの方向を基準として、中心Ｃを中心とした時計回りにそれぞれ回転角度θP1，θQ3，θP2を有する。ここで、特徴点算出部６４は、中心Ｃを中心とした回転における回転軸を算出する。回転軸は、ベクトルＤ、撮影位置Ｐ1 における特徴点Ｆk の方角（ベクトルＦP1）、及び撮影位置Ｐ2 における特徴点Ｆk の方角（ベクトルＦP2）のうちのいずれか２つの外積によって求められる。回転軸の方向をベクトルｎ＝（ｎx ，ｎy ，ｎz ）とし、例えばベクトルＤ及び撮影位置Ｐ2 における特徴点Ｆk の方角（ベクトルＦP2）を用いるとすると、回転軸の方向ベクトルは以下の（２８）式で算出される。
【０１６３】
【数１４】
2020024687.tif 000016
【０１６４】
また、算出すべきベクトルＦQ3＝（ｘFQ3 ，ｙFQ3 ，ｚFQ3 ）は、回転軸（ベクトルｎ）に対してベクトルＤを回転角度θQ3だけ回転させたものである。任意の回転軸であるベクトルｎ＝（ｎx ，ｎy ，ｎz ）に対する回転は、以下の（２９）式に示すロドリゲスの回転公式と呼ばれる行列Ｒｎ（θ）で実現できる。
【０１６５】
【数１５】
2020024687.tif 000017
【０１６６】
従って、特徴点算出部６４は、ベクトルＦQ3＝（ｘFQ3 ，ｙFQ3 ，ｚFQ3 ）を以下の（３０）式を用いて算出する。これにより、第２仮想カメラ位置Ｑ3 における特徴点Ｆk の位置（ワールド直交座標系において第２仮想カメラ位置Ｑ3 から特徴点Ｆk に向かう単位方向ベクトル）を算出できる。
【０１６７】
【数１６】
2020024687.tif 000018
【０１６８】
特徴点算出部６４は、上述した演算処理を、特徴点対応テーブル１２１に記憶してある全ての特徴点Ｆ1 〜Ｆn に対して行い、第２仮想カメラ位置Ｑ3 における各特徴点Ｆ1 〜Ｆn の位置を、ワールド直交座標系における単位方向ベクトルとして得ることができる。図３２Ｃは、第２仮想カメラ位置Ｑ3 における各特徴点Ｆ1 〜Ｆn の位置を記憶した特徴点テーブル１２３の例を示す。特徴点算出部６４は、それぞれ算出した各特徴点の位置を特徴点テーブル１２３に記憶し、第２仮想カメラ位置Ｑ3 における特徴点テーブルを生成する。なお、特徴点算出部６４は、例えば特徴点対応テーブル１２１においてパノラマ画像Ｐ１の特徴点の位置を記憶している欄に、第２仮想カメラ位置Ｑ3 における各特徴点Ｆ1 〜Ｆn の位置を上書きしてもよい。
【０１６９】
特徴点算出部６４は、上述した処理と同様の処理によって、撮影位置Ｐ3 及び仮想カメラ位置Ｑ3 ，Ｑ4 と、特徴点対応テーブル１２１に記憶してあるパノラマ画像Ｐ３における特徴点の座標値と、算出した第２仮想カメラ位置Ｑ3 における特徴点テーブル１２３とに基づいて、第１仮想カメラ位置Ｑ4 における特徴点の座標値を算出する。よって、特徴点算出部６４は、第１仮想カメラ位置Ｑ4 における特徴点テーブルを生成する。そして、特徴点算出部６４は、撮影位置Ｐ4 、第１仮想カメラ位置Ｑ4 及び仮想視点Ｖの位置と、特徴点対応テーブル１２１に記憶してあるパノラマ画像Ｐ４における特徴点の座標値と、算出した第１仮想カメラ位置Ｑ4 における特徴点テーブルとに基づいて、仮想視点Ｖにおける特徴点の座標値を算出する。これにより、特徴点算出部６４は、最終的に仮想視点Ｖにおける特徴点テーブルを生成する。
【０１７０】
仮想画像生成部６５は、特徴点パッチ生成部６２が生成したパッチテーブル１２２と、特徴点算出部６４が算出した仮想視点Ｖにおける特徴点テーブルと、第２情報処理装置２０から取得したユーザの頭部の向き（視線方向）とに基づいて、第２情報処理装置２０を装着したユーザに提供する仮想画像を生成する。仮想画像生成部６５は、まず、パッチテーブル１２２及び仮想視点Ｖにおける特徴点テーブルに基づいて、複数の特徴点パッチを生成し、パノラマ画像における単位球面を近似したポリゴン形状を生成する。
【０１７１】
図３６はポリゴン形状の例を示す模式図である。ポリゴン形状に含まれる各特徴点パッチは、３つの特徴点を頂点とする三角形状を有する。仮想画像生成部６５は、生成したポリゴン形状において、単位球の中央の仮想視点Ｖからユーザの視線方向を見た状態の仮想画像を生成する。特徴点対応テーブル１２１において、各特徴点に、４つのパノラマ画像Ｐ１〜Ｐ４における画像中の座標値が対応付けられている。よって、それぞれのパノラマ画像Ｐ１〜Ｐ４において、特徴点パッチの各頂点は、各特徴点の画像中の座標値をテクスチャ座標値として有する。仮想画像生成部６５は、それぞれの特徴点パッチの各頂点が有するテクスチャ座標値を用いて、テクスチャマッピングを行う。仮想画像生成部６５は、例えばコンピュータグラフィックスによるレンダリング機能（ＯｐｅｎＧＬ等のグラフィックライブラリ）を利用してテクスチャマッピングを行い、仮想画像中の各画素に、パノラマ画像Ｐ１〜Ｐ４の画素値（輝度）を割り当てて仮想画像を生成する。
【０１７２】
なお、仮想画像生成部６５は、４つのパノラマ画像Ｐ１〜Ｐ４のそれぞれに基づいて、特徴点パッチの各頂点が有するテクスチャ座標値を用いたテクスチャマッピングによって４つの中間ビューを生成し、生成した４つの中間ビューを、仮想視点Ｖとそれぞれの撮影位置との位置関係に応じた割合で、アルファブレンディング等で合成して仮想画像を生成してもよい。例えば、仮想画像生成部６５は、仮想視点Ｖからそれぞれの撮影位置までの距離が短いほど高い割合で中間ビューを合成して仮想画像を生成してもよい。また、仮想画像生成部６５は、仮想視点Ｖから最も近い撮影位置で撮影したパノラマ画像に基づいて、仮想画像を生成してもよいし、仮想視点Ｖから近い２箇所の撮影位置で撮影した２つのパノラマ画像に基づいて２つの中間ビューを生成し、生成した２つの中間ビューを、仮想視点Ｖと２つの撮影位置との位置関係に応じた割合で合成して仮想画像を生成してもよい。
【０１７３】
第１情報処理装置１０は、上述したように生成した仮想画像を第２情報処理装置２０へ送信し、第２情報処理装置２０が表示部２４に表示させることにより、第２情報処理装置２０を装着したユーザに、ユーザの頭部の位置及び向きに応じた仮想画像を提供できる。よって、第１情報処理装置１０は、カメラ３０で撮影した部屋を、部屋の中の任意の視点から任意の方向を見た状態の仮想画像をユーザに提供できる。
【０１７４】
本実施形態では、カメラ３０を用いて室内を撮影する際にカメラ３０及び第１情報処理装置１０は、図１９に示す処理と同様の処理を行う。なお、本実施形態では、カメラ３０は、撮影対象の室内の４箇所の撮影位置で撮影を行い、第１情報処理装置１０は、カメラ３０から送信された４つのパノラマ画像をパノラマ画像ＤＢ１２ａに記録する。
【０１７５】
図３７は、実施形態４の第１情報処理装置１０による特徴点の対応付け処理の手順を示すフローチャートである。本実施形態の第１情報処理装置１０は、４つのパノラマ画像の特徴点を対応付ける処理を行う。第１情報処理装置１０の制御部１１は、同一の部屋で撮影された４つのパノラマ画像をパノラマ画像ＤＢ１２ａから読み出す（Ｓ８１）。制御部１１は、４つのパノラマ画像において、同じ被写体が写っている位置の画素に対して対応付けるべき特徴点を取得する（Ｓ８２）。制御部１１は、４つのパノラマ画像に対してそれぞれ取得した特徴点を対応付けて特徴点対応テーブル１２１に記憶する（Ｓ８３）。なお、制御部１１は、特徴点を画像座標系の座標値で取得した場合、各特徴点の画像座標系の座標をワールド直交座標系の座標に変換して特徴点対応テーブル１２１に記憶する。なお、制御部１１は、画像座標系の座標値を一旦ローカル極座標系の座標に変換した後にワールド直交座標系の座標に変換する。
【０１７６】
制御部１１は、特徴点対応テーブル１２１に記憶された、いずれかのパノラマ画像における特徴点の座標値に基づいて、全ての特徴点を用いて各特徴点を頂点とする三角形の特徴点パッチを生成する（Ｓ８４）。これにより、パノラマ画像における単位球面を近似した閉曲面を構成するポリゴン群が生成される。制御部１１は、生成した特徴点パッチの各頂点となる特徴点の情報をパッチテーブル１２２に記憶する（Ｓ８５）。
【０１７７】
次に、本実施形態において、パノラマ画像を再生（表示）する際に第１情報処理装置１０及び第２情報処理装置２０が行う処理について説明する。図３８は、表示時に第１情報処理装置１０及び第２情報処理装置２０が行う処理の手順を示すフローチャートである。ここでは、それぞれのパノラマ画像中の各特徴点の座標値がワールド直交座標系の座標値で記憶してある特徴点対応テーブル１２１と、パッチテーブル１２２とは予め記憶部１２に記憶されているものとする。
【０１７８】
本実施形態の第２情報処理装置２０の制御部２１は、センサ部２５によってユーザの頭部の位置及び向きを検出し、位置及び向きを示す情報を取得する（Ｓ９１）。制御部２１は、取得した位置及び向きを示す情報を第１情報処理装置１０へ送信する（Ｓ９２）。第１情報処理装置１０の制御部１１は、再生すべきパノラマ画像をパノラマ画像ＤＢ１２ａから読み出す（Ｓ１０１）。制御部１１は、例えば撮影対象の部屋で撮影された４つのパノラマ画像を読み出す。
【０１７９】
制御部１１は、第２情報処理装置２０が送信した位置及び向きを示す情報を受信し（Ｓ１０２）、前回受信した情報と比較して、位置又は向きが変化したか否かを判断する（Ｓ１０３）。位置及び向きのいずれも変化していないと判断した場合（Ｓ１０３：ＮＯ）、制御部１１は、ステップＳ１０２の処理に戻り、第２情報処理装置２０から位置及び向きを示す情報を受信する都度、位置又は向きが変化したか否かを判断する。
【０１８０】
位置又は向きが変化したと判断した場合（Ｓ１０３：ＹＥＳ）、制御部１１は、受信した位置に基づいて仮想視点の位置を算出し、算出した仮想視点の位置と、４つのパノラマ画像のそれぞれの撮影位置とに基づいて、仮想カメラの位置を算出する（Ｓ１０４）。仮想カメラの位置は、４つの撮影位置のいずれかと仮想視点とを通る直線が、他の３つの撮影位置を含む平面と交差する点である第１の仮想カメラ位置と、他の３つの撮影位置のいずれかと第１の仮想カメラ位置とを通る直線が、他の２つの撮影位置を通る直線と交差する点である第２の仮想カメラ位置とを含む。
【０１８１】
制御部１１は、特徴点対応テーブル１２１の記憶内容と、算出した仮想カメラ位置及び仮想視点の位置とに基づいて、仮想カメラ位置及び仮想視点のそれぞれにおける各特徴点の位置（座標値）を算出し、特徴点テーブルを生成する（Ｓ１０５）。制御部１１は、まず、特徴点対応テーブル１２１の記憶内容と仮想カメラ位置とに基づいて、仮想カメラ位置における各特徴点の位置を算出して特徴点テーブルを生成する。そして、制御部１１は、特徴点対応テーブル１２１の記憶内容と、仮想カメラ位置及び仮想視点の位置と、仮想カメラ位置における特徴点テーブルとに基づいて、仮想視点における各特徴点の位置を算出して特徴点テーブルを生成する。
【０１８２】
制御部１１は、パッチテーブル１２２と、算出した仮想視点における特徴点テーブルと、ステップＳ１０２で受信したユーザの頭部の向き（視線方向）とに基づいて、仮想画像を生成する（Ｓ１０６）。制御部１１は、まず、パッチテーブル１２２及び仮想視点における特徴点テーブルに基づいて、複数の特徴点パッチを生成し、パノラマ画像における単位球面を近似したポリゴン形状を生成する。そして、制御部１１は、生成したポリゴン形状において、単位球の中央の仮想視点からユーザの視線方向を見た状態の仮想画像を、４つのパノラマ画像の少なくとも１つに基づいて生成する。
【０１８３】
制御部１１は、生成した仮想画像を第２情報処理装置２０へ送信する（Ｓ１０７）。第２情報処理装置２０の制御部２１は、第１情報処理装置１０が送信した仮想画像を受信し（Ｓ９３）、受信した仮想画像を表示部２４に表示させる（Ｓ９４）。第２情報処理装置２０の制御部２１は、ユーザの頭部の位置及び向きの検出及び送信を、所定時間間隔又はユーザからの指示に従って行い、第１情報処理装置１０の制御部１１は、第２情報処理装置２０から位置及び向きの情報を受信する都度、ステップＳ１０３〜Ｓ１０７の処理を行う。これにより、実写データに基づいて、任意の視点から見た画像を生成する情報処理システム４０を提供することができる。
【０１８４】
上述した処理により、本実施形態では、仮想視点の位置を撮影空間内の任意の位置とすることができる。また、本実施形態では、４つのパノラマ画像における特徴点を、画像中の任意の位置（画素）に設定できる。例えば、テレビ、カーテン、窓等の対象物の角を特徴点に利用できる。よって、特徴点で囲まれた特徴点パッチに基づいて仮想画像中の各画素に、パノラマ画像の各画素値（輝度）を割り当てて仮想画素を生成することにより、中間ビューを合成した仮想画像において、対象物のエッジ部分のブレを抑制できる。また、本実施形態によると、空間内の任意の仮想視点における仮想画像を生成することができるので、仮想視点の位置における自由度が増す。
【０１８５】
本実施形態において、撮影対象の部屋における３箇所の撮影位置で撮影した３つのパノラマ画像を用いて、任意の仮想位置における仮想画像を生成して提供する構成としてもよい。この場合、仮想位置は、３箇所の撮影位置を含む平面上の位置とする。例えば、図３４に示す例において、撮影位置Ｐ1 〜Ｐ3 で撮影した３つのパノラマ画像を用いて、点Ｑ4 を仮想視点とした場合、第１情報処理装置１０の特徴点算出部６４は、撮影位置Ｐ1 ，Ｐ2 及び仮想カメラ位置Ｑ3 と、特徴点対応テーブル１２１に記憶してあるパノラマ画像Ｐ１，Ｐ２における特徴点の座標値とに基づいて、仮想カメラ位置Ｑ3 における特徴点の座標値を算出する。その後、特徴点算出部６４は、撮影位置Ｐ3 、仮想カメラ位置Ｑ3 及び仮想視点Ｑ4 と、特徴点対応テーブル１２１に記憶してあるパノラマ画像Ｐ３における特徴点の座標値と、仮想カメラ位置Ｑ3 における特徴点テーブルとに基づいて、仮想視点Ｑ4 における特徴点の座標値を算出する。これにより、特徴点算出部６４は、仮想視点Ｑ4 における特徴点テーブルを生成する。そして、仮想画像生成部６５は、パッチテーブル１２２と、仮想視点Ｑ4 における特徴点テーブルと、ユーザの視線方向とに基づいて仮想画像を生成する。この場合、３つのパノラマ画像に基づいて、３箇所の撮影位置を含む平面上の任意の視点から任意の方向を見た状態の仮想画像をユーザに提供できる。
【０１８６】
（実施形態５）
本実施形態は、パノラマ画像を管状（チューブ状）に展開した管状マップ（チューブマップ）に基づいて仮想画像を生成する情報処理システム４０に関する。実施形態１と共通する部分については説明を省略する。図３９は、実施形態５の情報処理システム４０の表示時の構成を示すブロック図である。本実施形態の第１情報処理装置１０では表示時に制御部１１が仮想画像生成プログラムＰＧを実行することにより、記憶部１２に、管状マップＤＢ１２５、特徴点対応テーブル１２６、ポリゴンテーブル１２７、仮想視点の特徴点テーブル１２８が記憶される。第２情報処理装置２０は実施形態１と同様であるので説明を省略する。図４０は、第１情報処理装置１０に記憶されるテーブル１２６，１２７，１２８の構成例を示す模式図である。図４０Ａは特徴点対応テーブル１２６を示し、図４０Ｂはポリゴンテーブル１２７を示し、図４０Ｃは仮想視点の特徴点テーブル１２８を示す。
【０１８７】
以下に、本実施形態の第１情報処理装置１０が、撮影対象の空間内の２箇所（前側撮影位置及び後側撮影位置）で撮影した２つのパノラマ画像に対して、特徴点の対応付けを行う処理について説明する。図４１は、実施形態５の特徴点の対応付け処理手順の一例を示すフローチャート、図４２は管状マップ生成処理の一例を示すフローチャート、図４３は特徴点対応付け処理の一例を示すフローチャートである。なお、図４２に示す管状マップ生成処理及び図４３に示す特徴点対応付け処理は図４１に示す特徴点の対応付け処理に含まれる処理である。本実施形態の第１情報処理装置１０は、図５Ｂに示すような正距円筒図法により平面に展開したパノラマ画像を、管状に展開して管状マップを生成し、２つの管状マップにおいて特徴点の対応付けを行う。なお、本実施形態では、カメラ３０を用いて撮影する際に、撮影位置（カメラ３０）の床面からの高さはそれぞれの撮影位置で一致させて撮影が行われる。
【０１８８】
特徴点の対応付け処理において、第１情報処理装置１０の制御部１１は、撮影対象の空間内（同一の部屋内）で撮影された２つのパノラマ画像をパノラマ画像ＤＢ１２ａから読み出す（Ｓ１１１）。制御部１１は、読み出した２つのパノラマ画像に補正処理を行い、それぞれの撮影位置における床面からの高さ（撮影高さ）が同じであり、それぞれの画像の上下方向が撮影空間上の鉛直方向に一致し、それぞれの画像中央に写る被写体の撮影位置からの方角が一致するパノラマ画像に補正する（Ｓ１１２）。具体的には、制御部１１はまず、読み出した２つのパノラマ画像のそれぞれに対して天頂角方向の傾きを補正（天頂補正）する。例えば、パノラマ画像ＤＢ１２ａにパノラマ画像と共に、撮影時に検出した重力方向（即ち、鉛直方向の下向き）に対するカメラ３０の傾きが記憶されている場合、制御部１１は、この情報を用いてパノラマ画像における鉛直方向の傾きを補正する。これにより、画像の上下方向が撮影空間上の鉛直方向に一致するパノラマ画像に補正できる。
【０１８９】
また制御部１１は、天頂補正後のパノラマ画像のそれぞれに対して方位角方向の傾きを補正（方位角補正）する。例えば、パノラマ画像ＤＢ１２ａにパノラマ画像と共に、撮影時に検出した方位角方向に対するカメラ３０の傾きが記憶されている場合、制御部１１は、この情報を用いてパノラマ画像における方位角方向の傾きを補正する。図４４は方位角補正を説明するための模式図であり、図４４は、図６に示す撮影対象の部屋における撮影位置を天井側から見た状態を示し、図４４中の黒丸で示す２箇所をそれぞれ前側撮影位置及び後側撮影位置とする。例えば図４４中の矢符Ａで示す方向が前側撮影位置での撮影方向であった場合、制御部１１は、図４４中の矢符ｔで示す方向（後側撮影位置から前側撮影位置への方向）を撮影方向としたパノラマ画像に方位角補正を行う。即ち、制御部１１は、矢符ｔで示す方向に位置する被写体が画像の中央に写っている状態のパノラマ画像に補正する。例えば撮影時の撮影方向（方角）が南西方向であり（カメラ３０の第１光軸が南西方向に一致した状態で撮影された場合）、矢符ｔで示す方向が北方向であったとする。この場合、制御部１１は、パノラマ画像全体を画像の左右幅の３／８（全周２πに対するズレ量３π／４の比率）だけ左方向に平行移動させることにより、北向方向が画像の中央に一致するパノラマ画像に補正できる。なお、このとき、パノラマ画像の右端の３／８の領域には、平行移動によってパノラマ画像の左端から削除した３／８の領域をそのままコピーすればよい。これにより、天頂補正後のパノラマ画像のそれぞれを、矢符ｔで示す方向を撮影方向としたパノラマ画像に補正（方位角補正）できる。なお、制御部１１は、それぞれのパノラマ画像を一旦、北向きが画像の中央に一致する画像（北向きを撮影方向とする画像）に補正した後、更に矢符ｔで示す方向が画像の中央に一致する画像（矢符ｔで示す方向を撮影方向とする画像）に方位角補正を行ってもよい。
【０１９０】
上述した補正処理により、パノラマ画像ＤＢ１２ａから読み出した２つのパノラマ画像を、撮影高さが同じであり、画像の上下方向が撮影空間上の鉛直方向に一致し、画像中央に写る被写体が、後側撮影位置から前側撮影位置への方向に位置する被写体であるパノラマ画像に変換できる。なお、このような状態の２つのパノラマ画像は、撮影時に撮影状態を一致させて撮影されたものであってもよく、この場合、パノラマ画像ＤＢ１２ａから読み出した２つのパノラマ画像に対して補正処理を行う必要がないので、制御部１１はステップＳ１１２の処理をスキップする。
【０１９１】
次に制御部１１（展開部）は、補正処理後のパノラマ画像から管状マップを生成する処理を行う（Ｓ１１３）。具体的には、制御部１１は、図５Ｂに示すような正距円筒図法により平面に展開したパノラマ画像を、管状に展開した管状マップに変換する。図４５は管状マップを説明するための模式図である。図４５Ａでは、撮影空間を３次元の右手系の直交座標系（ワールド直交座標系）で示し、撮影位置Ｃで撮影した全天球画像を破線の円で模式的に示している。管状マップは、図４５Ａ中に実線で示すように、ワールド直交座標系のＺW 軸方向を長手方向として正方形の開口断面を有する四角筒（四角管）の側面に、パノラマ画像上の各画素を投影した画像である。図４５Ａに示す四角筒は、４つの側面がそれぞれＸW ＝±１，ＹW ＝±１に位置する面であり、ＺW 軸方向の長さが任意の長さである形状を有する。以下では、管状マップの四角筒のＺW 軸方向の範囲を−ＺR ≦ＺW ≦ＺR とする。管状マップ上の任意の位置の画素ＰT の画素値は、撮影位置Ｃから画素ＰT への方向に対応する全天球画像上の画素ＰE の画素値とすることができる。よって、管状マップ上の各画素の画素値をパノラマ画像から取得することによって、管状マップが生成される。なお、管状マップは、例えば図４５Ｂに示すように、撮影空間のＺW 軸の負方向を左右方向（横方向）のＸ軸とし、上下方向（縦方向）をＹ軸とし、Ｙ軸方向に上から左側側面、上側側面、右側側面、下側側面の順に４つの側面を展開した矩形の管状マップで処理を行う。
【０１９２】
矩形の管状マップを構成する各画素には、パノラマ画像における各画素の画素値が割り当てられる。図４５Ｂに示す矩形（平面）の管状マップは、左上を原点ＯT （０，０）とし、原点ＯT の画素は、ワールド直交座標系の座標（−１，−１，ＺR ）の位置の画素に対応する。また管状マップは、原点ＯTから右方向に、ワールド直交座標系のＺW 座標値が順次小さくなり、右上の画素はワールド直交座標系の座標（−１，−１，−ＺR ）の位置の画素に対応する。よって、管状マップにおいて、左右方向の中央の画素は、ワールド直交座標系のＺW 座標値が０の位置の画素に対応し、左右方向の左右端の画素はそれぞれ、ワールド直交座標系のＺW座標値がＺR ，−ＺR の位置の画素に対応する。また、管状マップは、原点ＯT 及び左下の画素がワールド直交座標系の座標（−１，−１，ＺR ）の位置の画素に対応し、原点ＯTから下方向に、ワールド直交座標系のＹW 座標値が順次大きくなり、ワールド直交座標系の座標（−１，１，ＺR ）の位置の画素に到達した後、ワールド直交座標系のＸW 座標値が順次大きくなり、ワールド直交座標系の座標（１，１，ＺR ）の位置の画素に到達し、更にワールド直交座標系のＹW 座標値が順次小さくなり、ワールド直交座標系の座標（１，−１，ＺR ）の位置の画素に到達した後、ワールド直交座標系のＸW 座標値が順次小さくなり、ワールド直交座標系の座標（−１，−１，ＺR ）の位置の画素に到達する。よって、管状マップ上の各画素は、上下方向の位置に応じて、撮影空間上のＸW 座標値（−１≦ＸW ≦＋１）及びＹW 座標値（−１≦ＹW ≦＋１）が定まる。なお、管状マップの形状は、四角筒状に限定されず、正多角形の開口断面を有する多角筒状であってもよく、多角筒状の場合であっても、図４５Ｂに示すような矩形に展開した管状マップで処理を行う。
【０１９３】
図４５Ｂに示す矩形の管状マップは、例えば左右方向の幅をＷT 画素とし、上下方向の高さをＨT 画素とし、各画素の座標値を（ＸT ，ＹT ）で示す。図４２に示す管状マップ生成処理において、制御部１１は、管状マップ上の各画素に対して、各画素に対応するパノラマ画像上の画素の画素値を順次割り当てることにより、管状マップを生成する。具体的には、制御部１１は、管状マップ上の画素のうちで処理中の画素を示す画素位置（ＸT ，ＹT ）を（０，０）に設定する（Ｓ１２１）。制御部１１は、設定した画素位置（ＸT ，ＹT ）を、撮影空間上の座標値、即ち、ワールド直交座標系の座標値（ＸW ，ＹW ，ＺW）に変換する（Ｓ１２２）。制御部１１は、例えば以下の（３１）式に従ってワールド直交座標系の座標値（ＸW ，ＹW ，ＺW）に変換する。
【０１９４】
【数１７】
2020024687.tif 000019
【０１９５】
次に制御部１１は、ワールド直交座標系の座標値（ＸW ，ＹW ，ＺW ）を、上記の（１４）式を用いてローカル極座標系の座標値（θL ，φL ，ｒL ）に変換する（Ｓ１２３）。そして制御部１１は、ローカル極座標系の座標値（θL ，φL ，ｒL ）に対応する正距円筒図法によるパノラマ画像中の画素位置（ＸE ，ＹE ）を、以下の（３２）式に従って算出する（Ｓ１２４）。なお、（３２）式中のＷE はパノラマ画像の左右方向の幅を示しで、ＨE はパノラマ画像の上下方向の高さを示す。制御部１１は、算出した画素位置（ＸE ，ＹE ）の画素値を、ステップＳ１１１で読み出したパノラマ画像から特定し（Ｓ１２５）、管状マップ上の画素位置（ＸT ，ＹT ）の画素値として管状マップＤＢ１２５に記憶する（Ｓ１２６）。なお、算出した画素位置（ＸE ，ＹE ）の画素がパノラマ画像にない場合、制御部１１は、算出した画素位置（ＸE ，ＹE ）の近傍の画素の画素値を特定してもよく、また、近傍の複数画素の画素値から算出した画素値を特定してもよい。
【０１９６】
【数１８】
2020024687.tif 000020
【０１９７】
次に制御部１１は、処理中の画素を示す画素位置（ＸT ，ＹT ）のＸ座標値ＸT に１を加算する（Ｓ１２７）。そして制御部１１は、加算後のＸ座標値ＸT が管状マップの幅を示すＷT に一致するか否かを判断し（Ｓ１２８）、一致しないと判断した場合（Ｓ１２８：ＮＯ）、ステップＳ１２２の処理に戻り、次の画素位置（ＸT ，ＹT ）について、ステップＳ１２２〜Ｓ１２６の処理を行う。加算後のＸ座標値ＸT が管状マップの幅を示すＷT に一致すると判断した場合（Ｓ１２８：ＹＥＳ）、即ち、Ｙ座標値がＹT の画素について右端の画素まで上述した処理を終了した場合、制御部１１は、処理中の画素を示す画素位置（ＸT ，ＹT ）のＹ座標値ＹT に１を加算し、Ｘ座標値ＸT を０に設定する（Ｓ１２９）。そして制御部１１は、加算後のＹ座標値ＹT が管状マップの高さを示すＨT に一致するか否かを判断し（Ｓ１３０）、一致しないと判断した場合（Ｓ１３０：ＮＯ）、ステップＳ１２２の処理に戻り、加算後のＹ座標値ＹT についてステップＳ１２２〜Ｓ１２８の処理を行う。加算後のＹ座標値ＹT が管状マップの高さを示すＨT に一致すると判断した場合（Ｓ１３０：ＹＥＳ）、即ち、右下の画素まで上述した処理を終了した場合、制御部１１は図４１に示す処理に戻る。図４６は管状マップの例を示す模式図であり、図４６Ａに示すようなパノラマ画像が、図４６Ｂに示すような管状マップに変換される。
【０１９８】
制御部１１は、補正処理後の２つのパノラマ画像からそれぞれ管状マップを生成し、２つの管状マップを生成した後、２つの管状マップにおいて、同じ被写体が写っている位置の画素（特徴点）を対応付ける特徴点対応付け処理を行う（Ｓ１１４）。本実施形態では、制御部１１は、２つの管状マップにおいて、複数のエピポーラ線上で、同じ被写体が撮影された画素の位置を対応付ける。エピポーラ線は、図２６に示したエピポーラ線と同じであり、管状マップは共通軸方向（ＺW軸方向）に伸びる筒状であるので、図４５Ｂ及び図４６Ｂに示す管状マップ上ではエピポーラ線は左右方向の直線で設定される。図４７は管状マップの一部の拡大図であり、図４７の左側には前側画像から生成した管状マップ（以下では前側管状マップという）の一部を示し、右側には後側画像から生成した管状マップ（以下では後側管状マップという）の一部を示す。図４７に示す管状マップ上の左右方向の直線はエピポーラ線を示しており、図４７に示すように、管状マップ上でのエピポーラ線は直線で表される。また、補正処理が行われたパノラマ画像から生成された管状マップ間において、同じ被写体は同じエピポーラ線上の異なる位置に写る。
【０１９９】
図４３に示す特徴点対応付け処理において、制御部１１は、２つの管状マップ（前側管状マップ及び後側管状マップ）のそれぞれに対してエピポーラ線を設定する（Ｓ１４１）。制御部１１はまず、共通軸極座標系における方位角方向に所定角度間隔で設けられた複数のエピポーラ線を設定する。よって、エピポーラ線は、共通軸極座標系において特定の方位角に対応する線である。なお、制御部１１は、例えば共通軸極座標系における方位角方向に５°間隔で設けられた７２本のエピポーラ線を設定するが、エピポーラ線の数及び方位角方向の間隔はこれに限らず、任意の数又は任意の間隔とすることができる。制御部１１は、エピポーラ線上の各点について、共通軸極座標系の座標値（θC ，φC ，ｒC ）を上記の（１７）式を用いてワールド直交座標系の座標値（ＸW ，ＹW ，ＺW ）に変換し、更に、上記の（３１）式の逆変換を行うことにより、管状マップ上の画素位置（ＸT ，ＹT ）に変換する。これにより、図２６に共通軸極座標系で表したエピポーラ線が、図４７に示すように管状マップ上に直線として展開される。図４７において、それぞれの管状マップ上の左右方向の直線はそれぞれエピポーラ線を示す。なお、管状マップ上のエピポーラ線は直線であるので、それぞれのエピポーラ線についてエピポーラ線上の１画素について上述した変換処理を行って管状マップ上の画素位置（ＸT ，ＹT ）を算出することにより、管状マップ上にエピポーラ線を展開できる。
【０２００】
次に制御部１１は、２つの管状マップ上の特徴線対を多数取得する（Ｓ１４２）。図４８は特徴点の対応付け処理を説明するための模式図である。図４８Ａは、図４７に示す管状マップに特徴線対を追加した図であり、図４８Ｂは、図４７に示す管状マップに特徴点対を追加した図である。特徴線は、２つの管状マップにおいて同じ被写体の境界等を示す線分であり、管状マップ上でエピポーラ線に交差する線分であればどのような線分でもよい。図４８Ａに示す例では、ポスターの左端を示す線分が特徴線対として抽出されている。制御部１１は、多数の特徴線対を取得することが望ましいが、特徴線対の数は任意の数でよい。制御部１１は、それぞれの管状マップにおいて、特徴線の両端画素の画素位置（座標値）によって特徴線対を取得し、それぞれの管状マップ上の特徴線における両端画素の画素位置を対応付けて記憶部１２に記憶する。
【０２０１】
制御部１１は、２つの管状マップ上の特徴線対を、例えば入力部１４を介したユーザ入力によって取得してもよい。この場合、例えば制御部１１は、第１情報処理装置１０の表示部１５に２つの管状マップを表示する。ユーザは、表示された２つの管状マップにおいて、同じ被写体の境界等を示す線分を特徴線として入力部１４を介して指定する。これにより、制御部１１は、入力部１４を介して２つの管状マップ中の特徴線を受け付け、それぞれの特徴線について、特徴線の両端画素の管状マップにおける画素位置を取得する。また、制御部１１は、２つの管状マップ上の特徴線対を自動的に抽出してもよい。例えば制御部１１は、それぞれの管状マップにおいてエッジ検出処理を行い、それぞれの管状マップから検出したエッジから対応するエッジを特定し、対応するエッジを特徴線対として受け付けてもよい。この場合にも、ユーザ入力される場合と同様に、制御部１１は、受け付けた特徴線対について、それぞれの特徴線の両端画素の管状マップにおける画素位置を取得する。
【０２０２】
次に制御部１１は、ステップＳ１４２で取得した各特徴線対について、それぞれの特徴線がエピポーラ線と交差する交点の画素を特徴点とし、特徴点（画素）の対応付けを行う。図４８Ｂに示す例では、２つの管状マップにおける特徴線が９本のエピポーラ線とそれぞれ交差しており、９つの交点を９対の特徴点対に設定できる。まず制御部１１は、ステップＳ１４１で設定したエピポーラ線のうちの１つを抽出する（Ｓ１４３）。制御部１１は、前側管状マップ及び後側管状マップのそれぞれにおいて、抽出したエピポーラ線と、ステップＳ１４２で取得した特徴線対の各特徴線との交点（特徴点）の情報を算出する（Ｓ１４４）。ここでは、制御部１１は、各特徴点について、レンダリング処理（テクスチャマッピング）に必要な情報を算出する。具体的には、制御部１１は、各特徴点について、特徴点の撮影位置からの方角を共通軸極座標系で表した位置情報と、テクスチャ画像上での位置を示すテクスチャ座標情報（テクスチャ座標値）とを算出する。
【０２０３】
制御部１１はまず、各特徴点について、前側管状マップ上の位置を示す位置情報（ＸF ，ＹF ）と、後側管状マップ上の位置を示す位置情報（ＸR ，ＹR ）とを算出する。エピポーラ線及び特徴線は、管状マップ上の２次元座標系で設定されているので、その交点である特徴点の位置（画素位置）は、単純に２直線の交点を算出することで得られる。特徴点の数は多数であることが望ましく、以下ではＮP 個とする。制御部１１は、算出した管状マップ上の特徴点の座標情報（ＸF ，ＹF ）及び（ＸR ，ＹR ）をそれぞれ、上記の（３１）式を用いてワールド直交座標系の座標情報（ＸWF，ＹWF，ＺWF）及び（ＸWR，ＹWR，ＺWR）に変換し、更に、上記の（１８）式を用いて共通軸極座標系の座標情報（θCF，φCF）及び（θCR，φCR）に変換することによって、特徴点の撮影位置からの方角を共通軸極座標系で表した位置情報を取得する。なお、２つの管状マップ上の特徴点は、同じエピポーラ線上の画素であるので、共通軸極座標系の方位角φCF及びφCRは同じであるので、この方位角は方位角φC とする。また、管状マップはテクスチャ画像であるので、制御部１１は、算出した管状マップ上の特徴点の座標情報（ＸF ，ＹF ）及び（ＸR ，ＹR ）をそれぞれテクスチャ画像上での位置を示すテクスチャ座標情報（ＵF ，ＶF ）及び（ＵR ，ＶR ）として取得する。
【０２０４】
制御部１１は、各特徴点対について算出した特徴点の情報を対応付けて記憶部１２に記憶する（Ｓ１４５）。制御部１１は、例えば記憶部１２に図４０Ａに示すような特徴点対応テーブル１２６を生成し、各特徴点について算出した共通軸極座標系での位置情報と、テクスチャ画像上での位置情報（テクスチャ座標情報）とを記憶する。具体的には、制御部１１は、各特徴点を識別するための特徴点ＩＤを発行し、特徴点ＩＤに対応付けて、共通軸極座標系の方位角φC と、前側画像（前側管状マップ）における共通軸極座標系の天頂角θCFと、後側画像（後側管状マップ）における共通軸極座標系の天頂角θCRと、前側画像におけるテクスチャ座標（ＵF ，ＶF ）と、後側画像におけるテクスチャ座標（ＵR ，ＶR ）とを記憶する。制御部１１は、ステップＳ１４３で抽出したエピポーラ線が、ステップＳ１４２で取得した特徴線のそれぞれと交差する交点（特徴点）について特徴点の情報を算出して特徴点対応テーブル１２６に記憶する。
【０２０５】
制御部１１は、ステップＳ１４３で抽出したエピポーラ線について各特徴線との交点（特徴点）の情報を算出した後、全てのエピポーラ線に対して処理を終了したか否かを判断する（Ｓ１４６）。全てのエピポーラ線に対して処理を終了していないと判断した場合（Ｓ１４６：ＮＯ）、制御部１１は、ステップＳ１４３の処理に戻り、未処理のエピポーラ線を１つ抽出し（Ｓ１４３）、抽出したエピポーラ線についてステップＳ１４４〜Ｓ１４５の処理を行う。これにより、ＮP 個の特徴点について、各特徴点の情報が特徴点対応テーブル１２６に記憶される。
【０２０６】
全てのエピポーラ線に対して処理を終了したと判断した場合（Ｓ１４６：ＹＥＳ）、制御部１１は、ＮP 個の特徴点から、それぞれ３つの特徴点を頂点とする三角形状のポリゴンを生成する。ここでは例として、隣り合う２つのエピポーラ線上の特徴点から、それぞれ三角形状のポリゴンを生成する。図４９はポリゴンの生成処理を説明するための模式図である。図４９に示すように、制御部１１は、隣り合う２つのエピポーラ線上の特徴点において、一方のエピポーラ線上の１つの特徴点と、他方のエピポーラ線上の２つの特徴点とで形成される三角形状のポリゴンを生成する。
【０２０７】
特徴点を頂点とするポリゴンを生成する場合、制御部１１は、特徴点対応テーブル１２６から、前側管状マップ又は後側管状マップのいずれかにおいて、隣り合う２つのエピポーラ線上の特徴点の共通軸極座標系の天頂角θCFを読み出す（Ｓ１４７）。前側管状マップ上の特徴点を読み出す場合、制御部１１は、２つのエピポーラ線のそれぞれにおいて、エピポーラ線の共通軸極座標系の方位角φC に対応付けて記憶してある、前側管状マップにおける共通軸極座標系の天頂角θCFを読み出す。なお、制御部１１は、隣り合うエピポーラ線上の特徴点について後側管状マップにおける共通軸極座標系の天頂角θCRを読み出してもよい。また制御部１１は、前側管状マップにおける共通軸極座標系の天頂角θCFと、後側管状マップにおける共通軸極座標系の天頂角θCRとの平均値等を算出し、算出した平均値等を特徴点の共通軸極座標系の天頂角θC としてもよい。図４９は、横軸を共通軸極座標系の天頂角θC とし、２つのエピポーラ線Ｅ0 ，Ｅ1 上の特徴点を示す。図４９に示す例では、エピポーラ線Ｅ0 上に５つの特徴点Ｐ01〜Ｐ05が設けられており、エピポーラ線Ｅ1 上に３つの特徴点Ｐ11〜Ｐ13が設けられている。
【０２０８】
制御部１１は、読み出した２つのエピポーラ線上の特徴点から、三角形状のポリゴンの頂点となる３つの特徴点を特定する（Ｓ１４８）。具体的には、制御部１１は、一方のエピポーラ線上で隣り合う２つの特徴点と、この２つの特徴点が対向する他方のエピポーラ線上の１つの特徴点とによる三角形のポリゴンを特定する。即ち、あるエピポーラ線上にＭ個の特徴点がある場合、そのエピポーラ線を一辺とする三角形のポリゴンがＭ−１個定義される。例えば制御部１１は、エピポーラ線Ｅ0 上の特徴点Ｐ0i及び特徴点Ｐ0i+1と、エピポーラ線Ｅ1 上で天頂角θC の値が特徴点Ｐ0i+1の天頂角θC 未満で最大値となる特徴点とを、ポリゴンの３頂点に特定する。また制御部１１は、エピポーラ線Ｅ1 上の特徴点Ｐ1i及び特徴点Ｐ1i+1と、エピポーラ線Ｅ0 上で天頂角θC の値が特徴点Ｐ1i+1の天頂角θC 以下で最大値となる特徴点とを、ポリゴンの３頂点に特定する。このように各ポリゴンの３頂点を特定することで、隣り合う２つのエピポーラ線間が三角形状のポリゴンで隙間なく充填される。図４９に示す例では、エピポーラ線Ｅ0 上の特徴点Ｐ01及びＰ02とエピポーラ線Ｅ1 上の特徴点Ｐ11とを３頂点とするポリゴン、エピポーラ線Ｅ0 上の特徴点Ｐ02及びＰ03とエピポーラ線Ｅ1 上の特徴点Ｐ11とを３頂点とするポリゴン等が生成される。なお、ポリゴンは、隣り合う２つのエピポーラ線間のそれぞれに設けられる構成に限らず、また、ポリゴンの形状は四角形状、五角形状等でもよい。
【０２０９】
制御部１１は、ポリゴンの３頂点に特定した３つの特徴点を対応付けて記憶部１２に記憶する（Ｓ１４９）。制御部１１は、例えば記憶部１２に図４０Ｂに示すようなポリゴンテーブル１２７を生成し、各ポリゴンを識別するためのポリゴンＩＤを発行し、ポリゴンＩＤに対応付けて、３つの特徴点の特徴点ＩＤを記憶する。制御部１１は、ステップＳ１４７で読み出した２つのエピポーラ線上の全特徴点についてポリゴンの生成を終了したか否かを判断しており（Ｓ１５０）、終了していないと判断した場合（Ｓ１５０：ＮＯ）、ステップＳ１４８の処理に戻り、ステップＳ１４８〜Ｓ１４９の処理を繰り返す。全特徴点についてポリゴンの生成を終了したと判断した場合（Ｓ１５０：ＹＥＳ）、制御部１１は、全てのエピポーラ線間について処理を終了したか否かを判断する（Ｓ１５１）。全てのエピポーラ線間について処理を終了していないと判断した場合（Ｓ１５１：ＮＯ）、制御部１１は、ステップＳ１４７の処理に戻り、未処理のエピポーラ線間について、ステップＳ１４７〜Ｓ１５０の処理を行う。
【０２１０】
全てのエピポーラ線間について処理を終了したと判断した場合（Ｓ１５１：ＹＥＳ）、即ち、管状マップの領域を覆うポリゴンを生成した場合、制御部１１は図４１に示す処理に戻り、処理を終了する。上述した処理により、図４０Ｂに示すようなポリゴンテーブル１２７に、Ｎt 個のポリゴンについて３頂点となる３つの特徴点が対応付けて記憶される。なお、多数の点（点群）を３点単位で接続することで隙間なく三角形で充填する手法は上述した処理に限定されず、各種の公知技術を用いることができる。
【０２１１】
上述したような特徴点の対応付け処理によって、図４０Ａに示すような特徴点対応テーブル１２６及び図４０Ｂに示すようなポリゴンテーブル１２７が生成される。よって、これらの情報を用いてＷｅｂＧＬ等のグラフィックライブラリーを利用したテクスチャマッピングを行うことにより、２つの管状マップから仮想視点での仮想画像を生成することができる。これにより、第１情報処理装置１０は、仮想画像をインタラクティブなコンテンツとして閲覧者（第２情報処理装置２０のユーザ）に提供できる。
【０２１２】
次に、本実施形態において、パノラマ画像を再生（表示）する際に第１情報処理装置１０及び第２情報処理装置２０が行う処理について説明する。図５０は、実施形態５の再生処理手順の一例を示すフローチャートである。ここでは、図４０Ａに示すような特徴点対応テーブル１２６と、図４０Ｂに示すようなポリゴンテーブル１２７とは予め記憶部１２に記憶されているものとする。
【０２１３】
本実施形態の第２情報処理装置２０の制御部２１は、センサ部２５によってユーザの頭部の位置及び向きを検出し、位置及び向きを示す情報を取得する（Ｓ１６１）。制御部２１は、取得した位置及び向きを示す情報を第１情報処理装置１０へ送信する（Ｓ１６２）。第１情報処理装置１０の制御部１１は、再生すべき管状マップを管状マップＤＢ１２５から読み出す（Ｓ１６３）。制御部１１は、例えば撮影対象の部屋で撮影された２つのパノラマ画像から生成された管状マップを読み出す。制御部１１は、第２情報処理装置２０が送信した位置及び向きを示す情報を受信し（Ｓ１６４）、前回受信した情報と比較して、位置又は向きが変化したか否かを判断する（Ｓ１６５）。位置及び向きのいずれも変化していないと判断した場合（Ｓ１６５：ＮＯ）、制御部１１は、ステップＳ１６４の処理に戻り、第２情報処理装置２０から位置及び向きを示す情報を受信する都度、位置又は向きが変化したか否かを判断する。
【０２１４】
位置又は向きが変化したと判断した場合（Ｓ１６５：ＹＥＳ）、制御部１１は、受信した位置に基づいて仮想視点の位置を算出する（Ｓ１６６）。例えば、制御部１１は、ユーザの頭部の位置に基づいて前回設定した仮想視点を移動させる。制御部１１は、特徴点対応テーブル１２６の記憶内容と、算出した仮想視点位置とに基づいて、仮想視点位置における各特徴点の位置（座標値）を算出し、特徴点テーブル１２８を生成する（Ｓ１６７）。ここで、図１２に示すように、後側撮影位置から前側撮影位置に向かう方向をｔ軸とし、水平面上でｔ軸に直交する方向をｓ軸としたＳＴ座標系を用いた場合、後側撮影位置（０，０）と前側撮影位置（０，１）との間に仮想視点位置（０，ｔ）があれば、仮想視点から被写体Ｐの方角βV は以下の（３３）式で算出される。
【０２１５】
tanβV ＝ｔ×tanβF ＋（１−ｔ）×tanβR       …（３３）
【０２１６】
よって、制御部１１は、特徴点対応テーブル１２６に記憶してある各特徴点について、前側管状マップにおける天頂角θCFと、後側管状マップにおける天頂角θCRとをそれぞれ、以下の（３４）式を用いてＳＴ座標系の方位角βF ，βR に変換する。そして制御部１１は、上記の（３３）式を用いて、この特徴点について仮想視点からのＳＴ座標系の方位角βV を算出する。
【０２１７】
βF ＝θCF−π／２
βR ＝θCR−π／２      …（３４）
【０２１８】
次に制御部１１は、算出した仮想視点からのＳＴ座標系の方位角βV にπ／２を加算することにより（即ち、βV ＋π／２）、この特徴点について仮想視点における共通軸極座標系の天頂角θCVを算出する。なお、特徴点における共通軸極座標系の方位角はエピポーラ線を示すので、特徴点対応テーブル１２６に記憶してある共通軸極座標系の方位角φC が、この特徴点について仮想視点における共通軸極座標系の方位角φCVとなる。よって、制御部１１は、この特徴点について仮想視点における共通軸極座標系の座標値（θCV，φCV）（φCV＝φC ）を得ることができる。制御部１１は、算出した仮想視点における特徴点の共通軸極座標系の座標値（θCV，φCV）を、ｒC ＝１として上記の（１７）式を用いてワールド直交座標系の座標値に変換する。これにより、この特徴点について、仮想視点を中心とした単位球面上の位置（画素位置）を算出できる。制御部１１は、特徴点対応テーブル１２６に記憶してある各特徴点について、仮想視点におけるワールド直交座標系の座標値を算出し、算出した座標値を、それぞれの特徴点の特徴点ＩＤに対応付けて特徴点テーブル１２８に記憶する。これにより、図４０Ｃに示すような特徴点テーブル１２８が生成される。
【０２１９】
次に制御部１１は、特徴点対応テーブル１２６及びポリゴンテーブル１２７と、生成した仮想視点における特徴点テーブル１２８と、ステップＳ１６４で受信したユーザの頭部の向き（視線方向）とに基づいて、ステップＳ１６３で読み出した２つの管状マップから仮想視点での仮想画像を生成する（Ｓ１６８）。なお、グラフィックライブラリーでは、多数の頂点の位置情報及びテクスチャ座標情報と、各頂点によるポリゴンの情報（頂点の接続情報）とを登録しておくことにより、テクスチャマッピングが行われ、指定された視線方向及び画角によって決定される表示範囲に仮想画像が表示される。よって、特徴点対応テーブル１２６、ポリゴンテーブル１２７及び仮想視点における特徴点テーブル１２８に基づいて、ユーザの視線方向に応じた仮想画像を生成できる。なお、制御部１１は、それぞれのポリゴンの各頂点のテクスチャ座標情報を用いてテクスチャマッピングを行い、ポリゴン毎に、仮想画像中の各画素に、２つの管状マップの画素値（輝度）に基づく画素値を割り当てて仮想画像を生成する。
【０２２０】
例えば制御部１１は、ポリゴンテーブル１２７から１つのポリゴンについて、３頂点となる３つの特徴点の特徴点ＩＤを読み出す。そして制御部１１は、３つの特徴点のそれぞれについて、前側管状マップにおけるテクスチャ座標情報と後側管状マップにおけるテクスチャ座標情報とを特徴点対応テーブル１２６から読み出し、仮想視点位置でのワールド直交座標系の座標情報を特徴点テーブル１２８から読み出す。そして制御部１１は、３つの特徴点で構成されるポリゴン内に含まれる各画素の画素値を、前側管状マップ及び後側管状マップから読み出し、読み出した各画素値をそれぞれ、仮想視点位置でのワールド直交座標系の座標情報が示す３特徴点で構成されるポリゴン内の各画素に割り当てる。制御部１１は、ポリゴンテーブル１２７に記憶してある全てのポリゴンについて各画素の画素値の割り当てを行うことにより仮想画像を生成する。なお、制御部１１は、２つの管状マップのそれぞれに基づいて仮想位置での中間ビューを２つ生成し、生成した２つの中間ビューを、仮想視点位置とそれぞれの撮影位置との位置関係に応じた割合でアルファブレンディング等にて合成して仮想画像を生成してもよい。
【０２２１】
制御部１１は、仮想画像を生成した後、生成した仮想画像を第２情報処理装置２０へ送信する（Ｓ１６９）。第２情報処理装置２０の制御部２１は、第１情報処理装置１０が送信した仮想画像を受信し（Ｓ１７０）、受信した仮想画像を表示部２４に表示させる（Ｓ１７１）。第２情報処理装置２０の制御部２１は、ユーザの頭部の位置及び向きの検出及び送信を、所定時間間隔又はユーザからの指示に従って行い、第１情報処理装置１０の制御部１１は、第２情報処理装置２０から位置及び向きの情報を受信する都度、ステップＳ１６５〜Ｓ１６９の処理を行う。
【０２２２】
本実施形態では、パノラマ画像を管状マップに展開し、管状マップにおいて特徴点の対応付けを行い、管状マップから仮想画像を生成する。管状マップではエピポーラ線を直線で設定できるので、エピポーラ線上の特徴点を対応付ける際に、各特徴点の位置の特定が容易であり、対応付け処理における負荷を低減できる。また、管状マップでは被写体の直線性が維持されるので、例えば三角形状のポリゴン単位で画像を描画する際に歪みが生じない。よって、２つのパノラマ画像（管状マップ）を合成した仮想画像であってもユーザに与える違和感が抑制された仮想画像を提供できる。また、ユーザによって指定される仮想視点位置に応じた仮想画像を提供できるので、ユーザは撮影対象の空間内を移動しながら、所望の位置から室内の様子を見ることができる。
【０２２３】
（実施形態６）
本実施形態は、実施形態５の情報処理システム４０において、パノラマ画像から管状マップ、正面画像及び背面画像を生成し、管状マップ、正面画像及び背面画像に基づいて仮想画像を生成する情報処理システム４０に関する。実施形態５と共有する部分については説明を省略する。
【０２２４】
管状マップは、撮影空間におけるＺ軸方向の表現範囲が有限であるので、撮影方向（カメラ３０の正面方向）及びその逆方向（カメラ３０の背面方向）の被写体が管状マップでは表示されない。具体的には、図４９に示す例では、ポリゴンが設定されていない領域、即ち、エピポーラ線において左端に設けられた特徴点よりも左側の領域及び右端に設けられた特徴点よりも右側の領域は、テクスチャマッピングが行われない。そこで、本実施形態では、管状マップに加えて、キューブマップにおける正面画像及び背面画像を用いることにより、全ての方向の被写体が再現されたパノラマ画像を提供する。
【０２２５】
図５１は、実施形態６の特徴点の対応付け処理手順の一例を示すフローチャートである。図５１に示す処理は、図４１中のステップＳ１１３の後にステップＳ１１５を追加し、ステップＳ１１４の後にステップＳ１１６を追加したものである。本実施形態の第１情報処理装置１０の制御部１１は、実施形態５と同様にステップＳ１１１〜Ｓ１１３の処理を行い、パノラマ画像ＤＢ１２ａから読み出したパノラマ画像に補正処理を行い、補正処理後のパノラマ画像から管状マップを生成する。そして、本実施形態の第１情報処理装置１０の制御部１１は、補正処理後のパノラマ画像のそれぞれから、カメラ３０の正面方向を撮影方向とした画角が９０°程度の正面画像と、カメラ３０の背面方向を撮影方向とした画角が９０°程度の背面画像とを生成する（Ｓ１１５）。図５２は、正面画像及び背面画像が付加された管状マップの例を示す模式図である。本実施形態では、図５２に示すように管状マップに正面画像及び背面画像を付加した画像を１つの画像（ファイル）として管状マップＤＢ１２５に記憶してもよく、管状マップ、正面画像及び背面画像をそれぞれ異なる画像（ファイル）として３つの画像を対応付けて管状マップＤＢ１２５に記憶してもよい。
【０２２６】
次に制御部１１は、実施形態５と同様にステップＳ１１４の処理を行い、２つの管状マップにおいて、同じ被写体が写っている位置の画素（特徴点）を対応付ける対応付け処理を行う（Ｓ１１４）。そして、制御部１１は、正面画像及び背面画像のそれぞれにおいて、カメラ３０の正面方向及び背面方向の位置の画素（以下では極点という）を特徴点とし、正面画像および背面画像のそれぞれにおける特徴点の対応付け処理を行い、極点を１頂点とする三角形状のポリゴンを生成する（Ｓ１１６）。
【０２２７】
図５３は、極点を含むポリゴンの生成処理を説明するための模式図である。図５３は正面画像を示しており、中央に極点を有し、２つの特徴点はそれぞれのエピポーラ線において正面方向側の一番端の特徴点とする。制御部１１は、図４０Ａに示す構成と同様の構成を有する正面画像用の特徴点対応テーブルを生成する。そして制御部１１は、各エピポーラ線の正面方向側の一番端の特徴点について各情報を特徴点対応テーブル１２６から読み出し、読み出した特徴点の共通軸極座標系の方位角φC と、前側管状マップにおける共通軸極座標系の天頂角θCFと、後側管状マップにおける共通軸極座標系の天頂角θCRとを正面画像用の特徴点対応テーブルに記憶する。なお、制御部１１は、正面画像における特徴点を識別するための特徴点ＩＤを発行し、特徴点ＩＤに対応付けて、読み出した方位角φC 、天頂角θCF，θCRを記憶する。そして、制御部１１は、読み出した特徴点の前側管状マップにおけるテクスチャ座標情報と、後側管状マップにおけるテクスチャ座標情報とをそれぞれ正面画像におけるテクスチャ座標情報に変換し、正面画像用の特徴点対応テーブルに記憶する。制御部１１は、背面画像についても同様の処理を行い、背面画像における極点を特徴点とし、各エピポーラ線の背面方向側の一番端の特徴点及び極点について共通軸極座標系の方位角φC と、前側管状マップにおける共通軸極座標系の天頂角θCFと、後側管状マップにおける共通軸極座標系の天頂角θCRと、前側管状マップの背面画像におけるテクスチャ座標情報と、後側管状マップの背面画像におけるテクスチャ座標情報とを背面画像用の特徴点対応テーブルに記憶する。
【０２２８】
次に制御部１１は、正面画像用の特徴点対応テーブル及び背面画像用の特徴点対応テーブルに記憶した特徴点に基づいて、正面画像において、極点（特徴点）と、隣り合う２つのエピポーラ線において正面方向側の一番端の２つの特徴点とを頂点とする三角形状のポリゴンと、背面画像において、極点（特徴点）と、隣り合う２つのエピポーラ線において背面方向側の一番端の２つの特徴点とを頂点とする三角形状のポリゴンとを生成する。制御部１１は、このように生成した極点を含むポリコンについても、３頂点となる極点及び２つの特徴点を対応付けてポリゴンテーブル１２７に記憶する。なお、極点については、正面画像における極点と背面画像における極点とを識別する識別情報（極点ＩＤ）がポリゴンテーブル１２７に記憶されてもよい。
【０２２９】
上述した処理により、制御部１１は、正面画像及び背面画像のそれぞれについて、それぞれ隣り合う２つのエピポーラ線間において、極点と、２つのエピポーラ線上の特徴点とによるポリゴンを生成することにより、管状マップ（パノラマ画像）の全領域を覆うポリゴンを生成できる。よって、本実施形態では、パノラマ画像の全領域を覆うポリゴンの情報が記憶されたポリゴンテーブル１２７と特徴点対応テーブル１２６とを用いてテクスチャマッピングを行うことにより、仮想視点での仮想画像を生成することができる。なお、本実施形態の第１情報処理装置１０及び第２情報処理装置２０は、図５０に示す処理と同様の処理を行うことにより、第２情報処理装置２０によって指定された仮想視点位置における仮想画像を第１情報処理装置１０で生成して第２情報処理装置２０に提供できる。
【０２３０】
本実施形態では、実施形態５と同様の効果が得られる。また本実施形態では、パノラマ画像の全領域を覆うポリゴンが生成されるので、パノラマ画像の全領域を表示できる仮想画像を提供できる。
【０２３１】
（実施形態７）
本実施形態は、パソコン、スマートフォン、又は、タブレット等の汎用の情報処理装置を第２情報処理装置２０に使用する情報処理システム４０に関する。実施形態１と共通する部分については、説明を省略する。
【０２３２】
図５４は、実施形態７の画面例を示す模式図である。画面には、表示エリア２４１、上視線ボタン２４２、右視線ボタン２４３、下視線ボタン２４４、左視線ボタン２４５、移動ボタン２４６及びズームボタン２４７が含まれる。ユーザは、表示部２４に設けられたタッチパネルのタッチ操作、又はマウスを用いたクリック操作等により各ボタンを選択できる。
【０２３３】
上視線ボタン２４２の入力を受け付けた場合、制御部２１は第２情報処理装置２０の向きが上向きに変化したという入力を受け付けた場合と同様に、表示エリア２４１に表示される画像の範囲を上向きに変化させる。同様に、右視線ボタン２４３、下視線ボタン２４４および左視線ボタン２４５の選択を受け付けた場合も、制御部２１は表示エリア２４１に表示される画像の範囲をそれぞれの向きに変化させる。
【０２３４】
移動ボタン２４６は、前後左右の領域に分割されている。移動ボタン２４６のそれぞれの領域の選択を受け付けた場合、制御部２１は第２情報処理装置２０の位置がそれぞれの向きに変化したと判定し、仮想視点を移動させる。ズームボタン２４７の選択を受け付けた場合、制御部２１は、表示エリア２４１に表示する画像の範囲を拡大または縮小する。
【０２３５】
以上により、ユーザは画面上のボタンの操作により、たとえば撮影対象の部屋の中を自由に移動しながら、部屋の広さ、家具の配置、窓の外の景色等を感覚的に把握することができる。第２情報処理装置２０を傾ける操作又はジョイスティック等の操作が、画面上の各ボタンの操作の代わりに用いられてもよい。
【０２３６】
上述した各実施形態において、カメラ３０は１つであっても複数であってもよい。複数のカメラ３０を用いる場合、各カメラ３０をそれぞれの撮影位置に設置した状態で同時に撮影を行ってもよい。また、複数のカメラ３０をそれぞれの撮影位置に設置しておき、第１情報処理装置１０からの指示に従って各カメラ３０が撮影を行ってもよい。この場合、カメラ３０で撮影された画像をリアルタイムで第２情報処理装置２０のユーザに提供することができる。よって、例えば各種の部屋、劇場、動物園、植物園等で撮影した画像によって撮影対象の空間の状態をリアルタイムで確認することができる。
【０２３７】
各実施形態で記載されている技術的特徴（構成要件）はお互いに組合せ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２３８】
１０  第１情報処理装置（情報処理装置）
１１  制御部
１２  記憶部
１３  通信部（受信部、送信部）
１４  入力部
１５  表示部
２０  第２情報処理装置
２１  制御部
２２  記憶部
２３  通信部（送信部、受信部）
２４  表示部
２５  センサ部
３０  カメラ
３１  制御部
３２  記憶部
３３  通信部
３４  シャッターボタン
３５  撮影部
４０  情報処理システム
５１  特徴点対応付け部
５２  仮想スクリーン設定部（スクリーン特定部）
５３  仮想スクリーン補正部（補正部）
５５  仮想画像生成部（生成部）
５６  仮想ビュー生成部（中間画像生成部）
５７  合成割合特定部
５８  合成部
１２ａ  パノラマ画像ＤＢ
１２ｂ  特徴点対応テーブル
１２ｃ  方位角対応テーブル
１２ｄ  仮想スクリーンテーブル
１２ｅ  前側画像用仮想スクリーンテーブル
１２ｆ  後側画像用仮想スクリーンテーブル
１２ｇ  画素対応テーブル
１２ｈ  仮想ビューＤＢ
【図１】
2020024687.tif 000021
【図２】
2020024687.tif 000022
【図３】
2020024687.tif 000023
【図４】
2020024687.tif 000024
【図５】
2020024687.tif 000025
【図６】
2020024687.tif 000026
【図７】
2020024687.tif 000027
【図８】
2020024687.tif 000028
【図９】
2020024687.tif 000029
【図１０】
2020024687.tif 000030
【図１１】
2020024687.tif 000031
【図１２】
2020024687.tif 000032
【図１３】
2020024687.tif 000033
【図１４】
2020024687.tif 000034
【図１５】
2020024687.tif 000035
【図１６】
2020024687.tif 000036
【図１７】
2020024687.tif 000037
【図１８】
2020024687.tif 000038
【図１９】
2020024687.tif 000039
【図２０】
2020024687.tif 000040
【図２１】
2020024687.tif 000041
【図２２】
2020024687.tif 000042
【図２３】
2020024687.tif 000043
【図２４】
2020024687.tif 000044
【図２５】
2020024687.tif 000045
【図２６】
2020024687.tif 000046
【図２７】
2020024687.tif 000047
【図２８】
2020024687.tif 000048
【図２９】
2020024687.tif 000049
【図３０】
2020024687.tif 000050
【図３１】
2020024687.tif 000051
【図３２】
2020024687.tif 000052
【図３３】
2020024687.tif 000053
【図３４】
2020024687.tif 000054
【図３５】
2020024687.tif 000055
【図３６】
2020024687.tif 000056
【図３７】
2020024687.tif 000057
【図３８】
2020024687.tif 000058
【図３９】
2020024687.tif 000059
【図４０】
2020024687.tif 000060
【図４１】
2020024687.tif 000061
【図４２】
2020024687.tif 000062
【図４３】
2020024687.tif 000063
【図４４】
2020024687.tif 000064
【図４５】
2020024687.tif 000065
【図４６】
2020024687.tif 000066
【図４７】
2020024687.tif 000067
【図４８】
2020024687.tif 000068
【図４９】
2020024687.tif 000069
【図５０】
2020024687.tif 000070
【図５１】
2020024687.tif 000071
【図５２】
2020024687.tif 000072
【図５３】
2020024687.tif 000073
【図５４】
2020024687.tif 000074