(57)【要約】  複数のトラッカーのそれぞれについての、共有座標系における位置又は向きが推定できる位置推定装置、トラッカー、位置推定方法及びプログラムを提供する。ポイントクラウド記憶部（８０）は、共有座標系により位置が表現された共有ポイントクラウドを記憶する。位置推定部（８６）は、共有ポイントクラウドと、第１特徴点データと、に基づいて、共有座標系における第１トラッカーの位置又は向きを推定する。位置推定部（８６）は、共有ポイントクラウドと、第２特徴点データと、に基づいて、共有座標系における第２トラッカーの位置又は向きを推定する。
2019167213.tif 000002
【特許請求の範囲】
【請求項１】
共有座標系により位置が表現された共有ポイントクラウドを記憶するポイントクラウド記憶部と、
前記共有座標系における第１トラッカーの位置又は向き、並びに、第２トラッカーの位置又は向きを推定する推定部と、を含み、
前記推定部は、前記共有ポイントクラウドと、前記第１トラッカーが取得する第１センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第１特徴点データと、に基づいて、前記共有座標系における前記第１トラッカーの位置又は向きを推定し、
前記推定部は、前記共有ポイントクラウドと、前記第２トラッカーが取得する第２センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第２特徴点データと、に基づいて、前記共有座標系における前記第２トラッカーの位置又は向きを推定する、
ことを特徴とする位置推定装置。
【請求項２】
送信部をさらに含み、
前記送信部は、前記共有座標系における前記第１トラッカーの位置又は向きを示すデータを前記第１トラッカーに送信し、
前記送信部は、前記共有座標系における前記第２トラッカーの位置又は向きを示すデータを前記第２トラッカーに送信する、
ことを特徴とする請求項１に記載の位置推定装置。
【請求項３】
前記送信部は、さらに、前記共有座標系における前記第２トラッカーの位置又は向きを示すデータを前記第１トラッカーに送信し、
前記送信部は、さらに、前記共有座標系における前記第１トラッカーの位置又は向きを示すデータを前記第２トラッカーに送信する、
ことを特徴とする請求項２に記載の位置推定装置。
【請求項４】
前記共有ポイントクラウドと、前記第１特徴点データと、に基づいて、前記第１特徴点データに含まれる特徴点の位置に対応付けられる前記共有座標系における位置に配置されるポイントを前記共有ポイントクラウドに追加する追加部、をさらに含む、
ことを特徴とする請求項１から３のいずれか一項に記載の位置推定装置。
【請求項５】
前記ポイントクラウド記憶部は、さらに、前記共有座標系とは異なる個別座標系により位置が表現された個別ポイントクラウドを記憶し、
前記共有ポイントクラウドに含まれる複数のポイントのうちの一部と前記個別ポイントクラウドに含まれるポイントのうちの一部とが重なり合うと判定される場合に、前記個別ポイントクラウドに含まれるポイントの一部に相当するポイントを、前記共有ポイントクラウドに追加する追加部、をさらに含み、
前記推定部は、前記個別ポイントクラウドに含まれるポイントの一部に相当するポイントの前記共有ポイントクラウドへの追加が実行される前は、前記個別ポイントクラウドと、前記第１特徴点データと、に基づいて、前記個別座標系における前記第１トラッカーの位置又は向きを推定し、
前記推定部は、前記個別ポイントクラウドに含まれるポイントの一部に相当するポイントの前記共有ポイントクラウドへの追加が実行された後は、前記共有ポイントクラウドと、前記第１特徴点データと、に基づいて、前記共有座標系における前記第１トラッカーの位置又は向きを推定する、
ことを特徴とする請求項１から３のいずれか一項に記載の位置推定装置。
【請求項６】
受信部、をさらに含み、
前記受信部は、前記第１トラッカーから前記第１特徴点データを受信し、
前記受信部は、前記第２トラッカーから前記第２特徴点データを受信し、
前記推定部は、前記受信部により受信される前記第１特徴点データに基づいて、前記共有座標系における前記第１トラッカーの位置又は向きを推定し、
前記推定部は、前記受信部により受信される前記第２特徴点データに基づいて、前記共有座標系における前記第２トラッカーの位置又は向きを推定する、
ことを特徴とする請求項１から５のいずれか一項に記載の位置推定装置。
【請求項７】
受信部と、前記第１特徴点データ及び前記第２特徴点データを生成する特徴点データ生成部と、をさらに含み、
前記受信部は、前記第１トラッカーから前記第１センシングデータを受信し、
前記受信部は、前記第２トラッカーから前記第２センシングデータを受信し、
前記特徴点データ生成部は、受信される前記第１センシングデータに基づいて、前記第１特徴点データを生成し、
前記特徴点データ生成部は、受信される前記第２センシングデータに基づいて、前記第２特徴点データを生成し、
前記推定部は、前記特徴点データ生成部により生成される前記第１特徴点データに基づいて、前記共有座標系における前記第１トラッカーの位置又は向きを推定し、
前記推定部は、前記特徴点データ生成部により生成される前記第２特徴点データに基づいて、前記共有座標系における前記第２トラッカーの位置又は向きを推定する、
ことを特徴とする請求項１から５のいずれか一項に記載の位置推定装置。
【請求項８】
それぞれエリアに対応付けられている複数のポイントクラウドを記憶するポイントクラウド記憶部と、
トラッカーの位置を示す位置情報を取得する位置情報取得部と、
前記複数のポイントクラウドのうちから、前記位置情報が示す位置が含まれる前記エリアに対応付けられているポイントクラウドを選択するポイントクラウド選択部と、
選択される前記ポイントクラウドと、トラッカーが取得するセンシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている特徴点データと、に基づいて、前記トラッカーの位置又は向きを推定する推定部と、
を含むことを特徴とする位置推定装置。
【請求項９】
トラッカーの位置を示す位置情報を、それぞれエリアに対応付けられている複数のポイントクラウドを記憶するサーバに送信する送信部と、
前記複数のポイントクラウドのうちから選択される、前記位置情報が示す位置が含まれる前記エリアに対応付けられているポイントクラウドと、前記トラッカーが取得するセンシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている特徴点データと、に基づいて、前記サーバにおいて推定される、前記トラッカーの位置又は向きを示すデータを前記サーバから受信する受信部と、
を含むことを特徴とするトラッカー。
【請求項１０】
共有座標系により位置が表現された共有ポイントクラウドと、第１トラッカーが取得する第１センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第１特徴点データと、に基づいて、前記共有座標系における前記第１トラッカーの位置又は向きを推定するステップと、
前記共有ポイントクラウドと、第２トラッカーが取得する第２センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第２特徴点データと、に基づいて、前記共有座標系における前記第２トラッカーの位置又は向きを推定するステップと、
を含むことを特徴とする位置推定方法。
【請求項１１】
共有座標系により位置が表現された共有ポイントクラウドと、第１トラッカーが取得する第１センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第１特徴点データと、に基づいて、前記共有座標系における前記第１トラッカーの位置又は向きを推定する手順、
前記共有ポイントクラウドと、第２トラッカーが取得する第２センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第２特徴点データと、に基づいて、前記共有座標系における前記第２トラッカーの位置又は向きを推定する手順、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、位置推定装置、トラッカー、位置推定方法及びプログラムに関する。
【背景技術】
【０００２】
トラッカーの位置の推定及び環境地図作成を行うＳＬＡＭ（Simultaneous Localization and Mapping）の技術が知られている。【０００３】
ＳＬＡＭの技術では、例えばトラッカーが備えるカメラにより撮影された撮影画像などといった、トラッカーが取得するセンシングデータに基づいて、複数の特徴点を含む特徴点データが生成される。そして生成された特徴点データと予め記憶されているポイントクラウドである環境地図との比較結果に基づいて、トラッカーの位置又は向きの推定、及び、環境地図の更新が行われる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
発明者は、それぞれトラッカーを装着した複数のユーザが参加するゲーム等にＳＬＡＭの技術を活用することを検討している。このようなゲーム等においては、複数のトラッカーのそれぞれについて、当該複数のトラッカーで共有される共有座標系における当該トラッカーの位置又は向きを推定する必要がある。【０００５】
しかしＳＬＡＭの技術で推定されるトラッカーの位置や向きは、あくまでも、あるタイミングにおける当該トラッカーの位置や向きを基準とした相対的なものである。そのため複数のトラッカーのそれぞれについてＳＬＡＭの技術で位置や向きが推定されても、推定された位置や向きを共有座標系にマッピングできない。その結果、複数のトラッカーのそれぞれについての共有座標系における当該トラッカーの位置又は向きの推定ができない。【０００６】
本発明は上記課題に鑑みてなされたものであって、その目的の１つは、複数のトラッカーのそれぞれについての、共有座標系における位置又は向きが推定できる位置推定装置、トラッカー、位置推定方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明に係る位置推定装置は、共有座標系により位置が表現された共有ポイントクラウドを記憶するポイントクラウド記憶部と、前記共有座標系における第１トラッカーの位置又は向き、並びに、第２トラッカーの位置又は向きを推定する推定部と、を含み、前記推定部は、前記共有ポイントクラウドと、前記第１トラッカーが取得する第１センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第１特徴点データと、に基づいて、前記共有座標系における前記第１トラッカーの位置又は向きを推定し、前記推定部は、前記共有ポイントクラウドと、前記第２トラッカーが取得する第２センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第２特徴点データと、に基づいて、前記共有座標系における前記第２トラッカーの位置又は向きを推定する。【０００８】
本発明の一態様では、送信部をさらに含み、前記送信部は、前記共有座標系における前記第１トラッカーの位置又は向きを示すデータを前記第１トラッカーに送信し、前記送信部は、前記共有座標系における前記第２トラッカーの位置又は向きを示すデータを前記第２トラッカーに送信する。【０００９】
この態様では、前記送信部は、さらに、前記共有座標系における前記第２トラッカーの位置又は向きを示すデータを前記第１トラッカーに送信し、前記送信部は、さらに、前記共有座標系における前記第１トラッカーの位置又は向きを示すデータを前記第２トラッカーに送信してもよい。【００１０】
また、本発明の一態様では、前記共有ポイントクラウドと、前記第１特徴点データと、に基づいて、前記第１特徴点データに含まれる特徴点の位置に対応付けられる前記共有座標系における位置に配置されるポイントを前記共有ポイントクラウドに追加する追加部、をさらに含む。【００１１】
あるいは、前記ポイントクラウド記憶部は、さらに、前記共有座標系とは異なる個別座標系により位置が表現された個別ポイントクラウドを記憶し、前記共有ポイントクラウドに含まれる複数のポイントのうちの一部と前記個別ポイントクラウドに含まれるポイントのうちの一部とが重なり合うと判定される場合に、前記個別ポイントクラウドに含まれるポイントの一部に相当するポイントを、前記共有ポイントクラウドに追加する追加部、をさらに含み、前記推定部は、前記個別ポイントクラウドに含まれるポイントの一部に相当するポイントの前記共有ポイントクラウドへの追加が実行される前は、前記個別ポイントクラウドと、前記第１特徴点データと、に基づいて、前記個別座標系における前記第１トラッカーの位置又は向きを推定し、前記推定部は、前記個別ポイントクラウドに含まれるポイントの一部に相当するポイントの前記共有ポイントクラウドへの追加が実行された後は、前記共有ポイントクラウドと、前記第１特徴点データと、に基づいて、前記共有座標系における前記第１トラッカーの位置又は向きを推定する。【００１２】
また、本発明の一態様では、受信部、をさらに含み、前記受信部は、前記第１トラッカーから前記第１特徴点データを受信し、前記受信部は、前記第２トラッカーから前記第２特徴点データを受信し、前記推定部は、前記受信部により受信される前記第１特徴点データに基づいて、前記共有座標系における前記第１トラッカーの位置又は向きを推定し、前記推定部は、前記受信部により受信される前記第２特徴点データに基づいて、前記共有座標系における前記第２トラッカーの位置又は向きを推定する。【００１３】
あるいは、受信部と、前記第１特徴点データ及び前記第２特徴点データを生成する特徴点データ生成部と、をさらに含み、前記受信部は、前記第１トラッカーから前記第１センシングデータを受信し、前記受信部は、前記第２トラッカーから前記第２センシングデータを受信し、前記特徴点データ生成部は、受信される前記第１センシングデータに基づいて、前記第１特徴点データを生成し、前記特徴点データ生成部は、受信される前記第２センシングデータに基づいて、前記第２特徴点データを生成し、前記推定部は、前記特徴点データ生成部により生成される前記第１特徴点データに基づいて、前記共有座標系における前記第１トラッカーの位置又は向きを推定し、前記推定部は、前記特徴点データ生成部により生成される前記第２特徴点データに基づいて、前記共有座標系における前記第２トラッカーの位置又は向きを推定する。【００１４】
また、本発明に係る別の位置推定装置は、それぞれエリアに対応付けられている複数のポイントクラウドを記憶するポイントクラウド記憶部と、トラッカーの位置を示す位置情報を取得する位置情報取得部と、前記複数のポイントクラウドのうちから、前記位置情報が示す位置が含まれる前記エリアに対応付けられているポイントクラウドを選択するポイントクラウド選択部と、選択される前記ポイントクラウドと、トラッカーが取得するセンシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている特徴点データと、に基づいて、前記トラッカーの位置又は向きを推定する推定部と、を含む。【００１５】
また、本発明に係るトラッカーは、トラッカーの位置を示す位置情報を、それぞれエリアに対応付けられている複数のポイントクラウドを記憶するサーバに送信する送信部と、前記複数のポイントクラウドのうちから選択される、前記位置情報が示す位置が含まれる前記エリアに対応付けられているポイントクラウドと、前記トラッカーが取得するセンシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている特徴点データと、に基づいて、前記サーバにおいて推定される、前記トラッカーの位置又は向きを示すデータを前記サーバから受信する受信部と、を含む。【００１６】
また、本発明に係る位置推定方法は、共有座標系により位置が表現された共有ポイントクラウドと、第１トラッカーが取得する第１センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第１特徴点データと、に基づいて、前記共有座標系における前記第１トラッカーの位置又は向きを推定するステップと、前記共有ポイントクラウドと、第２トラッカーが取得する第２センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第２特徴点データと、に基づいて、前記共有座標系における前記第２トラッカーの位置又は向きを推定するステップと、を含む。【００１７】
また、本発明に係るプログラムは、共有座標系により位置が表現された共有ポイントクラウドと、第１トラッカーが取得する第１センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第１特徴点データと、に基づいて、前記共有座標系における前記第１トラッカーの位置又は向きを推定する手順、前記共有ポイントクラウドと、第２トラッカーが取得する第２センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第２特徴点データと、に基づいて、前記共有座標系における前記第２トラッカーの位置又は向きを推定する手順、をコンピュータに実行させる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態に係る位置共有システムの一例を示す構成図である。
【図２】本発明の一実施形態に係るトラッカーの一例を示す構成図である。
【図３】共有ポイントクラウドの一例を示す図である。
【図４】第１個別ポイントクラウドの一例を示す図である。
【図５】第２個別ポイントクラウドの一例を示す図である。
【図６】撮影画像の一例を示す図である。
【図７】特徴点の一例を示す図である。
【図８】第１個別ポイントクラウドの一例を示す図である。
【図９】第１個別ポイントクラウドの一例を示す図である。
【図１０】共有ポイントクラウドの一例を示す図である。
【図１１】撮影画像の一例を示す図である。
【図１２】特徴点の一例を示す図である。
【図１３】第２個別ポイントクラウドの一例を示す図である。
【図１４】第２個別ポイントクラウドの一例を示す図である。
【図１５】共有ポイントクラウドの一例を示す図である。
【図１６】本発明の一実施形態に係る位置共有システムで実装される機能の一例を示す機能ブロック図である。
【図１７】参照管理データの一例を示す図である。
【図１８】本発明の一実施形態に係る位置共有システムで行われる処理の流れの一例を示すフロー図である。
【発明を実施するための形態】
【００１９】
以下、本発明の一実施形態について図面に基づき詳細に説明する。
【００２０】
図１は、本発明の一実施形態に係る位置共有システム１の一例を示す構成図である。図１に示すように、本実施形態に係る位置共有システム１には、サーバ１０と、複数の端末（本実施形態では例えばトラッカー１２）と、が含まれている。図１には、トラッカー１２ａ及びトラッカー１２ｂが示されている。
【００２１】
サーバ１０、トラッカー１２ａ、トラッカー１２ｂは、インターネット等のコンピュータネットワーク１４に接続されている。そのため、サーバ１０、トラッカー１２ａ、トラッカー１２ｂは、コンピュータネットワーク１４を介して互いに通信可能となっている。
【００２２】
図１に示すように、本実施形態に係るサーバ１０は、例えば、プロセッサ２０、記憶部２２、及び、通信部２４を含んでいるサーバコンピュータである。なおサーバ１０が、複数の筐体から構成されたサーバシステムやクラウドシステムによって実装されていても構わない。
【００２３】
プロセッサ２０は、例えばサーバ１０にインストールされているプログラムに従って動作するＣＰＵ等のプログラム制御デバイスである。記憶部２２は、例えばＲＯＭやＲＡＭ等の記憶素子やハードディスクドライブなどである。記憶部２２には、プロセッサ２０によって実行されるプログラムなどが記憶される。通信部２４は、ネットワークボードや無線ＬＡＮモジュールなどといった通信インタフェースである。
【００２４】
本実施形態に係るトラッカー１２は、本実施形態では例えば、トラッカー１２を装着したユーザの位置や向きを追跡する装置である。図１には、トラッカー１２の一例としてヘッドマウントディスプレイ（ＨＭＤ）が示されている。
【００２５】
図２に示すように、本実施形態に係るトラッカー１２には、プロセッサ３０、記憶部３２、通信部３４、入出力部３６、表示部３８、センサ部４０、音声出力部４２、が含まれる。
【００２６】
プロセッサ３０は、例えばトラッカー１２にインストールされるプログラムに従って動作するマイクロプロセッサ等のプログラム制御デバイスである。
【００２７】
記憶部３２は、例えばＲＯＭやＲＡＭ等の記憶素子などである。記憶部３２には、プロセッサ３０によって実行されるプログラムなどが記憶される。
【００２８】
通信部３４は、例えば無線ＬＡＮモジュールなどの通信インタフェースである。
【００２９】
入出力部３６は、例えばＨＤＭＩ（登録商標）（High-Definition Multimedia Interface）ポート、ＵＳＢポート、ＡＵＸポートなどの入出力ポートである。
【００３０】
表示部３８は、トラッカー１２の前側に配置されている、例えば液晶ディスプレイや有機ＥＬディスプレイ等のディスプレイである。また表示部３８は、トラッカー１２の筐体に収容される。本実施形態に係る表示部３８は、例えば左目用の画像と右目用の画像を表示することによって三次元画像を表示させることができるようになっている。なお表示部３８は三次元画像の表示ができず二次元画像の表示のみができるものであっても構わない。
【００３１】
センサ部４０は、例えばカメラ、慣性センサ（ＩＭＵ）、地磁気センサ（方位センサ）、ＧＰＳ（Global Positioning System）モジュールなどといったセンサである。センサ部４０に含まれるカメラは、例えば所定のフレームレートで画像を撮影する。またセンサ部４０に含まれる地磁気センサは、トラッカー１２が向く方位を示すデータを、所定のフレームレートで、プロセッサ３０に出力する。またセンサ部４０に含まれる慣性センサは、トラッカー１２の加速度、回転量、移動量などを示すデータを、所定のフレームレートで、プロセッサ３０に出力する。またセンサ部４０に含まれるＧＰＳモジュールは、トラッカー１２の緯度及び経度を示すデータを、所定のフレームレートで、プロセッサ３０に出力する。
【００３２】
音声出力部４２は、例えばヘッドホンやスピーカ等であり、音声データが表す音声などを出力する。
【００３３】
本実施形態では、例えば以下のようにして、ＳＬＡＭ（Simultaneous Localization and Mapping）の技術を用いたトラッカー１２の位置及び向きの推定がサーバ１０において実行される。そしてこのようにして推定された位置や向きを示すデータがサーバ１０からトラッカー１２に通知される。
【００３４】
図３は、本実施形態に係るサーバ１０で管理される共有ポイントクラウド５０の一例を示す図である。共有ポイントクラウド５０は、トラッカー１２ａやトラッカー１２ｂの位置や向きの推定に用いられる。図３に示すように、共有ポイントクラウド５０には、複数のポイント５２が含まれている。本実施形態に係る共有ポイントクラウド５０はＸ１Ｙ１Ｚ１座標系で位置が表現されている。そのため共有ポイントクラウド５０に含まれる複数のポイント５２のそれぞれには、Ｘ１Ｙ１Ｚ１座標系で表現された座標値が設定されている。以下、Ｘ１Ｙ１Ｚ１座標系を共有座標系と呼ぶこととする。ここで共有ポイントクラウド５０に含まれるポイント５２の座標値が例えば、緯度、経度、及び、標高の組合せで表現されても構わない。
【００３５】
図４は、本実施形態に係るサーバ１０で管理される第１個別ポイントクラウド５４の一例を示す図である。第１個別ポイントクラウド５４は、トラッカー１２ａの位置や向きの推定に用いられる。図４に示すように、第１個別ポイントクラウド５４には、複数のポイント５６が含まれている。複数のポイント５６のそれぞれには、Ｘ２Ｙ２Ｚ２座標系で表現された座標値が設定されている。以下、Ｘ２Ｙ２Ｚ２座標系を第１個別座標系と呼ぶこととする。
【００３６】
図５は、本実施形態に係るサーバ１０で管理される第２個別ポイントクラウド５８の一例を示す図である。第２個別ポイントクラウド５８は、トラッカー１２ｂの位置や向きの推定に用いられる。図５に示すように、第２個別ポイントクラウド５８には、複数のポイント６０が含まれている。複数のポイント６０のそれぞれには、Ｘ３Ｙ３Ｚ３座標系で表現された座標値が設定されている。以下、Ｘ３Ｙ３Ｚ３座標系を第２個別座標系と呼ぶこととする。
【００３７】
なお本実施形態では、共有座標系、第１個別座標系、第２個別座標系は、互いに異なる独立した座標系であることとする。
【００３８】
本実施形態では、図３に示す共有ポイントクラウド５０、図４に示す第１個別ポイントクラウド５４、及び、図５に示す第２個別ポイントクラウド５８に基づいて、トラッカー１２ａやトラッカー１２ｂの位置や向きの推定が実行される。
【００３９】
以下、トラッカー１２ａのセンサ部４０により生成されるセンシングデータに基づく、トラッカー１２ａの位置及び向きの推定の一例について説明する。
【００４０】
本実施形態では、トラッカー１２ａのセンサ部４０に含まれるカメラによって所定のフレームレートで画像が撮影される。以下、このようにして撮影される画像を撮影画像と呼ぶこととする。当該撮影画像は、トラッカー１２ａのセンサ部４０により生成されるセンシングデータの一例に相当する。図６には、トラッカー１２ａのセンサ部４０に含まれるカメラによって撮影される撮影画像の一例として撮影画像６２が示されている。図６に示す撮影画像６２には、オブジェクト６４ａ及びオブジェクト６４ｂの像が含まれている。
【００４１】
ここで本実施形態では例えば、図７に示すように、撮影画像６２に基づいて、当該撮影画像６２の特徴点６６が複数抽出される。図７には、オブジェクト６４ａとオブジェクト６４ｂの縁に沿って抽出された特徴点６６が示されている。そして抽出された複数の特徴点６６の相対的な位置が示されている特徴点データが生成される。ここで当該特徴点データには複数の特徴点６６の相対的な位置が示されていることから、当該特徴点データはポイントクラウドの一種であるといえる。
【００４２】
ここで複数の特徴点６６の位置が、撮影画像６２により形成される二次元平面における二次元座標値（二次元のカメラ座標系で表現された二次元座標値）で表現されてもよい。また例えば複数の特徴点６６の位置が、撮影画像６２により形成される二次元平面における二次元座標値、及び、奥行き（Ｚ方向）に相当する座標値を含む三次元座標値（三次元のカメラ座標系で表現された三次元座標値）で表現されてもよい。
【００４３】
そして本実施形態では，ＳＬＡＭの技術を用いて、撮影画像６２から抽出された特徴点６６と第１個別ポイントクラウド５４に含まれるポイント５６との照合結果に基づいて、図８に示すように、トラッカー１２ａの位置６８及び向き７０が推定される。ここで推定される位置６８及び向き７０は、例えば、撮影画像６２が撮影された際のトラッカー１２ａの位置及び向きに相当する。またこのようにして推定される位置６８及び向き７０は第１個別座標系で表現されることとなる。
【００４４】
そして本実施形態ではこのようにして推定される、第１個別座標系で表現された位置６８及び向き７０を示すデータが、サーバ１０からトラッカー１２ａに送信される。そしてトラッカー１２ａは、受信した当該データに基づいて、種々の処理を実行する。
【００４５】
そして本実施形態では、図９に示すように、対応するポイント５６が第１個別ポイントクラウド５４に含まれていない複数の特徴点６６について、当該特徴点６６に対応するポイント５６が第１個別ポイントクラウド５４に追加される。図９の例では、領域Ｒ１内の複数のポイント５６が第１個別ポイントクラウド５４に追加されている。なおこの際に、特徴点６６に基づいて、第１個別ポイントクラウド５４に既に含まれているポイント５６の位置の更新が実行されてもよい。
【００４６】
なおこの場合に複数回生成された特徴点６６について、ポイント５６の追加や更新が行われるようにしてもよい。また例えば影などといった天気や時間帯の影響を受ける特徴点６６については、ポイント５６の追加や更新が行われないようにしてもよい。
【００４７】
そして本実施形態では、第１個別ポイントクラウド５４に含まれるポイント５６と、共有ポイントクラウド５０に含まれるポイント５２と、が照合される。ここで例えば、第１個別ポイントクラウド５４に含まれる複数のポイント５６のうちの一部と、共有ポイントクラウド５０に含まれる複数のポイント５２のうちの一部とが重なり合うことが特定されたとする。この場合、図１０に示すように、対応するポイント５２が共有ポイントクラウド５０に含まれていない第１個別ポイントクラウド５４に含まれるポイント５６については、当該ポイント５６に対応するポイント５２が共有ポイントクラウド５０に追加される。図１０の例では、領域Ｒ２内の複数のポイント５２が共有ポイントクラウド５０に追加されている。
【００４８】
そして本実施形態ではこのような共有ポイントクラウド５０へのポイント５２の追加が行われた後は、撮影画像から抽出される特徴点は、共有ポイントクラウド５０に含まれるポイント５２と照合されることとなる。そのため、推定されるトラッカー１２ａの位置及び向きは、共有座標系で表現されることとなる。ここで、共有座標系で表現された位置及び向きを示すデータとして、緯度、経度、及び、標高で表現されたデータが用いられてもよい。
【００４９】
この場合に、対応するポイント５２が共有ポイントクラウド５０に含まれていない特徴点について、当該特徴点に対応するポイント５２が共有ポイントクラウド５０に追加される。なおこの際に、特徴点に基づいて、共有ポイントクラウド５０に既に含まれているポイント５２の位置の更新が実行されてもよい。
【００５０】
なおこの場合に複数回生成された特徴点について、ポイント５２の追加や更新が行われるようにしてもよい。また例えば影などといった天気や時間帯の影響を受ける特徴点については、ポイント５２の追加や更新が行われないようにしてもよい。
【００５１】
以下、トラッカー１２ｂのセンサ部４０により生成されるセンシングデータに基づく、トラッカー１２ｂの位置及び向きの推定の一例について説明する。
【００５２】
トラッカー１２ａと同様に、本実施形態では、トラッカー１２ｂのセンサ部４０に含まれるカメラによって所定のフレームレートで撮影画像が撮影される。当該撮影画像は、トラッカー１２ｂのセンサ部４０により生成されるセンシングデータの一例に相当する。図１１には、トラッカー１２ｂのセンサ部４０に含まれるカメラによって撮影される撮影画像の一例として撮影画像７２が示されている。図１１に示す撮影画像７２には、オブジェクト６４ｃ及びオブジェクト６４ｄの像が含まれている。
【００５３】
ここで本実施形態では例えば、図１２に示すように、撮影画像７２に基づいて、当該撮影画像７２の特徴点７４が複数抽出される。図１２には、オブジェクト６４ｃとオブジェクト６４ｃの縁に沿って抽出された特徴点７４が示されている。そして抽出された複数の特徴点７４の相対的な位置が示されている特徴点データが生成される。ここで当該特徴点データには複数の特徴点７４の相対的な位置が示されていることから、当該特徴点データはポイントクラウドの一種であるといえる。
【００５４】
ここで複数の特徴点７４の位置が、撮影画像７２により形成される二次元平面における二次元座標値（二次元のカメラ座標系で表現された二次元座標値）で表現されてもよい。また例えば複数の特徴点７４の位置が、撮影画像７２により形成される二次元平面における二次元座標値、及び、奥行き（Ｚ方向）に相当する座標値を含む三次元座標値（三次元のカメラ座標系で表現された三次元座標値）で表現されてもよい。
【００５５】
そして本実施形態では，ＳＬＡＭの技術を用いて、撮影画像７２から抽出された特徴点７４と第２個別ポイントクラウド５８に含まれるポイント６０との照合結果に基づいて、図１３に示すように、トラッカー１２ｂの位置７６及び向き７８が推定される。ここで推定される位置７６及び向き７８は、例えば、撮影画像７２が撮影された際のトラッカー１２ｂの位置及び向きに相当する。またこのようにして推定される位置７６及び向き７８は、第２個別座標系で表現されることとなる。
【００５６】
そして本実施形態ではこのようにして推定される、第２個別座標系で表現された位置７６及び向き７８を示すデータが、サーバ１０からトラッカー１２ｂに送信される。そしてトラッカー１２ｂは、受信した当該データに基づいて、種々の処理を実行する。
【００５７】
そして本実施形態では、図１４に示すように、対応するポイント６０が第２個別ポイントクラウド５８に含まれていない複数の特徴点７４について、当該特徴点７４に対応するポイント６０が第２個別ポイントクラウド５８に追加される。図１４の例では、領域Ｒ３内の複数のポイント６０が第２個別ポイントクラウド５８に追加されている。なおこの際に、特徴点７４に基づいて、第２個別ポイントクラウド５８に既に含まれているポイント６０の位置の更新が実行されてもよい。
【００５８】
なおこの場合に複数回生成された特徴点７４について、ポイント６０の追加や更新が行われるようにしてもよい。また例えば影などといった天気や時間帯の影響を受ける特徴点７４については、ポイント６０の追加や更新が行われないようにしてもよい。
【００５９】
そして本実施形態では、第２個別ポイントクラウド５８に含まれるポイント６０と、共有ポイントクラウド５０に含まれるポイント５２と、が照合される。ここで例えば、第２個別ポイントクラウド５８に含まれる複数のポイント６０のうちの一部と、共有ポイントクラウド５０に含まれる複数のポイント５２のうちの一部とが重なり合うことが特定されたとする。この場合、図１５に示すように、対応するポイント５２が共有ポイントクラウド５０に含まれていない第２個別ポイントクラウド５８に含まれるポイント６０については、当該ポイント６０に対応するポイント５２が共有ポイントクラウド５０に追加される。図１５の例では、領域Ｒ４内の複数のポイント５２が共有ポイントクラウド５０に追加されている。
【００６０】
そして本実施形態ではこのような共有ポイントクラウド５０へのポイント５２の追加が行われた後は、撮影画像から抽出される特徴点は、共有ポイントクラウド５０に含まれるポイント５２と照合されることとなる。そのため、推定されるトラッカー１２ｂの位置及び向きは、共有座標系で表現されることとなる。ここで、共有座標系で表現された位置及び向きを示すデータとして、緯度、経度、及び、標高で表現されたデータが用いられてもよい。
【００６１】
この場合に、対応するポイント５２が共有ポイントクラウド５０に含まれていない特徴点について、当該特徴点に対応するポイント５２が共有ポイントクラウド５０に追加される。なおこの際に、特徴点に基づいて、共有ポイントクラウド５０に既に含まれているポイント５２の位置の更新が実行されてもよい。
【００６２】
なおこの場合に複数回生成された特徴点について、ポイント５２の追加や更新が行われるようにしてもよい。また例えば影などといった天気や時間帯の影響を受ける特徴点については、ポイント５２の追加や更新が行われないようにしてもよい。
【００６３】
以上で説明したように、本実施形態では例えば、共有ポイントクラウド５０へのポイント５２の追加が行われるまでは、第１個別ポイントクラウド５４や第２個別ポイントクラウドに基づいて、トラッカー１２の位置及び向きの推定が実行される。
【００６４】
そしてこの場合は例えば上述のように、トラッカー１２ａに対しては第１個別座標系で表現された位置及び向きを示すデータが通知される。またトラッカー１２ｂに対しては第２個別座標系で表現された位置及び向きを示すデータが通知される。そのためこの場合は、トラッカー１２ａの位置及び向きとトラッカー１２ｂの位置及び向きとの関係が特定できない。
【００６５】
しかし共有ポイントクラウド５０へのポイント５２の追加が行われた後は、トラッカー１２ａに対してもトラッカー１２ｂに対しても、共有座標系で表現された位置及び向きを示すデータが通知される。このようにして本実施形態によれば、共有座標系におけるトラッカー１２の位置又は向きの推定結果を当該トラッカー１２に通知できることとなる。
【００６６】
ここで共有ポイントクラウド５０へのポイント５２の追加が行われた後は、共有座標系で表現されたトラッカー１２ｂの位置及び向きを示すデータがトラッカー１２ａに通知されてもよい。また共有ポイントクラウド５０へのポイント５２の追加が行われた後は、共有座標系で表現されたトラッカー１２ａの位置及び向きを示すデータがトラッカー１２ｂに通知されてもよい。こうすればトラッカー１２ａ及びトラッカー１２ｂの両方において、これら２つのトラッカー１２により共有された座標系で表現された、これら２つのトラッカー１２ａの位置及び向きを用いた処理を実行することが可能になる。
【００６７】
また本実施形態では、共有ポイントクラウド５０に基づくトラッカー１２の位置及び向きの推定が行われる場合は、例えばトラッカー１２の位置及び向きの初回の推定の際においても、共有座標系で表現された位置及び向きが当該トラッカー１２に通知される。ここで上述のように、緯度、経度、及び、標高でトラッカー１２の位置が表現されたデータがトラッカー１２に通知されるようにすることも可能である。このようにすれば、トラッカー１２の位置及び向きの初回の推定においても当該トラッカー１２の絶対的な位置や向きが推定できることとなる。
【００６８】
また本実施形態では、複数のトラッカー１２のそれぞれが、当該トラッカー１２の位置及び向きの推定を行うことによって、共有ポイントクラウド５０に含まれるポイント５２の数が増えていく。このようにして本実施形態によれば、トラッカー１２の位置及び向きの推定処理が行われることで、複数のトラッカー１２で共有される共有ポイントクラウド５０でカバーされるエリアを広げていくことが可能となる。このように本実施形態では、共有ポイントクラウド５０でカバーされるエリアを広げるための処理を管理者等がわざわざ行う必要はない。
【００６９】
また例えば、トラッカー１２のセンサ部４０に含まれる地磁気センサにより計測されるトラッカー１２の方位に基づいて、トラッカー１２の向きを推定してもよい。そして方位に基づく向きの推定結果と、特徴点データと、共有ポイントクラウド５０と、に基づいて、トラッカー１２の位置及び向きが推定されてもよい。このようにすれば、より的確にトラッカー１２の位置及び向きが推定できることとなる。
【００７０】
また、サーバ１０において共有ポイントクラウド５０が複数のデータベースによって管理されていてもよい。そして複数のデータベースのそれぞれに、当該データベースに対応するエリア（例えば緯度及び経度の範囲）の共有ポイントクラウド５０が記憶されていてもよい。ここで複数のデータベースのそれぞれに記憶されている共有ポイントクラウド５０に対応するエリア同士が一部重複していてもよい。
【００７１】
ここで例えばトラッカー１２のセンサ部４０に含まれるＧＰＳモジュールにより計測されるトラッカー１２の大まかな緯度及び経度に基づいて、当該緯度及び経度で表現される位置を含むエリアに対応するデータベースが特定されてもよい。そして特定されたデータベースに記憶されている共有ポイントクラウド５０と、特徴点データと、に基づいて、トラッカー１２の位置及び向きが推定されてもよい。このようにするとＧＰＳモジュールの計測結果のみに基づいてトラッカー１２の位置及び向きを推定するよりも的確にトラッカー１２の位置及び向きが推定できる。なおトラッカー１２の大まかな緯度及び経度は、ＧＰＳモジュールにより計測される必要はない。例えば、Ｗｉ−Ｆｉ（登録商標）のアクセスポイントの識別情報（ＳＳＩＤ）、携帯電話の基地局の情報、位置特定サービスが提供する情報などに基づいて、トラッカー１２の大まかな緯度及び経度が特定されてもよい。
【００７２】
また例えばサーバ１０において共有ポイントクラウド５０が、時間帯や、季節や、天気などに対応付けられたデータベースによって管理されていてもよい。そしてこの場合に、例えば、推定タイミングにおける時間帯、季節、天気などに対応付けられるデータベースに記憶されている共有ポイントクラウド５０に基づいて、トラッカー１２の位置及び向きが推定されてもよい。
【００７３】
また例えば、撮影画像が共有ポイントクラウド５０や第１個別ポイントクラウド５４や第２個別ポイントクラウド５８に対するテクスチャとしてサーバ１０に記憶されるようにしてもよい。当該テクスチャは、例えば機械学習を用いた推定に用いられてもよい。また当該テクスチャに基づいて、別のテクスチャが生成されるようにしてもよい。
【００７４】
また共有ポイントクラウド５０や第１個別ポイントクラウド５４や第２個別ポイントクラウド５８から３次元形状データが生成されるようにしてもよい。当該３次元形状データは、例えば機械学習を用いた推定に用いられてもよい。
【００７５】
またトラッカー１２には、トラッカー１２の位置及び向きの推定結果を示すデータに関連付けて、当該位置や向きに関連付けてサーバ１０に記憶されている付加情報（タグなど）が通知されてもよい。
【００７６】
またトラッカー１２は、例えば、受信したトラッカー１２の位置及び向きを示すデータに基づいて、ナビゲーションシステムにおける、道案内用の矢印が道路に沿うようぴったり重畳された道路の撮影画像を表示部３８に表示させる処理を実行してもよい。本実施形態によれば、視覚障害者によっても充分な精度で道案内の矢印を表示させることができるものと期待される。
【００７７】
また例えば、トラッカー１２が、受信したトラッカー１２の位置及び向きを示すデータに基づいて、広告、飲食店のレーティングや口コミ、観光地の補足説明などといったメタデータの重畳処理を実行してもよい。またトラッカー１２が、例えば撮影画像にバーチャルオブジェクトを的確な位置や向きで重畳させた画像を表示させる処理や、撮影画像や撮影された動画像から余計な人物の像を消す処理を実行してもよい。ここで例えば撮影画像に含まれる人物の像とサーバ１０から送信される背景の画像とが重畳されるようにしてもよい。
【００７８】
また例えば、トラッカー１２が、受信したトラッカー１２の位置及び向きを示すデータに基づいて、宝探しゲーム、モンスターを集めるゲーム、陣取りゲームなどのＡＲ（Augmented Reality）ゲームにおける処理を実行してもよい。この場合、例えば登録されている共有ポイントクラウド５０やテクスチャが少ない場所にアイテムやモンスターが重点的に出現されるようにしてもよい。このようにすれば共有ポイントクラウド５０やテクスチャが少ない場所からの特徴点データが集めやすくなる。
【００７９】
また３次元モデルの形状は維持しつつ、テクスチャだけ別のものにして表示させるＶＲテーマパークや、また、３次元モデルやテクスチャなどに基づく実世界のコンテンツの自動生成にも、本実施形態に係る位置共有システム１は活用できる。
【００８０】
また仮想世界における売買の場面で、本実施形態に係る位置共有システム１が活用されてもよい。例えば仮想世界における場所を所有したユーザが当該場所に広告等の情報を付加できるようにしてもよい。
【００８１】
その他例えば、測量、土地管理、災害シミュレーション、ＶＲ（Virtual Reality）旅行、飛行体験、自動歩行、自動運転、自動飛行においても本実施形態に係る位置共有システム１は活用できる。
【００８２】
このように本実施形態に係るトラッカー１２は、受信したトラッカー１２の位置及び向きを示すデータに基づいて様々な処理を実行することができる。
【００８３】
以下、本実施形態に係る位置共有システム１の機能、及び、位置共有システム１で実行される処理についてさらに説明する。
【００８４】
図１６は、本実施形態に係る位置共有システム１で実装される機能の一例を示す機能ブロック図である。なお、本実施形態に係る位置共有システム１で、図１６に示す機能のすべてが実装される必要はなく、また、図１６に示す機能以外の機能が実装されていても構わない。
【００８５】
図１６に示すように、サーバ１０には、機能的には例えば、ポイントクラウド記憶部８０、参照管理データ記憶部８２、特徴点データ受信部８４、位置推定部８６、位置送信部８８、追加更新部９０、が含まれる。ポイントクラウド記憶部８０、参照管理データ記憶部８２は、記憶部２２を主として実装される。特徴点データ受信部８４、位置送信部８８は、通信部２４を主として実装される。位置推定部８６、追加更新部９０は、プロセッサ２０を主として実装される。本実施形態に係るサーバ１０は、共有座標系におけるトラッカー１２の位置又は向きを示すデータをトラッカー１２に送信する位置送信装置としての役割を担うこととなる。
【００８６】
以上の機能は、コンピュータであるサーバ１０にインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ２０で実行することにより実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介してサーバ１０に供給されてもよい。
【００８７】
また図１６に示すように、トラッカー１２には、機能的には例えば、センシングデータ取得部９２、特徴点データ生成部９４、特徴点データ送信部９６、位置受信部９８、処理実行部１００、が含まれる。センシングデータ取得部９２は、プロセッサ３０及びセンサ部４０を主として実装される。特徴点データ生成部９４、処理実行部１００は、プロセッサ３０を主として実装される。特徴点データ送信部９６、位置受信部９８は、通信部３４を主として実装される。
【００８８】
以上の機能は、コンピュータであるトラッカー１２にインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ３０で実行することにより実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介してトラッカー１２に供給されてもよい。
【００８９】
ポイントクラウド記憶部８０は、本実施形態では例えば、共有ポイントクラウド５０、第１個別ポイントクラウド５４、第２個別ポイントクラウド５８などといった、トラッカー１２の位置又は向きの推定の際に参照されるポイントクラウドを記憶する。
【００９０】
ここで上述のように共有ポイントクラウド５０は、複数のトラッカー１２のそれぞれが取得するセンシングデータに基づいて生成される。また上述のように、共有ポイントクラウド５０に含まれるポイント５２の位置は、複数のトラッカー１２で共有される共有座標系で表現される。また、第１個別ポイントクラウド５４に含まれるポイント５６の位置は第１個別座標系で表現される。また、第２個別ポイントクラウド５８に含まれるポイント６０の位置は第２個別座標系で表現される。
【００９１】
参照管理データ記憶部８２は、本実施形態では例えば、図１７に示す参照管理データを記憶する。図１７に示すように、本実施形態に係る参照管理データには、トラッカーＩＤと、参照ポイントクラウドデータと、が含まれている。
【００９２】
トラッカーＩＤは、トラッカー１２の識別情報である。ここでは例えば、トラッカー１２ａのトラッカーＩＤが００１であり、トラッカー１２ｂのトラッカーＩＤが００２であることとする。
【００９３】
参照ポイントクラウドデータは、当該参照ポイントクラウドデータに関連付けられているトラッカーＩＤにより識別されるトラッカー１２の位置又は向きの推定において参照されるポイントクラウドを示すデータである。図１７に示す参照管理データでは、トラッカー１２ａが第１個別ポイントクラウド５４を参照し、トラッカー１２ｂが第２個別ポイントクラウド５８を参照することが示されている。
【００９４】
特徴点データ受信部８４は、本実施形態では例えば、複数の特徴点の相対的な位置が示されている特徴点データをトラッカー１２から受信する。特徴点データ受信部８４は例えば、複数の特徴点の相対的な位置が示されている第１特徴点データをトラッカー１２ａから受信する。ここで第１特徴点データは、撮影画像６２により形成される二次元平面上に構成される二次元のカメラ座標系や、当該二次元平面及び奥行き方向から構成される三次元のカメラ座標系で表現されていてもよい。また特徴点データ受信部８４は、複数の特徴点の相対的な位置が示されている第２特徴点データをトラッカー１２ｂから受信する。ここで第２特徴点データは、撮影画像７２により形成される二次元平面上に構成される二次元のカメラ座標系や、当該二次元平面及び奥行き方向から構成される三次元のカメラ座標系で表現されていてもよい。
【００９５】
位置推定部８６は、本実施形態では例えば、上述のようにして、ポイントクラウドと特徴点データとに基づいて、トラッカー１２の位置又は向きを推定する。ここで位置推定部８６が、参照管理データにおいて、特徴点データ受信部８４により受信される特徴点データの送信元であるトラッカー１２のトラッカーＩＤに関連付けられている参照ポイントクラウドデータを特定してもよい。そして位置推定部８６が、当該トラッカー１２から送信される特徴点データと、特定された参照ポイントクラウドデータが示すポイントクラウドと、に基づいて、当該トラッカー１２の位置又は向きを推定してもよい。
【００９６】
この場合、参照されるポイントクラウドが配置されている座標系で、当該トラッカー１２の位置又は向きが表現されてもよい。例えばトラッカー１２ａの位置又は向きの推定において共有ポイントクラウド５０が参照される場合は、共有座標系でトラッカー１２ａの位置又は向きが表現されてもよい。また例えば、トラッカー１２ａの位置又は向きの推定において第１個別ポイントクラウド５４が参照される場合は、第１個別座標系でトラッカー１２ａの位置又は向きが表現されてもよい。
【００９７】
また例えば、トラッカー１２ｂの位置又は向きの推定において共有ポイントクラウド５０が参照される場合は、共有座標系でトラッカー１２ｂの位置又は向きが表現されてもよい。また例えば、トラッカー１２ｂの位置又は向きの推定において第２個別ポイントクラウド５８が参照される場合は、第２個別座標系でトラッカー１２ｂの位置又は向きが表現されてもよい。
【００９８】
また上述のように、位置推定部８６は、センサ部４０に含まれる地磁気センサにより計測されるトラッカー１２の方位やＧＰＳモジュールにより計測されるトラッカー１２の大まかな緯度及び経度を用いてトラッカー１２の位置又は向きを推定してもよい。
【００９９】
位置送信部８８は、本実施形態では例えば、位置推定部８６により推定されるトラッカー１２の位置又は向きを示すデータを、トラッカー１２に送信する。ここでは例えば、位置送信部８８は、位置推定部８６により推定されるトラッカー１２ａの位置又は向きを示すデータを、トラッカー１２ａに送信する。また例えば、位置送信部８８は、位置推定部８６により推定されるトラッカー１２ｂの位置又は向きを示すデータを、トラッカー１２ｂに送信する。
【０１００】
ここで位置送信部８８が、さらに、共有座標系におけるトラッカー１２ｂの位置又は向きを示すデータをトラッカー１２ａに送信してもよい。また位置送信部８８が、さらに、共有座標系におけるトラッカー１２ａの位置又は向きを示すデータをトラッカー１２ｂに送信してもよい。
【０１０１】
追加更新部９０は、本実施形態では例えば、上述のように、特徴点データ受信部８４が受信した特徴点データに基づいて、ポイントクラウドに含まれるポイントの追加及び更新を実行する。ここで図１０に示すように、共有ポイントクラウド５０と第１特徴点データとに基づいて、第１特徴点データに含まれる特徴点の位置に対応付けられる共有座標系における位置に配置されるポイント５２が共有ポイントクラウド５０に追加されてもよい。また図１５に示すように、共有ポイントクラウド５０と第２特徴点データとに基づいて、第２特徴点データに含まれる特徴点の位置に対応付けられる共有座標系における位置に配置されるポイント５２が共有ポイントクラウド５０に追加されてもよい。
【０１０２】
また追加更新部９０は、共有ポイントクラウド５０に含まれる複数のポイント５２のうちの一部と第１個別ポイントクラウド５４に含まれるポイント５６のうちの一部とが重なり合うか否かを判定してもよい。そして重なり合うと判定される場合に、第１個別ポイントクラウド５４に含まれるポイント５６の一部に相当するポイント５２を、共有ポイントクラウド５０に追加してもよい。
【０１０３】
ここで例えば共有ポイントクラウド５０への上述のポイント５２の追加が実行された際に、追加更新部９０は、トラッカー１２ａのトラッカーＩＤを含む参照管理データの参照ポイントクラウドデータの値を「共有ポイントクラウド」に更新してもよい。この場合、位置推定部８６は、共有ポイントクラウド５０への上述のポイント５２の追加が実行される前は、第１個別ポイントクラウド５４と、第１特徴点データと、に基づいて、第１個別座標系におけるトラッカー１２ａの位置又は向きを推定することとなる。また位置推定部８６は、共有ポイントクラウド５０への上述のポイント５２の追加が実行された後は、共有ポイントクラウド５０と、第１特徴点データと、に基づいて、共有座標系におけるトラッカー１２ａの位置又は向きを推定することとなる。このようにすれば、ユーザが明示的な操作を行うことなく、推定されるトラッカー１２ａの位置又は向きが表現される座標系が第１個別座標系から共有座標系に移行されることとなる。
【０１０４】
同様に、追加更新部９０は、共有ポイントクラウド５０に含まれる複数のポイント５２のうちの一部と第２個別ポイントクラウド５８に含まれるポイント６０のうちの一部とが重なり合うか否かを判定してもよい。そして重なり合うと判定される場合に、第２個別ポイントクラウド５８に含まれるポイント６０の一部に相当するポイント５２を、共有ポイントクラウド５０に追加してもよい。
【０１０５】
ここで例えば共有ポイントクラウド５０への上述のポイント５２の追加が実行された際に、追加更新部９０は、トラッカー１２ｂのトラッカーＩＤを含む参照管理データの参照ポイントクラウドデータの値を「共有ポイントクラウド」に更新してもよい。この場合、位置推定部８６は、共有ポイントクラウド５０への上述のポイント５２の追加が実行される前は、第２個別ポイントクラウド５８と、第２特徴点データと、に基づいて、第２個別座標系におけるトラッカー１２ｂの位置又は向きを推定することとなる。また位置推定部８６は、共有ポイントクラウド５０への上述のポイントの追加が実行された後は、共有ポイントクラウド５０と、第２特徴点データと、に基づいて、共有座標系におけるトラッカー１２ｂの位置又は向きを推定することとなる。このようにすれば、ユーザが明示的な操作を行うことなく、推定されるトラッカー１２ｂの位置又は向きが表現される座標系が第２個別座標系から共有座標系に移行されることとなる。
【０１０６】
センシングデータ取得部９２は、本実施形態では例えば、センサ部４０が生成するセンシングデータを取得する。ここでセンシングデータ取得部９２が、撮影画像、方位データ、緯度及び経度を示すデータ、などを取得してもよい。
【０１０７】
特徴点データ生成部９４は、本実施形態では例えば、センシングデータ取得部９２が取得するセンシングデータに基づいて、特徴点データを生成する。ここで上述のように、特徴点データ生成部９４が、撮影画像から複数の特徴点を抽出して、抽出された複数の特徴点の相対的な位置を示す特徴点データを生成してもよい。
【０１０８】
特徴点データ送信部９６は、本実施形態では例えば、特徴点データ生成部９４が生成する特徴点データをサーバ１０に送信する。ここで特徴点データ送信部９６が、撮影画像、方位データ、緯度及び経度を示すデータなどを併せてサーバ１０に送信してもよい。
【０１０９】
位置受信部９８は、本実施形態では例えば、サーバ１０の位置送信部８８が送信する、位置又は向きを示すデータを受信する。
【０１１０】
処理実行部１００は、本実施形態では例えば、位置受信部９８が受信するデータが示す位置又は向きに基づく処理を実行する。上述のように処理実行部１００では、ゲームにおける処理やナビゲーション処理などといった様々な処理が実行可能である。
【０１１１】
また上述のように、ポイントクラウド記憶部８０が、それぞれエリアに対応付けられている複数のポイントクラウドを記憶してもよい。
【０１１２】
そして特徴点データ送信部９６が、トラッカー１２の位置を示す位置情報を取得して、当該位置情報をサーバ１０に送信してもよい。ここで当該位置情報は、例えば、トラッカー１２のセンサ部４０に含まれるＧＰＳモジュールにより計測されるトラッカー１２の緯度及び経度を示す情報であってもよい。また位置情報は、Ｗｉ−Ｆｉ（登録商標）のアクセスポイントの識別情報（ＳＳＩＤ）、携帯電話の基地局の情報、位置特定サービスが提供する情報などに基づいて生成されてもよい。
【０１１３】
そして位置推定部８６が、トラッカー１２から送信される位置情報を取得してもよい。そして位置推定部８６が、ポイントクラウド記憶部８０に記憶されている複数のポイントクラウドのうちから、トラッカー１２から送信された位置情報が示す位置が含まれるエリアに対応付けられているポイントクラウドを選択してもよい。
【０１１４】
そして位置推定部８６が、選択されるポイントクラウドと、トラッカー１２が取得するセンシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている特徴点データと、に基づいて、当該トラッカー１２の位置又は向きを推定してもよい。
【０１１５】
そして位置送信部８８が、推定されたトラッカー１２の位置又は向きを示すデータを当該トラッカー１２に送信してもよい。そしてトラッカー１２の位置受信部９８が当該トラッカー１２の位置又は向きを示すデータを受信してもよい。
【０１１６】
ここで、本実施形態に係るトラッカー１２ａ及びサーバ１０で行われる処理の流れの一例を、図１８に例示するフロー図を参照しながら説明する。本処理例では、以下のＳ１０１〜Ｓ１１２に示す処理が所定のフレームレートで繰り返し実行される。
【０１１７】
まず、トラッカー１２ａのセンシングデータ取得部９２が、センサ部４０のカメラが撮影した撮影画像を取得する（Ｓ１０１）。
【０１１８】
そしてトラッカー１２ａの特徴点データ生成部９４が、Ｓ１０１に示す処理で取得された撮影画像から複数の特徴点を抽出し、抽出された複数の特徴点のそれぞれの位置を示す特徴点データを生成する（Ｓ１０２）。
【０１１９】
そしてトラッカー１２ａの特徴点データ送信部９６が、Ｓ１０２に示す処理で生成された特徴点データをサーバ１０に送信する。するとサーバ１０の特徴点データ受信部８４が、送信された特徴点データを受信する（Ｓ１０３）。ここで送信される特徴点データには当該特徴点データを送信したトラッカー１２ａのトラッカーＩＤが関連付けられていることとする。
【０１２０】
そしてサーバ１０の位置推定部８６が、Ｓ１０３に示す処理で受信した特徴点データに関連付けられているトラッカーＩＤを特定する。そしてサーバ１０の位置推定部８６が、参照管理データ記憶部８２に記憶されている参照管理データにおいて、特定されたトラッカーＩＤに関連付けられている参照ポイントクラウドデータを特定する（Ｓ１０４）。
【０１２１】
そしてサーバ１０の位置推定部８６が、Ｓ１０４に示す処理で特定された参照ポイントクラウドデータが示すポイントクラウドと、Ｓ１０３に示す処理で受信した特徴点データと、に基づいて、トラッカー１２ａの位置及び向きを推定する（Ｓ１０５）。ここで推定された位置及び向きは、Ｓ１０４に示す処理で特定された参照ポイントクラウドデータが示すポイントクラウドが配置されている仮想空間の座標系で表現される。
【０１２２】
そしてサーバ１０の位置送信部８８が、Ｓ１０５に示す処理で推定された、トラッカー１２ａの位置及び向きを示すデータをトラッカー１２ａに送信する。するとトラッカー１２ａの位置受信部９８が、当該データを受信する（Ｓ１０６）。
【０１２３】
そしてトラッカー１２ａの処理実行部１００が、Ｓ１０６に示す処理で受信したトラッカー１２ａの位置及び向きを示すデータに基づいて、所定の処理を実行する（Ｓ１０７）。
【０１２４】
そしてサーバ１０の追加更新部９０は、Ｓ１０３に示す処理で受信した特徴点データに基づいて、Ｓ１０５に示す処理で用いられたポイントクラウドへのポイントの追加、及び、当該ポイントクラウドに含まれるポイントの更新を実行する（Ｓ１０８）。なおＳ１０８に示す処理は、Ｓ１０６に示す処理が実行された後に実行されてもよい。
【０１２５】
そしてサーバ１０の追加更新部９０は、Ｓ１０４に示す処理で特定された参照ポイントクラウドデータが示すポイントクラウドが共有ポイントクラウド５０であるか否かを確認する（Ｓ１０９）。
【０１２６】
Ｓ１０４に示す処理で特定された参照ポイントクラウドデータが示すポイントクラウドが共有ポイントクラウド５０であることが確認された場合は（Ｓ１０９：Ｙ）、本サイクルにおける本処理例に示す処理を終了する。
【０１２７】
Ｓ１０４に示す処理で特定された参照ポイントクラウドデータが示すポイントクラウドが共有ポイントクラウド５０ではないことが確認されたとする（Ｓ１０９：Ｎ）。この場合、サーバ１０の追加更新部９０は、共有ポイントクラウド５０とＳ１０８に示す処理が実行されたポイントクラウドとを照合して、当該ポイントクラウドの共有ポイントクラウド５０への統合が可能であるか否かを判定する（Ｓ１１０）。ここで例えば共有ポイントクラウド５０に含まれる複数のポイント５６のうちの一部とＳ１０８に示す処理が実行されたポイントクラウドに含まれるポイントのうちの一部とが重なり合うか否かが確認されてもよい。ここで重なり合うことが確認された場合は統合が可能であると判定され、重なり合わないことが確認された場合は統合が可能でないと判定されるようにしてもよい。
【０１２８】
ここで共有ポイントクラウド５０への統合が可能でないと判定された場合は（Ｓ１１０：Ｎ）、本サイクルにおける本処理例に示す処理を終了する。
【０１２９】
一方、共有ポイントクラウド５０への統合が可能であると判定されたとする（Ｓ１１０：Ｙ）。この場合、追加更新部９０は、Ｓ１０８に示す処理が実行されたポイントクラウドに含まれるポイントの一部に相当するポイントを、共有ポイントクラウド５０に追加する（Ｓ１１１）。この際に、共有ポイントクラウド５０に含まれるポイントの更新が実行されてもよい。
【０１３０】
そして追加更新部９０は、トラッカー１２ａのトラッカーＩＤを含む参照管理データの参照ポイントクラウドデータの値を「共有ポイントクラウド」に更新して（Ｓ１１２）、本サイクルにおける本処理例に示す処理を終了する。
【０１３１】
なお上述の処理例においてＳ１０５に示す処理で、位置推定部８６が、第１個別ポイントクラウド５４と、Ｓ１０３に示す処理で受信した特徴点データと、に基づいて、トラッカー１２ａの位置及び向きを推定できない場合がある。この場合に、位置推定部８６が、共有ポイントクラウド５０と、Ｓ１０３に示す処理で受信した特徴点データと、に基づいて、トラッカー１２ａの位置及び向きを推定してもよい。
【０１３２】
上述の処理例に示す処理は、トラッカー１２ｂ及びサーバ１０においても同様に実行される。
【０１３３】
なお、本発明は上述の実施形態に限定されるものではない。
【０１３４】
例えばサーバ１０とトラッカー１２の役割分担は上述のものに限定されない。例えば、例えばトラッカー１２の特徴点データ生成部９４がサーバ１０で実装されていてもよい。この場合、センシングデータ取得部９２が取得する撮影画像等のセンシングデータをトラッカー１２の特徴点データ送信部９６がサーバ１０に送信してもよい。そしてサーバ１０の特徴点データ生成部９４が、トラッカー１２から受信したセンシングデータに基づいて、特徴点データを生成してもよい。
【０１３５】
また例えば、図１６に示すポイントクラウド記憶部８０、参照管理データ記憶部８２、位置推定部８６、追加更新部９０の機能が、サーバ１０ではなくトラッカー１２において実装されてもよい。
【０１３６】
また、上記の具体的な文字列や数値及び図面中の具体的な文字列や数値は例示であり、これらの文字列や数値には限定されない。
【図１】
2019167213.tif 000003
【図２】
2019167213.tif 000004
【図３】
2019167213.tif 000005
【図４】
2019167213.tif 000006
【図５】
2019167213.tif 000007
【図６】
2019167213.tif 000008
【図７】
2019167213.tif 000009
【図８】
2019167213.tif 000010
【図９】
2019167213.tif 000011
【図１０】
2019167213.tif 000012
【図１１】
2019167213.tif 000013
【図１２】
2019167213.tif 000014
【図１３】
2019167213.tif 000015
【図１４】
2019167213.tif 000016
【図１５】
2019167213.tif 000017
【図１６】
2019167213.tif 000018
【図１７】
2019167213.tif 000019
【図１８】
2019167213.tif 000020
【手続補正書】
【提出日】令和2年3月17日(2020.3.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
共有座標系により位置が表現された共有ポイントクラウドを記憶するポイントクラウド記憶部と、
前記共有座標系における第１トラッカーの位置又は向き、並びに、第２トラッカーの位置又は向きを推定する推定部と、を含み、
前記推定部は、前記共有ポイントクラウドと、前記第１トラッカーが取得する第１センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第１特徴点データと、に基づいて、前記共有座標系における前記第１トラッカーの位置又は向きを推定し、
前記推定部は、前記共有ポイントクラウドと、前記第２トラッカーが取得する第２センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第２特徴点データと、に基づいて、前記共有座標系における前記第２トラッカーの位置又は向きを推定し、
前記共有座標系は、緯度、経度、及び、標高で表される座標系である、
ことを特徴とする位置推定装置。
【請求項２】
送信部をさらに含み、
前記送信部は、前記共有座標系における前記第１トラッカーの位置又は向きを示すデータを前記第１トラッカーに送信し、
前記送信部は、前記共有座標系における前記第２トラッカーの位置又は向きを示すデータを前記第２トラッカーに送信する、
ことを特徴とする請求項１に記載の位置推定装置。
【請求項３】
前記送信部は、さらに、前記共有座標系における前記第２トラッカーの位置又は向きを示すデータを前記第１トラッカーに送信し、
前記送信部は、さらに、前記共有座標系における前記第１トラッカーの位置又は向きを示すデータを前記第２トラッカーに送信する、
ことを特徴とする請求項２に記載の位置推定装置。
【請求項４】
前記共有ポイントクラウドと、前記第１特徴点データと、に基づいて、前記第１特徴点データに含まれる特徴点の位置に対応付けられる前記共有座標系における位置に配置されるポイントを前記共有ポイントクラウドに追加する追加部、をさらに含む、
ことを特徴とする請求項１から３のいずれか一項に記載の位置推定装置。
【請求項５】
前記ポイントクラウド記憶部は、さらに、前記共有座標系とは異なる個別座標系により位置が表現された個別ポイントクラウドを記憶し、
前記共有ポイントクラウドに含まれる複数のポイントのうちの一部と前記個別ポイントクラウドに含まれるポイントのうちの一部とが重なり合うと判定される場合に、前記個別ポイントクラウドに含まれるポイントの一部に相当するポイントを、前記共有ポイントクラウドに追加する追加部、をさらに含み、
前記推定部は、前記個別ポイントクラウドに含まれるポイントの一部に相当するポイントの前記共有ポイントクラウドへの追加が実行される前は、前記個別ポイントクラウドと、前記第１特徴点データと、に基づいて、前記個別座標系における前記第１トラッカーの位置又は向きを推定し、
前記推定部は、前記個別ポイントクラウドに含まれるポイントの一部に相当するポイントの前記共有ポイントクラウドへの追加が実行された後は、前記共有ポイントクラウドと、前記第１特徴点データと、に基づいて、前記共有座標系における前記第１トラッカーの位置又は向きを推定する、
ことを特徴とする請求項１から３のいずれか一項に記載の位置推定装置。
【請求項６】
受信部、をさらに含み、
前記受信部は、前記第１トラッカーから前記第１特徴点データを受信し、
前記受信部は、前記第２トラッカーから前記第２特徴点データを受信し、
前記推定部は、前記受信部により受信される前記第１特徴点データに基づいて、前記共有座標系における前記第１トラッカーの位置又は向きを推定し、
前記推定部は、前記受信部により受信される前記第２特徴点データに基づいて、前記共有座標系における前記第２トラッカーの位置又は向きを推定する、
ことを特徴とする請求項１から５のいずれか一項に記載の位置推定装置。
【請求項７】
受信部と、前記第１特徴点データ及び前記第２特徴点データを生成する特徴点データ生成部と、をさらに含み、
前記受信部は、前記第１トラッカーから前記第１センシングデータを受信し、
前記受信部は、前記第２トラッカーから前記第２センシングデータを受信し、
前記特徴点データ生成部は、受信される前記第１センシングデータに基づいて、前記第１特徴点データを生成し、
前記特徴点データ生成部は、受信される前記第２センシングデータに基づいて、前記第２特徴点データを生成し、
前記推定部は、前記特徴点データ生成部により生成される前記第１特徴点データに基づいて、前記共有座標系における前記第１トラッカーの位置又は向きを推定し、
前記推定部は、前記特徴点データ生成部により生成される前記第２特徴点データに基づいて、前記共有座標系における前記第２トラッカーの位置又は向きを推定する、
ことを特徴とする請求項１から５のいずれか一項に記載の位置推定装置。
【請求項８】
それぞれエリアに対応付けられている複数のポイントクラウドを記憶するポイントクラウド記憶部と、
トラッカーの位置を示す位置情報を取得する位置情報取得部と、
前記複数のポイントクラウドのうちから、前記位置情報が示す位置が含まれる前記エリアに対応付けられているポイントクラウドを選択するポイントクラウド選択部と、
選択される前記ポイントクラウドと、トラッカーが取得するセンシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている特徴点データと、に基づいて、前記トラッカーの位置又は向きを推定する推定部と、
を含むことを特徴とする位置推定装置。
【請求項９】
トラッカーの位置を示す位置情報を、それぞれエリアに対応付けられている複数のポイントクラウドを記憶するサーバに送信する送信部と、
前記複数のポイントクラウドのうちから選択される、前記位置情報が示す位置が含まれる前記エリアに対応付けられているポイントクラウドと、前記トラッカーが取得するセンシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている特徴点データと、に基づいて、前記サーバにおいて推定される、前記トラッカーの位置又は向きを示すデータを前記サーバから受信する受信部と、
を含むことを特徴とするトラッカー。
【請求項１０】
共有座標系により位置が表現された共有ポイントクラウドと、第１トラッカーが取得する第１センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第１特徴点データと、に基づいて、前記共有座標系における前記第１トラッカーの位置又は向きを推定するステップと、
前記共有ポイントクラウドと、第２トラッカーが取得する第２センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第２特徴点データと、に基づいて、前記共有座標系における前記第２トラッカーの位置又は向きを推定するステップと、を含み、
前記共有座標系は、緯度、経度、及び、標高で表される座標系である、
ことを特徴とする位置推定方法。
【請求項１１】
共有座標系により位置が表現された共有ポイントクラウドと、第１トラッカーが取得する第１センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第１特徴点データと、に基づいて、前記共有座標系における前記第１トラッカーの位置又は向きを推定する手順、
前記共有ポイントクラウドと、第２トラッカーが取得する第２センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第２特徴点データと、に基づいて、前記共有座標系における前記第２トラッカーの位置又は向きを推定する手順、をコンピュータに実行させ、
前記共有座標系は、緯度、経度、及び、標高で表される座標系である、
ことを特徴とするプログラム。
【国際調査報告】
2019167213.tif 000021
2019167213.tif 000022
2019167213.tif 000023
2019167213.tif 000024