The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks...

23
The Art of Solving Minimal Problems Tricks session Laurent Kneip Research School of Engineering Centre of Excellence for Robotic Vision The Australian National University 11th December, 2015

Transcript of The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks...

Page 1: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

The Art of Solving Minimal ProblemsTricks session

Laurent Kneip

Research School of EngineeringCentre of Excellence for Robotic Vision

The Australian National University

11th December, 2015

Page 2: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

Tricks sessionWarm startIdeal case assumption

Warm startMinimal Relative Rotation with Central Camera

L. Kneip, R. Siegwart, and M. Pollefeys. Finding the Exact Rotation Between Two Images Independently of the Translation.ECCV, Florence, Italy, 2012.

Solving Minimal Problems – http://cmp.felk.cvut.cz/minimal-iccv-2015/index.html 2/12

Page 3: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

Tricks sessionWarm startIdeal case assumption

Minimal Relative Rotation with Central CameraEpipolar Constraint

Pure translation: epipolar plane normals coplanar

Goal: constrain rotation

Solving Minimal Problems – http://cmp.felk.cvut.cz/minimal-iccv-2015/index.html 3/12

Page 4: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

Tricks sessionWarm startIdeal case assumption

Minimal Relative Rotation with Central CameraEpipolar Constraint

Pure translation: epipolar plane normals coplanar

Goal: constrain rotation

Solving Minimal Problems – http://cmp.felk.cvut.cz/minimal-iccv-2015/index.html 3/12

Page 5: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

Tricks sessionWarm startIdeal case assumption

Minimal Relative Rotation with Central CameraEpipolar Constraint

Pure translation: epipolar plane normals coplanar

Goal: constrain rotation

Solving Minimal Problems – http://cmp.felk.cvut.cz/minimal-iccv-2015/index.html 3/12

Page 6: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

Tricks sessionWarm startIdeal case assumption

Minimal Relative Rotation with Central CameraEpipolar Constraint

Pure translation: epipolar plane normals coplanar

Goal: constrain rotation

Solving Minimal Problems – http://cmp.felk.cvut.cz/minimal-iccv-2015/index.html 3/12

Page 7: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

Tricks sessionWarm startIdeal case assumption

Minimal Relative Rotation with Central CameraEpipolar Constraint

Pure translation: epipolar plane normals coplanar

Goal: constrain rotation

Solving Minimal Problems – http://cmp.felk.cvut.cz/minimal-iccv-2015/index.html 3/12

Page 8: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

Tricks sessionWarm startIdeal case assumption

Minimal Relative Rotation with Central CameraEpipolar Constraint

Pure translation: epipolar plane normals coplanar

Goal: constrain rotation

Solving Minimal Problems – http://cmp.felk.cvut.cz/minimal-iccv-2015/index.html 3/12

Page 9: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

Tricks sessionWarm startIdeal case assumption

Minimal Relative Rotation with Central CameraEpipolar Constraint

Pure translation: epipolar plane normals coplanar

Goal: constrain rotation

Solving Minimal Problems – http://cmp.felk.cvut.cz/minimal-iccv-2015/index.html 3/12

Page 10: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

Tricks sessionWarm startIdeal case assumption

Minimal Relative Rotation with Central CameraTranslation Independent Computation of Rotation

Idea: Unrotate f′i such that ni coplanar

Epipolar plane normal: ni = fi ×Rcc′f′i

Coplanarity given if three ni linearly dependentAnalyze determinant of 3×3 matrix with three ni

3 DoF⇒ 3 constraints needed

Formulation 2: Minimal relative rotation|(f1×Rc

c′f′1) (f2×Rc

c′f′2) (f3×Rc

c′f′3)|= 0

|(f1×Rcc′f′1) (f2×Rc

c′f′2) (f4×Rc

c′f′4)|= 0

|(f1×Rcc′f′1) (f2×Rc

c′f′2) (f5×Rc

c′f′5)|= 0

Solving Grobner basis⇒ 20 rotation matrices8000 code lines

Solving Minimal Problems – http://cmp.felk.cvut.cz/minimal-iccv-2015/index.html 4/12

Page 11: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

Tricks sessionWarm startIdeal case assumption

Minimal Relative Rotation with Central CameraTranslation Independent Computation of Rotation

Idea: Unrotate f′i such that ni coplanar

Epipolar plane normal: ni = fi ×Rcc′f′i

