Upload
masaya-kaneko
View
167
Download
9
Embed Size (px)
Citation preview
1
What is this?• 現在, 株式会社Qoncept(http://qoncept.jp/)でのInternshipに参加しており, その成果の一つとして作成した資料です.
• 近年VOとしてかなり精度が高いと話題のDirect Sparse Odometry (https://vision.in.tum.de/research/vslam/dso)の論文を翻訳しまとめました.
• DSOに関する日本語の文献は現在かなり少ないので, 参考になると思い公開しました.
• 私自身, 勉強中の身で理解が甘い箇所が多々あると思うので, 何かコメント等あれば気軽にお願いします.
• 本スライド中の数式番号は元論文に対応した番号を付けています
(違う論文の数式の場合は番号に引用を付けています)
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 (ECCV), 2014.
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
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な手法では点の持つパラメータ数を抑えられる
• 点利用の一貫性
– 今回は観測点をひたすら何度も使い, 使わない点は全く使わない
• 画像から点を取得する際に重複を許しているため
– 空間内に点を分布させ, テクスチャが少ないシーンでもうまく推定できるようにする
手法 点の次元数 理由
Direct1
(depth)逆深度値の推定のみ
Indirect3
(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)
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)
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)の測光誤差が閾値を超えた観測点を除外する
– 閾値はフレームの残差の中央値で連続的に調節
– 悪いフレーム(モーションブラーがある等)では閾値が高くなり, 全ての観測点が除外される
– 良いフレームでは逆に閾値が下がって取りやすくなる
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)で評価
40
Results• 評価の方法
– 全ての映像列を順方向, 逆方向それぞれ5回ずつ計10回実験
• TUM-monoVO datasetは500回、EuRoC MAV datasetは220回、ICR-NUIM datasetは80回実験
– ORB-SLAMでは映像を20%の速度で再生しているが、DSOはシングルスレッドで実行するので実時間よりも4倍かかる
• リアルタイムと同じパラメータで評価
– 結果は累積エラー(dataset全体でエラー値の累積和)で評価
– LSD-SLAMとSVOは途中で失敗しがちだったので, 単眼ORB-SLAM(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可)
精度が悪い
43
性能の比較• TUM-monoVO dataset
– Alignment誤差(𝑒align)に加えて, 回転誤差(𝑒r)とスケールドリフト誤差(𝑒s)を可視化
– 𝑒sに関しては𝑒′s = max(𝑒𝑠, 𝑒𝑠−1)で評価
精度が悪い
45
パラメータの比較• Photometric Calibrationの有無
– TUM-monoVO datasetで以下を徐々に無効化することで比較
1. 露光時間(𝑡𝑖 = 1, 𝜆𝑎 = 𝜆𝑏 = 0)
2. レンズ減衰(𝑉 𝐱 = 1)
3. 反応関数(𝐺−1 = 1.~2.)
4. 輝度定数(𝜆𝑎 = 𝜆𝑏 = ∞, アフィン輝度修正なし)
精度が悪い
47
パラメータの比較• 利用するデータの選び方(点選択の閾値)
– TUM-monoVO datasetで以下を比較
• 点選択の閾値𝑔thを変化させた場合(左)
• 点としてFASTコーナーのみを利用した場合(右)
精度が悪い
48
パラメータの比較• KFの数
– TUM-monoVO datasetでKF作成時の閾値𝑇kfを変化させて比較
• KFの数を減らすとocclusionが多い状況でロバスト性低下
• KFの数を増え過ぎるとmarginalizationがすぐに起こり, 線形近似された点のエラーが積み重なっていく?
精度が悪い
50
ノイズの比較• Indirect vs directの間での根本的な違いはノイズの仮定方法
– Geometric Noise:特徴点検出器による𝑢, 𝑣方向の位置に関する誤差(Indirectな手法で仮定される)
– Photometric Noise:ピクセル単位での測光強度の誤差(Directな手法で仮定される)
• TUM-monoVO datasetにこれらのノイズを加えて評価する
53
ノイズの比較• 考察
– よくcalibrationされたデータに対してはdirectな手法はかなり強いが, Rolling shutterや内部パラメータが不正確な時には不向き
– スマホやweb cameraなどではindirectな手法が優れている
• 解像度や光感度を重視する傾向にあるため
– Machine Vision用のカメラではdirectで優れた性能を出せる
• 幾何学的な精度を重視するため
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-manifold 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 Framework. International journal of computer vision, 2004, 56.3: 221-255.
- DirectなSLAMの最適化に使われるLucas-Kanade法の説明資料(Gauss-Newton法, Levenberg-Marquardt法の部分が参考になった)