パノラマ画像表示装置およびパノラマ画像表示方法
【課題】パノラマ画像に写された空領域に何らかの視覚効果を与えることが望ましい。
【解決手段】
マスク領域抽出部11は、パノラマ画像内のマスクすべき領域を抽出する。マスク処理部12は、パノラマ画像内のマスクすべき領域をマスクしたパノラマ画像を生成する。位置合わせ部20は、前記天球画像の方向を前記パノラマ画像の撮影方向に合わせる。マッピング処理部14は、マスク処理後のパノラマ画像および天球画像をテクスチャとして3次元パノラマ空間にマッピングする。3次元画像生成部16は、パノラマ画像の撮影場所を視点位置として、3次元パノラマ空間を指定された視線方向に見たときの3次元パノラマ画像を生成する。
【解決手段】
マスク領域抽出部11は、パノラマ画像内のマスクすべき領域を抽出する。マスク処理部12は、パノラマ画像内のマスクすべき領域をマスクしたパノラマ画像を生成する。位置合わせ部20は、前記天球画像の方向を前記パノラマ画像の撮影方向に合わせる。マッピング処理部14は、マスク処理後のパノラマ画像および天球画像をテクスチャとして3次元パノラマ空間にマッピングする。3次元画像生成部16は、パノラマ画像の撮影場所を視点位置として、3次元パノラマ空間を指定された視線方向に見たときの3次元パノラマ画像を生成する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、パノラマ画像を表示する装置および方法に関する。
【背景技術】
【0002】
デジタルスチルカメラやデジタルビデオカメラが普及しており、撮影した静止画や動画をコンピュータに保存して閲覧、加工したり、ゲーム機やテレビジョン(TV)システムの画面に表示する機会が多くなっている。また、撮影した動画をインターネットの投稿サイトにアップロードし、他のユーザと動画を共有することも盛んである。
【0003】
デジタルカメラの中には、パノラマ画像の撮影が可能なものもあり、手軽に視野角の広いパノラマ画像を撮影することができるようになってきた。また、撮影方向を変えながら、デジタルカメラの撮影した複数の画像を貼り合わせることでパノラマ画像を生成するソフトウエアツールもよく利用されている。
【0004】
ユーザが撮影したこのようなパノラマ画像の投稿を受け付け、インターネットで公開する360citiesというサイト(http;//www.360cities.net)もあり、世界中のユーザが投稿したパノラマ画像を閲覧することができる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
パノラマ画像は撮影場所から全方位を見た画像を撮影するものであるから、野外でパノラマ画像を撮影すると、パノラマ画像の天井部分には、撮影者の頭上に広々と広がる空が写し出させているだけであることが多い。パノラマ画像の大部分を占める空の領域に何らかの視覚効果を与える画像処理を施せば、パノラマ画像に新鮮味を与えたり、多様性をもたらすことが期待できる。また、撮影されたパノラマ画像に別のオブジェクトを挿入して描画すれば、仮想的に実在していない物体が写り込んだパノラマ画像を生成することができ、意外性がもたらされたり、楽しさが加わることも期待できる。
【0006】
本発明はこうした課題に鑑みてなされたものであり、その目的は、パノラマ画像を加工して表示することのできる技術を提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明のある態様のパノラマ画像表示装置は、撮影方向に関する情報が関連付けられたパノラマ画像および方向に関する情報が関連付けられた天球画像を保持する記憶部と、前記パノラマ画像内のマスクすべき領域を抽出するマスク領域抽出部と、前記パノラマ画像内の前記マスクすべき領域をマスクしたパノラマ画像を生成するマスク処理部と、前記天球画像の方向を前記パノラマ画像の撮影方向に合わせる位置合わせ部と、前記位置合わせ部による位置合わせの後、マスク処理されたパノラマ画像および前記天球画像をテクスチャとして3次元パノラマ空間にマッピングするマッピング処理部と、前記パノラマ画像の撮影場所を視点位置として、前記3次元パノラマ空間を指定された視線方向に見たときの3次元パノラマ画像を生成する3次元画像生成部と、前記3次元パノラマ画像を画面に表示させる表示制御部とを含む。
【0008】
本発明の別の態様も、パノラマ画像表示装置である。この装置は、撮影方向に関する情報が関連付けられたパノラマ画像および方向に関する情報が関連付けられた仮想画像を保持する記憶部と、前記パノラマ画像内のマスクすべき領域を抽出するマスク領域抽出部と、前記パノラマ画像内の前記マスクすべき領域をマスクしたパノラマ画像を生成するマスク処理部と、前記仮想画像の方向を前記パノラマ画像の撮影方向に合わせる位置合わせ部と、前記位置合わせ部による位置合わせの後、マスク処理されたパノラマ画像に前記仮想画像を重ね合わせた拡張現実画像を画面に表示させる表示制御部とを含む。
【0009】
本発明の別の態様は、パノラマ画像表示方法である。この方法は、撮影方向に関する情報が関連付けられたパノラマ画像および方向に関する情報が関連付けられた天球画像が保持された記憶デバイスから、プロセッサが表示対象のパノラマ画像と天球画像を読み出すステップと、プロセッサが前記パノラマ画像に対してマスクすべき領域を指定するステップと、プロセッサが前記天球画像の方向を前記パノラマ画像の撮影方向に合わせるステップと、位置合わせの後、プロセッサが前記パノラマ画像のマスクすべき領域に前記天球画像を重ね合わせて描画するステップとを含む。
【0010】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0011】
本発明によれば、パノラマ画像を効果的に加工して表示することができる。
【図面の簡単な説明】
【0012】
【図1】実施の形態に係るパノラマ画像表示装置の構成図である。
【図2】図1のパノラマ画像表示装置に接続される入力デバイスの一例であるコントローラの構成図である。
【図3】図3(a)〜(d)は、パノラマ画像を撮影するために用いられる全方位撮影システムの機構と撮影方向を説明する図である。
【図4】図4(a)はカメラの方位角θ、図4(b)はカメラの仰角φを説明する図である。
【図5】図5(a)〜(c)は、カメラの初期位置が方位角θの方向にある場合に撮影されるパノラマ画像を説明する図である。
【図6】図6(a)〜(c)は、カメラの仰角φ=60°の場合に撮影されるパノラマ画像を説明する図である。
【図7A】複数の画像をつなぎ合わせてパノラマ画像を作成する方法を説明する図である。
【図7B】複数の画像をつなぎ合わせてパノラマ画像を作成する方法を説明する図である。
【図8】図1のパノラマ画像表示装置によるパノラマ画像生成手順を説明するフローチャートである。
【図9A】撮影されたパノラマ画像の例を示す図である。
【図9B】セグメンテーションにより、領域分割されたパノラマ画像を示す図である。
【図9C】フィルタリング処理されたパノラマ画像を示す図である。
【図9D】パノラマ画像内の空領域を指定するマスクを示す図である。
【図9E】空領域がマスク処理されたパノラマ画像を示す図である。
【図10】パノラマ画像がマッピングされる3次元パノラマ空間と天球の関係を説明する図である。
【図11A】図9Eのマスク処理後のパノラマ画像の空領域に天球画像が貼り付けられた例を示す図である。
【図11B】図9Eのマスク処理後のパノラマ画像の空領域に星空が貼り付けられ例を示す図である。
【発明を実施するための形態】
【0013】
本発明の実施の形態の概要を説明する。パノラマ画像内の空が写された領域を抽出し、パノラマ画像の空領域を透明するマスク処理を施す。パノラマ画像がマッピングされるパノラマ球などの3次元パノラマ空間の外側に天球を想定し、空の画像などを天球画像として用意しておき、パノラマ画像がマッピングされる3次元パノラマ空間にマッピングする。これにより、パノラマ画像の透明に切り抜かれた空領域に天球画像が貼り付けられた3次元パノラマ画像が生成される。天球内にパノラマ画像には撮影されていない別のオブジェクトを配置し、オブジェクトも合わせて3次元パノラマ空間にマッピングすれば、生成される3次元パノラマ画像にオブジェクトを挿入することもできる。なお、天球を複数設けて複数の天球画像を3次元パノラマ空間にマッピングしてもよい。たとえば、雲の天球と空の天球を設け、雲の天球には雲の画像を、空の天球には太陽、月、星などの天体の画像を用意してもよい。
【0014】
図1は、実施の形態に係るパノラマ画像表示装置100の構成図である。図1に示すパノラマ画像表示装置100の機能構成は、一例として、パーソナルコンピュータ、ゲーム機、携帯機器、携帯端末などにハードウェア、ソフトウェアまたはその組み合わせによって実装することができる。これらの機能構成の一部がサーバに実装され、一部がクライアントに実装され、パノラマ画像表示装置100は、ネットワークを介してサーバ−クライアントシステムとして実現されてもよい。
【0015】
パノラマ画像・付加データ記憶部24は、撮影場所に関する情報と撮影方位に関する情報が関連付けられたパノラマ画像を保持する。撮影場所や撮影方位に関する情報などの付加データはパノラマ画像のデータファイルに直接付加されてもよく、付加データはパノラマ画像とは別のファイルとして管理されてもよい。
【0016】
撮影場所に関する情報は、たとえば、GPS(Global Positioning System)により与えられる緯度・経度情報を含む。撮影方位に関する情報は、たとえば、方位センサなどから得られるパノラマ画像の中心点の方位角の情報を含み、それ以外に撮影時のカメラの仰角やロール角の情報を含んでもよい。
【0017】
撮影方位に関する情報としてパノラマ画像の中心点の方位角が与えられれば、カメラを左右方向にパンした角度にもとづいて、パノラマ画像の任意の点の方位を計算上、求めることができる。パノラマ画像の中心点の方位角とパン角にもとづいて計算された、パノラマ画像の真北、真南、真東、真西の方位にあるピクセルの座標値を撮影方位に関する情報としてパノラマ画像にもたせてもよい。
【0018】
パノラマ画像取得部10は、表示対象のパノラマ画像をパノラマ画像・付加データ記憶部24から取得する。表示対象のパノラマ画像は、たとえば、ユーザが地図などで撮影場所を指定することで特定される。
【0019】
マスク領域抽出部11は、表示対象のパノラマ画像内のマスクすべき領域を抽出する。マスクすべき領域は、たとえば、パノラマ画像に写された空の領域である。空の領域は、パノラマ画像の色情報をもとに判定することができる。パノラマ画像では撮影者の頭上は空が広がっていることが多いため、空領域は、カメラの仰角の大きいところで連続した広がりのある領域として検出されることが多い。
【0020】
パノラマ画像には撮影時のカメラの仰角の情報が付されているので、マスク領域抽出部11は、カメラの仰角の情報をもとにパノラマ画像の地平線の位置を判定し、パノラマ画像の地平線よりも上側の領域内で空の領域を抽出してもよい。あるいは、カメラの仰角が所定の閾値よりも大きい領域は、確実に地平線よりも上側の領域であるから、その領域内で空の領域を抽出してもよい。これにより、地平線よりも下側の領域で空に似た色の領域があっても、空領域と混同して抽出するエラーを回避することができる。
【0021】
マスク処理部12は、マスク領域抽出部11により抽出されたマスクすべき領域をマスクしたパノラマ画像を生成する。マスク領域抽出部11が空領域をマスクすべき領域として抽出した場合は、抽出された空領域をマスクとしてパノラマ画像にマスク処理を施して、空領域をマスクしたパノラマ画像を生成する。パノラマ画像のマスク処理は、たとえば、元のパノラマ画像からマスクで指定される領域を透明にするか、その領域をクリッピングした画像を生成することによってなされる。マスク処理には、マスク領域の画素値をクリアする2値マスクに限らず、マスク領域の画素値をアルファブレンドする多値マスクを利用してもよい。マスク処理部12は、マスク処理後のパノラマ画像をパノラマ画像・付加データ記憶部24に保存する。
【0022】
天球画像データ記憶部26には、マスク処理後のパノラマ画像に重ね合わせる天球の画像データが保持されている。天球は、パノラマ画像がマッピングされる3次元パノラマ空間よりも外側にあり、天球の表面に設定された天空の画像が天球画像である。さまざまな地点から見た天球画像が視点の緯度経度に対応づけて天球画像データ記憶部26に記憶されている。天球画像には、たとえば、太陽、月、星などの天体や雲などが含まれ、天体の運行モデルや気象モデルにもとづいて天体や雲が移動してもよい。また、天球画像は、実写にもとづいて生成されたものであってもよく、コンピュータグラフィックスを用いて生成されたものであってもよい。
【0023】
位置合わせ部20は、天球画像の方向をマスク処理後のパノラマ画像の撮影方向に合わせる。具体的には、位置合わせ部20は、パノラマ画像の撮影場所の緯度経度を中心とする天球の中心を、パノラマ画像がマッピングされる3次元パノラマ空間の中心に合わせ、たとえば北極星の方角を基準として、パノラマ画像のパン角およびチルト角で決まる撮影方向に合うように天球画像の回転角を計算して天球画像を回転させる。
【0024】
オブジェクトデータ記憶部28には、パノラマ画像に挿入すべきオブジェクトの3次元データが保持されている。所定の緯度、経度、高度に静止している静的オブジェクトの他、動きモデルにもとづいて3次元空間を移動する動的オブジェクトがある。
【0025】
オブジェクト挿入部22は、パノラマ画像に挿入すべきオブジェクトを天球内の指定された空間位置に配置する。オブジェクトは、天球とパノラマ画像がマッピングされる3次元パノラマ空間の間、すなわち3次元パノラマ空間の外側に配置してもよく、3次元パノラマ空間の内部に配置してもよい。オブジェクト挿入部22によるオブジェクトの挿入はオプションである。
【0026】
位置合わせ部20によるパノラマ画像と天球画像の位置合わせの後、マッピング処理部14は、マスク処理後のパノラマ画像および天球画像をテクスチャとして3次元パノラマ空間にマッピングする処理を行う。
【0027】
全天球パノラマ画像の場合は、3次元パノラマ空間として球を想定し、球面マッピングにより、パノラマ画像を球面にテクスチャマッピングする。あるいは、3次元パノラマ空間として立方体を想定し、キューブマッピングにより、パノラマ画像を立方体表面にテクスチャマッピングしてもよい。また、パノラマ画像がチルト方向の成分をもたず、パン方向にのみ広がる画像である場合、3次元パノラマ空間として円柱を想定し、パノラマ画像を円柱面にテクスチャマッピングしてもよい。パノラマ画像がパン方向の成分をもたず、チルト方向にのみ広がる画像である場合も同様である。
【0028】
マッピング処理部14は、天球画像を3次元パノラマ空間にマッピングした後に、マスク処理後のパノラマ画像を3次元パノラマ空間に重ねてマッピングする。これにより、パノラマ画像内のマスク領域に天球画像の一部を貼り付けた画像が3次元パノラマ空間上に生成される。
【0029】
オブジェクト挿入部22によりオブジェクトが3次元パノラマ空間の内側または外側に配置されている場合は、マッピング処理部14は、配置されたオブジェクトも3次元パノラマ空間にマッピングする。
【0030】
マッピング処理部14は、オブジェクトが3次元パノラマ空間の外側に配置されている場合は、オブジェクトを3次元パノラマ空間にマッピングした後に、マスク処理後のパノラマ画像を3次元パノラマ空間に重ねてマッピングする。これにより、オブジェクトがパノラマ画像の空領域に貼り付けられ、オブジェクトがパノラマ画像に写された建物などと重なる場合は、建物で隠れるように描画される。
【0031】
マッピング処理部14は、オブジェクトが3次元パノラマ空間の内側に配置されている場合は、マスク処理後のパノラマ画像を3次元パノラマ空間にマッピングした後に、オブジェクトを3次元パノラマ空間に重ねてマッピングする。これにより、オブジェクトがパノラマ画像に重ね合わされ、オブジェクトがパノラマ画像に写された建物などと重なる場合は、建物の手前にオブジェクトが描画される。
【0032】
3次元画像生成部16は、マッピング処理部14によりパノラマ画像、天球画像およびオブジェクトがマッピングされた3次元パノラマ空間内を指定された視線方向に見たときの3次元パノラマ画像を生成する。3次元パノラマ空間が球の場合、視点は球の中心に置かれ、立方体の場合、視点は立方体内部の中心に置かれ、円柱の場合、視点は円柱の中心軸上に置かれる。視点は表示対象のパノラマ画像を撮影した場所であり、視線方向は、その撮影場所から周囲を見る方向であり、方位角と仰角で特定される。3次元画像生成部16は、方位角と仰角で特定される視線方向で3次元パノラマ空間を見たときの3次元画像を生成する。
【0033】
表示制御部18は、生成された3次元パノラマ画像をディスプレイ装置の画面に表示させる。
【0034】
ユーザインタフェース部40は、ディスプレイの画面に表示されるグラフィックスに対して、ユーザが入力デバイスを用いて操作することを可能にするグラフィカルユーザインタフェースである。ユーザインタフェース部40は、画面に表示された地図や3次元パノラマ画像に対するゲーム機のコントローラ、マウス、キーボードなどの入力デバイスからユーザの指示を受け付ける。図2は、入力デバイスの一例であるコントローラ102を示し、その構成の詳細については後述する。
【0035】
ユーザインタフェース部40は、指定されたパノラマ画像をパノラマ画像・付加データ記憶部24から取得するように、パノラマ画像取得部10に指示する。
【0036】
ユーザは、たとえば、コントローラ102のアナログスティック118または方向キー群116などを操作することにより、3次元パノラマ空間を見る視線方向を変更する指示を入力することができる。ユーザインタフェース部40の視線方向設定部32は、ユーザが指示する視線方向を3次元画像生成部16に与える。3次元画像生成部16は、3次元パノラマ空間を指定された視線方向から見た場合の画像を生成する。
【0037】
画角設定部31は、ユーザが表示されたパノラマ画像に対してズーム操作をしたときの画角を設定し、パノラマ画像取得部10と3次元画像生成部16に設定された画角の情報を与える。画角の異なるパノラマ画像がパノラマ画像・付加データ記憶部24に記憶されている場合、パノラマ画像取得部10は、設定された画角にもっとも近い画角のパノラマ画像を読み出し、表示対象のパノラマ画像を切り替える。3次元画像生成部16は、設定された画角に応じて3次元パノラマ画像を拡大・縮小することで、ズームイン・ズームアウトの視覚効果を実現する。
【0038】
パノラマ画像には、撮影高度に関する情報も付与されており、パノラマ画像・付加データ記憶部24は、同一の撮影位置に対して異なる高度で撮影されたパノラマ画像を保持してもよい。その場合、ユーザは、たとえば、コントローラ102の筐体前面の左側にあるL1/L2ボタン161、162を操作することにより、高度を変更する指示を入力することができる。L1ボタン161を押すことにより、高度を上げる指示を、L2ボタン162を押すことにより、高度を下げる指示を与えることができる。
【0039】
表示制御部18は、現在表示されているパノラマ画像について、同一撮影場所で異なる高度で撮影したパノラマ画像があることを、たとえば、画面の上部、下部に小さな矢印を示すことでユーザに知らせてもよい。画面の上部に上向きの矢印があれば、現在よりも撮影高度の高い画像があることを示し、画面の下部に下向きの矢印があれば、現在よりも撮影高度の低い画像があることを示す。
【0040】
ユーザインタフェース部40の高度設定部34は、ユーザから高度を変更する指示を受け取ると、同一撮影位置であるが、指定された高度に対応するパノラマ画像をパノラマ画像・付加データ記憶部24から取得するように、パノラマ画像取得部10に指示する。パノラマ画像取得部10は、L1ボタン161が押された場合は、現在表示されているパノラマ画像よりも撮影高度のより高いパノラマ画像を取得し、L2ボタン162が押された場合は、撮影高度のより低いパノラマ画像を取得する。
【0041】
表示制御部18は、撮影高度の異なるパノラマ画像に切り替えて表示する際、たとえば、ユーザがエレベータで上下しているかのような感覚を与えるために、特別なエフェクトを画像に施してもよい。たとえば、より高度の高いパノラマ画像に切り替える場合、現在表示されているパノラマ画像を下にスクロールさせて、より高度の高いパノラマ画像が上から降りてくるように表示させることで、ユーザはあたかも階上に行ったかのような感覚をもつことができる。
【0042】
パノラマ画像には、撮影日時に関する情報も付与されており、パノラマ画像・付加データ記憶部24は、同一の撮影位置に対して撮影日時の異なるパノラマ画像を保持してもよい。その場合、ユーザは、たとえば、コントローラ102の筐体前面の右側にあるR1/R2ボタン151、152を操作することにより、撮影日時を変更する指示を入力することができる。R1ボタン151を押すことにより、遅い日時にシフトする指示を、R2ボタン152を押すことにより、早い日時にシフトする指示を与えることができる。
【0043】
表示制御部18は、現在表示されているパノラマ画像について、異なる日時に撮影したパノラマ画像があることを、たとえば、時計やカレンダーのアイコンを画面の隅に示すことでユーザに知らせてもよい。朝、昼、夜など時間帯の異なるパノラマ画像が存在するときは時計のアイコンを、春、夏、秋、冬など季節の異なるパノラマ画像が存在するときはカレンダーのアイコンを表示する。
【0044】
ユーザインタフェース部40の日時設定部36は、ユーザから日時を変更する指示を受け取った場合、同一撮影位置であるが、指定された日時に対応するパノラマ画像をパノラマ画像・付加データ記憶部24から取得するように、パノラマ画像取得部10に指示する。パノラマ画像取得部10は、R1ボタン151が押された場合は、現在表示されているパノラマ画像よりも撮影日時のより遅いパノラマ画像を取得し、R2ボタン152が押された場合は、撮影日時のより早いパノラマ画像を取得する。
【0045】
これにより、たとえば、同一撮影場所であっても、朝の時間帯に撮影されたパノラマ画像から夜の時間帯にパノラマ画像に切り替えたり、春に撮影されたパノラマ画像から秋に撮影されたパノラマ画像に切り替えるなど、時間帯や季節などが異なるパノラマ画像に切り替えることができる。表示制御部18は、パノラマ画像を切り替えるとき、フェイドイン・フェイドアウトなどのエフェクトを画像に施してもよい。
【0046】
視点位置設定部30は、パノラマ画像の撮影場所を視点位置に設定し、視点位置を3次元画像生成部16に通知する。視線方向設定部32は、指定された視線方向を3次元画像生成部16に与える。
【0047】
図2は、図1のパノラマ画像表示装置100に接続される入力デバイスの一例であるコントローラ102の構成図である。パノラマ画像表示装置100は、一例としてゲーム機であってもよい。
【0048】
コントローラ102は、パノラマ画像表示装置100に対する操作入力を行うための複数のボタンやキーを有する。ユーザがコントローラ102のボタンやキーを操作すると、その操作入力が無線または有線によりパノラマ画像表示装置100に送信される。
【0049】
コントローラ102の筐体上面122には、方向キー群116、アナログスティック118、操作ボタン群120が設けられている。方向キー群116は、「上」、「下」、「左」、「右」方向指示キーを含む。操作ボタン群120は、○ボタン124、×ボタン126、□ボタン128、および△ボタン130を含む。
【0050】
ユーザは左手で左側把持部134bを把持し、右手で右側把持部134aを把持して、筐体上面122上の方向キー群116、アナログスティック118、および操作ボタン群120を操作する。
【0051】
さらに、コントローラ102の筐体前面には、右側操作部150と左側操作部160が設けられている。右側操作部150はR1ボタン151とR2ボタン152を含み、左側操作部160はL1ボタン161とL2ボタン162を含む。
【0052】
ユーザは、方向キー群116を操作することにより、画面上の表示されたポインタを上下左右の各方向に移動させることができる。たとえば、パノラマ画像内に表示された複数のマーカーのいずれかを選択する際、方向キー群116を操作して画面上で複数のマーカー間を移動することができる。ユーザは所望のマーカー上にポインタが来たときに、○ボタン124を押すことでそのマーカーを選択することができる。
【0053】
操作ボタン群120の各ボタンには、パノラマ画像表示アプリケーションプログラムによりそれぞれ異なる機能が割り付けられてもよい。たとえば、△ボタン130にはメニューの表示を指定する機能、×ボタン126には、選択した項目の取り消し等を指定する機能、○ボタン124には選択した項目の決定等を指定する機能、□ボタン128には、目次等の表示/非表示を指定する機能がそれぞれ割り付けられる。
【0054】
アナログスティック118は、ユーザによって傾倒操作されたとき、アナログ値を出力する手段を備える。コントローラ102は、アナログスティック118を傾倒したときの方向と量に応じたアナログ出力信号をパノラマ画像表示装置100に送る。たとえば、ユーザは、アナログスティック118を所望の方向に傾倒することで、ディスプレイに表示された3次元パノラマ画像内で視点を所望の方向に移動させることができる。
【0055】
筐体上面122には、さらにLED付きボタン136、セレクトボタン140、スタートボタン138が設けられる。LED付きボタン136は、たとえば、ディスプレイにメニュー画面を表示させるためのボタンとして利用される。スタートボタン138は、パノラマ画像表示アプリケーションの起動、パノラマ画像の再生開始、一時停止などをユーザが指示するためのボタンである。セレクトボタン140は、ディスプレイに表示されたメニュー表示の選択等をユーザが指示するためのボタンである。
【0056】
図3(a)〜(d)は、パノラマ画像を撮影するために用いられる全方位撮影システム230の機構と撮影方向を説明する図である。
【0057】
図3(d)に示すように、全方位撮影システム230において、カメラ200は操作盤210に固定されており、操作盤210をZ軸周りに回転させることでカメラのパン角を変え、X軸周りに回転させることでカメラのチルト角を変え、Y軸周りに回転させることでカメラのロール角を変えることができる。ここでZ軸は鉛直軸(重力方向軸)である。
【0058】
図3(a)は、操作盤210に設置されたカメラ200の上面図であり、操作盤の初期位置(Y軸方向)をパン角0°とし、Z軸の周りに−180°〜+180°の範囲でパン角を変えることができる。
【0059】
図3(b)は、操作盤210に設置されたカメラ200の正面図であり、操作盤210が水平に置かれた状態をロール角0°とし、Y軸の周りに−180°〜+180°の範囲でロール角を変えることができる。
【0060】
図3(c)は、操作盤210に設置されたカメラ200の側面図であり、操作盤210が水平に置かれた状態をチルト角0°とし、X軸の周りに−90°〜+90°の範囲でチルト角を変えることができる。
【0061】
図3(d)の全方位撮影システム230により撮影されるパノラマ画像に撮影方位に関する情報を付与するためには、カメラ200が撮影時にどの方位に向いていたかを記録しておく必要がある。そのために、全方位撮影システム230は、方位を測定するための方位センサや傾斜角を測定するための加速度センサなどを備える。さらに、撮影位置や撮影時間を測定するためにGPSセンサなども備える。
【0062】
図4(a)はカメラ200の方位角θ、図4(b)はカメラ200の仰角φを説明する図である。図4(a)はカメラ200の上面図であり、カメラ200は撮影の初期位置において、真北から東へ方位角θだけずれた方向220を向いており、この方向がパン角0°に相当する。すなわちパン角の基準方向220の方位角はθである。パノラマ画像を撮影するとき、この方位角θの基準方向220に対して−180°〜+180°の範囲でパン角を変えながら、被写体をパノラマ撮影する。
【0063】
図4(b)はカメラ200の側面図であり、仰角φは、X軸周りにカメラ200を回転させた場合に、チルト0°の方向、すなわちY軸方向に対して上方向を正と定義する角度である。通常、カメラ200を水平ポジションに設定して撮影するので仰角φ=0°であるが、全天球のパノラマ画像を撮影するには、カメラをチルトさせて仰角φを変えて被写体を撮影する必要がある。
【0064】
図5(a)〜(c)は、カメラ200の初期位置が方位角θの方向にある場合に撮影されるパノラマ画像を説明する図である。
【0065】
図5(a)の上面図に示すように、初期位置においてカメラ200は方位角θの方向220を向いており、図5(b)の側面図に示すように、カメラ200の仰角φ=0°である。仰角φ=0°に保ちながら、基準方向220に対してカメラ200のパン角を−180°から+180°の範囲で変化させながら、仰角φ=0°における全方位のパノラマ画像を撮影する。図5(c)は、このようにして撮影されたパノラマ画像300を示す。パノラマ画像300の中心はパン角0°であり、パノラマ画像300の左半分はパン角を0°から−180°まで変えて撮影された画像であり、右半分はパン角を0°から180°まで変えて撮影された画像である。
【0066】
パノラマ画像300のパン角0°の中心位置は、真北から方位角θだけ東にずれているから、北(N)、南(S)、東(E)、西(W)の位置は点線で示す箇所になる。パノラマ画像300は、撮影方位に関する情報として、パン角0°の中心位置の方位角θをもってさえいれば、北(N)、南(S)、東(E)、西(W)のピクセル位置は、方位角θのずれを考慮して計算で求めることができる。あるいは、方位角θの代わりに、北(N)、南(S)、東(E)、西(W)のピクセル位置の座標値を撮影方位に関する情報としてもうようにしてもよい。
【0067】
全天球のパノラマ画像を得るためには、カメラ200の仰角を変えて撮影する必要がある。たとえば、カメラ200の画角が60°であるとすると、原理的にはカメラ200を上下に±60°チルトさせた上で、パン角を−180°〜180°の範囲で変えながら同様の撮影を行えば、全天球のパノラマ画像を得ることができる。
【0068】
図6(a)〜(c)は、カメラ200の仰角φ=60°の場合に撮影されるパノラマ画像を説明する図である。図6(a)の上面図に示すように、初期位置においてカメラ200は方位角θの方向220を向いており、図6(b)の側面図に示すように、カメラ200の仰角φ=60°である。仰角φ=60°に保ちながら、基準方向220に対してカメラ200のパン角を−180°から+180°の範囲で変化させながら、図6(c)に示すような、仰角φ=60°におけるパノラマ画像302を撮影する。
【0069】
同様にして、カメラ200の仰角をφ=−60°に保ちながら、パン角を−180°から+180°の範囲で変化させながら、仰角φ=−60°におけるパノラマ画像を撮影する。仰角φ=0°、60°、−60°のパノラマ画像を組み合わせれば、全天球パノラマ画像が得られる。もっとも、実装上は、画角の境界部分で画像を貼り合わせる際にレンズの歪みから生じる不整合を補正するために、境界付近をだぶらせて撮影する方法を採ることが多い。
【0070】
このようにして得られた全天球パノラマ画像には、方位角および仰角の情報が付与されており、その情報にもとづいてパノラマ画像の任意のピクセルについて方位と仰角を特定可能である。また、パノラマ画像には撮影場所の位置情報としてGPSにより測定された緯度・経度情報も付与される。パノラマ画像に付与すべき付加情報は、一例として、Exif(Exchangeable Image File Format)と呼ばれる画像ファイルの規格にしたがって記録してもよい。撮影場所の地名はファイル名の一部に記録し、撮影日時、撮影場所の緯度・経度、高度、方位角などをExif形式のデータとして記録することができる。仰角はExif形式では定義されていないが、拡張データとして記録する。
【0071】
図7Aおよび図7Bは、複数の画像をつなぎ合わせてパノラマ画像を作成する方法を説明する図である。
【0072】
図7Aの例では、カメラ200をチルト(またはパン)させながら撮影された7枚の画像341〜347を円筒にマッピングした後、つなぎ合わせて円筒状の画像340を作成する。画像をつなぎ合わせるとき、画像の境界付近をオーバーラップさせる。
【0073】
図7Bに示すように、カメラ200をパン(またはチルト)させて撮影することで、図7Aで示した円筒状の画像がパン(またはチルト)方向に複数得られる。これらの円筒状の画像340a〜340fを画像の境界付近をオーバーラップさせて合成することで、全方位のパノラマ画像360が最終的に得られる。
【0074】
図8は、パノラマ画像表示装置100によるパノラマ画像生成手順を説明するフローチャートである。図9A〜図9E、図10、図11Aおよび図11Bを参照しながら、図8のパノラマ画像生成手順の各ステップを説明する。図8に示すフローチャートにおいては、各部の処理手順を、ステップを意味するS(Stepの頭文字)と数字との組み合わせによって表示する。
【0075】
パノラマ画像取得部10は、撮影されたパノラマ画像400とそれに付加された撮影場所および撮影方位に関する情報をパノラマ画像・付加データ記憶部24から取得する(S10)。
【0076】
図9Aは、撮影されたパノラマ画像400の例を示す図である。パノラマ画像の中央には建物が写っており、パノラマ画像の下側には地面が写っている。パノラマ画像の上側には空410が写っており、空410には雲の他、太陽430が写っている。
【0077】
マスク領域抽出部11は、パノラマ画像400の空領域をマスクすべき領域として抽出する(S12)。パノラマ画像から空領域を抽出するために、マスク領域抽出部11は、一例として、セグメンテーションと呼ばれる手法を用いて、パノラマ画像をセグメント化し、意味のある領域に分割する。セグメンテーションとは、画像認識でしばしば用いられる手法の一つであり、画像中の対象物に対応する領域を検出して、画像を分割することである。セグメンテーションにより、画像は、空、建物、地面、人といった対象物毎の領域に分割される。
【0078】
セグメンテーションには、一般にクラスタリング手法が用いられる。画像に写された対象物に対応する画素は色や輝度などにおいて類似する特徴を有することから、画素をクラスタリングすることで、対象物に対応する領域に画像をセグメント化することができる。画素のクラスタリングの正解を教師データとして与える教師ありクラスタリングを用いてもよい。本実施の形態では、ユーザがパノラマ画像において空領域に属する画素をいくつか指定することで教師データを与える。
【0079】
図9Bは、セグメンテーションにより、領域分割されたパノラマ画像402を示す図である。セグメンテーションによって、パノラマ画像は、空の領域、建物の領域、地面の領域などにセグメント化されていることがわかる。
【0080】
図9Aのパノラマ画像400の空領域410について見れば、セグメンテーションにより、図9Bに示すように、主に符号411〜415で示す5つの領域に分割されている。元のパノラマ画像400には太陽430が写り込んでいたため、符号411〜415の順に青から白に段階的に変化する5つの領域として検出されており、空領域を一つの領域として検出することはできていない。また、符号411で示す領域の中には、雲に相当する領域が別のセグメントとして抽出されており、空のセグメント化は完全ではない。
【0081】
しかしながら、このような不完全なセグメンテーション結果に対してでも、空の色を指定し、各領域の画素の色と指定された空の色の絶対差分が所定の閾値未満であれば、空領域であると判定することで、5つの領域の内、たとえば、符号411、412、413の3領域をまとめて一つの空領域として検出することができる。また、手作業によって、符号411で示す領域内の雲に相当する領域を消すこともできる。
【0082】
一般に、セグメンテーションは、時間のかかる処理であるため、記録装置に保存されたパノラマ画像に対してアイドル時間を利用して処理を実行できる場合には適用できるが、撮影されたパノラマ画像に対してリアルタイムで処理を実行しなければならない場合にはあまり適していない。そこで、マスク領域抽出部11は、セグメンテーションに代わる別の方法として、双方向フィルタ(bilateral filter)と呼ばれるフィルタリング処理を施して、空領域を検出してもよい。
【0083】
図9Cは、フィルタリング処理されたパノラマ画像404を示す図である。図9Aのパノラマ画像400に対して、画素値を平坦化し、エッジを強調する双方向フィルタをかけることで、元のパノラマ画像400の空領域410は、図9Cに示すように、空のグラデーションや雲が消え、符号421で示すような一つの領域として検出される。太陽430が写り込んだ領域は符号422、423のようにグラデーションをもつ別の領域として抽出されている。
【0084】
マスク領域抽出部11は、フィルタリング処理後のパノラマ画像404の画素の色と空の色の絶対差分が所定の閾値以下である場合に、その画素を空であると判定することで、パノラマ画像404から空領域を抽出する。空の色は、ユーザが指定したり、撮影時の天候や季節などに応じてシステムが自動的に設定してもよい。
【0085】
しかし、この判定では、空に近い色であれば、空以外の対象物の画素も空領域として選択されるおそれがある。そこで、マスク領域抽出部11は、パノラマ画像を撮影したときのカメラの仰角の情報を用いて、パノラマ画像の地平線の位置を検出し、地平線よりも下側で、指定された空の色に近い画素があっても、空領域として検出しないようにする。言い換えれば、カメラの仰角がある閾値以上の領域内でのみ、空領域の検出を行うようにする。これにより、たとえば、パノラマ画像に海や池、プールなどが写り込んでいたとしても、地平線よりも下にあるため、誤って空と判定するエラーを回避することができる。
【0086】
また、パノラマ画像では撮影者の頭上に広々とした空が撮影されることが多く、空領域は一定の広さをもった連続した領域になるのが普通である。したがって、パノラマ画像の空領域は連続しているという知識を用いれば、空と誤判定される領域を少なくすることができる。
【0087】
図9Cの例では、マスク領域抽出部11は、フィルタリング処理後のパノラマ画像404から、太陽430に対応する領域422、423も含めて、符号421、422、423で示す領域を空領域として抽出する。
【0088】
図9Dは、パノラマ画像404内の空領域を指定するマスク440を示す図である。マスク領域抽出部11は、フィルタリング処理後のパノラマ画像404から抽出された空領域をマスク440として設定し、マスク処理部12に与える。
【0089】
図8のフローチャートに戻り、マスク処理部12は、マスク領域抽出部11により設定されたマスク440を用いてパノラマ画像400にマスク処理を施して、空領域を切り抜く(S14)。
【0090】
図9Eは、空領域がマスク処理されたパノラマ画像408を示す図である。これは、元のパノラマ画像400から空領域410が切り抜かれた画像である。
【0091】
次に、位置合わせ部20は、3次元パノラマ空間にマッピングされるパノラマ画像の撮影方向と、同じく3次元パノラマ空間にマッピングされる天球画像の方向を合わせる(S16)。オブジェクト挿入部22は、必要に応じて、パノラマ画像に挿入すべきオブジェクトを3次元パノラマ空間の外側または内側に配置する(S18)。
【0092】
図10は、マスク処理後のパノラマ画像408がマッピングされる3次元パノラマ空間と天球の関係を説明する図である。
【0093】
マスク処理によって空領域512が透明にされたパノラマ画像510が3次元パノラマ空間の一例であるパノラマ球500にマッピングされている。パノラマ球500の中心はパノラマ画像の撮影場所、すなわち視点位置である。その視点位置を中心として、パノラマ球500の外側に天球540が設けられる。天球540の表面には、雲532、534や太陽などを含む天球画像が設定されている。天球画像は、天球画像データ記憶部26から選択することができ、星や月が描かれた星空の天球画像を用いてもよい。
【0094】
パノラマ球500にマッピングされるパノラマ画像510と、天球540上の天球画像とは北極星の方位550が一致するように、パノラマ画像510がマッピングされるパノラマ球を回転させて調整する。もっとも方向を気にしない場合は、位置合わせの処理は不要であるが、位置合わせをしない場合は、天球に描かれた太陽や月、星がパノラマ画像の撮影方向とは異なる方向に表れ、不自然になる。
【0095】
飛行船520と飛行機530はパノラマ画像に挿入するオブジェクトの例である。飛行機530は、天球540とパノラマ球500の間、言い換えればパノラマ球500の外部に配置されており、飛行船520は、パノラマ球500の内部に配置されている。パノラマ画像の遠景にオブジェクトを挿入したい場合は、パノラマ球500の外側に配置し、近景にオブジェクトを挿入したい場合は、パノラマ球500の内側に配置する。飛行船520と飛行機530は、それぞれの動きモデルにしたがって、天球540内を移動する。
【0096】
図8のフローチャートに戻り、マッピング処理部14は、マスク処理後のパノラマ画像510と天球540に描かれた天球画像とをパノラマ球500にマッピングする。また、マッピング処理部14は、飛行船520、飛行機530などのオブジェクトもパノラマ球500にマッピングする(S20)。
【0097】
パノラマ球500の中心、すなわち視点位置から見ると、パノラマ画像510の空領域512は透明に切り抜かれているため、空領域512には天球540の表面に描かれた天球画像が見える。パノラマ球500の外側にある飛行機530は空領域512を通して遠くに見えるが、パノラマ画像に写った建物に遮られるときは見えない。一方、パノラマ球500の内側にある飛行船520は近くに見え、場合によっては建物よりも手前に見えることもある。
【0098】
マッピング処理部14は、パノラマ球500の中心から見た画像を再現するべく、視点から遠い順にパノラマ球500に画像をマッピングして重ね描きする。まず、天球540に描かれた天球画像をパノラマ球500にマッピングし、その上に、パノラマ球500の外部に配置された飛行機530をパノラマ球500にマッピングする。次に、マスク処理後のパノラマ画像510をパノラマ球500にマッピングし、最後に、パノラマ球500の内部に配置された飛行船520をパノラマ球500にマッピングする。これにより、パノラマ画像510の透明の空領域512には天球画像が覗き見えるように貼り付けられ、パノラマ球500の外側の飛行機530は遠景に、パノラマ球500の内側の飛行船520は近景に貼り付けられる。
【0099】
図11Aは、図9Eのマスク処理後のパノラマ画像408の空領域に天球画像が貼り付けられた例を示す図である。図11Aのパノラマ画像450の空領域には、雲532、534を含む天球画像が貼り付けられており、遠景には飛行機530が、近景には建物の手間に飛行船520が挿入されている。
【0100】
図11Bは、別の天球画像の例として、図9Eのマスク処理後のパノラマ画像408の空領域に星空が貼り付けられた例を示す図である。図11Bのパノラマ画像452の空領域には、月や星を含む天球画像が貼り付けられている。パノラマ画像を表示する月日にしたがって天球540に描画される月の満ち欠けや星の見える方角を調整することで、リアリティのある夜空をパノラマ画像の空領域に見せることができる。
【0101】
本実施の形態では、パノラマ画像がマッピングされるパノラマ球500の外側に天球540を設けているため、天球540に描画される天球画像をパノラマ画像とは独立に変更して、パノラマ画像に合成することができる。
【0102】
ユーザは、たとえば、コントローラ102のR1/R2ボタン151、152を操作することにより、天球に描画される星座の運行を制御してもよい。たとえば、R1ボタン151を押すことにより、日時を先送りし、R2ボタン152を押すことにより、日時を逆戻りさせることで、異なる季節の星座を空領域に表示させることができる。
【0103】
図8のフローチャートに戻り、3次元画像生成部16は、マスク処理後のパノラマ画像510、天球540の画像、飛行船520や飛行機530などのオブジェクトがマッピングされた3次元パノラマ球を指定された視線方向に見たときの3次元パノラマ画像を生成し、表示制御部18は生成された3次元パノラマ画像を表示する(S22)。
【0104】
以上述べたように、本実施の形態のパノラマ画像表示装置によれば、パノラマ画像の空領域を切り抜いて別の天球画像に置き換えることができる。たとえば、雨模様のときに撮られたパノラマ画像であっても、空領域を切り抜いて、晴れた青空に置き換えたり、朝日の昇る空から夕日が沈む空に変えたりすることができ、撮影後のパノラマ画像に多様性を与えることができる。また、飛行船や人工衛星などの仮想的なオブジェクトとして挿入することで、撮影されたパノラマ画像に娯楽性を与えることもできる。本実施の形態は、仮想世界の情報と現実世界の情報を重ね合わせる、いわゆるAR(拡張現実;Augmented Reality)の技術分野で利用することができる。すなわち、現実世界であるパノラマ画像を基準として、仮想的に作られた星空などのパノラマ画像を自然に重ね合わせて、現実環境を仮想情報で拡張した仮想現実世界を作り出すことができる。
【0105】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0106】
上記の説明では、マスク処理されたパノラマ画像と天球画像を球面などの3次元パノラマ空間にマッピングし、指定された視線方向から3次元パノラマ空間を見た場合の3次元パノラマ画像を画面に表示したが、パノラマ画像のマスク領域に仮想画像を重ね合わせた画像を単に2次元表示するだけでもよい。この場合、マッピング処理部14および3次元画像生成部16の構成は不要であり、パノラマ画像表示装置100を簡素化できる。また、オフラインでパノラマ画像に仮想画像を合成するだけでなく、リアルタイムでパノラマ画像のマスク領域を仮想画像で置き換えた拡張現実画像をユーザの眼前に装着できる透過型のディスプレイなどの表示デバイスに表示してもよい。
【0107】
上記の実施の形態では、野外で撮影されたパノラマ画像の空領域をマスクすべき領域として抽出したが、たとえば、ドーム型屋根のスタジアムにおいて野球などのスポーツを撮影したパノラマ画像であれば、ドーム型屋根の領域をマスクすべき領域として抽出してもよい。ドーム型屋根の領域を切り抜いて天球画像を貼り付けることで、あたかも野外でなされた試合であるように見せることができる。ドーム型屋根の領域を切り抜くには、たとえば、カメラの所定の仰角以上で撮影された領域や所定の高度以上の領域をマスクすべき領域として抽出すればよい。また、色の変化が少ない、所定の面積をもつ領域をマスクすべき領域として抽出してもよい。たとえば、ビルの窓ガラスの領域をマスクして、窓の領域を切り抜いて、別の画像を貼り付けてもよい。誰もいないビルでも仮想的に人がいるように見せたり、窓から見える外の景色を変えたりすることができる。また、海や池、砂漠などの領域をマスクすべき領域として抽出してもよい。東京湾を南太平洋の画像に置き換えたり、砂漠を緑地の画像に置き換えることができる。
【0108】
パノラマ画像は図3のような全方位撮影システムで撮影されたものに限らず、魚眼レンズを用いて撮影された画像や、撮影方向を変えながら通常のデジタルカメラで撮影された複数の画像を合成した画像であってもよい。
【0109】
上記の実施の形態では、マスク処理後のパノラマ画像と天球画像を重ね合わせて表示する際、視点から遠い順に画像を3次元パノラマ球にマッピングして描画した。すなわち、3次元パノラマ球に天球画像をマッピングした後、マスク領域を透明に切り抜いたパノラマ画像を3次元パノラマ球に重ねてマッピングした。別のマッピング方法として、天球画像からマスクに対応する領域を切り出し、3次元パノラマ球にマッピングされたパノラマ画像のマスク領域の上に、マスクに対応する領域の天球画像を貼り付けてもよい。
【0110】
一般に、マスク領域の境界部分は、パノラマ画像と天球画像の合成により、画像の不連続性が生じ、不自然な印象を与える。そこで、マスク領域の画像に対してガウシアンフィルタを施して平滑化したり、マスク領域の境界付近では、パノラマ画像と天球画像をアルファブレンドすることで境界をぼやかしてもよい。
【0111】
パノラマ画像表示装置100の機能構成の内、主にパノラマ画像のマスク処理、パノラマ画像のマスク領域に天球画像や仮想画像を重ね合わせる処理に係る構成をサーバに実装し、主に天球画像や仮想画像が重ね合わされたパノラマ画像を閲覧する処理に係る構成をクライアントに実装することで、パノラマ画像表示装置100を、ネットワークを介したサーバ−クライアントシステムとして実現することもできる。サーバが、パノラマ画像のマスク領域を抽出してマスク処理を施し、マスク領域に天球画像や仮想画像を重ね合わせる処理を行い、クライアントには、天球画像や仮想画像が重ね合わされたパノラマ画像を閲覧するインタフェースが提供されてもよい。クライアントの表示画面においてユーザがパノラマ画像の特定の領域をマスクすべき領域として指定するインタフェースが設けられてもよい。また、クライアントが、パノラマ画像と天球画像のデータをサーバから受信し、クライアント側で、天球画像とパノラマ画像の位置合わせを適宜調整して、天球画像をパノラマ画像に重ね合わせる処理を行ってもよい。これにより、ユーザ側で自由に天球画像を回転させてパノラマ画像に重ね合わせることができる。
【符号の説明】
【0112】
10 パノラマ画像取得部、 11 マスク領域抽出部、 12 マスク処理部、 14 マッピング処理部、 16 3次元画像生成部、 18 表示制御部、 20 位置合わせ部、 22 オブジェクト挿入部、 24 パノラマ画像・付加データ記憶部、 26 天球画像データ記憶部、 28 オブジェクトデータ記憶部、 30 視点位置設定部、 32 視線方向設定部、 34 高度設定部、 36 日時設定部、 40 ユーザインタフェース部、 100 パノラマ画像表示装置、 200 カメラ。
【技術分野】
【0001】
この発明は、パノラマ画像を表示する装置および方法に関する。
【背景技術】
【0002】
デジタルスチルカメラやデジタルビデオカメラが普及しており、撮影した静止画や動画をコンピュータに保存して閲覧、加工したり、ゲーム機やテレビジョン(TV)システムの画面に表示する機会が多くなっている。また、撮影した動画をインターネットの投稿サイトにアップロードし、他のユーザと動画を共有することも盛んである。
【0003】
デジタルカメラの中には、パノラマ画像の撮影が可能なものもあり、手軽に視野角の広いパノラマ画像を撮影することができるようになってきた。また、撮影方向を変えながら、デジタルカメラの撮影した複数の画像を貼り合わせることでパノラマ画像を生成するソフトウエアツールもよく利用されている。
【0004】
ユーザが撮影したこのようなパノラマ画像の投稿を受け付け、インターネットで公開する360citiesというサイト(http;//www.360cities.net)もあり、世界中のユーザが投稿したパノラマ画像を閲覧することができる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
パノラマ画像は撮影場所から全方位を見た画像を撮影するものであるから、野外でパノラマ画像を撮影すると、パノラマ画像の天井部分には、撮影者の頭上に広々と広がる空が写し出させているだけであることが多い。パノラマ画像の大部分を占める空の領域に何らかの視覚効果を与える画像処理を施せば、パノラマ画像に新鮮味を与えたり、多様性をもたらすことが期待できる。また、撮影されたパノラマ画像に別のオブジェクトを挿入して描画すれば、仮想的に実在していない物体が写り込んだパノラマ画像を生成することができ、意外性がもたらされたり、楽しさが加わることも期待できる。
【0006】
本発明はこうした課題に鑑みてなされたものであり、その目的は、パノラマ画像を加工して表示することのできる技術を提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明のある態様のパノラマ画像表示装置は、撮影方向に関する情報が関連付けられたパノラマ画像および方向に関する情報が関連付けられた天球画像を保持する記憶部と、前記パノラマ画像内のマスクすべき領域を抽出するマスク領域抽出部と、前記パノラマ画像内の前記マスクすべき領域をマスクしたパノラマ画像を生成するマスク処理部と、前記天球画像の方向を前記パノラマ画像の撮影方向に合わせる位置合わせ部と、前記位置合わせ部による位置合わせの後、マスク処理されたパノラマ画像および前記天球画像をテクスチャとして3次元パノラマ空間にマッピングするマッピング処理部と、前記パノラマ画像の撮影場所を視点位置として、前記3次元パノラマ空間を指定された視線方向に見たときの3次元パノラマ画像を生成する3次元画像生成部と、前記3次元パノラマ画像を画面に表示させる表示制御部とを含む。
【0008】
本発明の別の態様も、パノラマ画像表示装置である。この装置は、撮影方向に関する情報が関連付けられたパノラマ画像および方向に関する情報が関連付けられた仮想画像を保持する記憶部と、前記パノラマ画像内のマスクすべき領域を抽出するマスク領域抽出部と、前記パノラマ画像内の前記マスクすべき領域をマスクしたパノラマ画像を生成するマスク処理部と、前記仮想画像の方向を前記パノラマ画像の撮影方向に合わせる位置合わせ部と、前記位置合わせ部による位置合わせの後、マスク処理されたパノラマ画像に前記仮想画像を重ね合わせた拡張現実画像を画面に表示させる表示制御部とを含む。
【0009】
本発明の別の態様は、パノラマ画像表示方法である。この方法は、撮影方向に関する情報が関連付けられたパノラマ画像および方向に関する情報が関連付けられた天球画像が保持された記憶デバイスから、プロセッサが表示対象のパノラマ画像と天球画像を読み出すステップと、プロセッサが前記パノラマ画像に対してマスクすべき領域を指定するステップと、プロセッサが前記天球画像の方向を前記パノラマ画像の撮影方向に合わせるステップと、位置合わせの後、プロセッサが前記パノラマ画像のマスクすべき領域に前記天球画像を重ね合わせて描画するステップとを含む。
【0010】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0011】
本発明によれば、パノラマ画像を効果的に加工して表示することができる。
【図面の簡単な説明】
【0012】
【図1】実施の形態に係るパノラマ画像表示装置の構成図である。
【図2】図1のパノラマ画像表示装置に接続される入力デバイスの一例であるコントローラの構成図である。
【図3】図3(a)〜(d)は、パノラマ画像を撮影するために用いられる全方位撮影システムの機構と撮影方向を説明する図である。
【図4】図4(a)はカメラの方位角θ、図4(b)はカメラの仰角φを説明する図である。
【図5】図5(a)〜(c)は、カメラの初期位置が方位角θの方向にある場合に撮影されるパノラマ画像を説明する図である。
【図6】図6(a)〜(c)は、カメラの仰角φ=60°の場合に撮影されるパノラマ画像を説明する図である。
【図7A】複数の画像をつなぎ合わせてパノラマ画像を作成する方法を説明する図である。
【図7B】複数の画像をつなぎ合わせてパノラマ画像を作成する方法を説明する図である。
【図8】図1のパノラマ画像表示装置によるパノラマ画像生成手順を説明するフローチャートである。
【図9A】撮影されたパノラマ画像の例を示す図である。
【図9B】セグメンテーションにより、領域分割されたパノラマ画像を示す図である。
【図9C】フィルタリング処理されたパノラマ画像を示す図である。
【図9D】パノラマ画像内の空領域を指定するマスクを示す図である。
【図9E】空領域がマスク処理されたパノラマ画像を示す図である。
【図10】パノラマ画像がマッピングされる3次元パノラマ空間と天球の関係を説明する図である。
【図11A】図9Eのマスク処理後のパノラマ画像の空領域に天球画像が貼り付けられた例を示す図である。
【図11B】図9Eのマスク処理後のパノラマ画像の空領域に星空が貼り付けられ例を示す図である。
【発明を実施するための形態】
【0013】
本発明の実施の形態の概要を説明する。パノラマ画像内の空が写された領域を抽出し、パノラマ画像の空領域を透明するマスク処理を施す。パノラマ画像がマッピングされるパノラマ球などの3次元パノラマ空間の外側に天球を想定し、空の画像などを天球画像として用意しておき、パノラマ画像がマッピングされる3次元パノラマ空間にマッピングする。これにより、パノラマ画像の透明に切り抜かれた空領域に天球画像が貼り付けられた3次元パノラマ画像が生成される。天球内にパノラマ画像には撮影されていない別のオブジェクトを配置し、オブジェクトも合わせて3次元パノラマ空間にマッピングすれば、生成される3次元パノラマ画像にオブジェクトを挿入することもできる。なお、天球を複数設けて複数の天球画像を3次元パノラマ空間にマッピングしてもよい。たとえば、雲の天球と空の天球を設け、雲の天球には雲の画像を、空の天球には太陽、月、星などの天体の画像を用意してもよい。
【0014】
図1は、実施の形態に係るパノラマ画像表示装置100の構成図である。図1に示すパノラマ画像表示装置100の機能構成は、一例として、パーソナルコンピュータ、ゲーム機、携帯機器、携帯端末などにハードウェア、ソフトウェアまたはその組み合わせによって実装することができる。これらの機能構成の一部がサーバに実装され、一部がクライアントに実装され、パノラマ画像表示装置100は、ネットワークを介してサーバ−クライアントシステムとして実現されてもよい。
【0015】
パノラマ画像・付加データ記憶部24は、撮影場所に関する情報と撮影方位に関する情報が関連付けられたパノラマ画像を保持する。撮影場所や撮影方位に関する情報などの付加データはパノラマ画像のデータファイルに直接付加されてもよく、付加データはパノラマ画像とは別のファイルとして管理されてもよい。
【0016】
撮影場所に関する情報は、たとえば、GPS(Global Positioning System)により与えられる緯度・経度情報を含む。撮影方位に関する情報は、たとえば、方位センサなどから得られるパノラマ画像の中心点の方位角の情報を含み、それ以外に撮影時のカメラの仰角やロール角の情報を含んでもよい。
【0017】
撮影方位に関する情報としてパノラマ画像の中心点の方位角が与えられれば、カメラを左右方向にパンした角度にもとづいて、パノラマ画像の任意の点の方位を計算上、求めることができる。パノラマ画像の中心点の方位角とパン角にもとづいて計算された、パノラマ画像の真北、真南、真東、真西の方位にあるピクセルの座標値を撮影方位に関する情報としてパノラマ画像にもたせてもよい。
【0018】
パノラマ画像取得部10は、表示対象のパノラマ画像をパノラマ画像・付加データ記憶部24から取得する。表示対象のパノラマ画像は、たとえば、ユーザが地図などで撮影場所を指定することで特定される。
【0019】
マスク領域抽出部11は、表示対象のパノラマ画像内のマスクすべき領域を抽出する。マスクすべき領域は、たとえば、パノラマ画像に写された空の領域である。空の領域は、パノラマ画像の色情報をもとに判定することができる。パノラマ画像では撮影者の頭上は空が広がっていることが多いため、空領域は、カメラの仰角の大きいところで連続した広がりのある領域として検出されることが多い。
【0020】
パノラマ画像には撮影時のカメラの仰角の情報が付されているので、マスク領域抽出部11は、カメラの仰角の情報をもとにパノラマ画像の地平線の位置を判定し、パノラマ画像の地平線よりも上側の領域内で空の領域を抽出してもよい。あるいは、カメラの仰角が所定の閾値よりも大きい領域は、確実に地平線よりも上側の領域であるから、その領域内で空の領域を抽出してもよい。これにより、地平線よりも下側の領域で空に似た色の領域があっても、空領域と混同して抽出するエラーを回避することができる。
【0021】
マスク処理部12は、マスク領域抽出部11により抽出されたマスクすべき領域をマスクしたパノラマ画像を生成する。マスク領域抽出部11が空領域をマスクすべき領域として抽出した場合は、抽出された空領域をマスクとしてパノラマ画像にマスク処理を施して、空領域をマスクしたパノラマ画像を生成する。パノラマ画像のマスク処理は、たとえば、元のパノラマ画像からマスクで指定される領域を透明にするか、その領域をクリッピングした画像を生成することによってなされる。マスク処理には、マスク領域の画素値をクリアする2値マスクに限らず、マスク領域の画素値をアルファブレンドする多値マスクを利用してもよい。マスク処理部12は、マスク処理後のパノラマ画像をパノラマ画像・付加データ記憶部24に保存する。
【0022】
天球画像データ記憶部26には、マスク処理後のパノラマ画像に重ね合わせる天球の画像データが保持されている。天球は、パノラマ画像がマッピングされる3次元パノラマ空間よりも外側にあり、天球の表面に設定された天空の画像が天球画像である。さまざまな地点から見た天球画像が視点の緯度経度に対応づけて天球画像データ記憶部26に記憶されている。天球画像には、たとえば、太陽、月、星などの天体や雲などが含まれ、天体の運行モデルや気象モデルにもとづいて天体や雲が移動してもよい。また、天球画像は、実写にもとづいて生成されたものであってもよく、コンピュータグラフィックスを用いて生成されたものであってもよい。
【0023】
位置合わせ部20は、天球画像の方向をマスク処理後のパノラマ画像の撮影方向に合わせる。具体的には、位置合わせ部20は、パノラマ画像の撮影場所の緯度経度を中心とする天球の中心を、パノラマ画像がマッピングされる3次元パノラマ空間の中心に合わせ、たとえば北極星の方角を基準として、パノラマ画像のパン角およびチルト角で決まる撮影方向に合うように天球画像の回転角を計算して天球画像を回転させる。
【0024】
オブジェクトデータ記憶部28には、パノラマ画像に挿入すべきオブジェクトの3次元データが保持されている。所定の緯度、経度、高度に静止している静的オブジェクトの他、動きモデルにもとづいて3次元空間を移動する動的オブジェクトがある。
【0025】
オブジェクト挿入部22は、パノラマ画像に挿入すべきオブジェクトを天球内の指定された空間位置に配置する。オブジェクトは、天球とパノラマ画像がマッピングされる3次元パノラマ空間の間、すなわち3次元パノラマ空間の外側に配置してもよく、3次元パノラマ空間の内部に配置してもよい。オブジェクト挿入部22によるオブジェクトの挿入はオプションである。
【0026】
位置合わせ部20によるパノラマ画像と天球画像の位置合わせの後、マッピング処理部14は、マスク処理後のパノラマ画像および天球画像をテクスチャとして3次元パノラマ空間にマッピングする処理を行う。
【0027】
全天球パノラマ画像の場合は、3次元パノラマ空間として球を想定し、球面マッピングにより、パノラマ画像を球面にテクスチャマッピングする。あるいは、3次元パノラマ空間として立方体を想定し、キューブマッピングにより、パノラマ画像を立方体表面にテクスチャマッピングしてもよい。また、パノラマ画像がチルト方向の成分をもたず、パン方向にのみ広がる画像である場合、3次元パノラマ空間として円柱を想定し、パノラマ画像を円柱面にテクスチャマッピングしてもよい。パノラマ画像がパン方向の成分をもたず、チルト方向にのみ広がる画像である場合も同様である。
【0028】
マッピング処理部14は、天球画像を3次元パノラマ空間にマッピングした後に、マスク処理後のパノラマ画像を3次元パノラマ空間に重ねてマッピングする。これにより、パノラマ画像内のマスク領域に天球画像の一部を貼り付けた画像が3次元パノラマ空間上に生成される。
【0029】
オブジェクト挿入部22によりオブジェクトが3次元パノラマ空間の内側または外側に配置されている場合は、マッピング処理部14は、配置されたオブジェクトも3次元パノラマ空間にマッピングする。
【0030】
マッピング処理部14は、オブジェクトが3次元パノラマ空間の外側に配置されている場合は、オブジェクトを3次元パノラマ空間にマッピングした後に、マスク処理後のパノラマ画像を3次元パノラマ空間に重ねてマッピングする。これにより、オブジェクトがパノラマ画像の空領域に貼り付けられ、オブジェクトがパノラマ画像に写された建物などと重なる場合は、建物で隠れるように描画される。
【0031】
マッピング処理部14は、オブジェクトが3次元パノラマ空間の内側に配置されている場合は、マスク処理後のパノラマ画像を3次元パノラマ空間にマッピングした後に、オブジェクトを3次元パノラマ空間に重ねてマッピングする。これにより、オブジェクトがパノラマ画像に重ね合わされ、オブジェクトがパノラマ画像に写された建物などと重なる場合は、建物の手前にオブジェクトが描画される。
【0032】
3次元画像生成部16は、マッピング処理部14によりパノラマ画像、天球画像およびオブジェクトがマッピングされた3次元パノラマ空間内を指定された視線方向に見たときの3次元パノラマ画像を生成する。3次元パノラマ空間が球の場合、視点は球の中心に置かれ、立方体の場合、視点は立方体内部の中心に置かれ、円柱の場合、視点は円柱の中心軸上に置かれる。視点は表示対象のパノラマ画像を撮影した場所であり、視線方向は、その撮影場所から周囲を見る方向であり、方位角と仰角で特定される。3次元画像生成部16は、方位角と仰角で特定される視線方向で3次元パノラマ空間を見たときの3次元画像を生成する。
【0033】
表示制御部18は、生成された3次元パノラマ画像をディスプレイ装置の画面に表示させる。
【0034】
ユーザインタフェース部40は、ディスプレイの画面に表示されるグラフィックスに対して、ユーザが入力デバイスを用いて操作することを可能にするグラフィカルユーザインタフェースである。ユーザインタフェース部40は、画面に表示された地図や3次元パノラマ画像に対するゲーム機のコントローラ、マウス、キーボードなどの入力デバイスからユーザの指示を受け付ける。図2は、入力デバイスの一例であるコントローラ102を示し、その構成の詳細については後述する。
【0035】
ユーザインタフェース部40は、指定されたパノラマ画像をパノラマ画像・付加データ記憶部24から取得するように、パノラマ画像取得部10に指示する。
【0036】
ユーザは、たとえば、コントローラ102のアナログスティック118または方向キー群116などを操作することにより、3次元パノラマ空間を見る視線方向を変更する指示を入力することができる。ユーザインタフェース部40の視線方向設定部32は、ユーザが指示する視線方向を3次元画像生成部16に与える。3次元画像生成部16は、3次元パノラマ空間を指定された視線方向から見た場合の画像を生成する。
【0037】
画角設定部31は、ユーザが表示されたパノラマ画像に対してズーム操作をしたときの画角を設定し、パノラマ画像取得部10と3次元画像生成部16に設定された画角の情報を与える。画角の異なるパノラマ画像がパノラマ画像・付加データ記憶部24に記憶されている場合、パノラマ画像取得部10は、設定された画角にもっとも近い画角のパノラマ画像を読み出し、表示対象のパノラマ画像を切り替える。3次元画像生成部16は、設定された画角に応じて3次元パノラマ画像を拡大・縮小することで、ズームイン・ズームアウトの視覚効果を実現する。
【0038】
パノラマ画像には、撮影高度に関する情報も付与されており、パノラマ画像・付加データ記憶部24は、同一の撮影位置に対して異なる高度で撮影されたパノラマ画像を保持してもよい。その場合、ユーザは、たとえば、コントローラ102の筐体前面の左側にあるL1/L2ボタン161、162を操作することにより、高度を変更する指示を入力することができる。L1ボタン161を押すことにより、高度を上げる指示を、L2ボタン162を押すことにより、高度を下げる指示を与えることができる。
【0039】
表示制御部18は、現在表示されているパノラマ画像について、同一撮影場所で異なる高度で撮影したパノラマ画像があることを、たとえば、画面の上部、下部に小さな矢印を示すことでユーザに知らせてもよい。画面の上部に上向きの矢印があれば、現在よりも撮影高度の高い画像があることを示し、画面の下部に下向きの矢印があれば、現在よりも撮影高度の低い画像があることを示す。
【0040】
ユーザインタフェース部40の高度設定部34は、ユーザから高度を変更する指示を受け取ると、同一撮影位置であるが、指定された高度に対応するパノラマ画像をパノラマ画像・付加データ記憶部24から取得するように、パノラマ画像取得部10に指示する。パノラマ画像取得部10は、L1ボタン161が押された場合は、現在表示されているパノラマ画像よりも撮影高度のより高いパノラマ画像を取得し、L2ボタン162が押された場合は、撮影高度のより低いパノラマ画像を取得する。
【0041】
表示制御部18は、撮影高度の異なるパノラマ画像に切り替えて表示する際、たとえば、ユーザがエレベータで上下しているかのような感覚を与えるために、特別なエフェクトを画像に施してもよい。たとえば、より高度の高いパノラマ画像に切り替える場合、現在表示されているパノラマ画像を下にスクロールさせて、より高度の高いパノラマ画像が上から降りてくるように表示させることで、ユーザはあたかも階上に行ったかのような感覚をもつことができる。
【0042】
パノラマ画像には、撮影日時に関する情報も付与されており、パノラマ画像・付加データ記憶部24は、同一の撮影位置に対して撮影日時の異なるパノラマ画像を保持してもよい。その場合、ユーザは、たとえば、コントローラ102の筐体前面の右側にあるR1/R2ボタン151、152を操作することにより、撮影日時を変更する指示を入力することができる。R1ボタン151を押すことにより、遅い日時にシフトする指示を、R2ボタン152を押すことにより、早い日時にシフトする指示を与えることができる。
【0043】
表示制御部18は、現在表示されているパノラマ画像について、異なる日時に撮影したパノラマ画像があることを、たとえば、時計やカレンダーのアイコンを画面の隅に示すことでユーザに知らせてもよい。朝、昼、夜など時間帯の異なるパノラマ画像が存在するときは時計のアイコンを、春、夏、秋、冬など季節の異なるパノラマ画像が存在するときはカレンダーのアイコンを表示する。
【0044】
ユーザインタフェース部40の日時設定部36は、ユーザから日時を変更する指示を受け取った場合、同一撮影位置であるが、指定された日時に対応するパノラマ画像をパノラマ画像・付加データ記憶部24から取得するように、パノラマ画像取得部10に指示する。パノラマ画像取得部10は、R1ボタン151が押された場合は、現在表示されているパノラマ画像よりも撮影日時のより遅いパノラマ画像を取得し、R2ボタン152が押された場合は、撮影日時のより早いパノラマ画像を取得する。
【0045】
これにより、たとえば、同一撮影場所であっても、朝の時間帯に撮影されたパノラマ画像から夜の時間帯にパノラマ画像に切り替えたり、春に撮影されたパノラマ画像から秋に撮影されたパノラマ画像に切り替えるなど、時間帯や季節などが異なるパノラマ画像に切り替えることができる。表示制御部18は、パノラマ画像を切り替えるとき、フェイドイン・フェイドアウトなどのエフェクトを画像に施してもよい。
【0046】
視点位置設定部30は、パノラマ画像の撮影場所を視点位置に設定し、視点位置を3次元画像生成部16に通知する。視線方向設定部32は、指定された視線方向を3次元画像生成部16に与える。
【0047】
図2は、図1のパノラマ画像表示装置100に接続される入力デバイスの一例であるコントローラ102の構成図である。パノラマ画像表示装置100は、一例としてゲーム機であってもよい。
【0048】
コントローラ102は、パノラマ画像表示装置100に対する操作入力を行うための複数のボタンやキーを有する。ユーザがコントローラ102のボタンやキーを操作すると、その操作入力が無線または有線によりパノラマ画像表示装置100に送信される。
【0049】
コントローラ102の筐体上面122には、方向キー群116、アナログスティック118、操作ボタン群120が設けられている。方向キー群116は、「上」、「下」、「左」、「右」方向指示キーを含む。操作ボタン群120は、○ボタン124、×ボタン126、□ボタン128、および△ボタン130を含む。
【0050】
ユーザは左手で左側把持部134bを把持し、右手で右側把持部134aを把持して、筐体上面122上の方向キー群116、アナログスティック118、および操作ボタン群120を操作する。
【0051】
さらに、コントローラ102の筐体前面には、右側操作部150と左側操作部160が設けられている。右側操作部150はR1ボタン151とR2ボタン152を含み、左側操作部160はL1ボタン161とL2ボタン162を含む。
【0052】
ユーザは、方向キー群116を操作することにより、画面上の表示されたポインタを上下左右の各方向に移動させることができる。たとえば、パノラマ画像内に表示された複数のマーカーのいずれかを選択する際、方向キー群116を操作して画面上で複数のマーカー間を移動することができる。ユーザは所望のマーカー上にポインタが来たときに、○ボタン124を押すことでそのマーカーを選択することができる。
【0053】
操作ボタン群120の各ボタンには、パノラマ画像表示アプリケーションプログラムによりそれぞれ異なる機能が割り付けられてもよい。たとえば、△ボタン130にはメニューの表示を指定する機能、×ボタン126には、選択した項目の取り消し等を指定する機能、○ボタン124には選択した項目の決定等を指定する機能、□ボタン128には、目次等の表示/非表示を指定する機能がそれぞれ割り付けられる。
【0054】
アナログスティック118は、ユーザによって傾倒操作されたとき、アナログ値を出力する手段を備える。コントローラ102は、アナログスティック118を傾倒したときの方向と量に応じたアナログ出力信号をパノラマ画像表示装置100に送る。たとえば、ユーザは、アナログスティック118を所望の方向に傾倒することで、ディスプレイに表示された3次元パノラマ画像内で視点を所望の方向に移動させることができる。
【0055】
筐体上面122には、さらにLED付きボタン136、セレクトボタン140、スタートボタン138が設けられる。LED付きボタン136は、たとえば、ディスプレイにメニュー画面を表示させるためのボタンとして利用される。スタートボタン138は、パノラマ画像表示アプリケーションの起動、パノラマ画像の再生開始、一時停止などをユーザが指示するためのボタンである。セレクトボタン140は、ディスプレイに表示されたメニュー表示の選択等をユーザが指示するためのボタンである。
【0056】
図3(a)〜(d)は、パノラマ画像を撮影するために用いられる全方位撮影システム230の機構と撮影方向を説明する図である。
【0057】
図3(d)に示すように、全方位撮影システム230において、カメラ200は操作盤210に固定されており、操作盤210をZ軸周りに回転させることでカメラのパン角を変え、X軸周りに回転させることでカメラのチルト角を変え、Y軸周りに回転させることでカメラのロール角を変えることができる。ここでZ軸は鉛直軸(重力方向軸)である。
【0058】
図3(a)は、操作盤210に設置されたカメラ200の上面図であり、操作盤の初期位置(Y軸方向)をパン角0°とし、Z軸の周りに−180°〜+180°の範囲でパン角を変えることができる。
【0059】
図3(b)は、操作盤210に設置されたカメラ200の正面図であり、操作盤210が水平に置かれた状態をロール角0°とし、Y軸の周りに−180°〜+180°の範囲でロール角を変えることができる。
【0060】
図3(c)は、操作盤210に設置されたカメラ200の側面図であり、操作盤210が水平に置かれた状態をチルト角0°とし、X軸の周りに−90°〜+90°の範囲でチルト角を変えることができる。
【0061】
図3(d)の全方位撮影システム230により撮影されるパノラマ画像に撮影方位に関する情報を付与するためには、カメラ200が撮影時にどの方位に向いていたかを記録しておく必要がある。そのために、全方位撮影システム230は、方位を測定するための方位センサや傾斜角を測定するための加速度センサなどを備える。さらに、撮影位置や撮影時間を測定するためにGPSセンサなども備える。
【0062】
図4(a)はカメラ200の方位角θ、図4(b)はカメラ200の仰角φを説明する図である。図4(a)はカメラ200の上面図であり、カメラ200は撮影の初期位置において、真北から東へ方位角θだけずれた方向220を向いており、この方向がパン角0°に相当する。すなわちパン角の基準方向220の方位角はθである。パノラマ画像を撮影するとき、この方位角θの基準方向220に対して−180°〜+180°の範囲でパン角を変えながら、被写体をパノラマ撮影する。
【0063】
図4(b)はカメラ200の側面図であり、仰角φは、X軸周りにカメラ200を回転させた場合に、チルト0°の方向、すなわちY軸方向に対して上方向を正と定義する角度である。通常、カメラ200を水平ポジションに設定して撮影するので仰角φ=0°であるが、全天球のパノラマ画像を撮影するには、カメラをチルトさせて仰角φを変えて被写体を撮影する必要がある。
【0064】
図5(a)〜(c)は、カメラ200の初期位置が方位角θの方向にある場合に撮影されるパノラマ画像を説明する図である。
【0065】
図5(a)の上面図に示すように、初期位置においてカメラ200は方位角θの方向220を向いており、図5(b)の側面図に示すように、カメラ200の仰角φ=0°である。仰角φ=0°に保ちながら、基準方向220に対してカメラ200のパン角を−180°から+180°の範囲で変化させながら、仰角φ=0°における全方位のパノラマ画像を撮影する。図5(c)は、このようにして撮影されたパノラマ画像300を示す。パノラマ画像300の中心はパン角0°であり、パノラマ画像300の左半分はパン角を0°から−180°まで変えて撮影された画像であり、右半分はパン角を0°から180°まで変えて撮影された画像である。
【0066】
パノラマ画像300のパン角0°の中心位置は、真北から方位角θだけ東にずれているから、北(N)、南(S)、東(E)、西(W)の位置は点線で示す箇所になる。パノラマ画像300は、撮影方位に関する情報として、パン角0°の中心位置の方位角θをもってさえいれば、北(N)、南(S)、東(E)、西(W)のピクセル位置は、方位角θのずれを考慮して計算で求めることができる。あるいは、方位角θの代わりに、北(N)、南(S)、東(E)、西(W)のピクセル位置の座標値を撮影方位に関する情報としてもうようにしてもよい。
【0067】
全天球のパノラマ画像を得るためには、カメラ200の仰角を変えて撮影する必要がある。たとえば、カメラ200の画角が60°であるとすると、原理的にはカメラ200を上下に±60°チルトさせた上で、パン角を−180°〜180°の範囲で変えながら同様の撮影を行えば、全天球のパノラマ画像を得ることができる。
【0068】
図6(a)〜(c)は、カメラ200の仰角φ=60°の場合に撮影されるパノラマ画像を説明する図である。図6(a)の上面図に示すように、初期位置においてカメラ200は方位角θの方向220を向いており、図6(b)の側面図に示すように、カメラ200の仰角φ=60°である。仰角φ=60°に保ちながら、基準方向220に対してカメラ200のパン角を−180°から+180°の範囲で変化させながら、図6(c)に示すような、仰角φ=60°におけるパノラマ画像302を撮影する。
【0069】
同様にして、カメラ200の仰角をφ=−60°に保ちながら、パン角を−180°から+180°の範囲で変化させながら、仰角φ=−60°におけるパノラマ画像を撮影する。仰角φ=0°、60°、−60°のパノラマ画像を組み合わせれば、全天球パノラマ画像が得られる。もっとも、実装上は、画角の境界部分で画像を貼り合わせる際にレンズの歪みから生じる不整合を補正するために、境界付近をだぶらせて撮影する方法を採ることが多い。
【0070】
このようにして得られた全天球パノラマ画像には、方位角および仰角の情報が付与されており、その情報にもとづいてパノラマ画像の任意のピクセルについて方位と仰角を特定可能である。また、パノラマ画像には撮影場所の位置情報としてGPSにより測定された緯度・経度情報も付与される。パノラマ画像に付与すべき付加情報は、一例として、Exif(Exchangeable Image File Format)と呼ばれる画像ファイルの規格にしたがって記録してもよい。撮影場所の地名はファイル名の一部に記録し、撮影日時、撮影場所の緯度・経度、高度、方位角などをExif形式のデータとして記録することができる。仰角はExif形式では定義されていないが、拡張データとして記録する。
【0071】
図7Aおよび図7Bは、複数の画像をつなぎ合わせてパノラマ画像を作成する方法を説明する図である。
【0072】
図7Aの例では、カメラ200をチルト(またはパン)させながら撮影された7枚の画像341〜347を円筒にマッピングした後、つなぎ合わせて円筒状の画像340を作成する。画像をつなぎ合わせるとき、画像の境界付近をオーバーラップさせる。
【0073】
図7Bに示すように、カメラ200をパン(またはチルト)させて撮影することで、図7Aで示した円筒状の画像がパン(またはチルト)方向に複数得られる。これらの円筒状の画像340a〜340fを画像の境界付近をオーバーラップさせて合成することで、全方位のパノラマ画像360が最終的に得られる。
【0074】
図8は、パノラマ画像表示装置100によるパノラマ画像生成手順を説明するフローチャートである。図9A〜図9E、図10、図11Aおよび図11Bを参照しながら、図8のパノラマ画像生成手順の各ステップを説明する。図8に示すフローチャートにおいては、各部の処理手順を、ステップを意味するS(Stepの頭文字)と数字との組み合わせによって表示する。
【0075】
パノラマ画像取得部10は、撮影されたパノラマ画像400とそれに付加された撮影場所および撮影方位に関する情報をパノラマ画像・付加データ記憶部24から取得する(S10)。
【0076】
図9Aは、撮影されたパノラマ画像400の例を示す図である。パノラマ画像の中央には建物が写っており、パノラマ画像の下側には地面が写っている。パノラマ画像の上側には空410が写っており、空410には雲の他、太陽430が写っている。
【0077】
マスク領域抽出部11は、パノラマ画像400の空領域をマスクすべき領域として抽出する(S12)。パノラマ画像から空領域を抽出するために、マスク領域抽出部11は、一例として、セグメンテーションと呼ばれる手法を用いて、パノラマ画像をセグメント化し、意味のある領域に分割する。セグメンテーションとは、画像認識でしばしば用いられる手法の一つであり、画像中の対象物に対応する領域を検出して、画像を分割することである。セグメンテーションにより、画像は、空、建物、地面、人といった対象物毎の領域に分割される。
【0078】
セグメンテーションには、一般にクラスタリング手法が用いられる。画像に写された対象物に対応する画素は色や輝度などにおいて類似する特徴を有することから、画素をクラスタリングすることで、対象物に対応する領域に画像をセグメント化することができる。画素のクラスタリングの正解を教師データとして与える教師ありクラスタリングを用いてもよい。本実施の形態では、ユーザがパノラマ画像において空領域に属する画素をいくつか指定することで教師データを与える。
【0079】
図9Bは、セグメンテーションにより、領域分割されたパノラマ画像402を示す図である。セグメンテーションによって、パノラマ画像は、空の領域、建物の領域、地面の領域などにセグメント化されていることがわかる。
【0080】
図9Aのパノラマ画像400の空領域410について見れば、セグメンテーションにより、図9Bに示すように、主に符号411〜415で示す5つの領域に分割されている。元のパノラマ画像400には太陽430が写り込んでいたため、符号411〜415の順に青から白に段階的に変化する5つの領域として検出されており、空領域を一つの領域として検出することはできていない。また、符号411で示す領域の中には、雲に相当する領域が別のセグメントとして抽出されており、空のセグメント化は完全ではない。
【0081】
しかしながら、このような不完全なセグメンテーション結果に対してでも、空の色を指定し、各領域の画素の色と指定された空の色の絶対差分が所定の閾値未満であれば、空領域であると判定することで、5つの領域の内、たとえば、符号411、412、413の3領域をまとめて一つの空領域として検出することができる。また、手作業によって、符号411で示す領域内の雲に相当する領域を消すこともできる。
【0082】
一般に、セグメンテーションは、時間のかかる処理であるため、記録装置に保存されたパノラマ画像に対してアイドル時間を利用して処理を実行できる場合には適用できるが、撮影されたパノラマ画像に対してリアルタイムで処理を実行しなければならない場合にはあまり適していない。そこで、マスク領域抽出部11は、セグメンテーションに代わる別の方法として、双方向フィルタ(bilateral filter)と呼ばれるフィルタリング処理を施して、空領域を検出してもよい。
【0083】
図9Cは、フィルタリング処理されたパノラマ画像404を示す図である。図9Aのパノラマ画像400に対して、画素値を平坦化し、エッジを強調する双方向フィルタをかけることで、元のパノラマ画像400の空領域410は、図9Cに示すように、空のグラデーションや雲が消え、符号421で示すような一つの領域として検出される。太陽430が写り込んだ領域は符号422、423のようにグラデーションをもつ別の領域として抽出されている。
【0084】
マスク領域抽出部11は、フィルタリング処理後のパノラマ画像404の画素の色と空の色の絶対差分が所定の閾値以下である場合に、その画素を空であると判定することで、パノラマ画像404から空領域を抽出する。空の色は、ユーザが指定したり、撮影時の天候や季節などに応じてシステムが自動的に設定してもよい。
【0085】
しかし、この判定では、空に近い色であれば、空以外の対象物の画素も空領域として選択されるおそれがある。そこで、マスク領域抽出部11は、パノラマ画像を撮影したときのカメラの仰角の情報を用いて、パノラマ画像の地平線の位置を検出し、地平線よりも下側で、指定された空の色に近い画素があっても、空領域として検出しないようにする。言い換えれば、カメラの仰角がある閾値以上の領域内でのみ、空領域の検出を行うようにする。これにより、たとえば、パノラマ画像に海や池、プールなどが写り込んでいたとしても、地平線よりも下にあるため、誤って空と判定するエラーを回避することができる。
【0086】
また、パノラマ画像では撮影者の頭上に広々とした空が撮影されることが多く、空領域は一定の広さをもった連続した領域になるのが普通である。したがって、パノラマ画像の空領域は連続しているという知識を用いれば、空と誤判定される領域を少なくすることができる。
【0087】
図9Cの例では、マスク領域抽出部11は、フィルタリング処理後のパノラマ画像404から、太陽430に対応する領域422、423も含めて、符号421、422、423で示す領域を空領域として抽出する。
【0088】
図9Dは、パノラマ画像404内の空領域を指定するマスク440を示す図である。マスク領域抽出部11は、フィルタリング処理後のパノラマ画像404から抽出された空領域をマスク440として設定し、マスク処理部12に与える。
【0089】
図8のフローチャートに戻り、マスク処理部12は、マスク領域抽出部11により設定されたマスク440を用いてパノラマ画像400にマスク処理を施して、空領域を切り抜く(S14)。
【0090】
図9Eは、空領域がマスク処理されたパノラマ画像408を示す図である。これは、元のパノラマ画像400から空領域410が切り抜かれた画像である。
【0091】
次に、位置合わせ部20は、3次元パノラマ空間にマッピングされるパノラマ画像の撮影方向と、同じく3次元パノラマ空間にマッピングされる天球画像の方向を合わせる(S16)。オブジェクト挿入部22は、必要に応じて、パノラマ画像に挿入すべきオブジェクトを3次元パノラマ空間の外側または内側に配置する(S18)。
【0092】
図10は、マスク処理後のパノラマ画像408がマッピングされる3次元パノラマ空間と天球の関係を説明する図である。
【0093】
マスク処理によって空領域512が透明にされたパノラマ画像510が3次元パノラマ空間の一例であるパノラマ球500にマッピングされている。パノラマ球500の中心はパノラマ画像の撮影場所、すなわち視点位置である。その視点位置を中心として、パノラマ球500の外側に天球540が設けられる。天球540の表面には、雲532、534や太陽などを含む天球画像が設定されている。天球画像は、天球画像データ記憶部26から選択することができ、星や月が描かれた星空の天球画像を用いてもよい。
【0094】
パノラマ球500にマッピングされるパノラマ画像510と、天球540上の天球画像とは北極星の方位550が一致するように、パノラマ画像510がマッピングされるパノラマ球を回転させて調整する。もっとも方向を気にしない場合は、位置合わせの処理は不要であるが、位置合わせをしない場合は、天球に描かれた太陽や月、星がパノラマ画像の撮影方向とは異なる方向に表れ、不自然になる。
【0095】
飛行船520と飛行機530はパノラマ画像に挿入するオブジェクトの例である。飛行機530は、天球540とパノラマ球500の間、言い換えればパノラマ球500の外部に配置されており、飛行船520は、パノラマ球500の内部に配置されている。パノラマ画像の遠景にオブジェクトを挿入したい場合は、パノラマ球500の外側に配置し、近景にオブジェクトを挿入したい場合は、パノラマ球500の内側に配置する。飛行船520と飛行機530は、それぞれの動きモデルにしたがって、天球540内を移動する。
【0096】
図8のフローチャートに戻り、マッピング処理部14は、マスク処理後のパノラマ画像510と天球540に描かれた天球画像とをパノラマ球500にマッピングする。また、マッピング処理部14は、飛行船520、飛行機530などのオブジェクトもパノラマ球500にマッピングする(S20)。
【0097】
パノラマ球500の中心、すなわち視点位置から見ると、パノラマ画像510の空領域512は透明に切り抜かれているため、空領域512には天球540の表面に描かれた天球画像が見える。パノラマ球500の外側にある飛行機530は空領域512を通して遠くに見えるが、パノラマ画像に写った建物に遮られるときは見えない。一方、パノラマ球500の内側にある飛行船520は近くに見え、場合によっては建物よりも手前に見えることもある。
【0098】
マッピング処理部14は、パノラマ球500の中心から見た画像を再現するべく、視点から遠い順にパノラマ球500に画像をマッピングして重ね描きする。まず、天球540に描かれた天球画像をパノラマ球500にマッピングし、その上に、パノラマ球500の外部に配置された飛行機530をパノラマ球500にマッピングする。次に、マスク処理後のパノラマ画像510をパノラマ球500にマッピングし、最後に、パノラマ球500の内部に配置された飛行船520をパノラマ球500にマッピングする。これにより、パノラマ画像510の透明の空領域512には天球画像が覗き見えるように貼り付けられ、パノラマ球500の外側の飛行機530は遠景に、パノラマ球500の内側の飛行船520は近景に貼り付けられる。
【0099】
図11Aは、図9Eのマスク処理後のパノラマ画像408の空領域に天球画像が貼り付けられた例を示す図である。図11Aのパノラマ画像450の空領域には、雲532、534を含む天球画像が貼り付けられており、遠景には飛行機530が、近景には建物の手間に飛行船520が挿入されている。
【0100】
図11Bは、別の天球画像の例として、図9Eのマスク処理後のパノラマ画像408の空領域に星空が貼り付けられた例を示す図である。図11Bのパノラマ画像452の空領域には、月や星を含む天球画像が貼り付けられている。パノラマ画像を表示する月日にしたがって天球540に描画される月の満ち欠けや星の見える方角を調整することで、リアリティのある夜空をパノラマ画像の空領域に見せることができる。
【0101】
本実施の形態では、パノラマ画像がマッピングされるパノラマ球500の外側に天球540を設けているため、天球540に描画される天球画像をパノラマ画像とは独立に変更して、パノラマ画像に合成することができる。
【0102】
ユーザは、たとえば、コントローラ102のR1/R2ボタン151、152を操作することにより、天球に描画される星座の運行を制御してもよい。たとえば、R1ボタン151を押すことにより、日時を先送りし、R2ボタン152を押すことにより、日時を逆戻りさせることで、異なる季節の星座を空領域に表示させることができる。
【0103】
図8のフローチャートに戻り、3次元画像生成部16は、マスク処理後のパノラマ画像510、天球540の画像、飛行船520や飛行機530などのオブジェクトがマッピングされた3次元パノラマ球を指定された視線方向に見たときの3次元パノラマ画像を生成し、表示制御部18は生成された3次元パノラマ画像を表示する(S22)。
【0104】
以上述べたように、本実施の形態のパノラマ画像表示装置によれば、パノラマ画像の空領域を切り抜いて別の天球画像に置き換えることができる。たとえば、雨模様のときに撮られたパノラマ画像であっても、空領域を切り抜いて、晴れた青空に置き換えたり、朝日の昇る空から夕日が沈む空に変えたりすることができ、撮影後のパノラマ画像に多様性を与えることができる。また、飛行船や人工衛星などの仮想的なオブジェクトとして挿入することで、撮影されたパノラマ画像に娯楽性を与えることもできる。本実施の形態は、仮想世界の情報と現実世界の情報を重ね合わせる、いわゆるAR(拡張現実;Augmented Reality)の技術分野で利用することができる。すなわち、現実世界であるパノラマ画像を基準として、仮想的に作られた星空などのパノラマ画像を自然に重ね合わせて、現実環境を仮想情報で拡張した仮想現実世界を作り出すことができる。
【0105】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0106】
上記の説明では、マスク処理されたパノラマ画像と天球画像を球面などの3次元パノラマ空間にマッピングし、指定された視線方向から3次元パノラマ空間を見た場合の3次元パノラマ画像を画面に表示したが、パノラマ画像のマスク領域に仮想画像を重ね合わせた画像を単に2次元表示するだけでもよい。この場合、マッピング処理部14および3次元画像生成部16の構成は不要であり、パノラマ画像表示装置100を簡素化できる。また、オフラインでパノラマ画像に仮想画像を合成するだけでなく、リアルタイムでパノラマ画像のマスク領域を仮想画像で置き換えた拡張現実画像をユーザの眼前に装着できる透過型のディスプレイなどの表示デバイスに表示してもよい。
【0107】
上記の実施の形態では、野外で撮影されたパノラマ画像の空領域をマスクすべき領域として抽出したが、たとえば、ドーム型屋根のスタジアムにおいて野球などのスポーツを撮影したパノラマ画像であれば、ドーム型屋根の領域をマスクすべき領域として抽出してもよい。ドーム型屋根の領域を切り抜いて天球画像を貼り付けることで、あたかも野外でなされた試合であるように見せることができる。ドーム型屋根の領域を切り抜くには、たとえば、カメラの所定の仰角以上で撮影された領域や所定の高度以上の領域をマスクすべき領域として抽出すればよい。また、色の変化が少ない、所定の面積をもつ領域をマスクすべき領域として抽出してもよい。たとえば、ビルの窓ガラスの領域をマスクして、窓の領域を切り抜いて、別の画像を貼り付けてもよい。誰もいないビルでも仮想的に人がいるように見せたり、窓から見える外の景色を変えたりすることができる。また、海や池、砂漠などの領域をマスクすべき領域として抽出してもよい。東京湾を南太平洋の画像に置き換えたり、砂漠を緑地の画像に置き換えることができる。
【0108】
パノラマ画像は図3のような全方位撮影システムで撮影されたものに限らず、魚眼レンズを用いて撮影された画像や、撮影方向を変えながら通常のデジタルカメラで撮影された複数の画像を合成した画像であってもよい。
【0109】
上記の実施の形態では、マスク処理後のパノラマ画像と天球画像を重ね合わせて表示する際、視点から遠い順に画像を3次元パノラマ球にマッピングして描画した。すなわち、3次元パノラマ球に天球画像をマッピングした後、マスク領域を透明に切り抜いたパノラマ画像を3次元パノラマ球に重ねてマッピングした。別のマッピング方法として、天球画像からマスクに対応する領域を切り出し、3次元パノラマ球にマッピングされたパノラマ画像のマスク領域の上に、マスクに対応する領域の天球画像を貼り付けてもよい。
【0110】
一般に、マスク領域の境界部分は、パノラマ画像と天球画像の合成により、画像の不連続性が生じ、不自然な印象を与える。そこで、マスク領域の画像に対してガウシアンフィルタを施して平滑化したり、マスク領域の境界付近では、パノラマ画像と天球画像をアルファブレンドすることで境界をぼやかしてもよい。
【0111】
パノラマ画像表示装置100の機能構成の内、主にパノラマ画像のマスク処理、パノラマ画像のマスク領域に天球画像や仮想画像を重ね合わせる処理に係る構成をサーバに実装し、主に天球画像や仮想画像が重ね合わされたパノラマ画像を閲覧する処理に係る構成をクライアントに実装することで、パノラマ画像表示装置100を、ネットワークを介したサーバ−クライアントシステムとして実現することもできる。サーバが、パノラマ画像のマスク領域を抽出してマスク処理を施し、マスク領域に天球画像や仮想画像を重ね合わせる処理を行い、クライアントには、天球画像や仮想画像が重ね合わされたパノラマ画像を閲覧するインタフェースが提供されてもよい。クライアントの表示画面においてユーザがパノラマ画像の特定の領域をマスクすべき領域として指定するインタフェースが設けられてもよい。また、クライアントが、パノラマ画像と天球画像のデータをサーバから受信し、クライアント側で、天球画像とパノラマ画像の位置合わせを適宜調整して、天球画像をパノラマ画像に重ね合わせる処理を行ってもよい。これにより、ユーザ側で自由に天球画像を回転させてパノラマ画像に重ね合わせることができる。
【符号の説明】
【0112】
10 パノラマ画像取得部、 11 マスク領域抽出部、 12 マスク処理部、 14 マッピング処理部、 16 3次元画像生成部、 18 表示制御部、 20 位置合わせ部、 22 オブジェクト挿入部、 24 パノラマ画像・付加データ記憶部、 26 天球画像データ記憶部、 28 オブジェクトデータ記憶部、 30 視点位置設定部、 32 視線方向設定部、 34 高度設定部、 36 日時設定部、 40 ユーザインタフェース部、 100 パノラマ画像表示装置、 200 カメラ。
【特許請求の範囲】
【請求項1】
撮影方向に関する情報が関連付けられたパノラマ画像および方向に関する情報が関連付けられた天球画像を保持する記憶部と、
前記パノラマ画像内のマスクすべき領域を抽出するマスク領域抽出部と、
前記パノラマ画像内の前記マスクすべき領域をマスクしたパノラマ画像を生成するマスク処理部と、
前記天球画像の方向を前記パノラマ画像の撮影方向に合わせる位置合わせ部と、
前記位置合わせ部による位置合わせの後、マスク処理されたパノラマ画像および前記天球画像をテクスチャとして3次元パノラマ空間にマッピングするマッピング処理部と、
前記パノラマ画像の撮影場所を視点位置として、前記3次元パノラマ空間を指定された視線方向に見たときの3次元パノラマ画像を生成する3次元画像生成部と、
前記3次元パノラマ画像を画面に表示させる表示制御部とを含むことを特徴とするパノラマ画像表示装置。
【請求項2】
前記マスク領域抽出部は、前記マスクすべき領域として前記パノラマ画像内の空に相当する領域を抽出し、
前記マスク処理部は、前記パノラマ画像内の前記空に相当する領域をマスクしたパノラマ画像を生成することを特徴とする請求項1に記載のパノラマ画像表示装置。
【請求項3】
前記マスク領域抽出部は、前記パノラマ画像の撮影時のカメラの仰角の情報をもとにパノラマ画像の地平線の位置を判定し、地平線よりも上側の領域内で前記空に相当する領域を抽出することを特徴とする請求項2に記載のパノラマ画像表示装置。
【請求項4】
前記マッピング処理部は、前記天球画像がマッピングされた前記3次元パノラマ空間に、マスク処理された前記パノラマ画像を重ねてマッピングすることにより、前記パノラマ画像内の前記マスクすべき領域に前記天球画像の一部が貼り付けられた画像を前記3次元パノラマ空間上に生成することを特徴とする請求項1から3のいずれかに記載のパノラマ画像表示装置。
【請求項5】
前記3次元パノラマ画像に仮想的に挿入すべきオブジェクトを前記3次元パノラマ空間の内側または外側に配置するオブジェクト挿入部をさらに含み、
前記マッピング処理部は、前記オブジェクトを前記3次元パノラマ空間にマッピングすることを特徴とする請求項1から4のいずれかに記載のパノラマ画像表示装置。
【請求項6】
前記マッピング処理部は、前記オブジェクトが前記3次元パノラマ空間の外側に配置されている場合は、前記オブジェクトがマッピングされた前記3次元パノラマ空間に、マスク処理された前記パノラマ画像を重ねてマッピングすることにより、前記パノラマ画像に前記オブジェクトが合成された画像を前記3次元パノラマ空間上に生成することを特徴とする請求項5に記載のパノラマ画像表示装置。
【請求項7】
前記マッピング処理部は、前記オブジェクトが前記3次元パノラマ空間の内側に配置されている場合は、マスク処理された前記パノラマ画像がマッピングされた前記3次元パノラマ空間に、前記オブジェクトを重ねてマッピングすることにより、前記パノラマ画像に前記オブジェクトが合成された画像を前記3次元パノラマ空間上に生成することを特徴とする請求項5に記載のパノラマ画像表示装置。
【請求項8】
撮影方向に関する情報が関連付けられたパノラマ画像および方向に関する情報が関連付けられた仮想画像を保持する記憶部と、
前記パノラマ画像内のマスクすべき領域を抽出するマスク領域抽出部と、
前記パノラマ画像内の前記マスクすべき領域をマスクしたパノラマ画像を生成するマスク処理部と、
前記仮想画像の方向を前記パノラマ画像の撮影方向に合わせる位置合わせ部と、
前記位置合わせ部による位置合わせの後、マスク処理されたパノラマ画像に前記仮想画像を重ね合わせた拡張現実画像を画面に表示させる表示制御部とを含むことを特徴とするパノラマ画像表示装置。
【請求項9】
撮影方向に関する情報が関連付けられたパノラマ画像および方向に関する情報が関連付けられた天球画像が保持された記憶デバイスから、プロセッサが表示対象のパノラマ画像と天球画像を読み出すステップと、
プロセッサが前記パノラマ画像に対してマスクすべき領域を指定するステップと、
プロセッサが前記天球画像の方向を前記パノラマ画像の撮影方向に合わせるステップと、
位置合わせの後、プロセッサが前記パノラマ画像のマスクすべき領域に前記天球画像を重ね合わせて描画するステップとを含むことを特徴とするパノラマ画像表示方法。
【請求項10】
撮影方向に関する情報が関連付けられたパノラマ画像および方向に関する情報が関連付けられた天球画像が保持された記憶デバイスから、表示対象のパノラマ画像と天球画像を読み出す機能と、
前記パノラマ画像内のマスクすべき領域を抽出する機能と、
前記パノラマ画像内の前記マスクすべき領域をマスクしたパノラマ画像を生成する機能と、
前記天球画像の方向を前記パノラマ画像の撮影方向に合わせる位置合わせ機能と、
位置合わせの後、マスク処理されたパノラマ画像および前記天球画像をテクスチャとして3次元パノラマ空間にマッピングする機能と、
前記パノラマ画像の撮影場所を視点位置として、前記3次元パノラマ空間を指定された視線方向に見たときの3次元パノラマ画像を生成する機能とをコンピュータに実現させることを特徴とするプログラム。
【請求項11】
請求項10のプログラムを格納したことを特徴とする記録媒体。
【請求項1】
撮影方向に関する情報が関連付けられたパノラマ画像および方向に関する情報が関連付けられた天球画像を保持する記憶部と、
前記パノラマ画像内のマスクすべき領域を抽出するマスク領域抽出部と、
前記パノラマ画像内の前記マスクすべき領域をマスクしたパノラマ画像を生成するマスク処理部と、
前記天球画像の方向を前記パノラマ画像の撮影方向に合わせる位置合わせ部と、
前記位置合わせ部による位置合わせの後、マスク処理されたパノラマ画像および前記天球画像をテクスチャとして3次元パノラマ空間にマッピングするマッピング処理部と、
前記パノラマ画像の撮影場所を視点位置として、前記3次元パノラマ空間を指定された視線方向に見たときの3次元パノラマ画像を生成する3次元画像生成部と、
前記3次元パノラマ画像を画面に表示させる表示制御部とを含むことを特徴とするパノラマ画像表示装置。
【請求項2】
前記マスク領域抽出部は、前記マスクすべき領域として前記パノラマ画像内の空に相当する領域を抽出し、
前記マスク処理部は、前記パノラマ画像内の前記空に相当する領域をマスクしたパノラマ画像を生成することを特徴とする請求項1に記載のパノラマ画像表示装置。
【請求項3】
前記マスク領域抽出部は、前記パノラマ画像の撮影時のカメラの仰角の情報をもとにパノラマ画像の地平線の位置を判定し、地平線よりも上側の領域内で前記空に相当する領域を抽出することを特徴とする請求項2に記載のパノラマ画像表示装置。
【請求項4】
前記マッピング処理部は、前記天球画像がマッピングされた前記3次元パノラマ空間に、マスク処理された前記パノラマ画像を重ねてマッピングすることにより、前記パノラマ画像内の前記マスクすべき領域に前記天球画像の一部が貼り付けられた画像を前記3次元パノラマ空間上に生成することを特徴とする請求項1から3のいずれかに記載のパノラマ画像表示装置。
【請求項5】
前記3次元パノラマ画像に仮想的に挿入すべきオブジェクトを前記3次元パノラマ空間の内側または外側に配置するオブジェクト挿入部をさらに含み、
前記マッピング処理部は、前記オブジェクトを前記3次元パノラマ空間にマッピングすることを特徴とする請求項1から4のいずれかに記載のパノラマ画像表示装置。
【請求項6】
前記マッピング処理部は、前記オブジェクトが前記3次元パノラマ空間の外側に配置されている場合は、前記オブジェクトがマッピングされた前記3次元パノラマ空間に、マスク処理された前記パノラマ画像を重ねてマッピングすることにより、前記パノラマ画像に前記オブジェクトが合成された画像を前記3次元パノラマ空間上に生成することを特徴とする請求項5に記載のパノラマ画像表示装置。
【請求項7】
前記マッピング処理部は、前記オブジェクトが前記3次元パノラマ空間の内側に配置されている場合は、マスク処理された前記パノラマ画像がマッピングされた前記3次元パノラマ空間に、前記オブジェクトを重ねてマッピングすることにより、前記パノラマ画像に前記オブジェクトが合成された画像を前記3次元パノラマ空間上に生成することを特徴とする請求項5に記載のパノラマ画像表示装置。
【請求項8】
撮影方向に関する情報が関連付けられたパノラマ画像および方向に関する情報が関連付けられた仮想画像を保持する記憶部と、
前記パノラマ画像内のマスクすべき領域を抽出するマスク領域抽出部と、
前記パノラマ画像内の前記マスクすべき領域をマスクしたパノラマ画像を生成するマスク処理部と、
前記仮想画像の方向を前記パノラマ画像の撮影方向に合わせる位置合わせ部と、
前記位置合わせ部による位置合わせの後、マスク処理されたパノラマ画像に前記仮想画像を重ね合わせた拡張現実画像を画面に表示させる表示制御部とを含むことを特徴とするパノラマ画像表示装置。
【請求項9】
撮影方向に関する情報が関連付けられたパノラマ画像および方向に関する情報が関連付けられた天球画像が保持された記憶デバイスから、プロセッサが表示対象のパノラマ画像と天球画像を読み出すステップと、
プロセッサが前記パノラマ画像に対してマスクすべき領域を指定するステップと、
プロセッサが前記天球画像の方向を前記パノラマ画像の撮影方向に合わせるステップと、
位置合わせの後、プロセッサが前記パノラマ画像のマスクすべき領域に前記天球画像を重ね合わせて描画するステップとを含むことを特徴とするパノラマ画像表示方法。
【請求項10】
撮影方向に関する情報が関連付けられたパノラマ画像および方向に関する情報が関連付けられた天球画像が保持された記憶デバイスから、表示対象のパノラマ画像と天球画像を読み出す機能と、
前記パノラマ画像内のマスクすべき領域を抽出する機能と、
前記パノラマ画像内の前記マスクすべき領域をマスクしたパノラマ画像を生成する機能と、
前記天球画像の方向を前記パノラマ画像の撮影方向に合わせる位置合わせ機能と、
位置合わせの後、マスク処理されたパノラマ画像および前記天球画像をテクスチャとして3次元パノラマ空間にマッピングする機能と、
前記パノラマ画像の撮影場所を視点位置として、前記3次元パノラマ空間を指定された視線方向に見たときの3次元パノラマ画像を生成する機能とをコンピュータに実現させることを特徴とするプログラム。
【請求項11】
請求項10のプログラムを格納したことを特徴とする記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7A】
【図7B】
【図8】
【図9A】
【図9B】
【図9C】
【図9D】
【図9E】
【図10】
【図11A】
【図11B】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7A】
【図7B】
【図8】
【図9A】
【図9B】
【図9C】
【図9D】
【図9E】
【図10】
【図11A】
【図11B】
【公開番号】特開2012−80433(P2012−80433A)
【公開日】平成24年4月19日(2012.4.19)
【国際特許分類】
【出願番号】特願2010−225367(P2010−225367)
【出願日】平成22年10月5日(2010.10.5)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】
【公開日】平成24年4月19日(2012.4.19)
【国際特許分類】
【出願日】平成22年10月5日(2010.10.5)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】
[ Back to top ]