Coplanarity given if three ni linearly dependentAnalyze determinant of 3×3 matrix with three ni

3 DoF⇒ 3 constraints needed

Formulation 2: Minimal relative rotation|(f1×Rc

c′f′1) (f2×Rc

c′f′2) (f3×Rc

c′f′3)|= 0

|(f1×Rcc′f′1) (f2×Rc

c′f′2) (f4×Rc

c′f′4)|= 0

|(f1×Rcc′f′1) (f2×Rc

c′f′2) (f5×Rc

c′f′5)|= 0

Solving Grobner basis⇒ 20 rotation matrices8000 code lines

Solving Minimal Problems – http://cmp.felk.cvut.cz/minimal-iccv-2015/index.html 4/12

Page 12: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

Tricks sessionWarm startIdeal case assumption

Minimal Relative Rotation with Central CameraTranslation Independent Computation of Rotation

Idea: Unrotate f′i such that ni coplanar

Epipolar plane normal: ni = fi ×Rcc′f′i

Coplanarity given if three ni linearly dependentAnalyze determinant of 3×3 matrix with three ni

3 DoF⇒ 3 constraints needed

Formulation 2: Minimal relative rotation|(f1×Rc

c′f′1) (f2×Rc

c′f′2) (f3×Rc

c′f′3)|= 0

|(f1×Rcc′f′1) (f2×Rc

c′f′2) (f4×Rc

c′f′4)|= 0

|(f1×Rcc′f′1) (f2×Rc

c′f′2) (f5×Rc

c′f′5)|= 0

Solving Grobner basis⇒ 20 rotation matrices8000 code lines

Solving Minimal Problems – http://cmp.felk.cvut.cz/minimal-iccv-2015/index.html 4/12

Page 13: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

Tricks sessionWarm startIdeal case assumption

Minimal Relative Rotation with Central CameraTranslation Independent Computation of Rotation

Idea: Unrotate f′i such that ni coplanar

Epipolar plane normal: ni = fi ×Rcc′f′i

Coplanarity given if three ni linearly dependentAnalyze determinant of 3×3 matrix with three ni

3 DoF⇒ 3 constraints needed

Formulation 2: Minimal relative rotation|(f1×Rc

c′f′1) (f2×Rc

c′f′2) (f3×Rc

c′f′3)|= 0

|(f1×Rcc′f′1) (f2×Rc

c′f′2) (f4×Rc

c′f′4)|= 0

|(f1×Rcc′f′1) (f2×Rc

c′f′2) (f5×Rc

c′f′5)|= 0

Solving Grobner basis⇒ 20 rotation matrices8000 code lines

Solving Minimal Problems – http://cmp.felk.cvut.cz/minimal-iccv-2015/index.html 4/12

Page 14: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

Tricks sessionWarm startIdeal case assumption

Minimal Relative Rotation with Central CameraTranslation Independent Computation of Rotation

Idea: Unrotate f′i such that ni coplanar

Epipolar plane normal: ni = fi ×Rcc′f′i

Coplanarity given if three ni linearly dependentAnalyze determinant of 3×3 matrix with three ni

3 DoF⇒ 3 constraints needed

Formulation 2: Minimal relative rotation|(f1×Rc

c′f′1) (f2×Rc

c′f′2) (f3×Rc

c′f′3)|= 0

|(f1×Rcc′f′1) (f2×Rc

c′f′2) (f4×Rc

c′f′4)|= 0

|(f1×Rcc′f′1) (f2×Rc

c′f′2) (f5×Rc

c′f′5)|= 0

Solving Grobner basis⇒ 20 rotation matrices8000 code lines

Solving Minimal Problems – http://cmp.felk.cvut.cz/minimal-iccv-2015/index.html 4/12

Page 15: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

Tricks sessionWarm startIdeal case assumption

Minimal Relative Rotation with Central CameraTranslation Independent Computation of Rotation

Idea: Unrotate f′i such that ni coplanar

Epipolar plane normal: ni = fi ×Rcc′f′i

Coplanarity given if three ni linearly dependentAnalyze determinant of 3×3 matrix with three ni

3 DoF⇒ 3 constraints needed

Formulation 2: Minimal relative rotation|(f1×Rc

c′f′1) (f2×Rc

c′f′2) (f3×Rc

c′f′3)|= 0

|(f1×Rcc′f′1) (f2×Rc

c′f′2) (f4×Rc

c′f′4)|= 0

