29.01.2014 Aufrufe

Folien (.pdf - 3.4 MB) - Fakultät Informatik

Folien (.pdf - 3.4 MB) - Fakultät Informatik

Folien (.pdf - 3.4 MB) - Fakultät Informatik

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Fakultät</strong> <strong>Informatik</strong> - Professur Computergrafik und Visualisierung<br />

Diplomarbeit<br />

Merkmalsbasiertes Morphing im Kontext<br />

einer webbasierten Bildergalerie<br />

Christian Schubert<br />

Dresden, 17.1.2013


Allgemeine Informationen<br />

●<br />

Thema:<br />

Entwicklung einer webbasierten Softwarelösung zur Präsentation von<br />

Bildergalerien unter Verwendung von bildbasiertem Morphing<br />

●<br />

Schwerpunkte:<br />

• Recherche<br />

• Akquisition<br />

• Vorverarbeitung<br />

• Visualisierung<br />

• Evaluation<br />

●<br />

Hochschullehrer:<br />

Prof. Dr. rer. nat. Stefan Gumhold<br />

●<br />

Betreuer:<br />

Dipl.-Bioinf. Marcel Spehr<br />

2/45


Gliederung<br />

1. Motivation<br />

2. Grundlagen<br />

3. Konzeption<br />

4. Implementierung<br />

5. Evaluation<br />

6. Programmvorführung<br />

7. Ergebnisse & Fazit<br />

8. Quellen [0]<br />

3/45


Motivation<br />

Bildbasiertes Morphing<br />

- oft struktur-/distanzbasiert<br />

- Bildinhalte zumeist irrelevant<br />

➔<br />

Farb-/Tiefendifferenzen werden ignoriert<br />

Restriktionen<br />

- wenig Tiefenunterschiede<br />

- wenig Verdeckung & Tiefenparallaxe<br />

➔<br />

Vorteile durch Farb- & Tiefeninformationen ?<br />

[1]<br />

4/45


Grundlagen<br />

Bild<br />

• Abbildung von Vektor auf Intensität/Farbe<br />

• Rechteckstruktur, begrenzt Definitionsmenge<br />

• diskrete Quantisierung durch Pixelgitter<br />

Morphing [4,5,6]<br />

• Morphing = Warping + Blending<br />

➔<br />

Warping = Verzerren/Verformen<br />

➔<br />

Blending = Mischen<br />

➔<br />

Transition über Kontrollparameter t<br />

5/45


Grundlagen<br />

Warping<br />

Ziel: Überdeckung korrespondierender Bildteile im Bildraum<br />

●<br />

wichtigster Teilschritt beim Morphing !<br />

●<br />

direkter Einfluss auf optische Qualität<br />

➔<br />

Fehler führen zu Ghosting, Verzerrungen usw.<br />

6/45


Grundlagen<br />

Warping-Klassifizierung<br />

• Forward Mapping<br />

[2]<br />

• Inverse Mapping<br />

➔<br />

besserer Ansatz, da für x' Farbwert garantiert<br />

[2]<br />

7/45


Grundlagen<br />

Warping-Methoden<br />

• Parametrisiertes Warping<br />

• Nichtparametrisiertes Warping<br />

●<br />

Korrespondenzpunkte als Basis<br />

●<br />

diverse Ansätze verfügbar<br />

➔<br />

Netzbasiert<br />

➔<br />

Feldbasiert (Beier & Neely)<br />

➔<br />

Kurvenbasiert (RBF)<br />

➔<br />

Dichte Korrespondenzfelder<br />

[4]<br />

[2]<br />

[2,4]<br />

8/45


Grundlagen<br />

Warping mittels dichter Korrespondenzfelder<br />

• pro Feldzelle ein Offset-Vektor<br />

• individuelles, unabhängiges Warping pro Pixel<br />

• beliebige Interpolation der Feldwerte<br />

➔<br />

Korrespondenzen als Stützstellen<br />

➔<br />

baryzentrisch, bilinear,..., bilateral<br />

9/45


Grundlagen<br />

Warping mittels dichter Korrespondenzfelder<br />

Korrespondenzfeld , kodiert per HSV-Farbmodell<br />

10/45


Konzeption<br />

