以下、情報システム等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、カメラ(ビデオカメラやデジタルスチルカメラ等を含む)で撮影している実空間内へ、ナビゲーション情報を出力する情報システムについて説明する。
また、本実施の形態において、ユーザから見えているオブジェクトを利用して、ナビゲーションを行う情報システムについて説明する。
また、本実施の形態において、カメラで撮影しているオブジェクトを決定するアルゴリズムについて、当該決定のための処理の終了条件が種々あり得る。
図1は、本実施の形態における情報システム1の概念図である。情報システム1は、サーバ装置11、1以上の端末装置12を具備する。端末装置12は、車載用にナビゲーション端末でも良いし、いわゆる携帯端末等でも良い。また、端末装置12は、カメラ機能を有し、外部の風景、建物などを撮影している際に、撮影している映像内のオブジェクト(建物など)を用いたナビゲーション情報を出力できる。また、サーバ装置11および端末装置12は、通常、通信可能である。また、情報システム1において、2以上の端末装置12を具備していても良い。
図2は、本実施の形態における情報システム1のブロック図である。図3は、情報システム1を構成する端末装置12のブロック図である。
サーバ装置11は、地図情報格納部111、オブジェクト情報格納部112、サーバ受信部113、経路探索部114、距離算出部115、撮影オブジェクト決定部116、ナビゲーション情報取得部117、およびサーバ送信部118を具備する。
端末装置12は、目的地点情報格納部120、受付部121、カメラ部122、端末情報取得部123、送信部124、受信部125、および出力部126を具備する。なお、端末装置12は、地図情報を格納している地図情報記憶部(図示しない)を保持していても良い。
端末情報取得部123は、位置情報取得手段1231、方向情報取得手段1232を具備する。また、出力部126は、カメラ映像出力手段1261、経路情報出力手段1262、およびナビゲーション情報出力手段1263を具備する。
サーバ装置11を構成する地図情報格納部111は、地図情報を格納し得る。地図情報とは、地図についての情報である。地図情報は、例えば、地図の図柄を示す地図図柄情報と、用語情報とを有する。用語情報は、用語と当該用語の地図上での位置を示す位置情報とを有する。地図図柄情報は、例えば、地図を構成するビットマップまたはグラフデータなどである。用語とは、地図上に表記されている地名や、建物や名勝や場所の名称などの文字列を有する。用語とは、後述するオブジェクト識別子でも良い。また、位置情報は、地図上の経度、緯度を有する情報や、二次元平面上のX,Y座標値などである。また、地図情報は、ISOのkiwi地図データフォーマットであっても良い。また、地図情報は、好ましくは、縮尺ごとに地図図柄情報と、用語情報を有する。地図情報格納部111は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。地図情報格納部111に地図情報が記憶される過程は問わない。例えば、記録媒体を介して地図情報が地図情報格納部111で記憶されるようになってもよく、通信回線等を介して送信された地図情報が地図情報格納部111で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された地図情報が地図情報格納部111で記憶されるようになってもよい。
オブジェクト情報格納部112は、1以上のオブジェクト情報を格納し得る。オブジェクト情報は、オブジェクト識別子と、オブジェクトが存在する領域を示す領域情報とを有する情報である。オブジェクトとは、通常、地図上または地理上に現れるオブジェクトである地理オブジェクトである。オブジェクトは、例えば、店舗、建物、山、川、名勝、公園などである。オブジェクトは、例えば、ビルの中の店舗や会社などでも良い。オブジェクトは、地図上または地理上に現れるものであれば、内容は問わない。オブジェクト識別子とはオブジェクトを識別する情報であり、例えば、オブジェクトの名称、オブジェクトを識別するID、オブジェクトについての情報が格納されているウェブページのURL、URIなどである。領域情報とは、通常、二次元の領域の情報である。ただし、三次元の領域の情報でも、一次元の情報(点の情報)でも良い。つまり、領域情報はオブジェクトの位置(点)を特定する位置情報(X,Y)でも良い。この(X,Y)は、例えば、(緯度,経度)であり、例えば、オブジェクトの領域の重心点を示す情報である。領域が矩形であるとする場合、領域情報は、例えば、矩形の左上点、右下点の位置情報(経度,緯度)の情報である。さらに、領域情報は、例えば、三次元のオブジェクトの立体図形(例えば、6面体)の頂点を構成する点(8点)の集合や、立体図形(例えば、6面体)の高さを有する4点の集合などである。領域情報が三次元の領域の情報である場合、通常、領域情報は、地図上での二次元の領域を示す二次元領域情報とオブジェクトの高さを示す高さ情報を有する。
オブジェクト情報格納部112は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。オブジェクト情報格納部112にオブジェクト情報が記憶される過程は問わない。
サーバ受信部113は、端末装置12から、端末情報、または目的地点を示す目的地点情報を受信する。サーバ受信部113は、通常、目的地点情報を一度受信した場合、当分の間、目的地点情報を受信しない。また、サーバ受信部113は、例えば、定期的に端末情報(例えば、1秒ごと)に受信する。ここで、端末情報は、端末装置12の位置を示す位置情報と端末装置12が向いている方向を示す方向情報とを有する情報である。また、端末情報は、視野角を有することは好適である。位置情報とは、通常、(緯度,経度)の情報であるが、空間内の位置を示す情報でも良い。空間内の位置を示す情報は、例えば、(緯度,経度、高度)である。方向情報は、東西南北などの方位の情報を含んでも良い。また、方向情報は、端末の向き(上向き、下向きなど)を含んでも良い。方向情報は、例えば、56.2°(北を0°、東を90°とする方位)や、南南西などである。方向情報は、例えば、高さ方向の角度を含んでも良い。また、方向情報は、例えば、(Yaw,Pitch,Roll)などでも良い。(Yaw,Pitch,Roll)の「Yaw」は垂直軸に対する角度や先端の左右の揺れの度合い(長さなど)、「Pitch」は横軸に対する角度や先端の上下の揺れの度合い、「Roll」は縦軸に対する角度や端末装置12全体の左右の揺れの度合いである。また、目的地点情報は、経路探索のための目的地を特定する情報であり、例えば、(経度,緯度)やオブジェクト識別子等である。また、位置情報とは、位置を示す情報であり、例えば、(経度,緯度)や領域を特定する領域IDなどである。
サーバ受信部113は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
経路探索部114は、端末情報が有する位置情報と、目的地点情報とを用いて、地図情報格納部111の地図情報を経路探索し、位置情報が示す現在地点から目的地点情報が示す目的地点までの経路を探索し、経路に関する情報である経路情報を取得する。経路情報は、例えば、1以上の経路の情報(線分の情報)の集合である。ただし、経路情報のデータ構造は問わない。経路探索部114の経路探索方法は、問わない。経路探索部114は公知技術であるので詳細な説明を省略する。
経路探索部114は、通常、MPUやメモリ等から実現され得る。経路探索部114の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
距離算出部115は、オブジェクト情報格納部112の1以上のオブジェクト情報に対応するオブジェクトと端末装置12との距離を、各オブジェクトのオブジェクト情報と端末情報が有する位置情報とから、オブジェクトごとに算出する。ここで、距離とは、オブジェクトの領域の重心と端末装置12の位置情報が示す位置との距離、オブジェクトの領域のいずれかの点と端末装置12の位置情報が示す位置との距離、端末装置12の位置情報が示す位置に最も近い領域内の点との距離などでも良い。つまり、距離の算出基準は種々あり得る。
距離算出部115は、通常、MPUやメモリ等から実現され得る。距離算出部115の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
撮影オブジェクト決定部116は、端末情報が有する位置情報と、端末情報が有する方向情報と、視野角とを、オブジェクト情報格納部112の各オブジェクト情報の領域情報に適用し、端末装置12が撮影している1以上のオブジェクトを決定する。視野角とは、カメラ部122が撮影可能な角度であり、平面上の角度でも良いし、高さ方向を含めた立体的な角度でも良い。立体的な角度とは、例えば、平面上の角度(θ1)と高さ方向の角度(θ2)とにより得られる。また、視野角は、撮影オブジェクト決定部116が予め格納していても良いし、端末情報に含まれていても良い。ここで、「オブジェクトを決定する」とは、オブジェクト識別子を取得することでも良いし、オブジェクト情報の全部または一部を取得することでも良いし、オブジェクト情報を管理しているテーブルのレコードIDを取得すること等でも良い。つまり、「オブジェクトを決定する」とは、オブジェクトを特定する情報を取得することであれば良い。
撮影オブジェクト決定部116は、端末装置12からの距離が近い順にオブジェクトを検査し、端末装置12が撮影しているとして先に決定したオブジェクトの撮影により不可視となる領域の情報を不可視領域として登録していき、可視領域がなくなった場合に、オブジェクトが端末装置12に撮影されているか否かの検査を終了することは好適である。
また、撮影オブジェクト決定部116は、端末情報が有する位置情報および方向情報と、予め格納されているまたは端末情報が有する視野角とを用いて、三次元空間上での撮影領域を取得し、撮影領域を、オブジェクト情報格納部112の各オブジェクト情報が有する領域情報に対して適用し、端末装置12が撮影している1以上のオブジェクトを決定し、端末装置12からの距離が近い順にオブジェクトを検査し、端末装置12が撮影しているとして先に決定したオブジェクトの撮影により不可視となる領域の情報を不可視領域として登録していき、可視領域がなくなった場合に、オブジェクトが端末装置12に撮影されているか否かの検査を終了することは好適である。
また、撮影オブジェクト決定部116は、端末装置12からの距離が近い順にオブジェクトに対応するオブジェクト情報をソートし、端末装置12からの距離が近い順にオブジェクトを検査し、端末装置12が撮影している1以上のオブジェクトを決定することは好適である。
また、撮影オブジェクト決定部116は、端末装置12からの距離が近い順にオブジェクトを検査し、端末装置12が撮影しているとして先に決定したオブジェクトの撮影により不可視となる領域の情報を不可視領域として登録していき、可視領域のオブジェクトであり、かつ、端末装置12からの距離が閾値以内のオブジェクトのみを検査し、端末装置12が撮影している1以上のオブジェクトを決定することは好適である。
また、撮影オブジェクト決定部116は、端末装置12からの距離が近い順にオブジェクトを検査し、端末装置12が撮影しているとして決定したオブジェクトの数が閾値になった場合に、検査を終了することは好適である。
さらに、撮影オブジェクト決定部116は、例えば、カメラ部122が撮影した映像の中で、端末装置12から最も距離が近い位置に存在するオブジェクトの撮影オブジェクト、またはカメラ部122が撮影した映像の中で最も中央寄りに位置するオブジェクトの撮影オブジェクト、またはカメラ部122が撮影した映像の中で最も大きい領域(平面上または立体上)を有するオブジェクトの撮影オブジェクトを決定しても良い。
撮影オブジェクト決定部116は、端末情報が有する位置情報および方向情報と、予め格納されているまたは端末情報が有する視野角とを用いて、三次元空間上での撮影領域を取得し、撮影領域を、オブジェクト情報格納部112の各オブジェクト情報が有する領域情報に対して適用し、端末装置12が撮影している1以上のオブジェクトを決定しても良い。
撮影オブジェクト決定部116は、さらに具体的には、例えば、後述する図5のフローチャートに示すようなアルゴリズムで、端末装置12が撮影している1以上のオブジェクトを決定することは好適である。
撮影オブジェクト決定部116は、通常、MPUやメモリ等から実現され得る。撮影オブジェクト決定部116の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
ナビゲーション情報取得部117は、撮影オブジェクト決定部116が決定した1以上のオブジェクトのうちのいずれかのオブジェクトが、経路情報が示す経路に含まれる場合、オブジェクトを用いたナビゲーション情報を取得する。ナビゲーション情報とは、経路案内をするための情報である。ナビゲーション情報とは、文字列でも音声でも画像でも良い。ナビゲーション情報のデータ形式は問わない。
ナビゲーション情報取得部117は、例えば、ナビゲーション情報取得条件を1以上格納している。また、ナビゲーション情報取得部117は、例えば、ナビゲーション情報取得条件と雛形情報との組の情報を1以上格納していても良い。ナビゲーション情報取得条件は、ナビゲーション情報を取得するための条件を示す情報である。ナビゲーション情報取得条件が示す意味の例は、「撮影オブジェクトが、端末装置12から最も近い交差点のいずれかの角に存在すること」「撮影オブジェクトが、経路情報から判断して、次に左折または右折を行う交差点のいずれかの角に存在すること」「撮影オブジェクトが、現在、端末装置12が存在する(走行している)道路の走行側(日本では、左手側)に存在すること」などである。そして、ナビゲーション情報取得条件は、例えば、上記の判断を行う関数名、メソッド名、メッセージ名などである。また、ナビゲーション情報取得条件は、例えば、上記の判断を行う関数自体、メソッド自体でも良い。また、雛形情報とは、ナビゲーション情報を構成する元になる情報である。そして、ナビゲーション情報取得部117は、撮影オブジェクトの位置情報と経路情報とを、ナビゲーション情報取得条件に対して与え、当該撮影オブジェクトの位置情報と経路情報が、ナビゲーション情報取得条件に合致するか否かを判断する。そして、合致する場合、ナビゲーション情報取得部117は、ナビゲーション情報を取得する。つまり、例えば、合致する場合、ナビゲーション情報取得部117は、ナビゲーション情報取得条件に対応する雛形情報に対して、撮影オブジェクトの情報(オブジェクト識別子や、撮影オブジェクトと端末装置12との位置関係の情報等)を代入し、ナビゲーション情報を構成する。
さらに具体的には、例えば、ナビゲーション情報取得部117は、撮影オブジェクト決定部116が決定した1以上のオブジェクトのうちのいずれかのオブジェクトが、経路情報が示す経路の右折または左折の角または角より閾値以内の距離に含まれる場合、当該オブジェクトのオブジェクト識別子を用いたナビゲーション情報であり、右折または左折を案内するナビゲーション情報を構成する。例えば、ナビゲーション情報取得部117は、一のオブジェクトの位置情報と、端末情報が有する位置情報とを用いて、一のオブジェクトがユーザ(端末装置12)から左手に見えるか、右手に見えるかを判断し、当該一のオブジェクトが左手又は右手に見えることを含むナビゲーション情報(例えば、「左手前方に見えるオブジェクトXの角を左折してください。」)であることは好適である。さらに具体的には、例えば、ナビゲーション情報取得部117は、経路探索部114が取得した経路情報が示す線分の上または線分と所定距離以内(例えば、2m以内)に存在するオブジェクトであり、経路情報が示す経路の角のオブジェクトを、オブジェクトの位置情報から決定し、当該オブジェクトの名称(オブジェクト識別子でも良い)を取得する。そして、ナビゲーション情報取得部117は、予め格納している文「"$オブジェクト相対位置"手の前方に見える"$オブジェクト識別子"の角を"$曲がる方向"折して下さい。」を読み出す。そして、ナビゲーション情報取得部117は、端末情報が有する位置情報、およびオブジェクトの位置情報とから、オブジェクトが端末装置12の左側にあるか、右側にあるかを決定する(変数"$オブジェクト相対位置"に値を代入する)。また、ナビゲーション情報取得部117は、変数"$オブジェクト識別子"にオブジェクト識別子を代入する。また、ナビゲーション情報取得部117は、経路情報とオブジェクトの位置情報とから、オブジェクトの角を右折するか左折するかを決定する(変数"$曲がる方向"に値を代入する)。そして、ナビゲーション情報取得部117は、読み出した雛形に、算出した情報(「右」または「左」)や取得したオブジェクト識別子を代入し、出力する文を構成する。この文がナビゲーション情報の例である。
ナビゲーション情報取得部117は、通常、MPUやメモリ等から実現され得る。ナビゲーション情報取得部117の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
サーバ送信部118は、経路探索部114が取得した経路情報とナビゲーション情報取得部117が取得したナビゲーション情報とを、端末装置12に送信する。サーバ送信部118は、経路情報とナビゲーション情報とを、異なるタイミングで送信しても良いし、同時に送信しても良い。また、サーバ送信部118は、撮影オブジェクトに対応する情報である撮影オブジェクト情報を端末装置12に送信しても良い。撮影オブジェクト情報とは、例えば、撮影オブジェクトの位置情報、撮影オブジェクト情報のオブジェクト識別子、撮影オブジェクトの広告情報やURL等である。サーバ送信部118は、地図情報も端末装置12に送信しても良い。
サーバ送信部118は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
端末装置12を構成する目的地点情報格納部120は、目的地点情報を格納し得る。目的地点情報は、通常、ユーザが設定した情報である。つまり、目的地点情報は、通常、受付部121が受け付け、目的地点情報格納部120に蓄積した情報である。また、目的地点情報は、予め目的地点情報格納部120に格納されていても良い。
目的地点情報格納部120は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
受付部121は、ユーザから、指示やデータ等の入力を受け付ける。各種の指示とは、例えば、端末装置12の起動指示、カメラ部122に対する各種の指示などである。データとは、例えば、目的地点情報である。また、端末装置12が車載用のナビゲーション端末の場合、起動指示はエンジンの起動である。また、端末装置12が車載用のナビゲーション端末の場合、目的地点情報の入力は、ナビゲーション端末の既存機能で実現可能である。また、指示やデータ等の入力手段は、キーボードやマウスやテンキーやメニュー画面によるもの等、何でも良い。受付部121は、キーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
入力手段は、タッチパネルやキーボードやマウスやメニュー画面によるもの等、何でも良い。受付部121は、タッチパネルやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
カメラ部122は、映像を取得する。カメラ部122は、いわゆるカメラである。カメラ部122は、通常、現在、ファインダーに映っている映像を取得する。カメラ部122は、例えば、CCDカメラにより実現され得る。
端末情報取得部123は、端末装置12の位置を示す位置情報と、端末装置12が向いている方向を示す方向情報とを有する端末情報を取得する。端末情報取得部123は、位置情報と方向情報と視野角を含む端末情報を取得しても良い。かかる場合、端末情報取得部123は、視野角を予め格納している。なお、視野角とは、視野角の情報と同意義である。視野角は、二次元の角度でも三次元の角度でも良い。なお、端末装置12(カメラ部122)の位置、方向、視野角が分かれば、撮影できる領域が分かる。つまり、端末情報は、カメラ部122が撮影する領域を特定する情報である。撮影する領域は、三次元の領域であることが好適であるが、二次元の領域でも良い。
端末情報取得部123は、通常、MPUやメモリ等から実現され得る。端末情報取得部123の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
端末情報取得部123を構成する位置情報取得手段1231は、端末装置12の位置を示す位置情報を取得する。位置情報取得手段1231は、例えば、GPS受信機により構成される。また、位置情報取得手段1231は、例えば、無線電波の受信手段と、3つ以上の基地局から受信した3つ以上の電波の強度から位置情報を取得する処理手段(例えば、MPUやメモリ等で構成される手段)とから構成されても良い。位置情報取得手段1231が位置情報を取得する方法は問わない。また、位置情報は、二次元上の位置でも良いし、三次元空間における位置でも良い。
方向情報取得手段1232は、端末装置12が向いている方向を示す方向情報を取得する。方向情報は、2次元上の向きを示す情報でも良いし、3次元上の方向(上下方向も含む)を示す情報でも良い。方向情報取得手段1232は、例えば、コンパスで実現される。また、方向情報取得手段1232は、例えば、コンパスとジャイロで実現される。
送信部124は、目的地点情報と端末情報取得部123が取得した端末情報とをサーバ装置11に送信する。目的地点情報と端末情報を送信するタイミングは、通常、異なる。
送信部124は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
受信部125は、経路情報とナビゲーション情報とをサーバ装置11から受信する。受信部125は、撮影オブジェクト情報をサーバ装置11から受信しても良い。受信部125は、地図情報もサーバ装置11から受信しても良い
受信部125は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
出力部126は、カメラ部122が取得した映像を出力するカメラ映像出力手段1261を具備する。また、出力部126は、受信部125が受信した経路情報を出力する。さらに、出力部126は、受信部125が受信したナビゲーション情報を出力する。また、出力部126は、受信部125が受信したナビゲーション情報と、当該ナビゲーション情報を構成する撮影オブジェクト識別子に対応する撮影オブジェクトの撮影オブジェクト情報とを同時に出力しても良い。ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、音声出力、プリンタへの印刷、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
出力部126は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。出力部126は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
カメラ映像出力手段1261は、カメラ部122が取得した映像を出力する。
経路情報出力手段1262は、受信部125が受信した経路情報を出力する。経路情報出力手段1262は、通常、カメラ映像出力手段1261が出力している映像上に経路情報を出力するが、映像とは別のウィンドウに出力しても良い。ただし、経路情報と映像とは対応付けられていることが好適である。経路情報は、例えば、カメラ映像出力手段1261が出力している映像上(画面上)の座標値(X,Y)により構成される線分の集合である。そして、経路情報出力手段1262は、線分の集合から経路を示す線を映像上に重ねて出力する。なお、経路情報は、例えば、経路を示す情報の集合((緯度,経度)の集合)であっても良い。かかる場合、端末装置12の位置情報(緯度1,経度1)と端末装置12の画面上の位置(X1,Y1)、および画面の縮尺(視野角と画面サイズでも良い)とを用いて、経路情報出力手段1262が、経路情報が有する(緯度,経度)を画面上の位置(X,Y)に変換する。そして、経路情報出力手段1262は、変換した画面上の位置(X,Y)を用いて、経路を示す線を映像上に重ねて出力する。かかる場合、経路情報出力手段1262は、画面の縮尺を予め保持していても良い。また、経路情報が映像上(画面上)の座標値(X,Y)により構成される線分の集合である場合、サーバ装置11が(緯度,経度)を画面上の位置(X,Y)に変換する。なお、経路情報出力手段1262が(緯度,経度)を画面上の位置(X,Y)に変換する技術は、既存のナビゲーション端末の公知技術である。さらに、経路情報出力手段1262は、カメラ映像出力手段1261が出力している映像上、および地図上に経路情報を出力することは好適である。かかる場合の表示例は、後述する図16である。なお、地図上に経路情報を出力する技術は既存のナビゲーション端末の公知技術である。また、かかる場合、地図情報は、サーバ装置11から受信されても良いし、端末装置12の地図情報記憶部が予め保持していても良い。
経路情報出力手段1262は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。経路情報出力手段1262は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
ナビゲーション情報出力手段1263は、受信部125が受信したナビゲーション情報を出力する。ナビゲーション情報出力手段1263は、音声によりナビゲーション情報を出力することは好適であるが、画面上にナビゲーション情報を表示しても良い。ナビゲーション情報を画面上に表示する場合、ナビゲーション情報出力手段1263は、通常、カメラ映像出力手段1261が出力している映像上にナビゲーション情報を出力するが、映像とは別のウィンドウに出力しても良い。また、ナビゲーション情報出力手段1263は、カメラ映像出力手段1261が出力している映像上、および地図上にナビゲーション情報を表示しても良い。
ナビゲーション情報出力手段1263は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。ナビゲーション情報出力手段1263は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報システム1の動作について説明する。まず、サーバ装置11の動作について、図4のフローチャートを用いて説明する。
(ステップS401)サーバ受信部113は、端末装置12から目的地点情報を受信したか否かを判断する。目的地点情報を受信すればステップS402に行き、目的地点情報を受信しなければステップS403に行く。
(ステップS402)経路探索部114は、ステップS401で受信された目的地点情報を、図示しないバッファに一時蓄積する。ステップS401に戻る。
(ステップS403)サーバ受信部113は、端末装置12から端末情報を受信したか否かを判断する。端末情報を受信すればステップS404に行き、端末情報を受信しなければステップS401に戻る。
(ステップS404)撮影オブジェクト決定部116は、ステップS403で受信された端末情報を用いて、当該端末情報が有する位置情報および方向情報等を、オブジェクト情報格納部112の各オブジェクト情報の領域情報に適用し、端末装置12が撮影している(端末装置12のディスプレイに映っている)1以上のオブジェクトを決定する。かかる処理を撮影オブジェクト決定処理という。なお、撮影オブジェクト決定部116は、予め格納されている視野角をも用いて、端末装置12が撮影している1以上のオブジェクトを決定することは好適である。なお、端末装置12が撮影しているオブジェクトを撮影オブジェクトとも言う。撮影オブジェクト決定処理について、図5のフローチャートを用いて説明する。
(ステップS405)経路探索部114は、図示しないバッファに目的地点情報が存在するか否かを判断する。目的地点情報が存在すればステップS406に行き、存在しなければステップS411に行く。
(ステップS406)経路探索部114は、図示しないバッファから目的地点情報を読み出す。そして、経路探索部114は、ステップS403で受信された端末情報が有する位置情報を始点、目的地点情報を終点として、地図情報格納部111の地図情報を用いて、経路探索する。そして、経路探索部114は、始点から終点までの経路情報を取得する。なお、経路探索技術は公知技術である。
(ステップS407)ナビゲーション情報取得部117は、ステップS406で取得された経路情報およびステップS404で決定された撮影オブジェクトの情報を用いて、ナビゲーション情報を取得する。この処理をナビゲーション情報取得処理という。ナビゲーション情報取得処理について、図9のフローチャートを用いて説明する。
(ステップS408)サーバ送信部118は、ステップS406で取得された経路情報を端末装置12に送信する。
(ステップS409)サーバ送信部118は、ステップS407でナビゲーション情報が取得されたか否かを判断する。ナビゲーション情報が取得されればステップS410に行き、取得されなければステップS411に行く。
(ステップS410)サーバ送信部118は、ステップS407で取得されたナビゲーション情報を端末装置12に送信する。
(ステップS411)撮影オブジェクト決定部116は、ステップS404で決定された撮影オブジェクトの情報を用いて、送信する撮影オブジェクト情報を取得する。なお、ここで、撮影オブジェクト決定部116は、ステップS404で決定されたすべての撮影オブジェクトの情報を撮影オブジェクト情報として送信しても良い。また、撮影オブジェクト決定部116は、ステップS404で決定されたすべての撮影オブジェクトのうち、端末装置12からの距離が閾値以内の撮影オブジェクトの情報を撮影オブジェクト情報として送信しても良い。また、撮影オブジェクト決定部116は、ステップS404で決定されたすべての撮影オブジェクトのうち、端末装置12から最も距離が近い撮影オブジェクトの情報を撮影オブジェクト情報として送信しても良い。さらに、撮影オブジェクト決定部116は、ステップS404で決定されたすべての撮影オブジェクトのうち、端末装置12からの距離が閾値以内であり、閾値の数以内の撮影オブジェクトの情報を撮影オブジェクト情報として送信しても良い。なお、撮影オブジェクト決定部116は、通常、撮影オブジェクトの位置情報(緯度,経度)と、端末情報の位置情報(緯度,経度)、方向情報、および視野角とから、撮影オブジェクトの端末装置12の画面における座標情報(X,Y)を取得する。なお、撮影オブジェクト決定部116は、座標情報(X,Y)ではなく、画面内の相対位置(縦、横の各比の値)を取得しても良い。また、撮影オブジェクト情報は、撮影オブジェクトの位置情報(緯度,経度)を有しても良い。
(ステップS412)サーバ送信部118は、ステップS411で取得された撮影オブジェクト情報を端末装置12に送信する。ステップS401に戻る。
なお、図4のフローチャートにおいて、ステップS407とS408など、処理順序を問わないステップの処理順序を入れ替えても良いことは言うまでもない。かかることは、他のフローチャートにおいても同様である。
また、図4のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS404の撮影オブジェクト決定処理について、図5のフローチャートを用いて説明する。
(ステップS501)撮影オブジェクト決定部116は、ステップS403で受信された端末情報が有する位置情報を取得する。
(ステップS502)撮影オブジェクト決定部116は、ステップS403で受信された端末情報が有する方向情報と、視野角とを用いて、撮影されない角度を取得する。そして、撮影オブジェクト決定部116は、かかる角度(不可視領域の角度)を記録媒体に登録(記録)する。例えば、方向情報が90度(例えば、真東)であり、視野角が40度である場合、撮影される角度は「70度から110度」である。したがって、撮影オブジェクト決定部116は、「0<=不可視領域の角度<70」および「110<不可視領域の角度<=360」を登録する。なお、ここで、撮影オブジェクト決定部116は、撮影される角度(可視領域の角度)を取得し、登録しても良い。つまり、可視領域の角度の登録も、不可視領域の角度の登録と同意義である、とする。
(ステップS503)撮影オブジェクト決定部116は、ステップS501で取得した位置情報を用いて、端末装置12から近いオブジェクトの順に、オブジェクト情報格納部112のオブジェクト情報をソートする。かかる処理をオブジェクトソート処理という。オブジェクトソート処理について、図6のフローチャートを用いて説明する。
(ステップS504)撮影オブジェクト決定部116は、カウンタiに1を代入する。
(ステップS505)撮影オブジェクト決定部116は、ステップS503でソートされたオブジェクト情報の中に、i番目のオブジェクトが存在するか否かを判断する。i番目のオブジェクトが存在すればステップS506に行き、i番目のオブジェクトが存在しなければ上位処理にリターンする。
(ステップS506)撮影オブジェクト決定部116は、ソートされたオブジェクト情報の中から、i番目のオブジェクトのオブジェクト情報が有する領域情報を取得する。
(ステップS507)撮影オブジェクト決定部116は、ステップS501で取得した位置情報と、ステップS505で取得した領域情報とを用いて、i番目のオブジェクトが、撮影オブジェクト(端末装置12のディスプレイに映っている)か否かを判断する。かかる判断を、可視判断処理という。可視判断処理について、図7、図8のフローチャートを用いて説明する。
(ステップS508)撮影オブジェクト決定部116は、ステップS506における判断の結果、i番目のオブジェクトが撮影オブジェクトであればステップS509に行き、撮影オブジェクトでなければステップS510に行く。
(ステップS509)撮影オブジェクト決定部116は、少なくとも、i番目のオブジェクトのオブジェクト識別子を図示しない記憶媒体に格納する。なお、ここでは、撮影オブジェクトを決定することは、例えば、オブジェクト識別子を格納することである。
(ステップS510)撮影オブジェクト決定部116は、登録されている不可視領域、または可視領域から、可視領域が存在するか否かを判断する。可視領域が存在すればステップS511に行き、存在しなければ上位処理にリターンする。なお、かかる判断は、二次元平面において行われても良いし、三次元空間において行われても良い。
(ステップS511)撮影オブジェクト決定部116は、カウンタiを1、インクリメントする。ステップS505に戻る。
なお、図5のフローチャートにおいて、不可視領域の角度を登録したが、可視領域の角度を登録し、以後、かかる角度に入るオブジェクトのみを処理対象としても良い。
また、図5のフローチャートのステップS510において、撮影オブジェクト決定部116は、端末装置12からの距離が近い順(範囲や角度を区切った中のオブジェクトの集合の中での近い順でも良い)にオブジェクトを検査し、端末装置12が撮影しているとして先に決定したオブジェクトの撮影により不可視となる領域の情報を不可視領域として登録していき、可視領域がなくなった場合(すべてが不可視領域になった場合と同意義)に、オブジェクトが端末装置12に撮影されているか否かの検査を終了することを説明した。
また、具体的には、ステップS510の処理は、以下である。つまり、撮影オブジェクト決定部116は、端末装置12から近い順にオブジェクトを検査し、端末装置12が撮影しているとして先に決定したオブジェクトの撮影により不可視となる領域の情報(ここでは、通常、後述の最小角度(θ1)および最大角度(θ2))を不可視領域として登録し、次に検査するオブジェクトと端末装置12とにより不可視領域となる領域の情報を取得し、最小角度(θ3)および最大角度(θ4)により特定される領域のすべてが既に不可視領域として登録されているか否かを判断し、不可視領域として登録されていなければ次に検査するオブジェクトを端末装置12が撮影しているとして決定し、当該最小角度(θ3)および最大角度(θ4)により特定される領域を不可視領域として登録する処理を繰り返し、端末情報が有する視野角すべての領域が不可視領域となった場合に、オブジェクトの検査を終了することである。
さらに、図5のフローチャートにおいて、可視領域が存在しなくなった場合に、撮影されているオブジェクトの検知処理を終了した。しかし、閾値の数だけ、可視領域内のオブジェクトが見つかった場合、予め決められた条件(例えば、病院、レストランなどの特定のジャンルなど)に合致するオブジェクトが見つかった場合、端末装置12の距離から所定以内の距離にあるオブジェクトのみを検査対象とするなど、他の条件により、オブジェクトの検知処理を終了しても良い。
次に、ステップS502のオブジェクトソート処理について、図6のフローチャートを用いて説明する。
(ステップS601)距離算出部115は、カウンタiに1を代入する。
(ステップS602)距離算出部115は、オブジェクト情報格納部112に、i番目のオブジェクトが存在するか否かを判断する。i番目のオブジェクトが存在すればステップS603に行き、i番目のオブジェクトが存在しなければステップS607に行く。
(ステップS603)距離算出部115は、i番目のオブジェクトの位置情報を、オブジェクト情報格納部112から取得する。なお、i番目のオブジェクトの位置情報は、i番目のオブジェクトのオブジェクト情報に含まれる。
(ステップS604)距離算出部115は、端末情報が有する位置情報が示す地点と、ステップS603で取得した位置情報が示す地点との距離を算出する。
(ステップS605)距離算出部115は、ステップS604で取得した距離とi番目のオブジェクトのオブジェクト情報(またはそのうちの一部の情報)とを対にして、図示しない記録媒体に一時的に格納する。
(ステップS606)距離算出部115は、カウンタiを1、インクリメントする。ステップS602に戻る。
(ステップS607)撮影オブジェクト決定部116は、距離をキーとして、距離の近い(小さい)順に、オブジェクト情報をソートする。上位処理にリターンする。
次に、ステップS506の可視判断処理について、図7のフローチャートを用いて説明する。なお、ここでの可視判断処理は、第一の可視判断処理である。第一の可視判断処理は、オブジェクトの平面的な情報のみを用いて、オブジェクトが端末装置12のディスプレイに出力されているか否かを判断する処理である。
(ステップS701)撮影オブジェクト決定部116は、カウンタiに1を代入する。
(ステップS702)撮影オブジェクト決定部116は、判断対象となるオブジェクトの領域情報の中にi番目の点が存在するか否かを判断する。i番目の点が存在すればステップS703に行き、i番目の点が存在しなければステップS705に行く。なお、領域情報は、例えば、その外形を示す点から構成されるとする。外形を示す点とは、領域情報が示す領域が4角形であれば4点存在し、8角形であれば8点存在する。点とは、通常、(緯度,経度)または(x座標、y座標)などで示される。
(ステップS703)撮影オブジェクト決定部116は、i番目の点と位置情報(端末情報が有する位置情報)との角度(θ)を算出し、当該角度(θ)をバッファに一時記憶する。角度(θ)の基準は、例えば、真北である。ただし、基準は一定であれば良く、真北であるとは限らない。なお、上記の位置情報とは、端末装置12の位置を示す情報である。
(ステップS704)撮影オブジェクト決定部116は、カウンタiを1、インクリメントする。ステップS702に戻る。
(ステップS705)撮影オブジェクト決定部116は、ステップS703でバッファに一時格納された角度(θ)から、最小の角度(θ1)と最大角度(θ2)とを取得する。
(ステップS706)撮影オブジェクト決定部116は、ステップS705で取得した最小の角度(θ1)と最大角度(θ2)の領域すべてが、既に登録されている角度の領域であるか否かを判断する。既に登録されている角度の領域であればステップS710に行き、既に登録されている角度の領域を一部でも含まない場合はステップS707に行く。
(ステップS707)撮影オブジェクト決定部116は、このオブジェクトを撮影オブジェクトであると判断する。リターン値として、撮影オブジェクトである旨の情報(例えば、「1」)を代入する。
(ステップS708)撮影オブジェクト決定部116は、このオブジェクトを撮影オブジェクトであるとしたために、現在、不可視領域として登録されている角度に加え、最小の角度(θ1)と最大角度(θ2)の領域を不可視領域とする角度の幅(領域)を取得する。なお、例えば、現在、「30度から40度」が登録されており、最小の角度(θ1)が35度であり、最大角度(θ2)が45度である場合、撮影オブジェクト決定部116は、「30度から45度」を取得する。また、例えば、現在、「30度から40度」が登録されており、最小の角度(θ1)が55度であり、最大角度(θ2)が60度である場合、「55度から60度」を取得する。
(ステップS709)撮影オブジェクト決定部116は、ステップS708で取得した角度を登録する。なお、例えば、上記において、「30度から45度」は、「30度から40度」の情報に上書きされる。また、例えば、上記において、「55度から60度」が追記される。上位処理にリターンする。このとき、リターン値(撮影オブジェクトを示す値)も返される。
(ステップS710)撮影オブジェクト決定部116は、撮影オブジェクト決定部116は、このオブジェクトを非撮影オブジェクトであると判断する。リターン値として、非撮影オブジェクトである旨の情報(例えば、「0」)を代入する。上位処理にリターンする。このとき、リターン値(非撮影オブジェクトを示す値)も返される。
次に、ステップS506の可視判断処理について、図8のフローチャートを用いて説明する。なお、ここでの可視判断処理は、第二の可視判断処理である。第二の可視判断処理は、オブジェクトの立体的な情報のみを用いて、オブジェクトが端末装置12のディスプレイに出力されているか否かを判断する処理である。図8のフローチャートにおいて、図7のフローチャートと同様のステップについて、説明を省略する。
(ステップS801)撮影オブジェクト決定部116は、i番目の点(x1,y1,z1)と位置情報(x0,y0,z0)との高さ方向の角度(θh)を算出し、バッファに格納する。
(ステップS802)撮影オブジェクト決定部116は、視点(位置情報)からの高さ方向の角度(θ3)を取得する。θ3は、ステップS801で格納したθhのうち、最大の角度である。
(ステップS803)撮影オブジェクト決定部116は、最小の角度(θ1)と最大角度(θ2)の領域において、高さ方向の角度(θ3)以上の角度が既に、登録されているか否かを判断する。登録されていればステップS710に行き、登録されていなければステップS707に行く。高さ方向の角度(θ3)以上の角度が既に登録されている場合は、対象となるオブジェクトは不可視領域にあり、撮影オブジェクトではないことを示す。
(ステップS804)撮影オブジェクト決定部116は、このオブジェクトを撮影オブジェクトであるとしたために、現在、不可視領域として登録されている角度に加え、最小角度(θ1)と最大角度(θ2)の平面領域を不可視領域とする角度の幅(領域)を取得する。なお、例えば、現在、「30度から40度」が登録されており、最小の角度(θ1)が35度であり、最大角度(θ2)が45度である場合、撮影オブジェクト決定部116は、「30度から45度」を取得する。
(ステップS805)撮影オブジェクト決定部116は、このオブジェクトを撮影オブジェクトであるとしたために、高さ方向の角度(θ3)を取得する。なお、例えば、現在、最小の角度(θ1)と最大角度(θ2)の平面領域において、高さの角度「30度」が登録されている場合、取得した高さ方向の角度(θ3)が「35度」であれば、「35度」を取得する。
(ステップS806)撮影オブジェクト決定部116は、ステップS804で取得した平面領域の角度(例えば、「30度から45度」)と、高さ方向の角度(例えば、「35度」)を対応付けて蓄積(登録)する。上位処理にリターンする。このとき、リターン値も返される。なお、撮影オブジェクト決定部116は、最小角度(θ1)と最大角度(θ2)の平面領域において、現在、不可視領域として登録されている高さ方向の角度が、高さ方向の角度(θ3)以上であるか否かを判断し、高さ方向の角度(θ3)以上であれば、高さ方向の角度(θ3)を蓄積しない。
次に、ステップS407のナビゲーション情報取得処理について、図9のフローチャートを用いて説明する。
(ステップS901)ナビゲーション情報取得部117は、カウンタiに1を代入する。
(ステップS902)ナビゲーション情報取得部117は、i番目の撮影オブジェクトが存在するか否かを判断する。i番目の撮影オブジェクトが存在すればステップS903に行き、存在しなければ上位処理にリターンする。
(ステップS903)ナビゲーション情報取得部117は、i番目の撮影オブジェクトの位置情報を取得する。
(ステップS904)ナビゲーション情報取得部117は、カウンタjに1を代入する。
(ステップS905)ナビゲーション情報取得部117は、ナビゲーション情報取得部117が保持しているナビゲーション情報取得条件のうち、j番目の条件が存在するか否かを判断する。j番目の条件が存在すればステップS906に行き、j番目の条件が存在しなければステップS913に行く。
(ステップS906)ナビゲーション情報取得部117は、j番目のナビゲーション情報取得条件を取得する。
(ステップS907)ナビゲーション情報取得部117は、i番目の撮影オブジェクトの位置情報と経路情報とが、j番目のナビゲーション情報取得条件を満たすか否かを判断する。なお、経路情報は、ステップS406で取得された情報である。
(ステップS908)ナビゲーション情報取得部117は、ステップS907における判断が、条件を満たすとの判断の場合はステップS909に行き、満たさないとの判断の場合はステップS912に行く。
(ステップS909)ナビゲーション情報取得部117は、j番目のナビゲーション情報取得条件に対応するナビゲーション情報の雛形の情報を読み出す。
(ステップS910)ナビゲーション情報取得部117は、ステップS909で読み出した雛形の情報に、i番目の撮影オブジェクトの情報を代入し、ナビゲーション情報を構成する。なお、i番目の撮影オブジェクトの情報とは、例えば、オブジェクト識別子、撮影オブジェクトと端末装置12との位置関係(右側か左側かなど)等の情報である。なお、ナビゲーション情報が一つであることが必須の場合、ここで、上位処理にリターンしても良い。
(ステップS911)ナビゲーション情報取得部117は、ステップS910で構成したナビゲーション情報を、図示しないバッファに一時蓄積する。ここでの蓄積は、追記である。
(ステップS912)ナビゲーション情報取得部117は、カウンタjを1、インクリメントする。ステップS905に戻る。
(ステップS913)ナビゲーション情報取得部117は、カウンタiを1、インクリメントする。ステップS902に戻る。
次に、端末装置12の動作について、図10のフローチャートを用いて説明する。
(ステップS1001)受付部121は、指示等を受け付けたか否かを判断する。指示等を受け付ければステップS1002に行き、指示等を受け付けなければステップS1001に戻る。
(ステップS1002)受付部121は、ステップS1001で受け付けた指示が起動指示であるか否かを判断する。起動指示であればステップS1003に行き、起動指示でなければステップS1017に行く。なお、起動指示とは、端末装置12の起動の指示である。
(ステップS1003)カメラ部122は、カメラ映像を取得する。
(ステップS1004)出力部126のカメラ映像出力手段1261は、カメラ部122が取得した映像を出力する。
(ステップS1005)端末情報取得部123の位置情報取得手段1231は、端末装置12の位置を示す位置情報を取得する。
(ステップS1006)方向情報取得手段1232は、端末装置12が向いている方向を示す方向情報を取得する。
(ステップS1007)端末情報取得部123は、ステップS1005で取得した位置情報と、ステップS1006で取得した方向情報とを有する端末情報を構成する。なお、端末情報取得部123は、予め格納している視野角を含む端末情報を構成することは好適である。
(ステップS1008)送信部124は、ステップS1007で構成した端末情報をサーバ装置11に送信する。
(ステップS1009)受信部125は、端末情報の送信に対応して、サーバ装置11から情報を受信したか否かを判断する。情報を受信すればステップS1010に行き、情報を受信しなければステップS1009に戻る。なお、ここで、一定時間以上、情報を受信しなければ、ステップS1016に行くことは好適である。
(ステップS1010)出力部126は、ステップS1009で受信された情報の中に経路情報が存在するか否かを判断する。経路情報が存在すればステップS1011に行き、存在しなければステップS1012に行く。
(ステップS1011)経路情報出力手段1262は、ステップS1009で受信された経路情報を出力する。経路情報出力手段1262は、経路情報を、地図上、および撮影している映像上に出力しても良い。
(ステップS1012)出力部126は、ステップS1009で受信された情報の中にナビゲーション情報が存在するか否かを判断する。ナビゲーション情報が存在すればステップS1013に行き、存在しなければステップS1014に行く。
(ステップS1013)ナビゲーション情報出力手段1263は、ステップS1009で受信されたナビゲーション情報を出力する。
(ステップS1014)出力部126は、受信された情報の中に撮影オブジェクト情報が存在するか否かを判断する。撮影オブジェクト情報が存在すればステップS1015に行き、存在しなければステップS1016に行く。
(ステップS1015)出力部126は、撮影オブジェクト情報を出力する。なお、ここで、出力部126は、出力されたナビゲーション情報を構成するオブジェクト識別子に対応する撮影オブジェクトの情報を、他と視覚的に区別して表示する(例えば、撮影オブジェクトの画面上の位置が点滅したり、色が変化したりする)ことは好適である。また、出力部126は、地図上、および撮影している映像上に出力しても良い。
(ステップS1016)受付部121は、ユーザから、終了指示を受け付けたか否かを判断する。終了指示を受け付ければ処理を終了し、終了指示を受け付けなければステップS1003に戻る。
(ステップS1017)受付部121は、ステップS1001で目的地点情報を受け付けたか否かを判断する。目的地点情報を受け付ければステップS1018に行き、目的地点情報を受け付けなければステップS1022に行く。
(ステップS1018)受付部121は、ステップS1001で受け付けた目的地点情報を目的地点情報格納部120に蓄積する。
(ステップS1019)送信部124は、ステップS1001で受け付けた目的地点情報をサーバ装置11に送信する。
(ステップS1020)受信部125は、ステップS1017における目的地点情報の送信によって、経路情報をサーバ装置11から受信したか否かを判断する。受信すればステップS1021に行き、受信しなければステップS1014に行く。なお、ここで、経路情報を受信するまで、一定の時間、待機することは好適である。
(ステップS1021)経路情報出力手段1262は、ステップS1020で受信された経路情報を出力する。
(ステップS1022)各構成要素は、受け付けた指示に対応した動作を行う。ステップS1001に戻る。
なお、図10のフローチャートのステップS1001において、所定時間ループした場合、ステップS1003にジャンプすることは好適である。また、指示を受け付けた場合、割り込みにより、ステップS1001にジャンプすることは好適である。
以下、本実施の形態における情報システム1の具体的な動作について説明する。情報システム1の概念図は図1である。
ここで、2つの具体例を用いて、情報システム1について説明する。具体例1は、オブジェクトの高さまでは考慮せず、オブジェクトの平面的な情報のみを考慮して、撮影されている映像の中に含まれるオブジェクトを認識し、当該オブジェクトを用いた経路案内を行う態様である。具体例2は、オブジェクトの高さをも考慮して、撮影されている映像の中に含まれるオブジェクトを認識し、当該オブジェクトを用いた経路案内を行う態様である。
(具体例1)
今、サーバ装置11のオブジェクト情報格納部112は、図11に示すオブジェクト情報管理表を保持している。オブジェクト情報管理表は、地図上のオブジェクト情報を管理している表である。オブジェクト情報管理表は、「オブジェクト識別子」「オブジェクト名」「URL」「位置情報」「領域情報」などの属性値を有するレコードを1以上、管理している。「オブジェクト識別子」は、ここでは、オブジェクトのIDである。「オブジェクト名」は、オブジェクトの名称を示す。URLは、オブジェクトに関して説明するウェブページ(ここでのオブジェクト関連情報)が存在する場所を示す情報である。「位置情報」は、オブジェクトの位置を特定する情報であり、ここでは、(緯度,経度)である。「領域情報」は、オブジェクトが配置されている二次元領域を示す情報であり、ここでは、多角形であるオブジェクトの3以上の頂点を示す。頂点も、ここでは、(緯度,経度)である。
かかる場合、ユーザは、端末装置12を起動した、とする。すると、受付部121は、起動指示を受け付ける。そして、カメラ部122は、カメラ映像を取得する。そして、出力部126のカメラ映像出力手段1261は、カメラ部122が取得した映像を出力する。すると、図12に示すように、端末装置12の画面の左側には外界の映像が出力される。また、なお、端末装置12の右側には地図が出力される、とする。出力する地図を構成する地図情報は、端末装置12の受信部125が受信しても良いし、端末装置12の図示しない手段(例えば、地図情報記憶部)が予め保持していても良い。
次に、端末装置12の端末情報取得部123の位置情報取得手段1231(ここでは、例えば、GPS受信機)は、端末装置12の位置情報(X,Y)を取得する。
次に、方向情報取得手段1232は、端末装置12が向いている方向を示す方向情報(θA)を取得する。方向情報(θA)は、例えば、真北から時計回りの角度(真東は90度)を示す。
また、端末情報取得部123は、カメラ部122が有する視野角の情報(単に「視野角」という)を読み出す。ここでは、視野角は「θa」である、とする。また、カメラ部122は、予め視野角「θa」を格納している。とする。
次に、端末情報取得部123は、取得した位置情報(X,Y)と、取得した方向情報(θA)と、視野角(θa)とを有する端末情報(X,Y,θA,θa)を構成する。
次に、送信部124は、構成した端末情報(X,Y,θA,θa)をサーバ装置11に送信する。
そして、サーバ装置11のサーバ受信部113は、端末装置12から、端末情報(X,Y,θA,θa)を受信する。
次に、撮影オブジェクト決定部116は、以下のように、撮影オブジェクトを決定する。つまり、撮影オブジェクト決定部116は、受信された端末情報が有する位置情報(X,Y)を取得する。
次に、撮影オブジェクト決定部116は、端末情報が有する方向情報(θA)と視野角(θa)とを用いて、不可視領域となる角度を算出する。撮影オブジェクト決定部116は、「(θA−(θa/2))<=可視領域<=(θA+(θa/2))」を可視領域となる角度として決定する。そして、可視領域を除く角度を不可視領域角度として算出し、蓄積する。かかる概念を図13に示す。なお、可視領域が真北のラインをまたがっていない場合、不可視領域角度は「0<=不可視領域角度<(θA−(θa/2))」および「(θA+(θa/2))<不可視領域角度<=360」である。また、可視領域が真北のラインをまたがっている場合、不可視領域角度は「(θA+(θa/2))<不可視領域角度<(θA−(θa/2))」である。
そして、距離算出部115が、端末装置12の位置情報(X,Y)を用いて、端末装置12と各オブジェクトとの距離を算出する。そして、撮影オブジェクト決定部116は、距離算出部115が算出した距離を用いて、端末装置12から近いオブジェクトの順に、オブジェクト情報格納部112のオブジェクト情報をソートする。ソート処理については、図6で説明した処理により行う。ソート処理の結果、例えば、撮影オブジェクト決定部116は、図14に示すようなオブジェクト一時管理表を取得する。オブジェクト一時管理表の各レコードは、オブジェクト識別子と距離とを有する。距離は、位置情報(X,Y)が示す点とオブジェクトの位置情報が示す点との距離である。
次に、撮影オブジェクト決定部116は、オブジェクト一時管理表の上位のレコードから、撮影オブジェクトであるか否かを判断する。
つまり、撮影オブジェクト決定部116は、オブジェクト一時管理表の1番目のレコードのオブジェクト識別子「1」を読み出す。そして、当該オブジェクト識別子「1」をキーとして、オブジェクト情報管理表を検索し、オブジェクト識別子「1」と対になる領域情報「(x1,y1)(x2,y2)(x3,y3)(x4,y4)」を取得する。
次に、撮影オブジェクト決定部116は、受信された端末情報(X,Y,θA,θa)と、取得した領域情報「(x1,y1)(x2,y2)(x3,y3)(x4,y4)」とを用いて、1番目のオブジェクトが、撮影オブジェクトか否かを判断する。
まず、撮影オブジェクト決定部116は、判断対象となるオブジェクト(オブジェクト識別子「1」のオブジェクト)の領域情報の中の1番目の点(x1,y1)を取得する。
次に、撮影オブジェクト決定部116は、1番目の点(x1,y1)と位置情報(X,Y)との角度(θ1)を算出し、当該角度(θ1)をバッファに一時記憶する。同様に、撮影オブジェクト決定部116は、判断対象となるオブジェクト(オブジェクト識別子「1」のオブジェクト)の領域情報の中の2番目の点から4番目の各点と位置情報(X,Y)との角度(θ2,θ3,θ4)を算出し、当該角度(θ2,θ3,θ4)もバッファに一時記憶する。バッファには、(θ1,θ2,θ3,θ4)が格納されたことになる。
次に、撮影オブジェクト決定部116は、バッファに一時格納された角度(θ1,θ2,θ3,θ4)から、最小角度(例えば、(θ1))と最大角度(例えば、(θ4))とを取得する。
次に、撮影オブジェクト決定部116は、取得した最小角度(θ1)と最大角度(θ4)の領域すべてが、既に登録されている角度の領域(「(θA−(θa/2))<=可視領域<=(θA+(θa/2))」を除く角度)であるか否かを判断する。ここで、撮影オブジェクト決定部116は、取得した最小角度(θ1)と最大角度(θ4)の領域は、可視領域であると判断した、とする。そして、撮影オブジェクト決定部116は、オブジェクト識別子「1」のオブジェクトは、撮影オブジェクトであると判断する。
次に、撮影オブジェクト決定部116は、「θ1<=不可視領域<=θ4」を新たな不可視領域とする。つまり、撮影オブジェクト決定部116は、例えば、「0<=不可視領域角度<(θA−(θa/2))」および「(θA+(θa/2))<不可視領域角度<=360」と「θ1<=不可視領域<=θ4」とをマージした不可視領域角度を記録媒体に登録する。ここで、マージとは、今までの不可視領域に、「θ1<=不可視領域<=θ4」を加えることであり、今までの不可視領域が「θ1<=不可視領域<=θ4」を含む場合もあるし、含まない場合もある。
次に、撮影オブジェクト決定部116は、1番目のオブジェクトのオブジェクト識別子「1」を図示しない記憶媒体に格納する。
次に、撮影オブジェクト決定部116は、登録されている不可視領域、または可視領域から、可視領域が存在する、と判断する。
次に、撮影オブジェクト決定部116は、オブジェクト一時管理表の2番目のオブジェクト識別子「17」を取得し、当該識別子「17」をキーとして、オブジェクト情報管理表を検索し、オブジェクト識別子「17」と対になる領域情報(例えば、「(x101,y101)(x102,y102)(x103,y103)(x103,y103)」)を取得する。
次に、撮影オブジェクト決定部116は、受信された端末情報(X,Y,θA,θa)と、取得した領域情報「(x101,y101)(x102,y102)(x103,y103)(x103,y103)」とを用いて、2番目のオブジェクトが、撮影オブジェクトか否かを判断する。
まず、撮影オブジェクト決定部116は、判断対象となるオブジェクト(オブジェクト識別子「17」のオブジェクト)の領域情報の中の1番目の点(x101,y101)を取得する。
次に、撮影オブジェクト決定部116は、1番目の点(x101,y101)と位置情報(X,Y)との角度(θ101)を算出し、当該角度(θ101)をバッファに一時記憶する。同様に、撮影オブジェクト決定部116は、判断対象となるオブジェクト(オブジェクト識別子「17」のオブジェクト)の領域情報の中の2番目の点から4番目の各点と位置情報(X,Y)との角度(θ102,θ103,θ104)を算出し、当該角度(θ102,θ103,θ104)もバッファに一時記憶する。バッファには、(θ101,θ102,θ103,θ104)が格納されたことになる。
次に、撮影オブジェクト決定部116は、バッファに一時格納された角度(θ101,θ102,θ103,θ104)から、最小角度(例えば、(θ101))と最大角度(例えば、(θ103))とを取得する。
次に、撮影オブジェクト決定部116は、取得した最小角度(θ101)と最大角度(θ103)の領域すべてが、既に登録されている角度の領域であるか否かを判断する。そして、撮影オブジェクト決定部116は、最小角度(θ101)と最大角度(θ103)の領域すべてが、既に登録されている角度の領域であると、判断したとする。したがって、撮影オブジェクト決定部116は、オブジェクト識別子「17」のオブジェクトは撮影オブジェクトでない、と決定する。
次に、撮影オブジェクト決定部116は、登録されている不可視領域、または可視領域から、可視領域が存在する、と判断する。
次に、撮影オブジェクト決定部116は、オブジェクト一時管理表の3番目のオブジェクト識別子「3」を取得し、当該識別子「3」をキーとして、オブジェクト情報管理表を検索し、オブジェクト識別子「3」と対になる領域情報「(x11,y11)(x12,y12)(x13,y13)(x14,y14)」を取得する。
次に、撮影オブジェクト決定部116は、受信された端末情報(X,Y,θA,θa)と、取得した領域情報「(x11,y11)(x12,y12)(x13,y13)(x14,y14)」とを用いて、3番目のオブジェクトが、撮影オブジェクトか否かを判断する。
まず、撮影オブジェクト決定部116は、判断対象となるオブジェクト(オブジェクト識別子「3」のオブジェクト)の領域情報の中の1番目の点(x11,y11)を取得する。
次に、撮影オブジェクト決定部116は、1番目の点(x11,y11)と位置情報(X,Y)との角度(θ11)を算出し、当該角度(θ11)をバッファに一時記憶する。同様に、撮影オブジェクト決定部116は、判断対象となるオブジェクト(オブジェクト識別子「3」のオブジェクト)の領域情報の中の2番目の点から4番目の各点と位置情報(X,Y)との角度(θ12,θ13,θ14)を算出し、当該角度(θ12,θ13,θ14)もバッファに一時記憶する。バッファには、(θ11,θ12,θ13,θ14)が格納されたことになる。
次に、撮影オブジェクト決定部116は、バッファに一時格納された角度(θ11,θ12,θ13,θ14)から、最小角度(例えば、(θ11))と最大角度(例えば、(θ14))とを取得する。
次に、撮影オブジェクト決定部116は、取得した最小角度(θ11)と最大角度(θ14)の領域すべてが、既に登録されている角度の領域であるか否かを判断する。ここで、撮影オブジェクト決定部116は、取得した最小角度(θ11)と最大角度(θ14)の領域と、既に登録されている不可視領域の角度とを比較する。そして、撮影オブジェクト決定部116は、取得した最小角度(θ11)と最大角度(θ14)の領域は、可視領域であると判断した、とする。そして、撮影オブジェクト決定部116は、オブジェクト識別子「3」のオブジェクトは、撮影オブジェクトであると判断する。
次に、撮影オブジェクト決定部116は、「θ11<=不可視領域<=θ14」を新たな不可視領域とする。
次に、撮影オブジェクト決定部116は、3番目のオブジェクトのオブジェクト識別子「3」を図示しない記憶媒体に格納する。
次に、撮影オブジェクト決定部116は、登録されている不可視領域、または可視領域から、可視領域が存在する、と判断する。
以上の処理を、4番目以降のオブジェクトに対しても繰り返す。そして、オブジェクト識別子「25」で識別されるオブジェクトを撮影オブジェクトであると決定した後、撮影オブジェクト決定部116は、登録されている不可視領域、または可視領域から、可視領域が存在しない、と判断した、とする。そして、最終的に、撮影オブジェクトの識別子の集合「1,3,25」が得られた、とする。
次に、撮影オブジェクト決定部116は、目的地点情報が予め決められたバッファに存在しないと判断する。
そして、次に、撮影オブジェクト決定部116は、撮影オブジェクトの識別子の集合「1,3,25」を用いて、図11のオブジェクト管理表を検索する。そして、撮影オブジェクト決定部116は、(オブジェクト識別子,オブジェクト名,位置情報)の組を3組(1,コーヒーショップA,(xa,ya))、(3,ビルZ,(xb,yb))、(25,デパートH,(xh,yh))を取得する。この取得した3組の情報が撮影オブジェクト情報である。
次に、サーバ送信部118は、取得された撮影オブジェクト情報を端末装置12に送信する。
次に、端末装置12の受信部125は、撮影オブジェクト情報を受信する。そして、出力部126は、撮影オブジェクト情報を出力する。つまり、出力部126は、(xa,ya)に対応する画面上の座標値(Xa,Ya)を取得し、当該座標値(Xa,Ya)の箇所(撮影されている映像上)にオブジェクト識別子「コーヒーショップA」を出力する。また、出力部126は、(xb,yb)に対応する画面上の座標値(Xb,Yb)を取得し、当該座標値(Xb,Yb)の箇所にオブジェクト識別子「ビルZ」を出力する。さらに、出力部126は、(xc,yc)に対応する画面上の座標値(Xc,Yc)を取得し、当該座標値(Xc,Yc)の箇所にオブジェクト識別子「デパートH」を出力する。
次に、ユーザは、端末装置12に目的地点情報「目的地M」を入力した。すると、受付部121は、目的地点情報「目的地M」を受け付ける。そして、受付部121は、受け付けた目的地点情報「目的地M」を目的地点情報格納部120に蓄積する。
次に、送信部124は、受け付けられた目的地点情報「目的地M」をサーバ装置11に送信する。
次に、サーバ受信部113は、端末装置12から目的地点情報「目的地M」を受信する。そして、経路探索部114は、受信された目的地点情報「目的地M」を、図示しないバッファに一時蓄積する。
次に、端末装置12は、端末装置12の移動に伴い、移動した(異なった)カメラ映像を出力する。
そして、端末装置12の端末情報取得部123は、端末装置12の端末情報(位置情報(xt,yt)と方向情報と視野角)を取得する。次に、送信部124は、端末情報をサーバ装置11に送信する。
次に、サーバ受信部113は、端末装置12から端末情報を受信する。そして、撮影オブジェクト決定部116は、上述した処理と同様の処理により、撮影オブジェクトの識別子の集合「3,25」を得た、とする。
次に、撮影オブジェクト決定部116は、目的地点情報が予め決められたバッファに存在すると判断する。そして、経路探索部114は、図示しないバッファから目的地点情報「目的地M」を読み出す。次に、経路探索部114は、受信された端末情報が有する位置情報(xt,yt)を始点、目的地点情報「目的地M」を終点として、地図情報格納部111の地図情報を用いて、経路探索する。つまり、通常、経路探索部114は、「目的地M」から地図情報格納部111を検索し、「目的地M」の(経度,緯度)を取得する。
そして、経路探索部114は、始点(xt,yt)から終点(「目的地M」の(経度,緯度))までの経路情報を取得する。
次に、ナビゲーション情報取得部117は、取得された経路情報および決定された撮影オブジェクト「3,25」の情報を用いて、以下のように、ナビゲーション情報を取得する。ここで、ナビゲーション情報取得部117は、図15に示すナビゲーション取得情報管理表を、図示しない記録手段(ナビゲーション取得情報格納手段)に保持している。ナビゲーション取得情報管理表は、ナビゲーション情報を取得するための情報を管理する表である。ナビゲーション取得情報管理表は、「ID」「ナビゲーション情報取得条件」「雛形情報」とを有するレコードを1以上管理している。「ID=1」において、ナビゲーション情報取得条件の「get_cross」関数は、引数である「経路情報」「端末装置の位置情報」から、経路情報が示す経路の中で、端末装置12に最も近い右折または左折を行う予定の交差点の位置情報「交差点位置情報」を取得する関数である。かかる関数は公知技術である。また、「ID=1」において、ナビゲーション情報取得条件の「judge1」関数は、引数「交差点位置情報」と「オブジェクトの位置情報」とから、オブジェクトが交差点の角に存在するか否かを判断する関数である。そして、判断結果は変数「判断結果」に代入される。また、「ID=1」の雛形情報「"$オブジェクト相対位置"手の前方に見える"$オブジェクト識別子"の角を"$曲がる方向"折して下さい。」の"$・・・"は、予約変数を示す。予約変数"$オブジェクト相対位置"は、端末装置12の位置情報とオブジェクトの位置情報とから、オブジェクトが端末装置12に対して、右手(右)に見えるか左手(左)に見えるかを示す情報(「右」または「左」の値を採り得る)が代入される変数である。また、予約変数"$オブジェクト識別子"は、オブジェクト識別子が代入される変数である。さらに、予約変数"$曲がる方向"は、経路情報から、端末装置12が曲がる方向(「右」または「左」の値を採り得る)が代入される変数である。つまり、「ID=1」において、オブジェクトが交差点の角に存在する場合、ナビゲーション情報取得部117は、雛形情報「"$オブジェクト相対位置"手の前方に見える"$オブジェクト識別子"の角を"$曲がる方向"折して下さい。」に変数の値を代入し、ナビゲーション情報を構成する。
また、「ID=2」において、ナビゲーション情報取得条件の「get_road」関数は、引数である「経路情報」「端末装置の位置情報」から、経路情報が示す経路の中で、端末装置12が現在走行中(現在存在する)道路の情報「走行中の道路情報」を取得する関数である。「走行中の道路情報」は、通常、道路の始点の(緯度,経度)、および終点の(緯度,経度)とからなる。また、「ID=2」において、ナビゲーション情報取得条件の「judge2」関数は、引数「走行中の道路情報」と「オブジェクトの位置情報」とから、オブジェクトが走行中の道路の左側に存在する(左側に面している)か否かを判断する関数である。そして、判断結果は変数「判断結果」に代入される。つまり、「ID=2」において、オブジェクトが走行中の道路の左側に存在する場合、ナビゲーション情報取得部117は、雛形情報「左手前方の"$オブジェクト識別子"をさらに真っすぐに進んで下さい。」に変数の値を代入し、ナビゲーション情報を構成する。
上記のナビゲーション取得情報管理表を用いて、まず、ナビゲーション情報取得部117は、取得された経路情報および決定された撮影オブジェクト「3」の位置情報を用いて、「get_cross」関数を適用し、変数「交差点位置情報」を取得した、とする。そして、ナビゲーション情報取得部117は、「交差点位置情報」と撮影オブジェクト「3」の位置情報とを、「judge1」関数の引数として代入し、経路情報に含まれる交差点の中で、撮影オブジェクト「3」が端末装置12に最も近い交差点の角に存在する、と判断した、とする。
次に、ナビゲーション情報取得部117は、端末装置12の位置情報と、撮影オブジェクト「3」の位置情報とから、変数"$オブジェクト相対位置"の値「右」を取得したとする。次に、ナビゲーション情報取得部117は、撮影オブジェクト「3」の変数"$オブジェクト識別子"の値「ビルZ」を取得する。次に、ナビゲーション情報取得部117は、経路情報と変数「交差点位置情報」の値から、変数"$曲がる方向"の値「左」を取得したとする。
そして、ナビゲーション情報取得部117は、取得した変数値を雛形情報「"$オブジェクト相対位置"手の前方に見える"$オブジェクト識別子"の角を"$曲がる方向"折して下さい。」に代入し、ナビゲーション情報「右手の前方に見えるビルZの角を左折して下さい。」を構成する。
次に、ナビゲーション情報取得部117は、取得された経路情報および決定された撮影オブジェクト「3」の位置情報を用いて、「ID=2」のナビゲーション情報取得条件を満たさない、と判断したとする。
また、ナビゲーション情報取得部117は、取得された経路情報および決定された撮影オブジェクト「25」の位置情報を用いて、「ID=1」およびID=2」のナビゲーション情報取得条件を満たさない、と判断したとする。
次に、サーバ送信部118は、取得された経路情報を端末装置12に送信する。また、サーバ送信部118は、ナビゲーション情報が取得されたと判断し、ナビゲーション情報「右手の前方に見えるビルZの角を左折して下さい。」を端末装置12に送信する。
そして、次に、撮影オブジェクト決定部116は、撮影オブジェクトの識別子の集合「3,25」を用いて、図11のオブジェクト管理表を検索する。そして、撮影オブジェクト決定部116は、(3,ビルZ,(xb,yb))、(25,デパートH,(xh,yh))を取得する。この取得した2組の情報が撮影オブジェクト情報である。
次に、サーバ送信部118は、取得された撮影オブジェクト情報を端末装置12に送信する。ここで、サーバ送信部118は、例えば、撮影オブジェクト情報のうち、ナビゲーション情報に利用されている撮影オブジェクト情報(3,ビルZ,(xb,yb))のみにフラグ「1」を付加して、撮影オブジェクト情報を端末装置12に送信するとする。
次に、端末装置12の受信部125は、経路情報、ナビゲーション情報、および撮影オブジェクト情報を受信する。
次に、経路情報出力手段1262は、受信された経路情報を出力する。ここで、経路情報出力手段1262は、撮影されている映像の上、および地図の上に経路情報を出力することは好適である。また、ナビゲーション情報出力手段1263は、受信されたナビゲーション情報「右手の前方に見えるビルZの角を左折して下さい。」を出力する。ここでの出力は、例えば、音声出力である。つまり、ナビゲーション情報出力手段1263は、例えば、音声合成機能を有する。さらに、出力部126は、撮影オブジェクト情報(3,ビルZ,(xb,yb))、(25,デパートH,(xh,yh))を、撮影されている映像の上に出力する。また、フラグ「1」が付加されている撮影オブジェクト情報(3,ビルZ,(xb,yb))に対応して、出力部126は、ビルZの位置情報(xb,yb)に対応する画面上の位置に、ビルZの文字列を点滅させて表示する。かかる場合の出力例を図16に示す。
(具体例2)
今、サーバ装置11のオブジェクト情報格納部112は、図17に示すオブジェクト情報管理表を保持している。オブジェクト情報管理表は、地図上のオブジェクト情報を管理している表である。オブジェクト情報管理表は、「オブジェクト識別子」「オブジェクト名」「URL」「位置情報」「領域情報」などの属性値を有するレコードを1以上、管理している。図17において、図11のオブジェクト情報管理表との差異は、領域情報を構成する各点が高さ情報(z)を有している点である。
かかる場合、ユーザは、端末装置12を起動した、とする。すると、受付部121は、起動指示を受け付ける。そして、カメラ部122は、カメラ映像を取得する。そして、出力部126のカメラ映像出力手段1261は、カメラ部122が取得した映像を出力する。すると、具体例1と同様に、図12に示すように、端末装置12のディスプレイに、外界の映像が出力される。
次に、端末装置12の端末情報取得部123の位置情報取得手段1231(ここでは、例えば、GPS受信機)は、端末装置12の位置情報(X,Y,Z)を取得する。なお、Zは、高さである。
次に、方向情報取得手段1232は、端末装置12が向いている方向を示す方向情報(θA,θB)を取得する。θAは平面上の角度、θBは高さ方向の角度である。方向情報(θA)は、例えば、真北から時計回りの角度(真東は90度)を示す。
また、端末情報取得部123は、カメラ部122が有する視野角の情報(単に「視野角」という)を読み出す。ここでは、視野角は(θa,θb)である、とする。また、カメラ部122は、予め視野角(θa,θb)を格納している、とする。なお、θaは平面上の角度、θbは高さ方向の角度である。視野角(θa,θb)を図18に示す。
次に、端末情報取得部123は、取得した位置情報(X,Y,Z)と、取得した方向情報(θA,θB)と、視野角(θa,θb)とを有する端末情報(X,Y,Z,θA,θB,θa,θb)を構成する。
次に、送信部124は、構成した端末情報(X,Y,Z,θA,θB,θa,θb)をサーバ装置11に送信する。
そして、サーバ装置11のサーバ受信部113は、端末装置12から、端末情報(X,Y,Z,θA,θB,θa,θb)を受信する。
次に、撮影オブジェクト決定部116は、以下のように、撮影オブジェクトを決定する。つまり、撮影オブジェクト決定部116は、受信された端末情報が有する位置情報(X,Y,Z)を取得する。
次に、撮影オブジェクト決定部116は、端末情報が有する方向情報(θA,θB)と視野角(θa,θb)とを用いて、不可視領域となる三次元の角度を算出する。撮影オブジェクト決定部116は、可視領域となる二次元の角度「(θA−(θa/2))<=可視領域<=(θA+(θa/2))」を取得する。そして、可視領域となる高さ方向の角度「(θB−(θb/2))<=可視領域<=(θB+(θb/2))」を取得する。そして、上記の可視領域ではない領域を、不可視領域として蓄積する。
そして、撮影オブジェクト決定部116は、取得した位置情報(X,Y,Z)を用いて、端末装置12から近いオブジェクトの順に、オブジェクト情報格納部112のオブジェクト情報をソートする。ソート処理については、図6で説明した処理により行う。なお、ここでは、位置情報(X,Y,Z)のうちの(X,Y)と、各オブジェクトの位置情報(例えば、(xa,ya))とを用いて、端末装置12と各オブジェクトとの距離を算出し、距離をキーとしてソートする。そして、ソート処理の結果、撮影オブジェクト決定部116は、図14に示すようなオブジェクト一時管理表を取得する。オブジェクト一時管理表の各レコードは、オブジェクト識別子と距離とを有する。距離は、位置情報(X,Y,Z)(ただし、Zは利用されなくても良い)が示す点とオブジェクトの位置情報が示す点との距離である。
次に、撮影オブジェクト決定部116は、オブジェクト一時管理表の上位のレコードから、撮影オブジェクトであるか否かを判断する。
つまり、撮影オブジェクト決定部116は、オブジェクト一時管理表の1番目のレコードのオブジェクト識別子「1」を読み出す。そして、当該オブジェクト識別子「1」をキーとして、オブジェクト情報管理表を検索し、オブジェクト識別子「1」と対になる領域情報「(x1,y1,z1)(x2,y2,z2)(x3,y3,z3)(x4,y4,z4)」を取得する。
次に、撮影オブジェクト決定部116は、受信された端末情報(X,Y,Z,θA,θB,θa,θb)と、取得した領域情報「(x1,y1,z1)(x2,y2,z2)(x3,y3,z3)(x4,y4,z4)」とを用いて、1番目のオブジェクトが、撮影オブジェクトか否かを判断する。
まず、撮影オブジェクト決定部116は、判断対象となるオブジェクト(オブジェクト識別子「1」のオブジェクト)の領域情報の中の1番目の点(x1,y1,z1)を取得する。
次に、撮影オブジェクト決定部116は、1番目の点(x1,y1,z1)と位置情報(X,Y,Z)との平面上の角度(θ11)を算出し、当該角度(θ11)をバッファに一時記憶する。また、撮影オブジェクト決定部116は、1番目の点(x1,y1,z1)と位置情報(X,Y,Z)との高さ方向の角度(θ12)を算出し、当該角度(θ12)をバッファに一時記憶する。同様に、撮影オブジェクト決定部116は、判断対象となるオブジェクト(オブジェクト識別子「1」のオブジェクト)の領域情報の中の2番目の点から4番目の各点と位置情報(X,Y,Z)との平面上の角度(θ12,θ13,θ14)を算出し、当該角度(θ12,θ13,θ14)もバッファに一時記憶する。バッファには、(θ11,θ12,θ13,θ14)が格納されたことになる。さらに、同様に、撮影オブジェクト決定部116は、判断対象となるオブジェクト(オブジェクト識別子「1」のオブジェクト)の領域情報の中の2番目の点から4番目の各点と位置情報(X,Y,Z)との高さ方向の角度(θ22,θ23,θ24)を算出し、当該角度(θ22,θ23,θ24)もバッファに一時記憶する。バッファには、(θ21,θ22,θ23,θ24)が格納されたことになる。
次に、撮影オブジェクト決定部116は、バッファに一時格納された角度(θ11,θ12,θ13,θ14)から、平面上の最小角度(例えば、(θ11))と最大角度(例えば、(θ14))とを取得する。
また、撮影オブジェクト決定部116は、バッファに一時格納された角度(θ21,θ22,θ23,θ24)から、高さ方向の最大角度(θ24)を取得する。
次に、撮影オブジェクト決定部116は、取得した平面上の最小角度(θ11)と最大角度(θ14)の領域すべてが、既に登録されている領域であるか否かを判断する。ここで、撮影オブジェクト決定部116は、取得した最小角度(θ11)と最大角度(θ14)の領域は、可視領域であると判断した、とする。そして、撮影オブジェクト決定部116は、オブジェクト識別子「1」のオブジェクトは、撮影オブジェクトであると判断する。
なお、ここで、例えば、撮影オブジェクト決定部116は、取得した平面上の最小角度(θ11)と最大角度(θ14)の領域の一部が、既に登録されている領域ではないと判断した場合も、可視領域であると判断する。つまり、撮影オブジェクト決定部116は、オブジェクト識別子「1」のオブジェクトが、撮影オブジェクトであると判断する。また、例えば、撮影オブジェクト決定部116は、取得した平面上の最小角度(θ11)と最大角度(θ14)の領域のすべてが、既に登録されている角度の領域であると判断した場合でも、高さ方向の最大角度(θ24)が、登録されている高さ方向の最大角度より大きい場合、平面上の最小角度(θ11)と最大角度(θ14)の領域において、可視領域であると判断する。つまり、撮影オブジェクト決定部116は、オブジェクト識別子「1」のオブジェクトが、撮影オブジェクトであると判断するのである。
次に、撮影オブジェクト決定部116は、「θ11<=不可視領域<=θ14」を新たな不可視領域とする。つまり、撮影オブジェクト決定部116は、例えば、「0<=不可視領域角度<(θA−(θa/2))」および「(θA+(θa/2))<不可視領域角度<=360」と「θ11<=不可視領域<=θ14」とをマージした平面上の不可視領域角度を記録媒体に登録する。そして、登録されている高さ方向の最大角度が(θ24)より小さい場合、この平面上の領域に対応付けて、撮影オブジェクト決定部116は、高さ方向の最大角度(θ24)を登録する。
次に、撮影オブジェクト決定部116は、1番目のオブジェクトのオブジェクト識別子「1」を図示しない記憶媒体に格納する。
次に、撮影オブジェクト決定部116は、登録されている不可視領域、または可視領域から、可視領域が存在する、と判断した、とする。
以上の処理を、図17の2番目以降のオブジェクトに対しても行い、撮影オブジェクトを決定する。
そして、撮影オブジェクト決定部116は、登録されている不可視領域、または可視領域から、可視領域が存在しない、と判断するまで、上記の検査(撮影オブジェクトの決定のための検査)を繰り返す。そして、撮影オブジェクト決定部116は、撮影オブジェクトのオブジェクト識別子「1」、「3」、「25」を取得した、とする。
そして、その後、サーバ装置11、および端末装置12は、具体例1で説明した動作と同様の動作を行う。
以上、本実施の形態によれば、撮影されている映像中のオブジェクトを認識し、当該オブジェクトを用いたナビゲーション情報を分かりやすく出力できる。
また、本実施の形態によれば、撮影オブジェクトを検知する処理を適切に打ち切ることにより、高速な処理が可能となる。そのために、端末装置はナビゲーションシステムなどにも利用できる。
また、本実施の形態によれば、オブジェクトの高さをも考慮するので、例えば、ある建物の後ろに見えている建物に対応付けられている広告情報も得ることができる。
なお、本実施の形態において、サーバ装置と端末装置との処理の分担は問わない。端末装置12が経路探索を行っても良い。かかる場合、例えば、サーバ装置は、オブジェクト情報格納部112、サーバ受信部113、距離算出部115、撮影オブジェクト決定部116、ナビゲーション情報取得部117、およびサーバ送信部を具備する。ここで、サーバ送信部は、ナビゲーション情報や撮影オブジェクト情報を送信する。また、かかる場合、例えば、端末装置は、地図情報格納部111、目的地点情報格納部120、受付部121、カメラ部122、端末情報取得部123、経路探索部114、送信部124、受信部、および出力部126を具備する。ここで、受信部は、ナビゲーション情報や撮影オブジェクト情報を受信する。
また、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態におけるサーバ装置11を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記録媒体に、地図情報と、オブジェクトを識別するオブジェクト識別子と、当該オブジェクトが存在する領域を示す領域情報とを有する1以上のオブジェクト情報を格納しており、コンピュータを、端末装置から、当該端末装置の位置を示す位置情報と当該端末装置が向いている方向を示す方向情報とを有する端末情報、または目的地点を示す目的地点情報を受信するサーバ受信部と、前記端末情報が有する位置情報と、前記目的地点情報とを用いて、前記記録媒体の地図情報を経路探索し、前記位置情報が示す現在地点から前記目的地点情報が示す目的地点までの経路を探索し、経路に関する情報である経路情報を取得する経路探索部と、前記端末情報が有する位置情報と、前記端末情報が有する方向情報と、予め格納されているまたは前記端末情報が有する視野角とを、前記記録媒体の各オブジェクト情報の領域情報に適用し、前記端末装置が撮影している1以上のオブジェクトを決定する撮影オブジェクト決定部と、前記撮影オブジェクト決定部が決定した1以上のオブジェクトのうちのいずれかのオブジェクトが、前記経路情報が示す経路に含まれる場合、当該オブジェクトを用いたナビゲーション情報を取得するナビゲーション情報取得部と、前記経路探索部が取得した経路情報と前記ナビゲーション情報取得部が取得したナビゲーション情報とを、前記端末装置に送信するサーバ送信部として機能させるためのプログラム、である。
また、上記プログラムにおいて、前記ナビゲーション情報取得部は、前記撮影オブジェクト決定部が決定した1以上のオブジェクトのうちのいずれかのオブジェクトが、前記経路情報が示す経路の右折または左折の角または角より閾値以内の距離に含まれる場合、当該オブジェクトを用いた右折または左折を案内するナビゲーション情報を構成するものとして、コンピュータを機能させることは好適である。
また、上記プログラムにおいて、前記領域情報は、地図上での二次元の領域を示す二次元領域情報とオブジェクトの高さを示す高さ情報を有し、前記撮影オブジェクト決定部は、前記端末情報が有する位置情報および方向情報と、予め格納されているまたは前記端末情報が有する視野角とを用いて、三次元空間上での撮影領域を取得し、当該撮影領域を、前記オブジェクト情報格納部の各オブジェクト情報が有する領域情報に対して適用し、前記端末装置が撮影している1以上のオブジェクトを決定し、かつ、前記1以上のオブジェクトの決定の際に、前記端末装置からの距離が近い順にオブジェクトを検査し、前記端末装置が撮影しているとして先に決定したオブジェクトの撮影により不可視となる領域の情報を不可視領域として登録していき、可視領域がなくなった場合に、オブジェクトが前記端末装置に撮影されているか否かの検査を終了するものとして、コンピュータを機能させることは好適である。
また、上記プログラムにおいて、コンピュータを前記オブジェクト情報格納部の1以上のオブジェクト情報に対応するオブジェクトと前記端末装置との距離を、前記各オブジェクトのオブジェクト情報と前記端末情報が有する位置情報とから、オブジェクトごとに算出する距離算出部としてさらに機能させ、前記撮影オブジェクト決定部は、前記端末装置からの距離が近い順にオブジェクトに対応するオブジェクト情報をソートし、前記端末装置からの距離が近い順にオブジェクトを検査し、前記端末装置が撮影している1以上のオブジェクトを決定するものとしてコンピュータを機能させることは好適である。
また、上記プログラムにおいて、前記撮影オブジェクト決定部は、前記端末装置からの距離が近い順にオブジェクトを検査し、前記端末装置が撮影しているとして先に決定したオブジェクトの撮影により不可視となる領域の情報を不可視領域として登録していき、可視領域がなくなった場合に、オブジェクトが前記端末装置に撮影されているか否かの検査を終了するものとしてコンピュータを機能させることは好適である。
また、上記プログラムにおいて、前記撮影オブジェクト決定部は、前記端末装置からの距離が近い順にオブジェクトを検査し、前記端末装置が撮影しているとして先に決定したオブジェクトの撮影により不可視となる領域の情報を不可視領域として登録していき、可視領域のオブジェクトであり、かつ、前記端末装置からの距離が閾値以内のオブジェクトのみを検査し、前記端末装置が撮影している1以上のオブジェクトを決定するものとしてコンピュータを機能させることは好適である。
また、上記プログラムにおいて、前記撮影オブジェクト決定部は、前記端末装置からの距離が近い順にオブジェクトを検査し、前記端末装置が撮影しているとして決定したオブジェクトの数が閾値になった場合に、前記検査を終了するものとしてコンピュータを機能させることは好適である。
また、本実施の形態における端末装置12を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記録媒体に、目的地点情報を格納し得、コンピュータを、当該端末装置の位置を示す位置情報と、当該端末装置が向いている方向を示す方向情報とを取得する端末情報取得部と、映像を取得するカメラ部と、前記カメラ部が取得した映像を出力するカメラ映像出力手段を具備する出力部と、前記目的地点情報と前記端末情報取得部が取得した端末情報とを前記サーバ装置に送信する送信部と、前記経路情報と前記ナビゲーション情報とを前記サーバ装置から受信する受信部とを具備し、前記出力部は、前記受信部が受信した経路情報を出力する経路情報出力手段と、前記受信部が受信したナビゲーション情報を出力するナビゲーション情報出力手段とをさらに具備するものとしてコンピュータを機能させるプログラムである。
(実施の形態2)
本実施の形態において、スタンドアロンの端末装置について説明する。つまり、本実施の形態において、端末装置は、サーバ装置と通信せずに、端末装置だけで実施の形態1で説明した機能を実現する。
図19は、本実施の形態における端末装置2のブロック図である。
端末装置2は、地図情報格納部111、オブジェクト情報格納部112、目的地点情報格納部120、受付部121、カメラ部122、端末情報取得部123、経路探索部114、距離算出部115、撮影オブジェクト決定部116、ナビゲーション情報取得部117、および出力部126を具備する。
出力部126は、カメラ映像出力手段1261、経路情報出力手段1262、およびナビゲーション情報出力手段1263を具備する。
次に、端末装置2の動作について、図20のフローチャートを用いて説明する。図20のフローチャートにおいて、図4または図10と同じステップの処理について、説明を省略する。
(ステップS2001)出力部126は、撮影オブジェクト決定部116が決定した撮影オブジェクトが存在するか否かを判断する。撮影オブジェクトが存在すればステップS1015に行き、撮影オブジェクトが存在しなければステップS1016に行く。
なお、図20のフローチャートのステップS1001において、所定時間ループした場合、ステップS1003にジャンプすることは好適である。また、指示を受け付けた場合、割り込みにより、ステップS1001にジャンプすることは好適である。
本実施の形態における端末装置2の具体的な動作は、実施の形態1で述べた動作と同様であるので、説明を省略する。なお、実施の形態1におけるサーバクライアントでの処理か、本実施の形態におけるスタンドアロンでの処理かの違いは存在する。
以上、本実施の形態によれば、サーバ装置との通信が不要であるので、撮影されている映像中のオブジェクトを認識し、当該オブジェクトを用いたナビゲーション情報を分かりやすく高速に出力できる。
また、本実施の形態によれば、撮影オブジェクトを検知する処理を適切に打ち切ることにより、高速な処理が可能となる。そのために、端末装置はナビゲーションシステムなどにも利用できる。
また、本実施の形態によれば、オブジェクトの高さをも考慮するので、例えば、ある建物の後ろに見えている建物に対応付けられている広告情報も得ることができる。
なお、本実施の形態における端末装置2を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記録媒体に、地図情報と、オブジェクトを識別するオブジェクト識別子と、当該オブジェクトが存在する領域を示す領域情報とを有する1以上のオブジェクト情報と、目的地点を示す目的地点情報とを格納しており、コンピュータを、映像を取得するカメラ部と、前記カメラ部が取得した映像を出力するカメラ映像出力手段を具備する出力部と、当該端末装置の位置を示す位置情報を有する端末情報を取得する端末情報取得部と、前記端末情報が有する位置情報と、前記端末情報が有する方向情報と、予め格納されているまたは前記端末情報が有する視野角とを、前記記録媒体の各オブジェクト情報の領域情報に適用し、前記端末装置が撮影している1以上のオブジェクトを決定する撮影オブジェクト決定部と、前記端末情報が有する位置情報と前記目的地点情報とを用いて、前記記録媒体の地図情報を経路探索し、前記位置情報が示す現在地点から前記目的地点情報が示す目的地点までの経路を探索し、経路に関する情報である経路情報を取得する経路探索部と、前記撮影オブジェクト決定部が決定した1以上のオブジェクトのうちのいずれかのオブジェクトが、前記経路情報が示す経路に含まれる場合、当該オブジェクトを用いたナビゲーション情報を取得するナビゲーション情報取得部とを具備し、前記出力部は、前記受信部が受信した経路情報を前記カメラ映像出力手段が出力している映像上に出力する経路情報出力手段と、前記ナビゲーション情報取得部が取得したナビゲーション情報を出力するナビゲーション情報出力手段とをさらに具備するものとして、コンピュータを機能させるためのプログラム、である。
また、上記プログラムにおいて、前記領域情報は、地図上での二次元の領域を示す二次元領域情報とオブジェクトの高さを示す高さ情報を有し、前記撮影オブジェクト決定部は、前記端末情報が有する位置情報および方向情報と、予め格納されているまたは前記端末情報が有する視野角とを用いて、三次元空間上での撮影領域を取得し、当該撮影領域を、前記オブジェクト情報格納部の各オブジェクト情報が有する領域情報に対して適用し、前記端末装置が撮影している1以上のオブジェクトを決定し、かつ、前記1以上のオブジェクトの決定の際に、前記端末装置からの距離が近い順にオブジェクトを検査し、前記端末装置が撮影しているとして先に決定したオブジェクトの撮影により不可視となる領域の情報を不可視領域として登録していき、可視領域がなくなった場合に、オブジェクトが前記端末装置に撮影されているか否かの検査を終了するものとして、コンピュータを機能させることは好適である。
また、上記プログラムにおいて、前記オブジェクト情報格納部の1以上のオブジェクト情報に対応するオブジェクトと前記端末装置との距離を、前記各オブジェクトのオブジェクト情報と前記端末情報が有する位置情報とから、オブジェクトごとに算出する距離算出部をさらに具備し、前記撮影オブジェクト決定部は、前記端末装置からの距離が近い順にオブジェクトに対応するオブジェクト情報をソートし、前記端末装置からの距離が近い順にオブジェクトを検査し、前記端末装置が撮影している1以上のオブジェクトを決定するものとして、コンピュータを機能させることは好適である。
また、上記プログラムにおいて、前記撮影オブジェクト決定部は、前記端末装置からの距離が近い順にオブジェクトを検査し、前記端末装置が撮影しているとして先に決定したオブジェクトの撮影により不可視となる領域の情報を不可視領域として登録していき、可視領域がなくなった場合に、オブジェクトが前記端末装置に撮影されているか否かの検査を終了するものとして、コンピュータを機能させることは好適である。
また、図21は、本明細書で述べたプログラムを実行して、上述した実施の形態の情報システム等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図21は、このコンピュータシステム340の概観図であり、図22は、コンピュータシステム340のブロック図である。
図21において、コンピュータシステム340は、FDドライブ、CD−ROMドライブを含むコンピュータ341と、キーボード342と、マウス343と、モニタ344とを含む。
図22において、コンピュータ341は、FDドライブ3411、CD−ROMドライブ3412に加えて、MPU3413と、CD−ROMドライブ3412及びFDドライブ3411に接続されたバス3414と、ブートアッププログラム等のプログラムを記憶するためのROM3415とに接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3416と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3417とを含む。ここでは、図示しないが、コンピュータ341は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム340に、上述した実施の形態の情報システム等の機能を実行させるプログラムは、CD−ROM3501、またはFD3502に記憶されて、CD−ROMドライブ3412またはFDドライブ3411に挿入され、さらにハードディスク3417に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ341に送信され、ハードディスク3417に記憶されても良い。プログラムは実行の際にRAM3416にロードされる。プログラムは、CD−ROM3501、FD3502またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ341に、上述した実施の形態の情報システム等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム340がどのように動作するかは周知であり、詳細な説明は省略する。
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。