(57)【特許請求の範囲】
【請求項１】
情報処理装置であって、
建造物の建築予定の予定位置座標及び当該建造物を示す三次元データを記憶可能な記憶部と、
前記建造物の建築予定現場の画像を撮像可能なカメラと、
当該情報処理装置の現在位置座標を検出可能な位置センサと、
前記カメラが向いている方位を検出可能な方位センサと、
表示部と、
当該情報処理装置を保持するユーザの操作を受付可能な操作受付部と、
前記三次元データと、前記予定位置座標と、前記現在位置座標と、前記方位とを基に、前記カメラを視点とした前記建造物のパース画像を描画し、当該パース画像を前記撮像された画像上に合成した合成画像を前記表示部に表示させ、
前記ユーザから第１の操作が受け付けられた場合に、当該第１の操作受付時における現在位置座標を記憶し、前記パース画像を当該第１の操作の受付時における表示状態に固定して、前記撮像された画像を前記現在位置座標及び前記方位の変化に応じて更新し、
前記第１の操作後に移動した前記ユーザから第２の操作が受け付けられた場合に、前記第１の操作受付時における現在位置座標と、前記第２の操作受付時における現在位置座標との差分を算出し、前記固定を解除して、前記差分を前記現在位置座標に加算する補正値として前記パース画像の生成に用いる
ことが可能な制御部と
を具備する情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記制御部は、前記ユーザから第１の操作が受け付けられた場合に、当該第１の操作受付時における方位を記憶し、前記第２の操作が受け付けられた場合に、前記第１の操作受付時における方位と、前記第２の操作受付時における方位との差分を算出し、当該差分を前記方位の補正値として前記パース画像の生成に用いる
情報処理装置。
【請求項３】
請求項１に記載の情報処理装置であって、
前記制御部は、前記補正値の算出後に前記第１の操作及び前記第２の操作が受け付けられた場合に、新たに補正値を算出して、前回算出された補正値に前記新たに算出された補正値を累積的に加算して前記パース画像の生成に用いる
情報処理装置。
【請求項４】
請求項２に記載の情報処理装置であって、
前記方位センサは、水平方向の軸に関する当該情報処理装置の傾き角を検出可能であり、
前記制御部は、前記第１の操作後に検出された傾き角と、前記現在位置座標と前記予定位置座標との距離とを基に、前記現在位置座標の垂直方向の補正値を算出する
情報処理装置。
【請求項５】
請求項１に記載の情報処理装置であって、
前記操作受付部は前記表示部上のタッチセンサであり、
前記表示部は所定のボタン画像を表示可能であり、
前記タッチセンサは、前記第１の操作として前記ボタン画像の押下維持操作を受け付け、前記第２の操作として前記ボタン画像の押下解除操作を受け付けることが可能である
情報処理装置。
【請求項６】
請求項１に記載の情報処理装置であって、
前記制御部は、前記パース画像が合成されるべき方位が前記撮像された画像の表示範囲から外れている場合に、前記撮像された画像上に前記パース画像が合成されるべき方位を示す情報を表示するように前記表示部を制御する
情報処理装置。
【請求項７】
請求項１に記載の情報処理装置であって、
前記現在位置座標は、緯度、経度及び標高を含み、
前記記憶部は、前記予定位置座標を含む所定範囲における各地点の高さを含む地形データを記憶し、
前記制御部は、前記現在位置座標における前記緯度及び経度に対応する前記地形データ中の高さに、平均的な人間の視点の高さを加えた値を、前記現在位置座標の垂直方向の補正値として前記パース画像の生成に用いる
情報処理装置。
【請求項８】
請求項１に記載の情報処理装置であって、
前記記憶部は、前記建造物の建築予定地に隣接して存在する隣接建物の前記建造物と対向する面を示す隣接面三次元データ及び当該面の隣接面位置座標を記憶し、
前記制御部は、前記パース画像の合成前に、前記隣接面三次元データ及び前記隣接面位置座標を基に、前記撮像された画像上の、前記パース画像の前景となる前記隣接建物の前記隣接面位置座標に相当する位置に透明な面を描画する
情報処理装置。
【請求項９】
建築予定の建造物を示す三次元データと、前記建造物の建築予定の予定位置座標と、位置センサで検出された現在位置座標と、方位センサで検出されたカメラの方位とを基に、前記カメラを視点とした前記建造物のパース画像を描画し、
前記パース画像を、前記カメラで撮像された建造物の建築予定現場の画像上に合成した合成画像を表示し、
ユーザから第１の操作が受け付けられた場合に、当該第１の操作受付時における現在位置座標を記憶し、
前記パース画像を前記第１の操作の受付時における表示状態に固定して、前記撮像された画像を前記現在位置座標及び前記方位の変化に応じて更新し、
前記第１の操作後に移動した前記ユーザから第２の操作が受け付けられた場合に、前記第１の操作受付時における現在位置座標と、前記第２の操作受付時における現在位置座標との差分を算出し、
前記固定を解除して、前記差分を前記現在位置座標に加算する補正値として前記パース画像の生成に用いる
情報処理方法。
【請求項１０】
情報処理装置に、
建築予定の建造物を示す三次元データと、前記建造物の建築予定の予定位置座標と、位置センサで検出された現在位置座標と、方位センサで検出されたカメラの方位とを基に、前記カメラを視点とした前記建造物のパース画像を描画するステップと、
前記パース画像を、前記カメラで撮像された建造物の建築予定現場の画像上に合成した合成画像を表示するステップと、
ユーザから第１の操作が受け付けられた場合に、当該第１の操作受付時における現在位置座標を記憶するステップと、
前記パース画像を前記第１の操作の受付時における表示状態に固定して、前記撮像された画像を前記現在位置座標及び前記方位の変化に応じて更新するステップと、
前記第１の操作後に移動した前記ユーザから第２の操作が受け付けられた場合に、前記第１の操作受付時における現在位置座標と、前記第２の操作受付時における現在位置座標との差分を算出するステップと、
前記固定を解除して、前記差分を前記現在位置座標に加算する補正値として前記パース画像の生成に用いるステップと
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、建造物を建築した場合の周囲の景観を検討するための画像を表示することが可能な情報処理装置、当該情報処理装置における情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来から、現実の建築予定現場の写真に、建築予定の建造物の画像を合成表示し、その現場の景観をユーザに検討させる技術が存在する。【０００３】
下記非特許文献１には、背景となる現場の写真が撮影された視点位置及びカメラアングルを、被写体から復原計算し（空中写真の標定に相当）、写真が撮影された位置から同じアングルで、建設予定の建造物の三次元データからパースを作成することが記載されている。【０００４】
具体的には、まず建造物の形状を三次元データとして準備する。次に、背景写真の被写体から、地図上で位置が特定できるポイントを４つ以上見出し、写真上の二次元座標[u,v]と、建造物を三次元データとして記述したのと同じ座標系を用いて記述した実空間における座標[x,y,z]のペアを４組以上準備する。これを用いて、写真を撮影した位置とカメラアングルを復原計算する。この計算は「視点抽出」操作画面を用いて行われる。算出された視点位置とカメラアングルから、建造物のパースを作成し、合成表示することにより、正しい位置に写真合成を行うことができる。【０００５】
これにより、単に画像を重ねたモンタージュ写真とは異なる、正確な位置合わせに基づく写真合成が可能となる。この写真合成に際しては、フィルムカメラで撮影された画像を現像し、スキャナーにより背景画像のデータを作成し、１枚の写真合成を行うために、上記標定計算を含む準備作業が必要であった。【０００６】
一方、カメラで動的に取得された背景画像の上に、センサで計測した視点位置を用いて毎秒３０回程度の速度で建造物等のパースを重ねて表示するリアルタイム写真合成が、いわゆる「複合現実感」（ＭＲ）として、２０００年頃から使用されるようになった。初期においては、特殊な表示装置（ＨＭＤ:Head Mount Display）が使用されていたが、２０１０年頃から、撮影カメラ、ＧＰＳ（Global Positioning System）センサ、方位センサ、重力センサ等を内蔵した携帯端末が普及し、ローコストで実施できるような技術的・社会的な環境が整い、これらを応用したいくつかのアプリケーションが開発、発表されている（例えば、下記特許文献１及び２参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−１０２８３５号公報
【特許文献２】特開２００６−０１１９７０号公報
【非特許文献】
【０００８】
【非特許文献１】小林英之著「３次元ＣＧによる土木建築施設のための景観検討システム‐プロトタイプ版（Ver.1.0）」建設省建築研究所・建築研究資料No.85、1995年9月
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、ＧＰＳにより取得される位置精度には誤差が数ｍ以上あるため、遠くの山並み等への合成表示は可能であるが、市街地内部における住宅等を対象としたリアルタイム写真合成を、センサから得られた位置情報だけから行うことは、位置ずれなどから、まだ実用的なものではない。【００１０】
以上のような事情に鑑み、本発明の目的は、建築予定の建造物のパース画像と建築予定現場の撮像画像とをリアルタイムに合成する際の両画像の位置ずれを補正することが可能な情報処理装置装置、情報処理方法及びプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
上述の課題を解決するため、本発明の一形態に係る情報処理装置は、記憶部と、カメラと、ＧＰＳセンサと、方位センサと、表示部と、操作受付部と、制御部とを有する。上記記憶部は、建造物の建築予定の予定位置座標及び当該建造物を示す三次元データを記憶可能である。上記カメラは、上記建造物の建築予定現場の画像を撮像可能である。上記ＧＰＳセンサは、当該情報処理装置の現在位置座標を検出可能である。上記方位センサは、上記カメラが向いている方位を検出可能である。上記操作受付部は、当該情報処理装置を保持するユーザの操作を受付可能である。上記制御部は、上記三次元データと、上記予定位置座標と、上記現在位置座標と、上記方位とを基に、上記カメラを視点とした上記建造物のパース画像を描画し、当該パース画像を上記撮像された画像上に合成した合成画像を上記表示部に表示させることが可能である。また制御部は、上記ユーザから第１の操作が受け付けられた場合に、当該第１の操作受付時における現在位置座標を記憶し、上記パース画像を当該第１の操作の受付時における表示状態に固定して、上記撮像された画像を上記現在位置座標及び上記方位の変化に応じて更新することが可能である。さらに制御部は、上記第１の操作後に上記ユーザから第２の操作が受け付けられた場合に、上記第１の操作受付時における現在位置座標と、上記第２の操作受付時における現在位置座標との差分を算出し、上記固定を解除して、上記差分を上記現在位置座標に加算する補正値として上記パース画像の生成に用いることが可能である。【００１２】
この構成により情報処理装置は、ユーザによる第１の操作及び第２の操作を基に補正値を算出することで、建築予定の建造物のパース画像と建築予定現場の撮像画像とをリアルタイムに合成する際の両画像の位置ずれを補正することができる。ユーザは第１の操作を行った上で、撮像画像内の建設予定位置にパース画像が正しく表示されるようになるまで情報処理装置を移動させて第２の操作を行うだけで、容易に合成画像を補正することができる。【００１３】
上記制御部は、上記ユーザから第１の操作が受け付けられた場合に、当該第１の操作受付時における方位を記憶し、上記第２の操作が受け付けられた場合に、上記第１の操作受付時における方位と、上記第２の操作受付時における方位との差分を算出し、当該差分を上記方位の補正値として上記パース画像の生成に用いてもよい。【００１４】
これにより情報処理装置は、現在位置座標のみならず方位（回転方向及び垂直方向）に関する位置ずれも容易に補正することができる。【００１５】
上記制御部は、上記補正値の算出後に上記第１の操作及び上記第２の操作が受け付けられた場合に、新たに補正値を算出して、前回算出された補正値に上記新たに算出された補正値を累積的に加算して上記パース画像の生成に用いてもよい。【００１６】
これにより情報処理装置は、ユーザから第１の操作及び第２の操作が受け付けられる度に補正値を追加的・累積的に加算することで、補正値の精度を向上させることができる。【００１７】
上記方位センサは、水平方向の軸に関する当該情報処理装置の傾き角を検出可能であってもよい。この場合上記制御部は、上記第１の操作後に検出された傾き角と、上記現在位置座標と上記予定位置座標との距離とを基に、上記現在位置座標の垂直方向の補正値を算出してもよい。【００１８】
これにより情報処理装置は、合成画像における垂直方向の位置ずれも容易に補正することができる。【００１９】
上記操作受付部は上記表示部上のタッチセンサであってもよく、上記表示部は所定のボタン画像を表示可能であってもよい。この場合上記タッチセンサは、上記第１の操作として上記ボタン画像の押下維持操作を受け付け、上記第２の操作として上記ボタン画像の押下解除操作を受け付けることが可能であってもよい。【００２０】
これによりユーザは、表示部上のボタンのいわゆる長押し（押下ホールド）操作と押下解除（リリース）操作という簡易な操作により合成画像を補正することができる。【００２１】
上記制御部は、上記パース画像が合成されるべき方位が上記撮像された画像の表示範囲から外れている場合に、上記撮像された画像上に上記パース画像が合成されるべき方位を示す情報を表示するように上記表示部を制御してもよい。【００２２】
これにより情報処理装置は、ユーザに建造物の建築予定位置を容易に把握させることができる。【００２３】
上記現在位置座標は、緯度、経度及び標高を含んでもよい。この場合上記記憶部は、上記予定位置座標を含む所定範囲における各地点の高さを含む地形データを記憶してもよい。この場合上記制御部は、上記現在位置座標における上記緯度及び経度に対応する上記地形データ中の高さに、平均的な人間の視点の高さを加えた値を、上記現在位置座標の垂直方向の補正値として上記パース画像の生成に用いてもよい。【００２４】
これにより情報処理装置は、地形データを用いることで、合成画像における垂直方向の位置ずれをより高精度に補正することができる。【００２５】
上記記憶部は、上記建造物に隣接する隣接建物の上記建造物と対向する面を示す隣接面三次元データ及び当該面の隣接面位置座標を記憶してもよい。この場合上記制御部は、上記パース画像の合成前に、上記隣接面三次元データ及び上記隣接面位置座標を基に、上記撮像された画像上の、上記パース画像の前景となる上記隣接建物の上記隣接面位置座標に相当する位置に透明な面を描画してもよい。【００２６】
これにより、パース画像の前景となる隣接建物の面の画像とパース画像とが重なる部分については隣接建物の面の描画が優先される結果、その面部分に相当するパース画像の部分が描画されずに隠されることになり、かつ、面が透明で描画されるため、合成の結果、その部分については撮像された隣接建物の画像そのものが表示されることになり、パース画像の前景が正しく表示される。したがって情報処理装置は、複雑な演算を行うことなく、上記面の三次元データを保持しておくだけで、パース画像の前景の描画処理を容易に実行することができる。【００２７】
本発明の他の形態に係る情報処理方法は、
建築予定の建造物を示す三次元データと、上記建造物が建築予定の予定位置座標と、ＧＰＳセンサで検出された現在位置座標と、方位センサで検出されたカメラの方位とを基に、上記カメラを視点とした上記建造物のパース画像を描画すること、
上記パース画像を、上記カメラで撮像された建造物の建築予定現場の画像上に合成した合成画像を表示すること、
ユーザから第１の操作が受け付けられた場合に、当該第１の操作受付時における現在位置座標を記憶すること、
上記パース画像を上記第１の操作の受付時における表示状態に固定して、上記撮像された画像を上記現在位置座標及び上記方位の変化に応じて更新すること、
上記第１の操作後に上記ユーザから第２の操作が受け付けられた場合に、上記第１の操作受付時における現在位置座標と、上記第２の操作受付時における現在位置座標との差分を算出すること、及び、
上記固定を解除して、上記差分を上記現在位置座標に加算する補正値として上記パース画像の生成に用いることを含む。【００２８】
本発明のまた別の形態に係るプログラムは、情報処理装置に、
建築予定の建造物を示す三次元データと、上記建造物が建築予定の予定位置座標と、ＧＰＳセンサで検出された現在位置座標と、方位センサで検出されたカメラの方位とを基に、上記カメラを視点とした上記建造物のパース画像を描画するステップと、
上記パース画像を、上記カメラで撮像された建造物の建築予定現場の画像上に合成した合成画像を表示するステップと、
ユーザから第１の操作が受け付けられた場合に、当該第１の操作受付時における現在位置座標を記憶するステップと、
上記パース画像を上記第１の操作の受付時における表示状態に固定して、上記撮像された画像を上記現在位置座標及び上記方位の変化に応じて更新するステップと、
上記第１の操作後に上記ユーザから第２の操作が受け付けられた場合に、上記第１の操作受付時における現在位置座標と、上記第２の操作受付時における現在位置座標との差分を算出するステップと、
上記固定を解除して、上記差分を上記現在位置座標に加算する補正値として上記パース画像の生成に用いるステップとを実行させる。【００２９】
以上のように、本発明によれば、建築予定の建造物のパース画像と建築予定現場の撮像画像とをリアルタイムに合成する際の両画像の位置ずれを補正することができる。ここに記載された効果は必ずしも本発明を限定するものではなく、本発明は、本開示中に記載されたいずれかの効果が達成できればよい。
【図面の簡単な説明】
【００３０】
【図１】本発明の一実施形態に係る携帯端末のハードウェア構成を示した図である。
【図２】本発明の一実施形態に係るアプリケーションの実行中に表示される画面の構成を示した図である。
【図３】上記アプリケーションの起動時における画面遷移動作の流れを示したフローチャートである。
【図４】上記アプリケーションによるリアルタイム写真合成処理の流れを示したフローチャートである。
【図５】上記アプリケーションによるリアルタイム写真合成表示処理の流れを示したフローチャートである。
【図６】上記アプリケーションによるユーザの移動を用いた誤差補正処理を模式的に示した図である。
【図７】上記アプリケーションによるユーザの移動を用いた誤差補正処理を実行中のリアルタイム写真合成画面の例を示した図である。
【図８】ジオイドとローカル座標系との関係を示した図である。
【図９】日本付近のジオイド図を示した図である。
【図１０】上記アプリケーションが高さの誤差を補正するために用いる地形データの例を示した図である。
【図１１】上記アプリケーションによる三次元モデル描画処理の流れを示したフローチャートである。
【図１２】上記写真合成におけるパース画像とその前景との関係を示した図である。
【図１３】従来の写真合成における前景処理を説明した図である。
【図１４】上記アプリケーションによるパース画像及びその前景の描画処理の流れを示した図である。
【図１５】上記アプリケーションによるパース画像及びその前景の描画処理を模式的に示した図である。
【図１６】上記アプリケーションが用いる、建造物の建築予定の敷地の座標軸を示した図である。
【図１７】上記アプリケーションが用いる、携帯端末の座標軸を示した図である。
【発明を実施するための形態】
【００３１】
以下、本発明に係る実施形態を、図面を参照しながら説明する。
【００３２】
［携帯端末のハードウェア構成］
図１は、本実施形態に係る携帯端末のハードウェア構成を示したブロック図である。
【００３３】
この携帯端末は、建築物の建築後の景観を検討するためのリアルタイム写真合成処理に用いられる。
【００３４】
ここで携帯端末とは、具体的には、例えばスマートフォン、携帯電話機、タブレットＰＣ（Personal Computer）、デジタルスチルカメラ、ＰＤＡ（Personal Digital Assistant）、携帯型ＡＶプレイヤー、携帯型ゲーム機、電子ブック等の携帯型の情報処理装置である。
【００３５】
同図に示すように、携帯端末１００は、ＣＰＵ（Central Processing Unit）１１、ＲＡＭ（Random Access Memory）１２、不揮発メモリ１３、表示部１４、通信部１５、カメラ１６、ＧＰＳセンサ１７、磁気センサ（電子コンパス）１８、及び加速度センサ１９を有する。
【００３６】
ＣＰＵ１１は、必要に応じてＲＡＭ１２等に適宜アクセスし、各種演算処理を行いながら携帯端末１００の各ブロック全体を統括的に制御する。ＲＡＭ１２は、ＣＰＵ１１の作業用領域等として用いられ、ＯＳ、実行中の各種アプリケーション、処理中の各種データ（後述の三次元データ、撮像画像データ、座標データ、補正値等）を一時的に保持する。
【００３７】
不揮発メモリ１３は、例えばフラッシュメモリやＲＯＭ（Read Only Memory）であり、ＣＰＵ１１に実行させるＯＳ、後述するソフトウェアモジュール等のプログラムや各種パラメータなどのファームウェアを固定的に記憶する。
【００３８】
特に本実施形態において、不揮発メモリ１３は、上記リアルタイム写真合成処理アプリケーションを記憶する。また不揮発メモリ１３は、上記アプリケーションの実行に用いられるデータとして、カメラ１６により撮像された画像データ（写真データ）、建築予定の建造物の三次元データ（幾何学的形状データ、表面仕上データ等の属性データ）、建築予定現場の位置座標データ等を記憶する。
【００３９】
表示部１４は、例えばＬＣＤ（Liquid Crystal Display）やＯＥＬＤ（Organic ElectroLuminescence Display）であり、カメラ１６による撮像画像や、当該撮像画像に建造物のパース画像を合成した合成画像、当該合成画像を補正するためのユーザインタフェース等を表示する。典型的には、表示部１４は、タッチパネルと一体とされており、ユーザのタッチ操作を受け付け可能である。すなわち表示部１４は、操作検出部としても機能する。
【００４０】
図示しないが、携帯端末１００は、上記操作検出部として、例えば電源ボタン等のハードウェアボタンも有する。
【００４１】
通信部１５は、ＷｉＦｉ（Wireless Fidelity）等の無線ＬＡＮ（IEEE802.11等）や移動通信用の３Ｇや４Ｇのネットワークを用いて、他の装置と通信する。
【００４２】
カメラ１６は、例えばＣＭＯＳ（Complementary Metal Oxide Semiconductor）やＣＣＤ（Charge Coupled Devices）センサ等の撮像素子により、静止画（写真）及び動画を撮像する。当該カメラ１６は、例えば夜景モードや人物モード等の各種撮影モードの選択機能、パノラマ撮影機能、３Ｄ撮影機能、ホワイトバランス調整機能、絞り調整機能等の様々な機能を有し、ユーザは上記表示部１４（タッチパネル）等を操作してそれらの機能の設定を行うことができる。
【００４３】
ＧＰＳセンサ１７は、３つ以上の衛星からの電波を捕捉し、それぞれの衛星までの距離に基づいて、携帯端末１００が存在する位置を地球座標系で記述した座標を算出し、これを地球楕円体の上に当てはめて、携帯端末１００の位置情報（緯度・経度・標高情報）を検出する。
【００４４】
当該ＧＰＳセンサ１７が用いられる代わりに、通信部１５による無線通信により、基地局との間で三辺測量が行われることで、上記位置情報が検出されてもよい。
【００４５】
磁気センサ（方位センサ）１８は、携帯端末１００から見た磁北の向きを検出可能である。加速度センサ１９は、鉛直（重力）方向を検出可能である。これら検出された磁北の向き及び鉛直の向きから、携帯端末１００の姿勢（カメラ１６のアングル）が算出される。
【００４６】
［携帯端末の動作］
次に、以上のように構成された携帯端末１００の動作について説明する。当該動作は、携帯端末１００のＣＰＵ１１及び各種センサ等のハードウェアと、不揮発メモリ１３に記憶されたソフトウェアとの協働により実行される。以下の説明では、便宜上、ＣＰＵ１１を動作主体とする。
【００４７】
（アプリケーションの画面構成）
図２は、上記リアルタイム写真合成アプリケーションの実行中に表示される画面の構成を示した図である。
【００４８】
同図に示すように、上記アプリケーションでは、起動画面、表示モデル選択画面、リアルタイム写真合成画面、再生選択画面及び再生画面の５つの画面が表示可能とされている。
【００４９】
起動画面は、「表示モデル選択」「再生表示」「終了」の各画面の選択ボタンを有し、ユーザの選択に応じて各画面へ遷移する。
【００５０】
表示モデル選択画面は、建築予定の住宅等の建造物の三次元モデルの一覧を表示し、ユーザの操作によって一の三次元モデルを選択する。
【００５１】
リアルタイム写真合成画面は、上記選択された三次元モデルから描画された建造物のパース画像と、カメラ１５によって撮像された建築予定現場の画像（以下、背景画像）との合成写真を表示する合成写真表示領域と、上記パース画像と背景画像との位置ずれを補正するための「キャリブレーション」ボタンと、背景画像を記録するための「シャッター」ボタンとを有する。
【００５２】
詳細は後述するが、パース画像と背景画像とが表示された状態で「キャリブレーション」ボタンが押下されると、パース画像が押下時の状態で画面に固定され、背景画像のみが携帯端末１００の移動に伴って更新されるようになる。
【００５３】
「シャッター」ボタン操作時には、背景画像と共に、その時点におけるＧＰＳセンサ１７から取得された位置座標、カメラ１６の姿勢（方位及び傾き）、時刻、その他天候等の環境条件、及び背景画像に合成表示されている建造物のパース画像（三次元モデル）の識別情報等も記録される。
【００５４】
上記「キャリブレーション」ボタンは例えば表示部１４の左下に、上記「シャッター」ボタンは例えば表示部１４の右下に表示されるが、この位置に限られない。
【００５５】
再生選択画面は、シャッターで記録した背景画像の縮小画像を例えばマトリクス表示し、ユーザの操作によって一の背景画像を選択する。
【００５６】
再生画面は、上記再生選択画面によって選択された背景画像と、それに対応する上記パース画像及びキャリブレーション時に保存済みの補正値を用いて、現場におけるリアルタイム写真合成と同じ条件で写真合成を再現する。
【００５７】
（アプリケーション起動時の画面遷移動作）
次に、上記アプリケーションの起動時の画面遷移動作について説明する。図３は、当該画面遷移動作の流れを示したフローチャートである。
【００５８】
同図に示すように、まず、ＣＰＵ１１は、上記モデル選択画面上で、ユーザによりモデル選択ボタンが押されたか否かを判断する（ステップ３１）。
【００５９】
モデル選択ボタンが押下されたと判断した場合（Ｙｅｓ）、ＣＰＵ１１は、リアルタイム写真合成処理へ遷移する（ステップ３２）。
【００６０】
一方、再生選択画面上で再生選択ボタンが押下されたと判断した場合（ステップ３３のＹｅｓ）、ＣＰＵ１１は、再生写真合成処理へ遷移する（ステップ３４）。
【００６１】
そして、終了ボタンが押されたと判断した場合（ステップ３５のＹｅｓ）、ＣＰＵ１１は、アプリケーションを終了する。
【００６２】
（リアルタイム写真合成処理）
次に、上記リアルタイム写真合成処理について説明する。図４は、当該リアルタイム写真合成処理の流れを示したフローチャートである。
【００６３】
同図に示すように、ＣＰＵ１１は、モデル選択画面を表示すると（ステップ４１）、ユーザにより一覧中から特定の建造物の三次元モデルが選択されたか否かを判断する（ステップ４２）。
【００６４】
三次元モデルが選択されたと判断した場合（Ｙｅｓ）、ＣＰＵ１１は、不揮発メモリ１３から、選択された三次元モデルのファイルを読み込む（ステップ４３）。
【００６５】
続いてＣＰＵ１１は、上記読み込んだファイルを用いて、リアルタイム写真合成表示処理を実行する（ステップ４４）。
【００６６】
ここで、当該リアルタイム写真合成表示処理の詳細を説明する。図５は、当該リアルタイム写真合成表示処理の流れを示したフローチャートである。
【００６７】
同図に示すように、ＣＰＵ１１は、カメラ１６により、背景画像を取得し、表示部１４に表示する（ステップ５１）。
【００６８】
続いてＣＰＵ１１は、ＧＰＳセンサ１７により携帯端末１００の現在の位置座標を取得する（ステップ５２）。
【００６９】
続いてＣＰＵ１１は、上記位置座標中の標高の位置ずれ補正処理に地形データを使用するか否かを判断する（ステップ５３）。地形データを用いると判断した場合（Ｙｅｓ）には、当該地形データを用いたキャリブレーション処理を実行する（ステップ５４）。この処理については後述する。地形データを用いるか否かは、例えばユーザが予めアプリケーションに設定してもよいし、地形の複雑さをアプリケーションが判断して、ある程度以上地形が複雑な場合に地形データを用いてもよい。
【００７０】
地形データを用いないと判断した場合（Ｎｏ）、ＣＰＵ１１は、磁気センサ１８及び加速度センサ１９の各検出値から、携帯端末１００の姿勢データ（カメラアングル）を取得する（ステップ５５）。
【００７１】
続いてＣＰＵ１１は、上記取得した現在位置座標と姿勢データとから、現状の視点座標、注視ベクトル、上方ベクトル、焦点距離等からなるカメラパラメータｃａｍを作成する（ステップ５６）。
【００７２】
そしてＣＰＵ１１は、上記カメラパラメータｃａｍを用いて、建造物の三次元モデルの描画処理を実行する（ステップ５７）。
【００７３】
ここで、上記三次元モデル描画処理の詳細について説明する。
【００７４】
当該三次元モデル描画処理においては、上記現状のカメラパラメータｃａｍを用いた建造物の三次元モデル（パース画像）の位置と、背景画像における建造物の建築予定位置とに誤差が生じる場合に、当該誤差を補正する処理（キャリブレーション処理）が実行される。
【００７５】
本実施形態では、携帯端末１００は、上記誤差補正処理の１つとして、携帯端末１００を携帯したユーザの足による移動を用いることができる。以下、ユーザの移動による誤差補正処理について説明する。
【００７６】
‐ユーザの移動による誤差補正処理‐
携帯端末１００がＧＰＳ衛星から取得する位置情報は、AndroidやiOS等の携帯端末１００上のオペレーティング・システムが提供する関数と共に、アプリケーション内で利用することができる。ＧＰＳシステムの座標系は、地球の中心を原点とする三次元直交座標系であるが、このような関数によって提供される位置情報は、利用の便のために、上述のように既に緯度、経度および標高の形に処理された計算結果である。
【００７７】
水平位置の計測誤差を把握するためには、従来は、緯度経度が既知の地点に携帯端末をが置かれて、計測値の正値からのずれが計算される。以降、このずれの値を計測値に加算したものが必要な処理に用いられることにより、誤差が補正(キャリブレーション)される。
【００７８】
しかしながら、上記の作業には、地図上から位置座標が特定できるポイントを探したり、その場所に行って差分を取得するための技能と手間とが要求される。本実施形態による方法によれば、非常に簡単な方法でこの補正を行うことができる。
【００７９】
図６は、上記ユーザの移動による誤差補正処理を概念的に示した図である。また図７は、当該誤差補正処理を実行中のリアルタイム写真合成画面の例を示した図である。
【００８０】
ユーザはまず、図６及び図７Ａに示すように、携帯端末１００が表示した建造物のパース画像Ｐと背景画像Ｂとの写真合成画面７０を参照しながら、パース画像Ｐと、それが配置されるべき建築予定の敷地Ｃ（空地など）の両方が画面に表示される場所に移動する。
【００８１】
次に、ユーザは、画面７０上のキャリブレーションボタン７１を押す。そうすると、ボタン７１が押される直前の位置座標を用いたパース画像Ｐの表示がその状態で固定され、背景画像Ｂだけが更新される状態となる。この際、ボタン押下時のＧＰＳセンサ１７等の各センサからの計測値が記憶される。
【００８２】
次に、ユーザはこのキャリブレーションボタン７１を押したまま移動し、パース画像Ｐが正しい位置と向きに合成表示される場所を歩き回って探す。そしてユーザは、十分に整合する合成表示が得られたら、その場所においてキャリブレーションボタン７１を離す（図７Ｂ参照）。
【００８３】
そうすると、携帯端末１００は、そのボタンを離した瞬間のＧＰＳセンサ１７等の各センサからの計測値と、それまで記憶していた、キャリブレーションボタン７１が押された瞬間の計測値との差分を計算する。
【００８４】
以後、携帯端末１００は、この差分を補正値として、ＧＰＳセンサ１７等の各センサからの計測値に当該補正値を加えたものを用いてパース画像Ｐの描画を行う。視点位置が変化すると、パース画像Ｐの表示は、恰もその敷地Ｃに固定されているように変化する。
【００８５】
既に補正値が与えられている状態で、更にこの補正操作が行われた場合、携帯端末１００は、新たな補正値を、それまでの補正値に追加的・累積的に加算してパース画像Ｐの描画に用いる。
【００８６】
ここで、上記画面７０において、パース画像Ｐが合成されるべき方位が背景画像Ｂの表示範囲から外れている場合には、携帯端末１００は、背景画像Ｂ上に、パース画像Ｐが合成される（存在する）べき位置を示す情報（例えば右・左のテキストやそれらを示す矢印画像等）を表示可能である。
【００８７】
携帯端末１００は、回転（磁気センサ１８の検出値）に関しても、上記移動による補正と同様の方法による補正を行う。すなわち、ユーザがキャリブレーションボタン７１を押して、移動せずに水平方向の向きを変更し、パース画像Ｐが正しい位置に表示された状態でキャリブレーションボタン７１を離すと、回転方向の補正値が算出される。
【００８８】
垂直方向（標高）の補正に関しては、例えば建造物が本来建つべき位置よりも上方に表示されている場合（ＧＰＳセンサ１７により、視点位置の標高が実際よりも低く計測された場合）には、携帯端末１００の上下方向の（水平方向の軸に関する）回転が補正値の算出に用いられる。
【００８９】
すなわち、ユーザは、パース画像Ｐがユーザから見上げたアングルで表示された状態でキャリブレーションボタン７１を押し、水平のアングルに携帯端末１００を上下回転させてキャリブレーションボタン７１を離す。
【００９０】
この瞬間には、建造物のパース画像Ｐは地上に傾いて着地した状態で表示されている。次に、上記キャリブレーションボタン７１の押下時から離した時までの差分の中に上下角の変化が含まれる場合には、携帯端末１００は、その角度を、携帯端末１００の現在位置座標と、建造物の建築予定の位置座標との間の水平距離に基づき、携帯端末１００の上下角誤差に相応する垂直の高さの誤差に換算し、その値を以て補正を行う。その結果、この換算が終了した後に、パース画像Ｐが鉛直な姿勢を回復する。
【００９１】
以上のような機構を実現したことにより、ユーザは、補正に必要な数値を読み取ったり入力する必要がなく、迅速に補正データを取得して利用することができる。
【００９２】
‐位置と地形データを用いた高さの補正処理‐
次に、上記図５のステップ５３及びステップ５４で示した地形データを用いた高さの補正処理について説明する。
【００９３】
ＧＰＳセンサ１７から得られる緯度・経度のデータと比較して、標高のデータは誤差がより大きくなる傾向にある。そのことの要因として、ＧＰＳセンサ１７の処理系内部で標高の算出に使用している国際的なジオイドデータが、日本国土地理院が日本付近に関して計測し公開しているジオイドと比較して精度が低いことが推測される。
【００９４】
図８は、ジオイドとローカル座標系との関係を示した図である。また図９は、日本付近のジオイド図を示した図である。
【００９５】
ローカル座標系は、ジオイド面への接平面をＸＹ平面としており、地球楕円体に対する等重力面の凹凸を補正したジオイド面からの標高（ジオイド高）が、ＧＰＳ座標から求めた標高に対応する（図８）。しかし、日本付近ではジオイド面の凹凸が複雑であり、とりわけ、東日本の太平洋側に関しては、阿武隈山地付近に国内の最高点が存在する一方、日本海溝付近に深い谷があり、その間がジオイドの急斜面となっているため、ジオイドの解像度や精度が、高さ誤差に大きく影響する（図９）。
【００９６】
上述したように、高さの誤差を補正するために、携帯端末１００の上下方向の回転による補正を実行することが可能である。本実施形態においてはこれに加えて、視点移動の範囲となる領域の地盤高さ、または市街地であれば道路等の高さを携帯端末１００の中にデータとして保有する。携帯端末１００は、このデータを用いて、緯度・経度からその地点の地面の高さを求め、これに平均的な歩行者の視点の高さ（例えば1.5m）を加えることにより、視点位置を計算し、これをリアルタイム写真合成に、上述の携帯端末１００の回転による高さの誤差補正の代わりに使用することができる。
【００９７】
この地形データは、大都市圏や被災地においては、数値地図標高から作成することが可能である。図１０は、この地形データの例を示す。また、この地形データは、団地の造成データから作成することも可能である。
【００９８】
視点高さを求めるための地盤高のメッシュ・データは、最高点と最低点の標高差が25.6m以内であれば、0.1mの精度の高さデータを256階調のモノクロ画像として表現し、例えばJPEG形式等の汎用性の高いフォーマットで、例えばクラウド上のサーバ等に比較的小容量で保存されうる。したがって、当該データは、短時間で携帯端末１００に配信され、携帯端末１００において復原し、位置座標計算に利用することが可能である。
【００９９】
三次元データとして作成した過去の町並や将来の団地の地盤面が現状と異なる場合には、それぞれのデータに対応した地面のデータを用いることによって、現在のサイトを歩き回ることにより、恰も過去または計画案の地盤面を歩き回ることが可能となる。
【０１００】
図１１は、上記三次元モデル描画処理の流れを示したフローチャートであり、このうちステップ８１〜ステップ８８が、上記移動による誤差補正処理の流れを示す。
【０１０１】
同図に示すように、ＣＰＵ１１は、キャリブレーションボタン７１が押されているか否かを判断する（ステップ１１１）。
【０１０２】
キャリブレーションボタン７１が押されていると判断した場合（Ｙｅｓ）、ＣＰＵ１１は、当該ボタン７１の押下が継続されているか否かを示すホールドフラグがその時点で真か否かを判断する（ステップ１１２）。
【０１０３】
ホールドフラグが偽であると判断した場合（Ｎｏ）、ＣＰＵ１１は、ホールドフラグを真に設定する（ステップ１１３）。
【０１０４】
続いてＣＰＵ１１は、その時点における位置座標及び姿勢の状態ｍを、上記キャリブレーションボタン７１の押下時の位置座標及び姿勢の状態ｈとして記憶する（ステップ１１４）。
【０１０５】
一方、上記ステップ１１１においてキャリブレーションボタン７１が押されていないと判断した場合（Ｎｏ）、ＣＰＵ１１は、上記ホールドフラグがその時点で真か否かを判断する（ステップ１１５）。
【０１０６】
ホールドフラグが真であると判断した場合（Ｙｅｓ）、ＣＰＵ１１は、ホールドフラグを偽に設定する（ステップ１１６）。すなわち、ＣＰＵ１１は、この時点でキャリブレーションボタン７１からユーザの指が離されたと判断する。
【０１０７】
続いてＣＰＵ１１は、記憶されている上記状態ｈと、現状の状態ｍの差分を計算し、その値を補正項ｄに追加する（ステップ１１７）。
【０１０８】
そしてＣＰＵ１１は、現状ｍの値に補正項ｄを追加し、建造物の三次元モデル（パース画像Ｐ）を描画する（ステップ１１８）。
【０１０９】
‐リアルタイム前景処理−
次に、上記パース画像Ｐの前景処理について説明する。
【０１１０】
写真合成においては、計画上の建造物を記述した三次元データから作成したパース画像Ｐと、現況の背景画像を合成するにあたり、建造物よりも手前にある被写体が建造物のパース画像Ｐにより隠されないように処理する必要がある。図１２Ａは、前景の被写体Ｆがパース画像Ｐにより隠されてしまっている合成写真を示し、図１２Ｂは、前景の被写体Ｆがパース画像Ｐによって隠されずに正しく表示されている合成写真を示す。
【０１１１】
図１３は、従来の写真合成手法における前景処理を示す。従来の写真合成処理においては、視点位置が固定されていることから、建造物の手前に存在する画像上の被写体を建造物の上に表示して、これを用いて建造物を隠すために、背景画像とは別に、前景画像を予め用意し、背景画像→建造物→前景画像の順に上描き表示する方法を用いていた。ここで使用する前景画像は、建造物よりも手前となる被写体以外の部分を画像処理により透明化することにより、裏側の建造物を隠さないようにするように、手間と時間をかけて準備作業の中で手作業により加工したものである。
【０１１２】
しかし、本実施形態におけるリアルタイム写真合成においては、絶えず変化する背景画像Ｂに対して、その都度このような前景画像Ｆを、視点移動の度に作成することは現実的ではない。
【０１１３】
そこで、本実施形態に係るリアルタイム前景処理においては、前景画像を使用せず、その代わりに建築予定の建造物の前景となる可能性が高い既存建物（あるいはその部分）を、予め前景モデルとするための三次元データとして作成しておき、これを建造物のパース画像の描画に先だって描画する。
【０１１４】
図１４は、本実施形態におけるパース画像及びその前景の描画処理の流れを示した図である。また図１５は、上記パース画像及びその前景の描画処理を模式的に示した図である。
【０１１５】
図１４Ａは背景画像Ｂが撮像された状態を示し、同図Ｂは前景モデルを描画した状態を示し、同図Ｃは建造物のパース画像を描画した状態を示す。
【０１１６】
同図Ｂに示すように、前景モデルの三次元データが有する全ての面のカラーを透明とした透明画像Ｗを描画しておくことにより、この段階では表示画面は何も変化せず、背景画像がまだそのまま表示されている。
【０１１７】
しかし、このことの効果として、その次に三次元描画される建造物のパース画像Ｐの内、視点位置から見て前景モデルＦの背後となる部分に関しては、前景モデルＦの透明の描画処理が優先される結果、描画されずに隠されることとなり、結果的にその部分の背景画像（この場合は手前建物の実写）が表示される（図１４Ｃ参照）。
【０１１８】
この前景モデルＦとなる建物の三次元データは、建物全体について詳細に作成する必要はない。図１５に示すように、例えば町並を構成する連担する住宅群の中に１軒分の空地があり、そこに新たな建造物が計画されたとする。携帯端末１００は、計画された建造物の三次元モデルを作成する際に、両隣の既存建物の壁面の内、計画された建造物に隣接する（対向する）面Ｗａ及びＷｂだけのデータを作成する。そして携帯端末１００は、これに透明の属性を付けておき、これを建造物のパース画像Ｐの描画に先だって描画することによって、所期の目的を果たすことができる。
【０１１９】
図１１に戻り、上記リアルタイム前景処理の流れを説明する。
【０１２０】
ＣＰＵ１１はまず、デプスバッファをクリアし（ステップ１１９）、パース画像Ｐにより隠されたくない画面上の隣接建物の壁面の三次元モデルを、全て透明なオブジェクトとしてデプスバッファに描画する（ステップ１２０）。
【０１２１】
そしてＣＰＵ１１は、パース画像Ｐのモデルを、デプスバッファに不透明なオブジェクトとして描画する（ステップ１２１）。
【０１２２】
以上によりリアルタイム写真合成処理が終了する（図４のステップ４４）。
【０１２３】
図４に戻り、その後、ＣＰＵ１１は、いずれかのセンサの計測値が変化したか否かを判断する（ステップ４５のＹｅｓ）。
【０１２４】
いずれかのセンサの値が変化したと判断した場合（Ｙｅｓ）、ＣＰＵ１１は、当該変化した値を用いて上記リアルタイム写真合成処理を実行する（ステップ４４）。
【０１２５】
いずれかのセンサの値が変化していないと判断した場合（Ｎｏ）、ＣＰＵ１１は、シャッターボタン７２が押下されたか否かを判断する（ステップ４６）。
【０１２６】
シャッターボタン７２が押下されたと判断した場合（Ｙｅｓ）、ＣＰＵ１１は、背景画像と共に、その時点におけるＧＰＳセンサ１７から取得された位置座標、カメラ１６の姿勢（方位及び傾き）、補正値、写真合成に用いた補正後のカメラパラメータ、日時、その他天候等の環境条件、及び背景画像に合成表示されている建造物のパース画像（三次元モデル）の識別情報等を記録する（ステップ４７）。
【０１２７】
シャッターボタン７２も押下されていないと判断した場合（Ｎｏ）、ＣＰＵ１１は、ユーザからアプリケーションの終了要求が入力されたか否かを判断し（ステップ４８）、終了要求が入力されたと判断した場合には（Ｙｅｓ）、アプリケーションを終了する。
【０１２８】
（誤差補正における演算手法）
ここで、上記誤差補正における演算手法の一例について、詳細について説明する。
【０１２９】
本実施形態においては、携帯端末１００を、位置に関する３つと、姿勢に関する３つの合計６つの自由度を有する剛体として扱う。
【０１３０】
携帯端末１００の位置と姿勢を表現するために、本処理系においては、図１６に示すように、敷地に固定した、東をX軸、北をY軸、上をZ軸とする三次元座標(x,y,z)を用いる。
【０１３１】
地面に固定した座標系で、東をｘ軸、北をｙ軸とするのは二次元図面から始まった建築ＣＡＤ等の慣習である。測量では、北をｘ軸、西をｙ軸とする。また、写真から始まったＣＧ分野では、東をｘ軸、上をｙ軸とする慣習が存在する。
【０１３２】
表示すべき建物等の位置、方位、形状は、敷地の座標系を用いて表現する。
【０１３３】
一方、図１７に示すように、携帯端末１００に固定した座標軸として、ユーザが画面（表示部１４）を手前に横長に水平に構えた姿勢において、右をW、上をU、正面をVとする座標軸を用いる。
【０１３４】
上記６つの自由度の内、３つは位置に関する座標値である。
【０１３５】
ＧＰＳセンサ１７から得られる緯度経度標高を、敷地の座標系に変換した座標値を用いて、視点位置Ｐ(x,y,z)を表現する。
【０１３６】
敷地座標系の原点を、基本位置とする。
【０１３７】
敷地の原点位置の緯度経度標高は、建築設計に際して基準点測量などにより求められた数値を使用する。
【０１３８】
ＧＰＳセンサ１７の計測値から計算される座標値Pmと、敷地原点から計測した座標値Ptの偏差Ｄを簡便に正しく補正することが、本実施形態の目的である。
【０１３９】
例えば、敷地原点の位置でＧＰＳ計測した計測座標値を補正値D1とすると、計測値からD1を引いた値が正しい敷地座標値である。
【０１４０】
また、例えばＧＰＳ計測値が原点を示す地点の敷地原点から計測した座標値を補正値D2とすると、 計測値にD2を加えた値が正しい敷地座標値である。
【０１４１】
原点付近に移動せずとも、写真合成画面上でのキャリブレーション操作により計測された偏差により補正することができ、さらに既に得られている補正値の精度を向上することができる。
【０１４２】
すなわち、キャリブレーションボタン７１によるホールド中の移動をｄとすると、ｄをD1から減ずるか、 またはD2に加えることにより補正値を取得し、改善することができる。
【０１４３】
上記６つの自由度の内、３つは姿勢に関する値である。
【０１４４】
携帯端末１００（剛体）は、上述のとおり、加速度センサ１９と、磁気センサ１８を有している。
【０１４５】
加速度センサ１９の計測値は、自由落下している時、無重力空間にある時には、端末１０の座標系で(0,0,0)となる。机の上に静止して置かれているときには、上方に加速度を机から受けている。よって、水平に置かれているのか、縦に置かれているのかなどを自己認識できる。（携帯端末１００に固定された座標系で、上がどちらにあるのかが分かる）。
【０１４６】
地球上の重力場は、一様ではなく、歪んでいる。例えば、東日本大震災の震源域（海溝、プレート境界）の付近では、地下に密度の高い物質があって、等重力面、即ち海面が地球楕円体に対して、数十ｍほど凹んでいる。また、阿武隈山中付近では、日本付近で最も等重力面が高くなっている。
【０１４７】
このため、この付近の山は標高よりも幾何学的形状において高く、東北日本の太平洋岸付近では、海面がかなり東下がりに傾いている。上述のとおり、この等重力面の凹凸の状態は、ジオイドとして計測され、公開されており、このデータを加味することにより、より正確な高さや上方ベクトルを得ることができる。
【０１４８】
ＧＰＳセンサ１７により得られる位置座標から、その場所のジオイドを求めることにより、携帯端末１００の正確な標高（＝歪んだ等重力面からの高さ）や、地球中心の向きを得ることができる。西暦2000年以前の測量データは、明治期に東京付近から作業を始めたこともあり、地球楕円体に対してかなり東下がりに傾いた等重力面（水準器で認識される水平）を地球楕 円体に接する面と考えて作成されているため、複雑な変換を行わないと、ＧＰＳセンサ１７で計測される世界の座標系とうまくつながらない。
【０１４９】
磁気センサ１９は、上述の通り、磁北を検出する。磁北は地軸の北極（真北）とは一致せず、ずれている。しかも、地下にある鉄分等の分布により、場所場所で偏差が異なっている。この磁北と真北の偏差の地理的分布も国土地理院により計測され、データとして公開されている。ＧＰＳにより得られる位置座標と分布図から、その場所における磁北の真北からの偏差を知り、補正することができる。
【０１５０】
また、三次元的にみた地表の磁場は、水平ではない。しかし、上述のとおり、加速度センサ１９により鉛直の向きが計測できるため、それと直交する向きに補正することにより水平な磁北を求める計算が可能である。
【０１５１】
携帯端末１００に固定した座標系を、画面を横長に構えた時の右をＷ軸、正面をＶ軸、上をＵ軸とし、携帯端末１００の姿勢は、この座標系で計測した真上（加速度≒敷地座標系のＺ軸）と、真北（磁北≒敷地座標系のＹ軸）の向きから、外部から情報伝達を受けることなしに、自己認識することができる。
【０１５２】
よって、敷地座標系の各軸が、携帯端末１００の座標系から見てどの向きであるかを知ることができる。逆に、敷地の座標系に即して、携帯端末１００がどのような向きにあるのかを逆算することができる。
【０１５３】
一般に、携帯端末１００のような剛体の姿勢は、機器に固定された座標軸であるＷ軸、Ｖ軸、Ｕ軸方向の 各単位ベクトルのそれぞれの、敷地座標系で計測したx,y,z成分を示す３×３の行列で表現されることが多い。計算処理は単純であるが計算回数が多く、回転の自由度は３しかないため、データの保存方法としては冗長である。
【０１５４】
一方複素数を４次元に拡張した四元数Ｑ（スカラー成分が１、ベクトル成分が３）を用いても、回転を表現することができる。
【０１５５】
Ｑを構成する４成分を(t,x,y,z)と表した時、ｔをＱのスカラー成分、（x,y,z）をベクトル成分と呼ぶ。
Ｑのベクトル成分の長さとは、√(x2+y2+z2)である。
Ｑの長さとは、√(t2+x2+y2+z2)である。
二つの四元数(t1, x1, y1, z1)と(t2, x2, y2, z2)の和は、(t1 + t2, x1 + x2, y1 + y2, z1 + z2)である。
二つの四元数(t1, x1, y1, z1)と(t2, x2, y2, z2)の積は、(t1*t2-x1*x2 - y1*y2-z1*z2, t1*x2+x1*t2 + y1*z2-z1*y2, t1*y2-x1*z2 + y1*t2+z1*x2, t1*z2+x1*y2 - y1*x2+z1*t2)である。
【０１５６】
四元数Ｑ=(t,x,y,z)の逆数(1/Ｑ)は、Ｑの長さをrとしたとき、 (t/r2, -x/r2, -y/r2, -z/r2)である。
特に、Ｑの長さが１である場合、Ｑの逆数は、スカラー成分をそのままとし、ベクトル成分の符号を反転させるだけで得られる。Ｑ＊（Ｑの逆数）、つまりＱ／Ｑは、(1,0,0,0)となる。
【０１５７】
四元数Ｑによるある四元数Ｖの回転は、Ｑ＊Ｖ＊（Ｑの逆数）という計算（つまりＱ＊Ｖ／Ｑ）で求められる。この時、Ｖのベクトル成分は、ある回転軸の回りに一定の角度分回転する。
【０１５８】
回転を表現するＱのベクトル成分をベクトルとしてみた場合、このベクトルの向きは回転軸の向きに等しい。
【０１５９】
スカラー成分が１で、ベクトル成分がすべてゼロの四元数Ｑ=（1,0,0,0）は、回転なしを意味する。
【０１６０】
また、スカラー成分がゼロでベクトル成分の長さが１の場合は、１８０度回転を表す。
Ｑ=(0,x,y,z), x2+y2+z2 = 1
【０１６１】
その場合も、ベクトル成分が回転軸を表し、ベクトル成分の符号を全て反転させた回転-Ｑ=(0,-x,-y,-z)も同じ結果をもたらす。
【０１６２】
それ以外の場合には、ベクトル成分を軸とするある角度Ψ（０〜180°）の回転を表す。 この場合、Ｑのスカラー成分ｔはcos(Ψ/２)であり、ベクトル成分の長さはｒ＝sin(Ψ/2)である。
Ｑ= (cos(Ψ/2), Px sin(Ψ/2), Py sin(Ψ/2), Pz sin(Ψ/2))
ここでＰは、長さ１の、回転軸を表すベクトルで、Ψは回転角である。
【０１６３】
例えば、携帯端末が水平に回転する場合（ビデオカメラで言うパン）、回転軸は鉛直線である。
Ｐ＝(0,0,1)
回転角が60度なら、Ｑ＝（約0.866, 0, 0, 0.5）
（実成分の約0.866は、cos30°で、（√３）／２、ｚ成分は１×sin30°で１／２）
Ｑの逆数は、（約0,866, 0, 0, -0.5）
である。
【０１６４】
スカラー成分ｔはベクトル成分から、
t = cos(Ψ/2) = √(1-x2-y2-z2)
として計算することができるため、スカラー成分をデータとして保存する必要はない。  
【０１６５】
携帯端末１００の姿勢は、ある基本姿勢（例えば、真北に向かって水平に構えた姿勢）に対する回転として表現することができる。よって、この回転を表す一つの四元数Ｑによって表現することができる。さらに、Ｑの長さが１であると限定しても一般性は失われないことから、 データとしては、そのベクトル成分である３の数値を保存するだけで十分である。Ｑが決まれば、Ｑ＊(0,0,1,0)／Ｑ：携帯端末１００のＹ軸のベクトル（注視ベクトル）の、敷地座標系からみた各成分Ｑ＊(0,0,0,1)／Ｑ：携帯端末１００のＺ軸のベクトル（上方ベクトル）の、敷地座標系からみた各成分により、携帯端末１００の姿勢が決まる。
【０１６６】
Ｑ１で表現される姿勢にある携帯端末１００をさらに、Ｑ２だけ回転させた後の姿勢がＱ３であるとすると、
Ｑ３＝Ｑ２＊Ｑ１であり、従って、例えば基本姿勢における注視ベクトルＶは、
Ｑ２＊（Ｑ１＊Ｖ／Ｑ１）／Ｑ２  ＝  Ｑ３＊Ｖ／Ｑ３と変換される。
【０１６７】
このような回転を表す四元数のベクトル成分を構成する３値だけをデータとして保存する方法を用いることにより、回転を繰り返した場合に、回転に関する誤差以外の、物体が変形（拡大、縮小、アフィン変換）する誤差を防ぐことができる。またマトリクスを用いる場合よりも、計算回数を縮減することができる。
【０１６８】
計測された携帯端末１００の姿勢は、本処理系においては、敷地座標系で表現した注視ベクトルと上方ベクトルの形で表示系に伝えられる。
【０１６９】
携帯端末１００の姿勢はオイラー角を用いて、基本姿勢からヨー角(Y)水平回転し、ピッチ角(P)上下回転し、ロール角(R)横回転することでも表現できる。磁気センサ１９と加速度センサ１８から計算されたロールR、ピッチP、ヨーYを用いて、回転を表す四元数Ｑをさらに次のように計算することができる。
Ｑ＝(cos(R/2),0,sin(R/2),0)*(cos(P/2),sin(P/2),0,0)*(cos(Y/2),0,0,sin(Y/2))
この回転は、基本姿勢からまずヨー角だけＵ軸まわりに方位を回転させ、次にＷ軸まわりにピッチ角だけ回転させ、最後にＶ軸周りにロール角だけ回転させる手順に対応する。
【０１７０】
加速度センサ１９及び磁気センサ１８から計算される姿勢Ｑmと、敷地座標系による姿勢との偏差Ｑdを正しく補正することが、本実施形態の目的である。例えば、敷地座標系の基本姿勢に携帯端末を置いた時にセンサから計測値で計算した姿勢を、誤差Qd1とすると、任意の姿勢の計測値から求めた姿勢Ｑmを、Ｑm／Qd1に補正することにより正しい姿勢が得られる。
【０１７１】
また、センサ計測値が基本姿勢に対応する値を得る姿勢を敷地座標系で計測した姿勢をQd2とすると、任意の姿勢の計測値から求めたＱを、Ｑ＊Ｑd2に補正することにより正しい姿勢、すなわちより正確な表示が得られる。
【０１７２】
Ｑd1は、正しい基本姿勢から計測値上の基本姿勢への回転を示す四元数である。またＱd2は、計測値上の基本姿勢から、正しい基本姿勢への回転を示す四元数である。Ｑd1とＱd2は、Ｑd1*Ｑd2=1、言い換えるとＱd2＝1/Ｑd1の関係にある。
【０１７３】
ユーザにより合成表示結果を見て補正を行うためのホールド操作が行われている間に、Ｑdの回転が行われた場合には、Ｑd1をＱdで除するか、またはＱd2にＱdに乗ずることにより、補正値Ｑd1またはＱd2の精度をより高めることができる。
【０１７４】
ホールド操作の前の上方ベクトルと注視ベクトルの計測値を四元数で表したものをU1,V1とし、 ホールドが解除された時点における上方ベクトルと注視ベクトルの計測値を四元数で表したものをU2,V2とすると、右方向ベクトルはそれぞれ、W1=V1*U1, W2=V2*U2として求められる。
【０１７５】
これらを用いて、ホールド期間中の回転Ｑdの自乗を、
Ｑd2 = (W2*W1+V2*V1+U2*U1+(1,0,0,0))*(-0.5,0,0,0)
として求めることができる。
【０１７６】
但し、Ｑd2のスカラー成分が-1となる場合、すなわち180°回転の場合には、Ｑd2のベクトル成分が 全てゼロとなるために、Ｑdが求められない。そこで、このような場合には、Ｑdのベクトル成分を、(V2-V1)*(U2-U1)のベクトル成分または、(W2-W1)*(V2-V1)のベクトル成分の内、長さが大きい方を正規化する方法で直接求め、スカラー成分をゼロとする。
【０１７７】
Ｑdは、Ｑd2からは、三角関数を使用せずに、以下の手順で計算することができる。
Ｑd2の成分を、(T,X,Y,Z)、Qdの成分を(t,x,y,z)とすると、tは√((1+T)/2)である。
また、k = (√((1-T)/2))／(√(1-T2))とすると、
x = kX, y = kY, z = kZとなる。
但し、Tが1の場合には、k = 0とする。また、Tが-1となる場合には、上記［０１７６］の処理で完結するため、この処理は必要ではない。
【０１７８】
［変形例］
本発明は上述の実施形態にのみ限定されるものではなく、本開示の要旨を逸脱しない範囲内において種々変更され得る。
【０１７９】
上述の実施形態においては、キャリブレーションボタン７１が押下された時にパース画像が固定され、押下が維持された後（ロングタッチ）、指がリリースされた時に補正値が算出された。しかし、単にボタン７１のタッチ操作によってパース画像が固定され、次のタッチ操作によって補正値が算出されてもよい。
【０１８０】
また、パース画像の固定のためのボタンと、補正値算出のためのボタンが別個に用意されてもよい。すなわち、パース画像の固定のための操作と、補正値算出のための操作とが連関していなくてもよい。
【０１８１】
上述の実施形態では、ＧＰＳセンサ、磁気センサ、加速度センサの各値が補正されたが、これらのうちいずれか１つまたは２つの値が補正されてもよい。
【０１８２】
上述の実施形態の各フローチャートで示した処理は一例であり、それ以外の処理によっても本発明の目的を達成することができる。
【符号の説明】
【０１８３】
１１…ＣＰＵ
１２…ＲＡＭ
１３…不揮発メモリ
１４…表示部
１５…通信部
１６…カメラ
１７…ＧＰＳセンサ
１８…磁気センサ
１９…加速度センサ
７０…写真合成画面
７１…キャリブレーションボタン
７１…ボタン
７２…シャッターボタン
１００…携帯端末
【図１】
0005817012.tif 000002
【図２】
0005817012.tif 000003
【図３】
0005817012.tif 000004
【図４】
0005817012.tif 000005
【図５】
0005817012.tif 000006
【図６】
0005817012.tif 000007
【図７】
0005817012.tif 000008
【図８】
0005817012.tif 000009
【図１１】
0005817012.tif 000010
【図１３】
0005817012.tif 000011
【図１５】
0005817012.tif 000012
【図１６】
0005817012.tif 000013
【図９】
0005817012.tif 000014
【図１０】
0005817012.tif 000015
【図１２】
0005817012.tif 000016
【図１４】
0005817012.tif 000017
【図１７】
0005817012.tif 000018