Augmented Reality - 3D Wahrnehmung + perspektivische Abbildungen

Augmented Reality 3D Wahrnehmung + perspektivische Abbildungen Intelligente Mensch-Maschine-Interaktion - IMMI SS 2011 Prof. Didier Stricker Didier.St...
2 downloads 0 Views 6MB Size
Augmented Reality 3D Wahrnehmung + perspektivische Abbildungen Intelligente Mensch-Maschine-Interaktion - IMMI SS 2011 Prof. Didier Stricker [email protected]

 Die Vorlesung am 07.06 findet im Raum Zuse am DFKI statt

2

Übersicht

Wahrnehmung von 3D Räumen Perspektive Mathematische Modellierung: projektive Geometrie Anwendung I: Kameraposition und -orientierung aus einem quadratischen Marker Anwendung II: Kameraposition und -orientierung mit DLT

3

Das Auge Das Auge bildet eine projektive Abbildung von R3 nach R2 ab.

4

Wie entsteht ein perspektivisches Bild?

???

5

Renaissance (XVI)

Dürer

6

Projektive Bilder: Skalierung

7

Projektive Bilder: Verkürzung

8

Fluchtpunkte

image plane vanishing point v camera center C

line on ground plane

Fluchtpunkt • Abbildung eines Punktes “am Unendlich” 9

Projektive Bilder: Parallele Linien schneiden sich in der Unendlichkeit

[Sonka, Hlavac, Boyle]

10

Projektive Bilder

 Eindruck der Tiefe in den Bildern  Parallele Linien treffen sich in der

Unendlichkeit  “Unendlichkeit” wird auf eine begrenzte Position im Bild projiziert  “Horizont”  “unendlich ferne Punkte”, …

[Triggs and Mohr] 11

3D Illusionen

Julian Beever Projektion einer „virtuellen Erde“ auf die Bodenebene (starke Verzerrungen) - Für die Eine Position stimmt die Perspektive - Keinen Unterschied zwischen 3D-Objekt und Abbildung

12 12

3D Illusionen

Julian Beever 13

Projektive Geometrie -Homogene Koordinaten -Lineare Abbildung im projektiven Raum -Projektionsmatrix (Kamera)

14

X?

X?

X?

x

15

Projektive Ebene Wieso werden homogenen Koordinaten benötigt?  Für die Abbildung von “unendlich entfernten Punkten”, perspektivische Projektion…

Eine geometrische Intuition?  Ein Punkt im Bild ist ein Strahlen im projektiven Raum

y (0,0,0)

z

(sx,sy,s) (x,y,1) x image plane

• Jeder Punkt (x,y) auf der Ebene ist durch einen Strahl (sx,sy,s) dargestellt

– alle Punkte auf dem Strahl sind äquivalent: (x, y, 1)  (sx, sy, s) 16

Homogene Koordinaten Einfach eine Dimension mehr… kartesische Koordinaten

homogene Koordinaten

  ( x, y )  (x, y,  ) kartesische Koordinaten

    C1 C2 (C1 , C2 , C3 )  ( , ) C3 C3 homogene Koordinaten

Homogenisierung

Für Punkte des projektiven Raumes sind nicht die Koordinaten selbst, sondern nur ihre Verhältnisse maßgebend 17

2D projektive Geometrie

Koordinaten im Eukl. R2

x = x/1 y = y/1

homogene Koordinaten in P2

(x,y) ~ (x,y,1) ~ (kx,ky,k)

k≠0

i.e. Positionen

Unendlich entferne Punkte

(x,y,0) = (x/0,y/0,0) = (∞,∞,0)

i.e. Richtungen

Zeichen „∼“ bedeutet: Gleichheit bis auf einen Skalenfaktor 18

2D projektive Geometrie  Euklidische / affine Abbildung im Euklidischen Raum:  Unendlich entfernte Punkte bleiben in der Unendlichkeit

≠  Projektiver Raum  Unendlich entfernte Punkte transformieren zu normalen Punkten  Erweiterung des Euklidischen Raumes, in dem sich zwei Linien immer treffen.

 Projektive Transformation:  Abbildung der Ebene, die gerade Linien erhält

19

Projektive Linien Wie wird eine Linie abgebildet?

• Eine Linie ist eine Ebene von Strahlen durch den Ursprung – alle Strahlen (x,y,z) so dass: ax + by + cz = 0 in vector notation :

 x 0  a b c   y   z 

