Predator's Vision

画像処理、3D点群処理、DeepLearning等の備忘録

Direct Sparse Odometry (DSO) の要点まとめ

過去のエントリではWindowsへのインストール方法をまとめたが、今回は論文から理解したことをまとめる。
数学的な細かな話は最小限に抑え、私なりに要点だけまとめる。
# 間違ってるところがあるかもしれないので随時修正していくつもり。

従来手法

従来のSFM/SLAMはざっくり次の3ステップ:

  1. 複数画像から対応する特徴点を抽出
  2. 各対応特徴点に対して三角測量を行い3D再構成
  3. 3D再構成した点やカメラ位置姿勢に対してバンドル調整 (Bundle Adjustment : BA)
    • 3D点の画像上への再投影点と元の2D特徴点のx,yのズレ(再投影誤差)という空間的誤差 (geometric error) が最小化されるように、カメラ位置姿勢や3D点座標の微小修正を繰り返す

DSOの手法

これに対して、DSOは入力画像群に対して最初から直接バンドル調整(BA)を実施しているイメージ。特徴点は求めない。ざっくり次の3ステップ:

  1. 一方の画像の(勾配がある程度大きい)とある座標の画素値(A)はもう一方の画像のとある座標の画素値(B)に対応するはずという計算式を立てる
  2. その計算式から、画素値(A)と(B)の差の計算式を立てる
  3. その画素値誤差 (photometric error) が最小化されるようにカメラ位置姿勢や3D点(*1)の微小修正を繰り返す

ちなみに、処理対象とする画像:キーフレーム(KF)や3D点群を随時不要になったら削除するなど上手に管理するところにもテクニックがありそうだ。

※画像/画質処理屋さんのセンスのままで考えると理解できないかも。DSOは数学の塊で成立しているイメージ。
前回エントリを例にとると、私のイメージでは(あくまで個人の感想):

  • マッチング方式 … 画像処理屋さん的センス
  • オプティカルフロー方式 … 数学屋さん的センス

前提条件

Webカメラスマホカメラのような「人の目に美しく映るような画像」ではなく、「マシンビジョンにとって最適な画像(やカメラ)」であること。具体的には:

  • グローバルシャッター
    • 論文では一言、ローリングシャッターの影響をいくらか緩和する手法もあるようなことも書かれてはいるが…
  • キャリブレーションその1 (geometric calibration) (※言わゆる内部パラメタ)
  • キャリブレーションその2 (photometric calibration)
    • 露光時間
    • レンズ減衰・口径食
    • 放射照度の逆関数

DSOの嬉しいところ

  • 従来の特徴点方式SFM/SLAMは所謂「コーナー」を3D化するに留まるが、DSOは処理方式の違いから「エッジ」も再構成しやすい
  • つまり従来方式より多くの3D点を生成しやすい


今後より技術的に詳しく見ていこうと思う。