Benutzer:Bitbert/Aktueller Entwurf

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Entwurfsarbeit für den Artikel Textursynthese.


Textursynthese nennt man die algorithmische Erzeugung einer Textur.

Es gibt zwei grundlegend verschiedene Arten der Textursynthese: Prozedurale oder parametrische Textursyntheseverfahren erzeugen aus dem Nichts eine neue Textur, vorlagenbasierte oder nichtparametrische Verfahren ahmen ein gegebenes Vorlagenbild nach. Ziel beider Verfahren ist es, Bilder zu erzeugen, die von realen Vorbildern nicht unterscheidbar sind.

Die Textursynthese bildet zusammen mit der Texturanalyse den Forschungsbereich der Bildverarbeitung, der sich den besonderen Eigenschaften von Texturen widmet. Neben der Textursynthese werden in diesem Fachbereich drei weitere Problemkreise untersucht: Texturklassifikation, die Unterscheidung verschiedener Texturarten anhand messbarer Eigenschaften, Textursegmentation, das Zerlegen eines Bildes in einheitlich texturierte Flächen und die Shape from Texture genannte Instanz der allgemeineren Fragestellung Shape from X, bei der aus einem zweidimensionalen Bild auf die dreidimensionale Form des abgebildeten Objekts geschlossen werden soll.

Anwendung findet die Textursynthese in der Bildbearbeitung, z. B. wenn Details unauffällig wegretuschiert werden sollen oder die Materialbeschaffenheit eines abgebildeten Objekts verändert werden soll. In der 3D-Computergrafik dient sie dazu, dreidimensionale Modelle mit möglichst realistisch wirkenden Oberflächenstrukturen zu überziehen und gleichzeitig den Speicherbedarf für Texturen zu reduzieren.

Hauptartikel: Textur
Kettenglieder: Aus der Ferne Textur, aus der Nähe Einzelobjekte

Menschen erfassen den Begriff der Textur intuitiv, eine präzise und damit maschinell nachvollziehbare Ausformulierung gestaltet sich jedoch schwierig und ist eines der noch unerreichten Ziele der Texturanalyse. Eine Definition von Textur ist: Textur ist die Schwankung von Daten in einer Größenordnung, die kleiner ist als die Größenordnung, für die sich der Betrachter interessiert[1]. Ob etwas Textur ist oder nicht, ist also skalierungsabhängig und variiert mit dem Standpunkt des Betrachters.

In der Textursynthese unterscheidet man zwei Texturartenextreme, die fließend ineinander übergehen: Regelmäßige oder deterministische Texturen zeigen ausgeprägte Strukturen, die sich mit geometrischer Regelmäßigkeit wiederholen, stochastische Texturen zeigen überhaupt keine Struktur, sondern erinnern an Bildrauschen. In der Praxis sind insbesondere die häufig vorkommenden fast regelmäßigen und fast stochastischen Texturen von Interesse. Die Texturklassifikation liefert Methoden, um weitere Texturarten zu unterscheiden, beispielsweise die Aufspaltung der regelmäßigen Texturen nach geometrischer und farblicher Regelmäßigkeit.

Parametrische Textursynthese

[Bearbeiten | Quelltext bearbeiten]

Als Ursprung der parametrischen Textursynthese gilt Perlin Noise, eine 1982 von Ken Perlin für den Film Tron entwickelte Funktion, die Texturbilder durch zufällige Verzerrung abwechslungsreicher gestaltet.

Nichtparametrische Textursynthese

[Bearbeiten | Quelltext bearbeiten]

Die nichtparametrische Textursynthese ist ein vergleichsweise junger Forschungsbereich. Als Beginn dieses Fachgebiets gilt eine 1993 von Popat und Picard veröffentlichte Facharbeit, nach der Texturen als Produkt einer Markov-Kette betrachtet werden können. Efros und Leung (1999) sowie Wei und Levoy (2000) brachten die Idee dieser Ursprungsarbeit mit konkreten Algorithmen und einem Beschleunigungsansatz wieder auf und erregten in der Fachwelt großes Interesse. Ebenfalls 2000 legten Xu, Guo und Shum mit ihren Verfahren Chaosmosaik und flickenbasierte Textursynthese den Grundstein für einen alternativen Ansatz, bei dem Texturen nach Vorbild traditioneller Handwerkstechniken zusammengesetzt werden.

Nichtparametrische Markov-Ketten

[Bearbeiten | Quelltext bearbeiten]

Wo immer ein Betrachter seinen Blick in einer Textur umherwandern lässt, er hat immer das Gefühl, das gleiche zu sehen. Diese Beobachtung führte dazu, dass die Textursynthese Texturen als Ergebnisse stationärer stochastischer Prozesse betrachtet, also als Produkt eines Zufallsprozesses, bei dem die Farbe jedes Bildpunkts auf exakt die gleiche Weise festgelegt wird.