Ziel<br />

Eine Softwarelösung, welche die Generierung und Präsentation<br />

von Bildergalerien unter Verwendung von Morphing ermöglicht<br />

Kriterien<br />

• Korrespondenzfelder als Grundlage<br />

• Trennung Vorverarbeitung/Präsentation<br />

• Beliebige Quelldaten (2D/3D)<br />

• Konfigurierbare Feldgenerierung<br />

• optionale Einbindung von Tiefeninformationen<br />

11/45


Konzeption<br />

Allgemeiner Lösungsansatz<br />

1) Bilder-Import<br />

2) Definition des Bildergraph<br />

3) Korrespondenzsuche<br />

➔<br />

Basis für Raumstrukturen<br />

4) Korrespondenzfeld-Generierung<br />

➔<br />

Korrespondenzen als Stützstellen<br />

➔<br />

diverse Interpolationsmethoden<br />

5) Bildübergang durch Morphing<br />

• Warping über Korrespondenzfelder<br />

12/45


Konzeption<br />

Feldgenerierung – Interpolationsmethoden<br />

• Baryzentrische Interpolation<br />

2<br />

• Bilineare Interpolation<br />

• Shepard/IDW Interpolation<br />

3<br />

• Gauß Interpolation<br />

• Bilaterale Interpolation<br />

1<br />

(1) (3)<br />

13/45


Konzeption<br />

Feldgenerierung - Bilaterale Interpolation [12,13,14]<br />

●<br />

Bilateraler Bildfilter als Basis<br />

●<br />

kombiniert versch. Metriken (Farbe, Abstand,...)<br />

●<br />

adaptiver Filterkernel<br />

➔ je geringer Differenz, umso größer Einfluss<br />

[11]<br />

14/45


Konzeption<br />

Feldgenerierung - Bilaterale Interpolation<br />

●<br />

●<br />

k nächsten Stützpunkte im Bildraum bilden Basis<br />

➔<br />

es gibt keine feste Umgebung S !<br />

d wird an der Position p interpoliert<br />

➔<br />

Farbdifferenzen beeinflussen Gewichtung<br />

15/45


Konzeption<br />

Gesamtstruktur<br />

16/45


Konzeption<br />

Vorverarbeitung 1/2<br />

1) Import<br />

●<br />

Bilderimport<br />

●<br />

Graph-Definition<br />

●<br />

Korrespondenzsuche<br />

2) Datenaufbereitung<br />

●<br />

Bildskalierung/-ausrichtung<br />

●<br />

Glättung & Segmentierung<br />

●<br />

Triangulierung<br />

17/45


Konzeption<br />

Vorverarbeitung 2/2<br />

3) Felderzeugung<br />

●<br />

Vorverarbeitung<br />

➔<br />

Tiefenabtastung, Raycasting<br />

●<br />

●<br />

Interpolation<br />

➔<br />

äquidistantes Line-Sampling<br />

➔<br />

gemittelte Farbdifferenz/-gradient als<br />

Gewicht<br />

Nachbereitung<br />

➔<br />

Feld-Normierung<br />

➔<br />

Berechnung Fehlermasken durch<br />

Prewarping & Bildabgleich<br />

4) Export<br />

●<br />

Bild-, Feld- und Graph-Export<br />

18/45


Konzeption<br />

Präsentation 1/2<br />

1) Import<br />

●<br />

Galerie-Import<br />

●<br />

Laden von Bild- und Felddaten<br />

●<br />

Graph-Rekonstruktion<br />

2) Navigation<br />

●<br />

Bildergraph als Grundlage<br />

●<br />

Start bei Wurzelknoten (1. Bild)<br />

●<br />

Traversierung des Bildergraph<br />

●<br />

Hotspots lösen Übergang aus<br />

➔<br />

hier Morphing notwendig<br />

19/45


Konzeption<br />

Präsentation 2/2<br />

3) Rendering<br />

●<br />

Morphing – Standard<br />

➔<br />

über Korrespondenzfelder<br />

➔<br />

Inverse Mapping<br />

➔<br />

Transitionsparam t steuert<br />

Warping und Blending<br />

●<br />

Morphing – Erweitert<br />

➔<br />

Warping der Fehlermasken<br />

➔<br />

adaptives Blending pro Pixel<br />

über Sigmoidfunktion<br />

➔<br />

angelehnt an Arbeit von T.<br />

Stich & M. Magnor [8]<br />

20/45


Implementierung<br />

Ziel<br />

Prototypische Umsetzung einer zweiteiligen Programmlösung,<br />

die auf der vorgestellten Konzept basiert<br />

Merkmale<br />

●<br />

●<br />

●<br />

2 getrennte Applikationen<br />

➔<br />

MorphGraphMaker (MGM)<br />

➔<br />

WebGLallery<br />

Interoperabilität, homogener Datentransfer<br />

➔<br />

WGL-Format (XML), enthält Struktur und Bildpfade<br />

moderne Web-Technologien: JS, HTML5, PHP, CSS, WebGL<br />

21/45


Implementierung<br />

Gesamtstruktur<br />

22/45


Implementierung<br />

MGM<br />

• Win32-Anwendung, C++<br />

• Mehrkernunterstützung, skalierbar<br />

• Dialog- und Batch-Modus<br />

• OpenCV, PCL, FLANN, Boost, TTL, CGV,...<br />

23/45


Implementierung<br />

MGM – Import<br />

• Modi: Default, P3P (Bilder + P3P-Datei), Brachmann (Bildergraph)<br />

➔<br />

2 Import-Pfade<br />

• Korrespondenzsuche: mittels SIFT + RANSAC<br />

• Mesh-Generierung: Delaunay-Triangulierung (TTL) im Bildraum<br />

24/45


Implementierung<br />

MGM – Import<br />

Mesh-Generierung<br />

25/45


Implementierung<br />

MGM – Datenerzeugung<br />

• Modifikation: Glättung (OpenCV), Segmente (SLIC Superpixel)<br />

• Tiefenabtastung: First-Hit-Raycasting (nutzt Octree)<br />

• Felderzeugung: k-Nächste-Nachbar-Suche (PCL), Interpolation<br />

• Fehlermaske: Prewarping, Farbdifferenz (CIEDE2000)<br />

26/45


Implementierung<br />

MGM – Datenerzeugung<br />

Bildglättung und -segmentierung, Tiefenabtastung<br />

Prewarping, Fehlermaske<br />

27/45


Implementierung<br />

MGM – Export<br />

• Bild-Export: Reskalieren und Export (FreeImage)<br />

• Graph-Export: DOM-basiert, Ausgabe als WGL-Datei (TinyXML)<br />

• Feld-Export: ARGB-Kodierung, Export als Bild → Kompression!<br />

28/45


Implementierung<br />

MGM – Export<br />

HSV-Kodierung<br />

●<br />

Hue = Richtung, S = V = 1<br />

●<br />

zur Veranschauung<br />

ARGB-Splitted<br />

●<br />

2D-Vektor als 32-Bit Wert<br />

●<br />

16 Bit pro Komponente, AR|GB = X|Y<br />

●<br />

guter Kompromiss Qualität/Effizienz<br />

RGB-Separiert<br />

●<br />

getrennte Vektorkomponenten<br />

●<br />

je 24 Bit (RGB) für X und Y (signed)<br />

●<br />

problemloses Laden! (HTML5...)<br />

29/45


Implementierung<br />

MGM - Hauptdialog<br />

30/45


Implementierung<br />

WebGLallery<br />

●<br />

●<br />

●<br />

Webanwendung für Bildbetrachtung<br />

in JavaScript implementiert<br />

Web-Technologien: CSS, PHP, HTML5, WebGL<br />

31/45


Implementierung<br />

WebGLallery<br />

Import<br />

●<br />

●<br />

lädt WGL-Dateien von Webserver über PHP<br />

Einlesen per XMLHttpRequest + DOMParser<br />

Archiv<br />

●<br />

●<br />

zentrales Galerie-Archiv<br />

einmalige Initialisierung, Cachen der Galerien (nur Struktur!)<br />

Renderer<br />

●<br />

nutzt WebGL und HTML5 → 2D & 3D<br />

●<br />

basiert auf eigenständigem Framework<br />

●<br />

Geometriepuffer, Texturen, Rendertargets, Shader,...<br />

