PTAM : Parallel Tracking and Mapping
for Small AR Workspaces
SLAM勉強会
2017/05/29 B4 金子 真也
1
自己紹介
• 名前:金子 真也(かねこ まさや)
• Twitter:@syinari0123
• 所属:東京大学電子情報工学科
相澤山崎研究室B4(卒論生)
• 出身:巣鴨高校
• 趣味:お散歩, 美味しいもの・美術館巡りなど
2
発表前に言いたいこと
• 三次元復元という分野はComputer Vision技術
の集大成
• 部分部分がそれ自体で奥深い研究対象
• 論文を見ても具体的な内容が結構書いていない
• めっちゃ困るんだよなぁ
• 最終的にソースコードを確認して分かった部分
もちらほら…(時間的に完全理解はしていない
ので強マンは教えてほしい)
3
まずはPTAMのイメージを掴もう
https://www.youtube.com/watch?v=F3s3M0mokNc
4
大まかな仕組み(1)
マップ
(ワールド座標)
キーフレーム
1. フレーム同士で対応点
(特徴点)を見つける
5
大まかな仕組み(2)
マップ
(ワールド座標)
キーフレーム
1. フレーム同士で対応点
(特徴点)を見つける
2. 3Dマップ上に特徴点
を登録・更新
6
大まかな仕組み(3)
マップ
(ワールド座標)
キーフレーム
1. フレーム同士で対応点
(特徴点)を見つける
2. 3Dマップ上に特徴点
を登録・更新
7
大まかな仕組み(4)
マップ
(ワールド座標)
キーフレーム
1. フレーム同士で対応点
(特徴点)を見つける
2. 3Dマップ上に特徴点
を登録・更新
3. 3Dマップとの比較により
カメラ姿勢位置の推定
(トラッキング)
8
大まかな仕組み(5)
マップ
(ワールド座標)
キーフレーム
1. フレーム同士で対応点
(特徴点)を見つける
2. 3Dマップ上に特徴点
を登録・更新
3. 3Dマップとの比較により
カメラ姿勢位置の推定
(トラッキング)
4. トラッキングとマッピン
グを繰り返していく
9
全体的なアルゴリズム
カメラのキャリブレーション
マップの初期化
トラッキング マップの更新
10
全体的なアルゴリズム
カメラのキャリブレーション
マップの初期化
トラッキング マップの更新
11
【0】カメラのキャリブレーション
• まずカメラの内部パラメータKの推定が必要
↑エピポーラ幾何により求めることが困難なため
• チェス盤の画像を複数の角度から撮影すること
で推定(アルゴリズムは省略)
– 焦点距離
– 画像の中心
– レンズの歪み
http://d.hatena.ne.jp/rikipoco/20110311/1299794757
12
【補足1】幾何変換行列の関係
各座標軸間を行き来するのに行列変換が必要
視覚の幾何学3 スライド 「単眼カメラのキャリブレーション」
13
【補足2】カメラ行列の導出
基礎行列、基本行列からのカメラ行列の推定
→キャリブレーションの有無は推定の精度に影響
http://qiita.com/ykoga/items/14300e8cdf5aa7bd8d31
14
全体的なアルゴリズム
カメラのキャリブレーション
マップの初期化
トラッキング マップの更新
15
【1】マップの初期化
1. キーフレームの決定
2. 特徴点1000個の検出
3. 2枚目のキーフレームの決定
4. 特徴点の検出・対応関係の探索
5. 5点アルゴリズムにより特徴点を3Dマップに
6. RANSACで不適切な点を削除
7. 3Dマップに対してバンドル調整
16
【1】マップの初期化
1. キーフレームの決定
2. 特徴点1000個の検出 ←
3. 2枚目のキーフレームの決定
4. 特徴点の検出・対応関係の探索
5. 5点アルゴリズムにより特徴点を3Dマップに
6. RANSACで不適切な点を削除
7. 3Dマップに対してバンドル調整
17
FAST特徴点抽出
• 注目画素とその周辺の16画素の輝度値の差
に基づき3値化された16次元ベクトルを作成
• あらかじめ構築した決定木に基づき, 特徴点か
どうかを決定
「特徴点追跡による動画像からの 逐次三次元復元とその応用」p61
18
【1】マップの初期化
1. キーフレームの決定
2. 特徴点1000個の検出
3. 2枚目のキーフレームの決定
4. 特徴点の検出・対応関係の探索 ←
5. 5点アルゴリズムにより特徴点を3Dマップに
6. RANSACで不適切な点を削除
7. 3Dマップに対してバンドル調整
19
特徴点の探索
• 特徴点はFAST特徴量を使うが顕著な点を絞り込
む時, Shi-Tomasiスコアを利用
• 特徴点の探索はパッチを用いて行われる
• エピポーラ拘束の関係を利用して探索
• パッチ同士はゼロ平均SSDを使用して比較され
る
→画像間の対応点を見つける
20
【補足】Shi-tomasiスコア
[参考]
“Good Features to track” 「特徴点追跡による動画像からの 逐次三次元復元とその応用」p62
21
【補足】エピポーラ拘束
一方のカメラで観測している点は他方のカメラの
エピポーラ線上に存在する
→この直線上のみを探索すればよい
http://d.hatena.ne.jp/Zellij/20120824/p1
22
【補足】ゼロ平均SSD
• 最も基本的な誤差評価関数
𝑆 𝑑 𝑥, 𝑑 𝑦 = 𝑔 𝑑 𝑥 + 𝑖, 𝑑 𝑦 + 𝑗 − 𝑓(𝑖, 𝑗)
2
http://isl.sist.chukyo-u.ac.jp/Archives/tm.html
23
【1】マップの初期化
1. キーフレームの決定
2. 特徴点1000個の検出
3. 2枚目のキーフレームの決定
4. 特徴点の検出・対応関係の探索
5. 5点アルゴリズムにより特徴点を3Dマップに ←
6. RANSACで不適切な点を削除
7. 3Dマップに対してバンドル調整
24
5点アルゴリズム
• 基本行列Eを5つの対応点から求める
• 基本行列Eに関する以下の式
𝐸𝐸 𝑇 𝐸 −
1
2
𝑡𝑟𝑎𝑐𝑒 𝐸𝐸 𝑇 𝐸 = 0
𝒒′ 𝑇 𝐸𝒒 = 0 ⟺ 𝒒 𝑇 𝐸 = 0 エピポーラ拘束式
を連立計算して導出される10次元多項式の根を
探索することでEを求めるっぽい?
→E(カメラの位置姿勢)により特徴点を3D復元
[参考]
“An Efficient Solution to the Five-Point Relative Pose Problem”
25
【1】マップの初期化
1. キーフレームの決定
2. 特徴点1000個の検出
3. 2枚目のキーフレームの決定
4. 特徴点の検出・対応関係の探索
5. 5点アルゴリズムにより特徴点を3Dマップに
6. RANSACで不適切な点を削除 ←
7. 3Dマップに対してバンドル調整
26
RANSAC(Random Sampling consensus)
• 5点アルゴリズムでは複数の仮説が生成
• 解の絞り込みを行う(z=0平面の調節に)
• アルゴリズム
– K個の対応点を部分集合としてランダムに選択
– 予測位置とのずれがε以内のinlierの数を数える
– これを繰り返し、inlierの数が最大になるような
カメラ位置、姿勢を選択
「特徴点追跡による動画像からの 逐次三次元復元とその応用」p40
27
【1】マップの初期化
1. キーフレームの決定
2. 特徴点1000個の検出
3. 2枚目のキーフレームの決定
4. 特徴点の検出・対応関係の探索
5. 5点アルゴリズムにより特徴点を3Dマップに
6. RANSACで不適切な点を削除
7. 3Dマップに対してバンドル調整
↑
28
バンドル調整
特徴点位置とのずれを元に誤差逆伝搬法的に特徴
点の位置, カメラ位置の修正を行う
※誤差を減らすアルゴリズムにLevenberg-Marquardt法
を用いている(省略)
[参考]
書籍 ”Multiple View Geometry”
「特徴点追跡による動画像からの 逐次三次元復元とその応用」p78
29
全体的なアルゴリズム
カメラのキャリブレーション
マップの初期化
トラッキング マップの更新
30
【2】トラッキング
1. 画像の取得
2. 仮のカメラ姿勢の計算(運動モデルの利用)
3. 大まかなマッチング
4. 詳細なマッチング
5. 最終的なカメラ位置の決定
6. (条件が良い場合)キーフレームの追加
31
【2】トラッキング
1. 画像の取得
2. 仮のカメラ姿勢の計算(運動モデルの利用)←
3. 大まかなマッチング
4. 詳細なマッチング
5. 最終的なカメラ位置の決定
6. (条件が良い場合)キーフレームの追加
32
カメラの仮の姿勢推定
• カメラの動きが遅いという想定の下でカメラ
位置を推定(カルマンフィルタの一種)
• α-βフィルタ(decaying velocity model)
– 目標位置を観測値として次状態の目標の位置, 速度
の真値を推定
• 新しい測定値がないと推定されるカメラの位置
は減速して最終的に停止する
[参考]
“Comparison of Various α – β Filters Derived from Kalman Filters”
33
【2】トラッキング
1. 画像の取得
2. 仮のカメラ姿勢の計算(運動モデルの利用)
3. 大まかなマッチング
4. 詳細なマッチング
5. 最終的なカメラ位置の決定
6. (条件が良い場合)キーフレームの追加
34
【2】トラッキング
1. 画像の取得
2. 仮のカメラ姿勢の計算(運動モデルの利用)
3. 大まかなマッチング ←
4. 詳細なマッチング ←
5. 最終的なカメラ位置の決定
6. (条件が良い場合)キーフレームの追加
35
四段階層構造のスケールへの対応
• 各キーフレームは4階層のピラミッド構造
• アフィン変換行列を求めて行列式を計算し,
スケーリングを概算、スケーリングに対応した
階層の画像で特徴点マッチングを行う
• FASTコーナー, エピポーラ直線上
• ただあまり正確でないのでinverse compositional
algorithmを用いて精度を高める(省略)
[参考]
“Equivalence and Efficiency of Image Alignment Algorithms”
36
粗-密の二段階マッチング
[一段階目]
ピラミッドの一番上の画像で50のマップ点の抽出、
大雑把な探索
→カメラ姿勢推定
[二段階目]
1000のマップ点の抽出、詳細な範囲での探索
→最終的なカメラ姿勢推定
37
カメラの本格的姿勢推定(1)
ロバスト推定により,得られた特徴点のずれを最小
にするようなカメラ姿勢を推定
http://imagingsolution.blog107.fc2.com/blog-entry-32.html
38
カメラの本格的姿勢推定(2)
Tukey biweight objective関数を利用
↑誤差が大きいときに最小二乗に与える重みを和
らげる
http://imagingsolution.blog107.fc2.com/blog-entry-32.html
39
トラッキング失敗の回復
• 成功した特徴観測の割合によってトラッキング
の質を推定. 閾値を下回る場合には用いない.
• 現在の画像内の特徴点とマップの点との一致の
探索で位置推定(RFによる特徴点比較)
[参考]
“Real-Time SLAM Relocalisation”
40
全体的なアルゴリズム
カメラのキャリブレーション
マップの初期化
トラッキング マップの更新
41
【3】マップの更新
1. 新しいキーフレームがあるか調べる
2. キーフレームがない場合
– 局所的バンドル調節
– 全体的バンドル調節
– どちらでもない時、データ間の関係の更新
3. キーフレームがある場合
– キーフレームの追加、統合
– 新しい特徴点の追加
42
【3】マップの更新
1. 新しいキーフレームがあるか調べる
2. キーフレームがない場合
– 局所的バンドル調節 ←
– 全体的バンドル調節 ←
– どちらでもない時、データ間の関係の更新
3. キーフレームがある場合
– キーフレームの追加、統合
– 新しい特徴点の追加
43
局所的・全体的バンドル調整
• キーフレーム全体に対してバンドル調整を行う
のは計算量がかなり多く避けたい
• 現在のカメラ画像と位置的に付近のキーフレー
ム計5枚に絞って行う局所的バンドル調整を適
宜入れることで計算量を抑える
• 全体的なバンドル調整が必要な時には行う
(それはそう)
44
【3】マップの更新
1. 新しいキーフレームがあるか調べる
2. キーフレームがない場合
– 局所的バンドル調節
– 全体的バンドル調節
– どちらでもない時、データ間の関係の更新 ←
3. キーフレームがある場合
– キーフレームの追加、統合
– 新しい特徴点の追加
45
データ精度の向上
• 古いキーフレームで新しい測定を行う
– 新しく特徴点を見つける
– outlier測定を再び行う
• 登録された3Dマップ点が良くない場合, 異常値
として再計測した後に削除される
46
復元の結果(1)
内部に保存されたキーフレームは以下
47
復元の結果(2)
復元できた3Dマップとカメラ姿勢位置
48
復元の結果(3)
トラッキングにかかる時間とマップ点の数の推移
– [フレーム1320] トラッキングの失敗・回復
– [フレーム1530] マップの範囲の拡大
49
既存手法との比較(1)
• 左がPTAM, 右がEKF-SLAM
• EKF-SLAMは壁の間の角度を過小評価
50
既存手法との比較(2)
• Ground Truthと各軌道との誤差の標準偏差
– EKF-SLAM: 135mm PTAM: 6mm
51
手法の限界とFuture Work
• FASTコーナー特徴量の限界(環境の制限)
• トラッキングが誤っている時の検出が不十分
• マップからより多くの幾何学的理解の抽出
(今回は位置推定とAR用の平面の抽出のみ)
• ループを閉じるように設計されていない
52
参考文献
[1] G. Klein et al., Parallel Tracking and Mapping for Small AR
Workspace, ISMAR 2007
[2] Visual SLAM勉強日記 http://muskieingermany.hatenablog.com/
[3]【コンピュータビジョン】ネコと学ぶエピポーラ幾何
http://qiita.com/ykoga/items/14300e8cdf5aa7bd8d31
[4]「特徴点追跡による動画像からの逐次三次元復元とその応用」
http://yokoya.naist.jp/paper/datas/1407/SSII%E3%83%81%E3%83%A5%E3%83%BC%E
3%83%88%E3%83%AA%E3%82%A2%E3%83%AB%E4%BD%90%E8%97%A4.pdf
[5] SlideShare 「PTAMを15分でなんとなく理解する」
http://imagingsolution.blog107.fc2.com/blog-entry-32.html
[6] 視覚の幾何学1~3 呉海元(和歌山大学)
http://www.wakayama-u.ac.jp/~wuhy/CV09.pdf
53
PTAMの歴史的立ち位置(1)
• PTAM以前
検出された特徴点の位置情報をすべてカルマンフィルタの状態量に組
み込み、ロボットへの制御入力と観測されたランドマークの位置、IM
U等の値を統合し、自己位置の推定
→ランドマークを観測するたびにカルマンフィルタの状態量が増え続
ける(リアルタイムでの実行が困難に)
• EKF SLAM(拡張カルマンフィルタ)
• Fast SLAM(自己位置推定にパーティクルフィルタ、ランドマーク処
理にEKFを用いることで計算を工夫)
54
PTAMの歴史的立ち位置(2)
ランドマーク観測センサー
• カメラ:Visual SLAM、特徴点のマッチング容易、デプス推定必要
• LRF:特徴点のマッチング困難、デプスを直接観測
Visual SLAMの研究が増え(安価で入手しやすい)、ステレオカメラ
でなく小型で安価な単眼カメラを用いたSLAMが盛んに。
2003年にAndrew Davison教授により単眼カメラを用いたリアルタイ
ムで実行可能なSLAM、Mono-SLAMが発表される
→Visual SLAMの流れが誕生
55
PTAMの歴史的立ち位置(3)
• PTAMの誕生
ランドマークの増加に伴う計算コストの問題の流れが変わる。
SfMで用いられていた「バンドル調整」の利用
(計算量が大きく用いられてはいなかったが、画像上の位置追跡と
マップ作成を2つのスレッドで同時に処理)
従来全フレームで行っていた部分を改善し、
• キーフレームでのみデプス推定(マップ作成)
• ほかのフレームでは最新のキーフレーム画像とのデプス情報を用い
た比較を行いカメラ位置の推定
以前までマーカを必須としていたARに革命をもたらし、マーカーレス
ARの研究開発が進む(Pokemon Goなどにも)
56
3Dマップ点の画像への投影(1)
レンズの歪み補正にはFOVモデルを利用
(キャリブレーション時に推定した値?)
57
3Dマップ点の画像への投影(2)
3Dマップ上の点をカメラの画像に投影

SLAM勉強会(PTAM)

Editor's Notes

  • #19 3値はdarker, similar, brighter