l

p

• Eine Linie ist auch als ein homogener 3-dimensionaler Vektor l 20

2D projektive Geometrie

 Eukl. Raum: Linie l :

ax + by + c = 0

  Linie wird durch den Vektor (a,b,c)T dargestellt 

Proj. Raum: Linien und Punkte werden durch homogene Vektoren dargestellt

(a,b,c)T ~ k(a,b,c)T k ≠ 0 Be T (x,y,1)T ~ k(x,y,1) 

Beschreibt die gleiche Gerade

Der Punkt x ist dann auf der Linie l wenn

ax + by + c = (x,y,1)(a,b,c)T = xTl = 0

21

2D projektive Geometrie

Der Punkt x ist dann auf der Linie l wenn ax + by + c = (x,y,1)(a,b,c)T = xTl = 0  Bemerkung: Auf der Geraden g = (a, b, c) liegt auch der unendlich ferne Punkt p1 = (−a, b, 0). Der unendlich ferne Punkt p2 = (a,−b, 0) ist der selbe Punkt wie p1, d.h. beide ”Enden“ von g liegen auf dem selben Punkt.  Die Gerade g‘ = (a, b, c‘), c'  0, c'  ist parallel zu g. Zwei ”parallele“ Geraden schneiden sich immer in einem unendlich fernen Punkt (im Gegensatz zu der Euklidischen Geometrie).

Gerade g (a,b,c)

In Richtung des unendlich fernen Punktes (-a,b,0) = (a,-b,0)

In Richtung des unendlich fernen Punktes (-a,b,0)

22

Zusammenfassung   x0  T p      x0 , y0   y0 

Eukl. Punkt Eukl. Linie

ax  by  c  0

Projektiver Raum P2:

a  x     b y   0 c 1    

  l x 0

a    l  b c  

 x    x   y 1   23

Homographien “projektive Abbildung” = “collineation” = “projectivity” = “Homographie” H Invertierbare Abbildung Pn →Pn   „geradentreue“ Abbildung (n+1) x (n+1) Matrix In P2 :

 x1 '   h11      x '   x2 '   Hx   h21  x ' h  3  31

h12 h22 h32

h13  x1    h23  x2  h33  x3 

H hat (n+1)2-1 Freiheitsgraden: für P2 : 9 Elemente, davon nur 8 unabhängigH ist bis auf einen Skalierungsfaktor definiert.

24

24

Homographien: Beispiele (euklidische Transf.)

 1 0 tx    • Translation T   0 1 t  x '  Tx  x 0 0 1     cos   sin  0      • Rotation R   sin  cos  0  x '  Rx  0  0 1    sx 0 0    • Skalierung S   0 s 0  x '  Sx   y  0 0 1  

• Alle Kombination, z.B.

   M  SRT x '  SRTx  Mx 25

Die Hierarchie der Transformationen / Geometrien Projektiv 8dof

Affin 6dof

2D: ein Quadrat

transformiert zu: Similarity 4dof

Euklidisch 3dof

 h11 h12 h13  h  h h 23   21 22  h31 h32 h33   a11 a12 t x  a  a t 22 y  21  0 0 1   sr11 sr12 t x   sr  sr t 21 22 y    0 0 1   r11 r  21  0

r12 r22 0

tx  t y  1  26

Die Hierarchie der Transformationen / Geometrien

3D: ein Würfel

Projektiv 15dof

A vT 

Affin 12 dof

 A t 0 T 1  

Similarity 7dof

s R t   0T 1  

Euklidisch 6dof

 R t 0T 1  

transformiert zu:

t v 

27

Bestimmung der Homographie   Punktkorrespondenzen: xi'  xi : xi'  Hxi    '  Ausgangsgleichung: x  x  0  xi  Hxi  0 x '  xi   y w 

' i ' i ' i

  xi   h1      , xi   yi , H   h4  w  h i    7 

h2 h5 h8

h3   h1 h2   h6    h4 h5 h9   h7 h8

1T 1  h   h1  h3    h     2T    2     h6    h , h   h        3T    3     h9   h   h   h9 

Algebraisches Umformulieren:  3T   ' 2T   y h xi  wi h xi    '   ' 1T  ' 3T  xi  Hxi   wi h xi  xi h xi    '  2T  ' 1T     xi h xi  yi h xi  ' i

