画像を記憶する方法、装置
【課題】撮影された画像を用いた仮想世界の生成のために、自由に参加した多くの人たちが撮影した画像を、記憶する画像データベース装置を提供すること。
【解決手段】画像データベース装置1は、複数のユーザが撮影した画像をネットワーク10を介して通信を行い受信する。受信した画像は、その画像を撮影した位置をユーザの間で共通の座標によって表された撮影位置と、撮影するための撮影条件と、撮影した画像の画像属性とを有している。そして、受信した画像と、受信した画像の撮影位置を含む領域に対応付けて記憶された画像とを比較判定する。比較判定の結果、撮影条件が所定の範囲内であること、及び判定による画像同士の類似度が所定の範囲外であることを条件として、領域を分割し、分割した領域に受信した画像を対応付けて記憶し、画像データベースを作成する。
【解決手段】画像データベース装置1は、複数のユーザが撮影した画像をネットワーク10を介して通信を行い受信する。受信した画像は、その画像を撮影した位置をユーザの間で共通の座標によって表された撮影位置と、撮影するための撮影条件と、撮影した画像の画像属性とを有している。そして、受信した画像と、受信した画像の撮影位置を含む領域に対応付けて記憶された画像とを比較判定する。比較判定の結果、撮影条件が所定の範囲内であること、及び判定による画像同士の類似度が所定の範囲外であることを条件として、領域を分割し、分割した領域に受信した画像を対応付けて記憶し、画像データベースを作成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像を記憶する方法、装置に関する。より詳しくは、画像を用いた仮想空間の構築のために、撮影した画像を記憶する方法、装置に関する。
【背景技術】
【0002】
従来より、現実世界を再現した仮想空間を構築しユーザに提供するコンピュータシステムが知られている。この仮想空間に、仮想世界(Virtual World)を生成し、アバタと呼ばれる自分の分身を登場させるゲームや、調査、解析又は予測などのシミュレーションを行うシステムなどが存在する。
【0003】
これらのVirtual Worldの生成において、現実世界を再現した仮想空間を構築するには、現実世界で撮影された写真を使用し、ユーザを含む空間内部にそれらの写真を貼り付ける(テクスチャ・マッピング)ことで擬似的な仮想空間を構築するPhoto−based Rendering(画像作成)技術がある。
【0004】
このPhoto−based Rendering技術を用いたものとして、Virtual Worldの生成を目的として、専用の撮影システムにおいて、同時にシーケンシャルに撮影した複数の実写をそれら撮影した位置情報とともに効率よく画像データベースシステムに記憶し、再生時には任意の位置からリアルタイムに画像を再生し表示するシステムが知られている(特許文献1参照)。
【0005】
また、Photo−based Renderingに関する技術として、注視点方向が異なる複数の高精細画像及び複数の背景画像をそれぞれの注視点方向を検索インデックスとして記録媒体に記録しておき、再生時に観察者の視線方向を検出し画像処理により合成し表示する技術(特許文献2参照)や、位置及び姿勢を利用した電子工学式視覚システム(特許文献3参照)や、全天周方向に向けて配置したカメラから得られた複数の画像から天周画像を補間生成する方法(特許文献4参照)などが知られている。
【0006】
一方、現実世界を撮影するカメラとして、コンピュータにデジタルデータによる精密な画像を提供することができるデジタルカメラが存在する。このデジタルカメラにGPS(Global Positioning System)と方位センサーあるいは3次元ジャイロセンサーを取り付けて撮影位置、撮影方向、撮影仰角を記録することができるデジタルカメラが知られている(特許文献5参照)。
【特許文献1】特開平11−168754号公報
【特許文献2】特開平7−236113号公報
【特許文献3】特表平9−505138号公報
【特許文献4】特開2002−92597号公報
【特許文献5】特開2004−080359号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、現実世界を再現した仮想空間を生成するには、現実世界に存在する“もの”の3次元形状モデル及び属性情報(テクスチャ、色、材質など)を構築し、Photo−realisticにレンダリングする方法もあるが、このための3次元形状モデルの構築、及びその形状の面ごとの属性情報としてデジタルカメラによって撮影された画像を準備することは、膨大な労力と時間がかかり現実的でない。また、特許文献1では、広大な現実世界をシーケンシャルに撮像する必要があり、これも現実的ではない。また、特許文献2〜4は個々の表示技術であって、仮想空間の構築の基礎となる技術ではない。
【0008】
一方、忠実に現実世界をPhoto−based Rendering技術によって再現するためには、さまざまな場所から実際に撮影した膨大な数の写真を収集する必要があり、大勢の人たちの協力を必要とする。また、これらの膨大な数の写真を利用するために撮影条件や、属性情報などを備えた画像として記憶し、管理する必要もある。
【0009】
そこで、現実世界を忠実に再現した仮想世界を迅速に生成するために、大勢の人たちの協力が得られ、誰もが自由に画像として登録するという共同作業によって仮想世界を生成できるシステムが求められている。
【0010】
本発明は、撮影された画像を用いた仮想世界(Photo−based Virtual World)の生成のために、自由に参加した多くの人たちが撮影した画像を記憶する画像データベース装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明は、複数のユーザが撮影した画像をネットワークを介して受信する。受信した画像は、撮影位置と、撮影条件と、画像属性とを有している。
そして、受信した画像と、その画像の撮影位置を含む仮想空間の領域に対応付けられた画像とが、所定の要件を満たすことを条件として、領域を分割し、受信した画像を分割した領域に対応付けて記憶することを特徴とする画像データベース装置である。より詳細には本発明は、次の特徴を備える。
【0012】
本発明の画像データベース装置は、ネットワークを介して通信を行い、複数のユーザが撮影した画像のデータを受信する。受信した画像は、その画像を撮影した情報として、ユーザの間で用いられる共通の座標によって表された撮影位置と、撮影するための撮影条件と、撮影した画像の画像属性とを有している。そして、受信した画像と、受信した画像の撮影位置を含む仮想空間の領域に対応付けて記憶された画像とが、所定の要件を満たすことを条件として、領域を分割し、分割した領域に受信した画像を対応付けて記憶する。
【0013】
このことにより、ネットワークを介して、複数のユーザが撮影した画像を、その画像の撮影位置を含む仮想空間の領域に対応付けて画像データベースとして記憶することができる。よって、撮影された画像に基づいて現実世界を忠実に再現した仮想世界の構築のための画像データベースを、大勢の人たちにより、迅速に作成することができる。しかもその情報は大勢の人たちによって常に更新され得る。また、更新された履歴などを記録することで、過去の世界を再現するための情報とすることもできる。
【0014】
さらに、画像データベース装置は、画像の特徴を算出し、画像同士の類似度を求める判定手段をさらに備え、所定の要件は、撮影条件が所定の範囲内であること、及び判定手段による類似度が所定の範囲外であることを条件として、領域を分割し、分割した領域に受信した画像を対応付けて記憶する。よって、撮影された場所に応じて効率よく撮影された画像を記憶することができる。
【0015】
さらに、制御手段は、領域を分割し、記憶し直した領域に、対応付けて記憶された画像が存在し、その画像と受信した画像とが所定の要件を満たすことを条件として、領域の分割を繰り返し、分割した領域と受信した画像とを対応付けて記憶する。よって、複数のユーザが提供する画像の増加に従い、対応付けられる仮想空間の領域も分割され、仮想空間の領域と撮影された画像との対応付けがより現実の世界に近い画像データベースを早期に構築することができる。
【0016】
さらに、ユーザの間で用いられる共通の座標は、緯度及び経度である。よって、多くの人たちが自由に参加し、撮影した画像を提供することができ、現実の世界に近い画像データベースを早期に構築することができる。
【0017】
さらに、撮影条件は撮影方向を含み、制御手段は、撮影方向が所定の範囲外であることを条件として、撮影方向を有する画像と領域とを対応付けて記憶することにより画像を撮影方向に分類して記憶する。よって、制御手段は、多くの人たちが撮影した画像を領域ごとに撮影方向に分類して記憶するので、より現実の世界に近い画像データベースを早期に構築することができる。
【0018】
さらに、撮影条件は撮影仰角を含み、制御手段は、撮影仰角が所定の範囲外であることを条件として、撮影仰角を有する画像と領域とを対応付けて記憶することにより画像を撮影仰角に分類して記憶する。よって、制御手段は、多くの人たちが撮影した画像を領域ごとに撮影仰角に分類して記憶するので、より現実の世界に近い画像データベースを早期に構築することができる。
【0019】
さらに、撮影条件は撮影日時を含み、制御手段は、撮影日時が所定の範囲外であることを条件として、撮影日時を有する画像と領域とを対応付けて記憶することにより画像を撮影日時に分類して記憶する。よって、制御手段は、多くの人たちが撮影した画像を領域ごとに撮影日時に分類して記憶するので、より現実の世界に近い画像データベースを早期に構築することができる。また、撮影日時を有した画像が管理されているので、過去の世界を再現するための情報とすることもできる。
【発明の効果】
【0020】
本発明によれば、撮影された画像に基づいて現実世界を忠実に再現した仮想世界の構築のための画像データベースが、ネットワークを通じて大勢の人たちによる自由参加型で作成できるようになる。これにより、広範囲な場所から撮影された画像を早期に収集できるようになり、しかもその情報は大勢の人たちによって常に更新され得る。また、更新された履歴などを記録することで、過去の世界を再現するための情報とすることもできる。
【0021】
さらに、本発明は、撮影された画像を領域分割手段によって分割された領域に対応付けて記憶する。よって、撮影された画像を撮影された場所に応じて効率よく記憶することができる。
【0022】
本発明によれば、撮影された画像を用いた仮想世界(Photo−based Virtual World)の生成のために、自由に参加した多くの人たちが撮影した画像を、記憶する画像データベース装置を提供することができる。
【発明を実施するための最良の形態】
【0023】
以下、本発明の実施形態について述べる。
【0024】
仮想空間を構築するための画像は、仮想空間の領域と対応付けるための撮影位置情報を有する。撮影位置情報は、参加した多くの人の間で用いられる共通の座標(例えば、緯度及び経度)で表される。また、参加した多くの人が提供する画像は、それらの画像を接合したり、合成したり、障害物を除去したりすることができるために実際に現実世界を撮影した画像である。本実施形態では、例えば、デジタルカメラにより撮影された画像を対象とする。この画像の撮影位置は、デジタルカメラ内臓のGPS機能などにより求められた緯度及び経度情報が好ましいが、別途画像データに追加入力された位置情報(例えば、入力された緯度及び経度)であってもよい。
【0025】
参加した多くの人が提供する画像の撮影条件として、撮影位置の他に、撮影方向、撮影仰角、撮影距離、撮影日時(日付、時刻)などがある。また、属性情報として、画像サイズ、解像度、シャッター速度、レンズ口径焦点距離などがある。これらの情報は、デジタルカメラの性能により自動的に画像に付加される場合や、別装置において追加入力されることにより付加される場合がある。このように、実際に撮影された画像であって位置情報、撮影条件、属性情報を有する画像を実写画像という。
【0026】
参加した多くの人が提供する実写画像は、実写画像の撮影位置に基づいて仮想空間の領域と対応付けて記憶される。撮影位置は、例えば、緯度及び経度によって表され、仮想空間の領域の範囲は、例えば、緯度及び経度の範囲によって定められる。よって、撮影位置と、撮影位置を含む仮想空間の領域とを対応付けることができる。そして、撮影された画像と、仮想空間の領域とを対応付けて記憶することにより画像データベース(DB)に登録される。
【0027】
登録は、次の様に行われる。撮影位置を含む仮想空間の領域に画像が登録されていない場合には、その画像をその領域に対応させて登録する。撮影位置を含む仮想空間の領域に画像が登録されている場合は、登録されている画像と比較判定する。比較判定し、撮影条件(撮影方向、撮影仰角など)が所定の範囲外であることを条件として、同じ領域に登録される。また、撮影条件(撮影方向、撮影仰角など)が所定の範囲内であること、及び画像の類似度が所定の範囲内であることを条件として、その画像は同様に、同じ領域に登録される。一方、比較判定し、撮影条件(撮影方向、撮影仰角など)が所定の範囲内であること、及び画像の類似度が所定の範囲外であることを条件として、仮想空間の領域を分割し、その画像は、異なる領域に登録される。領域の分割と比較判定とは、その画像を登録する条件が満たされるまで繰り返し行われる。
【0028】
仮想空間の領域に対応付けて登録された実写画像は、仮想空間で画像を見る視点位置及び視点方向に基づいてレンダリングされる。すなわち、視点位置に基づいて視点位置に相当する撮影位置を含む領域が求められ、求められた領域に対応付けられた実写画像のうち視点方向に相当する撮影方向の実写画像が取得される。そして取得された実写画像は表示空間に基づいてレンダリングされることにより仮想空間が構築される。
【0029】
以下、図に従って説明する。
【0030】
図1は、本発明の実施形態に係る発明の概要を示す図である。実写画像の撮影位置に基づいて、撮影位置を含む仮想空間の領域に実写画像を登録することを説明している。
【0031】
図1(1)は、撮影位置101から矢印方向111をデジタルカメラで撮影し、画像201を撮影したことを示している。画像201は、撮影位置101に対応する仮想空間の領域Sに登録されている画像が存在しないので、領域Sに矢印方向111の画像として登録される。
【0032】
図1(2)は、撮影位置102から矢印方向111をデジタルカメラで撮影し、画像202を撮影したことを示している。画像202は、撮影位置102に対応する仮想空間の領域Sに既に登録されている画像201と比較判定され、類似度が所定の範囲外であるので、領域Sを4つに分割した領域S−1,S−2,S−3,S−4のうち撮影位置102に対応する仮想空間領域S−3に、矢印方向111の画像として登録される。また、画像201は、撮影位置101に対応する仮想空間領域S−1に対する、矢印方向111の画像としての登録に変更される。
図1(3)は、撮影位置103から矢印方向111をデジタルカメラで撮影し、画像203を撮影したことを示している。画像203は、撮影位置103に対応する仮想空間の領域S−3に既に登録されている画像202と比較判定され、類似度が所定の範囲外であるので、領域S−3をさらに4つに分割した領域S−31,S−32,S−33,S−34のうち撮影位置103に対応する仮想空間の領域S−31に、矢印方向111の画像として登録される。同様に、画像202も、撮影位置102に対応する仮想空間領域S−32に対する、矢印方向111の画像としての登録に変更される。
【0033】
図2は、本実施形態に係るシステムの概要を示す図である。実写画像を撮影位置に基づいて仮想空間の領域に登録し、画像データベース(DB)及びパノラマ画像データベース(DB)を生成する。生成した画像DBに登録されている実写画像に基づいて表示空間を構築し仮想空間を生成することを説明している。
【0034】
現実の世界において撮影された実写画像は、撮影された撮影位置、撮影方向、撮影条件、パノラマ用画像情報(パノラマ用画像の登録も可能にする連続画像フラグなど)などの情報を含んでいる。画像DB321生成において、領域分割処理301は、類似度判定処理302の判定結果に基づいて、仮想空間の領域を分割する。画像管理処理303は、分割された領域に、実写画像を撮影方向、撮影条件(撮影日時、焦点距離)などに分類し、画像DB321に登録する。一方、レンダリング処理において、表示空間設定306(仮想空間における位置、移動軌跡、視線方向)と、表示条件設定307(表示条件として、例えば、表示モード、季節、時間帯など)とに基づいて、表示空間生成308を行う。表示空間生成308には、パネル壁面表示309、パネル焦点位置表示310、パノラマ画像表示311に必要な空間(円柱、半球、全球などの形状やパネルを貼り付ける形状など)が生成される。また、パノラマ画像生成処理においては、画像DB321に基づいて、画像合成処理304によってパノラマ画像生成305を行い、パノラマ画像DB322を生成する。
【0035】
図3は、撮影位置、撮影条件を説明する図である。
【0036】
図3(1)は、ある撮影位置からある撮影方向の現実の風景の写真を撮影していることを示す図である。このようにして撮影された実写画像は、撮影位置、撮影方向などの撮影条件を備える。
【0037】
図3(2)は、撮影方向を8方向(North(N)、NorthEast(NE)、East(E)、SouthEast(SE)、South(S)、SouthWest(SW)、West(W)、NorthWest(NE))に分類した例を示す図である。8方向に分類した場合には、例えば、撮影方向331は、撮影方向Nの範囲に含まれる。撮影方向は16方向、32方向などとすることも可能である。
【0038】
図3(3)は、撮影仰角を5方向(上方(U)、斜め上方(UH)、水平(H)、斜め下方(DH)、下方(D))に分類した例を示す図である。5方向に分類した場合には、例えば、撮影仰角341は、撮影仰角の範囲Hに含まれる。撮影仰角は9方向などとすることも可能である。
【0039】
図4は、4分岐ツリー(Quadtree)で領域管理する例を示す図である。仮想空間の領域を4分割し、分割した領域に実写画像を登録することを説明している。
【0040】
図4(1)は、領域Sの分割結果の例を示している。領域IDとして、S−1〜S−4を時計回りに付し、さらにS−1の分割結果をS−11〜S−14、S−3をS−31〜S−34に分割していることを示している。領域の分割は、緯度及び経度によって定められる範囲を4つに分割することにより行われる。そして、撮影位置を含む分割した領域に登録されている画像との比較判定を行い所定の要件を満たすことを条件として同じ領域に登録される。領域の分割は、画像を登録することができる要件が満たされるまで繰り返し行われる。
【0041】
図4(2)は、分割した領域を4分岐ツリー(Quadtree)で領域管理していることを示している。領域Sが4分割され領域IDとして、S―1〜S―4となり、S―1がさらに分割されS―11〜S―14となっている。同様に、S−12がS−121〜S−124と分割され、S−3がS−31〜S−34、S−33がS−331〜S−334となっていることを示している。したがって、撮影位置から、撮影位置を含む領域を求めることができる。なお、分割を縦方向、横方向と順次2分割し、2分岐(Binarytree)で管理することも可能である。
【0042】
図5は、障害物が存在する場合の例を示す図である。障害物が存在する場合の領域の分割と、分割した領域に実写画像を登録することを説明している。
【0043】
図5(1)は撮影位置P1と撮影位置P2との間に障害物401が存在する場合を示している。図5(2)は、撮影位置P1で撮影された画像は、撮影位置P1を含む仮想空間の領域Sに登録されることを示している。図5(3)は、撮影位置P1で撮影された画像が登録された後に、撮影位置P2で撮影された画像は、撮影位置P2を含む仮想空間の領域Sに登録されている画像とは異なるので、領域Sを撮影位置P1とP2とが別の領域に含まれるようになるまで繰り返し分割し、撮影位置P2を含む仮想空間の分割された領域S−1に登録され、撮影位置P1で撮影された画像は、撮影位置P1を含む仮想空間のS−3に登録し直されることを示している。
【0044】
図6は、4分岐ツリーで領域管理する画像データベースの例を示す図である。分割した領域ごとに実写画像のデータと、撮影条件及び画像属性とを分類して登録した画像データベースの構成の概要を示している。
【0045】
領域Sは、S−1〜S−4に分割され、さらにS−1がS−11〜S−14に分割されている。そして、分割された領域ごとに、データ管理用情報(領域の座標、領域数、下位、上位ノードへのポインタ、領域IDなど)を備え、サーチ処理の高速化のためのデータ(撮影方向のデータが存在する情報など)を備えている。さらに、撮影条件管理情報として撮影方向ごとに、撮影時刻などが記憶され、撮影時刻ごとに画像及び画像属性情報(画像サイズ、解像度、その他カメラの属性情報など)が記憶され、分類管理される。さらに、パノラマ画像DBへのポインタを備えている。
【0046】
例えば、所定の範囲の撮影方向ごとに実写画像のデータを備えている。撮影方向ごとの実写画像データは、例えば8方向ごとのポインタで示される。さらに実写画像は、例えば、撮影時刻(季節、朝昼夜、時間など)に分類管理される。さらに、フォーカスのあった対象物までの距離データがあればさらに対象物までの距離によって分類管理される。
【0047】
現実の世界を撮影する場合、同じ場所、同じ方向の写真でも、季節や一日の時間帯によって画像が異なるので、時間軸上において画像の類似度をチェックし、類似度が所定の範囲内でない場合には時間空間を分割してコンテンツを管理する。すなわち、撮影時刻などの時間帯に分類して領域に登録する。
【0048】
画像データを検索する方法は、画像データベースの構成に基づいて行われる。すなわち、画像を登録する場合に、撮影位置に基づいて、撮影位置を含む仮想空間の領域を求め、領域に登録された実写画像を取得することができる。すなわち、仮想空間の領域は4分岐ツリー構造で領域管理されているので、ツリー構造をたどり、領域の範囲の座標と比較することにより撮影位置を含む領域を求めることができる。
【0049】
例えば、位置P(X、Y)が与えられた場合、ツリー構造をたどり、領域の座標((X0、Y0)、(X1、Y1))と比較し、X0≦X≦X1かつY0≦Y≦Y1を満たす領域を求めることができる。そして、求めた領域に登録されている実写画像を取得することができる。さらに、実写画像を再生(レンダリング)し、仮想的な表示空間を構成する場合において、表示空間を眺める視点位置及び視線方向を、実写画像の撮影位置及び撮影方向として画像データベースを検索し、取得した実写画像をレンダリングすることにより、現実世界を忠実に再現した仮想的な表示空間を構築することができる。
【0050】
ある位置から眺めた全方位の実写画像を再生する場合に、その位置を含む領域に全ての方向の実写画像が登録されていない場合がある。その場合に、隣接する領域に、該当する撮影方向の実写画像が登録されていればそれを代用することによって類似の画像を生成できる可能性が高い。この場合、4分岐ツリー構造でデータを管理することにより、明快なサーチルールによって隣接する領域の画像を取得することができる。
【0051】
例えば、S−13の領域に隣接する領域は、領域が均質に分割されている場合は、北から時計回りにS−12、S−21、S−24、S−31、S−42、S−41、S−14、S−11である(図4において、S−12、S−21、S−24、S−41,S−42を補って参照)。しかし、領域の分割は均質に行われるとは限らないので、ツリー構造に領域が管理されていない場合は上位の領域が隣接領域となる。すなわち、S−21、S−24は、S−2が、S−42、S−41はS4が隣接領域となる。
【0052】
上述した隣接領域の探索について領域のラベルを2進数で表現する方法で説明する。左下端を(0,0)、右上を(1,1)とした正規化空間に対して、再帰的に4分割を行い、領域を分割する。n回均等に4分割を繰り返すと、2n×2n個の領域に分割される。その場合の領域の左下端及び右上端の座標は、それぞれ(k/2n、j/2n)及び((k+1)/2n、(j+1)/2n)となる。ここで、0≦k、j<2nの整数値である。すなわち、分割の度合n、位置k、jの3変数で識別される。例えば、領域の2進数のラベルとして(0、0)は、領域IDのS−4、(1、1)はS−2、(00、00)は(S−44)にそれぞれ対応する。
【0053】
そして、領域(k(1/2)n、j(1/2)n)の隣接領域は、均等に分割されている場合、次のようにして求めることができる。
North側の隣接領域は、(k(1/2)n、(j+1)(1/2)n)、j<2n−1で表される。ここで、j=2n−1の場合は最北端の領域であり、隣接領域は存在しない。
NorthEast側の隣接領域は、((k+1)(1/2)n、(j+1)(1/2)n)、k<2n−1かつj<2n−1で表される。ここで、k=2n−1又はj=2n−1の場合は最北端又は最東端の領域であり、隣接領域は存在しない。
East側の隣接領域は、((k+1)(1/2)n、j(1/2)n)、k<2n−1で表される。ここで、k=2n−1の場合は最東端の領域であり、隣接領域は存在しない。
SouthEast側の隣接領域は、((k+1)(1/2)n、(j−1)(1/2)n)、k<2n−1で表される。ここで、k=2n−1又はj=0の場合は最南端又は最東端の領域であり、隣接領域は存在しない。
South側の隣接領域は、(k(1/2)n、(j−1)(1/2)n)、j>0で表される。ここで、j=0の場合は最南端の領域であり、隣接領域は存在しない。
SouthWest側の隣接領域は、((k−1)(1/2)n、(j−1)(1/2)n)、k>0かつj>0で表される。ここで、k=0又はj=0の場合は最南端又は最西端の領域であり、隣接領域は存在しない。
West側の隣接領域は、((k−1)(1/2)n、j(1/2)n)、k>0で表される。ここで、k=0の場合は最西端の領域であり、隣接領域は存在しない。
NorthWest側の隣接領域は、((k−1)(1/2)n、(j+1)(1/2)n)、k>0かつj<2n−1で表される。ここで、k=0又はj=2n−1の場合は最北端又は最西端の領域であり、隣接領域は存在しない。
【0054】
さらに、領域(k(1/2)n、j(1/2)n)の隣接領域は、均等に分割されていない場合であって、分割の度合が粗い場合(m≦n)は、次のようにして求めることができる。ただし、int()は、小数点以下を切り捨て整数値とする関数である。
North側の隣接領域は、(int(k/2n−m)(1/2)m、int((j+1)/2n−m)(1/2)m)、j<2n−1で表される。ここで、j=2n−1の場合は最北端の領域であり、隣接領域は存在しない。
NorthEast側の隣接領域は、(int((k+1)/2n−m)(1/2)m、int((j+1)/2n−m)(1/2)m)、k<2n−1かつj<2n−1で表される。ここで、k=2n−1又はj=2n−1の場合は最北端又は最東端の領域であり、隣接領域は存在しない。
East側の隣接領域は、(int((k+1)/2n−m)(1/2)m、int(j/2n−m)(1/2)m)、k<2n−1で表される。ここで、k=2n−1の場合は最東端の領域であり、隣接領域は存在しない。
SouthEast側の隣接領域は、(int((k+1)/2n−m)(1/2)m、int((j−1)/2n−m)(1/2)m)、k<2n−1かつj>0で表される。ここで、k=2n−1又はj=0の場合は最南端又は最東端の領域であり、隣接領域は存在しない。
South側の隣接領域は、(int(k/2n−m)(1/2)m、int((j−1)/2n−m)(1/2)m)、j>0で表される。ここで、j=0の場合は最南端の領域であり、隣接領域は存在しない。
SouthWest側の隣接領域は、(int((k−1)/2n−m)(1/2)m、int((j−1)/2n−m)(1/2)m)、k>0かつj>0で表される。ここで、k=0又はj=0の場合は最南端又は最西端の領域であり、隣接領域は存在しない。
West側の隣接領域は、(int((k−1)/2n−m)(1/2)m、int(j/2n−m)(1/2)m)、k>0で表される。ここで、k=0の場合は最西端の領域であり、隣接領域は存在しない。
NorthWest側の隣接領域は、(int((k−1)/2n−m)(1/2)m、int((j+1)/2n−m)(1/2)m)、k>0かつj<2n−1で表される。ここで、k=0又はj=2n−1の場合は最北端又は最西端の領域であり、隣接領域は存在しない。
【0055】
さらに、領域(k(1/2)n、j(1/2)n)の隣接領域は、均等に分割されていない場合であって、分割の度合が細かい場合(m≧n)は、次のようにして求めることができる。ここで、North, East, South, Westの場合は、分割の度合いが同じ又は異なる複数の領域と隣接することになり、最も分割の度合の細かい領域の分割の度合をmとした場合、0≦s<2m−nの全てのsが対象である。ただし、分割の度合は隣接領域によって異なりm分割の領域が存在しない部分には、上位の領域を利用する。
North側の隣接領域は、(k×2m−n+s)(1/2)m、(j+1)×2m−n)(1/2)m)、j<2n−1で表される。ここで、j=2n−1の場合は最北端の領域であり、隣接領域は存在しない。
NorthEast側の隣接領域は、((k+1)×2m−n)(1/2)m、((j+1)×2m−n)(1/2)m)、k<2n−1かつj<2n−1で表される。ここで、k=2n−1又はj=2n−1の場合は最北端又は最東端の領域であり、隣接領域は存在しない。
East側の隣接領域は、((k+1)×2m−n)(1/2)m、(j×2m−n+s)(1/2)m)、k<2n−1で表される。ここで、k=2n−1の場合は最東端の領域であり、隣接領域は存在しない。
SouthEast側の隣接領域は、((k+1)×2m−n)(1/2)m、(j×2m−n−1)(1/2)m)、k<2n−1かつj>0で表される。ここで、k=2n−1又はj=0の場合は最南端又は最西端の領域であり、隣接領域は存在しない。
South側の隣接領域は、((k×2m−n+s)(1/2)m、((j×2m−n−1)(1/2)m)、j>0で表される。ここで、j=0の場合は最南端の領域であり、隣接領域は存在しない。
SouthWest側の隣接領域は、((k×2m−n−1)(1/2)m、(j×2m−n−1)(1/2)m)、k>0かつj>0で表される。ここで、k=0又はj=0の場合は最南端又は最西端の領域であり、隣接領域は存在しない。
West側の隣接領域は、((k×2m−n−1)(1/2)m、(j×2m−n+s)(1/2)m)、k>0で表される。ここで、k=0の場合は最西端の領域であり、隣接領域は存在しない。
NorthWest側の隣接領域は、((k×2m−n−1)(1/2)m、(j+1)×2m−n)(1/2)m)、k>0かつj<2n−1で表される。ここで、k=0又はj=2n−1の場合は最北端又は最西端の領域であり、隣接領域は存在しない。
【0056】
図7は、撮影方向ごとに領域を管理することも可能であることを示す図である。実写画像を登録するために、撮影方向ごとに領域を管理する。この場合は、8方向(N,NE,E,SE,S,SW,W,NW)の撮影方向ごとに4分岐ツリーで領域が構成されている。ある撮影方向の画像がないケースが多ければ、その方向の領域分割がなされずにすむ。
【0057】
図8は、実写画像が登録されている表示空間が仮想世界の中でどこに存在するかを示すための、表示空間の外部表現の一例を示す図である。
【0058】
ユーザが、仮想空間を構成する表示空間を、その表示空間の外から眺めた場合の形態として、本実施形態では、4種類ある。すなわち、本実施形態における代表的な表示空間の外部表現は、円柱(cylindrical shape)、半球(semi−sphere)、全球(sphere)、及びパーティクル(particle)(雲状)がある。なお、表示空間は、ある領域に対して生成することも、複数の領域(例えば、4分岐ツリー構造の上位領域)から表示空間を生成することも可能である。なお、パノラマ表示の場合には、予め画像が登録された時点でパノラマ画像空間は、円柱、半球、全球の形状が決定されている。これらの表示空間の表現方法は、1つの形状として単色でレンダリングしたり、空間に登録されている1つあるいは複数の代表の実写画像をテクスチャ・マッピングしたりなどができる。
【0059】
図8(1)は、表示空間が円柱501である場合を示す図である。図8(2)は、表示空間が半球502である場合を示す図である。図8(3)は、表示空間が全球503である場合を示す図である。図8(4)は、表示空間がパーティクル504である場合を示す図である。仮想空間はこれらの表示空間から構成され、これらの表示空間を移動することにより仮想空間内を移動することになる。
【0060】
これらの表示空間の表示条件の1つである透明度には、可視(visible、透過度0%)、不可視(invisible、透過度100%)、半透明(translucent)を設けている。可視(visible)は、その表示空間を表示することをいうが、前景に可視の表示空間があれば隠れて見えなくなり、前景に半透明の表示空間があれば透けてみえる。不可視(invisible)は、その表示空間を完全に表示しないことをいう。半透明(translucent)は、その背景にある表示空間を透かして見せるようにする。
【0061】
半透明表示の方法として、手前の面の画像の光の強度をI1、その後方の面の光の強度をI2とすると、光の強度は、I=αI2+(1−α)I1となる。ここで、α(0≦α≦1.0)は透過率であり、α=1の時は完全透明、α=0の時は完全不透明となる。
【0062】
表示条件の変更方法には、予めユーザにより設定されるパラメータ設定、対話的にコマンドなどによるパラメータ設定、ユーザの振る舞いにより動的に変更するパラメータ設定(コンテキスト・アウエアネスによるパラメータ設定)がある。
【0063】
このコンテキスト・アウエアネスによるパラメータ設定では、例えば、ユーザが注視している時間によって表示条件を変更する。すなわち、ユーザがある一定時間以上注視していると前景の半透明であった表示空間がより明瞭に「可視」として表示される。また、コンテキスト・アウエアネスによるパラメータ設定では、ユーザの移動に伴って、見える表示空間の切り替えをフェードイン、フェードアウトするように表示条件を変更する。
【0064】
表示空間の内部表現、すなわち、実写画像をレンダリングする表示空間の内部に移動し、レンダリングされた画像を見た場合の表現として、パノラマ表示(panoramic display)、パネル壁面表示(panel display on wall)、パネル焦点位置表示(panel display on focal distance)と、それらの表示方法の混在表示がある。
【0065】
パノラマ表示(panoramic display)は、表示空間(円柱、半球、全球、パーティクル)の内側の面に実写画像をマッピングし、表示する。
【0066】
パネル壁面表示(panel display on wall)は、表示空間の壁面に、重ね合わせ、スクロールなどの多重表示技術を活用して表示する。すなわち、視線方向の画像の中から手前の空間の画像を見ることができる。
【0067】
パネル焦点位置表示(panel display on focal distance)は、視点位置から撮影距離だけ離れた場所に画像を配置し、表示する。
【0068】
それらの表示方法の混在表示では、実写画像の属性、表示空間の特徴などから、表示方法を混在させ表示空間の内部を生成する。
【0069】
また、実写画像の表示条件の1つである透明度には、可視(visible、透明度0%)、不可視(invisible、透明度100%)、半透明(translucent)を設けている。可視(visible)は、その実写画像を表示することをいうが、前景に可視の実写画像があれば隠れて見えなくなり、前景に半透明の実写画像があれば透けてみえる。不可視(invisible)は、その実写画像を完全に表示しないことをいう。半透明(translucent)は、その背景にある実写画像を透かして見せるようにする。なお、実写画像が未登録で存在しない場合には、「無地一色」の画像としてこれらの表示条件の下に表示される。
【0070】
実写画像の表示条件には、属性の条件設定として、例えば、撮影時刻(朝・夕、季節など)の設定を設けている。設定された撮影時刻により、朝昼夜や時間ごとの現実世界を忠実に再現することができる。また、隣接領域の画像の表示・非表示の設定を設けている。隣接領域の表示には、隣接領域からの画像表示であることを明示する設定をも設けている。画像が未登録の領域であることを知らせ、ユーザに画像の登録を促すことができる。さらに、例えば、撮影日の設定を設けている。実写画像は撮影日時を有しているので、例えば、再現する撮影日を設定すれば、新しい建物などが建設されることにより現実の世界が更新されていても、設定された撮影日以前の実写画像により過去の状態を再現することもできる。
【0071】
実写画像の表示条件の変更には、予めユーザにより設定されるパラメータ設定、対話的にコマンドなどによるパラメータ設定、ユーザの振る舞いにより動的に変更するパラメータ設定(コンテキスト・アウエアネスによるパラメータ設定)がある。
【0072】
このコンテキスト・アウエアネスによるパラメータ設定では、例えば、ユーザが注視している時間によって表示条件を変更する。すなわち、ユーザがある一定時間以上注視していると前景の半透明であった画像がより明瞭に「可視」として表示される。また、コンテキスト・アウエアネスによるパラメータ設定では、ユーザの移動に伴って、見える画像の切り替えをフェードイン、フェードアウトするように表示条件を変更する。
【0073】
図9は、パノラマ画像表示の例を示す図である。例えば、円柱の内側の面に画像をマッピングすることによって、パノラマ画像表示が可能となる。ユーザはその空間の内部から画像を見ることができる。図9において、vは表示空間の高さを示し、uは表示空間の中心からの視野角を示している。そして、ユーザの移動により、例えば、表示空間内の視点位置511から、ユーザはマッピングされた画像の内の一部512を見ることができる。
【0074】
図10は、実写画像が登録されている表示空間が仮想世界の中でどこに存在するかを示す図である。
【0075】
図10(1)は、仮想世界を構成する表示空間が円柱501であって、表示空間の外から眺めた場合を示している図である。図10(2)は、表示空間をユーザが移動し、視線方向531の表示空間内を見ていることを示している図である。パノラマ表示空間(円柱、半球、全球、パーティクル)の中に入ると、その空間内の例えば、パノラマ画像を見ることができ、ユーザは移動することによって仮想世界を感じることができる。
【0076】
図11は、パネル壁面表示の概念を示す図である。領域に登録された実写画像は、撮影位置、撮影方向、撮影仰角などの情報を有している。領域は座標による範囲を有している。よって、領域に登録された実写画像を、領域の範囲に、例えば、半球の壁面があるものとして、撮影方向の壁面にマッピングすることにより実写画像をレンダリングすることができる。
【0077】
図11において、矢印線551、552、553により、現実空間の山すそを歩いて撮影した写真を、仮想空間の表示空間A,B、Cにパネル壁面表示していることを、それぞれ、概念的に表している。表示空間へのパネル壁面表示によって、アバタが破線532に沿って、表示空間Aから表示空間Bへ移動し、さらに表示空間Cへ移動すると、アバタの位置に基づいて表示空間の壁面の画像が異なる。表示空間Aにおいては遠くの山561が、表示空間Bにおいては山563の前景に樹木562をともない、さらに表示空間Cにおいては頂上付近の風景564となるのであたかも現実に移動し、風景が異なるかのように感じられる。また、表示空間内では、パネル壁面に沿う全壁面に、重ね合わせ、スクロールなどの多重表示技術を活用してレンダリングされるので、あたかも現実の空間のなかにいるように感じられる。
【0078】
図12は、パネル焦点位置表示の概念を示す図である。領域に登録された実写画像は、撮影位置、撮影方向、撮影仰角の他に撮影距離の情報も有している。よって、視点位置に基づいて取得した領域に登録された実写画像を、表示空間内の視点位置から、撮影距離に応じた距離に壁面を想定しマッピングすることにより実写画像をレンダリングすることができる。
【0079】
図12において、矢印線571、572、573により表示空間Aに、矢印線574、575により表示空間Bに、矢印線575により表示空間Cにパネル焦点位置表示していることを、それぞれ、概念的に表している。
【0080】
図13は、表示空間Aにおけるパネル焦点位置表示の概念を示す図である。表示空間へのパネル焦点位置表示によって、アバタ580が破線532に沿って、表示空間Aへ移動すると、アバタ580の位置に基づいて表示空間Aのパネル焦点位置表示がされる。その結果、表示空間Aにおいては近くの山581と、近くの樹木582、遠くの山583、584とが撮影距離に応じて見える。
【0081】
図14は、表示空間Bにおけるパネル焦点位置表示の概念を示す図である。表示空間へのパネル焦点位置表示によって、アバタ580が破線532に沿って、表示空間Bへ移動すると、アバタ580の位置に基づいて表示空間Bのパネル焦点位置表示がされる。その結果、表示空間Bにおいては近くの草花587、近くの樹木588、近くの山589、遠くの山585、遠くの樹木586とが撮影距離に応じて見える。
【0082】
図15は、表示空間Cにおけるパネル焦点位置表示の概念を示す図である。表示空間へのパネル焦点位置表示によって、アバタ580が破線532に沿って、表示空間Cへ移動すると、アバタ580の位置に基づいて表示空間Cのパネル焦点位置表示がされる。その結果、表示空間Cにおいては近くの山585、近くの樹木586とが撮影距離に応じて見える。
【0083】
図16〜図20は、実写画像の表示方法の一例を示す図である。
【0084】
図16は、表示空間の中に包含された別の表示空間が存在する場合の表示方法を示す図である。パノラマ画像の例で示す。表示空間601内のユーザが見ている視野角内に、その空間に包含される別の表示空間602が存在する場合、その表示空間602を可視(Visible),不可視(Invisible),半透明(Translucent)などの表示条件で表示する。内包される別の表示空間602が半透明に表示され、かつ、コンテキスト・アウエアネス・モードであれば、ユーザがある一定時間以上注視している場合には、その表示空間602は半透明から不可視となって、後方の表示空間601が明瞭に表示される。
【0085】
図17は、表示空間の中に別の表示空間が完全に含まれる場合の表示方法を示す図である。パノラマ画像の例で示す。表示空間内のユーザがいる表示空間612が、別の表示空間611に完全に内包されている場合、一番、内側の表示空間612の画像を表示する。表示空間612の画像が半透明に表示され、後方の表示空間611が透けて表示され、かつ、コンテキスト・アウエアネス・モードであれば、ユーザがある一定時間以上注視している場合には、手前にある表示空間612の画像が半透明から明瞭な可視の表示となる。
【0086】
図18は、表示空間が別の表示空間と交差している場合の表示方法を示す図である。パノラマ画像の例で示す。表示空間621と別の表示空間622とが交差している場合には、表示空間の交差面に対して、その空間の中心側に属する表示空間内の画像を表示する。表示画像を半透明表示し、もう一方の表示空間の画像を表示することも可能である。
【0087】
ユーザが表示空間の間を移動する場合、予測した通過時間tに応じて、手前の画像をフェードアウトし、次の空間の後方の画像をフェードインする表示も可能である。また、交差面積が大きい場合は、フェードイン・フェードアウトの画像切り替えを、交差面積全体で行うのでなく、交差面積の中心部分の領域(交差中央領域)のみで行うことにしてもよい。さらに、交差面積が大きい場合で、交差面で画像切り替えあるいは交差中央領域で画面のフェードイン・フェードアウト画像切り替えする際に、緩衝領域の設定あるいはヒステリシス特性のあるフェードイン・フェードアウトの導入をすることで、移動のじぐざぐやゆらぎの際に過敏な画面変化を抑制できる。
【0088】
図19は、表示空間が交差している場合であって、ユーザが移動した場合の表示方法を示す図である。表示空間同士の緩衝領域cを設け、緩衝領域cを境にして表示する表示空間の画像を切り替えるが、緩衝領域cにおいては移動の方向により直前の画像を表示する。例えば、ユーザがaからbへ移動し、bから緩衝領域cへ移動したとすると、Aの表示空間から緩衝領域cに移動したので、緩衝領域cでの表示画像は直前のAの表示空間の画像を表示する。そして、緩衝領域cからdに移動したことによりdでの表示画像はBの表示空間の画像となる。したがって、例えばa−>b−>c−>d−>c−>b−>c−>d−>eのように移動したとすると、表示される世界はA−>A−>A−>B−>B−>A−>A−>B−>Bのように変化する。緩衝領域cにおいては、直前世界の画像A又はBが表示される。
【0089】
図20は、フェードイン・フェードアウトのヒステリシスを示す図である。フェードイン・フェードアウトにおいて、透過率αは時間tの関数α(t)であらわされる。
【0090】
図20(1)は、例えば、α(t)が時間tに対して線形に変化する場合を表す図である。図20(2)は、透過率αを空間移動率βの関数α(β)として表した場合のαとβの関係を示す図である。例えば、α(β)は移動率の連続した増加あるいは減少が緩衝範囲の1/2をする時に、移動率βの2割の範囲で線形に増加するような場合の透過率αの変化を表している。図20(3)は、図20(2)の場合に、緩衝領域を移動する空間移動率βを示している図である。空間移動率βは、aにおいて0.4、bにおいて0.5、cにおいて0.2、dにおいて0.2、eにおいて0.6、fにおいて0.65、gにおいて0.5、hにおいて0.6、iにおいて0.7、jにおいて0.5を示している。したがって、図20(2)の透過率αは、aにおいて0.0、bにおいて0.2、cにおいて0.2、dにおいて0.1、eにおいて0.1、fにおいて0.9、gにおいて0.9、hにおいて0.9、iにおいて1.0、jにおいて1.0となることを示している。
【0091】
以下、図21〜図33を用いて、実写画像を記憶し、記憶した実写画像に基づいて仮想空間を構成する表示空間にレンダリングするシステムの実施例を図面ごとに説明する。本実施例において、画像データベース装置1において、データ受信手段1040と、画像記憶手段(図24で説明する画像情報のデータ構成、ハード・ディスク1074)と、領域記憶手段(図25で説明する領域情報のデータ構成、ハード・ディスク1074)と、登録記憶手段(図25で説明する領域情報の画像へのポインタ、ハード・ディスク1074)と、判定手段(図27のステップS115)と、領域分割手段(図27のステップS116)と、制御手段(図27の画像登録処理)と、を備えている。また、画像処理装置11において、データ受信手段2040と、受付手段(図29のステップS202)、画像取得手段(図31のステップS224)、制御手段(図29のメイン処理)、表示装置2022とを備えている。
【0092】
図21は、画像データベース装置1の動作環境を示す図である。画像データベース装置1、画像処理装置11a、11b、11cがネットワーク10(インターネット、LAN、WANなど)を介して接続されていることを示している。
【0093】
画像データベース装置1は、画像処理装置11からネットワーク10を介して送信された実写画像を、実写画像に付加された撮影位置に基づいて記憶する。画像処理装置11は、表示する位置を画像データベース装置1にネットワーク10を介して送信し、位置に基づいて検索された実写画像をネットワーク10を介して受信し、表示する。
【0094】
図22は、画像データベース装置1のハードウェア構成を示す図である。以下は、コンピュータを典型とする情報処理装置として全般的な構成を説明するが、専用機や組み込み型装置の場合、その環境に応じて必要最小限な構成を選択できることはいうまでもない。
【0095】
画像データベース装置1は、CPU(Central Processing Unit)1010、バスライン1005、通信I/F1040、メインメモリ1050、BIOS(Basic Input Output System)1060、パラレルポート1080、USBポート1090、グラフィック・コントローラ1020、VRAM1024、I/Oコントローラ1070、ならびにキーボード及びマウス・アダプタなど1100の入力手段を備える。I/Oコントローラ1070には、ハード・ディスク1074及びバックアップ用ハード・ディスク1075、光ディスク・ドライブ1076、半導体メモリ1078、などの記憶手段を接続することができる。グラフィック・コントローラ1020には、表示装置1022が接続されている。
【0096】
BIOS1060は、画像データベース装置1の起動時にCPU1010が実行するブートプログラムや、画像データベース装置1のハードウェアに依存するプログラムなどを格納する。
【0097】
光ディスク・ドライブ1076としては、例えば、DVD−ROMドライブ、CD−ROMドライブ、DVD−RAMドライブ、CD−RAMドライブを使用することができる。この際は各ドライブに対応した光ディスク1077を使用する必要がある。光ディスク・ドライブ1076は光ディスク1077からプログラム又はデータを読み取り、I/Oコントローラ1070を介してメインメモリ1050又はハード・ディスク1074に提供することもできる。
【0098】
画像データベース装置1に提供されるコンピュータ・プログラムは、フレキシブル・ディスク1071、光ディスク1077、又はメモリカードなどの記録媒体に格納されて利用者によって提供される。このコンピュータ・プログラムは、I/Oコントローラ1070を介して、記録媒体から読み出され、又は通信I/F1040を介してダウンロードされることによって、画像データベース装置1にインストールされ実行される。コンピュータ・プログラムが情報処理装置に働きかけて行わせる動作は、既に説明した装置における動作と同一であるので省略する。
【0099】
上述のコンピュータ・プログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としてはフレキシブル・ディスク1071、光ディスク1077、又はメモリカードの他に、MDなどの光磁気記録媒体、テープ媒体を用いることができる。また、専用通信回線やインターネットに接続されたサーバシステムに設けたハード・ディスク又は光ディスク・ライブラリなどの記憶装置を記録媒体として使用し、通信回線を介してコンピュータ・プログラムを画像データベース装置1に提供してもよい。
【0100】
図23は、画像処理装置11のハードウェア構成を示す図である。以下は、コンピュータを典型とする情報処理装置として全般的な構成を説明するが、専用機や組み込み型装置の場合、その環境に応じて必要最小限な構成を選択できることはいうまでもない。
【0101】
画像処理装置11は、CPU(Central Processing Unit)2010、バスライン2005、通信I/F2040、メインメモリ2050、BIOS(Basic Input Output System)2060、パラレルポート2080、USBポート2090、グラフィック・コントローラ2020、VRAM2024、I/Oコントローラ2070、ならびにキーボード及びマウス・アダプタなど2100の入力手段を備える。I/Oコントローラ2070には、フレキシブル・ディスク(FD)ドライブ2072、ハード・ディスク2074、光ディスク・ドライブ2076、半導体メモリ2078、などの記憶手段を接続することができる。グラフィック・コントローラ2020には、表示装置2022が接続されている。
【0102】
BIOS2060は、画像処理装置11の起動時にCPU2010が実行するブートプログラムや、画像処理装置11のハードウェアに依存するプログラムなどを格納する。FDドライブ2072は、フレキシブル・ディスク2071からプログラム又はデータを読み取り、I/Oコントローラ2070を介してメインメモリ2050又はハード・ディスク2074に提供する。
【0103】
光ディスク・ドライブ2076としては、例えば、DVD−ROMドライブ、CD−ROMドライブ、DVD−RAMドライブ、CD−RAMドライブを使用することができる。この際は各ドライブに対応した光ディスク2077を使用する必要がある。光ディスク・ドライブ2076は光ディスク2077からプログラム又はデータを読み取り、I/Oコントローラ2070を介してメインメモリ2050又はハード・ディスク2074に提供することもできる。
【0104】
画像処理装置11に提供されるコンピュータ・プログラムは、フレキシブル・ディスク2071、光ディスク2077、又はメモリカードなどの記録媒体に格納されて利用者によって提供される。このコンピュータ・プログラムは、I/Oコントローラ2070を介して、記録媒体から読み出され、又は通信I/F2040を介してダウンロードされることによって、画像処理装置11にインストールされ実行される。コンピュータ・プログラムが情報処理装置に働きかけて行わせる動作は、既に説明した装置における動作と同一であるので省略する。
【0105】
上述のコンピュータ・プログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としてはフレキシブル・ディスク2071、光ディスク2077、又はメモリカードの他に、MDなどの光磁気記録媒体、テープ媒体を用いることができる。また、専用通信回線やインターネットに接続されたサーバシステムに設けたハード・ディスク又は光ディスク・ライブラリなどの記憶装置を記録媒体として使用し、通信回線を介してコンピュータ・プログラムを画像処理装置11に提供してもよい。
【0106】
図24は、画像情報のデータ構成を示す図である。1つの画像データとともに、画像ID、撮影位置データ、その他の撮影条件(撮影方向、撮影仰角など)データ、属性情報(撮影日時など)データ、領域へのポインタを備えている。
【0107】
図25は、領域情報のデータ構成を示す図である。1つの領域は、領域ID、領域の座標、ツリー構造のための分割レベル、上位ノードへのポインタ、下位ノードへのポインタ、画像へのポインタ、パノラマ画像へのポインタを備えている。分割レベルは、ノードの最大分割レベル数を記憶する。画像へのポインタは、撮影方向ごと、撮影仰角ごと、撮影時刻ごとなどのポインタからなり、実写画像データは、撮影方向ごと、撮影仰角ごと、撮影時刻ごとなどに分類して記憶される。
【0108】
図26は、画像データベース装置1のメインのフローチャートである。
【0109】
CPU1010は、ステップS101において、初期化処理を行い、処理をステップS102に移す。ステップS102において、CPU1010は、ネットワーク10を介して画像処理装置11からデータの受信処理を行い、処理をステップS103に移し、受信したデータは画像登録のためのデータか否かを判断する。この判断がYESの場合は、処理をステップS107に移し、NOの場合は処理をステップS104に移す。ステップS104において、CPU1010は、受信したデータが画像要求か否かを判断し、この判断がYESの場合は、処理をステップS105に移し、NOの場合は、処理を終了する。ステップS105において、CPU1010は、受信したデータに基づき画像検索処理を行い、処理をステップS106に移し、検索した画像データの送信処理を行い処理を終了する。
【0110】
ステップS107において、CPU1010は、画像登録処理を行い、その後処理を終了する。
【0111】
図27は、画像データベース装置1の画像登録処理のフローチャートである。
【0112】
CPU1010は、ステップS111において、受信した画像データの撮影位置から領域を取得し、処理をステップS112に移し、取得した領域に他の画像が登録されているか否かを判断する。この判断がYESの場合は、処理をステップS113に移し、NOの場合は処理をステップS119に移す。ステップS113において、CPU1010は、受信した画像データの撮影方向と、領域に登録されている画像データの撮影方向とが同じか否かを判断し、この判断がYESの場合は、処理をステップS114に移し、NOの場合は、処理をステップS119に移す。ステップS114において、CPU1010は、受信した画像データの撮影仰角と、領域に登録されている画像データの撮影仰角とが同じか否かを判断し、この判断がYESの場合は、処理をステップS115に移し、NOの場合は処理をステップS119に移す。ステップS115において、CPU1010は、受信した画像データと、領域に登録されている画像データとの比較判定を行い、類似度が所定の範囲内か否かを判断する。この判断がYESの場合は、処理をステップS119に移し、NOの場合は処理をステップS116に移す。ステップS116において、CPU1010は、領域を分割し、処理をステップS118に移し、分割した領域に画像が登録されているか否かを判断する。この判断がYESの場合は、処理をステップS113に移し、NOの場合は処理をステップS119に移す。
【0113】
ステップS119において、CPU1010は、撮影条件に分類して受信した画像データを登録し、本処理を終了し処理をメイン処理に戻す。
【0114】
ここで、ステップS115における、登録されている画像との比較判定は、撮影条件や類似度をCPU1010が自動的に判定するが、対話型(CPU1010が判定を要求し、入力に応じて判定する)や、半自動(自動と対話型の組合せ)による判定も可能である。
【0115】
図28は、画像データベース装置1の画像検索処理のフローチャートである。
【0116】
CPU1010は、ステップS121において、隣接領域の画像データか否かを判断する。この判断がYESの場合は、処理をステップS124に移し、NOの場合は処理をステップS122に移す。ステップS122において、CPU1010は、領域の画像検索を行い、処理をステップS123に移す。
【0117】
ステップS123において、CPU1010は、検索した画像データを取得し、本処理を終了し処理をメイン処理に戻す。
【0118】
ステップS124において、CPU1010は、隣接領域の画像を検索し、処理をステップS123に移す。
【0119】
図29は、画像処理装置11のメインのフローチャートである。
【0120】
CPU2010は、ステップS201において、初期化処理を行い、処理をステップS202に移す。ステップS202において、CPU2010は、処理条件を受付ける受付処理を行い、処理をステップS203に移す。ステップS203において、CPU2010は、処理すべき内容が画像登録か否かを判断する。この判断がYESの場合は、処理をステップS204に移し、NOの場合は処理をステップS205に移す。ステップS204において、CPU2010は、画像登録処理を行い、その後処理を終了する。
【0121】
ステップS205において、CPU2010は、画像表示処理を行い、その後処理を終了する。
【0122】
図30は、画像処理装置11の画像登録処理のフローチャートである。
【0123】
CPU2010は、ステップS211において、画像取込み処理を行い、処理をステップS212に移す。ステップS212において、CPU2010は、撮影条件などのユーザによる入力を受付け、ユーザが入力した撮影条件などを記憶し、処理をステップS213に移す。ステップS213において、CPU2010は、画像属性などのユーザによる入力を受付け、ユーザが入力した画像属性などを記憶し、処理をステップS214に移す。ステップS214において、CPU2010は、記憶した画像データ、撮影条件、画像属性などの情報をインターネットを介して画像データベース装置1に送信し、本処理を終了しメイン処理に戻る。
【0124】
図31は、画像処理装置11の画像表示処理のフローチャートである。
【0125】
CPU2010は、ステップS221において、アバタの位置検出を行い、処理をステップS222に移す。ステップS222において、CPU2010は、検出した位置が表示空間内か否かを判断する。この判断がYESの場合は、処理をステップS226に移し、NOの場合は処理をステップS223に移す。ステップS223において、CPU2010は、位置データをネットワーク10を介して画像データベース装置1へ送信し、処理をステップS224に移す。ステップS224において、CPU2010は、ネットワーク10を介して画像データベース装置1から受信した画像データを取得し、処理をステップS225に移す。ステップS225において、CPU2010は、表示空間の内部表現処理を行い、その後処理を終了し処理をメイン処理に戻す。
【0126】
ステップS226において、CPU2010は、表示空間の外部表現処理を行い、その後本処理を終了し処理をメイン処理に戻す。
【0127】
図32は、画像処理装置11の表示空間の内部表現処理のフローチャートである。
【0128】
CPU2010は、ステップS231において、1つ以上の空間の中にいるか否かを判断する。この判断がYESの場合は、処理をステップS232に移し、NOの場合は処理をステップS240に移す。ステップS232において、CPU2010は、2つ以上空間が交差するか否かを判断する。この判断がYESの場合は、処理をステップS233に移し、NOの場合は処理をステップS234に移す。ステップS233において、CPU2010は、表示モードを設定し、処理をステップS235に移す。
【0129】
ステップS234において、CPU2010は、表示モードを設定し、処理をステップS235に移す。
【0130】
ステップS235において、CPU2010は、視野角内に画像が存在するか否かを判断する。この判断がYESの場合は、処理をステップS243に移し、NOの場合は処理をステップS236に移す。ステップS236において、CPU2010は、隣接領域の画像を利用するか否かを判断する。この判断がYESの場合は、処理をステップS237に移し、NOの場合は処理をステップS244に移す。ステップS237において、CPU2010は、ネットワーク10を介して画像データベース装置1から隣接領域の画像を取得し、処理をステップS238に移す。ステップS238において、CPU2010は、隣接領域からの画像であることを明示するか否かを判断する。この判断がYESの場合は、処理をステップS239に移し、NOの場合は処理をステップS245に移す。ステップS239において、CPU2010は、画像の明度、色相、彩度を変更して表示モードに応じて表示処理を行い、その後本処理を終了し処理を画像表示処理に戻す。
【0131】
ステップS240において、CPU2010は、包含された別の空間があるか否かを判断する。この判断がYESの場合は、処理をステップS241に移し、NOの場合は処理をステップS242に移す。ステップS241において、CPU2010は、表示モードを設定し、処理をステップS235に移す。
【0132】
ステップS242において、CPU2010は、表示モードを設定し、処理をステップS235に移す。
【0133】
ステップS243において、CPU2010は、表示モードに応じて表示処理を行い、その後本処理を終了し処理を画像表示処理に戻す。
【0134】
ステップS244において、CPU2010は、予め登録された色やテクスチャの画像を表示モードに応じて表示処理を行い、その後本処理を終了し処理を画像表示処理に戻す。
【0135】
ステップS245において、CPU2010は、表示モードに応じて表示処理を行い、その後本処理を終了し処理を画像表示処理に戻す。
【0136】
図33は、画像処理装置11における、表示空間内のパノラマ画像の例を示す図である。アバタの位置に基づいて、インターネットを介して受信した実写画像データを表示空間にレンダリングし、表示装置2022に表示していることを示している。表示された画像は、視点位置を含む領域に対応付けられた視点方向の実写画像と、視点位置を含む領域の隣接領域に対応付けられた視点方向に対応する実写画像との重ね合わせ、スクロールなどの多重表示技術を活用して得られる。
【0137】
図34は、隣接領域の探索についての例を示す図である。上述の図6で説明した、領域のラベルを2進数で表現する方法で示している。すなわち、左下端を(0,0)、右上を(1,1)とした正規化空間に対して、再帰的に4分割を行い、領域を分割する。例えば、n=3とし、3回均等に4分割を繰り返すと、23×23個=64個の領域に分割される。その場合の領域の左下端及び右上端のラベルは、それぞれ(0(1/2)3、0(1/2)3)=(000、000)及び(7(1/2)3、(7(1/2)3)=(111、111)となる。図において、数値はそれぞれの領域のラベルを示している。例えば、分割の度合n=3、位置k=3、j=5の領域(3(1/2)3、5(1/2)3)=(011、101)の隣接領域を具体的に求めてみる。ここで、領域(011、101)は、領域IDのS−132に対応する。
【0138】
図34(1)において、領域(011、101)の隣接領域は、上述の図6で示した式によれば、均等に分割されている場合、次のラベルの領域として表される。
North側の隣接領域は、(3(1/2)3、(5+1)(1/2)3)=(011、110)で表される。
NorthEast側の隣接領域は、((3+1)(1/2)3、(5+1)(1/2)3)=(100、110)で表される。
East側の隣接領域は、((3+1)(1/2)3、5(1/2)3)=(100、101)で表される。
SouthEast側の隣接領域は、((3+1)(1/2)3、(5−1)(1/2)3)=(100、100)で表される。
South側の隣接領域は、(3(1/2)3、(5−1)(1/2)3)=(011、100)で表される。
SouthWest側の隣接領域は、((3−1)(1/2)3、(5−1)(1/2)3)=(010、100)で表される。
West側の隣接領域は、((3−1)(1/2)3、5(1/2)3)=(010、101)で表される。
NorthWest側の隣接領域は、((3−1)(1/2)3、(5+1)(1/2)3)=(010、110)で表される。
【0139】
図34(2)において、領域(011、101)の隣接領域は、均等に分割されていない(分割の度合が粗い)場合、次のラベルの領域として表される。
North側の隣接領域は、例えば分割の度合m=2である場合、(int(3/23−2)(1/2)2、int((5+1)/23−2)(1/2)2)=(int(3/23−2)(1/2)2、int((5+1)/23−2)(1/2)2)=(1(1/2)2、3(1/2)2)=(01、11)で表される。
NorthEast側の隣接領域は、例えば分割の度合m=2である場合、(int((3+1)/23−2)(1/2)2、int((5+1)/23−2)(1/2)2)=(2(1/2)2、3(1/2)2)=(10、11)で表される。
East側の隣接領域は、例えば分割の度合m=2である場合、(int((3+1)/23−2)(1/2)2、int(5/23−2)(1/2)2)=(2(1/2)2、2(1/2)2)=(10、10)で表される。
SouthEast側の隣接領域は、例えば分割の度合m=2である場合、(int((3+1)/23−2)(1/2)2、int((5−1)/23−2)(1/2)2)=(2(1/2)2、2(1/2)2)=(10、10)で表される。
South側の隣接領域は、例えば分割の度合m=3である場合、(int(3/23−3)(1/2)3、int((5−1)/23−3)(1/2)3)=(3(1/2)3、4(1/2)3)=(011、100)で表される。
SouthWest側の隣接領域は、例えば分割の度合m=3である場合、(int((3−1)/23−3)(1/2)3、int((5−1)/23−3)(1/2)3)=(2(1/2)3、4(1/2)3)=(010、100)で表される。
West側の隣接領域は、例えば分割の度合m=3である場合、(int((3−1)/23−3)(1/2)3、int(5/23−3)(1/2)3)=(2(1/2)3、5(1/2)3)=(010、101)で表される。
NorthWest側の隣接領域は、分割の度合m=2である場合、(int((3−1)/23−2)(1/2)2、int((5+1)/23−2)(1/2)2)=(1(1/2)2、3(1/2)2)=(01、11)で表される。
【0140】
図35(3)において、領域(011、101)の隣接領域は、均等に分割されていない(分割の度合が細かい)場合、次のラベルの領域として表される。
North側の隣接領域は、例えば分割の度合m=4である場合、sが0≦s<24−3の全ての値、すなわち0、1であるので次の2領域となる。すなわち、((3×24−3+0)(1/2)4、((5+1)×24−3)(1/2)4)=(6(1/2)4、12(1/2)4)=(0110、1100)と、((3×24−3+1)(1/2)4、((5+1)×24−3)(1/2)4)=(7(1/2)4、12(1/2)4)=(0111、1100)と、で表される。
NorthEast側の隣接領域は、例えば分割の度合m=4である場合、((3+1)×24−3)(1/2)4、((5+1)×24−3)(1/2)4)=(8(1/2)4、12(1/2)4)=(1000、1100)で表される。
East側の隣接領域は、例えば分割の度合m=4である場合、sが0≦s<24−3の全ての値、すなわち0、1であるので次の2領域となる。すなわち、((3+1)×24−3)(1/2)4、(5×24−3+0)(1/2)4)=(8(1/2)4、10(1/2)4)=(1000、1010)と、((3+1)×24−3)(1/2)4、(5×24−3+1)(1/2)4)=(8(1/2)4、11(1/2)4)=(1000、1011)とで表される。
SouthEast側の隣接領域は、例えば分割の度合m=4である場合、((3+1)×24−3)(1/2)4、(5×24−3−1)(1/2)4)=(8(1/2)4、94)=(1000、1001)で表される。
South側の隣接領域は、例えば分割の度合m=4である場合、sが0≦s<24−3の全ての値、すなわち0、1であるので次の2領域となる。すなわち、((3×24−3+0)(1/2)4、(5×24−3−1)(1/2)4)=(6(1/2)4、9(1/2)4)=(0110、1001)と、((3×24−3+1)(1/2)4、(5×24−3−1)(1/2)4)=(7(1/2)4、9(1/2)4)=(0111、1001)とで表される。
SouthWest側の隣接領域は、例えば分割の度合m=4である場合、((3×24−3−1)(1/2)4、(5×24−3−1)(1/2)4)=(5(1/2)4、9(1/2)4)=(0101、1001)で表される。
West側の隣接領域は、例えば分割の度合m=4である場合、sが0≦s<24−3の全ての値、すなわち0、1であるので次の2領域となる。すなわち、((3×24−3−1)(1/2)4、(5×24−3+0)(1/2)4)=(5(1/2)4、10(1/2)4)=(0101、1010)と、((3×24−3−1)(1/2)4、(5×24−3+1)(1/2)4)=(5(1/2)4、11(1/2)4)=(0101、1011)とで表される。
NorthWest側の隣接領域は、例えば分割の度合m=4である場合、((3×24−3−1)(1/2)4、((5+1)×24−3)(1/2)4)=(5(1/2)4、12(1/2)4)=(0101、1100)で表される。
【0141】
実施例によれば、画像データベース装置1は、複数のユーザが撮影した画像をネットワーク10を介して通信を行い受信する。受信した画像は、その画像を撮影した位置をユーザの間で共通の座標によって表された撮影位置と、撮影するための撮影条件と、撮影した画像の画像属性とを有している。そして、受信した画像と、受信した画像の撮影位置を含む領域に対応付けて記憶された画像とを比較判定する。比較判定の結果、撮影条件が所定の範囲内であること、及び判定による画像同士の類似度が所定の範囲外であることを条件として、領域を分割し、分割した領域に受信した画像を対応付けて記憶し、画像データベースを作成する。分割は4分割で行われ、画像データベースは4分岐ツリーで領域管理(図4)するので、画像を表示するための視点位置に基づいて、視点位置を含む領域に対応付けられた視点方向の実写画像と、視点位置を含む領域の隣接領域に対応付けられた視点方向に対応する実写画像とを容易に検索することができる。
【0142】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施例に記載されたものに限定されるものではない。
【図面の簡単な説明】
【0143】
【図1】本発明の実施形態に係る発明の概要を示す図である。
【図2】本発明の実施形態に係るシステムの概要を示す図である。
【図3】撮影位置、撮影条件を説明する図。
【図4】4分岐ツリーで領域管理する例を示す図である。
【図5】障害物が存在する場合の例を示す図である。
【図6】4分岐ツリーで領域管理する画像データベースの例を示す図である。
【図7】撮影方向ごとに領域を管理する場合の一例を示す図である。
【図8】表示空間の外部表現の一例を示す図である。
【図9】パノラマ画像表示の例を示す図である。
【図10】実写画像による仮想世界を示す図である。
【図11】パネル壁面表示の概念を示す図である。
【図12】パネル焦点位置表示の概念を示す図である。
【図13】表示空間Aにけるパネル焦点位置表示の概念を示す図である。
【図14】表示空間Bにけるパネル焦点位置表示の概念を示す図である。
【図15】表示空間Cにおけるパネル焦点位置表示の概念を示す図である。
【図16】表示空間の中に包含された別の表示空間が存在する場合の表示方法を示す図である。
【図17】表示空間の中に別の表示空間が完全に含まれる場合の表示方法を示す図である。
【図18】表示空間が別の表示空間と交差している場合の表示方法を示す図である。
【図19】表示空間が交差している場合であって、アバタが移動した場合の表示方法を示す図である。
【図20】フェードイン・フェードアウトのヒステリシスを示す図である。
【図21】画像データベース装置の動作環境を示す図である。
【図22】画像データベース装置のハードウェア構成を示す図である。
【図23】画像処理装置のハードウェア構成を示す図である。
【図24】画像情報のデータ構成を示す図である。
【図25】領域情報のデータ構成を示す図である。
【図26】画像データベース装置のメインのフローチャートである。
【図27】画像データベース装置の画像登録処理のフローチャートである。
【図28】画像データベース装置の画像検索処理のフローチャートである。
【図29】画像処理装置のメインのフローチャートである。
【図30】画像処理装置の画像登録処理のフローチャートである。
【図31】画像処理装置の画像表示処理のフローチャートである。
【図32】画像処理装置の表示空間の内部表現処理のフローチャートである。
【図33】表示空間内のパノラマ画像の例を示す図である。
【図34】隣接領域の探索についての例を示す図(1)、(2)である。
【図35】隣接領域の探索についての例を示す図(3)である。
【符号の説明】
【0144】
1 画像データベース装置
10 ネットワーク
11 画像処理装置
501 表示空間の円柱
502 表示空間の半球
503 表示空間の全球
504 表示空間のパーティクル
【技術分野】
【0001】
本発明は、画像を記憶する方法、装置に関する。より詳しくは、画像を用いた仮想空間の構築のために、撮影した画像を記憶する方法、装置に関する。
【背景技術】
【0002】
従来より、現実世界を再現した仮想空間を構築しユーザに提供するコンピュータシステムが知られている。この仮想空間に、仮想世界(Virtual World)を生成し、アバタと呼ばれる自分の分身を登場させるゲームや、調査、解析又は予測などのシミュレーションを行うシステムなどが存在する。
【0003】
これらのVirtual Worldの生成において、現実世界を再現した仮想空間を構築するには、現実世界で撮影された写真を使用し、ユーザを含む空間内部にそれらの写真を貼り付ける(テクスチャ・マッピング)ことで擬似的な仮想空間を構築するPhoto−based Rendering(画像作成)技術がある。
【0004】
このPhoto−based Rendering技術を用いたものとして、Virtual Worldの生成を目的として、専用の撮影システムにおいて、同時にシーケンシャルに撮影した複数の実写をそれら撮影した位置情報とともに効率よく画像データベースシステムに記憶し、再生時には任意の位置からリアルタイムに画像を再生し表示するシステムが知られている(特許文献1参照)。
【0005】
また、Photo−based Renderingに関する技術として、注視点方向が異なる複数の高精細画像及び複数の背景画像をそれぞれの注視点方向を検索インデックスとして記録媒体に記録しておき、再生時に観察者の視線方向を検出し画像処理により合成し表示する技術(特許文献2参照)や、位置及び姿勢を利用した電子工学式視覚システム(特許文献3参照)や、全天周方向に向けて配置したカメラから得られた複数の画像から天周画像を補間生成する方法(特許文献4参照)などが知られている。
【0006】
一方、現実世界を撮影するカメラとして、コンピュータにデジタルデータによる精密な画像を提供することができるデジタルカメラが存在する。このデジタルカメラにGPS(Global Positioning System)と方位センサーあるいは3次元ジャイロセンサーを取り付けて撮影位置、撮影方向、撮影仰角を記録することができるデジタルカメラが知られている(特許文献5参照)。
【特許文献1】特開平11−168754号公報
【特許文献2】特開平7−236113号公報
【特許文献3】特表平9−505138号公報
【特許文献4】特開2002−92597号公報
【特許文献5】特開2004−080359号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、現実世界を再現した仮想空間を生成するには、現実世界に存在する“もの”の3次元形状モデル及び属性情報(テクスチャ、色、材質など)を構築し、Photo−realisticにレンダリングする方法もあるが、このための3次元形状モデルの構築、及びその形状の面ごとの属性情報としてデジタルカメラによって撮影された画像を準備することは、膨大な労力と時間がかかり現実的でない。また、特許文献1では、広大な現実世界をシーケンシャルに撮像する必要があり、これも現実的ではない。また、特許文献2〜4は個々の表示技術であって、仮想空間の構築の基礎となる技術ではない。
【0008】
一方、忠実に現実世界をPhoto−based Rendering技術によって再現するためには、さまざまな場所から実際に撮影した膨大な数の写真を収集する必要があり、大勢の人たちの協力を必要とする。また、これらの膨大な数の写真を利用するために撮影条件や、属性情報などを備えた画像として記憶し、管理する必要もある。
【0009】
そこで、現実世界を忠実に再現した仮想世界を迅速に生成するために、大勢の人たちの協力が得られ、誰もが自由に画像として登録するという共同作業によって仮想世界を生成できるシステムが求められている。
【0010】
本発明は、撮影された画像を用いた仮想世界(Photo−based Virtual World)の生成のために、自由に参加した多くの人たちが撮影した画像を記憶する画像データベース装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明は、複数のユーザが撮影した画像をネットワークを介して受信する。受信した画像は、撮影位置と、撮影条件と、画像属性とを有している。
そして、受信した画像と、その画像の撮影位置を含む仮想空間の領域に対応付けられた画像とが、所定の要件を満たすことを条件として、領域を分割し、受信した画像を分割した領域に対応付けて記憶することを特徴とする画像データベース装置である。より詳細には本発明は、次の特徴を備える。
【0012】
本発明の画像データベース装置は、ネットワークを介して通信を行い、複数のユーザが撮影した画像のデータを受信する。受信した画像は、その画像を撮影した情報として、ユーザの間で用いられる共通の座標によって表された撮影位置と、撮影するための撮影条件と、撮影した画像の画像属性とを有している。そして、受信した画像と、受信した画像の撮影位置を含む仮想空間の領域に対応付けて記憶された画像とが、所定の要件を満たすことを条件として、領域を分割し、分割した領域に受信した画像を対応付けて記憶する。
【0013】
このことにより、ネットワークを介して、複数のユーザが撮影した画像を、その画像の撮影位置を含む仮想空間の領域に対応付けて画像データベースとして記憶することができる。よって、撮影された画像に基づいて現実世界を忠実に再現した仮想世界の構築のための画像データベースを、大勢の人たちにより、迅速に作成することができる。しかもその情報は大勢の人たちによって常に更新され得る。また、更新された履歴などを記録することで、過去の世界を再現するための情報とすることもできる。
【0014】
さらに、画像データベース装置は、画像の特徴を算出し、画像同士の類似度を求める判定手段をさらに備え、所定の要件は、撮影条件が所定の範囲内であること、及び判定手段による類似度が所定の範囲外であることを条件として、領域を分割し、分割した領域に受信した画像を対応付けて記憶する。よって、撮影された場所に応じて効率よく撮影された画像を記憶することができる。
【0015】
さらに、制御手段は、領域を分割し、記憶し直した領域に、対応付けて記憶された画像が存在し、その画像と受信した画像とが所定の要件を満たすことを条件として、領域の分割を繰り返し、分割した領域と受信した画像とを対応付けて記憶する。よって、複数のユーザが提供する画像の増加に従い、対応付けられる仮想空間の領域も分割され、仮想空間の領域と撮影された画像との対応付けがより現実の世界に近い画像データベースを早期に構築することができる。
【0016】
さらに、ユーザの間で用いられる共通の座標は、緯度及び経度である。よって、多くの人たちが自由に参加し、撮影した画像を提供することができ、現実の世界に近い画像データベースを早期に構築することができる。
【0017】
さらに、撮影条件は撮影方向を含み、制御手段は、撮影方向が所定の範囲外であることを条件として、撮影方向を有する画像と領域とを対応付けて記憶することにより画像を撮影方向に分類して記憶する。よって、制御手段は、多くの人たちが撮影した画像を領域ごとに撮影方向に分類して記憶するので、より現実の世界に近い画像データベースを早期に構築することができる。
【0018】
さらに、撮影条件は撮影仰角を含み、制御手段は、撮影仰角が所定の範囲外であることを条件として、撮影仰角を有する画像と領域とを対応付けて記憶することにより画像を撮影仰角に分類して記憶する。よって、制御手段は、多くの人たちが撮影した画像を領域ごとに撮影仰角に分類して記憶するので、より現実の世界に近い画像データベースを早期に構築することができる。
【0019】
さらに、撮影条件は撮影日時を含み、制御手段は、撮影日時が所定の範囲外であることを条件として、撮影日時を有する画像と領域とを対応付けて記憶することにより画像を撮影日時に分類して記憶する。よって、制御手段は、多くの人たちが撮影した画像を領域ごとに撮影日時に分類して記憶するので、より現実の世界に近い画像データベースを早期に構築することができる。また、撮影日時を有した画像が管理されているので、過去の世界を再現するための情報とすることもできる。
【発明の効果】
【0020】
本発明によれば、撮影された画像に基づいて現実世界を忠実に再現した仮想世界の構築のための画像データベースが、ネットワークを通じて大勢の人たちによる自由参加型で作成できるようになる。これにより、広範囲な場所から撮影された画像を早期に収集できるようになり、しかもその情報は大勢の人たちによって常に更新され得る。また、更新された履歴などを記録することで、過去の世界を再現するための情報とすることもできる。
【0021】
さらに、本発明は、撮影された画像を領域分割手段によって分割された領域に対応付けて記憶する。よって、撮影された画像を撮影された場所に応じて効率よく記憶することができる。
【0022】
本発明によれば、撮影された画像を用いた仮想世界(Photo−based Virtual World)の生成のために、自由に参加した多くの人たちが撮影した画像を、記憶する画像データベース装置を提供することができる。
【発明を実施するための最良の形態】
【0023】
以下、本発明の実施形態について述べる。
【0024】
仮想空間を構築するための画像は、仮想空間の領域と対応付けるための撮影位置情報を有する。撮影位置情報は、参加した多くの人の間で用いられる共通の座標(例えば、緯度及び経度)で表される。また、参加した多くの人が提供する画像は、それらの画像を接合したり、合成したり、障害物を除去したりすることができるために実際に現実世界を撮影した画像である。本実施形態では、例えば、デジタルカメラにより撮影された画像を対象とする。この画像の撮影位置は、デジタルカメラ内臓のGPS機能などにより求められた緯度及び経度情報が好ましいが、別途画像データに追加入力された位置情報(例えば、入力された緯度及び経度)であってもよい。
【0025】
参加した多くの人が提供する画像の撮影条件として、撮影位置の他に、撮影方向、撮影仰角、撮影距離、撮影日時(日付、時刻)などがある。また、属性情報として、画像サイズ、解像度、シャッター速度、レンズ口径焦点距離などがある。これらの情報は、デジタルカメラの性能により自動的に画像に付加される場合や、別装置において追加入力されることにより付加される場合がある。このように、実際に撮影された画像であって位置情報、撮影条件、属性情報を有する画像を実写画像という。
【0026】
参加した多くの人が提供する実写画像は、実写画像の撮影位置に基づいて仮想空間の領域と対応付けて記憶される。撮影位置は、例えば、緯度及び経度によって表され、仮想空間の領域の範囲は、例えば、緯度及び経度の範囲によって定められる。よって、撮影位置と、撮影位置を含む仮想空間の領域とを対応付けることができる。そして、撮影された画像と、仮想空間の領域とを対応付けて記憶することにより画像データベース(DB)に登録される。
【0027】
登録は、次の様に行われる。撮影位置を含む仮想空間の領域に画像が登録されていない場合には、その画像をその領域に対応させて登録する。撮影位置を含む仮想空間の領域に画像が登録されている場合は、登録されている画像と比較判定する。比較判定し、撮影条件(撮影方向、撮影仰角など)が所定の範囲外であることを条件として、同じ領域に登録される。また、撮影条件(撮影方向、撮影仰角など)が所定の範囲内であること、及び画像の類似度が所定の範囲内であることを条件として、その画像は同様に、同じ領域に登録される。一方、比較判定し、撮影条件(撮影方向、撮影仰角など)が所定の範囲内であること、及び画像の類似度が所定の範囲外であることを条件として、仮想空間の領域を分割し、その画像は、異なる領域に登録される。領域の分割と比較判定とは、その画像を登録する条件が満たされるまで繰り返し行われる。
【0028】
仮想空間の領域に対応付けて登録された実写画像は、仮想空間で画像を見る視点位置及び視点方向に基づいてレンダリングされる。すなわち、視点位置に基づいて視点位置に相当する撮影位置を含む領域が求められ、求められた領域に対応付けられた実写画像のうち視点方向に相当する撮影方向の実写画像が取得される。そして取得された実写画像は表示空間に基づいてレンダリングされることにより仮想空間が構築される。
【0029】
以下、図に従って説明する。
【0030】
図1は、本発明の実施形態に係る発明の概要を示す図である。実写画像の撮影位置に基づいて、撮影位置を含む仮想空間の領域に実写画像を登録することを説明している。
【0031】
図1(1)は、撮影位置101から矢印方向111をデジタルカメラで撮影し、画像201を撮影したことを示している。画像201は、撮影位置101に対応する仮想空間の領域Sに登録されている画像が存在しないので、領域Sに矢印方向111の画像として登録される。
【0032】
図1(2)は、撮影位置102から矢印方向111をデジタルカメラで撮影し、画像202を撮影したことを示している。画像202は、撮影位置102に対応する仮想空間の領域Sに既に登録されている画像201と比較判定され、類似度が所定の範囲外であるので、領域Sを4つに分割した領域S−1,S−2,S−3,S−4のうち撮影位置102に対応する仮想空間領域S−3に、矢印方向111の画像として登録される。また、画像201は、撮影位置101に対応する仮想空間領域S−1に対する、矢印方向111の画像としての登録に変更される。
図1(3)は、撮影位置103から矢印方向111をデジタルカメラで撮影し、画像203を撮影したことを示している。画像203は、撮影位置103に対応する仮想空間の領域S−3に既に登録されている画像202と比較判定され、類似度が所定の範囲外であるので、領域S−3をさらに4つに分割した領域S−31,S−32,S−33,S−34のうち撮影位置103に対応する仮想空間の領域S−31に、矢印方向111の画像として登録される。同様に、画像202も、撮影位置102に対応する仮想空間領域S−32に対する、矢印方向111の画像としての登録に変更される。
【0033】
図2は、本実施形態に係るシステムの概要を示す図である。実写画像を撮影位置に基づいて仮想空間の領域に登録し、画像データベース(DB)及びパノラマ画像データベース(DB)を生成する。生成した画像DBに登録されている実写画像に基づいて表示空間を構築し仮想空間を生成することを説明している。
【0034】
現実の世界において撮影された実写画像は、撮影された撮影位置、撮影方向、撮影条件、パノラマ用画像情報(パノラマ用画像の登録も可能にする連続画像フラグなど)などの情報を含んでいる。画像DB321生成において、領域分割処理301は、類似度判定処理302の判定結果に基づいて、仮想空間の領域を分割する。画像管理処理303は、分割された領域に、実写画像を撮影方向、撮影条件(撮影日時、焦点距離)などに分類し、画像DB321に登録する。一方、レンダリング処理において、表示空間設定306(仮想空間における位置、移動軌跡、視線方向)と、表示条件設定307(表示条件として、例えば、表示モード、季節、時間帯など)とに基づいて、表示空間生成308を行う。表示空間生成308には、パネル壁面表示309、パネル焦点位置表示310、パノラマ画像表示311に必要な空間(円柱、半球、全球などの形状やパネルを貼り付ける形状など)が生成される。また、パノラマ画像生成処理においては、画像DB321に基づいて、画像合成処理304によってパノラマ画像生成305を行い、パノラマ画像DB322を生成する。
【0035】
図3は、撮影位置、撮影条件を説明する図である。
【0036】
図3(1)は、ある撮影位置からある撮影方向の現実の風景の写真を撮影していることを示す図である。このようにして撮影された実写画像は、撮影位置、撮影方向などの撮影条件を備える。
【0037】
図3(2)は、撮影方向を8方向(North(N)、NorthEast(NE)、East(E)、SouthEast(SE)、South(S)、SouthWest(SW)、West(W)、NorthWest(NE))に分類した例を示す図である。8方向に分類した場合には、例えば、撮影方向331は、撮影方向Nの範囲に含まれる。撮影方向は16方向、32方向などとすることも可能である。
【0038】
図3(3)は、撮影仰角を5方向(上方(U)、斜め上方(UH)、水平(H)、斜め下方(DH)、下方(D))に分類した例を示す図である。5方向に分類した場合には、例えば、撮影仰角341は、撮影仰角の範囲Hに含まれる。撮影仰角は9方向などとすることも可能である。
【0039】
図4は、4分岐ツリー(Quadtree)で領域管理する例を示す図である。仮想空間の領域を4分割し、分割した領域に実写画像を登録することを説明している。
【0040】
図4(1)は、領域Sの分割結果の例を示している。領域IDとして、S−1〜S−4を時計回りに付し、さらにS−1の分割結果をS−11〜S−14、S−3をS−31〜S−34に分割していることを示している。領域の分割は、緯度及び経度によって定められる範囲を4つに分割することにより行われる。そして、撮影位置を含む分割した領域に登録されている画像との比較判定を行い所定の要件を満たすことを条件として同じ領域に登録される。領域の分割は、画像を登録することができる要件が満たされるまで繰り返し行われる。
【0041】
図4(2)は、分割した領域を4分岐ツリー(Quadtree)で領域管理していることを示している。領域Sが4分割され領域IDとして、S―1〜S―4となり、S―1がさらに分割されS―11〜S―14となっている。同様に、S−12がS−121〜S−124と分割され、S−3がS−31〜S−34、S−33がS−331〜S−334となっていることを示している。したがって、撮影位置から、撮影位置を含む領域を求めることができる。なお、分割を縦方向、横方向と順次2分割し、2分岐(Binarytree)で管理することも可能である。
【0042】
図5は、障害物が存在する場合の例を示す図である。障害物が存在する場合の領域の分割と、分割した領域に実写画像を登録することを説明している。
【0043】
図5(1)は撮影位置P1と撮影位置P2との間に障害物401が存在する場合を示している。図5(2)は、撮影位置P1で撮影された画像は、撮影位置P1を含む仮想空間の領域Sに登録されることを示している。図5(3)は、撮影位置P1で撮影された画像が登録された後に、撮影位置P2で撮影された画像は、撮影位置P2を含む仮想空間の領域Sに登録されている画像とは異なるので、領域Sを撮影位置P1とP2とが別の領域に含まれるようになるまで繰り返し分割し、撮影位置P2を含む仮想空間の分割された領域S−1に登録され、撮影位置P1で撮影された画像は、撮影位置P1を含む仮想空間のS−3に登録し直されることを示している。
【0044】
図6は、4分岐ツリーで領域管理する画像データベースの例を示す図である。分割した領域ごとに実写画像のデータと、撮影条件及び画像属性とを分類して登録した画像データベースの構成の概要を示している。
【0045】
領域Sは、S−1〜S−4に分割され、さらにS−1がS−11〜S−14に分割されている。そして、分割された領域ごとに、データ管理用情報(領域の座標、領域数、下位、上位ノードへのポインタ、領域IDなど)を備え、サーチ処理の高速化のためのデータ(撮影方向のデータが存在する情報など)を備えている。さらに、撮影条件管理情報として撮影方向ごとに、撮影時刻などが記憶され、撮影時刻ごとに画像及び画像属性情報(画像サイズ、解像度、その他カメラの属性情報など)が記憶され、分類管理される。さらに、パノラマ画像DBへのポインタを備えている。
【0046】
例えば、所定の範囲の撮影方向ごとに実写画像のデータを備えている。撮影方向ごとの実写画像データは、例えば8方向ごとのポインタで示される。さらに実写画像は、例えば、撮影時刻(季節、朝昼夜、時間など)に分類管理される。さらに、フォーカスのあった対象物までの距離データがあればさらに対象物までの距離によって分類管理される。
【0047】
現実の世界を撮影する場合、同じ場所、同じ方向の写真でも、季節や一日の時間帯によって画像が異なるので、時間軸上において画像の類似度をチェックし、類似度が所定の範囲内でない場合には時間空間を分割してコンテンツを管理する。すなわち、撮影時刻などの時間帯に分類して領域に登録する。
【0048】
画像データを検索する方法は、画像データベースの構成に基づいて行われる。すなわち、画像を登録する場合に、撮影位置に基づいて、撮影位置を含む仮想空間の領域を求め、領域に登録された実写画像を取得することができる。すなわち、仮想空間の領域は4分岐ツリー構造で領域管理されているので、ツリー構造をたどり、領域の範囲の座標と比較することにより撮影位置を含む領域を求めることができる。
【0049】
例えば、位置P(X、Y)が与えられた場合、ツリー構造をたどり、領域の座標((X0、Y0)、(X1、Y1))と比較し、X0≦X≦X1かつY0≦Y≦Y1を満たす領域を求めることができる。そして、求めた領域に登録されている実写画像を取得することができる。さらに、実写画像を再生(レンダリング)し、仮想的な表示空間を構成する場合において、表示空間を眺める視点位置及び視線方向を、実写画像の撮影位置及び撮影方向として画像データベースを検索し、取得した実写画像をレンダリングすることにより、現実世界を忠実に再現した仮想的な表示空間を構築することができる。
【0050】
ある位置から眺めた全方位の実写画像を再生する場合に、その位置を含む領域に全ての方向の実写画像が登録されていない場合がある。その場合に、隣接する領域に、該当する撮影方向の実写画像が登録されていればそれを代用することによって類似の画像を生成できる可能性が高い。この場合、4分岐ツリー構造でデータを管理することにより、明快なサーチルールによって隣接する領域の画像を取得することができる。
【0051】
例えば、S−13の領域に隣接する領域は、領域が均質に分割されている場合は、北から時計回りにS−12、S−21、S−24、S−31、S−42、S−41、S−14、S−11である(図4において、S−12、S−21、S−24、S−41,S−42を補って参照)。しかし、領域の分割は均質に行われるとは限らないので、ツリー構造に領域が管理されていない場合は上位の領域が隣接領域となる。すなわち、S−21、S−24は、S−2が、S−42、S−41はS4が隣接領域となる。
【0052】
上述した隣接領域の探索について領域のラベルを2進数で表現する方法で説明する。左下端を(0,0)、右上を(1,1)とした正規化空間に対して、再帰的に4分割を行い、領域を分割する。n回均等に4分割を繰り返すと、2n×2n個の領域に分割される。その場合の領域の左下端及び右上端の座標は、それぞれ(k/2n、j/2n)及び((k+1)/2n、(j+1)/2n)となる。ここで、0≦k、j<2nの整数値である。すなわち、分割の度合n、位置k、jの3変数で識別される。例えば、領域の2進数のラベルとして(0、0)は、領域IDのS−4、(1、1)はS−2、(00、00)は(S−44)にそれぞれ対応する。
【0053】
そして、領域(k(1/2)n、j(1/2)n)の隣接領域は、均等に分割されている場合、次のようにして求めることができる。
North側の隣接領域は、(k(1/2)n、(j+1)(1/2)n)、j<2n−1で表される。ここで、j=2n−1の場合は最北端の領域であり、隣接領域は存在しない。
NorthEast側の隣接領域は、((k+1)(1/2)n、(j+1)(1/2)n)、k<2n−1かつj<2n−1で表される。ここで、k=2n−1又はj=2n−1の場合は最北端又は最東端の領域であり、隣接領域は存在しない。
East側の隣接領域は、((k+1)(1/2)n、j(1/2)n)、k<2n−1で表される。ここで、k=2n−1の場合は最東端の領域であり、隣接領域は存在しない。
SouthEast側の隣接領域は、((k+1)(1/2)n、(j−1)(1/2)n)、k<2n−1で表される。ここで、k=2n−1又はj=0の場合は最南端又は最東端の領域であり、隣接領域は存在しない。
South側の隣接領域は、(k(1/2)n、(j−1)(1/2)n)、j>0で表される。ここで、j=0の場合は最南端の領域であり、隣接領域は存在しない。
SouthWest側の隣接領域は、((k−1)(1/2)n、(j−1)(1/2)n)、k>0かつj>0で表される。ここで、k=0又はj=0の場合は最南端又は最西端の領域であり、隣接領域は存在しない。
West側の隣接領域は、((k−1)(1/2)n、j(1/2)n)、k>0で表される。ここで、k=0の場合は最西端の領域であり、隣接領域は存在しない。
NorthWest側の隣接領域は、((k−1)(1/2)n、(j+1)(1/2)n)、k>0かつj<2n−1で表される。ここで、k=0又はj=2n−1の場合は最北端又は最西端の領域であり、隣接領域は存在しない。
【0054】
さらに、領域(k(1/2)n、j(1/2)n)の隣接領域は、均等に分割されていない場合であって、分割の度合が粗い場合(m≦n)は、次のようにして求めることができる。ただし、int()は、小数点以下を切り捨て整数値とする関数である。
North側の隣接領域は、(int(k/2n−m)(1/2)m、int((j+1)/2n−m)(1/2)m)、j<2n−1で表される。ここで、j=2n−1の場合は最北端の領域であり、隣接領域は存在しない。
NorthEast側の隣接領域は、(int((k+1)/2n−m)(1/2)m、int((j+1)/2n−m)(1/2)m)、k<2n−1かつj<2n−1で表される。ここで、k=2n−1又はj=2n−1の場合は最北端又は最東端の領域であり、隣接領域は存在しない。
East側の隣接領域は、(int((k+1)/2n−m)(1/2)m、int(j/2n−m)(1/2)m)、k<2n−1で表される。ここで、k=2n−1の場合は最東端の領域であり、隣接領域は存在しない。
SouthEast側の隣接領域は、(int((k+1)/2n−m)(1/2)m、int((j−1)/2n−m)(1/2)m)、k<2n−1かつj>0で表される。ここで、k=2n−1又はj=0の場合は最南端又は最東端の領域であり、隣接領域は存在しない。
South側の隣接領域は、(int(k/2n−m)(1/2)m、int((j−1)/2n−m)(1/2)m)、j>0で表される。ここで、j=0の場合は最南端の領域であり、隣接領域は存在しない。
SouthWest側の隣接領域は、(int((k−1)/2n−m)(1/2)m、int((j−1)/2n−m)(1/2)m)、k>0かつj>0で表される。ここで、k=0又はj=0の場合は最南端又は最西端の領域であり、隣接領域は存在しない。
West側の隣接領域は、(int((k−1)/2n−m)(1/2)m、int(j/2n−m)(1/2)m)、k>0で表される。ここで、k=0の場合は最西端の領域であり、隣接領域は存在しない。
NorthWest側の隣接領域は、(int((k−1)/2n−m)(1/2)m、int((j+1)/2n−m)(1/2)m)、k>0かつj<2n−1で表される。ここで、k=0又はj=2n−1の場合は最北端又は最西端の領域であり、隣接領域は存在しない。
【0055】
さらに、領域(k(1/2)n、j(1/2)n)の隣接領域は、均等に分割されていない場合であって、分割の度合が細かい場合(m≧n)は、次のようにして求めることができる。ここで、North, East, South, Westの場合は、分割の度合いが同じ又は異なる複数の領域と隣接することになり、最も分割の度合の細かい領域の分割の度合をmとした場合、0≦s<2m−nの全てのsが対象である。ただし、分割の度合は隣接領域によって異なりm分割の領域が存在しない部分には、上位の領域を利用する。
North側の隣接領域は、(k×2m−n+s)(1/2)m、(j+1)×2m−n)(1/2)m)、j<2n−1で表される。ここで、j=2n−1の場合は最北端の領域であり、隣接領域は存在しない。
NorthEast側の隣接領域は、((k+1)×2m−n)(1/2)m、((j+1)×2m−n)(1/2)m)、k<2n−1かつj<2n−1で表される。ここで、k=2n−1又はj=2n−1の場合は最北端又は最東端の領域であり、隣接領域は存在しない。
East側の隣接領域は、((k+1)×2m−n)(1/2)m、(j×2m−n+s)(1/2)m)、k<2n−1で表される。ここで、k=2n−1の場合は最東端の領域であり、隣接領域は存在しない。
SouthEast側の隣接領域は、((k+1)×2m−n)(1/2)m、(j×2m−n−1)(1/2)m)、k<2n−1かつj>0で表される。ここで、k=2n−1又はj=0の場合は最南端又は最西端の領域であり、隣接領域は存在しない。
South側の隣接領域は、((k×2m−n+s)(1/2)m、((j×2m−n−1)(1/2)m)、j>0で表される。ここで、j=0の場合は最南端の領域であり、隣接領域は存在しない。
SouthWest側の隣接領域は、((k×2m−n−1)(1/2)m、(j×2m−n−1)(1/2)m)、k>0かつj>0で表される。ここで、k=0又はj=0の場合は最南端又は最西端の領域であり、隣接領域は存在しない。
West側の隣接領域は、((k×2m−n−1)(1/2)m、(j×2m−n+s)(1/2)m)、k>0で表される。ここで、k=0の場合は最西端の領域であり、隣接領域は存在しない。
NorthWest側の隣接領域は、((k×2m−n−1)(1/2)m、(j+1)×2m−n)(1/2)m)、k>0かつj<2n−1で表される。ここで、k=0又はj=2n−1の場合は最北端又は最西端の領域であり、隣接領域は存在しない。
【0056】
図7は、撮影方向ごとに領域を管理することも可能であることを示す図である。実写画像を登録するために、撮影方向ごとに領域を管理する。この場合は、8方向(N,NE,E,SE,S,SW,W,NW)の撮影方向ごとに4分岐ツリーで領域が構成されている。ある撮影方向の画像がないケースが多ければ、その方向の領域分割がなされずにすむ。
【0057】
図8は、実写画像が登録されている表示空間が仮想世界の中でどこに存在するかを示すための、表示空間の外部表現の一例を示す図である。
【0058】
ユーザが、仮想空間を構成する表示空間を、その表示空間の外から眺めた場合の形態として、本実施形態では、4種類ある。すなわち、本実施形態における代表的な表示空間の外部表現は、円柱(cylindrical shape)、半球(semi−sphere)、全球(sphere)、及びパーティクル(particle)(雲状)がある。なお、表示空間は、ある領域に対して生成することも、複数の領域(例えば、4分岐ツリー構造の上位領域)から表示空間を生成することも可能である。なお、パノラマ表示の場合には、予め画像が登録された時点でパノラマ画像空間は、円柱、半球、全球の形状が決定されている。これらの表示空間の表現方法は、1つの形状として単色でレンダリングしたり、空間に登録されている1つあるいは複数の代表の実写画像をテクスチャ・マッピングしたりなどができる。
【0059】
図8(1)は、表示空間が円柱501である場合を示す図である。図8(2)は、表示空間が半球502である場合を示す図である。図8(3)は、表示空間が全球503である場合を示す図である。図8(4)は、表示空間がパーティクル504である場合を示す図である。仮想空間はこれらの表示空間から構成され、これらの表示空間を移動することにより仮想空間内を移動することになる。
【0060】
これらの表示空間の表示条件の1つである透明度には、可視(visible、透過度0%)、不可視(invisible、透過度100%)、半透明(translucent)を設けている。可視(visible)は、その表示空間を表示することをいうが、前景に可視の表示空間があれば隠れて見えなくなり、前景に半透明の表示空間があれば透けてみえる。不可視(invisible)は、その表示空間を完全に表示しないことをいう。半透明(translucent)は、その背景にある表示空間を透かして見せるようにする。
【0061】
半透明表示の方法として、手前の面の画像の光の強度をI1、その後方の面の光の強度をI2とすると、光の強度は、I=αI2+(1−α)I1となる。ここで、α(0≦α≦1.0)は透過率であり、α=1の時は完全透明、α=0の時は完全不透明となる。
【0062】
表示条件の変更方法には、予めユーザにより設定されるパラメータ設定、対話的にコマンドなどによるパラメータ設定、ユーザの振る舞いにより動的に変更するパラメータ設定(コンテキスト・アウエアネスによるパラメータ設定)がある。
【0063】
このコンテキスト・アウエアネスによるパラメータ設定では、例えば、ユーザが注視している時間によって表示条件を変更する。すなわち、ユーザがある一定時間以上注視していると前景の半透明であった表示空間がより明瞭に「可視」として表示される。また、コンテキスト・アウエアネスによるパラメータ設定では、ユーザの移動に伴って、見える表示空間の切り替えをフェードイン、フェードアウトするように表示条件を変更する。
【0064】
表示空間の内部表現、すなわち、実写画像をレンダリングする表示空間の内部に移動し、レンダリングされた画像を見た場合の表現として、パノラマ表示(panoramic display)、パネル壁面表示(panel display on wall)、パネル焦点位置表示(panel display on focal distance)と、それらの表示方法の混在表示がある。
【0065】
パノラマ表示(panoramic display)は、表示空間(円柱、半球、全球、パーティクル)の内側の面に実写画像をマッピングし、表示する。
【0066】
パネル壁面表示(panel display on wall)は、表示空間の壁面に、重ね合わせ、スクロールなどの多重表示技術を活用して表示する。すなわち、視線方向の画像の中から手前の空間の画像を見ることができる。
【0067】
パネル焦点位置表示(panel display on focal distance)は、視点位置から撮影距離だけ離れた場所に画像を配置し、表示する。
【0068】
それらの表示方法の混在表示では、実写画像の属性、表示空間の特徴などから、表示方法を混在させ表示空間の内部を生成する。
【0069】
また、実写画像の表示条件の1つである透明度には、可視(visible、透明度0%)、不可視(invisible、透明度100%)、半透明(translucent)を設けている。可視(visible)は、その実写画像を表示することをいうが、前景に可視の実写画像があれば隠れて見えなくなり、前景に半透明の実写画像があれば透けてみえる。不可視(invisible)は、その実写画像を完全に表示しないことをいう。半透明(translucent)は、その背景にある実写画像を透かして見せるようにする。なお、実写画像が未登録で存在しない場合には、「無地一色」の画像としてこれらの表示条件の下に表示される。
【0070】
実写画像の表示条件には、属性の条件設定として、例えば、撮影時刻(朝・夕、季節など)の設定を設けている。設定された撮影時刻により、朝昼夜や時間ごとの現実世界を忠実に再現することができる。また、隣接領域の画像の表示・非表示の設定を設けている。隣接領域の表示には、隣接領域からの画像表示であることを明示する設定をも設けている。画像が未登録の領域であることを知らせ、ユーザに画像の登録を促すことができる。さらに、例えば、撮影日の設定を設けている。実写画像は撮影日時を有しているので、例えば、再現する撮影日を設定すれば、新しい建物などが建設されることにより現実の世界が更新されていても、設定された撮影日以前の実写画像により過去の状態を再現することもできる。
【0071】
実写画像の表示条件の変更には、予めユーザにより設定されるパラメータ設定、対話的にコマンドなどによるパラメータ設定、ユーザの振る舞いにより動的に変更するパラメータ設定(コンテキスト・アウエアネスによるパラメータ設定)がある。
【0072】
このコンテキスト・アウエアネスによるパラメータ設定では、例えば、ユーザが注視している時間によって表示条件を変更する。すなわち、ユーザがある一定時間以上注視していると前景の半透明であった画像がより明瞭に「可視」として表示される。また、コンテキスト・アウエアネスによるパラメータ設定では、ユーザの移動に伴って、見える画像の切り替えをフェードイン、フェードアウトするように表示条件を変更する。
【0073】
図9は、パノラマ画像表示の例を示す図である。例えば、円柱の内側の面に画像をマッピングすることによって、パノラマ画像表示が可能となる。ユーザはその空間の内部から画像を見ることができる。図9において、vは表示空間の高さを示し、uは表示空間の中心からの視野角を示している。そして、ユーザの移動により、例えば、表示空間内の視点位置511から、ユーザはマッピングされた画像の内の一部512を見ることができる。
【0074】
図10は、実写画像が登録されている表示空間が仮想世界の中でどこに存在するかを示す図である。
【0075】
図10(1)は、仮想世界を構成する表示空間が円柱501であって、表示空間の外から眺めた場合を示している図である。図10(2)は、表示空間をユーザが移動し、視線方向531の表示空間内を見ていることを示している図である。パノラマ表示空間(円柱、半球、全球、パーティクル)の中に入ると、その空間内の例えば、パノラマ画像を見ることができ、ユーザは移動することによって仮想世界を感じることができる。
【0076】
図11は、パネル壁面表示の概念を示す図である。領域に登録された実写画像は、撮影位置、撮影方向、撮影仰角などの情報を有している。領域は座標による範囲を有している。よって、領域に登録された実写画像を、領域の範囲に、例えば、半球の壁面があるものとして、撮影方向の壁面にマッピングすることにより実写画像をレンダリングすることができる。
【0077】
図11において、矢印線551、552、553により、現実空間の山すそを歩いて撮影した写真を、仮想空間の表示空間A,B、Cにパネル壁面表示していることを、それぞれ、概念的に表している。表示空間へのパネル壁面表示によって、アバタが破線532に沿って、表示空間Aから表示空間Bへ移動し、さらに表示空間Cへ移動すると、アバタの位置に基づいて表示空間の壁面の画像が異なる。表示空間Aにおいては遠くの山561が、表示空間Bにおいては山563の前景に樹木562をともない、さらに表示空間Cにおいては頂上付近の風景564となるのであたかも現実に移動し、風景が異なるかのように感じられる。また、表示空間内では、パネル壁面に沿う全壁面に、重ね合わせ、スクロールなどの多重表示技術を活用してレンダリングされるので、あたかも現実の空間のなかにいるように感じられる。
【0078】
図12は、パネル焦点位置表示の概念を示す図である。領域に登録された実写画像は、撮影位置、撮影方向、撮影仰角の他に撮影距離の情報も有している。よって、視点位置に基づいて取得した領域に登録された実写画像を、表示空間内の視点位置から、撮影距離に応じた距離に壁面を想定しマッピングすることにより実写画像をレンダリングすることができる。
【0079】
図12において、矢印線571、572、573により表示空間Aに、矢印線574、575により表示空間Bに、矢印線575により表示空間Cにパネル焦点位置表示していることを、それぞれ、概念的に表している。
【0080】
図13は、表示空間Aにおけるパネル焦点位置表示の概念を示す図である。表示空間へのパネル焦点位置表示によって、アバタ580が破線532に沿って、表示空間Aへ移動すると、アバタ580の位置に基づいて表示空間Aのパネル焦点位置表示がされる。その結果、表示空間Aにおいては近くの山581と、近くの樹木582、遠くの山583、584とが撮影距離に応じて見える。
【0081】
図14は、表示空間Bにおけるパネル焦点位置表示の概念を示す図である。表示空間へのパネル焦点位置表示によって、アバタ580が破線532に沿って、表示空間Bへ移動すると、アバタ580の位置に基づいて表示空間Bのパネル焦点位置表示がされる。その結果、表示空間Bにおいては近くの草花587、近くの樹木588、近くの山589、遠くの山585、遠くの樹木586とが撮影距離に応じて見える。
【0082】
図15は、表示空間Cにおけるパネル焦点位置表示の概念を示す図である。表示空間へのパネル焦点位置表示によって、アバタ580が破線532に沿って、表示空間Cへ移動すると、アバタ580の位置に基づいて表示空間Cのパネル焦点位置表示がされる。その結果、表示空間Cにおいては近くの山585、近くの樹木586とが撮影距離に応じて見える。
【0083】
図16〜図20は、実写画像の表示方法の一例を示す図である。
【0084】
図16は、表示空間の中に包含された別の表示空間が存在する場合の表示方法を示す図である。パノラマ画像の例で示す。表示空間601内のユーザが見ている視野角内に、その空間に包含される別の表示空間602が存在する場合、その表示空間602を可視(Visible),不可視(Invisible),半透明(Translucent)などの表示条件で表示する。内包される別の表示空間602が半透明に表示され、かつ、コンテキスト・アウエアネス・モードであれば、ユーザがある一定時間以上注視している場合には、その表示空間602は半透明から不可視となって、後方の表示空間601が明瞭に表示される。
【0085】
図17は、表示空間の中に別の表示空間が完全に含まれる場合の表示方法を示す図である。パノラマ画像の例で示す。表示空間内のユーザがいる表示空間612が、別の表示空間611に完全に内包されている場合、一番、内側の表示空間612の画像を表示する。表示空間612の画像が半透明に表示され、後方の表示空間611が透けて表示され、かつ、コンテキスト・アウエアネス・モードであれば、ユーザがある一定時間以上注視している場合には、手前にある表示空間612の画像が半透明から明瞭な可視の表示となる。
【0086】
図18は、表示空間が別の表示空間と交差している場合の表示方法を示す図である。パノラマ画像の例で示す。表示空間621と別の表示空間622とが交差している場合には、表示空間の交差面に対して、その空間の中心側に属する表示空間内の画像を表示する。表示画像を半透明表示し、もう一方の表示空間の画像を表示することも可能である。
【0087】
ユーザが表示空間の間を移動する場合、予測した通過時間tに応じて、手前の画像をフェードアウトし、次の空間の後方の画像をフェードインする表示も可能である。また、交差面積が大きい場合は、フェードイン・フェードアウトの画像切り替えを、交差面積全体で行うのでなく、交差面積の中心部分の領域(交差中央領域)のみで行うことにしてもよい。さらに、交差面積が大きい場合で、交差面で画像切り替えあるいは交差中央領域で画面のフェードイン・フェードアウト画像切り替えする際に、緩衝領域の設定あるいはヒステリシス特性のあるフェードイン・フェードアウトの導入をすることで、移動のじぐざぐやゆらぎの際に過敏な画面変化を抑制できる。
【0088】
図19は、表示空間が交差している場合であって、ユーザが移動した場合の表示方法を示す図である。表示空間同士の緩衝領域cを設け、緩衝領域cを境にして表示する表示空間の画像を切り替えるが、緩衝領域cにおいては移動の方向により直前の画像を表示する。例えば、ユーザがaからbへ移動し、bから緩衝領域cへ移動したとすると、Aの表示空間から緩衝領域cに移動したので、緩衝領域cでの表示画像は直前のAの表示空間の画像を表示する。そして、緩衝領域cからdに移動したことによりdでの表示画像はBの表示空間の画像となる。したがって、例えばa−>b−>c−>d−>c−>b−>c−>d−>eのように移動したとすると、表示される世界はA−>A−>A−>B−>B−>A−>A−>B−>Bのように変化する。緩衝領域cにおいては、直前世界の画像A又はBが表示される。
【0089】
図20は、フェードイン・フェードアウトのヒステリシスを示す図である。フェードイン・フェードアウトにおいて、透過率αは時間tの関数α(t)であらわされる。
【0090】
図20(1)は、例えば、α(t)が時間tに対して線形に変化する場合を表す図である。図20(2)は、透過率αを空間移動率βの関数α(β)として表した場合のαとβの関係を示す図である。例えば、α(β)は移動率の連続した増加あるいは減少が緩衝範囲の1/2をする時に、移動率βの2割の範囲で線形に増加するような場合の透過率αの変化を表している。図20(3)は、図20(2)の場合に、緩衝領域を移動する空間移動率βを示している図である。空間移動率βは、aにおいて0.4、bにおいて0.5、cにおいて0.2、dにおいて0.2、eにおいて0.6、fにおいて0.65、gにおいて0.5、hにおいて0.6、iにおいて0.7、jにおいて0.5を示している。したがって、図20(2)の透過率αは、aにおいて0.0、bにおいて0.2、cにおいて0.2、dにおいて0.1、eにおいて0.1、fにおいて0.9、gにおいて0.9、hにおいて0.9、iにおいて1.0、jにおいて1.0となることを示している。
【0091】
以下、図21〜図33を用いて、実写画像を記憶し、記憶した実写画像に基づいて仮想空間を構成する表示空間にレンダリングするシステムの実施例を図面ごとに説明する。本実施例において、画像データベース装置1において、データ受信手段1040と、画像記憶手段(図24で説明する画像情報のデータ構成、ハード・ディスク1074)と、領域記憶手段(図25で説明する領域情報のデータ構成、ハード・ディスク1074)と、登録記憶手段(図25で説明する領域情報の画像へのポインタ、ハード・ディスク1074)と、判定手段(図27のステップS115)と、領域分割手段(図27のステップS116)と、制御手段(図27の画像登録処理)と、を備えている。また、画像処理装置11において、データ受信手段2040と、受付手段(図29のステップS202)、画像取得手段(図31のステップS224)、制御手段(図29のメイン処理)、表示装置2022とを備えている。
【0092】
図21は、画像データベース装置1の動作環境を示す図である。画像データベース装置1、画像処理装置11a、11b、11cがネットワーク10(インターネット、LAN、WANなど)を介して接続されていることを示している。
【0093】
画像データベース装置1は、画像処理装置11からネットワーク10を介して送信された実写画像を、実写画像に付加された撮影位置に基づいて記憶する。画像処理装置11は、表示する位置を画像データベース装置1にネットワーク10を介して送信し、位置に基づいて検索された実写画像をネットワーク10を介して受信し、表示する。
【0094】
図22は、画像データベース装置1のハードウェア構成を示す図である。以下は、コンピュータを典型とする情報処理装置として全般的な構成を説明するが、専用機や組み込み型装置の場合、その環境に応じて必要最小限な構成を選択できることはいうまでもない。
【0095】
画像データベース装置1は、CPU(Central Processing Unit)1010、バスライン1005、通信I/F1040、メインメモリ1050、BIOS(Basic Input Output System)1060、パラレルポート1080、USBポート1090、グラフィック・コントローラ1020、VRAM1024、I/Oコントローラ1070、ならびにキーボード及びマウス・アダプタなど1100の入力手段を備える。I/Oコントローラ1070には、ハード・ディスク1074及びバックアップ用ハード・ディスク1075、光ディスク・ドライブ1076、半導体メモリ1078、などの記憶手段を接続することができる。グラフィック・コントローラ1020には、表示装置1022が接続されている。
【0096】
BIOS1060は、画像データベース装置1の起動時にCPU1010が実行するブートプログラムや、画像データベース装置1のハードウェアに依存するプログラムなどを格納する。
【0097】
光ディスク・ドライブ1076としては、例えば、DVD−ROMドライブ、CD−ROMドライブ、DVD−RAMドライブ、CD−RAMドライブを使用することができる。この際は各ドライブに対応した光ディスク1077を使用する必要がある。光ディスク・ドライブ1076は光ディスク1077からプログラム又はデータを読み取り、I/Oコントローラ1070を介してメインメモリ1050又はハード・ディスク1074に提供することもできる。
【0098】
画像データベース装置1に提供されるコンピュータ・プログラムは、フレキシブル・ディスク1071、光ディスク1077、又はメモリカードなどの記録媒体に格納されて利用者によって提供される。このコンピュータ・プログラムは、I/Oコントローラ1070を介して、記録媒体から読み出され、又は通信I/F1040を介してダウンロードされることによって、画像データベース装置1にインストールされ実行される。コンピュータ・プログラムが情報処理装置に働きかけて行わせる動作は、既に説明した装置における動作と同一であるので省略する。
【0099】
上述のコンピュータ・プログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としてはフレキシブル・ディスク1071、光ディスク1077、又はメモリカードの他に、MDなどの光磁気記録媒体、テープ媒体を用いることができる。また、専用通信回線やインターネットに接続されたサーバシステムに設けたハード・ディスク又は光ディスク・ライブラリなどの記憶装置を記録媒体として使用し、通信回線を介してコンピュータ・プログラムを画像データベース装置1に提供してもよい。
【0100】
図23は、画像処理装置11のハードウェア構成を示す図である。以下は、コンピュータを典型とする情報処理装置として全般的な構成を説明するが、専用機や組み込み型装置の場合、その環境に応じて必要最小限な構成を選択できることはいうまでもない。
【0101】
画像処理装置11は、CPU(Central Processing Unit)2010、バスライン2005、通信I/F2040、メインメモリ2050、BIOS(Basic Input Output System)2060、パラレルポート2080、USBポート2090、グラフィック・コントローラ2020、VRAM2024、I/Oコントローラ2070、ならびにキーボード及びマウス・アダプタなど2100の入力手段を備える。I/Oコントローラ2070には、フレキシブル・ディスク(FD)ドライブ2072、ハード・ディスク2074、光ディスク・ドライブ2076、半導体メモリ2078、などの記憶手段を接続することができる。グラフィック・コントローラ2020には、表示装置2022が接続されている。
【0102】
BIOS2060は、画像処理装置11の起動時にCPU2010が実行するブートプログラムや、画像処理装置11のハードウェアに依存するプログラムなどを格納する。FDドライブ2072は、フレキシブル・ディスク2071からプログラム又はデータを読み取り、I/Oコントローラ2070を介してメインメモリ2050又はハード・ディスク2074に提供する。
【0103】
光ディスク・ドライブ2076としては、例えば、DVD−ROMドライブ、CD−ROMドライブ、DVD−RAMドライブ、CD−RAMドライブを使用することができる。この際は各ドライブに対応した光ディスク2077を使用する必要がある。光ディスク・ドライブ2076は光ディスク2077からプログラム又はデータを読み取り、I/Oコントローラ2070を介してメインメモリ2050又はハード・ディスク2074に提供することもできる。
【0104】
画像処理装置11に提供されるコンピュータ・プログラムは、フレキシブル・ディスク2071、光ディスク2077、又はメモリカードなどの記録媒体に格納されて利用者によって提供される。このコンピュータ・プログラムは、I/Oコントローラ2070を介して、記録媒体から読み出され、又は通信I/F2040を介してダウンロードされることによって、画像処理装置11にインストールされ実行される。コンピュータ・プログラムが情報処理装置に働きかけて行わせる動作は、既に説明した装置における動作と同一であるので省略する。
【0105】
上述のコンピュータ・プログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としてはフレキシブル・ディスク2071、光ディスク2077、又はメモリカードの他に、MDなどの光磁気記録媒体、テープ媒体を用いることができる。また、専用通信回線やインターネットに接続されたサーバシステムに設けたハード・ディスク又は光ディスク・ライブラリなどの記憶装置を記録媒体として使用し、通信回線を介してコンピュータ・プログラムを画像処理装置11に提供してもよい。
【0106】
図24は、画像情報のデータ構成を示す図である。1つの画像データとともに、画像ID、撮影位置データ、その他の撮影条件(撮影方向、撮影仰角など)データ、属性情報(撮影日時など)データ、領域へのポインタを備えている。
【0107】
図25は、領域情報のデータ構成を示す図である。1つの領域は、領域ID、領域の座標、ツリー構造のための分割レベル、上位ノードへのポインタ、下位ノードへのポインタ、画像へのポインタ、パノラマ画像へのポインタを備えている。分割レベルは、ノードの最大分割レベル数を記憶する。画像へのポインタは、撮影方向ごと、撮影仰角ごと、撮影時刻ごとなどのポインタからなり、実写画像データは、撮影方向ごと、撮影仰角ごと、撮影時刻ごとなどに分類して記憶される。
【0108】
図26は、画像データベース装置1のメインのフローチャートである。
【0109】
CPU1010は、ステップS101において、初期化処理を行い、処理をステップS102に移す。ステップS102において、CPU1010は、ネットワーク10を介して画像処理装置11からデータの受信処理を行い、処理をステップS103に移し、受信したデータは画像登録のためのデータか否かを判断する。この判断がYESの場合は、処理をステップS107に移し、NOの場合は処理をステップS104に移す。ステップS104において、CPU1010は、受信したデータが画像要求か否かを判断し、この判断がYESの場合は、処理をステップS105に移し、NOの場合は、処理を終了する。ステップS105において、CPU1010は、受信したデータに基づき画像検索処理を行い、処理をステップS106に移し、検索した画像データの送信処理を行い処理を終了する。
【0110】
ステップS107において、CPU1010は、画像登録処理を行い、その後処理を終了する。
【0111】
図27は、画像データベース装置1の画像登録処理のフローチャートである。
【0112】
CPU1010は、ステップS111において、受信した画像データの撮影位置から領域を取得し、処理をステップS112に移し、取得した領域に他の画像が登録されているか否かを判断する。この判断がYESの場合は、処理をステップS113に移し、NOの場合は処理をステップS119に移す。ステップS113において、CPU1010は、受信した画像データの撮影方向と、領域に登録されている画像データの撮影方向とが同じか否かを判断し、この判断がYESの場合は、処理をステップS114に移し、NOの場合は、処理をステップS119に移す。ステップS114において、CPU1010は、受信した画像データの撮影仰角と、領域に登録されている画像データの撮影仰角とが同じか否かを判断し、この判断がYESの場合は、処理をステップS115に移し、NOの場合は処理をステップS119に移す。ステップS115において、CPU1010は、受信した画像データと、領域に登録されている画像データとの比較判定を行い、類似度が所定の範囲内か否かを判断する。この判断がYESの場合は、処理をステップS119に移し、NOの場合は処理をステップS116に移す。ステップS116において、CPU1010は、領域を分割し、処理をステップS118に移し、分割した領域に画像が登録されているか否かを判断する。この判断がYESの場合は、処理をステップS113に移し、NOの場合は処理をステップS119に移す。
【0113】
ステップS119において、CPU1010は、撮影条件に分類して受信した画像データを登録し、本処理を終了し処理をメイン処理に戻す。
【0114】
ここで、ステップS115における、登録されている画像との比較判定は、撮影条件や類似度をCPU1010が自動的に判定するが、対話型(CPU1010が判定を要求し、入力に応じて判定する)や、半自動(自動と対話型の組合せ)による判定も可能である。
【0115】
図28は、画像データベース装置1の画像検索処理のフローチャートである。
【0116】
CPU1010は、ステップS121において、隣接領域の画像データか否かを判断する。この判断がYESの場合は、処理をステップS124に移し、NOの場合は処理をステップS122に移す。ステップS122において、CPU1010は、領域の画像検索を行い、処理をステップS123に移す。
【0117】
ステップS123において、CPU1010は、検索した画像データを取得し、本処理を終了し処理をメイン処理に戻す。
【0118】
ステップS124において、CPU1010は、隣接領域の画像を検索し、処理をステップS123に移す。
【0119】
図29は、画像処理装置11のメインのフローチャートである。
【0120】
CPU2010は、ステップS201において、初期化処理を行い、処理をステップS202に移す。ステップS202において、CPU2010は、処理条件を受付ける受付処理を行い、処理をステップS203に移す。ステップS203において、CPU2010は、処理すべき内容が画像登録か否かを判断する。この判断がYESの場合は、処理をステップS204に移し、NOの場合は処理をステップS205に移す。ステップS204において、CPU2010は、画像登録処理を行い、その後処理を終了する。
【0121】
ステップS205において、CPU2010は、画像表示処理を行い、その後処理を終了する。
【0122】
図30は、画像処理装置11の画像登録処理のフローチャートである。
【0123】
CPU2010は、ステップS211において、画像取込み処理を行い、処理をステップS212に移す。ステップS212において、CPU2010は、撮影条件などのユーザによる入力を受付け、ユーザが入力した撮影条件などを記憶し、処理をステップS213に移す。ステップS213において、CPU2010は、画像属性などのユーザによる入力を受付け、ユーザが入力した画像属性などを記憶し、処理をステップS214に移す。ステップS214において、CPU2010は、記憶した画像データ、撮影条件、画像属性などの情報をインターネットを介して画像データベース装置1に送信し、本処理を終了しメイン処理に戻る。
【0124】
図31は、画像処理装置11の画像表示処理のフローチャートである。
【0125】
CPU2010は、ステップS221において、アバタの位置検出を行い、処理をステップS222に移す。ステップS222において、CPU2010は、検出した位置が表示空間内か否かを判断する。この判断がYESの場合は、処理をステップS226に移し、NOの場合は処理をステップS223に移す。ステップS223において、CPU2010は、位置データをネットワーク10を介して画像データベース装置1へ送信し、処理をステップS224に移す。ステップS224において、CPU2010は、ネットワーク10を介して画像データベース装置1から受信した画像データを取得し、処理をステップS225に移す。ステップS225において、CPU2010は、表示空間の内部表現処理を行い、その後処理を終了し処理をメイン処理に戻す。
【0126】
ステップS226において、CPU2010は、表示空間の外部表現処理を行い、その後本処理を終了し処理をメイン処理に戻す。
【0127】
図32は、画像処理装置11の表示空間の内部表現処理のフローチャートである。
【0128】
CPU2010は、ステップS231において、1つ以上の空間の中にいるか否かを判断する。この判断がYESの場合は、処理をステップS232に移し、NOの場合は処理をステップS240に移す。ステップS232において、CPU2010は、2つ以上空間が交差するか否かを判断する。この判断がYESの場合は、処理をステップS233に移し、NOの場合は処理をステップS234に移す。ステップS233において、CPU2010は、表示モードを設定し、処理をステップS235に移す。
【0129】
ステップS234において、CPU2010は、表示モードを設定し、処理をステップS235に移す。
【0130】
ステップS235において、CPU2010は、視野角内に画像が存在するか否かを判断する。この判断がYESの場合は、処理をステップS243に移し、NOの場合は処理をステップS236に移す。ステップS236において、CPU2010は、隣接領域の画像を利用するか否かを判断する。この判断がYESの場合は、処理をステップS237に移し、NOの場合は処理をステップS244に移す。ステップS237において、CPU2010は、ネットワーク10を介して画像データベース装置1から隣接領域の画像を取得し、処理をステップS238に移す。ステップS238において、CPU2010は、隣接領域からの画像であることを明示するか否かを判断する。この判断がYESの場合は、処理をステップS239に移し、NOの場合は処理をステップS245に移す。ステップS239において、CPU2010は、画像の明度、色相、彩度を変更して表示モードに応じて表示処理を行い、その後本処理を終了し処理を画像表示処理に戻す。
【0131】
ステップS240において、CPU2010は、包含された別の空間があるか否かを判断する。この判断がYESの場合は、処理をステップS241に移し、NOの場合は処理をステップS242に移す。ステップS241において、CPU2010は、表示モードを設定し、処理をステップS235に移す。
【0132】
ステップS242において、CPU2010は、表示モードを設定し、処理をステップS235に移す。
【0133】
ステップS243において、CPU2010は、表示モードに応じて表示処理を行い、その後本処理を終了し処理を画像表示処理に戻す。
【0134】
ステップS244において、CPU2010は、予め登録された色やテクスチャの画像を表示モードに応じて表示処理を行い、その後本処理を終了し処理を画像表示処理に戻す。
【0135】
ステップS245において、CPU2010は、表示モードに応じて表示処理を行い、その後本処理を終了し処理を画像表示処理に戻す。
【0136】
図33は、画像処理装置11における、表示空間内のパノラマ画像の例を示す図である。アバタの位置に基づいて、インターネットを介して受信した実写画像データを表示空間にレンダリングし、表示装置2022に表示していることを示している。表示された画像は、視点位置を含む領域に対応付けられた視点方向の実写画像と、視点位置を含む領域の隣接領域に対応付けられた視点方向に対応する実写画像との重ね合わせ、スクロールなどの多重表示技術を活用して得られる。
【0137】
図34は、隣接領域の探索についての例を示す図である。上述の図6で説明した、領域のラベルを2進数で表現する方法で示している。すなわち、左下端を(0,0)、右上を(1,1)とした正規化空間に対して、再帰的に4分割を行い、領域を分割する。例えば、n=3とし、3回均等に4分割を繰り返すと、23×23個=64個の領域に分割される。その場合の領域の左下端及び右上端のラベルは、それぞれ(0(1/2)3、0(1/2)3)=(000、000)及び(7(1/2)3、(7(1/2)3)=(111、111)となる。図において、数値はそれぞれの領域のラベルを示している。例えば、分割の度合n=3、位置k=3、j=5の領域(3(1/2)3、5(1/2)3)=(011、101)の隣接領域を具体的に求めてみる。ここで、領域(011、101)は、領域IDのS−132に対応する。
【0138】
図34(1)において、領域(011、101)の隣接領域は、上述の図6で示した式によれば、均等に分割されている場合、次のラベルの領域として表される。
North側の隣接領域は、(3(1/2)3、(5+1)(1/2)3)=(011、110)で表される。
NorthEast側の隣接領域は、((3+1)(1/2)3、(5+1)(1/2)3)=(100、110)で表される。
East側の隣接領域は、((3+1)(1/2)3、5(1/2)3)=(100、101)で表される。
SouthEast側の隣接領域は、((3+1)(1/2)3、(5−1)(1/2)3)=(100、100)で表される。
South側の隣接領域は、(3(1/2)3、(5−1)(1/2)3)=(011、100)で表される。
SouthWest側の隣接領域は、((3−1)(1/2)3、(5−1)(1/2)3)=(010、100)で表される。
West側の隣接領域は、((3−1)(1/2)3、5(1/2)3)=(010、101)で表される。
NorthWest側の隣接領域は、((3−1)(1/2)3、(5+1)(1/2)3)=(010、110)で表される。
【0139】
図34(2)において、領域(011、101)の隣接領域は、均等に分割されていない(分割の度合が粗い)場合、次のラベルの領域として表される。
North側の隣接領域は、例えば分割の度合m=2である場合、(int(3/23−2)(1/2)2、int((5+1)/23−2)(1/2)2)=(int(3/23−2)(1/2)2、int((5+1)/23−2)(1/2)2)=(1(1/2)2、3(1/2)2)=(01、11)で表される。
NorthEast側の隣接領域は、例えば分割の度合m=2である場合、(int((3+1)/23−2)(1/2)2、int((5+1)/23−2)(1/2)2)=(2(1/2)2、3(1/2)2)=(10、11)で表される。
East側の隣接領域は、例えば分割の度合m=2である場合、(int((3+1)/23−2)(1/2)2、int(5/23−2)(1/2)2)=(2(1/2)2、2(1/2)2)=(10、10)で表される。
SouthEast側の隣接領域は、例えば分割の度合m=2である場合、(int((3+1)/23−2)(1/2)2、int((5−1)/23−2)(1/2)2)=(2(1/2)2、2(1/2)2)=(10、10)で表される。
South側の隣接領域は、例えば分割の度合m=3である場合、(int(3/23−3)(1/2)3、int((5−1)/23−3)(1/2)3)=(3(1/2)3、4(1/2)3)=(011、100)で表される。
SouthWest側の隣接領域は、例えば分割の度合m=3である場合、(int((3−1)/23−3)(1/2)3、int((5−1)/23−3)(1/2)3)=(2(1/2)3、4(1/2)3)=(010、100)で表される。
West側の隣接領域は、例えば分割の度合m=3である場合、(int((3−1)/23−3)(1/2)3、int(5/23−3)(1/2)3)=(2(1/2)3、5(1/2)3)=(010、101)で表される。
NorthWest側の隣接領域は、分割の度合m=2である場合、(int((3−1)/23−2)(1/2)2、int((5+1)/23−2)(1/2)2)=(1(1/2)2、3(1/2)2)=(01、11)で表される。
【0140】
図35(3)において、領域(011、101)の隣接領域は、均等に分割されていない(分割の度合が細かい)場合、次のラベルの領域として表される。
North側の隣接領域は、例えば分割の度合m=4である場合、sが0≦s<24−3の全ての値、すなわち0、1であるので次の2領域となる。すなわち、((3×24−3+0)(1/2)4、((5+1)×24−3)(1/2)4)=(6(1/2)4、12(1/2)4)=(0110、1100)と、((3×24−3+1)(1/2)4、((5+1)×24−3)(1/2)4)=(7(1/2)4、12(1/2)4)=(0111、1100)と、で表される。
NorthEast側の隣接領域は、例えば分割の度合m=4である場合、((3+1)×24−3)(1/2)4、((5+1)×24−3)(1/2)4)=(8(1/2)4、12(1/2)4)=(1000、1100)で表される。
East側の隣接領域は、例えば分割の度合m=4である場合、sが0≦s<24−3の全ての値、すなわち0、1であるので次の2領域となる。すなわち、((3+1)×24−3)(1/2)4、(5×24−3+0)(1/2)4)=(8(1/2)4、10(1/2)4)=(1000、1010)と、((3+1)×24−3)(1/2)4、(5×24−3+1)(1/2)4)=(8(1/2)4、11(1/2)4)=(1000、1011)とで表される。
SouthEast側の隣接領域は、例えば分割の度合m=4である場合、((3+1)×24−3)(1/2)4、(5×24−3−1)(1/2)4)=(8(1/2)4、94)=(1000、1001)で表される。
South側の隣接領域は、例えば分割の度合m=4である場合、sが0≦s<24−3の全ての値、すなわち0、1であるので次の2領域となる。すなわち、((3×24−3+0)(1/2)4、(5×24−3−1)(1/2)4)=(6(1/2)4、9(1/2)4)=(0110、1001)と、((3×24−3+1)(1/2)4、(5×24−3−1)(1/2)4)=(7(1/2)4、9(1/2)4)=(0111、1001)とで表される。
SouthWest側の隣接領域は、例えば分割の度合m=4である場合、((3×24−3−1)(1/2)4、(5×24−3−1)(1/2)4)=(5(1/2)4、9(1/2)4)=(0101、1001)で表される。
West側の隣接領域は、例えば分割の度合m=4である場合、sが0≦s<24−3の全ての値、すなわち0、1であるので次の2領域となる。すなわち、((3×24−3−1)(1/2)4、(5×24−3+0)(1/2)4)=(5(1/2)4、10(1/2)4)=(0101、1010)と、((3×24−3−1)(1/2)4、(5×24−3+1)(1/2)4)=(5(1/2)4、11(1/2)4)=(0101、1011)とで表される。
NorthWest側の隣接領域は、例えば分割の度合m=4である場合、((3×24−3−1)(1/2)4、((5+1)×24−3)(1/2)4)=(5(1/2)4、12(1/2)4)=(0101、1100)で表される。
【0141】
実施例によれば、画像データベース装置1は、複数のユーザが撮影した画像をネットワーク10を介して通信を行い受信する。受信した画像は、その画像を撮影した位置をユーザの間で共通の座標によって表された撮影位置と、撮影するための撮影条件と、撮影した画像の画像属性とを有している。そして、受信した画像と、受信した画像の撮影位置を含む領域に対応付けて記憶された画像とを比較判定する。比較判定の結果、撮影条件が所定の範囲内であること、及び判定による画像同士の類似度が所定の範囲外であることを条件として、領域を分割し、分割した領域に受信した画像を対応付けて記憶し、画像データベースを作成する。分割は4分割で行われ、画像データベースは4分岐ツリーで領域管理(図4)するので、画像を表示するための視点位置に基づいて、視点位置を含む領域に対応付けられた視点方向の実写画像と、視点位置を含む領域の隣接領域に対応付けられた視点方向に対応する実写画像とを容易に検索することができる。
【0142】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施例に記載されたものに限定されるものではない。
【図面の簡単な説明】
【0143】
【図1】本発明の実施形態に係る発明の概要を示す図である。
【図2】本発明の実施形態に係るシステムの概要を示す図である。
【図3】撮影位置、撮影条件を説明する図。
【図4】4分岐ツリーで領域管理する例を示す図である。
【図5】障害物が存在する場合の例を示す図である。
【図6】4分岐ツリーで領域管理する画像データベースの例を示す図である。
【図7】撮影方向ごとに領域を管理する場合の一例を示す図である。
【図8】表示空間の外部表現の一例を示す図である。
【図9】パノラマ画像表示の例を示す図である。
【図10】実写画像による仮想世界を示す図である。
【図11】パネル壁面表示の概念を示す図である。
【図12】パネル焦点位置表示の概念を示す図である。
【図13】表示空間Aにけるパネル焦点位置表示の概念を示す図である。
【図14】表示空間Bにけるパネル焦点位置表示の概念を示す図である。
【図15】表示空間Cにおけるパネル焦点位置表示の概念を示す図である。
【図16】表示空間の中に包含された別の表示空間が存在する場合の表示方法を示す図である。
【図17】表示空間の中に別の表示空間が完全に含まれる場合の表示方法を示す図である。
【図18】表示空間が別の表示空間と交差している場合の表示方法を示す図である。
【図19】表示空間が交差している場合であって、アバタが移動した場合の表示方法を示す図である。
【図20】フェードイン・フェードアウトのヒステリシスを示す図である。
【図21】画像データベース装置の動作環境を示す図である。
【図22】画像データベース装置のハードウェア構成を示す図である。
【図23】画像処理装置のハードウェア構成を示す図である。
【図24】画像情報のデータ構成を示す図である。
【図25】領域情報のデータ構成を示す図である。
【図26】画像データベース装置のメインのフローチャートである。
【図27】画像データベース装置の画像登録処理のフローチャートである。
【図28】画像データベース装置の画像検索処理のフローチャートである。
【図29】画像処理装置のメインのフローチャートである。
【図30】画像処理装置の画像登録処理のフローチャートである。
【図31】画像処理装置の画像表示処理のフローチャートである。
【図32】画像処理装置の表示空間の内部表現処理のフローチャートである。
【図33】表示空間内のパノラマ画像の例を示す図である。
【図34】隣接領域の探索についての例を示す図(1)、(2)である。
【図35】隣接領域の探索についての例を示す図(3)である。
【符号の説明】
【0144】
1 画像データベース装置
10 ネットワーク
11 画像処理装置
501 表示空間の円柱
502 表示空間の半球
503 表示空間の全球
504 表示空間のパーティクル
【特許請求の範囲】
【請求項1】
複数のユーザが撮影した画像を記憶する画像データベース装置において、
ネットワークを介して通信を行い、前記撮影した画像を受信するデータ受信手段と、
前記データ受信手段により受信した画像と、その画像を撮影した位置を前記ユーザの間で用いられる共通の座標によって表された撮影位置と、撮影するための撮影条件と、撮影した画像の画像属性とを記憶する画像記憶手段と、
前記座標によって表された範囲を有する仮想空間の領域を記憶する領域記憶手段と、
前記画像記憶手段に記憶する画像と、その画像の前記撮影位置を含む前記範囲を有する前記領域記憶手段に記憶する前記領域とを対応付けて記憶する登録記憶手段と、
前記領域記憶手段に記憶した前記領域が有する範囲の座標を変更し前記領域記憶手段に記憶することにより前記領域を分割し、分割した前記領域と前記撮影位置とを前記登録記憶手段に記憶し直す領域分割手段と、
前記画像記憶手段に記憶する画像と、その画像の前記撮影位置を含む前記領域に対応付けて前記登録記憶手段に記憶する画像とが、所定の要件を満たすことを条件として、前記撮影位置を含む前記領域を前記領域分割手段により分割し、分割した前記領域と、前記画像記憶手段に記憶する画像とを対応付けて登録記憶手段に記憶する制御手段と、
を備えることを特徴とする画像データベース装置。
【請求項2】
撮影された画像の特徴を算出した特徴度と、撮影された別の画像の特徴を算出した特徴度とを比較判定し、画像同士の類似度を求める判定手段をさらに備え、
前記所定の要件は、前記撮影条件が所定の範囲内であること、及び前記判定手段による前記類似度が所定の範囲外であることを特徴とする請求項1に記載の画像データベース装置。
【請求項3】
前記制御手段は、前記領域分割手段により分割した前記領域に、対応付けて記憶された画像が存在すること、その画像と前記画像記憶手段に記憶された画像とが前記所定の要件を満たすことを条件として、前記領域分割手段による前記領域の分割を繰り返し、分割した前記領域と前記画像記憶手段に記憶された画像とを登録記憶手段に対応付けて記憶することを特徴とする請求項2に記載の画像データベース装置。
【請求項4】
前記ユーザの間で用いられる共通の座標は、緯度及び経度であることを特徴とする請求項3に記載の画像データベース装置。
【請求項5】
撮影方向が異なる場合は分類して登録
前記撮影条件は撮影方向を含み、前記制御手段は、前記撮影方向が所定の範囲外であることを条件として、前記撮影方向を有する画像と前記領域とを対応付けて前記登録記憶手段に記憶することにより画像を前記撮影方向に分類して記憶することを特徴とする前記請求項4に記載の画像データベース装置。
【請求項6】
撮影仰角が異なる場合は分類して登録
前記撮影条件は撮影仰角を含み、前記制御手段は、前記撮影仰角が所定の範囲外であることを条件として、前記撮影仰角を有する画像と前記領域とを対応付けて前記登録記憶手段に記憶することにより画像を前記撮影仰角に分類して記憶することを特徴とする前記請求項5に記載の画像データベース装置。
【請求項7】
前記撮影条件は撮影日時を含み、前記制御手段は、前記撮影日時が所定の範囲外であることを条件として、前記撮影日時を有する画像と前記領域とを対応付けて前記登録記憶手段に記憶することにより画像を前記撮影日時に分類して記憶することを特徴とする前記請求項6に記載の画像データベース装置。
【請求項8】
複数のユーザが撮影した画像を記憶する方法において、
ネットワークを介して通信を行い、前記撮影した画像を受信するデータ受信ステップと、
前記データ受信ステップにより受信した画像と、その画像を撮影した位置を前記ユーザの間で用いられる共通の座標によって表された撮影位置と、撮影するための撮影条件と、撮影した画像の画像属性とを画像記憶手段に記憶するステップと、
前記座標によって表された範囲を有する仮想空間の領域を領域記憶手段に記憶するステップと、
前記画像記憶手段に記憶する画像と、その画像の前記撮影位置を含む前記範囲を有する前記領域記憶手段に記憶する前記領域とを対応付けて登録記憶手段に記憶するステップと、
前記領域記憶手段に記憶した前記領域が有する範囲の座標を変更し前記領域記憶手段に記憶することにより前記領域を分割し、分割した前記領域と前記撮影位置とを前記登録記憶手段に記憶し直す領域分割ステップと、
前記画像記憶手段に記憶する画像と、その画像の前記撮影位置を含む前記領域に対応付けて前記登録記憶手段に記憶する画像とが、所定の要件を満たすことを条件として、前記撮影位置を含む前記領域を前記領域分割ステップにより分割し、分割した前記領域と、前記画像記憶手段に記憶する画像とを対応付けて登録記憶手段に記憶する制御ステップと、
を備えることを特徴とする画像を記憶する方法。
【請求項9】
撮影された画像の特徴を算出した特徴度と、撮影された別の画像の特徴を算出した特徴度とを比較判定し、画像同士の類似度を求める判定ステップをさらに備え、
前記所定の要件は、前記撮影条件が所定の範囲内であること、及び前記判定ステップによる前記類似度が所定の範囲外であることを特徴とする請求項8に記載の画像を記憶する方法。
【請求項10】
前記制御ステップは、前記領域分割ステップにより分割した前記領域に対応付けて記憶された画像が存在すること、及びその画像と前記画像記憶手段に記憶された画像とが前記所定の要件を満たすことを条件として、前記領域分割ステップによる前記領域の分割を繰り返し、分割した前記領域と前記画像記憶手段に記憶された画像とを登録記憶手段に対応付けて記憶することを特徴とする請求項9に記載の画像を記憶する方法。
【請求項11】
前記ユーザの間で用いられる共通の座標は、緯度及び経度であることを特徴とする請求項10に記載の画像を記憶する方法。
【請求項12】
前記撮影条件は撮影方向を含み、前記制御ステップは、前記撮影方向が所定の範囲外であることを条件として、前記撮影方向を有する画像と前記領域とを対応付けて前記登録記憶手段に記憶することにより画像を前記撮影方向に分類して記憶することを特徴とする前記請求項11に記載の画像を記憶する方法。
【請求項13】
前記撮影条件は撮影仰角を含み、前記制御ステップは、前記撮影仰角が所定の範囲外であることを条件として、前記撮影仰角を有する画像と前記領域とを対応付けて前記登録記憶手段に記憶することにより画像を前記撮影仰角に分類して記憶することを特徴とする前記請求項12に記載の画像を記憶する方法。
【請求項14】
前記撮影条件は撮影日時を含み、前記制御ステップは、前記撮影日時が所定の範囲外であることを条件として、前記撮影日時を有する画像と前記領域とを対応付けて前記登録記憶手段に記憶することにより画像を前記撮影日時に分類して記憶することを特徴とする前記請求項13に記載の画像を記憶する方法。
【請求項15】
請求項8から請求項14のいずれか1項に記載の各ステップをコンピュータに実行させることを特徴とするコンピュータ・プログラム。
【請求項1】
複数のユーザが撮影した画像を記憶する画像データベース装置において、
ネットワークを介して通信を行い、前記撮影した画像を受信するデータ受信手段と、
前記データ受信手段により受信した画像と、その画像を撮影した位置を前記ユーザの間で用いられる共通の座標によって表された撮影位置と、撮影するための撮影条件と、撮影した画像の画像属性とを記憶する画像記憶手段と、
前記座標によって表された範囲を有する仮想空間の領域を記憶する領域記憶手段と、
前記画像記憶手段に記憶する画像と、その画像の前記撮影位置を含む前記範囲を有する前記領域記憶手段に記憶する前記領域とを対応付けて記憶する登録記憶手段と、
前記領域記憶手段に記憶した前記領域が有する範囲の座標を変更し前記領域記憶手段に記憶することにより前記領域を分割し、分割した前記領域と前記撮影位置とを前記登録記憶手段に記憶し直す領域分割手段と、
前記画像記憶手段に記憶する画像と、その画像の前記撮影位置を含む前記領域に対応付けて前記登録記憶手段に記憶する画像とが、所定の要件を満たすことを条件として、前記撮影位置を含む前記領域を前記領域分割手段により分割し、分割した前記領域と、前記画像記憶手段に記憶する画像とを対応付けて登録記憶手段に記憶する制御手段と、
を備えることを特徴とする画像データベース装置。
【請求項2】
撮影された画像の特徴を算出した特徴度と、撮影された別の画像の特徴を算出した特徴度とを比較判定し、画像同士の類似度を求める判定手段をさらに備え、
前記所定の要件は、前記撮影条件が所定の範囲内であること、及び前記判定手段による前記類似度が所定の範囲外であることを特徴とする請求項1に記載の画像データベース装置。
【請求項3】
前記制御手段は、前記領域分割手段により分割した前記領域に、対応付けて記憶された画像が存在すること、その画像と前記画像記憶手段に記憶された画像とが前記所定の要件を満たすことを条件として、前記領域分割手段による前記領域の分割を繰り返し、分割した前記領域と前記画像記憶手段に記憶された画像とを登録記憶手段に対応付けて記憶することを特徴とする請求項2に記載の画像データベース装置。
【請求項4】
前記ユーザの間で用いられる共通の座標は、緯度及び経度であることを特徴とする請求項3に記載の画像データベース装置。
【請求項5】
撮影方向が異なる場合は分類して登録
前記撮影条件は撮影方向を含み、前記制御手段は、前記撮影方向が所定の範囲外であることを条件として、前記撮影方向を有する画像と前記領域とを対応付けて前記登録記憶手段に記憶することにより画像を前記撮影方向に分類して記憶することを特徴とする前記請求項4に記載の画像データベース装置。
【請求項6】
撮影仰角が異なる場合は分類して登録
前記撮影条件は撮影仰角を含み、前記制御手段は、前記撮影仰角が所定の範囲外であることを条件として、前記撮影仰角を有する画像と前記領域とを対応付けて前記登録記憶手段に記憶することにより画像を前記撮影仰角に分類して記憶することを特徴とする前記請求項5に記載の画像データベース装置。
【請求項7】
前記撮影条件は撮影日時を含み、前記制御手段は、前記撮影日時が所定の範囲外であることを条件として、前記撮影日時を有する画像と前記領域とを対応付けて前記登録記憶手段に記憶することにより画像を前記撮影日時に分類して記憶することを特徴とする前記請求項6に記載の画像データベース装置。
【請求項8】
複数のユーザが撮影した画像を記憶する方法において、
ネットワークを介して通信を行い、前記撮影した画像を受信するデータ受信ステップと、
前記データ受信ステップにより受信した画像と、その画像を撮影した位置を前記ユーザの間で用いられる共通の座標によって表された撮影位置と、撮影するための撮影条件と、撮影した画像の画像属性とを画像記憶手段に記憶するステップと、
前記座標によって表された範囲を有する仮想空間の領域を領域記憶手段に記憶するステップと、
前記画像記憶手段に記憶する画像と、その画像の前記撮影位置を含む前記範囲を有する前記領域記憶手段に記憶する前記領域とを対応付けて登録記憶手段に記憶するステップと、
前記領域記憶手段に記憶した前記領域が有する範囲の座標を変更し前記領域記憶手段に記憶することにより前記領域を分割し、分割した前記領域と前記撮影位置とを前記登録記憶手段に記憶し直す領域分割ステップと、
前記画像記憶手段に記憶する画像と、その画像の前記撮影位置を含む前記領域に対応付けて前記登録記憶手段に記憶する画像とが、所定の要件を満たすことを条件として、前記撮影位置を含む前記領域を前記領域分割ステップにより分割し、分割した前記領域と、前記画像記憶手段に記憶する画像とを対応付けて登録記憶手段に記憶する制御ステップと、
を備えることを特徴とする画像を記憶する方法。
【請求項9】
撮影された画像の特徴を算出した特徴度と、撮影された別の画像の特徴を算出した特徴度とを比較判定し、画像同士の類似度を求める判定ステップをさらに備え、
前記所定の要件は、前記撮影条件が所定の範囲内であること、及び前記判定ステップによる前記類似度が所定の範囲外であることを特徴とする請求項8に記載の画像を記憶する方法。
【請求項10】
前記制御ステップは、前記領域分割ステップにより分割した前記領域に対応付けて記憶された画像が存在すること、及びその画像と前記画像記憶手段に記憶された画像とが前記所定の要件を満たすことを条件として、前記領域分割ステップによる前記領域の分割を繰り返し、分割した前記領域と前記画像記憶手段に記憶された画像とを登録記憶手段に対応付けて記憶することを特徴とする請求項9に記載の画像を記憶する方法。
【請求項11】
前記ユーザの間で用いられる共通の座標は、緯度及び経度であることを特徴とする請求項10に記載の画像を記憶する方法。
【請求項12】
前記撮影条件は撮影方向を含み、前記制御ステップは、前記撮影方向が所定の範囲外であることを条件として、前記撮影方向を有する画像と前記領域とを対応付けて前記登録記憶手段に記憶することにより画像を前記撮影方向に分類して記憶することを特徴とする前記請求項11に記載の画像を記憶する方法。
【請求項13】
前記撮影条件は撮影仰角を含み、前記制御ステップは、前記撮影仰角が所定の範囲外であることを条件として、前記撮影仰角を有する画像と前記領域とを対応付けて前記登録記憶手段に記憶することにより画像を前記撮影仰角に分類して記憶することを特徴とする前記請求項12に記載の画像を記憶する方法。
【請求項14】
前記撮影条件は撮影日時を含み、前記制御ステップは、前記撮影日時が所定の範囲外であることを条件として、前記撮影日時を有する画像と前記領域とを対応付けて前記登録記憶手段に記憶することにより画像を前記撮影日時に分類して記憶することを特徴とする前記請求項13に記載の画像を記憶する方法。
【請求項15】
請求項8から請求項14のいずれか1項に記載の各ステップをコンピュータに実行させることを特徴とするコンピュータ・プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【公開番号】特開2009−129182(P2009−129182A)
【公開日】平成21年6月11日(2009.6.11)
【国際特許分類】
【出願番号】特願2007−303391(P2007−303391)
【出願日】平成19年11月22日(2007.11.22)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【復代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
【Fターム(参考)】
【公開日】平成21年6月11日(2009.6.11)
【国際特許分類】
【出願日】平成19年11月22日(2007.11.22)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【復代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
【Fターム(参考)】
[ Back to top ]