JP5817012B2 - 情報処理装置、情報処理方法及びプログラム - Google Patents
情報処理装置、情報処理方法及びプログラム Download PDFInfo
- Publication number
- JP5817012B2 JP5817012B2 JP2014506384A JP2014506384A JP5817012B2 JP 5817012 B2 JP5817012 B2 JP 5817012B2 JP 2014506384 A JP2014506384 A JP 2014506384A JP 2014506384 A JP2014506384 A JP 2014506384A JP 5817012 B2 JP5817012 B2 JP 5817012B2
- Authority
- JP
- Japan
- Prior art keywords
- image
- position coordinates
- building
- current position
- information processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000010365 information processing Effects 0.000 title claims description 41
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000012937 correction Methods 0.000 claims description 68
- 238000010276 construction Methods 0.000 claims description 21
- 238000004364 calculation method Methods 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 7
- 238000003825 pressing Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 4
- 230000002194 synthesizing effect Effects 0.000 claims description 4
- 238000012423 maintenance Methods 0.000 claims description 2
- 238000000034 method Methods 0.000 description 42
- 239000013598 vector Substances 0.000 description 38
- 239000000203 mixture Substances 0.000 description 32
- 230000008569 process Effects 0.000 description 32
- 238000012545 processing Methods 0.000 description 26
- 239000002131 composite material Substances 0.000 description 14
- 230000001133 acceleration Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 238000005259 measurement Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000007704 transition Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 229910052742 iron Inorganic materials 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000004091 panning Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000284 resting effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Architecture (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Processing Or Creating Images (AREA)
Description
本発明は、建造物を建築した場合の周囲の景観を検討するための画像を表示することが可能な情報処理装置、当該情報処理装置における情報処理方法及びプログラムに関する。
従来から、現実の建築予定現場の写真に、建築予定の建造物の画像を合成表示し、その現場の景観をユーザに検討させる技術が存在する。
下記非特許文献1には、背景となる現場の写真が撮影された視点位置及びカメラアングルを、被写体から復原計算し(空中写真の標定に相当)、写真が撮影された位置から同じアングルで、建設予定の建造物の三次元データからパースを作成することが記載されている。
具体的には、まず建造物の形状を三次元データとして準備する。次に、背景写真の被写体から、地図上で位置が特定できるポイントを4つ以上見出し、写真上の二次元座標[u,v]と、建造物を三次元データとして記述したのと同じ座標系を用いて記述した実空間における座標[x,y,z]のペアを4組以上準備する。これを用いて、写真を撮影した位置とカメラアングルを復原計算する。この計算は「視点抽出」操作画面を用いて行われる。算出された視点位置とカメラアングルから、建造物のパースを作成し、合成表示することにより、正しい位置に写真合成を行うことができる。
これにより、単に画像を重ねたモンタージュ写真とは異なる、正確な位置合わせに基づく写真合成が可能となる。この写真合成に際しては、フィルムカメラで撮影された画像を現像し、スキャナーにより背景画像のデータを作成し、1枚の写真合成を行うために、上記標定計算を含む準備作業が必要であった。
一方、カメラで動的に取得された背景画像の上に、センサで計測した視点位置を用いて毎秒30回程度の速度で建造物等のパースを重ねて表示するリアルタイム写真合成が、いわゆる「複合現実感」(MR)として、2000年頃から使用されるようになった。初期においては、特殊な表示装置(HMD:Head Mount Display)が使用されていたが、2010年頃から、撮影カメラ、GPS(Global Positioning System)センサ、方位センサ、重力センサ等を内蔵した携帯端末が普及し、ローコストで実施できるような技術的・社会的な環境が整い、これらを応用したいくつかのアプリケーションが開発、発表されている(例えば、下記特許文献1及び2参照)。
小林英之著「3次元CGによる土木建築施設のための景観検討システム‐プロトタイプ版(Ver.1.0)」建設省建築研究所・建築研究資料No.85、1995年9月
しかしながら、GPSにより取得される位置精度には誤差が数m以上あるため、遠くの山並み等への合成表示は可能であるが、市街地内部における住宅等を対象としたリアルタイム写真合成を、センサから得られた位置情報だけから行うことは、位置ずれなどから、まだ実用的なものではない。
以上のような事情に鑑み、本発明の目的は、建築予定の建造物のパース画像と建築予定現場の撮像画像とをリアルタイムに合成する際の両画像の位置ずれを補正することが可能な情報処理装置装置、情報処理方法及びプログラムを提供することにある。
上述の課題を解決するため、本発明の一形態に係る情報処理装置は、記憶部と、カメラと、GPSセンサと、方位センサと、表示部と、操作受付部と、制御部とを有する。上記記憶部は、建造物の建築予定の予定位置座標及び当該建造物を示す三次元データを記憶可能である。上記カメラは、上記建造物の建築予定現場の画像を撮像可能である。上記GPSセンサは、当該情報処理装置の現在位置座標を検出可能である。上記方位センサは、上記カメラが向いている方位を検出可能である。上記操作受付部は、当該情報処理装置を保持するユーザの操作を受付可能である。上記制御部は、上記三次元データと、上記予定位置座標と、上記現在位置座標と、上記方位とを基に、上記カメラを視点とした上記建造物のパース画像を描画し、当該パース画像を上記撮像された画像上に合成した合成画像を上記表示部に表示させることが可能である。また制御部は、上記ユーザから第1の操作が受け付けられた場合に、当該第1の操作受付時における現在位置座標を記憶し、上記パース画像を当該第1の操作の受付時における表示状態に固定して、上記撮像された画像を上記現在位置座標及び上記方位の変化に応じて更新することが可能である。さらに制御部は、上記第1の操作後に上記ユーザから第2の操作が受け付けられた場合に、上記第1の操作受付時における現在位置座標と、上記第2の操作受付時における現在位置座標との差分を算出し、上記固定を解除して、上記差分を上記現在位置座標に加算する補正値として上記パース画像の生成に用いることが可能である。
この構成により情報処理装置は、ユーザによる第1の操作及び第2の操作を基に補正値を算出することで、建築予定の建造物のパース画像と建築予定現場の撮像画像とをリアルタイムに合成する際の両画像の位置ずれを補正することができる。ユーザは第1の操作を行った上で、撮像画像内の建設予定位置にパース画像が正しく表示されるようになるまで情報処理装置を移動させて第2の操作を行うだけで、容易に合成画像を補正することができる。
上記制御部は、上記ユーザから第1の操作が受け付けられた場合に、当該第1の操作受付時における方位を記憶し、上記第2の操作が受け付けられた場合に、上記第1の操作受付時における方位と、上記第2の操作受付時における方位との差分を算出し、当該差分を上記方位の補正値として上記パース画像の生成に用いてもよい。
これにより情報処理装置は、現在位置座標のみならず方位(回転方向及び垂直方向)に関する位置ずれも容易に補正することができる。
上記制御部は、上記補正値の算出後に上記第1の操作及び上記第2の操作が受け付けられた場合に、新たに補正値を算出して、前回算出された補正値に上記新たに算出された補正値を累積的に加算して上記パース画像の生成に用いてもよい。
これにより情報処理装置は、ユーザから第1の操作及び第2の操作が受け付けられる度に補正値を追加的・累積的に加算することで、補正値の精度を向上させることができる。
上記方位センサは、水平方向の軸に関する当該情報処理装置の傾き角を検出可能であってもよい。この場合上記制御部は、上記第1の操作後に検出された傾き角と、上記現在位置座標と上記予定位置座標との距離とを基に、上記現在位置座標の垂直方向の補正値を算出してもよい。
これにより情報処理装置は、合成画像における垂直方向の位置ずれも容易に補正することができる。
上記操作受付部は上記表示部上のタッチセンサであってもよく、上記表示部は所定のボタン画像を表示可能であってもよい。この場合上記タッチセンサは、上記第1の操作として上記ボタン画像の押下維持操作を受け付け、上記第2の操作として上記ボタン画像の押下解除操作を受け付けることが可能であってもよい。
これによりユーザは、表示部上のボタンのいわゆる長押し(押下ホールド)操作と押下解除(リリース)操作という簡易な操作により合成画像を補正することができる。
上記制御部は、上記パース画像が合成されるべき方位が上記撮像された画像の表示範囲から外れている場合に、上記撮像された画像上に上記パース画像が合成されるべき方位を示す情報を表示するように上記表示部を制御してもよい。
これにより情報処理装置は、ユーザに建造物の建築予定位置を容易に把握させることができる。
上記現在位置座標は、緯度、経度及び標高を含んでもよい。この場合上記記憶部は、上記予定位置座標を含む所定範囲における各地点の高さを含む地形データを記憶してもよい。この場合上記制御部は、上記現在位置座標における上記緯度及び経度に対応する上記地形データ中の高さに、平均的な人間の視点の高さを加えた値を、上記現在位置座標の垂直方向の補正値として上記パース画像の生成に用いてもよい。
これにより情報処理装置は、地形データを用いることで、合成画像における垂直方向の位置ずれをより高精度に補正することができる。
上記記憶部は、上記建造物に隣接する隣接建物の上記建造物と対向する面を示す隣接面三次元データ及び当該面の隣接面位置座標を記憶してもよい。この場合上記制御部は、上記パース画像の合成前に、上記隣接面三次元データ及び上記隣接面位置座標を基に、上記撮像された画像上の、上記パース画像の前景となる上記隣接建物の上記隣接面位置座標に相当する位置に透明な面を描画してもよい。
これにより、パース画像の前景となる隣接建物の面の画像とパース画像とが重なる部分については隣接建物の面の描画が優先される結果、その面部分に相当するパース画像の部分が描画されずに隠されることになり、かつ、面が透明で描画されるため、合成の結果、その部分については撮像された隣接建物の画像そのものが表示されることになり、パース画像の前景が正しく表示される。したがって情報処理装置は、複雑な演算を行うことなく、上記面の三次元データを保持しておくだけで、パース画像の前景の描画処理を容易に実行することができる。
本発明の他の形態に係る情報処理方法は、
建築予定の建造物を示す三次元データと、上記建造物が建築予定の予定位置座標と、GPSセンサで検出された現在位置座標と、方位センサで検出されたカメラの方位とを基に、上記カメラを視点とした上記建造物のパース画像を描画すること、
上記パース画像を、上記カメラで撮像された建造物の建築予定現場の画像上に合成した合成画像を表示すること、
ユーザから第1の操作が受け付けられた場合に、当該第1の操作受付時における現在位置座標を記憶すること、
上記パース画像を上記第1の操作の受付時における表示状態に固定して、上記撮像された画像を上記現在位置座標及び上記方位の変化に応じて更新すること、
上記第1の操作後に上記ユーザから第2の操作が受け付けられた場合に、上記第1の操作受付時における現在位置座標と、上記第2の操作受付時における現在位置座標との差分を算出すること、及び、
上記固定を解除して、上記差分を上記現在位置座標に加算する補正値として上記パース画像の生成に用いることを含む。
建築予定の建造物を示す三次元データと、上記建造物が建築予定の予定位置座標と、GPSセンサで検出された現在位置座標と、方位センサで検出されたカメラの方位とを基に、上記カメラを視点とした上記建造物のパース画像を描画すること、
上記パース画像を、上記カメラで撮像された建造物の建築予定現場の画像上に合成した合成画像を表示すること、
ユーザから第1の操作が受け付けられた場合に、当該第1の操作受付時における現在位置座標を記憶すること、
上記パース画像を上記第1の操作の受付時における表示状態に固定して、上記撮像された画像を上記現在位置座標及び上記方位の変化に応じて更新すること、
上記第1の操作後に上記ユーザから第2の操作が受け付けられた場合に、上記第1の操作受付時における現在位置座標と、上記第2の操作受付時における現在位置座標との差分を算出すること、及び、
上記固定を解除して、上記差分を上記現在位置座標に加算する補正値として上記パース画像の生成に用いることを含む。
本発明のまた別の形態に係るプログラムは、情報処理装置に、
建築予定の建造物を示す三次元データと、上記建造物が建築予定の予定位置座標と、GPSセンサで検出された現在位置座標と、方位センサで検出されたカメラの方位とを基に、上記カメラを視点とした上記建造物のパース画像を描画するステップと、
上記パース画像を、上記カメラで撮像された建造物の建築予定現場の画像上に合成した合成画像を表示するステップと、
ユーザから第1の操作が受け付けられた場合に、当該第1の操作受付時における現在位置座標を記憶するステップと、
上記パース画像を上記第1の操作の受付時における表示状態に固定して、上記撮像された画像を上記現在位置座標及び上記方位の変化に応じて更新するステップと、
上記第1の操作後に上記ユーザから第2の操作が受け付けられた場合に、上記第1の操作受付時における現在位置座標と、上記第2の操作受付時における現在位置座標との差分を算出するステップと、
上記固定を解除して、上記差分を上記現在位置座標に加算する補正値として上記パース画像の生成に用いるステップとを実行させる。
建築予定の建造物を示す三次元データと、上記建造物が建築予定の予定位置座標と、GPSセンサで検出された現在位置座標と、方位センサで検出されたカメラの方位とを基に、上記カメラを視点とした上記建造物のパース画像を描画するステップと、
上記パース画像を、上記カメラで撮像された建造物の建築予定現場の画像上に合成した合成画像を表示するステップと、
ユーザから第1の操作が受け付けられた場合に、当該第1の操作受付時における現在位置座標を記憶するステップと、
上記パース画像を上記第1の操作の受付時における表示状態に固定して、上記撮像された画像を上記現在位置座標及び上記方位の変化に応じて更新するステップと、
上記第1の操作後に上記ユーザから第2の操作が受け付けられた場合に、上記第1の操作受付時における現在位置座標と、上記第2の操作受付時における現在位置座標との差分を算出するステップと、
上記固定を解除して、上記差分を上記現在位置座標に加算する補正値として上記パース画像の生成に用いるステップとを実行させる。
以上のように、本発明によれば、建築予定の建造物のパース画像と建築予定現場の撮像画像とをリアルタイムに合成する際の両画像の位置ずれを補正することができる。ここに記載された効果は必ずしも本発明を限定するものではなく、本発明は、本開示中に記載されたいずれかの効果が達成できればよい。
以下、本発明に係る実施形態を、図面を参照しながら説明する。
[携帯端末のハードウェア構成]
図1は、本実施形態に係る携帯端末のハードウェア構成を示したブロック図である。
図1は、本実施形態に係る携帯端末のハードウェア構成を示したブロック図である。
この携帯端末は、建築物の建築後の景観を検討するためのリアルタイム写真合成処理に用いられる。
ここで携帯端末とは、具体的には、例えばスマートフォン、携帯電話機、タブレットPC(Personal Computer)、デジタルスチルカメラ、PDA(Personal Digital Assistant)、携帯型AVプレイヤー、携帯型ゲーム機、電子ブック等の携帯型の情報処理装置である。
同図に示すように、携帯端末100は、CPU(Central Processing Unit)11、RAM(Random Access Memory)12、不揮発メモリ13、表示部14、通信部15、カメラ16、GPSセンサ17、磁気センサ(電子コンパス)18、及び加速度センサ19を有する。
CPU11は、必要に応じてRAM12等に適宜アクセスし、各種演算処理を行いながら携帯端末100の各ブロック全体を統括的に制御する。RAM12は、CPU11の作業用領域等として用いられ、OS、実行中の各種アプリケーション、処理中の各種データ(後述の三次元データ、撮像画像データ、座標データ、補正値等)を一時的に保持する。
不揮発メモリ13は、例えばフラッシュメモリやROM(Read Only Memory)であり、CPU11に実行させるOS、後述するソフトウェアモジュール等のプログラムや各種パラメータなどのファームウェアを固定的に記憶する。
特に本実施形態において、不揮発メモリ13は、上記リアルタイム写真合成処理アプリケーションを記憶する。また不揮発メモリ13は、上記アプリケーションの実行に用いられるデータとして、カメラ16により撮像された画像データ(写真データ)、建築予定の建造物の三次元データ(幾何学的形状データ、表面仕上データ等の属性データ)、建築予定現場の位置座標データ等を記憶する。
表示部14は、例えばLCD(Liquid Crystal Display)やOELD(Organic ElectroLuminescence Display)であり、カメラ16による撮像画像や、当該撮像画像に建造物のパース画像を合成した合成画像、当該合成画像を補正するためのユーザインタフェース等を表示する。典型的には、表示部14は、タッチパネルと一体とされており、ユーザのタッチ操作を受け付け可能である。すなわち表示部14は、操作検出部としても機能する。
図示しないが、携帯端末100は、上記操作検出部として、例えば電源ボタン等のハードウェアボタンも有する。
通信部15は、WiFi(Wireless Fidelity)等の無線LAN(IEEE802.11等)や移動通信用の3Gや4Gのネットワークを用いて、他の装置と通信する。
カメラ16は、例えばCMOS(Complementary Metal Oxide Semiconductor)やCCD(Charge Coupled Devices)センサ等の撮像素子により、静止画(写真)及び動画を撮像する。当該カメラ16は、例えば夜景モードや人物モード等の各種撮影モードの選択機能、パノラマ撮影機能、3D撮影機能、ホワイトバランス調整機能、絞り調整機能等の様々な機能を有し、ユーザは上記表示部14(タッチパネル)等を操作してそれらの機能の設定を行うことができる。
GPSセンサ17は、3つ以上の衛星からの電波を捕捉し、それぞれの衛星までの距離に基づいて、携帯端末100が存在する位置を地球座標系で記述した座標を算出し、これを地球楕円体の上に当てはめて、携帯端末100の位置情報(緯度・経度・標高情報)を検出する。
当該GPSセンサ17が用いられる代わりに、通信部15による無線通信により、基地局との間で三辺測量が行われることで、上記位置情報が検出されてもよい。
磁気センサ(方位センサ)18は、携帯端末100から見た磁北の向きを検出可能である。加速度センサ19は、鉛直(重力)方向を検出可能である。これら検出された磁北の向き及び鉛直の向きから、携帯端末100の姿勢(カメラ16のアングル)が算出される。
[携帯端末の動作]
次に、以上のように構成された携帯端末100の動作について説明する。当該動作は、携帯端末100のCPU11及び各種センサ等のハードウェアと、不揮発メモリ13に記憶されたソフトウェアとの協働により実行される。以下の説明では、便宜上、CPU11を動作主体とする。
次に、以上のように構成された携帯端末100の動作について説明する。当該動作は、携帯端末100のCPU11及び各種センサ等のハードウェアと、不揮発メモリ13に記憶されたソフトウェアとの協働により実行される。以下の説明では、便宜上、CPU11を動作主体とする。
(アプリケーションの画面構成)
図2は、上記リアルタイム写真合成アプリケーションの実行中に表示される画面の構成を示した図である。
図2は、上記リアルタイム写真合成アプリケーションの実行中に表示される画面の構成を示した図である。
同図に示すように、上記アプリケーションでは、起動画面、表示モデル選択画面、リアルタイム写真合成画面、再生選択画面及び再生画面の5つの画面が表示可能とされている。
起動画面は、「表示モデル選択」「再生表示」「終了」の各画面の選択ボタンを有し、ユーザの選択に応じて各画面へ遷移する。
表示モデル選択画面は、建築予定の住宅等の建造物の三次元モデルの一覧を表示し、ユーザの操作によって一の三次元モデルを選択する。
リアルタイム写真合成画面は、上記選択された三次元モデルから描画された建造物のパース画像と、カメラ15によって撮像された建築予定現場の画像(以下、背景画像)との合成写真を表示する合成写真表示領域と、上記パース画像と背景画像との位置ずれを補正するための「キャリブレーション」ボタンと、背景画像を記録するための「シャッター」ボタンとを有する。
詳細は後述するが、パース画像と背景画像とが表示された状態で「キャリブレーション」ボタンが押下されると、パース画像が押下時の状態で画面に固定され、背景画像のみが携帯端末100の移動に伴って更新されるようになる。
「シャッター」ボタン操作時には、背景画像と共に、その時点におけるGPSセンサ17から取得された位置座標、カメラ16の姿勢(方位及び傾き)、時刻、その他天候等の環境条件、及び背景画像に合成表示されている建造物のパース画像(三次元モデル)の識別情報等も記録される。
上記「キャリブレーション」ボタンは例えば表示部14の左下に、上記「シャッター」ボタンは例えば表示部14の右下に表示されるが、この位置に限られない。
再生選択画面は、シャッターで記録した背景画像の縮小画像を例えばマトリクス表示し、ユーザの操作によって一の背景画像を選択する。
再生画面は、上記再生選択画面によって選択された背景画像と、それに対応する上記パース画像及びキャリブレーション時に保存済みの補正値を用いて、現場におけるリアルタイム写真合成と同じ条件で写真合成を再現する。
(アプリケーション起動時の画面遷移動作)
次に、上記アプリケーションの起動時の画面遷移動作について説明する。図3は、当該画面遷移動作の流れを示したフローチャートである。
次に、上記アプリケーションの起動時の画面遷移動作について説明する。図3は、当該画面遷移動作の流れを示したフローチャートである。
同図に示すように、まず、CPU11は、上記モデル選択画面上で、ユーザによりモデル選択ボタンが押されたか否かを判断する(ステップ31)。
モデル選択ボタンが押下されたと判断した場合(Yes)、CPU11は、リアルタイム写真合成処理へ遷移する(ステップ32)。
一方、再生選択画面上で再生選択ボタンが押下されたと判断した場合(ステップ33のYes)、CPU11は、再生写真合成処理へ遷移する(ステップ34)。
そして、終了ボタンが押されたと判断した場合(ステップ35のYes)、CPU11は、アプリケーションを終了する。
(リアルタイム写真合成処理)
次に、上記リアルタイム写真合成処理について説明する。図4は、当該リアルタイム写真合成処理の流れを示したフローチャートである。
次に、上記リアルタイム写真合成処理について説明する。図4は、当該リアルタイム写真合成処理の流れを示したフローチャートである。
同図に示すように、CPU11は、モデル選択画面を表示すると(ステップ41)、ユーザにより一覧中から特定の建造物の三次元モデルが選択されたか否かを判断する(ステップ42)。
三次元モデルが選択されたと判断した場合(Yes)、CPU11は、不揮発メモリ13から、選択された三次元モデルのファイルを読み込む(ステップ43)。
続いてCPU11は、上記読み込んだファイルを用いて、リアルタイム写真合成表示処理を実行する(ステップ44)。
ここで、当該リアルタイム写真合成表示処理の詳細を説明する。図5は、当該リアルタイム写真合成表示処理の流れを示したフローチャートである。
同図に示すように、CPU11は、カメラ16により、背景画像を取得し、表示部14に表示する(ステップ51)。
続いてCPU11は、GPSセンサ17により携帯端末100の現在の位置座標を取得する(ステップ52)。
続いてCPU11は、上記位置座標中の標高の位置ずれ補正処理に地形データを使用するか否かを判断する(ステップ53)。地形データを用いると判断した場合(Yes)には、当該地形データを用いたキャリブレーション処理を実行する(ステップ54)。この処理については後述する。地形データを用いるか否かは、例えばユーザが予めアプリケーションに設定してもよいし、地形の複雑さをアプリケーションが判断して、ある程度以上地形が複雑な場合に地形データを用いてもよい。
地形データを用いないと判断した場合(No)、CPU11は、磁気センサ18及び加速度センサ19の各検出値から、携帯端末100の姿勢データ(カメラアングル)を取得する(ステップ55)。
続いてCPU11は、上記取得した現在位置座標と姿勢データとから、現状の視点座標、注視ベクトル、上方ベクトル、焦点距離等からなるカメラパラメータcamを作成する(ステップ56)。
そしてCPU11は、上記カメラパラメータcamを用いて、建造物の三次元モデルの描画処理を実行する(ステップ57)。
ここで、上記三次元モデル描画処理の詳細について説明する。
当該三次元モデル描画処理においては、上記現状のカメラパラメータcamを用いた建造物の三次元モデル(パース画像)の位置と、背景画像における建造物の建築予定位置とに誤差が生じる場合に、当該誤差を補正する処理(キャリブレーション処理)が実行される。
本実施形態では、携帯端末100は、上記誤差補正処理の1つとして、携帯端末100を携帯したユーザの足による移動を用いることができる。以下、ユーザの移動による誤差補正処理について説明する。
‐ユーザの移動による誤差補正処理‐
携帯端末100がGPS衛星から取得する位置情報は、AndroidやiOS等の携帯端末100上のオペレーティング・システムが提供する関数と共に、アプリケーション内で利用することができる。GPSシステムの座標系は、地球の中心を原点とする三次元直交座標系であるが、このような関数によって提供される位置情報は、利用の便のために、上述のように既に緯度、経度および標高の形に処理された計算結果である。
携帯端末100がGPS衛星から取得する位置情報は、AndroidやiOS等の携帯端末100上のオペレーティング・システムが提供する関数と共に、アプリケーション内で利用することができる。GPSシステムの座標系は、地球の中心を原点とする三次元直交座標系であるが、このような関数によって提供される位置情報は、利用の便のために、上述のように既に緯度、経度および標高の形に処理された計算結果である。
水平位置の計測誤差を把握するためには、従来は、緯度経度が既知の地点に携帯端末をが置かれて、計測値の正値からのずれが計算される。以降、このずれの値を計測値に加算したものが必要な処理に用いられることにより、誤差が補正(キャリブレーション)される。
しかしながら、上記の作業には、地図上から位置座標が特定できるポイントを探したり、その場所に行って差分を取得するための技能と手間とが要求される。本実施形態による方法によれば、非常に簡単な方法でこの補正を行うことができる。
図6は、上記ユーザの移動による誤差補正処理を概念的に示した図である。また図7は、当該誤差補正処理を実行中のリアルタイム写真合成画面の例を示した図である。
ユーザはまず、図6及び図7Aに示すように、携帯端末100が表示した建造物のパース画像Pと背景画像Bとの写真合成画面70を参照しながら、パース画像Pと、それが配置されるべき建築予定の敷地C(空地など)の両方が画面に表示される場所に移動する。
次に、ユーザは、画面70上のキャリブレーションボタン71を押す。そうすると、ボタン71が押される直前の位置座標を用いたパース画像Pの表示がその状態で固定され、背景画像Bだけが更新される状態となる。この際、ボタン押下時のGPSセンサ17等の各センサからの計測値が記憶される。
次に、ユーザはこのキャリブレーションボタン71を押したまま移動し、パース画像Pが正しい位置と向きに合成表示される場所を歩き回って探す。そしてユーザは、十分に整合する合成表示が得られたら、その場所においてキャリブレーションボタン71を離す(図7B参照)。
そうすると、携帯端末100は、そのボタンを離した瞬間のGPSセンサ17等の各センサからの計測値と、それまで記憶していた、キャリブレーションボタン71が押された瞬間の計測値との差分を計算する。
以後、携帯端末100は、この差分を補正値として、GPSセンサ17等の各センサからの計測値に当該補正値を加えたものを用いてパース画像Pの描画を行う。視点位置が変化すると、パース画像Pの表示は、恰もその敷地Cに固定されているように変化する。
既に補正値が与えられている状態で、更にこの補正操作が行われた場合、携帯端末100は、新たな補正値を、それまでの補正値に追加的・累積的に加算してパース画像Pの描画に用いる。
ここで、上記画面70において、パース画像Pが合成されるべき方位が背景画像Bの表示範囲から外れている場合には、携帯端末100は、背景画像B上に、パース画像Pが合成される(存在する)べき位置を示す情報(例えば右・左のテキストやそれらを示す矢印画像等)を表示可能である。
携帯端末100は、回転(磁気センサ18の検出値)に関しても、上記移動による補正と同様の方法による補正を行う。すなわち、ユーザがキャリブレーションボタン71を押して、移動せずに水平方向の向きを変更し、パース画像Pが正しい位置に表示された状態でキャリブレーションボタン71を離すと、回転方向の補正値が算出される。
垂直方向(標高)の補正に関しては、例えば建造物が本来建つべき位置よりも上方に表示されている場合(GPSセンサ17により、視点位置の標高が実際よりも低く計測された場合)には、携帯端末100の上下方向の(水平方向の軸に関する)回転が補正値の算出に用いられる。
すなわち、ユーザは、パース画像Pがユーザから見上げたアングルで表示された状態でキャリブレーションボタン71を押し、水平のアングルに携帯端末100を上下回転させてキャリブレーションボタン71を離す。
この瞬間には、建造物のパース画像Pは地上に傾いて着地した状態で表示されている。次に、上記キャリブレーションボタン71の押下時から離した時までの差分の中に上下角の変化が含まれる場合には、携帯端末100は、その角度を、携帯端末100の現在位置座標と、建造物の建築予定の位置座標との間の水平距離に基づき、携帯端末100の上下角誤差に相応する垂直の高さの誤差に換算し、その値を以て補正を行う。その結果、この換算が終了した後に、パース画像Pが鉛直な姿勢を回復する。
以上のような機構を実現したことにより、ユーザは、補正に必要な数値を読み取ったり入力する必要がなく、迅速に補正データを取得して利用することができる。
‐位置と地形データを用いた高さの補正処理‐
次に、上記図5のステップ53及びステップ54で示した地形データを用いた高さの補正処理について説明する。
次に、上記図5のステップ53及びステップ54で示した地形データを用いた高さの補正処理について説明する。
GPSセンサ17から得られる緯度・経度のデータと比較して、標高のデータは誤差がより大きくなる傾向にある。そのことの要因として、GPSセンサ17の処理系内部で標高の算出に使用している国際的なジオイドデータが、日本国土地理院が日本付近に関して計測し公開しているジオイドと比較して精度が低いことが推測される。
図8は、ジオイドとローカル座標系との関係を示した図である。また図9は、日本付近のジオイド図を示した図である。
ローカル座標系は、ジオイド面への接平面をXY平面としており、地球楕円体に対する等重力面の凹凸を補正したジオイド面からの標高(ジオイド高)が、GPS座標から求めた標高に対応する(図8)。しかし、日本付近ではジオイド面の凹凸が複雑であり、とりわけ、東日本の太平洋側に関しては、阿武隈山地付近に国内の最高点が存在する一方、日本海溝付近に深い谷があり、その間がジオイドの急斜面となっているため、ジオイドの解像度や精度が、高さ誤差に大きく影響する(図9)。
上述したように、高さの誤差を補正するために、携帯端末100の上下方向の回転による補正を実行することが可能である。本実施形態においてはこれに加えて、視点移動の範囲となる領域の地盤高さ、または市街地であれば道路等の高さを携帯端末100の中にデータとして保有する。携帯端末100は、このデータを用いて、緯度・経度からその地点の地面の高さを求め、これに平均的な歩行者の視点の高さ(例えば1.5m)を加えることにより、視点位置を計算し、これをリアルタイム写真合成に、上述の携帯端末100の回転による高さの誤差補正の代わりに使用することができる。
この地形データは、大都市圏や被災地においては、数値地図標高から作成することが可能である。図10は、この地形データの例を示す。また、この地形データは、団地の造成データから作成することも可能である。
視点高さを求めるための地盤高のメッシュ・データは、最高点と最低点の標高差が25.6m以内であれば、0.1mの精度の高さデータを256階調のモノクロ画像として表現し、例えばJPEG形式等の汎用性の高いフォーマットで、例えばクラウド上のサーバ等に比較的小容量で保存されうる。したがって、当該データは、短時間で携帯端末100に配信され、携帯端末100において復原し、位置座標計算に利用することが可能である。
三次元データとして作成した過去の町並や将来の団地の地盤面が現状と異なる場合には、それぞれのデータに対応した地面のデータを用いることによって、現在のサイトを歩き回ることにより、恰も過去または計画案の地盤面を歩き回ることが可能となる。
図11は、上記三次元モデル描画処理の流れを示したフローチャートであり、このうちステップ81〜ステップ88が、上記移動による誤差補正処理の流れを示す。
同図に示すように、CPU11は、キャリブレーションボタン71が押されているか否かを判断する(ステップ111)。
キャリブレーションボタン71が押されていると判断した場合(Yes)、CPU11は、当該ボタン71の押下が継続されているか否かを示すホールドフラグがその時点で真か否かを判断する(ステップ112)。
ホールドフラグが偽であると判断した場合(No)、CPU11は、ホールドフラグを真に設定する(ステップ113)。
続いてCPU11は、その時点における位置座標及び姿勢の状態mを、上記キャリブレーションボタン71の押下時の位置座標及び姿勢の状態hとして記憶する(ステップ114)。
一方、上記ステップ111においてキャリブレーションボタン71が押されていないと判断した場合(No)、CPU11は、上記ホールドフラグがその時点で真か否かを判断する(ステップ115)。
ホールドフラグが真であると判断した場合(Yes)、CPU11は、ホールドフラグを偽に設定する(ステップ116)。すなわち、CPU11は、この時点でキャリブレーションボタン71からユーザの指が離されたと判断する。
続いてCPU11は、記憶されている上記状態hと、現状の状態mの差分を計算し、その値を補正項dに追加する(ステップ117)。
そしてCPU11は、現状mの値に補正項dを追加し、建造物の三次元モデル(パース画像P)を描画する(ステップ118)。
‐リアルタイム前景処理−
次に、上記パース画像Pの前景処理について説明する。
次に、上記パース画像Pの前景処理について説明する。
写真合成においては、計画上の建造物を記述した三次元データから作成したパース画像Pと、現況の背景画像を合成するにあたり、建造物よりも手前にある被写体が建造物のパース画像Pにより隠されないように処理する必要がある。図12Aは、前景の被写体Fがパース画像Pにより隠されてしまっている合成写真を示し、図12Bは、前景の被写体Fがパース画像Pによって隠されずに正しく表示されている合成写真を示す。
図13は、従来の写真合成手法における前景処理を示す。従来の写真合成処理においては、視点位置が固定されていることから、建造物の手前に存在する画像上の被写体を建造物の上に表示して、これを用いて建造物を隠すために、背景画像とは別に、前景画像を予め用意し、背景画像→建造物→前景画像の順に上描き表示する方法を用いていた。ここで使用する前景画像は、建造物よりも手前となる被写体以外の部分を画像処理により透明化することにより、裏側の建造物を隠さないようにするように、手間と時間をかけて準備作業の中で手作業により加工したものである。
しかし、本実施形態におけるリアルタイム写真合成においては、絶えず変化する背景画像Bに対して、その都度このような前景画像Fを、視点移動の度に作成することは現実的ではない。
そこで、本実施形態に係るリアルタイム前景処理においては、前景画像を使用せず、その代わりに建築予定の建造物の前景となる可能性が高い既存建物(あるいはその部分)を、予め前景モデルとするための三次元データとして作成しておき、これを建造物のパース画像の描画に先だって描画する。
図14は、本実施形態におけるパース画像及びその前景の描画処理の流れを示した図である。また図15は、上記パース画像及びその前景の描画処理を模式的に示した図である。
図14Aは背景画像Bが撮像された状態を示し、同図Bは前景モデルを描画した状態を示し、同図Cは建造物のパース画像を描画した状態を示す。
同図Bに示すように、前景モデルの三次元データが有する全ての面のカラーを透明とした透明画像Wを描画しておくことにより、この段階では表示画面は何も変化せず、背景画像がまだそのまま表示されている。
しかし、このことの効果として、その次に三次元描画される建造物のパース画像Pの内、視点位置から見て前景モデルFの背後となる部分に関しては、前景モデルFの透明の描画処理が優先される結果、描画されずに隠されることとなり、結果的にその部分の背景画像(この場合は手前建物の実写)が表示される(図14C参照)。
この前景モデルFとなる建物の三次元データは、建物全体について詳細に作成する必要はない。図15に示すように、例えば町並を構成する連担する住宅群の中に1軒分の空地があり、そこに新たな建造物が計画されたとする。携帯端末100は、計画された建造物の三次元モデルを作成する際に、両隣の既存建物の壁面の内、計画された建造物に隣接する(対向する)面Wa及びWbだけのデータを作成する。そして携帯端末100は、これに透明の属性を付けておき、これを建造物のパース画像Pの描画に先だって描画することによって、所期の目的を果たすことができる。
図11に戻り、上記リアルタイム前景処理の流れを説明する。
CPU11はまず、デプスバッファをクリアし(ステップ119)、パース画像Pにより隠されたくない画面上の隣接建物の壁面の三次元モデルを、全て透明なオブジェクトとしてデプスバッファに描画する(ステップ120)。
そしてCPU11は、パース画像Pのモデルを、デプスバッファに不透明なオブジェクトとして描画する(ステップ121)。
以上によりリアルタイム写真合成処理が終了する(図4のステップ44)。
図4に戻り、その後、CPU11は、いずれかのセンサの計測値が変化したか否かを判断する(ステップ45のYes)。
いずれかのセンサの値が変化したと判断した場合(Yes)、CPU11は、当該変化した値を用いて上記リアルタイム写真合成処理を実行する(ステップ44)。
いずれかのセンサの値が変化していないと判断した場合(No)、CPU11は、シャッターボタン72が押下されたか否かを判断する(ステップ46)。
シャッターボタン72が押下されたと判断した場合(Yes)、CPU11は、背景画像と共に、その時点におけるGPSセンサ17から取得された位置座標、カメラ16の姿勢(方位及び傾き)、補正値、写真合成に用いた補正後のカメラパラメータ、日時、その他天候等の環境条件、及び背景画像に合成表示されている建造物のパース画像(三次元モデル)の識別情報等を記録する(ステップ47)。
シャッターボタン72も押下されていないと判断した場合(No)、CPU11は、ユーザからアプリケーションの終了要求が入力されたか否かを判断し(ステップ48)、終了要求が入力されたと判断した場合には(Yes)、アプリケーションを終了する。
(誤差補正における演算手法)
ここで、上記誤差補正における演算手法の一例について、詳細について説明する。
ここで、上記誤差補正における演算手法の一例について、詳細について説明する。
本実施形態においては、携帯端末100を、位置に関する3つと、姿勢に関する3つの合計6つの自由度を有する剛体として扱う。
携帯端末100の位置と姿勢を表現するために、本処理系においては、図16に示すように、敷地に固定した、東をX軸、北をY軸、上をZ軸とする三次元座標(x,y,z)を用いる。
地面に固定した座標系で、東をx軸、北をy軸とするのは二次元図面から始まった建築CAD等の慣習である。測量では、北をx軸、西をy軸とする。また、写真から始まったCG分野では、東をx軸、上をy軸とする慣習が存在する。
表示すべき建物等の位置、方位、形状は、敷地の座標系を用いて表現する。
一方、図17に示すように、携帯端末100に固定した座標軸として、ユーザが画面(表示部14)を手前に横長に水平に構えた姿勢において、右をW、上をU、正面をVとする座標軸を用いる。
上記6つの自由度の内、3つは位置に関する座標値である。
GPSセンサ17から得られる緯度経度標高を、敷地の座標系に変換した座標値を用いて、視点位置P(x,y,z)を表現する。
敷地座標系の原点を、基本位置とする。
敷地の原点位置の緯度経度標高は、建築設計に際して基準点測量などにより求められた数値を使用する。
GPSセンサ17の計測値から計算される座標値Pmと、敷地原点から計測した座標値Ptの偏差Dを簡便に正しく補正することが、本実施形態の目的である。
例えば、敷地原点の位置でGPS計測した計測座標値を補正値D1とすると、計測値からD1を引いた値が正しい敷地座標値である。
また、例えばGPS計測値が原点を示す地点の敷地原点から計測した座標値を補正値D2とすると、 計測値にD2を加えた値が正しい敷地座標値である。
原点付近に移動せずとも、写真合成画面上でのキャリブレーション操作により計測された偏差により補正することができ、さらに既に得られている補正値の精度を向上することができる。
すなわち、キャリブレーションボタン71によるホールド中の移動をdとすると、dをD1から減ずるか、 またはD2に加えることにより補正値を取得し、改善することができる。
上記6つの自由度の内、3つは姿勢に関する値である。
携帯端末100(剛体)は、上述のとおり、加速度センサ19と、磁気センサ18を有している。
加速度センサ19の計測値は、自由落下している時、無重力空間にある時には、端末10の座標系で(0,0,0)となる。机の上に静止して置かれているときには、上方に加速度を机から受けている。よって、水平に置かれているのか、縦に置かれているのかなどを自己認識できる。(携帯端末100に固定された座標系で、上がどちらにあるのかが分かる)。
地球上の重力場は、一様ではなく、歪んでいる。例えば、東日本大震災の震源域(海溝、プレート境界)の付近では、地下に密度の高い物質があって、等重力面、即ち海面が地球楕円体に対して、数十mほど凹んでいる。また、阿武隈山中付近では、日本付近で最も等重力面が高くなっている。
このため、この付近の山は標高よりも幾何学的形状において高く、東北日本の太平洋岸付近では、海面がかなり東下がりに傾いている。上述のとおり、この等重力面の凹凸の状態は、ジオイドとして計測され、公開されており、このデータを加味することにより、より正確な高さや上方ベクトルを得ることができる。
GPSセンサ17により得られる位置座標から、その場所のジオイドを求めることにより、携帯端末100の正確な標高(=歪んだ等重力面からの高さ)や、地球中心の向きを得ることができる。西暦2000年以前の測量データは、明治期に東京付近から作業を始めたこともあり、地球楕円体に対してかなり東下がりに傾いた等重力面(水準器で認識される水平)を地球楕 円体に接する面と考えて作成されているため、複雑な変換を行わないと、GPSセンサ17で計測される世界の座標系とうまくつながらない。
磁気センサ19は、上述の通り、磁北を検出する。磁北は地軸の北極(真北)とは一致せず、ずれている。しかも、地下にある鉄分等の分布により、場所場所で偏差が異なっている。この磁北と真北の偏差の地理的分布も国土地理院により計測され、データとして公開されている。GPSにより得られる位置座標と分布図から、その場所における磁北の真北からの偏差を知り、補正することができる。
また、三次元的にみた地表の磁場は、水平ではない。しかし、上述のとおり、加速度センサ19により鉛直の向きが計測できるため、それと直交する向きに補正することにより水平な磁北を求める計算が可能である。
携帯端末100に固定した座標系を、画面を横長に構えた時の右をW軸、正面をV軸、上をU軸とし、携帯端末100の姿勢は、この座標系で計測した真上(加速度≒敷地座標系のZ軸)と、真北(磁北≒敷地座標系のY軸)の向きから、外部から情報伝達を受けることなしに、自己認識することができる。
よって、敷地座標系の各軸が、携帯端末100の座標系から見てどの向きであるかを知ることができる。逆に、敷地の座標系に即して、携帯端末100がどのような向きにあるのかを逆算することができる。
一般に、携帯端末100のような剛体の姿勢は、機器に固定された座標軸であるW軸、V軸、U軸方向の 各単位ベクトルのそれぞれの、敷地座標系で計測したx,y,z成分を示す3×3の行列で表現されることが多い。計算処理は単純であるが計算回数が多く、回転の自由度は3しかないため、データの保存方法としては冗長である。
一方複素数を4次元に拡張した四元数Q(スカラー成分が1、ベクトル成分が3)を用いても、回転を表現することができる。
Qを構成する4成分を(t,x,y,z)と表した時、tをQのスカラー成分、(x,y,z)をベクトル成分と呼ぶ。
Qのベクトル成分の長さとは、√(x2+y2+z2)である。
Qの長さとは、√(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)である。
Qのベクトル成分の長さとは、√(x2+y2+z2)である。
Qの長さとは、√(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)である。
四元数Q=(t,x,y,z)の逆数(1/Q)は、Qの長さをrとしたとき、 (t/r2, -x/r2, -y/r2, -z/r2)である。
特に、Qの長さが1である場合、Qの逆数は、スカラー成分をそのままとし、ベクトル成分の符号を反転させるだけで得られる。Q*(Qの逆数)、つまりQ/Qは、(1,0,0,0)となる。
特に、Qの長さが1である場合、Qの逆数は、スカラー成分をそのままとし、ベクトル成分の符号を反転させるだけで得られる。Q*(Qの逆数)、つまりQ/Qは、(1,0,0,0)となる。
四元数Qによるある四元数Vの回転は、Q*V*(Qの逆数)という計算(つまりQ*V/Q)で求められる。この時、Vのベクトル成分は、ある回転軸の回りに一定の角度分回転する。
回転を表現するQのベクトル成分をベクトルとしてみた場合、このベクトルの向きは回転軸の向きに等しい。
スカラー成分が1で、ベクトル成分がすべてゼロの四元数Q=(1,0,0,0)は、回転なしを意味する。
また、スカラー成分がゼロでベクトル成分の長さが1の場合は、180度回転を表す。
Q=(0,x,y,z), x2+y2+z2 = 1
Q=(0,x,y,z), x2+y2+z2 = 1
その場合も、ベクトル成分が回転軸を表し、ベクトル成分の符号を全て反転させた回転-Q=(0,-x,-y,-z)も同じ結果をもたらす。
それ以外の場合には、ベクトル成分を軸とするある角度Ψ(0〜180°)の回転を表す。 この場合、Qのスカラー成分tはcos(Ψ/2)であり、ベクトル成分の長さはr=sin(Ψ/2)である。
Q= (cos(Ψ/2), Px sin(Ψ/2), Py sin(Ψ/2), Pz sin(Ψ/2))
ここでPは、長さ1の、回転軸を表すベクトルで、Ψは回転角である。
Q= (cos(Ψ/2), Px sin(Ψ/2), Py sin(Ψ/2), Pz sin(Ψ/2))
ここでPは、長さ1の、回転軸を表すベクトルで、Ψは回転角である。
例えば、携帯端末が水平に回転する場合(ビデオカメラで言うパン)、回転軸は鉛直線である。
P=(0,0,1)
回転角が60度なら、Q=(約0.866, 0, 0, 0.5)
(実成分の約0.866は、cos30°で、(√3)/2、z成分は1×sin30°で1/2)
Qの逆数は、(約0,866, 0, 0, -0.5)
である。
P=(0,0,1)
回転角が60度なら、Q=(約0.866, 0, 0, 0.5)
(実成分の約0.866は、cos30°で、(√3)/2、z成分は1×sin30°で1/2)
Qの逆数は、(約0,866, 0, 0, -0.5)
である。
スカラー成分tはベクトル成分から、
t = cos(Ψ/2) = √(1-x2-y2-z2)
として計算することができるため、スカラー成分をデータとして保存する必要はない。
t = cos(Ψ/2) = √(1-x2-y2-z2)
として計算することができるため、スカラー成分をデータとして保存する必要はない。
携帯端末100の姿勢は、ある基本姿勢(例えば、真北に向かって水平に構えた姿勢)に対する回転として表現することができる。よって、この回転を表す一つの四元数Qによって表現することができる。さらに、Qの長さが1であると限定しても一般性は失われないことから、 データとしては、そのベクトル成分である3の数値を保存するだけで十分である。Qが決まれば、Q*(0,0,1,0)/Q:携帯端末100のY軸のベクトル(注視ベクトル)の、敷地座標系からみた各成分Q*(0,0,0,1)/Q:携帯端末100のZ軸のベクトル(上方ベクトル)の、敷地座標系からみた各成分により、携帯端末100の姿勢が決まる。
Q1で表現される姿勢にある携帯端末100をさらに、Q2だけ回転させた後の姿勢がQ3であるとすると、
Q3=Q2*Q1であり、従って、例えば基本姿勢における注視ベクトルVは、
Q2*(Q1*V/Q1)/Q2 = Q3*V/Q3と変換される。
Q3=Q2*Q1であり、従って、例えば基本姿勢における注視ベクトルVは、
Q2*(Q1*V/Q1)/Q2 = Q3*V/Q3と変換される。
このような回転を表す四元数のベクトル成分を構成する3値だけをデータとして保存する方法を用いることにより、回転を繰り返した場合に、回転に関する誤差以外の、物体が変形(拡大、縮小、アフィン変換)する誤差を防ぐことができる。またマトリクスを用いる場合よりも、計算回数を縮減することができる。
計測された携帯端末100の姿勢は、本処理系においては、敷地座標系で表現した注視ベクトルと上方ベクトルの形で表示系に伝えられる。
携帯端末100の姿勢はオイラー角を用いて、基本姿勢からヨー角(Y)水平回転し、ピッチ角(P)上下回転し、ロール角(R)横回転することでも表現できる。磁気センサ19と加速度センサ18から計算されたロールR、ピッチP、ヨーYを用いて、回転を表す四元数Qをさらに次のように計算することができる。
Q=(cos(R/2),0,sin(R/2),0)*(cos(P/2),sin(P/2),0,0)*(cos(Y/2),0,0,sin(Y/2))
この回転は、基本姿勢からまずヨー角だけU軸まわりに方位を回転させ、次にW軸まわりにピッチ角だけ回転させ、最後にV軸周りにロール角だけ回転させる手順に対応する。
Q=(cos(R/2),0,sin(R/2),0)*(cos(P/2),sin(P/2),0,0)*(cos(Y/2),0,0,sin(Y/2))
この回転は、基本姿勢からまずヨー角だけU軸まわりに方位を回転させ、次にW軸まわりにピッチ角だけ回転させ、最後にV軸周りにロール角だけ回転させる手順に対応する。
加速度センサ19及び磁気センサ18から計算される姿勢Qmと、敷地座標系による姿勢との偏差Qdを正しく補正することが、本実施形態の目的である。例えば、敷地座標系の基本姿勢に携帯端末を置いた時にセンサから計測値で計算した姿勢を、誤差Qd1とすると、任意の姿勢の計測値から求めた姿勢Qmを、Qm/Qd1に補正することにより正しい姿勢が得られる。
また、センサ計測値が基本姿勢に対応する値を得る姿勢を敷地座標系で計測した姿勢をQd2とすると、任意の姿勢の計測値から求めたQを、Q*Qd2に補正することにより正しい姿勢、すなわちより正確な表示が得られる。
Qd1は、正しい基本姿勢から計測値上の基本姿勢への回転を示す四元数である。またQd2は、計測値上の基本姿勢から、正しい基本姿勢への回転を示す四元数である。Qd1とQd2は、Qd1*Qd2=1、言い換えるとQd2=1/Qd1の関係にある。
ユーザにより合成表示結果を見て補正を行うためのホールド操作が行われている間に、Qdの回転が行われた場合には、Qd1をQdで除するか、またはQd2にQdに乗ずることにより、補正値Qd1またはQd2の精度をより高めることができる。
ホールド操作の前の上方ベクトルと注視ベクトルの計測値を四元数で表したものをU1,V1とし、 ホールドが解除された時点における上方ベクトルと注視ベクトルの計測値を四元数で表したものをU2,V2とすると、右方向ベクトルはそれぞれ、W1=V1*U1, W2=V2*U2として求められる。
これらを用いて、ホールド期間中の回転Qdの自乗を、
Qd2 = (W2*W1+V2*V1+U2*U1+(1,0,0,0))*(-0.5,0,0,0)
として求めることができる。
Qd2 = (W2*W1+V2*V1+U2*U1+(1,0,0,0))*(-0.5,0,0,0)
として求めることができる。
但し、Qd2のスカラー成分が-1となる場合、すなわち180°回転の場合には、Qd2のベクトル成分が 全てゼロとなるために、Qdが求められない。そこで、このような場合には、Qdのベクトル成分を、(V2-V1)*(U2-U1)のベクトル成分または、(W2-W1)*(V2-V1)のベクトル成分の内、長さが大きい方を正規化する方法で直接求め、スカラー成分をゼロとする。
Qdは、Qd2からは、三角関数を使用せずに、以下の手順で計算することができる。
Qd2の成分を、(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となる場合には、上記[0176]の処理で完結するため、この処理は必要ではない。
Qd2の成分を、(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となる場合には、上記[0176]の処理で完結するため、この処理は必要ではない。
[変形例]
本発明は上述の実施形態にのみ限定されるものではなく、本開示の要旨を逸脱しない範囲内において種々変更され得る。
本発明は上述の実施形態にのみ限定されるものではなく、本開示の要旨を逸脱しない範囲内において種々変更され得る。
上述の実施形態においては、キャリブレーションボタン71が押下された時にパース画像が固定され、押下が維持された後(ロングタッチ)、指がリリースされた時に補正値が算出された。しかし、単にボタン71のタッチ操作によってパース画像が固定され、次のタッチ操作によって補正値が算出されてもよい。
また、パース画像の固定のためのボタンと、補正値算出のためのボタンが別個に用意されてもよい。すなわち、パース画像の固定のための操作と、補正値算出のための操作とが連関していなくてもよい。
上述の実施形態では、GPSセンサ、磁気センサ、加速度センサの各値が補正されたが、これらのうちいずれか1つまたは2つの値が補正されてもよい。
上述の実施形態の各フローチャートで示した処理は一例であり、それ以外の処理によっても本発明の目的を達成することができる。
11…CPU
12…RAM
13…不揮発メモリ
14…表示部
15…通信部
16…カメラ
17…GPSセンサ
18…磁気センサ
19…加速度センサ
70…写真合成画面
71…キャリブレーションボタン
71…ボタン
72…シャッターボタン
100…携帯端末
12…RAM
13…不揮発メモリ
14…表示部
15…通信部
16…カメラ
17…GPSセンサ
18…磁気センサ
19…加速度センサ
70…写真合成画面
71…キャリブレーションボタン
71…ボタン
72…シャッターボタン
100…携帯端末
Claims (10)
- 情報処理装置であって、
建造物の建築予定の予定位置座標及び当該建造物を示す三次元データを記憶可能な記憶部と、
前記建造物の建築予定現場の画像を撮像可能なカメラと、
当該情報処理装置の現在位置座標を検出可能な位置センサと、
前記カメラが向いている方位を検出可能な方位センサと、
表示部と、
当該情報処理装置を保持するユーザの操作を受付可能な操作受付部と、
前記三次元データと、前記予定位置座標と、前記現在位置座標と、前記方位とを基に、前記カメラを視点とした前記建造物のパース画像を描画し、当該パース画像を前記撮像された画像上に合成した合成画像を前記表示部に表示させ、
前記ユーザから第1の操作が受け付けられた場合に、当該第1の操作受付時における現在位置座標を記憶し、前記パース画像を当該第1の操作の受付時における表示状態に固定して、前記撮像された画像を前記現在位置座標及び前記方位の変化に応じて更新し、
前記第1の操作後に移動した前記ユーザから第2の操作が受け付けられた場合に、前記第1の操作受付時における現在位置座標と、前記第2の操作受付時における現在位置座標との差分を算出し、前記固定を解除して、前記差分を前記現在位置座標に加算する補正値として前記パース画像の生成に用いる
ことが可能な制御部と
を具備する情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記制御部は、前記ユーザから第1の操作が受け付けられた場合に、当該第1の操作受付時における方位を記憶し、前記第2の操作が受け付けられた場合に、前記第1の操作受付時における方位と、前記第2の操作受付時における方位との差分を算出し、当該差分を前記方位の補正値として前記パース画像の生成に用いる
情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記制御部は、前記補正値の算出後に前記第1の操作及び前記第2の操作が受け付けられた場合に、新たに補正値を算出して、前回算出された補正値に前記新たに算出された補正値を累積的に加算して前記パース画像の生成に用いる
情報処理装置。 - 請求項2に記載の情報処理装置であって、
前記方位センサは、水平方向の軸に関する当該情報処理装置の傾き角を検出可能であり、
前記制御部は、前記第1の操作後に検出された傾き角と、前記現在位置座標と前記予定位置座標との距離とを基に、前記現在位置座標の垂直方向の補正値を算出する
情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記操作受付部は前記表示部上のタッチセンサであり、
前記表示部は所定のボタン画像を表示可能であり、
前記タッチセンサは、前記第1の操作として前記ボタン画像の押下維持操作を受け付け、前記第2の操作として前記ボタン画像の押下解除操作を受け付けることが可能である
情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記制御部は、前記パース画像が合成されるべき方位が前記撮像された画像の表示範囲から外れている場合に、前記撮像された画像上に前記パース画像が合成されるべき方位を示す情報を表示するように前記表示部を制御する
情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記現在位置座標は、緯度、経度及び標高を含み、
前記記憶部は、前記予定位置座標を含む所定範囲における各地点の高さを含む地形データを記憶し、
前記制御部は、前記現在位置座標における前記緯度及び経度に対応する前記地形データ中の高さに、平均的な人間の視点の高さを加えた値を、前記現在位置座標の垂直方向の補正値として前記パース画像の生成に用いる
情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記記憶部は、前記建造物の建築予定地に隣接して存在する隣接建物の前記建造物と対向する面を示す隣接面三次元データ及び当該面の隣接面位置座標を記憶し、
前記制御部は、前記パース画像の合成前に、前記隣接面三次元データ及び前記隣接面位置座標を基に、前記撮像された画像上の、前記パース画像の前景となる前記隣接建物の前記隣接面位置座標に相当する位置に透明な面を描画する
情報処理装置。 - 建築予定の建造物を示す三次元データと、前記建造物の建築予定の予定位置座標と、位置センサで検出された現在位置座標と、方位センサで検出されたカメラの方位とを基に、前記カメラを視点とした前記建造物のパース画像を描画し、
前記パース画像を、前記カメラで撮像された建造物の建築予定現場の画像上に合成した合成画像を表示し、
ユーザから第1の操作が受け付けられた場合に、当該第1の操作受付時における現在位置座標を記憶し、
前記パース画像を前記第1の操作の受付時における表示状態に固定して、前記撮像された画像を前記現在位置座標及び前記方位の変化に応じて更新し、
前記第1の操作後に移動した前記ユーザから第2の操作が受け付けられた場合に、前記第1の操作受付時における現在位置座標と、前記第2の操作受付時における現在位置座標との差分を算出し、
前記固定を解除して、前記差分を前記現在位置座標に加算する補正値として前記パース画像の生成に用いる
情報処理方法。 - 情報処理装置に、
建築予定の建造物を示す三次元データと、前記建造物の建築予定の予定位置座標と、位置センサで検出された現在位置座標と、方位センサで検出されたカメラの方位とを基に、前記カメラを視点とした前記建造物のパース画像を描画するステップと、
前記パース画像を、前記カメラで撮像された建造物の建築予定現場の画像上に合成した合成画像を表示するステップと、
ユーザから第1の操作が受け付けられた場合に、当該第1の操作受付時における現在位置座標を記憶するステップと、
前記パース画像を前記第1の操作の受付時における表示状態に固定して、前記撮像された画像を前記現在位置座標及び前記方位の変化に応じて更新するステップと、
前記第1の操作後に移動した前記ユーザから第2の操作が受け付けられた場合に、前記第1の操作受付時における現在位置座標と、前記第2の操作受付時における現在位置座標との差分を算出するステップと、
前記固定を解除して、前記差分を前記現在位置座標に加算する補正値として前記パース画像の生成に用いるステップと
を実行させるプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/006737 WO2015071940A1 (ja) | 2013-11-15 | 2013-11-15 | 情報処理装置、情報処理方法及びプログラム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015189158A Division JP6064269B2 (ja) | 2015-09-28 | 2015-09-28 | 情報処理装置、情報処理方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5817012B2 true JP5817012B2 (ja) | 2015-11-18 |
JPWO2015071940A1 JPWO2015071940A1 (ja) | 2017-03-09 |
Family
ID=53056910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014506384A Active JP5817012B2 (ja) | 2013-11-15 | 2013-11-15 | 情報処理装置、情報処理方法及びプログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5817012B2 (ja) |
WO (1) | WO2015071940A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6665572B2 (ja) | 2016-02-16 | 2020-03-13 | 富士通株式会社 | 制御プログラム、制御方法およびコンピュータ |
JP6410874B1 (ja) * | 2017-05-30 | 2018-10-24 | 株式会社タカラトミー | Ar映像生成装置 |
DE102019105015A1 (de) * | 2019-02-27 | 2020-08-27 | Peri Gmbh | Aufbau von Schalungen und Gerüsten mit Hilfe von Mobilgeräten |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003132374A (ja) * | 2001-10-26 | 2003-05-09 | Canon Inc | 画像表示装置及びその方法並びに記憶媒体 |
-
2013
- 2013-11-15 WO PCT/JP2013/006737 patent/WO2015071940A1/ja active Application Filing
- 2013-11-15 JP JP2014506384A patent/JP5817012B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003132374A (ja) * | 2001-10-26 | 2003-05-09 | Canon Inc | 画像表示装置及びその方法並びに記憶媒体 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2015071940A1 (ja) | 2017-03-09 |
WO2015071940A1 (ja) | 2015-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11217019B2 (en) | Presenting image transition sequences between viewing locations | |
KR101285360B1 (ko) | 증강현실을 이용한 관심 지점 표시 장치 및 방법 | |
US11557083B2 (en) | Photography-based 3D modeling system and method, and automatic 3D modeling apparatus and method | |
TWI494898B (zh) | 從地理參考影像擷取和映對三維特徵之技術 | |
CN110769240A (zh) | 基于拍照的3d建模系统及方法、自动3d建模装置及方法 | |
JP6682821B2 (ja) | サービスシステム、情報処理装置、サービス提供方法 | |
JP5477059B2 (ja) | 電子機器、画像出力方法及びプログラム | |
CN102338639A (zh) | 信息处理设备和信息处理方法 | |
Gomez-Jauregui et al. | Quantitative evaluation of overlaying discrepancies in mobile augmented reality applications for AEC/FM | |
JP6064269B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
US20240087157A1 (en) | Image processing method, recording medium, image processing apparatus, and image processing system | |
JP2017212510A (ja) | 画像管理装置、プログラム、画像管理システム及び情報端末 | |
KR20170094030A (ko) | 실내 내비게이션 및 파노라마 사진 맵핑 제공 시스템 및 그 방법 | |
US11959749B2 (en) | Mobile mapping system | |
JP5817012B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
KR101574636B1 (ko) | 면형방식 디지털 항공카메라로 촬영한 시계열 항공사진을 입체시하여 좌표를 연동하고 변화지역을 판독하는 시스템 | |
US20120026324A1 (en) | Image capturing terminal, data processing terminal, image capturing method, and data processing method | |
JP5862865B2 (ja) | 合成画像表示装置及び合成画像表示プログラム | |
CN104978476B (zh) | 利用智能手机进行室内地图现场补测的方法 | |
JP2013179544A (ja) | 撮影装置、撮影制御方法及びプログラム | |
Hussein et al. | Evaluation of the accuracy of direct georeferencing of smartphones for use in some urban planning applications within smart cities | |
CN112887793B (zh) | 视频处理方法、显示设备和存储介质 | |
CN111121825B (zh) | 一种行人惯性导航系统中初始导航状态的确定方法及装置 | |
JP2012138759A (ja) | 撮像装置、撮像制御方法及びプログラム | |
JP2011022662A (ja) | 携帯電話端末及び情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150901 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150928 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5817012 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |