21
Sparse Bundle Adjustment for Dense Data Kurt Konolige Willow Garage, Stanford CS

Sparse Bundle Adjustment for Dense Data · Sparse Bundle Adjustment for Dense Data ... Sparse Surface Adjustment ... Dense surface methods have difficulty with “adjustment” after

  • Upload
    others

  • View
    24

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sparse Bundle Adjustment for Dense Data · Sparse Bundle Adjustment for Dense Data ... Sparse Surface Adjustment ... Dense surface methods have difficulty with “adjustment” after

Sparse Bundle Adjustment for Dense Data

Kurt Konolige

Willow Garage, Stanford CS

Page 2: Sparse Bundle Adjustment for Dense Data · Sparse Bundle Adjustment for Dense Data ... Sparse Surface Adjustment ... Dense surface methods have difficulty with “adjustment” after

Bundle Adjustment

Page 3: Sparse Bundle Adjustment for Dense Data · Sparse Bundle Adjustment for Dense Data ... Sparse Surface Adjustment ... Dense surface methods have difficulty with “adjustment” after

𝑝1 𝑝2

𝑞2 … 𝑞3 𝑞1

𝑝𝑟𝑗 𝑝𝑟𝑗 𝑝𝑟𝑗 𝑝𝑟𝑗 𝑝𝑟𝑗 𝑝𝑟𝑗

𝑒𝑘 = 𝑝𝑟𝑗𝑘(𝑝𝑖 , 𝑞𝑗) − 𝑧 𝑘

Minimize sum of squared error

Page 4: Sparse Bundle Adjustment for Dense Data · Sparse Bundle Adjustment for Dense Data ... Sparse Surface Adjustment ... Dense surface methods have difficulty with “adjustment” after

Photo tourism [Snavely, Seitz, Szeliski 2006]

Large nonlinear estimation problem: Bundle Adjustment

Thousands of camera poses, millions of points

Page 5: Sparse Bundle Adjustment for Dense Data · Sparse Bundle Adjustment for Dense Data ... Sparse Surface Adjustment ... Dense surface methods have difficulty with “adjustment” after

Sparse Bundle Adjustment

𝑒𝑘 = 𝑧𝑘(𝑥𝑖 , 𝑥𝑗) − 𝑧 𝑘 Error Equation

𝑱𝑇𝑱𝒙 = 𝑱𝑇𝒆 Normal Equation

𝐽𝑘 =𝜕𝑒𝑘𝜕𝑥 𝑥 Jacobians

i

i

j

j

Lourakis and Argyros [TR 2004] Konolige [BMVC 2010] Jeong et al. [CVPR 2010]

1 10 100 1000

Jeong

Konolige

LA

Time to convergence, seconds

2,010,363 vars, 2,857,277 constraints

Page 6: Sparse Bundle Adjustment for Dense Data · Sparse Bundle Adjustment for Dense Data ... Sparse Surface Adjustment ... Dense surface methods have difficulty with “adjustment” after

[Gutmann and Konolige CIRA 1999]

Page 7: Sparse Bundle Adjustment for Dense Data · Sparse Bundle Adjustment for Dense Data ... Sparse Surface Adjustment ... Dense surface methods have difficulty with “adjustment” after

g2o: A General Framework for Graph Optimization Kummerle, Grisetti, Strasdat, Konolige, Burgard [ICRA 2011] Open Source!

Page 8: Sparse Bundle Adjustment for Dense Data · Sparse Bundle Adjustment for Dense Data ... Sparse Surface Adjustment ... Dense surface methods have difficulty with “adjustment” after

Issues

• Growth of dataset

• How to incorporate ICP for dense depth

• How to set up a "surface" database

Page 9: Sparse Bundle Adjustment for Dense Data · Sparse Bundle Adjustment for Dense Data ... Sparse Surface Adjustment ... Dense surface methods have difficulty with “adjustment” after

Hauke Strasdat et al., ICCV 2011

Page 10: Sparse Bundle Adjustment for Dense Data · Sparse Bundle Adjustment for Dense Data ... Sparse Surface Adjustment ... Dense surface methods have difficulty with “adjustment” after

Hauke Strasdat et al., ICCV 2011

Page 11: Sparse Bundle Adjustment for Dense Data · Sparse Bundle Adjustment for Dense Data ... Sparse Surface Adjustment ... Dense surface methods have difficulty with “adjustment” after

Generalized ICP [Segal et al. 2005]

+ Matching of neighbors

T d