32/45


Implementierung<br />

WebGLallery<br />

Selektionsmodus<br />

●<br />

fungiert als Hauptmenü → Galerieselektion<br />

●<br />

per WebGL gerenderte 3D-Bildstapel<br />

●<br />

Layout und Textinfo über HTML5<br />

33/45


Implementierung<br />

WebGLallery<br />

Präsentationsmodus<br />

●<br />

planare Projektion der Bilder<br />

●<br />

Bildwechsel mittels Morphing im Fragment Shader<br />

➔<br />

pro Korrespondenzfeld 2 Fließkommatexturen<br />

➔<br />

Inverse Mapping im Texturraum<br />

34/45


Evaluation<br />

Ziel<br />

Evaluation der implementierten Interpolationsansätze, um deren<br />

Nutzen für die Generierung dichter Korrespondenzfelder festzustellen<br />

Rahmenbedingungen<br />

• Bilaterale Interpolation (+ weitere Methoden)<br />

• 3 Testszenen, erstellt in Autodesk 3ds Max<br />

• Statische Renderings als Ground Truth<br />

• Schrittbreite für t: 0.1 → 11 Frames<br />

• variable Anzahl Stützstellen k, mit u. ohne Bildtiefe<br />

• Einsatz des MGM-Evaluationstools, SSIM-Index<br />

35/45


Evaluation<br />

Szene „Eval1“<br />

Ausgangs- und Zielbild<br />

Ausgangsbild: Triangulierung, Segmentierung und Tiefenmaske<br />

36/45


Evaluation<br />

Szene „Eval1“<br />

Morphing-Sequenz (baryzentrisch, k = 3, ohne Tiefe)<br />

Ähnlichkeit zur Ground Truth (k = 3, links 2D, rechts 3D)<br />

37/45


Evaluation<br />

Szene „Eval3“<br />

Ausgangs- und Zielbild<br />

Ausgangsbild: Triangulierung, Segmentierung und Tiefenmaske<br />

38/45


Evaluation<br />

Szene „Eval3“<br />

Morphing-Sequenz (baryzentrisch, k = 3, ohne Tiefe)<br />

Ähnlichkeit zur Ground Truth (k = 3, links 2D, rechts 3D)<br />

39/45


Evaluation<br />

Auswertung<br />

●<br />

großer Abstand zu Quellbilder → geringe Ähnlichkeit !<br />

●<br />

SSIM-Werte u.U. konträr zu subjektiven Eindruck !<br />

●<br />

Baryzentrische Interpolation ist zu bevorzugen !<br />

➔<br />

➔<br />

relativ stabile und scharfe Ergebnisse<br />

Gauß, Shepard, GaußColor ähnlich gut<br />

●<br />

große Tiefenunterschiede → vermehrt Artefakte (Ghosting,...)<br />

➔<br />

Der Einsatz der bi-/trilateralen Interpolation führt zu<br />

keinen signifikanten Vor- oder Nachteilen<br />

40/45


Programmvorführung<br />

Programmvorführung<br />

41/45


Ergebnisse/Fazit<br />

Ergebnisse<br />

• Flexible, zweiteilige Softwarelösung (Vorverarbeitung + Präsentation)<br />

• Umfassende Evaluation der implementierten Verfahren<br />

➔<br />

bilaterale Feldinterpolation im Fokus<br />

Fazit<br />

• Das Ziel einer Softwarelösung, die die Darstellung von Bildergalerien<br />

im Webbrowser mittels Morphing erlaubt, wurde vollständig erreicht.<br />

• Es wurde gezeigt, dass bildbasiertes, hochwertiges Morphing mittels<br />

dichter Korrespondenzfelder möglich ist<br />

• Die bilaterale Interpolation führt zu keinen Vorteilen beim Morphing<br />

unter Berücksichtigung von Farb- u./o. Tiefenunterschieden<br />

42/45


Quellen<br />

[0] The Matrix, Andy and Larry Wachowski, Warner Bros. Pictures, 1999<br />

[1] Musikvideo „Back or White“, Michael Jackson, Epic Records, 1991<br />

[2] I Chen Lin. Warping & Morphing. http://www.cs.nccu.edu.tw/...-morphing.ppt, 2011<br />

