Visual SLAM勉強日記

ミュンヘン工科大学に留学中です。Daniel Cremers教授の研究室が主宰するPractical Course (1セメ研究)を通して、Visual SLAM (LSD-SLAM)の勉強をしていました。そのまま研究室にインターンとして滞在しており、DSOをネタに研究しています。

自動運転とVisual SLAM

更新滞っててすみません。きちんとまとまった記事にしようとすると筆を取るのが億劫になるので、これからは思いつくままに書こうと思います。

今日は自動運転とVisual SLAMについて。実際にメーカーで働いている訳では無いので情報が不正確ですが、知ってる限りのことを書きます。

 

SLAMは自動運転で重要な役割を果たす。

自動運転に限らず自律ロボット全般において、自分が今どこにいるのかを知る技術(Localization)は非常に重要である。自動車のLocalizationには通常GPSが用いられているが、トンネル等GPSが使えない環境があったり、そもそも普通にしてても10m以内で定常的に誤差が発生してしまう為、これだけでは十分なLocalizationが行えない。その為最近出ているNissanとかTeslaの高速道路や自動車専用道路上でのみ使用可能な"自動運転"技術はGPSの情報に加えて道路上の白線を画像認識で検知して左右誤差を補正する事で自車の位置を特定している。

しかし、一般道や市街地では、前後で数m自己位置認識がずれると交差点に突入したり、そもそも白線が消えていたりする為、GPS+白線検出では不十分である。そこで必要となるのがSLAMである。 SLAMはセンサーで検知した範囲内で自己位置認識と3次元地図作成を行う。このSLAMで作成した3次元地図と、事前にデータベース上に用意された3次元地図を比較して位置合わせを行い自車の位置を推定する。

 

この様にSLAMは自動運転で非常に重要になる技術なのだが、用いられるセンサーによってLiDAR SLAMとVisual SLAMの大きく2つに大別される(屋内ではDepthカメラを用いるSLAMもある)。LiDARではレーザーを飛ばす事で対象の奥行きを直接観測し、それを元に高精度の地図が作成できるが現状センサーが非常に高額である。カメラを用いるVisual SLAMでは、安価だがたとえステレオカメラを用いたとしても奥行きの情報をLiDARほど高精度で取得できない。

両者一長一短であり、両方のSLAMアルゴリズムを用いてLocalizationが行われていると考えていたのだが、勉強を深めるにつれて感じるのは、現段階ではVisual SLAMは自動車のLocalizaitonに用いるのは難しく、自動運転という文脈で語られるSLAMはほぼ全てLiDARを用いたSLAMを指しているのではないかという事である。

 

Visual SLAMは使う画像情報の疎密(≒作成される地図の疎密)に応じてSparse(≒Feature Point Based), Semi-Dense, Denseの3種類に大別されるが、この中で車の移動速度で屋外環境の大規模なマップ作成が可能なのはSparseあるいはSemi-Denseになる。

 

Semi-Dense - LSD SLAM

youtu.be

 

Sparse (Feature Point Based) - ORB SLAM

youtu.be

 

先ほど述べた通り自動運転においてSLAMに求められるのは、自車周りのリアルタイムでの地図作成である。Semi-DenseのSLAM (LSD-SLAM, DSO)ではLiDARと同じ程度に密な3次元地図を作成できる。しかしSLAMの実行にあたり画像間のトラッキングにPhotometric Consistensy (明るさの一致) を想定している為、例えば反射物が多い環境や、トンネルを出て突然周りの環境が明るくなる様な場合などでは容易に地図が崩壊してしまう。

その一方でFeature Point Basedの方法では、明るさの変化やノイズにロバストな少数の特徴点のみを抽出し地図を作成するが、得られる地図が疎であり、データベース上の地図とのマッチングを行うのに十分なのか怪しいと私は思う。

 

以上の様な理由から、Visual SLAMを自動運転で用いるにはまだまだ研究が必要だろうと感じる。

 

・・・実際に働いてる方いらっしゃったらいろいろ教えてください。

 

※2017年5月3日追記

・どうやら画像間のTrackingにはFeature Basedを用いて、地図の作成には画像上の全点を用いる、という事が出来る様だ。Project Tangoの3次元復元も同様の手法を用いているらしい。

・HDマップとの位置合わせ以外にもSLAMの用途は存在するようだ(例:自動パーキング)。

・結局の所、Visual SLAMが自動運転のどの場面でどう使われるか、よくわからないなあ。勉強せねば。