Page 12: Sparse Bundle Adjustment for Dense Data · Sparse Bundle Adjustment for Dense Data ... Sparse Surface Adjustment ... Dense surface methods have difficulty with “adjustment” after

𝑝1 𝑝2 ℎ

𝑒𝑘 = ℎ𝑘(𝑝𝑖 , 𝑝𝑗) − 𝑧 𝑘

Page 13: Sparse Bundle Adjustment for Dense Data · Sparse Bundle Adjustment for Dense Data ... Sparse Surface Adjustment ... Dense surface methods have difficulty with “adjustment” after
Page 14: Sparse Bundle Adjustment for Dense Data · Sparse Bundle Adjustment for Dense Data ... Sparse Surface Adjustment ... Dense surface methods have difficulty with “adjustment” after

𝑝1 𝑝2

𝑞2

𝑓 𝑝1, 𝑝2, 𝑞1, 𝑞2, 𝑞3, … = 𝑝𝑟𝑗𝑖 𝑝1, 𝑞𝑖 𝑝𝑟𝑗𝑖 𝑝2, 𝑞𝑖 𝑖𝑐𝑝𝑖 𝑝1, 𝑝2𝑖𝑖

… 𝑞3 𝑞1

𝑝𝑟𝑗 𝑝𝑟𝑗 𝑝𝑟𝑗 𝑝𝑟𝑗 𝑝𝑟𝑗 𝑝𝑟𝑗

𝑖𝑐𝑝

𝑖𝑐𝑝

𝑖𝑐𝑝

Page 15: Sparse Bundle Adjustment for Dense Data · Sparse Bundle Adjustment for Dense Data ... Sparse Surface Adjustment ... Dense surface methods have difficulty with “adjustment” after

Plane-plane ICP Point-plane ICP

Visual Features and ICP

ICP & Visual Features†

Global BA

• Incremental pairwise

alignment;

• Global optimization performed with all the

accumulated constraints;

• 72 nodes, 77899 edges => 346ms

Visual Features†

only

Timing Performance

Based on 823

pairwise alignment

tests ӿ.

Results

ӿ GICP is an open-source implementation of plane-to-plane generalized ICP

(Segal et al. “Generalized-ICP”, 2009)

† BRIEF features from FAST keypoints.

Combined ICP and Visual Features [Fioraio and Konolige 2011]

Page 16: Sparse Bundle Adjustment for Dense Data · Sparse Bundle Adjustment for Dense Data ... Sparse Surface Adjustment ... Dense surface methods have difficulty with “adjustment” after
Page 17: Sparse Bundle Adjustment for Dense Data · Sparse Bundle Adjustment for Dense Data ... Sparse Surface Adjustment ... Dense surface methods have difficulty with “adjustment” after

𝑝1 𝑝2

𝑞2 … 𝑞3 𝑞1

𝑝𝑟𝑗

𝑟𝑒𝑔 𝑟𝑒𝑔

𝑝𝑟𝑗 𝑝𝑟𝑗 𝑝𝑟𝑗 𝑝𝑟𝑗

Page 18: Sparse Bundle Adjustment for Dense Data · Sparse Bundle Adjustment for Dense Data ... Sparse Surface Adjustment ... Dense surface methods have difficulty with “adjustment” after

Sparse Surface Adjustment [Ruhnke et al. 2011]

+ Matching of neighbors

T

𝑒𝑚𝑒𝑎𝑠

𝑒𝑠𝑢𝑟𝑓

M M

Page 19: Sparse Bundle Adjustment for Dense Data · Sparse Bundle Adjustment for Dense Data ... Sparse Surface Adjustment ... Dense surface methods have difficulty with “adjustment” after
Page 20: Sparse Bundle Adjustment for Dense Data · Sparse Bundle Adjustment for Dense Data ... Sparse Surface Adjustment ... Dense surface methods have difficulty with “adjustment” after

Relation to Dense Methods

Dense tracking – stabilizes the front end [ESM, Comport et al. 2010, DTAM]

Dense surface methods have difficulty with “adjustment” after

loop closure

ICP bundle adjustment doesn’t make surfaces first-class objects

Adding in visual features

Page 21: Sparse Bundle Adjustment for Dense Data · Sparse Bundle Adjustment for Dense Data ... Sparse Surface Adjustment ... Dense surface methods have difficulty with “adjustment” after

Sparse Surface Patch Adjustment

T

𝑒𝑚𝑒𝑎𝑠

M

𝑒𝑚𝑒𝑎𝑠