Folien (.pdf - 3.4 MB) - Fakultät Informatik
Folien (.pdf - 3.4 MB) - Fakultät Informatik
Folien (.pdf - 3.4 MB) - Fakultät Informatik
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