(57)【特許請求の範囲】
【請求項１】
複数のユーザが活動する実空間内の物体の位置を表現するグローバルマップの少なくとも一部分を取得するグローバルマップ取得部と；
前記複数のユーザのうちの１人のユーザの装置により検出可能な周囲の物体の位置を表現するローカルマップを生成するローカルマップ生成部と；
前記グローバルマップに含まれる物体の位置データ及び前記ローカルマップに含まれる物体の位置データに基づいて、前記グローバルマップに対する前記ローカルマップの相対位置を算出する算出部と；
前記ローカルマップの前記相対位置に応じて、前記ローカルマップに含まれる物体の位置データを前記グローバルマップの座標系のデータに座標変換する変換部と；
前記変換部による座標変換後の前記ローカルマップに含まれる物体の位置データを用いて、前記グローバルマップを更新する更新部と；
を備え、
前記算出部は、前記ローカルマップに含まれる物体の位置データを前記グローバルマップの座標系のデータに変換した場合に、当該変換後のデータと前記グローバルマップに含まれる物体の位置データとの間の差が全体として小さくなるように、前記ローカルマップの前記相対位置を算出する、
情報処理装置。
【請求項２】
前記情報処理装置は、前記１人のユーザが有する端末装置である、
請求項１に記載の情報処理装置。
【請求項３】
前記グローバルマップ取得部は、前記グローバルマップを保持するサーバ装置から前記グローバルマップの少なくとも一部分を取得し、
前記更新部は、物体の位置データを前記サーバ装置へ送信することにより、前記サーバ装置の前記グローバルマップを更新する、
請求項２に記載の情報処理装置。
【請求項４】
前記グローバルマップ取得部は、前記グローバルマップのうち、前記実空間内の前記端末装置の位置を含む局所的な領域に対応する一部分を取得する、請求項３に記載の情報処理装置。
【請求項５】
前記グローバルマップ取得部は、前記グローバルマップのうち、前記端末装置の近傍に位置する所定の数の物体の位置を表現する一部分を取得する、請求項３に記載の情報処理装置。
【請求項６】
前記ローカルマップ生成部は、撮像装置を用いて実空間を撮影することにより得られる入力画像と、１つ以上の物体の外観の特徴を表す特徴データとに基づいて、前記ローカルマップを生成する、請求項１に記載の情報処理装置。
【請求項７】
前記算出部は、前記グローバルマップ及び前記ローカルマップに共通して含まれる非移動物体の位置データに基づいて、前記ローカルマップの前記相対位置を算出する、請求項１に記載の情報処理装置。
【請求項８】
前記グローバルマップは、前記実空間内の各物体についての前記グローバルマップの座標系における位置データと当該位置データに関するタイムスタンプとを含む、請求項１に記載の情報処理装置。
【請求項９】
前記情報処理装置は、
ユーザからの指示に応じて、前記グローバルマップを少なくとも部分的に可視化して画面に出力する表示制御部、
をさらに備える、請求項１に記載の情報処理装置。
【請求項１０】
情報処理装置を用いて、複数のユーザが活動する実空間内の物体の位置を表現するグローバルマップを更新するためのマップ更新方法であって：
前記グローバルマップの少なくとも一部分を取得するステップと；
前記情報処理装置により検出可能な周囲の物体の位置を表現するローカルマップを生成するステップと；
前記グローバルマップに含まれる物体の位置データ及び前記ローカルマップに含まれる物体の位置データに基づいて、前記グローバルマップに対する前記ローカルマップの相対位置を算出するステップと；
前記ローカルマップの前記相対位置に応じて、前記ローカルマップに含まれる物体の位置データを前記グローバルマップの座標系のデータに座標変換するステップと；
座標変換後の前記ローカルマップに含まれる物体の位置データを用いて、前記グローバルマップを更新するステップと；
含み、
前記ローカルマップの前記相対位置は、前記ローカルマップに含まれる物体の位置データを前記グローバルマップの座標系のデータに変換した場合に、当該変換後のデータと前記グローバルマップに含まれる物体の位置データとの間の差が全体として小さくなるように、算出される、
マップ更新方法。
【請求項１１】
情報処理装置を制御するコンピュータを：
複数のユーザが活動する実空間内の物体の位置を表現するグローバルマップの少なくとも一部分を取得するグローバルマップ取得部と；
前記複数のユーザのうちの１人のユーザの装置により検出可能な周囲の物体の位置を表現するローカルマップを生成するローカルマップ生成部と；
前記グローバルマップに含まれる物体の位置データ及び前記ローカルマップに含まれる物体の位置データに基づいて、前記グローバルマップに対する前記ローカルマップの相対位置を算出する算出部と；
前記ローカルマップの前記相対位置に応じて、前記ローカルマップに含まれる物体の位置データを前記グローバルマップの座標系のデータに座標変換する変換部と；
前記変換部による座標変換後の前記ローカルマップに含まれる物体の位置データを用いて、前記グローバルマップを更新する更新部と；
として機能させ、
前記算出部は、前記ローカルマップに含まれる物体の位置データを前記グローバルマップの座標系のデータに変換した場合に、当該変換後のデータと前記グローバルマップに含まれる物体の位置データとの間の差が全体として小さくなるように、前記ローカルマップの前記相対位置を算出する、
プログラム。
【請求項１２】
複数のユーザが活動する実空間内の物体の位置を表現するグローバルマップを記憶媒体を用いて記憶しているサーバ装置と；
前記複数のユーザのうちの１人のユーザが保持する情報処理装置であって、
前記サーバ装置から、前記グローバルマップの少なくとも一部分を取得するグローバルマップ取得部、
前記情報処理装置により検出可能な周囲の物体の位置を表現するローカルマップを生成するローカルマップ生成部、
前記グローバルマップに含まれる物体の位置データ及び前記ローカルマップに含まれる物体の位置データに基づいて、前記グローバルマップに対する前記ローカルマップの相対位置を算出する算出部、
前記ローカルマップの前記相対位置に応じて、前記ローカルマップに含まれる物体の位置データを前記グローバルマップの座標系のデータに座標変換する変換部、
及び、前記変換部による座標変換後の前記ローカルマップに含まれる物体の位置データを用いて、前記グローバルマップを更新する更新部、
を備える情報処理装置と；
を含み、
前記算出部は、前記ローカルマップに含まれる物体の位置データを前記グローバルマップの座標系のデータに変換した場合に、当該変換後のデータと前記グローバルマップに含まれる物体の位置データとの間の差が全体として小さくなるように、前記ローカルマップの前記相対位置を算出する、
情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、マップ更新方法、プログラム及び情報処理システムに関する。
【背景技術】
【０００２】
今日、実空間内の物体の位置を表現するマップをネットワークを介して複数のユーザが共有するための様々なアプリケーションが実用化されている。一例として、ユーザがマップ上の任意の位置にコメント又は写真などの情報を関連付けた上で、当該情報又はマップを他のユーザと共有することのできるアプリケーションが存在する（下記特許文献１及び非特許文献１参照）。また、マップ上の任意の位置に仮想的なタグを関連付けておき、端末のカメラ機能を用いて撮像された画像にそのタグを重畳して表示するアプリケーションも存在する（下記非特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２０９７８４号公報
【非特許文献】
【０００４】
【非特許文献１】「Google  Maps」、［online］、［２０１０年２月２２日検索］、インターネット＜URL：http://maps.google.com/＞
【非特許文献２】「Sekai  Camera  Support  Center」、［online］、［２０１０年２月２２日検索］、インターネット＜URL：http://support.sekaicamera.com/en＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のマップ共有アプリケーションでは、マップと関連付けられる情報はユーザにより自由に更新され得るものの、マップそのものはサービス提供者が更新する場合を除いて変化しない。そのため、実空間内の物体の位置の変化をユーザが認識した場合にも、その変化をマップに迅速に反映して他のユーザと共有することは困難である。また、サービス提供者によって詳細なマップが提供されないプライベート空間において、マップあるいはマップと関連付けられる情報をユーザ間で共有することができない。
【０００６】
そこで、本発明は、実空間内の物体の位置の変化を迅速にユーザ間で共有することのできる、新規かつ改良された情報処理装置、マップ更新方法、プログラム及び情報処理システムを提供しようとするものである。
【課題を解決するための手段】
【０００７】
本発明のある実施形態によれば、複数のユーザが活動する実空間内の物体の位置を表現するグローバルマップの少なくとも一部分を取得するグローバルマップ取得部と、上記複数のユーザのうちの１人のユーザの装置により検出可能な周囲の物体の位置を表現するローカルマップを生成するローカルマップ生成部と、上記ローカルマップに含まれる物体の位置データに基づいて、上記グローバルマップを更新する更新部と、を備える情報処理装置が提供される。
【０００８】
また、上記情報処理装置は、上記グローバルマップに含まれる物体の位置データ及び上記ローカルマップに含まれる物体の位置データに基づいて、上記グローバルマップに対する上記ローカルマップの相対位置を算出する算出部と、上記ローカルマップの上記相対位置に応じて、上記ローカルマップに含まれる物体の位置データを上記グローバルマップの座標系のデータに座標変換する変換部と、をさらに備え、上記更新部は、上記変換部による座標変換後の上記ローカルマップに含まれる物体の位置データを用いて、上記グローバルマップを更新してもよい。
【０００９】
また、上記情報処理装置は、上記１人のユーザが有する端末装置であってもよい。
【００１０】
また、上記グローバルマップ取得部は、上記グローバルマップを保持するサーバ装置から上記グローバルマップの少なくとも一部分を取得し、上記更新部は、物体の位置データを上記サーバ装置へ送信することにより、上記サーバ装置の上記グローバルマップを更新してもよい。
【００１１】
また、上記グローバルマップ取得部は、上記グローバルマップのうち、上記実空間内の上記端末装置の位置を含む局所的な領域に対応する一部分を取得してもよい。
【００１２】
また、上記グローバルマップ取得部は、上記グローバルマップのうち、上記端末装置の近傍に位置する所定の数の物体の位置を表現する一部分を取得してもよい。
【００１３】
また、上記ローカルマップ生成部は、撮像装置を用いて実空間を撮影することにより得られる入力画像と、１つ以上の物体の外観の特徴を表す特徴データとに基づいて、上記ローカルマップを生成してもよい。
【００１４】
また、上記算出部は、上記グローバルマップ及び上記ローカルマップに共通して含まれる非移動物体の位置データに基づいて、上記ローカルマップの上記相対位置を算出してもよい。
【００１５】
また、上記算出部は、上記ローカルマップに含まれる物体の位置データを上記グローバルマップの座標系のデータに変換した場合に、当該変換後のデータと上記グローバルマップに含まれる物体の位置データとの間の差が全体として小さくなるように、上記ローカルマップの上記相対位置を算出してもよい。
【００１６】
また、上記グローバルマップは、上記実空間内の各物体についての上記グローバルマップの座標系における位置データと当該位置データに関するタイムスタンプとを含んでもよい。
【００１７】
また、上記情報処理装置は、ユーザからの指示に応じて、上記グローバルマップを少なくとも部分的に可視化して画面に出力する表示制御部、をさらに備えてもよい。
【００１８】
また、本発明の別の実施形態によれば、情報処理装置を用いて、複数のユーザが活動する実空間内の物体の位置を表現するグローバルマップを更新するためのマップ更新方法であって、上記グローバルマップの少なくとも一部分を取得するステップと、上記情報処理装置により検出可能な周囲の物体の位置を表現するローカルマップを生成するステップと、上記ローカルマップに含まれる物体の位置データに基づいて、上記グローバルマップを更新するステップと、含むマップ更新方法が提供される。
【００１９】
また、本発明の別の実施形態によれば、情報処理装置を制御するコンピュータを、複数のユーザが活動する実空間内の物体の位置を表現するグローバルマップの少なくとも一部分を取得するグローバルマップ取得部と、上記複数のユーザのうちの１人のユーザの装置により検出可能な周囲の物体の位置を表現するローカルマップを生成するローカルマップ生成部と、上記ローカルマップに含まれる物体の位置データに基づいて、上記グローバルマップを更新する更新部と、として機能させるための、プログラムが提供される。
【００２０】
また、本発明の別の実施形態によれば、複数のユーザが活動する実空間内の物体の位置を表現するグローバルマップを記憶媒体を用いて記憶しているサーバ装置と、上記複数のユーザのうちの１人のユーザが保持する情報処理装置であって、上記サーバ装置から、上記グローバルマップの少なくとも一部分を取得するグローバルマップ取得部、上記情報処理装置により検出可能な周囲の物体の位置を表現するローカルマップを生成するローカルマップ生成部、及び、上記ローカルマップに含まれる物体の位置データに基づいて、上記グローバルマップを更新する更新部、を備える情報処理装置と、を含む情報処理システムが提供される。
【発明の効果】
【００２１】
以上説明したように、本発明に係る情報処理装置、マップ更新方法、プログラム及び情報処理システムによれば、実空間内の物体の位置の変化を迅速にユーザ間で共有することができる。
【図面の簡単な説明】
【００２２】
【図１】一実施形態に係るシステムの概要について説明するための模式図である。
【図２】グローバルマップ及びローカルマップに含まれる物体の位置データについて説明するための模式図である。
【図３】一実施形態に係るサーバの構成の一例を示すブロック図である。
【図４】部分グローバルマップについて説明するための説明図である。
【図５】一実施形態に係る端末装置の構成の一例を示すブロック図である。
【図６Ａ】部分グローバルマップ取得処理の第１の例について説明するための説明図である。
【図６Ｂ】部分グローバルマップ取得処理の第２の例について説明するための説明図である。
【図６Ｃ】部分グローバルマップ取得処理の第３の例について説明するための説明図である。
【図７】一実施形態に係るローカルマップ生成部の詳細な構成の一例を示すブロック図である。
【図８】一実施形態に係る自己位置検出処理の流れの一例を示すフローチャートである。
【図９】オブジェクト上に設定される特徴点について説明するための説明図である。
【図１０】特徴点の追加について説明するための説明図である。
【図１１】予測モデルの一例について説明するための説明図である。
【図１２】特徴データの構成の一例について説明するための説明図である。
【図１３】一実施形態に係るオブジェクト認識処理の流れの一例を示すフローチャートである。
【図１４Ａ】一実施形態に係る算出部によるマップ照合処理の一例について説明するための説明図である。
【図１４Ｂ】一実施形態に係る算出部によるマップ照合処理の他の例について説明するための説明図である。
【図１５Ａ】一実施形態に係るグローバルマップ更新処理の一例について説明するための説明図である。
【図１５Ｂ】一実施形態に係るグローバルマップ更新処理の他の例について説明するための説明図である。
【図１６】一実施形態に係るマップ管理サーバと端末装置との間のマップ更新処理の流れの一例を示すフローチャートである。
【図１７】一実施形態に係るスーパークライアントの構成の一例を示すブロック図である。
【図１８】追加情報の共有の適用場面の一例を示す模式図である。
【発明を実施するための形態】
【００２３】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付すことにより重複説明を省略する。
【００２４】
また、以下の順序にしたがって当該「発明を実施するための形態」を説明する。
１．システムの概要
１−１．システム構成の例
１−２．位置データの例
２．一実施形態に係るマップ管理サーバの構成
３．一実施形態に係る端末装置の構成
３−１．通信インタフェース
３−２．撮像部
３−３．初期化部
３−４．グローバルマップ取得部
３−５．ローカルマップ生成部
３−６．算出部
３−７．変換部
３−８．更新部
３−９．表示制御部
４．処理の流れ
５．変形例
５−１．スーパークライアント
５−２．付加情報の共有
６．まとめ
【００２５】
＜１．システムの概要＞
［１−１．システム構成の例］
まず、図１及び図２を用いて、本発明の一実施形態に係るシステムの概要について説明する。図１は、本発明の一実施形態に係る情報処理システム１の概要を示す模式図である。図１を参照すると、本実施形態に係る情報処理システム１は、マップ管理サーバ１０、端末装置１００ａ及び端末装置１００ｂを含む。
【００２６】
マップ管理サーバ１０は、複数のユーザの間でマップ及びマップに関連付けられる情報を共有させるためのマップ共有サービスを提供する情報処理装置である。マップ管理サーバ１０は、装置の内部又は外部にデータベースを有し、当該データベースに後述するグローバルマップを格納する。マップ管理サーバ１０は、典型的には、ＰＣ（Personal  Computer）又はワークステーションなどの汎用的な情報処理装置を用いて実現される。
【００２７】
本明細書において、マップ管理サーバ１０により管理されるマップをグローバルマップという。グローバルマップは、マップ共有サービスのサービス対象領域ＡＧの全体にわたって、実空間内の物体の位置を表現するマップである。
【００２８】
端末装置１００ａは、ユーザＵａが保持する情報処理装置である。端末装置１００ｂは、ユーザＵｂが保持する情報処理装置である。本明細書において、これら端末装置１００ａ及び端末装置１００ｂを互いに区別する必要が無い場合には、符号の末尾のアルファベットを省略して端末装置１００と総称する。端末装置１００は、有線又は無線による通信接続を介して、マップ管理サーバ１０との間で通信することができる。端末装置１００は、典型的には、ＰＣ、スマートフォン、ＰＤＡ（Personal  Digital  Assistants）、ポータブル音楽プレーヤ、又はゲーム端末などの任意の種類の情報処理装置であってよい。
【００２９】
端末装置１００は、周囲の物体の位置を検出可能なセンサ機能を有する。そして、端末装置１００は、当該センサ機能を用いて、自装置の周囲（例えば、領域ＡＬａ又は領域ＡＬｂ内）の物体の位置を表現するローカルマップを生成する。本実施形態では、センサ機能の一例として、単眼カメラを用いてカメラの位置及び姿勢と入力画像に映る物体の特徴点の位置とを同時に推定可能なＳＬＡＭ（Simultaneous  Localization  And  Mapping）技術を用いる例を説明する。
【００３０】
さらに、端末装置１００は、生成したローカルマップを用いてマップ管理サーバ１０により管理されるグローバルマップを更新する更新機能と、最新の（又は過去の任意の時点の）グローバルマップを表示する表示機能とを有する。即ち、例えば、ユーザＵａは、ユーザＵｂにより保持されている端末装置１００ｂにより更新されたグローバルマップを、端末装置１００ａの画面上で閲覧することができる。また、例えば、ユーザＵｂは、ユーザＵａにより保持されている端末装置１００ａにより更新されたグローバルマップを、端末装置１００ｂの画面上で閲覧することができる。
【００３１】
［１−２．位置データの例］
図２は、グローバルマップ及びローカルマップに含まれる物体の位置データについて説明するための模式図である。
【００３２】
図２を参照すると、実空間内に存在する４つの物体Ｂ１〜Ｂ４が示されている。物体Ｂ１は、テーブルである。物体Ｂ２は、コーヒーカップである。物体Ｂ３は、ノートＰＣである。物体Ｂ４は、窓である。このうち、物体Ｂ４の位置は、通常移動しない。本明細書では、このような移動しない物体を非移動物体あるいはランドマークという。また、図２には、各物体についての位置データＲ１〜Ｒ４も示されている。各位置データＲ１〜Ｒ４は、それぞれ、物体Ｂ１〜Ｂ４を表すオブジェクトＩＤ「Ｏｂｊ１」〜「Ｏｂｊ４」、位置「Ｘ１」〜「Ｘ４」及び姿勢「Ω１」〜「Ω４」、並びに位置データの生成時点を表すタイムスタンプ「ＹＹＹＹＭＭＤＤｈｈｍｍｓｓ」を含む。
【００３３】
グローバルマップは、サービス対象領域ＡＧの全体にわたる実空間内に存在する物体についての、図２に例示したような位置データを含むデータセットである。例えば、１つの建物の全体をサービス対象領域ＡＧとする場合には、グローバルマップには、図２に例示した１つの部屋の中の物体だけでなく、他の部屋の中の物体についての位置データも含まれ得る。グローバルマップの位置データの座標系は、グローバル座標系として予め固定的に設定される。
【００３４】
これに対し、ローカルマップは、端末装置１００の周囲の実空間内に存在する物体についての、図２に例示したような位置データを含むデータセットである。例えば、ローカルマップには、図２に例示した物体Ｂ１〜Ｂ４についての位置データが含まれ得る。ローカルマップの座標系の原点の位置と座標軸の向きは、端末装置１００のカメラの位置及び姿勢に依存する。そのため、ローカルマップの座標系は、通常、グローバル座標系とは異なる。
【００３５】
なお、グローバルマップ及びローカルマップにより位置が表現され得る物体は、図２の例に限定されない。例えば、屋内に存在する物体の代わりに、屋外に存在する建物又は車などの物体の位置データがグローバルマップ及びローカルマップに含まれてもよい。この場合、建物はランドマークとなり得る。
【００３６】
＜２．一実施形態に係るマップ管理サーバの構成＞
図３は、本実施形態に係るマップ管理サーバ１０の構成の一例を示すブロック図である。図３を参照すると、マップ管理サーバ１０は、通信インタフェース２０、グローバルマップ記憶部３０、部分グローバルマップ抽出部４０、更新部５０、及びグローバルマップ配信部６０を備える。
【００３７】
通信インタフェース２０は、マップ管理サーバ１０と端末装置１００との間の通信接続を仲介するインタフェースである。通信インタフェース２０は、無線通信インタフェースであってもよく、有線通信インタフェースであってもよい。
【００３８】
グローバルマップ記憶部３０は、ハードディスク又は半導体メモリなどの記憶媒体を用いて構成されるデータベースに相当し、複数のユーザが活動する実空間内の物体の位置を表現する上述したグローバルマップを記憶する。そして、グローバルマップ記憶部３０は、部分グローバルマップ抽出部４０からの要求に応じて、グローバルマップのサブセットである部分グローバルマップを出力する。また、グローバルマップ記憶部３０に記憶されているグローバルマップは、更新部５０により更新される。また、グローバルマップ記憶部３０は、グローバルマップ配信部６０からの要求に応じて、グローバルマップの全体又は要求された一部分を出力する。
【００３９】
部分グローバルマップ抽出部４０は、通信インタフェース２０を介して端末装置１００の位置に関する情報を受信し、当該情報に応じて部分グローバルマップを抽出する。そして、部分グローバルマップ抽出部４０は、抽出した部分グローバルマップを、通信インタフェース２０を介して端末装置１００へ送信する。部分グローバルマップとは、グローバルマップのサブセットである。部分グローバルマップは、グローバル座標系における端末装置１００の位置の周囲の局所的な領域に含まれる物体の位置を表現する。
【００４０】
図４は、部分グローバルマップについて説明するための説明図である。図４の左には、オブジェクトＩＤが「Ｏｂｊ１」〜「Ｏｂｊ１９」である１９個の物体についての位置データを含むグローバルマップＭＧが示されている。これら１９個の物体は、図４の右に示されたサービス対象領域ＡＧの中に散在する。このとき、ユーザＵａが保持する端末１００ａの位置からの距離が閾値Ｄ以下である物体は、物体Ｂ１〜Ｂ９である。この場合、例えば、当該物体Ｂ１〜Ｂ９についての位置データが、ユーザＵａのための部分グローバルマップＭＧ（Ｕａ）を構成する。また、ユーザＵｂが保持する端末１００ｂの位置からの距離が閾値Ｄ以下である物体は、物体Ｂ１１〜Ｂ１９である。この場合、例えば、当該物体Ｂ１１〜Ｂ１９についての位置データが、ユーザＵｂのための部分グローバルマップＭＧ（Ｕｂ）を構成する。閾値Ｄは、後述するローカルマップの範囲の大部分が部分グローバルマップにも含まれるように、予め適切な値に設定される。なお、部分グローバルマップの抽出に関する他の例について、後にさらに説明する。
【００４１】
更新部５０は、端末装置１００から通信インタフェース２０を介して受信される物体の位置データに基づいて、グローバルマップ記憶部３０により記憶されているグローバルマップを更新する。それにより、実空間内の物体の位置の変化がグローバルマップに迅速に反映される。更新部５０によるグローバルマップ更新処理については、後にさらに説明する。
【００４２】
グローバルマップ配信部６０は、端末装置１００からの要求に応じて、グローバルマップ記憶部３０により記憶されているグローバルマップを端末装置１００へ配信する。グローバルマップ配信部６０から配信されるグローバルマップは、端末装置１００の表示機能により端末装置１００の画面上で可視化される。それにより、ユーザは、最新の（又は過去の任意の時点の）グローバルマップを閲覧することができる。
【００４３】
＜３．一実施形態に係る端末装置の構成＞
図５は、本実施形態に係る端末装置１００の構成の一例を示すブロック図である。図５を参照すると、端末装置１００は、通信インタフェース１０２、撮像部１１０、初期化部１２０、グローバルマップ取得部１３０、記憶部１３２、ローカルマップ生成部１４０、算出部１６０、変換部１７０、更新部１８０及び表示制御部１９０を備える。
【００４４】
［３−１．通信インタフェース］
通信インタフェース１０２は、端末装置１００とマップ管理サーバ１０との間の通信接続を仲介するインタフェースである。通信インタフェース１０２は、無線通信インタフェースであってもよく、有線通信インタフェースであってもよい。
【００４５】
［３−２．撮像部］
撮像部１１０は、例えば、ＣＣＤ（Charge  Coupled  Device）又はＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）などの撮像素子を有するカメラとして実現され得る。撮像部１１０は、端末装置１００の外部に設けられてもよい。撮像部１１０は、図２に例示したような物体が存在する実空間を撮影することにより取得した画像を、入力画像として、初期化部１２０及びローカルマップ生成部１４０へ出力する。
【００４６】
［３−３．初期化部］
初期化部１２０は、撮像部１１０から入力される入力画像を用いて、グローバル座標系における端末装置１００の大まかな位置を特定する。入力画像に基づく端末装置１００の位置の特定（Localization）は、例えば、特開２００８−１８５４１７号公報に記載されている手法に従って行われ得る。その場合、初期化部１２０は、入力画像と記憶部１３２により予め記憶されている参照用画像とを照合し、一致度の高い参照用画像に対して高スコアを設定する。そして、初期化部１２０は、当該スコアに基づいて端末装置１００の位置の候補の確率分布を算出し、算出した当該確率分布に基づいて尤もらしい端末装置１００の位置（仮説確率分布における確率値が最も高い位置）を特定する。そして、初期化部１２０は、特定した端末装置１００の位置をグローバルマップ取得部１３０へ出力する。
【００４７】
なお、初期化部１２０は、上述した手法の代わりに、ＧＰＳ（Global  Positioning  System）機能を用いて端末装置１００の位置を特定してもよい。また、初期化部１２０は、例えば、周囲の無線アクセスポイントからの電測情報に基づいて現在位置を測定することの可能なPlaceEngineなどの技術を用いて、端末装置１００の位置を特定してもよい。
【００４８】
［３−４．グローバルマップ取得部］
グローバルマップ取得部１３０は、通信インタフェース１０２を介してマップ管理サーバ１０へ端末装置１００の位置に関する情報を送信し、マップ管理サーバ１０の部分グローバルマップ抽出部４０により抽出される上述した部分グローバルマップを取得する。そして、グローバルマップ取得部１３０は、取得した部分グローバルマップを記憶部１３２へ格納する。
【００４９】
図６Ａは、部分グローバルマップ取得処理の第１の例について説明するための説明図である。図６Ａを参照すると、端末装置１００のグローバルマップ取得部１３０は、グローバル座標系における端末装置１００の位置座標をマップ管理サーバ１０へ送信する。そうすると、マップ管理サーバ１０の部分グローバルマップ抽出部４０は、例えば、当該位置座標を中心として半径Ｄ［ｍ］以内に位置する物体についての位置データにより構成される部分グローバルマップを抽出し、当該部分グローバルマップを端末装置１００へ返送する。それにより、グローバルマップ取得部１３０は、予め定義される広さを有する局所的な領域に対応する部分グローバルマップを取得できる。局所的な領域とは、例えば、端末装置１００の撮像部１１０により直接的に観測可能な広さを有する領域であってよい。それにより、グローバルマップの全体を取得する場合と比較して、端末装置１００による通信コスト及び処理コストを抑制することができる。
【００５０】
図６Ｂは、部分グローバルマップ取得処理の第２の例について説明するための説明図である。図６Ｂを参照すると、端末装置１００のグローバルマップ取得部１３０は、グローバル座標系における端末装置１００の位置座標をマップ管理サーバ１０へ送信する。そうすると、マップ管理サーバ１０の部分グローバルマップ抽出部４０は、例えば、当該位置座標からの距離が近い順にｎ個の物体についての位置データにより構成される部分グローバルマップを抽出し、当該部分グローバルマップを端末装置１００へ返送する。それにより、グローバルマップ取得部１３０は、予め定義されるデータ数を含む局所的な領域に対応する部分グローバルマップを取得できる。通常、予め定義されるデータ数ｎが大きいほど、後述する算出部１６０による部分グローバルマップとローカルマップとの照合を高い精度で行うことができる。ｎの値は、当該照合の精度と通信コスト及び処理コストとのバランスを考慮して決定される（例えばｎ＝１００などであってよい）。
【００５１】
図６Ｃは、部分グローバルマップ取得処理の第３の例について説明するための説明図である。図６Ｃを参照すると、端末装置１００のグローバルマップ取得部１３０は、端末装置１００が位置するエリアを識別するための識別子（以下、エリア識別子という）をマップ管理サーバ１０へ送信する。エリア識別子とは、例えば、端末装置１００がアクセス可能な無線アクセスポイントのアクセスポイント識別子であってもよい。また、１つの建物の全体がサービス対象領域ＡＧである場合には、エリア識別子とは、端末装置１００が位置するフロア又は部屋を識別する番号などであってもよい。マップ管理サーバ１０の部分グローバルマップ抽出部４０は、エリア識別子を受信すると、当該エリア識別子が示すエリアに含まれる物体についての位置データにより構成される部分グローバルマップを抽出し、当該部分グローバルマップを端末装置１００へ返送する。この場合にも、グローバルマップの全体を取得する場合と比較して、端末装置１００による通信コスト及び処理コストを抑制することができる。
【００５２】
［３−５．ローカルマップ生成部］
ローカルマップ生成部１４０は、撮像部１１０から入力される入力画像及び記憶部１３２により記憶されている後述する特徴データに基づいて、端末装置１００により検出可能な周囲の物体の位置を表現する上述したローカルマップを生成する。図７は本実施形態に係るローカルマップ生成部１４０の詳細な構成の一例を示すブロック図である。図７を参照すると、ローカルマップ生成部１４０は、自己位置検出部１４２、画像認識部１４４及びローカルマップ構築部１４６を含む。
【００５３】
（１）自己位置検出部
自己位置検出部１４２は、撮像部１１０から入力される入力画像、及び記憶部１３２により記憶されている特徴データに基づいて、入力画像を映したカメラの位置を動的に検出する。例えば、自己位置検出部１４２は、Andrew  J.Davisonによる“Real-Time  Simultaneous  Localization  and  Mapping  with  a  Single  Camera”（Proceedings  of  the  9th  IEEE  International  Conference  on  Computer  Vision  Volume  2,  2003,  pp.1403-1410）に記載されているＳＬＡＭ技術を応用することにより、撮像部１１０のカメラが単眼カメラである場合にも、当該カメラの位置及び姿勢、並びにカメラの撮像面における特徴点の位置を、フレームごとに動的に決定することができる。
【００５４】
まず、図８を用いて、自己位置検出部１４２によるＳＬＡＭ技術を応用した自己位置検出処理の全体的な流れについて説明する。次に、図９〜図１１を用いて、自己位置検出処理の詳細を説明する。
【００５５】
図８は、自己位置検出部１４２によるＳＬＡＭ技術を応用した自己位置検出処理の流れの一例を示すフローチャートである。図８において、自己位置検出処理が開始すると、自己位置検出部１４２は、まず、状態変数を初期化する（ステップＳ１０２）。本実施形態において、状態変数とは、カメラの位置及び姿勢（回転角）、当該カメラの移動速度及び角速度、並びに１つ以上の特徴点の位置を要素として含むベクトルである。そして、自己位置検出部１４２は、撮像部１１０から入力画像を順次取得する（ステップＳ１１２）。ステップ１１２からステップＳ１１８までの処理は、各入力画像について（即ち毎フレーム）繰り返され得る。
【００５６】
ステップＳ１１４では、自己位置検出部１４２は、入力画像に映る特徴点を追跡する。例えば、自己位置検出部１４２は、記憶部１３２により予め記憶されている特徴点ごとのパッチ（例えば特徴点を中心とする３×３＝９画素の小画像）を入力画像から検出する。ここで検出されたパッチの位置、即ち特徴点の位置は、後の状態変数の更新の際に用いられる。
【００５７】
ステップＳ１１６では、自己位置検出部１４２は、所定の予測モデルに基づいて、例えば１フレーム後の状態変数の予測値を生成する。また、ステップＳ１１８では、自己位置検出部１４２は、ステップＳ１１６において生成した状態変数の予測値と、ステップＳ１１４において検出した特徴点の位置に応じた観測値とを用いて、状態変数を更新する。自己位置検出部１４２は、ステップＳ１１６及びＳ１１８における処理を、拡張カルマンフィルタの原理に基づいて実行する。
【００５８】
このような処理の結果として、毎フレーム更新される状態変数の値が出力される。以下、特徴点の追跡（ステップＳ１１４）、状態変数の予測（ステップＳ１１６）、状態変数の更新（ステップＳ１１８）の各処理の内容について、より具体的に説明する。
【００５９】
（１−１）特徴点の追跡
本実施形態において、記憶部１３２は、実空間内に存在し得る物体に対応するオブジェクトの特徴を表す特徴データを予め記憶している。特徴データには、例えば、各オブジェクトの外観の特徴を表す１つ以上の特徴点についての小画像、即ちパッチ（Patch）が含まれる。パッチとは、例えば、特徴点を中心とする３×３＝９画素よりなる小画像であってよい。
【００６０】
図９は、オブジェクトの２つの例、並びに各オブジェクト上に設定される特徴点（ＦＰ：Feature  Point）及びパッチの例を示している。図９の左のオブジェクトは、ＰＣを表すオブジェクトである（９ａ参照）。当該オブジェクト上には、特徴点ＦＰ１を含む複数の特徴点が設定されている。さらに、特徴点ＦＰ１と関連付けて、パッチＰｔｈ１が定義されている。一方、図９の右のオブジェクトは、カレンダーを表すオブジェクトである（９ｂ参照）。当該オブジェクト上には、特徴点ＦＰ２を含む複数の特徴点が設定されている。さらに、特徴点ＦＰ２と関連付けて、パッチＰｔｈ２が定義されている。
【００６１】
自己位置検出部１４２は、撮像部１１０から入力画像を取得すると、入力画像に含まれる部分画像と、記憶部１３２に予め記憶されている図９に例示した特徴点ごとのパッチとを照合する。そして、自己位置検出部１４２は、照合の結果として、入力画像に含まれる特徴点の位置（例えば検出されたパッチの中心画素の位置）を特定する。
【００６２】
なお、特徴点の追跡（図８のステップＳ１１４）において、追跡される全ての特徴点に関するデータが予め記憶部１３２に記憶されていなくてもよい。例えば、図１０の例では、時刻Ｔ＝ｔ−１において、４つの特徴点が入力画像内で検出されている（１０ａ参照）。次に、時刻Ｔ＝ｔにおいてカメラの位置又は姿勢が変化すると、時刻Ｔ＝ｔ−１において入力画像に映っていた４つの特徴点のうち２つのみが入力画像内に映っている。この場合に、自己位置検出部１４２は、入力画像内で特徴的な画素のパターンを有する位置に新たに特徴点を設定し、その新たな特徴点を後のフレームにおける自己位置検出処理に用いてもよい。例えば、図１０の例では、時刻Ｔ＝ｔにおいて、３つの新たな特徴点がオブジェクト上に設定されている（１０ｂ参照）。かかる点は、ＳＬＡＭ技術の１つの特長であり、それにより、予め全ての特徴点を設定しておくコストを削減できると共に、追加される多数の特徴点を用いて処理の精度を高めることができる。
【００６３】
（１−２）状態変数の予測
本実施形態において、自己位置検出部１４２は、拡張カルマンフィルタを適用すべき状態変数として、次式に示す状態変数Ｘを用いる。
【００６４】
【数１】
0005471626.tif 000002
（１）
【００６５】
式（１）における状態変数Ｘの第１の要素は、次式の通り、端末装置１００ごとに設定されるローカルマップ座標系（ｘ，ｙ，ｚ）でのカメラの３次元位置を表す。なお、ローカルマップ座標系は、例えば、初期化処理時の撮像部１１０のカメラの位置及び姿勢に応じて設定される。例えば、ローカルマップの座標系の原点は、初期化処理時のカメラの位置であってよい。
【００６６】
【数２】
0005471626.tif 000003
（２）
【００６７】
また、状態変数の第２の要素は、カメラの姿勢を表す回転行列に対応する四元数（クォータニオン）を要素として有する４次元ベクトルωである。なお、四元数の変わりにオイラー角を用いてカメラの姿勢が表されてもよい。また、状態変数の第３及び第４の要素は、カメラの移動速度及び角速度をそれぞれ表す。
【００６８】
さらに、状態変数の第５及びそれ以降の要素は、次式の通り、ローカルマップ座標系での特徴点ＦＰｉ（ｉ＝１…Ｎ）の３次元位置ｐｉをそれぞれ表す。なお、上述したように、特徴点の数Ｎは、処理の間変化し得る。
【００６９】
【数３】
0005471626.tif 000004
（３）
【００７０】
自己位置検出部１４２は、ステップＳ１０２において初期化された状態変数Ｘの値、又は前フレームにおいて更新された状態変数Ｘの値に基づいて、最新のフレームについての状態変数の予測値を生成する。状態変数の予測値は、次式に示す多次元正規分布に従った拡張カルマンフィルタの状態方程式に従って生成される。
【００７１】
【数４】
0005471626.tif 000005
【００７２】
ここで、Ｆはシステムの状態遷移に関する予測モデル、ａは予測条件である。また、ｗはガウシアンノイズであり、例えばモデル近似誤差や観測誤差等を含み得る。一般的に、ガウシアンノイズｗの平均はゼロとなる。
【００７３】
図１１は、本実施形態に係る予測モデルの一例について説明するための説明図である。図１１を参照すると、本実施形態に係る予測モデルにおける２つの予測条件が示されている。まず、第１の条件として、特徴点のローカルマップ座標系における３次元位置は変化しないものとする。即ち、時刻Ｔにおける特徴点ＦＰ１の３次元位置をｐＴとすると、次式の関係が成立する。
【００７４】
【数５】
0005471626.tif 000006
（５）
【００７５】
次に、第２の条件として、カメラの運動は等速運動であるものとする。即ち、時刻Ｔ＝ｔ−１から時刻Ｔ＝ｔにかけてのカメラの速度及び角速度について、次式の関係が成立する。
【００７６】
【数６】
0005471626.tif 000007
（６）
0005471626.tif 000008
（７）
【００７７】
このような予測モデル及び式（４）に示した状態方程式に基づいて、自己位置検出部１４２は、最新のフレームについての状態変数の予測値を生成する。
【００７８】
（１−３）状態変数の更新
そして、自己位置検出部１４２は、観測方程式を用いて、例えば状態変数の予測値から予測される観測情報と、特徴点の追跡結果として得られる実際の観測情報との誤差を評価する。なお、式（８）におけるνがその誤差である。
【００７９】
【数７】
0005471626.tif 000009
【００８０】
ここで、Ｈは観測モデルを表す。例えば、特徴点ＦＰｉの撮像面（ｕ−ｖ平面）上の位置を、次式のように定義する。
【００８１】
【数８】
0005471626.tif 000010
【００８２】
ここで、カメラの位置ｘ、カメラの姿勢ω、及び特徴点ＦＰｉの３次元位置ｐｉは、いずれも状態変数Ｘの要素として与えられる。そうすると、ピンホールモデルに従い、特徴点ＦＰｉの撮像面上の位置は次式を用いて導かれる。
【００８３】
【数９】
0005471626.tif 000011
（１１）
【００８４】
ここで、λは正規化のためのパラメータ、Ａはカメラ内部パラメータ、Ｒωは状態変数Ｘに含まれるカメラの姿勢を表す四元数ωに対応する回転行列である。カメラ内部パラメータＡは、入力画像を撮影するカメラの特性に応じて、予め次式のように与えられる。
【００８５】
【数１０】
0005471626.tif 000012
（１２）
【００８６】
ここで、ｆは焦点距離、θは画像軸の直交性（理想値は９０°）、ｋｕは撮像面の縦軸のスケール（ローカルマップ座標系から撮像面の座標系へのスケール変化率）、ｋｖは撮像面の横軸のスケール、（ｕｏ，ｖｏ）は撮像面の中心位置である。
【００８７】
従って、式（１１）を用いて導かれる予測される観測情報、即ち各特徴点の撮像面上の位置と、図８のステップＳ１１４における特徴点の追跡結果との間の誤差を最小にする状態変数Ｘを探索することにより、尤もらしい最新の状態変数Ｘを得ることができる。
【００８８】
【数１１】
0005471626.tif 000013
【００８９】
自己位置検出部１４２は、このようにＳＬＡＭ技術を応用して動的に更新したカメラの位置ｘ及び姿勢ωを、ローカルマップ構築部１４６へ出力する。
【００９０】
（２）特徴データ
記憶部１３２は、実空間内に存在し得る物体に対応するオブジェクトの特徴を表す特徴データを予め記憶している。図１２は、特徴データの構成の一例について説明するための説明図である。
【００９１】
図１２を参照すると、オブジェクトＢ２についての一例としての特徴データＦＤ１が示されている。特徴データＦＤ１は、オブジェクト名称ＦＤ１１、６方向から撮影した画像データＦＤ１２、パッチデータＤＦ１３、３次元形状データＦＤ１４、及びオントロジーデータＦＤ１５を含む。
【００９２】
オブジェクト名称ＦＤ１１は、“コーヒーカップＡ”など、対応するオブジェクトを特定することのできる名称である。
【００９３】
画像データＦＤ１２は、例えば、対応するオブジェクトを前・後・左・右・上・下の６方向からそれぞれ撮影した６つの画像データを含む。パッチデータＦＤ１３は、各オブジェクト上に設定される１つ以上の特徴点ごとの、各特徴点を中心とする小画像の集合である。画像データＦＤ１２及びパッチデータＦＤ１３は、後述する画像認識部１４４によるオブジェクト認識処理のために使用され得る。また、パッチデータＦＤ１３は、前述した自己位置検出部１４２による自己位置検出処理のために使用され得る。
【００９４】
３次元形状データＦＤ１４は、対応するオブジェクトの形状を認識するためのポリゴン情報、及び特徴点の３次元的な位置情報を含む。３次元形状データＦＤ１４は、後述するローカルマップ構築部１４６によるローカルマップ構築処理のために使用され得る。
【００９５】
オントロジーデータＦＤ１５は、例えば、ローカルマップ構築部１４６によるローカルマップ構築処理を支援するために使用され得るデータである。図１２の例では、オントロジーデータＦＤ１５は、コーヒーカップであるオブジェクトＢ２が、テーブルに対応するオブジェクトに接する可能性が高いこと、及び本棚に対応するオブジェクトに接する可能性が低いことを表している。
【００９６】
（３）画像認識部
画像認識部１４４は、記憶部１３２により記憶されている上述した特徴データを用いて、入力画像に映っている物体がそれぞれどのオブジェクトに対応するかを特定する。
【００９７】
図１３は、画像認識部１４４によるオブジェクト認識処理の流れの一例を示すフローチャートである。図１３を参照すると、まず、画像認識部１４４は、撮像部１１０から入力画像を取得する（ステップＳ２１２）。次に、画像認識部１４４は、入力画像に含まれる部分画像と、特徴データに含まれる各オブジェクトの１つ以上の特徴点のパッチとを照合し、入力画像に含まれる特徴点を抽出する（ステップＳ２１４）。なお、画像認識部１４４によるオブジェクト認識処理に用いられる特徴点と、自己位置検出部１４２による自己位置検出処理に用いられる特徴点とは、必ずしも同じでなくてもよい。但し、双方の処理で用いられる特徴点が共通している場合には、画像認識部１４４は、自己位置検出部１４２による特徴点の追跡結果を再利用してもよい。
【００９８】
次に、画像認識部１４４は、特徴点の抽出結果に基づいて、入力画像に映っているオブジェクトを特定する（ステップＳ２１６）。例えば、画像認識部１４４は、ある領域内で１つのオブジェクトに属す特徴点が高い密度で抽出された場合には、当該領域にそのオブジェクトが映っていると認識し得る。そして、画像認識部１４４は、特定したオブジェクトのオブジェクト名称（又は識別子）及びそのオブジェクトに属す特徴点の撮像面上の位置を、ローカルマップ構築部１４６へ出力する（ステップＳ２１８）。
【００９９】
（４）ローカルマップ構築部
ローカルマップ構築部１４６は、自己位置検出部１４２から入力されるカメラの位置及び姿勢、画像認識部１４４から入力される特徴点の撮像面上の位置、及び記憶部１３２に記憶されている特徴データを用いて、ローカルマップを構築する。本実施形態において、ローカルマップとは、上述したように、端末装置１００の周囲に存在する１つ以上の物体の位置及び姿勢をローカルマップ座標系を用いて表現する位置データの集合である。また、ローカルマップに含まれる各位置データは、例えば、物体に対応するオブジェクト名称、当該物体に属す特徴点の３次元位置、及び当該物体の形状を構成するポリゴン情報などと関連付けられてもよい。ローカルマップは、例えば、画像認識部１４４から入力される特徴点の撮像面上の位置から、上述したピンホールモデルに従って各特徴点の３次元位置を求めることにより構築され得る。
【０１００】
式（１１）に示したピンホールモデルの関係式を変形すると、特徴点ＦＰｉのローカルマップ座標系における３次元位置ｐｉは、次式により求められる。
【０１０１】
【数１２】
0005471626.tif 000014
（１４）
【０１０２】
ここで、ｄはカメラと各特徴点との間のローカルマップ座標系における距離を表す。ローカルマップ構築部１４６は、かかる距離ｄを、オブジェクトごとに少なくとも４つの特徴点の撮像面上の位置、及び当該特徴点間の距離に基づいて、算出することができる。特徴点間の距離は、図１２を用いて説明した特徴データに含まれる３次元形状データＦＤ１４として、予め記憶部１３２により記憶されている。なお、式（１４）における距離ｄの算出処理については、特開２００８−３０４２６８号公報において詳しく説明されている。
【０１０３】
距離ｄが算出されると、式（１４）における右辺の残りの変数は、自己位置検出部１４２から入力されるカメラの位置及び姿勢、並びに画像認識部１４４から入力される特徴点の撮像面上の位置であり、いずれも既知となる。そこで、ローカルマップ構築部１４６は、式（１４）に従って、画像認識部１４４から入力される各特徴点について、ローカルマップ座標系における３次元位置を計算する。そして、ローカルマップ構築部１４６は、算出した特徴点ごとの３次元位置に応じて最新のローカルマップを構築する。このとき、ローカルマップ構築部１４６は、図１２を用いて説明した特徴データに含まれるオントロジーデータＦＤ１５を用いて、ローカルマップのデータの正確性を向上させてもよい。そして、ローカルマップ構築部１４６は、構築したローカルマップを記憶部１３２に格納すると共に、当該ローカルマップを算出部１６０へ出力する。
【０１０４】
なお、ここでは、ローカルマップ生成部１４０が特徴データに含まれる画像（物体の特徴点ごとのパッチなど）を用いてローカルマップを生成する例について説明した。しかしながら、その代わりに、個々の物体を識別可能なマーカ又はタグなどの識別手段が物体に予め付されている場合には、ローカルマップ生成部１４０は、当該識別手段を用いて個々の物体を識別した上で、その識別結果を用いてローカルマップを生成してもよい。個々の物体を識別するための識別手段としては、例えば、バーコード、ＱＲコード（登録商標）又はＲＦ（Radio  Frequency）タグなどを用いることができる。
【０１０５】
［３−６．算出部］
算出部１６０は、部分グローバルマップに含まれる物体の位置データとローカルマップに含まれる物体の位置データとを照合し、その照合の結果に基づいて、グローバルマップに対するローカルマップの相対的な位置及び姿勢を算出する。部分グローバルマップに対するローカルマップの相対的な位置及び姿勢とは、グローバル座標系を基準とした場合の、ローカルマップ座標系の変位と傾きに相当する。より具体的には、算出部１６０は、例えば、部分グローバルマップ及びローカルマップに共通して含まれるランドマークの位置データに基づいて、ローカルマップの相対的な位置及び姿勢を算出してもよい。その代わりに、算出部１６０は、例えば、ローカルマップに含まれる物体の位置データをグローバル座標系のデータに変換した場合に、当該変換後のデータと部分グローバルマップに含まれる物体の位置データとの間の差が全体として小さくなるように、ローカルマップの相対的な位置及び姿勢を算出してもよい。そして、算出部１６０は、算出したローカルマップの相対的な位置及び姿勢とローカルマップとを、変換部１７０へ出力する。
【０１０６】
（第１の手法）
図１４Ａは、本実施形態に係る算出部１６０によるマップ照合処理の一例について説明するための説明図である。
【０１０７】
図１４Ａを参照すると、記憶部１３２により記憶されている部分グローバルマップＭＧ（Ｕａ）と、ローカルマップ生成部１４０により生成されるローカルマップＭＬａとが模式的に示されている。このうち、部分グローバルマップＭＧ（Ｕａ）には、立方体により表されている９個の物体が含まれる。また、ローカルマップＭＬａには、球体により表されている４個の物体が含まれる。これら物体のうち、物体Ｂ１、Ｂ２（Ｂ２´）、Ｂ３及びＢ４が、部分グローバルマップＭＧ（Ｕａ）及びローカルマップＭＬａに共通的に含まれている物体である。また、物体Ｂ１、Ｂ３及びＢ４は、移動することの稀な非移動物体、即ちランドマークである。そこで、算出部１６０は、例えば、ローカルマップの物体Ｂ１、Ｂ３及びＢ４の位置データをグローバル座標系のデータに変換した場合に、当該変換後のデータと部分グローバルマップに含まれる物体Ｂ１、Ｂ３及びＢ４の位置データとが重なるように、ローカルマップの位置と姿勢とを算出する。
【０１０８】
まず、算出部１６０は、部分グローバルマップＭＧ（Ｕａ）及びローカルマップＭＬａに共通するランドマーク（又はランドマーク上の特徴点）のペアを３つ抽出する。ランドマークの３つのペアについて、ローカルマップ座標系における３次元位置をｗｉ（ｉ＝１，２，３）、グローバル座標系における３次元位置をＸｉとする。さらに、グローバル座標系を基準とした場合のローカルマップ座標系の変位をΔＸ、ローカルマップ座標系の傾きΔΩに対応する回転行列をＲＬとすると、次の方程式が成立する。
【０１０９】
【数１３】
0005471626.tif 000015
（１５）
【０１１０】
回転行列ＲＬは、式（１５）を式（１６）のように変形することで求められる。
【０１１１】
【数１４】
0005471626.tif 000016
（１６）
【０１１２】
なお、回転行列ＲＬの代わりに四元数（クォータニオン）を用いてローカルマップ座標系の回転を表現した場合にも、回転を表す四元数のノルムが１であることを利用して、回転を表す四元数（及び当該四元数に応じた回転行列）を求めることができる。
【０１１３】
さらに、算出部１６０は、方程式（１５）を解くことにより、ローカルマップ座標系の変位ΔＸを求めることができる。
【０１１４】
なお、図１４Ａの例では、ランドマークでない物体Ｂ２の部分グローバルマップＭＧ（Ｕａ）における位置と、ローカルマップＭＬａにおける位置（Ｂ２´）とは異なる。これは、部分グローバルマップＭＧ（Ｕａ）の最後の更新時点からローカルマップＭＬａの生成時点の間に、物体Ｂ２が移動したことを意味している。
【０１１５】
（第２の手法）
図１４Ｂは、本実施形態に係る算出部１６０によるマップ照合処理の他の例について説明するための説明図である。
【０１１６】
図１４Ｂを参照すると、記憶部１３２により記憶されている部分グローバルマップＭＧ（Ｕａ）と、ローカルマップ生成部１４０により生成されるローカルマップＭＬａとが模式的に示されている。このうち、部分グローバルマップＭＧ（Ｕａ）には、立方体により表されている９個の物体が含まれる。また、ローカルマップＭＬａには、球体により表されている４個の物体が含まれる。これら物体のうち、物体Ｂ５、Ｂ６、Ｂ７及びＢ８は、部分グローバルマップＭＧ（Ｕａ）及びローカルマップＭＬａに共通的に含まれている。そこで、算出部１６０は、例えば、これら物体Ｂ５〜Ｂ８の位置データをグローバル座標系のデータに変換した場合に、当該変換後のデータと部分グローバルマップに含まれる物体Ｂ５〜Ｂ８の位置データとの間の差の総和（例えば、図１４Ａの例における距離Ｅ５、Ｅ６、Ｅ７及びＥ８の和）が小さくなるように、ローカルマップの位置（ローカルマップ座標系の変位ΔＸ）と姿勢（ローカルマップ座標系の傾きΔΩ）とを算出し得る。例えば、算出部１６０は、公知のＲＡＮＳＡＣ（“RANdom  Sample  Consensus”）アルゴリズムを応用することにより、上述した差の総和が小さくなる尤もらしいローカルマップの位置及び姿勢を算出することができる。
【０１１７】
ＲＡＮＳＡＣアルゴリズムは、一般的には、３次元位置が既知である複数の点について、予め設定される誤差の範囲内で当該複数の点を含む直線又は面を決定するためのアルゴリズムである。本実施形態においては、まず、算出部１６０は、部分グローバルマップＭＧ（Ｕａ）及びローカルマップＭＬａに共通する物体（又は物体上の特徴点）のペアを複数（好適には４つ以上）用意する。次に、算出部１６０は、用意した複数のペアからランダムに３つのペアを抽出する。次に、算出部１６０は、抽出した３つのペアについて、上述した方程式（１５）を解くことにより、ローカルマップ座標系の変位ΔＸ、及びローカルマップ座標系の傾きΔΩに対応する回転行列ＲＬの候補を導出する。そして、算出部１６０は、導出した候補を次の評価式を用いて評価する。
【０１１８】
【数１５】
0005471626.tif 000017
（１７）
【０１１９】
なお、式（１７）において、ｊは、物体（又は物体上の特徴点）のそれぞれを指す。算出部１６０は、式（１７）における評価値εｊを所定の閾値よりも小さくするｊの数をカウントする。そして、算出部１６０は、カウント結果が最も多くなる変位ΔＸ及び回転行列ＲＬを尤もらしいローカルマップの位置及び姿勢として決定する。
【０１２０】
（第１の手法と第２の手法との組合せ）
また、算出部１６０は、例えば、ローカルマップに含まれるランドマークの数に応じて、上述した第１の手法と第２の手法とを使い分けてもよい。例えば、３つのランドマークがローカルマップに含まれる場合には図１４Ａを用いて説明した手法、２つ以下のランドマークのみがローカルマップに含まれる場合には図１４Ｂを用いて説明した手法を使用して、ローカルマップの相対的な位置及び姿勢を算出してもよい。
【０１２１】
［３−７．変換部］
変換部１７０は、算出部１６０から入力されるローカルマップの相対的な位置及び姿勢に応じて、ローカルマップに含まれる物体の位置データをグローバルマップの座標系のデータに座標変換する。より具体的には、変換部１７０は、例えば、ローカルマップに含まれる物体の３次元位置（ローカルマップ座標系）を、算出部１６０から入力されるローカルマップの傾きΔΩに応じた回転行列を用いて回転させる。そして、変換部１７０は、算出部１６０から入力されるローカルマップの相対的な位置（グローバル座標系に対するローカルマップ座標系の変位ΔＸ）を、回転後の座標に加算する。それにより、ローカルマップに含まれる物体の位置データが、グローバルマップの座標系のデータに変換される。変換部１７０は、このような座標変換後のローカルマップに含まれる物体の位置データを、更新部１８０へ出力する。
【０１２２】
また、変換部１７０は、ローカルマップ生成部１４０の自己位置検出部１４２により検出されたローカルマップ座標系のカメラの位置及び姿勢を、算出部１６０から入力されるローカルマップの相対的な位置及び姿勢を用いて、グローバルマップの座標系のデータに座標変換してもよい。それにより、初期化部１２０が特定した端末装置１００の位置を、初期化後の端末装置１００の移動に応じて更新することができる。この後、グローバルマップ取得部１３０は、更新された新たな端末装置１００の位置に応じて、マップ管理サーバ１０から新たな部分グローバルマップを取得してもよい。
【０１２３】
［３−８．更新部］
更新部１８０は、変換部１７０による座標変換後のローカルマップに含まれる物体の位置データを用いて、記憶部１３２により記憶されている部分グローバルマップを更新する。また、更新部１８０は、変換部１７０による座標変換後のローカルマップ又は更新した部分グローバルマップをマップ管理サーバ１０へ送信することにより、マップ管理サーバ１０が保持しているグローバルマップを更新する。グローバルマップの更新は、最終的には、端末装置１００の更新部１８０から座標変換後のローカルマップ又は更新後のグローバルマップを受信したマップ管理サーバ１０の更新部５０により行われ得る。
【０１２４】
図１５Ａは、本実施形態に係るグローバルマップ更新処理の一例について説明するための説明図である。
【０１２５】
図１５Ａを参照すると、更新前の部分グローバルマップＭＧ（Ｕａ）及び座標変換後のローカルマップＭＬａ´が示されている。更新前の部分グローバルマップＭＧ（Ｕａ）には、９つの物体（Ｏｂｊ１〜Ｏｂｊ９）についての位置データが含まれている。これら位置データのタイムスタンプは、一例として、２０１０年１月１日２３時５９分５９秒を示している。一方、座標変換後のローカルマップＭＬａ´には、５つの物体（Ｏｂｊ１〜Ｏｂｊ４及びＯｂｊ１０）についての位置データが含まれている。これら位置データのタイムスタンプは、一例として、２０１０年１月２日１２時００分００秒を示している。この場合、更新部１８０は、共通する物体（Ｏｂｊ１〜Ｏｂｊ４）のそれぞれについて、部分グローバルマップＭＧ（Ｕａ）の位置データを、より新しい座標変換後のローカルマップＭＬａ´の位置データで更新する。また、新たな物体（Ｏｂｊ１０）についての位置データを部分グローバルマップＭＧ（Ｕａ）に挿入する。その結果、新たな部分グローバルマップＭＧ（Ｕａ）´が生成される。
【０１２６】
なお、図１５Ａの例では、共通する物体についての位置データが新しいデータで上書きされているが、その代わりに、共通する物体についての古い位置データと新しい位置データとを並存させてもよい。それにより、最新のグローバルマップのみならず、過去のグローバルマップを時刻でフィルタリングすることにより抽出することも可能となる。この場合、古い位置データは、例えば、定期的な処理により、一定の期間が経過した後に削除される。
【０１２７】
図１５Ｂは、本実施形態に係るグローバルマップ更新処理の他の例について説明するための説明図である。
【０１２８】
図１５Ｂを参照すると、更新前の部分グローバルマップＭＧ（Ｕａ）及び座標変換後のローカルマップＭＬａ´が模式的に示されている。更新前の部分グローバルマップＭＧ（Ｕａ）には、物体Ｂ１〜Ｂ３を含む７つの物体が含まれている。一方、座標変換後のローカルマップＭＬａ´には、４つの物体Ｂ１〜Ｂ３及びＢ１２が含まれている。この場合、更新部１８０は、例えば、座標変換後のローカルマップＭＬａ´に対応する領域（図１５Ｂにおける破線の領域）に含まれる更新前の部分グローバルマップＭＧ（Ｕａ）内の物体を削除し、当該領域に含まれる座標変換後のローカルマップＭＬａ´内の物体を部分グローバルマップＭＧ（Ｕａ）に挿入する。その結果、図１５Ｂの下に示したような新たな部分グローバルマップＭＧ（Ｕａ）´が生成される。このような更新処理によれば、例えば、外観が同一の複数の物体など、画像認識によって互いに区別し得ない複数の物体の移動を適切にグローバルマップに反映することができる。
【０１２９】
なお、図１５Ｂの例においても、１つのマップ内に、古い位置データと新しい位置データとを並存させてもよい。また、部分グローバルマップに含まれる物体のうちランドマークである物体は通常移動しないため、更新部１８０は、ランドマークについての位置データの更新処理を省略してもよい。
【０１３０】
図１５Ａ及び図１５Ｂについての上述した説明は、端末装置１００の更新部１８０による部分グローバルマップの更新のみならず、マップ管理サーバ１０の更新部５０によるグローバルマップの更新にも同様に適用され得る。この場合、図１５Ａ及び図１５Ｂにおける部分グローバルマップはグローバルマップ記憶部３０により記憶されているグローバルマップ、図１５Ａ及び図１５Ｂにおける座標変換後のローカルマップは端末装置１００からマップ管理サーバ１０へ送信される部分グローバルマップ（又は座標変換後のローカルマップ）に対応する。
【０１３１】
［３−９．表示制御部］
表示制御部１９０は、ユーザからの指示に応じて、マップ管理サーバ１０からグローバルマップをダウンロードし、グローバルマップを少なくとも部分的に可視化して端末装置１００の画面に出力する。より具体的には、例えば、表示制御部１９０は、ユーザからの指示入力を検知すると、グローバルマップの送信要求をマップ管理サーバ１０のグローバルマップ配信部６０へ送信する。そうすると、マップ管理サーバ１０のグローバルマップ配信部６０から、グローバルマップ記憶部３０により記憶されているグローバルマップが配信される。表示制御部１９０は、かかるグローバルマップを受信し、ユーザが望む領域（ユーザが現在位置している領域以外の領域であってよい）についての物体の位置を可視化して画面に出力する。
【０１３２】
＜４．処理の流れ＞
図１６は、本実施形態に係るマップ管理サーバ１０と端末装置１００との間のマップ更新処理の流れの一例を示すフローチャートである。
【０１３３】
図１６を参照すると、まず、端末装置１００の初期化部１２０により、撮像部１１０から入力される入力画像を用いて、グローバル座標系における端末装置１００の位置が初期化される（ステップＳ３０２）。初期化部１２０による初期化処理は、例えば、端末装置１００の起動時、又は端末装置１００における所定のアプリケーションの起動時などに行われ得る。
【０１３４】
次に、端末装置１００のグローバルマップ取得部１３０からマップ管理サーバ１０へ、グローバル座標系における端末装置１００の位置に関する情報が送信される（ステップＳ３０４）。端末装置１００の位置に関する情報とは、例えば、端末装置１００のグローバル座標系における座標であってもよく、その代わりに端末装置１００が位置するエリアを識別するためのエリア識別子であってもよい。
【０１３５】
次に、マップ管理サーバ１０の部分グローバルマップ抽出部４０により、グローバルマップ記憶部３０に記憶されているグローバルマップのサブセットである端末装置１００のための部分グローバルマップが抽出される（ステップＳ３０６）。
【０１３６】
次に、マップ管理サーバ１０の部分グローバルマップ抽出部４０から端末装置１００のグローバルマップ取得部１３０へ、端末装置１００のための部分グローバルマップが送信される（ステップＳ３０８）。
【０１３７】
次に、端末装置１００のローカルマップ生成部１４０により、入力画像及び特徴データに基づいて、周囲の物体の位置を表現するローカルマップが生成される（ステップＳ３１０）。
【０１３８】
次に、端末装置１００の算出部１６０により、部分グローバルマップに含まれる物体の位置データ及びローカルマップに含まれる物体の位置データに基づいて、グローバル座標系を基準とするローカルマップの相対的な位置及び姿勢が算出される（ステップＳ３１２）。そして、算出部１６０により算出されたローカルマップの相対的な位置及び姿勢に応じて、変換部１７０により、ローカルマップに含まれる物体の位置データがグローバル座標系のデータに座標変換される
【０１３９】
次に、端末装置１００の更新部１８０により、座標変換後のローカルマップに含まれる物体の位置データを用いて、端末装置１００の記憶部１３２に記憶されている部分グローバルマップが更新される。また、グローバル座標系における端末装置１００の位置が更新される（ステップＳ３１４）。
【０１４０】
次に、端末装置１００の更新部１８０からマップ管理サーバ１０の更新部５０へ、更新後の部分グローバルマップが送信される（ステップ３１６）。そして、マップ管理サーバ１０の更新部５０により、更新後の部分グローバルマップに含まれる物体の位置データを用いて、グローバルマップ記憶部３０に記憶されているグローバルマップが更新される（ステップＳ３１８）。
【０１４１】
その後、定期的に、又は要求に応じて、ローカルマップの生成（ステップＳ３１０）からグローバルマップの更新（ステップＳ３１８）までの処理が繰り返される。また、例えば、端末装置１００の位置が部分グローバルマップの中心位置から所定の距離以上離れた場合には、最新の端末装置１００の位置に基づく部分グローバルマップの取得（ステップＳ３０４）からの処理が行われ得る。
【０１４２】
ユーザは、このようなマップ更新処理により更新されるグローバルマップを、マップ管理サーバ１０のグローバルマップ配信部６０及び端末装置１００の表示制御部１９０を通じて提供される表示機能を用いて、端末装置１００の画面上で閲覧することができる。
【０１４３】
＜５．変形例＞
［５−１．スーパークライアント］
ここまで、マップ管理サーバ１０と端末装置１００との間でマップ更新処理が行われる例について主に説明した。しかしながら、本発明は、かかる例に限定されない。例えば、いずれかのユーザが保持する端末装置がマップ管理サーバ１０と同等のグローバルマップ管理機能を備えてもよい。そのような端末装置を、本節ではスーパークライアントという。
【０１４４】
図１７は、一例としてのスーパークライアント２００の構成の一例を示すブロック図である。図１７を参照すると、スーパークライアント２００は、通信インタフェース２１０、サーバ処理モジュール２２０、クライアント処理モジュール２３０及び表示制御部２４０を備える。
【０１４５】
通信インタフェース２１０は、スーパークライアント２００と他の端末装置（例えば、図５に例示した端末装置１００）との間の通信接続を仲介するインタフェースである。通信インタフェース２１０は、無線通信インタフェースであってもよく、有線通信インタフェースであってもよい。
【０１４６】
サーバ処理モジュール２２０は、上述したマップ管理サーバ１０と同等のグローバルマップ管理機能を有するモジュールである。サーバ処理モジュール２２０は、グローバルマップ記憶部３０、部分グローバルマップ抽出部４０、更新部５０及びグローバルマップ配信部６０を含む。サーバ処理モジュール２２０は、他の端末装置との間で図１６を用いて説明したようなマップ更新処理を行うことに加えて、後述するクライアント処理モジュール２３０との間でもマップ更新処理を行う。
【０１４７】
クライアント処理モジュール２３０は、上述した端末装置１００と同等のグローバルマップの更新及び閲覧等の機能を有するモジュールである。クライアント処理モジュール２３０は、撮像部１１０、初期化部１２０、グローバルマップ取得部１３０、記憶部１３２、ローカルマップ生成部１４０、算出部１６０、変換部１７０及び更新部１８０を含む。
【０１４８】
表示制御部２４０は、ユーザからの指示に応じて、サーバ処理モジュール２２０のグローバルマップ記憶部３０により記憶されているグローバルマップを少なくとも部分的に可視化して画面に出力する。また、表示制御部２４０は、クライアント処理モジュール２３０の記憶部１３２に記憶されている部分グローバルマップ又はローカルマップを可視化して画面に出力してもよい。
【０１４９】
このようなスーパークライアント２００と１つ以上の端末装置１００とを用いることにより、例えば、Ｐ２Ｐ（Peer  to  Peer）を用いた通信接続を介して複数のユーザが１つのグローバルマップを共有することが可能となる。
【０１５０】
［５−２．付加情報の共有］
端末装置１００は、例えば、撮像部１１０を用いて撮像した画像などの追加情報を座標データと関連付けて、部分グローバルマップと共にマップ管理サーバ１０へ送信してもよい。そして、マップ管理サーバ１０のグローバルマップ配信部６０及び端末装置１００の表示制御部１９０を通じて当該追加情報をも閲覧可能とすることで、動的に更新されるグローバルマップと関連付けられた追加情報を複数のユーザが共有することが可能となる。追加情報とは、例えば端末装置１００において撮像された画像そのものであってもよく、画像に映った文字等の認識結果などであってもよい。例えば、路上に駐車している車のナンバーの読み取り結果をグローバルマップ内の車の位置データと関連付けて共有することにより、駐車禁止などの交通違反の検挙に役立てることができる（図１８参照）。また、商店街の各店舗における商品の価格情報をグローバルマップ内の商品の位置データと関連付けて共有することにより、ユーザによるショッピングの際の利便性の向上及び商品の販促効果を期待することができる。また、倉庫にある在庫品のデータをグローバルマップ内の商品の位置データと関連付けて共有することにより、在庫管理が容易となる。
【０１５１】
＜６．まとめ＞
ここまで、図１〜図１８を用いて、本発明の一実施形態及びその応用例について説明した。本実施形態によれば、端末装置１００又はスーパークライアント２００などの情報処理装置により、複数のユーザが活動する実空間内の物体の位置を表現するグローバルマップの少なくとも一部分である部分グローバルマップが取得されると共に、当該装置により検出可能な周囲の物体の位置を表現するローカルマップが生成される。そして、ローカルマップに含まれる物体の位置データに基づいて、上記部分グローバルマップ及び複数のユーザ間で共有されるグローバルマップが更新される。それにより、実空間内の物体の位置の変化を迅速にユーザ間で共有することが可能となる。また、ローカルマップ生成処理において検出される端末装置１００の周囲の物体の位置データをグローバルマップに追加することができるため、サービス提供者によって詳細なマップが提供されない空間においても、より詳細な物体の位置データを複数のユーザ間で共有することができる。
【０１５２】
本実施形態によれば、部分グローバルマップに含まれる物体の位置データ及びローカルマップに含まれる物体の位置データに基づいて、グローバル座標系を基準とするローカルマップの相対位置及び姿勢が算出された後、その算出結果に応じて座標変換されたローカルマップの位置データを用いて、上述した更新処理が行われる。従って、ローカルマップ座標系に制約が課されないことから、ユーザは、上記情報処理装置を自由に持ち運びながら、動的に更新されるグローバルマップを他のユーザと共有することができる。
【０１５３】
また、本実施形態によれば、上記部分グローバルマップは、グローバルマップを保持するサーバ装置から取得される。かかる部分グローバルマップは、実空間内の情報処理装置の位置に関する情報に応じて抽出される、グローバルマップのサブセットである。従って、複数のユーザ間でのグローバルマップの共有に際して、グローバルマップの更新処理のための通信コストの増大が抑制される。
【０１５４】
また、本実施形態によれば、ＳＬＡＭ技術を応用することにより、撮像装置からの入力画像と物体の外観の特徴を表す特徴データとに基づいて、ローカルマップが生成される。それにより、上記情報処理装置が単眼カメラのみを有する場合にも、高い精度で物体の位置を検出してグローバルマップを更新することができる。
【０１５５】
また、本実施形態によれば、グローバルマップ及びローカルマップは、実空間内の各物体についての位置データと当該位置データに関するタイムスタンプとを含む。従って、複数のユーザによる更新の競合をタイムスタンプの比較により解消することができると共に、例えば、ユーザにより指定される過去の位置データを閲覧することも可能となる。
【０１５６】
なお、本明細書において説明した情報処理装置１００による一連の処理は、典型的には、ソフトウェアを用いて実現される。一連の処理を実現するソフトウェアを構成するプログラムは、例えば、各装置の内部又は外部に設けられる記憶媒体に予め格納される。そして、各プログラムは、例えば、実行時にＲＡＭ（Random  Access  Memory）に読み込まれ、ＣＰＵ（Central  Processing  Unit）などのプロセッサにより実行される。
【０１５７】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０１５８】
１０      マップ管理サーバ
１００    端末装置
１１０    撮像部
１３０    グローバルマップ取得部
１４０    ローカルマップ生成部
１６０    算出部
１７０    変換部
１８０    更新部
【図１】
0005471626.tif 000018
【図２】
0005471626.tif 000019
【図３】
0005471626.tif 000020
【図４】
0005471626.tif 000021
【図５】
0005471626.tif 000022
【図６Ａ】
0005471626.tif 000023
【図６Ｂ】
0005471626.tif 000024
【図６Ｃ】
0005471626.tif 000025
【図７】
0005471626.tif 000026
【図８】
0005471626.tif 000027
【図９】
0005471626.tif 000028
【図１０】
0005471626.tif 000029
【図１１】
0005471626.tif 000030
【図１２】
0005471626.tif 000031
【図１３】
0005471626.tif 000032
【図１４Ａ】
0005471626.tif 000033
【図１４Ｂ】
0005471626.tif 000034
【図１５Ａ】
0005471626.tif 000035
【図１５Ｂ】
0005471626.tif 000036
【図１６】
0005471626.tif 000037
【図１７】
0005471626.tif 000038
【図１８】
0005471626.tif 000039