(57)【要約】【課題】マーカ画像を用いた画像処理において興趣性を高めることができる画像処理システム、画像処理装置、画像処理プログラム、および画像処理方法を提供する。【解決手段】撮像装置によって撮像された撮像画像に含まれる場合に当該撮像画像を画像処理することによって所定の仮想オブジェクトを登場させることが可能なマーカ画像を、仮想空間内に配置する。そして、仮想空間の一部を表示装置に表示するための視点を、ユーザ入力に応じて変化させ、当該視点から見た仮想空間を表示装置に表示する。【選択図】図７
2015001760.tif 000002
【特許請求の範囲】
【請求項１】
所定の仮想空間の画像を第１の表示装置に表示させる第１の情報処理装置と撮像装置によって撮像された現実空間の画像を第２の表示装置に表示させる第２の情報処理装置とを含む画像処理システムであって、
前記第１の情報処理装置は、
ユーザ入力を取得するユーザ入力取得手段と、
所定の仮想オブジェクトを登場させることが可能なマーカ画像を、前記仮想空間内に配置するマーカ配置手段と、
前記仮想空間の一部を前記第１の表示装置に表示するための視点を、前記ユーザ入力に応じて変化させる視点変化手段と、
前記視点から見た仮想空間を前記第１の表示装置に表示する第１表示制御手段とを備え、
前記第２の情報処理装置は、
前記撮像装置によって撮像された撮像画像を取得する撮像画像取得手段と、
前記撮像画像内に前記マーカ画像が含まれている場合、当該マーカ画像に対応する仮想オブジェクトを当該撮像画像内における当該マーカ画像に対応する位置に合成する仮想オブジェクト合成手段と、
前記仮想オブジェクトが合成された場合、当該仮想オブジェクトが合成された前記撮像画像を前記第２の表示装置に表示する第２表示制御手段とを備える、画像処理システム。
【請求項２】
前記視点変化手段は、前記ユーザ入力に応じて、前記仮想空間における前記視点から前記マーカ画像までの距離が変化するように、当該視点の位置を変化させることが可能である、請求項１に記載の画像処理システム。
【請求項３】
前記仮想空間は、地図上の地点に関連付けられた複数のパノラマ画像によって構成され、
前記マーカ配置手段は、前記地点の少なくとも１つの地点に関連付けられたパノラマ画像の所定位置に前記マーカ画像を配置し、
前記視点変化手段は、前記ユーザ入力に基づいて前記地図上の各地点から１つを現在地点として選択し、前記複数のパノラマ画像から当該現在地点に関連付けられたパノラマ画像を選択することによって、前記視点を変化させ、
前記第１表示制御手段は、前記現在地点に関連付けられるパノラマ画像のうち、ユーザの操作に応じて決められる一部領域の画像を前記第１の表示装置に表示する、請求項１または２に記載の画像処理システム。
【請求項４】
前記第１表示制御手段は、現在地点に対して所定の条件を満たす他の地点に前記マーカ画像が配置されている場合、当該現在地点におけるパノラマ画像の視点から見たときの当該他の地点に配置された当該マーカ画像を表す他地点マーカ画像を、当該現在地点に関連付けられるパノラマ画像とともに前記第１の表示装置に表示する他地点マーカ表示制御手段を含む、請求項３に記載の画像処理システム。
【請求項５】
前記第１の情報制御装置は、前記現在地点から前記他の地点への地図上における方向に基づいて、当該現在地点に関連付けられるパノラマ画像に対する前記他地点マーカ画像の配置位置を決定する他地点マーカ画像配置手段を、さらに備える、請求項４に記載の画像処理システム。
【請求項６】
前記他地点マーカ画像配置手段は、前記他の地点における視点と当該他の地点に配置された前記マーカ画像との地図上における位置関係に基づいて、前記現在地点に関連付けられるパノラマ画像に対する前記他地点マーカ画像の配置位置を決定する、請求項５に記載の画像処理システム。
【請求項７】
前記他地点マーカ画像配置手段は、地図上における地点の位置を示す情報に基づいて算出される、前記現在地点から前記他の地点までの距離に基づいて、当該現在地点に関連付けられるパノラマ画像に対する前記他地点マーカ画像の配置位置を決定する、請求項６に記載の画像処理システム。
【請求項８】
前記他地点マーカ画像配置手段は、前記現在地点における視点から見たときの前記他の地点に配置された前記マーカ画像の向きを表すように、当該現在地点における視点から見た前記他地点マーカ画像の向きを決定する、請求項５乃至７の何れか１つに記載の画像処理システム。
【請求項９】
前記他地点マーカ表示制御手段は、前記現在地点と前記地図上において隣接する他の地点および／または前記現在地点に対して前記地図上において所定の範囲内にある他の地点について前記マーカ画像が配置されているか否かを判定し、当該マーカ画像が配置されている場合、当該現在地点に関連付けられるパノラマ画像とともに前記他地点マーカ画像を前記第１の表示装置に表示する、請求項４乃至８の何れか１つに記載の画像処理システム。
【請求項１０】
前記パノラマ画像は、現実空間における複数地点をそれぞれパノラマ撮影することによって生成され、
前記マーカ配置手段は、前記パノラマ撮影された前記パノラマ画像上に所定デザインを有する仮想画像を重畳して配置することによって、前記マーカ画像を配置する、請求項３乃至９の何れか１つに記載の画像処理システム。
【請求項１１】
前記マーカ配置手段は、前記ユーザ入力に応じて、前記仮想空間内に前記マーカ画像を配置する、請求項１乃至１０の何れか１つに記載の画像処理システム。
【請求項１２】
所定の仮想空間の画像を表示装置に表示させる画像処理装置であって、
ユーザ入力を取得するユーザ入力取得手段と、
撮像装置によって撮像されることによって、撮像画像内に所定の仮想オブジェクトを登場させることが可能なマーカ画像を、前記仮想空間内に配置するマーカ配置手段と、
前記仮想空間の一部を前記表示装置に表示するための視点を、前記ユーザ入力に応じて変化させる視点変化手段と、
前記視点から見た仮想空間を前記表示装置に表示する表示制御手段とを備える、画像処理装置。
【請求項１３】
所定の仮想空間の画像を表示装置に表示させる情報処理装置に含まれるコンピュータで実行される画像処理プログラムであって、
前記コンピュータを、
ユーザ入力を取得するユーザ入力取得手段と、
撮像装置によって撮像されることよって、撮像画像内に所定の仮想オブジェクトを登場させることが可能なマーカ画像を、前記仮想空間内に配置するマーカ配置手段と、
前記仮想空間の一部を前記表示装置に表示するための視点を、前記ユーザ入力に応じて変化させる視点変化手段と、
前記視点から見た仮想空間を前記表示装置に表示する表示制御手段として機能させる、画像処理プログラム。
【請求項１４】
所定の仮想空間の画像を第１の表示装置に表示させる第１の情報処理装置と撮像装置によって撮像された現実空間の画像を第２の表示装置に表示させる第２の情報処理装置とにより構成される画像処理システムに含まれる１つのプロセッサまたは複数のプロセッサ間の協働により実行される画像処理方法であって、
ユーザ入力を取得するユーザ入力取得ステップと、
所定の仮想オブジェクトを登場させることが可能なマーカ画像を、前記仮想空間内に配置するマーカ配置ステップと、
前記仮想空間の一部を前記第１の表示装置に表示するための視点を、前記ユーザ入力に応じて変化させる視点変化ステップと、
前記視点から見た仮想空間を前記第１の表示装置に表示する第１表示制御ステップと、
前記撮像装置によって撮像された撮像画像を取得する撮像画像取得ステップと、
前記撮像画像内に前記マーカ画像が含まれている場合、当該マーカ画像に対応する仮想オブジェクトを当該撮像画像内における当該マーカ画像に対応する位置に合成する仮想オブジェクト合成ステップと、
前記仮想オブジェクトが合成された場合、当該仮想オブジェクトが合成された前記撮像画像を前記第２の表示装置に表示する第２表示制御ステップとを含む、画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理システム、画像処理装置、画像処理プログラム、および画像処理方法に関し、特に例えば、仮想オブジェクトを出現させることが可能なマーカ画像を表示するための画像処理システム、画像処理装置、画像処理プログラム、および画像処理方法に関する。
【背景技術】
【０００２】
従来、第１画像処理装置が画面にマーカ画像を表示し、第２画像処理装置で当該マーカ画像を撮像することによって、第２画像処理装置の撮像画像内のマーカ画像の位置に仮想オブジェクトを合成して表示する技術がある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２５８１２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に記載の技術は、画面にマーカ画像を表示するだけであり、より興趣性を高くマーカ画像を表示するという点では改善の余地がある。
【０００５】
それ故に、本発明の目的は、マーカ画像を用いた画像処理において興趣性を高めることができる画像処理システム、画像処理装置、画像処理プログラム、および画像処理方法を提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
【０００７】
本発明の画像処理システムの一構成例は、所定の仮想空間の画像を第１の表示装置に表示させる第１の情報処理装置と撮像装置によって撮像された現実空間の画像を第２の表示装置に表示させる第２の情報処理装置とを含む。第１の情報処理装置は、ユーザ入力取得手段、マーカ配置手段、視点変化手段、および第１表示制御手段を備える。ユーザ入力取得手段は、ユーザ入力を取得する。マーカ配置手段は、所定の仮想オブジェクトを登場させることが可能なマーカ画像を、仮想空間内に配置する。視点変化手段は、仮想空間の一部を第１の表示装置に表示するための視点を、ユーザ入力に応じて変化させる。第１表示制御手段は、視点から見た仮想空間を第１の表示装置に表示する。第２の情報処理装置は、撮像画像取得手段、仮想オブジェクト合成手段、および第２表示制御手段を備える。撮像画像取得手段は、撮像装置によって撮像された撮像画像を取得する。仮想オブジェクト合成手段は、撮像画像内にマーカ画像が含まれている場合、当該マーカ画像に対応する仮想オブジェクトを当該撮像画像内における当該マーカ画像に対応する位置に合成する。第２表示制御手段は、仮想オブジェクトが合成された場合、当該仮想オブジェクトが合成された撮像画像を第２の表示装置に表示する。
【０００８】
上記第１の表示装置に表示する画像は、上下方向と左右方向のうち一方方向について視野角が１８０°以上の仮想空間画像（例えば、パノラマ画像）であることが好ましい。さらに好ましくは、一方方向について３６０°の仮想空間画像であることが好ましい。また、他方方向については、第１の表示装置に表示する画像の視野角以上であることが好ましく、さらに言うと、当該画像の視野角の２倍以上、１２０°以上、１５０°以上、または、１８０°であることが好ましい。また、仮想空間画像がパノラマ画像である場合、第１の情報処理装置が有する撮像機能により撮像された画像であってもいいし、当該画像の撮像機能を有する他の装置により撮像された画像を所定の記憶媒体やネットワークを介して取り込んだ画像でもよい。
【０００９】
上記によれば、第２の情報処理装置のユーザは、第１の表示装置に表示された仮想空間の画像の中にマーカ画像を見つけた場合、当該マーカ画像が表示された仮想空間画像を撮像することによって、当該マーカ画像から仮想オブジェクトを当該仮想空間画像内で出現させることができる。一方、第１の情報処理装置を操作するユーザは、仮想空間画像に対する視点を変化させることが可能であり、視点を変化させることで、仮想空間内からマーカ画像を探すことが可能となる。このとき、第１の情報処理装置のユーザは、視点を変化させることができるので、仮想空間を実際に歩いてマーカ画像を探しているかのような体験をすることができ、マーカ画像を用いた画像処理において今までにない興趣性を提供することができる。
【００１０】
また、上記視点変化手段は、ユーザ入力に応じて、仮想空間における視点からマーカ画像までの距離が変化するように、当該視点の位置を変化させることが可能であってもよい。
【００１１】
上記によれば、ユーザ入力に応じて、視点とマーカ画像との距離が変化するため、マーカ画像を撮像して当該マーカ画像から仮想オブジェクトを出現させるために視点をマーカ画像に近づけるような操作を要求するような、今までにないマーカ画像の興趣性を提供することができる。
【００１２】
また、上記仮想空間は、地図上の地点に関連付けられた複数のパノラマ画像によって構成されてもよい。この場合、上記マーカ配置手段は、地点の少なくとも１つの地点に関連付けられたパノラマ画像の所定位置にマーカ画像を配置してもよい。上記視点変化手段は、ユーザ入力に基づいて地図上の各地点から１つを現在地点として選択し、複数のパノラマ画像から当該現在地点に関連付けられたパノラマ画像を選択することによって、視点を変化させてもよい。上記第１表示制御手段は、現在地点に関連付けられるパノラマ画像のうち、ユーザの操作に応じて決められる一部領域の画像を第１の表示装置に表示してもよい。
【００１３】
上記によれば、ユーザは、地図上の地点に関連付けられた複数のパノラマ画像によって構成された仮想空間に対して視点を変化させることが可能であり、パノラマ画像内から上記マーカ画像を探すことが可能となる。このとき、ユーザは、視線方向を変化させることで周囲を見回すとともに、視点を移動させることができるので、地図が表す現実空間を実際に歩いてマーカ画像を探しているかのような体験をすることができ、マーカ画像を用いた画像処理において今までにない興趣性を提供することができる。
【００１４】
また、上記第１表示制御手段は、他地点マーカ表示制御手段を含んでもよい。他地点マーカ表示制御手段は、現在地点に対して所定の条件を満たす他の地点にマーカ画像が配置されている場合、当該現在地点におけるパノラマ画像の視点から見たときの当該他の地点に配置された当該マーカ画像を表す他地点マーカ画像を、当該現在地点に関連付けられるパノラマ画像とともに第１の表示装置に表示する。
【００１５】
上記によれば、現在地点に対して所定の条件を満たす他の地点にマーカ画像が配置されている場合、現在地点に他地点マーカ画像が表示される。したがって、現在地点にマーカ画像が配置されていない場合であっても、所定の条件を満たす他地点マーカ画像を表示することによって、他の地点にマーカ画像が配置されていることをユーザに知らせることができる。
【００１６】
また、上記第１の情報制御装置は、他地点マーカ画像配置手段を、さらに備えてもよい。他地点マーカ画像配置手段は、現在地点から他の地点への地図上における方向に基づいて、当該現在地点に関連付けられるパノラマ画像に対する他地点マーカ画像の配置位置を決定する。
【００１７】
上記によれば、現在地点から見たときにマーカ画像が配置されている方向を、他地点マーカ画像の配置位置によってユーザに認識させることができる。
【００１８】
また、上記他地点マーカ画像配置手段は、他の地点における視点と当該他の地点に配置されたマーカ画像との地図上における位置関係に基づいて、現在地点に関連付けられるパノラマ画像に対する他地点マーカ画像の配置位置を決定してもよい。
【００１９】
上記によれば、他地点マーカ画像の配置位置によって、現在地点から見たときにマーカ画像が配置されている方向をより正確に表現することができる。
【００２０】
また、上記他地点マーカ画像配置手段は、地図上における地点の位置を示す情報に基づいて算出される、現在地点から他の地点までの距離に基づいて、当該現在地点に関連付けられるパノラマ画像に対する他地点マーカ画像の配置位置を決定してもよい。
【００２１】
上記によれば、他地点マーカ画像の配置位置によって、現在地点から見たときにマーカ画像が配置されている距離をより正確に表現することができる。
【００２２】
また、上記他地点マーカ画像配置手段は、現在地点における視点から見たときの他の地点に配置されたマーカ画像の向きを表すように、当該現在地点における視点から見た他地点マーカ画像の向きを決定してもよい。
【００２３】
上記によれば、現在地点における視点から見たときのマーカ画像の向きと他地点マーカ画像の向きとを合わせることができるので、マーカ画像と他地点マーカ画像との対応をよりわかりやすくすることができる。
【００２４】
また、上記他地点マーカ表示制御手段は、現在地点と地図上において隣接する他の地点および／または現在地点に対して地図上において所定の範囲内にある他の地点についてマーカ画像が配置されているか否かを判定し、当該マーカ画像が配置されている場合、当該現在地点に関連付けられるパノラマ画像とともに他地点マーカ画像を第１の表示装置に表示してもよい。
【００２５】
上記によれば、現在地点と地図上において隣接する他の地点および／または現在地点に対して地図上において所定の範囲内にある他の地点にマーカ画像が配置されている場合、現在地点に他地点マーカ画像が表示される。したがって、例えば現在地点に隣接する他の地点にマーカ画像が配置されている等、マーカ画像に対して適切な地点に他地点マーカ画像を表示することができる。
【００２６】
また、上記パノラマ画像は、現実空間における複数地点をそれぞれパノラマ撮影することによって生成されてもよい。この場合、上記マーカ配置手段は、パノラマ撮影されたパノラマ画像上に所定デザインを有する仮想画像を重畳して配置することによって、マーカ画像を配置してもよい。
【００２７】
上記によれば、現実空間にマーカ画像を示す物体を置いてパノラマ画像を生成するような手間が不要となる。
【００２８】
また、上記マーカ配置手段は、ユーザ入力に応じて、仮想空間内にマーカ画像を配置してもよい。
【００２９】
上記によれば、ユーザ入力に応じてマーカ画像を配置することができるため、仮想空間に対してユーザが所望する位置に仮想オブジェクトを登場させることが可能となる。
【００３０】
また、本発明は、上記各手段の少なくとも一部を備える画像処理装置、上記各手段の少なくとも一部としてコンピュータを機能させる画像処理プログラムや上記各手段で行われる動作を含む画像処理方法の形態で実施されてもよい。
【発明の効果】
【００３１】
本発明によれば、ユーザは、仮想空間画像に対する視点を変化させることが可能であり、視点を変化させることで、撮像装置によって撮像された撮像画像に含まれる場合に当該撮像画像を画像処理することによって所定の仮想オブジェクトを登場させることが可能なマーカ画像を仮想空間から探すことが可能となる。このとき、ユーザは、視点を変化させることができるので、仮想空間を実際に歩いてマーカ画像を探しているかのような体験をすることができ、マーカ画像を用いた画像処理において今までにない興趣性を提供することができる。
【図面の簡単な説明】
【００３２】
【図１】画像処理システム１の一例を示すブロック図
【図２】端末装置３と当該端末装置３のＬＣＤ１４に表示されるパノラマ画像との一例を示す図
【図３】端末装置３のＬＣＤ１４とモニタ４とに表示されるパノラマ画像の一例を示す図
【図４】３次元空間に配置される立体モデルＳＭの一例を示す図
【図５】パノラマ画像を表示するために設定される３次元空間の一例を示す図
【図６】地図データの構成の一例を模式的に示す図
【図７】モニタ４に表示された画像を携帯型情報処理装置５によって撮像している様子の一例を示す図
【図８】パノラマ画像とともに表示される隣接地点マーカＭａの一例を示す図
【図９】地図空間を上方から見て、隣接地点マーカＭａを配置する方法の一例を説明するための図
【図１０】地図空間を斜めから見て、隣接地点マーカＭａを配置する方法の一例を説明するための図
【図１１】情報処理装置２のメモリ１２に記憶される主なデータおよびプログラムの一例を示す図
【図１２】情報処理装置２において実行される表示制御処理の一例を示すフローチャート
【図１３】図１２のステップ６５で行われるマーカ配置処理の一例の詳細を示すサブルーチン
【図１４】携帯型情報処理装置５において実行される表示制御処理の一例を示すフローチャート
【発明を実施するための形態】
【００３３】
図１を参照して、本実施形態の一例に係る画像処理プログラムを実行する画像処理装置および当該画像処理装置を含む画像処理システムについて説明する。なお、図１は、据置型の情報処理装置２および携帯型情報処理装置５を含む画像処理システム１の一例を示すブロック図である。
【００３４】
情報処理装置２は、画像処理装置の一例であり、例えば据置型のゲーム装置で構成される。そして、情報処理装置２は、端末装置３およびモニタ４を含むゲームシステムを構成している。本実施形態における情報処理装置２は、画像（パノラマ画像）を生成して表示装置（端末装置３および／またはモニタ４）に表示するものである。情報処理装置２は、パーソナルコンピュータ、ゲーム装置、携帯端末、スマートフォン等、どのような形態の情報処理装置であってもよい。情報処理装置２は、端末装置３と通信可能である。情報処理装置２と端末装置３との通信は、有線であってもよいし無線であってもよい。また、情報処理装置２とモニタ４との接続についても、有線であってもよいし無線であってもよい。
【００３５】
情報処理装置２においては、端末装置３に対する入力に応じて情報処理装置２が情報処理（表示制御処理）を実行し、実行の結果得られた画像が端末装置３および／またはモニタ４に表示される。このように、本実施形態においては、入力機能、情報処理機能、および表示機能が複数の装置によって実現される構成を用いているが、他の実施形態においては、これらの機能を有する単一の情報処理装置（例えば携帯型あるいは可搬型の情報処理装置）で構成されてもよい。また、他の実施形態においては、情報処理装置２の機能が複数の装置によって実現されてもよい。例えば、他の実施形態においては、情報処理装置２において実行される情報処理の少なくとも一部が、ネットワーク（広域ネットワークおよび／またはローカルネットワーク）によって通信可能な複数の装置によって分散して実行されてもよい。
【００３６】
図１に示すように、情報処理装置２は、ＣＰＵ１１、メモリ１２、およびプログラム記憶部１３を備える。ＣＰＵ１１は、メモリ１２を用いて画像処理プログラムの一例である所定の表示制御プログラムを実行することによって、例えばパノラマ画像を端末装置３および／またはモニタ４に表示させる表示制御処理を実行する。なお、情報処理装置２は、情報処理を実行することができればどのような構成であってもよく、例えば情報処理の一部または全部が専用回路によって実行されてもよい。
【００３７】
プログラム記憶部１３は、上記表示制御プログラムを記憶する。プログラム記憶部１３は、ＣＰＵ１１がアクセス可能な任意の記憶装置である。プログラム記憶部１３は、例えばハードディスク等の、情報処理装置２に内蔵される記憶部であってもよいし、例えば光ディスク等の、情報処理装置２に着脱可能な記憶部であってもよい。
【００３８】
端末装置３は、ユーザが把持可能な（可搬型の）入力装置である。端末装置３は、情報処理装置２と通信可能である。端末装置３は、端末装置３に対する操作を表す操作データを情報処理装置２へ送信する。また、本実施形態においては、端末装置３は、表示部（ＬＣＤ１４）を備えており、端末装置３は表示装置でもある。情報処理装置２から画像が送信されてくる場合、端末装置３は、ＬＣＤ１４に当該画像を表示する。
【００３９】
また、端末装置３は、入力部を有する。入力部は、ユーザの操作を受け付け、ユーザの操作を表す操作データを生成する任意の装置である。本実施形態においては、端末装置３は、入力部として、操作部１５、タッチパネル１６、およびジャイロセンサ１７を備える。操作部１５は、本実施形態においては、操作ボタンおよびスティックである。タッチパネル１６は、表示部（ＬＣＤ）１４の画面上に設けられる。ジャイロセンサ１７は、端末装置３の姿勢を算出するための姿勢センサの一例である。例えば他の実施形態においては、端末装置３は、ジャイロセンサ１７に加えて（またはジャイロセンサ１７に代えて）加速度センサおよび／または磁気センサを備えていてもよい。また、端末装置３の姿勢を算出する方法は任意であり、例えば他の実施形態においては、情報処理装置２は、端末装置３を撮像装置によって撮像し、撮影された画像を用いて端末装置３の姿勢を算出してもよい。
【００４０】
端末装置３は、上記入力部によって生成された操作データを情報処理装置２へ送信する。操作データは、例えば一定時間に１回の割合で繰り返し、端末装置３から情報処理装置２へ送信される。情報処理装置２は、操作データを入力として用いて上記表示制御処理を実行する。
【００４１】
モニタ４は、生成された画像を表示し生成された音声を出力する表示装置の一例である。モニタ４は、情報処理装置２から送信されるデータを受信可能である。情報処理装置２において生成された画像がモニタ４へ送信されてくると、モニタ４は当該画像を表示する。
【００４２】
なお、本実施形態においては、表示装置と入力装置とが一体となった端末装置３を用いているが、他の実施形態においては、表示装置と入力装置とが別体として設けられてもよい。この場合、端末装置３が入力装置のみとして機能し、情報処理装置２は、モニタ４のみに画像を表示させてもよい。
【００４３】
例えば、携帯型情報処理装置５は、交換可能な光ディスクやメモリーカード等の記憶媒体内に記憶され、または、他の装置から受信した表示制御プログラムやゲームプログラムを実行可能である。本実施形態における携帯型情報処理装置５は、撮像した実世界画像に仮想オブジェクトを合成して表示装置（ＬＣＤ５３）に表示するものである。携帯型情報処理装置５は、一般的なパーソナルコンピュータ、据置型ゲーム機、携帯電話機、携帯ゲーム機、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）等のデバイスであってもかまわない。
【００４４】
携帯型情報処理装置５は、撮像部５１、操作部５２、ＬＣＤ５３、ＣＰＵ５４、メモリ５５、およびプログラム記憶部５６を備える。なお、携帯型情報処理装置５は、ＣＰＵ５４を少なくとも含む情報処理装置と他の装置とを含む１以上の装置によって構成されてもよい。
【００４５】
ＣＰＵ５４は、各種の情報処理を実行するための情報処理手段（コンピュータ）の一例である。ＣＰＵ５４は、各種の情報処理として、撮像部５１によって撮像された撮像画像や操作部５２に対するユーザの操作に応じた処理等を実行する機能を有する。例えば、ＣＰＵ５４が所定のプログラムを実行することによって、上記機能が実現される。本実施形態においては、撮像部５１が撮像した撮像画像内に所定のマーカ画像が含まれる場合、ＣＰＵ５４は、当該マーカ画像の表示位置に仮想オブジェクトを当該撮像画像に合成してＬＣＤ５３に表示する表示制御処理を行う。
【００４６】
メモリ５５は、ＣＰＵ５４が上記情報処理を実行する際に用いる各種のデータを記憶する。メモリ５５は、例えばＣＰＵ５４がアクセス可能なメモリである。
【００４７】
プログラム記憶部５６は、プログラムを記憶（格納）する。プログラム記憶部５６は、ＣＰＵ５４がアクセス可能な記憶装置（記憶媒体）であればどのようなものであってもよい。例えば、プログラム記憶部５６は、ＣＰＵ５４を含む携帯型情報処理装置５内に設けられる記憶装置であってもよいし、ＣＰＵ５４を含む携帯型情報処理装置５に着脱自在に装着される記憶媒体であってもよい。また、プログラム記憶部５６は、ＣＰＵ５４とネットワークを介して接続される記憶装置（サーバ等）であってもよい。ＣＰＵ５４は、プログラムの一部または全部を適宜のタイミングでメモリ５５に読み出し、読み出されたプログラムを実行するようにしてもよい。
【００４８】
操作部５２は、ユーザによって操作可能な入力装置である。操作部５２は、どのような入力装置であってもよい。例えば、操作部５２は、操作ボタン、スティック、タッチパネル、ジャイロセンサ等の姿勢センサを備えていてもよい。
【００４９】
ＬＣＤ５３は、携帯型情報処理装置５が備える表示部の一例であり、ＣＰＵ５４の指示にしたがって画像を表示する。なお、ＬＣＤ５３は、実質的に同一の表示領域を用いて左目用画像と右目用画像とを表示して、立体視可能な表示装置であってもよい。
【００５０】
例えば、撮像部５１は、携帯型情報処理装置５のハウジング外面に固設され、ＬＣＤ５３の画面奥行方向を撮像方向としている。撮像部５１は、ＣＰＵ５１と接続されており、ＣＰＵ５１の指示にしたがって画像を撮像し、撮像した画像データをＣＰＵ５４に出力する。撮像部５１は、所定の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。なお、レンズは、ズーム機構を有するものでもよい。また、撮像部５１は、撮像方向が左右平行となるように固設された２つの撮像部によってステレオカメラを構成してもかまわない。
【００５１】
次に、本実施形態における画像を表示する処理の概要について説明する。本実施形態においては、情報処理装置２は、パノラマ画像のうちの一部領域（ユーザによって操作される視線方向に応じた視野範囲内の領域）の画像をモニタ４に表示する。そして、携帯型情報処理装置５の撮像部５１を用いて、モニタ４に表示されたパノラマ画像を撮像し、当該パノラマ画像内に所定のマーカ画像が含まれていた場合に、当該マーカ画像の表示位置に仮想オブジェクトを合成したパノラマ画像を表示しているモニタ４を、ＬＣＤ５３に表示する。
【００５２】
本実施形態において、パノラマ画像とは、表示装置に表示される範囲よりも広い範囲の画像である。つまり、パノラマ画像については、基本的にはその一部の領域の画像が表示装置に表示される。本実施形態においては、パノラマ画像のうちで、上記視線方向に応じて決まる視野範囲に含まれる領域が、表示装置に表示される範囲（表示範囲）となる。パノラマ画像は、（表示装置に表示される際に）３次元空間における視線方向に応じて表示範囲を決定する処理が行われる画像と言うこともできる。表示範囲は、例えばユーザの操作に従って変化（移動）してもよい。表示範囲が移動する場合、パノラマ画像は、表示範囲が変化することによって視線の方向が変化する画像であるとも言える。上記のように、パノラマ画像は、通常その一部の領域（範囲）が表示されるものであるが、情報処理装置２は、パノラマ画像の全体を表示装置に表示する機能を有していてもよい。例えば情報処理装置２が複数の表示装置にパノラマ画像を表示する場合には、一部の表示装置においてパノラマ画像の全体が表示されてもよい。
【００５３】
なお、本実施形態においては、上下方向（ピッチ方向）および左右方向（ヨー方向）に関して全方向（３６０°）の視野角を有するパノラマ画像が用いられる。ただし、パノラマ画像には死角があってもよく、例えば視野角が１８０°程度であってもよい。表示装置に表示される範囲（視野範囲）よりも広い範囲の画像は、パノラマ画像である。
【００５４】
図２は、端末装置３と当該端末装置３のＬＣＤ１４に表示されるパノラマ画像との一例を示す図である。図２に示すように、本実施形態においては、現実世界を表すパノラマ画像（の一部の範囲）が端末装置３のＬＣＤ１４に表示される。
【００５５】
本実施形態においては、視線方向は、ユーザが端末装置３の姿勢を変化させる操作によって制御される。例えば、図２に示すように、端末装置３が上下方向（ピッチ方向）または左右方向（ヨー方向）に回転すると、ＬＣＤ１４に表示される画像の視線方向（後述する仮想カメラの視線方向）が上下または左右に変化する。すなわち、ＬＣＤ１４に表示される画像が上下または左右にスクロールされ、パノラマ画像中の異なる範囲が表示される。具体的には、情報処理装置２は、ジャイロセンサ１７によって検出される角速度に基づいて端末装置３の姿勢を算出し、算出された姿勢に基づいて視線方向を算出する。
【００５６】
このように、情報処理装置２は、端末装置３の姿勢に応じて視線方向を制御する。これによれば、ユーザは、周囲を見渡すように端末装置３の姿勢を変化させる操作によってパノラマ画像の表示範囲を変更でき、パノラマ画像が表す現実空間を見渡すことができるので、パノラマ画像の視点の場所に実際にいるかのような体験をすることができる。なお、本実施形態においては、情報処理装置２は、端末装置３の姿勢の変化量とパノラマ画像の視線方向の変化量とを一致させる。これによって、端末装置３の姿勢を変化させることによってパノラマ画像による現実空間を見渡す操作のリアリティが増す。
【００５７】
なお、他の実施形態においては、視線方向の制御はどのように行われてもよい。視線方向がユーザの入力によって制御される場合、入力方法は任意である。情報処理装置２は、例えば端末装置３が有する十字ボタンあるいはスティックに対する入力に応じて視線方向を制御してもよい。また、視線方向は、ユーザの入力によって制御される他、所定のアルゴリズムに従って自動的に制御されてもよい。
【００５８】
図３は、端末装置３のＬＣＤ１４とモニタ４とに表示されるパノラマ画像の一例を示す図である。図３に示すように、本実施形態においては、情報処理装置２は、端末装置３に表示される画像と同じ画像をモニタ４に表示する。すなわち、モニタ４は、現実世界を表すパノラマ画像（の一部の範囲）が表示され、端末装置３に対するユーザ操作に応じてその表示範囲が変化することになる。
【００５９】
本実施形態においては、情報処理装置２は、パノラマ画像を表示するために仮想の３次元空間を設定し、３次元空間において立体モデルを配置する。そして、情報処理装置２は、立体モデルにパノラマ動画をテクスチャとして描画する方法によってパノラマ画像を表示する。
【００６０】
図４は、３次元空間に配置される立体モデルＳＭの一例を示す図である。図４に示すように、本実施形態においては、パノラマ画像を描画するための立体モデルＳＭとして、８つの部分モデルＰＭａ〜ＰＭｈが３次元空間に配置される。各部分モデルＰＭａ〜ＰＭｈは、それぞれ球面の一部である曲面状の形状を有し、それぞれを組み合わせることによって１つの球状の立体モデルＳＭを形成する。図４に示すように、８つの部分モデルＰＭａ〜ＰＭｈは、球状に配置される。
【００６１】
部分モデルＰＭａ〜ＰＭｈには、パノラマ画像の一部がそれぞれ描画される。ここで、パノラマ画像は、部分モデルＰＭａ〜ＰＭｈの数に応じて分割される。一例として、パノラマ画像は、部分Ａ〜Ｈの８つに分割される。そして、分割されたパノラマ画像Ａ〜Ｈは、それらに対応する部分モデルＰＭａ〜ＰＭｈの内側面にそれぞれ描画される。
【００６２】
図５は、パノラマ画像を表示するために設定される３次元空間の一例を示す図である。なお、以下においては、８つの部分モデルＰＭａ〜ＰＭｈが球状に配置されることによって形成されるモデルを「立体モデルＰＭ」と表記する。なお、図５、図９、図１０においては、図面を見やすくする目的で、実際に配置される各部分モデルＰＭａ〜ＰＭｈの形状を示さず、各部分モデルＰＭａ〜ＰＭｈによって形成される立体モデルＰＭの外観形状を破線によって示すこととする。
【００６３】
情報処理装置２は、立体モデルＰＭの内側に仮想カメラを配置する。ここでは、一例として、立体モデルＰＭの中心位置Ｐに仮想カメラが配置される。また、上述したように、仮想カメラの視線方向Ｖは、端末装置３の姿勢に応じて決定される。なお、本実施形態においては、仮想カメラの位置を固定とするが、他の実施形態においては、視線方向に応じて仮想カメラの位置が変化してもよい。
【００６４】
情報処理装置２は、仮想カメラ（視点）の位置Ｐから視線方向Ｖの方を見た立体モデルＰＭ（立体モデルＰＭの内側面）の画像を生成する。すなわち、情報処理装置２は、上記３次元空間（立体モデルＰＭ）のうち、視線方向Ｖによって決められる視野範囲（図５に示す破線領域ＰＩｓ）の画像を生成し、表示装置（ＬＣＤ１４およびモニタ４）に表示する。ここで、画像を生成する際、情報処理装置２は、パノラマ画像をテクスチャとして立体モデルＰＭの内側面に描画する。つまり、視野範囲に含まれる立体モデルＰＭ（各部分モデルＰＭａ〜ＰＭｈのいくつか）の内側面にパノラマ動画の一部が描画され、当該視野範囲の画像が表示されることになる。これによって、パノラマ画像のうち、仮想カメラの視野範囲に対応する範囲の画像が生成されて表示されることになる。
【００６５】
上述のように、仮想カメラの視線方向Ｖは、ユーザ操作に応じて変化する。したがって、ユーザ操作に応じて仮想カメラの視野範囲が変化して、当該視野範囲に対応する表示範囲が変化する。すなわち、ＬＣＤ１４およびモニタ４に表示されるパノラマ画像は、ユーザ操作に応じてスクロールする（図２および図３参照）。
【００６６】
なお、仮想カメラの視野範囲は、視線方向Ｖに基づく任意の方法で決められる。例えば、視野範囲は、視線方向Ｖを中心とする所定の範囲となるように決められる。なお、情報処理装置２は、視野範囲の大きさを変更するようにしてもよい。例えば、情報処理装置２は、ＬＣＤ１４やモニタ４に表示されるパノラマ画像について、ズームインまたはズームアウトを行うようにしてもよい。視野範囲の大きさは、例えばユーザ操作に応じて変更されてもよい。また、情報処理装置２は、端末装置３の姿勢がロール方向に変化することに応じて視野範囲を回転させてもよい。
【００６７】
また、図５に示すように、仮想空間には立体モデルＰＭとともにマーカＭが配置されることがある。マーカＭは、立体モデルＰＭの内側に配置される。そのため、仮想カメラの視野範囲内にマーカＭが位置する場合、ＬＣＤ１４およびモニタ４には、パノラマ画像とともに（パノラマ画像に重ねて）マーカＭが表示される。
【００６８】
なお、パノラマ画像上にマーカＭを配置する方法は、本実施形態のように仮想空間内にマーカＭを配置する方法に限らず、任意の方法であってよい。例えば、他の実施形態においては、情報処理装置２は、パノラマ画像に対してマーカＭの画像を追加し、マーカＭの画像が追加されたパノラマ画像を立体モデルＰＭに描画することによって、パノラマ画像上にマーカＭを配置してもよい。
【００６９】
また、パノラマ画像上に配置されるマーカは、パノラマ画像と同様に予め用意されていてもよい。すなわち、パノラマ画像のデータおよびマーカのデータ（マーカＭを表示するために用いられる画像データ等）は、情報処理装置２において、あるいは、情報処理装置２と通信可能な他の装置（例えば、外部サーバ装置）において、予め記憶されていてもよい。この場合、情報処理装置２は、これらのデータを必要に応じて取得し、取得したデータを用いてパノラマ画像およびマーカの画像をＬＣＤ１４およびモニタ４に表示させる。なお、パノラマ画像のデータとマーカのデータとは、互いに異なる装置に記憶されていてもよい。また、マーカは、予め用意されたものに限らず、ユーザによって生成されたものであってもよい。例えば、ユーザがパノラマ画像上の位置およびマーカの種類を指定し、指定した位置に指定した種類のマーカが配置されてもよい。
【００７０】
次に、本実施形態において用いられる地図データについて説明する。本実施形態においては、地図データが用意され、地図データが表す地図上における複数の地点毎にパノラマ画像が用意される。そして、ユーザは、地図上の地点を移動することによって、視点の位置が異なる複数のパノラマ画像を表示させることができる。
【００７１】
図６は、地図データの構成の一例を模式的に示す図である。図６に示す点は、地図上においてパノラマ画像が関連付けられる地点を表す。また、点同士を結ぶ線分は、地点同士が接続されていることを表す。このように、地図データは、地図上における複数の地点と地点同士の接続関係とを示す。地図データにおける地点およびそれらの接続関係は、例えば、地点を表すノードとノード同士を接続するリンクとによって表現されてもよい。
【００７２】
図６に示すように、地図データは、地図上に設定される地点を表す地点情報を地点毎に格納する。本実施形態においては、地点情報は、位置情報と接続情報とを含む。位置情報は、当該地点の地図上の位置を示す情報である。例えば、位置情報は、地図上における緯度経度を示す。
【００７３】
接続情報は、当該地点に接続される他の地点（隣接地点）を示す隣接情報を含む。隣接情報は、隣接地点を表すノードの情報であってもよいし、当該地点と隣接地点との接続を表すリンクの情報であってもよい。また、本実施形態においては、接続情報は、当該地点から見た隣接地点の地図上の方向を示す方向情報を含む。例えば、方向情報は、地図上における北を０°とした、０°≦θ＜３６０°の範囲の角度を示す。
【００７４】
上述したように、地図データにおいて、地点に対してそれぞれパノラマ画像が関連付けられている。具体的には、地図データにおいては、地点情報に対して、パノラマ画像情報が関連付けて格納される。例えば、パノラマ画像情報は、各パノラマ画像を識別可能な識別情報（ＩＤ）である。このように、複数のパノラマ画像が用意され、各パノラマ画像がそれぞれ地図上の地点に関連付けられている。なお、ある地点に関連付けられるパノラマ画像は、現実世界の当該ある地点を視点として視点の周囲を撮影したパノラマ画像である。
【００７５】
また、地図上の各地点に対応する各パノラマ画像のうちのいくつかのパノラマ画像には、マーカが設定される（換言すれば、地図上のいくつかの地点にはマーカが設定される）。本実施形態においては、マーカが設定されるパノラマ画像と、マーカが設定されないパノラマ画像とがある。
【００７６】
具体的には、地図データにおいては、パノラマ画像情報に対してマーカ情報が関連付けて格納される。マーカ情報は、立体モデルＳＭが配置される仮想空間におけるマーカの位置（仮想カメラの位置Ｐを基準とした位置であり、例えば、パノラマ画像で示される地面上にマーカが配置されているように見える位置）を示す情報を含む。また、マーカ情報は、マーカを配置する向きおよび／またはマーカの種類を示す情報を含んでいてもよい。また、マーカは、仮想空間において固定的に配置されてもよいし、予め定められたアルゴリズムに従って仮想空間内を移動してもよい。マーカが移動する場合、マーカ情報は、移動のためのアルゴリズム（あるいは移動軌跡）を示す情報を含んでいてもよい。
【００７７】
なお、地図データの構成は上記に限らず、地点に対してパノラマ画像が関連付けられ、少なくとも１つのパノラマ画像に対してマーカが設定される任意の構成であってよい。例えば、他の実施形態においては、地図データは、上記方向情報を含まない構成であってもよい。また、地図データは、上記の情報以外の情報をさらに含んでいてもよい。例えば、地図データは、地点の高度に関する情報をさらに含んでいてもよい。高度に関する情報とは、例えば、地図上の建物の中に地点が設定される場合において、その地点が建物の何階か示す情報である。このように、地図データの地点は、道路上の地点に限らず、建物内の地点であってもよい。
【００７８】
パノラマ画像を表示する処理中において、情報処理装置２は、ユーザによる視線変更操作および地点移動操作を受け付ける。例えば、視線変更操作は、端末装置３の姿勢を変更する操作である。また、地点移動操作は、パノラマ画像が表示される現在地点（視点）を移動する操作である。地点移動操作の具体的な操作方法は任意であり、移動可能な方向を示す方向オブジェクトをパノラマ画像とともに表示し、方向オブジェクトを指定する操作（例えば、タッチパネル１６を介して、画面上の方向オブジェクトをタッチする操作）を、情報処理装置２が受け付けてもよい。このとき、ユーザが指定した方向オブジェクトが示す方向へ現在地点が移動する。また、端末装置３が有する十字ボタンあるいはスティックに対する操作を、情報処理装置２が地点移動操作として受け付けてもよい。このとき、十字ボタンあるいはスティックによって指定された方向へ現在地点が移動する。
【００７９】
このように、情報処理装置２は、視線変更操作に応じて表示範囲を変化させてパノラマ画像をＬＣＤ１４およびモニタ４に表示させる。また、情報処理装置２は、地点移動操作に応じて、移動後の地点に関連付けられたパノラマ画像をＬＣＤ１４およびモニタ４に表示する。なお、地点移動操作が行われた場合、仮想カメラの位置を変更するのではなく、立体モデルＳＭに描画するパノラマ画像を変更すればよい。つまり、移動前の地点のパノラマ画像に代えて移動後の地点のパノラマ画像が立体モデルＳＭに描画されることによって、移動後の地点のパノラマ画像を表示することができる。これによって、ユーザには視点が移動しているように見える。
【００８０】
表示されるパノラマ画像にマーカが設定されている場合には、情報処理装置２は、仮想空間において立体モデルＳＭとともにマーカを配置する。以下、マーカが表示されたパノラマ画像がモニタ４に表示された場合に、携帯型情報処理装置５で実行される表示制御処理について説明する。図７は、モニタ４に表示された画像を携帯型情報処理装置５によって撮像している様子の一例を示す図である。
【００８１】
図７に示すように、マーカＭが設定されているパノラマ画像が表示される状態（マーカが設定される地点が現在地点である状態）において、マーカＭが視野範囲内に含まれる場合には、パノラマ画像とともにマーカＭがモニタ４に表示される。そして、撮像部５１を介して、モニタ４の表示画面を撮像することによって、携帯型情報処理装置５のＬＣＤ５３には、パノラマ画像を表示しているモニタ４が表示される。
【００８２】
マーカＭは、一例として矩形の枠内に文字が描かれており、ＣＰＵ５４は、撮像部５１から取得される撮像画像に対して例えばパターンマッチング等の画像処理を行うことによって、当該撮像画像にマーカＭが含まれているか否かを判定する。そして、撮像部５１によってマーカＭが撮像されている場合、現実世界画像としてマーカＭが重畳表示されたパノラマ画像が表示されるとともに、現実世界画像に含まれるマーカ画像Ｍの表示位置に仮想オブジェクトＯＢＪ（例えば、土管を模した仮想オブジェクト）がＬＣＤ５３に合成表示される。
【００８３】
なお、マーカＭに向き（前方向、右方向、上方向）を定義して、マーカＭの配置方向に基づいた姿勢で仮想オブジェクトを配置して合成表示してもよい。例えば、仮想オブジェクトの前方向がマーカＭの前方向と一致するように、マーカＭが配置されている平面上に仮想オブジェクトを配置してもよい。一例として、パノラマ画像が表す地面上に配置されているように見える位置に、当該マーカＭの前方向を視点Ｐに向けてマーカＭを配置することによって、仮想オブジェクトの正面がＬＣＤ５３を見るユーザと対向するように当該地面上に当該仮想オブジェクトが配置されて合成表示される。また、マーカＭの種類に応じて、当該マーカＭに対応して合成表示する仮想オブジェクトの種類を変化させてもよい。
【００８４】
このように、携帯型情報処理装置５のユーザは、パノラマ画像の中にマーカＭを見つけた場合、当該マーカＭが合成表示されたパノラマ画像を撮像することによって、当該マーカＭから仮想オブジェクトを当該パノラマ画像内で出現させることができる。一方、端末装置３を操作するユーザは、パノラマ画像に対する視線変更操作と地点移動操作とを行うことが可能であり、視線方向を変化させつつ現在地点（視点）を移動させることで、マーカＭを探すことが可能となる。このとき、端末装置３のユーザは、視線方向を変化させることで周囲を見回すとともに、視点を移動させることができるので、地図が表す現実空間を実際に歩いてマーカＭを探しているかのような体験をすることができ、マーカ画像を用いた画像処理において今までにない興趣性を提供することができる。
【００８５】
次に、隣接地点マーカＭａについて説明する。隣接地点マーカＭａは、マーカＭが配置されているマーカ配置地点以外の地点における視点から見たときのマーカＭを表す画像である。例えば、マーカ配置地点に隣接する隣接地点においては、当該隣接地点における視点から見たときのマーカＭを表す隣接地点マーカＭａをパノラマ画像とともに表示する。隣接地点マーカＭａを表示することによって、ユーザは、現在地点に隣接する地点にマーカＭが配置されている（隣接する地点がマーカ配置地点である）ことを認識することができる。
【００８６】
図８は、パノラマ画像とともに表示される隣接地点マーカＭａの一例を示す図である。図８に示す画像は、図７に示したマーカ配置地点にマーカＭが配置される場合において、当該マーカ配置地点の隣接地点に対してモニタ４に表示されるパノラマ画像の一例である。図８に示すように、マーカ配置地点に配置されているマーカＭを隣接地点から見た様子が、隣接地点マーカＭａとして当該隣接地点のパノラマ画像に重畳して表示される。一例として、隣接地点マーカＭａは、マーカＭと同じデザインであり、当該マーカＭを見る方向や距離に応じて表示される向き、形状、および／または大きさを変化させたものでもよい。この場合、隣接地点マーカＭａは、マーカＭと同じデザインであってとしても、形状（変形）および／または大きさ（縮小）によって携帯型情報処理装置５ではマーカＭとして認識できないこともあり得る。他の例として、隣接地点マーカＭａは、マーカＭと異なるデザインであって、マーカＭと関連するデザイン（マーカＭと隣接地点マーカＭａとの関連をユーザが認識することができるデザイン）であってもよい。この場合、隣接地点マーカＭａは、そのデザインの違いによって携帯型情報処理装置５ではマーカＭとして認識できないが、他のマーカとして認識してマーカＭとは異なる仮想オブジェクトをＬＣＤ５３に出現させることもあり得る。
【００８７】
次に、図９および図１０を参照して、隣接地点マーカＭａの配置方法について説明する。図９は、地図が表す空間（地図空間と呼ぶ）を上方から見て、隣接地点マーカＭａを配置する方法の一例を説明するための図である。図１０は、地図空間を斜めから見て、隣接地点マーカＭａを配置する方法の一例を説明するための図である。なお、図９および図１０が示す地図空間は、地図が表す空間を概念的に表したものであって、パノラマ画像の表示のために構築される仮想空間（立体モデルＳＭが設定される仮想空間）とは異なる点に留意する。また、図９および図１０では、理解の容易のために、立体モデルＳＭに対応する球面を示しているが、上記仮想空間では、１つの立体モデルＳＭが配置され、複数の立体モデルＳＭが配置されるわけではない点に留意する。ただし、他の実施形態においては、地図空間に対応する仮想空間が設定され、地点毎に立体モデルＳＭが設定されてもよい。
【００８８】
図９および図１０において、位置Ｐ１は、現在地点における視点の位置（現在地点に関連付けられるパノラマ画像の視点の位置）である。位置Ｐ２は、マーカ配置地点における視点の位置（マーカ配置地点に関連付けられるパノラマ画像の視点の位置）である。なお、図１０に示すように、地点と視点との位置関係は各パノラマ画像で一定であるとする。すなわち、地点の所定距離だけ上方に視点が配置されるものとする。
【００８９】
上述のように、現在地点がマーカ配置地点に隣接する地点である場合、隣接地点マーカＭａを配置する処理が実行される。隣接地点マーカＭａの配置処理において、情報処理装置２は、現在地点における視点位置Ｐ１とマーカ配置地点における視点位置Ｐ２との地図空間での位置関係（「第１位置関係」と呼ぶ）を算出する。
【００９０】
例えば、第１位置関係として、視点位置Ｐ１から視点位置Ｐ２までの地図空間での距離および方向が算出される。なお、地点と視点との位置関係を一定とする場合、現在地点とマーカ配置地点との位置関係がそのまま第１位置関係となる。したがって、情報処理装置２は、地図データに含まれる方向情報が示す方向を、視点位置Ｐ１から視点位置Ｐ２までの方向とする。また、第１の例として、情報処理装置２は、視点位置Ｐ１から視点位置Ｐ２までの距離を所定値とする。この場合、隣接地点マーカＭａの配置処理を高速化することができる。第２の例として、情報処理装置２は、地図データに含まれる、現在地点およびマーカ配置地点の緯度経度情報に基づいて上記距離を算出する。この場合、より正確に第１位置関係を算出することができる。第３の例として、情報処理装置２は、地点と視点との位置関係を、一定ではなく地点毎（パノラマ画像毎）に予め設定する。この場合、情報処理装置２は、地点毎に設定される位置関係と、現在地点とマーカ配置地点との位置関係とに基づいて第１位置関係を算出してもよい。
【００９１】
次に、情報処理装置２は、マーカ配置地点における視点位置Ｐ２とマーカＭの位置Ｐｏとの地図空間での位置関係（「第２位置関係」と呼ぶ）を決定する。例えば、第２位置関係は、視点位置Ｐ２から位置Ｐｏまでの距離および方向によって決定される。具体的には、第２位置関係は、立体モデルＳＭが設定される上記仮想空間における、仮想カメラとマーカＭとの位置関係に基づいて決定される。なお、上記の仮想空間における位置関係は、地点情報に含まれるマーカ情報として予め設定されている。例えば、地図空間における視点位置Ｐ２から位置Ｐｏへの方向は、仮想空間における仮想カメラからマーカＭへの方向と対応するように（一致するように）決定される。また、地図空間における視点位置Ｐ２から位置Ｐｏまでの距離は、仮想空間における仮想カメラからマーカＭまでの距離と対応するように決定される。ただし、視点位置Ｐ２から位置Ｐｏまでの距離の決定方法は任意であり、当該距離は、予め定められた値に決定されてもよい。
【００９２】
次に、情報処理装置２は、上記第１位置関係および第２位置関係に基づいて、隣接地点マーカＭａの配置位置Ｐａを算出する。具体的には、情報処理装置２は、上記第１位置関係および第２位置関係に基づいて、視点位置Ｐ１から位置Ｐｏへの方向（図９および図１０に示す一点鎖線に沿った方向）を算出する。隣接地点マーカＭａの位置Ｐａは、視点位置Ｐ１から上記方向へ延ばした直線上に設定され、以下に説明する方法で視点位置Ｐ１から位置Ｐａまでの距離が決定されることによって、位置Ｐａが決定される。
【００９３】
ここで、本実施形態においては、現在地点に設定される立体モデルＳＭの内側に隣接地点マーカＭａを配置するため、立体モデルＳＭの内側の領域に対応する位置に位置Ｐａを設定する。例えば、情報処理装置２は、視点位置Ｐ１から位置Ｐａまでの距離を、立体モデルＳＭの内側となる予め定められた値に設定する。
【００９４】
なお、隣接地点マーカＭａのサイズおよび表示方向は、予め定められたものであってもよいが、視点位置Ｐ２からマーカＭを見た距離および方向と視点位置Ｐ１からマーカＭを見た距離や方向の差分を考慮して設定することによって、マーカＭを表す画像として隣接地点マーカＭａをよりリアルにすることができる。例えば、図１０に示すように、視点位置Ｐ２から位置Ｐｏまでの距離よりも視点位置Ｐ１から位置Ｐｏまでの距離が長くなる場合には、隣接地点マーカＭａはマーカＭよりも当該距離差に応じて小さく見えるように設定される。また、決定された位置Ｐａにおいて、マーカＭと平行になるように隣接地点マーカＭａを配置し、マーカＭと同じ方向に隣接地点マーカＭａを配置する。すなわち、現在地点における視点位置Ｐ１から見たときの隣接地点マーカＭａの向き（姿勢）は、当該視点位置Ｐ１から見たときのマーカＭの向きを表すように（当該視点位置Ｐ１から見たときのマーカＭの向きと一致するように）、決定される。具体的には、情報処理装置２は、視点位置Ｐ１からマーカＭの位置Ｐｏへの方向と、視点位置Ｐ２から位置Ｐｏへの方向との角度差に基づいて隣接地点マーカＭａの向きを決定する。より具体的には、情報処理装置２は、隣接地点マーカＭａの向きを、視点位置Ｐ２から見たマーカＭの向きを上記角度差に応じた量だけ回転させた向きとする。このように、視点位置Ｐ１から見たときのマーカＭの向きと隣接地点マーカＭａの向きとを合わせることによって、マーカＭと隣接地点マーカＭａとの対応をよりわかりやすくすることができる。また、マーカＭおよび隣接地点マーカＭａのリアリティを向上することができる。なお、他の実施形態においては、隣接地点マーカＭａの向きは、予め定められた向きに設定されてもよく、例えば、視点位置Ｐ２からマーカＭを見た向きと同じ向きに設定されてもよい。
【００９５】
以上のようにして、地図空間における隣接地点マーカＭａの位置Ｐａが算出されると、情報処理装置２は、位置Ｐａに対応する仮想空間の位置に隣接地点マーカＭａを配置する。これによって、隣接地点マーカＭａは、視点位置Ｐ１からマーカＭの位置Ｐｏへの方向に表示されることとなる（図８参照）。このように、情報処理装置２は、地図上における現在地点から他地点（マーカ配置地点）への方向に基づいて、現在地点に関連付けられるパノラマ画像に対する隣接地点マーカＭａの配置位置を決定する。これによれば、現在地点から見たときのマーカＭの方向を、隣接地点マーカＭａの配置位置によってユーザに認識させることができる。
【００９６】
なお、他の実施形態においては、視点位置Ｐ１から視点位置Ｐ２への方向のみを用いて隣接地点マーカＭａの配置位置が決定されてもよい。この場合でも、現在地点から見たときのマーカＭの大まかな方向を隣接地点マーカＭａの配置位置によってユーザに認識させることができる。このように、隣接地点マーカＭａは、マーカＭに対応する正確な位置に必ずしも配置される必要はなく、現在の視点からマーカＭへの方向を大まかに示すように配置されてもよい。なお、地図上における現在地点から他地点（マーカ配置地点）への方向に加えて、他地点における視点（位置Ｐ２）とマーカＭ（位置Ｐｏ）との地図上における位置関係（第２位置関係）に基づいて、隣接地点マーカＭａの配置位置を決定する場合、隣接地点マーカＭａの配置位置によって、現在地点における視点からのマーカＭの方向をより正確に表現することができることは言うまでもない。
【００９７】
なお、上記第１位置関係における距離は、現在地点およびマーカ配置地点の緯度経度情報に基づいて算出されてもよい。つまり、現在地点から他地点までの距離に基づいて、隣接地点マーカＭａの配置位置が決定されてもよい。これによれば、隣接地点マーカＭａの配置位置によって、現在地点における視点からのマーカＭの方向をさらに正確に表現することができる。
【００９８】
このように、情報処理装置２は、現在地点に対して所定の条件を満たす他地点についてマーカＭが存在するか否かを判定し、マーカＭが存在する場合、隣接地点マーカＭａをパノラマ画像とともに端末装置３およびモニタ４に表示する。これによれば、情報処理装置２は、例えば現在地点に隣接する地点にマーカＭが存在する等、適切な場合に隣接地点マーカＭａを表示することができる。なお、上述した説明では、上記所定の条件がマーカ配置地点に現在地点が隣接していることであったが、上記所定の条件は任意である。例えば、「現在地点から所定距離内にあること」が上記所定の条件として用いられてもよい。
【００９９】
また、携帯型情報処理装置５のユーザは、パノラマ画像の中に合成表示された隣接地点マーカＭａを撮像したとしても、そのサイズ、表示方向、デザイン、解像度等によって、当該隣接地点マーカＭａから仮想オブジェクトを当該パノラマ画像内で出現させることができない場合があり得る。しかしながら、端末装置３を操作するユーザは、隣接地点マーカＭａが表示された場合、その周辺の地点にマーカＭが配置されていることを知ることができるため、さらにパノラマ画像に対する地点移動操作を行うことによってマーカＭと視点との距離を近づけることができる。そして、マーカＭの画像認識が可能な位置まで視点が接近してマーカＭが視野範囲に入るようなパノラマ画像が表示された場合、携帯型情報処理装置５のユーザが当該マーカＭを撮像することによって、パノラマ画像の中に合成表示されたマーカＭから仮想オブジェクトを当該パノラマ画像内で出現させることができる。このように、端末装置３を操作するユーザがパノラマ画像に対する視点を変化させることによって、携帯型情報処理装置５のユーザが仮想オブジェクトをＬＣＤ５３に出現させることができるようにマーカＭをモニタ４に表示させることができる。したがって、地図が表す現実空間を実際に歩いて画像認識に対して好適な状態でマーカＭを表示させるようなゲームを実現することができ、マーカ画像を用いた画像処理において今までにない興趣性を提供することができる。
【０１００】
なお、隣接地点マーカＭａは、視点の位置が変更されて新たなパノラマ画像が表示される毎に配置位置および向きが決定されたが、パノラマ画像に対して予め設定されていてもよい。すなわち、地図データにおいて、隣接地点マーカＭａの配置位置（および向き）を示す情報が、パノラマ画像情報に関連付けて格納されてもよい。このとき、情報処理装置２は、当該情報を用いてパノラマ画像とともに隣接地点マーカＭａを表示する。
【０１０１】
また、上述した説明では、マーカを重畳して端末装置３およびモニタ４に表示する画像の例として、現実世界を撮像したパノラマ画像を用いたが、他の画像にマーカを含ませて表示する場合であってもよい。例えば、表示装置に表示される範囲よりも広い範囲の画像を表示対象画像として、当該表示対象画像の一部となる表示範囲の画像を端末装置３やモニタ４に表示する場合であればどのような画像でもよく、仮想世界や仮想空間の一部を端末装置３やモニタ４に表示し、当該仮想世界や仮想空間にマーカを配置すれば、同様に上述した表示制御を適用することができる。
【０１０２】
また、上述した説明では、端末装置３のＬＣＤ１４には、モニタ４と同様のパノラマ画像が表示されている。つまり、マーカＭが合成表示されたパノラマ画像がＬＣＤ１４に表示されたとしても、当該マーカＭから仮想オブジェクトが出現することはない。しかしながら、他の実施形態において、マーカＭが合成表示されたパノラマ画像がＬＣＤ１４に表示された場合、当該マーカＭから所定の仮想オブジェクトを出現させてもかまわない。例えば、マーカＭが合成表示されたパノラマ画像がＬＣＤ１４に表示された場合にＬＣＤ１４に出現させる仮想オブジェクトは、当該マーカＭを撮像部５１で撮像して画像認識された場合に携帯型情報処理装置５のＬＣＤ５３に出現する仮想オブジェクトと同じものにすることが考えられる。ここで、ＬＣＤ１４に出現させる仮想オブジェクトは、ＡＲ技術によってパノラマ画像に合成表示するものではないが、ＡＲ技術によって携帯型情報処理装置５のＬＣＤ５３に出現する仮想オブジェクトと同じものが同じマーカＭから出現するような演出を行うことによって、端末装置３のユーザも携帯型情報処理装置５のユーザと同様に仮想オブジェクトが出現する演出を疑似体験することができる。
【０１０３】
次に、情報処理装置２において行われる処理の詳細を説明する。まず、図１１を参照して、処理において用いられる主なデータについて説明する。なお、図１１は、情報処理装置２のメモリ１２に記憶される主なデータおよびプログラムの一例を示す図である。
【０１０４】
図１１に示すように、メモリ１２のデータ記憶領域には、パノラマ画像データＤａ、地図データＤｂ、端末操作データＤｃ、現在地点データＤｄ、視野範囲データＤｅ、およびマーカデータＤｆ等が記憶される。なお、メモリ１２には、図１１に示すデータの他、実行するアプリケーションで用いるデータ等、処理に必要なデータ等が記憶されてもよい。また、メモリ１２のプログラム記憶領域には、表示制御処理プログラムを構成する各種プログラム群Ｐａが記憶される。
【０１０５】
パノラマ画像データＤａは、複数の地点毎に用意されたパノラマ画像を示すデータである。
【０１０６】
地図データＤｂは、地図上における複数の地点と地点同士の接続関係や地点毎の情報を示すデータであり、上述した地点情報、パノラマ画像情報、マーカ情報等を含む。
【０１０７】
端末操作データＤｃは、端末装置３に対する操作内容を示すデータであり、方向指示データＤｂ１および角速度データＤｃ２等を含んでいる。方向指示データＤｂ１は、端末装置３に設けられた操作部１５やタッチパネル１６を用いて方向指示操作（地点移動操作）された内容を示すデータである。角速度データＤｃ２は、端末装置３に生じる角速度を示すデータであり、ジャイロセンサ１７から出力される角速度を示すデータである。
【０１０８】
現在地点データＤｄは、パノラマ画像を表示している地図上の地点を示すデータである。
【０１０９】
視野範囲データＤｅは、用意されているパノラマ画像に対して表示装置に表示する視野範囲を示すデータである。
【０１１０】
マーカデータＤｆは、パノラマ画像に重畳させてマーカを表示する際の、マーカの種類、位置、方向、サイズ等を示すデータである。
【０１１１】
次に、図１２および図１３を参照して、情報処理装置２において行われる処理の詳細を説明する。なお、図１２は、情報処理装置２（ＣＰＵ１１）において実行される表示制御処理の一例を示すフローチャートである。図１３は、図１２のステップ６５で行われるマーカ配置処理の一例の詳細を示すサブルーチンである。ここで、図１２および図１３に示すフローチャートにおいては、情報処理装置２における処理のうち、パノラマ画像を端末装置３およびモニタ４に表示する処理について主に説明し、これらの処理と直接関連しない他の処理については詳細な説明を省略する。本実施形態においては、図１２に示す一連の処理は、ＣＰＵ１１が、プログラム記憶部１３に記憶される表示制御プログラムを実行することによって行われる。
【０１１２】
なお、図１２に示す表示制御処理が開始されるタイミングは任意である。例えば、パノラマ画像を再生する指示をユーザが行ったことに応じて表示制御プログラムの実行が開始されてもよい。このとき、表示制御プログラムは、適宜のタイミングでその一部または全部がメモリ１２に読み出され、ＣＰＵ１１によって実行される。これによって、図１２に示す一連の処理が開始される。なお、表示制御プログラムは、情報処理装置２内のプログラム記憶部１３に予め記憶されているものとする。ただし、他の実施形態においては、情報処理装置２に着脱可能な記憶媒体から取得されてメモリ１２に記憶されてもよいし、インターネット等のネットワークを介して他の装置から取得されてメモリ１２に記憶されてもよい。
【０１１３】
また、図１２および図１３に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えておよび／または代えて別の処理が実行されてもよい。また、本実施形態では、上記フローチャートの各ステップの処理をＣＰＵ１１が実行するものとして説明するが、上記フローチャートにおける一部または全部のステップの処理を、上記ＣＰＵ以外のプロセッサや専用回路が実行するようにしてもよい。
【０１１４】
図１２において、ＣＰＵ１１は、初期処理を実行し（ステップ６１）、次のステップに処理を進める。例えば、ＣＰＵ１１は、初期処理として、地図データの取得処理と、スタート地点におけるパノラマ画像の取得処理とを実行する。
【０１１５】
上述のように、地図データは、複数の地点における地点情報、パノラマ画像情報、およびマーカ情報を含んでいる。地図データは、情報処理装置２内の記憶部から取得されてもよいし、情報処理装置２に着脱可能な記憶媒体から取得されてもよいし、インターネット等のネットワークを介して他の装置から取得されてもよい。また、表示制御処理の開始時において取得される地図データは、地図データの全体であってもよいし、一部の地域（例えば、スタート地点周辺の地域）に関するデータのみであってもよい。なお、取得された地図データは、地図データＤｂとしてメモリ１２に記憶される。
【０１１６】
また、ＣＰＵ１１は、スタート地点を選択し、スタート地点に関連付けられるパノラマ画像を取得する。スタート地点は、予め定められた地点が選択されてもよいし、複数の候補の中からユーザの指示に従って選択されてもよい。このとき、ＣＰＵ１１は、選択されたスタート地点を示すデータを現在地点データＤｄとしてメモリ１２に記憶する。また、パノラマ画像は、情報処理装置２内の記憶部から取得されてもよいし、情報処理装置２に着脱可能な記憶媒体から取得されてもよいし、インターネット等のネットワークを介して他の装置から取得されてもよい。また、ＣＰＵ１１は、後述するマーカ配置処理（ステップ６５）と同様の処理によって、立体モデルＳＭが設定される仮想空間にマーカ（隣接地点マーカを含む）を配置する。なお、取得されたスタート地点におけるパノラマ画像は、パノラマ画像データＤａとしてメモリ１２に記憶される。
【０１１７】
次に、ＣＰＵ１１は、パノラマ画像に対する視野範囲を設定し、現在地点のパノラマ画像のうち、当該視野範囲の画像を生成してＬＣＤ１４およびモニタ４に表示させ（ステップ６２）、次のステップに処理を進める。ここで、ＣＰＵ１１は、上述した方法を用いて端末装置３の姿勢に応じて視野範囲を算出し、算出された視野範囲内のパノラマ画像を生成する。具体的には、端末装置３から送信されてくる端末操作データ（ジャイロセンサ１７から出力される角速度を示すデータ）を用いて角速度データＤｃ２が更新されており、ＣＰＵ１１は、角速度データＤｃ２が示す角速度を用いて端末装置３の姿勢を算出する。そして、ＣＰＵ１１は、パノラマ画像データＤａおよびマーカデータＤｆ等に基づいて、端末装置３の姿勢に応じて設定される視野範囲内のパノラマ画像を生成する。そして、ＣＰＵ１１は、生成された画像をＬＣＤ１４およびモニタ４に表示させるべく、端末装置３およびモニタ４へ出力（送信）する。端末装置３およびモニタ４は、生成された画像を取得してＬＣＤ１４およびモニタ４の表示画面にそれぞれ表示する。これによって、ＬＣＤ１４およびおモニタ４にパノラマ画像の一部がそれぞれ表示される。
【０１１８】
次に、ＣＰＵ１１は、地点移動操作が行われたか否かを判定する（ステップ６３）。そして、ＣＰＵ１１は、地点移動操作が行われた場合、ステップ６４に処理を進める。一方、ＣＰＵ１１は、地点移動操作が行われていない場合、ステップ６７に処理を進める。例えば、端末装置３から送信されてくる端末操作データ（操作部１５やタッチパネル１６から出力される操作内容を示すデータ）を用いて方向指示データＤｃ１が更新されており、ＣＰＵ１１は、方向指示データＤｃ１が示す操作内容を用いて端末装置３に対して地点移動操作が行われたか否かを判定する。
【０１１９】
ステップ６４において、ＣＰＵ１１は、現在地点を移動させ、次のステップに処理を進める。例えば、ＣＰＵ１１は、現在地点データＤｄが示す現在地点から地点移動操作で指定された方向へ接続される地点を新たな現在地点とし、当該新たな現在地点を表すデータを用いて現在地点データＤｄを更新する。
【０１２０】
次に、ＣＰＵ１１は、マーカ配置処理を行い（ステップ６５）、次のステップに処理を進める。マーカ配置処理は、現在地点に関連付けられるパノラマ画像とともに表示すべきマーカを仮想空間に配置する処理である。以下、図１３を参照して、マーカ配置処理の詳細について説明する。
【０１２１】
図１３において、ＣＰＵ１１は、現在地点に設定されるマーカを配置し（ステップ７１）、次のステップに処理を進める。例えば、ＣＰＵ１１は、マーカＭを必要に応じて配置する。ここで、マーカＭの配置方法は上述した方法と同様であり、マーカＭを仮想空間に配置する場合、ＣＰＵ１１は、配置するマーカの種類、位置、サイズ、方向等を設定して、マーカデータＤｆを更新する。なお、配置すべきマーカＭがない場合（現在地点がマーカ配置地点でなく、マーカＭが設定されていない場合）、当該ステップ７１の処理をスキップしてもよい。
【０１２２】
次に、ＣＰＵ１１は、現在地点に隣接する地点（隣接地点）を特定し（ステップ７２）、次のステップに処理を進める。例えば、ＣＰＵ１１は、現在地点データＤｄと地図データＤｂとを参照して、現在地点と隣接している地点を特定する。
【０１２３】
次に、ＣＰＵ１１は、上記ステップ７２において特定した隣接地点にマーカＭが配置されているか否かを判定する。そして、ＣＰＵ１１は、隣接地点にマーカＭが配置されている場合、次のステップ７４に処理を進める。一方、ＣＰＵ１１は、隣接地点にマーカＭが配置されていない場合、当該サブルーチンによる処理を終了する。例えば、ＣＰＵ１１は、地図データＤｂを参照して、現在地点と隣接している地点にマーカＭが配置されていることを示すマーカ情報が関連付けられているか否かによって判定する。
【０１２４】
ステップ７４において、ＣＰＵ１１は、隣接地点マーカＭａを配置して、当該サブルーチンによる処理を終了する。例えば、隣接地点マーカＭａの配置方法は上述した方法と同様であり、隣接地点マーカＭａを仮想空間に配置する場合、ＣＰＵ１１は、配置するマーカの種類、位置、サイズ、方向等を設定して、マーカデータＤｆを更新する。
【０１２５】
図１２に戻り、上記ステップ６５のマーカ配置処理の後、ＣＰＵ１１は、表示するパノラマ画像を、現在地点に関連付けられるパノラマ画像に変更し（ステップ６６）、ステップ６７に処理を進める。例えば、ＣＰＵ１１は、地図データＤｂおよび現在地点データＤｄを参照して、現在地点に関連付けられるパノラマ画像情報を取得し、当該情報に対応するパノラマ画像を取得してパノラマ画像データＤａを更新する。なお、上記ステップ６６の処理でも、上記ステップ６１の処理と同様にパノラマ画像を取得する。そして、次に実行される上記ステップ６２においては、当該ステップ６６で取得されたパノラマ画像が立体モデルＳＭに描画される。これによって、次に実行される上記ステップ６２においては、移動後の地点におけるパノラマ画像が表示され、当該移動後の地点にマーカＭや隣接地点マーカＭａが配置されている場合、当該移動後の地点におけるマーカが表示される。
【０１２６】
ステップ６７において、ＣＰＵ１１は、表示制御処理を終了するか否かを判定する。処理を終了する条件としては、例えば、ユーザが処理を終了する操作を行ったこと等がある。ＣＰＵ１１は、処理を終了しない場合に上記ステップ６２に戻って処理を繰り返し、処理を終了する場合に当該フローチャートによる処理を終了する。以降、ステップ６２〜ステップ６７の一連の処理は、ステップ６７で処理を終了すると判定されるまで繰り返し実行される。
【０１２７】
次に、図１４を参照して、携帯型情報処理装置５において行われる処理の詳細を説明する。なお、図１４は、携帯型情報処理装置５（ＣＰＵ５４）において実行される表示制御処理の一例を示すフローチャートである。ここで、図１４に示すフローチャートにおいても、携帯型情報処理装置５における処理のうち、撮像画像内に所定のマーカが検出された場合に仮想オブジェクトを登場させてＬＣＤ５３に表示する処理について主に説明し、これらの処理と直接関連しない他の処理については詳細な説明を省略する。本実施形態においては、図１４に示す一連の処理は、ＣＰＵ５４が、プログラム記憶部５６に記憶される表示制御プログラムを実行することによって行われる。
【０１２８】
なお、図１４に示す表示制御処理が開始されるタイミングも任意である。例えば、当該表示制御処理を開始する指示をユーザが行ったことに応じて表示制御プログラムの実行が開始されてもよい。このとき、表示制御プログラムは、適宜のタイミングでその一部または全部がメモリ５５に読み出され、ＣＰＵ５４によって実行される。これによって、図１４に示す一連の処理が開始される。なお、表示制御プログラムは、携帯型情報処理装置５内のプログラム記憶部５６に予め記憶されているものとする。ただし、他の実施形態においては、携帯型情報処理装置５に着脱可能な記憶媒体から取得されてメモリ５５に記憶されてもよいし、インターネット等のネットワークを介して他の装置から取得されてメモリ５５に記憶されてもよい。
【０１２９】
また、図１４に示すフローチャートにおける各ステップの処理も、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えておよび／または代えて別の処理が実行されてもよい。また、本実施形態では、上記フローチャートの各ステップの処理をＣＰＵ５４が実行するものとして説明するが、上記フローチャートにおける一部または全部のステップの処理を、上記ＣＰＵ以外のプロセッサや専用回路が実行するようにしてもよい。
【０１３０】
図１４において、ＣＰＵ５４は、表示制御処理における初期処理を実行し（ステップ８１）、次のステップに処理を進める。例えば、ＣＰＵ５４は、上記ステップ８１において、当該表示制御処理で用いられる各パラメータを初期化する。
【０１３１】
次に、ＣＰＵ５４は、撮像部５１から出力されるカメラ画像を示す撮像画像データを取得し（ステップ８２）、次のステップに処理を進める。例えば、ＣＰＵ５４は、新たに所得した撮像画像を表す撮像画像データをメモリ５５に記憶する。
【０１３２】
次に、ＣＰＵ５４は、上記ステップ８２で取得した撮像画像データを用いて撮像画像認識処理を行い（ステップ８３）、当該撮像画像データが表すカメラ画像内にマーカＭが含まれているか否かを判定する（ステップ８４）。そして、ＣＰＵ５４は、上記カメラ画像内にマーカＭが含まれている場合、ステップ８５に処理を進める。一方、ＣＰＵ５４は、上記カメラ画像内にマーカＭが含まれていない場合、ステップ８６に処理を進める。以下、上記ステップ８３およびステップ８４で行う撮像画像認識処理の一例について説明する。
【０１３３】
例えば、ＣＰＵ５４は、パターンマッチング手法等によって撮像画像データが表すカメラ画像に対する画像認識処理を行い、当該カメラ画像内にマーカＭが含まれているか否かを判定する。そして、ＣＰＵ５４は、カメラ画像にマーカＭが含まれている場合には、撮像部５１の撮像範囲内にマーカＭが現実世界で実在していると仮定し、当該カメラ画像におけるマーカＭの位置および姿勢に基づいて、撮像部５１とマーカＭとの位置関係を算出する。一例として、ＣＰＵ５４は、上記カメラ画像におけるマーカＭの位置および／または姿勢を認識することによってマーカ・カメラ変換行列を算出し、当該マーカ・カメラ変換行列を表す画像認識結果データをメモリ５５に記憶する。
【０１３４】
なお、上記マーカ・カメラ変換行列は、上記カメラ画像におけるマーカＭの位置および姿勢に基づいて計算される撮像部５１の位置および姿勢を反映した行列である。より正確には、マーカ座標系（実世界におけるマーカＭの位置を原点とし、マーカＭの縦方向、横方向、および法線方向の各方向を各軸とする座標系）で表された座標を、カメラ画像におけるマーカＭの位置および姿勢に基づいて計算された撮像部５１の位置および姿勢を基準とした撮像部座標系で表される座標へと変換するための座標変換行列である。ここで、コンピュータによるＡＲ（Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ）技術では、マーカ座標系を撮像部座標系に変換する上記マーカ・カメラ変換行列を仮想カメラのビュー行列に指定することにより、実世界画像（カメラ画像）にＣＧ画像（仮想世界画像）を合成することができる。
【０１３５】
ステップ８５において、ＣＰＵ５４は、画像認識されたマーカＭに応じて、出現させる仮想オブジェクトを表すオブジェクト画像を生成し、次のステップ８６に処理を進める。例えば、ＣＰＵ５４は、画像認識されたマーカＭの種類に応じて、出現させる仮想オブジェクトを選択する。そして、ＣＰＵ５４は、上記マーカ座標系で定義される仮想空間に仮想オブジェクトを配置（例えば、マーカ座標系の原点に配置）し、必要に応じて仮想オブジェクトの大きさを変化させる。
【０１３６】
例えば、上記ステップ８５の処理では、マーカ座標系における鉛直方向（例えば、Ｙ軸負方向）が仮想空間の鉛直方向である定義して、仮想オブジェクトを仮想空間に配置する。そして、マーカＭの前後左右方向に基づいて、仮想オブジェクトの前後左右方向を決定する。例えば、仮想オブジェクトの前方向がマーカＭの前方向に相当するマーカ座標系の縦正方向（Ｚ軸正方向）と一致するように、仮想空間における仮想オブジェクトの姿勢を制御して配置する。
【０１３７】
そして、ＣＰＵ５４は、仮想カメラから見た仮想オブジェクトをオブジェクト画像として生成し、メモリ５５に記憶する。例えば、ＣＰＵ５４は、上記マーカ・カメラ変換行列を仮想カメラのビュー行列に指定することによって、マーカ座標系で表現されたＣＧモデル（仮想オブジェクト）を、現実世界に当該ＣＧモデルが存在する場合にＬＣＤ５３に表示される場所（例えば、カメラ画像におけるマーカＭ上）と同じ位置に表示することができる。つまり、ＬＣＤ５３に表示される表示画像において、マーカ座標系で定義された仮想空間に配置された仮想オブジェクトを、現実世界のマーカＭに関連して存在しているように表示することができる。
【０１３８】
ステップ８６において、ＣＰＵ５４は、合成表示処理を行い、次のステップに処理を進める。例えば、ＣＰＵ５４は、マーカＭが撮像されている場合、上記ステップ８２で取得した撮像画像（現実世界画像）と上記ステップ８５で取得したオブジェクト画像とを合成した表示画像を生成し、当該表示画像をＬＣＤ５３に表示する。
【０１３９】
具体的には、ＣＰＵ５４は、上記ステップ８２で取得した撮像画像（カメラ画像）を、ＬＣＤ５３へ供給すべき画像を一時的に記憶するためのＶＲＡＭ内の所定の記憶領域（以下、フレームバッファと称す）に描画する。そして、ＣＰＵ５４は、上記ステップ８４で肯定判定されている場合、メモリ５５に記憶されているオブジェクト画像（すなわち、仮想カメラから見た仮想空間の画像）をフレームバッファに上書きする。これによって、フレームバッファに描画されたカメラ画像（現実世界画像）にオブジェクト画像が合成される。そして、フレームバッファに描画された画像は、所定のタイミングでＬＣＤ５３へ供給されて、ＬＣＤ５３に表示されることになる。なお、上記オブジェクト画像においては、仮想空間の背景が透明であり、そのため、現実世界画像にオブジェクト画像を合成することで、現実世界画像上に仮想オブジェクトが存在するような画像が生成される。なお、ＣＰＵ５４は、上記ステップ８４で否定判定されている場合、カメラ画像のみをフレームバッファに描画してＬＣＤ５３に表示する。
【０１４０】
次に、ＣＰＵ５４は、表示制御処理を終了するか否かを判定する。処理を終了する条件としては、例えば、ユーザが処理を終了する操作を行ったこと等がある。ＣＰＵ５４は、処理を終了しない場合に上記ステップ８２に戻って処理を繰り返し、処理を終了する場合に当該フローチャートによる処理を終了する。以降、ステップ８２〜ステップ８７の一連の処理は、ステップ８７で処理を終了すると判定されるまで繰り返し実行される。
【０１４１】
なお、上述したように、ユーザがパノラマ画像上の位置および仮想オブジェクトを出現させるためのマーカの種類を指定し、指定した位置に指定した種類のマーカが配置されてもよい。この場合、ユーザがマーカを配置したい地点のパノラマ画像を端末装置３やモニタ４に表示し、表示されたパノラマ画像に対してポインティング操作等を行うことによってマーカの配置位置をユーザ設定することが考えられる。また、方向指示操作等によって配置するマーカの種類、マーカを配置する姿勢、マーカのサイズ等をユーザ設定することが考えられる。このようにユーザ設定によってパノラマ画像上の所定位置にマーカが配置された場合、当該ユーザ設定に基づいて、上記地図データに含まれるマーカ情報を更新すれば、上述した表示制御処理によって同様にユーザ設定のマーカも端末装置３やモニタ４に表示することができる。
【０１４２】
また、上述した端末装置３は、図１２および図１３を用いて説明した一連の処理や情報処理装置２で行われるような情報処理を実行しない、いわゆるシンクライアント端末として機能するものであった。しかしながら、端末装置３は、例えば携帯ゲーム機のように、所定のプログラム（ゲームプログラム）によって所定の情報処理（ゲーム処理）を実行する機能を有する装置であってもよい。また、上記実施例において情報処理装置２によって実行される一連の処理のうち、少なくとも一部を端末装置３や端末装置３以外の他の装置で行ってもかまわない。例えば、情報処理装置２がさらに端末装置３以外の他の装置（例えば、別のサーバ、他のゲーム装置、他の携帯端末）と通信可能に構成されている場合、上記処理における処理ステップは、さらに当該他の装置が協働することによって実行してもよい。このように、上記処理における処理ステップの少なくとも一部を他の装置で行うことによって、上述した処理と同様の処理が可能となる。また、上述した処理は、少なくとも１つの情報処理装置により構成される情報処理システムに含まれる１つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施例においては、情報処理装置２のＣＰＵ１１が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、情報処理装置２が備える専用回路によって上記処理の一部または全部が行われてもよい。
【０１４３】
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置（据置型のゲーム装置）と携帯型の情報処理装置（携帯型のゲーム装置）との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理の各ステップの処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
【０１４４】
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。
【０１４５】
また、上述した各プログラムは、光学式ディスク状記憶媒体や外部メモリ等の外部記憶媒体を通じて情報処理装置２や携帯型情報処理装置５に供給されるだけでなく、有線または無線の通信回線を通じて情報処理装置２や携帯型情報処理装置５に供給されてもよい。また、上記プログラムは、情報処理装置２内部や携帯型情報処理装置５の不揮発性記憶装置に予め記憶されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体や不揮発性メモリの他に、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記憶媒体ということができる。例えば、コンピュータ等に、これらの記憶媒体に記憶された情報処理プログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
【０１４６】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書（定義を含めて）が優先する。
【産業上の利用可能性】
【０１４７】
以上のように、本発明は、マーカ画像を用いた画像処理において興趣性を高めること等を目的として、例えば画像処理システム、画像処理装置、画像処理プログラム、および画像処理方法等として有用である。
【符号の説明】
【０１４８】
１…画像処理システム
２…情報処理装置
３…端末装置
４…モニタ
５…携帯型情報処理装置
１１、５４…ＣＰＵ
１２、５５…メモリ
１３、５６…プログラム記憶部
１４、５３…ＬＣＤ
１５、５２…操作部
１６…タッチパネル
１７…ジャイロセンサ
５１…撮像部
【図１】
2015001760.tif 000003
【図２】
2015001760.tif 000004
【図３】
2015001760.tif 000005
【図４】
2015001760.tif 000006
【図５】
2015001760.tif 000007
【図６】
2015001760.tif 000008
【図７】
2015001760.tif 000009
【図８】
2015001760.tif 000010
【図９】
2015001760.tif 000011
【図１０】
2015001760.tif 000012
【図１１】
2015001760.tif 000013
【図１２】
2015001760.tif 000014
【図１３】
2015001760.tif 000015
【図１４】
2015001760.tif 000016