IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ソニー・コンピュータエンタテインメントの特許一覧

特許7495502マッピング装置、トラッカー、マッピング方法及びプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-27
(45)【発行日】2024-06-04
(54)【発明の名称】マッピング装置、トラッカー、マッピング方法及びプログラム
(51)【国際特許分類】
   G06T 7/70 20170101AFI20240528BHJP
【FI】
G06T7/70 A
【請求項の数】 14
(21)【出願番号】P 2022542525
(86)(22)【出願日】2020-08-11
(86)【国際出願番号】 JP2020030595
(87)【国際公開番号】W WO2022034638
(87)【国際公開日】2022-02-17
【審査請求日】2022-12-22
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】大橋 良徳
【審査官】藤原 敬利
(56)【参考文献】
【文献】特表2020-503507(JP,A)
【文献】国際公開第2019/167213(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00- 7/90
G06V 10/00-20/90
(57)【特許請求の範囲】
【請求項1】
ユークリッド座標系で表現された位置及び地理的座標系で表現された位置が対応付けられた環境地図を示す環境地図データを記憶する環境地図データ記憶部と、
トラッカーにより取得されるセンシングデータと、前記環境地図データと、に基づいて、前記ユークリッド座標系で表現された前記トラッカーの位置を推定するトラッカー位置推定部と、
前記地理的座標系で表現されたターゲット位置を示すターゲット位置データを取得するターゲット位置データ取得部と、
前記ターゲット位置データと前記環境地図データとに基づいて、前記ユークリッド座標系で表現された前記ターゲット位置を特定する座標変換部と、
を含むことを特徴とするマッピング装置。
【請求項2】
前記ユークリッド座標系で表現された前記ターゲット位置に配置された視覚情報を前記ユークリッド座標系で表現された前記トラッカーの位置から見た様子を表す画像が、前記トラッカーが備える表示部に表示されるよう制御する表示制御部、をさらに含む、
ことを特徴とする請求項1に記載のマッピング装置。
【請求項3】
前記ターゲット位置データ取得部は、前記ターゲット位置に対応付けて所与の地図サービスに登録されている登録データに関連付けられた前記ターゲット位置データを取得し、
前記表示制御部は、前記登録データに応じた前記視覚情報を前記ユークリッド座標系で表現された前記トラッカーの位置から見た様子を表す画像が前記表示部に表示されるよう制御する、
ことを特徴とする請求項2に記載のマッピング装置。
【請求項4】
前記ターゲット位置データ取得部は、前記ターゲット位置に対応する名称を示す名称データに関連付けられた前記ターゲット位置データを取得し、
前記表示制御部は、前記名称データが示す名称が表された前記視覚情報を前記ユークリッド座標系で表現された前記トラッカーの位置から見た様子を表す画像が前記表示部に表示されるよう制御する、
ことを特徴とする請求項2に記載のマッピング装置。
【請求項5】
前記表示制御部は、実空間における所与の範囲に存在する複数の前記トラッカーのそれぞれが備える表示部に当該トラッカーに応じた前記画像が表示されるよう制御する、
ことを特徴とする請求項2から4のいずれか一項に記載のマッピング装置。
【請求項6】
前記表示制御部は、前記画像を前記表示部に表示させる前記トラッカーに、前記ユークリッド座標系で表現された前記トラッカーの位置を示すトラッカー位置データ、及び、前記ユークリッド座標系で表現された前記ターゲット位置を示す変換ターゲット位置データを送信する、
ことを特徴とする請求項2から5のいずれか一項に記載のマッピング装置。
【請求項7】
前記ターゲット位置データ取得部は、前記トラッカーとは異なる端末に表示された地図における前記ターゲット位置を指定するユーザの操作に応じて、指定される前記ターゲット位置を示す前記ターゲット位置データを取得する、
ことを特徴とする請求項1から6のいずれか一項に記載のマッピング装置。
【請求項8】
前記トラッカー位置推定部は、前記センシングデータと、前記環境地図データと、に基づいて、前記ユークリッド座標系で表現された前記トラッカーの位置、及び、前記地理的座標系で表現された前記トラッカーの位置を推定し、
前記座標変換部は、前記ターゲット位置データと、前記ユークリッド座標系で表現された前記トラッカーの位置と、前記地理的座標系で表現された前記トラッカーの位置と、に基づいて、前記ユークリッド座標系で表現された前記ターゲット位置を特定する、
ことを特徴とする請求項1から7のいずれか一項に記載のマッピング装置。
【請求項9】
前記マッピング装置は、前記環境地図データ記憶部を複数含んでおり、
前記複数の前記環境地図データ記憶部は、それぞれ、前記ユークリッド座標系での原点に対応付けられる前記地理的座標系で表現された位置が互いに異なる前記環境地図を示す前記環境地図データを記憶し、
前記トラッカー位置推定部は、前記複数の前記環境地図データ記憶部にそれぞれ記憶されている複数の前記環境地図データのうちから前記トラッカーにより取得される前記センシングデータに基づいて特定される前記環境地図データと、当該センシングデータと、に基づいて、当該環境地図データにおける前記ユークリッド座標系で表現された前記トラッカーの位置を推定し、
前記座標変換部は、前記複数の前記環境地図データ記憶部にそれぞれ記憶されている複数の前記環境地図データのうちから前記ターゲット位置データに基づいて特定される前記環境地図データと、当該ターゲット位置データと、に基づいて、当該環境地図データにおける前記ユークリッド座標系で表現された前記ターゲット位置を特定する、
ことを特徴とする請求項1から8のいずれか一項に記載のマッピング装置。
【請求項10】
前記環境地図に含まれる特徴点群と、所与の地図サービスが提供する所与の地図データが示す地図と、に基づいて、前記地理的座標系で表現された前記特徴点群に対応する位置及び向きを推定する対応推定部と、
推定される当該位置及び当該向きを前記特徴点群に対応付ける環境地図データ更新部と、をさらに含む、
ことを特徴とする請求項1から9のいずれか一項に記載のマッピング装置。
【請求項11】
前記対応推定部は、前記特徴点群を重力軸に対して直交する平面に投影した様子を表す第1解像度の画像である第1投影画像と、前記地図に基づいて生成される前記第1解像度の画像である第1参照画像と、に基づいて、前記地理的座標系で表現された前記特徴点群に対応する向きを推定し、
前記対応推定部は、前記特徴点群を前記平面に投影した様子を表す前記第1解像度よりも解像度が高い第2解像度の画像である第2投影画像と、前記地図に基づいて生成される前記第2解像度の画像である第2参照画像と、推定される前記向きと、に基づいて、前記地理的座標系で表現された前記特徴点群に対応する位置を推定する、
ことを特徴とする請求項10に記載のマッピング装置。
【請求項12】
センサ部と、表示部と、を備えたトラッカーであって、
前記センサ部により取得されるセンシングデータに基づいて推定されるユークリッド座標系で表現された前記トラッカーの位置と、前記トラッカーとは異なる端末に表示された地図においてユーザに指定される地理的位置であるターゲット位置と、に基づいて、前記ユークリッド座標系で表現された前記ターゲット位置に配置された視覚情報を前記ユークリッド座標系で表現された前記トラッカーの位置から見た様子を表す画像を前記表示部に表示させる表示制御部、をさらに備える、
ことを特徴とするトラッカー。
【請求項13】
マッピング装置が、トラッカーにより取得されるセンシングデータと、ユークリッド座標系で表現された位置及び地理的座標系で表現された位置が対応付けられた環境地図を示す環境地図データと、に基づいて、前記ユークリッド座標系で表現された前記トラッカーの位置を推定するステップと、
前記マッピング装置が、前記地理的座標系で表現されたターゲット位置を示すターゲット位置データを取得するステップと、
前記マッピング装置が、前記ターゲット位置データと前記環境地図データとに基づいて、前記ユークリッド座標系で表現された前記ターゲット位置を特定するステップと、
を含むことを特徴とするマッピング方法。
【請求項14】
トラッカーにより取得されるセンシングデータと、ユークリッド座標系で表現された位置及び地理的座標系で表現された位置が対応付けられた環境地図を示す環境地図データと、に基づいて、前記ユークリッド座標系で表現された前記トラッカーの位置を推定する手順、
前記地理的座標系で表現されたターゲット位置を示すターゲット位置データを取得する手順、
前記ターゲット位置データと前記環境地図データとに基づいて、前記ユークリッド座標系で表現された前記ターゲット位置を特定する手順、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マッピング装置、トラッカー、マッピング方法及びプログラムに関する。
【背景技術】
【0002】
トラッカーが備えるカメラにより撮影された撮影画像などといった、トラッカーが取得するセンシングデータに基づいて、自己位置推定及び環境地図作成を行うSLAM(Simultaneous Localization and Mapping)の技術が知られている。SLAMを活用した技術の一例として、特許文献1には、複数のトラッカーのそれぞれが取得するセンシングデータに基づいて生成される、これら複数のトラッカーで共有される共有座標系で位置が表現された環境地図が記載されている。
【0003】
また、インターネットを介して地図(当該地図には一般的な地図だけではなく衛星地図や航空地図も含まれる。)をユーザに提供する様々な地図サービスが存在する。
【0004】
また、現実世界の風景に仮想的な視覚情報を重ねて表示させるAR(Augmented Reality)技術などのXリアリティ(XR)技術が存在する。
【先行技術文献】
【特許文献】
【0005】
【文献】国際公開第2019/167213号
【発明の概要】
【発明が解決しようとする課題】
【0006】
SLAMの技術を用いて推定されたユーザの位置と地図などに示された地理的位置とを連携させることでXR技術を用いた新たなサービスを展開することが可能となる。
【0007】
例えば、地図サービスによって提供される地図データが示す地図上に打たれたアンカー、地域情報、店舗情報などを表す視覚情報が、地図上の地理的位置に対応する現実世界における位置に見えるようにするサービスが可能となる。
【0008】
また例えば、スマートフォンやタブレット端末などの端末に表示された地図における地理的位置を指定するユーザの操作に応じて、指定された地理的位置に対応する現実世界における位置に目印等の視覚情報が見えるようにするサービスが可能となる。
【0009】
しかし、地図に示された位置などの地理的位置は、緯度、経度、標高等の地理的座標系で表現される一方で、SLAMの技術を用いて推定される環境地図内のユーザの位置は、X座標値、Y座標値、Z座標値等のユークリッド座標系で表現される。
【0010】
このように、地理的位置とSLAMの技術を用いて推定される環境地図内のユーザの位置とで表現に用いられる座標系が異なるため、従来技術では、所与の地理的位置を環境地図に的確にマッピングさせることができなかった。
【0011】
本発明は上記課題に鑑みてなされたものであって、その目的の1つは、所与の地理的位置を環境地図に的確にマッピングさせることができるマッピング装置、トラッカー、マッピング方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0012】
上記課題を解決するために、本発明に係るマッピング装置は、ユークリッド座標系で表現された位置及び地理的座標系で表現された位置が対応付けられた環境地図を示す環境地図データを記憶する環境地図データ記憶部と、トラッカーにより取得されるセンシングデータと、前記環境地図データと、に基づいて、前記ユークリッド座標系で表現された前記トラッカーの位置を推定するトラッカー位置推定部と、前記地理的座標系で表現されたターゲット位置を示すターゲット位置データを取得するターゲット位置データ取得部と、前記ターゲット位置データと前記環境地図データとに基づいて、前記ユークリッド座標系で表現された前記ターゲット位置を特定する座標変換部と、を含む。
【0013】
本発明の一態様では、前記ユークリッド座標系で表現された前記ターゲット位置に配置された視覚情報を前記ユークリッド座標系で表現された前記トラッカーの位置から見た様子を表す画像が、前記トラッカーが備える表示部に表示されるよう制御する表示制御部、をさらに含む。
【0014】
この態様では、前記ターゲット位置データ取得部は、前記ターゲット位置に対応付けて所与の地図サービスに登録されている登録データに関連付けられた前記ターゲット位置データを取得し、前記表示制御部は、前記登録データに応じた前記視覚情報を前記ユークリッド座標系で表現された前記トラッカーの位置から見た様子を表す画像が前記表示部に表示されるよう制御してもよい。
【0015】
あるいは、前記ターゲット位置データ取得部は、前記ターゲット位置に対応する名称を示す名称データに関連付けられた前記ターゲット位置データを取得し、前記表示制御部は、前記名称データが示す名称が表された前記視覚情報を前記ユークリッド座標系で表現された前記トラッカーの位置から見た様子を表す画像が前記表示部に表示されるよう制御してもよい。
【0016】
また、前記表示制御部は、実空間における所与の範囲に存在する複数の前記トラッカーのそれぞれが備える表示部に当該トラッカーに応じた前記画像が表示されるよう制御してもよい。
【0017】
また、前記表示制御部は、前記画像を前記表示部に表示させる前記トラッカーに、前記ユークリッド座標系で表現された前記トラッカーの位置を示すトラッカー位置データ、及び、前記ユークリッド座標系で表現された前記ターゲット位置を示す変換ターゲット位置データを送信してもよい。
【0018】
また、本発明の一態様では、前記ターゲット位置データ取得部は、前記トラッカーとは異なる端末に表示された地図における前記ターゲット位置を指定するユーザの操作に応じて、指定される前記ターゲット位置を示す前記ターゲット位置データを取得する。
【0019】
また、本発明の一態様では、前記トラッカー位置推定部は、前記センシングデータと、前記環境地図データと、に基づいて、前記ユークリッド座標系で表現された前記トラッカーの位置、及び、前記地理的座標系で表現された前記トラッカーの位置を推定し、前記座標変換部は、前記ターゲット位置データと、前記ユークリッド座標系で表現された前記トラッカーの位置と、前記地理的座標系で表現された前記トラッカーの位置と、に基づいて、前記ユークリッド座標系で表現された前記ターゲット位置を特定する。
【0020】
また、本発明の一態様では、前記マッピング装置は、前記環境地図データ記憶部を複数含んでおり、前記複数の前記環境地図データ記憶部は、それぞれ、前記ユークリッド座標系での原点に対応付けられる前記地理的座標系で表現された位置が互いに異なる前記環境地図を示す前記環境地図データを記憶し、前記トラッカー位置推定部は、前記複数の前記環境地図データ記憶部にそれぞれ記憶されている複数の前記環境地図データのうちから前記トラッカーにより取得される前記センシングデータに基づいて特定される前記環境地図データと、当該センシングデータと、に基づいて、当該環境地図データにおける前記ユークリッド座標系で表現された前記トラッカーの位置を推定し、前記座標変換部は、前記複数の前記環境地図データ記憶部にそれぞれ記憶されている複数の前記環境地図データのうちから前記ターゲット位置データに基づいて特定される前記環境地図データと、当該ターゲット位置データと、に基づいて、当該環境地図データにおける前記ユークリッド座標系で表現された前記ターゲット位置を特定する。
【0021】
また、本発明の一態様では、前記環境地図に含まれる特徴点群と、所与の地図サービスが提供する所与の地図データが示す地図と、に基づいて、前記地理的座標系で表現された前記特徴点群に対応する位置及び向きを推定する対応推定部と、推定される当該位置及び当該向きを前記特徴点群に対応付ける環境地図データ更新部と、をさらに含む。
【0022】
この態様では、前記対応推定部は、前記特徴点群を重力軸に対して直交する平面に投影した様子を表す第1解像度の画像である第1投影画像と、前記地図に基づいて生成される前記第1解像度の画像である第1参照画像と、に基づいて、前記地理的座標系で表現された前記特徴点群に対応する向きを推定し、前記対応推定部は、前記特徴点群を前記平面に投影した様子を表す前記第1解像度よりも解像度が高い第2解像度の画像である第2投影画像と、前記地図に基づいて生成される前記第2解像度の画像である第2参照画像と、推定される前記向きと、に基づいて、前記地理的座標系で表現された前記特徴点群に対応する位置を推定してもよい。
【0023】
また、本発明に係るトラッカーは、センサ部と、表示部と、を備えたトラッカーであって、前記センサ部により取得されるセンシングデータに基づいて推定されるユークリッド座標系で表現された前記トラッカーの位置と、前記トラッカーとは異なる端末に表示された地図においてユーザに指定される地理的位置であるターゲット位置と、に基づいて、前記ユークリッド座標系で表現された前記ターゲット位置に配置された視覚情報を前記ユークリッド座標系で表現された前記トラッカーの位置から見た様子を表す画像を前記表示部に表示させる表示制御部、をさらに備える。
【0024】
また、本発明に係るマッピング方法は、トラッカーにより取得されるセンシングデータと、ユークリッド座標系で表現された位置及び地理的座標系で表現された位置が対応付けられた環境地図を示す環境地図データと、に基づいて、前記ユークリッド座標系で表現された前記トラッカーの位置を推定するステップと、前記地理的座標系で表現されたターゲット位置を示すターゲット位置データを取得するステップと、前記ターゲット位置データと前記環境地図データとに基づいて、前記ユークリッド座標系で表現された前記ターゲット位置を特定するステップと、を含む。
【0025】
また、本発明に係るプログラムは、トラッカーにより取得されるセンシングデータと、ユークリッド座標系で表現された位置及び地理的座標系で表現された位置が対応付けられた環境地図を示す環境地図データと、に基づいて、前記ユークリッド座標系で表現された前記トラッカーの位置を推定する手順、前記地理的座標系で表現されたターゲット位置を示すターゲット位置データを取得する手順、前記ターゲット位置データと前記環境地図データとに基づいて、前記ユークリッド座標系で表現された前記ターゲット位置を特定する手順、をコンピュータに実行させる。
【図面の簡単な説明】
【0026】
図1】本発明の一実施形態に係る環境地図管理システムの一例を示す構成図である。
図2A】本発明の一実施形態に係るトラッカーの一例を示す構成図である。
図2B】本発明の一実施形態に係る端末の一例を示す構成図である。
図2C】本発明の一実施形態に係るサーバの一例を示す構成図である。
図3】名称画像が見える様子の一例を示す図である。
図4】端末に表示された地図における地理的位置を指定するユーザの操作が行われている様子の一例を示す図である。
図5】目印が見える様子の一例を示す図である。
図6A】本発明の一実施形態に係るトラッカーで実装される機能の一例を示す機能ブロック図である。
図6B】本発明の一実施形態に係るサーバで実装される機能の一例を示す機能ブロック図である。
図7】キーフレームデータのデータ構造の一例を示す図である。
図8】パブリックポーズデータのデータ構造の一例を示す図である。
図9】ジオポーズデータのデータ構造の一例を示す図である。
図10】オリジナル投影画像の一例を示す図である。
図11】加工投影画像の一例を示す図である。
図12】地図内におけるオリジナル投影画像に対応付けられる領域の一例を模式的に示す図である。
図13】生成される仮想空間の一例を模式的に示す図である。
図14】生成される画像の一例を模式的に示す図である。
図15】生成される画像の一例を模式的に示す図である。
図16】本発明の一実施形態に係るサーバで行われる処理の流れの一例を示すフロー図である。
図17A】本発明の一実施形態に係るサーバで行われる処理の流れの一例を示すフロー図である。
図17B】本発明の一実施形態に係るサーバで行われる処理の流れの一例を示すフロー図である。
図18】本発明の一実施形態に係るユーザシステム及びサーバで行われる処理の流れの一例を示すフロー図である。
【発明を実施するための形態】
【0027】
以下、本発明の一実施形態について図面に基づき詳細に説明する。
【0028】
図1は、本発明の一実施形態に係る環境地図管理システム1の一例を示す構成図である。図1に示すように、本実施形態に係る環境地図管理システム1には、複数のユーザシステム10が含まれる。そして、本実施形態に係るユーザシステム10には、トラッカー12と、端末14と、が含まれる。図1には、2つのユーザシステム10a、10bが例示されている。ユーザシステム10aには、トラッカー12aと端末14aが含まれる。ユーザシステム10bには、トラッカー12bと端末14bが含まれる。また、本実施形態に係る環境地図管理システム1には、サーバ16、及び、地図サービス18も含まれる。
【0029】
本実施形態では例えば、環境地図管理システム1を利用する複数のユーザが、それぞれ、当該ユーザのユーザシステム10を管理していることとする。そして各ユーザは、他のユーザが管理しているユーザシステム10にはアクセスできないこととする。
【0030】
トラッカー12、端末14、サーバ16、地図サービス18は、インターネット等のコンピュータネットワーク20に接続されている。そして本実施形態では、トラッカー12、端末14、サーバ16、地図サービス18は、互いに通信可能になっている。
【0031】
本実施形態に係るトラッカー12は、当該トラッカー12を装着したユーザの位置や向きを追跡する装置である。
【0032】
図2Aに示すように、本実施形態に係るトラッカー12には、プロセッサ30、記憶部32、通信部34、表示部36、センサ部38、が含まれる。
【0033】
プロセッサ30は、例えばトラッカー12にインストールされるプログラムに従って動作するマイクロプロセッサ等のプログラム制御デバイスである。記憶部32は、例えばROMやRAM等の記憶素子などである。記憶部32には、プロセッサ30によって実行されるプログラムなどが記憶される。通信部34は、例えば無線LANモジュールなどの通信インタフェースである。
【0034】
表示部36は、トラッカー12の前側に配置されている、例えば液晶ディスプレイや有機ELディスプレイ等のディスプレイである。本実施形態に係る表示部36は、例えば左目用の画像と右目用の画像を表示することによって三次元画像を表示させることができるようになっている。なお表示部36は三次元画像の表示ができず二次元画像の表示のみができるものであっても構わない。
【0035】
センサ部38は、例えばカメラ、慣性センサ(IMU)、地磁気センサ(方位センサ)、ジャイロコンパス、GPS(Global Positioning System)モジュール、デプスセンサ、標高センサなどといったセンサである。
【0036】
センサ部38に含まれるカメラは、例えば所定のサンプリングレートで画像を撮影する。センサ部38に含まれるカメラは、三次元画像や奥行き画像が撮影可能なものであってもよい。
【0037】
またセンサ部38に含まれる地磁気センサやジャイロコンパスは、トラッカー12が向く方位を示すデータを、所定のサンプリングレートで、プロセッサ30に出力する。
【0038】
またセンサ部38に含まれる慣性センサは、トラッカー12の加速度、回転量、移動量などを示すデータを、所定のサンプリングレートで、プロセッサ30に出力する。
【0039】
またセンサ部38に含まれるGPSモジュールは、トラッカー12の緯度及び経度を示すデータを、所定のサンプリングレートで、プロセッサ30に出力する。
【0040】
センサ部38に含まれるデプスセンサは、例えば、ToF(Time of Flight)、Patterned stereo、Structured Lightなどの技術を用いたデプスセンサである。当該デプスセンサは、トラッカー12からの距離を示すデータを、所定のサンプリングレートで、プロセッサ30に出力する。
【0041】
またセンサ部38に含まれる標高センサは、トラッカー12の標高を示すデータを、所定のサンプリングレートで、プロセッサ30に出力する。
【0042】
また、センサ部38に、RFセンサ、超音波センサ、イベントドリブンセンサなどの他のセンサが含まれていてもよい。
【0043】
なお本実施形態に係るトラッカー12が、例えばHDMI(登録商標)(High-Definition Multimedia Interface)ポート、USBポート、AUXポートなどの入出力ポート、ヘッドホン、スピーカなどを含んでいてもよい。
【0044】
本実施形態に係る端末14は、スマートフォンやタブレット端末などの携帯情報端末である。
【0045】
図2Bに示すように、本実施形態に係る端末14には、プロセッサ40、記憶部42、通信部44、表示部46、センサ部48、が含まれる。
【0046】
プロセッサ40は、例えば端末14にインストールされるプログラムに従って動作するマイクロプロセッサ等のプログラム制御デバイスである。記憶部42は、例えばROMやRAM等の記憶素子などである。記憶部42には、プロセッサ40によって実行されるプログラムなどが記憶される。通信部44は、例えば無線LANモジュールなどの通信インタフェースである。表示部46は、例えば液晶ディスプレイや有機ELディスプレイ等のディスプレイである。センサ部48は、例えばカメラ、慣性センサ(IMU)、地磁気センサ(方位センサ)、ジャイロコンパス、GPS(Global Positioning System)モジュール、デプスセンサ、標高センサなどといったセンサである。
【0047】
本実施形態に係るサーバ16は、例えば、環境地図管理システム1を利用するユーザによって利用されるクラウドサーバなどのサーバコンピュータである。本実施形態に係るサーバ16は、環境地図管理システム1に含まれるいずれのユーザシステム10からもアクセスできるようになっている。
【0048】
図2Cに示すように、本実施形態に係るサーバ16には、プロセッサ50、記憶部52、及び、通信部54、が含まれる。プロセッサ50は、例えばサーバ16にインストールされているプログラムに従って動作するCPU等のプログラム制御デバイスである。記憶部52は、例えばROMやRAM等の記憶素子やソリッドステートドライブなどである。記憶部52には、プロセッサ50によって実行されるプログラムなどが記憶される。通信部54は、ネットワークボードや無線LANモジュールなどといった通信インタフェースである。
【0049】
本実施形態に係る地図サービス18は、例えば、既存の地図サービス事業者によって管理されているクラウドサーバなどのサーバコンピュータから構成されており、ユーザに所与の地図データを提供する。地図サービス18によって提供される地図データは、一般的な地図を示す地図データには限定されない。地図サービス18によって、航空地図(航空画像)や衛星地図(衛星画像)を示す地図データが提供されても構わない。本実施形態に係る地図サービス18によって提供される地図データが示す地図は、三次元地図であり、例えば、緯度、経度、標高、及び、方位が表現されている。なお、地図サービス18によって提供される地図データが示す地図が、二次元地図であり、例えば、緯度、経度、及び、方位が表現されていてもよい。
【0050】
本実施形態では、ユーザシステム10に含まれるトラッカー12によって取得されるセンシングデータがサーバ16に送信される。本実施形態では例えば、センサ部38によるセンシングに応じてプロセッサ30が取得するセンシングデータがサーバ16に送信される。
【0051】
そして本実施形態では例えば、サーバ16において、センシングデータに基づいて、自己位置推定処理及び環境地図作成処理を含むSLAM(Simultaneous Localization and Mapping)処理が実行される。
【0052】
その結果、環境地図を示す環境地図データがサーバ16に蓄積されていく。また、本実施形態では、SLAM処理によるユーザの位置及び向きの推定結果(ここでは例えば、トラッカー12の位置及び向きの推定結果)を示すトラッカー位置データがサーバ16からトラッカー12に送信される。
【0053】
このようにして推定されたユーザの位置と地図などに示された地理的位置とを連携させることでAR(Augmented Reality)等のXリアリティ(XR)技術を用いた新たなサービスを展開することが可能となる。
【0054】
例えば、図3に示すように、地図サービス18によって提供される地図データが示す地図上に打たれたアンカー、地域情報、店舗情報などを表す視覚情報が、地図上の地理的位置に対応する現実世界における位置に見えるようにするサービスが可能となる。図3には、ユーザに見える視覚情報の一例として、「XXタワー」というタワーの名称を示す名称画像60が示されている。
【0055】
また例えば、図4に示すような、端末14の表示部46に表示された地図における地理的位置P1を指定するユーザの操作に応じて、図5に示すように、指定された地理的位置に対応する現実世界における位置に目印62等の視覚情報が見えるようにするサービスが可能となる。図5の例では、目印62の一例として、りんごの画像が示されており、このサービスでは、例えば、このりんごの画像が落下する様子がユーザに見えることとなる。
【0056】
しかし、地図に示された位置などの地理的位置は、緯度、経度、標高等の地理的座標系で表現される一方で、SLAMの技術を用いて推定される環境地図内のユーザの位置は、X座標値、Y座標値、Z座標値等のユークリッド座標系で表現される。
【0057】
このように、地理的位置とSLAMの技術を用いて推定される環境地図内のユーザの位置とで表現に用いられる座標系が異なるため、従来技術では、所与の地理的位置を環境地図に的確にマッピングさせることができなかった。
【0058】
そこで本実施形態では、以下のようにして、所与の地理的位置を環境地図に的確にマッピングさせることができるようにした。
【0059】
また、従来技術では、所与の地理的位置を環境地図に的確にマッピングさせることができなかったため、所与の地理的位置に対応する現実世界における位置に的確に視覚情報を表示させることができなかった。
【0060】
そこで本実施形態では、以下のようにして、所与の地理的位置に対応する現実世界における位置に的確に視覚情報を表示させることができるようにした。
【0061】
以下、本実施形態に係るトラッカー12及びサーバ16の機能、及び、環境地図管理システム1で実行される処理についてさらに説明する。
【0062】
図6Aは、本実施形態に係るトラッカー12で実装される機能の一例を示す機能ブロック図である。なお、本実施形態に係るトラッカー12で、図6Aに示す機能のすべてが実装される必要はなく、また、図6Aに示す機能以外の機能が実装されていても構わない。
【0063】
図6Aに示すように、トラッカー12には、機能的には例えば、センシングデータ取得部70、センシングデータ送信部72、位置データ受信部74、画像生成部76、トラッカー表示制御部78、が含まれる。センシングデータ取得部70は、プロセッサ30及びセンサ部38を主として実装される。センシングデータ送信部72、位置データ受信部74は、通信部34を主として実装される。画像生成部76は、プロセッサ30を主として実装される。トラッカー表示制御部78は、プロセッサ30及び表示部36を主として実装される。
【0064】
以上の機能は、コンピュータであるトラッカー12にインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ30で実行することにより実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介してトラッカー12に供給されてもよい。
【0065】
図6Bは、本実施形態に係るサーバ16で実装される機能の一例を示す機能ブロック図である。なお、本実施形態に係るサーバ16で、図6Bに示す機能のすべてが実装される必要はなく、また、図6Bに示す機能以外の機能が実装されていても構わない。
【0066】
図6Bに示すように、サーバ16には、機能的には例えば、環境地図データ記憶部80、センシングデータ受信部82、SLAM処理実行部84、環境地図データ更新部86、ターゲット位置データ取得部88、座標変換部90、サーバ表示制御部92、が含まれる。環境地図データ記憶部80は、記憶部52を主として実装される。センシングデータ受信部82、ターゲット位置データ取得部88、サーバ表示制御部92は、通信部54を主として実装される。SLAM処理実行部84、環境地図データ更新部86、座標変換部90は、プロセッサ50を主として実装される。
【0067】
また、図6Bに示すように、本実施形態に係るサーバ16には、環境地図データ記憶部80が複数含まれている。そして、複数の環境地図データ記憶部80のそれぞれには、キーフレームデータ記憶部80a、パブリックポーズデータ記憶部80b、ジオポーズデータ記憶部80c、が含まれる。また、本実施形態では例えば、複数の環境地図データ記憶部80のそれぞれには、予め、地理的範囲(例えば、緯度の範囲と経度の範囲との組合せ)が関連付けられていることとする。そのため、本実施形態では、地理的位置に基づいて、複数の環境地図データ記憶部80のうちから、当該地理的位置を含む地理的範囲に関連付けられている1つの環境地図データ記憶部80が特定可能になっている。
【0068】
以上の機能は、コンピュータであるサーバ16にインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ50で実行することにより実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介してサーバ16に供給されてもよい。
【0069】
環境地図データ記憶部80は、本実施形態では例えば、ユークリッド座標系で表現された位置及び地理的座標系で表現された位置が対応付けられた環境地図を示す環境地図データを記憶する。本実施形態に係る環境地図データには、例えば、キーフレームデータ(図7参照)、パブリックポーズデータ(図8参照)、ジオポーズデータ(図9参照)が含まれる。キーフレームデータは、キーフレームデータ記憶部80aに記憶される。パブリックポーズデータは、パブリックポーズデータ記憶部80bに記憶される。ジオポーズデータは、ジオポーズデータ記憶部80cに記憶される。
【0070】
図7は、キーフレームデータのデータ構造の一例を示す図である。図7に示すように、キーフレームデータには、例えば、キーフレームID、及び、複数の特徴点データ(特徴点データ(1)、特徴点データ(2)、・・・)が含まれる。
【0071】
図8は、パブリックポーズデータのデータ構造の一例を示す図である。図8に示すように、パブリックポーズデータには、例えば、キーフレームID、X座標値データ、Y座標値データ、Z座標値データ、及び、回転行列データが含まれる。
【0072】
図9は、ジオポーズデータのデータ構造の一例を示す図である。ジオポーズデータには、例えば、キーフレームID、緯度データ、経度データ、標高データ、方位角データ、及び、コンバージョンフラグが含まれる。
【0073】
本実施形態に係るキーフレームデータは、例えば、トラッカー12のセンサ部38によるセンシング結果を示すセンシングデータに対応付けられる特徴点群を示すデータである。
【0074】
パブリックポーズデータ、及び、ジオポーズデータは、キーフレームデータに対応付けられるセンシングが行われた際のトラッカー12の位置及び向きを示すデータである。パブリックポーズデータでは、位置及び向きが、X座標値、Y座標値、Z座標値等のユークリッド座標系で表現される一方で、ジオポーズデータでは、位置及び向きが、緯度、経度、標高等の地理的座標系で表現される。
【0075】
本実施形態では、トラッカー12によるセンシングに応じてキーフレームデータが生成される際に、当該センシングが行われた際のトラッカー12の位置及び向きを示すパブリックポーズデータ、及び、ジオポーズデータが併せて生成される。
【0076】
キーフレームデータに含まれるキーフレームIDは、キーフレームデータの識別情報である。ここで例えば、キーフレームデータに含まれるキーフレームIDは、当該キーフレームデータに対応付けられたセンシングの順序を示す番号であってもよい。
【0077】
そして本実施形態では、パブリックポーズデータに含まれるキーフレームIDには、当該パブリックポーズデータに対応付けられるキーフレームデータのキーフレームIDと同じ値が設定される。また、ジオポーズデータに含まれるキーフレームIDには、当該ジオポーズデータに対応付けられるキーフレームデータのキーフレームIDと同じ値が設定される。このようにして、センシングデータ、キーフレームデータ、パブリックポーズデータ、ジオポーズデータは、互いに対応付けられることとなる。
【0078】
キーフレームデータに含まれる特徴点データは、トラッカー12が取得するセンシングデータに基づいて特定される特徴点の位置などといった特徴点の属性を示すデータである。本実施形態では、キーフレームデータには、それぞれ互いに異なる特徴点に対応付けられる複数の特徴点データが含まれる。ここでは例えば、キーフレームデータには、トラッカー12による一度のセンシングに基づくSLAM処理によって特定される特徴点の数の特徴点データが含まれる。
【0079】
キーフレームデータに含まれる特徴点データには、例えば、当該キーフレームデータに対応するパブリックポーズデータが示す位置及び向きを原点とした当該特徴点データに対応する特徴点の相対的な位置の三次元座標値(例えば、X座標値、Y座標値、及び、Z座標値)が含まれる。また、特徴点データには、当該特徴点データに対応する特徴点の周囲の色を示す色情報が含まれる。
【0080】
なお、キーフレームデータには、以上のデータの他に、例えば、トラッカー12が取得するセンシングデータが含まれるようにしてもよい。
【0081】
パブリックポーズデータに含まれるX座標値データの値、Y座標値データの値、Z座標値データの値には、それぞれ、当該パブリックポーズデータに対応付けられるセンシングが行われた際のトラッカー12の位置のX座標値、Y座標値、Z座標値が設定される。本実施形態では例えば、X座標値データの値、Y座標値データの値、Z座標値データの値の単位は、メートルである。パブリックポーズデータに含まれる回転行列データには、当該パブリックポーズデータに対応付けられるセンシングが行われた際のトラッカー12の向きを示す回転行列の値が設定される。
【0082】
ジオポーズデータに含まれる緯度データの値、経度データの値、標高データの値には、それぞれ、当該ジオポーズデータに対応付けられるセンシングが行われた際のトラッカー12の位置の緯度、経度、標高を示す値が設定される。ジオポーズデータに含まれる方位角データの値には、当該ジオポーズデータに対応付けられるセンシングが行われた際にトラッカー12が向いていた方位を示す値が設定される。
【0083】
本実施形態では例えば、緯度データの値の範囲は-90~90であり、精度はdouble相当であり、単位は度である。また、経度データの値の範囲は-180~180であり、精度はdouble相当であり、単位は度である。また、標高データの値は、日本については東京湾の海抜平均からの高さを表し、単位はメートルである。また、方位角データの値の範囲は0~360であり、単位は度である。方位角データには、北向きを示す値が0となり、南向きを示す値が180となるよう方位角を示す値が設定される。
【0084】
上述のように、本実施形態に係るサーバ16には、複数の環境地図データ記憶部80が含まれている。そして、複数の環境地図データ記憶部80には、それぞれ、ユークリッド座標系での原点に対応付けられる地理的座標系で表現された位置が互いに異なる環境地図を示す環境地図データが記憶される。
【0085】
センシングデータ取得部70は、本実施形態では例えば、センサ部38によるセンシング結果を示すセンシングデータを取得する。
【0086】
センシングデータ取得部70が取得するセンシングデータには、例えば、トラッカー12のセンサ部38に含まれるカメラにより撮影される画像が含まれていてもよい。
【0087】
また、センシングデータ取得部70が取得するセンシングデータに、トラッカー12のセンサ部38に含まれるカメラやデプスセンサにより計測されるデプスデータが含まれていてもよい。
【0088】
また、センシングデータ取得部70が取得するセンシングデータに、トラッカー12のセンサ部38に含まれる地磁気センサやジャイロコンパスにより計測されるトラッカー12の方位を示すデータが含まれていてもよい。
【0089】
また、センシングデータ取得部70が取得するセンシングデータに、センサ部38に含まれる慣性センサにより計測されるトラッカー12の加速度、回転量、移動量などを示すデータが含まれていてもよい。
【0090】
また、センシングデータ取得部70が取得するセンシングデータに、センサ部38に含まれるGPSモジュールにより計測されるトラッカー12の緯度及び経度を示すデータが含まれていてもよい。
【0091】
また、センシングデータ取得部70が取得するセンシングデータにセンサ部38に含まれる標高センサにより計測される標高を示すデータが含まれていてもよい。
【0092】
また、センシングデータ取得部70が取得するセンシングデータに、特徴点群(キーフレーム)が含まれていてもよい。
【0093】
なお、センシングデータが示す緯度及び経度の精度を高めるため、トラッカー12が、無線スポットを用いた位置推定サービスや、5G環境のモバイルエッジサーバの識別子などを活用してもよい。
【0094】
センシングデータ送信部72は、本実施形態では例えば、センシングデータ取得部70が取得するセンシングデータをサーバ16に送信する。
【0095】
センシングデータ受信部82は、本実施形態では例えば、トラッカー12から送信されるセンシングデータを受信する。
【0096】
SLAM処理実行部84は、本実施形態では例えば、センシングデータ受信部82が受信するセンシングデータに基づいて、SLAM(Simultaneous Localization and Mapping)処理を実行する。本実施形態に係るSLAM処理には、例えば、環境地図データ(キーフレームデータ、パブリックポーズデータ、及び、ジオポーズデータ)の生成処理が含まれる。また、当該SLAM処理には、トラッカー12により取得されるセンシングデータと、上述の環境地図データと、に基づいて、ユークリッド座標系で表現されたトラッカー12の位置を推定する自己位置推定処理が含まれる。なお、当該SLAM処理には、リロカライズ処理、ループクロージング処理、3Dメッシュ化処理、物体認識処理などが含まれていてもよい。
【0097】
また、当該SLAM処理に、平面検出/3Dメッシュのセグメンテーション処理が含まれていてもよい。平面検出/3Dメッシュのセグメンテーション処理とは、地面、壁などといった連続した平面を検出して、全体の3Dメッシュを、地面、建物、木、などといった個々の3Dメッシュに分割する処理を指す。また、当該SLAM処理に、3Dメッシュの最適化処理が含まれていてもよい。3Dメッシュの最適化処理とは、3Dメッシュから、移動体と推定される部分や、ノイズなどによるゴミを除去したり、ポリゴン数を減らしたり、メッシュの表面を滑らかにしたりする処理を指す。また、当該SLAM処理に、テクスチャ生成処理が含まれていてもよい。テクスチャ生成処理とは、メッシュの頂点の色に基づいて3Dメッシュに対するテクスチャイメージを生成する処理を指す。
【0098】
本実施形態では例えば、SLAM処理実行部84によって生成されるパブリックポーズデータに含まれるX座標値データ、Y座標値データ、Z座標値データ、回転行列データのそれぞれには、暫定的な値が設定される。これらの値は、後述するように、環境地図データ更新部86によって、後述する共有ユークリッド座標系で表現された位置や向きを示す値に更新される。
【0099】
例えば、生成されるパブリックポーズデータに含まれるX座標値データ、Y座標値データ、Z座標値データのそれぞれが示す位置は、当該パブリックポーズデータに対応付けられるセンシングデータを生成したトラッカー12に固有の座標系で表現される。例えば、トラッカー12の起動時の左手方向が正方向となるようX座標値データの値は設定される。また、トラッカー12の起動時の鉛直上方向が正方向となるようY座標値データの値は設定される。また、トラッカー12の起動時の正面方向が正方向となるようZ座標値データの値は設定される。
【0100】
また、生成されるパブリックポーズデータに含まれる回転行列データが示す向きも、当該パブリックポーズデータに対応付けられるセンシングデータを生成したトラッカー12に固有の座標系で表現される。例えば、トラッカー12の起動時の正面方向が単位行列となるよう回転行列データの値は設定される。
【0101】
また、SLAM処理実行部84によって生成されるジオポーズデータに含まれる緯度データ、経度データ、標高データ、方位角データのそれぞれには、暫定的な値が設定される。これらの値は、後述するように、環境地図データ更新部86によって、より精度の高い値に更新される。また、当該ジオポーズデータに含まれるコンバージョンフラグの値には0が設定される。
【0102】
例えば、ジオポーズデータに含まれる緯度データの値、経度データの値、標高データの値、方位角データの値には、それぞれ、当該ジオポーズデータに対応付けられるセンシングデータが示す緯度の値、経度の値、標高の値、方位角の値が設定される。センシングデータに基づいて生成されるジオポーズデータの精度は、トラッカー12のセンシングの精度に依存しており、一般的に、環境地図と地図サービス18によって提供される地図データが示す地図との的確な対応付けが可能なほど充分であるとはいえない。
【0103】
また、画像認識技術等を用いることで、トラッカー12によって撮影された画像から所定のランドマークが検出されてもよい。そして、地図サービス18によって提供される地図を参照して、当該ランドマークの緯度及び経度などといった、地理的な位置が特定されてもよい。そして、このようにして特定される地理的な位置を示す値が、生成されるジオポーズデータの暫定的な値として設定されてもよい。
【0104】
そして、SLAM処理実行部84は、トラッカー12により取得されるセンシングデータに基づいて特定される地理的位置に基づいて、複数の環境地図データ記憶部80にそれぞれ記憶されている複数の環境地図データのうちから、当該地理的位置に対応付けられる環境地図データを決定する。
【0105】
例えば、SLAM処理実行部84は、このようにして設定されるジオポーズデータの値が示す地理的位置に基づいて、複数の環境地図データ記憶部80のうちから、関連付けられている地理的範囲に当該地理的位置が含まれる環境地図データ記憶部80を特定する。
【0106】
そして、SLAM処理実行部84は、生成されたキーフレームデータを、特定された環境地図データ記憶部80に含まれるキーフレームデータ記憶部80aに記憶させる。また、SLAM処理実行部84は、生成されたパブリックポーズデータを、特定された環境地図データ記憶部80に含まれるパブリックポーズデータ記憶部80bに記憶させる。また、SLAM処理実行部84は、生成されたジオポーズデータを、特定された環境地図データ記憶部80に含まれるジオポーズデータ記憶部80cに記憶させる。
【0107】
なお、SLAM処理実行部84は、特定された環境地図データ記憶部80に既に記憶されている環境地図データに基づいて、生成されたキーフレームデータの登録要否を判定してもよい。そして、登録が必要であると判定される場合に、SLAM処理実行部84は、生成されたキーフレームデータ、パブリックポーズデータ、及び、ジオポーズデータを、環境地図データ記憶部80に記憶させてもよい。
【0108】
環境地図データ更新部86は、本実施形態では例えば、ジオポーズデータ、及び、パブリックポーズデータの更新処理を実行する。
【0109】
環境地図データ更新部86は、例えば、環境地図データが示す環境地図に含まれる特徴点群と、所与の地図サービス18が提供する所与の地図データが示す地図と、に基づいて、地理的座標系で表現された当該特徴点群に対応する位置及び向きを推定する。
【0110】
ここで例えば、環境地図データ更新部86は、コンバージョンフラグの値が0であるジオポーズデータに対応付けられるキーフレームデータを特定する。そして、環境地図データ更新部86は、特定されるキーフレームデータに含まれる複数の特徴点データのそれぞれが示す特徴点群を重力軸(鉛直上方向の軸)に対して直交する平面に投影した様子を表すオリジナル投影画像を生成する。図10は、このようにして生成されるオリジナル投影画像の一例を示す図である。図10では、特徴点が黒色の点で表現されている。
【0111】
そして、環境地図データ更新部86は、pix2pix等の学習済機械学習モデルを用いた画像処理技術などの所定の画像処理技術を用いて、オリジナル投影画像において線状の道路と推定される部分が識別して示されている加工投影画像を生成する。図11は、加工投影画像の一例を示す図である。
【0112】
そして、環境地図データ更新部86は、本実施形態では例えば、当該キーフレームデータに対応付けられるジオポーズデータの値に基づいて、地図サービス18から所定の大きさの領域の地図を表す地図データを取得する。環境地図データ更新部86は、例えば、ジオポーズデータの緯度データが示す緯度と経度データが示す経度との組合せに対応する地理的位置を中心とする、一辺の長さが100メートルである正方形領域の地図を表す地図データを取得する。
【0113】
そして、環境地図データ更新部86は、本実施形態では例えば、取得される地図データに基づいて、所定のストリート抽出技術を用いて、当該地図データが表す地図における道路の部分が識別して示されている地図画像を生成する。
【0114】
そして、環境地図データ更新部86は、例えば、加工投影画像を圧縮することで、第1解像度の第1投影画像を生成する。そして、環境地図データ更新部86は、地図画像を圧縮することで、第1解像度の第1参照画像を生成する。ここでは例えば、10メートル四方の領域が100×100ピクセルに相当する解像度の第1投影画像、及び、第1参照画像が生成される。
【0115】
そして、環境地図データ更新部86は、第1投影画像と、第1参照画像と、に基づいて、地理的座標系で表現された当該特徴点群に対応する向きを推定する。例えば、第1投影画像と第1参照画像とで向きのマッチングを行うことで、地図データが示す地図におけるオリジナル投影画像の向きが推定される。
【0116】
そして、環境地図データ更新部86は、例えば、加工投影画像を圧縮することで、上述の第1解像度より解像度が高い第2解像度の第2投影画像を生成する。そして、環境地図データ更新部86は、地図画像を圧縮することで、上述の第1解像度より解像度が高い第2解像度の第2参照画像を生成する。ここでは例えば、10メートル四方の領域が10000×10000ピクセルに相当する解像度の第2投影画像、及び、第2参照画像が生成される。
【0117】
そして、環境地図データ更新部86は、第2投影画像と、第2参照画像と、上述のようにして推定された、地理的座標系で表現された当該特徴点群に対応する向きと、に基づいて、地理的座標系で表現された特徴点群に対応する位置を推定する。例えば、上述のようにして推定された向きに応じた回転がされた第2投影画像と第2参照画像とで位置のマッチングを行うことで、地図データが示す地図におけるオリジナル投影画像の位置(東西方向及び南北方向における位置)が推定される。
【0118】
このようにして、地図データが示す地図内におけるオリジナル投影画像に対応付けられる領域、すなわち、地図データが示す地図内におけるオリジナル投影画像の位置及び向きが推定される。図12は、地図データが示す地図内における、図10に示すオリジナル投影画像に対応付けられる領域Rの一例を模式的に示す図である。本実施形態では、このようにして、キーフレームデータに含まれる複数の特徴点データのそれぞれが示す特徴点に対応付けられる地理的座標系で表現された位置及び向きが推定される。
【0119】
そして、環境地図データ更新部86は、推定される位置及び向きを当該特徴点群に対応付ける。例えば、環境地図データ更新部86は、上述のようにして推定される特徴点群に対応付けられる地理的座標系で表現された位置及び向きに基づいて、当該特定点群が示されたキーフレームデータに対応付けられるジオポーズデータの値を更新する。
【0120】
例えば、推定される位置及び向きに基づいて、当該特徴点群を示すキーフレームデータに対応付けられるセンシングデータのセンシング位置の緯度、経度、及び、当該センシングデータのセンシング方向の方位角が推定される。また、当該地図データを参照することで、当該センシング位置の標高が推定される。そして、推定されるセンシング位置の緯度、経度、標高、及び、推定されるセンシング方向の方位角をそれぞれ示すよう、当該キーフレームデータに対応付けられるジオポーズデータの緯度データ、経度データ、標高データ、及び、方位角データが更新される。
【0121】
ここで例えば、特徴点に対応付けられる位置及び向きの推定に失敗することがある。例えば、オリジナル投影画像に基づいて推定される道路に対応する、地図データに示されている道路が見つからない場合は、当該推定は失敗する。また例えば、オリジナル投影画像に基づいて推定される道路に対応する、地図データに示されている道路が複数特定される場合も、当該推定は失敗する。また例えば、向きや位置のマッチングの信頼度が低い場合も、当該推定は失敗する。
【0122】
ここで環境地図データ更新部86は、当該推定に失敗したジオポーズデータについては、当該推定に成功した複数(例えば2つ)のジオポーズデータの値を所定の規則に従って補間した値が設定されるよう更新してもよい。
【0123】
本実施形態では以上のようにして、所与の地図サービス18が提供する所与の地図データに基づいて、ジオポーズデータが更新される。
【0124】
そして、環境地図データ更新部86は、以上のようにして更新されたジオポーズデータに基づいて、当該ジオポーズデータに対応付けられるパブリックポーズデータを更新する。
【0125】
ここでは例えば、コンバージョンフラグの値に1が設定されているジオポーズデータ、及び、当該ジオポーズデータに対応付けられるパブリックポーズデータが参照先として決定される。そして、更新対象であるパブリックポーズデータは、当該パブリックポーズデータに対応付けられるジオポーズデータの値と参照先のジオポーズデータの値との差に基づいて、参照先のパブリックポーズデータと値が整合するよう更新される。
【0126】
本実施形態では、環境地図データ更新部86によるパブリックポーズデータの更新によって、当該パブリックポーズデータに含まれるX座標値データの値は東方向が正方向となるよう設定される。また、当該パブリックポーズデータに含まれるY座標値データの値は鉛直上方向が正方向となるよう設定される。また、当該パブリックポーズデータに含まれるZ座標値データの値は北方向が正方向となるよう設定される。
【0127】
ここで例えば、緯度1度の差が110.94297×1000メートルに相当し、経度1度の差が(1/360)×(cos(緯度×2π/360))×2π×6378137メートルに相当することに基づいて、パブリックポーズデータの値は更新される(下記の式(1)(2)参照)。このように、本実施形態では、緯度によって経度1度あたりの長さが異なることを考慮した変換式に基づく更新が行われる必要がある。
【0128】
なお、環境地図データ記憶部80に最初に記憶されるパブリックポーズデータについては、参照先がない。このようなパブリックポーズデータのX座標値データの値、Y座標値データの値、及び、Z座標値データの値については、所定値(例えば0、あるいは、生成時に設定されていた値)が設定されるようにしてもよい。
【0129】
また、環境地図データ更新部86によるパブリックポーズデータの更新によって、当該パブリックポーズデータに含まれる回転行列データの値は水平北方向が単位行列となるよう更新される。
【0130】
このようにして更新されたパブリックポーズデータは、既に登録されている他のパブリックポーズデータと共通のメートル単位系のユークリッド座標系で位置及び向きが表現されることとなる。
【0131】
本実施形態では、複数のトラッカー12のそれぞれについて、当該トラッカー12から送信されるセンシングデータに基づいて、上述の処理が実行される。その結果、更新されたパブリックポーズデータは、当該パブリックポーズデータが記憶される環境地図データ記憶部80にアクセスする複数のユーザシステム10で共有されるユークリッド座標系で位置及び向きが表現されることとなる。以下、このようにして複数のユーザシステム10で共有されるユークリッド座標系を共有ユークリッド座標系と呼ぶこととする。また、更新されたジオポーズデータは、複数のユーザシステム10で共有される地理的座標系で位置及び向きが表現されることとなる。
【0132】
そして、環境地図データ更新部86は、以上のようにして更新されたパブリックポーズデータに対応付けられるジオポーズデータに含まれるコンバージョンフラグの値を1に更新する。
【0133】
本実施形態では上述のように、SLAM処理実行部84によって自己位置推定処理が実行される。この自己位置推定処理では、例えば、SLAMの技術を用いることで、センシングデータ受信部82が受信するセンシングデータと、環境地図データ記憶部80に記憶されている環境地図データと、に基づいて、トラッカー12の位置及び向きが推定される。ここでは例えば、SLAM処理実行部84は、共有ユークリッド座標系で表現されたトラッカー12の位置及び向きを推定する。
【0134】
ここで、SLAM処理実行部84が、複数の環境地図データ記憶部80にそれぞれ記憶されている複数の環境地図データのうちからトラッカー12により取得されるセンシングデータに基づいて1つの環境地図データを特定してもよい。例えば、トラッカー12により取得されるセンシングデータが示す地理的位置を含む地理的範囲に関連付けられている環境地図データ記憶部80に記憶されている環境地図データが特定されるようにしてもよい。そして、特定される環境地図データと、当該センシングデータと、に基づいて、当該環境地図データにおける共有ユークリッド座標系で表現されたトラッカー12の位置を推定してもよい。
【0135】
また、ジオポーズデータに基づいて、地理的座標系で表現されたトラッカー12の位置及び向きの推定が可能であれば、SLAM処理実行部84は、地理的座標系で表現されたトラッカー12の位置及び向きも併せて推定する。例えば、SLAM処理において参照されるキーフレームデータに対応付けられるジオポーズデータのコンバージョンフラグの値が1である場合は、SLAM処理実行部84は、地理的座標系で表現されたトラッカー12の位置及び向きを推定してもよい。
【0136】
本実施形態に係るキーフレームデータには、共有ユークリッド座標系で位置及び向きが表現されたパブリックポーズデータだけでなく、地理的座標系で位置及び向きが表現されたジオポーズデータも対応付けられている。そのため、共有ユークリッド座標系で表現されたトラッカー12の位置及び向きだけでなく、地理的座標系で表現されたトラッカー12の位置及び向きも的確に推定できることとなる。なおここで、上述したように、緯度1度の差が110.94297×1000メートルに相当し、経度1度の差が(1/360)×(cos(緯度×2π/360))×2π×6378137メートルに相当することに基づいて、地理的座標系で表現されたトラッカー12の位置及び向きが推定されてもよい。
【0137】
そして、本実施形態では例えば、SLAM処理実行部84は、トラッカー12の位置及び向きが推定される度に、当該位置及び向きを示すトラッカー位置データを生成して、保持する。ここで、トラッカー位置データには、共有ユークリッド座標系又は地理的座標系のうちの一方又は両方で表現されたトラッカー12の位置及び向きが示されていてもよい。
【0138】
ターゲット位置データ取得部88は、本実施形態では例えば、地理的座標系で表現された位置を示すターゲット位置データを取得する。以下、ターゲット位置データに示されている、地理的座標系で表現された位置を、ターゲット位置と呼ぶこととする。ここで例えば、ターゲット位置データ取得部88は、対応する現実世界における位置に視覚情報を表示させる対象となるオブジェクトの地理的座標系で表現された位置を示すターゲット位置データを取得してもよい。
【0139】
例えば、ターゲット位置データ取得部88は、所定の条件を満足する、アンカー、地域、施設(店舗等)、などのオブジェクトに対応付けられる地図データが示す地図上における地理的位置を示すターゲット位置データを地図サービス18から取得する。ここで、ターゲット位置データ取得部88は、ターゲット位置に対応付けて地図サービス18に登録されている登録データに関連付けられたターゲット位置データを取得してもよい。登録データの例としては、例えば、ターゲット位置に対するコメントやレーティング、アイコン画像、3Dモデル、キャラクター、リンク(音声データ、動画、あるいは、Webページへのリンク)、QRコード(登録商標)、動作可能なスクリプト、などが挙げられる。
【0140】
また、ターゲット位置データ取得部88は、ターゲット位置に対応するアンカー、地域、施設等などのオブジェクトの名称などといった、ターゲット位置に対応する名称を示す名称データに関連付けられたターゲット位置データを取得してもよい。なお、名称データは、ターゲット位置に対応付けて地図サービス18に登録されているデータ、すなわち、上述の登録データであってもよい。
【0141】
また、ターゲット位置データ取得部88は、トラッカー12とは異なる端末14に表示された地図におけるターゲット位置を指定するユーザの操作に応じて、指定されるターゲット位置を示すターゲット位置データを取得してもよい。例えば、ターゲット位置データ取得部88は、図4に示すようにして端末14に表示された地図におけるユーザによって指定された地理的位置P1を示すターゲット位置データを端末14から受信してもよい。なお、このターゲット位置データに、上述の登録データや名称データが関連付けられていてもよい。
【0142】
座標変換部90は、本実施形態では例えば、ターゲット位置データ取得部88が取得するターゲット位置データと、環境地図データ記憶部80に記憶されている環境地図データと、に基づいて、ユークリッド座標系で表現されたターゲット位置を特定する。
【0143】
ここで、座標変換部90は、ターゲット位置データと、ユークリッド座標系で表現されたトラッカー12の位置と、地理的座標系で表現されたトラッカー12の位置と、に基づいて、ユークリッド座標系で表現されたターゲット位置を特定してもよい。
【0144】
また、座標変換部90は、複数の環境地図データ記憶部80にそれぞれ記憶されている複数の環境地図データのうちからターゲット位置データに基づいて1つの環境地図データを特定してもよい。例えば、ターゲット位置データが示す地理的位置を含む地理的範囲に関連付けられている環境地図データ記憶部80に記憶されている環境地図データが特定されるようにしてもよい。そして、特定される環境地図データと、当該センシングデータと、に基づいて、当該環境地図データにおけるユークリッド座標系で表現されたターゲット位置を特定してもよい。
【0145】
例えば、SLAM処理実行部84によって、共有ユークリッド座標系で表現されたトラッカー12の最新の位置及び向き、並びに、地理的座標系で表現されたトラッカー12の最新の位置及び向き、が推定されていることとする。
【0146】
この場合、例えば、座標変換部90は、まず、地理的座標系で表現されたトラッカー12の位置を標準ユークリッド座標系に変換した位置PG、及び、地理的座標系で表現されたトラッカー12の向き(回転行列)を標準ユークリッド座標系に変換した向きに対応するクォータニオンRGを以下の式(1)~(4)に従って算出する。ここで、標準ユークリッド座標系とは、緯度0度、経度0度、標高0に対応する位置が原点となるユークリッド座標系を指すこととする。
【0147】
(1)(PGのX座標値)=-((推定されたトラッカー12の経度)/360)×(cos(推定されたトラッカー12の緯度×2π/360))×2π×6378137[m]
【0148】
このように、PGのX座標値は、緯度によって経度1度あたりの長さが異なることが考慮された上で算出される。なお、6378137[m]は、地球の赤道半径の値である。
【0149】
(2)(PGのY座標値)=(推定されたトラッカー12の標高)[m]
【0150】
(3)(PGのZ座標値)=(推定されたトラッカー12の緯度)×110.94297×1000[m]
【0151】
なお、110.94297×1000[m]は、緯度1度当たりの長さを示す値である。
【0152】
(4)RG=Quaternion(0,(推定されたトラッカー12の方位角)×2π,0)
【0153】
式(4)によって、ヨー成分のみが指定された回転情報(クォータニオン)が生成される。
【0154】
そして、座標変換部90は、地理的座標系で表現されたターゲット位置を標準ユークリッド座標系に変換した位置GP1を以下の式(5)~(7)に従って算出する。
【0155】
(5)(GP1のX座標値)=-((ターゲット位置の経度)/360)×(cos(ターゲット位置の緯度×2π/360))×2π×6378137[m]
【0156】
(6)(GP1のY座標値)=(ターゲット位置の標高)[m]
【0157】
(7)(GP1のZ座標値)=(ターゲット位置の緯度)×110.94297×1000[m]
【0158】
そして、座標変換部90は、地理的座標系で表現されたターゲット位置を共有ユークリッド座標系で表現した位置PP1を以下の式(8)~(11)に従って算出する。以下の説明では、共有ユークリッド座標系で表現されたトラッカー12の位置をPPと表し、共有ユークリッド座標系で表現されたトラッカー12の向きに対応するクォータニオンをRPと表現することとする。
【0159】
(8)RPy=RP.getYaw()
【0160】
(8)に示す式によって、クォータニオンRPのヨー成分が抽出される。
【0161】
(9)ΔRgp=(RG^-1)×RPy
【0162】
ここで、(RG^-1)は、クォータニオンRGの逆クォータニオンを表している。
【0163】
(10)ΔPgp=(ΔRgp^-1)×PP-PG
【0164】
ここで、(ΔRgp^-1)は、クォータニオンΔRgpの逆クォータニオンを表している。
【0165】
(11)PP1=ΔRgp×(GP1+ΔPgp)
【0166】
以上のようにして、本実施形態によれば、地理的座標系で表現されたターゲット位置が共有ユークリッド座標系における位置に的確にマッピングされることとなる。
【0167】
サーバ表示制御部92は、本実施形態では例えば、ユークリッド座標系で表現されたターゲット位置に配置された視覚情報をユークリッド座標系で表現されたトラッカー12の位置から見た様子を表す画像が、トラッカー12の表示部36に表示されるよう制御する。
【0168】
ここで、サーバ表示制御部92が、上述の登録データに応じた視覚情報をユークリッド座標系で表現されたトラッカー12の位置から見た様子を表す画像が表示部36に表示されるよう制御してもよい。また、例えば、サーバ表示制御部92が、上述の名称データが示す名称が表された視覚情報をユークリッド座標系で表現されたトラッカー12の位置から見た様子を表す画像が表示部36に表示されるよう制御してもよい。
【0169】
例えば、サーバ表示制御部92が、ターゲット位置データに関連付けられている、ターゲット位置に対するコメントやレーティングを表す文字列や画像が表示されるよう制御してもよい。また、サーバ表示制御部92が、ターゲット位置データに関連付けられている、アイコン画像、3Dモデル、キャラクターが表示されるよう制御してもよい。
【0170】
また、サーバ表示制御部92が、ターゲット位置データに関連付けられているリンク(音声データ、動画、あるいは、Webページへのリンク)が表示されるよう制御してもよい。この場合、ユーザによる当該リンクの選択操作に応じて、音声データや動画の再生、Webページの表示などが実行されるようにしてもよい。
【0171】
また、サーバ表示制御部92が、ターゲット位置データに関連付けられているQRコードが表示されるよう制御してもよい。この場合、ユーザによる当該リンクの選択操作に応じて、当該QRコードの読み取り結果に応じた処理が実行されてもよい。
【0172】
また、サーバ表示制御部92が、ターゲット位置データに関連付けられているスクリプトに対応するアイコン画像が表示されるよう制御してもよい。この場合、ユーザによる当該アイコン画像の選択操作に応じて、当該スクリプトが実行されるようにしてもよい。
【0173】
例えば、サーバ表示制御部92が、SLAM処理実行部84によるトラッカー位置データの生成に応じて、生成されたトラッカー位置データをトラッカー12に送信してもよい。
【0174】
また、サーバ表示制御部92は、座標変換部90によって共有ユークリッド座標系で表現されたターゲット位置の特定が行われる度に、共有ユークリッド座標系で表現されたターゲット位置を示す変換ターゲット位置データを生成してもよい。
【0175】
そして、サーバ表示制御部92は、例えば、変換ターゲット位置データの生成に応じて、生成された変換ターゲット位置データをトラッカー12に送信してもよい。ここで例えば、トラッカー12の最新の位置及び向きに基づいて特定される、共有ユークリッド座標系で表現されたターゲット位置を示す変換ターゲット位置データが、当該トラッカー12に送信されるようにしてもよい。
【0176】
ここで、サーバ表示制御部92は、当該ターゲット位置を示すターゲット位置データに関連付けられた名称データを、生成される変換ターゲット位置データに関連付けてもよい。そして、サーバ表示制御部92は、名称データに関連付けられた変換ターゲット位置データに送信してもよい。
【0177】
位置データ受信部74は、本実施形態では例えば、サーバ表示制御部92から送信されるトラッカー位置データを受信する。また、位置データ受信部74は、本実施形態では例えば、サーバ表示制御部92から送信される変換ターゲット位置データを受信する。
【0178】
画像生成部76は、本実施形態では例えば、ユークリッド座標系で表現されたターゲット位置に配置された視覚情報をユークリッド座標系で表現されたトラッカー12の位置から見た様子を表す画像を生成する。以下、このようにして画像生成部76により生成される画像をターゲット画像と呼ぶこととする。
【0179】
トラッカー表示制御部78は、本実施形態では例えば、画像生成部76が生成するターゲット画像を表示部36に表示させる。
【0180】
ここで例えば、画像生成部76は、図13に示すような仮想空間Sを生成してもよい。図13に示す仮想空間Sには、位置データ受信部74が受信した最新のトラッカー位置データが示すトラッカー12の位置Q1と向きQ2、及び、位置データ受信部74が受信した変換ターゲット位置データに対応する位置Q3が共有ユークリッド座標系にマッピングされている。ここで、位置Q3は、変換ターゲット位置データが示す位置であってもよいし、変換ターゲット位置データが示す位置を所定の長さだけ高さ方向(Y軸に沿った正方向)にずらした位置であってもよい。
【0181】
そして、画像生成部76は、変換ターゲット位置データに関連付けられた名称データが示す名称の文字列を表す名称画像60が位置Q3に配置された仮想空間Sにおいて位置Q1から向きQ2を見た様子を表す画像を生成してもよい。
【0182】
ここで例えば、画像生成部76は、変換ターゲット位置データに関連付けられた名称データが表す名称の文字列を表す名称画像60が位置Q3に配置された仮想空間Sにおいて位置Q1から向きQ2を見た様子を表す、図14に示すような画像を生成してもよい。
【0183】
ここでトラッカー12がビデオシースルー型のヘッドマウントディスプレイである場合は、画像生成部76が、トラッカー12が備えるカメラがユーザの前方を撮影した画像と、図14に示す画像と、を重畳した画像であるターゲット画像を生成してもよい。そして、トラッカー表示制御部78が、このようにして生成されたターゲット画像を表示部36に表示させてもよい。
【0184】
一方、トラッカー12が光学シースルー型のヘッドマウントディスプレイである場合は、トラッカー表示制御部78が、図14に示す画像をターゲット画像として表示部36に表示させてもよい。
【0185】
また例えば、画像生成部76は、位置Q3の高さを変えながら数フレームにわたって、目印62が位置Q3に配置された仮想空間Sにおいて位置Q1から向きQ2を見た様子を表す、図15に示すような画像を生成してもよい。
【0186】
ここで上述のように、トラッカー12がビデオシースルー型のヘッドマウントディスプレイである場合は、画像生成部76が、トラッカー12が備えるカメラがユーザの前方を撮影した画像と、図15に示す画像と、を重畳した画像であるターゲット画像を生成してもよい。そして、トラッカー表示制御部78が、このようにして生成されたターゲット画像を表示部36に表示させてもよい。
【0187】
一方、トラッカー12が光学シースルー型のヘッドマウントディスプレイである場合は、トラッカー表示制御部78が、図15に示す画像をターゲット画像として表示部36に表示させてもよい。
【0188】
この場合は、例えば、りんごが落下する様子を表すアニメーションが表示部36に表示されることとなる。
【0189】
ここで、本実施形態に係るサーバ16で行われる、センシングデータの受信に応じたトラッカー位置データの送信処理の流れの一例を、図16に例示するフロー図を参照しながら説明する。
【0190】
まず、センシングデータ受信部82が、トラッカー12からセンシングデータを受信する(S101)。
【0191】
そして、SLAM処理実行部84が、S101に示す処理で受信したセンシングデータに基づいて、複数の環境地図データ記憶部80のうちから、当該センシングデータが示す地理的位置に対応する1つを決定する(S102)。
【0192】
そして、SLAM処理実行部84が、S102に示す処理で決定された環境地図データ記憶部80に記憶されている環境地図データと、S101に示す処理で受信したセンシングデータと、に基づくSLAM処理を実行する(S103)。S103に示す処理では、例えば、S101に示す処理で受信したセンシングデータに対応するセンシングが行われた際のトラッカー12の位置及び向きを推定する自己位置推定処理が実行される。
【0193】
ここでは、例えば、S102に示す処理で決定された環境地図データ記憶部80に記憶されているパブリックポーズデータでの位置及び向きの表現に用いられている共有ユークリッド座標系で表現されたトラッカー12の位置及び向きが推定される。なおこのとき、例えば、環境地図データ記憶部80に記憶されているジオポーズデータに基づいて、地理的座標系で表現されたトラッカー12の位置及び向きが推定可能であれば、地理的座標系で表現されたトラッカー12の位置及び向きが併せて推定される。
【0194】
なお、S103に示す処理では、必要に応じて、S101に示す処理で受信したセンシングデータに基づいて、新たなキーフレームIDが付与された、キーフレームデータ、パブリックポーズデータ、及び、コンバージョンフラグに値0が設定されたジオポーズデータが生成される。この場合、生成されたキーフレームデータは、S102に示す処理で決定された環境地図データ記憶部80に含まれるキーフレームデータ記憶部80aに記憶される。また、生成されたパブリックポーズデータは、S102に示す処理で決定された環境地図データ記憶部80に含まれるパブリックポーズデータ記憶部80bに記憶される。また、生成されたジオポーズデータは、S102に示す処理で決定された環境地図データ記憶部80に含まれるジオポーズデータ記憶部80cに記憶される。
【0195】
そして、SLAM処理実行部84が、S103に示す処理で推定されたトラッカー12の位置及び向きに基づいて、当該トラッカー12の位置及び向きを示すトラッカー位置データを生成する(S104)。このトラッカー位置データは、SLAM処理実行部84によって保持される。
【0196】
そして、サーバ表示制御部92が、S104に示す処理で生成されたトラッカー位置データを、S101に示す処理で受信したセンシングデータの送信元であるトラッカー12に送信して(S105)、本処理例に示す処理は終了される。
【0197】
次に、本実施形態に係るサーバ16で行われる、ジオポーズデータの更新処理の流れの一例を、図17A及び図17Bに例示するフロー図を参照しながら説明する。
【0198】
以下で説明する処理は、バックグラウンドで繰り返し実行されるようにしてもよい。また、以下で説明する処理は、例えば、ジオポーズデータ記憶部80cに新たなジオポーズデータが記憶されたことに応じて、当該ジオポーズデータに対して実行されるようにしてもよい。
【0199】
まず、環境地図データ更新部86が、環境地図データ記憶部80のジオポーズデータ記憶部80cに記憶されているジオポーズデータを取得する(S201)。ここで上述のように、ジオポーズデータ記憶部80cに新たに記憶されたジオポーズデータが取得されるようにしてもよい。
【0200】
そして、環境地図データ更新部86が、S201に示す処理で取得されたジオポーズデータのコンバージョンフラグの値が0であるか否かを確認する(S202)。
【0201】
コンバージョンフラグの値が1である場合は(S202:N)、本処理例に示す処理は終了される。
【0202】
コンバージョンフラグの値が0である場合は(S201:Y)、環境地図データ更新部86が、S201に示す処理で取得されたジオポーズデータとキーフレームIDが同じであるキーフレームデータを取得する(S203)。
【0203】
そして、環境地図データ更新部86が、S203に示す処理で取得されたキーフレームデータに含まれる複数の特徴点データが示す特徴点群に基づいて、上述のオリジナル投影画像を生成する(S204)。
【0204】
そして、環境地図データ更新部86が、S204に示す処理で生成されたオリジナル投影画像に基づいて、上述の加工投影画像を生成する(S205)。
【0205】
そして、環境地図データ更新部86が、S201に示す処理で取得されたジオポーズデータが示す地理的位置に基づいて、地図サービス18から一辺の長さが10メートルである正方形領域の地図を表す地図データを取得する(S206)。
【0206】
そして、環境地図データ更新部86が、S206に示す処理で取得された地図データに基づいて、上述の地図画像を生成する(S207)。
【0207】
そして、環境地図データ更新部86が、S205に示す処理で生成された加工投影画像を圧縮することで、上述の第1解像度の第1投影画像を生成する(S208)。
【0208】
そして、環境地図データ更新部86が、S207に示す処理で生成された地図画像を圧縮することで、上述の第1解像度の第1参照画像を生成する(S209)。
【0209】
そして、環境地図データ更新部86は、S203に示す処理で取得されたキーフレームデータに含まれる複数の特徴点データが示す特徴点群に対応する、地理的座標系で表現された向き(回転)を推定する(S210)。S210に示す処理では、例えば、第1投影画像と、第1参照画像と、のマッチングを行うことで、当該特徴点群に対応する、地理的座標系で表現された向き(回転)が推定される。
【0210】
そして、環境地図データ更新部86は、S205に示す処理で生成された加工投影画像を圧縮することで、上述の第2解像度の第2投影画像を生成する(S211)。
【0211】
そして、環境地図データ更新部86は、S207に示す処理で生成された地図画像を圧縮することで、上述の第2解像度の第2参照画像を生成する(S212)。
【0212】
そして、環境地図データ更新部86は、S203に示す処理で取得されたキーフレームデータに含まれる複数の特徴点データが示す特徴点群に対応する、地理的座標系で表現された位置を推定する(S213)。S213に示す処理では例えば、S210で推定された向き(回転)に対応する向きに回転された第2投影画像と、第2参照画像と、のマッチングを行うことで、当該特徴点群に対応する、地理的座標系で表現された位置が推定される。
【0213】
そして、環境地図データ更新部86は、例えば、S210に示す処理で推定された位置、及び、S213に示す処理で推定された向き(回転)を示すよう、S201に示す処理で取得されたジオポーズデータの値を更新する(S214)。S214に示す処理では、S201に示す処理で取得されたジオポーズデータのコンバージョンフラグの値についても1に更新される。そして、本処理例に示す処理は終了される。
【0214】
次に、本実施形態に係るユーザシステム10、及び、サーバ16で行われる、ターゲット画像の表示処理の流れの一例を、図18に例示するフロー図を参照しながら説明する。
【0215】
まず、ユーザが端末14に表示された地図における地理的位置P1であるターゲット位置を指定するタップ操作を行うと、端末14が、当該ターゲット位置を示すターゲット位置データを生成する(S301)。当該ターゲット位置データでは、ターゲット位置は、緯度、経度、標高などといった地理的座標系で表現されている。なお、このターゲット位置には、名称データが関連付けられていてもよい。
【0216】
そして、端末14が、ターゲット位置データをサーバ16に送信し、サーバ16のターゲット位置データ取得部88が、当該ターゲット位置データを受信する(S302)。
【0217】
そして、座標変換部90が、S302に示す処理で受信したターゲット位置データに基づいて、複数の環境地図データ記憶部80のうちから、当該ターゲット位置データが示す地理的位置に対応する1つを決定する(S303)。ここでは例えば、S302に示すターゲット位置データが示す地理的座標系で表現された地理的位置P1を含む地理的範囲に対応付けられている環境地図データ記憶部80が決定される。
【0218】
そして、座標変換部90が、S302に示す処理で受信したターゲット位置データが示す地理的座標系で表現されたターゲット位置に相当する、共有ユークリッド座標系で表現されたターゲット位置を特定する(S304)。
【0219】
そして、サーバ表示制御部92が、S304に示す処理で特定された、共有ユークリッド座標系で表現されたターゲット位置を示す変換ターゲット位置データを生成する(S305)。
【0220】
そして、サーバ表示制御部92が、S305に示す処理で生成された変換ターゲットデータをトラッカー12に送信し、トラッカー12の位置データ受信部74が、当該変換ターゲットデータを受信する(S306)。
【0221】
そして、画像生成部76が、S306に示す処理で受信した変換ターゲットデータ、及び、最新のトラッカー位置データ(トラッカー12が最後に受信したトラッカー位置データ)に基づいて、ターゲット画像を生成する(S307)。
【0222】
そして、トラッカー表示制御部78が、S307に示す処理で生成されたターゲット画像を表示部36に表示させて(S308)、本処理例に示す処理は終了される。
【0223】
本実施形態において、ユーザシステム10に含まれる端末14に表示された地図における地理的位置P1を指定するタップ操作に応じて、当該ユーザシステム10に含まれるトラッカー12の表示部36にターゲット画像が表示されてもよい。
【0224】
この場合、例えば、ユーザシステム10に含まれる端末14に表示された地図における地理的位置P1を指定するタップ操作に応じて、当該ユーザシステム10に含まれるトラッカー12について推定された最新の位置及び向きと、当該地理的位置P1であるターゲット位置を示すターゲット位置データと、に基づいて、共有ユークリッド座標系で表現されたターゲット位置が特定されてもよい。そして、特定されたターゲット位置を示す変換ターゲット位置データが生成されてもよい。そして、当該変換ターゲット位置データが、当該ユーザシステム10に含まれるトラッカー12に送信されてもよい。そして、当該トラッカー12について推定された最新の位置及び向きを示すトラッカー位置データと、当該変換ターゲット位置データと、に基づいて、ターゲット画像が生成されてもよい。そして、生成されたターゲット画像が当該トラッカー12の表示部36に表示されてもよい。
【0225】
また、本実施形態において、サーバ表示制御部92が、実空間における所与の範囲に存在する複数のトラッカー12のそれぞれが備える表示部36に、当該トラッカー12に応じたターゲット画像が表示されるよう制御してもよい。例えば、サーバ表示制御部92が、端末14に表示された地図における地理的位置P1を指定するタップ操作に応じて、複数のトラッカー12の表示部36にターゲット画像が表示されるよう制御してもよい。この場合、複数のトラッカー12に対して変換ターゲット位置データが送信されるようにしてもよい。
【0226】
例えば、複数のトラッカー12のそれぞれについて、当該トラッカー12の最新の位置及び向きと、地理的位置P1であるターゲット位置を示すターゲット位置データと、に基づいて、共有ユークリッド座標系で表現されたターゲット位置が特定されてもよい。そして、複数のトラッカー12のそれぞれについて、当該トラッカー12の最新の位置及び向きに基づいて特定されたターゲット位置を示す変換ターゲット位置データが、当該トラッカー12に送信されてもよい。
【0227】
ここで例えば、サーバ表示制御部92が、ターゲット位置までの距離が所定距離以下であるトラッカー12の表示部36にターゲット画像が表示されるよう制御してもよい。あるいは、サーバ表示制御部92が、ターゲット位置に基づいて決定される環境地図データ記憶部80で用いられている共有ユークリッド座標系に最新の位置がマッピングされているトラッカー12の表示部36にターゲット画像が表示されるよう制御してもよい。
【0228】
以上で説明したように、本実施形態では、地理的座標系で表現されたターゲット位置を示すターゲット位置データと環境地図データとに基づいて、ユークリッド座標系で表現されたターゲット位置が特定される。このようにして、トラッカー12の位置とターゲット位置の両方が共有のユークリッド座標系に的確にマッピングされる。このようにして本実施形態によれば、所与の地理的位置を環境地図に的確にマッピングさせることができることとなる。
【0229】
また、本実施形態ではユークリッド座標系で表現されたターゲット位置に配置された視覚情報をユークリッド座標系で表現されたトラッカー12の位置から見た様子を表す画像が表示される。このようにして本実施形態によれば、所与の地理的位置に対応する現実世界における位置に的確に視覚情報を表示させることができることとなる。
【0230】
本実施形態は、例えば、自動運転、ファクトリーオートメーション(FA)、ドローンの自動操縦、機器の遠隔操作や遠隔指示、などといった様々な分野での応用が期待される
【0231】
なお、本発明は上述の実施形態に限定されるものではない。
【0232】
例えば、トラッカー12、端末14、サーバ16の役割分担は、以上で説明したものに限定されない。例えば、サーバ16がターゲット画像を生成してもよい。
【0233】
また、ジオポーズデータに、当該ジオポーズデータに対応付けられるセンシングデータが生成される際におけるトラッカー12の仰俯角を示す仰俯角データが含まれていてもよい。
【0234】
なお、本実施形態において、ユーザの自宅などといったプライベートな空間についてのセンシングデータについては、サーバ16にアップロードされないようにしてもよい。
また、プライベートな空間についてのキーフレームデータ、パブリックポーズデータ、ジオポーズデータについては、他のユーザがアクセスできないようにしてもよい。
【0235】
また、上記の具体的な文字列や数値及び図面中の具体的な文字列や数値は例示であり、これらの文字列や数値には限定されない。
図1
図2A
図2B
図2C
図3
図4
図5
図6A
図6B
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17A
図17B
図18