第4回 3D勉強会@関東
~画像を用いた3Dモデリングの基礎から応用まで~
Visual SLAM: Why Bundle Adjust?
東京大学 相澤研究室所属
M1 金子 真也 (@syinari0123)
1
自己紹介
• 氏名
– 金子 真也 (かねこ まさや)
• 所属
– 東京大学大学院 学際情報学府 相澤研 M1
• Recently
– 2018年5月-8月 DeNA アルバイト (SFM)
– 2018年8月-9月 Sony Internship (SLAM)
– 2018年9月- 産総研 Research Assistant
• 深層学習やVisual SLAMと戯れています
• 就活に向けて情報収集中なのでSLAM関連でおすすめの企業があり
ましたらぜひ教えてください
まさや
(@syinari0123)
2
本論文
• Visual SLAM: Why Bundle Adjust?
– 著者: A. P. Bustos, T. Chin, A. Eriksson and I. Reid
– 採択会議: ICRA2019 (arXivには2019/2/11投稿)
Andrew Davison 大先生も絶賛
3
本論文 (おまけ)
• Visual SLAM: Why Bundle Adjust?
– 著者: A. P. Bustos, T. Chin, A. Eriksson and I. Reid
– 採択会議: ICRA2019 (arXivには2019/2/11投稿)
一番最初のVisual SLAMである
MonoSLAM [Davison+, PAMI’07]
のメンバーの一人
[1] A. J. Davison, I. D. Reid, N. M. Molton, and O. Stasse, “MonoSLAM: real-time single camera SLAM,” IEEE TPAMI, vol. 29,
no. 6, pp. 1– 16, 2007
4
本論文 (おまけ)
• Visual SLAM: Why Bundle Adjust?
– 著者: A. P. Bustos, T. Chin, A. Eriksson and I. Reid
– 採択会議: ICRA2019 (arXivには2019/2/11投稿)
[1] H. Strasdat, J. M. M. Montiel, and A. J. Davison, “Visual SLAM: Why Filter?” Image and Vision Computing, vol. 30, no. 2,
pp. 65–77, 2012
5
どのようなものか?
• 新しい最適化手法のVSLAMを提案 (L-infinity SLAM)
– 従来の特徴点ベースのVSLAMよりシンプルでロバスト
– 実用化には至っていなかった要素技術で実践的なVSLAMの基礎
を実現した点が今回の貢献
6
従来のVSLAM (BA-SLAM)
• ORB-SLAM [Mur-Artal+, IEEE TRO’15]
– 抽出した特徴点の三次元位置を推定しながらカメラ軌跡の推定
画像上での特徴点 各点の三次元位置と
カメラ軌跡の推定
7
従来のVSLAM (BA-SLAM)
• ORB-SLAM [Mur-Artal+, IEEE TRO’15]
– 抽出した特徴点の三次元位置を推定しながらカメラ軌跡の推定
– Bundle Adjustment (BA)
• 基準点とカメラを結ぶ光線束(Bundle)による調整
画像 𝑍𝑗 画像 𝑍𝑗+1
𝒖𝑖,𝑗+1特徴点 𝒖𝑖,𝑗
カメラ姿勢 [𝐑𝑗, 𝐭𝑗]
𝒖𝑖,𝑗
投影点
𝑓 𝐗 𝑖 𝐑𝑗, 𝐭𝑗) Bundle
𝑍𝑗+1
[𝐑𝑗+1, 𝐭𝑗+1]
𝒖𝑖,𝑗+1
画像 𝑍𝑗
3D位置 𝐗 𝑖
8
従来のVSLAM (BA-SLAM)
• ORB-SLAM [Mur-Artal+, IEEE TRO’15]
– 抽出した特徴点の三次元位置を推定しながらカメラ軌跡の推定
– Bundle Adjustment (BA)
• 基準点とカメラを結ぶ光線束(Bundle)による調整
画像 𝑍𝑗 画像 𝑍𝑗+1
𝒖𝑖,𝑗+1特徴点 𝒖𝑖,𝑗
最適化
画像 𝑍𝑗
𝒖𝑖,𝑗
Bundle
[𝐑𝑗+1, 𝐭𝑗+1]
𝑍𝑗+1
𝒖𝑖,𝑗+1
3D位置 𝐗 𝑖
カメラ姿勢 [𝐑𝑗, 𝐭𝑗]
投影点
𝑓 𝐗 𝑖 𝐑𝑗, 𝐭𝑗)
9
従来のVSLAM (BA-SLAM)
• ORB-SLAM [Mur-Artal+, IEEE TRO’15]
– 抽出した特徴点の三次元位置を推定しながらカメラ軌跡の推定
– Bundle Adjustment (BA)
• 基準点とカメラを結ぶ光線束(Bundle)による調整
画像 𝑍𝑗 画像 𝑍𝑗+1
𝒖𝑖,𝑗+1特徴点 𝒖𝑖,𝑗
最適化
画像 𝑍𝑗
𝒖𝑖,𝑗
Bundle
[𝐑𝑗+1, 𝐭𝑗+1]
𝑍𝑗+1
𝒖𝑖,𝑗+1
3D位置 𝐗 𝑖
カメラ姿勢 [𝐑𝑗, 𝐭𝑗]
投影点
𝑓 𝐗 𝑖 𝐑𝑗, 𝐭𝑗)
10
従来のVSLAM (BA-SLAM)
• Basic recipe for BA-SLAM
11
従来のVSLAM (BA-SLAM)
• Basic recipe for BA-SLAM
𝑍1
𝑍0 Initialization
(3D地図の点の初期化)
12
従来のVSLAM (BA-SLAM)
• Basic recipe for BA-SLAM
𝑍1
𝑍2
𝑍0
Tracking
13
従来のVSLAM (BA-SLAM)
• Basic recipe for BA-SLAM
𝑍1
𝑍2
𝑍0
3D地図への点の追加/削除
14
従来のVSLAM (BA-SLAM)
• Basic recipe for BA-SLAM
𝑍1
𝑍2
𝑍0
Local Mapping
(局所的なBA)
15
従来のVSLAM (BA-SLAM)
• Basic recipe for BA-SLAM
𝑍0
𝑍1
𝑍2
𝑍𝑡 𝑍𝑡−1
16
従来のVSLAM (BA-SLAM)
• Basic recipe for BA-SLAM
𝑍0
𝑍1
𝑍2
𝑍𝑡 𝑍𝑡−1
Loop detection
17
従来のVSLAM (BA-SLAM)
• Basic recipe for BA-SLAM
𝑍0
𝑍1
𝑍2
𝑍𝑡 Loop closing
(全体的なBA)
𝑍𝑡−1
18
従来のVSLAM (BA-SLAM)
• Basic recipe for BA-SLAM
𝑍0
𝑍1
𝑍2
𝑍𝑡
𝑍𝑡−1
カメラ軌跡
{𝐑𝑗, 𝐭𝑗}
3D地図に対するメンテナンス(「初期化」と「点の追加/削除」)
はVSLAMの性能に大きな影響 (職人技が光る部分)
→カメラの初期化やPure rotation時に失敗しやすい
19
従来のVSLAM (BA-SLAM)
• Basic recipe for BA-SLAM
✖ システムが複雑
(3D地図の維持が大変)
✖ Pure rotationに弱い
(3D地図の参照が困難なため)
→ できるだけ3D地図に依存しないカメラの軌跡推定を行えないか?
𝑍0
𝑍1
𝑍2
𝑍𝑡
𝑍𝑡−1
カメラ軌跡
{𝐑𝑗, 𝐭𝑗}
20
提案手法
• VSLAMのカメラ軌跡推定を2つの問題に分離
1. カメラの回転 𝐑𝑗
Rotation Averaging[1]
2. カメラの位置𝐭𝑗 (と3D地図 𝐗)
Known Rotation Problem (KRot)[2]
𝐮𝑖,𝑗
[1] A. Eriksson, C. Olsson, F. Kahl, and T.-J. Chin, “Rotation averaging and strong duality,” in CVPR, 2018.
[2] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018.
3D地図に依存することなくカメラの回転を求めることが可能に!
(従来よりもTracking失敗しにくいシステムに)
21
提案手法
• VSLAMのカメラ軌跡推定を2つの問題に分離
1. カメラの回転 𝐑𝑗
Rotation Averaging[1]
2. カメラの位置𝐭𝑗 (と3D地図 𝐗)
Known Rotation Problem (KRot)[2]
𝐮𝑖,𝑗
[おまけ] 本論文の著者の1人であるTat-Jun Chin氏は両問題に対する解法
の論文に関わっており, CVPR2018で採択[1][2](片方はoral)
[1] A. Eriksson, C. Olsson, F. Kahl, and T.-J. Chin, “Rotation averaging and strong duality,” in CVPR, 2018.
[2] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018.
• カメラの回転成分{𝐑𝑗}の最適化[1]
22
1. Rotation Averaging
2
1
3
4
5
𝐑2
絶対座標
𝐑3
𝐑4
𝐑5
𝐑1
[1] A. Chatterjee and V. Madhav Govindu, “Efficient and robust largescale rotation averaging,” in ICCV, 2013.
• カメラの回転成分{𝐑𝑗}の最適化[1]
1. 特徴点マッチングより相対的なカメラ回転{𝐑 𝑖𝑗}を求める
2. 相対的なカメラ回転{𝐑 𝑖𝑗}から絶対座標系での回転{𝐑𝑗}を求める
23
1. Rotation Averaging
2
1
3
4
5
𝐑2
絶対座標
𝐑3
𝐑4
𝐑5
𝐑1
[1] A. Chatterjee and V. Madhav Govindu, “Efficient and robust largescale rotation averaging,” in ICCV, 2013.
• カメラの回転成分{𝐑𝑗}の最適化[1]
1. 特徴点マッチングより相対的なカメラ回転{𝐑 𝑖𝑗}を求める
2. 相対的なカメラ回転{𝐑 𝑖𝑗}から絶対座標系での回転{𝐑𝑗}を求める
𝐑12
24
1. Rotation Averaging
21. 特徴点マッチングにより基礎行列の計算
2. SVDによる行列分解
𝐱2
T
𝐅12 𝐱1 = 0
𝐄12 = 𝐊2 𝐅12 𝐊1
𝐄12 = 𝐭12 × 𝐑12
特徴点 𝐱1 特徴点 𝐱2
1
3
4
5
[1] A. Chatterjee and V. Madhav Govindu, “Efficient and robust largescale rotation averaging,” in ICCV, 2013.
25
1. Rotation Averaging
• カメラの回転成分{𝐑𝑗}の最適化[1]
1. 特徴点マッチングより相対的なカメラ回転{𝐑 𝑖𝑗}を求める
2. 相対的なカメラ回転{𝐑 𝑖𝑗}から絶対座標系での回転{𝐑𝑗}を求める
絶対座標
min
𝐑1,𝐑2
𝐑12 − 𝐑2 𝐑1
−1
𝐹
= 2 2 sin
∠(𝐑12 𝐑2 𝐑1
−1 −1)
2
𝐑12
2
1
𝐑2
𝐑1
相対座標系の回転は 絶対座標系での
回転で表現可能
𝐑12
2
1
𝐑2
𝐑1
−1
3
4
5
[1] A. Chatterjee and V. Madhav Govindu, “Efficient and robust largescale rotation averaging,” in ICCV, 2013.
[2] A. Eriksson, C. Olsson, F. Kahl, and T.-J. Chin, “Rotation averaging and strong duality,” in CVPR, 2018.
(Chordal distance[2])
26
1. Rotation Averaging
• カメラの回転成分{𝐑𝑗}の最適化[1]
1. 特徴点マッチングより相対的なカメラ回転{𝐑 𝑖𝑗}を求める
2. 相対的なカメラ回転{𝐑 𝑖𝑗}から絶対座標系での回転{𝐑𝑗}を求める
→ 各カメラの回転方向{𝑹𝑗}を求めることができた
𝐑12
2
1
𝐑2
𝐑1
絶対座標
3
4
5
𝐑23
𝐑34
𝐑45
𝐑51
𝐑52
𝐑53𝐑14
𝐑24
𝐑13
𝐑3
𝐑4
𝐑5
[1] A. Chatterjee and V. Madhav Govindu, “Efficient and robust largescale rotation averaging,” in ICCV, 2013.
カメラ全体に対して最適化
27
1. Rotation Averaging
• カメラの回転成分{𝐑𝑗}の最適化[1]
1. 特徴点マッチングより相対的なカメラ回転{𝐑 𝑖𝑗}を求める
2. 相対的なカメラ回転{𝐑 𝑖𝑗}から絶対座標系での回転{𝐑𝑗}を求める
→ 各カメラの回転方向{𝑹𝑗}を求めることができた
𝐑12
2
1
𝐑2
𝐑1
絶対座標
3
4
5
𝐑23
𝐑34
𝐑45
𝐑51
𝐑52
𝐑53𝐑14
𝐑24
𝐑13
𝐑3
𝐑4
𝐑5
[1] A. Chatterjee and V. Madhav Govindu, “Efficient and robust largescale rotation averaging,” in ICCV, 2013.
28
2. Known Rotation Problem (KRot)
• カメラの回転から, カメラ位置と3D点の最適化[1]
– 2Dカメラ画像上に投影し最小化 (Bundle Adjustmentに近い)
min
𝐗 𝑖 ,{𝐭 𝑗}
max
𝑖,𝑗
𝐮𝑖,𝑗 − 𝑓 𝐗 𝑖 𝐑𝑗, 𝐭𝑗 𝟐
s. t. 𝐑𝑗
(3)
𝐗 𝑖 + 𝐭𝑗
(3)
> 0 ∀𝑖, 𝑗
KRot
最大要素の最小化
(𝐿∞最適化)
[1] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018.
カメラ姿勢 [𝐑𝑗, 𝐭𝑗]
𝒖𝑖,𝑗
3D位置 𝐗 𝑖
投影点
𝑓 𝐗 𝑖 𝐑𝑗, 𝐭𝑗)
𝑍𝑗+1
[𝐑𝑗+1, 𝐭𝑗+1]
𝒖𝑖,𝑗+1
画像 𝑍𝑗
29
2. Known Rotation Problem (KRot)
• カメラの回転から, カメラ位置と3D点の最適化[1]
– 2Dカメラ画像上に投影し最小化 (Bundle Adjustmentに近い)
min
𝐗 𝑖 ,{𝐭 𝑗}
max
𝑖,𝑗
𝐮𝑖,𝑗 − 𝑓 𝐗 𝑖 𝐑𝑗, 𝐭𝑗 𝟐
s. t. 𝐑𝑗
(3)
𝐗 𝑖 + 𝐭𝑗
(3)
> 0 ∀𝑖, 𝑗
Bundle AdjustmentKRot
2乗誤差の和の最小化
(𝐿2最適化)
最大要素の最小化
(𝐿∞最適化)
[1] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018.
30
2. Known Rotation Problem (KRot)
• カメラの回転から, カメラ位置と3D点の最適化[1]
– 2Dカメラ画像上に投影し最小化 (Bundle Adjustmentに近い)
min
𝐗 𝑖 ,{𝐭 𝑗}
max
𝑖,𝑗
𝐮𝑖,𝑗 − 𝑓 𝐗 𝑖 𝐑𝑗, 𝐭𝑗 𝟐
s. t. 𝐑𝑗
(3)
𝐗 𝑖 + 𝐭𝑗
(3)
> 0 ∀𝑖, 𝑗
Bundle AdjustmentKRot
2乗誤差の和の最小化
(𝐿2最適化)
最大要素の最小化
(𝐿∞最適化)
• 再投影誤差の𝑳 𝟐最小化はhard non-
convex problem[2]
• 良い初期解が必要
• 𝑳∞最適化で書き直すとsingle local
optimumを持つようになる[2]
• Outlierに対して非常に敏感
(だがL2も同じくらい敏感(?))
𝐿2関数 𝐿∞関数
[1] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018.
[2] F. Kahl and R. Hartley, “Multiple-view geometry under the L∞-norm,” PAMI, vol. 30, no. 9, pp. 1603–1617, 2008.
31
2. Known Rotation Problem (KRot)
• カメラの回転から, カメラ位置と3D点の最適化[1]
– 以下をどう最適化するか?
• Res-Int (Resection-Intersection)[1]
min
𝐗 𝑖 ,{𝐭 𝑗}
max
𝑖,𝑗
𝐮𝑖,𝑗 − 𝑓 𝐗 𝑖 𝐑𝑗, 𝐭𝑗 𝟐
s. t. 𝐑𝑗
(3)
𝐗 𝑖 + 𝐭𝑗
(3)
> 0 ∀𝑖, 𝑗
KRot
[1] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018.
[2] F. Kahl and R. Hartley, “Multiple-view geometry under the L∞-norm,” PAMI, vol. 30, no. 9, pp. 1603–1617, 2008.
32
2. Known Rotation Problem (KRot)
• カメラの回転から, カメラ位置と3D点の最適化[1]
– 以下をどう最適化するか?
• Res-Int (Resection-Intersection)[1]
min
𝐗 𝑖 ,{𝐭 𝑗}
max
𝑖,𝑗
𝐮𝑖,𝑗 − 𝑓 𝐗 𝑖 𝐑𝑗, 𝐭𝑗 𝟐
s. t. 𝐑𝑗
(3)
𝐗 𝑖 + 𝐭𝑗
(3)
> 0 ∀𝑖, 𝑗
KRot
[1] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018.
[2] F. Kahl and R. Hartley, “Multiple-view geometry under the L∞-norm,” PAMI, vol. 30, no. 9, pp. 1603–1617, 2008.
𝑓 𝐗 𝑖 𝐑𝑗, 𝐭𝑗 =
𝐑𝑗
(1:2)
𝐗 𝑖 + 𝐭𝑗
(1:2)
𝐑𝑗
(3)
𝐗 𝑖 + 𝐭𝑗
(3)
=
𝑓𝐱
𝐳
+ 𝑐 𝑥
𝑓𝐲
𝐳
+ 𝑐 𝑦
カメラの投影モデル
(簡単のため内部パラメータ𝑲 = 𝑰 𝟑×𝟑)
𝑓 = 1
z𝑖
[𝑥𝑖, 𝑦𝑖, 𝑧𝑖]
[𝑥𝑖/𝑧𝑖, 𝑦𝑖/𝑧𝑖, 1]
𝑐 𝑥 = 𝑐 𝑦 = 0
33
2. Known Rotation Problem (KRot)
• カメラの回転から, カメラ位置と3D点の最適化[1]
– 以下をどう最適化するか?
• Res-Int (Resection-Intersection)[1]
[1] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018.
[2] F. Kahl and R. Hartley, “Multiple-view geometry under the L∞-norm,” PAMI, vol. 30, no. 9, pp. 1603–1617, 2008.
min
𝐗 𝑖 ,{𝐭 𝑗}
max
𝑖,𝑗
𝐮𝑖,𝑗 −
𝐑𝑗
(1:2)
𝐗 𝑖 + 𝐭𝑗
(1:2)
𝐑𝑗
(3)
𝐗 𝑖 + 𝐭𝑗
(3)
𝟐
s. t. 𝐑𝑗
(3)
𝐗 𝑖 + 𝐭𝑗
(3)
> 0 ∀𝑖, 𝑗
KRot
𝑓 𝐗 𝑖 𝐑𝑗, 𝐭𝑗 =
𝐑𝑗
(1:2)
𝐗 𝑖 + 𝐭𝑗
(1:2)
𝐑𝑗
(3)
𝐗 𝑖 + 𝐭𝑗
(3)
=
𝑓𝐱
𝐳
+ 𝑐 𝑥
𝑓𝐲
𝐳
+ 𝑐 𝑦
カメラの投影モデル
(簡単のため内部パラメータ𝑲 = 𝑰 𝟑×𝟑)
𝑓 = 1
z𝑖
[𝑥𝑖, 𝑦𝑖, 𝑧𝑖]
[𝑥𝑖/𝑧𝑖, 𝑦𝑖/𝑧𝑖, 1]
𝑐 𝑥 = 𝑐 𝑦 = 0
34
2. Known Rotation Problem (KRot)
• Res-Int (Resection-Intersection)[1]
[1] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018.
min
𝐗 𝑖 ,{𝐭 𝑗}
max
𝑖,𝑗
𝐮𝑖,𝑗 −
𝐑𝑗
(1:2)
𝐗 𝑖 + 𝐭𝑗
(1:2)
𝐑𝑗
(3)
𝐗 𝑖 + 𝐭𝑗
(3)
𝟐
s. t. 𝐑𝑗
(3)
𝐗 𝑖 + 𝐭𝑗
(3)
> 0 ∀𝑖, 𝑗
KRot
35
2. Known Rotation Problem (KRot)
• Res-Int (Resection-Intersection)[1]
[1] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018.
min
𝐗 𝑖 ,{𝐭 𝑗}
max
𝑖,𝑗
𝐮𝑖,𝑗 −
𝐑𝑗
(1:2)
𝐗 𝑖 + 𝐭𝑗
(1:2)
𝐑𝑗
(3)
𝐗 𝑖 + 𝐭𝑗
(3)
𝟐
s. t. 𝐑𝑗
(3)
𝐗 𝑖 + 𝐭𝑗
(3)
> 0 ∀𝑖, 𝑗
KRot
min
𝐗 𝑖
max
𝑗
𝐮𝑖,𝑗 −
𝐑𝑗
(1:2)
𝐗 𝑖 + 𝐭𝑗
(1:2)
𝐑𝑗
(3)
𝐗 𝑖 + 𝐭𝑗
(3)
𝟐
s. t. 𝐑𝑗
(3)
𝐗 𝑖 + 𝐭𝑗
(3)
> 0 ∀𝑗
min
𝐭 𝑗
max
𝑖
𝐮𝑖,𝑗 −
𝐑𝑗
(1:2)
𝐗 𝑖 + 𝐭𝑗
(1:2)
𝐑𝑗
(3)
𝐗 𝑖 + 𝐭𝑗
(3)
𝟐
s. t. 𝐑𝑗
(3)
𝐗 𝑖 + 𝐭𝑗
(3)
> 0 ∀𝑖
Int𝒊
Res𝒋
{𝐭𝑗}を固定
{𝑿𝒊}を固定
36
2. Known Rotation Problem (KRot)
• Res-Int (Resection-Intersection)[1]
[1] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018.
min
𝐗 𝑖
max
𝑗
𝐮𝑖,𝑗 −
𝐑𝑗
(1:2)
𝐗 𝑖 + 𝐭𝑗
(1:2)
𝐑𝑗
(3)
𝐗 𝑖 + 𝐭𝑗
(3)
𝟐
s. t. 𝐑𝑗
(3)
𝐗 𝑖 + 𝐭𝑗
(3)
> 0 ∀𝑗
min
𝐭 𝑗
max
𝑖
𝐮𝑖,𝑗 −
𝐑𝑗
(1:2)
𝐗 𝑖 + 𝐭𝑗
(1:2)
𝐑𝑗
(3)
𝐗 𝑖 + 𝐭𝑗
(3)
𝟐
s. t. 𝐑𝑗
(3)
𝐗 𝑖 + 𝐭𝑗
(3)
> 0 ∀𝑖
Int𝒊
Res𝒋
IntとResの交互最適化を高速に解く[1]
大体3秒(画像15枚, 3D点3000個)
𝐮𝑖,𝑗 𝑖 = 1
𝑿𝑖 𝑖 = 1
𝑖 𝑿𝑖 Int 𝑖
𝑿𝑖 𝑖 = 1
37
L-infinity SLAM
• 全体的な流れ
「初期化」「3D点の追加」
などの3D地図に関する注意深い
メンテナンスが不要に
38
L-infinity SLAM
• 全体的な流れ
BAの操作を
「Rotation Averaging」と
「KRot」に置き換え
39
L-infinity SLAM
• 全体的な流れ
非常にシンプルな形のアルゴリズムに変形することができた!
40
実験1
• L-infinity SLAM vs BA-SLAM
– MATLABで両アルゴリズムを実装
• Quad-core 2.5GHz Intel core i7 CPU + 16GB of RAM
• BAの方はCeres-solver[1]で実装
– Maptek社によって提供されたデータで実験
• 正確なGT付き
• 1833 frameで構成され2回loopする映像
(KeyFrameを358枚選択)
– 今回VSLAMで必要不可欠なKeyFrame選択などの操作の実装は
行っていない
• 単純に各KFに対して最適化を繰り返すような実装
[1] S. Agarwal and K. Mierle, Ceres Solver: Tutorial & Reference, Google Inc.
41
結果
• カメラの軌跡の位置誤差と回転誤差
– BA-SLAMの方は途中でtracking lost※を起こしている
– 結果としてL-infinity SLAMはBA-SLAMよりも性能が良い
カメラ位置誤差(< 0.67 𝑚), 回転誤差(< 0.83°)
– L-infinity SLAMで軌跡を求めた後にBAすると結果が悪化
Tracking Lost
※今回Tracking LostはOutlier除去の結果起きている. 各三次元点の位置がカメラから150mより遠くなった場合outlierと見なした
42
結果
• カメラの軌跡の比較
– BA-SLAMは部分的に誤差が目立つ(?)
43
結果
• 三次元地図の復元結果
– カメラ軌跡推定時には300点しか特徴点を使っていないので,
KRot[1]で改めて三角測量し直した結果
[1] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018.
44
結果
• 最適化の速さの計測
– Rotation Averaging vs BA(回転のみ)
– 最初のloopまでの時間を計測し比較
– 回転に関してはRotation Averagingの方が高速に最適化可能
45
実験2
• カメラの大きな回転への耐性
– Smart-phoneで撮影したカメラの回転映像
– ORB-SLAM[1]では初期化すらできないが, L-infinity SLAMでは
きちんと復元できた
[1] R. Mur-Artal, J. Montiel, and J. Tardos, “ORB-SLAM: a versatile and accurate monocular SLAM system,” IEEE TRO,
vol. 31, no. 5, pp.1147–1163, 2015.
46
まとめ
• L-infinity SLAM
– 新しいVSLAMの最適化フレームワークの提案
– BAをRotation AveragingとKRotに分離することで, 3D地図の
依存なくカメラの回転を求められる
1. 職人技だった3D地図の注意深いメンテナンスが不要に
– カメラ初期化や, Pure rotation時のTrackingに強くなった
2. VSLAMのアルゴリズムがシンプルに
• 個人的な所感
– VSLAMの細かい要素の作り込みが今後の焦点になりそう
• 毎時刻のTrackingやKeyFrame選択をどう行うか?
• 遅すぎるLoop Closingをどう扱うべきか?
– 新しいVSLAMのフレームワークとして非常に面白い論文
47
参考資料
• 本論文の著者が関連する論文
– A. Eriksson, C. Olsson, F. Kahl, and T.-J. Chin, “Rotation averaging and strong duality,”
in CVPR, 2018.
– Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known
rotation problem,” in CVPR, 2018.
• Rotation Averagingの実装に採用した論文
– A. Chatterjee and V. Madhav Govindu, “Efficient and robust largescale rotation
averaging,” in ICCV, 2013.
• KRot (Loop Closing版, 詳細は論文へ)でベースにしていた論文
– K. Sim and R. Hartley, “Recovering camera motion using L∞ minimization,” in CVPR,
2006, pp. 1230–1237.
• 𝑳∞-normを使った定式化関連
– F. Kahl and R. Hartley, “Multiple-view geometry under the L∞-norm,” IEEE Transactions
on Pattern Analysis and Machine Intelligence, vol. 30, no. 9, pp. 1603–1617, 2008.
– C. Olsson, A. Eriksson, and F. Kahl, “Efficient optimization for 𝐿∞- problems using
pseudoconvexity,” in ICCV, 2007.

Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)

  • 1.
    第4回 3D勉強会@関東 ~画像を用いた3Dモデリングの基礎から応用まで~ Visual SLAM:Why Bundle Adjust? 東京大学 相澤研究室所属 M1 金子 真也 (@syinari0123)
  • 2.
    1 自己紹介 • 氏名 – 金子真也 (かねこ まさや) • 所属 – 東京大学大学院 学際情報学府 相澤研 M1 • Recently – 2018年5月-8月 DeNA アルバイト (SFM) – 2018年8月-9月 Sony Internship (SLAM) – 2018年9月- 産総研 Research Assistant • 深層学習やVisual SLAMと戯れています • 就活に向けて情報収集中なのでSLAM関連でおすすめの企業があり ましたらぜひ教えてください まさや (@syinari0123)
  • 3.
    2 本論文 • Visual SLAM:Why Bundle Adjust? – 著者: A. P. Bustos, T. Chin, A. Eriksson and I. Reid – 採択会議: ICRA2019 (arXivには2019/2/11投稿) Andrew Davison 大先生も絶賛
  • 4.
    3 本論文 (おまけ) • VisualSLAM: Why Bundle Adjust? – 著者: A. P. Bustos, T. Chin, A. Eriksson and I. Reid – 採択会議: ICRA2019 (arXivには2019/2/11投稿) 一番最初のVisual SLAMである MonoSLAM [Davison+, PAMI’07] のメンバーの一人 [1] A. J. Davison, I. D. Reid, N. M. Molton, and O. Stasse, “MonoSLAM: real-time single camera SLAM,” IEEE TPAMI, vol. 29, no. 6, pp. 1– 16, 2007
  • 5.
    4 本論文 (おまけ) • VisualSLAM: Why Bundle Adjust? – 著者: A. P. Bustos, T. Chin, A. Eriksson and I. Reid – 採択会議: ICRA2019 (arXivには2019/2/11投稿) [1] H. Strasdat, J. M. M. Montiel, and A. J. Davison, “Visual SLAM: Why Filter?” Image and Vision Computing, vol. 30, no. 2, pp. 65–77, 2012
  • 6.
    5 どのようなものか? • 新しい最適化手法のVSLAMを提案 (L-infinitySLAM) – 従来の特徴点ベースのVSLAMよりシンプルでロバスト – 実用化には至っていなかった要素技術で実践的なVSLAMの基礎 を実現した点が今回の貢献
  • 7.
    6 従来のVSLAM (BA-SLAM) • ORB-SLAM[Mur-Artal+, IEEE TRO’15] – 抽出した特徴点の三次元位置を推定しながらカメラ軌跡の推定 画像上での特徴点 各点の三次元位置と カメラ軌跡の推定
  • 8.
    7 従来のVSLAM (BA-SLAM) • ORB-SLAM[Mur-Artal+, IEEE TRO’15] – 抽出した特徴点の三次元位置を推定しながらカメラ軌跡の推定 – Bundle Adjustment (BA) • 基準点とカメラを結ぶ光線束(Bundle)による調整 画像 𝑍𝑗 画像 𝑍𝑗+1 𝒖𝑖,𝑗+1特徴点 𝒖𝑖,𝑗 カメラ姿勢 [𝐑𝑗, 𝐭𝑗] 𝒖𝑖,𝑗 投影点 𝑓 𝐗 𝑖 𝐑𝑗, 𝐭𝑗) Bundle 𝑍𝑗+1 [𝐑𝑗+1, 𝐭𝑗+1] 𝒖𝑖,𝑗+1 画像 𝑍𝑗 3D位置 𝐗 𝑖
  • 9.
    8 従来のVSLAM (BA-SLAM) • ORB-SLAM[Mur-Artal+, IEEE TRO’15] – 抽出した特徴点の三次元位置を推定しながらカメラ軌跡の推定 – Bundle Adjustment (BA) • 基準点とカメラを結ぶ光線束(Bundle)による調整 画像 𝑍𝑗 画像 𝑍𝑗+1 𝒖𝑖,𝑗+1特徴点 𝒖𝑖,𝑗 最適化 画像 𝑍𝑗 𝒖𝑖,𝑗 Bundle [𝐑𝑗+1, 𝐭𝑗+1] 𝑍𝑗+1 𝒖𝑖,𝑗+1 3D位置 𝐗 𝑖 カメラ姿勢 [𝐑𝑗, 𝐭𝑗] 投影点 𝑓 𝐗 𝑖 𝐑𝑗, 𝐭𝑗)
  • 10.
    9 従来のVSLAM (BA-SLAM) • ORB-SLAM[Mur-Artal+, IEEE TRO’15] – 抽出した特徴点の三次元位置を推定しながらカメラ軌跡の推定 – Bundle Adjustment (BA) • 基準点とカメラを結ぶ光線束(Bundle)による調整 画像 𝑍𝑗 画像 𝑍𝑗+1 𝒖𝑖,𝑗+1特徴点 𝒖𝑖,𝑗 最適化 画像 𝑍𝑗 𝒖𝑖,𝑗 Bundle [𝐑𝑗+1, 𝐭𝑗+1] 𝑍𝑗+1 𝒖𝑖,𝑗+1 3D位置 𝐗 𝑖 カメラ姿勢 [𝐑𝑗, 𝐭𝑗] 投影点 𝑓 𝐗 𝑖 𝐑𝑗, 𝐭𝑗)
  • 11.
  • 12.
    11 従来のVSLAM (BA-SLAM) • Basicrecipe for BA-SLAM 𝑍1 𝑍0 Initialization (3D地図の点の初期化)
  • 13.
    12 従来のVSLAM (BA-SLAM) • Basicrecipe for BA-SLAM 𝑍1 𝑍2 𝑍0 Tracking
  • 14.
    13 従来のVSLAM (BA-SLAM) • Basicrecipe for BA-SLAM 𝑍1 𝑍2 𝑍0 3D地図への点の追加/削除
  • 15.
    14 従来のVSLAM (BA-SLAM) • Basicrecipe for BA-SLAM 𝑍1 𝑍2 𝑍0 Local Mapping (局所的なBA)
  • 16.
    15 従来のVSLAM (BA-SLAM) • Basicrecipe for BA-SLAM 𝑍0 𝑍1 𝑍2 𝑍𝑡 𝑍𝑡−1
  • 17.
    16 従来のVSLAM (BA-SLAM) • Basicrecipe for BA-SLAM 𝑍0 𝑍1 𝑍2 𝑍𝑡 𝑍𝑡−1 Loop detection
  • 18.
    17 従来のVSLAM (BA-SLAM) • Basicrecipe for BA-SLAM 𝑍0 𝑍1 𝑍2 𝑍𝑡 Loop closing (全体的なBA) 𝑍𝑡−1
  • 19.
    18 従来のVSLAM (BA-SLAM) • Basicrecipe for BA-SLAM 𝑍0 𝑍1 𝑍2 𝑍𝑡 𝑍𝑡−1 カメラ軌跡 {𝐑𝑗, 𝐭𝑗} 3D地図に対するメンテナンス(「初期化」と「点の追加/削除」) はVSLAMの性能に大きな影響 (職人技が光る部分) →カメラの初期化やPure rotation時に失敗しやすい
  • 20.
    19 従来のVSLAM (BA-SLAM) • Basicrecipe for BA-SLAM ✖ システムが複雑 (3D地図の維持が大変) ✖ Pure rotationに弱い (3D地図の参照が困難なため) → できるだけ3D地図に依存しないカメラの軌跡推定を行えないか? 𝑍0 𝑍1 𝑍2 𝑍𝑡 𝑍𝑡−1 カメラ軌跡 {𝐑𝑗, 𝐭𝑗}
  • 21.
    20 提案手法 • VSLAMのカメラ軌跡推定を2つの問題に分離 1. カメラの回転𝐑𝑗 Rotation Averaging[1] 2. カメラの位置𝐭𝑗 (と3D地図 𝐗) Known Rotation Problem (KRot)[2] 𝐮𝑖,𝑗 [1] A. Eriksson, C. Olsson, F. Kahl, and T.-J. Chin, “Rotation averaging and strong duality,” in CVPR, 2018. [2] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018. 3D地図に依存することなくカメラの回転を求めることが可能に! (従来よりもTracking失敗しにくいシステムに)
  • 22.
    21 提案手法 • VSLAMのカメラ軌跡推定を2つの問題に分離 1. カメラの回転𝐑𝑗 Rotation Averaging[1] 2. カメラの位置𝐭𝑗 (と3D地図 𝐗) Known Rotation Problem (KRot)[2] 𝐮𝑖,𝑗 [おまけ] 本論文の著者の1人であるTat-Jun Chin氏は両問題に対する解法 の論文に関わっており, CVPR2018で採択[1][2](片方はoral) [1] A. Eriksson, C. Olsson, F. Kahl, and T.-J. Chin, “Rotation averaging and strong duality,” in CVPR, 2018. [2] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018.
  • 23.
    • カメラの回転成分{𝐑𝑗}の最適化[1] 22 1. RotationAveraging 2 1 3 4 5 𝐑2 絶対座標 𝐑3 𝐑4 𝐑5 𝐑1 [1] A. Chatterjee and V. Madhav Govindu, “Efficient and robust largescale rotation averaging,” in ICCV, 2013.
  • 24.
    • カメラの回転成分{𝐑𝑗}の最適化[1] 1. 特徴点マッチングより相対的なカメラ回転{𝐑𝑖𝑗}を求める 2. 相対的なカメラ回転{𝐑 𝑖𝑗}から絶対座標系での回転{𝐑𝑗}を求める 23 1. Rotation Averaging 2 1 3 4 5 𝐑2 絶対座標 𝐑3 𝐑4 𝐑5 𝐑1 [1] A. Chatterjee and V. Madhav Govindu, “Efficient and robust largescale rotation averaging,” in ICCV, 2013.
  • 25.
    • カメラの回転成分{𝐑𝑗}の最適化[1] 1. 特徴点マッチングより相対的なカメラ回転{𝐑𝑖𝑗}を求める 2. 相対的なカメラ回転{𝐑 𝑖𝑗}から絶対座標系での回転{𝐑𝑗}を求める 𝐑12 24 1. Rotation Averaging 21. 特徴点マッチングにより基礎行列の計算 2. SVDによる行列分解 𝐱2 T 𝐅12 𝐱1 = 0 𝐄12 = 𝐊2 𝐅12 𝐊1 𝐄12 = 𝐭12 × 𝐑12 特徴点 𝐱1 特徴点 𝐱2 1 3 4 5 [1] A. Chatterjee and V. Madhav Govindu, “Efficient and robust largescale rotation averaging,” in ICCV, 2013.
  • 26.
    25 1. Rotation Averaging •カメラの回転成分{𝐑𝑗}の最適化[1] 1. 特徴点マッチングより相対的なカメラ回転{𝐑 𝑖𝑗}を求める 2. 相対的なカメラ回転{𝐑 𝑖𝑗}から絶対座標系での回転{𝐑𝑗}を求める 絶対座標 min 𝐑1,𝐑2 𝐑12 − 𝐑2 𝐑1 −1 𝐹 = 2 2 sin ∠(𝐑12 𝐑2 𝐑1 −1 −1) 2 𝐑12 2 1 𝐑2 𝐑1 相対座標系の回転は 絶対座標系での 回転で表現可能 𝐑12 2 1 𝐑2 𝐑1 −1 3 4 5 [1] A. Chatterjee and V. Madhav Govindu, “Efficient and robust largescale rotation averaging,” in ICCV, 2013. [2] A. Eriksson, C. Olsson, F. Kahl, and T.-J. Chin, “Rotation averaging and strong duality,” in CVPR, 2018. (Chordal distance[2])
  • 27.
    26 1. Rotation Averaging •カメラの回転成分{𝐑𝑗}の最適化[1] 1. 特徴点マッチングより相対的なカメラ回転{𝐑 𝑖𝑗}を求める 2. 相対的なカメラ回転{𝐑 𝑖𝑗}から絶対座標系での回転{𝐑𝑗}を求める → 各カメラの回転方向{𝑹𝑗}を求めることができた 𝐑12 2 1 𝐑2 𝐑1 絶対座標 3 4 5 𝐑23 𝐑34 𝐑45 𝐑51 𝐑52 𝐑53𝐑14 𝐑24 𝐑13 𝐑3 𝐑4 𝐑5 [1] A. Chatterjee and V. Madhav Govindu, “Efficient and robust largescale rotation averaging,” in ICCV, 2013. カメラ全体に対して最適化
  • 28.
    27 1. Rotation Averaging •カメラの回転成分{𝐑𝑗}の最適化[1] 1. 特徴点マッチングより相対的なカメラ回転{𝐑 𝑖𝑗}を求める 2. 相対的なカメラ回転{𝐑 𝑖𝑗}から絶対座標系での回転{𝐑𝑗}を求める → 各カメラの回転方向{𝑹𝑗}を求めることができた 𝐑12 2 1 𝐑2 𝐑1 絶対座標 3 4 5 𝐑23 𝐑34 𝐑45 𝐑51 𝐑52 𝐑53𝐑14 𝐑24 𝐑13 𝐑3 𝐑4 𝐑5 [1] A. Chatterjee and V. Madhav Govindu, “Efficient and robust largescale rotation averaging,” in ICCV, 2013.
  • 29.
    28 2. Known RotationProblem (KRot) • カメラの回転から, カメラ位置と3D点の最適化[1] – 2Dカメラ画像上に投影し最小化 (Bundle Adjustmentに近い) min 𝐗 𝑖 ,{𝐭 𝑗} max 𝑖,𝑗 𝐮𝑖,𝑗 − 𝑓 𝐗 𝑖 𝐑𝑗, 𝐭𝑗 𝟐 s. t. 𝐑𝑗 (3) 𝐗 𝑖 + 𝐭𝑗 (3) > 0 ∀𝑖, 𝑗 KRot 最大要素の最小化 (𝐿∞最適化) [1] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018. カメラ姿勢 [𝐑𝑗, 𝐭𝑗] 𝒖𝑖,𝑗 3D位置 𝐗 𝑖 投影点 𝑓 𝐗 𝑖 𝐑𝑗, 𝐭𝑗) 𝑍𝑗+1 [𝐑𝑗+1, 𝐭𝑗+1] 𝒖𝑖,𝑗+1 画像 𝑍𝑗
  • 30.
    29 2. Known RotationProblem (KRot) • カメラの回転から, カメラ位置と3D点の最適化[1] – 2Dカメラ画像上に投影し最小化 (Bundle Adjustmentに近い) min 𝐗 𝑖 ,{𝐭 𝑗} max 𝑖,𝑗 𝐮𝑖,𝑗 − 𝑓 𝐗 𝑖 𝐑𝑗, 𝐭𝑗 𝟐 s. t. 𝐑𝑗 (3) 𝐗 𝑖 + 𝐭𝑗 (3) > 0 ∀𝑖, 𝑗 Bundle AdjustmentKRot 2乗誤差の和の最小化 (𝐿2最適化) 最大要素の最小化 (𝐿∞最適化) [1] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018.
  • 31.
    30 2. Known RotationProblem (KRot) • カメラの回転から, カメラ位置と3D点の最適化[1] – 2Dカメラ画像上に投影し最小化 (Bundle Adjustmentに近い) min 𝐗 𝑖 ,{𝐭 𝑗} max 𝑖,𝑗 𝐮𝑖,𝑗 − 𝑓 𝐗 𝑖 𝐑𝑗, 𝐭𝑗 𝟐 s. t. 𝐑𝑗 (3) 𝐗 𝑖 + 𝐭𝑗 (3) > 0 ∀𝑖, 𝑗 Bundle AdjustmentKRot 2乗誤差の和の最小化 (𝐿2最適化) 最大要素の最小化 (𝐿∞最適化) • 再投影誤差の𝑳 𝟐最小化はhard non- convex problem[2] • 良い初期解が必要 • 𝑳∞最適化で書き直すとsingle local optimumを持つようになる[2] • Outlierに対して非常に敏感 (だがL2も同じくらい敏感(?)) 𝐿2関数 𝐿∞関数 [1] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018. [2] F. Kahl and R. Hartley, “Multiple-view geometry under the L∞-norm,” PAMI, vol. 30, no. 9, pp. 1603–1617, 2008.
  • 32.
    31 2. Known RotationProblem (KRot) • カメラの回転から, カメラ位置と3D点の最適化[1] – 以下をどう最適化するか? • Res-Int (Resection-Intersection)[1] min 𝐗 𝑖 ,{𝐭 𝑗} max 𝑖,𝑗 𝐮𝑖,𝑗 − 𝑓 𝐗 𝑖 𝐑𝑗, 𝐭𝑗 𝟐 s. t. 𝐑𝑗 (3) 𝐗 𝑖 + 𝐭𝑗 (3) > 0 ∀𝑖, 𝑗 KRot [1] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018. [2] F. Kahl and R. Hartley, “Multiple-view geometry under the L∞-norm,” PAMI, vol. 30, no. 9, pp. 1603–1617, 2008.
  • 33.
    32 2. Known RotationProblem (KRot) • カメラの回転から, カメラ位置と3D点の最適化[1] – 以下をどう最適化するか? • Res-Int (Resection-Intersection)[1] min 𝐗 𝑖 ,{𝐭 𝑗} max 𝑖,𝑗 𝐮𝑖,𝑗 − 𝑓 𝐗 𝑖 𝐑𝑗, 𝐭𝑗 𝟐 s. t. 𝐑𝑗 (3) 𝐗 𝑖 + 𝐭𝑗 (3) > 0 ∀𝑖, 𝑗 KRot [1] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018. [2] F. Kahl and R. Hartley, “Multiple-view geometry under the L∞-norm,” PAMI, vol. 30, no. 9, pp. 1603–1617, 2008. 𝑓 𝐗 𝑖 𝐑𝑗, 𝐭𝑗 = 𝐑𝑗 (1:2) 𝐗 𝑖 + 𝐭𝑗 (1:2) 𝐑𝑗 (3) 𝐗 𝑖 + 𝐭𝑗 (3) = 𝑓𝐱 𝐳 + 𝑐 𝑥 𝑓𝐲 𝐳 + 𝑐 𝑦 カメラの投影モデル (簡単のため内部パラメータ𝑲 = 𝑰 𝟑×𝟑) 𝑓 = 1 z𝑖 [𝑥𝑖, 𝑦𝑖, 𝑧𝑖] [𝑥𝑖/𝑧𝑖, 𝑦𝑖/𝑧𝑖, 1] 𝑐 𝑥 = 𝑐 𝑦 = 0
  • 34.
    33 2. Known RotationProblem (KRot) • カメラの回転から, カメラ位置と3D点の最適化[1] – 以下をどう最適化するか? • Res-Int (Resection-Intersection)[1] [1] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018. [2] F. Kahl and R. Hartley, “Multiple-view geometry under the L∞-norm,” PAMI, vol. 30, no. 9, pp. 1603–1617, 2008. min 𝐗 𝑖 ,{𝐭 𝑗} max 𝑖,𝑗 𝐮𝑖,𝑗 − 𝐑𝑗 (1:2) 𝐗 𝑖 + 𝐭𝑗 (1:2) 𝐑𝑗 (3) 𝐗 𝑖 + 𝐭𝑗 (3) 𝟐 s. t. 𝐑𝑗 (3) 𝐗 𝑖 + 𝐭𝑗 (3) > 0 ∀𝑖, 𝑗 KRot 𝑓 𝐗 𝑖 𝐑𝑗, 𝐭𝑗 = 𝐑𝑗 (1:2) 𝐗 𝑖 + 𝐭𝑗 (1:2) 𝐑𝑗 (3) 𝐗 𝑖 + 𝐭𝑗 (3) = 𝑓𝐱 𝐳 + 𝑐 𝑥 𝑓𝐲 𝐳 + 𝑐 𝑦 カメラの投影モデル (簡単のため内部パラメータ𝑲 = 𝑰 𝟑×𝟑) 𝑓 = 1 z𝑖 [𝑥𝑖, 𝑦𝑖, 𝑧𝑖] [𝑥𝑖/𝑧𝑖, 𝑦𝑖/𝑧𝑖, 1] 𝑐 𝑥 = 𝑐 𝑦 = 0
  • 35.
    34 2. Known RotationProblem (KRot) • Res-Int (Resection-Intersection)[1] [1] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018. min 𝐗 𝑖 ,{𝐭 𝑗} max 𝑖,𝑗 𝐮𝑖,𝑗 − 𝐑𝑗 (1:2) 𝐗 𝑖 + 𝐭𝑗 (1:2) 𝐑𝑗 (3) 𝐗 𝑖 + 𝐭𝑗 (3) 𝟐 s. t. 𝐑𝑗 (3) 𝐗 𝑖 + 𝐭𝑗 (3) > 0 ∀𝑖, 𝑗 KRot
  • 36.
    35 2. Known RotationProblem (KRot) • Res-Int (Resection-Intersection)[1] [1] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018. min 𝐗 𝑖 ,{𝐭 𝑗} max 𝑖,𝑗 𝐮𝑖,𝑗 − 𝐑𝑗 (1:2) 𝐗 𝑖 + 𝐭𝑗 (1:2) 𝐑𝑗 (3) 𝐗 𝑖 + 𝐭𝑗 (3) 𝟐 s. t. 𝐑𝑗 (3) 𝐗 𝑖 + 𝐭𝑗 (3) > 0 ∀𝑖, 𝑗 KRot min 𝐗 𝑖 max 𝑗 𝐮𝑖,𝑗 − 𝐑𝑗 (1:2) 𝐗 𝑖 + 𝐭𝑗 (1:2) 𝐑𝑗 (3) 𝐗 𝑖 + 𝐭𝑗 (3) 𝟐 s. t. 𝐑𝑗 (3) 𝐗 𝑖 + 𝐭𝑗 (3) > 0 ∀𝑗 min 𝐭 𝑗 max 𝑖 𝐮𝑖,𝑗 − 𝐑𝑗 (1:2) 𝐗 𝑖 + 𝐭𝑗 (1:2) 𝐑𝑗 (3) 𝐗 𝑖 + 𝐭𝑗 (3) 𝟐 s. t. 𝐑𝑗 (3) 𝐗 𝑖 + 𝐭𝑗 (3) > 0 ∀𝑖 Int𝒊 Res𝒋 {𝐭𝑗}を固定 {𝑿𝒊}を固定
  • 37.
    36 2. Known RotationProblem (KRot) • Res-Int (Resection-Intersection)[1] [1] Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018. min 𝐗 𝑖 max 𝑗 𝐮𝑖,𝑗 − 𝐑𝑗 (1:2) 𝐗 𝑖 + 𝐭𝑗 (1:2) 𝐑𝑗 (3) 𝐗 𝑖 + 𝐭𝑗 (3) 𝟐 s. t. 𝐑𝑗 (3) 𝐗 𝑖 + 𝐭𝑗 (3) > 0 ∀𝑗 min 𝐭 𝑗 max 𝑖 𝐮𝑖,𝑗 − 𝐑𝑗 (1:2) 𝐗 𝑖 + 𝐭𝑗 (1:2) 𝐑𝑗 (3) 𝐗 𝑖 + 𝐭𝑗 (3) 𝟐 s. t. 𝐑𝑗 (3) 𝐗 𝑖 + 𝐭𝑗 (3) > 0 ∀𝑖 Int𝒊 Res𝒋 IntとResの交互最適化を高速に解く[1] 大体3秒(画像15枚, 3D点3000個) 𝐮𝑖,𝑗 𝑖 = 1 𝑿𝑖 𝑖 = 1 𝑖 𝑿𝑖 Int 𝑖 𝑿𝑖 𝑖 = 1
  • 38.
  • 39.
  • 40.
  • 41.
    40 実験1 • L-infinity SLAMvs BA-SLAM – MATLABで両アルゴリズムを実装 • Quad-core 2.5GHz Intel core i7 CPU + 16GB of RAM • BAの方はCeres-solver[1]で実装 – Maptek社によって提供されたデータで実験 • 正確なGT付き • 1833 frameで構成され2回loopする映像 (KeyFrameを358枚選択) – 今回VSLAMで必要不可欠なKeyFrame選択などの操作の実装は 行っていない • 単純に各KFに対して最適化を繰り返すような実装 [1] S. Agarwal and K. Mierle, Ceres Solver: Tutorial & Reference, Google Inc.
  • 42.
    41 結果 • カメラの軌跡の位置誤差と回転誤差 – BA-SLAMの方は途中でtrackinglost※を起こしている – 結果としてL-infinity SLAMはBA-SLAMよりも性能が良い カメラ位置誤差(< 0.67 𝑚), 回転誤差(< 0.83°) – L-infinity SLAMで軌跡を求めた後にBAすると結果が悪化 Tracking Lost ※今回Tracking LostはOutlier除去の結果起きている. 各三次元点の位置がカメラから150mより遠くなった場合outlierと見なした
  • 43.
  • 44.
    43 結果 • 三次元地図の復元結果 – カメラ軌跡推定時には300点しか特徴点を使っていないので, KRot[1]で改めて三角測量し直した結果 [1]Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018.
  • 45.
    44 結果 • 最適化の速さの計測 – RotationAveraging vs BA(回転のみ) – 最初のloopまでの時間を計測し比較 – 回転に関してはRotation Averagingの方が高速に最適化可能
  • 46.
    45 実験2 • カメラの大きな回転への耐性 – Smart-phoneで撮影したカメラの回転映像 –ORB-SLAM[1]では初期化すらできないが, L-infinity SLAMでは きちんと復元できた [1] R. Mur-Artal, J. Montiel, and J. Tardos, “ORB-SLAM: a versatile and accurate monocular SLAM system,” IEEE TRO, vol. 31, no. 5, pp.1147–1163, 2015.
  • 47.
    46 まとめ • L-infinity SLAM –新しいVSLAMの最適化フレームワークの提案 – BAをRotation AveragingとKRotに分離することで, 3D地図の 依存なくカメラの回転を求められる 1. 職人技だった3D地図の注意深いメンテナンスが不要に – カメラ初期化や, Pure rotation時のTrackingに強くなった 2. VSLAMのアルゴリズムがシンプルに • 個人的な所感 – VSLAMの細かい要素の作り込みが今後の焦点になりそう • 毎時刻のTrackingやKeyFrame選択をどう行うか? • 遅すぎるLoop Closingをどう扱うべきか? – 新しいVSLAMのフレームワークとして非常に面白い論文
  • 48.
    47 参考資料 • 本論文の著者が関連する論文 – A.Eriksson, C. Olsson, F. Kahl, and T.-J. Chin, “Rotation averaging and strong duality,” in CVPR, 2018. – Q. Zhang, T.-J. Chin, and H. M. Le, “A fast resection-intersection method for the known rotation problem,” in CVPR, 2018. • Rotation Averagingの実装に採用した論文 – A. Chatterjee and V. Madhav Govindu, “Efficient and robust largescale rotation averaging,” in ICCV, 2013. • KRot (Loop Closing版, 詳細は論文へ)でベースにしていた論文 – K. Sim and R. Hartley, “Recovering camera motion using L∞ minimization,” in CVPR, 2006, pp. 1230–1237. • 𝑳∞-normを使った定式化関連 – F. Kahl and R. Hartley, “Multiple-view geometry under the L∞-norm,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 30, no. 9, pp. 1603–1617, 2008. – C. Olsson, A. Eriksson, and F. Kahl, “Efficient optimization for 𝐿∞- problems using pseudoconvexity,” in ICCV, 2007.