Nichtparametrische Markov-Ketten, d. h. Markov-Ketten mit einer stationären Wahrscheinlichkeitsdichte, sind eine spezielle Form solcher stationären stochastischen Prozesse. Sie weisen zusätzlich die sogenannte Markov-Eigenschaft auf: Jeder Bildpunkt einer Textur hängt nur von den Bildpunkten in seiner unmittelbaren, fest abgegrenzten Umgebung ab, nicht jedoch von Bildpunkten außerhalb dieses Bereichs.

Die Textursynthese mit nichtparametrischen Markov-Ketten läuft immer nach dem folgenden Schema ab: Es wird ein leeres Ausgabebild mit den gewünschten Maßen erzeugt, in das ein Stück der Vorlage, die sogenannte Saat, hineinkopiert wird. Die leeren Pixel werden in eine Warteschlange eingereiht und nacheinander gesetzt. Die Farbe eines Pixels ergibt sich als Funktionswert der stationären Wahrscheinlichkeitsdichte der Markov-Kette und ist auf eine von Verfahren zu Verfahren unterschiedliche Weise von der Umgebung des Pixels abhängig. Die bildliche Vorstellung einer Textur, die Pixel um Pixel aus einer Saat wächst, hat dieser Methode den Beinamen Image Growing (engl. „Bildanbau“) eingetragen.

Entscheidend bei diesem Ansatz sind drei Faktoren: Die Reihenfolge innerhalb der Warteschlange, die Art, wie die stationäre Wahrscheinlichkeitsdichte aus der Vorlage bestimmt wird und die Wahl der Umgebung. Jeder Faktor ist unabhängig von den anderen und kann einzeln optimiert werden.

Eine schlecht gewählte Reihenfolge in der Warteschlange kann zu Kausalität führen: Ist die Farbe jedes Pixels von den zuvor gesetzten Pixeln abhängig, so können sich viele kleine Fehler am Ende zu unbrauchbaren Ergebnissen aufsummieren.

Eine intuitiv verständliche Methode, die stationäre Wahrscheinlichkeitsdichte zu bestimmen, ist die vollständige Suche: Um einen leeren Pixel zu setzen, werden alle Pixel der Vorlage gesucht, die eine ähnliche Umgebung vorweisen. Aus diesen Kandidaten wird dann zufällig ein Pixel ausgewählt und dessen Farbe übernommen. Eine andere Möglichkeit ist, die Vorlage bereits im Vorfeld zu untersuchen und die gefundenen Ergebnisse in einer geeigneten Datenstruktur unterzubringen. Allen Fällen ist gemein, dass die Funktionsvorschrift der stationären Wahrscheinlichkeitsdichte nicht vollständig und explizit herausgearbeitet wird, sondern nur die wichtigsten Argument- und Funktionswertpaare ermittelt werden.

Die wichtigste Grundannahme dieses Ansatzes ist, dass jeder Pixel nur von einer begrenzten Umgebung abhängt. Tatsächlich gibt es keine Möglichkeit, die Richtigkeit dieser Annahme in einer gegebenen Textur zu überprüfen, geschweige denn, die Größe dieser Umgebung automatisch zu bestimmen. Die Wahl der Umgebung bleibt dem Benutzer überlassen, der bei diesem entscheidenden Parameter kaum mehr als ausprobieren, abschätzen oder raten kann. Wird die Umgebung kleiner als eine in der Vorlagetextur vorkommende Struktur gewählt, so kann der resultierende Algorithmus diese Struktur nicht reproduzieren. Wird die Umgebung zu groß gewählt, so enthält das Ergebnis möglicherweise Strukturen, die vorher gar nicht da waren, oder fertigt identische Kopien von Teilausschnitten an.

Multiskalensynthese mit Bilderpyramiden

[Bearbeiten | Quelltext bearbeiten]

Die Idee der Multiskalensynthese ist, aus dem einzelnen Vorlagenbild eine ganze Bilderpyramide zu erstellen, bei der jedes Bild halb so groß ist wie das Bild der darunter liegenden Stufe. Zu jedem Bild dieser Pyramide, beginnend mit dem kleinsten, wird nun eine passende Textur synthetisiert. Entweder werden bei jeder Einzelsynthese alle vorher synthetisierten Bilder berücksichtig oder die Einzelsynthesen laufen unabhängig voneinander ab und die synthetisierte Bilderpyramide wird am Schluss zu einem einzelnen Bild kombiniert.

