【実施例1】
【0021】
A.装置構成:
図3は、実施例における3次元画像表示システムの構成を示す説明図である。3次元画像表示システムは、予め用意された3次元地図データベースを用いて3次元地図を表示したり、端末に用意されたカメラを利用して撮影した実風景を表示したりすることができ、これらの3次元画像内に、情報として、地物の名称などの文字を重ねて表示することができるシステムである。
本明細書において、3次元画像とは、立体視できる画像という意味ではなく、3次元地図や実風景などの3次元的に表現された画像を言う。
実施例1では、3次元画像を表示する例を示すが、さらに経路探索の機能を備えることにより、3次元画像を利用した経路案内システムとして構成することもできる。
【0022】
本実施例では、サーバ200からネットワークNE2等を介して提供される地図データに基づいて、端末300に地図を表示する構成とした。3次元画像を表示する端末としては、スマートフォン、携帯電話、パーソナルコンピュータ、ナビゲーション装置などを用いることができる。また、3次元画像表示システムは、端末300とサーバ200とからなるシステムの他、スタンドアロンで稼働するシステムとして構成してもよい。
図中には、3次元地図データを生成するデータ生成装置100も併せて示した。
【0023】
[サーバ200の構成]
サーバ200には、図示する機能ブロックが構成されている。本実施例では、これらの機能ブロックは、それぞれの機能を実現するソフトウェアをインストールすることによって構成したが、その一部または全部をハードウェア的に構成してもよい。
地図データベース210は、3次元地図および情報を表示するためのデータベースである。本実施例では、3Dポリゴンデータ211、文字データ212、格子点データ213を含む地図データを格納する。
3Dポリゴンデータ211は、道路、建物などの地物の3次元形状を表すポリゴンデータである。文字データ212は、3次元画像に表示すべき文字、例えば、地物の名称や地名などのデータである。本実施例では、3次元地図および実風景の双方に文字を表示し得るが、文字データ212は、両者に共通のデータとした。格子点データ213は、文字の表示に利用されるデータであり、3次元空間内に設けられたメッシュの格子点ごとに、表示すべき文字およびその表示位置を記憶している。格子点データ213の構造については、後述する。
送受信部201は、ネットワークNE2を介して端末300とのデータの送受信を行う。本実施例では、地図データベースの送受信が主として行われる。また、送受信部201は、ネットワークNE1を介してデータ生成装置100との通信も行う。本実施例では、生成された格子点データの授受が主として行われる。
データベース管理部202は、地図データベース210からのデータの読み出し、書き込みを制御する。
【0024】
[端末300の構成]
端末300には、主制御部304の下で稼働する種々の機能ブロックが構成されている。本実施例では、主制御部304および各機能ブロックは、それぞれの機能を実現するソフトウェアをインストールすることによって構成したが、その一部または全部をハードウェア的に構成してもよい。
送受信部301は、サーバ200とのネットワークNE2を介した通信を行う。本実施例では、地図データベースの送受信が主として行われる。
コマンド入力部302は、ユーザからの指示を入力する。本実施例における指示としては、3次元地図の表示範囲、拡大・縮小の指定などが挙げられる。
位置方位入力部303は、端末300の現在位置および方位を入力する。現在位置は、GPS(Global Positioning System)によって取得することができ、方位は、電子コンパスを利用して取得することができる。
画像入力部308は、端末300に備えられたカメラを利用して実風景を撮像した画像データまたは動画データを入力する。
地図情報記憶部305は、サーバ200から提供された地図データベースを一時的に記憶しておくバッファである。地図データベースには、3次元画像内に文字を表示するための文字データおよび格子点データも含まれる。本実施例では、地図情報記憶部305は、不足する範囲の地図データをサーバ200から受信するものとしたが、予め地図データベース全体を記憶させるようにしてもよい。
表示制御部306は、地図情報記憶部305を参照して、端末300のディスプレイに3次元画像を文字とともに表示する。表示制御部306には、格子点特定部306Aが設けられており、格子点特定部306Aは、視点位置等に基づいて格子点データを特定する機能を奏する。
【0025】
[データ生成装置100の構成]
データ生成装置100は、格子点データを生成するための装置であり、図示する機能ブロックが構成されている。本実施例では、これらの機能ブロックは、パーソナルコンピュータに、それぞれの機能を実現するソフトウェアをインストールすることによって構成したが、その一部または全部をハードウェア的に構成してもよい。
送受信部105は、ネットワークNE1を介してサーバ200とデータの授受を行う。
コマンド入力部101は、キーボード等を介してオペレータの指示を入力する。本実施例では、格子点データを生成する際のメッシュの設定および3次元画像内に表示すべき文字の指定等が含まれる。
3Dポリゴンデータ記憶部104は、格子点データを生成する際に3次元地図を表示するために用いられる3Dポリゴンデータを格納するデータベースである。3Dポリゴンデータの内容は、サーバ200で説明した3Dポリゴンデータ211と同じである。
格子点設定部102は、格子点データを構成するためのメッシュを特定する。メッシュは、例えば、地表面を所定サイズに区切って設定することができる。また、地物の側面などに3次元的に構成してもよい。
文字位置設定部106は、格子点設定部102で設定された各格子点を視点とする3次元画像内に表示すべき文字およびその表示位置を設定する。表示位置の設定方法は後述する。
格子点データ記憶部103は、格子点設定部102および文字位置設定部106によって設定された格子点データを格納する。この格子点データは、送受信部105を介してサーバ200の格子点データ213として格納されることになる。
【0026】
B.格子点データの構成:
図4は、格子点の設定例を示す説明図である。
図4(a)には、道路上に所定サイズのメッシュaを設定した例を示した。このメッシュaの格子点Pごとに、格子点データ、即ち格子点Pを視点位置として3次元画像を表示した場合に、その3次元画像内に表示すべき文字およびその表示位置を示したデータが生成されることになる。
メッシュaのサイズは、任意に設定可能であり、例えば、10m程度とすることができる。メッシュaのサイズを大きくすると、3次元画像を表示する際にユーザが指定等する視点位置と、格子点データが生成される格子点とのずれが大きくなり、3次元画像内に表示される文字やその表示位置が不適切となる可能性が高くなる。一方、メッシュaのサイズを小さくすれば、全体の格子点数が増大するため、格子点データの容量が大きくなる。メッシュaのサイズは、これらを考慮して、設定すればよい。
メッシュaのサイズは、全ての場所で統一的である必要はなく、場所に応じて異なるサイズとしても構わない。また、
図4(a)では、道路上にのみメッシュaを設定する例を示したが、道路以外の部分にメッシュを設定することも可能である。
【0027】
また、メッシュを設定する場所は、地表面だけとも限らない。
図4(b)には、建物の側面にメッシュを設定する例を示した。メッシュb1は建物の窓の部分に設定した例である。メッシュb2は、建物のエレベータ部分に設定した例である。メッシュb3は、建物の側面全体に設定した例である。このようにメッシュは、視点位置となり得る全ての場所に設定することができる。
【0028】
次に、設定された格子点ごとの情報の内容を説明する。本実施例では、格子点の全周方向を取り囲むように文字表示用のレイヤ(以下、「文字レイヤ」と称する)を用意する。
図5は、文字レイヤの例を示す説明図である。図の左側に示すように、格子点Pの周囲に円筒形の文字レイヤを設定する。図中では、円筒形の一部のみを示したが、文字レイヤは、360度全方向について用意されている。文字レイヤの高さは、3次元画像として表示可能な画角を考慮して任意に設定可能である。
図中に示したαmaxは3次元画像の上下方向の最大画角を表す最大垂直画角であり、Umaxは3次元画像の最大水平画角である。3次元画像を表示する際には、このように文字レイヤの一部が用いられることになるが、格子点データとしては、360度全方向に対して用意されているのである。
図の右側には、文字レイヤを展開した状態を示した。文字レイヤには、格子点Pを視点とした場合の3次元画像中に表示されるべき文字が表示される。図中には、Aビル、Bビルという建物の名称が表示されている例を示している。格子点データは、この文字を表示するためのデータとして、「Aビル」「Bビル」などの表示すべき文字列、およびその表示位置を記憶している。表示位置は、種々の座標系をとることができるが、本実施例では、北を0度とする水平方向の角度uと、垂直方向の高さvからなる円筒座標系で表すものとした。図の例では、「Aビル」「Bビル」の表示位置としては、各文字列の下端中央の座標(u1,v1)、(u2,v2)が記憶されることになる。
【0029】
図6は、格子点データの構成例を示す説明図である。
格子点データ213は、
図4で説明した格子点ごとに用意されている。
図6中の格子点P…格子点Pnは、各格子点について同様のデータが用意されていることを表している。
格子点Pnに示した通り、その内容としては、まず格子点位置を表す3次元座標が格納されている。地表面にのみメッシュを設定する場合には、緯度、経度などの2次元座標値としてもよい。
次に、格子点Pnを視点位置とする3次元画像内に示されるべき文字およびその表示位置を示すデータが格納される。図中の文字情報1…文字情報mは、格子点Pnについてm個の文字情報が同様の形式で格納されていることを表している。文字情報mに示した通り、その内容は、文字列を特定するための文字データID、表示時の文字サイズ、および文字位置である。
文字データIDは、格子点データ213とは別に用意された文字データ212に格納された文字列データに付された識別番号である。このように格子点データ213に文字列データを直接格納するのではなく、文字データIDを格納することにより、複数の格子点で共通の文字列を用いる場合でも、格子点データ213内に文字列データを重複して格納する必要がなくなり、データ容量を抑制することができる利点がある。
表示時の文字サイズは、文字に対応する地物と、格子点との距離に応じて設定されている。格子点から地物までの距離が遠いほど、文字サイズが小さくなるように設定した。文字サイズは、オペレータが手動で設定するものとしてもよいが、本実施例では、データ生成装置100が自動的に設定するものとした。即ち、格子点と表示すべき文字列が指定されると、データ生成装置100は、その文字列に対応する地物と格子点との距離を算出し、算出結果に基づいて文字サイズを決定するのである。距離と文字サイズとの関係は、予めテーブル、関数などで規定しておけばよい。
【0030】
C.案内表示処理:
図7は、案内情報表示処理のフローチャートである。3次元地図や実風景などの3次元画像中に、地物の名称などの文字を重ねて表示する処理である。この処理は、主として端末300の表示制御部306が行うものである。
【0031】
処理を開始すると、端末300は、現在位置および方位を入力する(ステップS10)。現在位置は、GPSによる検出結果を用いることができ、方位は、電子コンパスによって取得することができる。これらの情報をユーザが手動で入力可能としてもよい。
【0032】
次に、端末300は、モードに応じて(ステップS11)、3次元画像を表示する。ARモード、即ち実風景中に文字を重ねて表示するモードにおいては、端末300は、カメラを利用して画像を取り込む(ステップS12)。一方、CGモード、即ち3次元地図中に文字を重ねて表示するモードにおいては、端末300は、3Dポリゴンデータに基づき、レンダリング画像を生成する(ステップS13)。
これらの処理によって3次元画像を描画するためのデータが用意される。
【0033】
本実施例では、格子点データに基づいて、3次元画像中に文字を表示する。先に説明した通り、格子点データは、複数の格子点ごとに用意されているが、現在位置が必ずしも、この格子点と一致しているとは限らない。そこで、端末300は、格子点データを読み込むため、現在位置に近い格子点を特定する(ステップS14)。
図中に格子点の特定方法を例示した。この例では、現在位置PPの周囲に格子点P1〜P4が存在している。かかる状況で、格子点は2つの方法により特定することができる。
第1の方法は、現在位置PPからの距離が最も近い格子点を選択する方法である。図の例では、最短距離d1にある格子点P1が選択されることになる。
第2の方法は、視線方向に最も近い格子点を選択する方法である。この方法では、ステップS10で入力された方位(図中の矢印dr)と、現在位置PPと各格子点とを結ぶ線分とのなす角θが最も小さくなる格子点を選択することになる。図の例では、角θが最小となる格子点P2が選択される。格子点は、上述の第1、第2のいずれの方法によって選択してもよい。
【0034】
端末300は、こうして格子点が特定できると、その格子点に対応する格子点データを読み込み、文字レイヤを描画する(ステップS15)。即ち、格子点データに格納された文字データIDに対応する文字列を、文字データ212から読み出し、格子点データで指定された文字位置、文字サイズで描画するのである。文字は、
図5に示したように、文字レイヤに2次元的に描画されることになる。文字レイヤを用いることにより、文字については、レンダリング等の対象から外し、2次元の描画処理で足りるため、軽い処理負荷で描画可能となる利点がある。
【0035】
以上の処理を終えると、端末300は、ステップS11〜S13で得られた3次元画像が描かれた画像レイヤに、ステップS14,S15で得られた文字レイヤを重畳して表示する(ステップS16)。こうすることにより、3次元画像中に文字を重畳した案内情報表示を実現することができる。
また、案内情報表示処理を、現在位置および視線方向の変化に応じて、繰り返し実行することにより、リアルタイムで適切な情報を提示することが可能となる。
【0036】
図8は、3次元画像および情報の表示例を示す説明図である。
図8(a)は、CGモードにおける表示例を示している。この例では、3次元地図が表示され、3次元地図中の各地物の名称を表す文字列が、地物に重畳して表示されている。また、地物の名称は、地物が遠くなるほど、小さく表示される。
図8(b)は、ARモードにおける表示例を示している。この例では、ユーザが街中で端末300をかざし、実風景を撮像すると、その画像内に、地物の名称を表す文字列が、地物に重畳して表示される。
本実施例の3次元画像表示システムによれば、格子点データを用いることにより、3次元画像内に表示すべき文字列およびその表示位置を容易に設定することができ、軽い処理負荷で適切な位置に文字を表示させることが可能となる。
図8の例では、文字列として地物の名称を表示する例を示したが、3次元画像内には、この他、地名、行き先案内など種々の文字を表示可能である。また、通行規制を表す標識などの記号や、店舗の広告等の画像を表示させてもよい。いずれの場合も、格子点データを用いることで、適切な表示位置に容易に表示させることが可能となる。
【実施例2】
【0037】
D.装置構成:
実施例2では、ユーザによって指定された出発地から目的地に至る経路を案内するための経路案内装置としての構成を説明する。
図9は、実施例2における3次元画像表示システムの構成を示す説明図である。データ生成装置は省略し、サーバ200Aおよび端末300の構成のみを示した。
実施例2では、サーバ200において、ネットワークデータ214および経路探索部220が備えられている。
ネットワークデータ214は、道路をノードおよびリンクで表した経路探索用のデータである。経路探索部220は、このネットワークデータ214を参照して、指定された出発地から目的地までの経路探索を行う。得られた経路は、ネットワークNE2を介して端末300に送信され、ユーザに対する経路案内に利用される。
その他の構成は、実施例1と同様である。
【0038】
E.経路案内処理:
図10は、経路案内処理のフローチャートである。左側に端末300での処理を示し、右側にサーバ200Aでの処理を示した。
まず、ユーザが経路を探索すべき出発地、目的地を入力する(ステップS20)。出発地は、ユーザが指定してもよいし、GPSなどで検出された現在位置を用いても良い。指定された出発地、目的地の情報は、サーバ200Aに送信される。
サーバ200Aでは、経路探索部220(
図9参照)が、経路探索処理を実行する。
つまり、ステップS20で指定された出発地、目的地を受信し(ステップS30)、出発地から目的地に至る経路をダイクストラ法など周知の手法によって探索する(ステップS31)。そして、探索結果を端末300に送信する(ステップS32)。
【0039】
端末300では、この経路探索の結果を受信し(ステップS21)、格子点の絞り込みを行う(ステップS22)。実施例2では、経路探索により、ユーザが通行する経路が特定されるため、格子点データを予め経路付近の領域に存在するものに絞り込んでおけば、現在位置に応じた格子点データを特定するための処理負荷が軽減されるからである。一旦、フローチャートを離れ、この絞り込みの方法について説明する。
【0040】
図11は、格子点絞り込みの処理例を示す説明図である。
図11(a)は、道路ポリゴンに基づいて絞り込む例を示した。経路探索によって、ノードN1〜N5およびリンクL1〜L4で表される経路が得られたとする。これに対応する道路ポリゴンが、図中のハッチングを付した部分である。かかる場合には、経路に対応する道路ポリゴン上の領域、即ち、
図11(a)中のハッチングを付した領域に存在する格子点を、検索対象とすることができる。
図11(b)は、ネットワークデータに基づいて絞り込む例を示した。
図11(a)と同様に、ノードN1〜N5およびリンクL1〜L4で表される経路が得られたとする。
図11(b)の方法では、これらのリンクL1〜L4に対して、所定幅Wbの領域(図中のハッチングを付した領域)を設定し、この領域内に存在する格子点を、検索対象とする。所定幅Wbは、経路の全般にわたって一定である必要はなく、経路に対応する道路幅などに応じて変化させてもよい。また、所定幅Wbは、道路よりも広幅としてもよいし、狭幅としてもよい。
図11(c)は、経路の進行方向を考慮した絞り込みの例を示した。ここでは、得られた経路のうちノードN1〜N3およびリンクL1〜L2の部分のみを示している。出発地から目的地に向かう方向は、図中に矢印で示すように、リンクL1→L2の方向であるとする。道路の中央にリンクL1、L2が設定されているとすると、この経路を車両で通過する場合には、リンクよりも左側の領域を通行することになる。
図11(c)では、かかる点を考慮して、リンクL1、L2の左側に所定幅Wcの領域(図中のハッチングを付した領域)を設定し、この領域内に存在する格子点を、検索対象とする。所定幅Wcは、経路の全般にわたって一定である必要はなく、経路に対応する道路幅などに応じて変化させてもよい。また、所定幅Wcは、道路の半幅よりも広幅としてもよいし、狭幅としてもよい。
図11(c)では、リンクL1、L2の左側のみに領域を設ける例を示したが、右側に所定幅Wcよりも狭幅の領域を設けても良い。
図11(c)では、車両での通行を想定しているため左側に領域を設けているが、歩行者を想定する場合は右側に設けることもできる。
図11(a)〜
図11(c)に示した各方法は、いずれか一つのみを使用してもよいし、道路の幅、リンクが1条・2条のいずれで設定されているか、道路内に存在する格子点の密度、ユーザからの指定などに応じて、いずれかを使い分けても良い。
【0041】
図10に戻り、経路案内処理について説明する。
端末300は、ステップS22において、
図11に示した方法で格子点の絞り込みを行うと、案内情報表示処理を実行する(ステップS23)。
案内情報表示処理の内容は、実施例1(
図7)と同様である。ただし、現在位置に近い格子点の特定(
図7のステップS14)は、
図11で絞り込んだ結果を対象として行われる。こうすることによって、検索対象が限定されるため、格子点を特定するための処理負荷を軽減することができる。
また、実施例2においては、現在位置の特定(
図7のステップS10)に経路探索結果を反映することもできる。つまり、GPS等で検出された現在位置をそのまま利用するのではなく、この検出結果に対して、経路探索で得られた経路上の最も近接する地点を特定するのである。実施例2においては、ユーザは、経路探索で得られた経路上を移動している可能性が高いため、このように特定することによって、GPS等での検出誤差を抑制し、精度良く情報表示を行うことができる。
ただし、ユーザが経路から意図的にまたは誤って外れる可能性もあるため、上述の探索結果を用いての現在位置の特定は、GPS等で検出された現在位置と経路探索で得られた経路との距離が所定値以内の場合に限って適用する方法をとってもよい。
【0042】
以上、本発明の実施例について説明した。3次元画像表示システムは、必ずしも上述した実施例の全ての機能を備えている必要はなく、一部のみを実現するようにしてもよい。また、上述した内容に追加の機能を設けてもよい。
実施例2では、経路探索結果に基づいて格子点を絞り込む例を示したが、例えば、実施例1において、現在位置または直近の過去の位置に基づいて、所定距離内の領域に格子点を絞り込んだ上で検索を行うようにしてもよい。
また、実施例2では、GPS等の検出結果と経路探索結果とを参照して現在位置を特定する例を示したが、実施例1においても、GPS等の検出結果と、地図上の道路ポリゴンに基づいて現在位置を特定するようにしてもよい。例えば、GPS等の検出結果に直近の道路ポリゴンの上の地点を現在位置とするのである。
本発明は上述の実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、実施例においてハードウェア的に構成されている部分は、ソフトウェア的に構成することもでき、その逆も可能である。