Registration for Robotics

advertisement
Registration for Robotics
Patrick Mihelich
Kurt Konolige
Willow Garage
Stanford University
JD Chen
James Bowman
Helen Oleynikova
Freiburg TORO group:
Giorgio Grisetti
Cyrill Stachness
Rainer Kummerle
Outline
•
•
•
•
•
•
•
Applications
Overview of Registration
Front end and image matching
Visual Odometry
Place recognition
Global SBA
Extensions
Applications of Registration
• Photo tourism [Snavely, Seitz, Szeliski 2006]
Applications of Registration
• Object Modeling [Lovi et al. 2010]
• [Newcombe and Davison 2010]
Applications of Registration
• Face Tracking [WATSON: Morency 2003]
Applications of Registration
• Visual
Odometry
[Willow Garage]
Applications of Registration
• Visual
SLAM
[Willow Garage]
Outline
•
•
•
•
•
•
•
Applications
Overview of Registration
Front end, image matching
Visual Odometry
Place recognition
Global SBA
Extensions
Registration Elements
Incremental
Global
Extract keypoints
Compute features
Add new view to map
Match against local views
Match against global views
[Place recognition]
Estimate pose
Estimate pose
Optimize
Optimize
Mapping Systems
Map type
MonoSLAM
[Davison 2003]
World points
Parallel Tracking and Mapping Views and world
[Klein and Murray 2007]
View-based Maps
[Konolige et al. 2009]
points
Views [and
implicit world
points]
Map Representations
Map type
World points
Views and world
points
Views [and
implicit world
points]
Covariance Matrix over points
p0 p1 p2 …
p0
p1
p2
…
Extended Kalman Filter update
MonoSLAM
Map Representations
Map type
World points
Views and world
points
Views [and
implicit world
points]
Information matrix over views
and world points
c0 c1 c2 …
p0 p1 p2 …
c0
c1
c2
…
p0
p1
p2
…
Nonlinear least squares update
HDx = -g
Parallel Tracking and Mapping
Map Representations
Map type
World points
Views and world
points
Views [and
implicit world
points]
Information matrix over views
c0 c1 c2 …
c0
c1
c2
…
Nonlinear least squares update
HDx = -g
View-based Maps
Comparison of Mapping Methods
Map type
World points
Views and world
points
Views [and
implicit world
points]
Useful in small spaces
- World points for global matching
- World point Covar matrix update
Not as accurate [Strasdat et al. 2010]
Useful in small spaces
- World points for global matching
- View and point Info matrix update
Highly accurate
Useful in larger spaces
- View matching
- View Info matrix update
Not as accurate
Outline
•
•
•
•
•
•
•
Applications
Overview of Registration
Front end and image matching
Visual Odometry
Place recognition
Global SBA
Extensions
Interest points
• FAST [Rosten and Drummond 2006]
• Adaptive threshold
• Harris
• Gridding for spatial
diversity
• SIFT [Lowe 1999]
• SUSAN, CenSure, MSER, …
Feature matching
• SIFT / SURF features
• Tracking with motion model
• Planar patches
• Windowed brute-force
• Random-tree signatures [Calonder et al. 2009]
• KD tree nearest-neighbor
• …
930 features 354 matched
183 inliers
Outlier detection and pose estimation
• RANSAC to estimate pose
– 3 points for stereo (3D-3D)
– 3-point PnP for monocular (2D-3D)
• Outlier rejection
• Refinement
– Least-squares
– Reprojection
error
• Scavenging
930 features 354 matched
183 inliers
Outline
•
•
•
•
•
•
•
Applications
Overview of Registration
Front end and image matching
Visual Odometry
Place recognition
Global SBA
Extensions
Visual Odometry – Sliding Window
• 2-view pose estimates are unreliable
– Triangulation is narrow-baseline
• Multi-view estimates are more accurate
– Triangulation is wide-baseline
– More points, wider baseline => more accuracy
• Keyframes
– Many close-together views don’t add much
– Too far apart leads to low inlier count
• Sliding window of views
– Track points as long as possible
– ~20 – 40 keyframes in window
Visual Odometry – Bundle Adjustment
Measurement model:
Dz  z  z (x)
For Gaussian distributions (W 1 is covariance)
  log p( z | x)    logexp(
i
i
1
2
DziTWi Dzi )   DziTWi Dzi
i
i
[Gauss-Newton /
T
T
(
J
WJ
)

x


J
WDz
Normal]
J
z
x
H
c0 c1 c2 …
Sparseness of H
20 camera views
5000 features
H is (20x6 + 5000x3)2
c0
c1
c2
…
p0
p1
p2
…
p0 p1 p2 …
Visual Odometry examples
[courtesy Andrew Comport, INRIA]
•
Outdoor sequence
in Versailles
•
1 m stereo baseline,
narrow FOV
•
~400 m sequence
•
Average frame
distance: 0.6 m
•
Max frame distance:
1.1 m
Visual Odometry examples
Indoor Willow
Garage sequence
[courtesy Andrew Comport, INRIA]
10 cm stereo, wide
FOV
~100 m sequence
Average frame
distance: 0.3 m
26
Outline
•
•
•
•
•
•
•
Applications
Overview of Registration
Front end and image matching
Visual Odometry
Place recognition
Global SBA
Extensions
Place Recognition
• K-nearest neighbor feature
matching across database
of images
test
DB
– KD tree
[Lowe 1999,
Eade and Drummond 2008,
Williams et al. 2007]
• Bag-of-words
test
– visual vocabulary
[Stewenius and Nister 2006,
Cummins and Newman 2008]
DB
Place Recognition: Vocabulary Trees
[Nister and Stewenius CVPR06]
- “Bag of words” retrieval
- Vocab tree created offline
- For recognition:
- Image keypoints extracted
- Tree encodes approximate NN
search
- Inverted index of images at leaves
[Cummins and Newman ICRA07
Cullmer et al. ACRA08
Fraundorfer et al. IROS07]
[Image from Nister and Stewenius CVPR06]
Place Recognition: Vocabulary Trees
Performance on Indoor dataset
View-based Maps [Konolige et al. 2009]
Performance on Indoor dataset
View-based Maps [Konolige et al. 2009]
Performance on Indoor dataset
Trajectory synthesis
Outline
•
•
•
•
•
•
•
Applications
Overview of Registration
Front end and image matching
Visual Odometry
Place recognition
Global SBA
Extensions
Comparison of Mapping Methods
Map type
World points
Views and world
points
Views [and
implicit world
points]
Useful in small spaces
- World points for global matching
- World point Covar matrix update
Not as accurate [xxx and Davison 2010]
Useful in small spaces
- World points for global matching
- View and point Info matrix update
Highly accurate
Useful in larger spaces
- View matching
- View Info matrix update
Not as accurate
Fast SBA
[Konolige BMVC 2010, Jeong et al. CVPR 2010]
• Take advantage of sparse secondary structure of Hessian
• Use fast linear solvers
– Davis’ CHOLMOD
– Block preconditioned conjugate gradient
Fast SBA in VSLAM
Fast SBA in Reconstruction
Open-Source in ROS
• sba package for fast SBA
• frame_common and posest for front-end
and pose estimation
• vocabulary_tree for place recognition
• vslam_system for Visual Odometry and
VSLAM
Download