弱点を補い合う関係

 1枚の画像から絶対距離を推定できるようになったとはいえ、そのCNNも万能ではない(表1)。物理的に精密な距離計測をしている訳ではなく、あくまで機械学習による推定、いわば経験則のようなものであるため、図2左に示すように分解能の高いシャープな距離画像が得られるわけではない。出力される距離画像自体は、壁などであっても距離値の欠損なく密に埋まっているが、物体の形などは不鮮明だ。また、CNNのみではSLAMのように時系列の複数フレームの情報は扱わないため、1フレームの画角内の距離情報しか得られない。

 そこでTUMとキヤノンは、1枚の画像からCNNで推定した距離画像を、複数フレーム組み合わせることとした。CNNによる距離画像を、運動視差を考慮する通常のvisual SLAMのパイプラインに入れる。複数フレームの情報を総合することで、物体の形状はよりシャープになるほか、特定の画角内だけでなく広い空間全体の3次元地図を得られる。

 具体的には、距離画像センサベースのRGB-D向けSLAMのパイプラインに、CNNによる距離画像を入れるイメージだ(図2)。これによりCNNと単眼visual SLAM、双方の弱点を補い合える。CNNとvisual SLAM、どちらか単体だけではなし得ない特性を備えるようになった。シンプルだが賢いアプローチであるといえる。RGB-DによるSLAMとしては米Microsoft Researchが考案した「Kinect Fusion」が著名である。今回のCNN-SLAMは、Kinect Fusionにおける距離画像センサの代わりに、CNNによる「ソフト的な距離推定器」を使っているイメージである。ただし、地図はKinect Fusionのようなボクセルベースではなく、点群ベースとした。

深層学習とSLAMの融合

 ディープラーニングをSLAMに応用しようという試みは、実はTUMとキヤノンに限らず、1~2年ほど前から出てきている。両者の組み合わせ方としてさまざまな方式・考え方が提唱され、過渡期のような状態だが、大まかに次の4つのアプローチに分類できる(表2)。

表2 ディープラーニングとSLAMの融合の主なアプローチ
[画像のクリックで拡大表示]

 (1)CNNで画像の特徴記述子(descriptor)を得て、それをSLAMにおける複数フレーム間のマッチングやループクロージャ(loop closure)などに用いるもの、(2)今回のCNN-SLAMのように、CNNで得た距離画像をRGB-D向けSLAMに入れるもの、(3)何らかの手段で得た距離画像を1フレームごとにRNNなどに入力し、フィルタとして動作させ、地図を推定するもの、(4)RGB画像などをDNNに入力し、直接、地図を出力として得る「End-to-End」のアプローチ、である。

 (1)と(2)は、主に画像認識の面でCNNを利用するものだ。visual SLAMの前段で、従来型の手設計の特徴抽出手法に代わりCNNを利用する。ディープラーニングとSLAMを組み合わせる上で、比較的オーソドックスなアプローチである。オーストラリアUniversity of Adelaide13)や中国・国防科学技術大学、カナダAlberta University14)などが手掛ける。特にループクロージャの際の記述子としてCNNの出力結果を使う場合、照明条件が変動する環境では手設計の特徴量を使う場合よりも大幅に性能が向上する14)

 一方、(3)や(4)は、複数フレームをトラッキングし、地図を生成するSLAMのバックエンド(後段)の部分にもディープラーニングを適用しようとするものだ。英Oxford Universityなどが手掛ける15)が、こうした提案はまだ少数派だ。

 コンピュータビジョンの領域でも2012年に画像認識のコンテスト「ILSVRC」でニューラルネットを使うチームが2位以下に大差を付けて優勝するまでは、ニューラルネットはあまり見向きされなかった。今後、SLAMの領域でも何らかのキッカケでディープラーニングが一気に広まりEnd-to-Endになる可能性はある。