Die Synthese läuft bei diesem Ansatz also mit zunehmender Feinheit ab: Zunächst werden nur die gröbsten Strukturen nachgeahmt, dann immer feinere, bis schließlich im größten synthetisierten Bild auch die kleinsten Strukturen berücksichtigt werden. Das im Einzelnen eingesetzte Syntheseverfahren ist prinzipiell austauschbar.

Die Multiskalensynthese basiert auf der Idee der Multiskalenanalyse. Ähnlich wie bei Wavelets findet hier in Termen der Bildverarbeitung eine Einzelbetrachtung der Frequenzbänder eines Bildes statt, in der Reihenfolge von niedrigen zu hohen Frequenzen.

Histogrammanpassung

[Bearbeiten | Quelltext bearbeiten]

Ziel der Textursynthese ist es, eine Textur zu erzeugen, die der Vorlage möglichst ähnlich sieht. Die Ähnlichkeit zweier Texturen lässt sich mit Methoden der Texturanalyse messen; zwei Texturen sind ähnlich, wenn sie bei der Messung vieler aussagekräftiger Eigenschaften dieselben Messwerte erzielen. Die Ausgangsidee der Histogrammanpassung ist folgende: Statt gleich ein ähnliches Bild zu erzeugen, erzeuge erst einen ähnlichen Messwert und wandle diesen anschließend in ein Bild um; werden aussagekräftige Merkmale gemessen, so wird mit den Messwerten auch das Bild ähnlich sein.

Die Histogrammanpassung macht die Annahme, dass das Histogramm einer Textur ein solches aussagekräftiges Merkmal ist. Sie erzeugt Texturen, indem sie das Histogramm eines mit weißem Rauschen gefüllten Zufallsbildes an das Histogramm der Vorlage anpasst.

Die Histogrammanpassung gewährleistet eine farbliche Übereinstimmung beider Bilder. Für sich genommen produziert sie jedoch nur ungenügende Ergebnisse, denn ein Histogramm enthält keinerlei örtliche Informationen, weshalb zwar die Farben, nicht jedoch die Strukturen der Vorlage übernommen werden. Die Histogrammanpassung muss daher stets mit Verfahren kombiniert werden, die örtliche Informationen berücksichtigen. Eine Möglichkeit ist die Kombination mit der Multiskalensynthese, genauer gesagt mit einer orientierten Bilderpyramide, die Informationen über die räumliche Ausrichtung der enthaltenen Strukturen enthält.

Flickenbasierte Textursynthese

[Bearbeiten | Quelltext bearbeiten]

Auf traditionelle Handwerksmethoden gehen die flickenbasierten Textursyntheseverfahren zurück. Allen ist gemein, dass hier die Texturen nicht pixelweise erzeugt werden sondern durch unveränderte Übernahme ganzer Teilbereiche der Vorlage.

Chaosmosaik orientiert sich am Verlegen eines Mosaiks. Zunächst wird durch wiederholtes Aneinanderfügen der Vorlage ein Bild mit den gewünschten Maßen erzeugt. In diesem werden nun zufällig rechteckige Stücke ausgewählt und an neue Positionen kopiert. Nach jedem Kopiervorgang wird um das kopierte Stück herum ein kleiner Bereich ausgeschwärzt und mit einem untergeordneten Syntheseverfahren – z. B. nichtparametrischen Markov-Ketten – neu ausgefüllt. Um das Verfahren zu beschleunigen, kann auf das Ausschwärzen und Wiederauffüllen verzichtet werden und stattdessen nach dem Kopieren ein Glättungsfilter auf den Randbereich angewandt werden, der sichtbare Nahtstellen vermindert.

Das Quilten ist der gleichnamigen Nähtechnik nachempfunden, bei der zugeschnittene Stoffstücke zu einer großen Fläche vernäht werden. In ein leeres Bild mit den gewünschten Maßen werden nacheinander von links nach rechts und oben nach unten rechteckige Flicken des Vorlagebildes kopiert. Dabei wird darauf geachtet, dass der nächste Flicken möglichst gut zu den bereits eingefügten passt. Zusätzlich wird vor dem Einfügen der Rand des neuen Flickens zackenförmig so zugeschnitten, dass die Nahtstellen möglichst unauffällig sind.

Quilting-Animation, wegen der Größe der Datei (741 KB) nicht direkt abgebildet.
  1. M. Petrou, P. G. Sevilla: Image Processing: Dealing With Texture. Wiley, 2006. ISBN 0-470-02628-6

K. Popat, R. W. Picard: Novel cluster-based probability model for texture synthesis, classification, and compression. In: Procedures of the SPIE Visual Communications 1993, Cambridge, Massachusetts, 1993.