283
Using Algebraic Geometry for Solving Polynomial Problems in Computer Vision David Nistér and Henrik Stewénius

Nister iccv2005tutorial

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Nister iccv2005tutorial

Using Algebraic Geometry for Solving Polynomial Problems

in Computer Vision David Nistér and Henrik Stewénius

Page 2: Nister iccv2005tutorial

Very Rough Outline• 14:00-15:30 “1st Round", administered by David.• - What is this Tutorial About?• - Motivation, RANSAC, Example Problems• - Gröbner Bases• - Action Matrix

• -15:30-16:00 Coffee break

• 16:00-18:00-“2nd Round“, administered by Henrik.• - Background Material• - Gröbner Bases• - Exercises in Macaulay2• - Q & A

Page 3: Nister iccv2005tutorial

What is this Tutorial About?

• If you are interested in solving polynomial equations, this tutorial is for you

• This tutorial is a ‘real’ tutorial

• The main focus will be on Gröbner bases and how the theory of Gröbner bases can be used to solve polynomial equations

Page 4: Nister iccv2005tutorial

History• Euclid (325BC-265 BC), • Apollonius (262 BC-190BC), • Descartes (1596-1650), • Fermat (1601-1655)

• Bézout (1730-1783)• Hilbert’s (1862-1943) Nullstellensatz JJ ))I(V(

Page 5: Nister iccv2005tutorial

RISCResearch Institute for Symbolic ComputationLinz, Austria

Wolfgang Gröbner (1899-1980) Bruno Buchberger

1966: Ph.D. in mathematics. University of Innsbruck, Dept. of Mathematics, Austria. Thesis: On Finding a Vector Space Basis of the Residue Class Ring Modulo a Zero Dimensional Polynomial Ideal (German). Thesis Advisor: Wolfgang Gröbner

Page 6: Nister iccv2005tutorial

Bezout’s Theorem

2x2=4

Mixed Volume, see for example [CLO 1998] provides a generalization for non-general polynomials.

With two variables,a solution according to the Bezout boundcan typically berealized with resultants.With three or more variables, thingsare less simple.

Page 7: Nister iccv2005tutorial

Resultants

• Provides Elimination of variables by taking a determinant

]2[]1[]0[

]2[]1[]0[

]2[]1[]0[

]2[]1[]0[1xx2x3

= det = [4]

a1x2+a2y2+a3xy+a4x+a5y+a6

b1x2+b2y2+b3xy+b4x+b5y+b6

652

2431

652

2431

652

2431

652

2431

bybybbybb

bybybbybb

ayayaayaa

ayayaayaa

det

1xx2x3

Page 8: Nister iccv2005tutorial

Various States of Mind You May Have, I:

• Skip the theory, what is this all about? –Answers from David

1st Quadrant2st Quadrant

3rd Quadrant 4th Quadrant

Difficult TheoryEasy Theory

Useful Theory

Useless Theory

Useful but HardUseful and EasySuper!

Useless and EasyUseless and impossibleto penetrate – Unfortunately survives

Algebraic Geometry and Gröbner Bases

Page 9: Nister iccv2005tutorial

Proofs of the Power of Gröbner Bases

• So far, approx. 600 publications and 10 textbooks have been devoted to Gröbner Bases.

• Gröbner Bases are routinely available in current mathematical software systems like Mathematica, Maple, Derive, Magma, Axiom, etc.

• Special software systems, like CoCoa, Macaulay, Singular, Plural, Risa-Asir etc. are, to a large extent, devoted to the applications of Gröbner Bases.

• Gröbner Bases theory is an important section in all international conferences on computer algebra and symbolic computation.

• Gröbner Bases allow, for the first time, algorithmic solutions to some of the most fundamental problems in algebraic geometry but are applied also in such diverse areas as functional analysis, statistics, optimization, coding theory, cryptography, automated theorem proving in geometry, graph theory, combinatorial identities, symbolic summation, special functions, etc.

Page 10: Nister iccv2005tutorial

• Stop the handwaving, what is the rigorous theory?

Answers from David and Henrik + books

Various States of Mind You May Have, II:

Page 11: Nister iccv2005tutorial

Suggested Literature• D. Cox, J. Little, D. O’Shea, Ideals, Varieties,

and Algorithms, Second Edition, 1996.

• D. Cox, J. Little, D. O’Shea, Using Algebraic Geometry, Springer 1998.

• T. Becker and Weispfennig, Gröbner Bases, A Computational Approach to commutative Algebra, Springer 1993.

Page 12: Nister iccv2005tutorial

Suggested Literature• B. Buchberger, F. Winkler (eds.) Gröbner

Bases and ApplicationsCambridge University Press, 1998.

• Henrik’s Thesis: H. Stewénius, Gröbner Basis Methods for Minimal Problems in Computer Vision, PhD Thesis, 2005

• Planned scaffolding paper, keep a lookout on the tutorial web page

Page 13: Nister iccv2005tutorial

• Skip the theory, how do I use it? – Answers from Henrik, Exercises in Macaulay 2.

Various States of Mind You May Have, III:

Page 14: Nister iccv2005tutorial
Page 15: Nister iccv2005tutorial

RANSAC- Random Sample Consensus

Least Squares

RANSAC

Robust

Page 16: Nister iccv2005tutorial

RANSAC- Random Sample Consensus

Line Hypotheses

Points

Robust

Page 17: Nister iccv2005tutorial

RANSAC

HypothesisGenerator

ObservationLikelihood

Hypotheses

Observations

500

1000

500 x 1000 = 500.000

?

Page 18: Nister iccv2005tutorial

Observed Tracks

Hypothesis Generation

Preemptive RANSAC

Page 19: Nister iccv2005tutorial

Data Input

Estimate orposterior likelihoodoutput

ProbabilisticFormulation

HypothesisGenerator

PreciseFormulation

Page 20: Nister iccv2005tutorial

2D-2DRelative Orientation

2D-3DPose

3D-3D 2D-2DAbsolute Orientation

Bundle Adjustment Robust StatisticsTriangulation

Geometry Tools

Page 21: Nister iccv2005tutorial

For Which Problems Did We UseGröbner Bases?

The Generalized 3-Point Problem

YesNo Yes, you bet

The 3 View 4-Point Problem

8(4)

10

2048

The 5-Point Relative Pose Problem

0 (or thousands)

473 View

Triangulation

Unknown FocalRelative Pose

15

64Generalized Relative

Pose

Microphone-SpeakerRelative Orientation

8-38-150-344-??

Page 22: Nister iccv2005tutorial

The Generalized 3-Point Problem

Page 23: Nister iccv2005tutorial

The Generalized 3-Point Problem

Page 24: Nister iccv2005tutorial
Page 25: Nister iccv2005tutorial
Page 26: Nister iccv2005tutorial
Page 27: Nister iccv2005tutorial
Page 28: Nister iccv2005tutorial
Page 29: Nister iccv2005tutorial
Page 30: Nister iccv2005tutorial
Page 31: Nister iccv2005tutorial
Page 32: Nister iccv2005tutorial
Page 33: Nister iccv2005tutorial
Page 34: Nister iccv2005tutorial
Page 35: Nister iccv2005tutorial
Page 36: Nister iccv2005tutorial
Page 37: Nister iccv2005tutorial
Page 38: Nister iccv2005tutorial
Page 39: Nister iccv2005tutorial
Page 40: Nister iccv2005tutorial
Page 41: Nister iccv2005tutorial
Page 42: Nister iccv2005tutorial
Page 43: Nister iccv2005tutorial
Page 44: Nister iccv2005tutorial
Page 45: Nister iccv2005tutorial
Page 46: Nister iccv2005tutorial
Page 47: Nister iccv2005tutorial
Page 48: Nister iccv2005tutorial
Page 49: Nister iccv2005tutorial
Page 50: Nister iccv2005tutorial
Page 51: Nister iccv2005tutorial
Page 52: Nister iccv2005tutorial
Page 53: Nister iccv2005tutorial
Page 54: Nister iccv2005tutorial
Page 55: Nister iccv2005tutorial
Page 56: Nister iccv2005tutorial
Page 57: Nister iccv2005tutorial
Page 58: Nister iccv2005tutorial
Page 59: Nister iccv2005tutorial
Page 60: Nister iccv2005tutorial
Page 61: Nister iccv2005tutorial
Page 62: Nister iccv2005tutorial
Page 63: Nister iccv2005tutorial
Page 64: Nister iccv2005tutorial
Page 65: Nister iccv2005tutorial
Page 66: Nister iccv2005tutorial
Page 67: Nister iccv2005tutorial
Page 68: Nister iccv2005tutorial
Page 69: Nister iccv2005tutorial
Page 70: Nister iccv2005tutorial
Page 71: Nister iccv2005tutorial
Page 72: Nister iccv2005tutorial
Page 73: Nister iccv2005tutorial
Page 74: Nister iccv2005tutorial
Page 75: Nister iccv2005tutorial
Page 76: Nister iccv2005tutorial
Page 77: Nister iccv2005tutorial
Page 78: Nister iccv2005tutorial
Page 79: Nister iccv2005tutorial
Page 80: Nister iccv2005tutorial
Page 81: Nister iccv2005tutorial
Page 82: Nister iccv2005tutorial
Page 83: Nister iccv2005tutorial
Page 84: Nister iccv2005tutorial
Page 85: Nister iccv2005tutorial
Page 86: Nister iccv2005tutorial
Page 87: Nister iccv2005tutorial
Page 88: Nister iccv2005tutorial
Page 89: Nister iccv2005tutorial
Page 90: Nister iccv2005tutorial
Page 91: Nister iccv2005tutorial
Page 92: Nister iccv2005tutorial
Page 93: Nister iccv2005tutorial
Page 94: Nister iccv2005tutorial
Page 95: Nister iccv2005tutorial
Page 96: Nister iccv2005tutorial
Page 97: Nister iccv2005tutorial
Page 98: Nister iccv2005tutorial
Page 99: Nister iccv2005tutorial
Page 100: Nister iccv2005tutorial
Page 101: Nister iccv2005tutorial
Page 102: Nister iccv2005tutorial
Page 103: Nister iccv2005tutorial
Page 104: Nister iccv2005tutorial
Page 105: Nister iccv2005tutorial
Page 106: Nister iccv2005tutorial
Page 107: Nister iccv2005tutorial
Page 108: Nister iccv2005tutorial
Page 109: Nister iccv2005tutorial
Page 110: Nister iccv2005tutorial
Page 111: Nister iccv2005tutorial
Page 112: Nister iccv2005tutorial
Page 113: Nister iccv2005tutorial
Page 114: Nister iccv2005tutorial
Page 115: Nister iccv2005tutorial
Page 116: Nister iccv2005tutorial
Page 117: Nister iccv2005tutorial
Page 118: Nister iccv2005tutorial
Page 119: Nister iccv2005tutorial
Page 120: Nister iccv2005tutorial
Page 121: Nister iccv2005tutorial
Page 122: Nister iccv2005tutorial
Page 123: Nister iccv2005tutorial
Page 124: Nister iccv2005tutorial
Page 125: Nister iccv2005tutorial
Page 126: Nister iccv2005tutorial
Page 127: Nister iccv2005tutorial
Page 128: Nister iccv2005tutorial
Page 129: Nister iccv2005tutorial
Page 130: Nister iccv2005tutorial
Page 131: Nister iccv2005tutorial
Page 132: Nister iccv2005tutorial
Page 133: Nister iccv2005tutorial
Page 134: Nister iccv2005tutorial
Page 135: Nister iccv2005tutorial
Page 136: Nister iccv2005tutorial
Page 137: Nister iccv2005tutorial
Page 138: Nister iccv2005tutorial
Page 139: Nister iccv2005tutorial
Page 140: Nister iccv2005tutorial
Page 141: Nister iccv2005tutorial
Page 142: Nister iccv2005tutorial
Page 143: Nister iccv2005tutorial
Page 144: Nister iccv2005tutorial
Page 145: Nister iccv2005tutorial
Page 146: Nister iccv2005tutorial
Page 147: Nister iccv2005tutorial
Page 148: Nister iccv2005tutorial
Page 149: Nister iccv2005tutorial
Page 150: Nister iccv2005tutorial
Page 151: Nister iccv2005tutorial
Page 152: Nister iccv2005tutorial
Page 153: Nister iccv2005tutorial
Page 154: Nister iccv2005tutorial
Page 155: Nister iccv2005tutorial
Page 156: Nister iccv2005tutorial
Page 157: Nister iccv2005tutorial
Page 158: Nister iccv2005tutorial
Page 159: Nister iccv2005tutorial
Page 160: Nister iccv2005tutorial
Page 161: Nister iccv2005tutorial
Page 162: Nister iccv2005tutorial
Page 163: Nister iccv2005tutorial
Page 164: Nister iccv2005tutorial
Page 165: Nister iccv2005tutorial
Page 166: Nister iccv2005tutorial
Page 167: Nister iccv2005tutorial
Page 168: Nister iccv2005tutorial
Page 169: Nister iccv2005tutorial
Page 170: Nister iccv2005tutorial
Page 171: Nister iccv2005tutorial
Page 172: Nister iccv2005tutorial
Page 173: Nister iccv2005tutorial
Page 174: Nister iccv2005tutorial
Page 175: Nister iccv2005tutorial
Page 176: Nister iccv2005tutorial
Page 177: Nister iccv2005tutorial
Page 178: Nister iccv2005tutorial
Page 179: Nister iccv2005tutorial
Page 180: Nister iccv2005tutorial
Page 181: Nister iccv2005tutorial
Page 182: Nister iccv2005tutorial
Page 183: Nister iccv2005tutorial
Page 184: Nister iccv2005tutorial
Page 185: Nister iccv2005tutorial
Page 186: Nister iccv2005tutorial
Page 187: Nister iccv2005tutorial
Page 188: Nister iccv2005tutorial
Page 189: Nister iccv2005tutorial
Page 190: Nister iccv2005tutorial
Page 191: Nister iccv2005tutorial
Page 192: Nister iccv2005tutorial
Page 193: Nister iccv2005tutorial
Page 194: Nister iccv2005tutorial
Page 195: Nister iccv2005tutorial
Page 196: Nister iccv2005tutorial

The Five Point Problem

What is R,t ?

Given five point correspondences,

Page 197: Nister iccv2005tutorial

EEEtraceEEE )(2

det

Sturm Sequencesfor Bracketing

Root Polishingby Bisection

ER,t

The 5-point algorithm (Nistér PAMI 04)

Page 198: Nister iccv2005tutorial

det

Sturm Sequencesfor Bracketing

Root Polishingby Bisection

R,t E

The 5-point algorithm (Nistér PAMI 04)

EEEtraceEEE )(2

Page 199: Nister iccv2005tutorial

EEEtraceEEE )(2

ER,t

10 x 10Action Matrix

Eigen-Decomposition

The 5-point algorithm (Stewénius et al)

Page 200: Nister iccv2005tutorial

Easy Conditions Realistic Conditions

Correct Calibration

Page 201: Nister iccv2005tutorial

5-Point Matlab Executable

Recent Developments on Direct Relative Orientation, Henrik Stewenius, Christopher Engels, David Nister, To appear in ISPRS Journal of Photogrammetry and Remote Sensing

www.vis.uky.edu/~dnister

Page 202: Nister iccv2005tutorial

6-point generalized relative orientation (64 solutions) (Stewenius, Nistér, Oskarsson and Åström, Omnivis ICCV 2005)

6-point relative orientation with common but unknown focal length (15 solutions) (Stewenius, Nistér, Schaffalitzky and Kahl,to appear at CVPR 2005)

Further Examples of Solved Problems

Page 203: Nister iccv2005tutorial

Triangulation

Page 204: Nister iccv2005tutorial

• Max-Norm -> Quartic (Closed form, Nistér)

• Directional Error -> Quadratic (Oliensis)

Triangulation, 2 Views

• L2-Norm -> Sextic (Hartley & Sturm)

• One parameter family – Balance the error

Page 205: Nister iccv2005tutorial

47 Stationary Points

Optimal 3 View Triangulationwork with Henrik Stewenius and Fred Schaffalitzky

ICCV 2005

Page 206: Nister iccv2005tutorial

Microphone-Speaker Locationwork with Henrik Stewenius

Page 207: Nister iccv2005tutorial

The 3 View 4 Point ProblemWork with Frederik Schaffalitzky

Page 208: Nister iccv2005tutorial

Geometry-Algebra ‘Dualism’

JJ ))I(V(• Hilbert’s Nullstellensatz

Page 209: Nister iccv2005tutorial
Page 210: Nister iccv2005tutorial
Page 211: Nister iccv2005tutorial

How Hard is this Problem?

Page 212: Nister iccv2005tutorial

Approximately This Hard

Page 213: Nister iccv2005tutorial
Page 214: Nister iccv2005tutorial
Page 215: Nister iccv2005tutorial
Page 216: Nister iccv2005tutorial
Page 217: Nister iccv2005tutorial
Page 218: Nister iccv2005tutorial
Page 219: Nister iccv2005tutorial
Page 220: Nister iccv2005tutorial
Page 221: Nister iccv2005tutorial

For Which Problems Did We UseGröbner Bases?

The Generalized 3-Point Problem

YesNo Yes, you bet

The 3 View 4-Point Problem

8(4)

10

2048

The 5-Point Relative Pose Problem

0 (or thousands)

473 View

Triangulation

Unknown FocalRelative Pose

15

64Generalized Relative

Pose

Microphone-SpeakerRelative Orientation

8-38-150-344-??

Page 222: Nister iccv2005tutorial

Camera Geometry

• Often leads to polynomial formulations,

or can at least very often be formulated in

terms of polynomial equations

Page 223: Nister iccv2005tutorial

Polynomial Formulation

• p1(x) , … , pn(x)= A set of input polynomials (n polynomials in m variables)

x=[y1 … ym]

Page 224: Nister iccv2005tutorial

Main Point

• Gröbner Basis Gives Action Matrix

(because it provides the ability to compute unique ‘smallest’ possible

unique remainders)

• Action Matrix Gives Solutions

PolynomialEquations

GröbnerBasis

ActionMatrix

Solutions

Intensively Studied

Page 225: Nister iccv2005tutorial

Algebraic Ideal

• I(p1 , … , pn)= The set of polynomials

generated by the input polynomials

(through additions and multiplications by a polynomial)

p and q in I => p+q in I

p in I => pq in IThe ideal I consists of ‘Almost’ all the polynomials impliedby the input polynomials(More precisely, the radical of the ideal consists of all)I

Page 226: Nister iccv2005tutorial

Basis (for Ideal)

• A basis for the ideal J is a set of polynomials

{p1 , … , pn} such that J=I(p1 , … , pn)

Page 227: Nister iccv2005tutorial

Algebraic Variety

• The solution set

(the vanishing set of the input polynomials)

V(I)={x:I(x)=0}

More precisely

p(x)=0 for all p in I

Page 228: Nister iccv2005tutorial

Quotient Ring J/I

• The set of equivalence classes of polynomials when only the values on V are considered (i.e. polynomials are equivalent iff p(V)=q(V))

V(I) p in J/I

Page 229: Nister iccv2005tutorial

Action Matrix

• For multiplication by polynomial on finite dimensional solution space

V(I)

Page 230: Nister iccv2005tutorial

Action Matrix

TransposedCompanion Matrix

Action Matrix

Page 231: Nister iccv2005tutorial

An ‘Equivalence’

Finding the Roots of a Polynomial

Finding the Eigenvalues of a Matrix

Compute CompanionMatrix

Compute Characteristic Polynomial

Finding the Roots of a Multiple

Polynomial Equations

Finding the Eigenvalues of a Matrix

Compute Action Matrix in Quotient Ring(Polynomials modulo Input Equations)

Compute Characteristic Polynomial

RequiresGröbnerBasis forInput Equations

Page 232: Nister iccv2005tutorial

Companion Matrix

x2 1x3x4x5x6

x7+ a6x6 +a5x5+ a4x4+ a3x3+ a2x2+ a1x+a0

-a6

11

11

1-a0-a4 -a3 -a2 -a1-a5

x

1

Multiplication by x modulo the seventh degree polynomial

can be expressed as left-multiplication by the matrix

Page 233: Nister iccv2005tutorial

Action Matrix

I

Page 234: Nister iccv2005tutorial

Action Matrix

V(I)

I

Page 235: Nister iccv2005tutorial

Action Matrix

V(I)

I

p in J

Page 236: Nister iccv2005tutorial

Action Matrix

V(I)

I

p in J

p in J/I

Page 237: Nister iccv2005tutorial

Action Matrix

Ip in J/I

Page 238: Nister iccv2005tutorial

Action Matrix

Ip in J/I

q in J/I

Page 239: Nister iccv2005tutorial

Action Matrix

Ip in J/I

q in J/I

pq in J/I

Page 240: Nister iccv2005tutorial

Action MatrixMultiplication by a polynomial q is a linear operator Aq

(αp+βr)q=α(pq)+β(rq)

The matrix Aq is called the action matrix for multiplication by q

Page 241: Nister iccv2005tutorial

Action Matrix

Ib0 b1 b2

x0 x1 x2

Page 242: Nister iccv2005tutorial

Action Matrix

Ib0 b1 b2

x0 x1 x2

q in J

Page 243: Nister iccv2005tutorial

Action Matrix

I

q(x1)b1

q(x2)b2q(x0)b0

q in J

Page 244: Nister iccv2005tutorial

Action Matrix

I

The values q(xi) of q at the solutions xi are the

eigenvalues of the action matrix

q(x1)b1

q(x2)b2q(x0)b0

q in J

Page 245: Nister iccv2005tutorial

Action MatrixThe values q(xi) of q at the solutions xi are the eigenvalues of the action matrix

If we choose q=y1 , the eigenvalues are the solutions for y1

Page 246: Nister iccv2005tutorial

Action Matrix

b’(x)Aq p=q(x)b’(x)p for all p in J/I and x in V(I)

b’=[r1 … ro]

b’(x)Aq =b’(x)q(x) b(x) is a left nullvector of Aq corresponding to eigenvalue q(x)

Page 247: Nister iccv2005tutorial

Monomial Order

• Needed to define leading term of a polynomial

• Grevlex (Graded reverse lexicographical) order usually most efficient

y_1

y_2

Page 248: Nister iccv2005tutorial

Gröbner Basis• A basis for ideal I that exposes the leading

terms of I (hence unique well defined remainders)

• Easily gives the action matrix for multiplication with any polynomial in the quotient ring

y_1

y_2

Page 249: Nister iccv2005tutorial

A Reduced Gröbner Basis is a Basis in the normal sense

• A polynomial in the ideal I can be written as a unique combination of the polynomials in a reduced Gröbner basis for I

• The monic Gröbner basis for I is unique

Page 250: Nister iccv2005tutorial

Buchberger’s Algorithm

Gaussian Elimination

Buchberger’s Algorithm

Euclid’sAlgorithm for the

GCD

Page 251: Nister iccv2005tutorial

Gaussian EliminationExposes all the leading terms, which are simplyall the variables in the case of general linear equations

xn x1

Page 252: Nister iccv2005tutorial

Remember Row Operations:

• Multiplying a row by a scalar

• Subtracting a row from another

• Swap rows

Add:• Multiplying a row by any polynomial

Page 253: Nister iccv2005tutorial

More General EliminationWith non-linear equations, there are relations betweenthe monomials that matter when multiplying

x2 xyy2 xyMultiply by x

Multiply by y

x2 xyy2 xy

x2 xyy2 xy

Page 254: Nister iccv2005tutorial

Multiplying by a Scalar

p(x)

3.8p(x)

Transitions through zero remain

Page 255: Nister iccv2005tutorial

Adding

p1(x)

p2(x)

Common transitions through zero remain

p1(x) + p2(x)

Page 256: Nister iccv2005tutorial

Multiplying

p(x)

f(x)

Transitions through zero remain

p(x)f(x)

Page 257: Nister iccv2005tutorial

Buchberger’s AlgorithmCompute remainders of S-polynomials until

all remainders are zero

Page 258: Nister iccv2005tutorial

Buchberger’s AlgorithmCompute remainders of S-polynomials until

all remainders are zero

Page 259: Nister iccv2005tutorial

Buchberger’s AlgorithmCompute remainders of S-polynomials until

all remainders are zero

Page 260: Nister iccv2005tutorial

Buchberger’s AlgorithmCompute remainders of S-polynomials until

all remainders are zero

Page 261: Nister iccv2005tutorial

Buchberger’s AlgorithmCompute remainders of S-polynomials until

all remainders are zero

Page 262: Nister iccv2005tutorial

Buchberger’s AlgorithmCompute remainders of S-polynomials until

all remainders are zero

Page 263: Nister iccv2005tutorial

Buchberger’s AlgorithmCompute remainders of S-polynomials until

all remainders are zero

Page 264: Nister iccv2005tutorial

Buchberger’s AlgorithmCompute remainders of S-polynomials until

all remainders are zero

Page 265: Nister iccv2005tutorial

Buchberger’s AlgorithmCompute remainders of S-polynomials until

all remainders are zero

Page 266: Nister iccv2005tutorial

Buchberger’s AlgorithmCompute remainders of S-polynomials until

all remainders are zero

Page 267: Nister iccv2005tutorial

Buchberger’s AlgorithmCompute remainders of S-polynomials until

all remainders are zero

Page 268: Nister iccv2005tutorial

Elimination Schedule

Approach

Pose Problem over R

Compute Gröbner basis

End

Compute Action Matrix

Solve Eigenproblem

Backsubstitute

Begin (online)

Pose Problem. Port to Zp

Compute number of solutions

End

Build matrix based Gröbner basis code

Port to R

Begin (offline)

Page 269: Nister iccv2005tutorial

Prime Field Formulation

• Reals => Cancellation unclear

• Rationals => Grows unwieldy

• Prime Field => Cancellation clear, size is limited, only small risk of incorrect cancellation if prime is large

Page 270: Nister iccv2005tutorial

Gaussian Elimination

• Expanding all polynomials up to a certain degree followed by Gaussian elimination allows pivoting

Page 271: Nister iccv2005tutorial

Unwanted Solutions

Can be removed by ideal quotients, or more generally saturation

Page 272: Nister iccv2005tutorial

Elimination Example

Page 273: Nister iccv2005tutorial

Elimination Example

Page 274: Nister iccv2005tutorial

Elimination Example

Page 275: Nister iccv2005tutorial

Elimination Example

Page 276: Nister iccv2005tutorial

Elimination Example

Page 277: Nister iccv2005tutorial

Elimination Example

Page 278: Nister iccv2005tutorial

Elimination Example

Page 279: Nister iccv2005tutorial

Elimination Example

Page 280: Nister iccv2005tutorial

Elimination Example

Page 281: Nister iccv2005tutorial

Elimination Example

Page 282: Nister iccv2005tutorial

Action Matrix

Page 283: Nister iccv2005tutorial