T  0  jT   T  j  '  T h xi  xi h :  wi xi  '  T   yi xi

 wx  0 ' T xi xi

' T i i T

 yx  xx  0

' T i i ' T i i T

1   h       h 2   0   3   h 

Bestimmung der Homographie T  0    wi' xiT  '  T   yi xi

 wx  0  xi' xiT

' T i i T

 yx  xx  0

' T i i ' T i i T

1  h       h 2   0   3   h 

  Ai h  0 Ai ist eine 3 x 9 Matrix, h ist ein 9-Vektor

• 3 Gleichungen • linear in den Unbekannten h • Ai ist quadratisch in den bekannten Punktkorrespondenzen • nur 2 Gleichungen linear unabhängig • die 3. Gleichung wird i.A. vernachlässigt. T  0    w' x T  i i

  wi' xiT T 0

1  h  ' T yi xi   2    h   0 ' T    xi xi  3  h 

  Ai h  0 Ai ist eine 2 x 9 Matrix, h ist ein 9-Vektor

Bestimmung der Homographie    0 A1h  0 :  '  x1w1

  A 2h  0   A 3h  0

0

0

 x1w

 y1w

 w1w

xy

yy

y1w1'

w1w1'

0

0

0

xx

yx

' 1

' 1

' 1

' 1 1 ' 1 1

' 1 1 ' 1 1

 h1  w y    0        w x    0   h9  ' 1 1 ' 1 1

1 Punktkorrespondenz definiert 2 Gleichungen H hat 9 Elemente, ist bis auf einen Skalierungsfaktor definiert  8 Freiheitsgrade (DoF)   Mindestens 4 Punktkorrespondenz benötigt

   0 A 4 h  0 :  '  x4 w4

0

0

 x4 w4'

 y4 w4'

 w4 w4'

y4 w4'

w4 w4'

0

0

0

 A1       A2    A h  Ah  0  3 A   4

4 x 2 Gleichungen

x4 y4' x4 x4'

y4 y4' y4 x4'

w4 y4' w4 x4'

 h1     0          h   0   9

  Ah  0

Allgemeiner Fall: • überbestimmt • n Punktkorrespondenzen • 2n Gleichungen, A ist eine 2n x 9 Matrix

Zurück zu Homographien: Abbildung von 2D-Ebene zu 2D-Bildebene Mapping between planes

[Hartley+Zisserman]

•x’=Hx •H definiert die Transformation zwischen den 2 Ebenen (im Bereich Grafik wird H als “Mapping” bezeichnet) •Abbildung der Ebene  auf das Kamerabild ist durch H definiert

31

Zurück zu Homographien – Beispiel 1 Kompensation der perspektivische Verzerrung - Alle (3D-) Punkte liegen in einer 2D-Ebene - Abbildung 2D-Ebene zu Ebene wird durch eine Homographie H definiert - Eingabe von 4 Punkten (verzerrtes und euklidisches Viereck) - Berechnung von H - Transformation des Bildes

H

[Hartley+Zisserman]

32

Beispiel 2: 3D Illusionen x

x’

H

z

O

f y

y’

Bodenebene

Bildebene

33

Abbildung 3D-Welt / 2D Bildebene Die zentrale Projektion (20, 13, 6) meter (153, 212) pixel

X  X   x  Y   p11 p12 p13 p14  Y     y  P    p p p p  21 22 23 24  Z     Z6  Punkte reichen… theoretisc 1    p31 p32 p33 p34   1 1

34

Recall: Pinhole camera model

( X ,Y , Z )  ( f X / Z , f Y / Z ) X    f X f   Y   Z  fY     Z   1  

f

X 0   Y   0   Z 1 0  1

x  PX

Recall: das Kameralochmodel

 f X f     fY   Z     

x  PX

f

X 0    1 Y   1  0    Z 1  1 0  1 P  diag( f , f ,1)I | 0

Recall: Kamerakoordinatensystem

• Hauptachse: Gerade vom Kamerazentrum senkrecht zur Bildebene. • Bildhauptpunkt (p): Schnittpunkt Hauptachse/bildebene.

Recall:Offset vom Bildhauptpunkt

Bildhauptpunkt:

( px , p y )

• Kamerakoordinatensystem: Ursprung ist der Bildhauptpunkt • Bildkoordinatensystem: Ursprung ist der untere Ecke (Pixel (0,0))

