Visual SLAM for Mobile
Instructor - Simon Lucey
16-623 - Designing Computer Vision Apps
Visual SLAM for Mobile Instructor - Simon Lucey 16-623 - Designing - - PowerPoint PPT Presentation
Visual SLAM for Mobile Instructor - Simon Lucey 16-623 - Designing Computer Vision Apps Example of SLAM for AR Taken from: H. Liu et al. Robust Keyframe-based Monocular SLAM for Augmented Reality, ISMAR 2016. Example of SLAM for AR
Instructor - Simon Lucey
16-623 - Designing Computer Vision Apps
Taken from: H. Liu et al. “Robust Keyframe-based Monocular SLAM for Augmented Reality”, ISMAR 2016.
Taken from: H. Liu et al. “Robust Keyframe-based Monocular SLAM for Augmented Reality”, ISMAR 2016.
Taken from: H. Liu et al. “Robust Keyframe-based Monocular SLAM for Augmented Reality”, ISMAR 2016.
The cathedral dataset:
[Ωi, τ i]
480 × (3 + 3) = 2880
91178 × 3 = 273543
Adapted from: Optimization Methods in Computer Vision. Anders Eriksson
Start with pair of images taken from slightly different viewpoints
Find features using a corner detection algorithm
Match features using a greedy algorithm
Fit fundamental matrix using robust algorithm such as RANSAC
Find matching points that agree with the fundamental matrix
Euclidean Group - SE(3).
related to the much broader topic of Lie Algebra.
1994.
“Sophus Lie”
θ
related to the much broader topic of Lie Algebra.
1994.
“Sophus Lie”
θ ∈ SE(3)
i=1
related to the much broader topic of Lie Algebra.
1994.
“Sophus Lie”
θ ∈ SE(3)
i=1
n
why not additive??
n
n
∆θ,∆w F
f=1 N
n=1
n − π(wn; θf) − Jf n
2
x ← 2D projection
F ← no. of frames
π ← projection function N ← no. of points
w ← 3D point
“visibility matrix”
Υ = ρ1
1
. . . ρF
1
. . . ... . . . ρ1
N
. . . ρF
N
n
∆θ,∆w F
f=1 N
n=1
n||xf n − π(wn; θf) − Jf n
2
x ← 2D projection
F ← no. of frames
π ← projection function N ← no. of points
w ← 3D point
𝜖ℎ𝑗 𝜖Θ
Θ
ℎ𝑗 (Θ )
Θ ℎ𝑗 Θ − 𝑨 2 𝑗 𝜄 𝐵𝐵 − 𝑐 2
poses landmarks
Θ 𝑞 𝑨 Θ 𝑨∈𝑎
e nt n
∆θ,∆w ||b − A
2
linear solvers such as,
algorithm.
𝜖ℎ𝑗 𝜖Θ
Θ
ℎ𝑗 (Θ )
Θ ℎ𝑗 Θ − 𝑨 2 𝑗 𝜄 𝐵𝐵 − 𝑐 2
poses landmarks
Θ 𝑞 𝑨 Θ 𝑨∈𝑎
e nt n
∆θ,∆w ||b − A
2
2FN
6F + 3N
linear solvers such as,
algorithm.
18
s.t. F : RN → RM
Step 1: Step 2:
keep applying steps until converges.
“Carl Friedrich Gauss” “Isaac Newton”
y ||x − F(y)||2 2
arg min
∆y ||x − F(y) − ∂F(y)
∂yT ∆y||2
2
y → y + ∆y ∆y
18
s.t. F : RN → RM
Step 1: Step 2:
keep applying steps until converges.
“Carl Friedrich Gauss” “Isaac Newton”
y ||x − F(y)||2 2
arg min
∆y ||x − F(y) − ∂F(y)
∂yT ∆y||2
2
y → y + ∆y ∆y
“Is the update additive?”
Bundle Adjustment after every new frame
F
f=1 N
n=1
n − π(wn; θf)||2 2
w,θ
x ← 2D projection
F ← no. of frames
π ← projection function N ← no. of points
w ← 3D point
doing inference on a Markov Random Field (MRF).
Computing, vol. 30, no. 2, pp. 65–77, 2012. .
3
1
θ1 θ2 θ3 θ4
w3 w4 w5 w6
ρ
“edges based
filter - such as an Extended Kalman Filter (EKF).
very little information.
2 3 1
x x2 x3 x 4 x5 x 6
1
T1 T2 T3 T0
θ4
w3 w4 w5 w6
θ1 θ2 θ3
Computing, vol. 30, no. 2, pp. 65–77, 2012. .
“marginalizing out previous poses also results in unwanted direct connections between 3D points”
– –
when the device stops moving).
scene distance, 3D points will exhibit large uncertainty.
Taken from D. Scaramuzza “Tutorial on Visual Odometry”.
Mapping (PTAM) algorithm.
6 1
x x2 x3 x 4 x5 x 6 T1 T2 T3 T0
θ4
w3 w4 w5 w6 θ2 θ3
θ1
2007.
Computing, vol. 30, no. 2, pp. 65–77, 2012. .
“remove all but a small subset of keyframes”
– –
average uncertainty of the 3D points decreases below a certain threshold. The selected frames are called keyframes.
– –
average-depth keyframe distance > threshold (~10-20 %)
Taken from D. Scaramuzza “Tutorial on Visual Odometry”.
– –
[Nister’04, PTAM’07, LIBVISO’08, LSD SLAM’14 SVO’14, ORB SLAM’15]
Keyframe 1 Keyframe 2 Initial pointcloud New triangulated points Current frame New keyframe
Taken from D. Scaramuzza “Tutorial on Visual Odometry”.
separation of the camera tracking ( ) and map estimation ( ) tasks.
thread in real-time.
in real-time) allowing for bundle adjustment.
visual SLAM algorithms (e.g. ORB SLAM).
θ w
Monocular SLAM System” IEEE Trans. Robotics 2015.
Monocular SLAM System” IEEE Trans. Robotics 2015.
“Thread 1 - Visual Odometry” “Thread 2 - Local BA”
“visibility matrix”
Υ = ρ1
1
. . . ρF
1
. . . ... . . . ρ1
N
. . . ρF
N
“visibility matrix”
Υ = ρ1
1
. . . ρF
1
. . . ... . . . ρ1
N
. . . ρF
N
𝜖ℎ𝑗 𝜖Θ
Θ
ℎ𝑗 (Θ )
Θ ℎ𝑗 Θ − 𝑨 2 𝑗 𝜄 𝐵𝐵 − 𝑐 2
poses landmarks
Θ 𝑞 𝑨 Θ 𝑨∈𝑎
e nt n
∆θ,∆w ||b − A
2
2FN
6F + 3N
Factorization.
Solving a growing system:
– R factor from previous step – How do we add new measurements?
Key idea:
– Append to existing matrix factorization – “Repair” using Givens rotations
New measurements ->
sequentially (as a new frame arrives) and in real time.
𝐽𝑙−1 𝐽𝑙
“An Invitation to 3D Vision”, Ma,
It It−1
Taken from D. Scaramuzza “Tutorial on Visual Odometry”.
by Hans Moraveck PhD thesis (NASA/JPL) for Mars rovers using one sliding camera (sliding stereo).
JPL in preparation of 2004 Mars mission.
Spirit and Opportunity
Nister et al. The term VO became popular.
Taken from D. Scaramuzza “Tutorial on Visual Odometry”.
by Hans Moraveck PhD thesis (NASA/JPL) for Mars rovers using one sliding camera (sliding stereo).
JPL in preparation of 2004 Mars mission.
Spirit and Opportunity
Nister et al. The term VO became popular.
– – Robotics and Perception Group - rpg.ifi.uzh.ch
from Matthies, Olson, etc. from JPL)
Taken from D. Scaramuzza “Tutorial on Visual Odometry”.
the trajectory.
the trajectory and of the map.
SLAM.
depends on the tradeoff between performance and consistency, and simplicity in implementation.
performance, without the need to keep track of all the previous history of the
– –
Image courtesy from [Clemente, RSS’07]
– –
Visual SLAM
Image courtesy from [Clemente, RSS’07]
Taken from D. Scaramuzza “Tutorial on Visual Odometry”.
– –
SFM VSLAM VO
Taken from D. Scaramuzza “Tutorial on Visual Odometry”.
between the current camera images and past camera images.
(GIST descriptors) or local image descriptors (e.g., ORB features).
template image in a database of billion images (image retrieval).
– –
Lopez’12
First observation Second observation after a loop
Taken from D. Scaramuzza “Tutorial on Visual Odometry”.
Monocular SLAM System” IEEE Trans. Robotics 2015.
“Thread 1 - Visual Odometry” “Thread 2 - Local BA”
Monocular SLAM System” IEEE Trans. Robotics 2015.
“Thread 1 - Visual Odometry” “Thread 2 - Local BA” “Thread 3 - Loop Closure”
Monocular SLAM System” IEEE Trans. Robotics 2015.
Taken from: Mur-Artal, Raul, J. M. M. Montiel, and Juan D. Tardós. "Orb-slam: a versatile and accurate monocular slam system." IEEE Transactions on Robotics 31.5 (2015): 1147-1163.
Taken from: Mur-Artal, Raul, J. M. M. Montiel, and Juan D. Tardós. "Orb-slam: a versatile and accurate monocular slam system." IEEE Transactions on Robotics 31.5 (2015): 1147-1163.