(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-19
(45)【発行日】2022-12-27
(54)【発明の名称】ビジュアルローカリゼーションとオドメトリに基づく経路追跡方法およびシステム
(51)【国際特許分類】
G01C 21/28 20060101AFI20221220BHJP
G05D 1/02 20200101ALI20221220BHJP
H04N 7/18 20060101ALI20221220BHJP
【FI】
G01C21/28
G05D1/02 K
H04N7/18 G
(21)【出願番号】P 2020187752
(22)【出願日】2020-11-11
【審査請求日】2020-11-11
(31)【優先権主張番号】10-2019-0144126
(32)【優先日】2019-11-12
(33)【優先権主張国・地域又は機関】KR
【前置審査】
(73)【特許権者】
【識別番号】319012978
【氏名又は名称】ネイバーラボス コーポレーション
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】イ ドンファン
(72)【発明者】
【氏名】キム ドクファ
【審査官】西中村 健一
(56)【参考文献】
【文献】特開2019-190994(JP,A)
【文献】特開2019-079171(JP,A)
【文献】特開2008-071352(JP,A)
【文献】米国特許出願公開第2006/0012493(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G01C 21/00-21/36
G05D 1/00- 1/12
H04N 7/18
(57)【特許請求の範囲】
【請求項1】
コンピュータシステムが実行する経路追跡方法であって、
当該コンピュータシステムは、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、
前記経路追跡方法は、
前記少なくとも1つのプロセッサにより、カメラポーズ情報としてオブジェクトのオドメトリによるポーズ推定結果と前記オブジェクトのビジュアルローカリゼーション(VL)によるポーズ推定結果とを利用して前記オブジェクトの経路を追跡する段階を含み、
前記追跡する段階は、
前記オドメトリによって推定されたポーズ推定結果による前記オブジェクトの相対ポーズを前記VLによって推定されたポーズ推定結果による前記オブジェクトの絶対ポーズを利用して補正する段階を含
み、
前記補正する段階は、
前記オドメトリによって推定された相対ポーズと前記VLによって推定された絶対ポーズとをノードとして定義し、ノード間のポーズ差をエッジとして定義したポーズグラフを最適化する段階を含む、
経路追跡方法。
【請求項2】
前記補正する段階は、
前記オドメトリによるポーズ推定時に発生する累積誤差を、前記VLによって推定されたポーズ値を利用して補正する段階を含む、
請求項1に記載の経路追跡方法。
【請求項3】
前記最適化する段階は、
前記ポーズグラフで任意の時点あるいは事前に定められた一定の周期として一時点に推定された相対ポーズ値を、該当の時点に推定された絶対ポーズ値を利用して補正する段階を含む、
請求項
1に記載の経路追跡方法。
【請求項4】
前記最適化する段階は、
前記ポーズグラフで任意の時点あるいは事前に定められた周期として一時点に推定された相対ポーズ値を、該当の時点に推定された絶対ポーズ値との誤差を最小化する方向に最適化する段階を含む、
請求項
1に記載の経路追跡方法。
【請求項5】
前記最適化する段階は、
前記ポーズグラフに含まれたすべてのエッジに対して誤差を合算してポーズグラフ誤差関数を定義する段階、および
前記ポーズグラフ誤差関数に基づいて各ノードのポーズ値をガウス・ニュートン法によって推定する段階を含む、
請求項
1に記載の経路追跡方法。
【請求項6】
請求項1~
5のうちのいずれか一項に記載の経路追跡方法を前記コンピュータシステムに実行させる、コンピュータプログラム。
【請求項7】
請求項1~
5のうちのいずれか一項に記載の経路追跡方法をコンピュータに実行させるためのプログラムが格納されている、非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項8】
コンピュータシステムであって、
メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、
前記少なくとも1つのプロセッサは、
カメラポーズ情報としてオブジェクトのオドメトリによるポーズ推定結果と前記オブジェクトのビジュアルローカリゼーション(VL)によるポーズ推定結果とを利用して前記オブジェクトの経路を追跡するものであって、
前記オドメトリによって推定されたポーズ推定結果による前記オブジェクトの相対ポーズを前記VLによって推定されたポーズ推定結果による前記オブジェクトの絶対ポーズを利用して補正
し、
前記少なくとも1つのプロセッサは、
前記オドメトリによって推定された相対ポーズと前記VLによって推定された絶対ポーズとをノードとして定義し、ノード間のポーズ差をエッジとして定義したポーズグラフを最適化することを特徴とする、
コンピュータシステム。
【請求項9】
前記少なくとも1つのプロセッサは、
前記オドメトリによるポーズ推定時に発生する累積誤差を、前記VLによって推定されたポーズ値を利用して補正することを特徴とする、
請求項
8に記載のコンピュータシステム。
【請求項10】
前記少なくとも1つのプロセッサは、
前記ポーズグラフで任意の時点あるいは事前に定められた一定の周期として一時点に推定された相対ポーズ値を、該当の時点に推定された絶対ポーズ値を利用して補正することを特徴とする、
請求項
8に記載のコンピュータシステム。
【請求項11】
前記少なくとも1つのプロセッサは、
前記ポーズグラフで任意の時点あるいは事前に定められた一定の周期として一時点に推定された相対ポーズ値を、該当の時点に推定された絶対ポーズ値との誤差を最小化する方向に最適化することを特徴とする、
請求項
8に記載のコンピュータシステム。
【請求項12】
前記少なくとも1つのプロセッサは、
前記ポーズグラフに含まれたすべてのエッジに対して誤差を合算してポーズグラフ誤差関数を定義した後、前記ポーズグラフ誤差関数に基づいて各ノードのポーズ値をガウス・ニュートン法によって推定することを特徴とする、
請求項
8に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
以下の説明は、室内ナビゲーションのための経路追跡技術に関する。
【背景技術】
【0002】
移動ロボットは、与えられた環境内で自身の位置を把握しなければならないのはもちろん、以前に経験したことのない新たな環境に置かれた場合には、その周辺画面に対する地図を自ら作成しなければならない。
【0003】
移動ロボットの地図作成とは、周辺に置かれている障害物や物体の位置や自由に移動可能な開放的な空間などを把握し、適切な方法によってこれを記憶する作業を意味する。
【0004】
移動ロボットの地図作成技術の一例として、特許文献1(公開日2010年6月28日)には、周辺物体までの距離情報を利用して格子地図を作成した後、ランドマークの位置情報と連動させることにより、移動ロボットの位置認識のための最終格子地図を作成する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】韓国公開特許第10-2010-0070922号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ビジュアルローカリゼーション(VL)(visual localization)技術とオドメトリ(odometry)技術とを結合した測位技術を提供する。
【0007】
VLのポーズとオドメトリのポーズを利用して最適な経路を生成する方法とシステムとを提供する。
【課題を解決するための手段】
【0008】
コンピュータシステムが実行する経路追跡方法であって、前記コンピュータシステムは、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、前記経路追跡方法は、前記少なくとも1つのプロセッサにより、カメラポーズ情報としてオドメトリによるポーズ推定結果とVLによるポーズ推定結果とを利用して経路(trajectory)を追跡する段階を含み、前記追跡する段階は、前記オドメトリによって推定された相対ポーズを前記VLによって推定された絶対ポーズを利用して補正する段階を含む、経路追跡方法を提供する。
【0009】
一側面によると、前記補正する段階は、前記オドメトリによるポーズ推定時に発生する累積誤差を、前記VLによって推定されたポーズ値を利用して補正する段階を含んでよい。
【0010】
また他の側面によると、前記補正する段階は、前記オドメトリによって推定された相対ポーズと前記VLによって推定された絶対ポーズとをノード(node)として定義し、ノード間のポーズ差をエッジ(edge)として定義したポーズグラフを最適化する段階を含んでよい。
【0011】
また他の側面によると、前記最適化する段階は、前記ポーズグラフで任意の時点あるいは事前に定められた一定の周期として一定の時点に推定された相対ポーズ値を、該当の時点に推定された絶対ポーズ値を利用して補正する段階を含んでよい。
【0012】
また他の側面によると、前記最適化する段階は、前記ポーズグラフで任意の時点あるいは事前に定められた一定の周期として一定の時点に推定された相対ポーズ値を、該当の時点に推定された絶対ポーズ値との誤差を最小化する方向に最適化する段階を含んでよい。
【0013】
また他の側面によると、前記最適化する段階は、前記ポーズグラフに含まれたすべてのエッジに対して誤差を合算してポーズグラフ誤差関数(pose-graph error function)を定義する段階、および前記ポーズグラフ誤差関数に基づいて各ノードのポーズ値をガウス・ニュトーン(Gauss-Newton)法によって推定する段階を含んでよい。
【0014】
前記経路追跡方法を前記コンピュータシステムに実行させるために非一時的なコンピュータ読み取り可能な記憶媒体に格納される、コンピュータプログラムを提供する。
【0015】
前記経路追跡方法をコンピュータに実行させるためのプログラムが格納されている、非一時的なコンピュータ読み取り可能な記憶媒体を提供する。
【0016】
コンピュータシステムであって、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサは、カメラポーズ情報としてオドメトリによるポーズ推定結果とVLによるポーズ推定結果とを利用して経路を追跡するものであり、前記オドメトリによって推定された相対ポーズを前記VLによって推定された絶対ポーズを利用して補正することを特徴とする、コンピュータシステムを提供する。
【発明の効果】
【0017】
本発明の実施形態によると、VLのポーズとオドメトリのポーズとを利用して経路最適化を実行することにより、適正な演算量によって正確度の高い測位結果を提供することができる。
【0018】
本発明の実施形態によると、VL技術とオドメトリ技術とを融合した測位により、最小限のネットワークと低仕様のカメラとで断絶のない移動状況をリアルタイムで測位することが可能となる。
【図面の簡単な説明】
【0019】
【
図1】本発明の一実施形態における、ネットワーク環境の例を示した図である。
【
図2】本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
【
図3】本発明の一実施形態における、VLを実行する過程を説明するための例示図である。
【
図4】本発明の一実施形態における、VLを実行する過程を説明するための例示図である。
【
図5】本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示したブロック図である。
【
図6】本発明の一実施形態における、サーバが実行することのできる方法の例を示したフローチャートである。
【
図7】本発明の一実施形態における、VLのポーズとオドメトリのポーズとを表現したポーズグラフの例を示した図である。
【
図8】本発明の一実施形態における、グラフ基盤のポーズ最適化過程を説明するための例示図である。
【
図9】本発明の一実施形態における、グラフ基盤のポーズ最適化過程を説明するための例示図である。
【
図10】本発明の一実施形態における、グラフ基盤のポーズ最適化過程を説明するための例示図である。
【
図11】本発明の一実施形態における、最適化ポーズ(optimized pose)に対する実験結果を示した図である。
【発明を実施するための形態】
【0020】
以下、本発明の実施形態について、添付の図面を参照しながら詳しく説明する。
【0021】
本発明の実施形態は、カメラ基盤の測位技術に関する。
【0022】
本明細書で具体的に開示する事項を含む実施形態は、ビジュアルローカリゼーション(VL)(visual localization)技術とオドメトリ(odometry)技術とを結合した測位技術を提供することができ、これにより、従来の測位技術の限界を克服して測位の演算量と正確度とを向上させることができ、より多様なデバイスでの活用を可能にすることができる。
【0023】
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。
図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような
図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が
図1のように限定されることはない。
【0024】
複数の電子機器110、120、130、140は、コンピュータシステムによって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(personal computer)、ノート型PC、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレット、ゲームコンソール、ウェアラブルデバイス、IoT(Internet of Things)デバイス、VR(Virtual Reality)デバイス、AR(Augmented Reality)デバイスなどがある。一例として、
図1では、電子機器110の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器110は、実質的に無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信することのできる多様な物理的なコンピュータシステムのうちの1つを意味してよい。
【0025】
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網、衛星網など)を利用する通信方式だけではなく、機器間の近距離無線通信が含まれてよい。例えば、ネットワーク170は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
【0026】
サーバ150、160は、それぞれ、複数の電子機器110、120、130、140とネットワーク170とを介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140に第1サービスを提供するシステムであってよく、サーバ160も、ネットワーク170を介して接続した複数の電子機器110、120、130、140に第2サービスを提供するシステムであってよい。より具体的な例として、サーバ150は、複数の電子機器110、120、130、140においてインストールされて実行されるコンピュータプログラムであるアプリケーションを通じ、該当のアプリケーションが目的とするサービス(一例として、位置基盤サービス)を第1サービスとして複数の電子機器110、120、130、140に提供してよい。他の例として、サーバ160は、上述したアプリケーションのインストールおよび実行のためのファイルを複数の電子機器110、120、130、140に配布するサービスを第2サービスとして提供してよい。
【0027】
図2は、本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
図2では、電子機器に対する例として電子機器110の内部構成およびサーバ150の内部構成について説明する。また、他の電子機器120、130、140やサーバ160も、上述した電子機器110またはサーバ150と同一または類似の内部構成を有してよい。
【0028】
電子機器110およびサーバ150は、メモリ211、221、プロセッサ212、222、通信モジュール213、223、および入力/出力インタフェース214、224を含んでよい。メモリ211、221は、非一時的なコンピュータ読み取り可能な記憶媒体であって、RAM(random access memory)、ROM(read only memory)、ディスクドライブ、SSD(solid state drive)、フラッシュメモリ(flash memory)などのような非一時的大容量記憶装置を含んでよい。ここで、ROM、SSD、フラッシュメモリ、ディスクドライブのような非一時的大容量記憶装置は、メモリ211、221とは区分される別の非一時的記憶装置として電子機器110やサーバ150に含まれてもよい。また、メモリ211、221には、オペレーティングシステムや、少なくとも1つのプログラムコード(一例として、電子機器110においてインストールされて実行されるブラウザや、特定のサービスの提供のために電子機器110にインストールされたアプリケーションなどのためのコード)が格納されてよい。このようなソフトウェア構成要素は、メモリ211、221とは別のコンピュータ読み取り可能な記憶媒体からロードされてよい。このような別のコンピュータ読み取り可能な記憶媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記憶媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記憶媒体ではない通信モジュール213、223を通じてメモリ211、221にロードされてもよい。例えば、少なくとも1つのプログラムは、開発者またはアプリケーションのインストールファイルを配布するファイル配布システム(一例として、上述したサーバ160)がネットワーク170を介して提供するファイルによってインストールされるコンピュータプログラム(一例として、上述したアプリケーション)に基づいてメモリ211、221にロードされてよい。
【0029】
プロセッサ212、222は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ211、221または通信モジュール213、223によって、プロセッサ212、222に提供されてよい。例えば、プロセッサ212、222は、メモリ211、221のような記憶装置に格納されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
【0030】
通信モジュール213、223は、ネットワーク170を介して電子機器110とサーバ150とが互いに通信するための機能を提供してもよいし、電子機器110および/またはサーバ150が他の電子機器(一例として、電子機器120)または他のサーバ(一例として、サーバ160)と通信するための機能を提供してもよい。一例として、電子機器110のプロセッサ212がメモリ211のような記憶装置に格納されたプログラムコードにしたがって生成した要求が、通信モジュール213の制御にしたがってネットワーク170を介してサーバ150に伝達されてよい。これとは逆に、サーバ150のプロセッサ222の制御にしたがって提供される制御信号や命令、コンテンツ、ファイルなどが、通信モジュール223とネットワーク170とを経て電子機器110の通信モジュール213を通じて電子機器110に受信されてよい。例えば、通信モジュール213を通じて受信されたサーバ150の制御信号や命令、コンテンツ、ファイルなどは、プロセッサ212やメモリ211に伝達されてよく、コンテンツやファイルなどは、電子機器110がさらに含むことのできる記憶媒体(上述した非一時的記憶装置)に格納されてよい。
【0031】
入力/出力インタフェース214は、入力/出力装置215とのインタフェース接続のための手段であってよい。例えば、入力装置は、キーボード、マウス、マイクロフォン、カメラなどの装置を含んでよく、出力装置は、ディスプレイ、スピーカ、触覚フィードバックデバイスなどのような装置を含んでよい。他の例として、入力/出力インタフェース214は、タッチスクリーンのように入力および出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置215は、電子機器110と1つの装置とで構成されてもよい。また、サーバ150の入力/出力インタフェース224は、サーバ150に接続するかサーバ150が含むことのできる入力または出力のための装置(図示せず)とのインタフェースのための手段であってよい。より具体的な例として、電子機器110のプロセッサ212がメモリ211にロードされたコンピュータプログラムの命令を処理するにあたり、サーバ150や電子機器120が提供するデータを利用して構成されるサービス画面やコンテンツが、入力/出力インタフェース214を通じてディスプレイに表示されてよい。
【0032】
また、他の実施形態において、電子機器110およびサーバ150は、
図2の構成要素よりも多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、電子機器110は、上述した入力/出力装置215のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、GPS(Global Positioning System)モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。より具体的な例として、電子機器110がスマートフォンである場合、一般的にスマートフォンが含んでいる加速度センサやジャイロセンサ、カメラモジュール、物理的な各種ボタン、タッチパネルを利用したボタン、入力/出力ポート、振動のための振動器などのような多様な構成要素が、電子機器110にさらに含まれるように実現されてよい。
【0033】
先ず、イメージに基づいてポーズ(3軸位置値と3軸方向値を含む)を計算する、すなわち、VLを実行する過程について説明する。
【0034】
図3~4は、VL過程を説明するための例示図である。
【0035】
VLとは、1枚あるいは複数枚のイメージから絶対位置を探索する技術である。
【0036】
サーバ150は、対象空間に対する地理的タグイメージ(geo-tagged images)を利用して3Dモデルに該当するVL用地
図400を事前に構成して維持してよい。
【0037】
図3に示すように、サーバ150は、電子機器(例えば、モバイル端末や移動ロボットなど)110が撮影したイメージをクエリイメージ301として受信する場合、VL用地図データベース(一例として、メモリ221)からクエリイメージ301と類似する参照イメージ302を抽出してよい。このとき、サーバ150は、ディープラーニング(deep learning)モデルを利用してクエリイメージ301からグローバルな特徴(フィーチャ)を抽出した後、抽出された特徴を利用して参照イメージ302を検索してよい。
【0038】
図4に示すように、サーバ150は、参照イメージ302に対応する3Dモデル303とともに、クエリイメージ301を利用したローカリゼーションによってクエリイメージ301の6自由度ポーズ(位置および方向)を推定してよい。言い換えれば、サーバ150は、ポーズがタギングされたデータを利用してVLを実行することにより、VL用地
図400上のクエリイメージ301に対応する地点として絶対座標を確認してよい。
【0039】
このように、イメージに基づいてカメラポーズ(3軸位置値と3軸方向値とを含む)を計算するためには、すなわち、VLを実行するためには、事前にデータ収集装備を利用して対象空間をスキャンした後、これから得られた(ポーズがタギングされた)データを加工してVL用地
図400を生成する。
【0040】
言い換えれば、イメージ基盤の測位技術であるVLは、VL用地
図400を事前に構築し、構築されたVL用地
図400内で位置を推定する方法によって測位を行う。
【0041】
このようなVL技術は、絶対位置を知ることができる上に、時間の経過によって誤差が累積するドリフト(drift)現象が発生しない反面、移動状況では精密な測位が困難である上に、多様な環境変化に対応しなければならないため、多くの演算量を必要とするし計算時間が長いという短所がある。
【0042】
移動状況で精密な測位を行うために、リアルタイム位置追跡が可能なオドメトリ技術が使用されてよい。オドメトリ技術としては、VIO(visual-inertial odometry)やWO(Wheel odometry)などが含まれてよく、イメージあるいはタイヤの回転情報によって相対的な位置を計算する方法によって測位を行う。
【0043】
このようなオドメトリ技術は、相対的なポーズを円滑に推定することが可能であり、演算量が比較的少なく、低仕様のコンピュータシステム、例えば、スマートフォンのような電子機器110、120、130、140での実行が可能である反面、相対的な位置変化量しか推定できないためドリフト現象が発生するという短所がある。
【0044】
以下では、VL技術とオドメトリ技術とを結合した測位技術として、VLとオドメトリとに基づく経路追跡方法およびシステムの具体的な実施形態について説明する。
【0045】
図5は、本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示したブロック図であり、
図6は、本発明の一実施形態における、サーバが実行することのできる方法の例を示したフローチャートである。
【0046】
本実施形態に係るサーバ150は、位置基盤のサービスを提供するものであり、特に、VL技術とオドメトリ技術とを結合した測位技術に基づいて位置基盤サービスを提供するものである。
【0047】
サーバ150のプロセッサ222は、
図6に係る経路追跡方法を実行するための構成要素として、
図5に示すように、相対ポーズ推定部510、絶対ポーズ推定部520、および経路最適化部530を含んでよい。実施形態によって、プロセッサ222の構成要素は、選択的にプロセッサ222に含まれても除外されてもよい。また、実施形態によって、プロセッサ222の構成要素は、プロセッサ222の機能の表現のために分離されても併合されてもよい。
【0048】
このようなプロセッサ222およびプロセッサ222の構成要素は、
図6の経路追跡方法が含む段階610~630を実行するようにサーバ150を制御してよい。例えば、プロセッサ222およびプロセッサ222の構成要素は、メモリ221が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる命令(instruction)を実行するように実現されてよい。
【0049】
ここで、プロセッサ222の構成要素は、サーバ150に格納されたプログラムコードが提供する命令にしたがってプロセッサ222によって実行される、プロセッサ222の互いに異なる機能(functions)の表現であってよい。例えば、サーバ150が相対ポーズを推定するように上述した命令にしたがってサーバ150を制御するプロセッサ222の機能的表現として、相対ポーズ推定部510が利用されてよい。
【0050】
プロセッサ222は、サーバ150の制御と関連する命令がロードされたメモリ221から必要な命令を読み取ってよい。この場合、前記読み取られた命令は、以下で説明する段610~630をプロセッサ222が実行するように制御するための命令を含んでよい。
【0051】
段階610で、相対ポーズ推定部510は、VIOやWOのようなオドメトリ技術により、カメラポーズ情報(3軸位置値と3軸方向値とを含む)として相対ポーズを推定してよい。相対ポーズ推定部510は、電子機器110で発生するクエリ情報として連続的なセンサ情報(例えば、連続するイメージや、タイヤの回転情報など)を受信してよく、連続的なセンサ情報の相対的なポーズ関係を計算してよい。
【0052】
段階620で、絶対ポーズ推定部520は、イメージを利用したローカリゼーション、すなわちVLにより、カメラポーズ情報として絶対ポーズを推定してよい。絶対ポーズ推定部520は、電子機器110で発生するクエリ情報としてクエリイメージを受信してよく、VLにより、受信されたクエリイメージの6自由度ポーズ(位置および方向)を推定してよい。絶対ポーズ推定部520は、ポーズがタギングされたデータを利用してVLを実行し、事前に構築しておいたVL用地
図400上のクエリイメージに対応する地点、すなわち絶対ポーズを推定してよい。
【0053】
段階630で、経路最適化部530は、段階610で推定された相対ポーズと段階620で推定された絶対ポーズとを利用してグラフ基盤のポーズ最適化によって最適化された経路を生成することにより、誤差が補正された最終ポーズとして経路を追跡してよい。オドメトリ技術だけでポーズを推定する場合には、ドリフト現象によって累積誤差が生じることがあり、VLによって推定されたポーズの場合には、オドメトリに比べて誤差範囲が大きくて推定値に対する信頼度が低下することがある。オドメトリ技術およびVL技術の短所を克服するために、経路最適化部530は、オドメトリによって推定された連続的なローカルポーズ情報とVLによって推定されたグローバルポーズ情報とを融合した最適化アルゴリズムを適用し、正確なポーズを推定することができる。
【0054】
経路最適化部530は、オドメトリによるポーズ推定結果とVLによるポーズ推定結果とを利用してグラフ基盤のポーズ最適化によって最適化された経路を生成してよい。
図7は、ポーズグラフ700の一例を示した図である。
図7に示すように、ポーズグラフ700は、オドメトリによって推定された相対ポーズを示すノード(以下、「オドメトリノード」とする)701とVLによって推定された絶対ポーズを示すノード(以下、「VLノード」とする)702とで構成されてよく、相対ポーズ間の差と相対ポーズと絶対ポーズとの間の差は、該当のノードを連結するエッジ703として表現してよい。
【0055】
オドメトリノード701およびオドメトリノード701のポーズの差、またはVLノード702およびオドメトリノード701のポーズの差を示すエッジ703の誤差は、数式(1)のように定義されてよい。
【0056】
【0057】
ここで、x*は、ポーズ情報を含むノードを意味し、
【0058】
【数2】
は、エッジで連結されたノード間のポーズ情報(Rは、rotation、tは、translation)を意味する。また、
【0059】
【数3】
は、変換行列(transformation matrix)を1×6ベクトルに変形する関数を意味するものであって、主に、らせん変位(screw displacement)技法を使用してよい。
【0060】
らせん変位技法は、数式(2)のように定義してよい。
【0061】
【数4】
ここで、Rは、回転行列(rotation matrix)であり、tは、併進ベクトル(translation vector)である。また、ξは、ツイストベクトル(twist vector)を意味し、w
*は、回転速度(rotation velocity)を、v
*は線速度(linear velocity)を意味する。
【0062】
ポーズグラフ700に含まれたすべてのエッジ703に対して誤差を合算すれば、数式(3)のように、ポーズグラフ誤差関数(pose-graph error function)
【0063】
【0064】
【0065】
ここで、Ωは、エッジの共分散(covariance)を意味する。
【0066】
経路最適化部530は、数式(4)のように、ポーズグラフ誤差関数の誤差が減る方向に、ノード701、702のポーズ値
【0067】
【数7】
をガウス・ニュトーン(Gauss-Newton)法によって再軌跡として推定してよい。
【0068】
【0069】
最適化されたポーズグラフでは、相対ポーズ値x*と絶対ポーズ値
【0070】
【数9】
とがノード701、702として定義され、ノード間のポーズ差
【0071】
【数10】
と共分散Ωは、エッジ703として定義されてよい。
【0072】
【0073】
【数11】
とを利用した経路最適化過程を説明するための例示図である。
【0074】
図8を参照すると、経路最適化部530は、t=0時点に推定された相対ポーズ値x
0に基づき、t=1時点に推定された相対ポーズ値x
1に対してt=1時点に推定された絶対ポーズ値l
1を要求してt=1時点の相対ポーズ値x
1を補正してよい。このとき、経路最適化部530は、t=1時点の相対ポーズ値x
1をt=1時点に取得した絶対ポーズ値l
1との誤差を最小化する方向に最適化してよい。
【0075】
図9を参照すると、経路最適化部530は、t=1時点の最適化されたポーズ値に基づき、t=2時点に推定された相対ポーズ値x
2に続いてt=3時点に推定された相対ポーズ値x
3に対してt=3時点に推定された絶対ポーズ値l
2を要求してt=3時点の相対ポーズ値x
3を補正してよい。このとき、経路最適化部530は、t=3時点の相対ポーズ値x
3をt=3時点に取得した絶対ポーズ値l
2との誤差を最小化する方向に最適化してよい。
【0076】
図10を参照すると、経路最適化部530は、t=3時点の最適化されたポーズ値に基づきながら、t=4時点に推定された相対ポーズ値x
4以後も前記と同じポーズ最適化過程を繰り返してよい。
【0077】
経路最適化部530は、オドメトリから推定された相対ポーズx*の累積誤差を補正するために、任意の時点あるいは事前に定められた周期にVLから推定された絶対ポーズ
【0078】
【0079】
経路最適化部530は、相対ポーズx*と絶対ポーズ
【0080】
【数13】
とを利用したグラフ構造によってポーズ間の経路を最適化することで、ポーズの推定正確度を向上させてよい。
【0081】
ポーズグラフの最適化によってポーズの推定正確度を向上させてよい。オドメトリから推定されたポーズである相対ポーズx*は、VLから推定されたポーズ、すなわち絶対ポーズ
【0082】
【数14】
の影響を受けるため、累積誤差に対する影響が補正される。
【0083】
VLから推定されたポーズ値
【0084】
【数15】
をそのままアプリケーションで活用するのではなく、VLから推定されたポーズ値
【0085】
【数16】
に基づいて累積誤差が補正されたポーズ値x
*を活用することにより、ポーズの円滑化(smoothing)効果を得ることができる。
【0086】
図11に示したポーズ推定結果グラフを見ると、本実施形態では、VLとオドメトリとを融合することによって最適化したポーズ(optimized pose)結果が検証データ(グラウンドトルース)(ground truth)に近い結果を得ることができることが分かる。
【0087】
本実施形態では、VL技術およびオドメトリ技術、さらには最適化アルゴリズムを融合することによって、測位正確度を向上させることができる。さらに、移動状況を考慮した測位技術の1つとしてVOT(visual object tracking)技術が追加で活用されてよい。ここで、VOTとは、イメージ認識技術に基づいて物体の位置や方向を6自由度で推定することのできる技術である。VLの動作の可否またはVLのポーズ推定結果によってVOT技術を追加で利用することにより、6自由度ポーズを推定することができる。例えば、VLが正しく動作しなかったりVLのポーズ結果が不正確な環境であったりする場合には、VOT技術によって事前にポーズを把握した物体やマーカを利用して測位を行うことができる。
【0088】
上述では、本実施形態に係る経路追跡方法がサーバ150で実行されるとして説明しているが、これに限定されてはならない。
図6の経路追跡方法がサーバ150との連動によって電子機器110で実行されてもよいことはもちろん、相互の連動環境の一部過程はサーバ150で実行され、残りの過程は電子機器110で実行されることも可能である。例えば、VLを利用したポーズ推定は、サーバ150で実行されてよく、オドメトリを利用したポーズ推定は、電子機器110で実行されてよい。このとき、経路最適化過程は、サーバ150と電子機器110のいずれか1つで実行されてよい。
【0089】
このように、本発明の実施形態によると、VLのポーズ結果とオドメトリのポーズ結果とを利用して経路最適化を実行することにより、適正な演算量で高い正確度の測位結果を提供することができる。また、本発明の実施形態によると、VL技術とオドメトリ技術とを融合した測位技術の場合、最小限のネットワークと低仕様のカメラだけでも移動状況で断絶のないリアルタイム測位が可能となることから、スマートフォンのようなモバイル機器はもちろん、移動ロボットや歩行ロボット、自動車などのような多様なデバイスに適用することができる。
【0090】
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、および/またはハードウェア構成要素とソフトウェア構成要素の組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【0091】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、コンピュータ記憶媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で格納されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記憶媒体に格納されてよい。
【0092】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に格納されてよい。ここで、媒体は、コンピュータ実行可能なプログラムを継続して格納するものであっても、実行またはダウンロードのために一時格納するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記憶手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散して存在するものであってもよい。媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROMおよびDVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどを含み、プログラム命令が格納されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを配布するアプリケーションストアやその他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記憶媒体または格納媒体が挙げられる。
【0093】
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【0094】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【符号の説明】
【0095】
222:プロセッサ
510:相対ポーズ推定部
520:絶対ポーズ推定部
530:経路最適化部