(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-19
(45)【発行日】2024-08-27
(54)【発明の名称】情報処理装置、情報処理方法及びプログラム
(51)【国際特許分類】
G05D 1/43 20240101AFI20240820BHJP
G05D 1/246 20240101ALI20240820BHJP
【FI】
G05D1/43
G05D1/246
(21)【出願番号】P 2020126498
(22)【出願日】2020-07-27
【審査請求日】2023-05-16
(73)【特許権者】
【識別番号】500578216
【氏名又は名称】株式会社ゼンリンデータコム
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】小関 光昭
(72)【発明者】
【氏名】奥 正喜
【審査官】田中 友章
(56)【参考文献】
【文献】特開2018-124787(JP,A)
【文献】特開2020-094959(JP,A)
【文献】米国特許出願公開第2019/0278293(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/43
G05D 1/246
(57)【特許請求の範囲】
【請求項1】
2次元平面を複数に区切ることで定められる区画を識別する区画識別子と各区画の範囲とを対応づける第1情報と、区画識別子と環境地図とを対応づける第2情報であって、該環境地図はキーフレーム上の点群に関する情報とキーフレームに対応づけられる3次元空間内の点の座標とキーフレームにおけるセンサー姿勢とを含む、第2情報とを記憶する記憶部と、
他の情報処理装置から、3次元空間をセンシングした位置を受信する受信部と、
前記第1情報と前記第2情報とに基づいて、前記3次元空間をセンシングした位置を含む区画に対応づけられる環境地図を前記記憶部から抽出して前記他の情報処理装置に送信する送信部と、
を有する情報処理装置。
【請求項2】
各キーフレームに関する情報を含む環境地図であって、前記各キーフレームに関する情報には、各キーフレーム上の点群に関する情報と、各キーフレームに対応づけられる3次元空間内の点の座標と、各キーフレームにおけるセンサー姿勢と、各キーフレームのセンシング位置を示す情報とが含まれている、環境地図を取得する取得部と、
前記各キーフレームのセンシング位置を示す情報に基づいて、前記取得部で取得した環境地図をいずれかの区画に対応づけて前記記憶部に格納する格納部と、
を有する、
請求項1に記載の情報処理装置。
【請求項3】
前記取得部は、複数の環境地図を取得し、
前記格納部は、
前記複数の環境地図の各々に含まれる各キーフレームに関する情報のうち、重複するキーフレームに関する情報を統合することで、前記複数の環境地図を統合し、
統合された前記複数の環境地図について、前記各キーフレームのセンシング位置を示す情報に基づいて、統合された前記複数の環境地図をいずれかの区画に対応づけて前記記憶部に格納する、
請求項2に記載の情報処理装置。
【請求項4】
前記記憶部に記憶される、いずれかの区画に対応づけられる環境地図について、該環境地図に含まれる前記キーフレームに対応づけられる3次元空間内の点の座標は、該いずれかの区画内に存在する場合と、該いずれかの区画内に存在しない場合との両方を含む、
請求項1~3のいずれか一項に記載の情報処理装置。
【請求項5】
情報処理装置が行う情報処理方法であって、
2次元平面を複数に区切ることで定められる区画を識別する区画識別子と各区画の範囲とを対応づける第1情報と、区画識別子と環境地図とを対応づける第2情報であって、前記環境地図はキーフレーム上の点群に関する情報とキーフレームに対応づけられる3次元空間内の点の座標とキーフレームにおけるセンサー姿勢とを含む、第2情報とを記憶部に記憶するステップと、
他の情報処理装置から、3次元空間をセンシングした位置を受信するステップと、
前記第1情報と前記第2情報とに基づいて、前記3次元空間をセンシングした位置を含む区画に対応づけられる環境地図を前記記憶部から抽出して前記他の情報処理装置に送信するステップと、
を含む情報処理方法。
【請求項6】
コンピュータに、
2次元平面を複数に区切ることで定められる区画を識別する区画識別子と各区画の範囲とを対応づける第1情報と、区画識別子と環境地図とを対応づける第2情報であって、前記環境地図はキーフレーム上の点群に関する情報とキーフレームに対応づけられる3次元空間内の点の座標とキーフレームにおけるセンサー姿勢とを含む、第2情報とを記憶部に記憶するステップと、
他の情報処理装置から、3次元空間をセンシングした位置を受信するステップと、
前記第1情報と前記第2情報とに基づいて、前記3次元空間をセンシングした位置を含む区画に対応づけられる環境地図を前記記憶部から抽出して前記他の情報処理装置に送信するステップと、
を実行させるためのプログラム。
【請求項7】
2次元平面を複数に区切ることで定められる区画を識別する区画識別子と各区画の範囲とを対応づける第1情報と、区画識別子と環境地図とを対応づける第2情報であって、前記環境地図はキーフレーム上の点群に関する情報とキーフレームに対応づけられる3次元空間内の点の座標とキーフレームにおけるセンサー姿勢とを含む、第2情報とを記憶するサーバと通信する情報処理装置であって、
3次元空間をセンシングするセンサー部と、
前記3次元空間をセンシングした位置を検出する検出部と、
前記3次元空間をセンシングした位置を含む区画に対応する環境地図を前記サーバから取得する取得部と、
推定部であって、前記環境地図を参照することで、
前記3次元空間をセンシングすることで得られるセンシング結果における点群に関する情報と、各キーフレーム上の点群に関する情報とを比較することで、前記センシング結果に対応するキーフレームを選択するか、又は、前記環境地図に含まれる各キーフレームがセンシングされた位置に基づいて特定される前記3次元空間をセンシングした位置に最も近いキーフレームを選択し、
前記選択したキーフレームに対応づけられる3次元空間内の点を該キーフレーム上に投影した点と、該投影した点に対応する前記センシング結果における点と該キーフレームにおけるセンサー姿勢とに基づいて、前記センシング結果がセンシングされた方向を推定する推定部と、
を有する情報処理装置。
【請求項8】
2次元平面を複数に区切ることで定められる区画を識別する区画識別子と各区画の範囲とを対応づける第1情報と、区画識別子と環境地図とを対応づける第2情報であって、前記環境地図はキーフレーム上の点群に関する情報とキーフレームに対応づけられる3次元空間内の点の座標とキーフレームにおけるセンサー姿勢とを含む、第2情報とを記憶するサーバと通信する情報処理装置が行う情報処理方法であって、
3次元空間をセンシングするステップと、
前記3次元空間をセンシングした位置を検出するステップと、
前記3次元空間をセンシングした位置を含む区画に対応する環境地図を前記サーバから取得するステップと、
推定するステップであって、前記環境地図を参照することで、
前記3次元空間をセンシングすることで得られるセンシング結果における点群に関する情報と、各キーフレーム上の点群に関する情報とを比較することで、前記センシング結果に対応するキーフレームを選択するか、又は、前記環境地図に含まれる各キーフレームがセンシングされた位置に基づいて特定される前記3次元空間をセンシングした位置に最も近いキーフレームを選択し、
前記選択したキーフレームに対応づけられる3次元空間内の点を該キーフレーム上に投影した点と、該投影した点に対応する前記センシング結果における点と該キーフレームにおけるセンサー姿勢とに基づいて、前記センシング結果がセンシングされた方向を推定するステップと、
を含む情報処理方法。
【請求項9】
2次元平面を複数に区切ることで定められる区画を識別する区画識別子と各区画の範囲とを対応づける第1情報と、区画識別子と環境地図とを対応づける第2情報であって、前記環境地図はキーフレーム上の点群に関する情報とキーフレームに対応づけられる3次元空間内の点の座標とキーフレームにおけるセンサー姿勢とを含む、第2情報とを記憶するサーバと通信する情報処理装置であって、
3次元空間をセンシングするセンサー部と、
前記3次元空間をセンシングした位置を検出する検出部と、
前記3次元空間をセンシングした位置を含む区画に対応する環境地図を前記サーバから取得する取得部と、
推定部であって、前記環境地図を参照することで、
前記3次元空間をセンシングすることで得られるセンシング結果における点群に関する情報と、各キーフレーム上の点群に関する情報とを比較することで、前記センシング結果に対応するキーフレームを選択するか、又は、前記環境地図に含まれる各キーフレームがセンシングされた位置に基づいて特定される前記3次元空間をセンシングした位置に最も近いキーフレームを選択し、
前記選択したキーフレームに対応づけられる3次元空間内の点を該キーフレーム上に投影した点と、該投影した点に対応する前記センシング結果における点と該キーフレームにおけるセンサー姿勢とに基づいて、前記センシング結果がセンシングされた方向を推定する推定部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、プログラム及びデータ構造に関する。
【背景技術】
【0002】
SLAM(Simultaneous Localization and Mapping)と呼ばれる、画像やセンサー情報等から自己位置の推定と環境地図の作成を同時に行う技術が知られている。例えば特許文献1には、SLAMによる自己位置推定と環境地図(三次元点群データ)に、慣性計測装置(IMU : Inertial Measurement Unit)を用いて実寸法を付与する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
VISUAL、DIRECT、LIDAR、GRAPHなど様々なSLAMにより得られた環境地図には、点群等のデータが大量に含まれている。また、環境地図が広範囲に渡ると、環境地図のデータ量も更に膨大になることから、環境地図を利用して処理を行う装置の処理負荷も増加し、環境地図に含まれる位置情報精度も低下することになる。
【0005】
そこで、本発明は、環境地図を利用して処理を行う装置の位置情報処理負荷の軽減を可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様に係る情報処理装置は、2次元平面を複数に区切ることで定められる区画を識別する区画識別子と各区画の範囲とを対応づける第1情報と、区画識別子と環境地図とを対応づける第2情報であって、前記環境地図はキーフレームにおける特徴量とキーフレームに対応づけられる3次元空間内の点の座標とキーフレームにおけるセンサー姿勢とを含む、第2情報とを記憶する記憶部と、情報処理装置から、3次元空間をセンシングした位置を受信する受信部と、前記第1情報と前記第2情報とに基づいて、前記3次元空間をセンシングした位置を含む区画に対応づけられる環境地図を前記記憶部から抽出して前記情報処理装置に送信する。
【発明の効果】
【0007】
本発明によれば、環境地図を利用して処理を行う装置の位置情報処理負荷の軽減を可能とする技術を提供することができる。
【図面の簡単な説明】
【0008】
【
図1】本実施形態に係る情報処理システムの一例を示す図である。
【
図2】地図生成装置及び方向特定装置のハードウェア構成例を示す図である。
【
図3】地図サーバのハードウェア構成例を示す図である。
【
図4】地図生成装置の機能ブロック構成例を示す図である。
【
図5】地図サーバの機能ブロック構成例を示す図である。
【
図6】方向特定装置の機能ブロック構成例を示す図である。
【
図7】地図生成装置で生成された環境地図をメッシュに対応づけて格納する際の処理手順の一例を示す図である。
【
図8】環境地図を作成する範囲の一例を示す図である。
【
図9】3次元特徴点及びキーフレームの一例を示す図である。
【
図10】メッシュ環境地
図DBのデータ構造の一例を示す図である。
【
図11】メッシュ環境地
図DBのデータ構造の他の例を示す図である。
【
図12】方向特定装置がセンシング方向を推定する際の処理手順の一例を示す図である。
【発明を実施するための形態】
【0009】
添付図面を参照して、本発明の実施形態について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。
【0010】
<システム構成>
図1は、本実施形態に係る情報処理システムの一例を示す図である。情報処理システムは、地図生成装置10と、地図サーバ20と、方向特定装置30とを含む。地図生成装置10と、地図サーバ20と、方向特定装置30とは、無線又は有線の通信ネットワークNを介して接続され、相互に通信を行うことができる。地図生成装置10及び方向特定装置30は複数存在していてもよい。
【0011】
地図生成装置10(環境地図生成装置)は、車両に搭載されており、カメラやLIDAR(Light Detection and Ranging)で地図生成装置10の周囲をセンシングしながら、自己位置推定と環境地図の作成を行う。また、地図生成装置10は、作成した環境地図を地図サーバ20に送信する。なお、本実施形態では、地図生成装置10は、特徴点を用いて環境地図を生成するSLAM技術を利用することで、自己位置推定と環境地図の作成を行う例を示している。特徴点を用いて環境地図を生成するSLAM技術には、例えば、PTAM(Parallel Tracking and Mapping)、ORB(Oriented FAST and Rotated BRIEF)-SLAM、ORB-SLAM2等の技術が存在する。環境地図は、地図生成装置10が所定範囲の3次元空間をセンシングすることで得られるセンシング結果データ(以下、「センシング結果」と言う。)の間で対応づけが可能な特徴点(対応点)について、SfM(Structure from Motion)技術を用いることで推定された、当該対応点を3次元空間にマッピングした点の座標を、x、y及びz方向の3次元座標で表現したデータである。例えば、カメラで3次元空間をセンシング(撮影)する場合、センシング結果は画像データである。LIDARで3次元空間をセンシングする場合、センシング結果は、所定範囲をスキャンすることで得られるデータである。
【0012】
また、環境地図には、3次元特徴点の座標を示す情報に加えて、キーフレームと呼ばれる情報も格納されている。キーフレームは、所定間隔で連続してセンシングされたセンシング結果の中から、所定のアルゴリズムにより選択されたセンシング結果である。キーフレームには、自己位置推定(位置追跡(トラッキング))により推定されたセンサー姿勢(位置及びセンシング方向)、センシング結果上の特徴点に関する情報(特徴量等)等が対応づけられて環境地図に格納されている。キーフレームは、主に、自己位置推定に失敗した場合に自己位置やセンサー姿勢を再認識する処理(Relocalization)や、ループクローズ(Loop Closing)補正をする際等に用いられる。以下、本実施形態では、センシング結果上の特徴点のうちセンシング結果の間で対応づけが可能な特徴点(対応点)を3次元空間にマッピングした点を「3次元特徴点」と称する。
【0013】
地図サーバ20は、地図生成装置10から受信した環境地図を記憶するサーバである。地図サーバ20は、環境地図をそのまま記憶するのではなく、緯度及び経度で位置を特定可能な2次元平面を複数に区切ることで定められる区画(以下、「メッシュ」と言う。)に環境地図を対応付けて格納する。緯度及び経度で位置を特定可能な2次元平面とは、例えば、道路地図等で表される2次元平面であってもよい。各々のメッシュの範囲は、緯度及び経度で位置を特定可能であれば、緯度及び経度をそのまま用いて表現されていてもよいし、緯度及び経度と相互に変換可能な他の座標系で表現されていてもよい。
【0014】
本実施形態では、環境地図をメッシュに対応づけることを可能とするため、地図生成装置10は、各キーフレームに、センシングした際の現在位置を示す情報(緯度及び経度)を対応づけておく。地図サーバ20は、キーフレームに対応づけられている位置情報(緯度及び経度)に基づいて、環境地図をメッシュに対応づけて記憶する。
【0015】
方向特定装置30は、センサーと、自身の位置(緯度及び経度)を検出する位置検出装置とを備えている。また、方向特定装置30は、3次元空間をセンシングしたセンシング結果に基づいて、当該をセンサーが3次元空間をセンシングした方向(センシング結果がセンシングされた方向)を特定する。方向特定装置30は、例えば自動走行車両に搭載され、センシング結果に基づいて車両の向きを特定するといった用途に用いられる。しかしながら、方向特定装置30はこれに限定されず、ドローン等の飛行体に搭載され、飛行中に自身の方向を特定する等、他の用途に用いられてもよい。
【0016】
ここで、方向特定装置30は、地図生成装置10が環境地図を作成する際に用いたSLAM技術を利用することで、3次元空間をセンシングした方向を検出する。具体的には、方向特定装置30は、3次元空間をセンシングした位置(緯度及び経度)を地図サーバ20に送信することで、当該位置から特定されるメッシュに対応づけられている環境地図をダウンロードする。続いて、方向特定装置30は、センシングしたセンシング結果と、ダウンロードした環境地図とを用いて、前述したSLAM技術において自己位置を再認識する処理(Relocalization)を利用することで、センサー姿勢を推定する。推定されたセンサー姿勢は、3次元空間をセンシングした方向に相当する。
【0017】
地図生成装置10及び方向特定装置30は、GNSS(Global Navigation Satellite System)等を用いて現在位置を取得可能な位置検出装置を備える情報処理装置であれば、どのような情報処理装置で構成されていてもよい。また、地図生成装置10と方向特定装置30は、地図生成装置10と方向特定装置30の両方の機能を備えた同一の情報処理装置で実現されていてもよいし、異なる情報処理装置であってもよい。
【0018】
地図サーバ20は、1又は複数の物理的なサーバ、ハイパーバイザー(hypervisor)上で動作する仮想的なサーバ又はクラウドサーバ等の情報処理装置を用いて構成されていてもよい。
【0019】
<ハードウェア構成>
(地図生成装置、方向特定装置)
図2は、地図生成装置10及び方向特定装置30のハードウェア構成例を示す図である。地図生成装置10及び方向特定装置30は、CPU(Central Processing Unit)、GPU(Graphical processing unit)等のプロセッサ11、メモリ、HDD(Hard Disk Drive)及び/又はSSD(Solid State Drive)等の記憶装置12、有線又は無線通信を行う通信IF(Interface)13、入力操作を受け付ける入力装置14、ディスプレイ等の出力装置15、現在位置を検出する位置検出装置16、3次元空間のセンシングを行うセンサー装置17(カメラやLIDAR)を有する。地図生成装置10が備える位置検出装置16は、RTK-GNSS(Global Navigation Satellite System)等に対応した、例えば数センチメートルの単位で高精度に現在位置(緯度、経度及び標高)を検出可能な装置であってもよい。一方、方向特定装置30が備える位置検出装置16は、RTK-GNSSのような高精度に現在位置を検出可能な装置であってもよいし、通常のGNSSのように、数メートル程度の誤差は許容されるような装置であってもよい。
【0020】
図3は、地図サーバ20のハードウェア構成例を示す図である。地図サーバ20は、CPU(Central Processing Unit)、GPU(Graphical processing unit)等のプロセッサ11、メモリ、HDD(Hard Disk Drive)及び/又はSSD(Solid State Drive)等の記憶装置12、有線又は無線通信を行う通信IF(Interface)13、入力操作を受け付ける入力装置14、及び情報の出力を行う出力装置15を有する。入力装置14は、例えば、キーボード、タッチパネル、マウス及び/又はマイク等である。出力装置15は、例えば、ディスプレイ、タッチパネル及び/又はスピーカ等である。
【0021】
<機能ブロック構成>
(地図生成装置)
図4は、地図生成装置10の機能ブロック構成例を示す図である。地図生成装置10は、記憶部100と、センサー部101と、検出部102と、SLAM処理部103と、送信部104とを含む。記憶部100は、地図サーバ20が備える記憶装置12を用いて実現することができる。また、センサー部101と、検出部102と、SLAM処理部103と、送信部104とは、地図サーバ20のプロセッサ11が、記憶装置12に記憶されたプログラムを実行することにより実現することができる。また、当該プログラムは、記憶媒体に格納することができる。当該プログラムを格納した記憶媒体は、コンピュータ読み取り可能な非一時的な記憶媒体(Non-transitory computer readable medium)であってもよい。非一時的な記憶媒体は特に限定されないが、例えば、USBメモリ又はCD-ROM等の記憶媒体であってもよい。
【0022】
記憶部100は、SLAM処理部103で生成される環境地図を格納するDB(データベース)を記憶する。
【0023】
センサー部101は、センサー装置17を用いて、地図生成装置10の周辺の3次元空間をセンシングすることで、センシング結果を生成する。センシングする方向は1方向に限定されない。例えば、複数のセンサー装置17を用いて、前方向、左前方向及び右前方向など複数の方向を同時にセンシングすることとしてもよい。
【0024】
検出部102は、位置検出装置16を用いて、センサー部101で3次元空間をセンシングした際の現在位置(緯度及び経度)を検出する。
【0025】
SLAM処理部103は、センサー部101でセンシングされたセンシング結果を用いて、SLAM技術を用いて自己位置推定と環境地図の作成を行う。例えば、SLAM処理部103は、センサー部101でセンシングされたセンシング結果を分析することで、1つ前のセンシング結果と現在のセンシング結果との間で、センサー姿勢がどの程度変化したのかを推定する処理(位置追跡)と、1つ前のセンシング結果と現在のセンシング結果に共通する特徴点(対応点)から、3次元特徴点の座標を推定する処理(環境地図作成)とを、繰り返し行う。また、SLAM処理部103は、適宜キーフレームの選択を行い、キーフレームに関する情報を環境地図に格納していく。
【0026】
また、SLAM処理部103は、推定した自己位置及びセンサー姿勢の誤差が蓄積することを抑制するために、バンドル調整を行うことで、誤差を最小化させる。また、移動経路が閉じたことを検出すると、それまでに推定した自己位置及びセンサー姿勢の誤差を調整する(ループクローズ処理)。なお、自己位置推定、環境地図作成及び誤差調整等の方法は、SLAM技術により様々であるため、上記の方法に限定されるものではない。
【0027】
SLAM処理部103により作成された環境地図には、3次元特徴点に関する情報や、キーフレームに対応づけられる(キーフレームから観測される)各3次元特徴点の座標等を含む各キーフレームに関する情報等など、様々な情報が含まれる。
【0028】
例えば、ORB-SLAMは、ORBにより特徴点の検出と特徴量の記述を行い、自己位置とセンサー姿勢の推定を行う。特徴点は、FAST(Features from Accelerated Segment Test)技術を用いることで、注目画素とその周囲の画素の輝度差を用いて検出される。ORB-SLAMにより作成される環境地図には、3次元特徴点ごとの情報として、3次元特徴点の座標と、3次元特徴点の世界座標と視線方向(キーフレームの中心から3次元特徴点の世界座標に向かう方向)を示すベクトルと、3次元特徴点がどのキーフレームから観測されるのかを示す情報等が含まれる。また、キーフレームごとの情報として、センサー姿勢(座標及びセンシング方向)と、センサーとなるカメラ内部パラメータと、キーフレーム上の特徴点群の特徴量とが含まれる。
【0029】
ここで、SLAM処理部103は、各キーフレームに関する情報に、検出部102で検出された、各キーフレームのセンシング位置を示す情報を含めることで、環境地図を生成する。各キーフレームのセンシング位置を示す情報は、例えば、RTK-GNSS等を用いることで高精度に検出された、緯度、経度及び標高で表される位置情報である。
【0030】
送信部104は、SLAM処理部103で作成された環境地図を、地図サーバ20に送信する。
【0031】
(地図サーバ)
図5は、地図サーバ20の機能ブロック構成例を示す図である。地図サーバ20は、記憶部200と、取得部201と、格納部202と、受信部203と、送信部204とを含む。記憶部200は、地図サーバ20が備える記憶装置12を用いて実現することができる。また、取得部201と、格納部202と、受信部203と、送信部204とは、地図サーバ20のプロセッサ11が、記憶装置12に記憶されたプログラムを実行することにより実現することができる。また、当該プログラムは、記憶媒体に格納することができる。当該プログラムを格納した記憶媒体は、コンピュータ読み取り可能な非一時的な記憶媒体であってもよい。非一時的な記憶媒体は特に限定されないが、例えば、USBメモリ又はCD-ROM等の記憶媒体であってもよい。
【0032】
記憶部200は、メッシュ環境地
図DBを記憶する。メッシュ環境地
図DBには、2次元平面を複数に区切ることで定められるメッシュを識別するメッシュ識別子(区画識別子)と各メッシュの範囲を示す情報とが対応づけられて格納されるメッシュ情報(第1情報)200aと、メッシュ識別子と環境地図とを対応づけるメッシュ単位環境地図(第2情報)200bとが含まれる。また、メッシュ単位環境地
図200bは、各キーフレーム上の特徴点群の特徴量(キーフレームにおける特徴量)を示す情報と、各キーフレームに対応づけられる3次元特徴点の座標(3次元空間内の点の座標)を示す情報と各キーフレームにおけるセンサー姿勢を示す情報とを含む。
【0033】
取得部201は、地図生成装置10から、地図生成装置10で生成された、各キーフレームに関する情報を含む環境地図を取得する。各キーフレームに関する情報には、各キーフレーム上の特徴点群の特徴量(キーフレームにおける特徴量)を示す情報と、各キーフレームに対応づけられる3次元特徴点の座標(3次元空間内の点の座標)を示す情報と、各キーフレームにおけるセンサー姿勢を示す情報と、各キーフレームのセンシング位置を示す情報(緯度、経度及び標高で表される位置情報)とが含まれている。
【0034】
格納部202は、各キーフレームのセンシング位置を示す情報に基づいて、取得部201で取得した環境地図を、複数のメッシュのうちいずれかのメッシュに対応づけることで、メッシュ単位環境地
図200bを生成して記憶部200に格納する。
【0035】
受信部203は、方向特定装置30から、3次元空間をセンシングした位置(緯度及び経度)を受信する。
【0036】
送信部204は、受信部203で受信した、3次元空間をセンシングした位置を含むメッシュに対応づけられる環境地図を、メッシュ単位環境地
図200bから抽出して方向特定装置30に送信する。
【0037】
(方向特定装置)
図6は、方向特定装置30の機能ブロック構成例を示す図である。方向特定装置30は、記憶部300と、センサー部301と、検出部302と、取得部303と、方向推定部304とを含む。記憶部300は、方向特定装置30が備える記憶装置12を用いて実現することができる。また、センサー部301と、検出部302と、取得部303と、方向推定部304とは、地図サーバ20のプロセッサ11が、記憶装置12に記憶されたプログラムを実行することにより実現することができる。また、当該プログラムは、記憶媒体に格納することができる。当該プログラムを格納した記憶媒体は、コンピュータ読み取り可能な非一時的な記憶媒体であってもよい。非一時的な記憶媒体は特に限定されないが、例えば、USBメモリ又はCD-ROM等の記憶媒体であってもよい。
【0038】
記憶部300は、取得部303が地図サーバ20から取得した、キーフレームに関する情報を記憶する。
【0039】
センサー部301は、センサー装置17を用いて、方向特定装置30の周辺の3次元空間をセンシングする。
【0040】
検出部302は、位置検出装置16を用いて、センサー部301が3次元空間をセンシングした位置(緯度及び経度の座標)を検出する。
【0041】
取得部303は、地図サーバ20にアクセスすることで、検出部302で検出された位置を含むメッシュに対応する環境地図を地図サーバ20から取得し、記憶部300に格納する。
【0042】
方向推定部304は、センサー部301でセンシングしたセンシング結果と、地図サーバ20から取得した環境地図とを用いて、SLAM技術において自己位置を再認識する処理(Relocalization)を利用することで、センシング結果をセンシングした方向(センサー部301が3次元空間をセンシングした方向)を推定する。
【0043】
<処理手順>
続いて、本実施形態に係る情報システムが行う処理手順について具体的に説明する。本実施形態において、環境地図を作成する範囲やメッシュの大きさは特に限定されないが、以下の説明では、地図生成装置10が道路上を走行することで、ある程度広い範囲(例えば1つのメッシュが1~数km四方といった単位)の環境地図を生成することを想定している。
【0044】
(環境地図の格納)
図7は、地図生成装置で生成された環境地図をメッシュに対応づけて格納する際の処理手順の一例を示す図である。
【0045】
ステップS100で、地図生成装置10のセンサー部101は、道路を走行しながら、地図生成装置10の周囲の3次元空間をセンシングする。また、検出部102は、3次元空間をセンシングした位置を記録していく。
【0046】
ステップS101で、地図生成装置10のSLAM処理部103は、センサー部101でセンシングされた各センシング結果を分析することで自己位置推定を行う。また、SLAM処理部103は、特定された各3次元特徴点に関する情報(3次元特徴点の座標等)を環境地図に格納すると共に、各フレームのうちキーフレームとして記録するフレームを選択し、選択したフレーム上の特徴点群の特徴量、フレームに対応づけられる3次元特徴点の座標及びフレームにおけるセンサー姿勢等を、キーフレームに関する情報として環境地図に格納する。また、SLAM処理部103は、各キーフレームに関する情報に、各キーフレームのセンシング位置を示す情報(検出部102で検出した緯度及び経度)を含めて環境地図に格納する。
【0047】
図8は、環境地図を作成する範囲の一例を示す図である。
図8のうち、N10~N14は、ノード(道路が交わる箇所)を示しており、L101~L108は、道路リンクを示している。例えば、地図生成装置10は、ノードN11、ノードN15、ノードN12及びノードN11の順に反時計回りに走行したとする。この場合、地図生成装置10は、ノードN11からノードN15及びノードN12を通ってノードN11に戻るまでの道路の周囲をセンシングしたセンシング結果を用いて、ノードN11からノードN15及びノードN12を通ってノードN11に戻るまでの道路の周囲についての環境地図を生成する。
【0048】
また、地図生成装置10は、更に、ノードN11からノードN10及びノードN12を通ってノードN11に戻る順に走行したとする。この場合、地図生成装置10が生成する環境地図には、ノードN11からノードN10及びノードN12を通ってノードN11に戻るまでの道路の周囲についての環境地図が追加される。
【0049】
図9は、3次元特徴点及びキーフレームの一例を示す図である。
図9は、
図8のエリアA10を拡大した図である。
図9の例では、地図生成装置10は、道路上を上から下に向かって走行した場合の例を示している。キーフレームKF1~KF7は、地図生成装置10の正面に取り付けられたセンサー装置17でセンシングされたセンシング結果に基づいて生成されたキーフレームを示している。キーフレームKF11~KF16は、地図生成装置10の右側面に取り付けられたセンサー装置17でセンシングされたセンシング結果に基づいて生成されたキーフレームを示している。キーフレームK21~KF27は、地図生成装置10の左側面に取り付けられたセンサー装置17でセンシングされたセンシング結果に基づいて生成されたキーフレームを示している。
図9の道路の周囲に存在する黒点は、検出された3次元特徴点を示している。
【0050】
なお、
図9はあくまで一例であり、地図生成装置10には、更に多くのセンサー装置17(前方からみて右45度や左45度など)が取り付けられていてもよい。その場合、更に多くのキーフレームが生成されることになる。若しくは、地図生成装置10には、右側面及び左側面にセンサー装置17が取り付けられていなくてもよい。その場合、キーフレームKF11~KF16及びキーフレームK21~KF27は生成されないことになる。また、地図生成装置10は、同一の道路を、センサー装置17の取り付け方向を変えて走行するようにしてもよい。例えば、1週目はセンサー装置17を正面に取り付けてセンシングし、2週目はセンサー装置17を右方向に取り付けてセンシングし、3週目はセンサー装置17を左方向に取り付けてセンシングするようにしてもよい。センサー装置17が1つのみであっても、
図9に示すような環境地図を作成することができる。
図7に戻り説明を続ける。
【0051】
ステップS102で、地図生成装置10の送信部104は、生成した環境地図を地図サーバ20に送信する。
【0052】
ステップS103で、地図サーバ20の格納部202は、地図生成装置10から受信した環境地図に含まれている各キーフレームのセンシング位置を示す情報と、メッシュ情報200aとを突合することで、各キーフレームが含まれるメッシュのメッシュ識別子を判定する。続いて、格納部202は、各メッシュ識別子に、当該メッシュに含まれると判定されたキーフレームに関する情報を対応づけることで、メッシュ単位環境地
図200bを生成して記憶部200に格納する。前述したように、キーフレームに関する情報には、キーフレーム上の特徴点群の特徴量を示す情報と、キーフレームに対応づけられる3次元特徴点の座標を示す情報と、キーフレームにおけるセンサー姿勢を示す情報とが含まれる。
【0053】
このとき、格納部202は、取得部201で取得した環境地図に含まれる各キーフレームに関する情報のうち、各キーフレームのセンシング位置を示す情報(緯度、経度及び標高で表される位置情報)を含めずにメッシュ単位環境地
図200bを生成するようにしてもよいし、各キーフレームのセンシング位置を示す情報を含めてメッシュ単位環境地
図200bを生成するようにしてもよい。
【0054】
図10は、メッシュ環境地
図DBのデータ構造の一例を示す図である。
図10(a)は、メッシュ情報200aの一例を示し、
図10(b)は、メッシュ単位環境地
図200bの一例を示す。メッシュ情報200aは、メッシュ識別子ごとに、メッシュの範囲を示すデータ(メッシュ範囲データ)が対応づけられて格納される。メッシュ範囲データは、例えば、メッシュの四隅の位置を緯度及び経度で表現したデータであってもよい。
【0055】
メッシュ単位環境地
図200bは、メッシュごとに、各キーフレームに関する情報を含む環境地図が対応づけられているデータ構造を有している。ヘッダー部には、メッシュを一意に特定するメッシュ識別子が格納される。データ部には環境地図のデータが格納される。フッター部にはどのような情報が格納されていてもよいし、フッター部は省略されていてもよい。
【0056】
まず、格納部202は、地図生成装置10から受信した環境地図に含まれている、各キーフレームのセンシング位置を示す緯度及び経度に基づいて、各キーフレームがどのメッシュ内に存在するのかを判定する処理を、全てのキーフレームについて行う。続いて、格納部202は、キーフレームが存在するメッシュを1つ選択し、選択した1つのメッシュ内に存在する複数のキーフレームについてのキーフレームに関する情報を、当該選択した1つのメッシュのデータ部に格納する。格納部202は、当該処理を、キーフレームが存在する全てのメッシュについて繰り返し行うことで、メッシュ単位環境地
図200bを生成して記憶部200に格納する。なお、あるメッシュのデータ部に格納されるキーフレームに関する情報に含まれる、キーフレームに対応づけられる3次元特徴点の座標を示す情報について、当該3次元特徴点の座標は、キーフレームと同じメッシュ内に存在するか否かを問わない。本実施形態では、キーフレームがメッシュ内に存在していれば、当該キーフレームに対応づけられる3次元特徴点の座標がメッシュ内に存在するのか否かを問わず(つまりメッシュからはみ出ている3次元特徴点も含めて)、全て、キーフレームに関する情報としてデータ部に格納される。
【0057】
ここで、メッシュ環境地図を作成するエリアが広い場合、当該エリア内における環境地図の作成を1つの地図生成装置10が行うと、多くの時間を要すると共に、処理負荷やメモリ消費量も膨大になる可能性がある。従って、当該エリアを複数に区分し、各々の区分について複数の地図生成装置10が並行して環境地図を作成し、地図サーバ20で複数の環境地図を統合した方が効率がよいと考えられる。
【0058】
この場合、地図サーバ20の取得部201は、複数の地図生成装置10から複数の環境地図を取得する。続いて、格納部202は、複数の環境地図の各々に同一の(重複する)キーフレームに関する情報が存在する場合、同一のキーフレームに関する情報を統合する(2つの情報のうち1方を削除する)ことで、複数の環境地図を統合する。続いて、格納部202は、統合された複数の環境地図について、統合した後の各キーフレームのセンシング位置を示す情報に基づいて、統合した後の各キーフレームが含まれる区画を判定し、判定された各キーフレームが含まれる区画に、統合された環境地図に含まれる各キーフレームに関する情報を対応づけて記憶部200に格納する。なお、複数の環境地図の各々に重複するキーフレームが存在するか否かについて、重複するキーフレームとは、キーフレーム上の特徴点の特徴量と、キーフレームに対応づけられる3次元特徴点の座標と、キーフレームにおけるセンサー姿勢とが完全に同一値であるキーフレームに限定されない。例えば、格納部202は、キーフレーム上の特徴点の特徴量、キーフレームに対応づけられる複数の3次元特徴点の各々の座標のうち所定数の3次元特徴点の座標、及び、センサー姿勢が所定の範囲内である場合、格納部202は、2つのキーフレームは重複すると判断してもよい。
【0059】
なお、各地図生成装置10が並行して環境地図を作成すると、世界座標が異なる環境地図が生成される可能性がある。そこで、本実施形態では、地図サーバ20が環境地図の統合を容易に行えるようにするために、各地図生成装置10が生成する環境地図の世界座標について、基準点(x、y及びzが全てゼロになる地点)と、x軸、y軸及びz軸が示す方向(例えばx軸は北、y軸は東、z軸は標高等)とを揃えるようにしてもよい。基準点と、x軸、y軸及びz軸が示す方向を揃える方法はどのような方法でもよいが、例えば、地図生成装置10が環境地図を生成する前に、ユーザが地図生成装置10のキャリブレーション等を行うこととしてもよい。
【0060】
若しくは、地図サーバ20は、複数の環境地図を統合する前に、各キーフレームのセンシング位置を示す情報に基づいて、各地図生成装置10から取得した環境地図の世界座標を揃えるようにしてもよい。この場合、地図サーバ20が、z軸方向についても世界座標を揃えることができるようにするため、各キーフレームのセンシング位置を示す情報には、緯度及び経度に加えて標高も含まれることとしてもよい。
【0061】
図11は、メッシュ環境地
図DBのデータ構造の他の例を示す図である。メッシュ単位環境地
図200bは、更に、2つの情報に分割されていてもよい。例えば、メッシュ識別子と、各メッシュに対応づけられる1以上のキーフレームを識別する識別子(キーフレーム識別子)とが対応づけられて格納される「対応関係情報」(
図11(a))と、キーフレーム上の特徴点の特徴量(キーフレームにおける特徴量)を示す情報とキーフレームに対応づけられる3次元特徴点の座標(3次元空間内の点の座標)を示す情報とキーフレームにおけるセンサー姿勢を示す情報とがキーフレームごとに格納される「キーフレーム単位の環境地図」(
図11(b))と、に分割されていてもよい。この場合、「対応関係情報」を第2情報と称し、「キーフレーム単位の環境地図」を第3情報と称してもよい。
【0062】
また、メッシュは、更に、大きさが異なる複数のメッシュに分けて定義されていてもよい。例えば、メッシュの大きさが小さくなる順に、第1次メッシュ、第2次メッシュ及び第3次メッシュが定義されていてもよい。この場合、メッシュ情報200aは、第1次メッシュのメッシュ範囲データ、第2次メッシュのメッシュ範囲データ及び第3次メッシュのメッシュ範囲データに分けて定義されていてもよい。
【0063】
また、メッシュ単位環境地
図200bも、大きさが異なる複数のメッシュに分けて定義されていてもよい。また、データ部には、メッシュの大きさによって、キーフレームの密度が異なる環境地図が格納されるようにしてもよい。例えば、格納部202は、大きさが大きいメッシュ(例えば第1次メッシュ)のデータ部については、地図生成装置10から受信した環境地図に含まれている各キーフレームに関する情報を例えば1/3等に間引いた環境地図を格納するようにしてもよい。また、大きさが中程度メッシュ(例えば第2次メッシュ)のデータ部については、地図生成装置10から受信した環境地図に含まれている各キーフレームに関する情報を例えば1/2等に間引いた環境地図を格納するようにしてもよい。また、大きさが小さいメッシュ(例えば第3次メッシュ)のデータ部については、地図生成装置10から受信した環境地図に含まれている各キーフレームに関する情報をそのまま含む環境地図を格納するようにしてもよい。
【0064】
(センシング方向の特定)
図12は、方向特定装置30がセンシング方向を推定する際の処理手順の一例を示す図である。
【0065】
ステップS200で、方向特定装置30のセンサー部301は、3次元空間をセンシングする。また、検出部302は、センサー部301が3次元空間をセンシングした際の現在位置(緯度及び経度)を取得する。
【0066】
ステップS201で、取得部303は、3次元空間をセンシングした際の現在位置(緯度及び経度)を地図サーバ20に送信する。
【0067】
ステップS202で、地図サーバ20の受信部203又は送信部204は、記憶部200に記憶されているメッシュ環境地
図DBの中から、ステップS201で受信した現在位置に対応するメッシュの環境地図(メッシュ単位環境地
図200b)を取得する。
【0068】
ステップS203で、地図サーバ20の送信部204は、取得した環境地図を方向特定装置30に送信する。
【0069】
ここで、記憶部200に記憶されているメッシュ単位環境地
図200bが、
図11に示すように、「キーフレーム単位の環境地図」と「対応関係情報」とに分割されている場合、受信部203又は送信部204は、メッシュ情報200aにアクセスすることで、ステップS201で受信した現在位置に対応するメッシュ識別子を取得する。続いて、受信部203又は送信部204は、対応関係情報にアクセスすることで、メッシュ識別子に対応する複数のキーフレーム識別子を取得する。続いて、受信部203又は送信部204は、キーフレーム単位の環境地図にアクセスすることで、複数のキーフレーム識別子の各々に対応するキーフレームに関する情報を取得する(S202)。続いて、送信部204は、複数のキーフレーム識別子の各々に対応するキーフレームに関する情報をマージした情報を、環境地図として方向特定装置30に送信する(S203)。
【0070】
ステップS204で、方向特定装置30の取得部303は、地図サーバ20から取得した環境地図を記憶部300に格納する。続いて、方向推定部304は、センサー部301でセンシングしたセンシング結果と、地図サーバ20から受信した環境地図とを用いて、SLAM技術において自己位置を再認識する処理(Relocalization)を利用することで、センサー姿勢を推定する。
【0071】
まず、方向推定部304は、取得した環境地図を参照し、センシング結果上の特徴点の特徴量(センシング結果の特徴量)と、各キーフレーム上の特徴点の特徴量(各キーフレームにおける特徴量)とを比較することで、センシング結果に対応するキーフレームを選択する。
【0072】
ここで、取得部303が取得する環境地図に含まれるキーフレームに関する情報には、各キーフレームのセンシング位置を示す情報が含まれていてもよい。この場合、方向推定部304は、環境地図に含まれる各キーフレームがセンシングされた位置に基づいて、センシング結果をセンシングした際の現在位置(センシング結果をセンシングした位置)に最も近いキーフレームを選択するようにしてもよい。
【0073】
続いて、方向推定部304は、選択したキーフレームに対応づけられる3次元特徴点(3次元空間内の点)を該キーフレーム上に投影した点のキーフレーム上の位置と、当該投影した点に対応する、センシング結果上の特徴点のセンシング結果上の位置と、該キーフレームにおけるセンサー姿勢とに基づいて、センシング結果がセンシングされた方向を推定する。例えば、方向推定部304は、選択したキーフレームに対応づけられる3次元特徴点を該キーフレーム上に投影した点のキーフレーム上の位置と、当該投影した点に対応する、センシング結果上の特徴点(すなわち対応点)の当該点群上の位置とに基づいて、SfM技術等を利用することで、キーフレームからセンシング結果に至るセンサー姿勢の変化量を推定する。方向推定部304は、センシング結果上の特徴点(対応点)をどのような方法で検出するようにしてもよいが、例えば、キーフレーム上に投影した点の周囲の領域(キーフレーム上の領域)の特徴量と、センシング結果上の各特徴点の特徴量とのマッチングを行うことで検出するようにしてもよい。キーフレーム上に投影した点の周囲の領域の特徴量は、キーフレーム上の特徴点の特徴量としてキーフレームに関する情報に含まれていてもよい。
【0074】
続いて、方向推定部304は、キーフレームにおけるセンサー姿勢に当該センサー姿勢の変化量を加えることで、センシング結果におけるセンサー姿勢を推定する。
【0075】
例えば、ORB-SLAMでは、センシング結果上の特徴点の特徴量と類似する特徴量を有するキーフレームの候補を、環境地図の中から検索し、検索されたキーフレームの候補とセンシング結果とについてPnPアルゴリズムを用いることでセンサー姿勢を推定する。
【0076】
<まとめ>
以上説明した実施形態によれば、方向特定装置30が環境地図を用いてセンシング方向を特定する際、膨大なデータ量の環境地図を全てダウンロードするのではなく、センシングした位置におけるメッシュに対応する環境地図をダウンロードするようにした。これにより、環境地図を利用して処理を行う方向特定装置30の位置情報処理負荷を軽減することが可能になる。また、本実施形態によれば、広大な範囲の環境地図を一度に作成する必要がないことから、環境地図における取得位置精度維持向上が可能になる。
【0077】
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態で説明したフローチャート、シーケンス、実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。
【0078】
例えば、メッシュは2次元平面に限定されず、高さ方向を含む3次元空間で表現されるようにしてもよい。この場合、メッシュ単位環境地
図200bにも、3次元空間で表現されるメッシュごとに、環境地図が格納される。例えば、方向特定装置30がドローンであるなど、高さ方向にも移動する場合に、方向特定装置30がダウンロードする環境地図のデータ量を削減することが可能になる。
【0079】
また、以上説明した実施形態において、特徴点や特徴量は、VISUAL-SLAMのように輝度差に基づいて求められるものであってもよいし、DIRECT-SLAMのように画素値に基づいて求められるものであってもよい。また、自己位置推定は、GRAPH-SLAMのように、最適化モデルを探索することで行われることとしてもよい。
【符号の説明】
【0080】
10…地図生成装置、11…プロセッサ、12…記憶装置、13…通信IF、14…入力装置、15…出力装置、16…位置検出装置、17…センサー装置、20…地図サーバ、30…方向特定装置、100…記憶部、101…センサー部、102…検出部、103…SLAM処理部、104…送信部、200…記憶部、201…取得部、202…格納部、203…受信部、204…送信部、300…記憶部、301…センサー部、302…検出部、303…取得部、304…方向推定部