以下、情報システム等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、カメラで撮影している実空間内の移動体に関する情報を出力する情報システムについて説明する。なお、カメラは、静止画を撮影するカメラだけではなく、動画を撮影するビデオカメラでも良い。また、移動体は、自動車、自転車、電車、飛行機、人など、移動するオブジェクトであれば何でも良い。
また、本実施の形態において、情報システムは、サーバ装置と第一端末装置と第二端末装置とを具備する。第一端末装置は、カメラ付きの端末である。第一端末装置は、例えば、携帯端末、携帯電話、ナビゲーション端末、監視カメラを具備する端末などである。つまり、第一端末装置は、移動する端末でも、固定された端末でも良い。第二端末装置は、移動体の移動に応じて移動する端末装置である。第二端末装置は、例えば、人が保持している携帯端末や携帯電話等、車載用のナビゲーション端末や社内の人が保持している携帯端末や携帯電話等である。
図1は、本実施の形態における情報システム1の概念図である。情報システム1は、サーバ装置11、1以上の第一端末装置12、および1以上の第二端末装置13を備える。
図2は、本実施の形態における情報システム1のブロック図である。図3は、情報システム1を構成する第一端末装置12のブロック図である。
サーバ装置11は、オブジェクト情報格納部111、第二端末情報格納部112、カレント第二端末情報格納部113、第一端末情報受信部114、カレント第二端末情報受信部115、距離算出部116、撮影第二端末決定部117、移動体情報取得部118、および移動体情報送信部119を備える。
また、第一端末装置12は、受付部121、カメラ部122、第一端末情報取得部123、第一送信部124、第一受信部125、および出力部126を備える。
第一端末情報取得部123は、第一位置情報取得手段1231、第一方向情報取得手段1232を備える。
また、出力部126は、カメラ映像出力手段1261、移動体情報出力手段1262を備える。
さらに、第二端末装置13は、第二端末識別子格納部131、第二端末情報取得部132、および第二送信部133を備える。
オブジェクト情報格納部111は、1以上のオブジェクト情報を格納し得る。オブジェクト情報は、オブジェクト識別子と、オブジェクトが存在する領域を示す領域情報とを有する情報である。オブジェクトとは、通常、地図上または地理上に現れるオブジェクトである地理オブジェクトである。オブジェクトは、例えば、店舗、建物、山、川、名勝、公園など、通常、動かないものである。オブジェクトは、例えば、ビルの中の店舗や会社などでも良い。オブジェクトは、地図上または地理上に現れるものであれば、内容は問わない。オブジェクト情報格納部111は、地図情報を格納していても良い。かかる場合、地図情報は1以上のオブジェクト情報を含む。オブジェクト識別子とはオブジェクトを識別する情報であり、例えば、オブジェクトの名称、オブジェクトを識別するID、オブジェクトについての情報が格納されているウェブページのURL、URIなどである。領域情報とは、通常、二次元の領域の情報である。ただし、領域情報は、三次元の領域の情報でも、一次元の情報(点の情報)でも良い。つまり、領域情報はオブジェクトの位置(点)を特定する位置情報(X,Y)でも良い。この(X,Y)は、例えば、(緯度,経度)であり、例えば、オブジェクトの領域の重心点を示す情報である。領域が矩形であるとする場合、領域情報は、例えば、矩形の左上点、右下点の位置情報(経度,緯度)の情報である。さらに、領域情報は、例えば、三次元のオブジェクトの立体図形(例えば、6面体)の頂点を構成する点(8点)の集合や、立体図形(例えば、6面体)の高さを有する4点の集合などである。領域情報が三次元の領域の情報である場合、通常、領域情報は、地図上での二次元の領域を示す二次元領域情報とオブジェクトの高さを示す高さ情報を有する。
オブジェクト情報格納部111は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
オブジェクト情報格納部111にオブジェクト情報が記憶される過程は問わない。例えば、記録媒体を介してオブジェクト情報がオブジェクト情報格納部111で記憶されるようになってもよく、通信回線等を介して送信されたオブジェクト情報がオブジェクト情報格納部111で記憶されるようになってもよく、あるいは、入力デバイスを介して入力されたオブジェクト情報がオブジェクト情報格納部111で記憶されるようになってもよい。
第二端末情報格納部112は、1以上の第二端末情報を格納し得る。第二端末情報は、第二端末装置13を識別する第二端末識別子と、移動体に関する情報である移動体情報とを有する。ここで、第二端末識別子とは、ID、電話番号、IPアドレス、MACアドレスなどである。また、移動体情報は、移動体が人である場合、例えば、人の氏名、性別、年齢、連絡先、人のブログのURLなどである。また、移動体情報は、移動体が自動車である場合、自動車の名前、メーカー名、自動車の持ち主の情報、自動車のメーカーのWebページなどである。ただし、移動体情報は、移動体や移動体を保持している人等に関する情報であれば、何でも良い。
第二端末情報格納部112は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。第二端末情報格納部112に第二端末情報が記憶される過程は問わない。例えば、記録媒体を介して第二端末情報が第二端末情報格納部112で記憶されるようになってもよく、通信回線等を介して、第二端末装置13から送信された第二端末情報が第二端末情報格納部112で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された第二端末情報が第二端末情報格納部112で記憶されるようになってもよい。
カレント第二端末情報格納部113は、カレント第二端末情報を1以上格納し得る。カレント第二端末情報は、第二端末識別子と、第二端末識別子により識別され得る第二端末装置13の位置を示す第二位置情報とを有する。カレント第二端末情報は、現在の第二端末装置13の位置を示す情報を含む。カレント第二端末情報は、第二端末装置13の大きさを示す情報、第二端末装置13が存在する領域の情報を含んでいても良い。また、第二位置情報とは、通常、(緯度,経度)であるが、地図上の相対座標(X,Y)など、位置を特定する情報であれば何でも良い。
カレント第二端末情報格納部113は、揮発性の記録媒体が好適であるが、不揮発性の記録媒体でも実現可能である。
第一端末情報受信部114は、第一端末装置12から、第一端末情報を受信する。第一端末情報は、第一端末装置12の位置を示す第一位置情報と第一端末装置12が向いている方向を示す第一方向情報とを有する。また、第一端末情報は、視野角を有することは好適である。第一位置情報とは、通常、(緯度,経度)の情報であるが、空間内の位置を示す情報でも良い。空間内の位置を示す情報は、例えば、(緯度,経度、高度)である。方向情報は、東西南北などの方位の情報を含んでも良い。また、第一方向情報は、端末の向き(上向き、下向きなど)を含んでも良い。第一方向情報は、例えば、56.2°(北を0°、東を90°とする方位)や、南南西などである。第一方向情報は、例えば、高さ方向の角度を含んでも良い。また、第一方向情報は、例えば、(Yaw,Pitch,Roll)などでも良い。(Yaw,Pitch,Roll)の「Yaw」は垂直軸に対する角度や先端の左右の揺れの度合い(長さなど)、「Pitch」は横軸に対する角度や先端の上下の揺れの度合い、「Roll」は縦軸に対する角度や第一端末装置12全体の左右の揺れの度合いである。なお、第一位置情報とは、例えば、GPS受信機により取得される。また、第一方向情報とは、例えば、コンパス、またはコンパスとジャイロにより取得される。第一方向情報や第一位置情報を取得する手段は問わない。さらに、第一端末情報は、第一端末装置12を識別する端末識別子(例えば、情報の送受信に用いられるIPアドレスや、電話番号や、IDや、MACアドレスなど)も含むことは好適である。第一端末情報受信部114は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
カレント第二端末情報受信部115は、第二端末装置13から、カレント第二端末情報を受信し、カレント第二端末情報格納部113に少なくとも一時蓄積する。ここで、カレント第二端末情報とは、第二端末装置13の第二端末識別子と、第二端末識別子により識別され得る第二端末装置13の第二位置情報とを含む。カレント第二端末情報は、移動体情報を含んでも良い。
カレント第二端末情報受信部115は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
距離算出部116は、オブジェクト情報格納部111の1以上のオブジェクト情報に対応する各オブジェクトと第一端末装置12との距離、およびカレント第二端末情報格納部113の1以上のカレント第二端末情報に対応する各第二端末装置13と第一端末装置12との距離を、各オブジェクトのオブジェクト情報と第一端末情報とが有する位置情報、または各第二端末装置13のカレント第二端末情報と第一端末情報とが有する位置情報とから、オブジェクトまたは第二端末装置13ごとに算出する。
ここで、距離とは、領域の重心の点と、第一端末情報が有する第一位置情報が示す位置との距離でも良いし、領域のいずれかの点と第一端末情報が有する第一位置情報が示す位置との距離でも良いし、第一端末情報が有する第一位置情報が示す位置に最も近い領域内の点との距離などでも良い。また、距離とは、カレント第二端末情報が有する第二位置情報が示す位置と、第一端末情報が有する第一位置情報が示す位置との距離などでも良い。
距離算出部116は、通常、MPUやメモリ等から実現され得る。距離算出部116の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
撮影第二端末決定部117は、第一端末情報が有する第一位置情報と、第一端末情報が有する第一方向情報と、予め格納されているまたは第一端末情報が有する視野角とを、オブジェクト情報格納部111の各オブジェクト情報の領域情報およびカレント第二端末情報格納部113の各カレント第二端末情報に適用し、第一端末装置12が撮影している1以上の第二端末装置13を決定する。ここで、視野角とは、カメラ部122が撮影可能な角度であり、平面上の角度でも良いし、高さ方向を含めた立体的な角度でも良い。立体的な角度とは、例えば、平面上の角度(θ1)と高さ方向の角度(θ2)とにより得られる。また、視野角は、撮影第二端末決定部117が予め格納していても良いし、第一端末情報に含まれていても良い。ここで、「第二端末装置13を決定する」とは、第二端末識別子を取得することでも良いし、第二端末情報の全部または一部を取得することでも良いし、第二端末情報を管理しているテーブルのレコードIDを取得すること等でも良い。つまり、「第二端末装置13を決定する」とは、第二端末装置13を特定する情報を取得することであれば良い。なお、撮影第二端末決定部117は、撮影しているオブジェクトを決定しても良い。オブジェクトの決定とは、例えば、オブジェクト識別子を取得することである。
撮影第二端末決定部117は、第一端末情報が有する第一位置情報および第一方向情報と、予め格納されているまたは第一端末情報が有する視野角とを用いて、三次元空間上での撮影領域を取得し、撮影領域を、オブジェクト情報格納部111の各オブジェクト情報の領域情報およびカレント第二端末情報格納部113の各第二端末装置13のカレント第二端末情報に適用し、第一端末装置12が撮影している1以上のオブジェクトおよび1以上の第二端末装置13を決定しても良い。そして、かかる場合、撮影第二端末決定部117は、1以上の第二端末装置13の決定の際に、第一端末装置12からの距離が近い順にオブジェクトおよび第二端末装置13を検査し、第一端末装置12が撮影しているとして先に決定したオブジェクトおよび第二端末装置13の撮影により不可視となる領域の情報を不可視領域として登録していき、可視領域がなくなった場合に、オブジェクトおよび第二端末装置13が第一端末装置12に撮影されているか否かの検査を終了する。
撮影第二端末決定部117は、各第二端末装置13のサイズを予め決められたサイズであるとして、第一端末情報が有する第一位置情報と、第一端末情報が有する第一方向情報と、予め格納されているまたは第一端末情報が有する視野角とを、オブジェクト情報格納部111の各オブジェクト情報の領域情報およびカレント第二端末情報格納部113の各第二端末装置13のカレント第二端末情報に適用し、第一端末装置12が撮影している1以上の第二端末装置13を決定することは好適である。
また、撮影第二端末決定部は、第一端末装置12からの距離が近い順にオブジェクトおよび第二端末装置13を検査し、第一端末装置12が撮影している1以上の第二端末装置を決定することは好適である。
また、撮影第二端末決定部は、第一端末装置12からの距離が近い順にオブジェクトおよび第二端末装置13を検査し、第一端末装置12が撮影しているとして先に決定したオブジェクトおよび第二端末装置13の撮影により不可視となる領域の情報を不可視領域として登録していき、可視領域がなくなった場合に、オブジェクトおよび第二端末装置13が第一端末装置12に撮影されているか否かの検査を終了することは好適である。
また、撮影第二端末決定部117は、第一端末装置12からの距離が近い順にオブジェクトおよび第二端末装置13を検査し、第一端末装置12が撮影しているとして先に決定したオブジェクトの撮影により不可視となる領域の情報を不可視領域として登録していき、可視領域のオブジェクトであり、かつ、第一端末装置12からの距離が閾値以内のオブジェクトおよび第二端末装置13のみを検査し、第一端末装置12が撮影している1以上の第二端末装置13を決定することは好適である。
また、撮影第二端末決定部117は、第一端末装置12からの距離が近い順にオブジェクトおよび第二端末装置13を検査し、第一端末装置12が撮影しているとして決定した第二端末装置13の数が閾値になった場合に、検査を終了することは好適である。
撮影第二端末決定部117は、通常、MPUやメモリ等から実現され得る。撮影第二端末決定部117の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
移動体情報取得部118は、撮影第二端末決定部117が決定した1以上の各第二端末装置13に対応する1以上の移動体情報を、第二端末情報格納部112から取得する。移動体情報取得部118は、例えば、撮影第二端末決定部117が取得した1以上の各第二端末識別子と対になる1以上の移動体情報を、第二端末情報格納部112から取得する。 移動体情報取得部118は、通常、MPUやメモリ等から実現され得る。移動体情報取得部118の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
移動体情報送信部119は、第二端末情報取得部132が取得した1以上の移動情報を、第一端末装置12に送信する。
移動体情報送信部119は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
第一端末装置12は、カメラを具備する端末である。
受付部121は、ユーザの指示やデータなどを受け付ける。指示とは、例えば、第一端末装置12の起動指示、カメラ部122に対する各種の指示などである。また、指示やデータなどの入力手段は、キーボードやマウスやメニュー画面によるもの等、何でも良い。受付部121は、キーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
カメラ部122は、映像を取得する。カメラ部122は、いわゆるカメラである。カメラ部122は、通常、現在、ファインダーに映っている映像を取得する。カメラ部122は、例えば、CCDカメラにより実現され得る。
第一端末情報取得部123は、第一端末装置12の位置を示す第一位置情報と、第一端末装置12が向いている方向を示す第一方向情報とを取得する。第一端末情報取得部123は、第一位置情報と第一方向情報と視野角を含む第一端末情報を取得しても良い。かかる場合、第一端末情報取得部123は、視野角を予め格納している。なお、視野角とは、視野角の情報と同意義である。視野角は、二次元の角度でも三次元の角度でも良い。なお、第一端末装置12(カメラ部122)の位置、方向、視野角が分かれば、撮影できる領域が分かる。つまり、第一端末情報は、カメラ部122が撮影する領域を特定する情報である。撮影する領域は、三次元の領域であることが好適であるが、二次元の領域でも良い。
第一端末情報取得部123を構成する第一位置情報取得手段1231は、第一端末装置12の位置を示す位置情報を取得する。第一位置情報取得手段1231は、例えば、GPS受信機により構成される。また、第一位置情報取得手段1231は、例えば、無線電波の受信手段と、3つ以上の基地局から受信した3つ以上の電波の強度から位置情報を取得する処理手段(例えば、MPUやメモリ等で構成される手段)とから構成されても良い。第一位置情報取得手段1231が第一位置情報を取得する方法は問わない。また、第一位置情報は、二次元上の位置でも良いし、三次元空間における位置でも良い。
第一方向情報取得手段1232は、第一端末装置12が向いている方向を示す第一方向情報を取得する。第一方向情報は、2次元上の向きを示す情報でも良いし、3次元上の方向(上下方向も含む)を示す情報でも良い。第一方向情報取得手段1232は、例えば、コンパスで実現される。また、第一方向情報取得手段1232は、例えば、コンパスとジャイロで実現される。
第一送信部124は、第一端末情報取得部123が取得した第一端末情報をサーバ装置11に送信する。第一送信部124は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
第一受信部125は、移動体情報をサーバ装置11から受信する。第一受信部125は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
出力部126は、カメラ部122が取得した映像を出力する。また、出力部126は、第一受信部125が受信した移動体情報を出力する。
出力部126を構成するカメラ映像出力手段1261は、カメラ部122が取得した映像を出力する。
また、移動体情報出力手段1262は、第一受信部125が受信した移動体情報を出力する。移動体情報出力手段1262は、移動体情報を、カメラ部122が取得した映像に重畳して出力することは好適である。また、移動体情報出力手段1262は、移動体情報を、カメラ部122が取得した映像中の移動体に対応付ける態様で、移動体情報を出力することは好適である。ここで、「移動体に対応付ける態様」とは、移動体と移動体情報とを矢印で対応付ける、移動体情報の背景色と移動体の背景色とを同色とする等である。
また、出力とは、通常、ディスプレイへの表示であるが、プロジェクターを用いた投影、プリンタへの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
出力部126は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。出力部126は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
第二端末識別子格納部131は、第二端末識別子を格納し得る。第二端末識別子は、例えば、ID、電話番号、MACアドレス、IPアドレス等である。
第二端末識別子格納部131は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。第二端末識別子格納部131に第二端末識別子が記憶される過程は問わない。
第二端末情報取得部132は、第二端末装置13の位置を示す第二位置情報を有する第二端末情報を取得する。第二端末情報取得部132は、例えば、GPS受信機により構成される。また、第二端末情報取得部132は、例えば、無線電波の受信手段と、3つ以上の基地局から受信した3つ以上の電波の強度から位置情報を取得する処理手段(例えば、MPUやメモリ等で構成される手段)とから構成されても良い。第二端末情報取得部132が第二位置情報を取得する方法は問わない。また、第二位置情報は、二次元上の位置でも良いし、三次元空間における位置でも良い。第二端末情報取得部132は、第二位置情報と、第二端末識別子を用いて、カレント第二端末情報を構成しても良い。
第二送信部133は、第二端末識別子と、第一端末情報取得部123が取得した第二端末情報とを有するカレント第二端末情報を、サーバ装置11に送信する。第二送信部133は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
次に、情報システム1の動作について説明する。まず、サーバ装置11の動作について、図4のフローチャートを用いて説明する。
(ステップS401)カレント第二端末情報受信部115は、第二端末装置13からカレント第二端末情報を受信したか否かを判断する。カレント第二端末情報を受信すればステップS402に行き、受信しなければステップS403に行く。
(ステップS402)カレント第二端末情報受信部115は、ステップS401で受信したカレント第二端末情報を、カレント第二端末情報格納部113に一時蓄積する。ステップS401に戻る。
(ステップS403)第一端末情報受信部114は、第一端末装置12から、第一端末情報を受信したか否かを判断する。第一端末情報を受信すればステップS404に行き、第一端末情報を受信しなければステップS401に戻る。
(ステップS404)撮影第二端末決定部117は、ステップS403で受信された第一端末情報を用いて、当該第一端末情報が有する位置情報および/または方向情報を、オブジェクト情報格納部111の各オブジェクト情報の領域情報、およびカレント第二端末情報格納部113に格納されている各カレント第二端末情報に適用し、第一端末装置12が撮影している(第一端末装置12のディスプレイに映っている)1以上の第二端末装置13を決定する。かかる処理を撮影第二端末決定処理という。なお、撮影第二端末決定部117は、予め格納されている視野角をも用いて、第一端末装置12が撮影している1以上の第二端末装置13を決定することは好適である。なお、第一端末装置12が撮影している第二端末装置13を撮影第二端末とも言う。撮影第二端末決定処理について、図5のフローチャートを用いて説明する。
(ステップS405)移動体情報取得部118は、カウンタiに1を代入する。
(ステップS406)移動体情報取得部118は、ステップS404で決定された撮影第二端末装置の中に、i番目の撮影第二端末装置が存在するか否かを判断する。i番目の撮影第二端末装置が存在すればステップS407に行き、i番目の撮影第二端末装置が存在しなければステップS409に行く。
(ステップS407)移動体情報取得部118は、i番目の撮影第二端末装置に対応する移動体情報を、第二端末情報格納部112から取得する。なお、移動体情報取得部118は、通常、取得した移動体情報を、バッファに追記する。
(ステップS408)移動体情報取得部118は、カウンタiを1、インクリメントする。ステップS406に戻る。
(ステップS409)移動体情報送信部119は、ステップS407で移動体情報を取得できたか否かを判断する。移動体情報を取得できればステップS410に行き、移動体情報を取得できなければステップS401に戻る。
(ステップS410)移動体情報送信部119は、ステップS407で取得された移動体情報を第一端末装置12に送信する。なお、移動体情報送信部119は、移動体情報が取得されなかった場合、その旨を第一端末装置12に送信しても良い。ステップS401に戻る。
なお、図4のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
また、図4のフローチャートにおいて、送信する移動体情報は、一つでも良い。つまり、移動体情報取得部118は、複数の移動体情報が存在する場合、第一端末装置12との距離が最も近い移動体に対応する移動体情報を選択したり、ユーザが画面上を指示した移動体に対応する移動体情報を選択したりしても良い。ユーザが画面上を指示する場合、第一端末情報に、ユーザが指示した画面上の座標値が含まれ、移動体情報取得部118は、かかる座標値を用いて、移動体を特定し、当該移動体に対応する移動体情報を選択する。なお、画面上の座標値を(緯度,経度)に変換する技術は公知技術である。つまり、移動体情報取得部118は、画面上の座標値を位置情報(緯度,経度)に変換し、当該位置情報に一致するまたは最も近い第二位置情報を有する移動体(第二端末装置13)に対応する移動体情報を選択する。
次に、ステップS404の撮影第二端末決定処理について、図5のフローチャートを用いて説明する。
(ステップS501)撮影第二端末決定部117は、ステップS403で受信された第一端末情報が有する第一位置情報を取得する。
(ステップS502)撮影第二端末決定部117は、ステップS403で受信された第一端末情報が有する第一方向情報と、視野角とを用いて、撮影されない角度を取得する。そして、撮影第二端末決定部117は、かかる角度(不可視領域の角度)を記録媒体に登録(記録)する。例えば、第一方向情報が90度(例えば、真東)であり、視野角が40度である場合、撮影される角度は「70度から110度」である。したがって、撮影第二端末決定部117は、「0<=不可視領域の角度<70」および「110<不可視領域の角度<=360」を登録する。なお、ここで、撮影第二端末決定部117は、撮影される角度(可視領域の角度)を取得し、登録しても良い。つまり、可視領域の角度の登録も、不可視領域の角度の登録と同意義である、とする。
(ステップS503)撮影第二端末決定部117は、ステップS501で取得した第一位置情報を用いて、第一端末装置12から近いオブジェクトまたは第二端末装置13の順に、オブジェクト情報格納部111のオブジェクト情報および、カレント第二端末情報格納部113のカレント第二端末情報をソートする。かかる処理をオブジェクト等ソート処理という。オブジェクト等ソート処理について、図6のフローチャートを用いて説明する。
(ステップS504)撮影第二端末決定部117は、カウンタiに1を代入する。
(ステップS505)撮影第二端末決定部117は、ステップS503でソートされたオブジェクト情報またはカレント第二端末情報の中に、i番目のオブジェクト情報または第二端末情報(以下、「オブジェクト等」とも言う)が存在するか否かを判断する。i番目のオブジェクト等が存在すればステップS506に行き、i番目のオブジェクト等が存在しなければ上位処理にリターンする。
(ステップS506)撮影第二端末決定部117は、ソートされたオブジェクト情報または第二端末情報の中から、i番目のオブジェクト情報または第二端末情報が有する領域情報または第二位置情報(領域情報等という。)を取得する。
(ステップS507)撮影第二端末決定部117は、ステップS501で取得した第一位置情報と、ステップS505で取得した領域情報または第二位置情報とを用いて、i番目のオブジェクトまたは第二端末装置13が、第一端末装置12のディスプレイに映っているか否かを判断する。かかる判断を、可視判断処理という。可視判断処理について、図7、図8のフローチャートを用いて説明する。なお、第一端末装置12のディスプレイに映っているオブジェクトを撮影オブジェクトといい、第一端末装置12のディスプレイに映っている第二端末装置13を、撮影第二端末という。また、撮影オブジェクトと撮影第二端末を撮影第二端末等とも言う。
(ステップS508)撮影第二端末決定部117は、ステップS506における判断の結果、i番目のオブジェクトまたは第二端末装置13が撮影第二端末であればステップS509に行き、撮影第二端末でなければステップS510に行く。なお、本ステップにおいて、撮影オブジェクトの場合は、すべてステップS510にジャンプする。
(ステップS509)撮影第二端末決定部117は、少なくとも、i番目の第二端末装置13の第二端末識別子を図示しない記憶媒体に格納する。
(ステップS510)撮影第二端末決定部117は、登録されている不可視領域、または可視領域から、可視領域が存在するか否かを判断する。可視領域が存在すればステップS511に行き、存在しなければ上位処理にリターンする。なお、かかる判断は、二次元平面において行われても良いし、三次元空間において行われても良い。
(ステップS511)撮影第二端末決定部117は、カウンタiを1、インクリメントする。ステップS505に戻る。
なお、図5のフローチャートにおいて、不可視領域の角度を登録したが、可視領域の角度を登録し、以後、かかる角度に入いるオブジェクトのみを処理対象としても良い。
また、図5のフローチャートのステップS510において、撮影第二端末決定部117は、第一端末装置12からの距離が近い順(範囲や角度を区切った中のオブジェクトまたは第二端末装置13の集合の中での近い順でも良い)にオブジェクト等を検査し、第一端末装置12が撮影しているとして先に決定したオブジェクトまたは第二端末装置13の撮影により不可視となる領域の情報を不可視領域として登録していき、可視領域がなくなった場合(すべてが不可視領域になった場合と同意義)に、オブジェクトまたは第二端末装置13が第一端末装置12に撮影されているか否かの検査を終了することを説明した。
また、具体的には、ステップS510の処理は、以下である。つまり、撮影第二端末決定部117は、第一端末装置12から近い順にオブジェクト等を検査し、第一端末装置12が撮影しているとして先に決定したオブジェクトまたは第二端末装置13(第二端末等)の撮影により不可視となる領域の情報(ここでは、通常、後述の最小角度(θ1)および最大角度(θ2))を不可視領域として登録し、次に検査する第二端末等と、第一端末装置12とにより不可視領域となる領域の情報を取得し、最小角度(θ3)および最大角度(θ4)により特定される領域のすべてが既に不可視領域として登録されているか否かを判断し、不可視領域として登録されていなければ次に検査する第二端末等を第一端末装置12が撮影しているとして決定し、当該最小角度(θ3)および最大角度(θ4)により特定される領域を不可視領域として登録する処理を繰り返し、第一端末情報が有する視野角すべての領域が不可視領域となった場合に、第二端末等の検査を終了することである。
さらに、図5のフローチャートにおいて、可視領域が存在しなくなった場合に、撮影されている第二端末等の検知処理を終了した。しかし、閾値の数だけ、可視領域内の第二端末装置13が見つかった場合、予め決められた条件(例えば、ユーザが指示した移動体、特定の移動体など)に合致する第二端末装置13が見つかった場合、第一端末装置12の距離から所定以内の距離にある第二端末装置13のみを検査対象とするなど、他の条件により、オブジェクト等の検知処理を終了しても良い。
次に、ステップS503のオブジェクト等ソート処理について、図6のフローチャートを用いて説明する。
(ステップS601)距離算出部116は、カウンタiに1を代入する。
(ステップS602)距離算出部116は、オブジェクト情報格納部111およびカレント第二端末情報格納部113に、i番目のオブジェクト情報またはカレント第二端末情報が存在するか否かを判断する。i番目のオブジェクト情報等が存在すればステップS603に行き、i番目のオブジェクトが存在しなければステップS607に行く。なお、距離算出部116は、第一に、オブジェクト情報格納部111のオブジェクト情報を順次処理し、オブジェクト情報格納部111のオブジェクト情報の処理が完了した後、カレント第二端末情報格納部113のカレント第二端末情報を順次処理する。
(ステップS603)距離算出部116は、i番目のオブジェクト情報等が有する位置情報(領域情報や第二位置情報でも良い)を、オブジェクト情報格納部111またはカレント第二端末情報から取得する。なお、i番目のオブジェクト情報等が有する位置情報は、i番目のオブジェクト情報またはカレント第二端末情報に含まれる。
(ステップS604)距離算出部116は、第一端末情報が有する第一位置情報が示す地点と、ステップS603で取得した位置情報が示す地点との距離を算出する。なお、ステップS603で取得した位置情報は、例えば、領域情報の代表点(例えば、重心や第一位置情報に最も近い点の位置情報等)である。
(ステップS605)距離算出部116は、ステップS604で取得した距離とi番目のオブジェクトのオブジェクト情報(またはそのうちの一部の情報)とを対にして、図示しない記録媒体に一時的に格納する。また、距離算出部116は、ステップS604で取得した距離とi番目のカレント第二端末情報(またはそのうちの一部の情報)とを対にして、図示しない記録媒体に一時的に格納する。
(ステップS606)距離算出部116は、カウンタiを1、インクリメントする。ステップS602に戻る。
(ステップS607)撮影第二端末決定部117は、距離をキーとして、距離の近い(小さい)順に、オブジェクト情報またはカレント第二端末情報をソートする。上位処理にリターンする。なお、ソートするオブジェクト情報またはカレント第二端末情報は、オブジェクト情報またはカレント第二端末情報の一部の情報でも良い。
次に、ステップS506の可視判断処理について、図7のフローチャートを用いて説明する。なお、ここでの可視判断処理は、第一の可視判断処理である。第一の可視判断処理は、オブジェクトおよび第二端末装置13の平面的な情報のみを用いて、オブジェクトまたは第二端末装置13が第一端末装置12のディスプレイに出力されているか否かを判断する処理である。
(ステップS701)撮影第二端末決定部117は、カウンタiに1を代入する。
(ステップS702)撮影第二端末決定部117は、判断対象となるオブジェクトの領域情報またはカレント第二端末情報の中にi番目の点が存在するか否かを判断する。i番目の点が存在すればステップS703に行き、i番目の点が存在しなければステップS705に行く。なお、領域情報は、例えば、その外形を示す点から構成されるとする。外形を示す点とは、領域情報が示す領域が4角形であれば4点存在し、8角形であれば8点存在する。点とは、通常、(緯度,経度)または(x座標、y座標)などで示される。
(ステップS703)撮影第二端末決定部117は、i番目の点と第一位置情報(第一端末情報が有する第一位置情報)との角度(θ)を算出し、当該角度(θ)をバッファに一時記憶する。角度(θ)の基準は、例えば、真北である。ただし、基準は一定であれば良く、真北であるとは限らない。なお、上記の第一位置情報とは、第一端末装置12の位置を示す情報である。
(ステップS704)撮影第二端末決定部117は、カウンタiを1、インクリメントする。ステップS702に戻る。
(ステップS705)撮影第二端末決定部117は、ステップS703でバッファに一時格納された角度(θ)から、最小の角度(θ1)と最大角度(θ2)とを取得する。なお、撮影第二端末決定部117は、ステップS703でバッファに一時格納された角度(θ)が一つの場合、当該一つの角度を取得する。
(ステップS706)撮影第二端末決定部117は、ステップS705で取得した最小の角度(θ1)と最大角度(θ2)の領域すべてが、既に登録されている角度の領域であるか否かを判断する。既に登録されている角度の領域であればステップS710に行き、既に登録されている角度の領域を一部でも含まない場合はステップS707に行く。なお、ステップS705で取得した角度が一つの場合、撮影第二端末決定部117は、当該角度が既に登録されている角度の領域であるか否かを判断する。
(ステップS707)撮影第二端末決定部117は、このオブジェクトまたは第二端末装置13は撮影されている、と判断する。リターン値として、例えば、撮影オブジェクトまたは撮影第二端末である旨の情報(例えば、「1」)を代入する。
(ステップS708)撮影第二端末決定部117は、このオブジェクトまたは第二端末装置13を撮影オブジェクトであるとしたために、現在、不可視領域として登録されている角度に加え、最小の角度(θ1)と最大角度(θ2)の領域を不可視領域とする角度の幅(領域)を取得する。なお、例えば、現在、「30度から40度」が登録されており、最小の角度(θ1)が35度であり、最大角度(θ2)が45度である場合、撮影第二端末決定部117は、「30度から45度」を取得する。また、例えば、現在、「30度から40度」が登録されており、最小の角度(θ1)が55度であり、最大角度(θ2)が60度である場合、「55度から60度」を取得する。
(ステップS709)撮影第二端末決定部117は、ステップS708で取得した角度を登録する。なお、例えば、上記において、「30度から45度」は、「30度から40度」の情報に上書きされる。また、例えば、上記において、「55度から60度」が追記される。上位処理にリターンする。このとき、リターン値(撮影オブジェクトを示す値)も返される。
(ステップS710)撮影第二端末決定部117は、撮影第二端末決定部117は、このオブジェクトまたは第二端末装置13を撮影されていない、と判断する。リターン値として、非撮影オブジェクトまたは非撮影第二端末である旨の情報(例えば、「0」)を代入する。上位処理にリターンする。このとき、リターン値(非撮影オブジェクトまたは非撮影第二端末を示す値)も返される。
次に、ステップS506の可視判断処理について、図8のフローチャートを用いて説明する。なお、ここでの可視判断処理は、第二の可視判断処理である。第二の可視判断処理は、オブジェクトの立体的な情報、またはオブジェクトと第二端末装置13の立体的な情報を用いて、オブジェクトまたは第二端末装置13が第一端末装置12のディスプレイに出力されているか否かを判断する処理である。図8のフローチャートにおいて、図7のフローチャートと同様のステップについて、説明を省略する。
(ステップS801)撮影第二端末決定部117は、i番目の点(x1,y1,z1)と第一位置情報(x0,y0,z0)との高さ方向の角度(θh)を算出し、バッファに格納する。
(ステップS802)撮影第二端末決定部117は、視点(位置情報)からの高さ方向の角度(θ3)を取得する。θ3は、ステップS801で格納したθhのうち、最大の角度である。
(ステップS803)撮影第二端末決定部117は、最小の角度(θ1)と最大角度(θ2)の領域において、高さ方向の角度(θ3)以上の角度が既に、登録されているか否かを判断する。登録されていればステップS710に行き、登録されていなければステップS707に行く。高さ方向の角度(θ3)以上の角度が既に登録されている場合は、対象となるオブジェクトまたは第二端末装置13は不可視領域にあり、撮影オブジェクトまたは撮影第二端末ではないことを示す。
(ステップS804)撮影第二端末決定部117は、このオブジェクトまたは第二端末装置13を撮影第二端末等であるとしたために、現在、不可視領域として登録されている角度に加え、最小角度(θ1)と最大角度(θ2)の平面領域を不可視領域とする角度の幅(領域)を取得する。なお、例えば、現在、「30度から40度」が登録されており、最小の角度(θ1)が35度であり、最大角度(θ2)が45度である場合、撮影第二端末決定部117は、「30度から45度」を取得する。
(ステップS805)撮影第二端末決定部117は、このオブジェクトまたは第二端末装置13を撮影第二端末等であるとしたために、高さ方向の角度(θ3)を取得する。なお、例えば、現在、最小の角度(θ1)と最大角度(θ2)の平面領域において、高さの角度「30度」が登録されている場合、取得した高さ方向の角度(θ3)が「35度」であれば、「35度」を取得する。
(ステップS806)撮影第二端末決定部117は、ステップS804で取得した平面領域の角度(例えば、「30度から45度」)と、高さ方向の角度(例えば、「35度」)を対応付けて蓄積(登録)する。上位処理にリターンする。このとき、リターン値も返される。なお、撮影第二端末決定部117は、最小角度(θ1)と最大角度(θ2)の平面領域において、現在、不可視領域として登録されている高さ方向の角度が、高さ方向の角度(θ3)以上であるか否かを判断し、高さ方向の角度(θ3)以上であれば、高さ方向の角度(θ3)を蓄積しない。
次に、第一端末装置12の動作について、図9のフローチャートを用いて説明する。
(ステップS901)受付部121は、指示等を受け付けたか否かを判断する。指示等を受け付ければステップS902に行き、指示等を受け付けなければステップS901に戻る。
(ステップS902)受付部121は、ステップS901で受け付けた指示が起動指示であるか否かを判断する。起動指示であればステップS903に行き、起動指示でなければステップS911に行く。なお、起動指示とは、第一端末装置12の起動の指示である。
(ステップS903)カメラ部122は、カメラ映像を取得する。
(ステップS904)出力部126のカメラ映像出力手段1261は、カメラ部122が取得した映像を出力する。
(ステップS905)第一端末情報取得部123の第一位置情報取得手段1231は、第一端末装置12の位置を示す第一位置情報を取得する。
(ステップS906)第一方向情報取得手段1232は、第一端末装置12が向いている方向を示す第一方向情報を取得する。
(ステップS907)第一端末情報取得部123は、ステップS905で取得した第一位置情報と、ステップS906で取得した第一方向情報とを有する第一端末情報を構成する。なお、第一端末情報取得部123は、予め格納している視野角を含む第一端末情報を構成することは好適である。
(ステップS908)第一送信部124は、ステップS907で構成した第一端末情報(通常、最新の第一端末情報)をサーバ装置11に送信する。
(ステップS909)第一受信部125は、第一端末情報の送信に対応して、1以上の移動体情報を受信したか否かを判断する。移動体情報を受信すればステップS910に行き、移動体情報を受信しなければステップS909に戻る。なお、ここで、一定時間以上移動体情報を受信しなければ、ステップS901に戻ることは好適である。
(ステップS910)出力部126は、ステップS912で受信された1以上の移動体情報を出力する。ステップS901に戻る。
なお、移動体情報が存在しない場合、出力部126は、何も出力しないことは好適である。また、出力部126は、例えば、1以上の移動体情報を、カメラ上の領域以外の領域に出力し、かつ、1以上の移動体情報に対応するカメラ映像上のオブジェクトを、他のオブジェクトと視覚的に区別できる態様で出力することは好適である。
(ステップS911)受付部121は、ユーザから、その他の指示を受け付けたか否かを判断する。その他の指示を受け付ければステップS912に行き、その他の指示を受け付けなければステップS901に戻る。
(ステップS912)図示しない手段は、その他の指示に対応する動作を行う。ステップS901に戻る。
なお、図9のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
また、図9のフローチャートにおいて、ユーザの指示により、第一端末情報をサーバ装置11に送信するようにしても良い。
次に、第二端末装置13の動作について説明する。第二端末装置13の第二端末情報取得部132は、第二端末識別子格納部131の第二端末識別子を読み出す。そして、第二端末情報取得部132は、第二位置情報を取得する。次に、第二端末情報取得部132は、第二端末識別子と第二位置情報とを有するカレント第二端末情報を構成する。次に、第二送信部133は、カレント第二端末情報をサーバ装置11に送信する。なお、カレント第二端末情報には、第二端末装置13のユーザが第三者に公開しても良いと考えている情報が含まれていても良い。かかる情報を第二端末公開情報という。第二端末公開情報は、例えば、第二端末情報取得部132に予め格納されている。第二端末公開情報は、例えば、第二端末装置13のユーザの氏名や年令等、何でも良い。
なお、第二端末装置13は、第二端末公開情報(移動体情報)を直接に、第一端末装置12に送信しても良い。かかる場合、第一端末装置12は、第二端末装置13から第二端末識別子と移動体情報を受信し、かつ、サーバ装置11から受信した撮影第二端末を特定する第二端末識別子に対応する移動体情報を選択し、出力する。
以下、本実施の形態における情報システム1の具体的な動作について説明する。情報システム1の概念図は図1である。情報システム1において、カメラで撮影している画像に含まれる移動体(第二端末装置13)に関する情報を表示できる。
以下、2つの具体例を用いて、情報システム1について説明する。具体例1は、オブジェクトや第二端末装置13の高さまでは考慮せず、オブジェクト等の平面的な情報のみを考慮して、撮影されている映像の中に含まれる第二端末装置13を認識し、当該第二端末装置13に関する情報を出力する態様である。具体例2は、オブジェクトや第二端末装置13の高さ(オブジェクの高さだけでも良い。つまり、オブジェクトは高さを考慮し、第二端末装置13の高さは考慮しなくても良い)をも考慮して、撮影されている映像の中に含まれる第二端末装置13を認識し、当該第二端末装置13に関する情報を出力する態様である。
(具体例1)
今、サーバ装置11のオブジェクト情報格納部111は、図10に示すオブジェクト情報管理表を保持している。オブジェクト情報管理表は、地図上のオブジェクト情報を管理している表である。オブジェクト情報管理表は、「オブジェクト識別子」「オブジェクト名」「位置情報」「領域情報」などの属性値を有するレコードを1以上、管理している。「オブジェクト識別子」は、ここでは、オブジェクトのIDである。「オブジェクト名」は、オブジェクトの名称を示す。「位置情報」は、オブジェクトの位置を特定する情報であり、ここでは、(緯度,経度)である。「領域情報」は、オブジェクトが配置されている二次元領域を示す情報であり、ここでは、多角形であるオブジェクトの3以上の頂点を示す。頂点も、ここでは、(緯度,経度)である。
また、第一端末装置12は、ここでは、2つのディスプレイを有する端末である、とする。なお、第一端末装置12は、一つのディスプレイを有する端末であっても良いし、3つ以上のディスプレイを有する端末であっても良い。
また、サーバ装置11の第二端末情報格納部112は、図11に示す第二端末情報管理表を保持している。第二端末情報管理表は、「第二端末識別子」「移動体情報」を有するレコードを1以上、保持している。「移動体情報」は、「名前」「年令」「性別」などの属性値を有する。
そして、ある人「ABC」が保持している第二端末装置13の第二端末情報取得部132は、第二位置情報(X21,Y21)を取得する、とする。次に、第二端末情報取得部132は、第二端末識別子「09014445111」を第二端末識別子格納部131から読み出す。そして、第二端末情報取得部132は、カレント第二端末情報「09014445111,(X21,Y21)」を構成する。
次に、第二送信部133は、カレント第二端末情報「09014445111,(X21,Y21)」を、サーバ装置11に送信する。なお、第二送信部133は、サーバ装置11と通信するための情報(例えば、サーバ装置11のIPアドレス)を予め保持している、とする。
なお、第二端末装置13は、定期的(例えば、1回/秒)に、カレント第二端末情報を構成し、サーバ装置11に送信する。
次に、サーバ装置11のカレント第二端末情報受信部115は、カレント第二端末情報「09014445111,(X21,Y21)」を受信する。そして、カレント第二端末情報受信部115は、受信したカレント第二端末情報「09014445111,(X21,Y21)」を、カレント第二端末情報格納部113に一時蓄積する。
そして、ユーザは、第一端末装置12を起動した、とする。すると、受付部121は、起動指示を受け付ける。そして、カメラ部122は、カメラ映像を取得する。そして、出力部126のカメラ映像出力手段1261は、カメラ部122が取得した映像を出力する。すると、図12に示すように、第一端末装置12の第一のディスプレイ(上部のディスプレイ)に、外界の映像が出力される。図12において、移動体は人である。また、図12において、人は、第二端末装置13を保持している。第二端末装置13の第二端末識別子格納部131には、第二端末識別子「09014445111」が格納されている。つまり、映っている人は「ABC」である。
次に、ユーザは、映っている人がどこかで見たことがある人だと思い、第一端末装置12に、その人の情報を取得する指示である移動体情報取得指示を入力した、とする。
次に、受付部121は、移動体情報取得指示を受け付ける。移動体情報取得指示は、指示された座標情報(x1,y1)を具備する。そして、第一端末情報取得部123の第一位置情報取得手段1231は、第一端末装置12の位置を示す第一位置情報(X,Y)と座標情報(x1,y1)とを取得する。
次に、第一方向情報取得手段1232は、第一端末装置12が向いている方向を示す第一方向情報(θA)を取得する。第一方向情報(θA)は、例えば、真北から時計回りの角度(真東は90度)を示す。
また、第一端末情報取得部123は、カメラ部122が有する視野角の情報(単に「視野角」という)を読み出す。ここでは、視野角は「θa」である、とする。また、カメラ部122は、予め視野角「θa」を格納している。とする。
次に、第一端末情報取得部123は、取得した第一位置情報(X,Y)と、座標情報(x1,y1)と、取得した第一方向情報(θx)と、視野角(θa)とを有する第一端末情報(X,Y,x1,y1,θA,θa)を構成する。
次に、第一送信部124は、構成した第一端末情報(X,Y,x1,y1,θA,θa)をサーバ装置11に送信する。
次に、サーバ装置11の第一端末情報受信部114は、第一端末装置12から、第一端末情報(X,Y,x1,y1,θA,θa)を受信する。
次に、撮影第二端末決定部117は、以下のように、撮影オブジェクトを決定する。つまり、撮影第二端末決定部117は、受信された第一端末情報が有する第一位置情報(X,Y)を取得する。
次に、撮影第二端末決定部117は、端末情報が有する方向情報(θA)と視野角(θa)とを用いて、不可視領域となる角度を算出する。撮影第二端末決定部117は、「(θA−(θa/2))<=可視領域<=(θA+(θa/2))」を可視領域となる角度として決定する。そして、可視領域を除く角度を不可視領域角度として算出し、蓄積する。かかる概念を図13に示す。なお、可視領域が真北のラインをまたがっていない場合、不可視領域角度は「0<=不可視領域角度<(θA−(θa/2))」および「(θA+(θa/2))<不可視領域角度<=360」である。また、可視領域が真北のラインをまたがっている場合、不可視領域角度は「(θA+(θa/2))<不可視領域角度<(θA−(θa/2))」である。
そして、距離算出部116が、第一端末装置12の第一位置情報(X,Y)を用いて、第一端末装置12と各オブジェクトまたは第二端末装置13との距離を算出する。そして、撮影第二端末決定部117は、距離算出部116が算出した距離を用いて、第一端末装置12から近いオブジェクトまたは第二端末装置13の順に、オブジェクト情報格納部111のオブジェクト情報および第二端末情報をソートする。ソート処理については、図6で説明した処理により行う。ソート処理の結果、例えば、撮影第二端末決定部117は、図14に示すようなオブジェクト等一時管理表を取得する。オブジェクト等一時管理表の各レコードは、「識別子」と「距離」と「フラグ」とを有する。距離は、第一位置情報(X,Y)が示す点とオブジェクトまたは第二端末装置13の位置情報が示す点との距離である。識別子とは、オブジェクト識別子または第二端末識別子である。フラグとは、オブジェクト等一時管理表の中のレコードがオブジェクトの情報か第二端末装置13の情報かを区別する情報である。オブジェクトの情報である場合はフラグ「0」、第二端末装置13の情報である場合はフラグ「1」である。なお、撮影第二端末決定部117は、ソート処理の際に、利用する位置情報を、オブジェクト情報格納部111から取得した場合にはフラグに「0」を代入し、カレント第二端末情報格納部113から取得した場合にはフラグに「1」を代入する。
次に、撮影第二端末決定部117は、オブジェクト等一時管理表の上位のレコードから、撮影されているか否かを判断していく。
つまり、撮影第二端末決定部117は、オブジェクト等一時管理表の1番目のレコードの識別子「1」を読み出す。そして、当該識別子「1」をキーとして、オブジェクト情報管理表またはカレント第二端末情報格納部113を検索し、識別子「1」と対になる領域情報「(x1,y1)(x2,y2)(x3,y3)(x4,y4)」を取得する。
次に、撮影第二端末決定部117は、受信された第一端末情報(X,Y,x1,y1,θA,θa)と、取得した領域情報「(x1,y1)(x2,y2)(x3,y3)(x4,y4)」とを用いて、1番目のオブジェクトまたは第二端末装置13が、撮影オブジェクト等であるか否かを判断する。
まず、撮影第二端末決定部117は、判断対象となるオブジェクト等(識別子「1」のオブジェクト等)の領域情報の中の1番目の点(x1,y1)を取得する。
次に、撮影第二端末決定部117は、1番目の点(x1,y1)と第一位置情報(X,Y)との角度(θ1)を算出し、当該角度(θ1)をバッファに一時記憶する。同様に、撮影第二端末決定部117は、判断対象となるオブジェクト等(識別子「1」のオブジェクト等)の領域情報の中の2番目の点から4番目の各点と第一位置情報(X,Y)との角度(θ2,θ3,θ4)を算出し、当該角度(θ2,θ3,θ4)もバッファに一時記憶する。バッファには、(θ1,θ2,θ3,θ4)が格納されたことになる。
次に、撮影第二端末決定部117は、バッファに一時格納された角度(θ1,θ2,θ3,θ4)から、最小角度(例えば、(θ1))と最大角度(例えば、(θ4))とを取得する。
次に、撮影第二端末決定部117は、取得した最小角度(θ1)と最大角度(θ4)の領域すべてが、既に登録されている角度の領域(「(θA−(θa/2))<=可視領域<=(θA+(θa/2))」を除く角度)であるか否かを判断する。ここで、撮影第二端末決定部117は、取得した最小角度(θ1)と最大角度(θ4)の領域は、可視領域であると判断した、とする。そして、撮影第二端末決定部117は、識別子「1」のオブジェクトは、撮影オブジェクトであると判断する。
次に、撮影第二端末決定部117は、「θ1<=不可視領域<=θ4」を新たな不可視領域とする。つまり、撮影第二端末決定部117は、例えば、「0<=不可視領域角度<(θA−(θa/2))」および「(θA+(θa/2))<不可視領域角度<=360」と「θ1<=不可視領域<=θ4」とをマージした不可視領域角度を記録媒体に登録する。ここで、マージとは、今までの不可視領域に、「θ1<=不可視領域<=θ4」を加えることであり、今までの不可視領域が「θ1<=不可視領域<=θ4」を含む場合もあるし、含まない場合もある。なお、ここで、撮影第二端末決定部117は、1番目のオブジェクトの識別子「1」を図示しない記憶媒体に格納しても良い。
次に、撮影第二端末決定部117は、登録されている不可視領域、または可視領域から、可視領域が存在する、と判断する。
次に、撮影第二端末決定部117は、オブジェクト等一時管理表の2番目の識別子「09014445111」を取得し、当該識別子「09014445111」をキーとして、オブジェクト情報管理表を検索するが、情報を取得できない。次に、撮影第二端末決定部117は、識別子「09014445111」をキーとして、カレント第二端末情報格納部113を検索する。そして、撮影第二端末決定部117は、識別子「09014445111」と対になる第二位置情報(X21,Y21)を、カレント第二端末情報格納部113から取得する。
次に、撮影第二端末決定部117は、受信された端末情報(X,Y,x1,y1,θA,θa)と、取得した第二位置情報(X21,Y21)とを用いて、2番目の識別子「09014445111」で識別される第二端末装置13が、撮影第二端末か否かを判断する。
まず、撮影第二端末決定部117は、判断対象となる第二端末装置13の第二位置情報(X21,Y21)を取得する。
次に、撮影第二端末決定部117は、第二位置情報(X21,Y21)と第一位置情報(X,Y)との角度(θ101)を算出し、当該角度(θ101)をバッファに一時記憶する。そして、バッファには、(θ101)が格納された。なお、第二端末装置13の第二端末情報は、ここでは、一の点の情報のみ有するが、2以上の点の情報(領域の情報)を有しても良い。
次に、撮影第二端末決定部117は、取得した角度(θ101)が、既に登録されている角度の領域であるか否かを判断する。そして、撮影第二端末決定部117は、角度(θ101)が、既に登録されていない角度の領域であると、判断したとする。したがって、撮影第二端末決定部117は、識別子「09014445111」の第二端末装置13は撮影第二端末である、と決定する。
次に、移動体情報取得部118は、撮影第二端末装置「09014445111」に対応する移動体情報「名前:ABC,年令:29,性別:男・・・」を、第二端末情報格納部112から取得する。
なお、撮影第二端末決定部117は、第二端末装置13で不可視となる領域は、登録しない方が好適である。第二端末装置13は移動体であり、常時、移動することが予測されるからである。
次に、撮影第二端末決定部117は、識別子「09014445111」を図示しない記憶媒体に格納する。
以上の処理を、3番目以降のオブジェクトまたは第二端末装置13に対しても繰り返す。そして、識別子「09014445111」に対応する移動体情報のみが得られた、とする。
次に、移動体情報送信部119は、取得された移動体情報「名前:ABC,年令:29,性別:男・・・」を第一端末装置12に送信する。
次に、第一端末装置12の第一受信部125は、第一端末情報の送信に対応して、移動体情報「名前:ABC,年令:29,性別:男・・・」を受信する。
そして、出力部126は、受信された移動体情報「名前:ABC,年令:29,性別:男・・・」を出力する。例えば、出力部126は、図15に示すように、移動体情報を出力する。
なお、図15において、移動体情報は、カメラ画像とは独立に、異なるディスプレイに出力された。しかし、図16に示すように、出力部126は、移動体情報を、カメラ部122が取得した映像に重畳して出力することは好適である。なお、かかる場合、サーバ装置11または第一端末装置12の図示しない手段(変換手段)が、第二端末情報が有する第二位置情報(例えば、(緯度,経度))を、第一端末装置12のディスプレイ上の座標情報(相対座標情報)に変換する必要がある。つまり、変換手段は、第二位置情報(例えば、(緯度,経度))、および第一端末情報(第一位置情報(例えば、(緯度,経度))、視野角、解像度等)から、第二位置情報に対応する第一端末装置12のディスプレイ上での相対座標を算出する。そして、出力部126は、ディスプレイ上での相対座標に映っている第二端末装置13に対応付けて、移動体情報を出力する。なお、位置情報(緯度,経度)から、ディスプレイ上の相対座標を算出する技術は、ナビゲーション端末等が有する公知技術であるので、詳細な説明を省略する。なお、サーバ装置11が相対座標を算出する場合、相対座標は、サーバ装置11から第一端末装置12に送信される移動体情報に含まれるものとする。
また、図15において、出力部126は、座標情報(x1,y1)の位置に、移動体情報を出力しても良い。
また、上記において、座標情報(x1,y1)の位置に対応する移動体についての移動体情報のみを、サーバ装置11が選択し、第一端末装置12で出力されても良い。
さらに、上記において、複数の移動体情報が受信された場合、第二端末装置13からの距離が最も近い第二端末装置13の移動体情報のみを出力しても良い。また、第二端末装置13の最も中央部に存在する第二端末装置13の移動体情報のみを出力しても良い。
(具体例2)
今、サーバ装置11のオブジェクト情報格納部111は、図17に示すオブジェクト情報管理表を保持している。オブジェクト情報管理表は、地図上のオブジェクト情報を管理している表である。オブジェクト情報管理表は、「オブジェクト識別子」「オブジェクト名」「位置情報」「領域情報」などの属性値を有するレコードを1以上、管理している。図17において、図10のオブジェクト情報管理表との差異は、領域情報を構成する各点が高さ情報(z)を有している点である。
また、第一端末装置12は、2つのディスプレイを有する端末である、とする。
また、サーバ装置11の第二端末情報格納部112は、図11に示す第二端末情報管理表を保持している。第二端末情報管理表は、「第二端末識別子」「移動体情報」を有するレコードを1以上、保持している。「移動体情報」は、「名前」「年令」「性別」などの属性値を有する。
かかる場合、ユーザは、第一端末装置12を起動した、とする。すると、受付部121は、起動指示を受け付ける。そして、カメラ部122は、カメラ映像を取得する。そして、出力部126のカメラ映像出力手段1261は、カメラ部122が取得した映像を出力する。すると、図18に示すように、第一端末装置12の第一のディスプレイ(上部のディスプレイ)に、外界の映像が出力される。なお、図18において、1801は自動車であり、当該自動車1801には、第二端末装置13が搭載されている。第二端末装置13は、例えば、ナビゲーション端末である。第二端末装置13の第二端末識別子格納部131には、第二端末識別子「186.11.251.1」が格納されている。
そして、この第二端末装置13の第二端末情報取得部132は、第二位置情報(X22,Y22)を取得する、とする。次に、第二端末情報取得部132は、第二端末識別子「186.11.251.1」を第二端末識別子格納部131から読み出す。そして、第二端末情報取得部132は、カレント第二端末情報「186.11.251.1,(X22,Y22)」を構成する。
次に、第二送信部133は、カレント第二端末情報「186.11.251.1,(X22,Y22)」を、サーバ装置11に送信する。なお、第二送信部133は、サーバ装置11と通信するための情報(例えば、サーバ装置11のIPアドレス)を予め保持している、とする。
なお、第二端末装置13は、定期的(例えば、1回/秒)に、カレント第二端末情報を構成し、サーバ装置11に送信する。
次に、サーバ装置11のカレント第二端末情報受信部115は、カレント第二端末情報「186.11.251.1,(X22,Y22)」を受信する。そして、カレント第二端末情報受信部115は、受信したカレント第二端末情報「186.11.251.1,(X22,Y22)」を、カレント第二端末情報格納部113に一時蓄積する。
次に、第一端末装置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)を図19に示す。
次に、第一端末情報取得部123は、取得した第一位置情報(X,Y,Z)と、取得した第一方向情報(θA,θB)と、視野角(θa,θb)とを有する第一端末情報(x,y,z,θx,θy,θa,θb)を構成する。
そして、サーバ装置11の第一端末情報受信部114は、第一端末装置12から、第一端末情報(X,Y,Z,θA,θB,θa,θb)を受信する。
次に、サーバ装置11の撮影第二端末決定部117は、以下のように、撮影第二端末を決定する。つまり、撮影第二端末決定部117は、受信された第一端末情報が有する位置情報(X,Y,Z)を取得する。
次に、撮影第二端末決定部117は、端末情報が有する第一方向情報(θA,θB)と視野角(θa,θb)とを用いて、不可視領域となる三次元の角度を算出する。撮影第二端末決定部117は、可視領域となる二次元の角度「(θA−(θa/2))<=可視領域<=(θA+(θa/2))」を取得する。そして、撮影第二端末決定部117は、可視領域となる高さ方向の角度「(θB−(θb/2))<=可視領域<=(θB+(θb/2))」を取得する。そして、上記の可視領域ではない領域を、不可視領域として蓄積する。
そして、撮影第二端末決定部117は、取得した第一位置情報(X,Y,Z)を用いて、第一端末装置12から近いオブジェクトの順に、オブジェクト情報格納部111のオブジェクト情報および第二端末情報をソートする。ソート処理については、図6で説明した処理により行う。なお、ここでは、位置情報(X,Y,Z)のうちの(X,Y)と、各オブジェクトの位置情報または第二端末情報が有する第二位置情報(例えば、(xa,ya))とを用いて、第一端末装置12と各オブジェクトとの距離を算出し、距離をキーとしてソートする。そして、ソート処理の結果、撮影第二端末決定部117は、図20に示すようなオブジェクト等一時管理表を取得する。オブジェクト等一時管理表の各レコードは、オブジェクト識別子と距離とフラグとを有する。距離は、位置情報(X,Y,Z)(ただし、Zは利用されなくても良い)が示す点とオブジェクトの位置情報が示す点との距離である。
次に、撮影第二端末決定部117は、オブジェクト等一時管理表の上位のレコードから、撮影第二端末であるか否かを判断する。
つまり、撮影第二端末決定部117は、オブジェクト等一時管理表の1番目のレコードの識別子「1」を読み出す。そして、当該識別子「1」をキーとして、オブジェクト情報管理表を検索し、識別子「1」と対になる領域情報「(x1,y1,z1)(x2,y2,z2)(x3,y3,z3)(x4,y4,z4)」を取得する。
次に、撮影第二端末決定部117は、受信された第一端末情報(X,Y,Z,θA,θB,θa,θb)と、取得した領域情報「(x1,y1,z1)(x2,y2,z2)(x3,y3,z3)(x4,y4,z4)」とを用いて、1番目のオブジェクトが、撮影オブジェクトか否かを判断する。
まず、撮影第二端末決定部117は、判断対象となるオブジェクト(オブジェクト識別子「1」のオブジェクト)の領域情報の中の1番目の点(x1,y1,z1)を取得する。
次に、撮影第二端末決定部117は、1番目の点(x1,y1,z1)と第一位置情報(X,Y,Z)との平面上の角度(θ11)を算出し、当該角度(θ11)をバッファに一時記憶する。また、撮影第二端末決定部117は、1番目の点(x1,y1,z1)と第一位置情報(X,Y,Z)との高さ方向の角度(θ12)を算出し、当該角度(θ12)をバッファに一時記憶する。同様に、撮影第二端末決定部117は、判断対象となるオブジェクト(オブジェクト識別子「1」のオブジェクト)の領域情報の中の2番目の点から4番目の各点と第一位置情報(X,Y,Z)との平面上の角度(θ12,θ13,θ14)を算出し、当該角度(θ12,θ13,θ14)もバッファに一時記憶する。バッファには、(θ11,θ12,θ13,θ14)が格納されたことになる。さらに、同様に、撮影第二端末決定部117は、判断対象となるオブジェクト(オブジェクト識別子「1」のオブジェクト)の領域情報の中の2番目の点から4番目の各点と第一位置情報(X,Y,Z)との高さ方向の角度(θ22,θ23,θ24)を算出し、当該角度(θ22,θ23,θ24)もバッファに一時記憶する。バッファには、(θ21,θ22,θ23,θ24)が格納されたことになる。
次に、撮影第二端末決定部117は、バッファに一時格納された角度(θ11,θ12,θ13,θ14)から、平面上の最小角度(例えば、(θ11))と最大角度(例えば、(θ14))とを取得する。
また、撮影第二端末決定部117は、バッファに一時格納された角度(θ21,θ22,θ23,θ24)から、高さ方向の最大角度(θ24)を取得する。
次に、撮影第二端末決定部117は、取得した平面上の最小角度(θ11)と最大角度(θ14)の領域すべてが、既に登録されている領域であるか否かを判断する。ここで、撮影第二端末決定部117は、取得した最小角度(θ11)と最大角度(θ14)の領域は、可視領域であると判断した、とする。そして、撮影第二端末決定部117は、オブジェクト識別子「1」のオブジェクトは、撮影オブジェクトであると判断する。
なお、ここで、例えば、撮影第二端末決定部117は、取得した平面上の最小角度(θ11)と最大角度(θ14)の領域の一部が、既に登録されている領域ではないと判断した場合も、可視領域であると判断する。つまり、撮影第二端末決定部117は、識別子「1」のオブジェクトが、撮影オブジェクトであると判断する。また、例えば、撮影第二端末決定部117は、取得した平面上の最小角度(θ11)と最大角度(θ14)の領域のすべてが、既に登録されている角度の領域であると判断した場合でも、高さ方向の最大角度(θ24)が、登録されている高さ方向の最大角度より大きい場合、平面上の最小角度(θ11)と最大角度(θ14)の領域において、可視領域であると判断する。つまり、撮影第二端末決定部117は、識別子「1」のオブジェクトが、撮影オブジェクトであると判断するのである。
次に、撮影第二端末決定部117は、「θ11<=不可視領域<=θ14」を新たな不可視領域とする。つまり、撮影第二端末決定部117は、例えば、「0<=不可視領域角度<(θA−(θa/2))」および「(θA+(θa/2))<不可視領域角度<=360」と「θ11<=不可視領域<=θ14」とをマージした平面上の不可視領域角度を記録媒体に登録する。そして、登録されている高さ方向の最大角度が(θ24)より小さい場合、この平面上の領域に対応付けて、撮影第二端末決定部117は、高さ方向の最大角度(θ24)を登録する。
次に、撮影第二端末決定部117は、1番目のオブジェクトのフラグが「0」であるので、第二端末装置13ではないと判断し、図示しない記憶媒体に、情報を蓄積しない。
次に、撮影第二端末決定部117は、登録されている不可視領域、または可視領域から、可視領域が存在する、と判断した、とする。
次に、撮影第二端末決定部117は、オブジェクト等一時管理表の2番目のレコードの識別子「186.11.251.1」を読み出す。そして、当該識別子「186.11.251.1」をキーとして、オブジェクト情報管理表およびカレント第二端末情報格納部113を検索し、識別子「186.11.251.1」と対になる第二位置情報「(X22,Y22)」を取得する。
次に、撮影第二端末決定部117は、受信された第一端末情報(X,Y,Z,θA,θB,θa,θb)と、取得した第二位置情報(X22,Y22)とを用いて、2番目のレコードに対応する第二端末装置13が撮影されているか否かを、次のように判断する。
まず、撮影第二端末決定部117は、第二位置情報(X22,Y22)と第一位置情報(X,Y,Z)が有する(X,Y)との平面上の角度(θn1)を算出し、当該角度(θn1)をバッファに一時記憶する。また、撮影第二端末決定部117は、点(X22,Y22,デフォルト値)と第一位置情報(X,Y,Z)との高さ方向の角度(θn2)を算出し、当該角度(θn2)をバッファに一時記憶する。バッファには、(θn1,θn2)が格納されたことになる。
次に、撮影第二端末決定部117は、取得した平面上の角度(θn1)が、既に登録されている領域であるか否かを判断する。ここで、撮影第二端末決定部117は、取得した角度(θn1)は、可視領域であると判断した、とする。そして、撮影第二端末決定部117は、識別子「186.11.251.1」の第二端末装置13は、撮影第二端末であると判断する。
次に、撮影第二端末決定部117は、2番目のレコードのフラグが「1」であるので、第二端末装置13であると判断する。
次に、移動体情報取得部118は、撮影第二端末装置「186.11.251.1」に対応する移動体情報「名前:自動車C,・・・」を、第二端末情報格納部112から取得する。
次に、撮影第二端末決定部117は、識別子「186.11.251.1」と移動体情報「名前:自動車C,・・・」とを図示しない記憶媒体に格納する。
以上の処理を、3番目以降のオブジェクトまたは第二端末装置13に対しても繰り返す。そして、識別子「186.11.251.1」に対応する移動体情報のみが得られた、とする。
次に、移動体情報送信部119は、取得された移動体情報「名前:自動車C,・・・」を第一端末装置12に送信する。
次に、第一端末装置12の第一受信部125は、第一端末情報の送信に対応して、移動体情報「名前:自動車C,・・・」を受信する。
そして、出力部126は、受信された移動体情報「名前:自動車C,・・・」を出力する。例えば、出力部126は、図21に示すように、移動体情報を出力する。なお、図21において、移動体情報の出力態様は問わない。
以上、本実施の形態によれば、撮影している人や車などの移動体に関する情報を出力できる。
また、本実施の形態によれば、撮影オブジェクトや第二端末装置13を検知する処理を適切に打ち切ることにより、高速な処理が可能となる。
また、本実施の形態によれば、オブジェクトや第二端末装置13の高さをも考慮するので、例えば、ある建物の後ろに見えている第二端末装置13に関する情報も得ることができる。
また、本実施の形態によれば、2画面のうちの1画面に移動体情報が出力されることにより、カメラの映像を邪魔せずに、ユーザは、移動体情報を見ることができる。
なお、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態におけるサーバ装置11を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記録媒体に、オブジェクトを識別するオブジェクト識別子と、当該オブジェクトが存在する領域を示す領域情報とを有する1以上のオブジェクト情報を格納し、第二端末装置を識別する第二端末識別子と、前記移動体に関する情報である移動体情報とを有する1以上の第二端末情報を格納し、コンピュータを、第一端末装置から、当該第一端末装置の位置を示す第一位置情報と当該第一端末装置が向いている方向を示す第一方向情報とを有する第一端末情報を受信する第一端末情報受信部と、前記第二端末装置から、当該第二端末装置の第二端末識別子と、当該第二端末識別子により識別され得る第二端末装置の第二位置情報とを含むカレント第二端末情報を受信し、記録媒体に少なくとも一時蓄積するカレント第二端末情報受信部と、前記第一端末情報が有する第一位置情報と、前記第一端末情報が有する第一方向情報と、予め格納されているまたは前記第一端末情報が有する視野角とを、前記記録媒体の各オブジェクト情報の領域情報および前記記録媒体の各第二端末装置のカレント第二端末情報に適用し、前記第一端末装置が撮影している1以上の第二端末装置を決定する撮影第二端末決定部と、前記撮影第二端末決定部が決定した1以上の各第二端末装置に対応する1以上の移動体情報を、前記記録媒体から取得する移動体情報取得部と、前記第二端末情報取得部が取得した1以上の移動情報を、前記第一端末装置に送信する移動体情報送信部として機能させるためのプログラム、である。
また、上記プログラムにおいて、前記領域情報は、地図上での二次元の領域を示す二次元領域情報とオブジェクトの高さを示す高さ情報を有し、前記撮影第二端末決定部は、前記第一端末情報が有する第一位置情報および第一方向情報と、予め格納されているまたは前記第一端末情報が有する視野角とを用いて、三次元空間上での撮影領域を取得し、当該撮影領域を、前記記録媒体の各オブジェクト情報の領域情報および前記記録媒体の各第二端末装置のカレント第二端末情報に適用し、前記第一端末装置が撮影している1以上のオブジェクトおよび1以上の第二端末装置を決定し、かつ、前記1以上の第二端末装置の決定の際に、前記第一端末装置からの距離が近い順にオブジェクトおよび第二端末装置を検査し、前記第一端末装置が撮影しているとして先に決定したオブジェクトおよび第二端末装置の撮影により不可視となる領域の情報を不可視領域として登録していき、可視領域がなくなった場合に、オブジェクトおよび第二端末装置が前記端末装置に撮影されているか否かの検査を終了するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記撮影第二端末決定部は、各第二端末装置のサイズを予め決められたサイズであるとして、前記第一端末情報が有する第一位置情報と、前記第一端末情報が有する第一方向情報と、予め格納されているまたは前記第一端末情報が有する視野角とを、前記オブジェクト情報格納部の各オブジェクト情報の領域情報および前記記録媒体の各第二端末装置のカレント第二端末情報に適用し、前記第一端末装置が撮影している1以上の第二端末装置を決定するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記記録媒体の1以上のオブジェクト情報に対応するオブジェクトと前記第一端末装置との距離、および前記記録媒体の1以上のカレント第二端末情報に対応する第二端末装置と前記第一端末装置との距離を、前記各オブジェクトのオブジェクト情報と前記第一端末情報とが有する位置情報、または前記各第二端末装置のカレント第二端末情報と前記第一端末情報とが有する位置情報とから、オブジェクトまたは第二端末装置ごとに算出する距離算出部をさらに具備し、前記撮影第二端末決定部は、前記第一端末装置からの距離が近い順にオブジェクトおよび第二端末装置を検査し、前記第一端末装置が撮影している1以上の第二端末装置を決定するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記撮影第二端末決定部は、前記第一端末装置からの距離が近い順にオブジェクトおよび第二端末装置を検査し、前記第一端末装置が撮影しているとして先に決定したオブジェクトおよび第二端末装置の撮影により不可視となる領域の情報を不可視領域として登録していき、可視領域がなくなった場合に、オブジェクトおよび第二端末装置が前記第一端末装置に撮影されているか否かの検査を終了するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記撮影第二端末決定部は、前記第一端末装置からの距離が近い順にオブジェクトおよび第二端末装置を検査し、前記第一端末装置が撮影しているとして先に決定したオブジェクトの撮影により不可視となる領域の情報を不可視領域として登録していき、可視領域のオブジェクトであり、かつ、前記第一端末装置からの距離が閾値以内のオブジェクトおよび第二端末装置のみを検査し、前記第一端末装置が撮影している1以上の第二端末装置を決定するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記撮影第二端末決定部は、前記第一端末装置からの距離が近い順にオブジェクトおよび第二端末装置を検査し、前記第一端末装置が撮影しているとして決定した第二端末装置の数が閾値になった場合に、前記検査を終了するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記移動体情報出力手段は、前記移動体情報を、前記カメラ部が取得した映像に重畳して出力するものとして、コンピュータを機能させるプログラムであることは好適である。
また、本実施の形態における第一端末装置12を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、当該第一端末装置の位置を示す第一位置情報と、当該第一端末装置が向いている方向を示す第一方向情報とを取得する第一端末情報取得部と、映像を取得するカメラ部と、前記カメラ部が取得した映像を出力するカメラ映像出力手段を具備する出力部と、前記第一端末情報取得部が取得した第一端末情報とをサーバ装置に送信する第一送信部と、前記移動体情報を前記サーバ装置から受信する第一受信部とを具備し、前記出力部は、前記第一受信部が受信した移動体情報を出力する移動体情報出力手段を具備するものとして、機能させるためのプログラム、である。
また、本実施の形態における第二端末装置13を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記録媒体に、第二端末識別子を格納しており、コンピュータを、当該第二端末装置の位置を示す第二位置情報を有する第二端末情報を取得する第二端末情報取得部と、前記第二端末識別子と、前記第一端末情報取得部が取得した第二端末情報とを有するカレント第二端末情報を、前記サーバ装置に送信する第二送信部として、機能させるためのプログラム、である。
(実施の形態2)
本実施の形態において、第一端末装置と第二端末装置とがP2Pで通信を行い、第一端末装置で撮影している第二端末装置に関する情報を、第一端末装置に出力する情報システムについて説明する。
本実施の形態における情報システム2の概念図は、図22である。また、図23は、本実施の形態における情報システム2のブロック図である。
情報システム2は、1以上の第一端末装置21、および1以上の第二端末装置22を備える。なお、第二端末装置22は、第二端末情報をブロードキャストすることは好適である。
第一端末装置21は、オブジェクト情報格納部111、第二端末情報格納部112、カレント第二端末情報格納部113、受付部121、カメラ部122、第一端末情報取得部123、カレント第二端末情報受信部215、距離算出部116、撮影第二端末決定部117、移動体情報取得部118、および出力部126を備える。
第一端末情報取得部123は、第一位置情報取得手段1231、および第一方向情報取得手段1232を備える。
第二端末装置22は、第二端末識別子格納部131、第二端末情報取得部132、および第二送信部233を備える。
カレント第二端末情報受信部215は、第二端末装置22から、第二端末識別子と、第二端末識別子により識別され得る第二端末装置22の第二位置情報とを含むカレント第二端末情報を受信し、カレント第二端末情報格納部113に少なくとも一時蓄積する。なお、カレント第二端末情報は、通常、移動体情報を含む。
カレント第二端末情報受信部215は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
第二送信部233は、第二端末情報を第一端末装置21に送信する。第二送信部233は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
次に、情報システム2の動作について説明する。まず、第一端末装置21の動作について、図24のフローチャートを用いて説明する。図23のフローチャートにおいて、図4または図9のフローチャートと同一のステップについては、説明を省略する。
(ステップS2401)第一端末装置21のカレント第二端末情報受信部215は、第二端末装置22から、カレント第二端末情報を受信したか否かを判断する。ステップS302に行く。
なお、図24のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以下、本実施の形態における情報システム2の具体的な動作について説明する。情報システム2の具体的な動作は、第一端末装置21および第二端末装置22が、ピア・トゥー・ピアで通信する以外、情報システム1の具体的な動作と同様である。
以上、本実施の形態によれば、撮影している人や車などの移動体に関する情報を出力できる。
なお、本実施の形態における第一端末装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記録媒体に、オブジェクトを識別するオブジェクト識別子と、当該オブジェクトが存在する領域を示す領域情報とを有する1以上のオブジェクト情報を格納しており、前記第二端末装置を識別する第二端末識別子と、前記移動体に関する情報である移動体情報とを有する1以上の第二端末情報を格納しており、当該第一端末装置の位置を示す第一位置情報と、当該第一端末装置が向いている方向を示す第一方向情報とを取得する第一端末情報取得部と、映像を取得するカメラ部と、前記カメラ部が取得した映像を出力するカメラ映像出力手段を具備する出力部と、第二端末装置から、当該第二端末装置の第二端末識別子と、当該第二端末識別子により識別され得る第二端末装置の第二位置情報とを含むカレント第二端末情報を受信し、記録媒体に少なくとも一時蓄積するカレント第二端末情報受信部と、前記第一端末情報が有する第一位置情報と、前記第一端末情報が有する第一方向情報と、予め格納されているまたは視野角とを、前記記録媒体の各オブジェクト情報の領域情報および前記記録媒体の各第二端末装置のカレント第二端末情報に適用し、前記第一端末装置が撮影している1以上の第二端末装置を決定する撮影第二端末決定部と、前記撮影第二端末決定部が決定した1以上の各第二端末装置に対応する1以上の移動体情報を、前記第二端末情報格納部から取得する移動体情報取得部と、前記出力部は、前記移動体情報取得部が取得した移動体情報を出力する移動体情報出力手段を具備するものとして、コンピュータを機能させるプログラムである。
また、図25は、本明細書で述べたプログラムを実行して、上述した実施の形態のサーバ装置、または第一端末装置、または第二端末装置を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図25は、このコンピュータシステム340の概観図であり、図26は、コンピュータシステム340のブロック図である。
図25において、コンピュータシステム340は、FDドライブ、CD−ROMドライブを含むコンピュータ341と、キーボード342と、マウス343と、モニタ344とを含む。
図26において、コンピュータ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以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。