|(f1×Rcc′f′1) (f2×Rc

c′f′2) (f5×Rc

c′f′5)|= 0

Solving Grobner basis⇒ 20 rotation matrices8000 code lines

Solving Minimal Problems – http://cmp.felk.cvut.cz/minimal-iccv-2015/index.html 4/12

Page 16: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

Tricks sessionWarm startIdeal case assumption

Minimal Relative Rotation with Central CameraWarm Start

A first solution:Standard Parametrization:Rc

c′ =(c1 c2 c3

)=

r1r2r3

=r11 r12 r13r21 r22 r23r31 r32 r33

Equations:

|(f1 ×Rcc′

f′1) (f2 ×Rcc′

f′2) (f3 ×Rcc′

f′3)| = 0|(f1 ×Rc

c′f′1) (f2 ×Rc

c′f′2) (f4 ×Rc

c′f′4)| = 0

|(f1 ×Rcc′

f′1) (f2 ×Rcc′

f′2) (f5 ×Rcc′

f′5)| = 0|(f1 ×Rc

c′f′1) (f3 ×Rc

c′f′3) (f4 ×Rc

c′f′4)| = 0

|(f1 ×Rcc′

f′1) (f3 ×Rcc′

f′3) (f5 ×Rcc′

f′5)| = 0|(f1 ×Rc

c′f′1) (f4 ×Rc

c′f′4) (f5 ×Rc

c′f′5)| = 0

|(f2 ×Rcc′

f′2) (f3 ×Rcc′

f′3) (f4 ×Rcc′

f′4)| = 0|(f2 ×Rc

c′f′2) (f3 ×Rc

c′f′3) (f5 ×Rc

c′f′5)| = 0

|(f2 ×Rcc′

f′2) (f4 ×Rcc′

f′4) (f5 ×Rcc′

f′5)| = 0|(f3 ×Rc

c′f′3) (f4 ×Rc

c′f′4) (f5 ×Rc

c′f′5)| = 0

r1Rc Tc′

=(1 0 0

)r2

(rT2 rT

3

)=

(1 0

)r3rT

3 = 1

Solving Minimal Problems – http://cmp.felk.cvut.cz/minimal-iccv-2015/index.html 5/12

Page 17: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

Tricks sessionWarm startIdeal case assumption

Minimal Relative Rotation with Central CameraWarm Start

Macaulay output{2}(9)mmmmmmmmm{3}(28)mmmmmmmmmmmmmmmmmmmmmmmm{4}(122)mmmomomooooooomommooooooomoooooooomoooommmmmmommmoommmmmmmooooooooooomoomoommmoommmmmmmmmmmoooommmmmmmmoooo{5}(330)oooooooooooooooooooooooooooomoomooooooooooommmmmmmmmmooooommmmmmmmmmmmmooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo{6}(141)ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooonumber of (nonminimal) gb elements = 131number of monomials = 3294#reduction steps = 42277#spairs done = 3866ncalls = 11190nloop = 46519nsaved = 130

Solving Minimal Problems – http://cmp.felk.cvut.cz/minimal-iccv-2015/index.html 6/12

Page 18: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

Tricks sessionWarm startIdeal case assumption

Minimal Relative Rotation with Central CameraWarm Start

Trick: add more equations!

|(f1 ×Rcc′

f′1) (f2 ×Rcc′

f′2) (f3 ×Rcc′

f′3)| = 0|(f1 ×Rc

c′f′1) (f2 ×Rc

c′f′2) (f4 ×Rc

c′f′4)| = 0

|(f1 ×Rcc′

f′1) (f2 ×Rcc′

f′2) (f5 ×Rcc′

f′5)| = 0|(f1 ×Rc

c′f′1) (f3 ×Rc

c′f′3) (f4 ×Rc

c′f′4)| = 0

|(f1 ×Rcc′

f′1) (f3 ×Rcc′

f′3) (f5 ×Rcc′

f′5)| = 0|(f1 ×Rc

c′f′1) (f4 ×Rc

c′f′4) (f5 ×Rc

c′f′5)| = 0

|(f2 ×Rcc′

f′2) (f3 ×Rcc′

f′3) (f4 ×Rcc′

f′4)| = 0|(f2 ×Rc

c′f′2) (f3 ×Rc

c′f′3) (f5 ×Rc

c′f′5)| = 0

