JP7057821B2 - 位置推定装置、位置推定方法及びプログラム - Google Patents

位置推定装置、位置推定方法及びプログラム Download PDF

Info

Publication number
JP7057821B2
JP7057821B2 JP2020503199A JP2020503199A JP7057821B2 JP 7057821 B2 JP7057821 B2 JP 7057821B2 JP 2020503199 A JP2020503199 A JP 2020503199A JP 2020503199 A JP2020503199 A JP 2020503199A JP 7057821 B2 JP7057821 B2 JP 7057821B2
Authority
JP
Japan
Prior art keywords
tracker
point cloud
shared
coordinate system
orientation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020503199A
Other languages
English (en)
Other versions
JPWO2019167213A1 (ja
Inventor
良徳 大橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Interactive Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Interactive Entertainment Inc filed Critical Sony Interactive Entertainment Inc
Publication of JPWO2019167213A1 publication Critical patent/JPWO2019167213A1/ja
Application granted granted Critical
Publication of JP7057821B2 publication Critical patent/JP7057821B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/0093Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • G02B27/0172Head mounted characterised by optical features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Optics & Photonics (AREA)
  • Multimedia (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Processing Or Creating Images (AREA)
  • Image Analysis (AREA)

Description

本発明は、位置推定装置、トラッカー、位置推定方法及びプログラムに関する。
トラッカーの位置の推定及び環境地図作成を行うSLAM(Simultaneous Localization and Mapping)の技術が知られている。
SLAMの技術では、例えばトラッカーが備えるカメラにより撮影された撮影画像などといった、トラッカーが取得するセンシングデータに基づいて、複数の特徴点を含む特徴点データが生成される。そして生成された特徴点データと予め記憶されているポイントクラウドである環境地図との比較結果に基づいて、トラッカーの位置又は向きの推定、及び、環境地図の更新が行われる。
発明者は、それぞれトラッカーを装着した複数のユーザが参加するゲーム等にSLAMの技術を活用することを検討している。このようなゲーム等においては、複数のトラッカーのそれぞれについて、当該複数のトラッカーで共有される共有座標系における当該トラッカーの位置又は向きを推定する必要がある。
しかしSLAMの技術で推定されるトラッカーの位置や向きは、あくまでも、あるタイミングにおける当該トラッカーの位置や向きを基準とした相対的なものである。そのため複数のトラッカーのそれぞれについてSLAMの技術で位置や向きが推定されても、推定された位置や向きを共有座標系にマッピングできない。その結果、複数のトラッカーのそれぞれについての共有座標系における当該トラッカーの位置又は向きの推定ができない。
本発明は上記課題に鑑みてなされたものであって、その目的の1つは、複数のトラッカーのそれぞれについての、共有座標系における位置又は向きが推定できる位置推定装置、トラッカー、位置推定方法及びプログラムを提供することにある。
上記課題を解決するために、本発明に係る位置推定装置は、共有座標系により位置が表現された共有ポイントクラウドを記憶するポイントクラウド記憶部と、前記共有座標系における第1トラッカーの位置又は向き、並びに、第2トラッカーの位置又は向きを推定する推定部と、を含み、前記推定部は、前記共有ポイントクラウドと、前記第1トラッカーが取得する第1センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第1特徴点データと、に基づいて、前記共有座標系における前記第1トラッカーの位置又は向きを推定し、前記推定部は、前記共有ポイントクラウドと、前記第2トラッカーが取得する第2センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第2特徴点データと、に基づいて、前記共有座標系における前記第2トラッカーの位置又は向きを推定する。
本発明の一態様では、送信部をさらに含み、前記送信部は、前記共有座標系における前記第1トラッカーの位置又は向きを示すデータを前記第1トラッカーに送信し、前記送信部は、前記共有座標系における前記第2トラッカーの位置又は向きを示すデータを前記第2トラッカーに送信する。
この態様では、前記送信部は、さらに、前記共有座標系における前記第2トラッカーの位置又は向きを示すデータを前記第1トラッカーに送信し、前記送信部は、さらに、前記共有座標系における前記第1トラッカーの位置又は向きを示すデータを前記第2トラッカーに送信してもよい。
また、本発明の一態様では、前記共有ポイントクラウドと、前記第1特徴点データと、に基づいて、前記第1特徴点データに含まれる特徴点の位置に対応付けられる前記共有座標系における位置に配置されるポイントを前記共有ポイントクラウドに追加する追加部、をさらに含む。
あるいは、前記ポイントクラウド記憶部は、さらに、前記共有座標系とは異なる個別座標系により位置が表現された個別ポイントクラウドを記憶し、前記共有ポイントクラウドに含まれる複数のポイントのうちの一部と前記個別ポイントクラウドに含まれるポイントのうちの一部とが重なり合うと判定される場合に、前記個別ポイントクラウドに含まれるポイントの一部に相当するポイントを、前記共有ポイントクラウドに追加する追加部、をさらに含み、前記推定部は、前記個別ポイントクラウドに含まれるポイントの一部に相当するポイントの前記共有ポイントクラウドへの追加が実行される前は、前記個別ポイントクラウドと、前記第1特徴点データと、に基づいて、前記個別座標系における前記第1トラッカーの位置又は向きを推定し、前記推定部は、前記個別ポイントクラウドに含まれるポイントの一部に相当するポイントの前記共有ポイントクラウドへの追加が実行された後は、前記共有ポイントクラウドと、前記第1特徴点データと、に基づいて、前記共有座標系における前記第1トラッカーの位置又は向きを推定する。
また、本発明の一態様では、受信部、をさらに含み、前記受信部は、前記第1トラッカーから前記第1特徴点データを受信し、前記受信部は、前記第2トラッカーから前記第2特徴点データを受信し、前記推定部は、前記受信部により受信される前記第1特徴点データに基づいて、前記共有座標系における前記第1トラッカーの位置又は向きを推定し、前記推定部は、前記受信部により受信される前記第2特徴点データに基づいて、前記共有座標系における前記第2トラッカーの位置又は向きを推定する。
あるいは、受信部と、前記第1特徴点データ及び前記第2特徴点データを生成する特徴点データ生成部と、をさらに含み、前記受信部は、前記第1トラッカーから前記第1センシングデータを受信し、前記受信部は、前記第2トラッカーから前記第2センシングデータを受信し、前記特徴点データ生成部は、受信される前記第1センシングデータに基づいて、前記第1特徴点データを生成し、前記特徴点データ生成部は、受信される前記第2センシングデータに基づいて、前記第2特徴点データを生成し、前記推定部は、前記特徴点データ生成部により生成される前記第1特徴点データに基づいて、前記共有座標系における前記第1トラッカーの位置又は向きを推定し、前記推定部は、前記特徴点データ生成部により生成される前記第2特徴点データに基づいて、前記共有座標系における前記第2トラッカーの位置又は向きを推定する。
また、本発明に係る別の位置推定装置は、それぞれエリアに対応付けられている複数のポイントクラウドを記憶するポイントクラウド記憶部と、トラッカーの位置を示す位置情報を取得する位置情報取得部と、前記複数のポイントクラウドのうちから、前記位置情報が示す位置が含まれる前記エリアに対応付けられているポイントクラウドを選択するポイントクラウド選択部と、選択される前記ポイントクラウドと、トラッカーが取得するセンシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている特徴点データと、に基づいて、前記トラッカーの位置又は向きを推定する推定部と、を含む。
また、本発明に係るトラッカーは、トラッカーの位置を示す位置情報を、それぞれエリアに対応付けられている複数のポイントクラウドを記憶するサーバに送信する送信部と、前記複数のポイントクラウドのうちから選択される、前記位置情報が示す位置が含まれる前記エリアに対応付けられているポイントクラウドと、前記トラッカーが取得するセンシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている特徴点データと、に基づいて、前記サーバにおいて推定される、前記トラッカーの位置又は向きを示すデータを前記サーバから受信する受信部と、を含む。
また、本発明に係る位置推定方法は、共有座標系により位置が表現された共有ポイントクラウドと、第1トラッカーが取得する第1センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第1特徴点データと、に基づいて、前記共有座標系における前記第1トラッカーの位置又は向きを推定するステップと、前記共有ポイントクラウドと、第2トラッカーが取得する第2センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第2特徴点データと、に基づいて、前記共有座標系における前記第2トラッカーの位置又は向きを推定するステップと、を含む。
また、本発明に係るプログラムは、共有座標系により位置が表現された共有ポイントクラウドと、第1トラッカーが取得する第1センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第1特徴点データと、に基づいて、前記共有座標系における前記第1トラッカーの位置又は向きを推定する手順、前記共有ポイントクラウドと、第2トラッカーが取得する第2センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第2特徴点データと、に基づいて、前記共有座標系における前記第2トラッカーの位置又は向きを推定する手順、をコンピュータに実行させる。
本発明の一実施形態に係る位置共有システムの一例を示す構成図である。 本発明の一実施形態に係るトラッカーの一例を示す構成図である。 共有ポイントクラウドの一例を示す図である。 第1個別ポイントクラウドの一例を示す図である。 第2個別ポイントクラウドの一例を示す図である。 撮影画像の一例を示す図である。 特徴点の一例を示す図である。 第1個別ポイントクラウドの一例を示す図である。 第1個別ポイントクラウドの一例を示す図である。 共有ポイントクラウドの一例を示す図である。 撮影画像の一例を示す図である。 特徴点の一例を示す図である。 第2個別ポイントクラウドの一例を示す図である。 第2個別ポイントクラウドの一例を示す図である。 共有ポイントクラウドの一例を示す図である。 本発明の一実施形態に係る位置共有システムで実装される機能の一例を示す機能ブロック図である。 参照管理データの一例を示す図である。 本発明の一実施形態に係る位置共有システムで行われる処理の流れの一例を示すフロー図である。
以下、本発明の一実施形態について図面に基づき詳細に説明する。
図1は、本発明の一実施形態に係る位置共有システム1の一例を示す構成図である。図1に示すように、本実施形態に係る位置共有システム1には、サーバ10と、複数の端末(本実施形態では例えばトラッカー12)と、が含まれている。図1には、トラッカー12a及びトラッカー12bが示されている。
サーバ10、トラッカー12a、トラッカー12bは、インターネット等のコンピュータネットワーク14に接続されている。そのため、サーバ10、トラッカー12a、トラッカー12bは、コンピュータネットワーク14を介して互いに通信可能となっている。
図1に示すように、本実施形態に係るサーバ10は、例えば、プロセッサ20、記憶部22、及び、通信部24を含んでいるサーバコンピュータである。なおサーバ10が、複数の筐体から構成されたサーバシステムやクラウドシステムによって実装されていても構わない。
プロセッサ20は、例えばサーバ10にインストールされているプログラムに従って動作するCPU等のプログラム制御デバイスである。記憶部22は、例えばROMやRAM等の記憶素子やハードディスクドライブなどである。記憶部22には、プロセッサ20によって実行されるプログラムなどが記憶される。通信部24は、ネットワークボードや無線LANモジュールなどといった通信インタフェースである。
本実施形態に係るトラッカー12は、本実施形態では例えば、トラッカー12を装着したユーザの位置や向きを追跡する装置である。図1には、トラッカー12の一例としてヘッドマウントディスプレイ(HMD)が示されている。
図2に示すように、本実施形態に係るトラッカー12には、プロセッサ30、記憶部32、通信部34、入出力部36、表示部38、センサ部40、音声出力部42、が含まれる。
プロセッサ30は、例えばトラッカー12にインストールされるプログラムに従って動作するマイクロプロセッサ等のプログラム制御デバイスである。
記憶部32は、例えばROMやRAM等の記憶素子などである。記憶部32には、プロセッサ30によって実行されるプログラムなどが記憶される。
通信部34は、例えば無線LANモジュールなどの通信インタフェースである。
入出力部36は、例えばHDMI(登録商標)(High-Definition Multimedia Interface)ポート、USBポート、AUXポートなどの入出力ポートである。
表示部38は、トラッカー12の前側に配置されている、例えば液晶ディスプレイや有機ELディスプレイ等のディスプレイである。また表示部38は、トラッカー12の筐体に収容される。本実施形態に係る表示部38は、例えば左目用の画像と右目用の画像を表示することによって三次元画像を表示させることができるようになっている。なお表示部38は三次元画像の表示ができず二次元画像の表示のみができるものであっても構わない。
センサ部40は、例えばカメラ、慣性センサ(IMU)、地磁気センサ(方位センサ)、GPS(Global Positioning System)モジュールなどといったセンサである。センサ部40に含まれるカメラは、例えば所定のフレームレートで画像を撮影する。またセンサ部40に含まれる地磁気センサは、トラッカー12が向く方位を示すデータを、所定のフレームレートで、プロセッサ30に出力する。またセンサ部40に含まれる慣性センサは、トラッカー12の加速度、回転量、移動量などを示すデータを、所定のフレームレートで、プロセッサ30に出力する。またセンサ部40に含まれるGPSモジュールは、トラッカー12の緯度及び経度を示すデータを、所定のフレームレートで、プロセッサ30に出力する。
音声出力部42は、例えばヘッドホンやスピーカ等であり、音声データが表す音声などを出力する。
本実施形態では、例えば以下のようにして、SLAM(Simultaneous Localization and Mapping)の技術を用いたトラッカー12の位置及び向きの推定がサーバ10において実行される。そしてこのようにして推定された位置や向きを示すデータがサーバ10からトラッカー12に通知される。
図3は、本実施形態に係るサーバ10で管理される共有ポイントクラウド50の一例を示す図である。共有ポイントクラウド50は、トラッカー12aやトラッカー12bの位置や向きの推定に用いられる。図3に示すように、共有ポイントクラウド50には、複数のポイント52が含まれている。本実施形態に係る共有ポイントクラウド50はX1Y1Z1座標系で位置が表現されている。そのため共有ポイントクラウド50に含まれる複数のポイント52のそれぞれには、X1Y1Z1座標系で表現された座標値が設定されている。以下、X1Y1Z1座標系を共有座標系と呼ぶこととする。ここで共有ポイントクラウド50に含まれるポイント52の座標値が例えば、緯度、経度、及び、標高の組合せで表現されても構わない。
図4は、本実施形態に係るサーバ10で管理される第1個別ポイントクラウド54の一例を示す図である。第1個別ポイントクラウド54は、トラッカー12aの位置や向きの推定に用いられる。図4に示すように、第1個別ポイントクラウド54には、複数のポイント56が含まれている。複数のポイント56のそれぞれには、X2Y2Z2座標系で表現された座標値が設定されている。以下、X2Y2Z2座標系を第1個別座標系と呼ぶこととする。
図5は、本実施形態に係るサーバ10で管理される第2個別ポイントクラウド58の一例を示す図である。第2個別ポイントクラウド58は、トラッカー12bの位置や向きの推定に用いられる。図5に示すように、第2個別ポイントクラウド58には、複数のポイント60が含まれている。複数のポイント60のそれぞれには、X3Y3Z3座標系で表現された座標値が設定されている。以下、X3Y3Z3座標系を第2個別座標系と呼ぶこととする。
なお本実施形態では、共有座標系、第1個別座標系、第2個別座標系は、互いに異なる独立した座標系であることとする。
本実施形態では、図3に示す共有ポイントクラウド50、図4に示す第1個別ポイントクラウド54、及び、図5に示す第2個別ポイントクラウド58に基づいて、トラッカー12aやトラッカー12bの位置や向きの推定が実行される。
以下、トラッカー12aのセンサ部40により生成されるセンシングデータに基づく、トラッカー12aの位置及び向きの推定の一例について説明する。
本実施形態では、トラッカー12aのセンサ部40に含まれるカメラによって所定のフレームレートで画像が撮影される。以下、このようにして撮影される画像を撮影画像と呼ぶこととする。当該撮影画像は、トラッカー12aのセンサ部40により生成されるセンシングデータの一例に相当する。図6には、トラッカー12aのセンサ部40に含まれるカメラによって撮影される撮影画像の一例として撮影画像62が示されている。図6に示す撮影画像62には、オブジェクト64a及びオブジェクト64bの像が含まれている。
ここで本実施形態では例えば、図7に示すように、撮影画像62に基づいて、当該撮影画像62の特徴点66が複数抽出される。図7には、オブジェクト64aとオブジェクト64bの縁に沿って抽出された特徴点66が示されている。そして抽出された複数の特徴点66の相対的な位置が示されている特徴点データが生成される。ここで当該特徴点データには複数の特徴点66の相対的な位置が示されていることから、当該特徴点データはポイントクラウドの一種であるといえる。
ここで複数の特徴点66の位置が、撮影画像62により形成される二次元平面における二次元座標値(二次元のカメラ座標系で表現された二次元座標値)で表現されてもよい。また例えば複数の特徴点66の位置が、撮影画像62により形成される二次元平面における二次元座標値、及び、奥行き(Z方向)に相当する座標値を含む三次元座標値(三次元のカメラ座標系で表現された三次元座標値)で表現されてもよい。
そして本実施形態では,SLAMの技術を用いて、撮影画像62から抽出された特徴点66と第1個別ポイントクラウド54に含まれるポイント56との照合結果に基づいて、図8に示すように、トラッカー12aの位置68及び向き70が推定される。ここで推定される位置68及び向き70は、例えば、撮影画像62が撮影された際のトラッカー12aの位置及び向きに相当する。またこのようにして推定される位置68及び向き70は第1個別座標系で表現されることとなる。
そして本実施形態ではこのようにして推定される、第1個別座標系で表現された位置68及び向き70を示すデータが、サーバ10からトラッカー12aに送信される。そしてトラッカー12aは、受信した当該データに基づいて、種々の処理を実行する。
そして本実施形態では、図9に示すように、対応するポイント56が第1個別ポイントクラウド54に含まれていない複数の特徴点66について、当該特徴点66に対応するポイント56が第1個別ポイントクラウド54に追加される。図9の例では、領域R1内の複数のポイント56が第1個別ポイントクラウド54に追加されている。なおこの際に、特徴点66に基づいて、第1個別ポイントクラウド54に既に含まれているポイント56の位置の更新が実行されてもよい。
なおこの場合に複数回生成された特徴点66について、ポイント56の追加や更新が行われるようにしてもよい。また例えば影などといった天気や時間帯の影響を受ける特徴点66については、ポイント56の追加や更新が行われないようにしてもよい。
そして本実施形態では、第1個別ポイントクラウド54に含まれるポイント56と、共有ポイントクラウド50に含まれるポイント52と、が照合される。ここで例えば、第1個別ポイントクラウド54に含まれる複数のポイント56のうちの一部と、共有ポイントクラウド50に含まれる複数のポイント52のうちの一部とが重なり合うことが特定されたとする。この場合、図10に示すように、対応するポイント52が共有ポイントクラウド50に含まれていない第1個別ポイントクラウド54に含まれるポイント56については、当該ポイント56に対応するポイント52が共有ポイントクラウド50に追加される。図10の例では、領域R2内の複数のポイント52が共有ポイントクラウド50に追加されている。
そして本実施形態ではこのような共有ポイントクラウド50へのポイント52の追加が行われた後は、撮影画像から抽出される特徴点は、共有ポイントクラウド50に含まれるポイント52と照合されることとなる。そのため、推定されるトラッカー12aの位置及び向きは、共有座標系で表現されることとなる。ここで、共有座標系で表現された位置及び向きを示すデータとして、緯度、経度、及び、標高で表現されたデータが用いられてもよい。
この場合に、対応するポイント52が共有ポイントクラウド50に含まれていない特徴点について、当該特徴点に対応するポイント52が共有ポイントクラウド50に追加される。なおこの際に、特徴点に基づいて、共有ポイントクラウド50に既に含まれているポイント52の位置の更新が実行されてもよい。
なおこの場合に複数回生成された特徴点について、ポイント52の追加や更新が行われるようにしてもよい。また例えば影などといった天気や時間帯の影響を受ける特徴点については、ポイント52の追加や更新が行われないようにしてもよい。
以下、トラッカー12bのセンサ部40により生成されるセンシングデータに基づく、トラッカー12bの位置及び向きの推定の一例について説明する。
トラッカー12aと同様に、本実施形態では、トラッカー12bのセンサ部40に含まれるカメラによって所定のフレームレートで撮影画像が撮影される。当該撮影画像は、トラッカー12bのセンサ部40により生成されるセンシングデータの一例に相当する。図11には、トラッカー12bのセンサ部40に含まれるカメラによって撮影される撮影画像の一例として撮影画像72が示されている。図11に示す撮影画像72には、オブジェクト64c及びオブジェクト64dの像が含まれている。
ここで本実施形態では例えば、図12に示すように、撮影画像72に基づいて、当該撮影画像72の特徴点74が複数抽出される。図12には、オブジェクト64cとオブジェクト64cの縁に沿って抽出された特徴点74が示されている。そして抽出された複数の特徴点74の相対的な位置が示されている特徴点データが生成される。ここで当該特徴点データには複数の特徴点74の相対的な位置が示されていることから、当該特徴点データはポイントクラウドの一種であるといえる。
ここで複数の特徴点74の位置が、撮影画像72により形成される二次元平面における二次元座標値(二次元のカメラ座標系で表現された二次元座標値)で表現されてもよい。また例えば複数の特徴点74の位置が、撮影画像72により形成される二次元平面における二次元座標値、及び、奥行き(Z方向)に相当する座標値を含む三次元座標値(三次元のカメラ座標系で表現された三次元座標値)で表現されてもよい。
そして本実施形態では,SLAMの技術を用いて、撮影画像72から抽出された特徴点74と第2個別ポイントクラウド58に含まれるポイント60との照合結果に基づいて、図13に示すように、トラッカー12bの位置76及び向き78が推定される。ここで推定される位置76及び向き78は、例えば、撮影画像72が撮影された際のトラッカー12bの位置及び向きに相当する。またこのようにして推定される位置76及び向き78は、第2個別座標系で表現されることとなる。
そして本実施形態ではこのようにして推定される、第2個別座標系で表現された位置76及び向き78を示すデータが、サーバ10からトラッカー12bに送信される。そしてトラッカー12bは、受信した当該データに基づいて、種々の処理を実行する。
そして本実施形態では、図14に示すように、対応するポイント60が第2個別ポイントクラウド58に含まれていない複数の特徴点74について、当該特徴点74に対応するポイント60が第2個別ポイントクラウド58に追加される。図14の例では、領域R3内の複数のポイント60が第2個別ポイントクラウド58に追加されている。なおこの際に、特徴点74に基づいて、第2個別ポイントクラウド58に既に含まれているポイント60の位置の更新が実行されてもよい。
なおこの場合に複数回生成された特徴点74について、ポイント60の追加や更新が行われるようにしてもよい。また例えば影などといった天気や時間帯の影響を受ける特徴点74については、ポイント60の追加や更新が行われないようにしてもよい。
そして本実施形態では、第2個別ポイントクラウド58に含まれるポイント60と、共有ポイントクラウド50に含まれるポイント52と、が照合される。ここで例えば、第2個別ポイントクラウド58に含まれる複数のポイント60のうちの一部と、共有ポイントクラウド50に含まれる複数のポイント52のうちの一部とが重なり合うことが特定されたとする。この場合、図15に示すように、対応するポイント52が共有ポイントクラウド50に含まれていない第2個別ポイントクラウド58に含まれるポイント60については、当該ポイント60に対応するポイント52が共有ポイントクラウド50に追加される。図15の例では、領域R4内の複数のポイント52が共有ポイントクラウド50に追加されている。
そして本実施形態ではこのような共有ポイントクラウド50へのポイント52の追加が行われた後は、撮影画像から抽出される特徴点は、共有ポイントクラウド50に含まれるポイント52と照合されることとなる。そのため、推定されるトラッカー12bの位置及び向きは、共有座標系で表現されることとなる。ここで、共有座標系で表現された位置及び向きを示すデータとして、緯度、経度、及び、標高で表現されたデータが用いられてもよい。
この場合に、対応するポイント52が共有ポイントクラウド50に含まれていない特徴点について、当該特徴点に対応するポイント52が共有ポイントクラウド50に追加される。なおこの際に、特徴点に基づいて、共有ポイントクラウド50に既に含まれているポイント52の位置の更新が実行されてもよい。
なおこの場合に複数回生成された特徴点について、ポイント52の追加や更新が行われるようにしてもよい。また例えば影などといった天気や時間帯の影響を受ける特徴点については、ポイント52の追加や更新が行われないようにしてもよい。
以上で説明したように、本実施形態では例えば、共有ポイントクラウド50へのポイント52の追加が行われるまでは、第1個別ポイントクラウド54や第2個別ポイントクラウドに基づいて、トラッカー12の位置及び向きの推定が実行される。
そしてこの場合は例えば上述のように、トラッカー12aに対しては第1個別座標系で表現された位置及び向きを示すデータが通知される。またトラッカー12bに対しては第2個別座標系で表現された位置及び向きを示すデータが通知される。そのためこの場合は、トラッカー12aの位置及び向きとトラッカー12bの位置及び向きとの関係が特定できない。
しかし共有ポイントクラウド50へのポイント52の追加が行われた後は、トラッカー12aに対してもトラッカー12bに対しても、共有座標系で表現された位置及び向きを示すデータが通知される。このようにして本実施形態によれば、共有座標系におけるトラッカー12の位置又は向きの推定結果を当該トラッカー12に通知できることとなる。
ここで共有ポイントクラウド50へのポイント52の追加が行われた後は、共有座標系で表現されたトラッカー12bの位置及び向きを示すデータがトラッカー12aに通知されてもよい。また共有ポイントクラウド50へのポイント52の追加が行われた後は、共有座標系で表現されたトラッカー12aの位置及び向きを示すデータがトラッカー12bに通知されてもよい。こうすればトラッカー12a及びトラッカー12bの両方において、これら2つのトラッカー12により共有された座標系で表現された、これら2つのトラッカー12aの位置及び向きを用いた処理を実行することが可能になる。
また本実施形態では、共有ポイントクラウド50に基づくトラッカー12の位置及び向きの推定が行われる場合は、例えばトラッカー12の位置及び向きの初回の推定の際においても、共有座標系で表現された位置及び向きが当該トラッカー12に通知される。ここで上述のように、緯度、経度、及び、標高でトラッカー12の位置が表現されたデータがトラッカー12に通知されるようにすることも可能である。このようにすれば、トラッカー12の位置及び向きの初回の推定においても当該トラッカー12の絶対的な位置や向きが推定できることとなる。
また本実施形態では、複数のトラッカー12のそれぞれが、当該トラッカー12の位置及び向きの推定を行うことによって、共有ポイントクラウド50に含まれるポイント52の数が増えていく。このようにして本実施形態によれば、トラッカー12の位置及び向きの推定処理が行われることで、複数のトラッカー12で共有される共有ポイントクラウド50でカバーされるエリアを広げていくことが可能となる。このように本実施形態では、共有ポイントクラウド50でカバーされるエリアを広げるための処理を管理者等がわざわざ行う必要はない。
また例えば、トラッカー12のセンサ部40に含まれる地磁気センサにより計測されるトラッカー12の方位に基づいて、トラッカー12の向きを推定してもよい。そして方位に基づく向きの推定結果と、特徴点データと、共有ポイントクラウド50と、に基づいて、トラッカー12の位置及び向きが推定されてもよい。このようにすれば、より的確にトラッカー12の位置及び向きが推定できることとなる。
また、サーバ10において共有ポイントクラウド50が複数のデータベースによって管理されていてもよい。そして複数のデータベースのそれぞれに、当該データベースに対応するエリア(例えば緯度及び経度の範囲)の共有ポイントクラウド50が記憶されていてもよい。ここで複数のデータベースのそれぞれに記憶されている共有ポイントクラウド50に対応するエリア同士が一部重複していてもよい。
ここで例えばトラッカー12のセンサ部40に含まれるGPSモジュールにより計測されるトラッカー12の大まかな緯度及び経度に基づいて、当該緯度及び経度で表現される位置を含むエリアに対応するデータベースが特定されてもよい。そして特定されたデータベースに記憶されている共有ポイントクラウド50と、特徴点データと、に基づいて、トラッカー12の位置及び向きが推定されてもよい。このようにするとGPSモジュールの計測結果のみに基づいてトラッカー12の位置及び向きを推定するよりも的確にトラッカー12の位置及び向きが推定できる。なおトラッカー12の大まかな緯度及び経度は、GPSモジュールにより計測される必要はない。例えば、Wi-Fi(登録商標)のアクセスポイントの識別情報(SSID)、携帯電話の基地局の情報、位置特定サービスが提供する情報などに基づいて、トラッカー12の大まかな緯度及び経度が特定されてもよい。
また例えばサーバ10において共有ポイントクラウド50が、時間帯や、季節や、天気などに対応付けられたデータベースによって管理されていてもよい。そしてこの場合に、例えば、推定タイミングにおける時間帯、季節、天気などに対応付けられるデータベースに記憶されている共有ポイントクラウド50に基づいて、トラッカー12の位置及び向きが推定されてもよい。
また例えば、撮影画像が共有ポイントクラウド50や第1個別ポイントクラウド54や第2個別ポイントクラウド58に対するテクスチャとしてサーバ10に記憶されるようにしてもよい。当該テクスチャは、例えば機械学習を用いた推定に用いられてもよい。また当該テクスチャに基づいて、別のテクスチャが生成されるようにしてもよい。
また共有ポイントクラウド50や第1個別ポイントクラウド54や第2個別ポイントクラウド58から3次元形状データが生成されるようにしてもよい。当該3次元形状データは、例えば機械学習を用いた推定に用いられてもよい。
またトラッカー12には、トラッカー12の位置及び向きの推定結果を示すデータに関連付けて、当該位置や向きに関連付けてサーバ10に記憶されている付加情報(タグなど)が通知されてもよい。
またトラッカー12は、例えば、受信したトラッカー12の位置及び向きを示すデータに基づいて、ナビゲーションシステムにおける、道案内用の矢印が道路に沿うようぴったり重畳された道路の撮影画像を表示部38に表示させる処理を実行してもよい。本実施形態によれば、視覚障害者によっても充分な精度で道案内の矢印を表示させることができるものと期待される。
また例えば、トラッカー12が、受信したトラッカー12の位置及び向きを示すデータに基づいて、広告、飲食店のレーティングや口コミ、観光地の補足説明などといったメタデータの重畳処理を実行してもよい。またトラッカー12が、例えば撮影画像にバーチャルオブジェクトを的確な位置や向きで重畳させた画像を表示させる処理や、撮影画像や撮影された動画像から余計な人物の像を消す処理を実行してもよい。ここで例えば撮影画像に含まれる人物の像とサーバ10から送信される背景の画像とが重畳されるようにしてもよい。
また例えば、トラッカー12が、受信したトラッカー12の位置及び向きを示すデータに基づいて、宝探しゲーム、モンスターを集めるゲーム、陣取りゲームなどのAR(Augmented Reality)ゲームにおける処理を実行してもよい。この場合、例えば登録されている共有ポイントクラウド50やテクスチャが少ない場所にアイテムやモンスターが重点的に出現されるようにしてもよい。このようにすれば共有ポイントクラウド50やテクスチャが少ない場所からの特徴点データが集めやすくなる。
また3次元モデルの形状は維持しつつ、テクスチャだけ別のものにして表示させるVRテーマパークや、また、3次元モデルやテクスチャなどに基づく実世界のコンテンツの自動生成にも、本実施形態に係る位置共有システム1は活用できる。
また仮想世界における売買の場面で、本実施形態に係る位置共有システム1が活用されてもよい。例えば仮想世界における場所を所有したユーザが当該場所に広告等の情報を付加できるようにしてもよい。
その他例えば、測量、土地管理、災害シミュレーション、VR(Virtual Reality)旅行、飛行体験、自動歩行、自動運転、自動飛行においても本実施形態に係る位置共有システム1は活用できる。
このように本実施形態に係るトラッカー12は、受信したトラッカー12の位置及び向きを示すデータに基づいて様々な処理を実行することができる。
以下、本実施形態に係る位置共有システム1の機能、及び、位置共有システム1で実行される処理についてさらに説明する。
図16は、本実施形態に係る位置共有システム1で実装される機能の一例を示す機能ブロック図である。なお、本実施形態に係る位置共有システム1で、図16に示す機能のすべてが実装される必要はなく、また、図16に示す機能以外の機能が実装されていても構わない。
図16に示すように、サーバ10には、機能的には例えば、ポイントクラウド記憶部80、参照管理データ記憶部82、特徴点データ受信部84、位置推定部86、位置送信部88、追加更新部90、が含まれる。ポイントクラウド記憶部80、参照管理データ記憶部82は、記憶部22を主として実装される。特徴点データ受信部84、位置送信部88は、通信部24を主として実装される。位置推定部86、追加更新部90は、プロセッサ20を主として実装される。本実施形態に係るサーバ10は、共有座標系におけるトラッカー12の位置又は向きを示すデータをトラッカー12に送信する位置送信装置としての役割を担うこととなる。
以上の機能は、コンピュータであるサーバ10にインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ20で実行することにより実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介してサーバ10に供給されてもよい。
また図16に示すように、トラッカー12には、機能的には例えば、センシングデータ取得部92、特徴点データ生成部94、特徴点データ送信部96、位置受信部98、処理実行部100、が含まれる。センシングデータ取得部92は、プロセッサ30及びセンサ部40を主として実装される。特徴点データ生成部94、処理実行部100は、プロセッサ30を主として実装される。特徴点データ送信部96、位置受信部98は、通信部34を主として実装される。
以上の機能は、コンピュータであるトラッカー12にインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ30で実行することにより実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介してトラッカー12に供給されてもよい。
ポイントクラウド記憶部80は、本実施形態では例えば、共有ポイントクラウド50、第1個別ポイントクラウド54、第2個別ポイントクラウド58などといった、トラッカー12の位置又は向きの推定の際に参照されるポイントクラウドを記憶する。
ここで上述のように共有ポイントクラウド50は、複数のトラッカー12のそれぞれが取得するセンシングデータに基づいて生成される。また上述のように、共有ポイントクラウド50に含まれるポイント52の位置は、複数のトラッカー12で共有される共有座標系で表現される。また、第1個別ポイントクラウド54に含まれるポイント56の位置は第1個別座標系で表現される。また、第2個別ポイントクラウド58に含まれるポイント60の位置は第2個別座標系で表現される。
参照管理データ記憶部82は、本実施形態では例えば、図17に示す参照管理データを記憶する。図17に示すように、本実施形態に係る参照管理データには、トラッカーIDと、参照ポイントクラウドデータと、が含まれている。
トラッカーIDは、トラッカー12の識別情報である。ここでは例えば、トラッカー12aのトラッカーIDが001であり、トラッカー12bのトラッカーIDが002であることとする。
参照ポイントクラウドデータは、当該参照ポイントクラウドデータに関連付けられているトラッカーIDにより識別されるトラッカー12の位置又は向きの推定において参照されるポイントクラウドを示すデータである。図17に示す参照管理データでは、トラッカー12aが第1個別ポイントクラウド54を参照し、トラッカー12bが第2個別ポイントクラウド58を参照することが示されている。
特徴点データ受信部84は、本実施形態では例えば、複数の特徴点の相対的な位置が示されている特徴点データをトラッカー12から受信する。特徴点データ受信部84は例えば、複数の特徴点の相対的な位置が示されている第1特徴点データをトラッカー12aから受信する。ここで第1特徴点データは、撮影画像62により形成される二次元平面上に構成される二次元のカメラ座標系や、当該二次元平面及び奥行き方向から構成される三次元のカメラ座標系で表現されていてもよい。また特徴点データ受信部84は、複数の特徴点の相対的な位置が示されている第2特徴点データをトラッカー12bから受信する。ここで第2特徴点データは、撮影画像72により形成される二次元平面上に構成される二次元のカメラ座標系や、当該二次元平面及び奥行き方向から構成される三次元のカメラ座標系で表現されていてもよい。
位置推定部86は、本実施形態では例えば、上述のようにして、ポイントクラウドと特徴点データとに基づいて、トラッカー12の位置又は向きを推定する。ここで位置推定部86が、参照管理データにおいて、特徴点データ受信部84により受信される特徴点データの送信元であるトラッカー12のトラッカーIDに関連付けられている参照ポイントクラウドデータを特定してもよい。そして位置推定部86が、当該トラッカー12から送信される特徴点データと、特定された参照ポイントクラウドデータが示すポイントクラウドと、に基づいて、当該トラッカー12の位置又は向きを推定してもよい。
この場合、参照されるポイントクラウドが配置されている座標系で、当該トラッカー12の位置又は向きが表現されてもよい。例えばトラッカー12aの位置又は向きの推定において共有ポイントクラウド50が参照される場合は、共有座標系でトラッカー12aの位置又は向きが表現されてもよい。また例えば、トラッカー12aの位置又は向きの推定において第1個別ポイントクラウド54が参照される場合は、第1個別座標系でトラッカー12aの位置又は向きが表現されてもよい。
また例えば、トラッカー12bの位置又は向きの推定において共有ポイントクラウド50が参照される場合は、共有座標系でトラッカー12bの位置又は向きが表現されてもよい。また例えば、トラッカー12bの位置又は向きの推定において第2個別ポイントクラウド58が参照される場合は、第2個別座標系でトラッカー12bの位置又は向きが表現されてもよい。
また上述のように、位置推定部86は、センサ部40に含まれる地磁気センサにより計測されるトラッカー12の方位やGPSモジュールにより計測されるトラッカー12の大まかな緯度及び経度を用いてトラッカー12の位置又は向きを推定してもよい。
位置送信部88は、本実施形態では例えば、位置推定部86により推定されるトラッカー12の位置又は向きを示すデータを、トラッカー12に送信する。ここでは例えば、位置送信部88は、位置推定部86により推定されるトラッカー12aの位置又は向きを示すデータを、トラッカー12aに送信する。また例えば、位置送信部88は、位置推定部86により推定されるトラッカー12bの位置又は向きを示すデータを、トラッカー12bに送信する。
ここで位置送信部88が、さらに、共有座標系におけるトラッカー12bの位置又は向きを示すデータをトラッカー12aに送信してもよい。また位置送信部88が、さらに、共有座標系におけるトラッカー12aの位置又は向きを示すデータをトラッカー12bに送信してもよい。
追加更新部90は、本実施形態では例えば、上述のように、特徴点データ受信部84が受信した特徴点データに基づいて、ポイントクラウドに含まれるポイントの追加及び更新を実行する。ここで図10に示すように、共有ポイントクラウド50と第1特徴点データとに基づいて、第1特徴点データに含まれる特徴点の位置に対応付けられる共有座標系における位置に配置されるポイント52が共有ポイントクラウド50に追加されてもよい。また図15に示すように、共有ポイントクラウド50と第2特徴点データとに基づいて、第2特徴点データに含まれる特徴点の位置に対応付けられる共有座標系における位置に配置されるポイント52が共有ポイントクラウド50に追加されてもよい。
また追加更新部90は、共有ポイントクラウド50に含まれる複数のポイント52のうちの一部と第1個別ポイントクラウド54に含まれるポイント56のうちの一部とが重なり合うか否かを判定してもよい。そして重なり合うと判定される場合に、第1個別ポイントクラウド54に含まれるポイント56の一部に相当するポイント52を、共有ポイントクラウド50に追加してもよい。
ここで例えば共有ポイントクラウド50への上述のポイント52の追加が実行された際に、追加更新部90は、トラッカー12aのトラッカーIDを含む参照管理データの参照ポイントクラウドデータの値を「共有ポイントクラウド」に更新してもよい。この場合、位置推定部86は、共有ポイントクラウド50への上述のポイント52の追加が実行される前は、第1個別ポイントクラウド54と、第1特徴点データと、に基づいて、第1個別座標系におけるトラッカー12aの位置又は向きを推定することとなる。また位置推定部86は、共有ポイントクラウド50への上述のポイント52の追加が実行された後は、共有ポイントクラウド50と、第1特徴点データと、に基づいて、共有座標系におけるトラッカー12aの位置又は向きを推定することとなる。このようにすれば、ユーザが明示的な操作を行うことなく、推定されるトラッカー12aの位置又は向きが表現される座標系が第1個別座標系から共有座標系に移行されることとなる。
同様に、追加更新部90は、共有ポイントクラウド50に含まれる複数のポイント52のうちの一部と第2個別ポイントクラウド58に含まれるポイント60のうちの一部とが重なり合うか否かを判定してもよい。そして重なり合うと判定される場合に、第2個別ポイントクラウド58に含まれるポイント60の一部に相当するポイント52を、共有ポイントクラウド50に追加してもよい。
ここで例えば共有ポイントクラウド50への上述のポイント52の追加が実行された際に、追加更新部90は、トラッカー12bのトラッカーIDを含む参照管理データの参照ポイントクラウドデータの値を「共有ポイントクラウド」に更新してもよい。この場合、位置推定部86は、共有ポイントクラウド50への上述のポイント52の追加が実行される前は、第2個別ポイントクラウド58と、第2特徴点データと、に基づいて、第2個別座標系におけるトラッカー12bの位置又は向きを推定することとなる。また位置推定部86は、共有ポイントクラウド50への上述のポイントの追加が実行された後は、共有ポイントクラウド50と、第2特徴点データと、に基づいて、共有座標系におけるトラッカー12bの位置又は向きを推定することとなる。このようにすれば、ユーザが明示的な操作を行うことなく、推定されるトラッカー12bの位置又は向きが表現される座標系が第2個別座標系から共有座標系に移行されることとなる。
センシングデータ取得部92は、本実施形態では例えば、センサ部40が生成するセンシングデータを取得する。ここでセンシングデータ取得部92が、撮影画像、方位データ、緯度及び経度を示すデータ、などを取得してもよい。
特徴点データ生成部94は、本実施形態では例えば、センシングデータ取得部92が取得するセンシングデータに基づいて、特徴点データを生成する。ここで上述のように、特徴点データ生成部94が、撮影画像から複数の特徴点を抽出して、抽出された複数の特徴点の相対的な位置を示す特徴点データを生成してもよい。
特徴点データ送信部96は、本実施形態では例えば、特徴点データ生成部94が生成する特徴点データをサーバ10に送信する。ここで特徴点データ送信部96が、撮影画像、方位データ、緯度及び経度を示すデータなどを併せてサーバ10に送信してもよい。
位置受信部98は、本実施形態では例えば、サーバ10の位置送信部88が送信する、位置又は向きを示すデータを受信する。
処理実行部100は、本実施形態では例えば、位置受信部98が受信するデータが示す位置又は向きに基づく処理を実行する。上述のように処理実行部100では、ゲームにおける処理やナビゲーション処理などといった様々な処理が実行可能である。
また上述のように、ポイントクラウド記憶部80が、それぞれエリアに対応付けられている複数のポイントクラウドを記憶してもよい。
そして特徴点データ送信部96が、トラッカー12の位置を示す位置情報を取得して、当該位置情報をサーバ10に送信してもよい。ここで当該位置情報は、例えば、トラッカー12のセンサ部40に含まれるGPSモジュールにより計測されるトラッカー12の緯度及び経度を示す情報であってもよい。また位置情報は、Wi-Fi(登録商標)のアクセスポイントの識別情報(SSID)、携帯電話の基地局の情報、位置特定サービスが提供する情報などに基づいて生成されてもよい。
そして位置推定部86が、トラッカー12から送信される位置情報を取得してもよい。そして位置推定部86が、ポイントクラウド記憶部80に記憶されている複数のポイントクラウドのうちから、トラッカー12から送信された位置情報が示す位置が含まれるエリアに対応付けられているポイントクラウドを選択してもよい。
そして位置推定部86が、選択されるポイントクラウドと、トラッカー12が取得するセンシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている特徴点データと、に基づいて、当該トラッカー12の位置又は向きを推定してもよい。
そして位置送信部88が、推定されたトラッカー12の位置又は向きを示すデータを当該トラッカー12に送信してもよい。そしてトラッカー12の位置受信部98が当該トラッカー12の位置又は向きを示すデータを受信してもよい。
ここで、本実施形態に係るトラッカー12a及びサーバ10で行われる処理の流れの一例を、図18に例示するフロー図を参照しながら説明する。本処理例では、以下のS101~S112に示す処理が所定のフレームレートで繰り返し実行される。
まず、トラッカー12aのセンシングデータ取得部92が、センサ部40のカメラが撮影した撮影画像を取得する(S101)。
そしてトラッカー12aの特徴点データ生成部94が、S101に示す処理で取得された撮影画像から複数の特徴点を抽出し、抽出された複数の特徴点のそれぞれの位置を示す特徴点データを生成する(S102)。
そしてトラッカー12aの特徴点データ送信部96が、S102に示す処理で生成された特徴点データをサーバ10に送信する。するとサーバ10の特徴点データ受信部84が、送信された特徴点データを受信する(S103)。ここで送信される特徴点データには当該特徴点データを送信したトラッカー12aのトラッカーIDが関連付けられていることとする。
そしてサーバ10の位置推定部86が、S103に示す処理で受信した特徴点データに関連付けられているトラッカーIDを特定する。そしてサーバ10の位置推定部86が、参照管理データ記憶部82に記憶されている参照管理データにおいて、特定されたトラッカーIDに関連付けられている参照ポイントクラウドデータを特定する(S104)。
そしてサーバ10の位置推定部86が、S104に示す処理で特定された参照ポイントクラウドデータが示すポイントクラウドと、S103に示す処理で受信した特徴点データと、に基づいて、トラッカー12aの位置及び向きを推定する(S105)。ここで推定された位置及び向きは、S104に示す処理で特定された参照ポイントクラウドデータが示すポイントクラウドが配置されている仮想空間の座標系で表現される。
そしてサーバ10の位置送信部88が、S105に示す処理で推定された、トラッカー12aの位置及び向きを示すデータをトラッカー12aに送信する。するとトラッカー12aの位置受信部98が、当該データを受信する(S106)。
そしてトラッカー12aの処理実行部100が、S106に示す処理で受信したトラッカー12aの位置及び向きを示すデータに基づいて、所定の処理を実行する(S107)。
そしてサーバ10の追加更新部90は、S103に示す処理で受信した特徴点データに基づいて、S105に示す処理で用いられたポイントクラウドへのポイントの追加、及び、当該ポイントクラウドに含まれるポイントの更新を実行する(S108)。なおS108に示す処理は、S106に示す処理が実行された後に実行されてもよい。
そしてサーバ10の追加更新部90は、S104に示す処理で特定された参照ポイントクラウドデータが示すポイントクラウドが共有ポイントクラウド50であるか否かを確認する(S109)。
S104に示す処理で特定された参照ポイントクラウドデータが示すポイントクラウドが共有ポイントクラウド50であることが確認された場合は(S109:Y)、本サイクルにおける本処理例に示す処理を終了する。
S104に示す処理で特定された参照ポイントクラウドデータが示すポイントクラウドが共有ポイントクラウド50ではないことが確認されたとする(S109:N)。この場合、サーバ10の追加更新部90は、共有ポイントクラウド50とS108に示す処理が実行されたポイントクラウドとを照合して、当該ポイントクラウドの共有ポイントクラウド50への統合が可能であるか否かを判定する(S110)。ここで例えば共有ポイントクラウド50に含まれる複数のポイント56のうちの一部とS108に示す処理が実行されたポイントクラウドに含まれるポイントのうちの一部とが重なり合うか否かが確認されてもよい。ここで重なり合うことが確認された場合は統合が可能であると判定され、重なり合わないことが確認された場合は統合が可能でないと判定されるようにしてもよい。
ここで共有ポイントクラウド50への統合が可能でないと判定された場合は(S110:N)、本サイクルにおける本処理例に示す処理を終了する。
一方、共有ポイントクラウド50への統合が可能であると判定されたとする(S110:Y)。この場合、追加更新部90は、S108に示す処理が実行されたポイントクラウドに含まれるポイントの一部に相当するポイントを、共有ポイントクラウド50に追加する(S111)。この際に、共有ポイントクラウド50に含まれるポイントの更新が実行されてもよい。
そして追加更新部90は、トラッカー12aのトラッカーIDを含む参照管理データの参照ポイントクラウドデータの値を「共有ポイントクラウド」に更新して(S112)、本サイクルにおける本処理例に示す処理を終了する。
なお上述の処理例においてS105に示す処理で、位置推定部86が、第1個別ポイントクラウド54と、S103に示す処理で受信した特徴点データと、に基づいて、トラッカー12aの位置及び向きを推定できない場合がある。この場合に、位置推定部86が、共有ポイントクラウド50と、S103に示す処理で受信した特徴点データと、に基づいて、トラッカー12aの位置及び向きを推定してもよい。
上述の処理例に示す処理は、トラッカー12b及びサーバ10においても同様に実行される。
なお、本発明は上述の実施形態に限定されるものではない。
例えばサーバ10とトラッカー12の役割分担は上述のものに限定されない。例えば、例えばトラッカー12の特徴点データ生成部94がサーバ10で実装されていてもよい。この場合、センシングデータ取得部92が取得する撮影画像等のセンシングデータをトラッカー12の特徴点データ送信部96がサーバ10に送信してもよい。そしてサーバ10の特徴点データ生成部94が、トラッカー12から受信したセンシングデータに基づいて、特徴点データを生成してもよい。
また例えば、図16に示すポイントクラウド記憶部80、参照管理データ記憶部82、位置推定部86、追加更新部90の機能が、サーバ10ではなくトラッカー12において実装されてもよい。
また、上記の具体的な文字列や数値及び図面中の具体的な文字列や数値は例示であり、これらの文字列や数値には限定されない。

Claims (7)

  1. 共有座標系により位置が表現された共有ポイントクラウドを記憶するポイントクラウド記憶部と、
    前記共有座標系における第1トラッカーの位置又は向き、並びに、第2トラッカーの位置又は向きを推定する推定部と、を含み、
    前記推定部は、前記共有ポイントクラウドと、前記第1トラッカーが取得する第1センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第1特徴点データと、に基づいて、前記共有座標系における前記第1トラッカーの位置又は向きを推定し、
    前記推定部は、前記共有ポイントクラウドと、前記第2トラッカーが取得する第2センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第2特徴点データと、に基づいて、前記共有座標系における前記第2トラッカーの位置又は向きを推定し、
    前記共有座標系は、緯度、経度、及び、標高で表される座標系であ
    前記ポイントクラウド記憶部は、さらに、前記共有座標系とは異なる個別座標系により位置が表現された個別ポイントクラウドを記憶し、
    前記共有ポイントクラウドに含まれる複数のポイントのうちの一部と前記個別ポイントクラウドに含まれるポイントのうちの一部とが重なり合うと判定される場合に、前記個別ポイントクラウドに含まれるポイントの一部に相当するポイントを、前記共有ポイントクラウドに追加する追加部、をさらに含み、
    前記推定部は、前記個別ポイントクラウドに含まれるポイントの一部に相当するポイントの前記共有ポイントクラウドへの追加が実行される前は、前記個別ポイントクラウドと、前記第1特徴点データと、に基づいて、前記個別座標系における前記第1トラッカーの位置又は向きを推定し、
    前記推定部は、前記個別ポイントクラウドに含まれるポイントの一部に相当するポイントの前記共有ポイントクラウドへの追加が実行された後は、前記共有ポイントクラウドと、前記第1特徴点データと、に基づいて、前記共有座標系における前記第1トラッカーの位置又は向きを推定する、
    ことを特徴とする位置推定装置。
  2. 送信部をさらに含み、
    前記送信部は、前記共有座標系における前記第1トラッカーの位置又は向きを示すデータを前記第1トラッカーに送信し、
    前記送信部は、前記共有座標系における前記第2トラッカーの位置又は向きを示すデータを前記第2トラッカーに送信する、
    ことを特徴とする請求項1に記載の位置推定装置。
  3. 前記送信部は、さらに、前記共有座標系における前記第2トラッカーの位置又は向きを示すデータを前記第1トラッカーに送信し、
    前記送信部は、さらに、前記共有座標系における前記第1トラッカーの位置又は向きを示すデータを前記第2トラッカーに送信する、
    ことを特徴とする請求項2に記載の位置推定装置。
  4. 受信部、をさらに含み、
    前記受信部は、前記第1トラッカーから前記第1特徴点データを受信し、
    前記受信部は、前記第2トラッカーから前記第2特徴点データを受信し、
    前記推定部は、前記受信部により受信される前記第1特徴点データに基づいて、前記共有座標系における前記第1トラッカーの位置又は向きを推定し、
    前記推定部は、前記受信部により受信される前記第2特徴点データに基づいて、前記共有座標系における前記第2トラッカーの位置又は向きを推定する、
    ことを特徴とする請求項1からのいずれか一項に記載の位置推定装置。
  5. 受信部と、前記第1特徴点データ及び前記第2特徴点データを生成する特徴点データ生成部と、をさらに含み、
    前記受信部は、前記第1トラッカーから前記第1センシングデータを受信し、
    前記受信部は、前記第2トラッカーから前記第2センシングデータを受信し、
    前記特徴点データ生成部は、受信される前記第1センシングデータに基づいて、前記第1特徴点データを生成し、
    前記特徴点データ生成部は、受信される前記第2センシングデータに基づいて、前記第2特徴点データを生成し、
    前記推定部は、前記特徴点データ生成部により生成される前記第1特徴点データに基づいて、前記共有座標系における前記第1トラッカーの位置又は向きを推定し、
    前記推定部は、前記特徴点データ生成部により生成される前記第2特徴点データに基づいて、前記共有座標系における前記第2トラッカーの位置又は向きを推定する、
    ことを特徴とする請求項1からのいずれか一項に記載の位置推定装置。
  6. 共有座標系により位置が表現された共有ポイントクラウドと、第1トラッカーが取得する第1センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第1特徴点データと、に基づいて、前記共有座標系における前記第1トラッカーの位置又は向きを推定するステップと、
    前記共有ポイントクラウドと、第2トラッカーが取得する第2センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第2特徴点データと、に基づいて、前記共有座標系における前記第2トラッカーの位置又は向きを推定するステップと
    前記共有ポイントクラウドに含まれる複数のポイントのうちの一部と、前記共有座標系とは異なる個別座標系により位置が表現された個別ポイントクラウドに含まれるポイントのうちの一部とが重なり合うと判定される場合に、前記個別ポイントクラウドに含まれるポイントの一部に相当するポイントを、前記共有ポイントクラウドに追加するステップと、を含み、
    前記共有座標系は、緯度、経度、及び、標高で表される座標系であ
    前記第1トラッカーの位置又は向きを推定するステップでは、前記個別ポイントクラウドに含まれるポイントの一部に相当するポイントの前記共有ポイントクラウドへの追加が実行される前は、前記個別ポイントクラウドと、前記第1特徴点データと、に基づいて、前記個別座標系における前記第1トラッカーの位置又は向きを推定し、
    前記第1トラッカーの位置又は向きを推定するステップでは、前記個別ポイントクラウドに含まれるポイントの一部に相当するポイントの前記共有ポイントクラウドへの追加が実行された後は、前記共有ポイントクラウドと、前記第1特徴点データと、に基づいて、前記共有座標系における前記第1トラッカーの位置又は向きを推定する、
    ことを特徴とする位置推定方法。
  7. 共有座標系により位置が表現された共有ポイントクラウドと、第1トラッカーが取得する第1センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第1特徴点データと、に基づいて、前記共有座標系における前記第1トラッカーの位置又は向きを推定する手順、
    前記共有ポイントクラウドと、第2トラッカーが取得する第2センシングデータに基づいて生成される、複数の特徴点の相対的な位置が示されている第2特徴点データと、に基づいて、前記共有座標系における前記第2トラッカーの位置又は向きを推定する手順
    前記共有ポイントクラウドに含まれる複数のポイントのうちの一部と、前記共有座標系とは異なる個別座標系により位置が表現された個別ポイントクラウドに含まれるポイントのうちの一部とが重なり合うと判定される場合に、前記個別ポイントクラウドに含まれるポイントの一部に相当するポイントを、前記共有ポイントクラウドに追加する手順、をコンピュータに実行させ、
    前記共有座標系は、緯度、経度、及び、標高で表される座標系であ
    前記第1トラッカーの位置又は向きを推定する手順では、前記個別ポイントクラウドに含まれるポイントの一部に相当するポイントの前記共有ポイントクラウドへの追加が実行される前は、前記個別ポイントクラウドと、前記第1特徴点データと、に基づいて、前記個別座標系における前記第1トラッカーの位置又は向きを推定し、
    前記第1トラッカーの位置又は向きを推定する手順では、前記個別ポイントクラウドに含まれるポイントの一部に相当するポイントの前記共有ポイントクラウドへの追加が実行された後は、前記共有ポイントクラウドと、前記第1特徴点データと、に基づいて、前記共有座標系における前記第1トラッカーの位置又は向きを推定する、
    ことを特徴とするプログラム。
JP2020503199A 2018-03-01 2018-03-01 位置推定装置、位置推定方法及びプログラム Active JP7057821B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/007715 WO2019167213A1 (ja) 2018-03-01 2018-03-01 位置推定装置、トラッカー、位置推定方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2019167213A1 JPWO2019167213A1 (ja) 2020-12-03
JP7057821B2 true JP7057821B2 (ja) 2022-04-20

Family

ID=67805217

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020503199A Active JP7057821B2 (ja) 2018-03-01 2018-03-01 位置推定装置、位置推定方法及びプログラム

Country Status (4)

Country Link
US (1) US11341677B2 (ja)
JP (1) JP7057821B2 (ja)
CN (1) CN111788606A (ja)
WO (1) WO2019167213A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3846124A1 (en) * 2019-12-30 2021-07-07 TMRW Foundation IP SARL System and method enabling a collaborative 3d map data fusion platform and virtual world system thereof
US20230021556A1 (en) * 2020-01-24 2023-01-26 Sony Interactive Entertainment Inc. Environmental map management apparatus, environmental map management method, and program
JP7162795B2 (ja) * 2020-06-09 2022-10-31 プレティア・テクノロジーズ株式会社 映像処理システム
US20230314171A1 (en) * 2020-08-11 2023-10-05 Sony Interactive Entertainment Inc. Mapping apparatus, tracker, mapping method, and program
JP6785025B1 (ja) * 2020-08-18 2020-11-18 Graffity株式会社 情報処理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013069050A1 (ja) 2011-11-07 2013-05-16 株式会社ソニー・コンピュータエンタテインメント 画像生成装置および画像生成方法
JP2015228256A (ja) 2011-03-29 2015-12-17 クアルコム,インコーポレイテッド 各ユーザの視点に対する共有デジタルインターフェースのレンダリングのためのシステム
JP2016524128A (ja) 2013-04-22 2016-08-12 アルカテル−ルーセント 位置特定システムおよび位置特定方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10674135B2 (en) * 2012-10-17 2020-06-02 DotProduct LLC Handheld portable optical scanner and method of using
US20140368537A1 (en) * 2013-06-18 2014-12-18 Tom G. Salter Shared and private holographic objects
US9952042B2 (en) * 2013-07-12 2018-04-24 Magic Leap, Inc. Method and system for identifying a user location
US10529089B2 (en) * 2018-02-23 2020-01-07 GM Global Technology Operations LLC Crowd-sensed point cloud map

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015228256A (ja) 2011-03-29 2015-12-17 クアルコム,インコーポレイテッド 各ユーザの視点に対する共有デジタルインターフェースのレンダリングのためのシステム
WO2013069050A1 (ja) 2011-11-07 2013-05-16 株式会社ソニー・コンピュータエンタテインメント 画像生成装置および画像生成方法
JP2016524128A (ja) 2013-04-22 2016-08-12 アルカテル−ルーセント 位置特定システムおよび位置特定方法

Also Published As

Publication number Publication date
JPWO2019167213A1 (ja) 2020-12-03
CN111788606A (zh) 2020-10-16
WO2019167213A1 (ja) 2019-09-06
US20210192781A1 (en) 2021-06-24
US11341677B2 (en) 2022-05-24

Similar Documents

Publication Publication Date Title
JP7057821B2 (ja) 位置推定装置、位置推定方法及びプログラム
US11257294B2 (en) Cross reality system supporting multiple device types
US11227435B2 (en) Cross reality system
US20210110614A1 (en) Cross reality system with localization service
US20210343087A1 (en) Cross reality system for large scale environments
US11551430B2 (en) Cross reality system with fast localization
US20210134064A1 (en) Cross reality system with quality information about persistent coordinate frames
CN112805748B (zh) 使用深度提示对深度估计模型的自我监督训练
JP6931138B1 (ja) デバイスローカリゼーションのためのマルチシンクアンサンブルモデル
JP5980295B2 (ja) カメラ姿勢決定方法、及び実環境物体認識方法
US9699375B2 (en) Method and apparatus for determining camera location information and/or camera pose information according to a global coordinate system
US9558559B2 (en) Method and apparatus for determining camera location information and/or camera pose information according to a global coordinate system
TWI615776B (zh) 移動物件的虛擬訊息建立方法、搜尋方法與應用系統
CN104641399A (zh) 用于创建环境并用于共享环境中基于位置的体验的系统和方法
US20200387711A1 (en) Indoor augmented reality information display method
CN110749308B (zh) 使用消费级gps和2.5d建筑物模型的面向slam的室外定位方法
WO2020072972A1 (en) A cross reality system
JP6665402B2 (ja) コンテンツ表示端末、コンテンツ提供システム、コンテンツ提供方法、および、コンテンツ表示プログラム
CN112788443B (zh) 基于光通信装置的交互方法和系统
US11957978B2 (en) Refining camera re-localization determination using prior pose model
CN108235764A (zh) 信息处理方法、装置、云处理设备及计算机程序产品
Willems Exploring a pure landmark-based approach for indoor localisation
TWI788217B (zh) 立體空間中定位方法與定位系統
US11568616B1 (en) Display apparatuses and methods for facilitating location-based virtual content
JP2020098635A (ja) コンテンツ表示端末、コンテンツ提供方法、および、コンテンツ表示プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200317

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200317

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210309

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20211109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220203

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220203

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220216

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220222

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220408

R150 Certificate of patent or registration of utility model

Ref document number: 7057821

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150