【論文読み】A Survey on Deep Learning for Localization and Mapping - 自律ロボット × Deep Learning の研究動向
2020/12/11
Table of Contents
- Localization, Mappingとは?
- なぜDeep Learningの研究は必要なのか?
- 研究分野
- 議論
- 研究動向の詳細
- 1. オドメトリ推定
- 1.1 Visual Odometory
- 1.2 Hybrid VO
- 1.3 Visual-Inertial Odometry
- 1.4 LIDAR Odometry
- 2. Mapping
- 2.1 Geometric Mapping
- 2.2 Semantic Map
- 2.3 General Map
- 3. Global Localization
- 3.1 2D-to-2D Localization
- 3.2 2D-to-3D Localization
- 3.3 3D-to-3D Localization
- 4. SLAM
- 4.1 Local Optimization
- 4.2 Global Optimization
- 4.3 Keyframe and Loop-closure Dtection
- 4.4 Uncertainty Estimation
- まとめ
Localization, Mappingとは?
人間は、知覚機能を用いて、自分が何歩動いたかなどの自己の動作や、周辺の環境を認識します。そして、その認識を頼りにして、複雑な3D空間の中で自分の位置を特定します。 この自己動作の認識や、特定した自己位置を用いて、目的地へ移動したり、体の運動制御が可能になります。 自動運転車やドローンなどの自律ロボットも、同様に、センサー情報を用いて、環境を認識し、自己位置を推定することで、次の動作などの決定を行うことができます。
自律ロボットが、高度な自律性を実現するためには、正確でロバストな自己位置の獲得と、様々な状況に適応するための世界モデルの段階的な構築と維持が必要になります。このような研究は、Spatial Machine Intelligence System (SMIS)や、空間AI(Spacial AI)と呼ばれています。
以上のことも踏まえて、LocalizationとMappingは以下のように定義されています。
- Localizationとは、ロボットの内部システムの状態(位置、向き、速度など)を取得すること
- Mappingとは、外部環境の情報を知覚し、周辺環境(2Dや3Dシーンの形状や種類など)を補足、構築すること
LocalizationとMappingは、個別に使用されることもあれば、Simultaneous Localization and Mapping (SLAM)と呼ばれる技術のように同時に使用されることもあります。
※ SLAMに関しては、後述します。
※ 世界モデル [深層生成モデルと世界モデル ] - 外界からの限られた刺激を元に、世界をシミュレートするモデル
なぜDeep Learningの研究は必要なのか?
理想的な条件下において、センサ情報や人間により設計されたモデルは、システムの状態を正確に推定可能です。しかし、実環境において、不完全なセンサ情報、不完全なセンサモデリング、複雑なダイナミクスなど、人間により設計されたシステムでは、カバーできない問題があります。
そこで、昨今の機械学習、特に深層学習の進歩とともに、問題解決のための代替手段としてデータを用いた学習ベースの手法が検討されるようになりました。従来のモデルベースの手法は、アルゴリズムを手作業で設計し、特定の環境にキャリブレーションすることが多い一方で、学習ベースの手法は、学習した知識により、入力となるセンサデータ(ex. 視覚、慣性、LIDARデータなど)と出力となるターゲットデータ(ex. 位置、方向、シーンの構造など)を写像する関数を構築することができます。
学習ベースの手法の利点は、以下の3つです。
- 深層学習は普遍的な情報の近似器として高い表現力を持ち、タスクに関連する不変的な特徴を自動的に抽出することができます。この特性により、学習したモデルは、特徴のない領域、動的な照明条件、動きによるボケ、カメラ情報の正確なキャリブレーションなど、人間により設計されたモデルでは困難な状況にもロバスト性を持つことが可能になります。
- 学習ベースのモデルを構築する際に、モデルは人の影響を排除したタスクに応じた数学的・物理的なルールに関する知識を獲得することが可能になります。このことにより、新しい状況に直面した時に、モデルが自動的に新しい計算解を発見し、タスクに対する性能が改善する可能性があります。
- 増加するセンサーデータ量と計算能力をフルに活用することが可能になります。例えば、最近リリースされたGPT-3(NeurIPS 2020でbast paperに選ばれていました!)は、1,750億個以上のパラメータを持つ最大の事前学習済み言語モデルであり、様々な自然言語処理のタスクにおいて最先端の結果を示しています。このように、自律ロボットの研究においても、深層学習は大規模な問題を解くことが期待されています。
しかし、現状の課題として、
- 統計的に意味のあるパターンを抽出するための学習が大規模なデータセットに依存しており、データセット外の環境に対して一般化することが困難であること
- 人が設計したモデルより計算コストが高いこと
などの課題があります。
研究分野
自律ロボットの研究分野が、論文内にて定義されていました。それは、以下の4つです。
1. オドメトリ推定
オドメトリ推定は、連続的なロボットの移動を追跡し、相対的なポーズを推定することです。課題は、様々なセンサ情報を統合し、移動情報をロバストかつ正確に推定することです。深層学習は、End-to-Endで運動法則をモデル化したり、ハイブリットな方法としてシステムに必要な情報の一部を補助ための特徴抽出に用いられます。
2. Mapping
Mappingは、周囲の環境の一貫した表現を獲得したモデルを構築し、周辺環境を新たな表現で変換することです。Mappingにより、高度なロボットタスクのために環境情報を提供することや、オドメトリ推定の誤差を低減させること、グローバルな自己位置推定のために環境情報を提供することなどに使用されます。深層学習は、高次元の生データからシーンの形状や物体の種類などを発見するために使用され、シーンの明示的な幾何情報や種類を学習するか、または、暗黙的な表現にエンコードすることを学習するかによって、研究が細分化されています。
※シーン: 例として、その時点を切り取った画像や3D地図などのこと。シーンの幾何情報とは、画像から見た物体までの深度などのことで、シーンの種類とは、画像中に写っている物体の種類などのことです。
3. Global Localization
Global localization(大域的ポーズ/位置推定)は、既知のシーン(3D地図など)におけるロボットのグローバルなポーズ(位置や姿勢)を取得することです。これは、事前に作成された2次元または3次元の地図や、以前に訪問したことのあるシーンと照会情報を照合することで処理することができます。この処理により、オドメトリ推定の誤差の低減や、kidnapped robot問題(位置推定中のロボットを突然別の場所に移動させ、その後、自己位置推定を再度行い、目的のタスクができるか考えるために提唱された問題)を解決したりすることができます。深層学習は、照明、天候、移動体の影響を受けたクエリ情報(画像など)と地図の関連付けを行う問題に使用されています。
4. Simultaneous Localization and Mapping (SLAM)
SLAMは、前述のオドメトリ推定、Global Localization、Mappingの処理を統合し、全体的に最適化することで、LocalizationとMappingの両方の性能を向上させることを目的とした手法です。これらの機能以外にも、システム全体で整合性を確保するため、以下の機能があります。
- 局所最適化 - カメラの動きとシーン形状の局所的な一貫性を保証します
- 大域的最適化 - ロボットのポーズの軌跡や地図の誤りをグローバルなスケールで抑制します
- キーフレーム検出 - キーフレームベースのSLAMでは、キーフレームが検出された時のみ、LocalizationやMappingを補正します。また、過去に訪れたキーフレームを検出するループ閉鎖検出によりループを検出することで、グローバルなポーズや地図のエラーを緩和します
- 不確実性の推定 - 学習したポーズや地図の信頼度を示す指標であり、確率的なセンサフュージョンや最適化に使用されます。
※ループ閉鎖検出: LSD-SLAMの2:48秒あたりが参考になります。
議論
次に上記の4つ分野について説明したいところですが、説明が長くなるので、先に、論文にて説明されていた今後の自律ロボット×深層学習の研究における未解決の問題を紹介したいと思います。
1. End-to-End model vs hybrid model.
End-to-Endの学習モデルは、人の手を介さずに、生データから直接ポーズやシーンを予測しています。一方で、ハイブリッドモデルは、あらかじめ設計された物理/幾何モデルの一部パラメータに学習モデルの予測を統合しています。
ハイブリッドモデルは、長年の深層学習の研究をより有効に活用する方法が研究されており、すでに多くのタスクで最先端の結果を示しています。 End-to-Endのモデルは、精度、ロバスト性の向上が期待でき、それに加えて、経路計画やナビゲーションなどの高度なタスクの学習も容易に統合できるという利点がありますしかし、現在のモデル精度は学習データセットの大きさにより制限されることがあり、今後は、より大規模で多様なデータセットの作成が必要不可欠です。
2. Unifying evaluation benchmark and metric.
SLAMシステムでは、適切な評価用ベンチマークと評価基準を見つけることが課題となっています。 特に深層学習ベースのシステムの場合、データセットサイズ、ハイパーパラメータ(バッチサイズや学習率など)、テストシナリオの違いなど、訓練データとテストデータ両方の特性に影響されるため、各手法を公平に比較することが難しいです。 このことから、様々な環境やダイナミクスを網羅したシステム評価のためのベンチマーク作成の必要性が高まっています。
3. Real-world deployment.
深層学習モデルを実環境に適用することは、恒常的に課題です。既存の研究では、予測精度の向上にフォーカスされることが多いですが、一方で、モデル構造やパラメータ数が最適かどうかなど、他の重要な問題が見落とされていることがあります。また、低コストロボットのような資源制約のあるシステムでは、計算量やエネルギー消費を考慮しなければなりません。他にも、システムとして、リアルタイムのオンライン学習が可能であるかどうかなど、多くの課題が挙げられます。
4. Lifelong learning
この章の後で紹介する先行研究のほとんどは、KITTIデータセットを用いて視覚的なオドメトリ推定や深度推定を行うなど、限られたデータセットにおける検証に留まっていました。しかし、実世界では、ロボットは、刻々と変化する環境や移動する物体に大きく影響されます。そのため、深層学習モデルは、実世界の変化に適応した、継続的で一貫した学習が求められています。それに加えて、新しい概念や物体は予期せぬ形で出現するため、ロボットには物体検出と新しい知識拡張の処理が必要となります。
5. New sensors
カメラ、IMU、LIDARなどの一般的なセンサだけでなく、新しく登場したセンサは、より正確でロバストなマルチモーダル(複数の知覚機能)システムを構築するための代替手段となる可能性があります。例えば、イベントカメラやサーモカメラ、ミリ波デバイスなどは、カメラやLIDARと異なる特性とデータ形式を取得できます。しかし、これらの新しいセンサ情報を効果的に学習するアプローチは、十分に研究されていません。
6. scalability
学習ベースのlocalizationとMappingは、現在の評価ベンチマークにおいては、良好な結果を示しています。しかし、これらのベンチマークは、都市部など特定の状況に限定されており、農村部や森林部などに適用できるかどうかは、未解決な問題です。また、深層学習を用いたシーンの再構成技術は、単一物体や部屋レベルの再構成に限られています。これらの学習手法が、より複雑で大規模な再構成問題にもスケールできるかどうか検討する必要があります。
7. Safety, reliability and interpretability.
自動運転車などの実用化には、安全性と信頼性がとても重要になります。もし、ポーズやシーンの推定にわずかな誤差があったら、システム全体に大きな被害をもたらす可能性があります。また、深層学習は「ブラックボックス」であると長い間批判されており、重要なタスクへの導入が困難である場合もあります。研究として、DLのモデルの解釈可能性や、信頼性の低い予測を回避するため、モデルをどの程度信頼してすべきなのか示す不確実性の推定が必要となります。
ここまで、自律ロボット×深層学習に関する、概要や課題を紹介しました。以降は、各分野の研究動向になります。長文になっているため、読みたい分野に飛んで読んだ方が良いです。
研究動向の詳細
以降、オドメトリ推定、Mapping、Global Localization、SLAMに関して、詳細を解説していきます。
1. オドメトリ推定
オドメトリ推定とは、ロボットの運動を継続的に追跡し、相対的なポーズを推定することです。初期状態が与えられたときに、これらの相対ポーズを積分することで、大域的なロボットの位置を推定することができます。このとき、高精度な位置推定を行うためには、より正確なポーズの推定が重要になります。論文では、視覚、慣性、点群のセンサデータから、走行軌跡推定を実現するための深層学習のアプローチに関して紹介されていました。
1.1 Visual Odometory
Visual Odometory (VO)は、カメラ画像間の相対的な動きであるポーズを推定することで、結果的に大域的なポーズ推定を行う手法です。深層学習は、画像から高レベルの特徴量を抽出することでき、手作業による特徴量の抽出の影響を省くことができます。既存の深層学習によるVO推定は、End-to-Endで学習されたモデルによるVOと、従来のVOアルゴリズムに深層学習を組み合わせたハイブリッドVOに分類されます。また、End-to-EndなVOは、教師付きVOと教師なしVOに分類されます。
Supervised Learning of VO (End-to-End VO)
教師付きVOは、従来のVOのように画像の幾何学的構造を利用するのではなく、ラベル付されたデータセットを用いて深層学習モデルを訓練することで、連続した画像からポーズへの変換を行う写像関数を学習しています。基本的には、モデルの入力は連続した画像のペアで、出力は画像フレーム間の相対ポーズ(並進と回転)の推定値です。
この分野の最初の研究は、Learning Visual Odometry with a Convolutional Network で、VOを分類問題として定式化し、方向と速度をラベルとすることで、畳み込みニューラルネットワーク(以降、ConvNet)に画像に対する方向と速度の離散的な変化を予測させていました。しかし、この手法は、画像からポーズを直接推定しているわけではなく、性能的にも限界があります。
DeepVOは、ConvNetとリカレントニューラルネットワーク (RNN)を組み合わせることでVOのEnd-to-Endな学習を可能にしました。上図(a)(論文中Fig.4.)は、ConvNetとRNNをベースとしたVOアーキテクチャを示しています。具体的には、ConvNetを介して画像ペアから特徴量を抽出し、RNNにより特徴量の時間的相関をモデル化しています。この手法は、データセットに含まれない風景下においても、走行中の車両の軌跡を推定することに成功しており、KITTIオドメトリデータセットを用いた実験では、ORB-SLAM(ループ閉鎖による最適化なし)などの従来の古典的な手法より良好な精度を示していました。さらに、もう一つの利点として、従来のVOでは、カメラが単眼であることによるスケール曖昧性という問題がありましたが、教師ありVOは、単眼カメラの画像情報から絶対的なスケールでロボットの移動を推定することができています。これは、Deep neural network(DNN)が、大規模な画像データセットからスケールを暗黙的に学習することができているためであると考えられます。
典型的なDeepVOを拡張したアプローチとして、以下のような研究が行われています。
- Learning Monocular Visual Odometry through Geometry-Aware Curriculum Learning
カリキュラム学習(徐々にデータを複雑にしながら学習させていく手法)と幾何学的損失の導入により、汎化能力を向上させた。 - Distilling Knowledge From a Deep Pose Regressor Network
知識蒸留でDNNのパラメータ数を大幅に削減し、小型のデバイスにおいてリアルタイム運用に適したものとした。
Unsupervided Learning of VO (End-to-End VO)
教師なし学習は、ラベル付けされていないセンサデータを利用し、ラベル付のコストを省くことができ、ラベル付けされていない環境への適用が可能になるため、VOへの導入に関心が高まっています。教師なしVOは、連続した画像から得られる奥行き情報と、カメラの軌道を同時に学習する自己教師型のフレームワークで達成されます。
典型的な教師なしVOは、上図(論文中Fig.4.)(b)のように、深度マップを推定する深度ネットワークと、画像間の相対的なポーズを推定するポーズネットワークから構成されます。元画像のピクセルに対応した深度マップのピクセルは、ポーズ情報により前後のフレームへ写像されます(から, )。そして、実画像と写像した画像(合成画像)の間の輝度損失を最適化し、シーン形状の整合性を維持させています。
教師なしVOにおける単眼画像ベースのアプローチは、以下の欠点があり、使用が制限されています。
- グローバルなスケールにおけるポーズ推定ができない (スケール一貫性がない)
- 輝度損失は、環境が静止しており、カメラのオクルージョンがないことを前提としている
また、教師なしVOにおけるスケール一貫性に関して、以下のような研究が行われています。
- UnDeepVO: Monocular Visual Odometry through Unsupervised Deep Learning
ステレオ画像を使用することでポーズ推定のスケールの問題に対処していました。 これは、ステレオ画像のベースラインが固定されており、左右の画像間の相対ポーズが既知であるため、左右の画像ペアを教師として輝度損失に対して学習させています。この手法は、真のラベルを与えていないという意味では、教師なしですが、学習手法は教師ありのものでした。 - Unsupervised Scale-consistent Depth and Ego-motion Learning from Monocular Video
予測された深度マップとポーズ情報を用いて別時刻の画像に写像した深度情報を用い、スケールの整合性を課す幾何学的な損失を導入することで、スケール問題に取り組んでいました。
輝度損失における移動体がないという前提に関しては、以下のような研究が行われています。
- GeoNet: Unsupervised Learning of Dense Depth, Optical Flow and Camera Pose
深度マップ、ポーズの推定に加え、OpticalFlow(ピクセルの移動)による移動体の抽出を行うことで、静的なシーン部分と動的なシーン部分を別々に推論することを可能にしていました。 さらに、外れ値などのロバスト性を高めるために、適応的な幾何学的に一貫性を持つ損失を提案しています。 - Sequential Adversarial Learning for Self-Supervised Deep Visual Odometry
Generative Adversarial Network(GAN)を利用することで、深度マップ生成の精度を向上させています。また、高度なシーン認識と表現を学習し、環境の動的な変化が暗黙的に許容されるようになっています。
上記のような研究により教師なしVOは、教師ありVOに精度的に勝てませんが、スケール一貫性や移動体の問題は、ほぼ解決されています。そして、自己学習の利点を活かし、性能向上をさせていくことで、SMISにおける他のモジュールと統合させることができる有望な手法であると期待されています。
1.2 Hybrid VO
End-to-EndのVOとは、異なり、ハイブリッドVOは古典的な幾何学モデルと深層学習のフレームワークを統合したものです。長年研究されてきた、幾何学理論に基づいた幾何学モデルの一部をDNNに置き換えています。これを達成するための単純な方法は、学習された深度マップを従来のVOに組み込み、ポーズのスケールをより正確にすることです。
発展的な研究としては、以下のような研究が行われています。
- Driven to Distraction: Self-Supervised Distractor Learning for Robust Monocular Visual Odometry in Urban Environments
深度マップと移動体の領域の両方の予測をVOに用い、移動体へのロバスト性を向上させています。 - D3VO
この研究以前は、DNNの活用が深度情報などの利用に留まっていました。しかし、D3VOでは、深度マップだけでなく、輝度パラメータ、不確実性、そして姿勢も同時に推定することで、大幅な精度改善を実現しています。
ハイブリッドVOは、一般的に、End-to-EndのVOより精度が良く、D3VOは、従来のVOの精度を凌駕しています。
1.3 Visual-Inertial Odometry
視覚データと慣性データを統合したオドメトリ(VIO)は、ロボットの研究で頻繁に扱われています。カメラと慣性センサ(IMU)は、どちらも低コストで電力効率がよく、広く利用されています。単眼カメラは、3Dシーンの外観と構造を捉えることができますが、スケールが曖昧で、強い照明の変化、テクスチャの欠如、高速な移動などのハードな状況に耐えることが難しいです。一方で、IMUは、状況に依存せず、スケールを提供できますが、プロセスノイズの影響を受ける欠点があります。これら2つのセンサによる測定値を効果的に融合することで、正確なポーズ推定が可能になります。
学習ベースのアプローチは、人間による設計やキャリブレーションなしに、視覚と慣性の測定値から直接ポーズを学習するために研究されてきました。
- VINet
VIOをEnd-to-Endで学習させた最初の研究です。ConvNetベースのエンコーダを用いて連続したRGB画像から視覚特徴を抽出し、Long short-term memory(LSTM)を用いて慣性データの連続的な状態変化を抽出しています。そして、各特徴量を連結し、相対的なポーズを予測するためのLSTMへ入力されます。このアプローチは、キャリブレーションやセンサ間の相対的な時間オフセット誤差に対してロバストですが、特徴抽出モデルが別々であるため、センサーフュージョンにおいて意義のある研究ではありませんでした。 - Selective Sensor Fusion for Neural Visual-Inertial Odometry
異なるモダリティによる特徴の重要性を、外部(環境)と内部(センサ)のダイナミクスに応じて考慮すべきという考えをもとに、選択的センサフュージョンが提案されました。このアプローチは、単純なセンサフュージョンより優れており、VINet同様に壊滅的な誤差を回避することができます。
VIOは教師なしVOと同様に、深度推定などを用いた自己教師を用いて解くことができます。例えば、Unsupervised deep visual-inertial odometry with online error cor- rection for rgb-d imageryは、慣性データから相対的なポーズを推定し、Fig.4(b)のような教師なし学習を達成しています。同様に、Deepvioは、教師なし学習フレームワークに慣性データとステレオ画像を組み込んだ学習を行うことで、グローバルなスケールにおけるポーズ推定を可能にしています。
学習ベースのVIOは古典的なモデルベースのVIOに精度として勝つことはできていません。しかし、DNNにより測定ノイズやセンサ間の時間同期が良好でないなどの現実的な問題においてロバストな結果を出しています。
1.4 LIDAR Odometry
LIDARセンサは、複雑な照明条件や光学的な特徴がない環境でも一貫して動作するという利点があります。ロボットや自動運転車では、3D地図に対する相対的な移動(LIDARオドメトリ)とグローバルな姿勢を取得するためにLIDARセンサを装備しています。欠点としては、非平滑な物体の動きによる点群誤差の影響を受けやすく、大雨や霧などの気象条件にも影響されることがあります。
LIDARオドメトリでは、2つの連続した点群間をマッチングし、マッチングした点同士の誤差を最小化することでポーズを推定しています。学習ベースの手法においては、連続した点群からポーズを推定する写像関数を構築するためDNNを活用しています。LO-Net: Deep Real-time Lidar OdometryなどDNNにおいて、点群データは疎で不規則にサンプリングされるため、DNNに直接取り込むことが難しいです。そのため、通常は、点群を円筒投影することで画像に変換し、相対的なポーズを推定するConvNetの入力としています。
2. Mapping
Mappingとは、周囲の状況を記述した環境モデルやシーンを構築する処理のことです。深層学習においては、深度予測から、セマンティックラベリング(各ピクセルのラベル推定)、3次元再構成など多くのアプリケーションに関する研究が行われています。
2.1 Geometric Mapping
幾何学マッピングは、シーンの形状や構造情報を獲得でき、主に、深度、ボクセル、点、メッシュで表現されます。下図(論文 Fig.6)は、各表現を表した図です。
Depth Representation
深度マップ(上図(b)は、環境の形状や構造を理解する上で極めて重要な役割を果たし、深度マップとRGB画像を融合することで密なシーン再構成が行われてきました。従来のSLAMシステムは、DTAMのような高密度の深度マップで環境の形状を表現することができています。ここで正確な深度マップを用いることで、SLAMのスケール一貫性が向上します。
初期のDNNの研究では、深度ラベルを持つ大規模な画像データセットを用いて学習させたDNNにより深度を推定させ、深度マップとポーズ推定を同時に最適化することで、より正確な深度予測を行っていました。このようなデータ学習による手法は、従来の幾何学ベースの手法より優れていることがわかっていますが、その有効性はモデルの学習に大きく依存し、ラベル付されたデータがない環境では、一般化が困難である可能性があります。
一方で、この分野の最近の進歩は、深度予測を新しい画像生成問題として再構築することで、教師なしの手法に置き換えていることです。
- Unsupervised Monocular Depth Estimation with Left-Right Consistency
直接深度マップを推定するのではなく、ステレオ画像と既知のカメラベースラインを用いて生成できる視差マップを学習データとし、視差マップの生成問題にすることで教師なし学習を行っています。視差マップとは、左画像のピクセルをどのくらい右に動かせば、右画像のピクセルと一致するかということを表現した画像です。この視差マップを用いることで深度マップを獲得することができます。この手法では、損失に、左右の画像で生成した視差マップを用いることで得られる空間的な整合性を追加することで精度を高めています。 - Unsupervised Learning of Depth and Ego-Motion from Video
深度マップ推定、単眼で撮影された動画を元に、教師なしで学習できるという手法で、SfMLearnerと呼ばれます。この手法は、これ以降の研究に大きな影響を与えています。詳細は、解説記事を参考にしてください。
学習ベースのSLAMシステムは、ConvNetによって予測された深度マップを統合することで、古典的な単眼カメラによる画像情報における問題に対処しています。例えば、CNN-SLAMは、単眼SLAMフレームワークに単一画像から学習された深度マップを利用しています。そして、ポーズ推定や環境の再構成においてスケール一貫性の問題の解決に貢献していることを示しました。また、CNN-SLAMは従来のSLAMでは困難であった、テクスチャがない領域でも、高密度な環境の再構成を実現しています。
Voxel Representation
ボクセル表現(上図(c))は、3次元形状を表現する一般的な方法です。ボクセルは、画像におけるピクセルと同じよう表現で、3次元空間を表現しています。研究では、環境やオブジェクトのボクセル表現を再構築するために、複数の画像入力を使用することが検討されてきました。例えば、以下のような研究が行われています。
- SurfaceNet: An End-to-end 3D Neural Network for Multiview Stereopsis
ボクセルが表面上にあるかどうかを判断するために、ボクセルの信頼度を予測するようにDNNの学習を行っており、オブジェクトの表面を再構成しています。 - RayNet: Learning Volumetric 3D Reconstruction with Ray Potentials
幾何学的な制約を課しながら、画像の不変な特徴をDNNで抽出することで形状を再構成しています。 - Octree generating networks: Efficient convolutional architectures for high-resolution 3d outputs
木構造の一種であるオクトツリー表現を使用することにより、計算効率とメモリ効率の高い方法でボリュームメトリックな3D出力を生成することができるCNNを設計し、高解像度の3D再構成を行っています。
ボクセル表現の欠点の一つとして、特に高解像度の再構成を実行するときに、高い計算量が必要になります。
Point Representation
点表現(上図(d))は、3次元空間の点を座標(x, y, z)で表現しています。点の表現は、理解しやすく扱いやすいですが、点群は順序付されていない点の集合となり、異なる順序の点群で同じ形状を表現できてしまうため、曖昧さの問題があります。 点群をDNNで扱う上で重要な手法として、PointNetが発表されています。PointNetは、分類やセグメンテーションなどのタスクにおいて点の特徴を集約するため、max poolingを用いることで順序付されていない点データを処理しています。
A Point Set Generation Network for 3D Object Reconstruction from a Single Imageでは、データの曖昧性に対処するために、Earth Mover の距離に基づいた損失関数を導入し、単一画像から点ベースの3次元形状を生成するDNNを開発しています。しかし、この手法は、単一物体の再構成タスクでしか検証されておらず、環境を再構成するための点生成に関する研究は、まだ行われていません。
Mesh Representation
メッシュ表現(上図(d))は、辺、頂点、面などの3Dモデルの基本的な構造をコードかすることで表現されています。この表現は、3次元形状の表面を自然に捉える強力な表現で、ゲームなどの3Dモデルも同様の表現が用いられています。Scan2meshなどの研究では、画像や点群データからメッシュを生成する問題に挑戦していました。しかし、これらの研究では、単一物体の再構成に焦点を当てることが多く、また、単純な構造を持つモデルに限られていました。
そこで、メッシュ表現における環境の再構成問題に取り組むために、3d scene mesh from cnn depth predictions and sparse monocular slamでは、単眼SLAMからによる疎な特徴量とConvNetからの密な深度マップを統合し、3Dメッシュ表現の更新を行っています。このような研究のアプローチでは、メッシュの頂点座標をDNNで学習し、深度マップは変数として最適化されます。
2.2 Semantic Map
セマンティックマッピング(下図(b))は、意味的な概念(例えば、障害物の分類など)と環境の形状を結びつける表現で、データ同士の関連付け問題として扱われます。深層学習の進歩により、物体認識や、セマンティックセグメンテーションが大きく進歩しています。
以下、研究を紹介します。
- SemanticFusion: Dense 3D Semantic Mapping with Convolutional Neural Networks
ConvNetによるセマンティックラベルとSLAMシステムにより再構成された環境・幾何情報を組み合わせた初期の研究です。2Dのセマンティック情報を3Dの地図に逐次統合することができ、有用な意味情報を持つ3Dマップを作成するだけでなく、SLAMシステムへの統合が単一フレームのセグメンテーションの精度を強化するのに役立っていることを示しました。 - DA-RNN: Semantic Mapping with Data Associated Recurrent Neural Networks
セマンティックセグメンテーションフレームワークにRNNを導入し、複数の画像フレームに対する時間的接続を学習し、Voxel Mapに対して、より正確で一貫性のあるラベルを生成しています。
これらの方法は、オブジェクトのインスタンスに関する情報を提供せず、同じカテゴリの異なるオブジェクトを区別できません。これを改善するため、インスタンスセグメンテーション(上図(c))というタスクが発展してきました。例えば、単純な方法として、物体検出により推定されるBoundingBoxの検出モジュールとセマンティック・セグメンテーションモジュールを介して個々のオブジェクトを識別することで、オブジェクトレベルのセマンティックを推定できます。また、Volumetric Instance-Aware Semantic Mapping and 3D Object Discoveryでは、3次元におけるインスタンスを考慮したセマンティック推定を実現させています。
最近では、パノプティックセグメンテーション(上図(d))も注目されており、PanopticFusionでは、壁やドア、レーンなどの静的なオブジェクトをスタッフクラス、その他の車や人間などの説明可能なオブジェクトを各クラスに分類し、静的物体と物レベルまでのセマンティックマップまで実行可能になっています。
2.3 General Map
深層学習は、明示的な幾何学・意味的なマップ表現を超え、環境の基礎となる幾何情報を暗黙的な表現にエンコードすることができます。Deep Auto Encoderを利用することで、高次元データのコンパクトな表現を自動的に獲得できます。例えば、CodeSlAMでは、観察された画像をコンパクトで最適化可能な表現にエンコードすることで、密集したシーンの本質的な情報なども小さなサイズで学習でき、ポーズや環境の形状を効率的に最適化できます。
また、Neural Rendering model (NRM)は、3Dシーンの構造の暗黙的に表現を獲得する研究分野で、未知の視点から新たなシーンを再構築することが目的としています。Generative Query Network (GQN)は、表現ネットワークと生成ネットワークを用いて、表現を獲得し、新しいシーンをレンダリングすることを学習しています。表現ネットワークは、参照画像から観測した結果をシーン表現にエンコードし、生成ネットワークは、RNNに基づいて、シーン表現と潜在変数を条件とした新しいシーンを再構成します。GQNは、複数視点からの画像と、新しいビューのポーズを入力とすることで、新しいシーンを予測できます。GQNは、より複雑な環境モデリングを可能にするための幾何学表現を獲得するため、Attention機構を組み込んだ拡張や、マルチモーダルデータを含むシーン推論などの拡張が研究されています。
ナビゲーションを追求する研究に、データ学習型の新しい地図表現であるマップレスがあります。ロボットがナビゲーションや経路計画などの位置情報を利用したタスクを実行するためには、背景にある環境の幾何情報を理解する必要があります。Reinforcement learning with un- supervised auxiliary tasksなどの研究のように、学習ベースの技術は、深層強化学習を用いてタスクを解決しており、環境を明示的にモデル化することなく、End-to-Endの方法でセンサ観測から直接ロボットの制御信号を予測しています。興味深い話ですが、強化学習によってナビゲーションタスクを学習したニューラルネットモデルの内部のニューロンを可視化した場合、人間の脳内と似たパターンを持っているという報告あります。
3. Global Localization
グローバルな位置推定は、既知の環境内におけるロボットの絶対的なポーズを推定することを目的としています。内部の動的なモデルに依存しているオドメトリ推定とは異なり、グローバルな位置推定では、2Dまたは3D環境モデルを介して提供される事前知識を利用して推定します。例えば、クエリ画像などを事前に構築されたモデルと照合することで、グローバルなポーズ推定値を取得し、センサ観測(画像)と地図との関係を紐付けています。
深層学習に基づくグローバルな位置推定は、クエリデータと地図の種類に応じて、3つにカテゴリに分類されます。2D-to-2D位置推定は、2D画像を参照画像を明示的なデータベースや暗黙的なニューラルマップに対して照合させています。2D-to-3D位置推定は、画像のピクセルと環境モデルの3D点の対応関係を確立します。3D-to-3D位置推定は、LIDARなどのセンサによる3Dスキャンと事前に構築された3D地図との照合を行います。
3.1 2D-to-2D Localization
2D-to-2D位置推定は、画像から2Dの地図におけるポーズを回帰させる問題です。2Dの地図は、参照データベースにより明示的に構築されるか、または、ニューラルネットワークによって暗黙的にエンコードされます。
Explicit Map Based Localization
明示的な地図に基づく2D-to-2D位置推定は、一般的に、位置情報付きの画像データベースにより環境を表現しています。上図(論文中Fig.8)(a)は、参照画像を用いた2Dの位置推定手法を示しています。この手法は、画像検索により、クエリ画像に視覚的に最も関連性の高い参照画像を決定し、参照画像に対するクエリ画像の相対的なポーズを推定することで位置推定を行います。ここでの問題は、画像検索に適した画像表現をどのようにして設計するかということです。深層学習に基づくアプローチでは、事前に学習したConvNetに基づいて特徴を抽出し、これらの特徴を用いて、参照画像との類似性を評価します。
例えば、NetVLADという研究では、大域的な情報を集約する学習可能なVLAD(Vector of Locally Aggregated Descriptors)層を設計しており、画像検索のためのより良い特徴表現の学習を促進しています。
より正確なグローバルなポーズを推定するためには、クエリ画像に対する検索画像の相対的なポーズ推定が必要です。長年、相対的なポーズ推定は、局所特徴によって計算される画像間の対応関係と画像の背景にある幾何情報を用いて行われていました。一方で、深層学習によるアプローチは、2枚の画像から相対的なポーズを回帰させる問題として定義しており、以下のような研究が行われています。
- NN-Net
クエリ画像と類似度が高い上位N個の参照画像との間の相対ポーズを推定するためにEnd-to-Endのニューラルネットワークを利用していました。 - CamNet
CamNetは、画像ベースの大まかな検索と、ポーズベースの詳細な検索の2段階の検索を適用することで、正確なポーズ推定のための最も類似した参照画像を選択しています。
参照ベースの手法は、位置座標の画像データベースを維持する必要があり、正確性よりスケールアップしていくことが困難な問題となります。
Implicit Map Based Localization
暗黙的な地図に基づく2D-to-2D位置推定は、シーン全体の構造を暗黙的にDNNで表現することで、単一画像からグローバルなポーズを直接回帰させるものです。
- Posenet: A convolutional network for real-time 6-dof camera relocalization
PoseNetは、単一のRGB画像からグローバルなポーズを推定するためのEnd-to-EndなDNNで、ConvNetを用いてカメラの位置推定問題に取り組んだ最初の研究です。しかし、損失関数の内部パラメータの調整にコストがかかり、特徴埋め込みの次元が大きく学習データも限られていたため、モデルがデータに過剰適合してしまう問題がありました。そのため、この研究の発展として、LSTMを用いて特徴埋め込み次元を小さくすることや、画像生成を利用した訓練データの増強、ポーズ不確かさのモデル化、幾何学的損失の導入などの発展的な研究が行われました。 - Atloc: Attention guided camera localization
Atlocは、空間領域の特徴に対してAttention機構を導入することで、ロバストな場所に注目するようなネットワークを提案しました。 - Geometry- Aware Learning of Maps for Camera Localization
この論文では、画像によるVOやGPSのような安価でどこにでもある入力を融合したMapNetを提案していました。また、従来、バンドル調整などで行っていたグローバルな最適化を損失として定式化し、MapNetを学習させました。しかし、モデルが学習データに特化したものになり、有益な特徴獲得ができていない可能性がありました。
暗黙的な地図に基づく2D-to-2Dの位置推定は、従来の手法では失敗しやすい特徴量の少ない環境において、タスクに重要な特徴量を自動的に抽出するために利用しています。しかし、データに依存した学習を行うため、再学習なしで未見のシーンに対して一般化することはできませんでした。また、現在の暗黙的な地図に基づく手法は、他の明示的な地図に基づく手法と比較して同等の性能を示せていません。
3.2 2D-to-3D Localization
2D-to-3Dの位置推定とは、3Dシーンを表現したモデルを基に、2D画像のポーズを推定する手法のことです。この3D地図は、Structure from motion(SFM)のようなアプローチにより、グローバルなポーズ推定を行う前に、あらかじめ構築されます。下図(論文 Fig.9)のように、2D-to-3Dの位置推定では、クエリ画像のピクセルとシーンモデルの3D点をローカル特徴量を用いてマッチングする手法 (記述子マッチング法)と、またはあるピクセルを中心としたパッチを用いて3D座標を回帰させる手法の研究が行われています。
Descriptor Matching Based Localization
記述子マッチング法は、主に特徴検出モデルと特徴量記述(記述子)に依存し、2次元入力と3次元モデルの記述子の対応関係を確立する手法です。検出モデルと記述子の役割に応じて、detect-then-describe, detect-and-describe, describe-to-detectに分類されます。
detect-then-describeは、まず特徴検出を行い、各特徴点を中心としたパッチから記述子を抽出する方法です。特徴検出モデルは、パッチを正規化することで、スケールや回転、または視点の変化など現実に起こりうる問題に対するロバスト性や不変性を持つことが重要になります。また、記述子においてもロバスト性や不変性を持つことが重要です。効率化のため、特徴検出モデルは、小さな画像領域のみを考慮し、物体のコーナーなどの低レベルの情報に焦点を当てています。一方で、記述子は、特徴点の周囲のより大きな領域で、高レベルの情報に焦点を当てています。
detect-to-describeのアプローチは、DNNを用いることで、密な記述子と特徴検出モデルを学習しており、SuperPointやR2D2などの有名な手法が発表されています。しかし、これらのネットワークは、記述子と特徴検出に関して、独立した損失で学習され、独立したデコーダになっている。これに対して、D2-netなどは、特徴検出と記述子の間でDNNのパラメータを共有し、両方のタスクに対して、同時に最適化しています。
また、describe-to-detectでは、事前に学習した密な記述子に対して検出を行い、疎なキーポイントと、それに一致する記述子を抽出しています。D2Dでは、多くの情報を含む記述子を定義し、検出されるキーポイントをこの記述子を用いて選択することで、位置を選択しています。このアプローチは、特に2Dグリッド上において強いばらつきがある場合に、疎な特徴点のマッチングと比較して、より良い結果を出しています。
しかしながら、これらは、依然として、2Dと3Dのキーポイントを事前に定義しており、不良な結果を示すこともあります。
Scene Cordinate Regression Based Localization
シーン座標を回帰するアプローチでは、クエリ画像から画像中の各ピクセルの3D座標、つまりシーンのグローバル座標を推定します。これは、クエリ画像からシーンのグローバル座標への変換を学習していることになります。
DSACは、シーン座標を回帰するためにConvNetを利用し、それに加えて、画像処理においてロバストな最適化を行うため良く使用されているRANSACを微分可能なものに再定義することで、End-to-Endな学習を可能にしています。この研究の発展として、再投影誤差や複数画像による幾何学的制約を導入することで教師なし学習を可能にすること、サンプリング効率や精度を向上させるため観測した情報に信頼度を導入し同時に学習することなどが行われています。
一方で、KFNetは、シーン座標の回帰問題を時間領域に拡張し、カルマンフィルタを組み込んだDNNを用いることで、時間的にポーズを推定しました。しかし、これらは、特定のシーンにのみに対してのみ訓練され、汎化性能はありませんでした。
シーン座標の回帰は、屋内の小さなシーンの下では、ロバスト性が高く、より高い精度を発揮し、従来の手法を凌駕することがよくありますが、大規模なシーンでの性能は証明されていません。
3.3 3D-to-3D Localization
3D-to-3Dのポーズ推定は、LIDARなどの点群情報を用いて事前に構築された3D地図におけるポーズを推定する手法です。下図(論文中Fig.10)は、3D-to-3Dの位置推定を示しており、基本的には以下のような処理フローになります。
- DNNなどにより抽出した特徴量を用い、最も類似した3D地図を検索
- 観測と地図の相対的なポーズ推定
- 推定された相対情報を用いて、グローバルのポーズを推定
以下、研究を紹介します。
- Learning to localize using a lidar intensity map.
LIDAR情報による位置推定をRecursive Bayesianアプローチとして定式化し、LIDARによる強度情報と点群情報の両方を同じ特徴空間に写像することで、微分可能となりEnd-to-Endの学習が可能なポーズ推定問題にしています。 - Locnet: Global localization in 3d point clouds for mobile vehicles
点群データを直接扱うのではなく、回転も考慮した特徴表現に変換し、参照点群と3D地図の特徴表現の類似性より、類似地図を検索しています。そして、参照点群と3D地図の点群に対して、Iterative Closest Point (ICP)を行うことで、点群同士をマッチングし、グローバルなポーズの計算を行なっています。 - L3-net
点群データに対してPointNetを利用して有用な特徴記述子を抽出し、RNNを介して、時間的な繋がりを持つポーズを推定するフレームワークを提案していました。この手法は、フレームワーク全体を、点群入力と3Dマップとの間のマッチング距離の最小化により最適化しています。
2D-to-3D,2D-to-2Dなどの画像ベースのポーズ推定に比べて,3D-to-3Dのポーズ推定は比較的未開拓な研究課題です。
4. SLAM
グローバルなポーズ推定と周囲のシーン構造の推定を同時に行うことで、Simultanious Localization and Mapping (SLAM)システムは構築されています。ここまで説明してきた、LocalizatoinやMappingの個々のモジュールは、SLAMの個々のモジュールになります。本節では、SLAMにおいて、個々のモジュールを統合する際に、寄与する、ローカル/グローバル最適化、キーフレーム/ループクロージャ検出、不確実推定などに関して説明します。
4.1 Local Optimization
SLAMでは、時間や空間領域における局所的な範囲において、推定されたポーズとシーン情報を同時に最適化する、局所最適化が行われます。これは、バンドル調整問題と呼ばれ、カメラポーズの周辺状況において、一貫性を保証するための幾何または、輝度による損失の最小化によって達成されます。学習ベースのアプローチは、大規模なデータセット上で訓練された2つのDNNを用いることで、深度マップとポーズを予測しています。
局所最適化を行うために、従来は、Levenberg-Marquadt (LM)アルゴリズムなどの2次ソルバーを適用して、ピクセルごとの深度マップと相対ポーズの最適化を行なっていました。そこで、バンドル調整問題を解決する代替手段として、以下のような研究が行われました。
- LS-Net
解析ソルバーを学習プロセスに統合することで、学習ベースの問題に取り組みました。LS-Netは、輝度の一貫性を保証するようなオプティマイザーを設計することで、DNNの予測精度を向上させました。 - BA-Net
LMアルゴリズムを微分可能なものに定式化し、DNNに統合することで、End-to-Endな学習を実現しています。BA-Netは、幾何学的誤差や輝度誤差を最小化するのではなく、ConvNetにより抽出された複数画像から得られる空間的に一貫性のある特徴を損失として最適化しました。このように特徴ベースの最適化は、幾何学的な情報が失われる可能性があります。一方で、環境における移動体や照明の変化などの影響を緩和できます。
4.2 Global Optimization
グローバル最適化は、時間の経過とともに蓄積されるシステム誤差を緩和する問題のことです。この問題を解決するために、グラフSLAMでは、カメラのポーズやシーンの特徴をグラフのノードとして表現し、センサー観測により得られるエッジで接続することで、ポーズの推定に制約を課しています。このグラフベースの定式化により、ノードとエッジのグローバルな一貫性を確保するために最適化することができ、ポーズの推定誤差やセンサの観測ノイズを軽減することができます。大域的最適化のための一般的なソルバーとしても、LMアルゴリズムが使用されます。
DNNは、特徴を抽出し、観測からポーズやシーン表現へ写像する関数を構築することを得意としています。大域的なポーズの誤差を低減し、大規模な地図構築を補助するためには、DNNの予測値に対する大域的な最適化が必要になります。しかし、従来のSLAMにおける様々な解決手法と比較し、DNNにおける大域的な最適化は十分に研究されていません。
既存の研究では、DNNの学習部分を、古典的なSLAMに統合することが一般的で、DNNにより生成された予測値を、従来のSLAMにおける最適化に組み込んでおり、以下のような研究が行われています。
- CNN-SLAM: Real-time dense monocular SLAM with learned depth prediction
ピクセルごとの深度をDNNにより予測し、LSD-SLAMに統合しました。深度マップの推定により、スケールに関する精度向上が期待でき、ポーズとシーンは、深度マップとともに最適化されています。 - DeepTAM: Deep Tracking and Mapping
DNNから深度マップとポーズを予測し、バックエンドでグローバルな最適化を行うことで、より正確なシーン再構成とカメラのポーズトラッキングを実現しています。 - Deepfac- tors: Real-time probabilistic dense monocular slam
学習した最適化可能なシーン表現(CodeSLAMのようにエンコードしたコード表現)を、グローバル最適化のための確率的因子グラフに統合しています。因子グラフに基づく定式化の利点は、センサ観測や状態推定、及び各制約を含んだ最適化を行うことができるという柔軟性にあります。そのため、最適化のための新しいセンサ情報や制約、システム状態をグラフに追加することが非常に簡単になります。しかし、これらの最適化を行う部分が微分可能ではなくEnd-to-Endの学習ができません。
4.3 Keyframe and Loop-closure Dtection
キーフレームとループ閉鎖の検出は、SLAMの最適化にとても重要な要素です。キーフレームベースのSLAMにおいて、ポーズとシーンの推定値は、キーフレームが検出された時のみ、精緻化されます。Unsupervised collaborative learning of keyframe detection and visual odometry towards monocular deep slamでは、ポーズと深度推定の教師なし学習とともに、キーフレームの検出を行う学習手法を提案しています。画像がキーフレームであるかどうかは、既存のキーフレームに対する特徴量の類似度を比較することで決定できます。一方で、類似度が閾値以下であれば、新しいキーフレームとして扱われます。
ループ閉鎖の検出は、以前訪れたことがある場所に再度訪れた時に、誤差を低減することを目的としたSLAMの重要な機能です。ここで重要なことが、再訪の認識ですが、従来の手法では、人間が設計した検出器による特徴のBag of word (BoW)表現に基づいていました。しかし、実環境では、照明の変化や天候、視点の変化、物体の移動など複雑性の問題があり、性能が出ませんでした。この問題を解決するため、Place recognition with convnet land- marksなどの先行研究では、大規模なデータセットにより事前に学習したConvNetにより特徴量を抽出することを提案しています。これらの手法は、DNNにより抽出された高レベルな表現により、視点や条件のばらつきに対して、よりロバストなものになりました。
ループ閉鎖検出において、深層学習は、よりロバストな視覚的特徴抽出に貢献するとともに、場所認識においても、最先端な性能を実現し、SLAMシステムに組み込まれています。
4.4 Uncertainty Estimation
安全性と解釈可能性は、日常生活におけるロボットの実用的な展開に向けた重要な課題です。DNNは幅広い回帰や分類のタスクにおいて最先端の性能を達成していますが、データセットに依存している部分もあるため、安全性を確保し、解釈可能性を提供する必要性があり、これはDNNの不確実性を推定する問題として扱われています。
DNNは、通常、予測値の平均値しか生成しません。DNNの不確実性を補足するためには、学習モデルをベイジアンモデルに拡張する必要があります。ベイジアンモデルによる不確かさは、偶然性不確かさと、認識論的不確かさに分類されます。偶然性不確かさは、センサ測定や移動ノイズなどの観測ノイズを反映しています。一方で、認識論的不確かさは、モデルの不確かさを反映しています。
DNNベースのオドメトリ推定の不確実性では、End-to-end, sequence-to-sequence probabilistic visual odometry through deep neural networksにおいて、ポーズ推定値の平均値と共分散を用いて、予測値をガウス分布に変換する手法を採用しています。この手法では、平均値と共分散を組み合わせた損失関数を介して最適化され、不確実性に関しては、教師なしで自動的に学習されます。そして、SLAMシステムにおいて不確実性推定の有効性を検証するために、学習した不確実性をエッジの共分散としてグラフSLAMに統合しました。これらの共分散に基づいて、大域的な最適化が実行され、システムの誤差が低減されます。また、不確かさの推定が、SLAMの性能向上させることも確認されています。
Modelling uncertainty in deep learning for camera relocalizationでは、DNNからの不確かさをグローバルなポーズ誤差に反映しており、不確かさにより信頼性の低いポーズの使用を回避することができます。また、ポーズに加えて、シーン理解のための不確かさを推定することもSLAMにおいて重要です。この不確実性は、環境認識とシーン構造の理解をどの程度信頼すべきかという指標になります。さらに、シーンの不確実性は、ハイブリッドなSLAMシステムの構築に適用可能で、例えば、輝度不確かさにより、各画像ピクセル上の強度の分散を補足することができ、それゆえ、観測ノイズに対するSLAMシステムのロバスト性を向上させることができます。
まとめ
以上のように、ロボット×AIという分野では、様々な研究が行われており、AI分野の発展と共に、ロボットにおける認識や自律性が進化していっている気がします。SLAM技術は、自動運転においても欠かせない技術ですし、この分野の知識は、ARなどの他分野にも活用されているため、日々、動向調査を行っていくことが重要だと思います。