|(f2 ×Rcc′

f′2) (f4 ×Rcc′

f′4) (f5 ×Rcc′

f′5)| = 0|(f3 ×Rc

c′f′3) (f4 ×Rc

c′f′4) (f5 ×Rc

c′f′5)| = 0

r1Rc Tc′

=(1 0 0

)r2

(rT2 rT

3

)=

(1 0

)r3rT

3 = 1cT

1 Rcc′

=(1 0 0

)cT

2

(c2 c3

)=

(1 0

)c1 ×c2 −c3 = 0c2 ×c3 −c1 = 0c3 ×c1 −c2 = 0

Solving Minimal Problems – http://cmp.felk.cvut.cz/minimal-iccv-2015/index.html 7/12

Page 19: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

Tricks sessionWarm startIdeal case assumption

Minimal Relative Rotation with Central CameraWarm Start

New Macaulay output{2}(20)mmmmmmmmmmmmmmmmmmmm{3}(74)oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooommmmmmmmmm{4}(62)mmmmmmmmmmmmmmmmmmmmommmmmmooooooooooooooooooooooooooooooooooo{5}(144)oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooonumber of (nonminimal) gb elements = 56number of monomials = 873#reduction steps = 12993#spairs done = 1261ncalls = 3059nloop = 13367nsaved = 63

Solving Minimal Problems – http://cmp.felk.cvut.cz/minimal-iccv-2015/index.html 8/12

Page 20: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

Tricks sessionWarm startIdeal case assumption

Minimal Relative Rotation with Central CameraWarm Start: Comparison{2}(9)mmmmmmmmm{3}(28)mmmmmmmmmmmmmmmmmmmmmmmm{4}(122)mmmomomooooooomommooooooomoooooooomoooommmmmmommmoommmmmmmooooooooooomoomoommmoommmmmmmmmmmoooommmmmmmmoooo{5}(330)oooooooooooooooooooooooooooomoomooooooooooommmmmmmmmmooooommmmmmmmmmmmmooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo{6}(141)ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooonumber of (nonminimal) gb elements = 131number of monomials = 3294#reduction steps = 42277#spairs done = 3866ncalls = 11190nloop = 46519nsaved = 130

{2}(20)mmmmmmmmmmmmmmmmmmmm{3}(74)oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooommmmmmmmmm{4}(62)mmmmmmmmmmmmmmmmmmmmommmmmmooooooooooooooooooooooooooooooooooo{5}(144)oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooonumber of (nonminimal) gb elements = 56number of monomials = 873#reduction steps = 12993#spairs done = 1261ncalls = 3059nloop = 13367nsaved = 63

Solving Minimal Problems – http://cmp.felk.cvut.cz/minimal-iccv-2015/index.html 9/12

Page 21: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

Tricks sessionWarm startIdeal case assumption

Absolute Pose with Non-Central Cameran-Point Case: NPnP

L.Kneip, H. Li, and Y. Seo. UPnP: An optimal O(n) solution to the absolute pose problem with universal applicability.

ECCV, Zurich, Switzerland, 2014.

Solving Minimal Problems – http://cmp.felk.cvut.cz/minimal-iccv-2015/index.html 10/12

Page 22: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

Tricks sessionWarm startIdeal case assumption

Absolute Pose with Non-Central Cameran-Point Case: NPnP

Problem formulation:

minimize E =∑

i

εi = sT

∑i

[AT

i Ai ATi βi

βTi Ai βT

i βi

] s = sT Ms.

subject to qT q = 1 (1)

Lagrange multiplier method:

∂E∂q1...∂E∂q4

= −λ ·

2q1...

2q4

qT q = 1

80 solutionsSolving Minimal Problems – http://cmp.felk.cvut.cz/minimal-iccv-2015/index.html 11/12

Page 23: The Art of Solving Minimal Problemscmp.felk.cvut.cz/.../SMP-2015-Warm-Start-Kneip.pdf · Tricks session Warm start Ideal case assumption Warm start Minimal Relative Rotation with

Tricks sessionWarm startIdeal case assumption

Absolute Pose with Non-Central Cameran-Point Case: NPnP

Assume ideal case:Some stationary points of E fulfil norm constraint exactly!Set Lagrange multiplier λ to 0⇒16 solutions!

∂E∂q1...∂E∂q4

= 0

qT q = 1

Solving Minimal Problems – http://cmp.felk.cvut.cz/minimal-iccv-2015/index.html 12/12