Image - Morphing
Andreas Ursprunger
Inhaltsverzeichnis
- Einleitung
- Morphing
2.1 Referenzlinien
2.2 Arbeitsschritte zur Bilderzeugung
2.3 Wirkung der Referenzlinienpaare
- Probleme
- Zusammenfassung
Morphing ist eine faszinierende Art und Weise Übergänge zwischen
Bildern zu erstellen. Die Computergrafik bietet diesbezüglich eine Menge
von hilfreichen Methoden und Techniken an, die, unterstützt von
leistungsstarker Hardware, vor allem in der Unterhaltungsindustrie ihre
Anwendung finden.
Vor allem in der Filmbranche als Teilgebiet der Unterhaltungsindustrie wird
Morphing verwendet. Sei es die mystische Verwandlung einer zierlichen
Fledermaus in einen blutrünstigen Vampir, oder eine
zerstörungswütige Maschine aus der Zukunft, die beliebige Formen
annehmen kann. - Ohne technische Hilfsmittel würden diese
großartigen Ideen hauptsächlich nur auf dem Papier existieren.
In der Steinzeit des Filmemachens wußte man sich durch oftmaliges
Aufbauen und Fotografieren einer Szene, in Verbindung mit aufwendigen
Filmschnitten, zu helfen. Heute werden dreidimensionale Computermodelle aus
tausenden von Polygonen erstellt, und deren Transformation über die Zeit
gerendert und aufgezeichnet.
Oftmals ist das Modellieren einer Szene, die komplexe Objekte wie Menschen und
Tiere beinhaltet, zu aufwendig, und kann vermieden werden, indem man gescannte
Bilder der Szene manipuliert. Man verlagert also das Problem vom
dreidimensionalen in den zweidimensionalen Raum, wo sämtliche Information
über konkrete Formen verloren geht, und nur mehr Bildpunkte existieren.
Dieses Artikel beschäftigt sich in der Folge mit der Erzeugung von neuen
zweidimensionalen Bildern aus den Bildpunkten zweidimensionaler Quellbilder.
2 Morphing
Eine einfache Methode einen Übergang zwischen zwei Bildern zu erzeugen,
ist einfach alle korrespondierenden Pixel zu überblenden, also
Pixeleigenschaften wie Farbe und Helligkeit Schritt für Schritt zu
interpolieren. Das Resultat dieses "Morphs" ist bei unbeweglichen Szenen
akzeptabel, aber eher ungeeignet, sollten realistische Transformationen und
Deformationen das Ergebnis sein.
Der typische Morph-Prozeß besteht aus der Verzerrung zweier
Bilder, um ihre Konturen zur Übereinstimmung zu bringen, und einer
anschließenden Überblendung der Pixelattribute. Zu Beginn des
Überganges sieht das resultierende Bild dem ersten Quellbild sehr
ähnlich, wird aber zusehends in Richtung des zweiten Quellbildes verzerrt
und überblendet. Gegen Ende des Prozesses nimmt das resultierende Bild
Form und Farbe des zweiten Quellbildes an.
Die Frage ist, wie erreicht man eine gleichmäßig wirkende Verzerrung
der Bildinhalte, damit sich ein stufenloser Übergang zwischen den Bildern
ergibt.
Durch Einführen von Refernzlinienpaaren als einfache Kontrollprimitive,
wird es ermöglicht einzelne Bildbereiche zu verzerren und somit den
Verlauf der Konturen im Bild zu beeinflussen. Diese Methode wird bezeichnet als
"Field-Morphing", da jede Referenzlinie ein gewisses Einflußfeld besitzt,
in der die darinliegenden Pixel mehr oder weniger stark von ihr
beeinflußt werden. Abbildung 1 zeigt, wie mehrere Referenzlinienpaare den
Verlauf der Konturen in den Bildern beschreiben.
Abbildung 1: Referenzlinienpaare
Ein Referenzlinienpaar ergibt sich immer aus einer Referenzlinie des ersten
Quellbildes und einer Referenzlinie des zweiten Quellbildes, und wird vom
Animator manuell festgelegt. Wie man in Abbildung 1 erkennen kann liegen die
Referenzlinien (weiße Pfeile) genau an den Konturen und in markanten
Bereichen der Gesichter.
Aus zwei Quellbildern können beliebig viele Zwischenbilder durch
entsprechende Festlegung der Interpolationsschritte erzeugt werden.
Die notwendigen Arbeitsschritte zur Bilderzeugung sehen im Überblick
folgendermaßen aus:
- Festlegung der Referenzlinienpaare. Die Referenzlinien stellen quasi
das Werkzeug zur (Ver)formung von Bildbereichen dar, und werden, wie bereits in
Kapitel 2.1 beschrieben, an Konturen und markanten Bereichen festgelegt.
- Interpolation der Referenzlinienpositionen. Je nach der
gewünschten Anzahl der Zwischenbilder wird die Schrittweite der
Interpolationen festgelegt. Wird nur ein Zwischenbild gewünscht, das zu 50
% dem ersten, und zu 50 % dem zweiten Quellbild ähnlich sehen soll, ist
nur ein Interpolationsschritt durchzuführen, in dem alle Beginn- und
Endkoordinaten der Referenzlinien paarweise interpoliert werden. Als Ergebnis
entsteht ein neuer Satz an Referenzlinien im Zwischenbild.
- Bestimmen der Pixeleigenschaften im Zwischenbild. Jedes Pixel im
Zwischenbild erhält Eigenschaften von je einem Pixel in den Quellbildern,
wobei zur Lokalisierung der entsprechenden Quellbildpixel die
Referenzlinienpaare verwendet werden. Dieser Arbeitsschritt wird in den
nachfolgenden Kapiteln ausführlich dargestellt. Als Ergebnis erhält
man pro Zwischenbildpixel zwei Quellbildpixel.
- Mischen der beiden Pixeleigenschaften. Je nach den festgelegten
Interpolationsschritten, werden die Eigenschaften der Pixel im Zwischenbild aus
den Eigenschaften der zuvor erhaltenen Quellbildpixel berechnet. Damit ist der
Morph-Prozeß beendet.
Die so erzeugten Zwischenbilder sollten bei einiger Erfahrung im Positionieren
der Referenzlinien gleichmäßige Kontur- und Farbverläufe
aufweisen und sehr realitätsnah wirken.
Aus dem 3. Arbeitsschritt zur Bilderzeugung ergibt sich folgende
Ausgangssituation: Es existieren 2 Quellbilder mit den von Hand festgelegten
Referenzlinien, und ein oder mehrere Zwischenbilder mit den interpolierten
Referenzlinien. Jedoch sind die Zwischenbilder noch "leer", d.h. es sind noch
keine Pixelattribute eingestellt.
Die Pixel im Zwischenbild werden unter Zuhilfenahme der Referenzlinien aus den
Quellbildern ermittelt. So erhält man für jedes Pixel im Zwischenbild
zwei Pixel aus den Quellbildern, mit denen im 4. Arbeitsschritt zur
Bilderzeugung die endgültige Pixelfarbe berechnet wird.
Das Verfahren für das Auffinden der Pixel wird in den beiden nachfolgenden
Kapiteln dargestellt.
Wie bereits erwähnt, dienen die Referenzlinienpaare als Hilfsmittel zur
richtigen Zuordnung eines Pixels im Zwischenbild zu einem Pixel im Quellbild.
Das Verfahren, in dem vom Zwischenbildpixel ausgehend das Quellbildpixel
gesucht wird, bezeichnet man als "Reverse-Mapping", das im Vergleich zum
"Forward-Mapping" (wo vom Quellbildpixel ausgehend das Zwischenbildpixel
gesucht wird) den Vorteil besitzt, daß alle Pixel im Zwischenbild
durchlaufen werden, und somit Attribute erhalten.
Die Referenzlinien wurden eingeführt um Verzerrungen (Synonym:
Transformationen) zu realisieren. In Abbildung 2 ist dargestellt, wie das
Quellbild mit einem Referenzlinienpaar transformiert werden kann.
Abbildung 2: Transformation mit einem Referenzlinienpaar
Bei entsprechender Position der Referenzlinie im Zwischenbild sind neben den
elementaren Transformationen (Translation, Rotation und Skalierung) alle
Kombinationen daraus möglich.
Der Reverse-Mapping-Algorithmus mit einem Referenzlinienpaar sieht in
Pseudocode folgendermaßen aus:
Für jedes Pixel X im Zwischenbild
berechne u und v
finde das Pixel X' im Quellbild f. d. berechnete u
und v
Attribute von X := Attribute von X'
|
Dabei ist v der Abstand des Pixels zur Referenzlinie und
u das Verhältnis, in dem der Fußpunkt der Normalen die
Referenzlinie teilt. Zu beachten ist, daß die Variable u
auf die Länge der Referenzlinie normiert wird, um Skalierungen entlang der
Referenzlinie zu ermöglichen. Durch empirische Versuche wurde ermittelt,
daß eine Skalierung in Richtung v nicht sinnvoll ist.
Einheiten: [u] = 1; [v] = Pixel
Die Werte für u ergeben sich daher wie folgt:
0 =< u >= 1, für Punkte entlang der Referenzlinie.
u < 0, für Punkte die in der gedachten Verlängerung
der Referenzlinie unterhalb von P liegen.
u > 1, für Punkte die in der gedachten Verlängerung
der Referenzlinie oberhalb von Q liegen.
In Abbildung 3 ist die Vorgehensweise grafisch dargestellt.
Abbildung 3: Reverse-Mapping mit einem Referenzlinienpaar
Im Zwischenbild wird für jedes Pixel u und v
ermitelt, und auf die Referenzlinie im Quellbild aufgetragen. Dadurch findet
man das entsprechende Pixel im Quellbild, dessen Eigenschaften auf das Pixel im
Zwischenbild übertragen werden.
Bei Verwendung von mehreren Refernzlinienpaaren sind wesentlich kompliziertere
Transformationen möglich. Hinzu kommt, daß nicht alle Bildpunkte
gleichmäßig von allen Referenzlinien beeinflußt werden,
sondern jene Punkte, die sich in der Nähe einer Referenzlinie befinden
stärker beeinflußt werden, als weiter entfernte Bildpunkte. Die
Stärke der Beeinflussung kann allerdings durch entsprechende Wahl der
Parameter einer Gewichtungsgleichung 2) bestimmt werden.
Der Reverse-Mapping-Algorithmus mit mehreren Referenzlinienpaaren sieht in
Pseudocode folgendermaßen aus:
Für jedes Pixel X im Zwischenbild
gewDistSum = (0,0)
gewichtSum = 0
Für jede Referenzlinie PiQi
berechne u und v von PiQi
finde das Pixel Xi' im Quellbild f. d. berechnete
u und v von PiQi
Berechne die Distanz Di = Xi' - Xi
für diese Linie
1) dist = kürzester Abstand von X zu
PiQi
2) gewicht = ((länge)p /
(a + dist))b
gewDistSum = gewDistSum + Di *
gewicht
gewichtSum = gewichtSum +
gewicht
X' = X + gewDistSum /
gewichtSum
Attribute von X := Attribute von X'
|
- ) dist ist der kürzeste Abstand von einem Pixel zur
Referenzlinie.
[dist] = Pixel
dist = abs(v), für 0 u 1
dist = Abstand von P zum Pixel, für u <
0
dist = Abstand von Q zum Pixel, für u > 1
- ) länge ist die Länge der Referenzlinie im
Zwischenbild.
[länge] = Pixel
a, b, p sind Parameter zur Steuerung
der Referenzlinieneffekte.
Wenn a nur etwas größer als Null gewählt wird, so
werden die Pixel die sehr knapp an einer Referenzlinie liegen sehr stark von
dieser beeinflußt. Für größere Werte von a
wird der Referenzlinie etwas von ihrem Einfluß weggenommen.
Wenn b groß gewählt wird, dann werden nur Pixel von
der Referenzlinie beeinflußt, die ihnen am nächsten ist. Wenn
b = 0 gewählt wird, haben alle Referenzlinien auf ein Pixel
den gleichen Effekt. Werte für b im Intervall zwischen [0.5,
2] sind am gebräuchlichsten.
Wenn der Wert p = 0 gewählt wird, haben alle Referenzlinien
das gleiche Gewicht, wenn p = 1 haben die längeren Linien
einen größeren Einfluß als die Kürzeren. Werte für
p im Intervall zwischen [0, 1] sind am gebräuchlichsten.
In Abbildung 4 ist die Vorgehensweise grafisch dargestellt.
Abbildung 4: Reverse-Mapping mit mehreren Referenzlinienpaaren
Im Zwischenbild werden pro Pixel Xi und Referenzlinie PiQi die
Werte ui und vi ermitelt, und auf die
entsprechenden Referenzlinien Pi'Qi' im Quellbild aufgetragen. Das Ergebnis ist
je ein Quellpixel Xi', das mit dem Abstand Di zur
Position des Ausgangspixels im Zwischenbild lokalisiert wird. Die Abstände
Di werden nun mit den aus den Abständen vi
ermittelten Gewichten 2) bewertet, und daraus der durchschnittliche Abstand
D berechnet. Im Abstand D zum Ausgangspixel
befindet sich schließlich das Pixel im Quellbild, dessen Eigenschaften
auf das Pixel im Zwischenbild übertragen werden.
In diesem Beispiel ist das betrachtete Zwischenbildpixel näher bei
Referenzlinie P2Q2 und wird daher, bei standardmäßiger Wahl der
Gewichtungsparameter von dieser Referenzlinie stärker beeinflußt.
Dadurch ergibt sich eine Position des endgültig ausgewählten
Quellbildpixels, die näher bei X2' als bei X1'
liegt.
Bei ungünstigen Konstellationen der Referenzlinien im Zwischenbild kann es
zu ungewollten Verzerrungen kommen, die als "Ghosts" bezeichnet werden. Ein
solcher Fall ist in Abbildung 5 dargestellt, wo oberhalb des "F" im
Zwischenbild eine Ausbuchtung entstanden ist.
Abbildung 5: "Ghosts"
Zur Lösung des Problems muß der Animator regulierend eingreifen, und
eine der beiden, in Abbildung 6 angeführten,
Lösungsmöglichkeiten anwenden.
Abbildung 6: "Ghostbusting"
Das bedeutet, daß in diesem Fall einfach die linke Referenzlinie
verkürzt, oder falls dies nicht erwünscht ist, in 2 Referenzlinien
umgewandelt wird. Dabei muß natürlich auch in den Quellbildern eine
zusätzliche Referenzlinie eingefügt werden.
Eine hilfreiche Unterstützung zur Lösung derartiger Probleme ist ein
Debugging-Tool, das bei Anklicken eines Pixels im Zwischenbild, die
entsprechenden Pixel in den Quellbildern anzeigt.
Durch Morphing ist es möglich beeindruckende Übergänge zwischen
Bildern zu erzeugen. In der hier dargestellten Methode "Field-Morphing" wird
durch Festlegen von Refernzlinien in markanten Bereichen der Quellbilder der
Transformationsprozeß gesteuert.
Für den Animator ist es nützlich, sich eine Referenzlinie als
Kontrollelement vorzustellen, das einen gewissen, nach außen hin
abnehmenden, Einflußbereich aufweist. Je näher die Bildelemente
einer Referenzlinie sind, desto näher bleiben sie bei der
korrenspondierenden Referenzlinie in den Zwischenbildern, ohne dabei zu stark
von benachbarten Referenzlinien beeinflußt zu werden.
Durch Hinzufügen bzw. Eliminieren von Referenzlinien in den Quellbildern
kann das Aussehen der erzeugten Zwischenbilder auf einfache Art und Weise
manipuliert werden.
Die Laufzeit des dargestellten Morphing-Algorithmus ist proportional zur Anzahl
der Pixel im Quellbild multipliziert mit der Anzahl der Referenzlinien.
Zurück zur Virtual Reality Seminar Page.