(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】特表2021-518622(P2021-518622A)
(43)【公表日】2021年8月2日
(54)【発明の名称】自己位置推定、マッピング、およびネットワークトレーニング
(51)【国際特許分類】
G06T 7/00 20170101AFI20210705BHJP
G06T 7/593 20170101ALI20210705BHJP
G05D 1/02 20200101ALI20210705BHJP
【FI】
G06T7/00 350C
G06T7/00 C
G06T7/00 650B
G06T7/593
G05D1/02 H
【審査請求】未請求
【予備審査請求】未請求
【全頁数】32
(21)【出願番号】特願2021-500360(P2021-500360)
(86)(22)【出願日】2019年3月18日
(85)【翻訳文提出日】2020年10月15日
(86)【国際出願番号】GB2019050755
(87)【国際公開番号】WO2019180414
(87)【国際公開日】20190926
(31)【優先権主張番号】1804400.8
(32)【優先日】2018年3月20日
(33)【優先権主張国】GB
(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JO,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
(71)【出願人】
【識別番号】520364037
【氏名又は名称】ユニヴァーシティ・オブ・エセックス・エンタープライジズ・リミテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ドンビン・グ
(72)【発明者】
【氏名】ルイハオ・リ
【テーマコード(参考)】
5H301
5L096
【Fターム(参考)】
5H301AA01
5H301AA04
5H301AA06
5H301AA07
5H301CC03
5H301CC04
5H301CC06
5H301CC07
5H301CC08
5H301CC10
5H301GG09
5L096BA04
5L096CA04
5L096CA05
5L096HA11
5L096JA16
5L096KA04
(57)【要約】
方法、システム、および装置が開示される。ターゲット環境の単眼画像系列に応答してターゲット環境を自己位置推定およびマッピングの同時実行を行う方法は、単眼画像系列を第1のニューラルネットワークおよび別のニューラルネットワークに提供するステップであって、第1のニューラルネットワークおよび別のニューラルネットワークが、ステレオ画像対の系列、およびステレオ画像対の幾何学的特性を定義する1つまたは複数の損失関数を使用して事前トレーニングされた、教師なしニューラルネットワークである、ステップと、単眼画像系列をさらに別のニューラルネットワーク内に提供するステップであって、さらに別のニューラルネットワークが、ループ閉じ込みを検出するように事前トレーニングされる、ステップと、第1のニューラルネットワーク、別のニューラルネットワーク、およびさらに別のニューラルネットワークの出力に応答してターゲット環境の自己位置推定およびマッピングの同時実行を行うステップとを含む。
【特許請求の範囲】
【請求項1】
ターゲット環境の単眼画像系列に応答して前記ターゲット環境を自己位置推定およびマッピングの同時実行を行う方法であって、
前記単眼画像系列を第1のニューラルネットワークおよび別のニューラルネットワークに提供するステップであって、前記第1のニューラルネットワークおよび前記別のニューラルネットワークが、ステレオ画像対の系列、および前記ステレオ画像対の幾何学的特性を定義する1つまたは複数の損失関数を使用して事前トレーニングされた、教師なしニューラルネットワークである、ステップと、
前記単眼画像系列をさらに別のニューラルネットワーク内に提供するステップであって、前記さらに別のニューラルネットワークが、ループ閉じ込みを検出するように事前トレーニングされる、ステップと、
前記第1のニューラルネットワーク、前記別のニューラルネットワーク、および前記さらに別のニューラルネットワークの出力に応答して前記ターゲット環境の自己位置推定およびマッピングの同時実行を行うステップと
を含む、方法。
【請求項2】
前記1つまたは複数の損失関数が、前記ステレオ画像対の対応する特徴間の関係を定義する空間的制約、および前記ステレオ画像対の系列の連続画像の対応する特徴間の関係を定義する時間的制約を含むことをさらに含む、請求項1に記載の方法。
【請求項3】
前記第1のニューラルネットワークおよび前記別のニューラルネットワークがそれぞれ、3つ以上のステレオ画像対からなるバッチを前記第1のニューラルネットワークおよび前記別のニューラルネットワークに入力することによって事前トレーニングされることをさらに含む、請求項1または2に記載の方法。
【請求項4】
前記第1のニューラルネットワークが前記ターゲット環境の深度表現をもたらし、前記別のニューラルネットワークが前記ターゲット環境における姿勢表現をもたらすことをさらに含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記別のニューラルネットワークが、前記姿勢表現に関連する不確実性の大きさをもたらすことをさらに含む、請求項4に記載の方法。
【請求項6】
前記第1のニューラルネットワークが、エンコーダ-デコーダタイプのニューラルネットワークであることをさらに含む、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記別のニューラルネットワークが、長短期記憶を含んだ再帰型畳み込みニューラルネットワークタイプのニューラルネットワークであることをさらに含む、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記さらに別のニューラルネットワークが、前記ターゲット環境の疎特徴表現をもたらすことをさらに含む、請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記さらに別のニューラルネットワークが、ResNetベースのDNNタイプのニューラルネットワークであることをさらに含む、請求項1から8のいずれか一項に記載の方法。
【請求項10】
前記第1のニューラルネットワーク、前記別のニューラルネットワーク、および前記さらに別のニューラルネットワークの出力に応答して前記ターゲット環境の自己位置推定およびマッピングの同時実行を行うステップが、
前記別のニューラルネットワークからの出力および前記さらに別のニューラルネットワークからの出力に応答して姿勢出力をもたらすステップ
をさらに含む、請求項1から9のいずれか一項に記載の方法。
【請求項11】
前記姿勢出力を姿勢の局所的接続および大域的接続に基づいてもたらすステップをさらに含む、請求項10に記載の方法。
【請求項12】
前記姿勢出力に応答して、姿勢グラフオプティマイザを使用して、改良された姿勢出力をもたらすステップをさらに含む、請求項11に記載の方法。
【請求項13】
ターゲット環境の単眼画像系列に応答して前記ターゲット環境の自己位置推定およびマッピングの同時実行を行うためのシステムであって、
第1のニューラルネットワークと、
別のニューラルネットワークと、
さらに別のニューラルネットワークと
を備え、
前記第1のニューラルネットワークおよび前記別のニューラルネットワークが、ステレオ画像対の系列、および前記ステレオ画像対の幾何学的特性を定義する1つまたは複数の損失関数を使用して事前トレーニングされた、教師なしニューラルネットワークであり、前記さらに別のニューラルネットワークが、ループ閉じ込みを検出するように事前トレーニングされる、
システム。
【請求項14】
前記1つまたは複数の損失関数が、前記ステレオ画像対の対応する特徴間の関係を定義する空間的制約、および前記ステレオ画像対の系列の連続画像の対応する特徴間の関係を定義する時間的制約を含むことをさらに含む、請求項13に記載のシステム。
【請求項15】
前記第1のニューラルネットワークおよび前記別のニューラルネットワークがそれぞれ、3つ以上のステレオ画像対からなるバッチを前記第1のニューラルネットワークおよび前記別のニューラルネットワークに入力することによって事前トレーニングされることをさらに含む、請求項13または14に記載のシステム。
【請求項16】
前記第1のニューラルネットワークが前記ターゲット環境の深度表現をもたらし、前記別のニューラルネットワークが前記ターゲット環境における姿勢表現をもたらすことをさらに含む、請求項13から15のいずれか一項に記載のシステム。
【請求項17】
前記別のニューラルネットワークが、前記姿勢表現に関連する不確実性の大きさをもたらすことをさらに含む、請求項16に記載のシステム。
【請求項18】
前記ステレオ画像対の系列の各画像対が、トレーニング環境の第1の画像および前記トレーニング環境の別の画像を備え、前記別の画像が、前記第1の画像に対する所定のオフセットを有し、前記第1の画像および前記別の画像が、実質的に同時に捕捉されたものであることをさらに含む、請求項13から17のいずれか一項に記載のシステム。
【請求項19】
前記第1のニューラルネットワークが、エンコーダ-デコーダタイプニューラルネットワークのニューラルネットワークであることをさらに含む、請求項13から18のいずれか一項に記載のシステム。
【請求項20】
前記別のニューラルネットワークが、長短期記憶を含んだ再帰型畳み込みニューラルネットワークタイプのニューラルネットワークであることをさらに含む、請求項13から19のいずれか一項に記載のシステム。
【請求項21】
前記さらに別のニューラルネットワークが、前記ターゲット環境の疎特徴表現をもたらすことをさらに含む、請求項13から20のいずれか一項に記載のシステム。
【請求項22】
前記さらに別のニューラルネットワークが、ResNetベースのDNNタイプのニューラルネットワークであることをさらに含む、請求項13から21のいずれか一項に記載のシステム。
【請求項23】
ターゲット環境の単眼画像系列に応答して前記ターゲット環境の自己位置推定およびマッピングの同時実行を行うために、1つまたは複数の教師なしニューラルネットワークをトレーニングする方法であって、
ステレオ画像対の系列を準備するステップと、
第1のニューラルネットワークおよび別のニューラルネットワークを準備するステップであって、前記第1のニューラルネットワークおよび前記別のニューラルネットワークが、前記ステレオ画像対の幾何学的特性を定義する1つまたは複数の損失関数と関連付けられた教師なしニューラルネットワークである、ステップと、
前記ステレオ画像対の系列を、前記第1のニューラルネットワークおよび前記別のニューラルネットワークに提供するステップと
を含む、方法。
【請求項24】
前記第1のニューラルネットワークおよび前記別のニューラルネットワークが、3つ以上のステレオ画像対からなるバッチを前記第1のニューラルネットワークおよび前記別のニューラルネットワークに入力することによってトレーニングされることをさらに含む、請求項23に記載の方法。
【請求項25】
前記ステレオ画像対の系列の各画像対が、トレーニング環境の第1の画像および前記トレーニング環境の別の画像を備え、前記別の画像が、前記第1の画像に対する所定のオフセットを有し、前記第1の画像および前記別の画像が、実質的に同時に捕捉されたものであることをさらに含む、請求項23または24に記載の方法。
【請求項26】
コンピュータプログラムであって、命令を備え、前記命令が、コンピュータによって前記プログラムが実行されると前記コンピュータに請求項1から12または請求項23から25のいずれか一項に記載の方法を遂行させる、コンピュータプログラム。
【請求項27】
コンピュータ可読媒体であって、命令を備え、前記命令が、コンピュータによって実行されると前記コンピュータに請求項1から12または請求項23から25のいずれか一項に記載の方法を遂行させる、コンピュータ可読媒体。
【請求項28】
ターゲット環境の単眼画像系列に応答して前記ターゲット環境の自己位置推定およびマッピングの同時実行を行うためのシステムであって、
第1のニューラルネットワークと、
別のニューラルネットワークと、
ループ閉じ込み検出部と
を備え、
前記第1のニューラルネットワークおよび前記別のニューラルネットワークが、ステレオ画像対の系列、および前記ステレオ画像対の幾何学的特性を定義する1つまたは複数の損失関数を使用して事前トレーニングされた、教師なしニューラルネットワークである、
システム。
【請求項29】
請求項13から22のいずれか一項に記載のシステムを備えたビークル。
【請求項30】
自動車両、鉄道車両、船舶、航空機、ドローン、または宇宙機である、請求項29に記載のビークル。
【請求項31】
請求項13から22のいずれか一項に記載のシステムを備えた仮想現実および/または拡張現実を提供するための装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ターゲット環境における自己位置推定およびマッピングの同時実行(simultaneous localisation and mapping)(SLAM)のためのシステムおよび方法に関する。詳細には、それに限定されないが、本発明は、ターゲット環境の単眼画像系列を使用したSLAMを可能にすることのできる、事前トレーニングされた教師なしニューラルネットワークの使用に関する。
【背景技術】
【0002】
ビジュアルSLAM技法は、典型的にはカメラから取得された環境の画像系列を使用して、その環境の3次元深度表現を生成し、現在の視点の姿勢を決定するものである。ビジュアルSLAM技法は、ロボットやビークルなどのエージェントが環境内を移動する、ロボティクス、ビークル自律性、仮想現実/拡張現実(VR/AR)、およびマッピングなどの応用分野に広く使用される。環境は、現実環境または仮想環境とすることができる。
【0003】
高精度で高信頼のビジュアルSLAM技法を開発することは、ロボティクスおよびコンピュータビジョンのコミュニティにおける多大な取組みの焦点になっている。多くの従来のビジュアルSLAMシステムでは、モデルベースの技法を使用している。これらの技法は、連続画像内の対応する特徴の変化を特定し、その変化を数学モデルに入力して深度および姿勢を決定することによって、機能するものである。
【0004】
一部のモデルベースの技法は、ビジュアルSLAM応用分野における可能性を示しているが、これらの技法の精度および信頼性は、低光量レベル、高いコントラスト、および未知の環境に遭遇したときのような困難な状況において劣っていることがある。モデルベースの技法はまた、経時的に性能を変化または向上させることができない。
【0005】
最近の研究では、人工ニューラルネットワークとして知られる深層学習アルゴリズムが、いくつかの既存の技法のもつ問題の一部に対処できることが示されている。人工ニューラルネットワークは、接続された「ニューロン」の層で構成された、脳に似たトレーニング可能なモデルである。人工ニューラルネットワークは、それらがどのようにトレーニングされるかに応じて、教師ありまたは教師なしに分類することができる。
【0006】
最近の研究では、教師ありニューラルネットワークがビジュアルSLAMシステムに有用となり得ることが実証されている。しかし、教師ありニューラルネットワークの主要な欠点は、ラベルありデータを使用してトレーニングしなければならない、ということである。ビジュアルSLAMシステムでは、そのようなラベルありデータは、典型的には、深度および姿勢がすでに分かっている1つまたは複数の画像系列からなる。そのようなデータを生成することは、しばしば困難であり高コストである。実際のところ、これがしばしば意味するのは、教師ありニューラルネットワークをより少量のデータを使用してトレーニングしなければならない、ということであり、このため、特に困難な状況または未知の状況において、教師ありニューラルネットワークの精度および信頼性が低下するおそれがある。
【0007】
他の研究では、教師なしニューラルネットワークがコンピュータビジョン応用分野に使用できることが実証されている。教師なしニューラルネットワークの利点の1つが、ラベルなしデータを使用してトレーニングできる、ということである。これにより、ラベルありトレーニングデータを生成するという問題が解消し、またこれが意味するのは、しばしば、これらのニューラルネットワークをより大量のデータセットを使用してトレーニングできる、ということである。しかし、コンピュータビジョン応用分野では今日まで、教師なしニューラルネットワークは、(SLAMではなく)ビジュアルオドメトリに限定されており、また累積ドリフトを低減または解消することができていない。これが、教師なしニューラルネットワークのより幅広い使用を阻む大きな障壁となっている。
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述した問題を少なくとも一部軽減することが、本発明の一目的である。
【0009】
ターゲット環境の自己位置推定およびマッピングの同時実行を、ターゲット環境の単眼画像系列を使用して行うことが、本発明のいくつかの実施形態の一目的である。
【0010】
シーンについての姿勢および深度の推定を行い、それによって、困難な環境または未知の環境においてさえ姿勢および深度の推定が高精度および高信頼であることが、本発明のいくつかの実施形態の一目的である。
【0011】
自己位置推定およびマッピングの同時実行を1つまたは複数の教師なしニューラルネットワークを使用して行い、それによって、1つまたは複数の教師なしニューラルネットワークがラベルなしデータを使用して事前トレーニングされることが、本発明のいくつかの実施形態の一目的である。
【0012】
深層学習ベースのSLAMシステムをラベルなしデータを使用してトレーニングする方法を提供することが、本発明のいくつかの実施形態の一目的である。
【課題を解決するための手段】
【0013】
本発明の第1の態様によれば、ターゲット環境の単眼画像系列に応答してターゲット環境を自己位置推定およびマッピングの同時実行を行う方法であって、単眼画像系列を第1のニューラルネットワークおよび別のニューラルネットワークに提供するステップであって、第1のニューラルネットワークおよび別のニューラルネットワークが、ステレオ画像対の系列、およびステレオ画像対の幾何学的特性を定義する1つまたは複数の損失関数を使用して事前トレーニングされた、教師なしニューラルネットワークである、ステップと、単眼画像系列をさらに別のニューラルネットワーク内に提供するステップであって、さらに別のニューラルネットワークが、ループ閉じ込みを検出するように事前トレーニングされる、ステップと、第1のニューラルネットワーク、別のニューラルネットワーク、およびさらに別のニューラルネットワークの出力に応答してターゲット環境の自己位置推定およびマッピングの同時実行を行うステップとを含む、方法が提供される。
【0014】
適宜、方法は、1つまたは複数の損失関数が、ステレオ画像対の対応する特徴間の関係を定義する空間的制約、およびステレオ画像対の系列の連続画像の対応する特徴間の関係を定義する時間的制約を含むことをさらに含む。
【0015】
適宜、方法は、第1のニューラルネットワークおよび別のニューラルネットワークがそれぞれ、3つ以上のステレオ画像対からなるバッチを第1のニューラルネットワークおよび別のニューラルネットワークに入力することによって事前トレーニングされることをさらに含む。
【0016】
適宜、方法は、第1のニューラルネットワークがターゲット環境の深度表現をもたらし、別のニューラルネットワークがターゲット環境における姿勢表現をもたらすことをさらに含む。
【0017】
適宜、方法は、別のニューラルネットワークが、姿勢表現に関連する不確実性の大きさをもたらすことをさらに含む。
【0018】
適宜、方法は、第1のニューラルネットワークが、エンコーダ-デコーダタイプのニューラルネットワークであることをさらに含む。
【0019】
適宜、方法は、別のニューラルネットワークが、長短期記憶を含んだ再帰型畳み込みニューラルネットワークタイプのニューラルネットワークであることをさらに含む。
【0020】
適宜、方法は、さらに別のニューラルネットワークが、ターゲット環境の疎特徴表現をもたらすことをさらに含む。
【0021】
適宜、方法は、さらに別のニューラルネットワークが、ResNetベースのDNNタイプのニューラルネットワークであることをさらに含む。
【0022】
適宜、第1のニューラルネットワーク、別のニューラルネットワーク、およびさらに別のニューラルネットワークの出力に応答してターゲット環境の自己位置推定およびマッピングの同時実行を行うステップが、別のニューラルネットワークからの出力およびさらに別のニューラルネットワークからの出力に応答して姿勢出力をもたらすステップをさらに含む。
【0023】
適宜、方法は、前記姿勢出力を姿勢の局所的接続および大域的接続に基づいてもたらすステップをさらに含む。
【0024】
適宜、方法は、前記姿勢出力に応答して、姿勢グラフオプティマイザを使用して、改良された姿勢出力をもたらすステップをさらに含む。
【0025】
本発明の第2の態様によれば、ターゲット環境の単眼画像系列に応答してターゲット環境の自己位置推定およびマッピングの同時実行を行うためのシステムであって、第1のニューラルネットワークと、別のニューラルネットワークと、さらに別のニューラルネットワークとを備え、第1のニューラルネットワークおよび別のニューラルネットワークが、ステレオ画像対の系列、およびステレオ画像対の幾何学的特性を定義する1つまたは複数の損失関数を使用して事前トレーニングされた、教師なしニューラルネットワークであり、さらに別のニューラルネットワークが、ループ閉じ込みを検出するように事前トレーニングされる、システムが提供される。
【0026】
適宜、システムは、1つまたは複数の損失関数が、ステレオ画像対の対応する特徴間の関係を定義する空間的制約、およびステレオ画像対の系列の連続画像の対応する特徴間の関係を定義する時間的制約を含むことをさらに含む。
【0027】
適宜、システムは、第1のニューラルネットワークおよび別のニューラルネットワークがそれぞれ、3つ以上のステレオ画像対からなるバッチを第1のニューラルネットワークおよび別のニューラルネットワークに入力することによって事前トレーニングされることをさらに含む。
【0028】
適宜、システムは、第1のニューラルネットワークがターゲット環境の深度表現をもたらし、別のニューラルネットワークがターゲット環境における姿勢表現をもたらすことをさらに含む。
【0029】
適宜、システムは、別のニューラルネットワークが、姿勢表現に関連する不確実性の大きさをもたらすことをさらに含む。
【0030】
適宜、システムは、ステレオ画像対の系列の各画像対が、トレーニング環境の第1の画像およびトレーニング環境の別の画像を備え、前記別の画像が、第1の画像に対する所定のオフセットを有し、前記第1の画像および前記別の画像が、実質的に同時に捕捉されたものであることをさらに含む。
【0031】
適宜、システムは、第1のニューラルネットワークが、エンコーダ-デコーダタイプニューラルネットワークのニューラルネットワークであることをさらに含む。
【0032】
適宜、システムは、別のニューラルネットワークが、長短期記憶を含んだ再帰型畳み込みニューラルネットワークタイプのニューラルネットワークであることをさらに含む。
【0033】
適宜、システムは、さらに別のニューラルネットワークが、ターゲット環境の疎特徴表現をもたらすことをさらに含む。
【0034】
適宜、システムは、さらに別のニューラルネットワークが、ResNetベースのDNNタイプのニューラルネットワークであることをさらに含む。
【0035】
本発明の第3の態様によれば、ターゲット環境の単眼画像系列に応答してターゲット環境の自己位置推定およびマッピングの同時実行を行うために、1つまたは複数の教師なしニューラルネットワークをトレーニングする方法であって、ステレオ画像対の系列を準備するステップと、第1のニューラルネットワークおよび別のニューラルネットワークを準備するステップであって、第1のニューラルネットワークおよび別のニューラルネットワークが、ステレオ画像対の幾何学的特性を定義する1つまたは複数の損失関数と関連付けられた教師なしニューラルネットワークである、ステップと、ステレオ画像対の系列を、第1のニューラルネットワークおよび別のニューラルネットワークに提供するステップとを含む、方法が提供される。
【0036】
適宜、方法は、第1のニューラルネットワークおよび別のニューラルネットワークが、3つ以上のステレオ画像対からなるバッチを第1のニューラルネットワークおよび別のニューラルネットワークに入力することによってトレーニングされることをさらに含む。
【0037】
適宜、方法は、ステレオ画像対の系列の各画像対が、トレーニング環境の第1の画像およびトレーニング環境の別の画像を備え、前記別の画像が、第1の画像に対する所定のオフセットを有し、前記第1の画像および前記別の画像が、実質的に同時に捕捉されたものであることをさらに含む。
【0038】
本発明の第4の態様によれば、コンピュータプログラムであって、命令を備え、命令が、コンピュータによってプログラムが実行されるとコンピュータに第1の態様または第3の態様の方法を遂行させる、コンピュータプログラムが提供される。
【0039】
本発明の第5の態様によれば、コンピュータ可読媒体であって、命令を備え、命令が、コンピュータによって実行されるとコンピュータに第1の態様または第3の態様の方法を遂行させる、コンピュータ可読媒体が提供される。
【0040】
本発明の第6の態様によれば、ターゲット環境の単眼画像系列に応答してターゲット環境の自己位置推定およびマッピングの同時実行を行うためのシステムであって、第1のニューラルネットワークと、別のニューラルネットワークと、ループ閉じ込み検出部とを備え、第1のニューラルネットワークおよび別のニューラルネットワークが、ステレオ画像対の系列、およびステレオ画像対の幾何学的特性を定義する1つまたは複数の損失関数を使用して事前トレーニングされた、教師なしニューラルネットワークである、システムが提供される。
【0041】
本発明の第7の態様によれば、第2の態様のシステムを備えたビークルが提供される。
【0042】
適宜、ビークルは、自動車両、鉄道車両、船舶、航空機、ドローン、または宇宙機である。
【0043】
本発明の第8の態様によれば、第2の態様のシステムを備えた仮想現実および/または拡張現実を提供するための装置が提供される。
【0044】
本発明の別の態様によれば、教師なし深層学習法を利用する単眼ビジュアルSLAMシステムが提供される。
【0045】
本発明のさらに別の態様によれば、単眼カメラによって捕捉された画像データに基づいて姿勢および深度とオプションで点群を推定するための、教師なし深層学習アーキテクチャが提供される。
【0046】
本発明のいくつかの実施形態は、単眼画像を利用したターゲット環境の自己位置推定およびマッピングの同時実行を可能にする。
【0047】
本発明のいくつかの実施形態は、後にターゲット環境におけるエージェントの自己位置推定およびマッピングの同時実行に使用することのできる1つまたは複数のニューラルネットワークをトレーニングするための方法を提供する。
【0048】
本発明のいくつかの実施形態では、ターゲット環境のマップのパラメータがその環境におけるエージェントの姿勢とともに推論されることが可能である。
【0049】
本発明のいくつかの実施形態では、環境の表現としてトポロジカルマップが作成されることが可能である。
【0050】
本発明のいくつかの実施形態は、教師なし深層学習技法を使用して、姿勢、深度マップ、および3D点群を推定する。
【0051】
本発明のいくつかの実施形態は、ラベルありトレーニングデータを必要とせず、つまり、トレーニングデータの収集が容易である。
【0052】
本発明のいくつかの実施形態は、単眼画像系列から決定された、推定された姿勢および深度に対して、スケーリングを利用する。このようにして、トレーニング段階動作モード中に絶対スケールが学習される。
【0053】
本発明のいくつかの実施形態は、ループ閉じ込みを検出する。ループ閉じ込みが検出された場合、姿勢グラフが構築され得、グラフ最適化アルゴリズムが実行され得る。これが、姿勢推定における累積ドリフトの低減を助け、教師なし深層学習法と組み合わされたときに推定精度の向上を助けることができる。
【0054】
本発明のいくつかの実施形態は、教師なし深層学習を利用してネットワークをトレーニングする。したがって、ラベルありデータセットではなく、収集がより容易なラベルなしデータセットを使用することができる。
【0055】
本発明のいくつかの実施形態は、姿勢、深度、および点群を同時に推定する。いくつかの実施形態では、これを各入力画像について生成することができる。
【0056】
本発明のいくつかの実施形態は、困難なシーンにおいてロバストに機能することができる。例えば、歪んだ画像および/または露出過度のいくつかの画像および/または夜間もしくは降雨時に収集されたいくつかの画像を使用するように強いられているときである。
【0057】
ここで、本発明のいくつかの実施形態について、ほんの一例として、添付の図面を参照して以下に説明する。
【図面の簡単な説明】
【0058】
【
図1】第1のニューラルネットワークおよび少なくとも1つの別のニューラルネットワークをトレーニングするトレーニングシステムおよび方法を示す図である。
【
図2】第1のニューラルネットワークの構成を示す概略図である。
【
図3】別のニューラルネットワークの構成を示す概略図である。
【
図4】ターゲット環境の単眼画像系列に応答してターゲット環境の自己位置推定およびマッピングの同時実行を行うためのシステムおよび方法を示す概略図である。
【発明を実施するための形態】
【0059】
図面では、同様の参照番号が同様の部分を示す。
【0060】
図1は、第1の教師なしニューラルネットワークおよび別の教師なしニューラルネットワークをトレーニングするトレーニングシステムおよび方法の図を示す。そのような教師なしニューラルネットワークは、ターゲット環境におけるロボットやビークルなどのエージェントの自己位置推定およびマッピングのためのシステムの一部として利用することができる。
図1に示すように、トレーニングシステム100は、第1の教師なしニューラルネットワーク110、および別の教師なしニューラルネットワーク120を含む。第1の教師なしニューラルネットワークは、本明細書では、マッピングネット110と呼ばれることがあり、別の教師なしニューラルネットワークは、本明細書では、トラッキングネット120と呼ばれることがある。
【0061】
下でより詳細に説明するように、トレーニング後、マッピングネット110およびトラッキングネット120は、ターゲット環境の単眼画像系列に応答してターゲット環境の自己位置推定およびマッピングの同時実行を行うのを助けるために使用することができる。マッピングネット110は、ターゲット環境の深度表現(深度)をもたらすことができ、トラッキングネット120は、ターゲット環境における姿勢表現(姿勢)をもたらすことができる。
【0062】
マッピングネット110によってもたらされる深度表現は、ターゲット環境の物理的構造物の表現とすることができる。深度表現は、入力画像と同じ比率を有するアレイとしての、マッピングネット110からの出力としてもたらされ得る。このようにして、アレイ内の各要素が入力画像内の画素と対応する。アレイ内の各要素は、最も近い物理的構造物までの距離を表す数値を含むことができる。
【0063】
姿勢表現は、視点の現在の位置および配向の表現とすることができる。これは、位置/配向の6自由度(6DOF)表現としてもたらされ得る。デカルト座標系では、6DOF姿勢表現は、x軸、y軸、およびz軸に沿った位置、ならびにx軸、y軸、およびz軸の周りの回転を表したものに対応することができる。姿勢表現は、時間にわたる視点の動きを示す姿勢マップ(姿勢グラフ)を構築するために使用することができる。
【0064】
姿勢表現と深度表現はどちらも、(相対値ではなく)絶対値として、すなわち、現実世界の物理的寸法に対応する値として、もたらされ得る。
【0065】
トラッキングネット120は、姿勢表現に関連する不確実性の大きさをもたらすこともできる。これは、トラッキングネットから出力された姿勢表現の推定精度を表す統計値とすることができる。
【0066】
トレーニングするトレーニングシステムおよび方法は、1つまたは複数の損失関数130も含む。損失関数は、マッピングネット110およびトラッキングネット120をラベルなしトレーニングデータを使用してトレーニングするために使用される。損失関数130にラベルなしトレーニングデータが提供され、損失関数130はこれを使用して、マッピングネット110およびトラッキングネット120の期待される出力(すなわち深度および姿勢)を計算する。トレーニング中、マッピングネット110およびトラッキングネット120の実際の出力が、それらの期待される出力と絶えず比較されて、現在の誤差が計算される。次いで、現在の誤差が、マッピングネット110およびトラッキングネット120をバックプロパゲーションとして知られるプロセスによってトレーニングするために使用される。このプロセスは、現在の誤差を、マッピングネット110およびトラッキングネット120のトレーニング可能なパラメータを調整することによって最小限に抑えようと試みるものである。誤差を低減させるようにパラメータを調整するためのそのような技法には、勾配降下など、当技術分野で知られている1つまたは複数のプロセスが関与し得る。
【0067】
本明細書において下でより詳細に説明するように、トレーニング中、マッピングネットおよびトラッキングネットに、ステレオ画像対140
0,1...nの系列が提供される。系列は、3つ以上のステレオ画像対からなるバッチを備えることができる。系列は、トレーニング環境のものとすることができる。系列は、トレーニング環境中を移動するステレオカメラから取得され得る。他の実施形態では、系列は、仮想トレーニング環境のものとすることができる。画像は、カラー画像とすることができる。
【0068】
ステレオ画像対の系列の各ステレオ画像対は、トレーニング環境の第1の画像150
0,1...nおよびトレーニング環境の別の画像155
0,1...nを備えることができる。初期時間tに関連する第1のステレオ画像対が準備される。t+1についての次の画像対が準備され、ここで1は、予め設定された時間間隔を示す。別の画像は、第1の画像に対して所定のオフセットを有することができる。第1の画像および別の画像は、実質的に同時に、すなわち実質的に同じ時点で捕捉されたものとすることができる。したがって、
図1に示すシステムトレーニング方式では、マッピングネットおよびトラッキングネットへの入力は、現在の時間ステップtにおける左画像系列(I
l,t+n,...,I
l,t+1,I
l,t)および右画像系列(I
r,t+n,...,I
r,t+1,I
r,t)として表されたステレオ画像系列である。各時間ステップにおいて、入力系列の始めに新たな画像の対が加えられ、入力系列から最終対が除去される。入力系列のサイズは一定に保たれる。単眼画像系列の代わりにステレオ画像系列をトレーニングに使用する目的は、姿勢および深度の推定の絶対スケールを取り戻すことである。
【0069】
図1に示す損失関数130は、本明細書において説明するようにマッピングネット110およびトラッキングネット120をバックプロパゲーションプロセスを介してトレーニングするために使用される。損失関数は、トレーニング中に使用される特定のステレオ画像対の系列のステレオ画像対の幾何学的特性についての情報を含む。このようにして、損失関数は、トレーニング中に使用される画像系列に特有の幾何学的情報を含む。例えば、ステレオ画像系列が特定のステレオカメラセットアップによって生成される場合、損失関数は、そのセットアップの幾何形状に関係する情報を含むことになる。これは、損失関数が、ステレオトレーニング画像から物理的環境についての情報を抽出できる、ということを意味する。適宜、損失関数は、空間的損失関数および時間的損失関数を含むことができる。
【0070】
(本明細書では空間的制約とも呼ばれる)空間的損失関数は、トレーニング中に使用されるステレオ画像対の系列のステレオ画像対の対応する特徴間の関係を定義することができる。空間的損失関数は、左右画像対における対応する点間の幾何学的な投影制約を表すことができる。
【0071】
空間的損失関数はそれら自体が、3つのサブセット損失関数を含むことができる。これらは、空間的光学的整合性損失関数(spatial photometric consistency loss function)、視差整合性損失関数(disparity consistency loss function)、および姿勢整合性損失関数(pose consistency loss function)と呼ばれる。
【0072】
1.空間的光学的整合性損失関数
ステレオ画像の対140について、一方の画像内のオーバーラップする各画素iには、他方の画像内に対応する画素がある。オリジナルの右画像I
rから左画像
【数1】
を合成するには、画像I
r内のオーバーラップされるどの画素iも、画像I
l内のその対応物を、水平距離H
iを用いて見出さなければならない。マッピングネットからその推定された深度値
【数2】
が与えられると、距離H
iは
【数3】
によって計算することができ、ここで、Bはステレオカメラの基線であり、fは焦点距離である。
【0073】
計算されたH
iに基づいて、画像I
lを画像I
rから空間トランスフォーマを通じてワーピングさせることによって、
【数4】
を合成することができる。同じプロセスを、右画像
【数5】
を合成するために適用することができる。
【0074】
【数6】
および
【数7】
がそれぞれ、オリジナルの右画像I
rおよび左画像I
lから合成された左画像および右画像であると仮定されたい。空間的光学的整合性損失関数は、
【数8】
と定義され、ここで、λ
sは重みであり、||・||
1はL1ノルムであり、fs(・)=(1-SSIM(・))/2であり、SSIM(・)は、合成された画像の質を評価するための構造的類似性(SSIM)メトリックである。
【0075】
2.視差整合性損失関数
視差マップは、
Q=H×W
によって定義することができ、ここで、Wは画像の幅である。
【0076】
Q
lおよびQ
rが、左視差マップおよび右視差マップであると仮定されたい。視差マップは、推定された深度マップから計算される。
【数9】
および
【数10】
をそれぞれ、Q
rおよびQ
lから合成することができる。視差整合性損失関数は、
【数11】
と定義される。
【0077】
3.姿勢整合性損失関数
左画像系列および右画像系列が、トラッキングネットを使用して6自由度変換を別々に推定するために使用される場合、これらの相対的な変換が全く同じになることが望ましい場合がある。これら2グループの姿勢推定間の差異を、左-右姿勢整合性損失として導入することができる。
【数12】
および
【数13】
が、トラッキングネットによって左画像系列および右画像系列から推定された姿勢であり、λ
pおよびλ
rが、平行移動重みおよび回転重みであると仮定されたい。これら2つの推定間の差異が、姿勢整合性損失
【数14】
と定義される。
【0078】
(本明細書では時間的制約とも呼ばれる)時間的損失関数は、トレーニング中に使用されるステレオ画像対の系列の連続画像の対応する特徴間の関係を定義する。このようにして、時間的損失関数は、2つの連続する単眼画像における対応する点間の幾何学的な投影制約を表す。
【0079】
時間的損失関数はそれら自体が、2つのサブセット損失関数を含むことができる。これらは、時間的光学的整合性損失関数(temporal photometric consistency loss function)、および3D幾何学的位置合わせ損失関数(3D geometric registration loss function)と呼ばれる。
【0080】
1.時間的光学的整合性損失関数
l
kおよびl
k+1が、時間kおよびk+1における2つの画像であると仮定されたい。
【数15】
および
【数16】
がそれぞれ、l
k+1およびl
kから合成される。光学的誤差マップは、
【数17】
および
【数18】
である。時間的光学的損失関数は、
【数19】
と定義され、ここで、
【数20】
および
【数21】
は、対応する光学的誤差マップのマスクである。
【0081】
画像合成プロセスに先立って、幾何学的モデルおよび空間トランスフォーマを使用する。画像I
k+1から画像
【数22】
を合成するには、画像I
k内のオーバーラップされるどの画素p
kも、画像I
k+1内のその対応物
【数23】
を、
【数24】
によって見出さなければならず、ここで、Kは既知のカメラ固有の行列であり、
【数25】
は、マッピングネットから推定された画素の深度であり、
【数26】
は、トラッキングネットによって推定された、画像I
kから画像I
k+1へのカメラ座標変換行列である。この式に基づいて、画像I
kを画像I
k+1から空間トランスフォーマを通じてワーピングさせることによって、
【数27】
が合成される。
【0082】
同じプロセスを、画像
【数28】
を合成するために適用することができる。
【0084】
P
kおよびP
k+1が、時間kおよびk+1における2つの3D点群であると仮定されたい。
【数29】
および
【数30】
がそれぞれ、P
k+1およびP
kから合成される。幾何学的誤差マップは、
【数31】
および
【数32】
である。3D幾何学的位置合わせ損失関数は、
【数33】
と定義され、ここで、
【数34】
および
【数35】
は、対応する幾何学的誤差マップのマスクである。
【0085】
上で説明したように、時間的画像損失関数は、マスク
【数36】
、
【数37】
、
【数38】
、
【数39】
を使用する。マスクは、画像内の移動物体の存在を除去するかまたは低減させ、それにより、ビジュアルSLAM技法にとっての主な誤差源のうちの1つを低減させるために使用される。マスクは、トラッキングネットから出力される、姿勢の推定された不確実性から計算される。このプロセスについて、下でより詳細に説明する。
【0086】
不確実性損失関数
光学的誤差マップ
【数40】
、
【数41】
、ならびに幾何学的誤差マップ
【数42】
および
【数43】
は、オリジナル画像I
k、I
k+1および推定された点群P
k、P
k+1から計算される。
【数44】
、
【数45】
、
【数46】
、
【数47】
がそれぞれ、
【数48】
、
【数49】
、
【数50】
、
【数51】
の平均であると仮定されたい。姿勢推定の不確実性は、
【数52】
と定義され、ここで、S(・)はシグモイド関数であり、λ
eは、幾何学的誤差と光学的誤差との間の正規化係数である。シグモイドは、不確実性を0と1の間で正規化して姿勢推定の精度に関する信頼を表す関数である。
【0087】
不確実性損失関数は、
【数53】
と定義され、
【数54】
は、推定された姿勢および深度マップの不確実性を表す。推定された姿勢および深度マップが、光学的誤差および幾何学的誤差を低減させるのに十分なほど高精度であるとき、
【数55】
は小さい。
【数56】
は、σ
k,k+1を用いてトレーニングされるトラッキングネットによって推定される。
【0088】
マスク
シーン中の移動物体は、それにより、深度および姿勢推定のための、シーンの根底にある物理的構造についての高信頼の情報が得られないので、SLAMシステムおいて問題となり得る。したがって、このノイズをできるだけ除去することが望ましい。いくつかの実施形態では、画像のノイズのある画素が、その画像がニューラルネットワークに入力される前に除去され得る。これは、本明細書において説明するマスクを使用して達成され得る。
【0089】
姿勢表現をもたらすことに加えて、別のニューラルネットワークは、推定された不確実性をもたらすことができる。推定された不確実性値が高いと、姿勢表現の精度は通常は低くなる。
【0090】
トラッキングネットおよびマッピングネットの出力は、ステレオ画像対の幾何学的特性およびステレオ画像対の系列の時間的制約に基づく誤差マップを計算するために使用される。誤差マップはアレイであり、アレイ内の各要素が、入力画像の画素に対応する。
【0091】
マスクマップは、値「1」または「0」のアレイである。各要素は、入力画像の画素に対応する。要素の値が「0」であるとき、値「0」はノイズ画素を表すため、入力画像内の対応する画素は除去すべきである。ノイズ画素は、画像内の移動物体に関係する画素であり、それは、静的な特徴のみが推定に使用されるように画像から除去すべきである。
【0092】
推定された不確実性および誤差マップは、マスクマップを構築するために使用される。マスクマップ内の要素の値は、対応する画素の推定された誤差が大きく、推定された不確実性が高いとき、「0」である。そうでない場合、その値は「1」である。
【0093】
入力画像は、到着すると、最初にマスクマップを使用することによってフィルタリングされる。このフィルタリングステップの後で、入力画像内の残りの画素が、ニューラルネットワークへの入力として使用される。
【0094】
マスクは、q
thパーセンタイルの画素を1とし、(100-q
th)パーセンタイルの画素を0として構築される。不確実性σ
k,k+1に基づいて、画素のq
thパーセンタイルは、
q
th=q
0+(100-q
0)(1-σ
k,k+1)
によって決まり、ここで、q
0∈(0,100)は、基本定数パーセンタイル(basic constant percentile)である。マスク
【数57】
、
【数58】
、
【数59】
、
【数60】
は、対応する誤差マップ内の(アウトライアとしての)(100-q
th)の大きな誤差をフィルタリング除去することによって、計算される。生成されたマスクは、異なるパーセンテージのアウトライアに自動的に適合されるだけでなく、シーン中の動的物体を推論するために使用することもできる。
【0095】
いくつかの実施形態では、トラッキングネットおよびマッピングネットを、TensorFlowフレームワークを用いて実装し、Tesla P100アーキテクチャを備えたNVIDIA DGX-1上でトレーニングする。必要なGPUメモリは、40Hz実時間性能で400MB未満とすることができる。トラッキングネットおよびマッピングネットを最大20〜30エポックにわたってトレーニングするために、Adamオプティマイザを使用することができる。開始学習率は、0.001であり、総反復回数の1/5ごとに半減される。パラメータβ_1は0.9であり、β_1は0.99である。トラッキングネットに供給される画像の系列長は5である。画像サイズは416×128である。
【0096】
トレーニングデータは、11個のステレオビデオ系列を含むKITTIデータセットとすることができる。公的なRobotCarデータセットも、ネットワークのトレーニングに使用することができる。
【0097】
図2は、本発明のいくつかの実施形態によるトラッキングネット200のアーキテクチャをより詳細に示す。本明細書において説明するように、トラッキングネット200は、ステレオ画像系列を使用してトレーニングすることができ、トレーニング後は、単眼画像系列に応答してSLAMを行うために使用することができる。
【0098】
トラッキングネット200は、再帰型畳み込みニューラルネットワーク(RCNN)とすることができる。再帰型畳み込みニューラルネットワークは、畳み込みニューラルネットワーク、および長短期記憶(LSTM)アーキテクチャを備えることができる。ネットワークの畳み込みニューラルネットワーク部は、特徴抽出に使用することができ、ネットワークのLSTM部は、連続する画像間の時間的ダイナミクスの学習に使用することができる。畳み込みニューラルネットワークは、University of OxfordのVisual Geometry Groupから入手可能なVGGnetアーキテクチャなどのオープンソースアーキテクチャに基づいてよい。
【0099】
トラッキングネット200は、複数の層を含むことができる。
図2に示す例示的アーキテクチャでは、トラッキングネット200は11層(220
1-11)を含んでいるが、他のアーキテクチャおよび層数を使用できることが理解されよう。
【0100】
最初の7層は、畳み込み層である。
図2に示すように、各畳み込み層は、特定のサイズのいくつかのフィルタを含む。フィルタは、画像がネットワークの層を通って移動するときにそこから特徴を抽出するために使用される。第1の層(220
1)は、各入力画像対について16個の7×7画素フィルタを含む。第2の層(220
2)は、32個の5×5画素フィルタを含む。第3の層(220
3)は、64個の3×3画素フィルタを含む。第4の層(220
4)は、128個の3×3画素フィルタを含む。第5の層(220
5)および第6の層(220
6)はそれぞれ、256個の3×3画素フィルタを含む。第7の層(220
7)は、512個の3×3画素フィルタを含む。
【0101】
畳み込み層の後に、長短期記憶層がある。
図2に示す例示的アーキテクチャでは、この層は第8の層(220
8)である。LSTM層は、連続する画像間の時間的ダイナミクスを学習するために使用される。このようにして、LSTM層は、いくつかの連続する画像内に含まれる情報に基づいて学習することができる。LSTM層は、入力ゲート、忘却ゲート、記憶ゲート、および出力ゲートを含むことができる。
【0102】
長短期記憶層の後に、3つの完全接続層(220
9-11)がある。
図2に示すように、回転および平行移動を推定するために、別々の完全接続層を設けることができる。回転のほうが平行移動よりも高度の非線形性を有するので、この構成は姿勢推定の精度を向上できる、ということが分かっている。回転と平行移動の推定を別々にすることにより、回転および平行移動に与えられるそれぞれの重みを正規化することが可能になり得る。第1の完全接続層および第2の完全接続層(220
9,10)は、512個のニューロンを含んでおり、第3の完全接続層(220
11)は、6個のニューロンを含んでいる。第3の完全接続層が、6DOF姿勢表現(230)を出力する。回転と平行移動が別々にされた場合、この姿勢表現は、3DOF平行移動姿勢表現および3DOF回転姿勢表現として出力され得る。トラッキングネットは、姿勢表現に関連する不確実性も出力することができる。
【0103】
トレーニング中、トラッキングネットにステレオ画像対(210)の系列が提供される。画像は、カラー画像とすることができる。系列は、ステレオ画像対からなるバッチ、例えば3、4、5、またはそれよりも多くのステレオ画像対からなるバッチを備えることができる。図示の例では、各画像は416×256画素の分解能を有する。画像は、第1の層に提供され、最終層から6DOF姿勢表現がもたらされるまで、後続の層を通って移動する。本明細書において説明するように、トラッキングネットから出力された6DOF姿勢は、損失関数によって計算された6DOF姿勢と比較され、トラッキングネットは、この誤差をバックプロパゲーションを介して最小限に抑えるようにトレーニングされる。このトレーニングプロセスには、当技術分野において知られる技法に従って誤差を最小限に抑えようとすべくトラッキングネットの重みおよびフィルタを修正することが関与し得る。
【0104】
使用時には、トレーニング済みのトラッキングネットに単眼画像系列が提供される。単眼画像系列は、ビジュアルカメラからリアルタイムで取得され得る。単眼画像は、ネットワークの第1の層に提供され、最終の6DOF姿勢表現がもたらされるまで、ネットワークの後続の層を通って移動する。
【0105】
図3は、本発明のいくつかの実施形態によるマッピングネット300のアーキテクチャをより詳細に示す。本明細書において説明するように、マッピングネット300は、ステレオ画像系列を使用してトレーニングすることができ、トレーニング後は、単眼画像系列に応答してSLAMを行うために使用することができる。
【0106】
マッピングネット300は、エンコーダ-デコーダ(またはオートエンコーダ)タイプのアーキテクチャとすることができる。マッピングネット300は、複数の層を含むことができる。
図3に示す例示的アーキテクチャでは、マッピングネット300は、13層(320
1-13)を含んでいるが、他のアーキテクチャを使用できることが理解されよう。
【0107】
マッピングネット300の最初の7層は、畳み込み層である。
図3に示すように、各畳み込み層は、特定の画素サイズのいくつかのフィルタを含む。フィルタは、画像がネットワークの層を通って移動するときにそこから特徴を抽出するために使用される。第1の層(320
1)は、32個の7×7画素フィルタを含む。第2の層(320
2)は、64個の5×5画素フィルタを含む。第3の層(320
3)は、128個の3×3画素フィルタを含む。第4の層(320
4)は、256個の3×3画素フィルタを含む。第5の層(320
5)、第6の層(320
6)、および第7の層(320
7)はそれぞれ、512個の3×3画素フィルタを含む。
【0108】
畳み込み層の後に、6つの逆畳み込み層がある。
図3の例示的アーキテクチャでは、逆畳み込み層は、第8の層から第13の層(320
8-13)を備える。上で説明した畳み込み層と同様に、各逆畳み込み層も、特定の画素サイズのいくつかのフィルタを含む。第8の層(320
8)および第9の層(320
9)は、512個の3×3画素フィルタを含む。第10の層(320
10)は、256個の3×3フィルタを含む。第11の層(320
11)は、128個の3×3画素フィルタを含む。第12の層(320
12)は、64個の5×5フィルタを含む。第13の層(320
13)は、32個の7×7画素フィルタを含む。
【0109】
マッピングネット300の最終層(320
13)が、深度マップ(深度表現)330を出力する。これは、密な深度マップとすることができる。深度マップは、入力画像とサイズが対応していてよい。深度マップは、(逆深度マップまたは視差深度マップではなく)直接的な深度マップを提供する。直接的な深度マップを提供すると、トレーニング中のシステムの収束を向上させることによってトレーニングが向上し得ることが分かっている。深度マップは、深度の絶対的な大きさを提供する。
【0110】
トレーニング中、マッピングネット300にステレオ画像対(310)の系列が提供される。画像は、カラー画像とすることができる。系列は、ステレオ画像対からなるバッチ、例えば3、4、5、またはそれよりも多くのステレオ画像対からなるバッチを備えることができる。図示の例では、各画像は416×256画素の分解能を有する。画像は、第1の層に提供され、最終層から最終深度表現がもたらされるまで、後続の層を通って移動する。本明細書において説明するように、マッピングネットから出力された深度は、誤差(空間的損失)を特定するために、損失関数によって計算された深度と比較され、マッピングネットは、この誤差をバックプロパゲーションを介して最小限に抑えるようにトレーニングされる。このトレーニングプロセスには、誤差を最小限に抑えようとすべくマッピングネットの重みおよびフィルタを修正することが関与し得る。
【0111】
使用時には、トレーニング済みのマッピングネットに単眼画像系列が提供される。単眼画像系列は、ビジュアルカメラからリアルタイムで取得され得る。単眼画像は、ネットワークの第1の層に提供され、最終層から深度表現が出力されるまで、ネットワークの後続の層を通って移動する。
【0112】
図4は、ターゲット環境の単眼画像系列に応答してターゲット環境の自己位置推定およびマッピングの同時実行を行うためのシステム400および方法を示す。システムは、自動車両、鉄道車両、船舶、航空機、ドローン、または宇宙機などのビークルの一部として提供することができる。システムは、単眼画像系列をシステムに提供する前向きカメラを含むことができる。他の実施形態では、システムは、仮想現実および/または拡張現実を提供するためのシステムとすることができる。
【0113】
システム400は、マッピングネット420およびトラッキングネット450を含む。マッピングネット420およびトラッキングネット450は、
図1から
図3を参照して本明細書において説明したように構成および事前トレーニングすることができる。マッピングネットおよびトラッキングネットは、マッピングネットおよびトラッキングネットにステレオ画像系列ではなく単眼画像系列が提供されるという点、ならびにマッピングネットおよびトラッキングネットがどんな損失関数とも関連付けられる必要がないという点を除き、
図1から
図3を参照して説明したように動作することができる。
【0114】
システム400は、さらに別のニューラルネットワーク480も含む。さらに別のニューラルネットワークは、本明細書では、ループネットと呼ばれることがある。
【0115】
図4に示すシステムおよび方法に戻ると、使用時には、ターゲット環境の単眼画像系列(410
0、410
1、410
n)が、事前トレーニングされたマッピングネット420、トラッキングネット450、およびループネット480に提供される。画像は、カラー画像とすることができる。画像系列は、ビジュアルカメラからリアルタイムで取得され得る。画像系列は、別法として、ビデオ録画とすることもできる。いずれの場合も、画像はそれぞれ、一定時間間隔だけ隔てられ得る。
【0116】
マッピングネット420は、単眼画像系列を使用して、ターゲット環境の深度表現430をもたらす。本明細書において説明したように、深度表現430は、入力画像とサイズが対応しており、かつ深度マップ内の各点までの絶対距離を表す、深度マップとしてもたらされ得る。
【0117】
トラッキングネット450は、単眼画像系列を使用して、姿勢表現460をもたらす。本明細書において説明したように、姿勢表現460は6DOF表現とすることができる。姿勢表現の累積が、姿勢マップを構築するために使用され得る。姿勢マップは、トラッキングネットから出力され得、大域的な姿勢整合性ではなく相対的な(または局所的な)姿勢整合性をもたらし得る。したがって、トラッキングネットから出力された姿勢マップは、累積ドリフトを含むことがある。
【0118】
ループネット480は、ループ閉じ込みを検出するように事前トレーニングされたニューラルネットワークである。ループ閉じ込みとは、画像系列内の現在の画像の特徴が、以前の画像の特徴に少なくとも部分的に対応するときを特定することを指すことができる。実際のところ、現在の画像と以前の画像の特徴間のある程度の一致が、典型的には、SLAMを実施しているエージェントがそのすでに遭遇した位置に戻ったことを示唆する。ループ閉じ込みが検出されると、下で説明するように、累積した任意のオフセットを解消するように姿勢マップが調整され得る。したがって、ループ閉じ込みは、単なる局所的な整合性ではなく大域的な整合性によって、姿勢の正確な大きさをもたらすのを助けることができる。
【0119】
いくつかの実施形態では、ループネット480は、Inception-Res-Net V2アーキテクチャとすることができる。これは、事前トレーニングされた重み付けパラメータを備えたオープンソースアーキテクチャである。入力は、サイズが416×256画素の画像とすることができる。
【0120】
ループネット480は、各入力画像について特徴ベクトルを計算することができる。次いで、2つの画像の特徴ベクトル間の類似性を計算することによって、ループ閉じ込みが検出され得る。これは、ベクトル対間距離と呼ばれることがあり、2つのベクトル間のコサイン距離として、次のように計算することができ、
d
cos=cos(v
1,v
2)
ここで、v
1、v
2は、2つの画像の特徴ベクトルである。d
cosがしきい値よりも小さいとき、ループ閉じ込みが検出され、2つの対応するノードが大域的接続によって接続される。
【0121】
ループ閉じ込みをニューラルネットワークベースの手法を使用して検出することは、システム全体が幾何学的モデルベースの技法にもはや依存しないようになり得るので、有益である。
【0122】
図4に示すように、システムは、姿勢グラフ構築アルゴリズムおよび姿勢グラフ最適化アルゴリズムも含むことができる。姿勢グラフ構築アルゴリズムは、累積ドリフトを低減させることによって大域的に整合性のある姿勢グラフを構築するために使用される。姿勢グラフ最適化アルゴリズムは、姿勢グラフ構築アルゴリズムから出力された姿勢グラフをさらに改良するために使用される。
【0123】
姿勢グラフ構築アルゴリズムの動作を、
図5により詳細に示す。図示のように、姿勢グラフ構築アルゴリズムは、ノード系列(X
1,X
2,X
3,X
4,X
5,X
6,X
7...,X
k-3,X
k-2,X
k-1,X
k,X
k+1,X
k+2,X
k+3...)およびそれらの接続からなる。各ノードは特定の姿勢に対応する。実線は局所的接続を表し、点線は大域的接続を表す。局所的接続は、2つの姿勢が連続することを示す。換言すれば、2つの姿勢は、隣接する時点において捕捉された画像と対応する、ということである。大域的接続は、ループ閉じ込みを示す。上で説明したように、ループ閉じ込みは通常、2つの画像の特徴間に(それらの特徴ベクトルによって示される)しきい値を上回る類似性があるときに検出される。姿勢グラフ構築アルゴリズムは、別のニューラルネットワークおよびさらに別のニューラルネットワークからの出力に応答して、姿勢出力をもたらす。この出力は、姿勢の局所的接続および大域的接続に基づいたものとすることができる。
【0124】
姿勢グラフが構築された後、姿勢推定を微調整し、任意の累積ドリフトをさらに低減させることによって姿勢マップの精度を向上させるために、姿勢グラフ最適化アルゴリズム(姿勢グラフオプティマイザ)495が使用され得る。姿勢グラフ最適化アルゴリズム495は、
図4に概略的に示されている。姿勢グラフ最適化アルゴリズムは、「g2o」フレームワークなど、グラフベースの非線形誤差関数を最適化するためのオープンソースフレームワークとすることができる。姿勢グラフ最適化アルゴリズムは、改良された姿勢出力470をもたらすことができる。
【0125】
姿勢グラフ構築アルゴリズム490は、
図4に別個のモジュールとして示されているが、いくつかの実施形態では、姿勢グラフ構築アルゴリズムの機能が、ループネットによって提供され得る。
【0126】
姿勢グラフ構築アルゴリズムから出力された姿勢グラフ、または姿勢グラフ最適化アルゴリズムから出力された改良された姿勢グラフは、マッピングネットから出力された深度マップと組み合わされて、3D点群440を生成することができる。3D点群は、それらの推定された3D座標を表す1組の点を備えることができる。各点は、関連するカラー情報を有することもできる。いくつかの実施形態では、この機能は、ビデオ系列から3D点群を生成するために使用され得る。
【0127】
使用時には、データ要件および計算時間が、トレーニング中のデータ要件および計算時間よりもはるかに少ない。GPUは不要である。
【0128】
トレーニングモードと比較して、使用モードでは、システムのメモリおよび計算の需要が著しく低くなり得る。システムは、GPUをもたないコンピュータ上で動作することができる。NVIDIA GeForce GTX 980MおよびIntel Core i7 2.7GHz CPUが装備されたラップトップを使用することができる。
【0129】
ビジュアルオドメトリなどの他のコンピュータビジョン技法と比較して、上で説明した、本発明のいくつかの実施形態によるビジュアルSLAM技法によってもたらされる利点に留意されたい。
【0130】
ビジュアルオドメトリ技法では、先行するフレームの各々間の推定された動きを組み合わせることによって、視点の現在の姿勢を特定しようと試みる。しかし、ビジュアルオドメトリ技法にはループ閉じ込みを検出するすべがなく、それは、ビジュアルオドメトリ技法が累積ドリフトを低減または解消できないことを意味する。これはまた、フレーム間の推定された動きのわずかな誤差でさえも累積して、推定された姿勢のスケールの不正確さが大きくなるおそれがあることを意味する。このため、そのような技法は、自律ビークルおよびロボティクス、マッピング、VR/ARにおいてなど、高精度で絶対的な姿勢配向が望ましい応用分野において、問題のあるものになる。
【0131】
対照的に、本発明のいくつかの実施形態によるビジュアルSLAM技法は、累積ドリフトを低減または解消するためのステップ、および更新された姿勢グラフをもたらすためのステップを含む。これにより、SLAMの信頼性および精度が向上し得る。適宜、本発明のいくつかの実施形態によるビジュアルSLAM技法は、深度の絶対的な大きさを提供する。
【0132】
本明細書の説明および特許請求の範囲全体を通して、「備える」および「含む」という語、ならびにそれらの変形は、「〜を含むがそれに限定されない」を意味し、それらは、他の部分、追加物、構成要素、整数、またはステップを除外するものではない(また除外しない)。本明細書の説明および特許請求の範囲全体を通して、文脈上別段の解釈を要する場合を除き、単数形は複数形も包含する。具体的には、不定冠詞が使用されている場合、文脈上別段の解釈を要する場合を除き、本明細書は単数性のみならず複数性をも企図するものとして理解されるべきである。
【0133】
本発明の特定の態様、実施形態、または例に関連して説明した特徴、整数、特色、またはグループは、本明細書において説明した他の任意の態様、実施形態、または例に、それと矛盾しない限り適用可能であることを理解されたい。(任意の添付の請求項、要約書、および図面を含む)本明細書において開示した全ての特徴、ならびに/またはそのように開示した任意の方法もしくはプロセスの全てのステップは、それらの特徴および/またはステップのうちの少なくとも一部が相互に排他的である組合せを除き、任意の組合せで組み合わせることができる。本発明は、任意の前述の実施形態の任意の詳細に限定されない。本発明は、(任意の添付の請求項、要約書、および図面を含む)本明細書において開示した特徴のうちの任意の新規な1つ、もしくはその特徴の新規な組合せに、またはそのように開示した任意の方法もしくはプロセスのステップのうちの任意の新規な1つ、もしくはそのステップの任意の新規な組合せに及ぶ。
【0134】
読者の注意は、本出願に関連して、本明細書と同時に、または本明細書に先行して提出され、本明細書とともに公衆の閲覧に付される、あらゆる論文および文献に向けられよう。そのようなあらゆる論文および文献の内容は、参照により本明細書に組み込まれる。
【符号の説明】
【0135】
100 トレーニングシステム
110 第1の教師なしニューラルネットワーク、マッピングネット
120 別の教師なしニューラルネットワーク、トラッキングネット
130 損失関数
140
0,1...n ステレオ画像対
150
0,1...n 第1の画像
155
0,1...n 別の画像
200 トラッキングネット
210 ステレオ画像対
220
1 第1の層
220
2 第2の層
220
3 第3の層
220
4 第4の層
220
5 第5の層
220
6 第6の層
220
7 第7の層
220
8 第8の層
220
9 第1の完全接続層
220
10 第2の完全接続層
220
11 第3の完全接続層
230 6DOF姿勢表現
300 マッピングネット
310 ステレオ画像対
320
1 第1の層
320
2 第2の層
320
3 第3の層
320
4 第4の層
320
5 第5の層
320
6 第6の層
320
7 第7の層
320
8 第8の層
320
9 第9の層
320
10 第10の層
320
11 第11の層
320
12 第12の層
320
13 第13の層、最終層
330 深度マップ(深度表現)
400 システム
420 マッピングネット
430 深度表現
440 3D点群
450 トラッキングネット
460 姿勢表現
470 改良された姿勢出力
480 さらに別のニューラルネットワーク、ループネット
490 姿勢グラフ構築アルゴリズム
495 姿勢グラフ最適化アルゴリズム(姿勢グラフオプティマイザ)
【国際調査報告】