Diplomarbeit - Faculty of Computer Science - Technische Universität ...
Diplomarbeit - Faculty of Computer Science - Technische Universität ...
Diplomarbeit - Faculty of Computer Science - Technische Universität ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
TECHNISCHE UNIVERSITÄT DRESDEN<br />
Fakultät Informatik<br />
Institut für S<strong>of</strong>tware- und Multimediatechnik<br />
Pr<strong>of</strong>essur für <strong>Computer</strong>graphik und Visualisierung<br />
<strong>Diplomarbeit</strong><br />
Merkmalsbasiertes Morphing<br />
im Kontext einer webbasierten Bildergalerie<br />
Vorgelegt von: Christian Schubert<br />
Matrikelnummer: 3234139<br />
Abgabedatum: 31.12.2012<br />
Verantwortliche Hochschullehrer:<br />
Pr<strong>of</strong>. Dr. rer. nat. Stefan Gumhold<br />
Betreuer:<br />
Dipl.-Bioinf. Marcel Spehr, Pr<strong>of</strong>essur für <strong>Computer</strong>graphik und Visualisierung
Selbständigkeitserklärung<br />
Hiermit erkläre ich, dass die vorliegende Arbeit selbständig, unter Angabe aller Zitate und<br />
nur unter Verwendung der angegebenen Literatur und Hilfsmittel durch mich angefertigt<br />
wurde.<br />
Dresden, den 31.12.2012<br />
v
Inhaltsverzeichnis<br />
1 Einleitung 1<br />
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1<br />
1.2 Ziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />
1.3 Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />
2 Grundlagen 4<br />
2.1 Bilder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />
2.2 Morphing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />
2.2.1 Warping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
2.2.2 Blending . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
2.2.3 Komposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
2.3 Warping-Ansätze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
2.3.1 Klassifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
2.3.2 Strukturbasierte Methoden . . . . . . . . . . . . . . . . . . . . . . 9<br />
2.3.2.1 Gitternetze . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />
2.3.2.2 Dreiecksnetze . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
2.3.3 Strukturfreie Methoden . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
2.3.3.1 Feldbasiertes Warping . . . . . . . . . . . . . . . . . . . . 11<br />
2.3.3.2 Kurvenbasiertes Warping . . . . . . . . . . . . . . . . . . 12<br />
2.3.4 Weitere Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
2.4 Anwendungsgebiete und -beispiele . . . . . . . . . . . . . . . . . . . . . . 13<br />
2.4.1 Anwendungsgebiete . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
2.4.2 S<strong>of</strong>tware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
2.4.3 Filme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
2.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />
3 Forschungsarbeiten 18<br />
3.1 Image Morping for Space-Time Interpolation . . . . . . . . . . . . . . . . 18<br />
3.1.1 Beschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />
3.1.2 Inhalt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />
3.1.3 Prozessübersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />
3.1.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />
3.2 Silhouette-Aware Warping for Image-Based Rendering . . . . . . . . . . . 21<br />
vii
3.2.1 Beschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />
3.2.2 Inhalt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />
3.2.3 Prozessübersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />
3.2.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />
3.3 Photo Tourism: Exploring Photo Collections in 3D . . . . . . . . . . . . . 27<br />
3.3.1 Beschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
3.3.2 Inhalt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
3.3.3 Prozessübersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />
3.3.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />
3.4 Vergleich und Bewertung . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />
3.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />
4 Konzeption 34<br />
4.1 Ziel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />
4.2 Zielkriterien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />
4.3 Allgemeiner Lösungsansatz . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />
4.4 Interpolationsansätze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br />
4.4.1 Baryzentrische Interpolation . . . . . . . . . . . . . . . . . . . . . 38<br />
4.4.2 Bilineare Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />
4.4.3 Shepard-Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />
4.4.4 Gauß-Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />
4.4.5 Bilaterale Interpolation . . . . . . . . . . . . . . . . . . . . . . . . 42<br />
4.5 Gesamtstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />
4.6 Vorverarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />
4.6.1 Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />
4.6.1.1 Bildimport . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />
4.6.1.2 Grapherzeugung . . . . . . . . . . . . . . . . . . . . . . . 46<br />
4.6.1.3 Korrespondenzdetektion . . . . . . . . . . . . . . . . . . . 47<br />
4.6.2 Datenaufbereitung . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />
4.6.2.1 Bildanpassung . . . . . . . . . . . . . . . . . . . . . . . . 48<br />
4.6.2.2 Bildmodifikation . . . . . . . . . . . . . . . . . . . . . . . 49<br />
4.6.2.3 Triangulierung . . . . . . . . . . . . . . . . . . . . . . . . 49<br />
4.6.3 Datenerzeugung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />
4.6.3.1 Feldvorverarbeitung . . . . . . . . . . . . . . . . . . . . . 51<br />
4.6.3.2 Feldgenerierung . . . . . . . . . . . . . . . . . . . . . . . 51<br />
4.6.3.3 Feldnachbereitung . . . . . . . . . . . . . . . . . . . . . . 55<br />
4.6.4 Export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br />
4.6.4.1 Bildexport . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br />
4.6.4.2 Feldexport . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br />
4.6.4.3 Galerie-Export . . . . . . . . . . . . . . . . . . . . . . . . 56<br />
4.7 Präsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57<br />
viii
4.7.1 Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57<br />
4.7.2 Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57<br />
4.7.3 Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57<br />
4.7.3.1 Blending . . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />
4.7.3.2 Morphing - Standard . . . . . . . . . . . . . . . . . . . . 59<br />
4.7.3.3 Morphing - Adaptiv . . . . . . . . . . . . . . . . . . . . . 59<br />
4.8 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />
5 Implementierung 62<br />
5.1 Gesamtstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />
5.2 Datenformate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br />
5.2.1 P3P-Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br />
5.2.1.1 Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br />
5.2.1.2 Generierung . . . . . . . . . . . . . . . . . . . . . . . . . 64<br />
5.2.2 WGL-Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65<br />
5.2.2.1 Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . 65<br />
5.2.3 Korrespondenzfeld-Formate . . . . . . . . . . . . . . . . . . . . . . 67<br />
5.3 MorphGraphMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68<br />
5.3.1 Eigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68<br />
5.3.2 Systemanforderungen . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />
5.3.3 Bibliotheken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />
5.3.4 Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71<br />
5.3.5 Datenschicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />
5.3.6 Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73<br />
5.3.7 Datenerzeugung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />
5.3.8 Export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br />
5.3.9 Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78<br />
5.3.10 Betriebsmodi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br />
5.3.10.1 Dialog-Modus . . . . . . . . . . . . . . . . . . . . . . . . 80<br />
5.3.10.2 Batch-Modus . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />
5.4 WebGLallery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91<br />
5.4.1 Eigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91<br />
5.4.2 Systemanforderungen . . . . . . . . . . . . . . . . . . . . . . . . . 92<br />
5.4.3 Bibliotheken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93<br />
5.4.4 Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94<br />
5.4.5 Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94<br />
5.4.5.1 Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94<br />
5.4.5.2 Archiv . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95<br />
5.4.5.3 Selektionsmodus . . . . . . . . . . . . . . . . . . . . . . . 95<br />
5.4.5.4 Präsentationsmodus . . . . . . . . . . . . . . . . . . . . . 95<br />
5.4.5.5 Renderer . . . . . . . . . . . . . . . . . . . . . . . . . . . 96<br />
ix
5.4.6 Bildübergang & Morphing . . . . . . . . . . . . . . . . . . . . . . . 98<br />
5.4.7 Benutzeroberfläche . . . . . . . . . . . . . . . . . . . . . . . . . . . 99<br />
5.4.7.1 Selektionsmodus . . . . . . . . . . . . . . . . . . . . . . . 99<br />
5.4.7.2 Präsentationsmodus . . . . . . . . . . . . . . . . . . . . . 100<br />
5.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101<br />
6 Evaluation 102<br />
6.1 Ziel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102<br />
6.2 Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102<br />
6.3 Rahmenbedingungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103<br />
6.4 Szene 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104<br />
6.4.1 Beschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104<br />
6.4.2 Interpolationsverfahren . . . . . . . . . . . . . . . . . . . . . . . . 105<br />
6.4.3 Konfigurationsparameter . . . . . . . . . . . . . . . . . . . . . . . . 105<br />
6.4.4 Vorverarbeitung/Zwischenergebnisse . . . . . . . . . . . . . . . . . 105<br />
6.4.5 Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106<br />
6.4.6 Auswertung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107<br />
6.5 Szene 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109<br />
6.5.1 Beschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109<br />
6.5.2 Interpolationsverfahren . . . . . . . . . . . . . . . . . . . . . . . . 110<br />
6.5.3 Konfigurationsparameter . . . . . . . . . . . . . . . . . . . . . . . . 110<br />
6.5.4 Vorverarbeitung/Zwischenergebnisse . . . . . . . . . . . . . . . . . 110<br />
6.5.5 Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111<br />
6.5.6 Auswertung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113<br />
6.6 Szene 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114<br />
6.6.1 Beschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114<br />
6.6.2 Interpolationsverfahren . . . . . . . . . . . . . . . . . . . . . . . . 114<br />
6.6.3 Konfigurationsparameter . . . . . . . . . . . . . . . . . . . . . . . . 115<br />
6.6.4 Vorverarbeitung/Zwischenergebnisse . . . . . . . . . . . . . . . . . 115<br />
6.6.5 Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br />
6.6.6 Auswertung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118<br />
6.7 Problemanalyse - Bilaterale Interpolation . . . . . . . . . . . . . . . . . . 118<br />
6.7.1 Inhomogenes Warping . . . . . . . . . . . . . . . . . . . . . . . . . 119<br />
6.7.2 Bilaterale Gewichtung . . . . . . . . . . . . . . . . . . . . . . . . . 119<br />
6.7.3 Inverse Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120<br />
6.8 Gesamtauswertung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121<br />
6.9 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122<br />
7 Ergebnisse und Ausblick 123<br />
7.1 Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123<br />
7.2 Alternativer Lösungsansatz . . . . . . . . . . . . . . . . . . . . . . . . . . 125<br />
x
7.3 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125<br />
xi
1 Einleitung<br />
1.1 Motivation<br />
Die digitale Bild-Metamorphose, welche im Allgemeinen als Morphing bezeichnet wird,<br />
findet heutzutage in allen Industrie-, Medien- sowie Wissenschaftsbereichen Anwendung,<br />
wo ein fließender Übergang zwischen zweidimensionalen Bilddaten erforderlich ist.<br />
Dabei ist durch die Vielzahl an verschiedenen Morphing-Verfahren, welche sich allesamt<br />
hinsichtlich ihrer Geschwindigkeit, Stabilität und Flexibilität voneinander unterscheiden,<br />
sowohl ein spezialisierter als auch ein generalisierter Einsatz möglich. Besonders in der<br />
Film- und Videoindustrie erfreut sich das Morphing seit langer Zeit sehr großer Beliebtheit<br />
und zählt heute mit zu den meistverbreiteten Effekten überhaupt, wenn es darum geht,<br />
Verwandlungen von Objekten oder Individuen bildlich darzustellen. Ein sehr bekanntes<br />
Beispiel hierfür stellt das populäre Musikvideo von Michael Jackson’s „Black or White“<br />
aus dem Jahre 1991 dar (siehe Abb 1.1).<br />
Abb. 1.1: Black or White - Musikvideo [MJJL91]<br />
Der Großteil der heute verfügbaren Morphing-Verfahren arbeitet, mit Ausnahme einiger<br />
spezialisierter Ansätze, überwiegend zweidimensional in der Bildebene. Probleme bei der<br />
Darstellung klassischer Tiefenphänomene wie Verdeckung oder Tiefenparallaxe werden <strong>of</strong>t<br />
dadurch umgangen, indem man bei der Wahl der Bildmotive größere Tiefenunterschiede<br />
vermeidet.<br />
Gerade aber für die Darstellung dreidimensionaler Szenen ist die Berücksichtigung der<br />
genannten Phänomene essentiell, damit für den Betrachter ein räumlicher Eindruck<br />
entstehen kann und er somit das Gesehene als „natürlich“ empfindet. Die Entwicklung<br />
entsprechender 3D-basierter Morphing-Ansätze stellt diesbezüglich neben weiteren<br />
Aspekten (u.a. höhere Flexibilität, Genauigkeit) seit einigen Jahren einen bedeutenden<br />
Forschungs- und Entwicklungsschwerpunkt dar.<br />
1
1 Einleitung<br />
1.2 Ziele<br />
Das primäre Ziel dieser Arbeit ist die Konzeption und Entwicklung einer S<strong>of</strong>twarelösung,<br />
die das Betrachten beliebiger, zweidimensionaler Bilddaten unter Anwendung<br />
verschiedener Morphing-Techniken innerhalb einer webbasierten Umgebung ermöglicht.<br />
Desweiteren soll untersucht werden, inwiefern sich klassische Morphing-Ansätze in Verbindung<br />
mit zusätzlich gewonnenen Tiefeninformationen für den interpolierten Bildübergang<br />
nutzen lassen und ob damit bekannte Aspekte der räumlichen Darstellung (z.B. tiefenabhängige<br />
Verdeckung, perspektivische Verzerrungen) realisierbar sind.<br />
Bezüglich der Zielstellung existieren verschiedene Aufgabenbereiche, welche im Folgenden<br />
kurz erläutert werden.<br />
• Recherche<br />
Gängige Ansätze des zweidimensionalen Morphings sollen recherchiert und kurz<br />
vorgestellt werden.<br />
• Akquisition<br />
Es sollen sowohl synthetische als auch fotobasierte Bilddaten für die Entwicklung<br />
und Evaluation verwendet werden.<br />
• Vorverarbeitung<br />
Es soll eine Applikation entwickelt werden, die die für das Morphing benötigten<br />
Daten aus einem gegebenen Bilddatensatz extrahiert, verarbeitet und in Form einer<br />
Bildergalerie mitsamt Zusatzdaten verfügbar macht.<br />
• Visualisierung<br />
Es soll ein Webfrontend entwickelt werden, das als eigenständiges Bildportal fungiert<br />
und somit das Betrachten von Bildern unter Verwendung verschiedener Morphing-<br />
Ansätze in Echzeit ermöglicht.<br />
• Evaluation<br />
Die Ergebnisse dieser Arbeit sollen nachfolgend evaluiert und bewertet werden.<br />
1.3 Struktur<br />
Im zweiten Kapitel werden zunächst die Grundlagen des Morphings schrittweise erarbeitet<br />
und vertieft. Der Fokus des dritten Kapitels liegt auf der Betrachtung und Analyse<br />
thematisch verwandter Arbeiten sowie einer anschließenden Gegenüberstellung. Im vierten<br />
Kapitel wird das Konzept der angestrebten S<strong>of</strong>twarelösung hinsichtlich Inhalt und<br />
Struktur präsentiert und erläutert. Die programmtechnische Umsetzung auf Basis des<br />
vorgestellten Konzeptes ist Gegenstand des fünften Kapitels. Im Mittelpunkt des sechsten<br />
2
1.3 Struktur<br />
Kapitels steht die Evaluation der S<strong>of</strong>twarelösung anhand verschiedener Beispielszenarien.<br />
Das siebte Kapitel schließt diese Arbeit mit einer kritischen Betrachtung der eigenen<br />
Ergebnisse und einem Ausblick auf zukünftige Entwicklungen ab.<br />
3
2 Grundlagen<br />
2.1 Bilder<br />
Die Grundlage für jede Form von Morphing bilden zweidimensionale, pixelbasierte Bilder,<br />
weshalb deren Definition das Fundament für die weiterführenden Ansätze und Methoden<br />
darstellt.<br />
Ein zweidimensionales Bild definiert eine Abbildung I(⃗x), die einen Vektor ⃗x ∈ R 2 auf<br />
einen Intensitäts- bzw. Farbwert c ∈ R abbildet [CL11].<br />
I : R 2 → R<br />
c = I(⃗x)<br />
Im Allgemeinen besitzt ein Bild eine rechteckige Struktur mit einer bestimmten Höhe und<br />
Breite, wodurch die Definitionsmenge der Abbildung I(⃗x) auf eine Untermenge P ⊂ R 2<br />
beschränkt wird.<br />
Ein digitales Bild besitzt darüber hinaus eine reguläre Gitterstruktur, die somit eine<br />
diskrete Quantisierung im Zuge der Abbildung von ⃗x nach c sowie gegebenfalls zusätzliche<br />
Filtermaßnahmen (z.B. Bilineare Filter) ermöglicht.<br />
2.2 Morphing<br />
Das Morphen von Bildern setzt sich grundlegend aus den beiden Teilschritten Warping<br />
und Blending (auch Cross-Dissolving genannt) zusammen, die dabei kontinuierlich in<br />
beliebig kleinen Teilschritten ausgeführt werden. Während Warping Formen und Geometrien<br />
innerhalb eines Bildes verändert, wird über das anschließende Blending der finale<br />
Intensitätswert für jeden Bildpunkt individuell berechnet [BN92, GW98].<br />
Morphing = Warping + Blending<br />
4
2.2 Morphing<br />
2.2.1 Warping<br />
Hauptaufgabe des Warpings ist das Verformen des Quell- und Zielbildes, sodass eine<br />
größtmögliche optische Übereinstimmung im Bildraum entsteht. Der Fokus liegt dabei<br />
auf der Abbildung T , die vor dem Auslesen des Intensitätswertes c auf einen gegebenen<br />
Vektor ⃗x ∈ R 2 ausgeführt wird.<br />
T : R 2 → R 2<br />
c = I(T (⃗x))<br />
2.2.2 Blending<br />
Blending beschreibt den Vorgang, bei dem mehrere Intensitäts- bzw. Farbwerte aus verschiedenen<br />
Quellen miteinander kombiniert werden. Für den einfachen Fall, dass nur zwei<br />
Bilder gemischt werden sollen, vereinfacht sich die Berechnung zu einer Linearkombination<br />
unter Verwendung eines Parameters α ∈ [0..1] [PD84].<br />
I(⃗x) = α · I 1 (⃗x) + (1 − α) · I 2 (⃗x)<br />
Abgesehen von der hier abgebildeten Blending-Vorschrift, welche u.a die Grundlage für<br />
das bekannte Alpha-Blending bildet, gibt es noch eine Vielzahl weiterer Verfahren zur<br />
Komposition von Farbwerten (z.B. additives Blending). Da in der Regel aber beim Wechsel<br />
von einem Quellbild I 1 zu einem Zielbild I 2 ein möglichst fließender und natürlicher<br />
Übergang angestrebt wird, sind diese im Kontext des Morphings von geringerer Bedeutung.<br />
2.2.3 Komposition<br />
Wie eingangs erwähnt, findet für die finale Intensitätswertberechnung die Kombination<br />
der Warping- und Blending-Schritte unter Berücksichtigung eines Parameters t ∈ [0..1]<br />
statt. Dabei wird zur Generierung eines Zwischenbildes I t eine gewicht- und invertierbare<br />
Warping-Funktion T sowohl auf das Quellbild I 1 als auch das Zielbild I 2 angewendet,<br />
sodass nachfolgend die ausgelesenen Intensitätswerte mittels Blending kombiniert werden<br />
können. Zur Veranschaulichung sind in Abbildung 2.1 die einzelnen Zwischenschritte<br />
exemplarisch dargestellt.<br />
I t ( x) ⃗ = (1 − t) · I 1 (Tt<br />
−1 (⃗x)) + t · I 2 (T 1−t (⃗x))<br />
Unter der Annahme, dass sich der Parameter t gleichmäßig nach Eins entwickelt, wird<br />
über die angegebene Formel ein rein lineares Morphing durchgeführt. Obwohl dies für<br />
5
2 Grundlagen<br />
Abb. 2.1: Black or White - Teilschritte für t = 0.5 [CL12, MJJL91]<br />
die meisten Anwendungsfälle ausreichend sein dürfte, ist darüber hinaus eine zusätzliche<br />
Übergangskontrolle durch Einbindung einer Transitionsfunktion D möglich [GW98].<br />
Dabei wird t, das als reeller Kontrollparameter fungiert, auf einen Parameter t ′ ∈ [0..1]<br />
abgebildet (siehe auch Abb. 2.2).<br />
D : [0..1] → [0..1]<br />
t ′ = D(t)<br />
Abb. 2.2: Transitionsfunktionen zur Abbildung von t auf t ′ (von links nach rechts):<br />
D(t) = t, D(t) = t 2 , D(t) = t (1/(1+sin(t∗π))) , D(t) = 1 2 + 1 2cos(π(t + 1))<br />
6
2.3 Warping-Ansätze<br />
2.3 Warping-Ansätze<br />
Warping gilt im Kontext des Morphings als der komplizierteste Teilschritt für die Berechnung<br />
des finalen Bildes, denn durch dieses wird die Grundlage für ein nahtloses Blending<br />
geschaffen. Darüber hinaus stellt es im Bereich der Bildverarbeitung ein komplexes<br />
Forschungsfeld dar, das bisweilen auch als Image Transformation bzw. Bildregistrierung<br />
bezeichnet wird.<br />
Da in diesem Bereich eine Vielzahl von Ansätzen existiert, die auf Basis unterschiedlicher<br />
Strukturen und Algorithmen die Transformation von Bildern erlauben, soll im Folgenden<br />
ein grundlegender Überblick über bekannte Ansätze gegeben werden.<br />
2.3.1 Klassifikation<br />
Abb. 2.3: Parametrisiertes Warping - Beispiele [CL11]<br />
Grundsätzlich wird beim Warping zwischen parametrisierten und nichtparametrisierten<br />
Methoden unterschieden [GM98].<br />
• Parametrisiertes Warping<br />
In diesen Bereich fallen parametrisierte Abbildungen, welche global auf das gesamte<br />
Bild angewendet werden. Die Grundlage entsprechender Abbildungen bildet dabei<br />
stets eine begrenzte Anzahl von Parametern, woraus sich die charakteristischen<br />
Abbildungseigenschaften sowie eine Dimensionsbegrenzung des Parameterraums<br />
ergeben. Wie in Abbildung 2.3 dargestellt, zählen unter anderem lineare und affine<br />
Transformationen zu dieser Klasse [GM98, CL11].<br />
• Nichtparametrisiertes Warping<br />
Alle Abbildungen aus dieser Klasse operieren nicht global unter Verwendung bestimmter<br />
Kontrollparameter, sondern transformieren jeden Punkt im Bildraum<br />
individuell. Entsprechende Methoden erlauben die lokale Auswertung bestimmter<br />
Charakteristika pro Bildpunkt, was zu einer weitaus höheren Flexibilität und somit<br />
einem breiteren Einsatzspektrum führt.<br />
Im Kontext des hier besprochenen Morphings für zweidimensionale Bilder definiert<br />
sich das nichtparametrisierte Warping demnach über eine Abbildung U : R 2 → R 2 ,<br />
7
2 Grundlagen<br />
die für jeden Vektor ⃗x ∈ R 2 einen Translationsvektor bereitstellt. Auf Basis dessen<br />
ergibt sich die weiter oben erwähnte Warping-Abbildung T (siehe 2.2.1) [CL11].<br />
T : R 2 → R 2<br />
U : R 2 → R 2<br />
T (⃗x) = ⃗x + U(⃗x)<br />
Bedingt durch die vielen Einsatzmöglichkeiten und Ansätze im Bereich des nichtparametrisierten<br />
Warpings ist es sinnvoll, zusätzlich weitere Klassifikationen und Betrachtungen<br />
durchzuführen.<br />
Eine weitere Kategorisierung ergibt sich aus der Unterscheidung nach vorwärts und<br />
rückwärts gerichtetem Warping (Forward Mapping bzw. Inverse Mapping) [CDK99,<br />
FDBF06, CL12].<br />
• Forward Mapping<br />
Bei dieser Klasse von Abbildungen wird jeder Bildpunkt im Ausgangsbild I 1 unter<br />
Einsatz von T so transformiert, dass sich am Ende das Zielbild I 2 ergibt (siehe Abb.<br />
2.4).<br />
⃗x ′ = T (⃗x)<br />
I 2 (⃗x ′ ) = I 1 (⃗x)<br />
• Inverse Mapping<br />
Im Gegensatz zum vorherigen Ansatz geht man hier den umgekehrten Weg. Ausgehend<br />
vom Zielbild I 2 , wird für jeden Bildpunkt an der Position ⃗x über die inverse<br />
Abbildung T −1 der Intensitätswert in I 1 an der Position ⃗x ′ ausgelesen (siehe Abb.<br />
2.5).<br />
⃗x = T −1 (⃗x ′ )<br />
I 2 (⃗x ′ ) = I 1 (⃗x)<br />
In der Praxis kommt vergleichsweise <strong>of</strong>t Inverse Mapping zum Einsatz, da bei der<br />
vorwärts gerichteten Abbildung unter Umständen Lücken im Zielbild entstehen können<br />
und darüber hinaus wegen potentieller Mehrfachbelegung für jeden Pixel im Zielbild ein<br />
Akkumulationspuffer benötigt wird.<br />
8
2.3 Warping-Ansätze<br />
Abb. 2.4: Schema - Forward Mapping [CL11]<br />
Abb. 2.5: Schema - Inverse Mapping [CL11]<br />
2.3.2 Strukturbasierte Methoden<br />
Das Hauptmerkmal bei dieser Familie von Warping-Verfahren ist das Verformen von<br />
Bildflächen mittels topologisch starrer Strukturen innerhalb des Bildraums. Im Allgemeinen<br />
handelt es sich dabei um Netzstrukturen, die sich aus Kanten und Knoten<br />
zusammensetzen.<br />
2.3.2.1 Gitternetze<br />
Abb. 2.6: Gitterbasiertes Warping: Korrespondierende Gitterstrukturen [FDBF06]<br />
Wie in Abbildung 2.6 dargestellt, wird bei gitterbasierten Verfahren ein beliebiges<br />
Gitternetz verwendet, um darüber das Warping zu realisieren. Die Gitterknoten werden<br />
9
2 Grundlagen<br />
dabei auf markante Bildbereiche („Features“) gelegt, um so eine Approximation der<br />
Konturen und Strukturen im Ausgangs- und Zielbild zu erreichen. Für die Interpolation<br />
der Differenzvektoren wird in der Regel die bilineare Interpolation verwendet, da aufgrund<br />
der gitterbasierten Quantisierung ein Bildpunkt immer nur einem Gitterfeld zugeordnet<br />
werden kann. Eine Erweiterung dieses Ansatzes stellt der Einsatz sogenannter B-Spline-<br />
Patches dar [Wol96, GW98, GS98].<br />
2.3.2.2 Dreiecksnetze<br />
Den Kern beim Warping mittels Dreiecksnetzen stellt die Partitionierung des Gesamtbildes<br />
in unterschiedlich große Dreiecksflächen dar. Diese wurden im Vorfeld auf Basis<br />
automatisch oder manuell gesetzter Kontrollpunkte unter Anwendung eines geeigneten<br />
Triangulationsverfahrens (z.B. Delaunay-Triangulierung) erzeugt.<br />
Die Interpolation verhält sich bei diesem Ansatz analog zum gitternetzbasierten Warping,<br />
wobei zur Vektorberechnung eines Punktes innerhalb eines Dreiecks in der Regel die<br />
baryzentrische Interpolation verwendet wird [FDBF06].<br />
Abb. 2.7: Dreiecksbasiertes Warping: Dreiecks-zu-Dreiecks-Korrespondenz in beiden<br />
Bildern<br />
Bei diesem Ansatz ist es essentiell, dass eine durchgehende Dreiecks-zu-Dreiecks-<br />
Korrespondenz vorliegt (siehe Abb. 2.7). Im Detail bedeutet dies, dass für jedes<br />
Korrespondenz-Tripel sowohl im Ausgangs- als auch im Zielbild ein Dreieck erzeugt<br />
wird. Dadurch ergibt sich für beide Netze eine identische Topologie, wodurch die Bilder<br />
affin aufeinander abgebildet werden können. [ACOL00, CL11]<br />
2.3.3 Strukturfreie Methoden<br />
Warping-Ansätze dieser Kategorie zeichnen sich in erster Linie dadurch aus, dass sie ohne<br />
eine diskrete Unterteilung des Bildraumes arbeiten und das Warping eines Punktes ohne<br />
räumliche Zuordnung geschieht. Analog zu den strukturbasierten Verfahren gibt es hier<br />
10
2.3 Warping-Ansätze<br />
korrespondierende Kontrollpunkte im Bildraum des Ausgangs- und Zielbildes, welche<br />
jedoch nicht topologisch geordnet sind.<br />
2.3.3.1 Feldbasiertes Warping<br />
Abb. 2.8: Feldbasiertes Warping: Korrespondierende Kontrolllinien [CL12]<br />
Das zentrale Element dieses durch Beier und Neely [BN92] entwickelten Algorithmus<br />
bilden korrespondierende Kontrolllinien (siehe Abb. 2.8), die affin aufeinander abgebildet<br />
werden. Während Bildpunkte, welche direkt auf den Linien liegen, unmittelbar transformiert<br />
werden können, ergeben sich die Abbildungen für alle anderen Punkte durch die<br />
gewichteten Summen der Transformationen aller umgebenden Linienpaare [BN92,GW98].<br />
Abb. 2.9: Beier-Neely Algorithmus: Berechnung von Punkt X ′ [BN92, CL12]<br />
Zu beachten ist, dass das feldbasierte Warping nach dem rückwärts gerichteten Abbildungsprinzip<br />
(Inverse Mapping) arbeitet und demnach stets vom Zielbild ausgegangen<br />
wird. Im ersten Schritt werden für einen Punkt X die relativen Koordinaten u i und v i<br />
zu jeder Linie L i berechnet. Durch diese Koordinaten, die als konstant vorausgesetzt<br />
werden, wird im Quellbild für jede Linie L i die transformierte Punktposition X ′ i und<br />
anschließend der Differenzvektor D i = X ′ i − X i berechnet. Den Abschluß bildet die<br />
11
2 Grundlagen<br />
gewichtete Summierung aller Differenzvektoren unter Berücksichtigung des orthogonalen<br />
Abstandes zwischen einer Linie L i und dem Punkt X sowie der Linienlänge im Zielbild<br />
(siehe auch Abb. 2.9).<br />
2.3.3.2 Kurvenbasiertes Warping<br />
Eine weitere Form des Warpings stellt der Einsatz stetig differenzierbarer Funktionen<br />
dar, durch die sehr fließende und weiche Bewegungen im Bild realisiert werden können.<br />
Die Grundlage bildet dabei stets eine Menge von Stützstellen, die sich z.B aus einer<br />
automatischen oder auch manuellen Extraktion von korrespondierenden Punkten in den<br />
Quellbildern ergibt.<br />
Ein bekanntes Beispiel stellen radiale Basisfunktionen (Radial Basis Functions, RBF)<br />
[FDBF06, CK08] dar. Wie in Abbildung 2.10 dargestellt, sind diese radialsymmetrisch<br />
und ergeben durch gewichtetes Summieren eine harmonisch verlaufende Kurve bzw.<br />
Oberfläche, die alle Stützstellen interpoliert.<br />
Abb. 2.10: Radiale Basisfunktionen: 1D-Interpolation [FDBF06]<br />
Eine Funktion f(x), die alle N gegebenen Stützstellen interpoliert, ergibt sich aus der<br />
Linearkombination von N radialen Basisfunktionen mit jeweils eigenem Zentrum c i und<br />
einem individuellen Gewichtungsfaktor w i .<br />
r i = x − c i<br />
N∑<br />
f(x) = w i ϕ(r i )<br />
i=1<br />
Obwohl sich grundsätzlich jede radialsymmetrische Funktion ϕ(r) als Basisfunktion<br />
(auch Kernel genannt) eignet, gibt es einige Funktionstypen, die sich aufgrund ihrer<br />
12
Eigenschaften besonders hierfür anbieten [CK08, SASEJK09].<br />
• Gaußsche RBF: ϕ(r) = e −(cr)2<br />
• Multiquadric RBF: ϕ(r) = √ 1 + (cr) 2<br />
1<br />
• Inverse Multiquadrics RBF: ϕ(r) = √<br />
1+(cr) 2<br />
• Thin Plate Spline: ϕ(r) = r 2 ln r<br />
2.4 Anwendungsgebiete und -beispiele<br />
Nachdem eine passende Basisfunktion gewählt wurde, ist es notwendig, für alle N<br />
Basisfunktionen die zugeordneten Gewichtungsfaktoren w i zu finden. Dies erreicht man<br />
durch Aufstellen und Lösen eines Gleichungssystems mit N Unbekannten unter Beachtung<br />
der Interpolationsbedingung f(x i ) = y i mit i ∈ {1, .., N}.<br />
2.3.4 Weitere Methode<br />
Neben den hier vorgestellten Verfahren gibt es noch eine Vielzahl von Ansätzen, durch<br />
die ebenfalls ein Warping bzw. eine Bildregistrierung realisiert werden kann. Dazu zählen<br />
unter anderem Energie-Minimierungs-Methoden [SYLKYCJHSYS96, GW98], Multilevel-<br />
Freiformdeformationen (MFFD) [LCS95] oder auch einfache, distanzbasierte Verfahren<br />
zur Interpolation der k-nächsten Stützstellen (z.B. Shepard-Interpolation [She68]). All<br />
diese Methoden haben gemein, dass sie im Normalfall auf bereits bekannten Techniken<br />
aufbauen und dadurch <strong>of</strong>t eine hybride Charakteristik aufweisen. So ist es möglich, dass<br />
sie bis zu einem bestimmten Grad strukturgebunden arbeiten können und darüber hinaus<br />
Methoden des strukturfreien Warpings verwenden (z.B. farbabhängige Bildraumaufteilung<br />
mit anschließender Freiformdeformation).<br />
Einen anderen Ansatz stellt die Verwendung des Optischen Flusses dar, der unter<br />
optimalen Bedingungen für ein gegebenes Bildpaar ein Differenzvektorfeld berechnet und<br />
dadurch ein individuelles Verzerren auf Bildpunktebene ermöglicht [SM07, WTP + 09].<br />
2.4 Anwendungsgebiete und -beispiele<br />
2.4.1 Anwendungsgebiete<br />
Neben der Film- und Unterhaltungsindustrie, die das wichtigste Einsatzgebiet darstellt,<br />
gibt es diverse andere Bereiche, wo die Verwendung von Morphing Vorteile hinsichtlich<br />
13
2 Grundlagen<br />
der Ausgabequalität und/oder dem Arbeitsaufwand mit sich bringt.<br />
• Medizin und Biologie (z.B. CT/MRT-Aufnahmen)<br />
• Kartografie (z.B. stufenlose Kartendarstellung)<br />
• Meteorologie (z.B. Wetterphänomene visualisieren)<br />
• Materialforschung (z.B. grafische Simulation von Materialprozessen)<br />
• Foto- und Bildverarbeitung<br />
2.4.2 S<strong>of</strong>tware<br />
Zum gegenwärtigen Zeitpunkt existiert eine Vielzahl von Programmen, welche das Morphing<br />
von Bildern und Videos auf unterschiedlichen Plattformen erlauben. Neben proprietärer<br />
S<strong>of</strong>tware existiert dabei eine Reihe von Open Source- und Freeware-Anwendungen,<br />
die entweder separat oder in Verbindung mit anderen Programmen nutzbar sind.<br />
Proprietär<br />
• FantaMorph (Abros<strong>of</strong>t) 1<br />
• Photo Morpher (Morpheus) 2<br />
• FaceMorpher (Luxand Development) 3<br />
• MorphMan (Stoik) 4<br />
• Fun Morph (ZEALLSOFT Inc.) 5<br />
Freeware/Open Source<br />
• WinMorph (DebugMode) 6<br />
• FotoMorph (Digital Photo S<strong>of</strong>tware) 7<br />
• Sqirlz Morph (Xiberpix) 8<br />
1 http://www.fantamorph.com/index.html, Zugriff am 2.9.2012<br />
2 http://www.morpheuss<strong>of</strong>tware.net/, Zugriff am 2.9.2012<br />
3 http://www.luxand.com/, Zugriff am 2.9.2012<br />
4 http://www.stoik.com/products/video/STOIK-MorphMan/, Zugriff am 2.9.2012<br />
5 http://www.zealls<strong>of</strong>t.com/fun-morph.html, Zugriff am 2.9.2012<br />
6 http://www.debugmode.com/winmorph/, Zugriff am 2.9.2012<br />
7 http://www.diphso.no/FotoMorph.html, Zugriff am 2.9.2012<br />
8 http://www.xiberpix.net/SqirlzMorph.html, Zugriff am 2.9.2012<br />
14
2.4 Anwendungsgebiete und -beispiele<br />
2.4.3 Filme<br />
Der Einsatz von Morphing ist heutzutage in vielen Bereichen weit verbreitet und insbesondere<br />
für Filmproduktionen steht eine Vielzahl verschiedener Verfahren zur Verfügung,<br />
um so bestmöglich Deformationen und Verwandlungen von Objekten oder Individuen<br />
darzustellen. Diesbezüglich werden im Folgenden einige bedeutende Produktionen kurz<br />
vorgestellt.<br />
• Hunger<br />
„Hunger“ ist ein kanadischer Kurzfilm aus dem Jahre 1974, welcher unter Regie von<br />
Peter Foldes produziert wurde und zum Zeitpunkt seiner Veröffentlichung verschiedene<br />
Preise gewinnen konnte (u.a. Cannes Film Festival 1974). Die Animationen<br />
im Film basieren komplett auf dem Morphen der Konturlinien, welche vorwiegend<br />
vor einfarbigen Hintergründen dargestellt werden (siehe Abb. 2.11). Er zählt zu den<br />
ersten computeranimierten Filmen überhaupt [NRCoC, NFBoC].<br />
Abb. 2.11: Hunger (1974) [NFBoC]<br />
• Willow<br />
Der Fantasyfilm „Willow“ von 1988 gilt heute als der erste Film, in dem neben diversen<br />
anderen Spezialeffekten auch erstmalig Morphing zum Einsatz kam. Die enthaltene<br />
Morphing-Sequenz ist vergleichsweise kurz (siehe Abb. 2.12), galt aber dennoch zum<br />
damaligen Zeitpunkt als revolutionär und wegweisend. [GLRHJJNW88, fil].<br />
Abb. 2.12: Willow (1988) [GLRHJJNW88]<br />
• Black or White<br />
Im Musikvideo zu Michael Jackson’s „Black or White“, das im Jahre 1991 veröffentlicht<br />
wurde, kommt eine Morphing-Sequenz vor, die auch heute noch in Arbeiten zum<br />
15
2 Grundlagen<br />
Thema Morphing referenziert wird. In der Sequenz sind die Gesichter von Personen<br />
unterschiedlicher Ethnien zu sehen, welche den Betrachter anlächeln und sich passend<br />
zur Musik bewegen. Dabei wird in unregelmäßigen Abständen unter Anwendung<br />
von Gesichts-Morphing zwischen den verschiedenen Personen gewechselt(siehe Abb.<br />
2.13), wodurch harte Schnitte vermieden werden und die zentrale Botschaft des<br />
Liedes, dass alle Menschen gleich sind, unterstrichen wird [MJJL91].<br />
Abb. 2.13: Black or White (1991) [MJJL91]<br />
• Terminator 2: Judgment Day<br />
Der Actionfilm „Terminator 2“ aus dem Jahr 1992 galt zum Zeitpunkt seiner Veröffentlichung<br />
als der Film mit den meisten und besten visuellen Effekten in der<br />
Filmindustrie. Erstmalig wurden dabei in größerem Umfang computergenerierte<br />
Spezialeffekte (sog. CGI-Effekte) zur Darstellung von Personen, Umgebungen sowie<br />
unnatürlichen Phänomenen (siehe Abb. 2.14) eingesetzt. [JCWWJSAGAH92].<br />
Abb. 2.14: Terminator 2: Judgment Day (1992) [JCWWJSAGAH92]<br />
• Matrix<br />
1999 stellte der Film „The Matrix“ aufgrund der enthaltenen Spezialeffekte einen weiteren<br />
Meilenstein in der Filmindustrie dar. Ein Grund hierfür war unter anderem der<br />
häufige Einsatz der sogenannten „Bullet Time“ (siehe Abb. 2.15), wodurch vorallem<br />
schnelle Ereignisse (z.B. Sprünge, Explosionen) in ihrer Bedeutung unterstrichen und<br />
vom Betrachter besser wahrgenommen werden. Charakteristisch für diesen Effekt<br />
ist die beträchtliche Verlangsamung bzw. das Einfrieren der Filmzeit, während die<br />
Kamera auf ein bestimmtes Objekt/Akteur fokussiert ist und sich unabhängig von<br />
der Zeit bewegt [PDGS, AWLWJS99].<br />
16
2.5 Zusammenfassung<br />
Abb. 2.15: The Matrix (1999) [AWLWJS99]<br />
2.5 Zusammenfassung<br />
Im Zuge dieses Kapitels wurden alle fundamentalen Aspekte des Morphings, welche<br />
für diese Arbeit von Relevanz sind, schrittweise erarbeitet. Beginnend mit der Definition<br />
von Bildern und Morphing, wurden anschließend grundlegende Warping-Methoden,<br />
S<strong>of</strong>twarelösungen sowie bekannte Anwendungsbeispiele vorgestellt und erörtert.<br />
17
3 Forschungsarbeiten<br />
Im Mittelpunkt dieses Kapitels steht die Betrachtung von drei wissenschaftlichen Arbeiten,<br />
welche thematisch eng mit der hier vorliegenden Arbeit verwandt sind. Neben einer<br />
inhaltlichen und strukturellen Betrachtung geht es hierbei insbesondere um das Aufzeigen<br />
und Erörtern der zentralen Lösungsansätze, auf denen die Arbeiten aufbauen.<br />
3.1 Image Morping for Space-Time Interpolation<br />
3.1.1 Beschreibung<br />
Der inhaltliche Schwerpunkt der im Jahr 2007 durch Timo Stich und Marcus Magnor<br />
veröffentlichten Arbeit „Image Morping for Space-Time Interpolation„ [SM07] liegt auf der<br />
Präsentation eines wahrnehmungsbasierten Morphing-Ansatzes zur Darstellung komplexer<br />
Szenen. Unter Beachtung psychovisueller Faktoren ermöglicht die vorgestellte Methode<br />
das Morphen von Bildsequenzen, welche sowohl große Tiefenunterschiede als auch Objektverdeckungen<br />
aufweisen. Zudem ist der Ansatz weder von einer im Vorfeld durchgeführten<br />
Kamerakalibrierung noch von einer dreidimensionalen Szenenrekonstruktion abhängig,<br />
wodurch er sich für das Morphen beliebig akquirierter Bilddaten eignet.<br />
3.1.2 Inhalt<br />
Den Anfang der Arbeit bildet eine kompakte Einführung in die grundlegenden Aspekte<br />
des Morphings, der sich ein Überblick über die visuelle Wahrnehmung des Menschen<br />
anschließt. Im Fokus stehen dabei der Formpfad (form pathway) und der Bewegungspfad<br />
(motion pathway), welche beide durch das visuelle Zentrum des menschlichen Gehirns<br />
wahrgenommen werden und für das Erkennen einer physikalisch plausiblen Bewegung<br />
gleichermaßen notwendig sind. Der Formpfad bezeichnet dabei das Wahrnehmen von<br />
markanten Eigenschaften (z.B. der Kontur) bei aufeinanderfolgenden Einzelbildern,<br />
worüber Objekte letztlich wiedererkannt werden. Der Bewegungspfad hingegen basiert auf<br />
der Analyse des Optischen Flusses und dem Vergleichen mit bekannten Bewegungsmustern<br />
(z.B. Rotation, der menschliche Gang). Beide Faktoren sind demnach für das menschliche<br />
Sehen und Verstehen essentiell.<br />
18
3.1 Image Morping for Space-Time Interpolation<br />
Abb. 3.1: Links Ausgangsbild, rechts Zielbild [SM07]<br />
Nach Betrachtung der psychovisuellen Aspekte wird der Einsatz des Optischen Flusses im<br />
Kontext des Morphings erläutert. Dieser wird in einem nachgeschalteten Verarbeitungsschritt<br />
zur Korrektur von fehlerhaften Warping-Vektoren verwendet, damit so die effektive<br />
Bilddifferenz minimiert werden kann. Magnor und Stich weisen diesbezüglich darauf hin,<br />
dass die alleinige Anwendung des Optischen Flusses nicht für das Warping geeignet ist<br />
und vorallem bei großen Bilddifferenzen sowie Verdeckungen fehlerhaft arbeitet.<br />
Abb. 3.2: Fehlermaske (fehlerhafte Bereiche sind weiß) [SM07]<br />
Die Klassifizierung der Bilddifferenz ist ein weiterer Aspekt der hier vorgestellten Arbeit.<br />
Die Basis hierfür bilden dabei stets das Ausgangs- und Zielbild (siehe Beispiel 3.1), welche<br />
beide in den CIELAB-Farbraum übertragen werden. Zusätzlich wird das Ausgangsbild<br />
mittels vorberechneter Warping-Daten auf das Zielbild abgebildet. Im Anschluss daran<br />
wird die Differenz zwischen beiden Bildern berechnet und in einer monochromen Maske<br />
(siehe Abb. 3.2) gespeichert.<br />
Die erzeugte Fehlermaske dient als Datengrundlage für das sogenannte nichtlineare<br />
Blending, das nun zum Einsatz kommt. Im Kern findet dabei pro Bildpunkt ein adaptives<br />
Blending der Quellfarben mittels einer speziellen Logistikfunktion (Sigmoidfunktion)<br />
statt, welche neben dem eigentlichen Blendingparameter t den vorberechneten Fehlerwert<br />
nutzt. Daraus resultiert ein nahezu lineares Blending für Bildbereiche mit geringem<br />
19
3 Forschungsarbeiten<br />
Fehlerwert, während besonders fehlerhafte Bereiche stark verzögert mit einem schnellen<br />
Sprung geblendet werden (siehe Abb. 3.3). An diesem Punkt wird den Erkenntnissen<br />
über die visuelle Wahrnehmung beim Menschen Rechnung getragen, da aus Sicht der<br />
Autoren Ghosting-Artefakte und Farbsprünge negativer gewertet werden als ein optischer<br />
Stillstand.<br />
Den Abschluss der Arbeit bildet eine Vorstellung der prototypischen Implementierung<br />
sowie eine Auswertung der erzielten Ergebnisse.<br />
Abb. 3.3: Vergleich - links lineares Blending, rechts adaptives Blending [SM07]<br />
3.1.3 Prozessübersicht<br />
Der durch Stich und Magnor vorgestellte Lösungsansatz basiert auf einer Abfolge inhaltlich<br />
voneinander getrennter Teilschritte, welche im Folgenden aufgelistet werden.<br />
1. Feature- und Korrespondenzdetektion<br />
Erkennen von Merkmalen und Ermitteln der darauf basierenden Korrespondenzen<br />
im Ausgangs- und Zielbild.<br />
2. Feature-Animation<br />
Vorberechnung des Warpings mittels der Methode von Beier und Neely [BN92],<br />
wobei anstelle einer linearen Positionsinterpolation ein Rigid-As-Possible-Ansatz<br />
(siehe Alex et al. 2000 [ACOL00]) genutzt wird.<br />
3. Feature-Gewichtung<br />
Berechnung der Feature-Gewichtung auf Grundlage unterschiedlicher Faktoren (z.B.<br />
Abstand, Farbdifferenz).<br />
20
3.2 Silhouette-Aware Warping for Image-Based Rendering<br />
4. Prewarping<br />
Prewarping der beiden Quellbilder mittels vorberechneter Interpolationsgewichte<br />
und Warping-Daten.<br />
5. Optischer Fluss<br />
Berechnung des Optischen Flusses sowie die anschließende Korrektur der vorläufigen<br />
Warping-Vektoren.<br />
6. Fehlermaske<br />
Generierung einer monochromen Differenzmaske im CIELAB-Farbraum auf Basis<br />
der gewarpten Quellbilder.<br />
7. Warping<br />
Warping der Quellbilder sowie der Fehlermaske als erster Schritt im Morphing-<br />
Prozess.<br />
8. Blending<br />
Adaptives Blending des Ausgangs- und Zielbildes mithilfe der Fehlermaske unter<br />
Verwendung einer nichtlinearen, parametrisierten Logistikfunktion.<br />
3.1.4 Zusammenfassung<br />
Der in dieser Arbeit präsentierte Ansatz zur interpolierten Bildsynthese erlaubt die<br />
Darstellung von komplex aufgebauten Szenen, indem er die psychovisuellen Aspekte<br />
der menschlichen Wahrnehmung aktiv ausnutzt und adaptiv auf Pixelebene arbeitet.<br />
Er ermöglicht dadurch das Morphen von Bildsequenzen mit häufigen Objektverdeckungen<br />
und Tiefensprüngen, ohne dass störende Bildfehler (z.B. Ghosting-Artefakte) die<br />
Gesamtwirkung beeinträchtigen.<br />
3.2 Silhouette-Aware Warping for Image-Based Rendering<br />
3.2.1 Beschreibung<br />
Gegenstand der 2011 durch Chaurasia, Sorkine und Drettakis veröffentlichten Arbeit<br />
„Silhouette-Aware Warping for Image-Based Rendering“ [CSD11] ist die Präsentation eines<br />
Multiframe-basierten Morphing-Ansatzes. Unter Verwendung von kalibrierten Bildern<br />
sowie daraus extrahierten Punktwolken ermöglicht das Verfahren Silhouetten-erhaltendes<br />
Morphing von Szenen mit häufigen Objektverdeckungen und Tiefensprüngen.<br />
21
3 Forschungsarbeiten<br />
3.2.2 Inhalt<br />
Beginnend mit einer thematischen Einführung, findet zunächst eine grundlegende Betrachtung<br />
verschiedener Teilbereiche des bildbasierten Renderns (Image-based Rendering,<br />
IBR) statt. Unter anderem wird ein kurzer Überblick über die Bereiche Bildinterpolation<br />
und Warping gegeben, wobei hier neben Methoden und Anwendungsmöglichkeiten auch<br />
die Entwicklungen der letzten Jahre aufgezeigt werden.<br />
Abb. 3.4: Übersicht über die zentralen Teilschritte des vorgestellten Ansatzes [CSD11]<br />
Nachfolgend wird mit einer Übersicht über das entwickelte Verfahren mitsamt der dazugehörigen<br />
Teilschritte die Grundlage für den Rest der Arbeit gelegt. Im Fokus stehen<br />
dabei die drei zentralen Teilschritte Vorverarbeitung, Silhouetten-sensitives Warping<br />
und Rendering, welche aufeinander aufbauen und somit sequentiell ausgeführt werden<br />
müssen (siehe auch Abb. 3.4). Zu beachten ist, dass das Verfahren aufgrund der jeweiligen<br />
Teilschritte als Eingabedaten sowohl kalibrierte Bilder (inklusive Mehrfachansichten) als<br />
auch dichte 3D-Punktwolken vorraussetzt.<br />
Das Ziel der Vorverarbeitung ist die Bereitstellung von bildabhängigen Tiefeninformationen<br />
unter Berücksichtigung dominanter Bildflächen und Silhouetten. Im ersten Schritt<br />
findet eine manuelle Markierung der Silhouetten statt, da aus Sicht der Autoren automatisierte<br />
Algorithmen häufig zuviele bzw. falsche Konturen finden und die dadurch<br />
notwendigen Korrekturen noch zeitaufwendiger sind. Im Anschluss daran erfolgt eine bildabhängige<br />
Punktselektion auf Basis der gegebenen dreidimensionalen Punktwolke sowie<br />
den Kalibrierungsdaten. Hauptbestandteil des Selektionsprozesses ist eine Punktreduktion,<br />
bei der mittels konfigurierbarem Point-Splatting nur soviel Punkte auf die Bildebene<br />
abgebildet werden, dass eine bildfüllende Darstellung erreicht wird. Um Überdeckungen<br />
von Vordergrund- und Hintergrundpunkten sowie Tiefeninkonsistenz zu vermeiden, wird<br />
sowohl das Entfernen falsch zugeordneter Punkte als auch das Mitteln der Tiefenwerte<br />
auf Basis der markierten Silhouetten durchgeführt. Den Abschluß der Vorverarbeitung<br />
bildet das automatisierte Auffüllen leerer Bildbereiche mit zusätzlichen Stützpunkten<br />
und das optionale, manuelle Entfernen falscher Korrespondenzen.<br />
Das nachfolgende Image-Warping wird unter Berücksichtigung vorhandener Silhouetten<br />
22
3.2 Silhouette-Aware Warping for Image-Based Rendering<br />
durchgeführt und stellt im Kontext des vorgestellten Ansatzes den wichtigsten Zwischenschritt<br />
dar. Ihm zugrunde liegt eine Menge von Einzelbildern für die Darstellung der<br />
gleichen Szene sowie die vorverarbeiteten Punktwolken.<br />
Ziel ist es, eine Warpingfunktion W zu finden, welche alle einbezogenen Bilder bestmöglich<br />
und plausibel für das nachfolgende Blending verzerrt. Dazu wird zunächst über jedes<br />
Bild ein regelmäßiges Dreiecksgitter mit einer ausreichend hohe Vertex-Dichte gelegt. Als<br />
Nächstes werden die Energie-Funktionen E p , E s und E b definiert, die allesamt auf der<br />
Methode der kleinsten Quadrate aufbauen und als Nebenbedingungen für das Finden der<br />
optimalsten Warping-Funktion W : R 2 → R 2 benötigt werden.<br />
Abb. 3.5: Silhouetten-abhängige Unterteilung des vorhandenen Dreiecksnetzes [CSD11]<br />
Der Energie-Term E p dient als Kriterium für die Erhaltung der identischen Punktpositionen<br />
im dreidimensionalen Raum. Konkret bedeutet das für ein selektiertes Bild I i , dass<br />
jeder 3D-Punkt p ∈ P i und der korrespondierende 2D-Punkt q ∈ Q i unter Berücksichtigung<br />
der bildabhängigen Projektion C i auch nach dem Warping korrespondieren.<br />
Der Term E s fungiert als Kriterum für die Erhaltung der Formähnlichkeit. Bezogen<br />
auf das erzeugte Dreiecksnetz, versucht man darüber eine Warping-Funktion W mit<br />
der Eigenschaft der geringstmöglichen Dreiecksverzerrung und der maximalen lokalen<br />
Formerhaltung zu finden.<br />
Dem letzten Energieterm E b kommt eine besondere Bedeutung zu, da dieser als Hauptkriterium<br />
für die Erhaltung der Silhouetten während des Warping-Prozesses dient. Vorbedingung<br />
hierfür ist aber eine Modifikation des Dreiecksgitters, das entlang der markierten<br />
Kontur-Kanten zusätzlich mehrfach unterteilt werden muss (siehe Abb. 3.5). Die bei<br />
der Tesselierung erzeugten Dreiecke dienen als „elastisches“ Band und werden nicht<br />
vom Ähnlichkeitserhaltungs-Term E s berücksichtigt. Alle drei vorgestellten Energieterme<br />
werden nachfolgend gewichtet und zu einem Term E zusammengefasst.<br />
E(W ) = w p E p + w s E s + w b E b<br />
Die lineare Gleichung ∇E(W ) = 0 wird nun entsprechend des Minimierungsprinzips<br />
unter Verwendung eines geeigneten Gleichungsauflösers für das Finden der optimalsten<br />
23
3 Forschungsarbeiten<br />
Warpingfunktion W verwendet. Nach Abschluss dieses Schrittes besitzt jedes Eingabebild<br />
I i ein individuell angepasstes Dreiecksgitter sowie ein vorberechnetes Linearsystem, das<br />
zur Laufzeit für die Berechnung der Warpingfunktion W unter Berücksichtigung der<br />
interpolierten Projektion C n verwendet wird.<br />
Abb. 3.6: Rendering: (a) Warping (b) Texturkomposition (c) Blending (d) Bildoptimierung<br />
mittels Poisson-Synthese [CSD11]<br />
Den finalen Verarbeitungsschritt stellt das eigentliche Rendering dar. Hierbei werden<br />
zunächst die vier optimalsten Ansichten selektiert, um so eine stabile Berechnungsgrundlage<br />
zu schaffen. Anschließend findet das blickpunktabhängige Warping aller Bilder unter<br />
Verwendung der im Vorfeld berechneten Linearsysteme statt (erste Phase in Abbildung<br />
3.6). Ergebnis dieser Bildregistrierung ist die projektive Abbildung unterschiedlicher<br />
3D-Punkte mit gleicher Raumposition auf dieselbe 2D-Position im Ausgabebild.<br />
Der nächste Schritt ist das individuelle Blending der Quellbilder pro Bildpunkt. Dazu<br />
wird eine Auswahl der zwei besten Bilder mittels Raycasting durchgeführt, welches als<br />
Ergebnis den Winkel zwischen dem Raycasting-Strahl und dem Blickpunkt-Strahl im<br />
Quellbild I i sowie die Art der Trefferfläche zurückliefert (siehe Abb. 3.7). Auf Basis dessen<br />
findet die Berechnung eines Fehlerwertes statt, über den die Auswahl der beiden Bilder<br />
mit dem geringsten Fehler umgesetzt wird.<br />
Dieser Zwischenschritt resultiert in zwei Texturen R 0 und R 1 , die pro Bildpunkt die<br />
Farben und Blend-Gewichte des besten und zweitbesten Quellbildes enthalten. Das<br />
Ergebnis der Blend-Phase ist eine Textur R, die sich aus dem Überblenden von R 0 und<br />
R 1 ergibt (siehe Phase c in Abbildung 3.6).<br />
Da innerhalb der geblendeten Textur R räumliche Diskontinuitäten (z.B. Quellbild-<br />
Ränder) vorliegen können, wird in der letzten Phase eine Poisson-Synthese zur Bildoptimierung<br />
eingesetzt. Grundlage dafür bilden eine von R 0 abgeleitete Gradienten-Textur G<br />
sowie eine Divergenz-Textur divG. Beide Texturen werden nun für das iterative Lösen der<br />
Poisson-Gleichung ∇ 2 R ′ = divG in Abhängigkeit von ∇R ′ | B0 = 0 eingesetzt, wobei R ′ die<br />
optimierte Ausgabetextur und B 0 die Flächenränder in R 0 beschreibt. Das Ergebnis sind<br />
weiche Übergänge in kritischen Bereichen und eine Reduktion von Ghosting-Artefakten.<br />
24
3.2 Silhouette-Aware Warping for Image-Based Rendering<br />
Abb. 3.7: Links Strahlentest zur Bildauswahl, rechts gewarptes Bild mit elastischem Band<br />
(rot) und Freiflächen (blau) [CSD11]<br />
Der Vorstellung der einzelnen Prozessschritte schließt sich eine allgemeine Ergebnisbetrachtung<br />
an. Unter anderem wird aufgezeigt, dass im Vergleich zu vorherigen Arbeiten<br />
die Szenenrekonstruktion bekannter Testdatensätze deutlich weniger Speicher benötigt.<br />
Zusätzlich befinden sich im gleichen Abschnitt Informationen über das verwendete<br />
Testsystem sowie dazugehörige Leistungswerte.<br />
Den Abschluss bildet eine kurze Zusammenfassung der wichtigsten Aspekte und Eigenschaften<br />
des Verfahrens sowie nachfolgend ein Ausblick auf zukünftige Herausforderungen<br />
im Bereich des bildbasierten Renderings.<br />
3.2.3 Prozessübersicht<br />
Der Prozessablauf des beschriebenen Verfahrens zeichnet sich durch eine Reihe von<br />
Einzelschritten aus, die thematisch von einander getrennt sind und sukzessive aufeinander<br />
aufbauen. Die folgende Auflistung soll einen grundlegenden Überblick über die<br />
vorhandenen Teilschritte geben und diese kurz charakterisieren.<br />
1. Bildakquisition<br />
Gewinnung von kalibrierten Bilddaten, wobei durch die Multiframe-Eigenschaft des<br />
Verfahrens eine möglichst große Anzahl von Bildern einer Szene benötigt wird.<br />
2. Punktwolken-Generierung<br />
Globale Erzeugung einer dichten 3D-Punktwolke.<br />
3. Silhouetten-Extraktion<br />
Manuelle oder automatisierte Erfassung von dominanten Flächen und Konturen.<br />
4. Punktselektion<br />
Blickpunktabhängige Selektion von 3D-Punkten pro Quellbild sowie Einfügen zusätzlicher<br />
Punkte bei Leerflächen.<br />
25
3 Forschungsarbeiten<br />
5. Warping-Netz<br />
Erzeugung eines Dreiecksnetzes für jedes Quellbild I i .<br />
6. Warping-Energiefunktionen<br />
Bildabhängige Initialisierung der Energie-Funktionen E p , E s und E b als Kriterien<br />
für ein optimales Warping.<br />
7. Warping-Vorberechnung<br />
Berechnung einer optimalen Warping-Funktion W nach der Methode der kleinsten<br />
Quadrate mittels eines geeigneten Gleichungsauflösers. Zwischenspeichern des<br />
berechneten Linearsystems.<br />
8. Quellbild-Selektion<br />
Auswahl der vier geeignetsten Bilder, um darauf basierend das Rendering durchzuführen.<br />
9. Warping<br />
Bildregistrierung mittels Warping auf Basis des interpolierten Blickpunktes C n .<br />
10. Blending-Preprocessing<br />
Geometriebasiertes Raycasting zur Fehlerwertberechnung. Pro Bildpunkt Caching<br />
des besten und zweitbesten Quellbildpixels sowie der dazugehörigen Blend-Gewichte<br />
in den Texturen R 0 und R 1 .<br />
11. Blending<br />
Erzeugen des Ausgabebildes R durch Überblenden der Texturen R 0 und R 1 .<br />
12. Optimierung<br />
Optimierung und Korrektur von Blendfehlern durch eine Poisson-Synthese. Die<br />
Gradienten- und Divergenz-Texturen von R 0 dienen dabei als Berechnungsgrundlage.<br />
3.2.4 Zusammenfassung<br />
Das in dieser Arbeit vorgestellte Morphing-Verfahren ermöglicht eine fortschrittliche<br />
Form der interpolierten Bildsynthese unter Erhaltung aller relevanten Silhouetten. Auf<br />
Basis von kalibrierten Bilddaten wird zunächst ein mehrstufiger Prozess durchlaufen,<br />
welcher sowohl Konturen als auch Tiefenunterschiede berücksichtigt. Im Anschluss daran<br />
ist eine interpolierte Darstellung von nahezu jedem beliebigen Blickpunkt innerhalb der<br />
Szene möglich, ohne dass dabei Verdeckungsfehler auftreten.<br />
26
3.3 Photo Tourism: Exploring Photo Collections in 3D<br />
3.3 Photo Tourism: Exploring Photo Collections in 3D<br />
3.3.1 Beschreibung<br />
Im Fokus der 2006 veröffentlichten Arbeit „Photo Tourism: Exploring Photo Collections<br />
in 3D“ [ea06] steht die Präsentation einer komplexen Visualisierungslösung, die das<br />
interaktive Navigieren und Darstellen beliebiger Bildmengen einer Szene innerhalb einer<br />
dreidimensionalen Umgebung ermöglicht.<br />
3.3.2 Inhalt<br />
Nach einer thematischen Einführung in den Bereich der bildbasierten Modellierung<br />
und Darstellung von Szenen stellen die Autoren zunächst die Datenvorverarbeitung<br />
des Systems vor. Im Mittelpunkt steht dabei die geometrische Rekonstruktion einer<br />
Szene auf Basis einer ungeordneten Bildmenge, die manuell oder per Web-Anbindung<br />
(u.a. zu FlickR 1 ) erzeugt wurde. Im ersten Schritt werden die Bildmerkmale (Features)<br />
mittels des SIFT-Operators [Low04] gesucht und darauf aufbauend über den RANSAC-<br />
Algorithmus [FB87] Korrespondenzen ausfindig gemacht. Letztere werden, s<strong>of</strong>ern sie über<br />
mehr als zwei Bilder bestehen, in sogenannten Tracks organisiert (siehe Abb.3.8).<br />
Abb. 3.8: Quellbildmenge (links), Korrespondenzen (mitte), rekonstruierte Szene (rechts)<br />
[ea06]<br />
Im nächsten Schritt wird nun die eigentliche Rekonstruktion der Szene mittels einer<br />
Technik namens Structure from Motion(SfM ) realisiert. Im Kern handelt es sich dabei<br />
um nichtlineares Minimierungsproblem, das in diesem Fall iterativ berechnet wird. Als<br />
initiales Bildpaar wird das mit den meisten Korrespondenzen ausgewählt, da dies als<br />
die stabilste Berechnungsgrundlage gilt und so degenerierte Ergebnisse vermieden werden<br />
können. Schrittweise werden weitere Kameras der Optimierung hinzugefügt und<br />
parallel die äußeren Kameraparameter (d.h. Position, Orientierung usw.) durch die DLT-<br />
Methode (Direct Linear Transform) [HZ04] initialisiert. Die inneren Kameraparameter<br />
1 http://www.flickr.com/, Zugriff am 6.11.2012<br />
27
3 Forschungsarbeiten<br />
(z.B. Brennweite) werden primär mittels DLT geschätzt und über Zusatzinformationen<br />
aus den gegebenen Bilddateien (z.B. EXIF-Tags) ergänzt. Die geometrische Rekonstruktion<br />
erfolgt durch Hinzunahme der im Vorfeld erzeugten Tracks, wobei nur solche in<br />
die Berechnung einfließen, welche von mindestens einer bereits rekonstruierten Kamera<br />
erfasst werden. Wie in Abbildung 3.8 dargestellt, ist das Ergebnis im Idealfall eine dichte,<br />
räumliche Punktwolke sowie vollständige Kameraparameter für alle Ansichten.<br />
Den Abschluss der Vorverarbeitungsphase bildet die absolute Ausrichtung aller Raumdaten,<br />
wobei optional eine Georegistrierung der Szene über GPS-Daten (z.B. GPS-Tags)<br />
oder manuelle Eingaben durchgeführt werden kann. Die Registrierung ist notwendig,<br />
wenn der Einsatz einer interaktiven Navigationshilfe in Form einer Minikarte (siehe<br />
Abb.3.9) gewünscht wird.<br />
Abb. 3.9: Minikarte (mit grünem Standortsymbol) als Navigationshilfe [ea06]<br />
Hauptmerkmal der Präsentationsphase ist das interaktive Durchwandern und Entdecken<br />
der rekonstruierten 3D-Szene. Die Darstellung erfolgt dabei über einen zentralen Viewport,<br />
worüber sowohl die erzeugte Punktwolke als auch die eingebetteten Ansichten in<br />
Form von Bildebenen abgebildet werden.<br />
Für die Navigation stehen die Modi Freiflug, Ansichtsbasiert und Objektbasiert zur Auswahl.<br />
Der erste Modus ermöglicht das freie Erkunden der Szene, ohne dass Ansichten<br />
exklusiv im Viewport dargestellt werden. Der ansichtsbasierte Modus beinhaltet das<br />
Selektieren und Bewegen zwischen den expliziten Ansichten. Der objektbasierte Modus<br />
erlaubt hingegen die Auswahl und Darstellung von im Vorfeld identifizierten und<br />
annotierten Objekten über mehrere Ansichten hinweg.<br />
Der Wechsel zwischen den Ansichten kann über unterschiedliche Ansätze erfolgen. Zentraler<br />
Bestandteil ist dabei in jedem Fall die Sichttransformation durch lineares Interpolieren<br />
der Kamera zwischen dem Ausgangs- und Zielbild. Dabei ist zu beachten, dass das System<br />
die Position, die Orientierung und den Blickwinkel der Kamera getrennt voneinander<br />
interpoliert, um so degenerierte Transformationen zu vermeiden. Für die Berechnung von<br />
Zwischenbildern stehen zwei Verfahren zur Auswahl.<br />
• Planares Morphing<br />
Ausgehend von zwei Kameras C j und C k , wird eine Ebene durch planares Approxi-<br />
28
3.3 Photo Tourism: Exploring Photo Collections in 3D<br />
mieren der gemeinsamen Tracks erzeugt. Auf diese Ebene werden die beiden Bilder<br />
I j und I k projiziert und in Abhängigkeit von der Kamerabewegung linear geblendet.<br />
• Trianguliertes Morphing<br />
Zunächst findet in der Vorverarbeitungsphase eine Projektion aller Punkte, die<br />
durch die Kameras C j bzw. C k erfasst werden, sowie eine anschließende Delaunay-<br />
Triangulierung im Bildraum statt. Da im Allgemeinen nicht alle Bereiche einer<br />
Ansicht durch die Triangulierung abgedeckt werden können, wird zusätzlich ein<br />
reguläres Gitternetz eingefügt und die Gitterknoten, welche außerhalb der konvexen<br />
Hülle liegen, der Triangulierung hinzugefügt.<br />
Da jeder Punkt im Bildraum auch eine dreidimensionale Position benötigt, wird<br />
diese mittels Raycasting auf der gemeinsamen Ebene von C j und C k berechnet.<br />
Danach werden die räumlichen Netzmodelle durch Übertragen der Triangulierung<br />
für die Start- und Zielansicht erzeugt. Den Abschluss der Vorverarbeitung bildet das<br />
projektive Texturieren der Netzmodelle. Während des Bildwechsels werden nun die<br />
beiden Dreiecksnetze auf Basis der interpolierten Kameraparameter gerendert und<br />
abschließend die erzeugten Ansichten linear geblendet.<br />
Nachdem in den bisherigen Abschnitten der Fokus auf dem Import, der Aufbereitung<br />
und der Präsentation der Bilddaten lag, erläutern die Autoren im letzten Teil der Arbeit<br />
Möglichkeiten, wie bereits fertig rekonstruierte Szenen erweitert werden können.<br />
Eine Variante ist das Hinzufügen von neuen Bildern, ohne dass ein erneuter Durchlauf<br />
der Vorverarbeitungsphase notwendig ist. Hierzu wechselt der Nutzer in einen Übersichtsmodus,<br />
wo er die Szene von oben betrachtet und zusätzliche Bilder durch Drag’n’Drop<br />
hinzufügen kann. Falls ein Bild eingefügt wurde, werden wiederum Bildmerkmale mittels<br />
SIFT ermittelt und Korrespondenzen in den 20 nächsten Ansichten in der Szene<br />
gesucht. Anschließend werden die Kameraparameter des hinzugefügten Bildes auf Basis<br />
der selektierten Ansichten neu berechnet.<br />
Die bildübergreifende Annotation von Objekten ist eine weitere Option, eine bestehende<br />
Szene zu ergänzen. Zuallererst wird dazu ein Objekt in der aktuellen Ansicht selektiert<br />
und über einen Eingabedialog mit Metadaten (z.B. Text, Weblinks) versehen. Nachfolgend<br />
werden dann diese Informationen durch das System auf alle Ansichten übertragen, welche<br />
exakt das gleiche Objekt abbilden. Zusätzlich zu der hier beschriebenen Methode gibt es<br />
die Möglichkeit, durch die Anbindung an bekannte Bildportale wie FlickR automatisiert<br />
Annotationen in das System zu übertragen.<br />
3.3.3 Prozessübersicht<br />
Da der Bildwechsel im beschriebenen System auch mittels bildbasiertem Morphing<br />
möglich ist, soll im Folgenden ein Überblick über dafür notwendigen Teilschritte gegeben<br />
werden.<br />
29
3 Forschungsarbeiten<br />
1. Bildakquisition<br />
Akquisition von Bilddaten einer Szene aus verschiedenen Quellen, wobei sowohl unkalibrierte<br />
als auch kalibrierte Fotos möglich sind (<strong>of</strong>fline oder per Web-Anbindung).<br />
2. Feature- und Korrespondenzdetektion<br />
Automatisiertes Finden von Bildmerkmalen mittels des SIFT-Operators [Low04].<br />
Anschließend werden mittels des RANSAC-Algorithmus [FB87] Korrespondenzen<br />
zwischen Bildpaaren gesucht und diese für multiple Bilder in sogenannten Tracks<br />
organisiert.<br />
3. Szenenrekonstruktion<br />
Rekonstruktion der Kameraparameter sowie der 3D-Positionen aller Tracks. Optional<br />
findet eine Linienrekonstruktion innerhalb der Szene statt.<br />
4. Punktprojektion<br />
Projektion aller Punkte, die durch die Start- bzw. Zielkamera erfasst werden.<br />
5. Triangulierung<br />
Auf Basis der projizierten Punkte wird im Bildraum eine Delaunay-Triangulierung<br />
durchgeführt.<br />
6. Planares Gitternetz<br />
Einfügen eines regelmäßigen Gitters, wo jeder Knoten außerhalb der konvexen Hülle<br />
des Dreiecksnetzes der Triangulierung hinzugefügt wird. Die 3D-Position wird durch<br />
Raycasting auf der Tracks-Ebene (approximiert alle gleichzeitig sichtbaren Punkte)<br />
gewonnen.<br />
7. Räumliches Dreiecksnetz<br />
Auf Basis der im Bildraum durchgeführten Triangulierungen wird für die Start- und<br />
Zielansicht jeweils ein korrespondierendes, dreidimensionales Netzmodell erzeugt.<br />
8. Projektive Texturierung<br />
Ausgehend vom jeweiligen Blickpunkt, werden mittels projektiver Texturierung<br />
die Texturkoordinaten für die dreidimensionalen Netze der Start- und Zielansicht<br />
berechnet.<br />
9. Sichtinterpolation<br />
Während des Bildübergangs werden die Kameraposition, die Orientierung sowie der<br />
Blickwinkel getrennt voneinander interpoliert.<br />
10. Rasterisierung<br />
Über den interpolierten Blickpunkt werden die Dreiecksnetze getrennt voneinander<br />
gerendert und zwischengespeichert<br />
11. Blending<br />
Entsprechend des relativen Abstandes der interpolierten Kameraposition zur Startund<br />
Zielposition, werden die gerenderten Zwischenansichten linear geblendet.<br />
30
3.4 Vergleich und Bewertung<br />
3.3.4 Zusammenfassung<br />
Snavely et al. haben in dieser Arbeit ein sehr flexibles und komplexes Visualisierungssystem<br />
vorgestellt, das die Akquisition, Rekonstruktion sowie Darstellung von komplexen<br />
Szenen auf Basis von unstrukturierten Bildmengen erlaubt. Die Fähigkeit, beliebige<br />
Bilder einer Szene für die räumliche Rekonstruktion der Geometrie- und Kameradaten<br />
verwenden zu können, macht das System vielseitig einsetzbar. Durch die integrierte<br />
Web-Anbindung an bekannte Bildportale wie FlickR ist es zudem eine schnelle und<br />
effiziente Bildakquisition möglich.<br />
Die Präsentation der Bilddaten erfolgt durch eine Einbettung in die rekonstruierte Szene,<br />
sodass intuitiv zwischen den verschiedene Ansichten navigiert werden kann. Der Bildwechsel<br />
erfolgt dabei über einen hybriden Ansatz, der neben der kontinuierlichen Interpolation<br />
der Kameraparameter auch ein merkmals- und strukturbasiertes Morphing umfasst.<br />
3.4 Vergleich und Bewertung<br />
Nachdem in diesem Kapitel drei aktuelle wissenschaftliche Arbeiten aus dem Bereich<br />
des Morphings vorgestellt und inhaltlich beschrieben wurden, erfolgt nun in Tabelle 3.1<br />
eine Gegenüberstellung der präsentierten Ansätze. Durch diesen Vergleich soll sowohl ein<br />
kompakter Überblick über die Eigenschaften und Fähigkeiten der entwickelten Ansätze<br />
als auch eine möglichst umfassende Bewertungsgrundlage geschaffen werden.<br />
Es ist ersichtlich, dass die von Timo Stich und Marcus Magnor vorgestellte Methode<br />
bezüglich der Komplexität einfacher aufgebaut ist als die beiden anderen Ansätze. Die<br />
Anzahl der Vorverarbeitungsschritte ist weitaus geringer, da weder Kalibrierungsdaten<br />
noch extrahierte Raumdaten zum Einsatz kommen. Um dennoch eine ansprechende<br />
Interpolation von Bildern zu erreichen, nutzen die Autoren für das Blending Erkenntnisse<br />
und Techniken aus der Wahrnehmungspsychologie.<br />
Eine fortschrittlichere Methode wird in der Arbeit „Silhouette-Aware Warping for Image-<br />
Based Rendering“ verwendet, weshalb hier weitaus mehr und auch deutlich komplexere<br />
Teilschritte für die Generierung von Zwischenansichten notwendig sind. Das Ergebnis ist<br />
eine Silhouetten-erhaltende Bildsynthese von nahezu jedem beliebigen Blickpunkt aus,<br />
ohne dass beachtenswerte Bildfehler bei Objektverdeckungen oder Tiefensprüngen auftreten.<br />
Als nachteilig ist der hohe Aufwand für die Gewinnung geeigneter Bilddatensätze zu<br />
sehen, da in jedem Fall eine Kamerakalibrierung durchgeführt werden muss.<br />
Das durch Snavely et al. vorgestellte System „Photo Tourism“ stellt, bezogen auf seine<br />
Morphing-Fähigkeiten, einen Kompromiss aus Einfachheit und Komplexität dar. Die<br />
größte Stärke liegt in der Verwendung beliebiger Quelldaten, wodurch die Akquisition<br />
einer Szene direkt und auch webgestützt durchgeführt werden kann. Darüber hinaus<br />
31
3 Forschungsarbeiten<br />
werden aus den Quellbildern Kamera- und Geometriedaten gewonnen und aktiv für die<br />
Sichtinterpolation beim Bildwechsel verwendet. Aus Sicht der Autoren kann es, bedingt<br />
durch nicht erfasste Punkte und fehlerhafte Geometriedaten, aber dennoch bei der Darstellung<br />
zu Fehlern kommen.<br />
Die eigentliche Bildberechnung erfolgt ohne Berücksichtigung von Sillhoueten oder Tiefenebenen,<br />
wodurch das System hinsichtlich seiner Morphing-Eigenschaften weniger<br />
leistungsfähig ist als die Lösung von Chaurasia et al.<br />
3.5 Zusammenfassung<br />
Der Fokus dieses Kapitels lag auf der Betrachtung und Analyse von drei wissenschaftlichen<br />
Arbeiten, die sich mit dem Morphing zweidimensionaler Bilddaten unter Beachtung<br />
tiefenräumlicher Faktoren auseinandersetzen. Die Arbeiten wurden hinsichtlich ihres<br />
Inhalts betrachtet, analysiert sowie die zentralen Lösungsansätze in Stichpunktform<br />
herausgearbeitet. Anschließend fand eine Gegenüberstellung sowie eine abschließende<br />
Bewertung der Arbeiten statt.<br />
32
3.5 Zusammenfassung<br />
Image Morping for<br />
Space-Time Interpolation<br />
[SM07]<br />
Silhouette-Aware<br />
Warping for Image-<br />
Based Rendering<br />
[CSD11]<br />
Photo Tourism: Exploring<br />
Photo Collections<br />
in 3D [ea06]<br />
Autoren Stich, Magnor Chaurasia, Sorkine, Drettakis<br />
Snavely, Seitz, Szeliski<br />
Quellbilder beliebig kalibriert beliebig<br />
Szenenrekonstrwolken,<br />
nein Mesh<br />
ja, Kameradaten, Punkt-<br />
wolken, Mesh<br />
ja, Kameradaten, Punkt-<br />
Prozess sequentiell, einfach sequentiell, komplex sequentiell, komplex<br />
Bilder pro 2 >= 4 >= 2<br />
Übergang<br />
Warping über Flussfelder, Inverse-<br />
Mapping<br />
blickpunktabhängig,<br />
interpolierte Projektion,<br />
kein Warping, sondern<br />
blickpunktabhängiges<br />
Forward-Mapping Mesh-Rendering<br />
Blending einfach, adaptives Blending<br />
komplex, Raycasting, einfach, lineares Polygon-<br />
über Fehlermaske Fehlerwertberechnung, Blending, distanzabhän-<br />
Texture-Blending gig<br />
Verdeckungstoleranz<br />
gering (bei Multilayer- sehr hoch durchschnittlich (abhän-<br />
Umsetzung eher möglich)<br />
gig von Szene)<br />
Blickpunkt festgelegt (interpoliert) variabel, abhängig von variabel, Bildsynthese bei<br />
Datensatz<br />
Bildpaaren<br />
Vorteile flexibel, beliebige Bilder, Erhaltung von Konturen,<br />
flexibel, beliebige Bilder,<br />
einfach, Refinement über<br />
Tiefenschichten, Ver-<br />
echte Sichtinterpolation<br />
Optischen Fluss<br />
deckungen möglich<br />
Nachteile ohne Bildtiefe, Verdeckung<br />
aufwendige Bildakquisiti-<br />
Konturen werden igno-<br />
kritisch, nutzt nur on, manuelle Konturmarriert,<br />
Verdeckung kritisch,<br />
Blending<br />
kierung, komplex kein Warping<br />
Tab. 3.1: Vergleich - Forschungsarbeiten<br />
33
4 Konzeption<br />
Den Kern dieses Kapitels bildet die strukturelle und inhaltliche Konzeption der in<br />
dieser Arbeit angestrebten Programmlösung. Beginnend mit der Zieldefinition und der<br />
Erläuterung der relevanten Zielkriterien, wird anschließend der zentrale Lösungsansatz<br />
sowie die dazugehörigen Teilbereiche schrittweise vorgestellt und erläutert.<br />
4.1 Ziel<br />
In Anlehnung an das Projekt Photo Tourism (siehe Unterkapitel 3.3), dessen Schwerpunkt<br />
auf der bildbasierten Rekonstruktion und Visualisierung von Szenen liegt, soll in der<br />
hier vorliegenden Arbeit eine S<strong>of</strong>twarelösung konzipiert und entwickelt werden, die das<br />
Generieren und Präsentieren von Bildergalerien innerhalb einer webbasierten Umgebung<br />
ermöglicht.<br />
Da zudem bildbasiertes Morphing einen zentralen Bestandteil dieser Arbeit darstellt, sollen<br />
Bildübergänge während der Präsentation stets unter Anwendung eines entsprechenden<br />
Verfahrens durchgeführt werden. Daraus ergibt sich die Notwendigkeit, dass die für das<br />
Morphing notwendigen Daten zur Laufzeit permanent verfügbar sein müssen und somit<br />
bereits im Vorfeld zu generieren sind.<br />
4.2 Zielkriterien<br />
Im Folgenden werden die dem Konzept zugrunde liegenden Zielkriterien aufgelistet und<br />
beschrieben.<br />
• Flexibilität<br />
Die angestrebte Programmlösung sollte ein hohes Maß an Flexibilität bezüglich<br />
Quelldaten und Verarbeitungsmethoden aufweisen, um so ein möglichst großes<br />
Einsatzspektrum zu erreichen.<br />
• Modularer Aufbau<br />
Durch einen modularen Aufbau sollen Erweiterungen und Modifikationen der Programmlösung<br />
schnell und einfach umzusetzen sein.<br />
34
4.3 Allgemeiner Lösungsansatz<br />
• Separate Vorverarbeitung<br />
Die Erzeugung von Galeriedaten sollte getrennt von der Visualisierung stattfinden,<br />
damit hohe Systemanforderungen und Latenzen zur Laufzeit vermieden werden<br />
können.<br />
• Webbasierte Präsentation<br />
Die Präsentation der Bildergalerien soll über ein eigenes Webfrontend unter Einsatz<br />
moderner Web-Technologien stattfinden.<br />
• Morphing<br />
Die Thematik Morphing als Schwerpunkt dieser Arbeit steht sowohl bei der Vorverarbeitung<br />
als auch bei der Visualisierung im Fokus. Die programmseitige Integration<br />
entsprechender Ansätze und Technologien ist dabei ausdrücklich erwünscht.<br />
• Beliebige Quelldaten<br />
Da Erzeugen von Bildergalerien sollte sowohl mit kalibrierten als auch unkalibrierten<br />
Quellbildern möglich sein.<br />
• Konfigurierbarkeit<br />
Es sollte innerhalb der Programmlösung eine Vielzahl von Einstellungsmöglichkeiten<br />
existieren, um sowohl auf die Erzeugung als auch Darstellung aktiv Einfluss nehmen<br />
zu können.<br />
• Tiefeninformationen<br />
S<strong>of</strong>ern für einen gegebenen Bilddatensatz dreidimensionale Geometrie- und Kameradaten<br />
vorliegen, sollte deren Verwendung möglich sein.<br />
4.3 Allgemeiner Lösungsansatz<br />
Ausgangspunkt des Lösungsansatzes bildet eine unsortierte Menge von Bildern, die<br />
einer gemeinsamen Szene entstammen. Im ersten Schritt wird darauf aufbauend eine<br />
Graphenstruktur etabliert (siehe Abb. 4.1). Das ist notwendig, da die statischen Nachbarschaftsbeziehungen<br />
die Grundlage für die nachfolgende Vorverarbeitung bilden und<br />
darüber hinaus für das Navigieren innerhalb der Galerie notwendig sind.<br />
Abb. 4.1: Strukturierung einer Bildmenge als Graph<br />
35
4 Konzeption<br />
Nachdem durch das Anlegen des Graph die Bildmenge strukturiert wurde, findet die<br />
weitere Verarbeitung kantenorientiert (d.h. pro Bildpaar) statt. Dieser Umstand ergibt<br />
sich aus der Tatsache, dass zwei unterschiedliche Bilder I a und I b durch höchstens eine<br />
Kante verbunden sein können und diese deshalb die strukturelle Grundlage für den<br />
Bildübergang darstellt. Da dieser gemäß der Zielkriterien mittels Morphing realisiert<br />
werden soll und demnach eine entsprechende Datengrundlage benötigt wird, werden<br />
anschließend Verfahren zur Merkmals- und Korrespondenzdetektion auf das Bildpaar<br />
(I a , I b ) angewandt.<br />
Ein weiteres Kriterium stellt die prozesstechnische Nutzung von Tiefeninformationen<br />
dar, weshalb anschließend ggf. vorhandene Raum- und Kameradaten importiert und dem<br />
aktuellen Bildpaar zugewiesen werden. Im Idealfall existieren für jedes Bildpaar (I a , I b )<br />
nach Abschluss der initialen Verarbeitungsstufe vollständige Kameradaten (Position,<br />
Blickrichtung und -winkel) sowie eine Menge von Korrespondenzpaaren mit dazugehörige<br />
dreidimensionalen Positionsdaten.<br />
Abb. 4.2: Bildpaar (I a , I b ) mit Korrespondenzen (farbig), erzeugtes Korrespondenzfeld F<br />
Ziel des nächsten Schrittes ist die Generierung eines dichten Korrespondenzfeldes F , über<br />
das eine räumliche Relation zwischen allen Bildpunkten im Ausgangsbild I a und Zielbild<br />
I b hergestellt wird (siehe Abb. 4.2). Falls die Bedingung I a (p) = I b (p ′ ) erfüllt ist, ergibt<br />
sich F (p) aus der räumlichen Differenz der beiden Punkte.<br />
F : R 2 → R 2<br />
F (p) = p ′ − p<br />
Die Erzeugung eines dichten Korrespondenzfeldes stellt in erster Linie ein nichtriviales,<br />
räumliches Interpolationsproblem dar. Die gefundenen Korrespondenzpunkte mit<br />
den dazugehörigen Differenzvektoren dienen dabei als Stützpunkte. In dieser Stufe der<br />
Vorverarbeitung wird nun unter Anwendung geeigneter Verfahren an jedem Punkt im<br />
36
4.3 Allgemeiner Lösungsansatz<br />
Korrespondenzfeld ein Vektor d ∈ R 2 unter Beachtung der k nächsten Stützstellen<br />
berechnet.<br />
Sei nun C k = {c 1 , ..., c k } die Menge der k nächsten Korrespondenzpunkte und U k =<br />
{u 1 , ..., u k } die Menge der damit assoziierten Differenzvektoren, so ergibt sich d für den<br />
Punkt p als Linearkombination aller u i ∈ U k<br />
k∑<br />
d = w i ∗ u i<br />
i=1<br />
Die Menge C k , die sich durch Anwendung eines deterministischen KNN-Algorithmus<br />
(metrikbasiert, i.A. Euklidische Metrik) ergibt, wird aufgrund der Verortung im Bildraum<br />
i.d.R. als fix betrachtet. Aus diesem Grund liegt der Schwerpunkt bei der Interpolation<br />
auf der optimalen Wahl und Anwendung eines geeigneten Verfahrens (siehe auch 2.3) zur<br />
Berechnung der Faktoren w i . Als zentraler Bestandteil der Konzeption werden potentiell<br />
verwendbare Interpolationsansätze im nachfolgenden Unterkapitel gesondert betrachtet.<br />
Nachdem für ein Bildpaar (I a , I b ) das Korrespondenzfeld F berechnet wurde, wird<br />
anschließend das Ausgangs- und Zielbild vertauscht und auf gleiche Weise das inverse<br />
Feld F −1 generiert. Dieser Prozess der Felderzeugung wird für alle Kanten im Bildgraph<br />
wiederholt.<br />
Den nächsten und letzten Schritt im Gesamtprozess bildet nun die Präsentation der<br />
Bildergalerie. Basierend auf dem Bildgraph mitsamt seiner Daten (v.a. Bilder, Korrespondenzfelder)<br />
wird die Bildergalerie initialisiert und durch die Wahl eines beliebigen<br />
Bildes I a zum damit assoziierten Graphknoten gesprungen. Unter der Annahme, dass<br />
eine Verbindung zu weiteren Knoten besteht und ein Bildwechsel nach I b erfolgen soll,<br />
wird nun die grafische Umsetzung der Transition mittels Morphing betrachtet.<br />
Mit der Initialisierung des Bildwechsels werden einmalig alle benötigten Morphing-Daten<br />
der verwendeten Graphkante geladen und bereitgestellt. Hinzu kommt die Initialisierung<br />
des Transitionsparameters t ∈ [0, 1] mit Null, da dieser zyklisch während des Bildwechsels<br />
inkrementiert wird und numerisch den Fortschritt repräsentiert.<br />
Pro Zyklus wird zunächst das Warping auf Basis der Korrespondenzfelder F und F −1<br />
durchgeführt. Die Warping-Funktion T ist dabei wie folgt definiert:<br />
T : R 2 → R 2<br />
T (x) = x + F (x)<br />
Analog wird T −1 definiert, wobei hier das inverse Feld F −1 zum Einsatz kommt wird.<br />
T −1 : R 2 → R 2<br />
T −1 (x) = x + F −1 (x)<br />
37
4 Konzeption<br />
T und T −1 ermöglichen ein bijektive Abbildung für das Bildpaar (I a , I b ), falls gilt:<br />
∀x ∈ R 2 :<br />
I a (x) = I b (T (x))<br />
I b (x) = I a (T −1 (x))<br />
Man beachte, dass der dargestellte Fall äußerst unwahrscheinlich ist, denn dies würde<br />
eine Eins-zu-Eins Relation für jeden Pixel im Ausgangs- und Zielbild vorraussetzen.<br />
Das eigentliche Warping erfolgt nach dem Prinzip des Inverse Mappings, bei dem für jeden<br />
Bildpunkt an einer Stelle p ∈ R 2 mittels der Abbildungen T und T −1 die Intensitätswerte<br />
c a und c b im Ausgangs- und Zielbild ausgelesen werden. Der Transitionsparameter t dient<br />
hier zusätzlich als Skalierungsfaktor für die Feldvektoren in T und T −1 .<br />
c a = I a (Tt<br />
−1 (p)) = I a (p + t ∗ F −1 (p))<br />
c b = I b (T 1−t (p)) = I b (p + (1 − t) ∗ F (p))<br />
Nach dem Auslesen wird als letzter Schritt die Berechnung des Intensitätswertes mittels<br />
Blending durchgeführt. Wie bereits in den Grundlagen beschrieben, ergibt sich der resultierende<br />
Wert aus der Linearkombination von c a und c b , wobei der Transitionsparameter<br />
t als Gewichtungsfaktor dient.<br />
c = (1 − t) ∗ c a + t ∗ c b<br />
4.4 Interpolationsansätze<br />
Im Lösungsansatz wurde bereits deutlich gemacht, dass die Erzeugung eines dichten<br />
Korrespondenzfeldes auf der Interpolation verteilter Stützpunkte beruht. In diesem<br />
Zusammenhang sollen Verfahren betrachtet werden, die hierfür geeignet sind. Ausgangspunkt<br />
ist dabei ein beliebiger Punkt p ∈ R 2 . Mit Ausnahme der ersten beiden Ansätze ist<br />
C k = {c 1 , ..., c k } die Menge der k nächsten Stützstellen und U k = {u 1 , ..., u k } die Menge<br />
der Stützwerte (in diesem Fall Differenzvektoren).<br />
4.4.1 Baryzentrische Interpolation<br />
Die baryzentrische Interpolation ist ein bekanntes Interpolationsverfahren, dass auf einem<br />
im Vorfeld erzeugten Dreiecksnetz basiert. Die Grundlage für die Triangulierung bildet<br />
die Menge der Korrespondenzenpunkte C.<br />
Zuerst ist ein Punkt-in-Dreiecks-Test notwendig, um so das umschließende Dreieck<br />
38
4.4 Interpolationsansätze<br />
△c 1 c 2 c 3 zu erhalten. S<strong>of</strong>ern noch keine baryzentrischen Koordinaten durch den Test<br />
vorliegen, werden im nächsten Schritt die Flächeninhalte der aufgespannten Teildreiecke<br />
und des kompletten Dreiecks berechnet (siehe Abb. 4.3).<br />
A = area(△c 1 c 2 c 3 )<br />
A i = area(△c j c k p)<br />
Abb. 4.3: Baryzentrische Interpolation - Schema<br />
Der interpolierte Wert d ergibt sich durch die Linearkombination aller drei Stützwerte<br />
auf Basis der baryzentrischen Koordinaten, welche über die Flächenverhältnisse der<br />
Teildreiecke zum Gesamtdreieck berechnet werden.<br />
4.4.2 Bilineare Interpolation<br />
d = b 1 ∗ u 1 + b 2 ∗ u 2 + b 3 ∗ u 3<br />
b i = A i<br />
A<br />
Neben der baryzentrischen Interpolation existiert mit der bilinearen Interpolation eine<br />
weitere strukturbasierte Methode, um einen Punkt p in der Ebene zu interpolieren.<br />
Die Grundlage hierfür bildet eine Gitterstruktur, die in diesem Fall den Bildraum in<br />
achsenausgerichtete Rechtecke aufteilt.<br />
Die mit den Gitterknoten verbundenen Differenzvektoren dienen für die bilineare Interpolation<br />
als Stützwerte und müssen nach der Gittergenerierung auf Basis der k nächsten<br />
Stützstellen für jeden Gitterknoten individuell berechnet werden.<br />
39
4 Konzeption<br />
Abb. 4.4: Bilineare Interpolation - Schema<br />
Sei nun der p = (x, y) der Punkt, dessen Differenzvektor d interpoliert werden soll. Dann<br />
ergibt sich für vier Gitterknoten g 11 = (x 1 , y 1 ), g 21 = (x 2 , y 1 ), g 12 = (x 1 , y 2 ) und g 22 =<br />
(x 2 , y 2 ) und deren Differenzvektoren u 11 , u 21 , u 12 und u 22 folgende Interpolationsvorschrift:<br />
α = x 2 − x<br />
x 2 − x 1<br />
β = y 2 − y<br />
y 2 − y 1<br />
d 1 = αu 11 + (1 − α)u 21<br />
d 2 = αu 12 + (1 − α)u 22<br />
d = βd 1 + (1 − β)d 2<br />
Die Berechnung setzt voraus, dass die Bedingungen x 1
4.4 Interpolationsansätze<br />
flächendeckende Interpolation von Mess- und Höhenwerten eingesetzt wird.<br />
Die Berechnung der Einflussfaktoren basiert auf der Annahme, dass die Bedeutung eines<br />
Stützpunktes sich umgekehrt proportional zur Distanz zwischen dem Stützspunkt und<br />
dem zu interpolierenden Punkt verhält. Daraus ergibt sich folgende Berechnungsvorschrift:<br />
d =<br />
k∑<br />
i=1<br />
w i =<br />
w i<br />
∑ kj=1<br />
w j<br />
u i<br />
1<br />
‖c i − p‖ θ<br />
Der Parameter θ beeinflusst die Abnahme der Gewichtungsfaktoren und somit die<br />
Glattheit der interpolierten Fläche. Im Allgemeinen wird θ = 2 verwendet.<br />
4.4.4 Gauß-Interpolation<br />
Analog zur Shepard-Interpolation stellt die Gauß-Interpolation (nicht identisch zur Gaußschen<br />
RBF) ein distanzbasiertes Gewichtungsverfahren dar. Anstelle die Abstände direkt<br />
in die Berechnung einfließen zu lassen, nutzt das Verfahren die bekannte Gauß-Funktion,<br />
um einen glatte und harmonische Interpolation zu realisieren.<br />
Bevor eine Gewichtung mittels der Gauß-Funktion geschehen kann, muss zunächst der<br />
Intervalparameter σ berechnet werden. Dieser ist i.d.R. vom Distanzinterval der betrachteten<br />
Stützstellen abhängig und sollte demnach so gewählt werden, dass die Stützstellen<br />
mit zunehmenden Abstand entsprechend geringer gewichtet werden. Die Verwendung<br />
einer fixen Maximaldistanz (z.B. 5% der Bilddiagonale) ist durchaus möglich, kann aber<br />
zu Problemen bei weit auseinander liegenden Stützpunkten (zuviel Nullgewichte) führen.<br />
Stattdessen ist es besser, den maximalen Abstand r max für die Menge der Stützstellen<br />
C k zu ermitteln und diesen für die näherungsweise Berechnung von σ zu verwenden.<br />
σ = (2r max − 1)<br />
7<br />
Darauf aufbauend ist die unnormalisierte Gauß-Funktion G definiert, wobei r i den<br />
relativen, euklidischen Abstand von p zur Stützstelle c i repräsentiert:<br />
G : R → [0, 1]<br />
−r<br />
i<br />
2<br />
G(r i ) = e 2σ 2<br />
Wie man in Abbildung 4.5 erkennen kann, erfolgt die Gewichtsverteilung insbesondere<br />
im Intervall [−r max , r max ].<br />
41
4 Konzeption<br />
Abb. 4.5: Unnormalisierte Gauß-Funktion G für r max = 11.0<br />
Der interpolierte Wert d berechnet sich aus der Linearkombination der gegebenen Stützwerte<br />
u i mithilfe der Gewichtungsfaktoren w i , die sich aus der Abbildung von r i mittels<br />
G ergeben. Den Abschluss der Berechnung bildet die Normalisierung von d über die<br />
Summe aller Gewichte w i .<br />
d =<br />
k∑<br />
i=1<br />
w i<br />
∑ kj=1<br />
w j<br />
u i<br />
w i = G(r i )<br />
4.4.5 Bilaterale Interpolation<br />
Im Gegensatz zu den bisher vorgestellten Ansätzen, welche in erster Linie auf Basis<br />
der räumlichen Struktur und Distanz arbeiten, werden bei der bilateralen Interpolation<br />
weitere Bildinformationen für die Gewichtung verwendet. Aufgrund dieser Erweiterung<br />
um zusätzliche Faktoren (z.B. Farbe, Bildtiefe) ist es tendenziell leichter, bildspezifische<br />
Eigenheiten bei der Interpolation zu berücksichtigen und korrekt wiederzugeben.<br />
Die Grundlage bildet die bilaterale Filterung aus dem Bereich der Bildverarbeitung<br />
[PKTD07, DD02], welche im Gegensatz zu anderen Verfahren (z.B. Box-Filter, Gauß-<br />
Filter) adaptiv arbeitet und individuell auf Bildpunktebene glättet. Wie man in Abbildung<br />
4.6 sehen kann, erlaubt der bilaterale Bildfilter das Weichzeichnen von Flächen, ohne<br />
dass deren Konturen verwischen.<br />
Ein bilateraler Filter nutzt für die Gewichtung neben der räumlichen Distanz zwischen<br />
zwei Punkten auch deren Farb-/Intensitätsdifferenz. Motivation hierfür ist die Annahme,<br />
dass Punkte mit gleichem oder sehr ähnlichem Farbton zu einer gemeinsamen Fläche<br />
gehören und dementsprechend stärker voneinander beeinflusst werden als verschiedenfarbige<br />
Punkte. Da innerhalb einer Bildszene mehrere getrennte Flächen mit gleichem<br />
Farbton auftreten können, muss zudem der räumliche Abstand als weiterer Faktor in die<br />
Gewichtung einfließen.<br />
42
4.4 Interpolationsansätze<br />
Abb. 4.6: Bilateraler Filter - Beispiel [SP07]<br />
Abb. 4.7: Bilateraler Bildfilter - Schema [DD02]<br />
Zentrales Element bei der Berechnung der Gewichte ist auch hier die eindimensionale Gauß-<br />
Funktion, über die unter Anwendung der Intervalparamter σ s und σ r die Distanzwerte<br />
transformiert und nachfolgend multipliziert werden. Die Berechnungsvorschrift für die<br />
bilaterale Interpolation eines Punktes p anhand der Nachbarpunkte q i ∈ S lautet wie<br />
folgt:<br />
I ′ p =<br />
1 ∑<br />
G σs (‖p − q‖)G σr (|I p − I q |)I q<br />
W p<br />
q∈S<br />
Die Komposition und Funktionsweise des bilateralen Filters ist in Abbildung 4.7 schematisch<br />
dargestellt. Man sieht, dass vorallem im Bereich der Plateau-Kante die Amplitudendifferenz<br />
zwischen dem betrachteten Punkt und seiner Umgebung entscheidend für die<br />
Komposition des finalen Filter-Kernels ist.<br />
43
4 Konzeption<br />
Abb. 4.8: Bilaterale Interpolation - Beispiel: p wird aufgrund<br />
der gleichen Farbe stärker von c 1 und c 2 beeinflusst<br />
als von c 3<br />
Das Prinzip der bilateralen Interpolation auf Basis verteilter Stützpunkte verhält sich<br />
nun analog zum bilateralen Filter. Das Fundament bilden erneut die Mengen C k und U k ,<br />
in denen die k nächsten Stützstellen respektive die damit assoziierten Differenzvektoren<br />
enthalten sind. Ausgehend von einem Punkt p ergibt sich unter Hinzunahme eines Bildes<br />
I : R 2 → R folgender Interpolationsansatz:<br />
d =<br />
1<br />
∑ kj=1<br />
w j<br />
k∑<br />
w i u i<br />
i=1<br />
w i = G σs (‖p − c i ‖)G σr (|I(c i ) − I(p)|)<br />
Die unnormalisierte Funktion G σs ist identisch mit G bei der Gauß-Interpolation, da sich<br />
hier das Teilgewicht aus der relativen Distanz ergibt. Die Gauß-Funktion G σr verwendet<br />
hingegen die absolute Farb-/Intensitätsdifferenz als Funktionsargument und gibt einen<br />
entsprechenden Faktor im Intervall [0, 1] zurück.<br />
Zu beachten ist, dass die Berechnung der Teilgewichte nicht zwangsläufig über die Gauß-<br />
Funktion erfolgen muss, sondern ggf. andere Methoden (z.B. inverse Distanzgewichtung)<br />
hierfür verwendet werden können. Darüber hinaus können neben der Farbdifferenz auch<br />
andere Distanzmetriken wie zum Beispiel die Tiefendifferenz in die Interpolation einfließen.<br />
Wie man am Beispiel in Abbildung 4.8 erkennen kann, stellt die bilaterale Interpolation<br />
für die Erzeugung dichter Korrespondenzfelder einen vielversprechenden Ansatz dar und<br />
wird deshalb im weiteren Verlauf dieser Arbeit gesondert betrachtet.<br />
4.5 Gesamtstruktur<br />
Gemäß der Zielkriterien orientiert sich der Lösungsansatz an einer Aufteilung in die<br />
Teilbereiche Vorverarbeitung und Präsentation. Der Grund hierfür ist die aufwändige<br />
Erzeugung der Galerie- und Morphing-Daten, die durch variable Bildmerkmale (z.B.<br />
Auflösung ) sowie der verwendeten Interpolationsmethoden stark variieren kann.<br />
44
4.6 Vorverarbeitung<br />
Abb. 4.9: Gesamtstruktur<br />
Wie in Abbildung 4.9 dargestellt, stellt die Vorverarbeitung die erste Phase im Gesamtprozess<br />
dar. Die Bilddaten sowie gegebenfalls vorhandene Raumdaten dienen dabei als<br />
Eingabe und werden über einen mehrstufigen Prozess zur einer Bildergalerie mitsamt<br />
Zusatzdaten verarbeitet und persistent gespeichert.<br />
Die Präsentation der Daten erfolgt zeitlich versetzt in einer webbasierten Umgebung. Im<br />
Gegensatz zur Vorverarbeitung werden in dieser Phase keine expliziten Daten erzeugt<br />
oder gespeichert, sodass allein das Navigieren und Erkunden im Vordergrund steht.<br />
Abb. 4.10: Gesamtstruktur - Details<br />
Der gesamte Prozess erfolgt, ausgehend von den Rohdaten bis hin zum fertig gerenderten<br />
Bild, weitestgehend sequentiell (mit Ausnahme der Navigation). Dabei werden verschiedene<br />
Zwischenstationen (siehe Abb.4.10) innerhalb der beiden Teilbereiche durchlaufen<br />
und die resultierenden Daten unidirektional weitergeleitet. Eine Rückkopplung von der<br />
Präsentation zur Vorverarbeitung existiert nicht.<br />
4.6 Vorverarbeitung<br />
Gemäß der Abbildung 4.11 besteht die Vorverarbeitungs aus vier Prozessstufen, die in<br />
sequentieller Reihenfolge ausgeführt werden. Jede Stufe setzt sich wiederum aus einer<br />
unterschiedlichen Anzahl von Unterstufen zusammen, die für die Umsetzung der einzelnen<br />
Teilaufgaben zuständig sind. Aufgrund der damit einhergehenden Komplexität werden<br />
im Folgenden die Vorverarbeitungsstufen separat vorgestellt und erläutert.<br />
45
4 Konzeption<br />
Abb. 4.11: Vorverarbeitung - Struktur<br />
4.6.1 Import<br />
Die erste Stufe im Vorverarbeitungsprozess stellt der Datenimport dar. Durch ihn wird<br />
die Datenbasis für die angestrebte Galerie in Form von Bild- und Raumdaten, Bildkorrespondenzen<br />
sowie dem eigentlichen Bildgraph geschaffen (siehe Abb. 4.12).<br />
Abb. 4.12: Import - Struktur<br />
4.6.1.1 Bildimport<br />
Bilder sind das zentrale Element im hier vorgestellten Ansatz, weshalb zunächst zweidimensionale<br />
Bilddaten eingelesen und dekodiert werden müssen. Hierbei wird davon<br />
ausgegangen, dass die Bilder in Dateiform auf dem ausführenden System gespeichert sind<br />
und der Nutzer diese im Zuge der Vorverarbeitung eingibt. Im Kontext des Bildgraph<br />
stellen die eingelesenen Bilder die Menge der Graphknoten dar.<br />
4.6.1.2 Grapherzeugung<br />
Auf Basis der Knotenmenge erfolgt nun die Generierung eines gerichteten Bildgraph. Wie<br />
bereits im Lösungsansatz (siehe 4.3) beschrieben, sollen hierbei alle vorhandenen Knoten<br />
durch Kanten verbunden werden, um später das Navigieren innerhalb der Bildergalerie zu<br />
ermöglichen. Zusätzlich dienen die gerichteten Kanten intern als Träger für Zusatzdaten.<br />
46
4.6 Vorverarbeitung<br />
Das Anlegen der Kanten kann sowohl manuell über den Nutzer als auch automatisiert<br />
über Bilderkennungsverfahren erfolgen. Zyklen und mehrfach angebundene Knoten sind<br />
dabei problemlos möglich, da das System nicht auf Traversierung angewiesen ist.<br />
4.6.1.3 Korrespondenzdetektion<br />
Durch das Anlegen der Graphkanten sind dem System die Nachbarschaftbeziehungen<br />
zwischen den Bildern bekannt, sodass nun die Suche nach korrespondierenden Bildteilen<br />
erfolgen kann. Dies geschieht unter der Annahme, dass zwei benachbarte Bilder ähnliche<br />
Bildstrukturen aufweisen und möglichst die gleiche Szene darstellen.<br />
Abb. 4.13: Korrespondierendes Punktpaar (rot markiert) mit 3D-Position<br />
Anstelle komplette Bildteile in Relation zueinander zu stellen, verwendet der Ansatz<br />
sog. homologe Punkte, die im Ausgangs- und Zielbild auf dieselbe Stelle innerhalb der<br />
Szene verweisen. S<strong>of</strong>ern zusätzliche Raumdaten vorliegen, wird versucht, dem Korrespondenzpaar<br />
zusätzlich eine Position im dreidimensionalen Raum zuzuweisen (siehe Abb.<br />
4.13). Für den Fall eines dichten Positionsfeldes (3D-Position pro 2D-Pixel) geschieht<br />
dies durch direktes Indizieren. Falls stattdessen nur wenige Stützpunkte im Bildraum<br />
eine 3D-Position besitzen, wird eine Interpolation auf Basis einer NNS durchgeführt.<br />
Es gibt unterschiedliche Möglichkeiten, Korrespondenzen zu erhalten. Die Einfachste<br />
ist das manuelle Definieren, wobei die Koordinaten im Ausgangs- und Zielbild paarweise<br />
angegeben werden müssen. Im Gegensatz dazu ist die automatisierte Erkennung<br />
von Bildmerkmalen und -korrespondenzen unter Einsatz spezialisierter Verfahren (z.B.<br />
SIFT-Algorithmus [Low04] mit RANSAC [FB87]) heutzutage bereits Standard und wird<br />
deshalb im vorgestellten Ansatz unterstützt.<br />
47
4 Konzeption<br />
Abb. 4.14: Datenaufbereitung - Struktur<br />
4.6.2 Datenaufbereitung<br />
Nach Abschluss des Imports liegt ein vollständiger Bildgraph vor, weshalb grundsätzlich<br />
mit der Generierung von bildbezogenen Zusatzdaten begonnen werden kann. Bevor dies<br />
geschieht, muss für jede Graphkante eine Aufbereitung der zugrundeliegenden Bilder<br />
durchgeführt werden. Dies ist notwendig, da der hier verfolgte Ansatz heterogene Bilder<br />
(z.B. verschiedene Bildgrößen) erlaubt und ohne entsprechende Anpassungen fehlerhafte<br />
Daten entstehen könnten. Um dem entgegen zu wirken, erfolgt gemäß der Abbildung 4.14<br />
eine squentielle Aufbereitung in drei getrennten Phasen. Anzumerken ist hierbei, dass ab<br />
dem Zeitpunkt der Aufbereitung alle Bildoperationen (z.B. Lesen/Schreiben, Filtern) auf<br />
Kopien der Originaldaten ausgeführt werden.<br />
4.6.2.1 Bildanpassung<br />
Abb. 4.15: Beispiel - Bildanpassung<br />
In diesem Schritt werden das Ausgangsbild I a und das Zielbild I b einer Kante so skaliert<br />
und ausgerichtet, dass beide Bilder am Ende die gleiche Bildgröße besitzen und dennoch<br />
der Bildinhalt ungestaucht darin enthalten ist (siehe Abb.4.15). Der Hauptgrund hierfür<br />
ist der Umstand, dass die Vektorkoordinaten der Korrespondenzfelder im Intervall [−1, 1]<br />
liegen und das Warping bei gleichgroßen Bildern demnach einfacher umzusetzen ist.<br />
48
4.6 Vorverarbeitung<br />
Abb. 4.16: Bildmodifikation - Original (a), nach Glättung (b), nach Segmentierung (c)<br />
Die Grundlage für die Anpassung bildet die maximale Bildhöhe h max beider Bilder,<br />
die zur Berechnung der neuen, maximalen Bildbreite w max unter Beachtung der Seitenverhältnisse<br />
verwendet wird. Danach findet das uniforme Hochskalieren der Bilder<br />
I a und I b mit dem Skalierungsfaktor hmax<br />
h a<br />
bzw. hmax<br />
h b<br />
statt, wobei die dazugehörigen<br />
Korrespondenzkoordinaten gleichermaßen skaliert werden. Den Abschluss bildet das<br />
Hinzufügen von Farbrändern sowie die horizotale Translation der Korrespondenzen zum<br />
Bildzentrum, falls gilt w max > w a bzw. w max > w b .<br />
4.6.2.2 Bildmodifikation<br />
Nachdem die Quellbilder auf die gleiche Größe gebracht und ausgerichtet wurden, erfolgt<br />
nun die Modifikation der Bildinhalte. Dies ist notwendig, da einige Interpolationsverfahren<br />
(z.B. Bilaterale Interpolation) auch Farbdifferenzen für die Gewichtung der Stützpunkte<br />
betrachten. Daraus ergibt sich die Anforderung, dass die eingesetzten Bilder möglichst<br />
rauschfrei sind und über wenige homogene Farbflächen den ursprünglichen Bildinhalt<br />
vereinfacht wiedergeben.<br />
Wie man in Abbildung 4.16 sieht, erfolgt die Modifikation in zwei aufeinanderfolgenden<br />
Schritten. Zunächst wird eine Glättung der Bilder durchgeführt, wodurch Bildrauschen<br />
sowie sonstige Artefakte (z.B. große Farbvarianz) reduziert werden. Hierbei kommt ein<br />
kantenerhaltender Filter (z.B Bilateraler Filter, Medianfilter) zum Einsatz, sodass unterschiedliche<br />
Bildbereiche auch nach der Glättung weiterhin scharf voneinander abgegrenzt<br />
sind. Danach werden die geglätteten Bilder unter Anwendung einer geeigneten Methode<br />
in getrennte Segmente untergliedert, die markante, zusammenhängende Bildflächen über<br />
unikate Farben darstellen.<br />
4.6.2.3 Triangulierung<br />
Den letzten Abschnitt der Aufbereitungsphase bildet die bildraumbasierte Triangulierung<br />
der Korrespondenzen im Ausgangs- und Zielbild. Dieser Schritt ist notwendig, da für<br />
49
4 Konzeption<br />
die Generierung der Korrespondenzfelder die baryzentrischen Interpolation eingesetzt<br />
werden kann und dadurch valide Dreiecksnetze im Bildraum benötigt werden. Ein weiterer<br />
Grund ist der fakultative Einsatz von Tiefeninformationen, die analog zur Farbe für die<br />
Feldinterpolation von Interesse sind.<br />
Die Erzeugung der Dreiecksnetze erfolgt über die bekannte Delaunay-Triangulation,<br />
wobei nur die Korrespondenzpunkte im Ausgangsbild für das Aufstellen der Netztopologie<br />
verwendet werden. Anschließend wird durch sukzessives Iterieren über die Dreiecksmenge<br />
mithilfe der Korrespondenzen im Zielbild ein äquivalentes Netz erzeugt. S<strong>of</strong>ern dreidimensionale<br />
Positionsdaten vorliegen, erstellt diese Methode in gleicher Weise ein räumliches<br />
Dreiecksnetz (Mesh, siehe auch Abb. 4.17).<br />
Abb. 4.17: Triangulierung: Korrespondierende Dreiecke<br />
4.6.3 Datenerzeugung<br />
Da mit Beendigung der vorherigen Stufe die Grundlage für die Erzeugung der angestrebten<br />
Korrespondenzfelder geschaffen wurde, kann dies nun in dieser Stufe geschehen.<br />
Analog zur Datenaufbereitung durchläuft jede Kante insgesamt drei Phasen (siehe Abb.<br />
4.18), wobei die mittlere Phase Feldgenerierung den eigentlichen Schwerpunkt des Vorverarbeitungsprozesses<br />
darstellt.<br />
Abb. 4.18: Datenerzeugung - Struktur<br />
50
4.6 Vorverarbeitung<br />
Für die nachfolgenden Ausführungen wird vorausgesetzt, dass neben Korrespondenzen<br />
im Bildraum auch dreidimensionale Raumdaten (d.h. Kameraparameter, 3D-<br />
Punktpositionen) vorliegen. Obwohl Letztere keine absolute Notwendigkeit darstellen,<br />
wird der Vollständigkeit halber von deren Existenz ausgegangen.<br />
4.6.3.1 Feldvorverarbeitung<br />
Der Fokus der Feldvorverarbeitung liegt auf dem Gewinnen von Tiefeninformationen<br />
anhand der gegebenen Kameraparameter und der rekonstruierten Szenengeometrie. Hierzu<br />
wird, ausgehend vom Blickpunkt von I a /I b , pro Bildpunkt Raycasting nach dem First-<br />
Hit-Prinzip in der Szene angewandt und die Raumtiefe in einem eigens dafür angelegten<br />
Puffer gespeichert (siehe Beispiel in Abb. 4.19).<br />
Abb. 4.19: Raycasting bei ideal rekonstruiertem Mesh (a) invertierte Tiefenmaske (b)<br />
Für den Fall, dass das Raycasting für einen Pixel fehlschlägt (z.B. durch Ungenauigkeit,<br />
fehlende Dreiecke), wird die Tiefe auf Basis der umgebenden Bildpunkte bilateral interpoliert<br />
und dadurch die Lücke geschlossen.<br />
Die generierten Tiefeninformationen werden nach Beendigung des Raycastings auf Basis<br />
der maximalen und minimalen Tiefe normalisiert und in einer Tiefenmaske Z : R 2 → [0, 1]<br />
gespeichert (Null entspricht der Minimaltiefe). Da im Regelfall variierende Blickpunkte<br />
für beide Quellbilder vorliegen, muss das Raycasting für jedes Bild einzeln durchgeführt<br />
werden. Die resultierenden Bildtiefen werden in den Tiefenmasken Z a und Z b gespeichert.<br />
4.6.3.2 Feldgenerierung<br />
Nachdem sämtliche Grunddaten (u.a. Farb- und Tiefeninformationen) bereits in den<br />
vorherigen Stufen aus unterschiedlichen Quellen gewonnen wurden, erfolgt an dieser<br />
Stelle nun die eigentliche Erzeugung der dichten Korrespondenzfelder F und F −1 . Die<br />
folgenden Ausführungen beziehen sich auf das Erstellen des Feldes F , denn abgesehen vom<br />
51
4 Konzeption<br />
Abb. 4.20: Die durch Punktabtastung<br />
berechneten Farbdifferenzen<br />
führen dazu, dass a 2 höher<br />
gewichtet wird als a 1<br />
Vertauschen der Quellbilder I a und I b und der dazugehörigen Korrespondenzpositionen<br />
sind die einzelnen Prozessschritte bei beiden Feldern identisch.<br />
Zuallererst ist es notwendig, dass F die Differenzvektoren der Korrespondenzen zugewiesen<br />
werden. Grundlage hierfür ist die Menge der Korrespondenztupel C =<br />
{(a 1 , b 1 ), ..., (a n , b n )} und die Menge der Korrespondenzpunkte A = {a 1 , ..., a n } im Bild<br />
I a .<br />
∀(a i , b i ) ∈ C :<br />
F (a i ) = b i − a i<br />
Im nächsten Teilschritt geht es darum, dass an jeder Position im Feld F ein Differenzvektor<br />
berechnet und eingefügt wird. Um dies zu realisieren, wird für jeden Punkt<br />
p ∈ R 2 ∧p/∈A eine Interpolation der Differenzvektoren auf Basis der Menge der k nächsten<br />
Korrespondenzpunkte A k = {a 1 , ..., a k } durchgeführt.<br />
F (p) =<br />
∀p ∈ R 2 ∧ p/∈A :<br />
1<br />
∑ kj=1<br />
w j<br />
k∑<br />
w i F (a i )<br />
i=1<br />
An dieser Stelle kommen die bereits besprochenen Interpolationsmethoden (siehe 4.4)<br />
zum Einsatz, denn durch sie sollen die Gewichte w i möglichst optimal berechnet werden.<br />
Grundsätzlich beinhaltet die Konzeption ein Vielzahl von Gewichtungsansätzen (z.B.<br />
baryzentrisch, bilinear, Gauß), welche in diesem Kontext einzeln aufgeführt und erläutert<br />
werden müssten. Stattdessen beschränken sich die folgenden Ausführungen aus diversen<br />
Gründen (u.a. Übersicht, Komplexität) auf die bilaterale Interpolation, da diese durch<br />
die Einbindung von Farb- und Tiefeninformationen am vielversprechendsten ist.<br />
Entsprechend der Definition ergibt sich das Gewicht w i für einen Stützpunkt a i aus dem<br />
Produkt zweier Teilgewichte w si und w ri . Diese fußen auf der räumlichen und farblichen<br />
52
4.6 Vorverarbeitung<br />
Distanz am Punkt a i , wobei beide Metriken zusätzlich über eine unnormalisierte Gauß-<br />
Funktion transformiert werden.<br />
w si = G σs (‖a i − p‖)<br />
w ri = G σr (|I(a i ) − I(p)|)<br />
Durch die im Vorfeld erzeugte Tiefenmaske Z ist es darüber hinaus möglich, die Tiefendifferenz<br />
zwischen p und a i in die Berechnung einfließen zu lassen.<br />
w zi = G σz (|Z(a i ) − Z(p)|)<br />
Die Berechnungsvorschrift für das Gewicht w i eines Stützpunktes a i lautet demnach:<br />
w i = w si · w ri · w zi<br />
Besonders kritisch ist an dieser Stelle die Wahl der Intervalparameter σ s , σ r und σ z ,<br />
denn diese steuern das Abbildungsverhalten der Gauß-Funktionen G σs , G σr und G σz .<br />
Die Verwendung fixer Intervalle ist grundsätzlich möglich, hat aber den Nachteil, dass<br />
somit keine adaptive Gewichtung der k verteilten Stützstellen möglich ist. Stattdessen<br />
ist es sinnvoll, vor der Gewichtung die maximalen Distanzen zu ermitteln und darauf<br />
basierend entsprechende Intervalparameter zu berechnen.<br />
Gemäß der obigen Definition basieren die Teilgewichte w ri und w zi bisher nur auf den<br />
direkten Farb- bzw. Tiefendifferenzen. Für den Fall, dass I a aus wenigen, großflächigen<br />
Farbsegmenten besteht und die Stützstellen gleichmäßig in geringen Abständen verteilt<br />
sind, ist diese Herangehensweise grundsätzlich legitim.<br />
Sobald jedoch die genannten Bedingungen nicht erfüllt werden (z.B. hohe Segmentdichte),<br />
führt diese Methode zu fehlerhaften Ergebnissen. Das liegt daran, dass Farb-<br />
/Tiefensprünge auf der Strecke zwischen p und a i nicht berücksichtigt werden können<br />
und somit u.U. gänzlich unterschiedliche Bildbereiche als eine Fläche interpretiert werden.<br />
In Abbildung 4.20 ist eine solche Situation schematisch dargestellt.<br />
Einen besseren Ansatz stellt das äquidistante Abtasten der Verbindungslinie zwischen a i<br />
und p dar, denn dadurch können Farb-/Tiefensprünge zwischen beiden Punkten für die<br />
nachfolgende Gewichtung registriert und berücksichtig werden (siehe Abb. 4.21).<br />
Die Differenzen werden an jedem abgetasteten Punkt lokal berechnet und zu einer Gesamtdifferenz<br />
aufsummiert, aus der sich am Ende durch das Mitteln über die Streckenlänge<br />
bzw. die Anzahl Samples ein Durchschnittswert ergibt. Sei S = {s 1 , ..., s n } die Menge<br />
der Abtastpunkte zwischen p und a i , so lautet die Gewichtungsvorschrift für w ri und<br />
wie folgt:<br />
w zi<br />
53
4 Konzeption<br />
Abb. 4.21: Äquidistantes Abtasten der<br />
Farben auf den Verbindungslinien<br />
zwischen p und a 1 /a 2<br />
w ri = G σr (<br />
w zi = G σz (<br />
n∑<br />
j=1<br />
n∑<br />
j=1<br />
|I(s j ) − I(p)|<br />
)<br />
n<br />
|Z(s j ) − Z(p)|<br />
)<br />
n<br />
Wie man sehen kann, ergeben sich die Differenzen an einem Abtastpunkt s j aus der<br />
relativen Distanz zum Farb- bzw. Tiefenwert am Ausgangspunkt p.<br />
Eine weitere Möglichkeit besteht darin, die Gradienten zwischen zwei aufeinanderfolgenden<br />
Abtastpunkten zu summieren, sodass sich die durchschnittliche Differenz aus der<br />
gemittelten Summe der Abweichungen ergibt.<br />
w ri = G σr (<br />
w zi = G σz (<br />
n∑<br />
j=2<br />
n∑<br />
j=2<br />
|I(s j ) − I(s j−1 )|<br />
)<br />
n − 1<br />
|Z(s j ) − Z(s j−1 )|<br />
)<br />
n − 1<br />
Die erste Gewichtungsvariante mit den zu p relativen Differenzen führt dazu, dass sich<br />
andersfarbige Bildflächen in direkter Weise negativ auf den Einfluss von a i auswirken.<br />
Dies ist auf den ersten Blick sinnvoll, da andersfarbige Flächen im Allgemeinen andere<br />
Objekte einer Szene beschreiben. Wenn jedoch die farblich ähnlichsten Punkte<br />
(bzgl. durchschnittliche Farbdifferenz) gleichzeitig am weitesten entfernt sind und die<br />
unähnlichsten Punkte in direkter Nachbarschaft liegen, kann dies zu Problemen bei der<br />
Interpolation führen (z.B. viele Nullgewichte).<br />
Die Verwendung der Gradienten erscheint in dieser Hinsicht weitaus stabiler, weil hier die<br />
Schwankungen auf der Abtastlinie die Gewichtung beeinflussen und demnach Nullgewichte<br />
unwahrscheinlich sind. Einziger Nachteil beim diesem Ansatz ist der Umstand, dass die<br />
54
4.6 Vorverarbeitung<br />
Farbe und Tiefe von p weniger beachtet werden. Die hier konzipierte Lösung ermöglicht<br />
grundsätzlich beide Varianten, nutzt jedoch für die bilaterale bzw. trilaterale Interpolation<br />
standardmäßig den letztgenannten Gewichtungsansatz.<br />
Nachdem das Korrespondenzfeld F vollständig mit Vektoren besetzt wurde, wird der<br />
gleiche Prozess für das inverse Feld F −1 auf Basis des Zielbildes I b und der umgekehrten<br />
Korrespondenzmenge C ′ = {(b 1 , a 1 ), ..., (b n , a n )} wiederholt.<br />
4.6.3.3 Feldnachbereitung<br />
Nachdem die Korrespondenzfelder F und F −1 generiert wurden, sind anschließend weitere<br />
Maßnahmen erforderlich, um die Daten nutzbar zu machen.<br />
Ein zentraler Punkt ist das Erzeugen von sog. Fehlermasken, in denen pro Bildpunkt<br />
im Ausgangs-/Zielbild ein absoluter Fehlerwert numerisch gespeichert wird. Jener Wert<br />
beschreibt im Kern die Farbdifferenz zwischen zwei Bildern an einem Punkt p, wobei für<br />
den Vergleich die originalen Quellbilder I a und I b verwendet werden.<br />
Das Hauptziel bei der Verwendung von Fehlermasken ist das Festhalten von Bildfehlern,<br />
die durch das Warping entstanden sind, sodass diese kritischen Bereiche beim Morphing<br />
berücksichtig werden können.<br />
Die Fehlermaske E beschreibt gemäß der vorherigen Definition die Differenz zwischen<br />
dem gewarpten Ausgangsbild I a und dem originalen Zielbild I b . Das Warping erfolgt über<br />
das bekannte Inverse Mapping, bei dem sich der Farbwert an einem Punkt p durch das<br />
Auslesen von I a an einer zuvor um F −1 (p) verschobenen Position ergibt. E ist demnach<br />
wie folgt definiert:<br />
E : R 2 → R<br />
∣<br />
E(p) = ∣I b (p) − I a (p + F −1 (p)) ∣<br />
Zugunsten einer leichteren Verwendung werden die Fehlerwerte nach der Generierung von<br />
E zusätzlich auf Basis des Minimal- und Maximalfehlers normalisiert. Die Berechnung<br />
von E −1 erfolgt auf dem gleichen Weg, weshalb letztlich nur I a /I b sowie F /F −1 zu<br />
vertauschen sind.<br />
Den finalen Schritt der Nachbereitung stellt die Normalisierung der Korrespondenzfelder<br />
F und F −1 dar, durch die alle Koordinaten in den Interval [−1, 1] abgebildet werden.<br />
Analog zu den Fehlermasken ergibt sich daraus der Vorteil, dass die Differenzvektoren<br />
beim nachfolgenden Export auflösungsunabhängig gespeichert und bei der Präsentation<br />
flexibler eingesetzt werden können (z.B. bei variierenden Bildgrößen).<br />
55
4 Konzeption<br />
Abb. 4.22: Export - Struktur<br />
4.6.4 Export<br />
Der Export der generierten Galerie inklusive aller Bild- und Felddaten schließt als letzte<br />
Stufe den Vorverarbeitungsprozess ab. Wie man in Abbildung 4.22 erkennen kann, erfolgt<br />
dies aufgrund unterschiedlicher Datenstrukturen und -formate in drei Zwischenschritten.<br />
4.6.4.1 Bildexport<br />
Die im Zuge des Imports eingelesenen Bilder werden in diesem Schritt unter Verwendung<br />
eines Skalierungsfaktors entsprechend reskaliert (u.U. bei großen Bildern notwendig)<br />
und auf Basis des ursprünglichen Bildformats im zuvor angelegten Galerieverzeichnis<br />
persistent gespeichert.<br />
4.6.4.2 Feldexport<br />
Die Ausgabe der Morphing-Daten erfolgt durch das Iterieren über die Kanten des<br />
Galeriegraph. Da die zuvor erzeugten Daten direkt an die Graphkanten geknüpft sind,<br />
erlaubt dies das direkte Beziehen und Rausschreiben der Daten. Die Kodierung erfolgt in<br />
Abhängigkeit vom jeweiligen Feldtyp und dem verwendeten Datenformat.<br />
4.6.4.3 Galerie-Export<br />
Nachdem bereits die Bild- und Felddaten exportiert wurden, erfolgt in diesem Schritt die<br />
Ausgabe der zugrundeliegenden Graphenstruktur. Hierbei werden nicht nur die Knoten<br />
und Kanten hinsichtlich ihrer Relation zueinander gespeichert, sondern gleichzeitig die<br />
damit verknüpften Bilder und Felder auf Basis der verwendeten Ausgabepfade semantisch<br />
eingebunden. Das Ergebnis ist eine textbasierte Datei (z.B. XML), über die sowohl der<br />
Graph rekonstruiert als auch die damit assoziierten Daten geladen werden können.<br />
56
4.7 Präsentation<br />
Abb. 4.23: Präsentation - Struktur<br />
4.7 Präsentation<br />
Wie man in Abbildung 4.23 erkennen kann, ist diese Phase im Gegensatz zur Vorverarbeitung<br />
vergleichsweise einfach aufgebaut. Im Kern besteht sie aus den drei Teilbereichen<br />
Import, Navigation und Rendering, welche zusammen das Navigieren und Betrachten von<br />
Bildern innerhalb einer Bildergalerie ermöglichen.<br />
4.7.1 Import<br />
Im Zuge des Datenimports wird der erzeugte Graph mitsamt Zusatzdaten sequentiell<br />
aus externen Dateien eingelesen und rekonstruiert. S<strong>of</strong>ern in dieser Phase keine Fehler<br />
auftreten, ist die Datenbasis identisch mit der nach Abschluss der Vorverarbeitung.<br />
4.7.2 Navigation<br />
Der rekonstruierte Graph, der bereits zum Zeitpunkt der Vorverarbeitung die grundlegende<br />
Struktur darstellte, dient auch bei der Präsentation als zentrale Datenstruktur.<br />
Auch hier entsprechen die Knoten den Bildern innerhalb der Galerie, zwischen denen sich<br />
der Nutzer mittels der inzidenten Kanten bewegt.<br />
Die Traversierung erfolgt nichtdeterministisch durch den Betrachter, indem dieser markierte<br />
Bildbereiche (Hotspots) selektiert und dadurch den Wechseln zu einem adjazenten<br />
Knoten auslöst (siehe Abb. 4.24).<br />
4.7.3 Rendering<br />
Das Rendering, d.h. der Darstellungprozess der Bilder, kann auf zwei unterschiedlichen<br />
Wegen erfolgen. Befindet sich der Anwender im Graph direkt an einem Knoten, so wird<br />
57
4 Konzeption<br />
Abb. 4.24: Navigation - Bildknoten mit Hotspots<br />
das damit verknüpfte Bild als Standbild ohne Modifikation dargestellt. Einzig die sog.<br />
Hotspots sind in diesem Zustand sichtbar, da darüber die Navigation erfolgen muss. Dem<br />
gegenüber steht die Visualisierung des Bildwechsels, die über einen separaten Renderpfad<br />
unter Verwendung von Morphing realisiert wird.<br />
Wie bereits im allgemeinen Lösungsansatz (siehe 4.3) beschrieben, erfolgt das grundlegende<br />
Morphing auf Basis der dichten Korrespondenzfelder in Verbindung mit einem<br />
Transitionsparameter t ∈ [0, 1]. Dieser wird pro Zeiteinheit (i.d.R. Sekunden) um einen<br />
festen Wert inkrementiert und dient der Kontrolle des Morphing-Vorgangs.<br />
Die grafische Darstellung des Bildwechsels kann nun über unterschiedliche Methoden<br />
erfolgen, welche nachfolgend kurz vorgestellt und erläutert werden. Folgenden Daten<br />
dienen dabei als Berechnungsgrundlage:<br />
• Ausgangsbild I a , Zielbild I b<br />
• Transitionsparameter t<br />
• Korrespondenzfeld F , inverses Korrespondenzfeld F −1<br />
• Fehlermaske E, inverse Fehlermaske E −1<br />
4.7.3.1 Blending<br />
Die finale Bildfarbe c ergibt sich durch Blenden der Farben im Ausgangs- und Zielbild<br />
an der Position p .<br />
c = (1 − t) · I a (p) + t · I b (p)<br />
58
4.7 Präsentation<br />
4.7.3.2 Morphing - Standard<br />
Bei dieser Methode erfolgt die Berechnung der finalen Bildpunktfarbe an der Position<br />
p zweistufig. Zunächst werden zwei neue Positionen p a und p b berechnet, indem die<br />
aktuelle Position p über zwei Vektoren aus den Korrespondenzfeldern verschoben wird.<br />
Anschliessend werden I a und I b an den Positionen p a und p b ausgelesen und die Farbwerte<br />
über t geblendet.<br />
p a = p + t · F −1 (p)<br />
p b = p + (1 − t) · F (p)<br />
c = (1 − t) · I a (p a ) + t · I b (p b )<br />
4.7.3.3 Morphing - Adaptiv<br />
Aufbauend auf der vorherigen Methode, kommt hier ein erweiterter Ansatz auf Basis<br />
des von Stich und Magnor [SM07] vorgestellten adaptiven Blendings zum Einsatz. Auch<br />
hier werden zunächst p a und p b berechnet, um darüber auf das Ausgangs- und Zielbild<br />
zugreifen zu können. Darüber hinaus werden die im Vorfeld berechneten Bildfehler e a und<br />
e b über die Fehlermasken E und E −1 bezogen, um so das adaptive Blending realisieren<br />
zu können. Beide Werte ergeben zusammen den absoluten Bildfehler e ∈ [0, 1].<br />
e a = E −1 (p a )<br />
e b = E(p b )<br />
e = (1 − t) · e a + t · e b<br />
Man beachte, dass E die Fehlermaske des Zielbildes darstellt und deshalb die gleiche<br />
Position p b wie beim Auslesen des Zielbildes I b verwendet wird. Analog verhält es sich<br />
mit E −1 und p a .<br />
Nachdem nun der Bildfehler für p vorliegt, soll darüber das Blenden der Ausgangsund<br />
Zielfarbe beeinflusst werden. Grundlage hierfür ist die Aussage von Timo Stich,<br />
dass ein Stillstand im Bild als weniger störend empfunden wird als etwaige Bildfehler<br />
(z.B. Ghosting). Ziel ist es also, fehlerhafte Bildteile möglichst lange im Ruhezustand zu<br />
bewahren und erst im Bereich von t = 0.5 zu blenden. Die Grundlage hierfür bildet die<br />
Sigmoidfunktion S e , die in Abhängigkeit von e Werte aus dem Bereich [−1, 1] verzögert<br />
abbildet (siehe Abb. 4.25).<br />
59
4 Konzeption<br />
S : [−1, 1] → [−1, 1]<br />
(− |x| · (1 + e))<br />
S e (x) = sgn(x)<br />
(− |x| − e)<br />
Abb. 4.25: Sigmoidfunktion S e (x): e = 100 (blau), e = 1 (grün), e = 0,1 (rot), e = 0,01<br />
(violett)<br />
Obwohl die Funktion verhältnismäßig einfach aufgebaut ist, erfüllt sie unabhängig von e<br />
die folgenden drei Grundbedingungen:<br />
S e (−1) = −1<br />
S e (0) = 0<br />
S e (1) = 1<br />
Durch S e ist es nun möglich, den Parameter t auf Basis des berechneten Bildfehlers<br />
an der Postion p auf ein t ′ abzubilden. Dazu muss zuerst der Fehlerwert e nichtlinear<br />
1<br />
auf einen Intervall [<br />
max S<br />
, max S ] abgebildet werden, wobei max S eine manuell definierte<br />
Konstante darstellt (i.d.R. max S = 100). Aus dieser Abbildung ergibt sich e mod , dass<br />
anstelle von e innerhalb der Sigmoidfunktion eingesetzt wird. Zusätzlich ist es nowendig,<br />
dass der Transitionsparameter t auf ein t mod ∈ [−1, 1] abgebildet wird.<br />
e mod =<br />
max s<br />
(max 2 s ) e<br />
t mod = 2t − 1<br />
60
4.8 Zusammenfassung<br />
Die Abbildung von t mod mittels S emod<br />
Bereich [0, 1] ergibt t ′ .<br />
und die anschließende Normalisierung auf den<br />
t ′ = 0.5 · S emod (t mod ) + 0.5<br />
Da anstelle von t nun t ′ für das Blenden der Farben verwendet wird, ergibt sich daraus<br />
folgenden Berechnungsvorschrift für die Farbe c an der Position p:<br />
c = (1 − t ′ ) · I a (p a ) + t ′ · I b (p b )<br />
4.8 Zusammenfassung<br />
In diesem Kapitel wurde schrittweise ein S<strong>of</strong>twarekonzept erarbeitet und erläutert, dass<br />
die Präsentation beliebiger Bilddaten innerhalb einer webbasierten Umgebung ermöglicht.<br />
Der Anforderung des fließenden Bildübergangs mittels Morphing wurde durch die Einführung<br />
und Integration dichter Korrespondenzfelder Rechnung getragen, wobei neben der<br />
Anwendung insbesondere die für die Generierung erforderlichen Interpolationsverfahren<br />
untersucht wurden. Bedingt durch die Aufteilung in Vorverarbeitungs- und Präsentationsphase,<br />
wurde die Struktur und Funktionsweise getrennt voneinander dargelegt und<br />
beschrieben.<br />
61
5 Implementierung<br />
Schwerpunkt dieses Kapitels ist die Präsentation der prototypischen Implementierung,<br />
die auf Basis der Konzeption realisiert wurde. Neben der Beschreibung der allgemeinen<br />
Lösungsstruktur sowie der eingesetzten Datenformate werden die Implementierungen der<br />
beiden Teilbereiche Vorverarbeitung und Präsentation hinsichtlich ihrer Struktur und<br />
Funktionsweise detailliert vorgestellt und erläutert.<br />
5.1 Gesamtstruktur<br />
Wie man in Abbildung 5.1 erkennen kann, ist die prototypische Implementierung sehr<br />
stark an die Konzeption im vorherigen Kapitel angelehnt. Auf der linken Seite befindet<br />
sich der MorphGraphMaker (kurz: MGM ), der für die Generierung der Bildergalerien<br />
sowie der dazugehörigen Daten zuständig ist. Die Vorverarbeitung findet zeitlich versetzt<br />
und „<strong>of</strong>fline“ (d.h. außerhalb der Web-Umgebung) statt. Auf der rechten Seite ist die<br />
sogenannte WebGLallery dargestellt, wo die erzeugten Galerien innerhalb des Webbrowsers<br />
„online“ präsentiert werden.<br />
Abb. 5.1: Implementierung - Vorverarbeitung und Präsentation<br />
62
5.2 Datenformate<br />
5.2 Datenformate<br />
Im Zuge der Implementierung kamen neben konventionellen Datenformaten auch selbstentwickelte<br />
Dateiformate zum Einsatz. Letztere bilden durch ihre Verwendung bei der<br />
Vorverarbeitung und der Präsentation das Fundament für die Interoperabilität der beiden<br />
Applikationen.<br />
5.2.1 P3P-Format<br />
Das Hauptziel bei der Konzeption und Entwicklung des P3P-Formats war die blickpunktabhängige<br />
Rekonstruktion synthetischer 3D-Szenen auf Bildpunktebene. Das Format<br />
wird durch folgende Merkmale charakterisiert:<br />
• binäres Datenformat<br />
• framebasierte Struktur<br />
• Kameraparameter pro Frame<br />
• 3D-Position pro Pixel<br />
5.2.1.1 Struktur<br />
Wie in Abbildungen 5.2 dargestellt, setzt sich eine P3P-Datei aus einem obligatorischen<br />
Header und einer beliebigen Anzahl Frames zusammen. Dabei ist zu beachten, dass die<br />
Frame-Größe im Header festgelegt wird und somit für alle Frames identisch ist.<br />
Abb. 5.2: P3P-Datei - Grundstruktur<br />
Ein P3P-Frame besteht aus einem Header, einer Bitmaske und sowie einer Punktliste (siehe<br />
Abb. 5.3), wobei letztere bezüglich ihrer Länge variabel ist und gegebenfalls komplett<br />
fehlt. Der Header enthält neben essentiellen Kameradaten (u.a. Position, Richtung,<br />
Öffnungswinkel) Informationen über die Bitmaskengröße sowie die Punktlistenlänge. Die<br />
Bitmaske dient der Markierung aller Pixel, für die eine dreidimensionale Raumposition<br />
vorliegt. Die Anzahl der markierten Bitmaskenfelder muss demnach identisch zur Länge<br />
der nachfolgenden Punktliste sein.<br />
63
5 Implementierung<br />
Abb. 5.3: P3P-Frame - Aufbau<br />
5.2.1.2 Generierung<br />
Die Erzeugung einer P3P-Datei erfolgt innerhalb des Grafikprogramms Autodesk 3ds<br />
Max über ein eigens dafür entwickeltes Skript, das in der Skriptsprache MAXScript<br />
programmiert wurde (siehe Abb. 5.4).<br />
Im Zentrum der Generierung steht das dreidimensionale Raycasting, das nach dem First-<br />
Hit-Prinzip arbeitet. Ausgehend von einem beliebigen Kamera-Objekt wird dabei pro<br />
Bildpunkt ein Strahlenschnitttest innerhalb der Szene durchführt und beim erstmaligen<br />
Auftreffen auf einer polygonalen Oberfläche die Schnittposition gespeichert. Im Idealfall<br />
existiert nach erfolgtem Raycasting ein vollbesetztes Positionsraster, das als räumliches<br />
Tiefenabbild der jeweiligen Ansicht dient.<br />
Abb. 5.4: P3P-Format: Ausgeführtes Exportskript in Autodesk 3ds Max<br />
64
5.2 Datenformate<br />
5.2.2 WGL-Format<br />
Das Speichern der im Kontext dieser Arbeit erzeugten Galerien erfolgt über das interne<br />
WGL-Format, das als Bindeglied zwischen der Vorverarbeitung und der Präsentation<br />
fungiert und somit für die notwendige Interoperabilität sorgt. Die Hauptmerktmale sind:<br />
• XML-basiertes Datenformat<br />
• flexible Graphenstruktur<br />
• multiple Datensets pro Kante<br />
• generische Datentypen<br />
5.2.2.1 Struktur<br />
Wie Eingangs erwähnt, baut das WGL-Format auf der Auszeichnungssprache XML auf.<br />
Zum einen erlaubt dies die textuelle Darstellung von Bildergalerien, zum anderen sind so<br />
beliebige Erweiterungen des Formats mit geringem Aufwand möglich.<br />
Wie man in Listing 5.1 erkennen kann, besteht eine WGL-Datei aus einer Vielzahl von<br />
XML-Elementen, die zusammen eine Hierarchie ergeben. Den Ursprung bildet dabei<br />
immer das Wurzelelement graph, dem zwei Listen (nodes,edges) für die Knoten und<br />
Kanten sowie eine optionale Beschreibung (desc) untergeordnet sind.<br />
Während die Knoten (node) ohne Subelemente sequentiell aufgelistet werden, besitzen<br />
Kanten (edge) im Allgemeinen spezielle Container-Elemente (fieldset). Diese enthalten<br />
Deskriptoren für Parameter und Texturen, die für das spätere Morphing beim Bildwechsel<br />
benötigt werden. Die komplette Elementliste des WGL-Formats ist in Tabelle 5.1<br />
abgebildet.<br />
65
5 Implementierung<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
< fieldset id=" Barycentric "><br />
< texture id=" warpX " url ="X. png " isFloat =" true "/><br />
< texture id=" warpY " url ="Y. png " isFloat =" true "/><br />
< texture id="d" url =" depth . png " isFloat =" false "/><br />
<br />
<br />
<br />
<br />
<br />
Listing 5.1: Exemplarische WGL-Datei<br />
Element Beschreibung Attribute<br />
graph Wurzelelement und Container für Graphelemente<br />
name<br />
desc<br />
zentrales Beschreibungselement einer text, date<br />
Galerie<br />
nodes Container für alle Knoten —<br />
node Knoten, repräsentiert Quellbild id, url<br />
edges Container für alle Kanten —<br />
edge<br />
Kante, beschreibt zugleich den Link im from, to, x, y, radius<br />
Ausgangsbild (inkl. Pixelposition und<br />
Radius)<br />
fieldset Feldset einer Kante, pro Kante sind id<br />
multiple Sets möglich<br />
texture Textur-Element einer Kante id, url, isFloat<br />
(FloatTexture-Flag)<br />
param generisches Parameter-Element einer id, value (Float)<br />
Kante<br />
Tab. 5.1: Elemente des WGL-Formats<br />
66
5.2 Datenformate<br />
5.2.3 Korrespondenzfeld-Formate<br />
Das Speichern der Korrespondenzfelder erfolgt durch spezielle Kodierverfahren, welche in<br />
eigens dafür entwickelten Exportmodulen implementiert sind. Dabei nutzt die Mehrzahl<br />
der Module das bekannte ARGB-Farbformat zur Ausgabe, da sich so die Vorteile verlustfreier<br />
Kompressionstechniken (z.B. beim PNG-Format) für einen schnellere Datentransfer<br />
nutzen lassen und zugleich auf Anwenderseite diverse Programme und Bibliotheken<br />
zum Laden und Visualisieren der Felddaten existieren. Es folgt eine Auflistung der<br />
implementierten Kodierverfahren.<br />
• ARGB: Die Feldvektoren werden in das ARGB-Format umkodiert, wobei hier nur<br />
die rote und grüne Komponente genutzt werden. Das Mapping von 32 Bit Float auf<br />
8 Bit Integer pro Vektorkomponente verursacht einen deutlichen Genauigkeitsverlust,<br />
wodurch diese Methode nur in Ausnahmefällen und bei sehr geringen Bildauflösungen<br />
(weniger als 128 x 128 Pixel) praktikabel ist.<br />
• ARGB-Splitting: Hauptmerkmal dieses Ansatzes ist das kombinierte Speichern<br />
der beiden Vektorkomponenten X und Y als 32-Bit Wert im Ausgabepuffer. Im<br />
konkreten Fall werden die X-Komponente auf das obere Datenwort (Alpha-Rot) und<br />
die Y-Komponente auf das untere Datenwort (Grün-Blau) verteilt, sodass sich pro<br />
Komponente eine Genauigkeit von 16 Bit (inklusive Vorzeichenbit) ergibt.<br />
Für die meisten Einsatzszenarien ist diese Methode ausreichend, da sie einen guten<br />
Kompromiss aus Genauigkeit sowie Speicher- und Transferaufwand darstellt.<br />
• RGB-Separiert: Diese Methode exportiert nahezu verlustfrei Felddaten, indem<br />
diese auf die RGB-Kanäle zweier ARGB-Bilder aufgeteilt werden und dadurch pro<br />
Vektor 6 Byte zur Verfügung stehen. Die Interpretation eines Pixels erfolgt in diesem<br />
Fall nicht nach dem ARGB-Schema, sondern als vorzeichenbehaftete Ganzzahl<br />
mit 24 Bit Genauigkeit (ohne Alpha). Im Detail findet also für jede normalisierte<br />
Vektorkomponente eine Abbildung von [−1..1] nach [ 0..2 24] statt.<br />
Obwohl mit der Aufteilung der Korrespondenzfelder ein höherer Speicher-,<br />
Verwaltungs- und Transferaufwand einhergeht, wurde diese Methode für nahezu alle<br />
erzeugten Bildergalerien verwendet.<br />
• HSV: Die Vektoren des Korrespondenzfeldes werden zunächst in den HSV-Farbraum<br />
übertragen, sodass pro Pixel nachfolgend der Rotationswinkel (Hue) und die Vektorlänge<br />
(Saturation) vorliegt. Der optional konfigurierbare Helligkeitswert (Value)<br />
ist für alle Pixel identisch und standardmäßig auf V = 1.0 gesetzt. Nach erfolgter<br />
HSV-Transformation wird das Flussfeld in das gängige ARGB-Farbmodell übertragen<br />
und als Bilddatei abgespeichert. Analog zum ARGB-Export kommt es auch hier<br />
zu Genauigkeitsverlusten, weshalb diese Method primär für die Feldvisualisierung<br />
eingesetzt wird.<br />
67
5 Implementierung<br />
Zur Veranschaulichung der hier vorgestellten Kodierungsansätze wurde exemplarisch<br />
ein Flussfeld auf Basis zweier synthetischer Renderbilder erzeugt (siehe Abb. 5.5, ohne<br />
einfache ARGB-Kodierung).<br />
Abb. 5.5: Korrespondenzfeld-Kodierung: Ausgangs- und Zielbild (1, 2), HSV-Kodierung<br />
(3), RGB-Separierung (4, 5), ARGB-Splitting (6)<br />
5.3 MorphGraphMaker<br />
Im Folgenden wird das Vorverarbeitungsprogramm MorphGraphMaker (MGM) bezüglich<br />
seiner Eigenschaften, Strukturen sowie Funktionen vorgestellt und erörtert.<br />
5.3.1 Eigenschaften<br />
Da es sich bei dem MGM um eine vergleichsweise komplexe Anwendung handelt, deren<br />
Funktionsumfang sich auf den ersten Blick nur schwer erkennen lässt, soll die nachfolgende<br />
Auflistung einen ersten Eindruck über die Fähigkeiten und Eigenschaften vermitteln.<br />
• Win32-Anwendung<br />
• implementiert in C++<br />
68
5.3 MorphGraphMaker<br />
• Mehrkernunterstützung<br />
• zwei Betriebsmodi: Dialog, Batch<br />
• semiautomatische Galerie-Generierung<br />
• drei verschiedene Import-Module<br />
• unterstützt gängige Bildformate<br />
• multiple Prozesskonfigurationen möglich<br />
• automatische Feature-/Korrespondenzdetektion<br />
• optionales Refinement durch Optischen Fluss<br />
• optionale Nutzung von Tiefeninformationen<br />
• diverse Debug-Optionen<br />
5.3.2 Systemanforderungen<br />
• Micros<strong>of</strong>t Windows<br />
Bei der MGM-Applikation handelt es sich um eine native Win32-Anwendung, wodurch<br />
die Ausführung nur auf entsprechenden Betriebssystemen möglich ist. Unterstützt<br />
werden alle Windows-Versionen ab Windows XP SP3 (32/64 Bit).<br />
• Mehrkernprozessor<br />
Obwohl der MGM auch auf Einkernprozessoren lauffähig ist, sollte das zugrundliegende<br />
System mindestens zwei Prozessorkerne besitzen.<br />
• 4 GB Hauptspeicher<br />
Das verwendete System sollte idealerweise über mindestens 4 GB Hauptspeicher<br />
verfügen, denn bei der Verarbeitung hoch aufgelöster Bilder (>= 4K) müssen im<br />
Allgemeinen mehr als 2 GB durch den MGM allokiert werden ( LARGEADDRESS-<br />
Modus ist aktiv).<br />
• MS Visual C++ 2010 SP1 Runtimes<br />
Da der MGM innerhalb der IDE MS Visual Studio 2010 SP1 in der Sprache<br />
C++ entwickelt wurde, benötigt das Anwendersystem in jedem Fall entsprechende<br />
Laufzeitbibliotheken.<br />
5.3.3 Bibliotheken<br />
Es folgt eine Auflistung aller Programmbibliotheken, die bei der Entwicklung des Morph-<br />
GraphMakers zum Einsatz kamen.<br />
69
5 Implementierung<br />
• OpenCV 2.4 1<br />
OpenCV ist eine frei verfügbare Programmmbibliothek, deren Fokus auf den Bereichen<br />
Bilderkennung und -verarbeitung liegt. Das Projekt wurde 1999 durch Intel<br />
initiiert und wird seit einigen Jahren allein durch das Unternehmen Willow Garage<br />
gewartet und weiterentwickelt. Die Bibliothek zeichnet sich durch ihren großen Funktionsumfang,<br />
die Unterstützung von Mehrkernprozessoren sowie die Verfügbarkeit in<br />
unterschiedlichen Programmiersprachen aus (u.a. C/C++, Java, Python).<br />
• Boost 23<br />
Boost ist eine frei verfügbare, sehr umfangreiche Sammlung von Programmbibliotheken,<br />
welche die unterschiedlichsten Bereiche (u.a. Speicherverwaltung, Multithreading,<br />
Graphensysteme) der Programmentwicklung in der Sprache C++ abdeckt. Die Entwicklung<br />
Begann 1998 und wird bis zum heutigen Tage kontinuierlich fortgesetzt,<br />
wobei einige Elemente mittlerweile in den <strong>of</strong>fiziellen Standard C++ 11 aufgenommen<br />
wurden sind.<br />
• PCL 4<br />
Schwerpunkt der quell<strong>of</strong>fenen PCL (Point Cloud Library) ist die Generierung sowie<br />
Verarbeitung von n-dimensionalen Punktwolken unter Verwendung unterschiedlichster<br />
Algorithmen und Datenstrukturen. Zusätzlich enthält die Bibliothek spezialisierte<br />
Module zur Flächenrekonstruktion, Dateneingabe und -ausgabe sowie Visualisierung.<br />
Analog zu OpenCV wird diese Bibliothek durch das Unternehmen Willow Garage<br />
gepflegt und ständig weiterentwickelt.<br />
• FLANN 5<br />
FLANN (Fast Library for Approximate Nearest Neighbors) ist eine frei verfügbare<br />
Bibliothek zur Suche der k nächsten Nachbarn in mehrdimensionalen Vektorräumen.<br />
Sie unterliegt einer ständigen Weiterentwicklung (aktuelle Version 1.7.1 6 ) und wird<br />
mittlerweile durch verschiedene Bibliotheken (u.a. PCL) eingebunden. Neben der<br />
Programmiersprachen C++ werden auch C, Python und MATLAB unterstützt<br />
[ML09].<br />
• TTL 7<br />
Die TTL (Triangulation Template Library) ist eine generische, quell<strong>of</strong>fene Bibliothek<br />
zur Erzeugung von Dreiecksnetzen auf Basis des Delaunay-Verfahrens. Darüber<br />
hinaus ist es möglich, bereits bestehende Netze zu modifizieren sowie Traversierungsund<br />
Suchmethoden darauf anzuwenden.<br />
1 http://opencv.willowgarage.com/wiki/, Zugriff am 4.9.2012<br />
2 http://www.boostpro.com/boost-libraries/history/, Zugriff am 4.9.2012<br />
3 http://www.boost.org/, Zugriff am 4.9.2012<br />
4 http://pointclouds.org/, Zugriff am 4.9.2012<br />
5 http://people.cs.ubc.ca/~mariusm/index.php/FLANN/FLANN, Zugriff am 4.9.2012<br />
6 Stand: 4.9.2012<br />
7 http://www.sintef.no/Projectweb/Geometry-Toolkits/TTL/, Zugriff am 4.9.2012<br />
70
5.3 MorphGraphMaker<br />
• FreeImage 8<br />
Die Open-Source Bibliothek FreeImage unterstützt eine sehr große Anzahl von<br />
Bildformaten, welche über diese sowohl geladen als auch gespeichert werden können.<br />
Sie ist plattformunabhängig und für diverse Programmiersprachen verfügbar (u.a.<br />
C++, Delphi, C# ).<br />
• FLTK 1.3.x 9<br />
Der Fokus der Bibliothek FLTK (Fast Light ToolKit) liegt auf der schnellen Entwicklung<br />
und Darstellung von komplexen Nutzerdialogen unter Einbindung der<br />
OpenGL-Schnittstelle. Als Cross-Platform-Bibliothek unterstützt sie diverse Betriebssysteme<br />
(u.a. Windows, Linux, Apple OS X) sowie Programmiersprachen (u.a.<br />
C/C++, Perl, Python).<br />
• Image Quality Assessment (IQA) 10<br />
Den Schwerpunkt dieser kompakten C-Bibliothek bilden verschiedene Algorithmen<br />
zur Berechnung von Bildmetriken. Mittels einfach gehaltener Schnittstellen ist es<br />
dabei möglich, neben bekannten Algorithmen (u.a. MSE, PSNR) auch fortschrittliche<br />
Verfahren wie SSIM oder MS-SSIM für das Messen der Bilddifferenz zu verwenden.<br />
• CGV-Framework 1112<br />
Das CGV-Framework ist ein internes Framework des Lehrstuhls für <strong>Computer</strong>grafik<br />
und Visualisierung der TU Dresden, das kontinuierlich durch Pr<strong>of</strong>. Dr. rer. nat.<br />
Stefan Gumhold sowie Mitarbeiter des CGV-Lehrstuhl weiterentwickelt wird. Neben<br />
einer umfassenden Mathebibliothek bietet es unter anderem ein flexibles PlugIn-<br />
Framework, GPU-Berechnungsschnittstellen (u.a für CUDA) sowie stereographisches<br />
Rendering.<br />
5.3.4 Struktur<br />
In Abbildung 5.6 ist die Gesamtstruktur des MGM dargestellt, wie sie auch in der<br />
praktischen Implementierung vorliegt. In Anlehnung an die Konzeption stehen auch hier<br />
die drei Bereiche Import, Data Creation und Export im Fokus, da diese zusammen den<br />
kompletten Vorverarbeitungsprozess ergeben. Sie alle fußen auf dem Data Layer, der<br />
die elementaren Bestandteile des Galeriegraph bereitstellt. Ein weiterer Teilbereich, der<br />
unabhängig vom Rest innerhalb des MGM existiert, ist die Evaluation. Diese dient einzig<br />
dem Vergleich von Bilddaten und ist deshalb nicht Kernbestandteil des Vorverarbeitung.<br />
8 http://freeimage.sourceforge.net/index.html, Zugriff am 4.9.2012<br />
9 http://www.fltk.org/, Zugriff am 4.9.2012<br />
10 http://tdistler.com/iqa/, Zugriff am 5.10.2012<br />
11 http://www.inf.tu-dresden.de/index.php?node_id=468/, Zugriff am 4.9.2012<br />
12 http://cgv.inf.tu-dresden.de/cgvhelp/doc/html/a00001.html, Zugriff am 4.9.2012<br />
71
5 Implementierung<br />
Abb. 5.6: MorphGraphMaker - Gesamtstruktur<br />
Zu beachten ist, dass bei der nachfolgenden Vorstellung und Beschreibung der einzelnen<br />
Teilbereiche bewusst abstrahiert und auf komplexe Klassendiagramme verzichtet<br />
wurde. Diese Herangehensweise war unumgänglich, da eine exakte inhaltliche und strukturelle<br />
Wiedergabe aus Platz- und Zeitgründen nicht möglich gewesen wäre und die<br />
Übersichtlichkeit sehr darunter gelitten hätte.<br />
5.3.5 Datenschicht<br />
Abb. 5.7: Datenschicht - Struktur<br />
Die Datenschicht bildet die Grundlage für nahezu alle anderen Teilbereiche des MGM.<br />
Sie enthält Klassendefinitionen für die Verwaltung und Bearbeitung des Bildergraph,<br />
der einzelnen Elemente (Knoten, Halbkanten) sowie der untergeordneten Basisdaten<br />
(Bilder, Korrespondenzlisten usw.). Obwohl der Graph unmittelbar bei Prozessbeginn<br />
instanziiert und initialisiert wird , werden einige der zugeordneten Datencontainer (z.B.<br />
Mesh-Container) erst zu einem späteren Zeitpunkt mit Daten befüllt.<br />
72
5.3 MorphGraphMaker<br />
5.3.6 Import<br />
Abb. 5.8: Importmodul - Struktur und Teilbereiche<br />
Die erste Stufe des Vorverarbeitungprozess ist bekanntlich der Datenimport, über den<br />
die Grundlage für alle weiteren Operationen geschaffen wird. Da der MGM möglichst<br />
flexibel hinsichtlich der Dateneingabe sein soll, wurden drei unterschiedliche Modi in die<br />
Anwendung integriert.<br />
• Default-Modus<br />
Import von beliebigen Bildern ohne Tiefeninformationen<br />
• P3P-Modus<br />
Import einer P3P-Datei sowie der dazugehörigen Rendersequenz<br />
• Brachmann-Modus<br />
Import einer LNK.-Datei (siehe <strong>Diplomarbeit</strong> E. Brachmann [eB12])<br />
Nachdem der gewünschte Modus über einen Parameter eingestellt wurde, werden die<br />
gegebenen Rohdaten (Bilder, Graph-Definition usw.) über das entsprechende Import-<br />
Submodul eingelesen und aufbereitet.<br />
Zuallererst wird auf Basis der externen Graph-Definition der Bildergraph aufgestellt.<br />
Dabei werden die eingelesenen Bilder in Knotenstrukturen gespeichert, welche über<br />
manuell definierte Halbkanten (d.h. Angabe von Ausgangs- und Zielknoten) miteinander<br />
verbunden sind. Anschließend wird mittels OpenCV der SIFT-Algorithmus für jeden<br />
Bildknoten durchlaufen und die daraus resultierende Merkmalsmenge (Features) für<br />
die nachfolgende Korrespondenzdetektion mittels des RANSAC -Algorithmus verwendet.<br />
Man beachte, dass gemäß der Abbildung 5.8 durch den Brachmann-Importer importierte<br />
Daten die beiden genannten Zwischenstufen nicht durchlaufen müssen. Grund hierfür ist<br />
der Umstand, dass dieser bereits fertige Bildergraphen einliest und diese mitsamt der<br />
dazugehörigen 2D/3D-Korrespondenzen bereitstellt.<br />
73
5 Implementierung<br />
Im nächsten Zwischenschritt werden die Quellbilder sowie deren Features ausgerichtet und<br />
reskaliert, sodass für die weitere Verarbeitung gleichgroße und unverzerrte Bilder vorliegen<br />
(siehe Konzept, Abschnitt 4.6.2.1). Den Abschluss bildet die Generierung des Dreiecksnetzes<br />
(Mesh, siehe Datenschicht 5.7) im Bild- und Objektraum (falls 3D-Positionsdaten<br />
vorliegen). Hierzu wird für jede Halbkante im Graph mit Hilfe der TTL-Bibliothek<br />
eine Delaunay-Triangulierung auf der Menge der Korrespondenzpunkte im Ausgangsbild<br />
durchgeführt. Danach werden die äquivalenten Netze im Bildraum des Zielbildes sowie<br />
im dreidimensionalen Objektraum mithilfe der Korrespondenzen erzeugt.<br />
Implizit werden nach der Triangulierung durch das Mesh-Modul verschiedene Beschleunigungsdatenstrukturen<br />
(Quadtrees, Octrees) angelegt, damit die nachfolgende Feldgenerierung<br />
möglichst verzögerungsfrei ablaufen kann (siehe Abb. 5.9).<br />
Abb. 5.9: Mesh-Rekonstruktion: Ausgangsbild (1), Dreiecksnetz im Bildraum<br />
(2), Mesh im Objektraum (3), Octree mit Polygon-Patches (4)<br />
5.3.7 Datenerzeugung<br />
Die Generierung der Felddaten beginnt zunächst mit der Modifikation der Quellbilder.<br />
Diese werden im ersten Schritt auf Basis des von OpenCV bereitgestellten bilateralen<br />
74
5.3 MorphGraphMaker<br />
Abb. 5.10: Datenerzeugung - Struktur und Teilbereiche<br />
Filters unter Erhaltung von Details und Konturen geglättet. Daraufhin wird ein Medianfilter,<br />
dessen Kernelgröße konfigurierbar ist, auf die Bilder angewandt, um so an möglichst<br />
große, gleichfarbige Flächen zu gelangen. Zusätzlich ist es möglich, die Bilder durch die<br />
integrierte Bildsegmentierung, die auf der Arbeit von Achanta et al. 13 [RAASKS + 12]<br />
basiert, in einfarbige Bildsegmente zu zerlegen (siehe Abb.5.11). Anschließend werden<br />
die Quellbilder in den LAB-Farbraum übertragen, in dem sich Farbabstände deutlich<br />
besser und intuitiver berechnen lassen als im additiven Farbraum (d.h. im RGB-Modell).<br />
Den nächsten Zwischenschritt stellt die Erzeugung der Tiefenmasken dar. Hierzu wird,<br />
ausgehend vom jeweiligen Blickpunkt, pro Pixel ein Strahl in die dreidimensionale Szene<br />
geschickt, der mit dem erzeugten Dreiecksnetz auf eine mögliche Kollision geprüft wird.<br />
Aus Perfomancegründen erfolgt dieser Dreiecks-Strahl-Test im internen Octree des Mesh-<br />
Objektes.<br />
Abb. 5.11: Bildmodifikation (links nach rechts): Original, geglättet, segmentiert<br />
Wie schon in der Konzeption beschrieben, bildet der nachfolgende Teilschritt Field<br />
Creation den Kern der Datenerzeugung. Zunächst werden die Differenzvektoren der<br />
Korrespondenzen direkt in das Feld übertragen, da hier keinerlei zusätzliche Berechnungen<br />
notwendig sind. Im Anschluss daran kommt es zur Berechnung der Differenzvektoren für<br />
jeden einzelnen Punkt im Bildraum, der kein Korrespondenzpunkt ist.<br />
13 http://ivrg.epfl.ch/supplementary_material/RK_SLICSuperpixels/, Zugriff am 17.12.2012<br />
75
5 Implementierung<br />
Das Fundament dafür bildet eine Suchstruktur in Form eines KD-Baumes, der vor dem<br />
Interpolationsprozess unter Verwendung der PCL-Bibliothek generiert wird. Mithilfe<br />
dieses Suchbaumes werden für jeden Bildpunkt die k nächsten Stützstellen und deren<br />
euklidische Distanzen im Bildraum ermittelt, sodass anschließend die Interpolation der<br />
Differenzvektoren durchgeführt werden kann. Die hierfür notwendigen Algorithmen sind,<br />
wie man in Abbildung 5.12 sieht, in sogenannten Interpolationsmodulen (kurz: IPM)<br />
implementiert.<br />
Abb. 5.12: Datenerzeugung - Interpolationsmodule<br />
• Base: Basismodul für alle Implementierungen<br />
• Barycentric: Baryzentrische Interpolation über Punkt-In-Dreieck-Test<br />
• Shepard: einfache Shepard-Interpolation (Distanz)<br />
• ShepardColor: Bilaterale Shepard-Interpolation (Farbe, Distanz)<br />
• Gauss: einfache Gauss-Interpolation (Distanz)<br />
• GaussColor: Bilaterale Gauss-Interpolation (Farbe, Distanz)<br />
S<strong>of</strong>ern die Nutzung von Tiefeninformationen gewünscht ist, können die aufgelisteten<br />
Verfahren diese in die Interpolation mit einbinden. Im Falle der GaussColor-Interpolation<br />
würde jene demnach die drei Faktoren Distanz, Farbdifferenz und Tiefendifferenz zur<br />
Stützstellengewichtung einsetzen.<br />
Für die Berechnung der Farbdifferenz ist bekanntlich ein äquidistantes Abtasten der<br />
Verbindungslinien zwischen dem aktuellen Punkt und den Stützstellen erforderlich, weshalb<br />
zunächst ein entsprechendes Verfahren benötigt wird. An dieser Stelle kommt der<br />
Bresenham-Algorithmus zum Einsatz, denn dieser ermöglicht effizientes Linienrastern<br />
und bildet aufgrund seiner Diskretisierungmethode die ideale Grundlage für das Abtasten<br />
der Linien.<br />
Die Auswertung entlang der Linien erfolgt dabei zweistufig. Zuerst wird der Farbwert<br />
an der aktuellen Position im Bild ausgelesen. Anschließend wird der CIEDE2000-<br />
Farbabstand 14 zum vorherigen Abtastpunkt oder alternativ zum Ausgangspunkt berechnet.<br />
Standardmäßig nutzt der MGM den ersten Ansatz, während die Berechnung<br />
14 http://www.ece.rochester.edu/~gsharma/ciede2000/ciede2000noteCRNA.pdf, Zugriff am<br />
17.12.2012<br />
76
5.3 MorphGraphMaker<br />
der absoluten Farbdistanz explizit aktiviert werden muss. In jedem Fall werden die<br />
Differenzen akkumuliert und am Ende der Durchschnitt ermittelt.<br />
Das Ermitteln der Tiefendifferenz erfolgt analog zur Farbdifferenz, wobei hier die Berechnung<br />
deutlich einfacher ausfällt. Die Bildtiefe ist ein einfacher Skalarwert im Intervall<br />
[0, 1] und deshalb ergibt sich der Abstand aus der absoluten Differenz zweier Tiefenwerte.<br />
Nachdem die Feldgenerierung unter Anwendung der gewählten Interpolationsmethode<br />
abgeschlossen wurde, erstellt die Anwendung darauf basierend sogenannte Fehlermasken.<br />
Hierzu werden die Quellbilder anhand der dichten Korrespondenzfelder temporär<br />
gewarpt und daraufhin mit dem jeweils entgegengesetzten Bild pixelweise über die<br />
CIEDE2000-Methode verglichen (siehe Abb. 5.13). Die daraus erzeugten Skalarfelder<br />
werden anschließend auf Basis der minimalen und maximalen Bildfehler normalisiert und<br />
im letzten Schritt zusammen mit den Korrespondenzfeldern ausgegeben.<br />
Abb. 5.13: Fehlermaske: Ausgangs- und Zielbild, generierte Fehlermaske (invertiert)<br />
5.3.8 Export<br />
Zu Beginn werden die eingehenden Galeriedaten durch das Submodul Init/Binding<br />
zwischengespeichert und in eine generische Datenstruktur übertragen. Darüber hinaus<br />
werden zusätzliche Bibliotheken (u.a. TinyXML, FreeImage) eingebunden und initialisiert.<br />
Anschließend findet die Ausgabe über die entsprechenden Submodule (siehe Abb. 5.14)<br />
statt. Hierbei ist es möglich, dass durch die Deaktivierung einzelner Submodule die<br />
Ausgabe ganz oder teilweise unterbunden wird (sinnvoll, wenn z.B. nur die Galeriestruktur<br />
benötigt wird). Für die nachfolgenden Ausführungen sind alle Module aktiviert.<br />
In der ersten Stufe werden die originalen Galeriebilder durch das Image Export-Modul<br />
dupliziert und die Kopien in das entsprechende Zielverzeichnis übertragen. Hierzu werden<br />
77
5 Implementierung<br />
Abb. 5.14: Exportmodul - Struktur und Teilbereiche<br />
diese mittels der Bibliothek FreeImage geladen, ggf. reskaliert und anschließend unter<br />
gleichem Namen gespeichert. Im Anschluss daran wird die Ausgabe des Graph über<br />
das Graph Export-Modul realisiert. Die Graphenstruktur wird zunächst intern in eine<br />
DOM-kompatible Knotenhierarchie übertragen, die dem allgemeinen Grundaufbau einer<br />
WGL-Datei entspricht. S<strong>of</strong>ern dabei keine Fehler auftreten, wird über die Bibliothek<br />
TinyXML eine XML-Datei angelegt und die DOM-Struktur darin gespeichert.<br />
Im letzten Teilschritt werden die erzeugten Korrespondenzfelder über das Field Export-Modul<br />
je nach Einstellung umkodiert und in einem beliebigen Rasterdatenformat<br />
gespeichert. Entsprechend der verschiedenen Feldformate (siehe auch 5.2.3) existieren<br />
innerhalb des MGM Klassen, die die Verfahren implementieren (siehe Abb. 5.15).<br />
Abb. 5.15: Klassenhierarchie - Feldexport<br />
5.3.9 Evaluation<br />
Aufgrund der Tatsache, dass die Notwendigkeit nach einem generischen Werkzeug zum<br />
Bildvergleich erst gegen Ende der Entwicklungsphase aufkam, wurde das hierfür implementierte<br />
Modul als nachträgliche Erweiterung in den MGM integriert. Dieser Umstand<br />
wirkt sich direkt auf den Aufbau des Moduls aus, denn im Gegensatz zu den anderen<br />
78
5.3 MorphGraphMaker<br />
Abb. 5.16: Evaluation - Struktur<br />
Komponenten existiert hier keine Abhängigkeit zu einem bestehenden Bildergraph.<br />
Gemäß der Abbildung 5.16 existieren auf der linken Seite zwei Submodule, die für die<br />
Initialisierung zuständig sind. Die obere Komponente dient der globalen Initialisierung,<br />
während im JobInit-Submodul die Evaluations-Aufträge (Jobs) erstellt und verwaltet<br />
werden. Auf der rechten Seiten ist die Hauptkomponente abgebildet, in der die eigentliche<br />
Evaluation stattfindet. An dieser Stelle wird die externe IQA-Bibliothek eingebunden,<br />
da diese eine Reihe von Algorithmen (z.B. SSIM, MSE) zum Vergleich von Bildern<br />
bereitstellt.<br />
Bevor man eine Menge von Bildern miteinander vergleichen kann, muss das Modul zuerst<br />
global initialisiert werden. Hierzu gibt man den verwendeten Algorithmus und die zu<br />
vergleichenden Farbkanäle an. Die Liste der verfügbaren Algorithmen lautet dabei wie<br />
folgt:<br />
• MSE - Mean Squared Error<br />
• PSNR - Peak Signal-to-Noise Ratio<br />
• SSIM - Structural SIMilarity<br />
Folgende Farbkanal-Einstellungen sind möglich:<br />
• R: nur rote Farbkanäle vergleichen<br />
• G: nur grüne Farbkanäle vergleichen<br />
• B: nur blaue Farbkanäle vergleichen<br />
• ALL: alle Farbkanäle vergleichen<br />
Der globalen Initialisierung schließt sich das Hinzufügen der einzelnen Jobs an. Jeder Job<br />
besteht aus einem Referenzbild und einer Liste von Bildern, die mit dem Referenzbild<br />
verglichen werden. Während der Evaluation wird schrittweise über die Jobliste iteriert<br />
79
5 Implementierung<br />
und die jeweiligen Bilder separat mit dem assoziierten Referenzbild verglichen. Dabei ist<br />
zu beachten, dass jeder Algorithmus seinen eigenen Werteintervall für die Angabe der<br />
Bilddifferenzen nutzt. Die Evaluationsdaten werden in einer Ergebnisliste gespeichert, die<br />
nach Abschluss des Prozesses zurückgegeben wird. Optional ist ein Export als CSV-Datei<br />
möglich.<br />
5.3.10 Betriebsmodi<br />
Der Betrieb des MGM ist in zwei unterschiedlichen Modi möglich. Auf der einen Seite<br />
gibt es den klassischen Dialog-Modus, wo der Nutzer über eine graphische Schnittstelle<br />
alle relevanten Einstellungen vornimmt, und auf der anderen Seite einen speziellen Stapelverarbeitungmodus<br />
(Batch-Modus), der allein über textbasierte Konfigurationsdateien<br />
betrieben wird.<br />
5.3.10.1 Dialog-Modus<br />
Der Dialog-Modus ist standardmäßig im MGM voreingestellt und stellt einen direkten<br />
und einfachen Weg dar, komplette Bildergalerien auf Basis beliebiger Eingabebilder<br />
zu erstellen. Wie man in Abbildung 5.17 sehen kann, zeichnet er sich durch eine klar<br />
strukturierte Oberfläche, vordefinierte Parameter sowie Informationstexte aus.<br />
Auf der rechten Seite des Hauptfensters befinden sich die globalen Programmeinstellungen,<br />
die für alle internen Verarbeitungschritte des MGM relevant sind und möglichst zuerst<br />
gesetzt werden sollten. Es folgt eine Auflistung aller globalen Konfigurationsfelder.<br />
• Import Mode<br />
Verwendeter Import-Modus des Programms. Standardmäßig auf „Default“ (nur<br />
Bilddaten) gestellt. Weitere Optionen sind „P3P“( Renderbilder plus dazugehörige<br />
P3P-Datei) und „Brachmann“ (komplette Bildergraphen).<br />
• Source File<br />
Quelldatei, die im P3P- bzw. Brachmann-Modus zum Starten der Verarbeitung<br />
zwingend benötigt wird.<br />
• Image Scale<br />
Bildskalierung der Quellbilder sowie der erzeugten Texturen in Abhängigkeit von<br />
der originalen Bildgröße (Angabe in Prozent)<br />
• Nearest Feature Count<br />
Anzahl der k nächsten Stützstellen für einen Punkt p. Sowohl für die Vorverarbeitung<br />
als auch die eigentliche Datenerzeugung relevant.<br />
• Thread Count<br />
Anzahl der Prozess-Threads, die für die Datengenerierung verwendet werden.<br />
80
• Quadtree: Max. Triangles<br />
Maximale Anzahl an Dreiecken pro Endknoten im Quadtree.<br />
• Octree: Max. Triangles<br />
Maximale Anzahl an Dreiecken pro Endknoten im Octree.<br />
5.3 MorphGraphMaker<br />
Abb. 5.17: MGM - Hauptdialog<br />
Die oberen beiden Bereiche „Nodes“ und „Edges“ dienen der Definition des Bildergraph.<br />
Durch Anklicken der jeweiligen Schaltfläche ist es möglich, neue Knoten und Kanten<br />
zu erstellen und zu verwalten. Während das Erzeugen von Knoten über das Laden von<br />
Bildern stattfindet, werden Kanten innerhalb eines minimalen Dialogs durch Angabe des<br />
Start- und Zielknotens erzeugt.<br />
Einen weiteren wichtigen Bereich stellt die Konfigurationsliste auf der linken Seite dar,<br />
da hier der Nutzer hier die Möglichkeit hat, beliebig viele Konfigurationen für die<br />
Berechnung der Morphing-Daten anzulegen. Während im oberen Teil alle vorhandenen<br />
Konfigurationen aufgelistet werden, zeigt das untere Feld die Einstellungen der aktuell<br />
selektierten Konfiguration.<br />
Neben den Schaltflächen „Remove“ und „Clear“, über die bestehende Konfigurationen<br />
entfernt werden, erfolgt das Erstellen bzw. Modifizieren mithilfe eines separaten Dialogs<br />
(siehe Abb. 5.18), der über „New“ bzw. „Modify“ geöffnet wird.<br />
81
5 Implementierung<br />
In jenem Dialog sind die beiden Felder „ID“ und „File Suffix“ besonders wichtig, da<br />
über sie die Identifikation der Konfigurationen innerhalb und außerhalb des MGM<br />
realisiert wird. Eine Mehrfachverwendung der beiden Attribute ist nicht möglich und<br />
wird durch die Anwendung unterbunden. Die nächsten beiden Felder dienen der Auswahl<br />
der zu verwendenden Interpolations- und Extrapolationsmethoden für das Erstellen der<br />
Korrespondenzfelder.<br />
• BARYCENTRIC<br />
Auf Basis des erzeugten Dreiecksnetzes wird jeder Datenpunkt innerhalb eines<br />
Dreiecks baryzentrisch interpoliert. Diese Methode ist sehr schnell, erzeugt aber<br />
keine weichen Interpolationsverläufe und ist nicht für die Extrapolation außerhalb<br />
des Netzes einsetzbar.<br />
• GAUSS<br />
Die Interpolation der k nächsten Korrespondenzpunkte erfolgt über die Gauss-<br />
Funktion, welche auf Basis der maximalen Distanz eine Normalverteilung der Gewichte<br />
realisiert. Obwohl diese Methode schnell und glättend arbeitet, können dennoch<br />
Unregelmäßgkeiten und Wellenstrukturen auftreten.<br />
• GAUSSCOLOR<br />
Diese Methode interpoliert die k nächsten Korrespondenzpunkte bilateral auf Basis<br />
der räumlichen Distanz im Bildraum und der akumulierten Farbdifferenz. Man<br />
beachte, dass der Berechnungsaufwand pro Punkt sehr hoch ist (von k abhängig)<br />
und dadurch größe Verzögerungen auftreten können.<br />
• SHEPARD<br />
Die Interpolation der k nächsten Stützstellen findet über die Inverse Distanzgewichtung<br />
statt, welche gemeinhin auch als Shepard-Interpolation bezeichnet wird.<br />
Diese Methode ist sehr schnell, erzeugt aber unter Umständen Felder mit radialen<br />
Strukturen und Rauschen.<br />
• SHEPARDCOLOR<br />
Aufbauend auf der Shepard-Methode, wird bei diesem bilateralen Interpolationsansatz<br />
zusätzlich die akkumulierte Farbdistanz für die Gewichtung der k nächsten<br />
Features verwendet. Die Eigenschaften sind ähnlich zu denen der Shepard-Methode,<br />
wobei die Ausführungsgeschwindigkeit teilweise deutlich niedriger ausfallen kann.<br />
• GRIDMESH<br />
Das bei Initialisierung erzeugte Gitternetz wird dazu verwendet, an jeder beliebigen<br />
Position im Bildraum eine bilineare Interpolation der an den Gitterknoten<br />
vorberechneten Differenzvektoren durchzuführen. Zu beachten ist, dass die Abbildungsgenauigkeit<br />
sowohl von der Zellengröße (im Dialog-Modus 10 x 10 Pixel) als<br />
auch der Anzahl der k nächsten Features abhängig ist.<br />
82
5.3 MorphGraphMaker<br />
Das Feld „Relative Filter Size“ dient dem Einstellen des Weichzeichnungsfilters, durch den<br />
kleinere Unregelmäßigkeiten (z.B. Bildrauschen) schon im Vorfeld ausgeglichen werden<br />
können. Der Schalter „Use depth information“ ermöglicht die Einbindung von Tiefeninformationen,<br />
s<strong>of</strong>ern diese zum Zeitpunkt der Berechnung vorliegen.<br />
Am unteren Ende des Dialogs befinden sich Konfigurationsfelder, über die eine nachträgliche<br />
Feldkorrektur auf Basis des Optischen Flusses aktiviert werden kann. Falls<br />
dieser zum Einsatz kommen soll, hat man hier die Möglichkeit, die relative Größe des<br />
Berechnungsfensters („Refine Window Scale“) sowie die Anzahl der Stufen („Refine<br />
Levels“) und Iterationen („Refine Iterations“) anzupassen.<br />
Abb. 5.18: MGM - Prozesskonfiguration<br />
Abb. 5.19: MGM - Exportkonfiguration<br />
In Abbildung 5.19 sind die Exporteinstellungen abgebildet, die sich im mittleren Bereich<br />
des Hauptdialogs befinden. Neben der Auswahl des Kodierungstyps (siehe auch 5.2.3)<br />
sowie des Dateiformats findet hier die Eingabe des Galerienamens sowie zusätzlicher<br />
83
5 Implementierung<br />
Informationen (u.a. Titel und Datum) statt. Darüber hinaus ist es möglich, durch Angabe<br />
eines validen Pfades im Feld „Current OutDir“ anstelle des aktuellen Arbeitsverzeichnisses<br />
ein anderes Verzeichnis für die Ausgabe einzustellen.<br />
Unterhalb der Exporteinstellungen befindet sich der Debug-Bereich, der diverse Ausgabeoptionen<br />
zur Visualisierung und Evaluation der internen Prozessverarbeitung bereithält.<br />
Falls die Ausgabe von grafischen Testdaten erwünscht ist, müssen zunächst der Basisdateiname<br />
sowie optional ein Ausgabeverzeichnis angegeben werden. Danach wählt man<br />
die gewünschten Einstellungen aus, durch die später pro Kante des Bildergraph ein<br />
individuelles Doppelbild (Start- und Zielbild nebeneinander) im JPEG-Format erzeugt<br />
wird. Es folgt eine Auflistung aller möglichen Ausgabeoptionen.<br />
Abb. 5.20: MGM - Evaluationsdialog<br />
84
• Nodes Images: nur Ausgangs- und Zielbild<br />
5.3 MorphGraphMaker<br />
• Corresponding Features: Korrespondenzlinien in Start- und Zielbild<br />
• Triangles: Korrespondierende Dreiecksnetze im Start- und Zielbild<br />
• Triangle Correspondences: Dreieckskorrespondenzen im Start- und Zielbild<br />
• Extrapol. Grid: Extrapolations-Gitternetz in Start- und Zielbild<br />
• Extrapol. Triangles: Extrapolations-Dreiecksnetz in Start- und Zielbild<br />
• Extrapol. Triangles: Quadtrees im Start- und Zielbild<br />
• Warped Images: Start- und Zielbild original und nach dem Warping<br />
• Mod. Source Images: Präparierte Start- und Zielbilder für Verarbeitung<br />
• Spatial Mesh as OBJ: Export der rekonstruierten 3D-Netze im .OBJ-Format<br />
Im unteren rechten Bereich des Hauptdialogs befinden sich die vier zentralen Schaltflächen<br />
des MGM. Neben den Schaltflächen „Start“ und „Exit“, die die Prozessausführung<br />
respektive das Programmende bewirken, gibt es zusätzlich „Log“ und „Evaluation“.<br />
Mittels „Log“ öffnet sich ein nonmodaler Dialog, der alle Statusmeldungen des Programm<br />
mitgeschreibt und chronologisch geordnet präsentiert. Über den Button „Evaluation“<br />
öffnet sich ein weiterer Dialog (siehe Abb. 5.20), der die Ananlyse von Bilddifferenzen<br />
ermöglicht und vom Hauptprogramm unabhängig ist.<br />
Innerhalb dieses Evaluationsdialogs ist auf der linken Seite eine Liste von Einträgen zu<br />
sehen, wobei jeder Eintrag aus einem generischen Zeitparameter und einem Bildpaar<br />
besteht (das erste Bild ist stets das Referenzbild). Auf der rechten Seite des Dialog<br />
befinden sich neben den für die Liste relevanten Schaltflächen „Add“, „Remove“ und<br />
„Clear“ einige Konfigurationsfelder. Das Feld „CSV File“ enthält den Ausgabepfad der zu<br />
erzeugenden CSV-Datei. Über „Column ID“ ist der Name der Tabellenspalte einzugeben,<br />
in der letztlich alle Evaluationsergebnisse enthalten sind. Die Felder „Algorithm“ und<br />
„Color Channels“ werden für die Auswahl des einzusetzenden Bilddifferenz-Algorithmus<br />
sowie der betrachteten Farbkanäle genutzt.<br />
5.3.10.2 Batch-Modus<br />
Im Gegensatz zum Dialog-Modus nutzt der Batch-Modus des MGM keinerlei grafische<br />
Benutzeroberfläche und wird allein über textbasierte Konfigurationsdateien gesteuert.<br />
Obwohl dies auf Anwender ohne Fachkenntnisse zunächst umständlich und wenig intuitiv<br />
wirkt, ergeben sich daraus diverse Vorteile.<br />
• Schnelle und direkte Verwendung der Anwendung<br />
• Größerer Einfluss auf den Prozessablauf<br />
85
5 Implementierung<br />
• Einfache Reproduktion identischer Daten durch Batchdateien<br />
• Keine Nutzeraktionen/-eingaben im Programm notwendig<br />
• Sowohl Produktion als auch Evaluation batchfähig<br />
• Multipler Datenexport möglich<br />
Um den Batch-Modus zu starten, muss der MGM unter Angabe spezieller Argumente<br />
aufgerufen werden. Das erste Argument beschreibt den internen Prozessmodus und<br />
lautet entweder „-PROD“ (für Datenproduktion, Galerie-Erzeugung) oder „-EVAL“ (für<br />
Evaluation). Das zweite Argument stellt einen relativen oder absoluten Pfad zur einer<br />
vorhandenen Batchdatei dar. Im Fall einer Falscheingabe gibt die Anwendung beim<br />
Programmstart eine entsprechende Meldung aus und beendet sich.<br />
Nachfolgend ist zu beachten, dass die Indizierung der Sektions- und Parameternamen in<br />
den Batchdateien stets nullbasiert erfolgt.<br />
S<strong>of</strong>ern über den Batch-Modus eine Galerie inklusive aller dazugehörigen Daten erzeugt<br />
werden soll, muss zuvor eine prozessbeschreibende Batchdatei angelegt werden. Diese ist im<br />
Kern eine Initialisierungsdatei und setzt sich demnach aus einer Menge von Wertepaaren,<br />
welche in Sektionen eingeordnet sind, zusammen. In Listing 5.2 ist exemplarisch eine<br />
einfache Batchdatei abgebildet.<br />
86
5.3 MorphGraphMaker<br />
[ HEADER ]<br />
mode = P3P<br />
path = test . p3p<br />
nearestFeatCount =7<br />
threadCount =4<br />
qtMaxTriangles =20<br />
qtMaxDepth =7<br />
otMaxTriangles =20<br />
otMaxDepth =7<br />
extraCellWidth =20<br />
extraCellHeight =20<br />
imageScale =100<br />
exporterCount =1<br />
configCount =1<br />
[ GRAPH ]<br />
nodeCount = 2<br />
node0 = " test1 . jpg "<br />
node1 = " test2 . jpg "<br />
edgeCount = 1<br />
edge0 = node0 # node1<br />
[ DEBUG ]<br />
baseFilename = testImage<br />
outDir = debugDir<br />
drawImages =1<br />
drawFeatures =0<br />
drawTriangles =1<br />
drawTriangleCorrespond =0<br />
drawExtraGrid =0<br />
drawExtraTriangles =0<br />
drawImages =0<br />
drawQuadTrees =0<br />
drawWarpedImages =1<br />
drawSourceImages =1<br />
exportMeshAsOBJ =1<br />
useImagesAsBackGround =1<br />
Listing 5.2: Produktions-Batchdatei<br />
[ EXPORTER0 ]<br />
outDir =c:/ myGalleries<br />
baseName = Scene0Test<br />
exportGallery =1<br />
exportTextures =1<br />
title = holidays 2012<br />
desc = some nice holidays<br />
date =11 -6 -2012<br />
format = JPG<br />
type = HSV<br />
[ CONFIG0 ]<br />
id= bary<br />
fileSuffix = bary<br />
interpolMode = BARYCENTRIC<br />
extrapolMode = SHEPARD<br />
filterSize =0.05<br />
usingDepth =0<br />
segmentImages =1<br />
segmentCompactness =10<br />
segmentMinSize =0.02<br />
refineMorphOF =1<br />
refineWindowOF =0.05<br />
refineLevelsOF =3<br />
refineInterationsOF =3<br />
gradientSampling =1<br />
In der HEADER-Sektion werden allgemeine Einstellungen, analog zu den globalen Feldern<br />
im Dialog-Modus, vorgenommen. Die dabei verwendeten Parameter sind in Tabelle 5.2<br />
abgebildet.<br />
87
5 Implementierung<br />
Parameter<br />
mode<br />
path<br />
nearestFeatCount<br />
threadCount<br />
qtMaxTriangles<br />
qtMaxDepth<br />
otMaxTriangles<br />
otMaxDepth<br />
extraCellWidth<br />
extraCellHeight<br />
imageScale<br />
exporterCount<br />
configCount<br />
Beschreibung<br />
Importmodus (DEFAULT, P3P oder BRACHMANN)<br />
Dateipfad für Zusatzdaten (P3P/BRACHMANN-Modus)<br />
Anzahl der k nächsten Features<br />
Anzahl der verwendeten Threads<br />
Höchstzahl an Dreiecken pro Blattknoten im Quadtree<br />
Max. Tiefe des Quadtrees<br />
Höchstzahl an Dreiecken pro Blattknoten im Octree<br />
Max. Tiefe des Octrees<br />
Pixelbreite der Gitterzellen<br />
Pixelhöhe der Gitterzellen<br />
Prozentuale Skalierung von Quellbildern und Ausgabedaten<br />
Anzahl der Export-Konfigurationen<br />
Anzahl der Export-Konfigurationen<br />
Tab. 5.2: Batch-Modus: Globale Parameter<br />
Die Definition des Galeriegraph erfolgt innerhalb der separaten GRAPH-Sektion (bzgl.<br />
Parameter siehe Tabelle 5.3).<br />
Parameter Beschreibung<br />
nodeCount Anzahl Bildknoten im Graph<br />
edgeCount Anzahl Kanten im Graph<br />
nodeN Dateipfad eines Bildknoten N (mit N ∈ {0, .., nodeCount − 1})<br />
edgeM Format „nodeX#nodeY“ (mit M ∈ {0, .., edgeCount − 1})<br />
Tab. 5.3: Batch-Modus: Graphparameter<br />
Die Ausgabe von Testdaten wird über die DEBUG-Sektion (siehe Listing 5.2) konfiguriert.<br />
Alle Parameter mit einem „draw“ als Präfix dienen als Schalter für die Ausgabe der<br />
damit assoziierten Debug-Daten und sind gleichbedeutend zu den Debug-Optionen im<br />
Dialog-Modus. Ebenso verhält es sich mit den Parametern „baseFilename“ und „outDir“,<br />
worüber der Basisdateiname sowie der Ausgabepfad angegeben wird.<br />
Die Exporteinstellungen werden in eigens dafür angelegten Sektionen definiert. Die<br />
dazugehörigen Parameter sind in Tabelle 5.4 beschrieben.<br />
88
5.3 MorphGraphMaker<br />
Parameter<br />
outDir<br />
baseName<br />
exportGallery<br />
exportTextures<br />
title<br />
desc<br />
date<br />
format<br />
type<br />
Beschreibung<br />
Wurzelverzeichnis für Ausgabe<br />
Basisname der Galerie<br />
Flag für Export der Galerie-Datei(*.WGL)<br />
Flag für Export der Galerie-Texturen<br />
optionaler Titel<br />
optionale Beschreibung<br />
optionale Datumsangabe<br />
Texturformat (JPG, PNG, BMP oder TIF)<br />
Texturkodierung (HSV, RGBSEPARATED, ARGB, ARGB-<br />
SPLIT)<br />
Tab. 5.4: Batch-Modus: Exportparameter<br />
Wie auch bei den Exporteinstellungen werden die Prozesskonfigurationen in separaten<br />
Sektionen beschrieben. Mithilfe der Prozessparameter (siehe Tab. 5.5) hat man dabei die<br />
Möglichkeit, die Datengenerierung auf vielfältige Art und Weise zu beeinflussen.<br />
Parameter Beschreibung<br />
id<br />
ID der Konfiguration<br />
fileSuffix<br />
Dateisuffix, der an den Galeriename angefügt wird<br />
interpolMode Interpolationsmodus, siehe Prozesskonfigurationen im Dialog-<br />
Modus<br />
extrapolMode Extrapolationsmodus, siehe Prozesskonfigurationen im Dialog-<br />
Modus<br />
filterSize<br />
Relative Größe des Filterkernels (normiert)<br />
usingDepth Flag für Einbindung von Tiefeninformationen<br />
segmentImages Flag für Segmentierung der Quellbilder<br />
segmentCompactness Kompaktheit der Segmente (je größer, umso konvexer)<br />
segmentMinSize Minimale Segmentgröße (relativ zur Bildgröße)<br />
refineMorphOF Flag für Refinement mittels Optischem Fluss<br />
refineWindowOF Berechnungsfenster für Refinement<br />
refineLevelsOF Stufenanzahl für Optischen Fluss<br />
refineInterationsOF Anzahl Iterationen für Optischen Fluss<br />
gradientSampling Sampling der Gradienten bei bilat. Interpolation (falls inaktiv,<br />
wird Farbdifferenz zum Ursprung akkumuliert)<br />
Tab. 5.5: Batch-Modus: Prozessparameter<br />
89
5 Implementierung<br />
S<strong>of</strong>ern nach dem Start des MGM die Validierung der Batchdatei erfolgreich war, wird<br />
die Datengenerierung automatisch durchlaufen und nach dem Export die Anwendung<br />
selbstständig beendet.<br />
Um die batchbasierte Evaluation nutzen zu können, muss im Vorfeld ebenfalls eine<br />
Batchdatei (siehe Listing 5.3) angelegt werden. In dieser werden, analog zur dialogbasierten<br />
Evaluation, zunächst allgemeine Einstellungen innerhalb der HEADER-Sektion getr<strong>of</strong>fen.<br />
• csv: Relativer oder absoluter Ausgabepfad der CSV-Datei<br />
• channel: Verwendete Farbkanäle (R, G, B oder ALL)<br />
• mode: Bilddifferenz-Algorithmus (SSIM, DSSIM, PSNR oder MSE)<br />
• passCount: Anzahl der Bildvergleiche<br />
• xID: Sichtbarer Name des Laufparameters x<br />
• slotCount: Vergleichsfelder pro Durchgang<br />
• slotIDn: Name des n-ten Vergleichsfeldes (Index nullbasiert)<br />
Zusätzlich muss für jeden Evaluationsdurchgang(Pass) eine separate Sektion definiert<br />
werden. Auch hier ist zu beachten, dass der Sektionsindex nullbasiert ist und dadurch<br />
eine Sektion „PASSm“ mit m ∈ {0, .., passCount − 1} existieren muss. Kernbestandteil<br />
einer solchen Sektion ist die Angabe des Laufparameters, des Referenzbildes sowie aller<br />
damit zu vergleichende Bilder.<br />
[ HEADER ]<br />
csv = _BatchEvaluation . csv<br />
channel = ALL<br />
mode = DSSIM<br />
passCount =3<br />
xID = time<br />
slotCount = 2<br />
slotID0 = Images_Day1<br />
slotID1 = Images_Day2<br />
[ PASS0 ]<br />
x = 0.25<br />
base = imageBase1 . jpg<br />
slot0 = image1_1 . jpg<br />
slot1 = image2_1 . jpg<br />
Listing 5.3: Evaluations-Batchdatei<br />
[ PASS1 ]<br />
x = 0.5<br />
base = imageBase2 . jpg<br />
slot0 = image1_2 . jpg<br />
slot1 = image2_2 . jpg<br />
[ PASS2 ]<br />
x = 1.0<br />
base = imageBase3 . jpg<br />
slot0 = image1_3 . jpg<br />
slot1 = image2_3 . jpg<br />
Wie auch bei der batchbasierten Datenerzeugung läuft die Anwendung nach erfolgter<br />
Initialisierung sequentiell durch alle Zwischenstufen der Evaluation und beendet sich im<br />
Anschluss daran selbst. Zur Veranschaulichung der resultierenden Daten ist in Abbildung<br />
5.21 die erzeugte CSV-Datei, basierend auf dem Listing 5.3, dargestellt.<br />
90
5.4 WebGLallery<br />
Abb. 5.21: Evaluationsergebnisse in LibreOffice 3.6.3 Calc<br />
5.4 WebGLallery<br />
Abb. 5.22: WebGLallery - Screenshot<br />
In diesem Unterkapitel wird die Umsetzung des Webfrontends, das für die Präsentation<br />
der erzeugten Bildergalerien (siehe Abb. 5.22) unter Verwendung verschiedener Morphing-<br />
Techniken verwendet wird, vorgestellt und beschrieben.<br />
5.4.1 Eigenschaften<br />
Die hier vorgestellte Implementierung lässt sich aufgrund ihrer Eigenschaften aus unterschiedlichen<br />
Blickpunkten betrachten. Einerseits handelt es sich um eine „Out <strong>of</strong><br />
the box“-Lösung, die unmittelbar zur webbasierten Präsentation von Bildergalerien genutzt<br />
werden kann. Andererseits dient die Applikation als experimentelle S<strong>of</strong>tware zur<br />
91
5 Implementierung<br />
Evaluation der verwendeten Morphing-Ansätze. Zur besseren Übersicht folgt nun eine<br />
stichpunktartige Auflistung der wichtigsten Eigenschaften.<br />
• HTML5 sowie CSS bilden die Grundlage des Frontends<br />
• Implementierung der Programmlogik mittels der Skriptsprache Javascript<br />
• Visualisierung von 2D/3D-Inhalten mittels WebGL und Canvas (HTML5)<br />
• externe Galerie-Archivierung über das WGL-Format (siehe Abschnitt 5.2.2)<br />
• serverseitiger Einsatz von PHP (v.a. für Dateioperationen)<br />
• dynamisches Nachladen von Bildinhalten zur Laufzeit<br />
• beschleunigtes Laden durch zugriffsabhängiges Texture-Caching<br />
• kompakte und intuitive Benutzerschnittstelle<br />
• externe Shader-Programme zur schnellen Anpassung und Optimierung<br />
• Bildwechsel mittels Morphing<br />
• in allen Browsern lauffähig, die WebGL unterstützen<br />
5.4.2 Systemanforderungen<br />
• Apache-Webserver<br />
In jedem Fall muss für die Ausführung der WebGLallery ein voll funktionsfähiger<br />
Apache-Webserver vorliegen, auf dem sämtliche HTML- und Javascript-Quellen<br />
abzulegen sind. Während der Entwicklung kam hierfür die XAMPP-Distribution 15<br />
zum Einsatz, die unter anderem auch die Ausführung eines lokalen Webservers<br />
erlaubt.<br />
• PHP<br />
Auf dem Host-System wird eine aktuelle PHP-Installation ( >= 5.4.x) benötigt,<br />
da das Frontend darüber Dateioperationen realisiert. PHP ist Kernbestandteil der<br />
XAMPP-Distribution, weshalb sich deren Verwendung für Test- und Entwicklungszwecke<br />
anbietet.<br />
• WebGL<br />
Für eine fehlerfreie Ausführung muss der verwendete Browser zu WebGL Rev. 1.0<br />
vollwertig kompatibel sein. Zusätzlich ist notwendig, dass die OES_texture_float-<br />
Extension für die Verwendung von 32-Bit Fließkommatexturen unterstützt wird.<br />
Mozilla Firefox und Google Chrome sind gegenwärtig (Stand: Dezember 2012) die<br />
einzigen Browser, die diese Anforderung erfüllen.<br />
15 http://www.apachefriends.org/de/index.html, Zugriff am 29.11.2012<br />
92
5.4 WebGLallery<br />
• Aktueller Grafiktreiber<br />
Auf dem Anwendersystem sollte ein möglichst aktueller Grafiktreiber installiert sein.<br />
Grund hierfür ist die teilweise fehlerhafte WebGL-Unterstützung bei älteren Treibern,<br />
durch die neben Bildfehlern im Extremfall auch Systemabstürze möglich sind.<br />
5.4.3 Bibliotheken<br />
Im Zuge der Entwicklung kamen diverse JavaScript-Bibliotheken zum Einsatz kamen,<br />
wodurch der Entwicklungsaufwand deutlich verringert werden und zugleich eine höhere<br />
Programmqualität erreicht werden konnte.<br />
• dat.GUI 16<br />
dat.GUI ist eine flexible GUI-Bibliothek zur Entwicklung einfacher Benutzerschnittstellen.<br />
Inbesondere für experimentielle Anwendungen lassen sich so vergleichsweise<br />
schnell einfache Benutzerschnittstellen unter Verwendung bekannter Elemente (u.a.<br />
Textflächen, Listen) entwickeln.<br />
• webgl-utils.js 17<br />
Diese kompakte Bibliothek von Google Inc. besteht im Kern aus einer Klasse, über<br />
die ein WebGL-Kontext browserunabhängig erzeugt werden kann. Darüber hinaus<br />
existieren Funktionen zur Emulation von Renderschleifen, wodurch sich animierte,<br />
grafiklastige Webapplikation mittels WebGL umsetzen lassen.<br />
• J3DI 18<br />
Der Fokus dieser Bibliothek von Apple Inc. liegt auf der vereinfachten Nutzung von<br />
WebGL mittels Javascript. Eine umfangreiche Sammlung von Javascript-Funktionen<br />
ermöglicht dabei die Initialisierung von WebGL, das Laden von Texturen, Shadern<br />
und 3D-Modellen (u.a. Wavefront OBJ.-Format) sowie das Rendern von Primitiven.<br />
J3DI nutzt für die WebGL-Initialisierung webgl-utils.<br />
• J3DIMath 19<br />
Durch die ebenfalls von Apple Inc. stammende J3DIMath-Bibliothek wird der<br />
Einsatz von Operationen der linearen Algebra im Kontext von WebGL deutlich<br />
erleichtert. Neben klassischen Matrix- und Vektorklassen inklusive der dazugehörigen<br />
Standardoperationen erlaubt J3DIMath die einfache Berechnung von Blickpunktund<br />
Projektionsmatrizen sowie das Übertragen von Matrizen und Vektoren in<br />
WebGL-konforme Float32-Arrays.<br />
16 http://code.google.com/p/dat-gui/, Zugriff am 27.9.2012<br />
http://code.google.com/p/webglsamples/source/browse/book/webgl-utils.js, Zugriff am<br />
28.9.2012<br />
18 http://code.google.com/p/webgl-code-storage/source/browse/trunk/samples/SpinningBox/<br />
resources/J3DI.js?r=2, Zugriff am 28.9.2012<br />
19 http://code.google.com/p/webgl-code-storage/source/browse/trunk/samples/SpinningBox/<br />
resources/J3DIMath.js?r=2, Zugriff am 28.9.2012<br />
93
5 Implementierung<br />
• stats.js 20<br />
Der Fokus dieser sehr kompakten Bibliothek liegt auf dem Messen und Visualisieren<br />
der Anwendungsgeschwindigkeit mittels einer Monitor-Klasse. Nach erfolgter<br />
Instanziierung wird über einen paarweisen Begin- und End-Aufruf die Performance<br />
gemessen (Angaben in Millisekunden-pro-Bild bzw. Bilder-pro-Sekunde).<br />
5.4.4 Struktur<br />
Wie in Abbildung 5.23 zu sehen ist, setzt sich das Webfrontend aus wenigen, funktional<br />
getrennten Modulen zusammen. Im Mittelpunkt stehen dabei insbesondere die beiden<br />
Betriebsmodi, da diese die zentrale Programmlogik beinhalten und demnach für Nutzereingaben,<br />
Datenverarbeitung sowie Präsentation zuständig sind. Zusätzlich existieren<br />
noch Module für den Import und die Archivierung, welche in ihrer Gesamtheit für die<br />
Bereitstellung der Daten verantwortlich sind. Der abgebildete Renderer ist, obgleich hier<br />
direkt an die Modi angebunden, von den restlichen Programmteilen unabhängig und<br />
könnte ebenso in einer anderen Webapplikation eingesetzt werden.<br />
Abb. 5.23: WebGLallery - Gesamtstruktur<br />
5.4.5 Module<br />
5.4.5.1 Import<br />
Im Mittelpunkt des Datenimports steht das Erzeugen und Initialisieren von Galerie-<br />
Instanzen auf Grundlage externer WGL-Dateien. Zunächst wird beim Programmstart<br />
durch das Import-Modul die serverseitige Ausführung eines PHP-Skripts angestoßen,<br />
welches alle verfügbare WGL-Dateien im zentralen Ressourcenverzeichnis ausfindig macht<br />
20 https://github.com/mrdoob/stats.js, Zugriff am 28.9.2012<br />
94
5.4 WebGLallery<br />
und deren Pfade gemeinsam in Form eines DOM-strukturierten Strings zurücksendet.<br />
Nachfolgend werden die Dateien über einen DOM-Parser eingelesen und darauf aufbauend<br />
die eigentlichen Galerien erzeugt. Zu diesem Zeitpunkt liegen innerhalb der Anwendung<br />
noch keine Bilder oder Korrespondenzfelder vor.<br />
5.4.5.2 Archiv<br />
Das zentrale Archiv-Modul ist direkt an den Datenimport angebunden und dient in diesem<br />
Sinne als Zwischenspeicher für importierte Galerien. Obwohl Erweiterungen während<br />
der Laufzeit möglich wären, findet die Konfiguration und Initialisierung nur einmalig<br />
zum Zeitpunkt des Programmstarts statt. Im Kontext der WebGLallery stellt es die<br />
Datengrundlage für die beiden nachfolgenden Betriebsmodi dar.<br />
5.4.5.3 Selektionsmodus<br />
Dieser Modus fungiert als Hauptmenü und wird direkt nach dem Programmstart aktiviert.<br />
Im Mittelpunkt steht dabei die Vorstellung aller im Archiv verfügbaren Galerien, sodass<br />
eine entsprechende Auswahl durch den Nutzer getr<strong>of</strong>fen werden kann. Die Visualisierung<br />
der Vorschau erfolgt kombiniert über WebGL und das Canvas-Element (HTML5), da<br />
neben den räumlich dargestellen Bildebenen auch ggf. verfügbare Textinformationen (z.B.<br />
Titel, Datum, Beschreibung) abgebildet werden müssen. Darüber hinaus wurden für eine<br />
zeitgemäße Präsentation weitere Programmfeatures, wie z.B. Gestenerkennung, tweenbasierte<br />
Animationen, unterschiedliche Shader sowie eine ansprechende Bedienoberfläche,<br />
integriert.<br />
5.4.5.4 Präsentationsmodus<br />
Im Präsentationsmodus, welcher unmittelbar nach der Selektion einer Galerie aktiviert<br />
wird, hat der Nutzer die Möglichkeit, sich sukzessive durch die einzelnen Bilder zu bewegen.<br />
Der Bildübergang geschieht hierbei fließend unter Anwendung verschiedener Blendingbzw.<br />
Morphing-Techniken, um harte Schnitte zu vermeiden und so der Metapher des<br />
„Bilder-Wanderns“ gerecht zu werden.<br />
Programmintern sind Galerien als Graphen strukturiert, wodurch sich der Bildwechsel<br />
effektiv als Traversierung zwischen den Graphknoten mittels unidirektionaler Kanten<br />
gestaltet.<br />
Den Kern des Präsentationsmodus bildet eine einfaches Zustandsmodell, bestehend aus<br />
einem Zustandskontext und einer Reihe von Programmzuständen. Wie in Abbildung 5.24<br />
zu sehen ist, handelt es sich um drei konkrete Zustandsklassen, welche zyklisch bei jedem<br />
Bildwechsel durchlaufen werden und die unterschiedlichen Teilschritte umsetzen.<br />
95
5 Implementierung<br />
Abb. 5.24: Präsentationsmodus - Zustandsmodell<br />
• StateLoad<br />
Über diesen Zustand werden das nachfolgende Bild sowie gegebenfalls vorhandene<br />
Datensatz-Texturen (siehe auch 5.2.2) sequentiell geladen.<br />
• StateBlend<br />
Der fließende, visuelle Übergang zwischen dem Start- und Zielbild wird über diesen<br />
Zustand realisiert.<br />
• StatePresentation<br />
Die eigentliche Präsentation des aktuellen Bildes sowie der darin enthaltenen Verbindungspunkte<br />
(„Hotspots“) erfolgt in diesem Zustand.<br />
5.4.5.5 Renderer<br />
Abb. 5.25: Renderer - Schematischer Aufbau<br />
96
5.4 WebGLallery<br />
Hauptaufgabe des Render-Moduls ist die Initialisierung und Verwaltung der Grafikausgabe<br />
innerhalb des Browsers. Neben zweidimensionalen Grafiken ist es dabei auch möglich,<br />
mittels WebGL dreidimensionale Inhalte in Echtzeit darzustellen. Intern existiert hierfür<br />
eine Vielzahl von Submodulen (siehe Abb. 5.25), über die die dafür notwendigen Schritte<br />
umgesetzt werden. Es folgt eine Auflistung der wichtigsten Bestandteile.<br />
• webGL_Mgr<br />
Das webGL_Mgr-Modul fungiert innerhalb der WegGLallery als zentrale Grafikschnittstelle.<br />
Es ist zuständig für unterschiedlichste Aufgaben wie z.B. die Initialisierung<br />
und Verwaltung von WebGL, das Vorbereiten der Grafikausgabe (u.a.<br />
Sicht-/Projektionsinitialisierung) sowie die eigentliche Bereitstellung von 2D/3D-<br />
Grafikroutinen. Darüber hinaus werden über spezialisierte Subkomponenten Shader<br />
und Texturen geladen, verwaltet und bereitgestellt.<br />
• webGL_ShaderLib<br />
Konzipiert als Subkomponente des webGL_Mgr-Moduls, dient dieses Modul als<br />
zentrale Shader-Bibliothek, über die Shader aus beliebigen internen und externen<br />
Quellen (z.B. HTML-embedded, externe Textdateien) geladen werden können. Erfolgreich<br />
erzeugte Shader werden dabei über eine unikate ID intern archiviert, sodass<br />
diese zu einem beliebigen Zeitpunkt wieder abrufbar sind.<br />
• webGL_Shader<br />
Das webGL_Shader-Modul bildet die Grundlage für die shader-basierte Grafikausgabe.<br />
Über darauf basierende Instanzen werden WebGL-Shader aus Strings erzeugt,<br />
kompiliert und gelinkt. Nachfolgend werden diese mittels der webGL_ShaderLib<br />
zwischengespeichert und bereitgestellt.<br />
• webGL_TextureMgr<br />
Hauptaufgabe dieses Moduls ist das Laden und Verwalten beliebiger WebGL-<br />
Texturen. Ein interner konfigurierbarer Cache, in dem Texturen chronologisch gespeichert<br />
werden, verhindert das unnötige wiederholte Laden. Der Zugriff erfolgt,<br />
analog zur webGL_ShaderLib, über programmweit unikate Texture-Identifikatoren.<br />
Das webGL_TextureMgr-Modul ist dem webGL_Mgr-Modul direkt untergeordnet.<br />
• webGL_Texture<br />
Der Fokus dieses Moduls liegt auf dem Erzeugen, Laden und Bereitstellen von<br />
ARGB-Farbtexturen aus externen Bilddateien.<br />
• webGL_TextureFloat<br />
Dieses Modul ermöglicht die Verwendung von 32-Bit Fließkommatexturen durch<br />
WebGL. Darüber hinaus ist es möglich, ARGB-kodierte Float-Texturen aus externen<br />
Bilddaten zu laden und in dass webGL-konformes Float-Format zu übertragen (siehe<br />
auch 5.2.3).<br />
97
5 Implementierung<br />
• webGL_VertexBuffer<br />
Das Speichern und Bereitstellen geometrischer Daten (u.a. Positionen, Normalen)<br />
erfolgt innerhalb Renderers über Instanzen dieser Klasse. Die Größe der Puffer sowie<br />
der einzelnen Elemente ist flexibel konfigurierbar.<br />
• webGL_IndexBuffer<br />
Die Indizierung von Geometriedaten erfolgt während des Zeichenvorgangs, wie es bei<br />
OpenGL und WebGL üblich ist, über spezialisierte Index-Puffer. Dies wird innerhalb<br />
des Renderers über Instanzen der Klasse webGL_IndexBuffer realisiert.<br />
5.4.6 Bildübergang & Morphing<br />
Wie bereits erwähnt, wird der Bildwechsel im Präsentationsmodus über den Zustand<br />
StateBlend realisiert. Bei dessen Initialisierung werden zunächst die Parameter und<br />
Texturen, die der aktuellen Graphkante zugeordnet sind, geladen und dem Renderer<br />
zugewiesen.<br />
Anschließend wird der Transitionsvorgang angestoßen, bei dem der Parameter t über<br />
die Hauptschleife in zeitlich konstanten Schritten von Null bis Eins inkrementiert wird.<br />
Obwohl t in erster Linie den programminternen Fortschritt des Übergangs repräsentiert,<br />
wird über ihn das Morphing des Ausgangs- und Zielbildes gesteuert.<br />
Im Gegensatz zum MGM erfolgt hier das Morphing mit all seinen Teilschritten mittels<br />
WebGL auf der Grafikkarte. Im Zuge der initialen Ausrichtungs- und Reskalierungsphase<br />
werden die Quellbilder zunächst über entsprechend transformierte und texturierte Ebenen<br />
in zwei temporäre Renderziele gezeichnet. Diese werden anschließend als Farbtexturen<br />
zusammen mit den Korrespondenzfeldern an die Grafikkarte gesendet. Auf Basis des<br />
Inverse-Mapping-Prinzips wird dort im Fragment-Shader das Morphing (siehe Listing<br />
5.4) durchgeführt.<br />
float dX = texture2D ( warpX , texCoord ).r;<br />
float dY = - texture2D ( warpY , texCoord ).r;<br />
float dInvX = texture2D ( warpInvX , texCoord ).r;<br />
float dInvY = - texture2D ( warpInvY , texCoord ).r;<br />
vec2 texCoord1 = texCoord + t* vec2 ( dInvX , dInvY );<br />
vec2 texCoord2 = texCoord + (1.0 - t)* vec2 (dX ,dY );<br />
vec4 col1 = texture2D ( sample0 , texCoord1 );<br />
vec4 col2 = texture2D ( sample1 , texCoord2 );<br />
gl_FragColor = (1.0 - t)* col1 +t* col2 ;<br />
Listing 5.4: Morphing - Auszug aus Fragment-Shader<br />
98
5.4 WebGLallery<br />
5.4.7 Benutzeroberfläche<br />
Die Benutzeroberfläche des Frontends ist entsprechend der beiden Betriebsmodi in zwei<br />
Bereiche untergliedert. Beide Bereiche weisen Gemeinsamkeiten hinsichtlich der visuellen<br />
Gestaltung auf, folgen jedoch aufgrund ihrer inhaltlichen Ausrichtung unterschiedlichen<br />
Bedien- und Darstellungsprinzipien.<br />
5.4.7.1 Selektionsmodus<br />
In seiner Funktion als Hauptmenü hat dieser Modus die Aufgabe, alle vorhandenen<br />
Bildergalerien möglichst übersichtlich zu präsentieren. Ziel ist es, dass der Anwender<br />
schnell und intuitiv darin navigieren kann und dabei nur ein Minimum an Eingaben<br />
tätigen muss.<br />
Gemäß der Abbildung 5.26 werden alle vorhandenen Galerien als aufgelöste Bilderstapel,<br />
die zur Kamera orientiert sind, im dreidimensionalen Raum dargestellt. Die momentan<br />
selektierte Galerie wird dabei stets im Vordergrund frontal zum Betrachter abgebildet,<br />
damit der aktuelle Fokus ersichtlich wird und der Nutzer einen ersten Eindruck über<br />
Inhalt gewinnen kann.<br />
Abb. 5.26: WebGLallery - Selektionsmodus<br />
Bei der Umsetzung der Navigation wurde darauf geachtet, dass möglichst wenig und<br />
zugleich intuitive Benutzeraktionen notwendig sind.<br />
Um die aktuelle Auswahl im Hauptmenü zu ändern, existieren zwei unterschiedliche Wege.<br />
Der Erste ist die Verwendung des Mausrads, durch das man sehr schnell und direkt hinund<br />
herschalten kann. Der andere Weg ist der Einsatz der integrierten Gestensteuerung,<br />
99
5 Implementierung<br />
bei der man mittels schneller horizontaler Mausbewegungen durch das Menü „blättert“.<br />
Das Öffnen einer Galerie erfolgt über einen Klick mit der linken Maustaste.<br />
5.4.7.2 Präsentationsmodus<br />
Abb. 5.27: WebGLallery - Präsentationsmodus<br />
Im Präsentationsmodus steht das sukzessive „Erkunden“ einer Galerie im Vordergrund,<br />
was sich auch im Aufbau der Benutzerschnittstelle widerspiegelt. Das Hauptaugenmerk<br />
liegt dabei, wie man in Abbildung 5.27 sehen kann, auf der bildschirmfüllenden Darstellung<br />
des aktuellen Bildes, wodurch möglichst viele Details erkennbar sein sollen.<br />
Weiße Quadrate, die bei fehlender Mausbewegung langsam ausblenden, repräsentieren<br />
Hotspots, durch die man mittels Anklicken zu einem verknüpften Bild gelangt. Über<br />
die beiden Schaltflächen in der linken unteren Ecke gelangt man zum vorherigen Bild<br />
(Pfeil-Symbol) bzw. ins Hauptmenü (Haus-Symbol).<br />
In der rechten oberen Ecke befindet sich das Kontrollmenü für den Bildübergang. Dieses<br />
zeichnet sich durch diverse Felder aus (siehe Abb. 5.28), über die Einfluss auf den Wechsel<br />
zwischen zwei Bildern genommen werden kann.<br />
Neben Listen zur Auswahl der verwendeten Shader und Felddaten existieren Steuerelemente,<br />
über die der Morphing-Prozess aktiv beeinflusst wird. Der Schalter „automorph“<br />
spielt dabei eine bedeutende Rolle, da über ihn der Bildwechsel angehalten werden kann.<br />
In Verbindung mit dem Slider-Feld „t“ ist es so möglich, manuell den Bildwechsel durchzuführen.<br />
Über die Liste „transition“ kann zusätzlich eine Transitionsfunktion ausgewählt<br />
werden, die vor dem Rendering auf den Wert „t“ angewendet wird. Das Zahlfeld „time“<br />
beschreibt die Skalierung der Zeit und beeinflusst somit die Ablaufgeschwindigkeit des<br />
Bildwechsels.<br />
100
5.5 Zusammenfassung<br />
Abb. 5.28: WebGLallery - Kontrollmenü<br />
5.5 Zusammenfassung<br />
Im Mittelpunkt dieses Kapitels stand die prototypische Umsetzung einer S<strong>of</strong>twarelösung,<br />
die sowohl die Komposition und Vorverarbeitung von Bildergalerien als auch deren<br />
interaktive Präsentation in modernen Webbrowsern ermöglicht. Ausgehend von der Gesamtstruktur,<br />
wurden zunächst die verwendeten Datenformate und Kodierungsverfahren<br />
vorgestellt und beschrieben. Danach wurden die Programmlösungen der beiden Teilbereiche<br />
getrennt in Hinblick auf Struktur, Komponenten und Funktionsweise dargelegt und<br />
erläutert.<br />
101
6 Evaluation<br />
Nachdem im vorangegangenen Kapitel die praktische Umsetzung des entwickelten S<strong>of</strong>twarekonzeptes<br />
vorgestellt und erörtert wurde, liegt der Schwerpunkt dieses Kapitels auf<br />
der Evaluation der verwendeten Interpolationsmethoden zur Realisierung des Morphings.<br />
6.1 Ziel<br />
Ziel der Evaluation ist es, die im MGM implementierten Verfahren anhand der interpolierten<br />
Zwischenbilder zu vergleichen und dadurch deren Eignung für die Generierung dichter<br />
Korrespondenzfelder zu ermitteln. Der Fokus der Betrachtung liegt dabei insbesondere<br />
auf der bilateralen Interpolation, da die Eigenschaften dieser Methode vergleichsweise<br />
unbekannt sind und dadurch der praktische Nutzen <strong>of</strong>fen ist.<br />
6.2 Vorgehensweise<br />
Zuerst wird eine dreidimensionale Szene mithilfe des Programms Autodesk 3ds Max<br />
erstellt und darin eine Kamerafahrt angelegt. Darauf aufbauend wird anschließend eine<br />
statische Bildsequenz gerendert, die sich sowohl aus den Ausgangs- und Zielbildern als<br />
auch den Zwischenansichten der Szene zusammensetzt. Zusätzlich wird über das P3P-<br />
Skript eine P3P-Datei erzeugt, die die dreidimensionalen Tiefenabbilder des Ausgangsund<br />
Zielbildes enthält.<br />
Im nächsten Teilschritt werden die Quellbilder mitsamt der P3P-Datei in den MGM<br />
geladen und dort unter Einbindung entsprechender Interpolationsverfahren für die Generierung<br />
der dichten Korrespondenzfelder verwendet. Letztere werden im Anschluss<br />
zusammen mit dem obligatorischen Bildergraph als Galerie in das Datenverzeichnis der<br />
WebGLallery exportiert.<br />
Nachdem im Frontend die Auswahl der entsprechenden Szene getätigt wurde, wird<br />
der Bildübergang im Präsentationsmodus initiiert und sogleich angehalten. Mittels der<br />
integrierten, batchfähigen Screenshot-Funktion werden die interpolierten Bilder für alle<br />
verfügbaren Feldsets als PNG-Datei exportiert (beginnend bei t = 0.0, Schrittweite 0.1).<br />
Für die eigentliche Evaluation wird nun eine Batchdatei geschrieben, in der neben dem<br />
102
6.3 Rahmenbedingungen<br />
verwendeten Vergleichsalgorithmus (in diesem Fall der SSIM-Index) auch die Pfade<br />
der vorgerenderten Referenzbilder sowie der exportierten Zwischenbilder zu hinterlegen<br />
sind. Wird nun der MGM zusammen mit dieser Batchdatei gestartet, führt dieser den<br />
Evaluationsprozess selbsständig durch und exportiert die Ergebnisse anschließend als<br />
CSV-Datei.<br />
6.3 Rahmenbedingungen<br />
• Die Evaluation fußt auf dem Vergleich statischer Referenzbilder und interpolierter<br />
Zwischenbilder.<br />
• Das Einbeziehen und Bewerten der bilateralen Interpolation (repräsentiert durch<br />
GaussColor) ist als obligatorisch anzusehen.<br />
• Jedes Verfahren wird mit und ohne Verwendung der Bildtiefe betrachtet (3D/2D)<br />
• Es sind pro Testlauf mindestens zwei weitere Interpolationsverfahren zu begutachten.<br />
• Die verwendeten Bilddatensätze werden über hierfür eigens erstellte Szenen innerhalb<br />
des Programms Autodesk 3ds Max erzeugt.<br />
• Animationen jeglicher Art (z.B. Kameraschwenks, Objektbewegungen) haben in der<br />
Szene linear zu erfolgen.<br />
• Für jede Szene wird mittels des P3P-Skriptes eine P3P-Datei erzeugt, die nur das<br />
Ausgangs- und Zielbild enthält.<br />
• Die Ground Truth für die Evaluation ergibt sich aus Ausgangs- und Zielbild sowie<br />
den vorgerenderten Zwischenbildern.<br />
• Die Schrittbreite für die Zwischenbilder beträgt 0.1, weshalb im Renderprogramm<br />
insgesamt elf Bilder zu erzeugen sind (Quellbilder sowie neun Zwischenbilder im<br />
Abstand von 0.1).<br />
• Es findet keine nachträgliche Korrektur der Korrespondenzfelder mittels des Optischen<br />
Flusses statt.<br />
• Um Verfälschungen zu vermeiden, wird kein adaptives Blending verwendet.<br />
• Die durch das Morphing erzeugten Zwischenbilder werden automatisiert aus der<br />
WebGLallery als PNG-Datei exportiert.<br />
• Die Evaluation erfolgt über das im MGM integrierte Evaluationswerkzeug auf Basis<br />
von Batchdateien.<br />
• Als Grundlage für den Ähnlichkeitsvergleich dient der SSIM-Index (Structural SIMilarity)<br />
1 , der mithilfe der IQA-Bibliothek 2 berechnet wird.<br />
1 https://ece.uwaterloo.ca/~z70wang/research/ssim/, Zugriff am 8.11.2012<br />
2 http://tdistler.com/iqa/, Zugriff am 5.10.2012<br />
103
6 Evaluation<br />
• Die Evaluationsergebnisse werden mittels aussagekräftiger Diagramme, die auf den<br />
erzeugten CSV-Dateien basieren, grafisch präsentiert.<br />
Es ist zu beachten, dass die interpolierten Bilder bei t = 0.0 und t = 1.0 ebenfalls mit der<br />
Ground Truth verglichen werden. Bedingt durch die Darstellung über WebGL (und dem<br />
impliziten Einsatz von Texturfiltern) kann es dabei zu kleineren Unterschieden kommen,<br />
die sich aus einer leichten Bildunschärfe ergeben.<br />
6.4 Szene 1<br />
6.4.1 Beschreibung<br />
Abb. 6.1: Szene 1 - Ausgangs- und Zielbild<br />
Im Mittelpunkt der ersten Szene steht eine Raumecke, in der zwei Wände mit rauer<br />
Mauerstruktur aufeinandertreffen. Der Untergrund besitzt eine grobe, schotterähnliche<br />
Textur mit häufigen Helligkeitsunterschieden. Vor der Ecke ist ein schwarzes Buch mit<br />
markanter, roter Schrift und einem hellen Titelbild zu sehen. Der Fokus der Kamera liegt<br />
permanent auf dem Buch, während sie langsam nach links schwenkt und sich gleichzeitig<br />
der Ecke nähert (siehe Abb. 6.1).<br />
Diese Szene wurde hinsichtlich ihres Aufbaus absichtlich einfach gehalten, um die Ausgabequalität<br />
der eingesetzten Verfahren bei günstigen Bedingungen zu untersuchen. Es<br />
gibt keine nennenswerten Tiefensprünge und auch das Problem der Verdeckung tritt hier<br />
bestenfalls minimal an den Buchrändern auf.<br />
Evaluationsdaten:<br />
• Datensatz: Eval1<br />
• Raumszene: Eval1_1.max<br />
• Ausgangsbild: eval1_01.jpg<br />
• Zielbild: eval1_11.jpg<br />
104
6.4 Szene 1<br />
• Bildtiefe: eval1.p3p<br />
• Referenzbilder: eval1_01.jpg,eval1_02.jpg,...,eval1_11.jpg<br />
6.4.2 Interpolationsverfahren<br />
• Baryzentrische Interpolation<br />
• Shepard-Interpolation<br />
• Gauß-Interpolation<br />
• Bilaterale Interpolation (GaussColor)<br />
6.4.3 Konfigurationsparameter<br />
• Importmodus: Default (für 2D), P3P (für 3D)<br />
• Anzahl Stützstellen k: 3 bzw. 17 (2 Durchläufe, siehe unten)<br />
• Glättungfenster: 2 % der Bilddiagonale<br />
• Segmentgröße: 6 % der Bilddiagonale<br />
6.4.4 Vorverarbeitung/Zwischenergebnisse<br />
In Abbildung 6.2 ist das erzeugte Dreiecksnetz für beide Bilder abgebildet. Die Verteilung<br />
der Knotenpunkte ist relativ ungleichmäßig, weshalb die Dreiecksdichte und -größe<br />
teilweise stark variiert. Die segmentierten Quellbilder, die u.a. die Grundlage für die<br />
bilaterale Interpolation bilden, sind in Abbildung 6.3 zu sehen.<br />
Wie man in Abbildung 6.4 sieht, geben die erzeugten Tiefenmasken dank des grobmaschigen<br />
Dreiecksnetzes und der ungleichmäßig verteilten Stützpunkte die Tiefe der Szene<br />
nur näherungsweise wieder.<br />
Abb. 6.2: Szene 1 - Triangulierung<br />
105
6 Evaluation<br />
Abb. 6.3: Szene 1 - Segmentierte Quellbilder<br />
Abb. 6.4: Szene 1 - Tiefenmasken<br />
6.4.5 Ergebnisse<br />
Abb. 6.5: Szene 1 - Interpolierte Bildsequenz (baryzentrisch, k = 3, 2D)<br />
Die Evaluation der Szene erfolgte in vier Durchgängen, wobei zwei davon immer paarweise<br />
in 2D und 3D (d.h. mit Bildtiefe) stattfanden. Zuerst wurden die Interpolationsverfahren<br />
unter Verwendung der drei nächsten Stützstellen durchgeführt (k = 3, siehe Beispiel 6.5).<br />
Die Ergebnisse aus dem Vergleich sieht man in den Diagrammen in Abbildung 6.6 und<br />
auszugsweise in der Tabelle 6.1. Als Nächstes wurden die Korrespondenzfelder auf Basis<br />
der siebzehn nächsten Stützstellen erzeugt (k = 17, siehe Abb. 6.7 und Tab. 6.2).<br />
106
t Baryzentrisch Shepard Gauss GaussColor<br />
0.0 0,983001 0,983001 0,983001 0,983001<br />
0.1 0,812332 0,809543 0,808056 0,806932<br />
0.5 0,600169 0,609468 0,605553 0,594486<br />
6.4 Szene 1<br />
0.0 0,976068 0,976068 0,976068 0,976068<br />
0.1 0,804233 0,801683 0,800152 0,799055<br />
0.5 0,595895 0,59413 0,599744 0,590314<br />
Tab. 6.1: Szene 1 - Ähnlichkeitswerte für k = 3 (Auszug, oben 2D, unten 3D)<br />
Abb. 6.6: Szene 1 - Ähnlichkeit zur Ground Truth für k = 3 (links 2D, rechts 3D)<br />
t Baryzentrisch Shepard Gauss GaussColor<br />
0.0 0,976068 0,976068 0.976068 0.976068<br />
0.1 0,801818 0,786357 0,794749 0,800047<br />
0.5 0,587984 0,583926 0,605097 0,592753<br />
0.0 0,976068 0,976068 0.976068 0.976068<br />
0.1 0,800697 0,798975 0,791001 0,790879<br />
0.5 0,58943 0,586423 0,589004 0,564053<br />
Tab. 6.2: Szene 1 - Ähnlichkeitswerte für k = 17 (Auszug, oben 2D, unten 3D)<br />
6.4.6 Auswertung<br />
Zuallererst fällt in Abbildung 6.6 auf, dass die Ähnlichkeit der interpolierten Zwischenbilder<br />
zur Ground Truth bis ca. t = 0.5 deutlich sink und danach wieder ansteigt. Dieses<br />
107
6 Evaluation<br />
Abb. 6.7: Szene 1 - Ähnlichkeit zur Ground Truth für k = 17 (links 2D, rechts 3D)<br />
Verhalten muss als „normal“ betrachtet werden, da bei t = 0.5 der optische Abstand<br />
des interpolierten Bildes zu den beiden Quellbildern am größten ist. Für alle weiteren<br />
Testszenen ist deshalb ein ähnliches Verhalten zu erwarten.<br />
Man sieht in Abbildung 6.6, dass für k = 3 in dieser Szene keine größeren Unterschiede<br />
aufgetreten sind. Alle Verfahren liegen nah beieinander, was bedeutet, dass die Korrespondenzfelder<br />
von ähnlicher Güte sind. Die Hinzunahme der Bildtiefe als Interpolationsfaktor<br />
führt zu keiner nennenswerten Veränderung.<br />
Für k = 17 ändert sich dieses Bild geringfügig. Ohne die Einbindung der Bildtiefe liegen<br />
die Verfahren weiterhin nah beieinander. Sobald die Bildtiefe mit einbezogen wird,<br />
schneidet das GausColor-Verfahren (bilateral) etwas schlechter ab.<br />
Abb. 6.8: Szene 1 - Bildausschnitt bei baryzentrischer (links) und bilateraler Interpolation<br />
(rechts) für t = 0.5<br />
Nachträglich muss an dieser Stelle erwähnt werden, dass die Messergebnisse nicht unbedingt<br />
dem subjektiven Eindruck entsprechen. Sowohl die Rotation als auch der Zoom<br />
108
6.5 Szene 2<br />
wirken vergleichsweise authentisch, ohne dass störende Sprünge auftreten. Die besten<br />
Ergebnisse werden mit der baryzentrische Interpolation erreicht , da hier einerseits nur<br />
wenig Artefakte auftreten und andererseits das Bild relativ scharf bleibt. Als Beweis für<br />
diese Aussage zeigt Abbildung 6.8 einen Ausschnitt für den Zeitpunkt t = 0.5, jeweils<br />
für die baryzentrische Interpolation (k = 3, 2D) und die bilaterale Interpolation (k = 17,<br />
3D).<br />
6.5 Szene 2<br />
6.5.1 Beschreibung<br />
Abb. 6.9: Szene 2 - Ausgangs- und Zielbild<br />
Gemäß der Abbildung 6.9 bilden in dieser Szene drei verschiedenfarbige Säulen, die<br />
ungleichmäßig vor einer hellen Wand aufgestellt sind, den Mittelpunkt. Analog zur ersten<br />
Szene ist auch hier der schotterähnliche Untergrund relativ dunkel gehalten. Die Säulen<br />
besitzen sehr markante Farben und Muster, durch die sie sich deutlich vom Hintergrund<br />
abheben können. Die holzfarbene sowie die blaue Säule befinden sich direkt vor der Wand,<br />
während die grüne Säule einen größeren Abstand zu dieser aufweist.<br />
Der Fokus der Kamera, die sich zu Beginn im linken Teil der Szene befindet, liegt in der<br />
Mitte zwischen den hinteren Säulen . Während der Sequenz schwenkt die Kamera auf die<br />
rechte Seite und entfernt sich dabei geringfügig. In der Endposition blickt der Betrachter<br />
frontal auf die Wand.<br />
Um den Einfluss der Farbdifferenz bei der bilateralen Interpolation evaluieren zu können,<br />
wurden in diese Szene bewusst starke Helligkeits- und Farbkontraste eingefügt. Zusätzlich<br />
sind in der Szene deutlich größere Tiefenunterschiede vorhanden, die sich insbesondere<br />
durch die verteilten Säulen ergeben.<br />
Evaluationsdaten:<br />
• Datensatz: Eval2<br />
• Raumszene: Eval2_1.max<br />
109
6 Evaluation<br />
• Ausgangsbild: eval2_01.jpg<br />
• Zielbild: eval2_11.jpg<br />
• Bildtiefe: eval2.p3p<br />
• Referenzbilder: eval2_01.jpg,eval2_02.jpg,...,eval2_11.jpg<br />
6.5.2 Interpolationsverfahren<br />
• Baryzentrische Interpolation<br />
• Shepard-Interpolation<br />
• Gauß-Interpolation<br />
• Bilaterale Interpolation (GaussColor)<br />
6.5.3 Konfigurationsparameter<br />
• Importmodus: Default (für 2D), P3P (für 3D)<br />
• Anzahl Stützstellen k: 3 bzw. 17 (2 Durchläufe, siehe unten)<br />
• Glättungfenster: 1 % der Bilddiagonale<br />
• Segmentgröße: 2 % der Bilddiagonale<br />
6.5.4 Vorverarbeitung/Zwischenergebnisse<br />
Abbildung 6.10 zeigt das Dreicksnetz im Bildraum, welches eine gute Knotendichte und<br />
-verteilung aufweist. In Abbildung 6.11 sieht man die segmentierten Quellbilder, die bei<br />
der Feldgenerierung verwendet wurden. Dank des dichten Dreiecksnetzes konnten relativ<br />
genaue Tiefenmasken erstellt werden, die die Szene gut wiedergeben (siehe Abb. 6.12).<br />
Abb. 6.10: Szene 2 - Triangulierung<br />
110
6.5 Szene 2<br />
Abb. 6.11: Szene 2 - Segmentierte Quellbilder<br />
Abb. 6.12: Szene 2 - Tiefenmasken<br />
6.5.5 Ergebnisse<br />
Abb. 6.13: Szene 2 - Interpolierte Bildsequenz (baryzentrisch, k = 3, 2D)<br />
Wie auch bei der ersten Szene erfolgte die Evaluation in insgesamt vier Durchläufen.<br />
Zuerst wurden die Daten für k = 3 einmal mit und einmal ohne Einbindungen der<br />
Bildtiefe erzeugt. Die Ergebnisse sieht man in Abbildung 6.14 und Tabelle 6.3.<br />
111
6 Evaluation<br />
t Baryzentrisch Shepard Gauss GaussColor<br />
0.0 0,965705 0,965705 0,965705 0,965705<br />
0.1 0,877232 0,871838 0,868243 0,865553<br />
0.5 0,702028 0,66823 0,6571 0,646331<br />
0.0 0,965705 0,965705 0,965705 0,965705<br />
0.1 0,867588 0,856429 0,858471 0,853692<br />
0.5 0,6745 0,626185 0,627698 0,609914<br />
Tab. 6.3: Szene 2 - Ähnlichkeitswerte für k = 3 (Auszug, oben 2D, unten 3D)<br />
Abb. 6.14: Szene 2 - Ähnlichkeit zur Ground Truth für k = 3 (links 2D, rechts 3D)<br />
Danach wurde der komplette Vorgang für k = 17 wiederholt, dessen Ergebnisse in Tabelle<br />
6.4 (Auszug) und in Abbildung 6.15 zu sehen sind.<br />
t Baryzentrisch Shepard Gauss GaussColor<br />
0.0 0,956234 0,956234 0,956234 0,956234<br />
0.1 0,866723 0,855476 0,863351 0,856391<br />
0.5 0,68014 0,630538 0,6476 0,628575<br />
0.0 0,956234 0,956234 0,956234 0,956234<br />
0.1 0,861877 0,854167 0,85701 0,843987<br />
0.5 0,666371 0,628236 0,618009 0,58405<br />
Tab. 6.4: Szene 2 - Ähnlichkeitswerte bei k = 17 (Auszug, oben 2D, unten 3D)<br />
112
6.5 Szene 2<br />
Abb. 6.15: Szene 2 - Ähnlichkeit zur Ground Truth für k = 17 (links 2D, rechts 3D)<br />
6.5.6 Auswertung<br />
Gemäß der Diagramme in den Abbildungen 6.14 und 6.15 kann sich die baryzentrische<br />
Interpolation deutlich von den anderen Verfahren absetzen. Inbesondere im 2D-Fall<br />
werden hiermit die besten Ergebnisse erzielt.<br />
Die anderen Verfahren liegen dagegen in fast allen Durchläufen gleichauf (mit minimalen<br />
Abweichungen). Die bilaterale Interpolation liegt in allen Fällen unter den anderen<br />
Verfahren und fällt vorallem im 3D-Fall bei k = 17 deutlich ab.<br />
Abb. 6.16: Szene 2 - Artefaktbildung bei baryzentrischer und<br />
bilateraler Interpolation für t = 0.5<br />
Obwohl die SSIM-Werte deutlich über denen der ersten Szene liegen, muss an dieser Stelle<br />
darauf hingewiesen werden, dass die Artefaktbildung (v.a. Ghosting) hier deutlich stärker<br />
ausfällt und den subjektiven Gesamteindruck mindert. Besonders die grüne Säule im<br />
Vordergrund, an deren Rändern die Tiefendifferenz am größten ist, erweist sich während<br />
des Morphings als problematisch (siehe Abb. 6.16).<br />
113
6 Evaluation<br />
6.6 Szene 3<br />
6.6.1 Beschreibung<br />
Abb. 6.17: Szene 3 - Ausgangs- und Zielbild<br />
Die Szene ähnelt vom Aufbau her der vorherigen Szene, da auch hier eine helle Wand<br />
sowie ein dunkler Boden die räumliche Grundlage bilden. Vor der Wand stehen drei frei<br />
verteilte Quader mit unterschiedlichen Farben und Strukturen. Diese Objekte wurden in<br />
verschieden großen Abständen zwischen Blickpunkt und Hintergrund positioniert, damit<br />
so ein möglichst guter Tiefeneffekt entsteht. Die Kamera fokussiert zu Beginn frontal die<br />
Wand und bewegt sich während der Animation nach rechts (siehe Abb.6.17), ohne dass<br />
es dabei zu einer Rotation kommt.<br />
Neben der Farbdifferenz steht bei diesem Testlauf vorallem die Wirkung der Tiefenunterschiede<br />
im Fokus der Betrachtung. Die drei farbigen Quader sind aus diesem Grund in<br />
unterschiedlichen großen Abständen zur Wand aufgestellt. Durch die Seitwärtsbewegung<br />
der Kamera soll zusätzlich der Aspekt der Tiefenparallaxe, durch den Objekte im Vordergrund<br />
eine größere Translation im Bild aufweisen als Objekte im Hintergrund, betrachtet<br />
werden.<br />
Evaluationsdaten:<br />
• Datensatz: Eval3<br />
• Raumszene: Eval3_1.max<br />
• Ausgangsbild: eval3_01.jpg<br />
• Zielbild: eval3_11.jpg<br />
• Bildtiefe: eval3.p3p<br />
• Referenzbilder: eval3_01.jpg,eval3_02.jpg,...,eval3_11.jpg<br />
6.6.2 Interpolationsverfahren<br />
• Baryzentrische Interpolation<br />
114
6.6 Szene 3<br />
• Gauß-Interpolation<br />
• Bilaterale Interpolation (GaussColor)<br />
6.6.3 Konfigurationsparameter<br />
• Importmodus: Default (für 2D), P3P (für 3D)<br />
• Anzahl Stützstellen k: 3, 23<br />
• Glättungfenster: 1 % der Bilddiagonale<br />
• Segmentgröße: 1 % der Bilddiagonale<br />
6.6.4 Vorverarbeitung/Zwischenergebnisse<br />
In Abbildung 6.18 ist das generierte Dreiecksnetz abgebildet, das eine sehr gute Dichte<br />
aufweist. In Bild 6.19 sind die gefilterten und segmentierten Quellbilder zu sehen, wie sie<br />
auch bei der Feldinterpolation verwendet wurden.<br />
Abb. 6.18: Szene 2 - Triangulierung<br />
Abb. 6.19: Szene 3 - Segmentierte Quellbilder<br />
Infolge der hohen Korrespondenzdichte konnten sehr detaillierte und klar konturierte<br />
Tiefenmasken von der Szene erzeugt werden (siehe Abb. 6.20).<br />
115
6 Evaluation<br />
Abb. 6.20: Szene 3 - Tiefenmasken<br />
6.6.5 Ergebnisse<br />
Abb. 6.21: Szene 3 - Interpolierte Bildsequenz (baryzentrisch, k = 3, 2D)<br />
Zunächst wurden die Verfahren für k = 3 mit und ohne Bildtiefe evaluiert, sodass ein<br />
direkter Vergleich zwischen der baryzentrischen Interpolation (siehe Beispiel Abb.6.21)<br />
und den anderen Methoden möglich wird. Die Ergebnisse sieht man in Abbildung 6.5<br />
sowie Tabelle 6.5.<br />
t Baryzentrisch Gauss GaussColor<br />
0.0 0,969989 0,969989 0,969989<br />
0.1 0,90197 0,896877 0,89661<br />
0.5 0,868076 0,866885 0,865563<br />
0.0 0,969989 0,969989 0,969989<br />
0.1 0,899354 0,89834 0,896751<br />
0.5 0,871744 0,862416 0,860893<br />
Tab. 6.5: Szene 3 - Ähnlichkeitswerte für k = 3 (Auszug, oben 2D, unten 3D)<br />
Um noch aussagekräftigere Ergebnisse zu erzielen, wurde der Prozess für k = 23 wiederholt.<br />
Die dazugehörigen Resultate findet man in der Abbildung 6.23 und der Tabelle 6.6.<br />
116
6.6 Szene 3<br />
Abb. 6.22: Szene 3 - Ähnlichkeit zur Ground Truth für k = 3 (links 2D, rechts 3D)<br />
t Baryzentrisch Gauss GaussColor<br />
0.0 0,957986 0,957986 0,957986<br />
0.1 0,897953 0,895705 0,890817<br />
0.5 0,83978 0,837869 0,844425<br />
0.0 0,957986 0,957986 0,957986<br />
0.1 0,89209 0,891212 0,888715<br />
0.5 0,866887 0,823875 0,841367<br />
Tab. 6.6: Szene 3 - Ähnlichkeitswerte bei k = 23 (Auszug, oben 2D, unten 3D)<br />
Abb. 6.23: Szene 3 - Ähnlichkeit zur Ground Truth für k = 23 (links 2D, rechts 3D)<br />
117
6 Evaluation<br />
6.6.6 Auswertung<br />
Anhand der Diagramme sieht man, dass eine Auswertung hinsichtlich der Ähnlichkeit<br />
nur schwer möglich ist. Selbst bei der baryzentrischen Interpolation, die im Allgemeinen<br />
stabil interpoliert, lässt sich keine abschließende Bewertung abgeben.<br />
Auffallend ist zudem, dass die Ähnlichkeitswerte sehr hoch ausfallen und sich auch<br />
kein klassisches Gefälle („Tal“) ergibt. Stattdessen fällt zu Beginn bei den meisten<br />
Interpolationsverfahren die Ähnlichkeit sehr stark und stagniert danach auf einem hohen<br />
Niveau.<br />
Abb. 6.24: Szene 3 - Artefaktbildung bei t = 0.5 (links baryzentrisch, rechts bilateral)<br />
Wie auch bei der vorherigen Szene kam es bei diesem Testlauf zu auffälligen Artefakten,<br />
die sich aufgrund ihrer verhältnismäßig geringen Größe jedoch nicht in den Ergebnissen<br />
widerspiegeln. Vorallem der holzfarbene Block im Vordergrund weist während des Morphings<br />
größere Bildfehler (Ghosting) auf, die den subjektiven Gesamteindruck deutlich<br />
verschlechtern. Zur Veranschaulichung sieht man in Abbildung 6.24 das interpolierte Bild<br />
für t = 0.5 (baryzentrische und bilaterale Interpolation, k = 23, 2D).<br />
6.7 Problemanalyse - Bilaterale Interpolation<br />
Die Evaluation hat gezeigt, dass der Einsatz der bilateralen Interpolation im Vergleich zu<br />
anderen Verfahren nur einen geringen bzw. keinen Vorteil mit sich bringt. An dieser Stelle<br />
sollen hierfür mögliche Ursachen (technische, konzeptionelle) untersucht und diskutiert<br />
werden. Als Grundlage dient die dritte Testszene, da in dieser die aufgetretenen Artefakte<br />
am schwerwiegendsten waren.<br />
Folgende Aspekte werden in diesem Kontext betrachtet:<br />
• Inhomogenes Warping<br />
• Bilaterale Gewichtung<br />
• Inverse Mapping<br />
118
6.7 Problemanalyse - Bilaterale Interpolation<br />
6.7.1 Inhomogenes Warping<br />
Aufgrund der großen Bildtiefe und der damit einhergehenden Tiefenparallaxe, scheint<br />
das wesentliche Problem der dritten Szene die inhomogene Translation der Korrespondenzpunkte<br />
zu sein. Die Artefaktbildung fand dabei insbesondere am Rand des vorderen<br />
Blocks statt, wo der Tiefenunterschied zum Hintergrund am größten war. Wie man in<br />
Abbildung 6.25 erkennen kann, variieren die Korrespondenzvektoren sehr stark in ihrer<br />
Länge.<br />
Abb. 6.25: Szene 3 - Ausschnitt aus Ausgangs- und Zielbild, Korrespondenzen<br />
mit variierenden Offset-Vektoren (markiert durch Farbe)<br />
Für die Korrespondenzpunkte selbst ist dies kein Problem, denn diese sind naturgemäß<br />
in beiden Bildern definiert und sichtbar. Problematisch wird es mit den Bildteilen,<br />
die in nur einem der beiden Quellbilder sichtbar sind. Über die Gauß- bzw. Shepard-<br />
Interpolation bekommt man an diesen Stellen Verzerrungen, da diese Verfahren allein<br />
von der räumlichen Distanz zwischen den Punkten ausgehen. Die bilaterale Interpolation<br />
nutzt dagegen zusätzlich die Farbe und Tiefe im Bild, um eben diese Verzerrungen zu<br />
umgehen. An diesem Punkt ergibt sich das Problem der bilateralen Gewichtung.<br />
6.7.2 Bilaterale Gewichtung<br />
Für die Berechnung der Interpolationsgewichte an einem Punkt werden zunächst anhand<br />
der Farb- und Tiefendifferenzen Teilgewichte berechnet, sodass Stützstellen mit<br />
gleicher oder ähnlicher Farbe/Tiefe einen großen Einfluss bekommen. Durch Einbindung<br />
der räumlichen Distanz wird dafür gesorgt, dass weit entfernte Stützstellen insgesamt<br />
geringer gewichtet werden als solche, die in direkter Nachbarschaft liegen. Für die meisten<br />
Anwendungsszenarien ist diese Form der Feldinterpolation plausibel und funktional.<br />
Sobald jedoch Verdeckungen in den Quellbildern auftreten, kann es zur Fehlgewichtung<br />
der Stützstellen kommen. Das Problem liegt darin begründet, dass auch potentiell verdeckte<br />
Bereiche im Korrespondenzfeld interpoliert werden. Somit bekommt auch jeder<br />
119
6 Evaluation<br />
Bildpunkt, der im Zielbild nicht existiert, einen Translationsvektor zugewiesen und kann<br />
dadurch grundsätzlich abgebildet werden. In Abbildung 6.26 ist diese Situation illustriert.<br />
Abb. 6.26: Szene 3 - Interpolierte Feldvektoren im verdeckten Bildbereich (grün)<br />
6.7.3 Inverse Mapping<br />
Die prototypische Implementierung realisiert das Warping über das Inverse Mapping, weil<br />
das sog. Forward Mapping infolge von Ungenauigkeiten tendenziell zur Lückenbildung<br />
neigt. In diesem Fall wird also pro Bildpunkt im Zielbild ein Translationsvektor über das<br />
inverse Korrespondenzfeld bezogen und darüber das Ausgangsbild ausgelesen.<br />
Abb. 6.27: Szene 3 - Über Inverse-Mapping gewarpte Quellbilder für t = 1.0<br />
Obwohl dieser Ansatz der Bessere ist und auch von vielen anderen Morphing-Lösungen<br />
verwendet wird, kann es in Kombination mit fehlerhaft berechneten Translationsvektoren<br />
zur Artefaktbildung kommen. Ein Beispiel dafür sieht man in Abbildung 6.27, wo das<br />
Ausgangs- und Zielbild jeweils durch Warping der entgegensetzen Bilder berechnet wurde.<br />
Der Grund für die Verzerrungen und Risse sind fehlerhafte Translationsvektoren im<br />
Bereich der Verdeckung. Diese ergeben sich aus der geringen räumlichen und farblichen<br />
Distanz zu den Stützpunkten im Hintergrund, was zu einer Adaption der Verschiebung<br />
120
6.8 Gesamtauswertung<br />
führt. Da jedoch bereits die Vektoren des roten Blocks auf die gleichen Bildbereiche<br />
verweisen, ist Surjektivität die Folge. Durch Anwendung der inversen Korrespondenzfelder<br />
tritt nun der umgekehrte Fall ein. Es erfolgt eine injektive Abbildung, da für mehrere<br />
Bildpunkte das Ausgangsbild an derselben Stelle ausgelesen wird.<br />
6.8 Gesamtauswertung<br />
Die Evaluation der drei Testszenen hat gezeigt, dass Morphing zwischen zwei Bildern<br />
mithilfe dichter Korrespondenzfelder realisierbar ist und je nach Szenario sehr ansprechende<br />
Ergebnisse möglich sind. Einige Faktoren haben sich dabei als maßgebend für die<br />
finale Bildqualität erwiesen.<br />
• Möglichst viele Korrespondenzen<br />
• Möglichst gleichmäßig verteilte Korrespondenzpunkte<br />
• Möglichst homogene Bildtransformation<br />
• Möglichst keine Tiefenunterschiede (Idealfall: Ebene)<br />
• Möglichst keine Ver-/Aufdeckung von Bildteilen<br />
Je mehr eine Szene die genannten Faktoren beachtet, umso wahrscheinlicher ist ein<br />
optisch ansprechender Übergang zwischen dem Ausgangs- und Zielbild.<br />
Ein weiterer Aspekt, der zugleich Schwerpunkt der Evaluation war, sind die verwendeten<br />
Interpolationsmethoden und deren Eigenschaften (siehe Tabelle 6.7).<br />
Baryzentrisch Shepard Gauss GaussColor<br />
Qualität sehr gut bis gut bis gut bis gut bis schlecht<br />
mittelmäßig schlecht schlecht<br />
Flexibilität gering, strukturgebunden<br />
hoch hoch hoch<br />
Anzahl Stützstellen<br />
3 >= 1 >= 1 >= 1<br />
k<br />
Gewichtung Baryzentrische<br />
Koordinaten<br />
Distanz Distanz Distanz, Farbe,<br />
Tiefe<br />
Aufwand sehr gering gering gering hoch<br />
Formtreue gut bis mittelmäßimäßimäßig<br />
gut bis mittel-<br />
gut bis mittel-<br />
sehr gut bis<br />
mittelmäßig<br />
Verdeckung nein nein nein nein<br />
Tab. 6.7: Interpolationsmethoden - Vergleich<br />
121
6 Evaluation<br />
Aus der Übersicht ergibt sich der Schluss, dass von allen Methoden die baryzentrische<br />
Interpolation zu favorisieren ist. Speziell bei affinen Transformationen in der Ebene erhält<br />
man damit die besten Ergebnisse, vorallem wenn die oben genannten Faktoren beachtet<br />
wurden. Die Gauß- und Shepard-Interpolation sind gleichermaßen für die Feldinterpolation<br />
geeignet, nutzen jedoch allein die Distanzmetrik als Gewichtungsgrundlage und tendieren<br />
deshalb zu radialen Strukturen (äußert sich u.a. in Bildunschärfe und -zittern).<br />
Die im Kontext dieser Arbeit betrachtete bilaterale Interpolation muss als qualitativ<br />
gleichwertig zu den anderen strukturlosen Verfahren betrachtet werden. Zwar bleiben bei<br />
einfachen affinen Transformationen die Konturen und Formen besser erhalten, jedoch<br />
ergeben sich aufgrund der räumlichen Distanzmetrik die gleichen Probleme wie z.B. bei<br />
der Gauß-Interpolation. Darüber hinaus ist der Umgang mit verdeckten Bildbereichen<br />
ebenso problematisch wie bei anderen Ansätzen (siehe Problemanalyse 6.7).<br />
Insgesamt betrachtet ist die bilaterale Interpolation für die Berechnung eines dichten<br />
Korrespondenzfeldes genauso geeignet wie andere Verfahren, sodass sich durch deren<br />
Einsatz keine signifikanten Vor- oder Nachteile ergeben.<br />
6.9 Zusammenfassung<br />
Der Schwerpunkt dieses Kapitels lag auf der Evaluation der prototypischen Implementierung,<br />
wobei die dabei eingesetzten Interpolationsverfahren im Mittelpunkt standen.<br />
Beginnend mit einer allgemeinen Einführung und der Vorstellung der Rahmenbedingung,<br />
wurden nachfolgend verschiedene Beispielszenarien mitsamt der dazugehörigen<br />
Ergebnissdaten vorstellt und erläutert. Eine Problemanalyse sowie die anschließende<br />
Gesamtauswertung formten den Abschluss dieses Kapitels.<br />
122
7 Ergebnisse und Ausblick<br />
Gegenstand der vorliegenden Arbeit war die Konzeption und Implementierung einer<br />
S<strong>of</strong>twarelösung, die das Generieren und Präsentieren von Bildergalerien innerhalb einer<br />
webbasierten Umgebung ermöglicht. Eine zentrale Anforderung war dabei der Einsatz von<br />
bildbasierten Morphing-Techniken, durch die ein möglichst fließender Wechsel zwischen<br />
den Bildern realisiert werden sollte.<br />
Durch die Verwendung von dichten Korrespondenzfeldern zur Bildtransformation ergab<br />
sich die Notwendigkeit, entsprechende Interpolationsverfahren zu recherchieren, zu untersuchen<br />
und zu integrieren. Neben bekannten Ansätzen, die auf Basis der räumlichen<br />
Distanz und Struktur arbeiten, sollten weitere Ansätze implementiert werden, die darüber<br />
hinaus Farb- und Tiefenunterschiede bei der Interpolation beachten.<br />
7.1 Ergebnisse<br />
Durch die entwickelte Programmlösung ist man in der Lage, auf Basis einer beliebigen<br />
Bildmenge mithilfe der MGM-Anwendung Bildergalerien mitsamt dazugehöriger<br />
Morphing-Daten zu erzeugen und über das WebGLallery-Frontend in Echtzeit darzustellen.<br />
Speziell was den Aspekt des Morphings angeht, hat man hier auf vielfältige<br />
Weise die Möglichkeit, sowohl den Vorverarbeitungs- als auch den Darstellungsprozess zu<br />
beeinflussen. Um eine bessere Vorstellung zu bekommen, was die Stärken und Schwächen<br />
der prototypischen Implementierung sind, wurde diese in Tabelle 7.1 mit den im Vorfeld<br />
untersuchten Forschungsarbeiten verglichen.<br />
Die Evaluation im letzten Kapitel hat gezeigt, dass das angestrebte Morphing mittels<br />
dichter Korrespondenzfelder realisierbar ist und dabei durchaus optisch ansprechende<br />
Ergebnisse möglich sind. Die dabei für die Feldgenerierung verwendeten Verfahren spielen<br />
eine entscheidende Rolle, was die Güte der Feldvektoren und der daraus resultierende<br />
Bildqualität betrifft.<br />
Die favorisierte bilaterale Interpolation, die im Zuge der Konzeption vorgestellt und<br />
erläutert wurde, konnte sich diesbezüglich nicht gegen etablierte Verfahren wie der<br />
baryzentrische Interpolation durchsetzen.<br />
123
7 Ergebnisse und Ausblick<br />
Image Morping for<br />
Space-Time Interpolation<br />
[SM07]<br />
Silhouette-Aware<br />
Warping for Image-<br />
Based Rendering<br />
[CSD11]<br />
Autoren Stich, Magnor Chaurasia, Sorkine,<br />
Drettakis<br />
Photo Tourism: Exploring<br />
Photo Collections<br />
in 3D [ea06]<br />
Snavely, Seitz, Szeliski Schubert<br />
Merkmalsbasiertes<br />
Morphing mittels<br />
dichter Korrespondenzfelder<br />
nein ja, Kamera, Geometrie ja, Kamera, Geometrie optional, Kamera, Geometrie<br />
Quellbilder beliebig kalibriert beliebig beliebig<br />
Szenenrekonstr.<br />
Prozess sequentiell, einfach sequentiell, komplex sequentiell, komplex sequentiell, mehrstufig<br />
Bilder pro 2 >= 4 >= 2 2<br />
Übergang<br />
Warping über Flussfelder, Inverse<br />
Mapping<br />
blickpunktabhängig, interpolierte<br />
Projektion,<br />
kein Warping, sondern<br />
blickpunktabhängiges<br />
Forward-Mapping Mesh-Rendering<br />
Blending einfach, adaptives Blending<br />
über Fehlermaske Fehlerwertberechnung, Polygon-Blending,<br />
komplex, Raycasting, einfach, lineares<br />
Texture-Blending distanzabhängig<br />
Verdeckungtolerangig<br />
von Szene)<br />
gering sehr hoch durchschnittlich (abhän-<br />
Blickpunkt festgelegt (interpoliert) variabel, abhängig von variabel, Bildsynthese<br />
Datensatz<br />
bei Bildpaaren<br />
Erhaltung von Kontu-<br />
flexibel, beliebige Bilder,<br />
echte Sichtinterpolation<br />
Vorteile flexibel, beliebige Bilder,<br />
einfach, Refinement<br />
über Optischen Fluss<br />
Nachteile ohne Bildtiefe, Verdeckung<br />
kritisch, nutzt nur<br />
Blending<br />
ren, Tiefenschichten,<br />
Verdeckungen möglich<br />
aufwendige Bildakquisition,<br />
manuelle Konturmarkierung,<br />
komplex<br />
Konturen werden ignoriert,<br />
Verdeckung kritisch,<br />
kein Warping<br />
mittels dichter Korrespondenzfelder,<br />
Inverse<br />
Mapping<br />
einfach, optional adaptiv<br />
und Transition von<br />
t<br />
gering<br />
festgelegt (interpoliert)<br />
flexibel, beliebige Bilder,<br />
automatisiert, adapatives<br />
Blending<br />
Verdeckung kritisch,<br />
nur eine Warping-<br />
Ebene<br />
Tab. 7.1: Vergleich - Forschungsarbeiten<br />
124
7.2 Alternativer Lösungsansatz<br />
Insgesamt betrachtet wurde das Ziel dieser Arbeit, eine voll funktionsfähige S<strong>of</strong>twarelösung<br />
zur Visualisierung von Bildergalerien unter Einbindung von Morphing zu entwickeln,<br />
erreicht. Der Forderung, während des Bildübergangs Farb- und Tiefenunterschiede zu<br />
berücksichtigen und korrekt darzustellen, konnte aus unterschiedlichen Gründen (siehe<br />
Evaluationsauswertung 6.8) nicht vollständig nachgekommen werden.<br />
An diesem Punkt lässt diese Arbeit Raum für die Formulierung und Umsetzung vielfältiger<br />
Optimierungsansätze, die sowohl von konzeptioneller als auch technischer Natur sein<br />
können.<br />
7.2 Alternativer Lösungsansatz<br />
Die Evaluation und die nachfolgende Problemanalyse hatten gezeigt, dass der Einsatz<br />
einer farb- und tiefensensitiven Feldinterpolation für das Morphing unter Beachtung<br />
tiefenräumlicher Aspekte (d.h. Verdeckung, Tiefenparallaxe) nicht hinreichend ist.<br />
Einen erweiterten Lösungsansatz stellt das Multilayer-Morphing dar. Bei diesem wird die<br />
Bildsynthese nicht direkt in der Bildebene realisiert, sondern über einzelne, tiefensortierte<br />
Segmentebenen. Der grundlegende Ansatz gestaltet sich dabei wie folgt:<br />
1. Die Quellbilder werden großflächig segmentiert und die so entstandenen Segmentebenen<br />
im Ausgangs- und Zielbild als Ebenenpaare organisiert.<br />
2. Für jedes Ebenenpaar wird separat eine Feature-und Korrespondenzsuche durchgeführt<br />
und anhand der in dieser Arbeit besprochenen Interpolationsverfahren dichte<br />
Korrespondenzfelder erzeugt.<br />
3. Zusätzlich werden pro Ebenenpaar auf Basis des orginalen Ausgangs- und Zielbildes<br />
temporäre Quellbilder erzeugt, die nur die durch die Segmentierung erfassten<br />
Bildbereiche beinhalten.<br />
4. Es findet auf Basis der Bildtiefe eine Sortierung der Segmentebenen nach dem<br />
Back-to-Front-Prinzip statt.<br />
5. Das Morphing wird pro Ebenenpaar unter Verwendung der temporären Quellbilder<br />
separat ausgeführt und die dabei entstandenen Zwischenbilder im letzten Schritt<br />
übereinander geblendet.<br />
7.3 Ausblick<br />
Morphing hat sich im Laufe der letzten dreißig Jahre von einer anfänglichen Randdisziplin,<br />
die nur von wenigen Experten beherrscht wurde, zu einem weit verbreiteten<br />
Standardverfahren in der <strong>Computer</strong>grafik entwickelt. Von der Fähigkeit, statische Bilder<br />
125
7 Ergebnisse und Ausblick<br />
fließend ineinander übergehen zu lassen und so z.B. die Metamorphose von Wesen optisch<br />
darzustellen, wird heute in vielen Bereichen der Wissenschaft und Industrie Gebrauch<br />
gemacht. Insbesondere die Filmindustrie ist auf entsprechende Verfahren angewiesen, um<br />
so einerseits möglichst ansprechende Filme produzieren zu können und andererseits die<br />
Produktionskosten niedrig zu halten.<br />
Dank des kontinuierlichen Anstiegs der allgemeinen Speicher- und Rechenleistung sowie<br />
der Einbindung fortschrittlicher Parallelarchitekturen (z.B. CUDA-Cluster) sind <strong>Computer</strong>systeme<br />
bereits heute in der Lage, aufwendige Morphing-Sequenzen in wenigen<br />
Minuten zu berechnen. Darüber hinaus kann seit einigen Jahren eine Zunahme an neuartigen<br />
Technologien im Bereich der optischen Systeme beobachtet werden, durch die<br />
schon jetzt die Aufnahme und Wiedergabe hochaufgelöster Bild- und Filmsequenzen<br />
unter Verwendung von Kalibrierungs- und Tiefendaten möglich sind (z.B. stereoskopische<br />
Filme).<br />
Diese Entwicklungen erlauben es der Wissenschaft und der Industrie, durch die Einbindung<br />
von Tiefeninformationen neue Ansätze für eine noch authentischere Bildsynthese zu<br />
erforschen. In dieser Hinsicht ist davon auszugehen, dass auch in Zukunft Neu- und<br />
Weiterentwicklungen im Bereich des bildbasierten Morphings stattfinden werden.<br />
126
Abbildungsverzeichnis<br />
1.1 Black or White - Musikvideo [MJJL91] . . . . . . . . . . . . . . . . . . . . 1<br />
2.1 Black or White - Teilschritte für t = 0.5 [CL12, MJJL91] . . . . . . . . . . 6<br />
2.2 Transitionsfunktionen zur Abbildung von t auf t ′ (von links nach rechts):<br />
D(t) = t, D(t) = t 2 , D(t) = t (1/(1+sin(t∗π))) , D(t) = 1 2 + 1 2cos(π(t + 1)) . . 6<br />
2.3 Parametrisiertes Warping - Beispiele [CL11] . . . . . . . . . . . . . . . . . 7<br />
2.4 Schema - Forward Mapping [CL11] . . . . . . . . . . . . . . . . . . . . . . 9<br />
2.5 Schema - Inverse Mapping [CL11] . . . . . . . . . . . . . . . . . . . . . . . 9<br />
2.6 Gitterbasiertes Warping: Korrespondierende Gitterstrukturen [FDBF06] . 9<br />
2.7 Dreiecksbasiertes Warping: Dreiecks-zu-Dreiecks-Korrespondenz in beiden<br />
Bildern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
2.8 Feldbasiertes Warping: Korrespondierende Kontrolllinien [CL12] . . . . . . 11<br />
2.9 Beier-Neely Algorithmus: Berechnung von Punkt X ′ [BN92, CL12] . . . . 11<br />
2.10 Radiale Basisfunktionen: 1D-Interpolation [FDBF06] . . . . . . . . . . . . 12<br />
2.11 Hunger (1974) [NFBoC] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
2.12 Willow (1988) [GLRHJJNW88] . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
2.13 Black or White (1991) [MJJL91] . . . . . . . . . . . . . . . . . . . . . . . 16<br />
2.14 Terminator 2: Judgment Day (1992) [JCWWJSAGAH92] . . . . . . . . . 16<br />
2.15 The Matrix (1999) [AWLWJS99] . . . . . . . . . . . . . . . . . . . . . . . 17<br />
3.1 Links Ausgangsbild, rechts Zielbild [SM07] . . . . . . . . . . . . . . . . . . 19<br />
3.2 Fehlermaske (fehlerhafte Bereiche sind weiß) [SM07] . . . . . . . . . . . . 19<br />
3.3 Vergleich - links lineares Blending, rechts adaptives Blending [SM07] . . . 20<br />
3.4 Übersicht über die zentralen Teilschritte des vorgestellten Ansatzes [CSD11] 22<br />
3.5 Silhouetten-abhängige Unterteilung des vorhandenen Dreiecksnetzes [CSD11] 23<br />
3.6 Rendering: (a) Warping (b) Texturkomposition (c) Blending (d) Bildoptimierung<br />
mittels Poisson-Synthese [CSD11] . . . . . . . . . . . . . . . . . . 24<br />
3.7 Links Strahlentest zur Bildauswahl, rechts gewarptes Bild mit elastischem<br />
Band (rot) und Freiflächen (blau) [CSD11] . . . . . . . . . . . . . . . . . . 25<br />
3.8 Quellbildmenge (links), Korrespondenzen (mitte), rekonstruierte Szene<br />
(rechts) [ea06] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
3.9 Minikarte (mit grünem Standortsymbol) als Navigationshilfe [ea06] . . . . 28<br />
4.1 Strukturierung einer Bildmenge als Graph . . . . . . . . . . . . . . . . . . 35<br />
127
Abbildungsverzeichnis<br />
4.2 Bildpaar (I a , I b ) mit Korrespondenzen (farbig), erzeugtes Korrespondenzfeld<br />
F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />
4.3 Baryzentrische Interpolation - Schema . . . . . . . . . . . . . . . . . . . . 39<br />
4.4 Bilineare Interpolation - Schema . . . . . . . . . . . . . . . . . . . . . . . 40<br />
4.5 Unnormalisierte Gauß-Funktion G für r max = 11.0 . . . . . . . . . . . . . 42<br />
4.6 Bilateraler Filter - Beispiel [SP07] . . . . . . . . . . . . . . . . . . . . . . 43<br />
4.7 Bilateraler Bildfilter - Schema [DD02] . . . . . . . . . . . . . . . . . . . . 43<br />
4.8 Bilaterale Interpolation - Beispiel: p wird aufgrund der gleichen Farbe<br />
stärker von c 1 und c 2 beeinflusst als von c 3 . . . . . . . . . . . . . . . . . 44<br />
4.9 Gesamtstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />
4.10 Gesamtstruktur - Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />
4.11 Vorverarbeitung - Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />
4.12 Import - Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />
4.13 Korrespondierendes Punktpaar (rot markiert) mit 3D-Position . . . . . . 47<br />
4.14 Datenaufbereitung - Struktur . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />
4.15 Beispiel - Bildanpassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />
4.16 Bildmodifikation - Original (a), nach Glättung (b), nach Segmentierung (c) 49<br />
4.17 Triangulierung: Korrespondierende Dreiecke . . . . . . . . . . . . . . . . . 50<br />
4.18 Datenerzeugung - Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />
4.19 Raycasting bei ideal rekonstruiertem Mesh (a) invertierte Tiefenmaske (b) 51<br />
4.20 Die durch Punktabtastung berechneten Farbdifferenzen führen dazu, dass<br />
a 2 höher gewichtet wird als a 1 . . . . . . . . . . . . . . . . . . . . . . . . . 52<br />
4.21 Äquidistantes Abtasten der Farben auf den Verbindungslinien zwischen p<br />
und a 1 /a 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />
4.22 Export - Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br />
4.23 Präsentation - Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57<br />
4.24 Navigation - Bildknoten mit Hotspots . . . . . . . . . . . . . . . . . . . . 58<br />
4.25 Sigmoidfunktion S e (x): e = 100 (blau), e = 1 (grün), e = 0,1 (rot), e =<br />
0,01 (violett) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60<br />
5.1 Implementierung - Vorverarbeitung und Präsentation . . . . . . . . . . . . 62<br />
5.2 P3P-Datei - Grundstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br />
5.3 P3P-Frame - Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64<br />
5.4 P3P-Format: Ausgeführtes Exportskript in Autodesk 3ds Max . . . . . . . 64<br />
5.5 Korrespondenzfeld-Kodierung: Ausgangs- und Zielbild (1, 2), HSV-<br />
Kodierung (3), RGB-Separierung (4, 5), ARGB-Splitting (6) . . . . . . . . 68<br />
5.6 MorphGraphMaker - Gesamtstruktur . . . . . . . . . . . . . . . . . . . . . 72<br />
5.7 Datenschicht - Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />
5.8 Importmodul - Struktur und Teilbereiche . . . . . . . . . . . . . . . . . . 73<br />
5.9 Mesh-Rekonstruktion: Ausgangsbild (1), Dreiecksnetz im Bildraum (2),<br />
Mesh im Objektraum (3), Octree mit Polygon-Patches (4) . . . . . . . . . 74<br />
128
Abbildungsverzeichnis<br />
5.10 Datenerzeugung - Struktur und Teilbereiche . . . . . . . . . . . . . . . . . 75<br />
5.11 Bildmodifikation (links nach rechts): Original, geglättet, segmentiert . . . 75<br />
5.12 Datenerzeugung - Interpolationsmodule . . . . . . . . . . . . . . . . . . . 76<br />
5.13 Fehlermaske: Ausgangs- und Zielbild, generierte Fehlermaske (invertiert) . 77<br />
5.14 Exportmodul - Struktur und Teilbereiche . . . . . . . . . . . . . . . . . . 78<br />
5.15 Klassenhierarchie - Feldexport . . . . . . . . . . . . . . . . . . . . . . . . . 78<br />
5.16 Evaluation - Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79<br />
5.17 MGM - Hauptdialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81<br />
5.18 MGM - Prozesskonfiguration . . . . . . . . . . . . . . . . . . . . . . . . . 83<br />
5.19 MGM - Exportkonfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . 83<br />
5.20 MGM - Evaluationsdialog . . . . . . . . . . . . . . . . . . . . . . . . . . . 84<br />
5.21 Evaluationsergebnisse in LibreOffice 3.6.3 Calc . . . . . . . . . . . . . . . 91<br />
5.22 WebGLallery - Screenshot . . . . . . . . . . . . . . . . . . . . . . . . . . . 91<br />
5.23 WebGLallery - Gesamtstruktur . . . . . . . . . . . . . . . . . . . . . . . . 94<br />
5.24 Präsentationsmodus - Zustandsmodell . . . . . . . . . . . . . . . . . . . . 96<br />
5.25 Renderer - Schematischer Aufbau . . . . . . . . . . . . . . . . . . . . . . . 96<br />
5.26 WebGLallery - Selektionsmodus . . . . . . . . . . . . . . . . . . . . . . . . 99<br />
5.27 WebGLallery - Präsentationsmodus . . . . . . . . . . . . . . . . . . . . . . 100<br />
5.28 WebGLallery - Kontrollmenü . . . . . . . . . . . . . . . . . . . . . . . . . 101<br />
6.1 Szene 1 - Ausgangs- und Zielbild . . . . . . . . . . . . . . . . . . . . . . . 104<br />
6.2 Szene 1 - Triangulierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105<br />
6.3 Szene 1 - Segmentierte Quellbilder . . . . . . . . . . . . . . . . . . . . . . 106<br />
6.4 Szene 1 - Tiefenmasken . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106<br />
6.5 Szene 1 - Interpolierte Bildsequenz (baryzentrisch, k = 3, 2D) . . . . . . . 106<br />
6.6 Szene 1 - Ähnlichkeit zur Ground Truth für k = 3 (links 2D, rechts 3D) . 107<br />
6.7 Szene 1 - Ähnlichkeit zur Ground Truth für k = 17 (links 2D, rechts 3D) 108<br />
6.8 Szene 1 - Bildausschnitt bei baryzentrischer (links) und bilateraler Interpolation<br />
(rechts) für t = 0.5 . . . . . . . . . . . . . . . . . . . . . . . . . . 108<br />
6.9 Szene 2 - Ausgangs- und Zielbild . . . . . . . . . . . . . . . . . . . . . . . 109<br />
6.10 Szene 2 - Triangulierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110<br />
6.11 Szene 2 - Segmentierte Quellbilder . . . . . . . . . . . . . . . . . . . . . . 111<br />
6.12 Szene 2 - Tiefenmasken . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111<br />
6.13 Szene 2 - Interpolierte Bildsequenz (baryzentrisch, k = 3, 2D) . . . . . . . 111<br />
6.14 Szene 2 - Ähnlichkeit zur Ground Truth für k = 3 (links 2D, rechts 3D) . 112<br />
6.15 Szene 2 - Ähnlichkeit zur Ground Truth für k = 17 (links 2D, rechts 3D) 113<br />
6.16 Szene 2 - Artefaktbildung bei baryzentrischer und bilateraler Interpolation<br />
für t = 0.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113<br />
6.17 Szene 3 - Ausgangs- und Zielbild . . . . . . . . . . . . . . . . . . . . . . . 114<br />
6.18 Szene 2 - Triangulierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115<br />
6.19 Szene 3 - Segmentierte Quellbilder . . . . . . . . . . . . . . . . . . . . . . 115<br />
129
Abbildungsverzeichnis<br />
6.20 Szene 3 - Tiefenmasken . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br />
6.21 Szene 3 - Interpolierte Bildsequenz (baryzentrisch, k = 3, 2D) . . . . . . . 116<br />
6.22 Szene 3 - Ähnlichkeit zur Ground Truth für k = 3 (links 2D, rechts 3D) . 117<br />
6.23 Szene 3 - Ähnlichkeit zur Ground Truth für k = 23 (links 2D, rechts 3D) 117<br />
6.24 Szene 3 - Artefaktbildung bei t = 0.5 (links baryzentrisch, rechts bilateral) 118<br />
6.25 Szene 3 - Ausschnitt aus Ausgangs- und Zielbild, Korrespondenzen mit<br />
variierenden Offset-Vektoren (markiert durch Farbe) . . . . . . . . . . . . 119<br />
6.26 Szene 3 - Interpolierte Feldvektoren im verdeckten Bildbereich (grün) . . 120<br />
6.27 Szene 3 - Über Inverse-Mapping gewarpte Quellbilder für t = 1.0 . . . . . 120<br />
130
Tabellenverzeichnis<br />
3.1 Vergleich - Forschungsarbeiten . . . . . . . . . . . . . . . . . . . . . . . . 33<br />
5.1 Elemente des WGL-Formats . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />
5.2 Batch-Modus: Globale Parameter . . . . . . . . . . . . . . . . . . . . . . . 88<br />
5.3 Batch-Modus: Graphparameter . . . . . . . . . . . . . . . . . . . . . . . . 88<br />
5.4 Batch-Modus: Exportparameter . . . . . . . . . . . . . . . . . . . . . . . . 89<br />
5.5 Batch-Modus: Prozessparameter . . . . . . . . . . . . . . . . . . . . . . . 89<br />
6.1 Szene 1 - Ähnlichkeitswerte für k = 3 (Auszug, oben 2D, unten 3D) . . . . 107<br />
6.2 Szene 1 - Ähnlichkeitswerte für k = 17 (Auszug, oben 2D, unten 3D) . . . 107<br />
6.3 Szene 2 - Ähnlichkeitswerte für k = 3 (Auszug, oben 2D, unten 3D) . . . . 112<br />
6.4 Szene 2 - Ähnlichkeitswerte bei k = 17 (Auszug, oben 2D, unten 3D) . . . 112<br />
6.5 Szene 3 - Ähnlichkeitswerte für k = 3 (Auszug, oben 2D, unten 3D) . . . . 116<br />
6.6 Szene 3 - Ähnlichkeitswerte bei k = 23 (Auszug, oben 2D, unten 3D) . . . 117<br />
6.7 Interpolationsmethoden - Vergleich . . . . . . . . . . . . . . . . . . . . . . 121<br />
7.1 Vergleich - Forschungsarbeiten . . . . . . . . . . . . . . . . . . . . . . . . 124<br />
131
Literaturverzeichnis<br />
[ACOL00]<br />
[AWLWJS99]<br />
[BN92]<br />
[CDK99]<br />
Marc Alexa, Daniel Cohen Or, and David Levin. As-Rigid-As-<br />
Possible Shape Interpolation. SIGGRAPH 2000 Conference Proceedings,<br />
pages 157—-164, 2000.<br />
Andy Wachowski, Larry Wachowski, and Joel Silver. The Matrix.<br />
Warner Bros. Pictures, 1999.<br />
Thaddeus Beier and Shawn Neely. Feature-based image metamorphosis.<br />
SIGGRAPH Comput. Graph., 26(2):35–42, 1992.<br />
Baoquan Chen, Frank Dachille, and Arie Kaufman. Forward image<br />
warping. IEEE Visualization’99 conference proceedings, 1999.<br />
[CK08] Christoph Kürz. Radiale-Basis-Funktionen. http://www.<br />
scai.fraunh<strong>of</strong>er.de/fileadmin/ArbeitsgruppeTrottenberg/<br />
WS0809/seminar/Kuerz.pdf, 2008. zuletzt abgerufen am<br />
27.10.2012.<br />
[CL11]<br />
[CL12]<br />
[CSD11]<br />
[DD02]<br />
[ea06]<br />
I Chen Lin. Warping and Morphing. http://www.cs.nccu.edu.<br />
tw/~mtchi/cg11/cg11-07-morphing.ppt, 2011. zuletzt abgerufen<br />
am 29.8.2012.<br />
I Chen Lin. Warping and Morphing. In Introduction to <strong>Computer</strong><br />
Graphics. National Chiao Tung University, Taiwan, 2012.<br />
Gaurav Chaurasia, Olga Sorkine, and George Drettakis. Silhouetteaware<br />
warping for image-based rendering. <strong>Computer</strong> Graphics<br />
Forum (Proceedings <strong>of</strong> the Eurographics Symposium on Rendering),<br />
30(4), 2011.<br />
Frédo Durand and Julie Dorsey. Fast bilateral filtering for the<br />
display <strong>of</strong> high-dynamic-range images. In Proceedings <strong>of</strong> the 29th<br />
annual conference on <strong>Computer</strong> graphics and interactive techniques,<br />
SIGGRAPH ’02, pages 257–266, New York, NY, USA, 2002. ACM.<br />
Snavely et al. Photo tourism: exploring photo collections in 3d. In<br />
ACM SIGGRAPH 2006 Papers, SIGGRAPH ’06, pages 835–846,<br />
New York, NY, USA, 2006. ACM.<br />
132
[eB12]<br />
[FB87]<br />
Literaturverzeichnis<br />
eric Brachmann. Cosegmentation based Image Graphs for Descriptor<br />
Expansion and Reduction. Thesis, University <strong>of</strong> Technology<br />
Dresden, Dept. <strong>of</strong> <strong>Computer</strong> <strong>Science</strong>, Chair <strong>of</strong> <strong>Computer</strong> Graphics<br />
and Visualization, 2012.<br />
Martin A. Fischler and Robert C. Bolles. Readings in computer<br />
vision: issues, problems, principles, and paradigms. In Martin A.<br />
Fischler and Oscar Firschein, editors, Readings in computer vision:<br />
issues, problems, principles, and paradigms, chapter Random sample<br />
consensus: a paradigm for model fitting with applications to<br />
image analysis and automated cartography, pages 726–740. Morgan<br />
Kaufmann Publishers Inc., San Francisco, CA, USA, 1987.<br />
[FDBF06] Frédo Durand and Bill Freeman. Image Warping and Morphing.<br />
http://groups.csail.mit.edu/graphics/classes/<br />
CompPhoto06/html/lecturenotes/14_WarpMorph_6.pdf, 2006.<br />
zuletzt abgerufen am 12.9.2012.<br />
[fil]<br />
[GLRHJJNW88]<br />
filmsite.org. Film Milestones in Visual and Special Effects. http:<br />
//www.filmsite.org/visualeffects13.html. zuletzt abgerufen<br />
am 1.9.2012.<br />
George Lucas, Ron Howard, Joe Johnston, and Nigel Wooll. Willow.<br />
Metro-Goldwyn-Mayer, 1988.<br />
[GM98] C. A. Glasbey and K. V. Mardia. A review <strong>of</strong> image-warping<br />
methods. Journal <strong>of</strong> Applied Statistics, 25(2):155–171, 1998.<br />
[GS98]<br />
[GW98]<br />
[HZ04]<br />
Peisheng Gao and Thomas W. Sederberg. A work minimization<br />
approach to image morphing. The Visual <strong>Computer</strong>, 14(8/9):390–<br />
400, 1998.<br />
George Wolberg. Image morphing: a survey. The Visual <strong>Computer</strong>,<br />
14(8/9):360–372, 1998.<br />
R. I. Hartley and A. Zisserman. Multiple View Geometry in <strong>Computer</strong><br />
Vision. Cambridge University Press, ISBN: 0521540518, second<br />
edition, 2004.<br />
[JCWWJSAGAH92] James Cameron, William Wisher Junior, Stephanie Austin, and<br />
Gale Anne Hurd. Terminator 2: Judgment Day. TriStar Pictures,<br />
1992.<br />
[LCS95]<br />
Seung-Yong Lee, Kyung-Yong Chwa, and Sung Yong Shin. Image<br />
metamorphosis using snakes and free-form deformations. In Proceedings<br />
<strong>of</strong> the 22nd annual conference on <strong>Computer</strong> graphics and<br />
133
Literaturverzeichnis<br />
[Low04]<br />
[MJJL91]<br />
[ML09]<br />
interactive techniques, SIGGRAPH ’95, pages 439–448, New York,<br />
NY, USA, 1995. ACM.<br />
David G. Lowe. Distinctive image features from scale-invariant<br />
keypoints. Int. J. Comput. Vision, 60(2):91–110, November 2004.<br />
Michael Jackson(Artist) and John Landis(Director). Black or White.<br />
Epic Records, 1991.<br />
Marius Muja and David G. Lowe. Fast approximate nearest neighbors<br />
with automatic algorithm configuration. In International Conference<br />
on <strong>Computer</strong> Vision Theory and Application VISSAPP’09),<br />
pages 331–340. INSTICC Press, 2009.<br />
[NFBoC] National Film Board <strong>of</strong> Canada. Hunger, Peter Foldès. http:<br />
//www.nfb.ca/film/hunger. zuletzt abgerufen am 29.8.2012.<br />
[NRCoC]<br />
[PD84]<br />
[PDGS]<br />
[PKTD07]<br />
[RAASKS + 12]<br />
[SASEJK09]<br />
National Research Council <strong>of</strong> Canada. Retired NRC Scientists<br />
Burtnyk and Wein honoured as Fathers <strong>of</strong> <strong>Computer</strong> Animation<br />
Technology in Canada. http://www.ieee.ca/millennium/<br />
computer_animation/animation_honoured.html. zuletzt abgerufen<br />
am 29.8.2012.<br />
Thomas Porter and Tom Duff. Compositing digital images. <strong>Computer</strong><br />
Graphics 18, pages 253—-259, 1984.<br />
Pr<strong>of</strong>. Dr. Gunnar Schmidt. Zeit des Ereignisses — Zeit der Geschichte.<br />
http://www.medienaesthetik.de/medien/zentrorama.html.<br />
zuletzt abgerufen am 1.9.2012.<br />
Sylvain Paris, Pierre Kornprobst, Jack Tumblin, and Frédo Durand.<br />
A gentle introduction to bilateral filtering and its applications. In<br />
ACM SIGGRAPH 2007 courses, SIGGRAPH ’07, New York, NY,<br />
USA, 2007. ACM.<br />
Radhakrishna Achanta, Appu Shaji, Kevin Smith, Aurelien Lucchi,<br />
Pascal Fua, and Sabine Susstrunk. Slic Superpixels Compared<br />
to State-<strong>of</strong>-the-Art Superpixel Methods. IEEE Transactions on<br />
Pattern Analysis and Machine Intelligence, 34(11):2274–2282, 2012.<br />
Scott A. Sarra and Edward J. Kansa. Multiquadric Radial Basis<br />
Function Approximation Methods for the Numerical Solution <strong>of</strong> Partial<br />
Differential Equations. http://www.scottsarra.org/math/<br />
papers/mqMonographSarraKansa.pdf, 2009. zuletzt abgerufen am<br />
29.10.2012.<br />
[She68] Donald Shepard. A two-dimensional interpolation function for<br />
irregularly-spaced data. In Proceedings <strong>of</strong> the 1968 23rd ACM<br />
134
[SM07]<br />
[SP07]<br />
Literaturverzeichnis<br />
national conference, ACM ’68, pages 517–524, New York, NY, USA,<br />
1968. ACM.<br />
Timo Stich and Marcus Magnor. Image morphing for space-time<br />
interpolation. In ACM SIGGRAPH 2007 sketches, SIGGRAPH<br />
’07, New York, NY, USA, 2007. ACM.<br />
MIT CSAIL Sylvain Paris. Fixing the Gaussian Blur: The Bilateral<br />
Filter. In Introduction to <strong>Computer</strong> Graphics. SIGGRAPH 2007,<br />
2007.<br />
[SYLKYCJHSYS96] Seung-Yong Lee, Kyung-Yong Chwa, James Hahn, and Sung Yong<br />
Shin. Image Morphing Using Deformation Techniques. The Journal<br />
<strong>of</strong> Visualization and <strong>Computer</strong> Animation, 7(1):3–23, 1996.<br />
[Wol96]<br />
[WTP + 09]<br />
George Wolberg. Recent advances in image morphing. In Proceedings<br />
<strong>of</strong> the 1996 Conference on <strong>Computer</strong> Graphics International,<br />
CGI ’96, pages 64–71, Washington, DC, USA, 1996. IEEE <strong>Computer</strong><br />
Society.<br />
Manuel Werlberger, Werner Trobin, Thomas Pock, Andreas Wedel,<br />
Daniel Cremers, and Horst Bisch<strong>of</strong>. Anisotropic Huber-<br />
L1 Optical Flow. In Proc. BMVC, pages 108.1–108.11, 2009.<br />
doi:10.5244/C.23.108.<br />
135