2017/05/08

visual SLAM の歴史1(visual SLAMの誕生)

こんにちは!

今までいくつかのvisual SLAMを導入しました。アルゴリズムについてはだいぶ省略して来てしまいました。

修論が終わり、ここに何か書いても剽窃とか言われなくなったので、visual SLAMについてアルゴリズムについて少しづつ述べていくかもしれません。

まずは、visual SLAMの歴史です。



visual SLAMはカメラをセンサとして用いたSLAMです。カメラは時間的にも、空間的にもデータが密であり、また、直接距離を得ることができないため計算が大変です。
よって、visual SLAMは難しいです。

visual SLAMが普通に動くようになったのは、2008年のMonoSLAM、PTAM(parallel tracking and mapping)からです。それぞれ、EKF SLAM、Structure from Motion(SfM)で用いられる再投影誤差の最小化がアルゴリズムの基本となっています。

EKFは計算時間が大きいため、再投影誤差の最小化を行うPTAMがその後主流となっていきます。他にも生物学的アプローチを用いたSLAMも並列して発展していますが,今回は述べません.はやりのDeep learningやCNNなどは生物学的アプローチともいえるので,今後SLAMを研究する人はその勉強も避けられないと思われます.

SfMというものがあります.これは時間的にバラバラな画像群を繋ぎ合わせて、3次元地図を作り出す手法です。地図を作るのに時間的な制約はありません。しかし、SLAMはリアルタイム動作をする必要があります。

そこでPTAMでは、動画のすべてのフレームをマップに反映することを諦めます。また,visual SLAMはSfMと違い,入力される画像は連続的であるという特徴を生かします.

すなわち,自己位置の推定は連続するフレームの特徴的な部分を対応点として取って毎フレーム行い、視界が大きく変わったときのフレームのみに関してマップに反映します。このフレームをキーフレームといいます。

PTAM最大の特徴はこの自己位置推定とマップ推定を並列して独立に行うことにあります.自己位置推定は連続するフレームの対応点を取って毎フレーム行い,視界が大きく変わったときのフレームのみに関して三角法でマップに投影します.

これらを初期値とすることで,リアルタイムでは実行できなかったSfMのアルゴリズム,バンドル調整をリアルタイムで実行することができるのです.

このPTAMによって,visual SLAMは大きく発展を始め,様々な周辺技術が開発されます.

そんななか,2011年,DTAMという手法が発表されます.これはフレームの特徴的な点を取るのではなく,フレームないのすべてのピクセルの輝度について対応をとれば情報を取り逃すことがなく,高精度になるという手法でした.当時はGPUが必要でした.輝度を直接用いる手法をdirectな手法といい,PTAMのような特徴的な点に注目する特徴ベースな手法と切磋琢磨していくことになります.

特徴ベースな手法vs.directな手法についてはまたいずれ.精度のほかに,directな手法には出来上がった地図が人が見てわかりやすいなどの特徴があります.

それでもDTAMでは机の上程度しかSLAMできませんでした.そこで輝度を使うのはよい.しかし,扱うのは輝度勾配の高いところだけでいいという手法がSVO(Semi-direct Visual Odometry)です.しかしこれにも特徴点を一部使用することから完全にdirectなわけではなく,また,loop close検出も持たないため,DTAMと同様広範囲のSLAMは不可能であった.

2014年に考案されたLSD-SLAM(Large Scale Direct SLAM)は特徴点の利用はloop close検出のみであり,大規模で実行できる初めてのdirectなSLAMであり,当時の最新の特徴ベースのSLAMの精度を超えていた.

しかし,2015年になって,PTAM以降発展した様々な特徴ベースのSLAMの周辺技術,また,局所的にキーフレームを多数取り込むことで精度とロバスト性を向上したORB-SLAMが提案され,再び特徴ベースのSLAMがdirectなSLAMの精度を凌駕した.

2017年3月ごろでは,LSD-SLAMの流れをくむDSO(Direct Sparse Odometry)という手法により,カメラごとに最適化することで,ORB-SLAMと同程度な精度を達成している.Directな手法であるにもかかわらず,疎なマップであり,人の目で見てわかりやすいという特徴は薄くなっている.

一方ORB-SLAMも発達し,半密なマップに拡張されている.

最後に,年表っぽいのを張って終わりにします!!




以上です!!また!

2 件のコメント:

  1. ありがとうございます、面白かった!。以前業務でOSS特徴点ベースとDirectな方法両方とも評価したことがあって、特にORB-SLAMとLSD-SLAMを比較していました。

    返信削除
    返信
    1. ありがとうございます!業務のレベルでSLAMなんてすごいですね!ORB-SLAMとLSD-SLAMには私もとてもお世話になりました。

      削除