Direct Sparse Odometry
東京大学 相澤山崎研究室
Qoncept Internship
2018/01/13 B4 金子 真也
1
What is this?
• 現在, 株式会社Qoncept(http://qoncept.jp/)でのInternshipに参
加しており, その成果の一つとして作成した資料です.
• 近年VOとしてかなり精度が高いと話題のDirect Sparse Odometry
(https://vision.in.tum.de/research/vslam/dso)の論文を翻訳し
まとめました.
• DSOに関する日本語の文献は現在かなり少ないので, 参考になると
思い公開しました.
• 私自身, 勉強中の身で理解が甘い箇所が多々あると思うので, 何かコ
メント等あれば気軽にお願いします.
• 本スライド中の数式番号は元論文に対応した番号を付けています
(違う論文の数式の場合は番号に引用を付けています)
Demo, Abstract, Motivation, ...
3
Demo-Video (YouTube)
4
Abstract
• SLAMやVOは特徴点ベース(indirect)の手法が長い間主流だったが,
近年はdirectでdenseな手法が人気。
• Direct vs Indirect, Dense vs Sparseの2軸で方法を分類できる
• 本論文はDirect + Sparseという部分の方法を提案する
手法 Direct Indirect
Sparse DSO(本手法)
monoSLAM(2007)
PTAM(2007)
ORB-SLAM(2015)
Dense/
Semi-Dense
DTAM(2011)
LSD-SLAM(2014)
3D geometry
Estimation ...
5
Motivation
• Direct
– 特徴点ベース(Indirect)の手法の利点としては画像中の幾何学的
歪みに対して頑強性を持つ
– 一方, Directな手法では点がそれ自身認識する必要がないため,
より細かい幾何学表現が可能 + 輝度の微弱な変化を含めたデー
タ全体からサンプリングできるのでテクスチャがまばらな環境
でも頑強な性能を持つ
• Sparse
– Sparseな場合にはgeo-geoが対角行列(青)なので, Schur補元を
使って簡単にBAができる
– 一方, Directな場合にはgeo-geo
の相関関係が生じるため(橙), 上
の方法では足りずBAが難しい
(工夫が必要)
6
Contribution
• 全てのモデルパラメータの完全尤度の最適化は一般的にDirectな手
法で行われているため, Direct + Sparseな手法を提案
– Cameraの位置, 内部パラメータ, および幾何学パラメータ等
• 最適化はsliding windowベースで行い, 古いカメラの位置は除外
• 既存の手法と異なり, カメラのphotometric calibrationを十分に
活用することで正確さと頑強性を向上させる
• CPUベースの実装であり, かつLSD-SLAM[1]と同じ密度のモデルを
作りながら, 既存の手法を上回る精度と頑強性 + 5倍の速さ
[1] J. Engel, T. Schops, and D. Cremers. LSD-SLAM: Largescale direct monocular SLAM. In European Conference on Computer Vision (E
CCV), 2014.
Methods
8
Method
以下の手順で解説する
1. Direct-Sparse Modelの解説
1. Camera Calibration
Geometric Calibration + Photometric Calibration
2. Modelの定式化
3. Windowベースの最適化
2. DSOのFront-End部分の解説
1. Frameの操作手順
2. Pointの操作手順
1. Direct-Sparse Modelの解説
10
1. Camera Calibration
• Directな手法ではこの部分がかなり大事
– Indirectな手法では特徴抽出器・記述子は測光の変動に頑強性を
持つのでこの操作の大部分は無視することができる
– Geometric CalibrationとPhotometric Calibrationの2種類で
モデル化する
• Geometric Calibration
– よく知られたピンホールカメラモデル
– 3D点 𝑥, 𝑦, 𝑧 ∈ ℝ3
から画像点 𝑢 𝑑, 𝑣 𝑑 ∈ Ωへ
(投影関数であり, Π 𝑐 ∶ ℝ3 → Ω と表記)
(1)[1]
[1] J. Engel, V. Usenko, D. Cremers. A Photometrically Calibrated Benchmark For Monocular Visual Odometry, In arXiv:1607.02555, 2016.
11
1. Camera Calibration
– 今回は歪みあり画像点 𝑢 𝑑, 𝑣 𝑑 から歪みなし画像点 𝑢 𝑢, 𝑣 𝑢 へ変換
– この点を三次元へ変換する際には以下の変換を行う
(逆投影関数であり, Π 𝑐
−1 ∶ ℝ × Ω → ℝ3 と表記)
– 今回のcalibrationはPTAM[2]の実装を使い,チェックボードを用
いることで [𝑓𝑥, 𝑓𝑦, 𝑐 𝑥, 𝑐 𝑦, 𝜔]を推定
[1] J. Engel, V. Usenko, D. Cremers. A Photometrically Calibrated Benchmark For Monocular Visual Odometry, In arXiv:1607.02555, 2016.
[2] G. Klein and D. Murray. Parallel tracking and mapping for small AR workspaces. In International Symposium on Mixed and Augmented Reality (ISMAR), 2007.
(2,3) [1]
12
• Photometric Calibration
– 非線形反応関数𝐺 + レンズ減衰𝑉でモデル化
– フレーム𝑖において, これらを組み合わせたモデルは以下で定義
𝐵𝑖は放射照度, 𝐼𝑖は観測されたピクセル強度, 𝑡𝑖は露光時間
– フレーム𝐼𝑖を測光修正し, 修正フレーム𝐼′𝑖を得るには上の式から
反応関数𝐺 レンズ減衰𝑉 露光時間𝑡
(2)
(3)
1. Camera Calibration
13
2. Modelの定式化
• 参照フレーム𝐼𝑖上の点𝒑 ∈ Ω𝑖が, 対象のフレーム𝐼𝑗で観測された時の
測光誤差を定義
– ピクセル近傍のパターン𝒩𝑝の重み付きSSDにより計算
• モーションブラーに頑強に
• フレーム𝑰𝒊, 𝑰𝒋間の測光誤差
– 𝒩𝑝は近傍パターン, 𝑡𝑖, 𝑡𝑗は露光時間, ∙ 𝛾はHuberノルム
– 𝒑′は逆深度𝑑 𝒑による𝒑の投影点
パターン𝒩𝑝の例
参照フレーム𝐼𝑖
(位置𝐓𝑖)
対象フレーム𝐼𝑗
(位置𝐓𝑗)
𝒑 𝓝 𝒑
𝒑′
深度1/𝑑 𝒑
逆投影関数 Π 𝑐
−1
投影関数 Π 𝑐
:相対的なカメラの動き
(4)
(5,6)
14
2. Modelの定式化
– 露光時間が未知の場合のためにもアフィン輝度変換関数として,
𝑒−𝑎 𝑖(𝐼𝑖 − 𝑏𝑖)を含めている
– Huber損失に加えて, 画素勾配に依存した重み𝑤 𝒑を定義
• 勾配が高いピクセルに関しては重み小に(ノイズを抑える)
– まとめると測光誤差𝐸 𝒑𝑗は以下の要素に依存している
1. 点の逆深度値𝑑 𝒑
2. カメラの内部パラメータ𝑐
3. フレームの位置𝐓𝑖, 𝐓𝑗
4. 輝度変換関数のパラメータ𝑎𝑖, 𝑏𝑖, 𝑎𝑗, 𝑏𝑗
(7)
15
2. Modelの定式化
• 全体の測光誤差
– 全てのフレーム番号の集合ℱにおいて, 𝑖番目のフレーム
– フレーム𝑖上の全ての点集合𝓟𝑖の中で点𝒑
– 点𝒑が観測されたフレーム集合obs(𝒑)の中で, 𝑗番目のフレーム
• 古典的な再投影誤差との違いは1枚だけでなく, それぞれの項が2枚
のフレームに依存されていること
• KF毎の測光誤差の依存関係グラフの例
は右のようになる
(8)
16
2. Modelの定式化
• 点の持つパラメータ数に関して
– Directな手法では点の持つパラメータ数を抑えられる
• 点利用の一貫性
– 今回は観測点をひたすら何度も使い, 使わない点は全く使わない
• 画像から点を取得する際に重複を許しているため
– 空間内に点を分布させ, テクスチャが少ないシーンでもうまく推
定できるようにする
手法 点の次元数 理由
Direct
1
(depth)
逆深度値の推定のみ
Indirect
3
(X,Y,Z)
コーナー位置の推定(特徴点抽出)
+ 深さの推定
17
3. Windowベースの最適化
• 式(8)をsliding windowでGauss-Newton法を使うことで最適化
– 速度と柔軟さで良い性能を持つ
• [定義] 表記としてLie代数 𝔰𝔢 3 とLie群 SE(3)を用いる(詳細は[3])
– パラメータ 𝒙 ∈ 𝔰𝔢 3 𝑛 × ℝ 𝑚 とその行列表記 𝜁 ∈ SE 3 𝑛 × ℝ 𝑚
互いの空間の写像は
exp: 𝔰𝔢 3 ↦ SE 3 , log: SE(3) ↦ 𝔰𝔢(3)
– 演算子⊞: 𝔰𝔢 3 × SE(3) → SE(3)
直接パラメータから行列表記を更新する演算子
𝜁 = 𝒙 ⊞ 𝜁0 ≡ 𝑒 𝑥 ⋅ 𝜁0
• 接ベクトル空間(パラメータ空間)を動かし最適化
– Gauss-Newton法で𝛿ずつ動かす
[3] B. Jose-Luis. A tutorial on se (3) transformation parameterizations and on-manifold optimization. University of Malaga, 2010.
18
3. Windowベースの最適化
• 今回最適化したいのは式(8)だが, 総和でなく残差ベクトル𝐫として
考えるっぽい?(論文の表記から見る感じ)
• 残差ベクトル𝐫の要素𝑟𝑘の定義
– 各画素は 𝒩𝑝 = 8として誤差を計算
– 今回, 最適化すべきパラメータはLie代数𝔰𝔢 3 を使って定義
(𝒙を動かすことで最適化パラメータも動かす)
(11)
19
3. Windowベースの最適化
• Jacob行列𝐽 𝑘の定義
– Gauss-Newton法において𝒙を動かす方向(勾配を降りる)となる
– Jacob行列は𝛿geo = 𝐓𝑖, 𝐓𝑗, 𝑑, 𝒄 , 𝛿photo = (𝑎𝑖, 𝑎𝑗, 𝑏𝑖, 𝑏𝑗)で分割
– これにより以下2つの近似を行うことができる
• First Estimate Jacobians [4]による安定性の確保?
– 𝐽geo, 𝐽photoは𝒙に対してsmoothな空間になっている
• 𝐽geoは𝒩𝑝全体で等しくなるので中央画素だけ計算する(削減)
(12)
(13)
[4] G. P. Huang, A. I. Mourikis, and S. I. Roumeliotis. A first-estimates Jacobian EKF for improving SLAM consistency. In International Symposium on Experimental Robotics, 2008.
6
20
3. Windowベースの最適化
• Gauss-Newton法による最適化
1. パラメータ𝒙の更新(何をやっているかは[5]が参考になる)
1. First Estimate Jacobiansにより𝒙 = 0からスタート
2. 式(11),式(12)からパラメータ𝒙における以下の要素を計算
3. 上式から𝒙から勾配を降りる幅𝜹を計算
4. パラメータ𝒙を更新する
(式(12)を 𝜹 + 𝒙 ⊞ 𝜻0 ⟶ 𝜹 ⊞ (𝒙 ⊞ 𝜻0)にした場合は次式)
2. 行列表記𝜻0の更新
上の1iterationが終わったら, Marginalizationの項でない変数
を更新し, 𝒙 = 0からスタートできるようにする
(10)
(14)
[5] E. Ethan. Gauss-Newton / Levenberg-Marquardt optimization. 2013.
21
3. Windowベースの最適化
• Marginalizationの方法
– 変数が増加し過ぎるとヤバいのでHessianの疎な構造に影響を与
える古い変数を除外する
– フレーム𝑖を除外する時にはまず最新の2枚のKFで観測されない
点を除外してから, 残りの点を除外する
– 手順としては以下(何をやっているかは[6]が参考になる)
1. Marginalizeする変数を全て含んだ誤差関数𝐸′を展開
– 𝐇 や bに関しては前ページで定義したもの.
(15)
[6] 岡谷貴之, et al. バンドルアジャストメント. 研究報告コンピュータビジョンとイメージメディア (CVIM), 2009, 2009.37: 1-16.
22
3. Windowベースの最適化
2. 式(15)の右辺を最小化するので, 微分して0を取ると
– この時, 𝛽がMarginalizeする変数ブロック
3. Schurの補行列によって𝛼ブロックのみを取り出して
4. 最終的に𝛼ブロックのみの誤差関数は以下となり, 𝐸photoに
足し合わせることで𝛼ブロックの変数のみ最適化される
𝐇𝒙 = 𝐛′ ⇔ (16)
(17,18)
(19)
2. DSOのFront-End部分の解説
24
Front-Endの概要
大きく分けて以下のアルゴリズムで構成される
• 𝑬 𝐩𝐡𝐨𝐭𝐨の以下の構成要素の決定(outlier, occlusionの決定)
– フレーム番号の集合ℱ
– フレーム𝑖上の全ての点集合𝓟𝑖
– 点𝒑が観測されたフレーム集合obs(𝒑)
• 𝑬 𝐩𝐡𝐨𝐭𝐨の計算に用いる, 新しいパラメータに対する初期化
– 近似のため, 画像𝐼の線形化は1-2pixel半径の間だけ有効に
• 点とフレームに関するMarginalizationをいつ行うか?の決定
indirectな手法におけるKF detectorやRANSACによる初期化手順関連
のいろいろな部分を書き換えて達成される(今回は単眼を想定)
(8)
25
1. Frameの操作手順
1. Frame追跡の初期化
– 常に最大𝑁𝑓(= 7)個のKFを保持(参照フレーム)
– 新しいKFが作成されると, 参照フレーム中の全ての点が投影+僅
かに拡張され, semi-denseな深さマップが作られる
– 新しいFrameはこれらのKFだけを参照してTracking.
(Multi-scale Image Pyramid + 定速度モデル)
26
1. Frameの操作手順
– RMSEが前フレームの2倍になった場合には失敗と見なし, 最大
27の異なる方向で小さく回転を加えてrecovery-trackingをする
• Pyramid levelが一番高い(画質が粗い)スケールでのみ行う
• 1試行に約0.5msかかる
• この手順はほとんど起こらないし(cameraをぶん回した時),
IMUを使えば不要になると言っている
2. KFの作成
– ORB-SLAMと同様にできるだけ多くのKFを取って(5~10 KF/s),
後でMarginalizationで除去するという戦略
– 以下の基準でKFを採用する
1. 新しいKFは見える範囲で作成
– Mean square optical flowを計算 (最新KFとFrame間)
2. カメラの並進運動でocclusionができた場合
– Mean flowを計算 (𝒑 𝑡
′
は𝐑 = 𝐈3×3として計算した点)
3. カメラの露光時間が急激に変化した時
– 2フレーム間の輝度パラメータで計算
27
1. Frameの操作手順
– 以上での計算結果の値から以下の不等式を満たす場合にKFが作
成される. (𝑇kfの値でKFの数を調節できる)
(𝑤𝑓, 𝑤𝑓𝑡
, 𝑤 𝑎は相対的な重み, デフォルトで𝑇kf = 1)
28
1. Frameの操作手順
3. KFに対するMarginalization
– 𝐼1, … 𝐼 𝑛を時系列順のアクティブなKFとする(𝐼1が最新)
– Hessianの疎な構造を保つため, 以下の手順に従う
1. 常に最新の2枚のKFを保持(𝐼1と𝐼2)
2. 𝐼1の観測点の5%以下の点しか持たないFrameを除外する
3. 𝑁𝑓枚以上のフレームがアクティブな場合, 𝐼1と𝐼2を除いた中
で距離スコア𝑠(𝐼𝑖)を最大化するものを除外する
– KFが良く分布するようにヒューリスティックに設計
(𝑑 𝑖, 𝑗 は𝐼𝑖と𝐼𝑗間のユークリッド距離, 𝜖は小さい定数)
– 準最適な手法だが, 効率的にエネルギー関数を最適化できる?
29
1. Frameの操作手順
(20)
– 過去6枚のKFの一覧が以下. 黒点が既にMarginalizedされた点
– 点群全体を可視化した結果が以下. 右下が新しいKFの様子.
30
1. Frameの操作手順
31
2. Pointの操作手順
• 既存のdirectな手法ではできる限り画像を使っているが, 実時間で行
うには, 線形近似や深度三角測量は準最適化+パラメータ間の相関の
無視が必要
• 我々はデータを大幅にサンプリングし, 共同最適化を行う戦略
– データはかなり冗長であり, 単純に多くのデータポイントを使用
する利点はあまりないことが実験で分かった
– 弱テクスチャ領域, 繰り返される領域, エッジ領域などの全ての
データからサンプリングできることが強み
32
2. Pointの操作手順
1. 候補点の選択
– 空間やフレーム内で均等に分布するアクティブな𝑁𝑝(=2000)個
の点を常に保持することを目指す.
– 具体的には以下の戦略で選ばれる.
1. 画像中で良い感じに分布している
2. 環境毎に十分高い画素勾配の強度を持つ
– Region-adaptiveな勾配の閾値を得るために画像を32 × 32に分
割し, 閾値を 𝑔 + 𝑔𝑡ℎと定める
( 𝑔はブロック中の輝度勾配の絶対値の中央値, 𝑔𝑡ℎ(= 7)は定数)
– 均一な分布のために画像を𝑑 × 𝑑に分割し, それぞれで閾値を超
えた最大勾配の画素を選択
– 取れなかった場合, 閾値を減らすのとブロックサイズを2𝑑,
4𝑑にすることで調節し, 点を取得する
– Photometric修正をしていない元画像を用いる
33
2. Pointの操作手順
– 候補点を選択する様子
• 上段が元画像, 下段が2000点の候補点が選択された様子
• 1回目に選ばれた点が緑, 2回目3回目が赤, 青
• 2回目以降で画素強度が弱い, 疎な領域の点を追加している
34
2. Pointの操作手順
2. 候補点のTracking
– 候補点のTrackingは連続するフレームで, 式(4)を最小化しなが
らエピポーラ線上で離散的に探索
– 最良の一致点で深度と分散を計算し, フレーム間の探索間隔を
制限する
– 計算された深度は点がアクティブになった時の初期化に使う
– LSD-SLAMから発想を得ている
35
2. Pointの操作手順
3. 候補点のアクティブ化
– 古い点がmarginalizedされた時に, 交代で新しい候補点をアク
ティブ化するが, この時に画像で分布が均一になるように点を
選ぶ
– 全てのアクティブな点を最新のKFに投影した状態で, 残りの候
補点を投影し, その中で既存のアクティブな点との距離が最大
となるような点をアクティブ化する
– 以下は最終的に得られたアクティブな点の分布例
36
2. Pointの操作手順
• OutlierとOcclusionの検知
– 画像に含まれがちなOutlierを早く特定し, 除去する
1. 候補点のTrackingの時にエピポーラ線上を探索する時に,
絶対に最小点にならない点を永久に破棄する
– 繰り返し模様の領域ではかなり間違いを減らせる
2. 式(4)の測光誤差が閾値を超えた観測点を除外する
– 閾値はフレームの残差の中央値で連続的に調節
– 悪いフレーム(モーションブラーがある等)では閾値が高
くなり, 全ての観測点が除外される
– 良いフレームでは逆に閾値が下がって取りやすくなる
Results
38
Results
• 用いたデータセット
– TUM-monoVO dataset : 屋内および屋外の数十の異なる環境
で記録された105分のビデオを含む、50本の測光較正済映像
• Alignment誤差 (𝑒align)で評価(Loop Close GTを含む)
– EuRoC MAV dataset : 3つの異なる室内環境で記録された19
分のビデオからなる11本のステレオ映像
• 測光較正または露光時間は利用できない(𝜆 𝑎 = 𝜆 𝑏 = 0)
• 並進RMSEである絶対軌跡誤差(𝑒ate)で評価
• 最初の方は不安定なのでトリミング
– ICL-NUIM dataset : 2つの室内環境から4.5分のビデオを含む
8本のレイトレース映像
• 測光画像補正は不要であり, 全ての露光時間を𝑡 = 1と設定
• 絶対軌跡誤差(𝑒ate)で評価
39
Results
• TUM-monoVO datasetの例
– DSOの深度推定結果を重ね合わせた単眼映像の一例
– 105分の映像(190,000 frames)
40
Results
• 評価の方法
– 全ての映像列を順方向, 逆方向それぞれ5回ずつ計10回実験
• TUM-monoVO datasetは500回、EuRoC MAV datasetは2
20回、ICR-NUIM datasetは80回実験
– ORB-SLAMでは映像を20%の速度で再生しているが、DSOはシ
ングルスレッドで実行するので実時間よりも4倍かかる
• リアルタイムと同じパラメータで評価
– 結果は累積エラー(dataset全体でエラー値の累積和)で評価
– LSD-SLAMとSVOは途中で失敗しがちだったので, 単眼ORB-SL
AM(loop closureとrelocalization無効化)と比較
– 全部のdatasetでパラメータは同じだが, 例外としてICL-NUIM
datasetではDSOで𝑔𝑡ℎ = 3, ORB-SLAMのFAST閾値を2に調整
41
性能の比較
• EuRoC MAV dataset(左)とICL-NUIM dataset(右)
– RT:無理やりリアルタイムにした評価(Intel i7-4910MQ CPU)
– LQ:DSOでリアルタイムの5倍の速さでの評価
(𝑁𝑝 = 800, 𝑁𝑓 = 6, 解像度 420 × 320, GN法のiteration≤ 4)
– 𝑡 𝑚𝑎𝑥 = 10𝑠:ORB-SLAMでLoop Closureのタイミングを調節
– EuRoCでは微妙にORBの方が良い(photo calibなし+loop可)
精度が悪い
42
性能の比較
• EuRoC MAV dataset(左)とICL-NUIM dataset(右)
– 絶対軌跡誤差𝑒ate を映像列毎に全ての結果を可視化
• 順方向と逆方向それぞれ10回ずつ
43
性能の比較
• TUM-monoVO dataset
– Alignment誤差(𝑒align)に加えて, 回転誤差(𝑒r)とスケールドリフ
ト誤差(𝑒s)を可視化
– 𝑒sに関しては𝑒′s = max(𝑒𝑠, 𝑒𝑠
−1)で評価
精度が悪い
44
性能の比較
• TUM-monoVO dataset
– Alignment誤差(𝑒align)を全ての結果を可視化
• 順方向と逆方向それぞれ10回ずつ
45
パラメータの比較
• Photometric Calibrationの有無
– TUM-monoVO datasetで以下を徐々に無効化することで比較
1. 露光時間(𝑡𝑖 = 1, 𝜆 𝑎 = 𝜆 𝑏 = 0)
2. レンズ減衰(𝑉 𝐱 = 1)
3. 反応関数(𝐺−1
= 1. ~2.)
4. 輝度定数(𝜆 𝑎 = 𝜆 𝑏 = ∞, アフィン輝度修正なし)
精度が悪い
46
パラメータの比較
• 利用するデータの数(点とフレームの数)
– TUM-monoVO datasetで𝑁𝑝と𝑁𝑓を変化させて比較
精度が悪い
47
パラメータの比較
• 利用するデータの選び方(点選択の閾値)
– TUM-monoVO datasetで以下を比較
• 点選択の閾値𝑔thを変化させた場合(左)
• 点としてFASTコーナーのみを利用した場合(右)
精度が悪い
48
パラメータの比較
• KFの数
– TUM-monoVO datasetでKF作成時の閾値𝑇kfを変化させて比較
• KFの数を減らすとocclusionが多い状況でロバスト性低下
• KFの数を増え過ぎるとmarginalizationがすぐに起こり, 線
形近似された点のエラーが積み重なっていく?
精度が悪い
49
パラメータの比較
• Residual pattern
– TUM-monoVO datasetでパターン𝒩𝑝を変化させて比較
精度が悪い
50
ノイズの比較
• Indirect vs directの間での根本的な違いはノイズの仮定方法
– Geometric Noise:特徴点検出器による𝑢, 𝑣方向の位置に関す
る誤差(Indirectな手法で仮定される)
– Photometric Noise:ピクセル単位での測光強度の誤差(Direc
tな手法で仮定される)
• TUM-monoVO datasetにこれらのノイズを加えて評価する
• Geometric Noise
– −𝛿 𝑔, 𝛿 𝑔
2
の一様分布のFlow-map 𝑁𝑔: Ω → ℝ2
– ORB-SLAMの方がロバスト性能が高い
51
ノイズの比較
精度が悪い
52
ノイズの比較
• Photometric Noise
– −𝛿 𝑔, 𝛿 𝑔
2
の一様分布のblur-map 𝑁𝑔: Ω → ℝ2
– DSOの方がロバスト性能が高い
精度が悪い
53
ノイズの比較
• 考察
– よくcalibrationされたデータに対してはdirectな手法はかなり強
いが, Rolling shutterや内部パラメータが不正確な時には不向き
– スマホやweb cameraなどではindirectな手法が優れている
• 解像度や光感度を重視する傾向にあるため
– Machine Vision用のカメラではdirectで優れた性能を出せる
• 幾何学的な精度を重視するため
54
3D復元の結果
• 点の推定密度の比較
– 点の数𝑁𝑝を変化させた時の可視化結果
𝑁 𝑝=500
𝑁 𝑝=2,000
𝑁 𝑝=10,000
55
3D復元の結果
• 最終的な3D復元結果
– 評価に用いたdatasetそれぞれの3D復元結果を可視化
56
まとめ
• リアルタイムで動作可能なDirectでsparseな手法を提示
– Direct:コーナーだけでない全ての点を利用できる
– Sparse:全てのモデルパラメータを効率的に共同最適化
• 既存の3つのDatasetで評価すると既存のindirectな手法に勝った
1. より多くのデータを使用するだけでは追跡精度は上がらず
2. コーナーのみでなく全ての点の使用で正確性が大幅に向上
3. Photometric Calibrationを組み込むことで性能が向上
• Directな手法では測光誤差に対して強いので, Machine Vision用の
カメラを使えば優れた性能を出せる
– 一般のカメラやWeb cameraではindirectな手法の方が強い
• 今回はVOだが, BAやincremental smoothing & mapping等の最適
化ライブラリと統合できる
57
参考文献
• J. Engel, V. Koltun, D. Cremers. Direct sparse odometry. IEEE Transactions on
Pattern Analysis and Machine Intelligence, 2017.
- 本論文
• J. Engel, V. Usenko, D. Cremers. A Photometrically Calibrated Benchmark For
Monocular Visual Odometry, In arXiv:1607.02555, 2016.
- Photometric Calibrationの詳細(本スライド引用[1])
• E. Ethan. Gauss-Newton / Levenberg-Marquardt optimization. 2013.
- Gauss-Newton法の説明資料(本スライド引用[5])
• B. Jose-Luis. A tutorial on se (3) transformation parameterizations and on-m
anifold optimization. University of Malaga, 2010.
- CVにおけるLie代数の説明資料(本スライド引用[3])
• 岡谷貴之, et al. バンドルアジャストメント. 研究報告コンピュータビジョンとイ
メージメディア (CVIM), 2009, 2009.37: 1-16.
- BAの最適化に関する入門資料(本スライド引用[6])
• B. Simon, I. MATTHEWS. Lucas-Kanade 20 Years On: A Unifying Framewor
k. International journal of computer vision, 2004, 56.3: 221-255.
- DirectなSLAMの最適化に使われるLucas-Kanade法の説明資料(Gauss-Ne
wton法, Levenberg-Marquardt法の部分が参考になった)

Direct Sparse Odometryの解説

  • 1.
    Direct Sparse Odometry 東京大学相澤山崎研究室 Qoncept Internship 2018/01/13 B4 金子 真也
  • 2.
    1 What is this? •現在, 株式会社Qoncept(http://qoncept.jp/)でのInternshipに参 加しており, その成果の一つとして作成した資料です. • 近年VOとしてかなり精度が高いと話題のDirect Sparse Odometry (https://vision.in.tum.de/research/vslam/dso)の論文を翻訳し まとめました. • DSOに関する日本語の文献は現在かなり少ないので, 参考になると 思い公開しました. • 私自身, 勉強中の身で理解が甘い箇所が多々あると思うので, 何かコ メント等あれば気軽にお願いします. • 本スライド中の数式番号は元論文に対応した番号を付けています (違う論文の数式の場合は番号に引用を付けています)
  • 3.
  • 4.
  • 5.
    4 Abstract • SLAMやVOは特徴点ベース(indirect)の手法が長い間主流だったが, 近年はdirectでdenseな手法が人気。 • Directvs Indirect, Dense vs Sparseの2軸で方法を分類できる • 本論文はDirect + Sparseという部分の方法を提案する 手法 Direct Indirect Sparse DSO(本手法) monoSLAM(2007) PTAM(2007) ORB-SLAM(2015) Dense/ Semi-Dense DTAM(2011) LSD-SLAM(2014) 3D geometry Estimation ...
  • 6.
    5 Motivation • Direct – 特徴点ベース(Indirect)の手法の利点としては画像中の幾何学的 歪みに対して頑強性を持つ –一方, Directな手法では点がそれ自身認識する必要がないため, より細かい幾何学表現が可能 + 輝度の微弱な変化を含めたデー タ全体からサンプリングできるのでテクスチャがまばらな環境 でも頑強な性能を持つ • Sparse – Sparseな場合にはgeo-geoが対角行列(青)なので, Schur補元を 使って簡単にBAができる – 一方, Directな場合にはgeo-geo の相関関係が生じるため(橙), 上 の方法では足りずBAが難しい (工夫が必要)
  • 7.
    6 Contribution • 全てのモデルパラメータの完全尤度の最適化は一般的にDirectな手 法で行われているため, Direct+ Sparseな手法を提案 – Cameraの位置, 内部パラメータ, および幾何学パラメータ等 • 最適化はsliding windowベースで行い, 古いカメラの位置は除外 • 既存の手法と異なり, カメラのphotometric calibrationを十分に 活用することで正確さと頑強性を向上させる • CPUベースの実装であり, かつLSD-SLAM[1]と同じ密度のモデルを 作りながら, 既存の手法を上回る精度と頑強性 + 5倍の速さ [1] J. Engel, T. Schops, and D. Cremers. LSD-SLAM: Largescale direct monocular SLAM. In European Conference on Computer Vision (E CCV), 2014.
  • 8.
  • 9.
    8 Method 以下の手順で解説する 1. Direct-Sparse Modelの解説 1.Camera Calibration Geometric Calibration + Photometric Calibration 2. Modelの定式化 3. Windowベースの最適化 2. DSOのFront-End部分の解説 1. Frameの操作手順 2. Pointの操作手順
  • 10.
  • 11.
    10 1. Camera Calibration •Directな手法ではこの部分がかなり大事 – Indirectな手法では特徴抽出器・記述子は測光の変動に頑強性を 持つのでこの操作の大部分は無視することができる – Geometric CalibrationとPhotometric Calibrationの2種類で モデル化する • Geometric Calibration – よく知られたピンホールカメラモデル – 3D点 𝑥, 𝑦, 𝑧 ∈ ℝ3 から画像点 𝑢 𝑑, 𝑣 𝑑 ∈ Ωへ (投影関数であり, Π 𝑐 ∶ ℝ3 → Ω と表記) (1)[1] [1] J. Engel, V. Usenko, D. Cremers. A Photometrically Calibrated Benchmark For Monocular Visual Odometry, In arXiv:1607.02555, 2016.
  • 12.
    11 1. Camera Calibration –今回は歪みあり画像点 𝑢 𝑑, 𝑣 𝑑 から歪みなし画像点 𝑢 𝑢, 𝑣 𝑢 へ変換 – この点を三次元へ変換する際には以下の変換を行う (逆投影関数であり, Π 𝑐 −1 ∶ ℝ × Ω → ℝ3 と表記) – 今回のcalibrationはPTAM[2]の実装を使い,チェックボードを用 いることで [𝑓𝑥, 𝑓𝑦, 𝑐 𝑥, 𝑐 𝑦, 𝜔]を推定 [1] J. Engel, V. Usenko, D. Cremers. A Photometrically Calibrated Benchmark For Monocular Visual Odometry, In arXiv:1607.02555, 2016. [2] G. Klein and D. Murray. Parallel tracking and mapping for small AR workspaces. In International Symposium on Mixed and Augmented Reality (ISMAR), 2007. (2,3) [1]
  • 13.
    12 • Photometric Calibration –非線形反応関数𝐺 + レンズ減衰𝑉でモデル化 – フレーム𝑖において, これらを組み合わせたモデルは以下で定義 𝐵𝑖は放射照度, 𝐼𝑖は観測されたピクセル強度, 𝑡𝑖は露光時間 – フレーム𝐼𝑖を測光修正し, 修正フレーム𝐼′𝑖を得るには上の式から 反応関数𝐺 レンズ減衰𝑉 露光時間𝑡 (2) (3) 1. Camera Calibration
  • 14.
    13 2. Modelの定式化 • 参照フレーム𝐼𝑖上の点𝒑∈ Ω𝑖が, 対象のフレーム𝐼𝑗で観測された時の 測光誤差を定義 – ピクセル近傍のパターン𝒩𝑝の重み付きSSDにより計算 • モーションブラーに頑強に • フレーム𝑰𝒊, 𝑰𝒋間の測光誤差 – 𝒩𝑝は近傍パターン, 𝑡𝑖, 𝑡𝑗は露光時間, ∙ 𝛾はHuberノルム – 𝒑′は逆深度𝑑 𝒑による𝒑の投影点 パターン𝒩𝑝の例 参照フレーム𝐼𝑖 (位置𝐓𝑖) 対象フレーム𝐼𝑗 (位置𝐓𝑗) 𝒑 𝓝 𝒑 𝒑′ 深度1/𝑑 𝒑 逆投影関数 Π 𝑐 −1 投影関数 Π 𝑐 :相対的なカメラの動き (4) (5,6)
  • 15.
    14 2. Modelの定式化 – 露光時間が未知の場合のためにもアフィン輝度変換関数として, 𝑒−𝑎𝑖(𝐼𝑖 − 𝑏𝑖)を含めている – Huber損失に加えて, 画素勾配に依存した重み𝑤 𝒑を定義 • 勾配が高いピクセルに関しては重み小に(ノイズを抑える) – まとめると測光誤差𝐸 𝒑𝑗は以下の要素に依存している 1. 点の逆深度値𝑑 𝒑 2. カメラの内部パラメータ𝑐 3. フレームの位置𝐓𝑖, 𝐓𝑗 4. 輝度変換関数のパラメータ𝑎𝑖, 𝑏𝑖, 𝑎𝑗, 𝑏𝑗 (7)
  • 16.
    15 2. Modelの定式化 • 全体の測光誤差 –全てのフレーム番号の集合ℱにおいて, 𝑖番目のフレーム – フレーム𝑖上の全ての点集合𝓟𝑖の中で点𝒑 – 点𝒑が観測されたフレーム集合obs(𝒑)の中で, 𝑗番目のフレーム • 古典的な再投影誤差との違いは1枚だけでなく, それぞれの項が2枚 のフレームに依存されていること • KF毎の測光誤差の依存関係グラフの例 は右のようになる (8)
  • 17.
    16 2. Modelの定式化 • 点の持つパラメータ数に関して –Directな手法では点の持つパラメータ数を抑えられる • 点利用の一貫性 – 今回は観測点をひたすら何度も使い, 使わない点は全く使わない • 画像から点を取得する際に重複を許しているため – 空間内に点を分布させ, テクスチャが少ないシーンでもうまく推 定できるようにする 手法 点の次元数 理由 Direct 1 (depth) 逆深度値の推定のみ Indirect 3 (X,Y,Z) コーナー位置の推定(特徴点抽出) + 深さの推定
  • 18.
    17 3. Windowベースの最適化 • 式(8)をslidingwindowでGauss-Newton法を使うことで最適化 – 速度と柔軟さで良い性能を持つ • [定義] 表記としてLie代数 𝔰𝔢 3 とLie群 SE(3)を用いる(詳細は[3]) – パラメータ 𝒙 ∈ 𝔰𝔢 3 𝑛 × ℝ 𝑚 とその行列表記 𝜁 ∈ SE 3 𝑛 × ℝ 𝑚 互いの空間の写像は exp: 𝔰𝔢 3 ↦ SE 3 , log: SE(3) ↦ 𝔰𝔢(3) – 演算子⊞: 𝔰𝔢 3 × SE(3) → SE(3) 直接パラメータから行列表記を更新する演算子 𝜁 = 𝒙 ⊞ 𝜁0 ≡ 𝑒 𝑥 ⋅ 𝜁0 • 接ベクトル空間(パラメータ空間)を動かし最適化 – Gauss-Newton法で𝛿ずつ動かす [3] B. Jose-Luis. A tutorial on se (3) transformation parameterizations and on-manifold optimization. University of Malaga, 2010.
  • 19.
    18 3. Windowベースの最適化 • 今回最適化したいのは式(8)だが,総和でなく残差ベクトル𝐫として 考えるっぽい?(論文の表記から見る感じ) • 残差ベクトル𝐫の要素𝑟𝑘の定義 – 各画素は 𝒩𝑝 = 8として誤差を計算 – 今回, 最適化すべきパラメータはLie代数𝔰𝔢 3 を使って定義 (𝒙を動かすことで最適化パラメータも動かす) (11)
  • 20.
    19 3. Windowベースの最適化 • Jacob行列𝐽𝑘の定義 – Gauss-Newton法において𝒙を動かす方向(勾配を降りる)となる – Jacob行列は𝛿geo = 𝐓𝑖, 𝐓𝑗, 𝑑, 𝒄 , 𝛿photo = (𝑎𝑖, 𝑎𝑗, 𝑏𝑖, 𝑏𝑗)で分割 – これにより以下2つの近似を行うことができる • First Estimate Jacobians [4]による安定性の確保? – 𝐽geo, 𝐽photoは𝒙に対してsmoothな空間になっている • 𝐽geoは𝒩𝑝全体で等しくなるので中央画素だけ計算する(削減) (12) (13) [4] G. P. Huang, A. I. Mourikis, and S. I. Roumeliotis. A first-estimates Jacobian EKF for improving SLAM consistency. In International Symposium on Experimental Robotics, 2008. 6
  • 21.
    20 3. Windowベースの最適化 • Gauss-Newton法による最適化 1.パラメータ𝒙の更新(何をやっているかは[5]が参考になる) 1. First Estimate Jacobiansにより𝒙 = 0からスタート 2. 式(11),式(12)からパラメータ𝒙における以下の要素を計算 3. 上式から𝒙から勾配を降りる幅𝜹を計算 4. パラメータ𝒙を更新する (式(12)を 𝜹 + 𝒙 ⊞ 𝜻0 ⟶ 𝜹 ⊞ (𝒙 ⊞ 𝜻0)にした場合は次式) 2. 行列表記𝜻0の更新 上の1iterationが終わったら, Marginalizationの項でない変数 を更新し, 𝒙 = 0からスタートできるようにする (10) (14) [5] E. Ethan. Gauss-Newton / Levenberg-Marquardt optimization. 2013.
  • 22.
    21 3. Windowベースの最適化 • Marginalizationの方法 –変数が増加し過ぎるとヤバいのでHessianの疎な構造に影響を与 える古い変数を除外する – フレーム𝑖を除外する時にはまず最新の2枚のKFで観測されない 点を除外してから, 残りの点を除外する – 手順としては以下(何をやっているかは[6]が参考になる) 1. Marginalizeする変数を全て含んだ誤差関数𝐸′を展開 – 𝐇 や bに関しては前ページで定義したもの. (15) [6] 岡谷貴之, et al. バンドルアジャストメント. 研究報告コンピュータビジョンとイメージメディア (CVIM), 2009, 2009.37: 1-16.
  • 23.
    22 3. Windowベースの最適化 2. 式(15)の右辺を最小化するので,微分して0を取ると – この時, 𝛽がMarginalizeする変数ブロック 3. Schurの補行列によって𝛼ブロックのみを取り出して 4. 最終的に𝛼ブロックのみの誤差関数は以下となり, 𝐸photoに 足し合わせることで𝛼ブロックの変数のみ最適化される 𝐇𝒙 = 𝐛′ ⇔ (16) (17,18) (19)
  • 24.
  • 25.
    24 Front-Endの概要 大きく分けて以下のアルゴリズムで構成される • 𝑬 𝐩𝐡𝐨𝐭𝐨の以下の構成要素の決定(outlier,occlusionの決定) – フレーム番号の集合ℱ – フレーム𝑖上の全ての点集合𝓟𝑖 – 点𝒑が観測されたフレーム集合obs(𝒑) • 𝑬 𝐩𝐡𝐨𝐭𝐨の計算に用いる, 新しいパラメータに対する初期化 – 近似のため, 画像𝐼の線形化は1-2pixel半径の間だけ有効に • 点とフレームに関するMarginalizationをいつ行うか?の決定 indirectな手法におけるKF detectorやRANSACによる初期化手順関連 のいろいろな部分を書き換えて達成される(今回は単眼を想定) (8)
  • 26.
    25 1. Frameの操作手順 1. Frame追跡の初期化 –常に最大𝑁𝑓(= 7)個のKFを保持(参照フレーム) – 新しいKFが作成されると, 参照フレーム中の全ての点が投影+僅 かに拡張され, semi-denseな深さマップが作られる – 新しいFrameはこれらのKFだけを参照してTracking. (Multi-scale Image Pyramid + 定速度モデル)
  • 27.
    26 1. Frameの操作手順 – RMSEが前フレームの2倍になった場合には失敗と見なし,最大 27の異なる方向で小さく回転を加えてrecovery-trackingをする • Pyramid levelが一番高い(画質が粗い)スケールでのみ行う • 1試行に約0.5msかかる • この手順はほとんど起こらないし(cameraをぶん回した時), IMUを使えば不要になると言っている
  • 28.
    2. KFの作成 – ORB-SLAMと同様にできるだけ多くのKFを取って(5~10KF/s), 後でMarginalizationで除去するという戦略 – 以下の基準でKFを採用する 1. 新しいKFは見える範囲で作成 – Mean square optical flowを計算 (最新KFとFrame間) 2. カメラの並進運動でocclusionができた場合 – Mean flowを計算 (𝒑 𝑡 ′ は𝐑 = 𝐈3×3として計算した点) 3. カメラの露光時間が急激に変化した時 – 2フレーム間の輝度パラメータで計算 27 1. Frameの操作手順
  • 29.
    – 以上での計算結果の値から以下の不等式を満たす場合にKFが作 成される. (𝑇kfの値でKFの数を調節できる) (𝑤𝑓,𝑤𝑓𝑡 , 𝑤 𝑎は相対的な重み, デフォルトで𝑇kf = 1) 28 1. Frameの操作手順
  • 30.
    3. KFに対するMarginalization – 𝐼1,… 𝐼 𝑛を時系列順のアクティブなKFとする(𝐼1が最新) – Hessianの疎な構造を保つため, 以下の手順に従う 1. 常に最新の2枚のKFを保持(𝐼1と𝐼2) 2. 𝐼1の観測点の5%以下の点しか持たないFrameを除外する 3. 𝑁𝑓枚以上のフレームがアクティブな場合, 𝐼1と𝐼2を除いた中 で距離スコア𝑠(𝐼𝑖)を最大化するものを除外する – KFが良く分布するようにヒューリスティックに設計 (𝑑 𝑖, 𝑗 は𝐼𝑖と𝐼𝑗間のユークリッド距離, 𝜖は小さい定数) – 準最適な手法だが, 効率的にエネルギー関数を最適化できる? 29 1. Frameの操作手順 (20)
  • 31.
    – 過去6枚のKFの一覧が以下. 黒点が既にMarginalizedされた点 –点群全体を可視化した結果が以下. 右下が新しいKFの様子. 30 1. Frameの操作手順
  • 32.
    31 2. Pointの操作手順 • 既存のdirectな手法ではできる限り画像を使っているが,実時間で行 うには, 線形近似や深度三角測量は準最適化+パラメータ間の相関の 無視が必要 • 我々はデータを大幅にサンプリングし, 共同最適化を行う戦略 – データはかなり冗長であり, 単純に多くのデータポイントを使用 する利点はあまりないことが実験で分かった – 弱テクスチャ領域, 繰り返される領域, エッジ領域などの全ての データからサンプリングできることが強み
  • 33.
    32 2. Pointの操作手順 1. 候補点の選択 –空間やフレーム内で均等に分布するアクティブな𝑁𝑝(=2000)個 の点を常に保持することを目指す. – 具体的には以下の戦略で選ばれる. 1. 画像中で良い感じに分布している 2. 環境毎に十分高い画素勾配の強度を持つ – Region-adaptiveな勾配の閾値を得るために画像を32 × 32に分 割し, 閾値を 𝑔 + 𝑔𝑡ℎと定める ( 𝑔はブロック中の輝度勾配の絶対値の中央値, 𝑔𝑡ℎ(= 7)は定数) – 均一な分布のために画像を𝑑 × 𝑑に分割し, それぞれで閾値を超 えた最大勾配の画素を選択 – 取れなかった場合, 閾値を減らすのとブロックサイズを2𝑑, 4𝑑にすることで調節し, 点を取得する – Photometric修正をしていない元画像を用いる
  • 34.
    33 2. Pointの操作手順 – 候補点を選択する様子 •上段が元画像, 下段が2000点の候補点が選択された様子 • 1回目に選ばれた点が緑, 2回目3回目が赤, 青 • 2回目以降で画素強度が弱い, 疎な領域の点を追加している
  • 35.
    34 2. Pointの操作手順 2. 候補点のTracking –候補点のTrackingは連続するフレームで, 式(4)を最小化しなが らエピポーラ線上で離散的に探索 – 最良の一致点で深度と分散を計算し, フレーム間の探索間隔を 制限する – 計算された深度は点がアクティブになった時の初期化に使う – LSD-SLAMから発想を得ている
  • 36.
    35 2. Pointの操作手順 3. 候補点のアクティブ化 –古い点がmarginalizedされた時に, 交代で新しい候補点をアク ティブ化するが, この時に画像で分布が均一になるように点を 選ぶ – 全てのアクティブな点を最新のKFに投影した状態で, 残りの候 補点を投影し, その中で既存のアクティブな点との距離が最大 となるような点をアクティブ化する – 以下は最終的に得られたアクティブな点の分布例
  • 37.
    36 2. Pointの操作手順 • OutlierとOcclusionの検知 –画像に含まれがちなOutlierを早く特定し, 除去する 1. 候補点のTrackingの時にエピポーラ線上を探索する時に, 絶対に最小点にならない点を永久に破棄する – 繰り返し模様の領域ではかなり間違いを減らせる 2. 式(4)の測光誤差が閾値を超えた観測点を除外する – 閾値はフレームの残差の中央値で連続的に調節 – 悪いフレーム(モーションブラーがある等)では閾値が高 くなり, 全ての観測点が除外される – 良いフレームでは逆に閾値が下がって取りやすくなる
  • 38.
  • 39.
    38 Results • 用いたデータセット – TUM-monoVOdataset : 屋内および屋外の数十の異なる環境 で記録された105分のビデオを含む、50本の測光較正済映像 • Alignment誤差 (𝑒align)で評価(Loop Close GTを含む) – EuRoC MAV dataset : 3つの異なる室内環境で記録された19 分のビデオからなる11本のステレオ映像 • 測光較正または露光時間は利用できない(𝜆 𝑎 = 𝜆 𝑏 = 0) • 並進RMSEである絶対軌跡誤差(𝑒ate)で評価 • 最初の方は不安定なのでトリミング – ICL-NUIM dataset : 2つの室内環境から4.5分のビデオを含む 8本のレイトレース映像 • 測光画像補正は不要であり, 全ての露光時間を𝑡 = 1と設定 • 絶対軌跡誤差(𝑒ate)で評価
  • 40.
    39 Results • TUM-monoVO datasetの例 –DSOの深度推定結果を重ね合わせた単眼映像の一例 – 105分の映像(190,000 frames)
  • 41.
    40 Results • 評価の方法 – 全ての映像列を順方向,逆方向それぞれ5回ずつ計10回実験 • TUM-monoVO datasetは500回、EuRoC MAV datasetは2 20回、ICR-NUIM datasetは80回実験 – ORB-SLAMでは映像を20%の速度で再生しているが、DSOはシ ングルスレッドで実行するので実時間よりも4倍かかる • リアルタイムと同じパラメータで評価 – 結果は累積エラー(dataset全体でエラー値の累積和)で評価 – LSD-SLAMとSVOは途中で失敗しがちだったので, 単眼ORB-SL AM(loop closureとrelocalization無効化)と比較 – 全部のdatasetでパラメータは同じだが, 例外としてICL-NUIM datasetではDSOで𝑔𝑡ℎ = 3, ORB-SLAMのFAST閾値を2に調整
  • 42.
    41 性能の比較 • EuRoC MAVdataset(左)とICL-NUIM dataset(右) – RT:無理やりリアルタイムにした評価(Intel i7-4910MQ CPU) – LQ:DSOでリアルタイムの5倍の速さでの評価 (𝑁𝑝 = 800, 𝑁𝑓 = 6, 解像度 420 × 320, GN法のiteration≤ 4) – 𝑡 𝑚𝑎𝑥 = 10𝑠:ORB-SLAMでLoop Closureのタイミングを調節 – EuRoCでは微妙にORBの方が良い(photo calibなし+loop可) 精度が悪い
  • 43.
    42 性能の比較 • EuRoC MAVdataset(左)とICL-NUIM dataset(右) – 絶対軌跡誤差𝑒ate を映像列毎に全ての結果を可視化 • 順方向と逆方向それぞれ10回ずつ
  • 44.
    43 性能の比較 • TUM-monoVO dataset –Alignment誤差(𝑒align)に加えて, 回転誤差(𝑒r)とスケールドリフ ト誤差(𝑒s)を可視化 – 𝑒sに関しては𝑒′s = max(𝑒𝑠, 𝑒𝑠 −1)で評価 精度が悪い
  • 45.
    44 性能の比較 • TUM-monoVO dataset –Alignment誤差(𝑒align)を全ての結果を可視化 • 順方向と逆方向それぞれ10回ずつ
  • 46.
    45 パラメータの比較 • Photometric Calibrationの有無 –TUM-monoVO datasetで以下を徐々に無効化することで比較 1. 露光時間(𝑡𝑖 = 1, 𝜆 𝑎 = 𝜆 𝑏 = 0) 2. レンズ減衰(𝑉 𝐱 = 1) 3. 反応関数(𝐺−1 = 1. ~2.) 4. 輝度定数(𝜆 𝑎 = 𝜆 𝑏 = ∞, アフィン輝度修正なし) 精度が悪い
  • 47.
    46 パラメータの比較 • 利用するデータの数(点とフレームの数) – TUM-monoVOdatasetで𝑁𝑝と𝑁𝑓を変化させて比較 精度が悪い
  • 48.
    47 パラメータの比較 • 利用するデータの選び方(点選択の閾値) – TUM-monoVOdatasetで以下を比較 • 点選択の閾値𝑔thを変化させた場合(左) • 点としてFASTコーナーのみを利用した場合(右) 精度が悪い
  • 49.
    48 パラメータの比較 • KFの数 – TUM-monoVOdatasetでKF作成時の閾値𝑇kfを変化させて比較 • KFの数を減らすとocclusionが多い状況でロバスト性低下 • KFの数を増え過ぎるとmarginalizationがすぐに起こり, 線 形近似された点のエラーが積み重なっていく? 精度が悪い
  • 50.
    49 パラメータの比較 • Residual pattern –TUM-monoVO datasetでパターン𝒩𝑝を変化させて比較 精度が悪い
  • 51.
    50 ノイズの比較 • Indirect vsdirectの間での根本的な違いはノイズの仮定方法 – Geometric Noise:特徴点検出器による𝑢, 𝑣方向の位置に関す る誤差(Indirectな手法で仮定される) – Photometric Noise:ピクセル単位での測光強度の誤差(Direc tな手法で仮定される) • TUM-monoVO datasetにこれらのノイズを加えて評価する
  • 52.
    • Geometric Noise –−𝛿 𝑔, 𝛿 𝑔 2 の一様分布のFlow-map 𝑁𝑔: Ω → ℝ2 – ORB-SLAMの方がロバスト性能が高い 51 ノイズの比較 精度が悪い
  • 53.
    52 ノイズの比較 • Photometric Noise –−𝛿 𝑔, 𝛿 𝑔 2 の一様分布のblur-map 𝑁𝑔: Ω → ℝ2 – DSOの方がロバスト性能が高い 精度が悪い
  • 54.
    53 ノイズの比較 • 考察 – よくcalibrationされたデータに対してはdirectな手法はかなり強 いが,Rolling shutterや内部パラメータが不正確な時には不向き – スマホやweb cameraなどではindirectな手法が優れている • 解像度や光感度を重視する傾向にあるため – Machine Vision用のカメラではdirectで優れた性能を出せる • 幾何学的な精度を重視するため
  • 55.
  • 56.
  • 57.
    56 まとめ • リアルタイムで動作可能なDirectでsparseな手法を提示 – Direct:コーナーだけでない全ての点を利用できる –Sparse:全てのモデルパラメータを効率的に共同最適化 • 既存の3つのDatasetで評価すると既存のindirectな手法に勝った 1. より多くのデータを使用するだけでは追跡精度は上がらず 2. コーナーのみでなく全ての点の使用で正確性が大幅に向上 3. Photometric Calibrationを組み込むことで性能が向上 • Directな手法では測光誤差に対して強いので, Machine Vision用の カメラを使えば優れた性能を出せる – 一般のカメラやWeb cameraではindirectな手法の方が強い • 今回はVOだが, BAやincremental smoothing & mapping等の最適 化ライブラリと統合できる
  • 58.
    57 参考文献 • J. Engel,V. Koltun, D. Cremers. Direct sparse odometry. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017. - 本論文 • J. Engel, V. Usenko, D. Cremers. A Photometrically Calibrated Benchmark For Monocular Visual Odometry, In arXiv:1607.02555, 2016. - Photometric Calibrationの詳細(本スライド引用[1]) • E. Ethan. Gauss-Newton / Levenberg-Marquardt optimization. 2013. - Gauss-Newton法の説明資料(本スライド引用[5]) • B. Jose-Luis. A tutorial on se (3) transformation parameterizations and on-m anifold optimization. University of Malaga, 2010. - CVにおけるLie代数の説明資料(本スライド引用[3]) • 岡谷貴之, et al. バンドルアジャストメント. 研究報告コンピュータビジョンとイ メージメディア (CVIM), 2009, 2009.37: 1-16. - BAの最適化に関する入門資料(本スライド引用[6]) • B. Simon, I. MATTHEWS. Lucas-Kanade 20 Years On: A Unifying Framewor k. International journal of computer vision, 2004, 56.3: 221-255. - DirectなSLAMの最適化に使われるLucas-Kanade法の説明資料(Gauss-Ne wton法, Levenberg-Marquardt法の部分が参考になった)