29.01.2014 Aufrufe

Diplomarbeit - Faculty of Computer Science - Technische Universität ...

Diplomarbeit - Faculty of Computer Science - Technische Universität ...

Diplomarbeit - Faculty of Computer Science - Technische Universität ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

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

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!