Point sets, Maps and Navigation D.A. Forsyth Issues Where am I? - - PowerPoint PPT Presentation

point sets maps and navigation
SMART_READER_LITE
LIVE PREVIEW

Point sets, Maps and Navigation D.A. Forsyth Issues Where am I? - - PowerPoint PPT Presentation

Point sets, Maps and Navigation D.A. Forsyth Issues Where am I? Simplest: register observations and motion to a map correspondence and robustness Build a map Register observations to one another global consistency


slide-1
SLIDE 1

Point sets, Maps and Navigation

D.A. Forsyth

slide-2
SLIDE 2

Issues

  • Where am I?
  • Simplest: register observations and motion to a map
  • correspondence and robustness
  • Build a map
  • Register observations to one another
  • global consistency
  • Incorporating motion models
  • Registration should benefit from knowledge of motion
  • Filtering
slide-3
SLIDE 3

Simplest case

  • Registration with known correspondence
  • No motion model
  • 3D observations of known beacons at known 3D locations
  • beacons y_i; observations x_i
  • (for generality) weights w_i
  • Problem:
  • choose rotation R, translation t to minimize
  • THIS CAN BE DONE IN CLOSED FORM!

C(R, t) = X

i

wi (Rxi + t − yi)T (Rxi + t − yi)

slide-4
SLIDE 4

The translation

  • Solve for translation as function of R
  • So
  • Plug this into cost function to get

rtC = 0 = R( X

i

wixi) + t( X

i

wi) ( X

i

wiyi) t = y − Rx G(R) = X

i

wi(R(xi − x) − (yi − y))T (R(xi − x) − (yi − y))

Weighted centroids

slide-5
SLIDE 5

The rotation

  • Substitute
  • Expand
  • So MAXIMIZE

G(R) = X

i

wi(R(ui) − (vi))T (R(ui) − (vi)) H(R) = X

i

wiviRui G(R) = X

i

wi ⇥ uT

i ui − 2viRui + vT i vi

⇤ G(R) = X

i

wi(R(xi − x) − (yi − y))T (R(xi − x) − (yi − y))

slide-6
SLIDE 6

The rotation

  • Rewrite using
  • To get:
  • Rotate through Trace to get:
  • Rewrite

H(R) = Trace ⇥ WV T RU ⇤ H(R) = X

i

wiviRui H(R) = Trace ⇥ RUWV T ⇤ H(R) = Trace [RD] U = [u1, u2, . . .]

This is data

slide-7
SLIDE 7

The SVD (in case you don’t recall!)

  • For any D
  • A is orthonormal, B is orthonormal, Sigma is diagonal
  • by convention, diagonal values are sorted by magnitude
  • we drop zero diagonals, and corresponding columns of B, A^T
  • they don’t do anything
  • A staple of numerical analysis
  • stable, well-behaved, etc. algorithms easily available
  • partial SVDs available
  • works fine at very large scales
  • generally, a good thing

D = AΣBT

slide-8
SLIDE 8

The rotation

  • SVD data
  • Substitute, and rotate:
  • H(R) = Trace [RD]

This must be orthonormal!

D = AΣBT H(R) = Trace ⇥ RAΣBT ⇤ = Trace ⇥ ΣBT RA ⇤

slide-9
SLIDE 9

The rotation

  • We must maximise:
  • (where M(R) is orthonormal)
  • But this means that M(R) has 1 or -1 on the diagonal!
  • So if
  • the orthonormal matrix we’re looking for is:

H(R) = Trace [ΣM(R)] H(R) = Trace ⇥ RAΣBT ⇤ = Trace ⇥ ΣBT RA ⇤ R = BAT

slide-10
SLIDE 10

Final details

  • Careful:
  • could be a reflection (ie det=-1; a flip; etc.)
  • Fix:

R = BAT R = B(diag ⇥ 1, 1, det(BAT ) ⇤ )AT

slide-11
SLIDE 11

So far

  • Given two sets of points
  • with known correspondences
  • weights
  • We can find optimal rotation, translation to register
  • easily
  • in closed form
  • We now know where we are
  • for (say) x_i 3D measurements, y_i beacons
  • Missing:
  • what happens if we *don’t* have correspondences?
  • robustness
slide-12
SLIDE 12

ICP = Iterated closest points

  • What if we *don’t* have correspondences?
  • Idea:
  • Repeat until convergence:
  • each x corresponds to “closest” y
  • register
  • Big simple idea, lots of variants
  • What is “closest”?
  • What if you have lots of points?
slide-13
SLIDE 13
  • Full set of slides is on web page
  • I’m going to show some to make major points
slide-14
SLIDE 14

The issue here is efficiency - also, some points are more helpful than others (think corners)

slide-15
SLIDE 15
slide-16
SLIDE 16

Uniform samples are shakey - stratify

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Uniform Block stratified

slide-17
SLIDE 17
slide-18
SLIDE 18
slide-19
SLIDE 19
slide-20
SLIDE 20
slide-21
SLIDE 21

Q: who corresponds with who? Doesn’t have to be closest!

slide-22
SLIDE 22
slide-23
SLIDE 23

Speeding this up (in low D)

  • We care about 2D, 3D
  • Some correspondence errors may be tolerable.
  • We’re making pooled estimates of rotation and translation
  • Idea
  • target points into octree (kd tree, etc)
  • closest point *within tree cell*
  • which may not be the overall closest point!
  • whatever!
  • Other hashing procedures could apply
  • but mostly more trouble than necessary in 2 or 3 D
slide-24
SLIDE 24

Warning - KD trees aren’t exact

This doesn’t usually *matter* but…

slide-25
SLIDE 25
slide-26
SLIDE 26