Computer Vision V. Dynamische Stereoanalyse Datum: 12.01.2001 Vortrag von: Mark Kiwitz Einführung Welche Dynamikursachen betrachten wir? Bedeutung von Bewegungsvektoren Darstellung von Vektorfeldern Grundlage für Gestaltsrekonstruktion Berechnungsverfahren: optischer Fluß 2 Gliederung 1. Verschiebungsvektoren & Rekonstruktion 2. Optischer Fluß 3. Objektrotation & Rekonstruktion 4. Diskussion 3 1. Verschiebungsvektoren & Rekonstruktion Theoretische Grundlagen für dynamische Bildaufnahmen keine Einschränkung der 3D-Bewegung keine kalibrierten Bildaufnahmesituationen Berechnung von Oberflächennormalen aus lokalen Verschiebungsvektoren 4 Lokale Verschiebungsvektoren Konstante Kameraposition Absolute Bewegungen Formfeste Szenenobjekte Erzeugung einer Bildfolge E1 , E2 , E3 , ... durch in konstanten Zeitabstand tconst aufgenommene Abbilder Ei 5 Lokale Verschiebungsvektoren Oberflächenpunkt P wird in Ei auf palt = (x,y) und in Ei+1 auf pneu projiziert Diskreter Fall für Zeitpunkte ti = i tconst : dxy (ti) = pneu - palt = tconst (xy (ti) , xy(ti) )T Allgemeiner Fall: vxy (ti) = dp/dt (t) = p’(t) = (xy (t) , xy(t) )T & dxy (t) = tconst vxy (ti) pneu = palt + tconst p’(t) 6 Lokale Verschiebungsvektoren Veschiebungsvektoren dxy (t) repräsentieren die 3D-Bewegung Menge dieser Vektoren bilden das lokale Verschiebungsfeld , welche die Grundlage für Untersuchungen der Bewegungsgeometrie bilden Berechnung nur möglich, wenn einzelne Oberflächenpunkte eindeutig in der Bildfolge verfolgt werden können (Aperturproblem) 7 Objektbewegung und lokale Verschiebung Lokale Verschiebungsfelder sind sinnvoll für Rekonstruktionsalgorithmen, aber es besteht das Problem, daß dabei die 3D-Bewegungsvektoren nicht immer konstant sind. Absolute Geschwindigkeit des Oberflächenpunktes muß ermittelt werden. 8 Objektbewegung und lokale Verschiebung Geschwindigkeit des Oberflächenpunktes P = (X ,Y ,Z ): vP(t) = vXYZ (t) Für kamerazentriertes Projektionsmodell seien P = (X ,Y ,Z )T und p = (x ,y ,f )T Punktvektoren Geschwindigkeiten der Punkte: vXYZ (t) = dP/dt(t) = P’(t), dxy (t) = dp/dt(t) = p’ (t) Skalarprodukt des Punktes P = (Xt ,Yt ,Zt ) mit dem Einheitsvektor k = (0,0,1)T ist Zt 9 Objektbewegung und lokale Verschiebung Laut Strahlensatz gilt folgender Zusammenhang: p(t) = f/Zt P(t) Aus Kreuzproduktregel (a x b) x c = (a c) b - (b c) a dxy (t) = folgt: f/Zt2 (P(t) x vXYZ (t)) x k 10 Objektbewegung und lokale Verschiebung Nutzung für synthetische Objekte zur Erzeugung eines lokalen Verschiebungsfeld Schlüsse ziehen auf das Verhalten von lokalen Verschiebungsvektoren relativ zur Objektgeometrie Diskontinuitäten bei Verdeckungskanten 11 Objektbewegung und Gradienten Oberflächenpunkt P sei auf einer Facette Facette liegt auf der Ebene: Z = pX + qY + r Für P gilt speziell P = (A, B, pA + qB + r ) Bewegung der Facette ist eine Kombination aus Rotation und nachfolgender Translation grad P = (nx(P), ny(P), nz(P))T = (p, q, -1)T Drehung um Rotationszentrum (0, 0, r )T Rotationsachse sei (1 , 2 , 3 )T Translationsvektor sei (a ,b ,c )T 12 Lokale Verschiebungen und Gradienten Oberflächengradienten und lokale Verschiebungen sind voneinander abhängig Diese Abhängigkeiten zu überprüfen sind eine spezielle Zielstellung der Gestaltrekonstruktion Durch Approximation können Verschiebungsfelder als Polynome dargestellt werden 13 2. Optischer Fluß Ausgangsproblem: bis jetzt wurden nur dynamische formfeste Szenenobjekte betrachtet; was ist, wenn die Kamera sich ebenfalls bewegt oder das Objekt nicht konstant ist (z.B.Wolken)? Der optische Fluß bietet nun Verfahren, so daß Verschiebungsfelder auch für solche Situationen berechnet werden können 14 Lösungswege Zu bestimmen ist eine Bildfunktion, die “Pixel” auf jeweils einen Wert abbildet Diese nennt man Bildirradianz E (x, y, ti) von Bild Ei im Punkt p = (x, y ), für i = 0,1,2,... und ti = i tconst Der optische Fluß sei nun definiert als ui (x, y ) = (ui (x, y ), vi (x, y ) )T von Bild Ei zu Ei+1 15 Lösungswege Bildwerttreue des optischen Flusses: E (x +ui (x, y ), y +vi (x, y ), ti+1) = E (x, y, ti) (dies kann jedoch Algorithmen zur Vektorberechnung von (u, v )T nur gering unterstützen) Zielstellung ist, daß der optische Fluß der lokalen Verschiebung entspricht Bewegungstreue des optischen Flusses: xy (ti) = ui (x, y ) , xy(ti) = vi (x, y ) 16 Horn-Schunck-Verfahren Darstellung der Bildfunktion E (x, y, ti) für einen kleinen Schritt (x, y, t) durch eine Taylorreihe E (x + x, y + y, ti + t ) = E (x, y, ti) + x Ex + y Ey + t Et + e Aus der Bildwerttreue bzw. der Bewegungstreue des optischen Flusses folgt die Horn-Schunck- Bedingung: 0 = ui (x, y ) Ex + vi (x, y ) Ey + Et 17 Horn-Schunck-Verfahren Für einen bestimmten Zeitpunkt der Bildfolge nimmt die Horn-Schunck-Bedingung die Form u Ex + v Ey = -Et bzw. (Ex ,Ex ) (u,v )T = -Et (die Ableitungen von E seien vorrausgesetzt) u und v sind dadurch eingeschränkt (Darstellung als Gerade im uv-Raum) Nun könnte man eine Lösung wählen ( Schnittpunkt einer Senkrechten mit der Geraden) 18 Horn-Schunck-Verfahren Da für die Bestimmung geeigneter u - und v Werte eine Gerade unendlich viele Lösungen bietet, ist es sinnvoll eine weitere Annahme für den optischen Fluß zu untersuchen Es existiert folgende Feststellung: benachbarte Oberflächenpunkte eines sich bewegenden Objektes besitzen etwa die selben Verschiebungsvektoren (Glattheit des Vektorfeldes) 19 Horn-Schunck-Verfahren Diese Glattheit ist gegeben, wenn die Änderungen des Vektorfeldes klein sind man bestimmt die erste Ableitung des Vektorfeldes und versucht diese zu minimieren u (x, y ) = (u (x, y ), v (x, y ) )T insgesamt vier mögliche Ableitungen: ux (x, y ), uy (x, y ), vx (x, y ), vy (x, y ) 20 Horn-Schunck-Verfahren Um jetzt den optimalen Wert herauszufinden, werden die einzelnen Ableitungen quadriert und anschließend aufsummiert ux (x, y )2 +uy (x, y )2 +vx (x, y )2 +vy (x, y )2 Da dieser Fehler vom optischen Fluß abhängt, muß zusätzlich die Horn-Schunck-Bedingung eingehalten werden, d.h. hier muß ebenfalls der Fehler berücksichtigt werden (Fehlerterm e) folgende Funktionale sind zu minimieren 21 Horn-Schunck-Verfahren Fg (u, v ) = (ux2 + uy2 + vx2 + vy2 )dxdy Fh (u, v ) = (u Ex +v Ey +Et ) dxdy 2 Der Fehler insgesamt ist also: FkHornSchunck (u, v ) = Fg (u, v )+ Fh (u, v ) ist hierbei der Wichtungsparameter und ist nach der Genauigkeit der Bildirradianzmessung zu wählen (größer, je mehr die Horn-SchunckBedingung gerechtfertigt ist) 22 Horn-Schunck-Verfahren Das Funktional FkHornSchunck (u, v ) gilt es nun zu minimieren Möglichkeiten sind zum einen die Variationsrechnung (Euler-Gleichungen), zum anderen die sog. diskrete Iteration 23 Horn-Schunck-Verfahren Für die diskrete Iteration werden Bildpunkte nur in ganzzahligen Koordinaten betrachtet (i, j ), mit 1 i M und 1 j N und ganzzahlige Zeitpunkte t = 0, 1, 2, ... Nun kann der Glattheitsfehler zum Zeitpunkt t abgeschätzt dargestellt werden: fGlattheit (i, j ) = 1/4 ((ui+1,j - uij )2 + (ui,j+1 - uij )2 2 2 + (vi+1,j - vij ) + (vi,j+1 - vij ) ) 24 Horn-Schunck-Verfahren Der Fehler der Horn-Schunck-Bedingung wird dann folgendermaßen abgeschätzt: fHS (i, j ) = = Ex (x, y, t ) uij + Ey (x, y, t ) vij + Et (x, y, t ) Also gilt dann folgende Funktion zu minimieren: ftotal (i, j ) = ( fGlattheit (i, j ) + fHS (i, j ) ) Diese Funktion wird nun abgeleitet, um das Minimum bestimmen zu können 25 Diskussion Ist die Bewegungstreue immer gültig? Zumindest ist es verifizierbar, daß der berechnete optische Fluß einer Projektion des Verschiebungsvektors auf den Bildwertgradienten (Ex (x, y, t ), Ey (x, y, t ))T entspricht. Verläuft der Verschiebungsvektor entlang einer Bildkante so ist der dazugehörige optische Fluß an dieser Stelle der Nullvektor (Aperturproblem) 26 3. Objektrotation und Rekonstruktion Zunächst wurden die Verhältnisse zwischen 3D-Bewegung und lokalen Verschiebungsvektoren betrachtet, sowie mit dem optischen Fluß ein Berechnungsverfahren dieser Vektoren vorgestellt Nun wird die Gestaltrekonstruktion betrachtet, unter der Vorgabe einer statischen Kamera und Objekte auf einer Drehscheibe 27 Weltkoordinaten aus Punktkorrespondenz Als Ergebnis einer Kalibrierung (sh. Vortrag II) werden eine Rotationsmatrix R, ein Translationsvektor T, die Kamerakonstante fk , die Verzerrungskoeffizienten 1 und 2 , der Bildhauptpunkt (cx , cy ) und der Skalierungsfaktor sx vorrausgesetzt Für das X Y Z -Weltkoordinatensystem stimmen die Z -Achse mit der Drehachse überein und die Scheibenebene sei parallel zur X Y -Ebene 28 Weltkoordinaten aus Punktkorrespondenz Man betrachte nun einen beliebigen Oberflächenpunkt P = (XW , YW , ZW )T Zum Zeitpunkt t befindet sich dieser Punkt P(t) und in t +1 : P(t +1) = R P(t) Die Transformation in Kamerakoordinaten liefert R P(t) + T = C(t) bzw. RR P(t) + T = C(t +1) Es sei C(t) = (X (t),Y (t),Z (t) ) die Darstellung der Position des beobachteten Oberflächenpunktes 29 Weltkoordinaten aus Punktkorrespondenz Die Projektionszentrumskoordinaten sind x (t) = fk /Z (t) X (t) und y (t) = fk /Z (t) Y (t) Beziehungen zu den Verzerrungskoordinaten x (t) = x (1 + 1 r (t)2 y (t) = y (1 + 1 r (t)2 (t) (t) + 2 r (t)4 ) + 2 r (t)4 ) 30 Eingeschränkter Suchbereich für die Korrespondenzanalyse In kalibrierten Situationen können aus korrespondierenden Punkten Tiefenwerte bzw. Weltkoordinaten berechnet werden Einschränkung der Korrespondenzsuche des Suchbereichs durch die Epipolargeometrie jeweils auf eine Gerade bzw. auf eine Strecke Zur selben Situation kommt hinzu, daß die Kamera entgegengesetzt der Rotationsrichtung sich auf einer Kreisbahn bewegt 31 Eingeschränkter Suchbereich für die Korrespondenzanalyse Wieder wird hierbei ein Punkt P betrachtet Dieser ist zum Zeitpunkt t in der unverzerrten Bildebene in den Bildpunkt p(t) = (x (t) , y (t) ) projiziert Dieser Projektionsstrahl schneidet den Zylindermantel in die Punkte T1 und T2 Zum Zeitpukt t +1 werden beide Punkte in die Bildpunkte t1 und t2 projiziert, die Verbindungsgerade ist dann der eingeschränkte Suchbereich 32 4. Diskussion Wie kann nun allgemein eine dynamische Stereoanalyse erfolgen ? 1. Berechnung von lokalen Verschiebunsvektoren 2. Bestimmung der Oberflächenpunkte entsprechender Verschiebungsvektoren 3. Rekonstruktion geschlossener Oberflächen mit Hilfe von Glättungs-, Approximations- oder Interpolationsalgorithmen angewendet auf einzelne rekonstruierte Oberflächenpunkte 33 Diskussion In erster Linie werden diese genannten Verfahren für Navigationslösungen (z.B. gesicherte Abstandsmessungen) verwendet In heutiger Zeit werden diese auch für Modellierungen von 3D-Objekten in Simulationen oder Spielen verwendet (z.B. Motion-Capturing) 34 Ende des Vortrages Vielen Dank für Eure Aufmerksamkeit