Hauptseminar Robot/Computer Vision SS 2001 Active Contours von Andrew Blake und Michael Isard B-Splines Florian Klaschka
Florian Klaschka2 Übersicht Anwendungen B-Splines Basisfunktionen –Formeln –Knotenvektor –Eigenschaften –Periodische Basisfunktionen –Mehrfache Knoten Normen, Fläche und Momente
Florian Klaschka3 Anwendung: Active Contours
Florian Klaschka4 Anwendungen Active Contours 2D-/3D-Modellierung und Design Messwertauswertung, Interpolation Funktionsapproximation
Florian Klaschka5 B-Spline Parametrisierte, polynomielle Kurve im R n der Ordnung d Besteht aus polynomiellen Segmenten (engl: spans) der Ordnung d Ordnung d Grad d-1 (gebräuchlich: d=3 oder d=4) Gewichtete Summe von N B Basisfunktionen B n, n = 0, 1,..., N B -1, Gewichte: die N B Stützpunkte q n, n = 0, 1,..., N B -1
Florian Klaschka6 B-Spline Beispiel
Florian Klaschka7 B-Spline Formel mit Stützpunkten q n =(x n, y n ) T und Basisfunktionen B n (s), n = 0, 1,..., N B -1 definiert für 0 s L
Florian Klaschka8 Beispiel: B-Spline-Funktion (R 1 ) Mit Stützpunkten gewichtete Basisfunktionen und B-Spline- Funktion
Florian Klaschka9 Basisfunktionen Beispiel (d=3)
Florian Klaschka10 Basisfunktionen Bsp. (d=3, N B =4) Weitere Basisfunktionen sind um n verschobene Kopien (im Beispiel, nicht allgemein)
Florian Klaschka11 Knotenvektor K Die Berührpunkten der Basisfunktions-Teilstücke heißen Knoten Der Knotenvektor K setzt sich aus diesen Knoten zusammen Im Beispiel: K = (0, 1, 2, 3, 4, 5, 6) T Knotenvektor bestimmt die Form der Basisfunktionen (Im Beispiel: periodisch, uniform) Knotenvektor bestimmt damit auch L
Florian Klaschka12 Cox-deBoor-Rekursionsformel k n aus Knotenvektor K Voraussetzung: 0/0 = 0
Florian Klaschka13 Basisfunktion B 0,3 (s)
Florian Klaschka14 Eigenschaften Die Kurve liegt in der konvexen Hülle des Kontrollpolygons (convex hull property) d-2 stetige Ableitungen (C d-2 ) auf der Kurve maximal d-2 stetige Ableitungen an den Berührpunkten der Teilstücke
Florian Klaschka15 Periodische Basis Problem: Summe der Basisfunktionen = 1 gilt nicht über dem ganzen Intervall [0, L]
Florian Klaschka16 Periodische Basis Lösung 1: Intervall einschränken auf gültigen Bereich hier: Kontrollpolygon (q 0, q 1,...,q 7 ); Knotenvektor K=(0, 1,..., 10) T ; aber s [2, 8]
Florian Klaschka17 Periodische Basis Lösung 2: Basisfunktionen am Ende des verkürzten Intervalls umbrechen
Florian Klaschka18 Geschlossene B-Spline-Kurve Umbruch führt zu geschlossener Kurve mit K = (0, 1,..., 8) T, s [0, 8] Entspricht Wiederholung von d-1 Stützpunkten am Anfang oder Ende des Kontrollpolygons
Florian Klaschka19 Offene B-Spline-Kurve, Spitzen Wie entstehen offene B-Spline-Kurven (Kurve beginnt im Ersten Stützpunkt und endet im letzten) oder Kurven mit Spitzen in einem Stützpunkt? Zwei Möglichkeiten: –Mehrfache Stützpunkte –Mehrfache Knoten
Florian Klaschka20 Mehrfache Stützpunkte Funktioniert, aber: –Lineare Segmente –Falsche Interpretation bei Approximation
Florian Klaschka21 Mehrfache Knoten Knoten werden überlagert Aus K=(0,1,2,3,4,5) T wird K=(0,1,2,2,3,4) T L = 5 wird zu L = 4
Florian Klaschka22 Spitzen Spitzen in Basisfunktionen erzeugen Spitzen in der Kurve d-3 stetige Ableitungen in der Spitze Allgemein d-m-1 stetige Ableitungen in mehrfachen Knoten mit Multiplizität m
Florian Klaschka23 Offene B-Spline-Basis Dreifachknoten am Anfang und Ende der quadratischen Basisfunktionen (d=3) Knotenvektor K=(0,0,0,1,2,3,4,5,5,5); (offen, uniform) L = 5
Florian Klaschka24 Offene B-Spline-Funktion (R 1 )
Florian Klaschka25 Offener B-Spline (R 2 ) Anfangs- und Endpunkt der Kurve fallen mit erstem und letztem Stützpunkt zusammen Ableitung in diesen Punkten abhängig von erstem und letztem Segment des Kontrollpolygons
Florian Klaschka26 B-Spline-Funktionen(R 1 ) Summenformel für B-Spline-Kurven: Summenformel für B-Spline-Funktionen:
Florian Klaschka27 B-Spline-Funktionen Summenformel als Matrixprodukt: mit Basisvektor: und Kontrollvektor:
Florian Klaschka28 Norm und Inneres Produkt für Spline-Funktionen L 2 -Norm ||x|| für Spline-Funktion x(s): Innere Produkt für zwei Funktionen x(s), y(s):
Florian Klaschka29 Norm und Inneres Produkt als Matrixprodukt L 2 -Norm für Kontrollvektor: mit metrischer Matrix B: Inneres Produkt:
Florian Klaschka30 Anwendung 1 - Inneres Produkt Spline-Approximation durch Methode der kleinsten Quadrate
Florian Klaschka31 Anwendung 2 – Inneres Produkt Funktions-Approximation: Diskrete Approximation:
Florian Klaschka32 Norm und Inneres Produkt für B-Spline-Kurven Kontrollvektor: Kurve als Matrixprodukt:
Florian Klaschka33 Norm und Inneres Produkt für B-Spline-Kurven L 2 -Norm: mit: Inneres Produkt:
Florian Klaschka34 Anwendung – L 2 -Norm Unterschied zwischen zwei Kurven ||Q 1 -Q 2 ||
Florian Klaschka35 L 2 -Norm vs. Euklidische Norm Euklidische Norm:|r 1 -r 0 |<|r 2 -r 0 | L 2 -Norm:||r 2 -r 0 ||< ||r 1 -r 0 ||
Florian Klaschka36 L 2 -Norm und Reparametrisierung Möglichkeiten: –Suche über allen Parametrisierungen –Anderer Abstandsbegriff (später im Buch)
Florian Klaschka37 Fläche und Momente für geschlossenen B-Splines Momente: –Fläche –Schwerpunkt –Trägheit Grobe Unterscheidung von Objekten Initialisierung Verfolgung von Objekten
Florian Klaschka38 Schwerpunkt Einfach, aber nicht invariant gegenüber Reparametrisierungen: Invariant, aber nicht in Q berechenbar:
Florian Klaschka39 Momente Fläche: Schwerpunkt: Trägheit:
Florian Klaschka40 Beispiel
Florian Klaschka41 Literatur zu Splines (Active Contours) David F. Rogers, J. Alan Adams, Mathematical Elements for Computer Graphics, 1990, McGraw-Hill Gerald Farin, Curves and surfaces for computer aided geometric design, 1993, Acad. Press
Florian Klaschka42 The End