[3] Terminator 2: Judgment Day, James Cameron, TriStar Pictures, 1992<br />

[4] Feature-based image metamorphosis, Thaddeus Beier and Shawn Neely,<br />

pages 35 - 42, SIGGRAPH'92, 1992<br />

[5] Image morphing: a survey, George Wolberg, The Visual Computer, 360-372, 1998<br />

[6] Warping and Morphing, National Chiao Tung University, Taiwan, I-Chen Lin<br />

http://caig.cs.nctu.edu.tw/.../..._Morphing_S10.<strong>pdf</strong><br />

[7] Neumarkt & Frauenkirche, Eric Brachmann, CGV-Lehrstuhl, TU Dresden, 2012<br />

[8] Image morphing for space-time interpolation, T. Stich and M. Magnor, TU<br />

Braunschweig, Inproceedings SIGGRAPH2007<br />

[9] High-quality video view interpolation using a layered representation, Zitnick, Kang,<br />

Uyttendaele, Winder, Szeliski<br />

[10] Moving gradients: a path-based method for plausible image interpolation, Mahajan,<br />

Huang, Matusik, Ramamoorthi, Belhumeur, ACM Trans. Graph., 2009<br />

[11] Image-based rendering by joint view triangulation, Lhuillier, M. and Quan, Long,<br />

IEEE Trans. Cir. and Sys. for Video Technol., 1051-1063, 2003<br />

[12] A gentle introduction to bilateral filtering and its applications, Paris, Sylvain and<br />

Kornprobst, Pierre and Tumblin, Jack and Durand, Fredo, SIGGRAPH2007<br />

43/45


Quellen<br />

[13] Fixing the Gaussian Blur: The Bilateral Filter, Sylvain Paris, SIGGRAPH2007,<br />

http://people.csail..../slides/03_definition_bf.<strong>pdf</strong>, 2007<br />

[14] Fast median and bilateral filtering, Ben Weiss, ACM Trans. Graph., SIGGRAPH2006,<br />

pages 519-526, 2006<br />

44/45


Vielen Dank!<br />

45/45


Zusatz<br />

Problemanalyse – Bilaterale Interpolation<br />

●<br />

Inhomogenes Warping<br />

➔<br />

durch Tiefenparallaxe<br />

unterschiedliches Offset<br />

●<br />

Bilaterale Gewichtung<br />

➔<br />

in verdeckten Bildbereichen<br />

werden Vektoren interpoliert<br />

●<br />

Inverse Mapping<br />

➔<br />

man geht von Zielposition<br />

aus, dadurch Auslesen in<br />

verdeckten Bereichen (siehe<br />

Bild links!)<br />

46/45


Zusatz<br />

Bilaterale Interpolation - Funktionsanalyse<br />

●<br />

Test-Interpolationsmodul im MGM<br />

➔<br />

rekonstruiert pixelweise Quellbilder über<br />

bilaterale Interpolation der k Stützstellen<br />

●<br />

wahlweise gemittelte Farbdifferenz oder<br />

Farbgradient<br />

●<br />

Interpolation über Farbgradient problematisch !<br />

●<br />

Skalierung der max. Farbdifferenz wichtig ! Original + Triangulierung<br />

(16 Stützstellen)<br />

k = 8, 100 % bzw. 10 % der max. Farb-<br />

Diff. für Gauß-Farbgewichtung<br />

k = 8, 100 % bzw. 10 % des max. Farb-<br />

Grad. für Gauß-Farbgewichtung<br />

47/45


Zusatz<br />

Alternativer Lösungsansatz „Multilayer-Morphing“<br />

●<br />

Bildsegmentierung → Segmentebenen<br />

●<br />

korrespond. Segmentebenen → Ebenenpaar<br />

●<br />

●<br />

●<br />

(Tiefenextraktion über Segmentebenen)<br />

für jedes Ebenenpaar<br />

➔<br />

Korrespondenzsuche<br />

➔<br />

Bild-/Tiefenextrapolation<br />

➔<br />

Korrespondenzfelder erzeugen<br />

➔<br />

Tiefensortierung<br />

➔<br />

Morphing<br />

Blending der interpolierten Ebenen<br />

48/45

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!