Recall: Principal point offset

principal point:

( px , p y )

( X , Y , Z )  ( f X / Z  px , f Y / Z  p y ) X    f X  Z px   f   Y    Z    f Y  Z px         Z   1  

px f

py 1

X 0   Y   0   Z 0  1

Recall:Principal point offset

principal point:

 f X  Zp x   f     f Y  Zp x       Z   

f K   

f

f

( px , p y )

X p x  1 0   Y     py  1 0   Z 1   1 0  1

px  p y  calibration matrix 1 

P  KI | 0

Die Kamera: Zusammenfassung

X cam

R t   X   0 1

x  KI | 0X cam  KR | t X P  KR | t  41

Wie wird R und t aus dem Bild zurückgewonnen?

42

43

Kalibrierungsverfahren Interne Kalibrierung: Berechnung der Matrix K

Externe Kalibrierung: Berechnung der Pose (R und t)

Komplette Kalibrierung: Berechnung der Projektionsmatrix P

44

Ebenen

 Eine 3D-Ebene ist 2-dimensional!  Projektive 2D2D Transformationen sind Homographien (3x3 Matrizen)

H

 H transformiert 2D Punkte:  H hat 8 unabhängige Parameter  4 Punkten reichen für die Berechnung von H (vergl. DLT) 45

Ebenen

 Eine 3D-Ebene ist 2-dimensional!  Projektive 2D2D Transformationen sind Homographien (3x3 Matrizen)

H

x ' ~ Px 46

Beispiel: Marker Aus H kann man K sowie R und t berechnen Anwendung: quadratische Marker

H

47

Berechnung der Kamerapose I Als Kamerapose wird der Ort und die Orientierung (Blickrichtung, Ausrichtung) der Kamera im dreidimensionalen Raum bezeichnet. Berechnung der Kamerapose mit nur 4 Punktkorrespondenzen (2D  3D) Die 3D Punkte liegen auf einer Ebene Es wird angenommen, dass die Ebene die Gleichung z=0 hat Falls das nicht der Fall ist, werden die Koordinaten vor und nach dem Algorithmus transformiert 48

Berechnung der Kamerapose I Ein 3D Punkt auf der Ebene z=0 wird so definiert: Dann ist die Korrespondenz x  X:

49

Berechnung der Kamerapose I 

Homogene Gleichung zwischen Matrizen



Es gibt ein Skalar lambda, so dass



r1 und r2 sind Einheitsvektoren  lambda kann dadurch gefunden werden



R ist orthogonal 

50

Markertracker

Eingabevideo

Mustererkennung (pattern recognition)

Registrierung virtueller 3D Objekte

3D Poseberechnung

Synthese and Überlagerung mit Eingabevideo

51

Das DLT-Verfahren Komplette Kalibrierung Berechnung der 12 Kameraparameter der Matrix P Benötigt werden 2D Bildpunkte und korrespondierende 3D Punkte DLT: Direct Linear Transformation (20, 13, 6) meter (153, 212) pixel

X   x  Y   p11 p12  y  P    p p22 21    Z  1    p31 p32 1

p13 p23 p33

X  p14   Y   p24  Z  p34   1

52

2D-3D Korrespondenzen Korrespondenzen zwischen: 2D Punkt im Bild 3D Punkt in der Welt

Wie werden sie gefunden: Benutzer Eingabe Merkmale (Marker)

[Heikkilä]

[Hartley + Zisserman] 53

Das DLT-Verfahren

 Korrespondenzen  Kreuzprodukt  Die i-te Zeile von P nennen wir Pi. Dann  Wenn

, dann

54

Das DLT-Verfahren  Bemerkung:  Dann ergibt sich ein System von 3 Gleichungen mit den Variablen Pi

 Davon sind nur 2 unabhängig:

55

Das DLT-Verfahren  1 Korrespondenz   2 Gleichungen in den Parameter Pi

 n Korrespondenzen  2n Gleichungen  6 Korrespondenzen 12 Gleichungen für 12 Unbekannten  Mit P und K lassen sich R und t berechnen

56

Zusammenfassung

Grundlage der projektiven Geometrie Homographie in 2D und Projektion auf 2D Bildebene 2 Methoden zu Berechnung der Kamerapose

-- Danke und bis nächste Woche --

57