DE202017007534U1 - Multiskalige 3D-Textursynthese - Google Patents

Multiskalige 3D-Textursynthese Download PDF

Info

Publication number
DE202017007534U1
DE202017007534U1 DE202017007534.2U DE202017007534U DE202017007534U1 DE 202017007534 U1 DE202017007534 U1 DE 202017007534U1 DE 202017007534 U DE202017007534 U DE 202017007534U DE 202017007534 U1 DE202017007534 U1 DE 202017007534U1
Authority
DE
Germany
Prior art keywords
map
texture
additional
neural network
color
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE202017007534.2U
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Magic Pony Technology Ltd
Original Assignee
Magic Pony Technology Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Magic Pony Technology Ltd filed Critical Magic Pony Technology Ltd
Publication of DE202017007534U1 publication Critical patent/DE202017007534U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/231Hierarchical techniques, i.e. dividing or merging pattern sets so as to obtain a dendrogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Graphics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Generation (AREA)

Abstract

Vorrichtung, die einen oder mehrere Computer aufweist, wobei der eine oder die mehreren Computer ein erstes neuronales Farbkartennetz (303), ein zweites neuronales Farbkartennetz (313), ein erstes zusätzliches neuronales Kartennetz (307) und ein zweites zusätzliches neuronales Kartennetz (317) speichern, wobei der eine oder die mehreren Computer so konfiguriert sind, dass sie Operationen durchführen, die Folgendes aufweisen:
Erzeugen einer ersten Farbkarte (305) aus einem ersten Satz von Initialisierungsdaten (301) durch das erste neuronale Farbkartennetz;
Erzeugen einer ersten zusätzlichen Karte (309) aus der ersten Farbkarte durch das erste zusätzliche neuronale Kartennetz, wobei die erste zusätzliche Karte die gleiche Auflösung wie die erste Farbkarte aufweist;
Erzeugen einer zweiten Farbkarte (315) aus der ersten Farbkarte und einem zweiten Satz von Initialisierungsdaten (311) durch das zweite neuronale Farbkartennetz, wobei die zweite Farbkarte eine höhere Auflösung als die erste Farbkarte aufweist; und
Erzeugen einer zweiten zusätzlichen Karte (319) aus der zweiten Farbkarte durch das zweite zusätzliche neuronale Kartennetz, wobei die zusätzliche Normalen-Karte die gleiche Auflösung hat wie die zweite Farbkarte,
wobei die erste zusätzliche Karte und die zweite zusätzliche Karte jeweils eines oder mehrere der folgenden aufweisen: eine Normalen-Karte; eine spiegelnde Karte; eine Verlagerungskarte; eine Höckerkarte; eine Tiefenkarte; und/oder eine Höhenkarte.

Description

  • Nach den Bestimmungen des Gebrauchsmustergesetzes sind nur Vorrichtungen, wie sie in den beigefügten Schutzansprüchen definiert sind, schutzfähig und Gegenstand des Gebrauchsmusters, nicht aber Verfahren. Soweit in der nachfolgenden Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen nur der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen geschützten Vorrichtung(en).
  • Gebiet
  • Die vorliegende Erfindung bezieht sich auf die Erzeugung von Texturkarten zur Verwendung bei der Wiedergabe von visuellen Ausgaben. Insbesondere bezieht sich die vorliegende Erfindung auf die Erzeugung von Texturkarten mit mehreren Auflösungsskalen unter Verwendung hierarchischer Algorithmen.
  • Hintergrund - Texturkarten
  • In den Bereichen Computergrafik und 3D-Modellierung werden Objekten mithilfe von Texturkarten Oberflächendetails hinzugefügt. Texturkarten fügen 3D-Modellen Farben und andere Eigenschaften hinzu und verwandeln sie von flachen, untexturierten Oberflächen in detailliertere Darstellungen des modellierten Objekts. Die Textur wird auf das 3D-Modell abgebildet.
  • Texturkarten können Farbkarten, wie RGB-Karten, enthalten, welche die 3D-Modelle einfärben. Diese definieren die Oberflächenfarben für eine bestimmte Textur und sind vielleicht die häufigste Form von Texturkarten. Farbkarten werden auch als diffuse Karten bezeichnet. Im Allgemeinen enthalten sie keine Beleuchtungs- oder Schattierungsinformationen in Bezug auf die Oberflächentextur.
  • Zusätzlich zu den Farbkarten können weitere Texturkarten verwendet werden, um dem 3D-Modell zusätzliche Texturmerkmale hinzuzufügen. Normalen-Karten sind eine Karte der Oberflächennormalen-Vektoren der Textur, die zur Verbesserung von Lichteffekten auf dem Modell verwendet werden können. Spiegelnde Karten enthalten Informationen über den Glanz von Bereichen auf der Oberfläche. Verlagerungs-Karten, Höcker-Karten, Tiefen-Karten und Höhen-Karten fügen den Effekt von angehobenen und abgesenkten Details auf der Oberfläche hinzu. Diese zusätzlichen Texturkarten werden oft als zusätzliche Kanäle der Texturkarte bezeichnet.
  • Beim Rendern von Objekten, insbesondere in Spielumgebungen, müssen die auf ein Objekt angewendeten Texturen in verschiedenen Maßstäben unterschiedliche visuelle Qualitäten aufweisen. Ein nahe gelegenes Objekt muss zum Beispiel eine detailliertere Textur haben, aber in einem kleineren Maßstab, als ein entferntes Objekt, das weniger detailliert erscheinen kann, aber in einem größeren Maßstab gerendert werden muss. Um zu vermeiden, dass eine kleine Textur wiederholt gekachelt wird, was zu Periodizitäten in der angezeigten Textur führt, muss eine große Textur mit einer hohen Auflösung gespeichert werden. Dies verbraucht viel Speicherplatz und kann auch rechenintensiv sein, insbesondere wenn eine große Anzahl verschiedener Texturen für das Rendern von Objekten erforderlich ist.
  • Außerdem wird die Erstellung von Texturen und Umgebungen für Spiele, Spezialeffekte und/oder künstlerische Arbeiten häufig von Künstlern oder Designern übernommen. Um zu verhindern, dass dieselben Texturen wiederholt auf gerenderten Objekten erscheinen, was das Seherlebnis beeinträchtigen kann, müssen die Studios oft weitere Künstler oder Designer einstellen, um Variationen in den Texturen zu schaffen. Dies kann kostspielig und ineffizient sein, vor allem dann, wenn neben den Farbkarten noch weitere Kartenarten benötigt werden, deren Erstellung für die Künstler oft eine Herausforderung und für die Studios kostspielig ist.
  • Hintergrund - Techniken des maschinellen Lernens
  • Das maschinelle Lernen ist ein Studienbereich, in dem ein Computer oder Computer lernen, Klassen von Aufgaben auszuführen, indem sie das Feedback nutzen, das aus der Erfahrung oder den gesammelten Daten generiert wird, die der maschinelle Lernprozess während der Ausführung dieser Aufgaben durch den Computer sammelt.
  • Typischerweise kann maschinelles Lernen grob in überwachte und nicht überwachte Ansätze eingeteilt werden, obwohl es spezielle Ansätze wie Verstärkungslernen und Semi-überwachtes Lernen gibt, die spezielle Regeln, Techniken und/oder Ansätze haben.
  • Beim überwachten maschinellen Lernen geht es darum, dass ein Computer eine oder mehrere Regeln oder Funktionen erlernt, um die von einem Bediener oder Programmierer vorgegebenen Beispieleingaben auf die gewünschten Ausgaben abzubilden, wobei in der Regel ein Datensatz, der die Eingaben enthält, etikettiert wird.
  • Beim unüberwachten Lernen geht es darum, eine Struktur für die Eingabedaten zu bestimmen, zum Beispiel bei der Mustererkennung, und es werden in der Regel unmarkierte Datensätze verwendet.
  • Beim Verstärkungslernen geht es darum, einen oder mehrere Computer in die Lage zu versetzen, mit einer dynamischen Umgebung zu interagieren, z. B. beim Spielen eines Spiels oder beim Fahren eines Fahrzeugs.
  • Es sind verschiedene Mischformen dieser Kategorien möglich, wie z. B. das „semi-überwachte“ maschinelle Lernen, bei dem ein Trainingsdatensatz nur teilweise etikettiert wurde.
  • Für unüberwachtes maschinelles Lernen gibt es eine Reihe von Anwendungsmöglichkeiten, wie z. B. die Anwendung von Computer-Vision-Techniken bei der Bildverarbeitung oder Videoverbesserung. Unüberwachtes maschinelles Lernen wird in der Regel zur Lösung von Problemen eingesetzt, bei denen eine unbekannte Datenstruktur in den Daten vorhanden sein könnte. Da die Daten nicht etikettiert sind, muss der maschinelle Lernprozess implizite Beziehungen zwischen den Daten erkennen, indem er beispielsweise eine Clustermetrik auf der Grundlage intern abgeleiteter Informationen ableitet. Beispielsweise kann ein unüberwachtes Lernverfahren verwendet werden, um die Dimensionalität eines Datensatzes zu reduzieren und zu versuchen, Beziehungen zwischen Clustern im Datensatz zu identifizieren und zu modellieren, und kann beispielsweise Maße für die Clustermitgliedschaft generieren oder Knotenpunkte in oder zwischen Clustern identifizieren (beispielsweise unter Verwendung einer Technik, die als gewichtete Korrelationsnetzwerkanalyse bezeichnet wird und auf hochdimensionale Datensätze angewandt werden kann, oder unter Verwendung von k-means clustering, um Daten durch ein Maß für den euklidischen Abstand zwischen den einzelnen Daten zu clustern).
  • Semi-überwachtes Lernen wird in der Regel zur Lösung von Problemen eingesetzt, bei denen ein teilweise etikettierter Datensatz vorliegt, z. B. wenn nur eine Teilmenge der Daten etikettiert ist. Beim teilüberwachten maschinellen Lernen werden extern bereitgestellte Kennzeichnungen und Zielfunktionen sowie alle impliziten Datenbeziehungen verwendet.
  • Bei der anfänglichen Konfiguration eines maschinellen Lernsystems, insbesondere bei Verwendung eines überwachten maschinellen Lernansatzes, kann der maschinelle Lernalgorithmus mit einigen Trainingsdaten oder einem Satz von Trainingsbeispielen versorgt werden, wobei jedes Beispiel typischerweise ein Paar aus einem Eingangssignal/-vektor und einem gewünschten Ausgangswert, Etikett (oder einer Klassifizierung) oder Signal ist. Der Algorithmus für maschinelles Lernen analysiert die Trainingsdaten und erzeugt eine verallgemeinerte Funktion, die mit ungesehenen Datensätzen verwendet werden kann, um gewünschte Ausgabewerte oder Signale für die ungesehenen Eingangsvektoren/-signale zu erzeugen. Der Benutzer muss entscheiden, welche Art von Daten als Trainingsdaten verwendet werden sollen, und einen repräsentativen Datensatz aus der realen Welt vorbereiten. Der Nutzer muss jedoch darauf achten, dass die Trainingsdaten genügend Informationen enthalten, um die gewünschten Ausgabewerte genau vorherzusagen, ohne zu viele Merkmale zu liefern (was dazu führen kann, dass zu viele Dimensionen vom maschinellen Lernprozess während des Trainings berücksichtigt werden, und auch bedeuten könnte, dass der maschinelle Lernprozess nicht zu guten Lösungen für alle oder bestimmte Beispiele konvergiert). Der Nutzer muss auch die gewünschte Struktur der erlernten oder verallgemeinerten Funktion festlegen, z. B. ob er Support-Vektor-Maschinen oder Entscheidungsbäume verwenden möchte.
  • Unüberwachte oder semi-überwachte Ansätze des maschinellen Lernens werden manchmal verwendet, wenn etikettierten Daten nicht ohne weiteres verfügbar sind oder wenn das System aus unbekannten Daten neue etiketierten Daten generiert, wenn einige anfängliche Kennzeichnungen vorhanden sind.
  • Zusammenfassung der Erfindung
  • Aspekte und/oder Ausführungsformen zielen darauf ab, ein verbessertes Verfahren zur Erzeugung von Texturen zur Verwendung beim visuellen Rendering bereitzustellen.
  • Gemäß einem ersten Aspekt wird ein Verfahren zum Erzeugen von Texturen zur Verwendung beim Rendering einer visuellen Ausgabe bereitgestellt, wobei das Verfahren die folgenden Schritte umfasst: Erzeugen, unter Verwendung eines ersten hierarchischen Algorithmus, einer ersten Textur aus einem oder mehreren Sätzen von Initialisierungsdaten; und selektives Verfeinern der ersten Textur unter Verwendung eines oder mehrerer weiterer hierarchischer Algorithmen, um eine oder mehrere weitere Texturen aus mindestens einem Abschnitt der ersten Textur und einem oder mehreren Sätzen weiterer Initialisierungsdaten zu erzeugen; wobei sich mindestens ein Abschnitt jeder der einen oder mehreren weiteren Texturen von der ersten Textur unterscheidet. Dies kann es ermöglichen, detailliertere und/oder vielfältigere Texturen auf der Grundlage der eingegebenen Texturen zu erstellen.
  • Optional können sich eine oder mehrere weitere Texturen von der ersten Textur dadurch unterscheiden, dass sie eine höhere Auflösung haben und/oder eine andere Klasse von Texturkarten sind und/oder einen Texturbereich enthalten, der in der ersten Textur nicht vorhanden ist. Dies kann es ermöglichen, einen vielfältigeren Satz von Texturen aus der ersten Textur zu erzeugen, was eine ästhetisch ansprechendere Darstellung eines oder mehrerer 3D-Objekte ermöglichen kann.
  • Optional können der eine oder die mehreren Sätze von Initialisierungsdaten einen oder mehrere Anfangssätze von Zufallsrauschen aufweisen, die den Schritt der Erzeugung des einen oder der mehreren Anfangssätze von Zufallsrauschen aufweisen können. Der eine oder die mehreren Sätze von Zufallsrauschen können aus einem oder mehreren Sätzen von Rauschparametern erzeugt werden, wobei der eine oder die mehreren Sätze von Rauschparametern mindestens eines der folgenden Elemente aufweisen können: einen Zufallsrauschgeneratortyp; eine Zufallsrauschgeneratorverteilung; einen Seed- oder Initialisierungsparameter; und/oder eine oder mehrere Richtungskomponenten und/oder ein oder mehrere Rauscherzeugungsverfahren. Optional kann das Verfahren ferner den Schritt des Speicherns des einen oder der mehreren Sätze von Rauschparametern aufweisen. Dies kann es ermöglichen, die eine oder mehrere weitere Textur(en) zufällig zu modifizieren, was zu einem größeren Variationsgrad führen kann.
  • Optional können der eine oder die mehreren Sätze weiterer Initialisierungsdaten einen oder mehrere Sätze weiteren Zufallsrauschens aufweisen, die den Schritt der Erzeugung des einen oder der mehreren Sätze weiteren Zufallsrauschens aufweisen können. Optional können der eine oder die mehreren Sätze von weiterem Zufallsrauschen aus einem oder mehreren Sätzen von weiteren Rauschparametern erzeugt werden, wobei der eine oder die mehreren Sätze von weiteren Rauschparametern mindestens eines der folgenden Elemente aufweisen können: einen Zufallsrauschgeneratortyp; eine Zufallsrauschgeneratorverteilung; einen Seed; und/oder eine Richtungskomponente oder -prozedur. Optional kann das Verfahren ferner den Schritt des Speicherns des einen oder der mehreren Sätze weiterer Rauschparameter aufweisen. Die Erzeugung eines oder mehrerer Sätze weiteren zufälligen Rauschens kann es ermöglichen, verschiedene Sätze von Rauschen auf der Grundlage verschiedener Parameter und/oder auf der Grundlage verschiedener Hardwareeigenschaften eines Systems oder Geräts zu erzeugen, das zur Ausführung des Verfahrens bestimmt ist.
  • Optional kann der eine oder die mehreren Sätze von Initialisierungsdaten eine bekannte Textur aufweisen und/oder wobei der eine oder die mehreren Sätze von weiteren Initialisierungsdaten können eine bekannte Textur aufweisen. Optional kann die bekannte Textur zumindest einen Teil einer zuvor erzeugten ersten Textur und/oder einer zuvor erzeugten einen oder mehreren weiteren Texturen aufweisen. Dies kann es ermöglichen, dass die eine oder mehrere erzeugte Textur(en) der einen oder mehreren bekannten Textur(en), die als Initialisierungsdaten bereitgestellt werden, visuell ähnlich sind.
  • Optional kann das Verfahren auch den Schritt aufweisen, die erste Textur und/oder eine oder mehrere weitere Texturen in einer Texturbibliothek zu speichern, nachdem sie erzeugt wurden. Dadurch können erzeugte Texturen wiederverwendet werden, ohne dass sie neu erzeugt werden müssen.
  • Optional kann die erste Textur und/oder eine oder mehrere der einen oder mehreren weiteren Texturen eine Farbkarte aufweisen. Optional kann die erste Textur und/oder eine oder mehrere der einen oder mehreren Texturen ferner eine oder mehrere zusätzliche Karten aufweisen, die mindestens eine der folgenden Karten aufweisen: eine Normalen-Karte; eine Höhenkarte; eine Höckerkarte; eine Verlagerungskarte; eine spiegelnde Karte; oder eine Tiefenkarte, und/oder wobei die eine oder mehreren zusätzlichen Karten gemeinsam mit der Farbkarte und jeder der anderen einen oder mehreren zusätzlichen Karten optimiert werden können. Dies kann es ermöglichen, eine vielfältigere Textur zu erzeugen, die auf einer Reihe von Faktoren basiert, einschließlich des Objekts, auf das die Textur angewendet werden kann.
  • Optional kann das Verfahren ferner den Schritt der Erzeugung einer oder mehrerer zusätzlicher Karten aus der ersten Textur unter Verwendung eines separaten hierarchischen Algorithmus aufweisen. Optional kann das Verfahren ferner den Schritt des Erzeugens einer oder mehrerer weiterer zusätzlicher Karten aus der zweiten Textur unter Verwendung eines zusätzlichen separaten hierarchischen Algorithmus aufweisen, wobei der zusätzliche separate hierarchische Algorithmus zusätzlich die eine oder mehreren zusätzlichen Karten als eine Eingabe verwenden kann. Optional können die eine oder mehreren zusätzlichen Karten und/oder eine oder mehrere weitere zusätzliche Karten mindestens eine der folgenden Karten aufweisen: eine Normalen-Karte; eine Höhenkarte; eine Höckerkarte; eine Verlagerungskarte; eine spiegelnde Karte; oder eine Tiefenkarte. Dies kann es einem oder mehreren verschiedenen hierarchischen Algorithmen ermöglichen, die einen anderen Satz von Parametern haben können, eine oder mehrere Texturen zu erzeugen, die sich von dem einen oder den mehreren anderen hierarchischen Algorithmen unterscheiden. Der separate hierarchische Algorithmus, der zur Erzeugung der einen oder mehreren zusätzlichen Karten aus der ersten Textur verwendet wird, kann sich von dem ersten hierarchischen Algorithmus unterscheiden oder mit ihm identisch sein.
  • Optional teilen sich der erste und ein oder mehrere der ein oder mehreren weiteren hierarchischen Algorithmen eine oder mehrere Schichten. Einige Ausführungsformen verfügen über eine Reihe von Schichten, die sequentiell, rekurrent, rekursiv, verzweigend oder zusammenführend sein können oder auch nicht, so dass verschiedene Verarbeitungsebenen zu verschiedenen Zeiten auftreten und die Schichten parallel arbeiten können, was eine optimale Effizienz bei der Verbesserung der Auflösung der visuellen Daten gewährleistet.
  • Optional kann die erste Textur und/oder eine oder mehrere weitere Texturen in Echtzeit ausgegeben werden. Die eine oder mehreren weiteren Texturen können eine Vielzahl weiterer Texturen aufweisen, und die hierarchischen Algorithmen können texturspezifisch sein, wobei die hierarchischen Algorithmen aus einer Bibliothek hierarchischer Algorithmen auf der Grundlage von Eigenschaften einer zu erzeugenden Textur ausgewählt werden können. Auf diese Weise können alle erzeugten Texturen schnell angezeigt und auf ein Objekt angewandt werden, und es wird auch eine genauere Erzeugung der Texturen auf der Grundlage der Parameter der hierarchischen Algorithmen und anderer System-/Texturanforderungen ermöglicht.
  • Optional können die hierarchischen Algorithmen mit Hilfe eines erlernten Ansatzes entwickelt werden und/oder die hierarchischen Algorithmen können einen Feed-Forward-Prozess aufweisen und/oder die hierarchischen Algorithmen können einen Teil eines iterativen Optimierungsprozesses bilden. In einigen Ausführungsformen können hierarchische oder nicht-hierarchische Algorithmen wesentlich genauer sein und daher eine genauere Rekonstruktion ermöglichen, z. B. die Erzeugung von visuellen Daten höherer Qualität aus den übertragenen visuellen Daten geringer Qualität, wobei die Qualität z. B. anhand der Auflösung, eines Wahrnehmungsmaßes oder einer Metrik, die bestimmt, dass die Qualität hinreichend ästhetisch ansprechend ist, oder anhand einer niedrigen Reproduktionsfehlerrate im Vergleich zu den ursprünglichen visuellen Daten hoher Qualität gemessen werden kann. In einem anderen Beispiel können die hierarchischen oder nicht-hierarchischen Algorithmen unter Verwendung der Zuverlässigkeitsdaten qualitativ hochwertigere Versionen der visuellen Daten erzeugen. In einigen optionalen Ausführungsformen erweist sich eine down-sampled Version der resultierenden visuellen Daten als gleich oder ähnlich wie eine down-sampled Version der ursprünglichen visuellen Daten. In einigen Ausführungsformen kann ein erlernter Ansatz das hierarchische Modell oder die hierarchischen Modelle für jeden Teil der visuellen Daten wesentlich anpassen.
  • Optional kann jeder der hierarchischen Algorithmen mindestens einen der folgenden Algorithmen aufweisen: einen nichtlinearen hierarchischen Algorithmus, ein neuronales Netz, ein neuronales Faltungsnetz, einen geschichteten Algorithmus, ein rekurrentes neuronales Netz, ein Netz mit Langzeitgedächtnis, ein mehrdimensionales Faltungsnetz, ein Speichernetz oder ein rekurrentes Gated-Netz.
  • Gemäß einem zweiten Aspekt wird ein Verfahren zum Trainieren hierarchischer Algorithmen zur Verwendung bei der Texturerzeugung bereitgestellt, wobei das Verfahren die folgenden Schritte umfasst: Erzeugen einer oder mehrerer Texturen mit einer ersten Auflösung aus einer bekannten Textur mit einer zweiten Auflösung unter Verwendung eines hierarchischen Algorithmus; und Optimieren mindestens einer Teilmenge der Parameter des hierarchischen Algorithmus auf der Grundlage von Ergebnissen des Vergleichs der Statistiken der einen oder mehreren Texturen mit Statistiken einer oder mehrerer weiterer bekannter Texturen mit der ersten Auflösung; wobei die erste Auflösung höher ist als die zweite Auflösung. Dies kann die Erzeugung und Verfeinerung von Texturen durch hierarchische Algorithmen ermöglichen, die dann so optimiert werden, dass sie auf der Grundlage der empfangenen Eingaben und der erzeugten Ausgaben optimalere Texturen erzeugen.
  • Optional kann die Statistik der einen oder mehreren Texturen mit Hilfe eines Deskriptornetzes berechnet werden. Optional kann der hierarchische Algorithmus nach seiner Optimierung in einer Bibliothek von hierarchischen Algorithmen gespeichert werden. Dadurch kann der trainierte hierarchische Algorithmus wiederverwendet werden, ohne dass er neu generiert werden muss.
  • Optional kann der hierarchische Algorithmus so trainiert werden, dass er texturspezifisch ist. Dadurch kann der hierarchische Algorithmus für die Erzeugung einer Textur auf der Grundlage einer bestimmten Textur, die als Eingabe bereitgestellt wird, optimiert werden.
  • Der Begriff hierarchischer Algorithmus wird hier vorzugsweise für einen Algorithmus mit hierarchischer Struktur verwendet. Beispiele für solche Algorithmen sind unter anderem ein nichtlinearer hierarchischer Algorithmus, ein neuronales Netz, ein neuronales Faltungsnetz, ein geschichteter Algorithmus, ein rekurrentes neuronales Netz, ein Netz mit Langzeitgedächtnis, ein mehrdimensionales Faltungsnetz, ein Speichernetz oder ein rekurrentes Gated-Netz.
  • Figurenliste
  • Es werden nun Ausführungsformen beschrieben, nur als Beispiel und unter Bezugnahme auf die beigefügten Zeichnungen mit gleichen Bezugsnummern, in denen:
    • 1 ein Beispiel für ein Netz zur Erzeugung von Multiskalentexturen zeigt;
    • 2 eine Ausführungsform eines Texturerzeugungsprozesses zur Erzeugung mehrerer Texturkartentypen zeigt;
    • 3 eine alternative Ausführungsform eines Texturerzeugungsprozesses zur Erzeugung mehrerer Texturkartentypen veranschaulicht;
    • 4 eine Ausführungsform eines Texturerzeugungsprozesses zur Erzeugung von Erweiterungen einer bekannten Textur zeigt; und
    • 5 ein Gerät mit einem Verarbeitungsgerät und einem Speicher gemäß einer beispielhaften Ausführungsform zeigt.
  • Spezifische Beschreibung
  • Unter Bezugnahme auf die 1 wird nun eine beispielhafte Ausführungsform des Verfahrens zur Erzeugung von Multiskalentexturen beschrieben.
  • Die 1 zeigt ein Beispiel für ein Netz zur Erzeugung von Multiskalentexturen. Initialisierungsdaten 101 werden in einen ersten vortrainierten hierarchischen Algorithmus 103 eingegeben. Der erste hierarchische Algorithmus 103 verwendet die Initialisierungsdaten 101, um eine erste Texturkarte 105 mit einer ersten Auflösung zu erzeugen, die er dann ausgibt. Diese erste Texturkarte 105 wird dann zusammen mit einem weiteren Satz von Initialisierungsdaten 107 als Eingabe für einen zweiten hierarchischen Algorithmus 109 verwendet. Der zweite hierarchische Algorithmus 109 verwendet die erste Texturkarte 105 und die weiteren Initialisierungsdaten 107 zur Erzeugung einer zweiten Texturkarte 111, die dann ausgegeben wird. Die zweite Texturkarte 11 hat eine höhere Auflösung als die erste Texturkarte 105. Dieser Prozess kann dann an der zweiten Texturkarte 111 wiederholt werden, um eine dritte Texturkarte 113 mit einer höheren Auflösung als die zweite Texturkarte 111 zu erzeugen, wobei ein dritter hierarchischer Algorithmus 115 und ein weiterer Satz von Initialisierungsdaten 117 verwendet werden. Im Allgemeinen kann der Prozess N-mal wiederholt werden, um eine Reihe von Texturkarten mit zunehmend höherer Auflösung zu erzeugen. Die Ausgangstexturkarte des m-hierarchischenth Algorithmus wird zusammen mit einem neuen Satz von Initialisierungsdaten als Eingabe für den (m+1)th hierarchischen Algorithmus verwendet, bis Texturkarten mit allen erforderlichen Auflösungen erzeugt wurden oder bis die höchste Auflösung, für die die hierarchischen Algorithmen trainiert wurden, erreicht ist.
  • Die bei jedem Schritt des Prozesses verwendeten Initialisierungsdaten umfassen Zufallsrauschen und/oder ein bekanntes Texturmuster. Die Initialisierungsdaten können gespeichert werden, um in Zukunft identische Texturen zu erzeugen. Dies ist erforderlich, wenn ein Benutzer, z. B. ein Spieler in einem Spiel, dieselbe Textur in demselben Kontext zu einem späteren Zeitpunkt betrachtet, um die zeitliche Konsistenz der Objekttextur zu gewährleisten. Die Eigenschaften der Initialisierungsdaten, wie z. B. die Menge des vorhandenen Rauschens, können geändert werden, um eine gewisse Kontrolle über die erzeugten Texturen zu ermöglichen. Alternativ kann es sich bei den Initialisierungsdaten um einen oder mehrere Sätze von Parametern für die Erzeugung von Zufallsrauschen handeln, z. B. den Typ und/oder die Verteilung des Zufallsgenerators, einen Startwert für die Erzeugung und/oder eine Richtungskomponente oder eine Prozedur für das Vorgehen bei der Rauscherzeugung. Die Verwendung einer bekannten Textur als Initialisierungsdaten ermöglicht die Erstellung von Variationen eines bestehenden Kunstwerks, das von einem Künstler geschaffen wurde.
  • In einer Ausführungsform bestehen die Ausgabetexturen aus Farbkarten, wie z. B. einer RGB-Karte. Diese Ausgabetexturen können zur späteren Verwendung in einer Bibliothek gespeichert werden, um zu vermeiden, dass sie jedes Mal neu erzeugt werden müssen, wenn sie benötigt werden. In einigen Ausführungsformen speichert diese Bibliothek die erzeugten Texturen nur vorübergehend, z. B. nur solange sich ein Spieler eines Computerspiels in der Nähe des Gebiets befindet, für das die Texturen erzeugt wurden.
  • Die Erzeugung der Texturen in mehreren Auflösungsstufen kann ad hoc und spontan erfolgen, um eine bestimmte Textur in einer bestimmten Auflösungsstufe zu erzeugen. Beispielsweise kann sich ein Spieler während eines Computerspiels einem texturierten Objekt im Spiel aus einer gewissen Entfernung nähern. In dieser Entfernung wird die Texturkarte für das Objekt möglicherweise nur in einer niedrigen Auflösung benötigt, so dass nur die erste Texturkarte erzeugt wird. Wenn sich der Spieler dem Objekt nähert, sind Texturkarten mit höherer Auflösung erforderlich, um die visuelle Qualität des texturierten Objekts zu erhalten, und diese Texturkarten müssen mit den zuvor erzeugten gröberen Texturkarten übereinstimmen. Diese höher aufgelösten Texturkarten werden von den hierarchischen Algorithmen aus den gröberen Texturkarten und den Initialisierungsdaten generiert, sobald sie für die Anzeige für den Spieler erforderlich sind - in diesem Beispiel, wenn der Spieler sich dem Textur-Objekt nähert. Das Netz der hierarchischen Algorithmen erzeugt also eine Textur auf einer groben Skala und verfeinert sie dann selektiv, wenn sie benötigt wird.
  • Die Reihe der hierarchischen Algorithmen wird an bekannten Mengen von Texturkarten einer bestimmten Textur mit unterschiedlichen Auflösungen trainiert. Der Satz enthält bekannte Texturkarten mit einer Vielzahl von Auflösungen, die jeweils durch eine ganze Zahl, s, indiziert sind, bis zur Gesamtzahl der Texturauflösungen, die von der Reihe hierarchischer Algorithmen ausgegeben werden, S.
  • Für jeden hierarchischen Algorithmus in der Abfolge der hierarchischen Algorithmen werden eine bekannte Texturkarte und ein Satz von Zufallsrauschen eingegeben. Die Texturkarteausgbe des sth hierarchischen Algorithmus in der Reihe wird als ƒ θ s ( x s 1 , Z s 1 )
    Figure DE202017007534U1_0001
    bezeichnet, wobei xs-1 eine bekannte Texturkarte mit der Auflösung ist, die von dem (s - 1)th hierarchischen Algorithmus in der Folge ausgegeben wird, und Zs-1 die Menge des zufälligen Rauschens ist, das als Eingabe für den sth hierarchischen Algorithmus verwendet wird. Die Parameter der einzelnen hierarchischen Algorithmen, θ, sind die Parameter, die variiert werden, um die hierarchischen Algorithmen zu optimieren.
  • Zum Zeitpunkt des Trainings wird die von jedem der hierarchischen Algorithmen in der Sequenz ausgegebene Texturkarte in ein Deskriptornetz eingegeben, das einige statistische Eigenschaften, Ψ ( ƒ θ s ( x s 1 , Z s 1 ) ) ,
    Figure DE202017007534U1_0002
    der erzeugten Texturkarten berechnet. Diese werden mit den statistischen Eigenschaften der bekannten Texturkarten mit der gleichen Auflösung verglichen, Ψ(xs). Die hierarchischen Algorithmen werden optimiert, indem z. B. ein Erwartungswert (näherungsweise) minimiert wird: E = E [ s = 1 S Ψ ( ƒ θ s ( x s 1 , Z s 1 ) ) Ψ ( x s ) 2 ]
    Figure DE202017007534U1_0003
  • Es können jedoch auch andere Zielfunktionen verwendet werden. Beim Training kann es vorkommen, dass nur eine Teilmenge der Parameter der hierarchischen Algorithmen zu einem bestimmten Zeitpunkt optimiert wird.
  • Tatsächlich besteht das Trainingsziel besteht, Bildstatistiken in mehreren Maßstäben abzugleichen. Nach dem Training können die hierarchischen Algorithmen in einer Bibliothek mit hierarchischen Algorithmen gespeichert werden, zusammen mit Metadaten, die sich auf die Textursätze beziehen, auf denen sie trainiert wurden. Diese Metadaten können z. B. die Textur, auf der der hierarchische Algorithmus trainiert wurde, die Auflösungen der Trainingstexturen und/oder die vom hierarchischen Algorithmus ausgegebenen Texturkartentypen aufweisen.
  • Während die obige Ausführungsform in Bezug auf die Erzeugung von Texturkarten mit unterschiedlichen Auflösungen beschrieben wurde, kann die Methode auch verwendet werden, um Texturkarten zu erzeugen, die sich stattdessen in anderen Eigenschaften voneinander unterscheiden. Zum Beispiel können die zweite und möglicherweise weitere Texturkarten, die mit dieser Methode erzeugt werden, die gleiche Auflösung wie die erste Texturkarte haben, aber zusätzliche visuelle Inhalte enthalten, die in der ersten Texturkarte nicht vorhanden sind.
  • Die 2 veranschaulicht eine Ausführungsform eines Texturerzeugungsprozesses zur Erzeugung mehrerer Texturkartentypen. In dieser Ausführungsform werden ein oder mehrere Sätze von Initialisierungsdaten 201, wie z. B. Zufallsrauschen, ein oder mehrere Sätze von Parametern, die zur Erzeugung von Zufallsrauschen verwendet werden können, oder eine bekannte Textur, als Eingabe in einen ersten hierarchischen Algorithmus 203 verwendet. Der erste hierarchische Algorithmus 203 gibt einen ersten Satz von Texturkarten 205 aus, der eine Farbkarte, z. B. eine RGB-Karte, und eine oder mehrere weitere zusätzliche Karten enthält, z. B. mindestens eine der folgenden Karten: eine Normalkarte, eine Höhenkarte, eine HöckerKarte, eine Verlagerungskarte, eine Spiegelkarte und/oder eine Tiefenkarte. Der erste Satz von Texturkarten 205 kann dann als Eingabe für einen zweiten hierarchischen Algorithmus 207 zusammen mit einem neuen Satz von Initialisierungsdaten 209 verwendet werden. Der zweite hierarchische Algorithmus 207 wird einen weiteren Satz von Texturen 211 ausgeben. Mindestens ein Teil des weiteren Satzes von Texturen 211 unterscheidet sich von dem ersten Satz von Texturen 203. Dieser Unterschied kann beispielsweise darin bestehen, dass der weitere Satz von Texturen 211 eine höhere Auflösung hat als der erste Satz von Texturen 203, dass er Texturinhalte enthält, die im ersten Satz von Texturen 203 nicht vorhanden sind, und/oder dass mindestens eine der zusätzlichen Texturkarten von einem anderen Typ ist als die im ersten Satz von Texturkarten 203.
  • In einigen Ausführungsformen kann der Satz weiterer Texturen 211, der von dem weiteren hierarchischen Algorithmus ausgegeben wird, als Eingabe für einen anderen hierarchischen Algorithmus verwendet werden, um weitere Sätze weiterer Texturkarten zu erzeugen. Dies kann iterativ wiederholt werden, wobei der von dem hierarchischen Algorithmus (n - 1)Ih in der Sequenz ausgegebene Satz von Texturen und ein Satz von Initialisierungsdaten als Eingabe für den nth hierarchischen Algorithmus in der Sequenz verwendet werden. Der nth hierarchische Algorithmus wird dann den nächsten Satz von Texturen ausgeben.
  • Die hierarchischen Algorithmen, die in diesem Modell verwendet werden, werden auf Sätze bekannter Texturkarten trainiert, y. Der Satz enthält bekannte Texturkarten mit einer Vielzahl von Eigenschaften, die jeweils durch eine ganze Zahl, s, indiziert sind, bis zur Gesamtzahl, S. Die Sätze bekannter Texturkarten umfassen sowohl Farbkarten, wie z. B. RGB-Karten, als auch bekannte zusätzliche Karten, wie oben beschrieben. Zu Optimierungszwecken wird jede der zusätzlichen Texturkarten, die auch als zusätzliche Kanäle bezeichnet werden, in ein Deskriptornetz eingegeben, um statistische Eigenschaften dieser Texturkarte zu berechnen. Das Deskriptornetz behandelt jeden dieser Kanäle bei der Erstellung der Statistiken als RGB-Kanal.
  • Zum Beispiel, sei y ein M × N Bild/Satz von Texturkarten mit zusätzlichen Kanälen, die zusätzlichen Texturkartentypen entsprechen - d. h. statt mit M × N × 3 Dimensionen, wie es bei einer reinen RGB-Karte der Fall wäre, wird y M × N × D Kanäle haben. Jeder der Typen von Texturkarten in y entspricht drei von D verfügbaren Kanälen. Zum Beispiel bezeichnet y1:3 die RGB-Kanäle und y4:6 könnte die Normalen-Karte-Kanäle bezeichnen.
  • Für jeden hierarchischen Algorithmus in der Folge der zu trainierenden hierarchischen Algorithmen wird der bekannte Satz von Texturkarten und ein Satz von Zufallsrauschen eingegeben. Die Texturkarte wird in einen bestimmten Satz von Kanälen (d bis d + 2) des sth hierarchischen Algorithmus in der Reihe durch ƒ θ s ( y s 1 , Z s 1 ) d : d + 2
    Figure DE202017007534U1_0004
    bezeichnet, wobei ys-1 eine bekannte Texturkarte mit den gewünschten Eigenschaften der Ausgabe des (s - 1)th hierarchischen Algorithmus in der Folge und Zs-1 die Menge des zufälligen Rauschens ist, das als Eingabe für den sth hierarchischen Algorithmus verwendet wird. Die Parameter der einzelnen hierarchischen Algorithmen, θ, sind die Parameter, die variiert werden, um die hierarchischen Algorithmen zu optimieren.
  • Die Kanäle, die mit jeder der von den hierarchischen Algorithmen in der zu trainierenden Sequenz ausgegebenen Texturkarten verbunden sind, werden in ein Deskriptornetz eingegeben, das einige statistische Eigenschaften, Ψ ( ƒ θ s ( y s 1 , Z s 1 ) d : d + 2 ) ,
    Figure DE202017007534U1_0005
    der erzeugten Texturkarten berechnet. Diese werden mit den statistischen Eigenschaften der bekannten Texturkarten mit den gewünschten Eigenschaften in diesem Kanal verglichen, Ψ ( y d : d + 2 s ) .
    Figure DE202017007534U1_0006
    Die hierarchischen Algorithmen werden optimiert, indem z. B. ein Erwartungswert minimiert wird: E = E [ s = 1 S d = 1 D 3 + 1 Ψ ( ƒ θ s ( y s 1 , Z s 1 ) d : d + 2 ) Ψ ( y d : d + 2 s ) 2 ]
    Figure DE202017007534U1_0007
  • Zur Trainingszeit kann es vorkommen, dass nur eine Teilmenge der Parameter der hierarchischen Algorithmen zu einem bestimmten Zeitpunkt optimiert wird.
  • Im Allgemeinen können beliebige Teilmengen von Kanälen ausgewählt werden, um die hierarchischen Algorithmen zu optimieren; die im Erwartungswert verwendeten Kanäle müssen nicht mit den Typen der verwendeten Texturkarten übereinstimmen.
  • Nach dem Training können die hierarchischen Algorithmen in einer Bibliothek von hierarchischen Algorithmen gespeichert werden, zusammen mit Metadaten, die sich auf die Textursätze beziehen, auf denen sie trainiert wurden. Diese Metadaten können z. B. die Textur, auf der der hierarchische Algorithmus trainiert wurde, die Auflösungen der Trainingstexturen und/oder die vom hierarchischen Algorithmus ausgegebenen Texturkartentypen aufweisen.
  • 3 veranschaulicht eine alternative Ausführungsform eines Texturerzeugungsprozesses zur Erzeugung mehrerer Texturkartentypen. In dieser Ausführungsform werden ein oder mehrere Sätze von Initialisierungsdaten 301, wie z. B. Zufallsrauschen, ein oder mehrere Sätze von Parametern, die zur Erzeugung von Zufallsrauschen verwendet werden können, oder eine bekannte Textur, als Eingabe in einen ersten hierarchischen Algorithmus 303 verwendet. Der erste hierarchische Algorithmus 303 gibt eine erste Texturkarte 305, z. B. eine Farbkarte, aus. Diese erste Texturkarte 305 wird als Eingabe für den hierarchischen Algorithmus A 307 verwendet, der eine oder mehrere weitere Texturkarten 309 eines anderen Typs als die erste Texturkarte 303, aber mit der gleichen Auflösung wie die erste Texturkarte 303 erzeugt. Handelt es sich bei der ersten Texturkarte 303 beispielsweise um eine Farbkarte, erzeugt der hierarchische Algorithmus A 307 aus der Farbkarte eine Normalen-Karte.
  • In einigen Ausführungsformen wird die erste Texturkarte 303 zusammen mit einem neuen Satz von Initialisierungsdaten 311 als Eingabe für einen zweiten hierarchischen Algorithmus 313 verwendet, um eine zweite Texturkarte 315 zu erzeugen, die vom gleichen Typ wie die erste Texturkarte 305 ist, aber eine höhere Auflösung als die erste Texturkarte 305 aufweist. Diese zweite Texturkarte 315 wird als Eingabe für den hierarchischen Algorithmus B 317 verwendet, der eine oder mehrere weitere Texturkarten 319 eines anderen Typs als die zweite Texturkarte 315, aber mit der gleichen Auflösung wie die zweite Texturkarte 315 erzeugt. Optional können die weiteren Texturkarten 309, die vom hierarchischen Algorithmus A 307 ausgegeben werden, auch als Eingabe für den hierarchischen Algorithmus B 317 verwendet werden.
  • In einigen Ausführungsformen kann das Verfahren iterativ wiederholt werden, wobei die vom hierarchischen Algorithmus (n - 1)th in der Sequenz ausgegebene Texturkarte und ein Satz von Initialisierungsdaten als Eingabe für den nth hierarchischen Algorithmus in der Sequenz verwendet werden. Der nth hierarchische Algorithmus gibt dann den nächsten Satz von Texturen mit einer höheren Auflösung an die (n - 1)th Texturkarte aus. Die nth Texturkarte wird dann als Eingabe für einen weiteren hierarchischen Algorithmus verwendet, der eine oder mehrere weitere Texturkarten eines anderen Typs als die nth Texturkarte erzeugt, aber mit der gleichen Auflösung wie die nth Texturkarte. Diese zusätzlichen hierarchischen Algorithmen können optional auch die eine oder die mehreren weiteren Texturkarten, die aus der (n - 1)th Texturkarte generiert wurden, als Eingabe verwenden.
  • Im Wesentlichen gibt es einen separaten hierarchischen Algorithmus, der eine Texturkarte mit einer bestimmten Auflösung als Eingabe nimmt und eine Texturkarte mit derselben Auflösung, aber von einem anderen Typ als die eingegebene Texturkarte ausgibt.
  • In dieser Ausführungsform werden die hierarchischen Algorithmen, die zur Erzeugung der Texturkarten aus Zufallsrauschen und zuvor erzeugten Texturkarten verwendet werden, wie z. B. der hierarchische Algorithmus 1 und der hierarchische Algorithmus 2, wie in Bezug auf die Ausführungsform in 4 beschrieben, trainiert. Die zusätzlichen hierarchischen Algorithmen, wie der hierarchische Algorithmus A und der hierarchische Algorithmus B, werden separat trainiert.
  • Die weitere Texturkarteausgabedes sth zusätzlichen hierarchischen Algorithmus in der Reihe wird bezeichnet mit g ϕ s ( x s , y s 1 ) .
    Figure DE202017007534U1_0008
    ist eine bekannte Texturkarte desselben Typs wie die erste Texturkarte und mit der Auflösung der weiteren Texturkarte, die von dem trainierten zusätzlichen hierarchischen Algorithmus ausgegeben wird. ys-1 bezeichnet eine oder mehrere bekannte weitere Texturkarte(n) mit einer geringeren Auflösung als die weitere Texturkarte, die von dem zusätzlichen hierarchischen Algorithmus, der trainiert wird, ausgegeben wird. Φ bezeichnet einen Satz von Parametern des zusätzlichen hierarchischen Algorithmus, die während des Trainingsprozesses optimiert werden oder optimiert wurden.
  • Ein Deskriptornetz wird auf die weitere Texturkarte angewandt, die von dem zu trainierenden hierarchischen Algorithmus ausgegeben wird, um eine Reihe statistischer Eigenschaften der weiteren Texturkarte zu berechnen, Ψ ( g ϕ s ( x s , y s 1 ) ) .
    Figure DE202017007534U1_0009
    Diese werden mit statistischen Eigenschaften bekannter weiterer Texturkarten mit der gleichen Auflösung wie die ausgegebene weitere Texturkarte, Ψ(ys), verglichen, um den Satz von Parametern des zusätzlichen hierarchischen Algorithmus zu optimieren, Φ. Die hierarchischen Algorithmen werden z.B. durch Minimierung eines Erwartungswertes optimiert: E = E [ s = 1 S Ψ ( g ϕ s ( x s , y s 1 ) ) Ψ ( y s ) 2 ]
    Figure DE202017007534U1_0010
  • Zur Trainingszeit kann es vorkommen, dass nur eine Teilmenge der Parameter der hierarchischen Algorithmen zu einem bestimmten Zeitpunkt optimiert wird.
  • Nach dem Training können die zusätzlichen hierarchischen Algorithmen in einer Bibliothek von hierarchischen Algorithmen gespeichert werden, zusammen mit Metadaten, die sich auf die Textursätze beziehen, auf denen sie trainiert wurden. Diese Metadaten können beispielsweise die Textur, auf der der zusätzliche hierarchische Algorithmus trainiert wurde, die Auflösungen der Trainingstexturen und/oder die vom zusätzlichen hierarchischen Algorithmus ausgegebenen Texturkartentypen umfassen.
  • Die Erzeugung der Texturkarten kann in Echtzeit und ad hoc erfolgen, wenn der Bedarf an neuen Texturen offensichtlich wird. Die Texturen werden dann generiert, wenn beispielsweise ein Spieler oder Betrachter sie zum ersten Mal sieht, anstatt dass genaue Texturen im Voraus festgelegt werden. Dadurch kann jedes Mal, wenn die Textur generiert wird, ein völlig neues Aussehen erzeugt werden, was beispielsweise dazu führen kann, dass die Spielwelt jedes Mal anders aussieht, wenn ein Spieler ein neues Spiel beginnt.
  • Die 4 zeigt eine Ausführungsform eines Texturerzeugungsprozesses zur Erzeugung von Erweiterungen einer bekannten Textur. In dieser Ausführungsform wurden Texturkarten mit unterschiedlichen Auflösungen (401 und 403) zuvor mit einer der in den 1 bis 3 beschriebenen Ausführungsformen erzeugt. Ein neuer Texturkartenbereich 405 wird zur Erzeugung angefordert, der sich teilweise mit einer zuvor erzeugten Texturkarte 403 mit einer bestimmten Auflösung überschneidet. Die entsprechenden überlappenden Abschnitte der Texturkarte mit gröberen Auflösungen 407 werden zusammen mit den entsprechenden Abschnitten der Initialisierungsdaten bestimmt, die zur Erzeugung der Texturkarten mit höherer Auflösung aus den Texturkarten mit niedrigerer Auflösung 409 verwendet werden. Die Initialisierungsdaten, die zur Erzeugung der zuvor erzeugten Texturkarten verwendet wurden, wurden gespeichert, so dass die früheren Initialisierungsdaten in diesem Verfahren wiederverwendet werden können.
  • Im Allgemeinen sind nicht alle gröberen Texturkarten, die zur Erstellung der angeforderten Texturkarte erforderlich sind, bereits erstellt worden. Diese werden daher unter Verwendung eines neuen ersten Satzes von Initialisierungsdaten 411 erzeugt, der mit dem ursprünglichen Satz von Initialisierungsdaten in den Überlappungsbereichen 413 identisch ist. Dieser neue erste Satz von Initialisierungsdaten 411 wird in den ersten hierarchischen Algorithmus 415 eingegeben, der eine neue erste Texturkarte 417 ausgibt, die mit der zuvor erzeugten ersten Texturkarte in den überlappenden Regionen 407 identisch ist, aber neu erzeugte Texturen in den nicht überlappenden Regionen enthält.
  • Die neue erste Texturkarte 417 wird dann in einen zweiten hierarchischen Algorithmus 419 eingegeben, zusammen mit einem zusätzlichen Satz neuer Initialisierungsdaten 421, die in den überlappenden Regionen 409 mit den Initialisierungsdaten identisch sind, die bei der Erzeugung der zweiten Texturkarte 423 verwendet wurden. Dies sind die Initialisierungsdaten, von denen die angeforderte neue Texturkarte direkt abhängt. Die nicht überlappenden Regionen enthalten neu generierte zusätzliche Initialisierungsdaten, wie z. B. neues Zufallsrauschen. Das Ergebnis dieses zweiten hierarchischen Algorithmus 419 ist eine zweite neue Texturkarte 405, die in den überlappenden Regionen 425 mit der zuvor erzeugten zweiten Texturkarte 403 identisch ist, aber in den nicht überlappenden Regionen neu erzeugte Texturen enthält.
  • Die Prozesse können iterativ wiederholt werden, um neu angeforderte Texturkarten in jedem der möglichen Auflösungsmaßstäbe zu erzeugen, die mit den zuvor berechneten Texturkarten in den sich überlappenden Regionen identisch sind.
  • Die Generierung der neuen Texturkartenregionen kann in Echtzeit und ad hoc erfolgen, wenn sich die Notwendigkeit ergibt, die zuvor generierten Texturen zu erweitern. Ein Beispiel: Ein Spieler in einem Spiel bewegt sich in einer Spielwelt. Die Texturkarten werden zunächst erstellt, um ein Objekt in der Spielwelt zu rendern, wenn es zum ersten Mal gesehen wird. Wenn sich jedoch die Ansicht des Objekts ändert, z. B. wenn der Spieler sich daran vorbeibewegt, sind neue Texturen erforderlich, um zuvor ungesehene Teile des Objekts darzustellen, die mit den bereits auf das Objekt angewendeten Texturen übereinstimmen. Die Methode berechnet diese nach Bedarf.
  • Die in 4 beschriebene Ausführungsform kann mit jeder der in den 1 bis 3 beschriebenen Ausführungsformen kombiniert werden, z. B. können die weiteren Texturkarten in 3 für die angeforderte neue Texturkarte durch Bestimmung der bekannten Texturkarten in den überlappenden Regionen erzeugt werden.
  • In jeder der in den 1 bis 4 beschriebenen Ausführungsformen können die verwendeten hierarchischen Algorithmen so trainiert werden, dass sie texturspezifisch sind. Beispielsweise kann ein Satz hierarchischer Algorithmen speziell eine bestimmte Art von Gesteinstextur oder eine bestimmte Art von Holztextur ausgeben. Die hierarchischen Algorithmen können in einer Bibliothek hierarchischer Algorithmen gespeichert werden, die durch Metadaten indiziert sind, zu denen auch die Art der Textur gehört, für deren Ausgabe sie trainiert wurden. Bei der Verwendung werden die hierarchischen Algorithmen auf der Grundlage der gewünschten zu erzeugenden Textur aus dieser Bibliothek ausgewählt.
  • Alternativ oder zusätzlich können die hierarchischen Algorithmen in einer Feed-Forward-Methode verwendet werden, wie z. B. ein vortrainiertes Texturnetz. In diesem Fall werden die hierarchischen Algorithmen so trainiert, dass sie Texturkarten ausgeben, wenn sie eine Eingabe erhalten (z. B. eine Textur/zufälliges Rauschen). Pro Textur wird ein hierarchischer Algorithmus/Netz trainiert. Zur Laufzeit wird die Eingabe durch das Netz in einer Feed-Forward-Methode geleitet, um eine Ausgabe zu erhalten. Zum Beispiel kann eine Textur und/oder ein zufälliges Rauschmuster als gegebene Eingabe verwendet werden, und wenn der hierarchische Algorithmus für die Textur oder das zufällige Rauschmuster trainiert wurde, kann die Eingabe dem Algorithmus in einer Vorwärtsbewegung zugeführt werden.
  • Alternativ oder zusätzlich können die hierarchischen Algorithmen als Teil eines iterativen Optimierungsprozesses verwendet werden, bei dem Texturen generiert werden, um Eigenschaften gegebener vorhandener Texturen als Eingabe darzustellen. Hier sind mindestens zwei Eingaben erforderlich, die eine oder mehrere Texturen und/oder ein oder mehrere zufällige Rauschmuster darstellen können. Die Ausgabe wird zur Laufzeit iterativ optimiert, so dass sie ähnliche Eigenschaften wie die eingegebene(n) Texturkarte(n) aufweist und eine synthetische Version des Inhalts aller visuellen Eingabedaten erzeugt, die den hierarchischen Algorithmen zur Verfügung gestellt werden.
  • Die hier beschriebenen Verfahren können ferngesteuert am Ausgabeziel der Texturkarten durchgeführt werden. Die Verfahren können auch in einem verteilten Netz durchgeführt werden.
  • Jede hier beschriebene Methode oder Funktion kann entweder in Software oder Hardware implementiert werden.
  • Jedes hier beschriebene Systemmerkmal kann auch als Verfahrensmerkmal bereitgestellt werden und umgekehrt. Wie hierin verwendet, können Mittel- und Funktionsmerkmale alternativ in Form ihrer entsprechenden Struktur ausgedrückt werden.
  • Jedes Merkmal eines Aspekts der Erfindung kann auf andere Aspekte der Erfindung angewendet werden, und zwar in jeder geeigneten Kombination. Insbesondere können Verfahrensaspekte auf Systemaspekte angewandt werden, und umgekehrt. Darüber hinaus können beliebige, einige und/oder alle Merkmale eines Aspekts auf beliebige, einige und/oder alle Merkmale eines anderen Aspekts in jeder geeigneten Kombination angewandt werden.
  • Es sollte auch gewürdigt werden, dass bestimmte Kombinationen der verschiedenen Merkmale, die in jedem Aspekt der Erfindung beschrieben und definiert sind, unabhängig voneinander implementiert und/oder bereitgestellt und/oder verwendet werden können.
  • Einige der Ausführungsbeispiele werden als Prozesse oder Methoden beschrieben, die als Diagramme dargestellt sind. Obwohl die Diagramme die Vorgänge als sequenzielle Prozesse beschreiben, können die Vorgänge parallel, gleichzeitig oder simultan durchgeführt werden. Darüber hinaus kann die Reihenfolge der Vorgänge geändert werden. Die Prozesse können beendet werden, wenn ihre Operationen abgeschlossen sind, sie können aber auch zusätzliche Schritte enthalten, die in den Figuren nicht dargestellt sind. Die Prozesse können Methoden, Funktionen, Prozeduren, Subroutinen, Unterprogrammen usw. entsprechen.
  • Die oben beschriebenen Methoden, von denen einige in den Diagrammen dargestellt sind, können durch Hardware, Software, Firmware, Middleware, Mikrocode, Hardwarebeschreibungssprachen oder eine beliebige Kombination davon implementiert werden. Bei der Implementierung in Software, Firmware, Middleware oder Mikrocode kann der Programmcode oder die Codesegmente zur Durchführung der betreffenden Aufgaben in einem maschinen- oder computerlesbaren Medium wie einem Speichermedium gespeichert werden. Eine Verarbeitungsvorrichtung kann die entsprechenden Aufgaben ausführen.
  • Die 5 zeigt eine Vorrichtung 500 mit einer Verarbeitungsvorrichtung 502 und einem Speicher 504 gemäß einer beispielhaften Ausführungsform. Im Speicher 504 kann ein computerlesbarer Code 506 gespeichert sein, der, wenn er von der Verarbeitungsvorrichtung 502 ausgeführt wird, die Vorrichtung 500 veranlassen kann, die hier beschriebenen Verfahren durchzuführen, zum Beispiel ein Verfahren gemäß den 1 bis 4.
  • Die Verarbeitungsvorrichtung 502 kann jede geeignete Zusammensetzung haben und einen oder mehrere Prozessoren jedes geeigneten Typs oder jeder geeigneten Kombination von Typen aufweisen. Der Begriff „Verarbeitungsvorrichtung“ sollte so verstanden werden, dass er Computer mit unterschiedlichen Architekturen wie Einzel-/Multiprozessorarchitekturen und Sequenzer/Parallelarchitekturen einschließt. So kann die Verarbeitungsvorrichtung beispielsweise ein programmierbarer Prozessor sein, der Computerprogrammanweisungen interpretiert und Daten verarbeitet. Die Verarbeitungsvorrichtung kann mehrere programmierbare Prozessoren aufweisen. Alternativ kann es sich bei der Verarbeitungsvorrichtung z. B. um programmierbare Hardware mit eingebetteter Firmware handeln. Die Verarbeitungsvorrichtung kann alternativ oder zusätzlich Grafikverarbeitungseinheiten (GPUs) oder eine oder mehrere spezialisierte Schaltungen wie feldprogrammierbare Gate-Arrays (FPGA), anwendungsspezifische integrierte Schaltungen (ASICs), Signalverarbeitungsgeräte usw. aufweisen. In einigen Fällen kann die Verarbeitungsvorrichtung auch als Computervorrichtung oder Verarbeitungsmittel bezeichnet werden.
  • Die Verarbeitungsvorrichtung 502 ist mit dem Speicher 504 gekoppelt und kann Daten in den/aus dem Speicher 504 lesen/schreiben. Der Speicher 504 kann eine einzelne Speichereinheit oder eine Vielzahl von Speichereinheiten aufweisen, in denen die computerlesbaren Anweisungen (oder der Code) gespeichert sind. Der Speicher kann beispielsweise sowohl einen flüchtigen als auch einen nichtflüchtigen Speicher aufweisen. In solchen Beispielen können die computerlesbaren Anweisungen/Programmcode im nichtflüchtigen Speicher gespeichert werden und können von der Verarbeitungsvorrichtung unter Verwendung des flüchtigen Speichers zur vorübergehenden Speicherung von Daten oder Daten und Anweisungen ausgeführt werden. Beispiele für flüchtige Speicher sind RAM, DRAM, SDRAM usw. Beispiele für nichtflüchtige Speicher sind ROM, PROM, EEPROM, Flash-Speicher, optische Speicher, magnetische Speicher usw.
  • Ein Algorithmus, wie er hier und allgemein verwendet wird, ist eine in sich konsistente Folge von Schritten, die zu einem gewünschten Ergebnis führen. Die Schritte sind solche, die physikalische Manipulationen von physikalischen Größen erfordern. Normalerweise, wenn auch nicht notwendigerweise, haben diese Größen die Form von optischen, elektrischen oder magnetischen Signalen, die gespeichert, übertragen, kombiniert, verglichen und anderweitig manipuliert werden können. Zuweilen hat es sich als zweckmäßig erwiesen, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Begriffe, Zahlen oder Ähnliches zu bezeichnen, hauptsächlich aus Gründen des allgemeinen Sprachgebrauchs.
  • Die in den dargestellten Ausführungsformen beschriebenen Methoden können als Programmmodule oder funktionale Prozesse einschließlich Routinen, Programmen, Objekten, Komponenten, Datenstrukturen usw. implementiert werden, die bestimmte Aufgaben ausführen oder bestimmte Funktionen implementieren, und können mit vorhandener Hardware implementiert werden. Solche vorhandene Hardware kann einen oder mehrere Prozessoren (z. B. eine oder mehrere Zentraleinheiten), digitale Signalprozessoren (DSPs), anwendungsspezifische integrierte Schaltungen, feldprogrammierbare Gate-Arrays (FPGAs), Computer oder Ähnliches aufweisen.
  • Sofern nicht ausdrücklich anders angegeben oder aus der Diskussion ersichtlich, beziehen sich Begriffe wie Verarbeitung oder Berechnung oder Berechnung oder Bestimmung oder ähnliches auf die Aktionen und Prozesse eines Computersystems oder einer ähnlichen elektronischen Computervorrichtung. Es ist auch zu beachten, dass softwareimplementierte Aspekte der Ausführungsbeispiele auf einer Art nicht-transitorischem Programmspeichermedium kodiert oder über eine Art von Übertragungsmedium implementiert sein können. Das Programmspeichermedium kann magnetisch (z. B. eine Diskette oder ein Festplattenlaufwerk) oder optisch (z. B. ein Nur-Lese-Speicher auf einer Compact Disk oder eine CD-ROM) sein und kann einen Nur-Lese- oder Direktzugriff haben. Ebenso kann das Übertragungsmedium eine verdrillte Zweidrahtleitung, ein Koaxialkabel, eine optische Faser oder ein anderes geeignetes, in der Technik bekanntes Übertragungsmedium sein. Die Ausführungsbeispiele sind durch diese Aspekte in keiner Weise eingeschränkt.

Claims (30)

  1. Vorrichtung, die einen oder mehrere Computer aufweist, wobei der eine oder die mehreren Computer ein erstes neuronales Farbkartennetz (303), ein zweites neuronales Farbkartennetz (313), ein erstes zusätzliches neuronales Kartennetz (307) und ein zweites zusätzliches neuronales Kartennetz (317) speichern, wobei der eine oder die mehreren Computer so konfiguriert sind, dass sie Operationen durchführen, die Folgendes aufweisen: Erzeugen einer ersten Farbkarte (305) aus einem ersten Satz von Initialisierungsdaten (301) durch das erste neuronale Farbkartennetz; Erzeugen einer ersten zusätzlichen Karte (309) aus der ersten Farbkarte durch das erste zusätzliche neuronale Kartennetz, wobei die erste zusätzliche Karte die gleiche Auflösung wie die erste Farbkarte aufweist; Erzeugen einer zweiten Farbkarte (315) aus der ersten Farbkarte und einem zweiten Satz von Initialisierungsdaten (311) durch das zweite neuronale Farbkartennetz, wobei die zweite Farbkarte eine höhere Auflösung als die erste Farbkarte aufweist; und Erzeugen einer zweiten zusätzlichen Karte (319) aus der zweiten Farbkarte durch das zweite zusätzliche neuronale Kartennetz, wobei die zusätzliche Normalen-Karte die gleiche Auflösung hat wie die zweite Farbkarte, wobei die erste zusätzliche Karte und die zweite zusätzliche Karte jeweils eines oder mehrere der folgenden aufweisen: eine Normalen-Karte; eine spiegelnde Karte; eine Verlagerungskarte; eine Höckerkarte; eine Tiefenkarte; und/oder eine Höhenkarte.
  2. Die Vorrichtung nach Anspruch 1, wobei die zweite zusätzliche Karte (319) ferner aus der ersten zusätzlichen Karte (309) erzeugt wird.
  3. Die Vorrichtung nach einem der Ansprüche 1 oder 2, wobei der erste Satz von Initialisierungsdaten (301) und/oder der zweite Satz von Initialisierungsdaten (311) einen oder mehrere entsprechende Sätze von Zufallsrauschen oder einen oder mehrere entsprechende Sätze von Parametern zur Erzeugung von Zufallsrauschen aufweist.
  4. Die Vorrichtung nach einem der vorhergehenden Ansprüche, wobei der erste Satz von Initialisierungsdaten (301) eine bekannte Textur aufweist.
  5. Die Vorrichtung nach einem der vorhergehenden Ansprüche, wobei die Operationen ferner Folgendes aufweisen: Auswählen des ersten neuronalen Farbkartennetzes (303), des ersten zusätzlichen neuronalen Kartennetzes (307), des zweiten neuronalen Farbkartennetzes (313) und/oder des zweiten zusätzlichen neuronalen Kartennetzes (317) aus einer Bibliothek von neuronalen Netzen, auf die der eine oder die mehreren Computer zugreifen können, in Abhängigkeit von einer zu erzeugenden Textur, wobei die Bibliothek eine Vielzahl von neuronalen Netzen aufweist, die auf verschiedenen Texturen und/oder Texturtypen trainiert wurden, wobei jedes neuronale Netz in der Bibliothek mit Metadaten verknüpft ist, die eine Textur, auf der das neuronale Netz trainiert wurde, Auflösungen der Texturen, auf denen das neuronale Netz trainiert wurde, und/oder die Texturkartentypen, die von dem neuronalen Netz ausgegeben werden, angeben.
  6. Die Vorrichtung nach einem der vorhergehenden Ansprüche, wobei die Operationen ferner aufweisen: Erzeugen einer Sequenz von Farbkarten mit progressiv höheren Auflösungen durch eine Sequenz von einem oder mehreren weiteren neuronalen Farbkartennetzen, wobei jedes der ein oder mehreren weiteren neuronalen Farbkartennetze eine entsprechende Farbkarte, die durch ein vorheriges neuronales Farbkartennetz ausgegeben wurde, als Eingabe nimmt und eine entsprechende Farbkarte mit einer höheren Auflösung als die entsprechende Eingangsfarbkarte ausgibt; Erzeugen einer Folge zusätzlicher Karten mit zunehmend höheren Auflösungen durch ein oder mehrere weitere neuronale Kartennetze, wobei jedes der ein oder mehreren weiteren neuronalen Kartennetze als Eingabe eine jeweilige Farbkarte nimmt, die von einem jeweiligen der weiteren neuronalen Farbkartennetze ausgegeben wird, und eine jeweilige zusätzliche Karte mit der gleichen Auflösung wie die jeweilige Eingangsfarbkarte ausgibt.
  7. Die Vorrichtung nach Anspruch 6, wobei jedes der ein oder mehreren weiteren neuronalen Netze für zusätzliche Karten zusätzlich als Eingabe eine jeweilige zusätzliche Karte mit einer niedrigeren Auflösung als die jeweilige zusätzliche Ausgangskarte erhält.
  8. Die Vorrichtung nach einem der vorhergehenden Ansprüche, wobei das erste neuronale Farbkartennetz (303), das zweite neuronale Farbkartennetz (313), das erste zusätzliche neuronale Kartennetz (307) und/oder das zweite zusätzliche neuronale Kartennetz (317) Folgendes aufweist: ein jeweiliges neuronales Faltungsnetz, ein jeweiliges rekurrentes neuronales Netz, ein jeweiliges Netz mit Langzeitgedächtnis oder ein jeweiliges mehrdimensionales Faltungsnetz.
  9. Die Vorrichtung nach einem der vorhergehenden Ansprüche, wobei die Operationen ferner Folgendes aufweisen: Rendering eines dreidimensionalen Objekts zur Anzeige in einem Computerspiel unter Verwendung der erzeugten ersten Farbkarte und der ersten zusätzlichen Karte; und erneutes Rendern des Objekts zur Anzeige in dem Computerspiel unter Verwendung der erzeugten ersten Farbkarte und der ersten zusätzlichen Karte in Abhängigkeit von einer Entfernung zu dem Objekt im Spiel.
  10. Nicht-transitorisches computerlesbares Medium, das computerlesbare Anweisungen speichert, die, wenn sie von einem System ausgeführt werden, das einen oder mehrere Computer aufweist, das System veranlassen, Operationen durchzuführen, die Folgendes aufweisen: Erzeugen einer ersten Farbkarte (305) durch ein erstes neuronales Farbkartennetz (303) aus einem ersten Satz von Initialisierungsdaten (301); Erzeugen einer ersten zusätzlichen Karte (309) aus der ersten Farbkarte durch ein erstes zusätzliches neuronales Kartennetz (307), wobei die erste zusätzliche Karte die gleiche Auflösung wie die erste Farbkarte aufweist; Erzeugen einer zweiten Farbkarte (315) aus der ersten Farbkarte und einem zweiten Satz von Initialisierungsdaten (311) durch ein zweites neuronales Farbkartennetz (313), wobei die zweite Farbkarte eine höhere Auflösung als die erste Farbkarte aufweist; und Erzeugen einer zweiten zusätzlichen Karte (319) aus der zweiten Farbkarte durch ein zweites zusätzliches neuronales Kartennetz (317), wobei die zweite zusätzliche Karte die gleiche Auflösung wie die zweite Farbkarte aufweist, wobei die erste zusätzliche Karte und die zweite zusätzliche Karte jeweils eine oder mehrere der folgenden aufweisen: eine Normalen-Karte; eine spiegelnde Karte; eine Verlagerungskarte; eine Höckerkarte; eine Tiefenkarte; und/oder eine Höhenkarte.
  11. Das computerlesbare Medium nach Anspruch 10, wobei die zweite zusätzliche Karte (319) ferner aus der ersten zusätzlichen Karte (309) erzeugt wird.
  12. Das computerlesbare Medium nach einem der Ansprüche 10 oder 11, wobei der erste Satz von Initialisierungsdaten (301) und/oder der zweite Satz von Initialisierungsdaten (311) einen oder mehrere entsprechende Sätze von Zufallsrauschen oder einen oder mehrere entsprechende Sätze von Parametern zur Erzeugung von Zufallsrauschen aufweist.
  13. Das computerlesbare Medium nach einem der Ansprüche 10 bis 12, wobei der erste Satz von Initialisierungsdaten (301) eine bekannte Textur aufweist.
  14. Das computerlesbare Medium nach einem der Ansprüche 10 bis 13, wobei die Operationen ferner aufweisen: Auswählen des ersten neuronalen Farbkartennetzes (303), des ersten zusätzlichen neuronalen Kartennetzes (307), des zweiten neuronalen Farbkartennetzes (313) und/oder des zweiten zusätzlichen neuronalen Kartennetzes (317) aus einer Bibliothek von neuronalen Netzen, auf die der eine oder die mehreren Computer zugreifen können, in Abhängigkeit von einer zu erzeugenden Textur, wobei die Bibliothek eine Vielzahl von neuronalen Netzen aufweist, die auf verschiedenen Texturen und/oder Texturtypen trainiert wurden, wobei jedes neuronale Netz in der Bibliothek mit Metadaten verknüpft ist, die eine Textur, auf der das neuronale Netz trainiert wurde, Auflösungen der Texturen, auf denen das neuronale Netz trainiert wurde, und/oder die Texturkartentypen, die von dem neuronalen Netz ausgegeben werden, angeben.
  15. Das computerlesbare Medium nach einem der Ansprüche 10 bis 14, wobei die Operationen ferner aufweisen: Erzeugen einer Sequenz von Farbkarten mit progressiv höheren Auflösungen durch eine Sequenz von einem oder mehreren weiteren neuronalen Farbkartennetzen, wobei jedes der ein oder mehreren weiteren neuronalen Farbkartennetze eine entsprechende Farbkarte, die durch ein vorheriges neuronales Farbkartennetz ausgegeben wurde, als Eingabe nimmt und eine entsprechende Farbkarte mit einer höheren Auflösung als die entsprechende Eingangsfarbkarte ausgibt; Erzeugen einer Folge zusätzlicher Karten mit zunehmend höheren Auflösungen durch ein oder mehrere weitere neuronale Kartennetze, wobei jedes der ein oder mehreren weiteren neuronalen Kartennetze als Eingabe eine jeweilige Farbkarte nimmt, die von einem jeweiligen der weiteren neuronalen Farbkartennetze ausgegeben wird, und eine jeweilige zusätzliche Karte mit der gleichen Auflösung wie die jeweilige Eingangsfarbkarte ausgibt.
  16. Das computerlesbare Medium nach Anspruch 15, wobei jedes der ein oder mehreren weiteren neuronalen Netze für zusätzliche Karten zusätzlich als Eingabe eine jeweilige zusätzliche Karte mit einer niedrigeren Auflösung als die jeweilige zusätzliche Ausgangskarte nimmt.
  17. Das computerlesbare Medium nach einem der Ansprüche 10 bis 16, wobei das erste neuronale Farbkartennetz, das zweite neuronale Farbkartennetz, das erste zusätzliche neuronale Kartennetz und/oder das zweite zusätzliche neuronale Kartennetz Folgendes aufweist: ein jeweiliges neuronales Faltungsnetz; ein jeweiliges rekurrentes neuronales Netz; ein jeweiliges Netz mit Langzeitspeicher; oder ein jeweiliges mehrdimensionales Faltungsnetz.
  18. Das computerlesbare Medium nach einem der Ansprüche 10 bis 17, wobei die Operationen ferner Folgendes aufweisen: Rendern eines dreidimensionalen Objekts zur Anzeige in einem Computerspiel unter Verwendung der erzeugten ersten Farbkarte und der ersten zusätzlichen Karte; und erneutes Rendern des Objekts zur Anzeige in dem Computerspiel unter Verwendung der erzeugten ersten Farbkarte und der ersten zusätzlichen Karte in Abhängigkeit von einer Entfernung zu dem Objekt im Spiel.
  19. Vorrichtung, die einen oder mehrere Computer aufweist, die so konfiguriert sind, dass sie eine Operation durchführen, die aufweist: Erzeugen einer oder mehrerer Texturkarten, wobei jede der einen oder mehreren Texturkarten aus einer jeweiligen Farbkarte durch ein jeweiliges neuronales Texturkartennetz erzeugt wird; Bestimmen eines jeweiligen Satzes von statistischen Eigenschaften für jede der erzeugten einen oder mehreren Texturkarten durch ein Deskriptornetz; Vergleichen der statistischen Eigenschaften der erzeugten einen oder mehreren Texturkarten mit statistischen Eigenschaften von einer oder mehreren bekannten Texturkarten; und Optimieren der Parameter des neuronalen Texturkartennetzes auf der Grundlage des Vergleichs, wobei die eine oder die mehreren Texturkarten eine oder mehrere der folgenden Karten aufweisen: eine Normalen-Karte; eine spiegelnde Karte; eine Verlagerungskarte; eine Höckerkarte; eine Tiefenkarte; und/oder eine Höhenkarte.
  20. Die Vorrichtung nach Anspruch 19, wobei jedes neuronale Texturkartennetz als Eingabe eine jeweilige Farbkarte und eine jeweilige Eingangstexturkarte erhält, wobei die jeweilige Farbkarte eine höhere Auflösung als die jeweilige Eingangstexturkarte aufweist.
  21. Die Vorrichtung nach Anspruch 20, wobei das Vergleichen der statistischen Eigenschaften der erzeugten einen oder mehreren Texturkarten mit den statistischen Eigenschaften einer oder mehrerer bekannter Texturkarten das Vergleichen der statistischen Eigenschaften jeder erzeugten Texturkarte mit den jeweiligen statistischen Eigenschaften bekannter Texturkarten mit derselben Auflösung aufweist.
  22. Die Vorrichtung nach Anspruch 21, wobei der Vergleich unter Verwendung eines Erwartungswertes E durchgeführt wird, der gegeben ist durch: E = Es = 1 S Ψ g ϕ sxs , ys 1 Ψ ys 2
    Figure DE202017007534U1_0011
    wobei gΦsxs,ys-1 die Ausgabe des s-ten neuronalen Netzes für Texturkarten auf der Grundlage der jeweiligen Farbkarte xs und der jeweiligen Eingangstexturkarte ys-1 bezeichnet, Ψgϕsxs,ys-1 die statistischen Eigenschaften der s-ten Texturkarte und Ψys die statistischen Eigenschaften der bekannten Texturkarten darstellt.
  23. Die Vorrichtung nach einem der Ansprüche 19 bis 22, wobei das Optimieren der Parameter des neuronalen Texturkartennetzes auf der Grundlage des Vergleichs das Optimieren einer Teilmenge der Parameter der hierarchischen Algorithmen aufweist.
  24. Die Vorrichtung nach einem der Ansprüche 19 bis 23, wobei das eine oder die mehreren neuronalen Texturkarten-Netze Folgendes aufweisen: ein neuronales Faltungsnetz, ein rekurrentes neuronales Netz, ein Netz mit Langzeitgedächtnis oder ein mehrdimensionales Faltungsnetz.
  25. Nicht-transitorisches computerlesbares Medium, das computerlesbare Anweisungen speichert, die, wenn sie von einem System mit einem oder mehreren Computern ausgeführt werden, das System veranlassen, Operationen durchzuführen, die aufweisen: Erzeugen einer oder mehrerer Texturkarten, wobei jede der einen oder mehreren Texturkarten aus einer entsprechenden Farbkarte durch ein entsprechendes neuronales Texturkartennetz erzeugt wird; Bestimmen eines jeweiligen Satzes von statistischen Eigenschaften für jede der erzeugten einen oder mehreren Texturkarten durch ein Deskriptornetz; Vergleichen der statistischen Eigenschaften der erzeugten einen oder mehreren Texturkarten mit statistischen Eigenschaften von einer oder mehreren bekannten Texturkarten; und Optimieren der Parameter des neuronalen Texturkartennetzes auf der Grundlage des Vergleichs, wobei die eine oder die mehreren Texturkarten eine oder mehrere der folgenden Karten aufweisen: eine Normalen-Karte; eine spiegelnde Karte; eine Verlagerungskarte; eine Höckerkarte; eine Tiefenkarte; und/oder eine Höhenkarte.
  26. Das computerlesbare Medium nach Anspruch 25, wobei jedes neuronale Texturkartennetz als Eingabe eine jeweilige Farbkarte und eine jeweilige Eingangstexturkarte empfängt, wobei die jeweilige Farbkarte eine höhere Auflösung hat als die jeweilige Eingangstexturkarte.
  27. Das computerlesbare Medium nach Anspruch 26, wobei das Vergleichen der statistischen Eigenschaften der erzeugten einen oder mehreren Texturkarten mit den statistischen Eigenschaften einer oder mehrerer bekannter Texturkarten das Vergleichen der statistischen Eigenschaften jeder erzeugten Texturkarte mit den jeweiligen statistischen Eigenschaften bekannter Texturkarten mit der gleichen Auflösung aufweist.
  28. Das computerlesbare Medium nach Anspruch 27, wobei der Vergleich unter Verwendung eines Erwartungswertes E durchgeführt wird, der gegeben ist durch: E = Es = 1 S Ψ g ϕ sxs , ys 1 Ψ ys 2
    Figure DE202017007534U1_0012
    wobei gϕsxs,ys-1 die Ausgabe des s-ten neuronalen Texturkartennetzes auf der Grundlage der jeweiligen Farbkarte xs und der jeweiligen Eingangstexturkarte ys-1 bezeichnet, Ψgϕsxs,ys-1 die statistischen Eigenschaften der s-ten Normtexturkarte und Ψys die statistischen Eigenschaften der bekannten Texturkarten darstellt.
  29. Das computerlesbare Medium nach einem der Ansprüche 25 bis 28, wobei das Optimieren der Parameter des neuronalen Texturkartennetzes auf der Grundlage des Vergleichs das Optimieren einer Teilmenge der Parameter der hierarchischen Algorithmen aufweist.
  30. Das computerlesbare Medium nach einem der Ansprüche 25 bis 28, wobei das eine oder die mehreren neuronalen Texturkarten-Netze aufweisen: ein neuronales Faltungsnetz; ein rekurrentes neuronales Netz; ein Netz mit Langzeitspeicher; oder ein mehrdimensionales Faltungsnetz.
DE202017007534.2U 2016-05-09 2017-05-09 Multiskalige 3D-Textursynthese Active DE202017007534U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB1608101.0A GB201608101D0 (en) 2016-05-09 2016-05-09 Multiscale 3D texture synthesis
GB201608101 2016-05-09

Publications (1)

Publication Number Publication Date
DE202017007534U1 true DE202017007534U1 (de) 2022-05-30

Family

ID=56297396

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202017007534.2U Active DE202017007534U1 (de) 2016-05-09 2017-05-09 Multiskalige 3D-Textursynthese

Country Status (5)

Country Link
US (1) US10909743B2 (de)
EP (1) EP3298587A1 (de)
DE (1) DE202017007534U1 (de)
GB (1) GB201608101D0 (de)
WO (1) WO2017194921A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201608101D0 (en) 2016-05-09 2016-06-22 Magic Pony Technology Ltd Multiscale 3D texture synthesis
US10628989B2 (en) * 2018-07-16 2020-04-21 Electronic Arts Inc. Photometric image processing
US11022861B2 (en) 2018-07-16 2021-06-01 Electronic Arts Inc. Lighting assembly for producing realistic photo images
CN110686633B (zh) * 2019-08-30 2021-09-14 深圳大学 一种滑坡位移预测方法、装置及电子设备
US11941780B2 (en) 2020-05-11 2024-03-26 Sony Interactive Entertainment LLC Machine learning techniques to create higher resolution compressed data structures representing textures from lower resolution compressed data structures

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2695743A1 (fr) * 1992-09-16 1994-03-18 Philips Electronique Lab Système de traitement d'images texturées, analyseur de textures et synthétiseur de textures.
US5889526A (en) * 1994-11-25 1999-03-30 Matsushita Electric Industrial Co., Ltd. Interpolation apparatus and method, and image generation apparatus including such an apparatus
US6292191B1 (en) 1996-12-30 2001-09-18 Cirrus Logic, Inc. Dynamically selectable MIP map blending for a software graphics engine
US6304268B1 (en) * 1997-06-26 2001-10-16 S3 Graphics Co., Ltd. Trilinear texture filtering of two levels of detail based on a single level of detail
US6229553B1 (en) * 1998-08-20 2001-05-08 Apple Computer, Inc. Deferred shading graphics pipeline processor
US6853373B2 (en) * 2001-04-25 2005-02-08 Raindrop Geomagic, Inc. Methods, apparatus and computer program products for modeling three-dimensional colored objects
JP2004005452A (ja) * 2002-04-16 2004-01-08 Sony Computer Entertainment Inc 画像処理装置、画像処理方法、半導体デバイス、コンピュータプログラム、記録媒体
US20040257364A1 (en) * 2003-06-18 2004-12-23 Basler Gregory A. Shadow casting within a virtual three-dimensional terrain model
JP4502678B2 (ja) 2004-03-24 2010-07-14 株式会社バンダイナムコゲームス プログラム、情報記憶媒体、及び画像生成システム
US8149235B2 (en) * 2004-08-20 2012-04-03 Microsoft Corporation System and method for upscaling low-resolution images
US7710424B1 (en) * 2004-11-18 2010-05-04 Nvidia Corporation Method and system for a texture-aware virtual memory subsystem
US7400330B2 (en) * 2005-06-30 2008-07-15 Microsoft Corporation Magnification of indirection textures
US8068117B2 (en) * 2005-06-30 2011-11-29 Microsoft Corporation Parallel texture synthesis by upsampling pixel coordinates
JP3996631B2 (ja) * 2005-09-09 2007-10-24 松下電器産業株式会社 画像処理方法、画像記録方法、画像処理装置および画像ファイルフォーマット
US8106918B2 (en) * 2007-05-01 2012-01-31 Vivante Corporation Apparatus and method for texture level of detail computation
US8462147B2 (en) 2009-09-15 2013-06-11 Microsoft Corporation Mega-mesh sculpting for environments
US8542243B2 (en) * 2009-11-19 2013-09-24 Douglas H. Rogers High-compression texture mapping
EP2659458B1 (de) * 2010-12-30 2019-05-15 TomTom Global Content B.V. System und verfahren zur erzeugung texturierter kartenobjektbilder
US20130342553A1 (en) * 2012-06-25 2013-12-26 Intel Corporation Texture mapping techniques
JP2014056371A (ja) * 2012-09-12 2014-03-27 Fujitsu Semiconductor Ltd 画像処理装置
US20160358099A1 (en) * 2015-06-04 2016-12-08 The Boeing Company Advanced analytical infrastructure for machine learning
GB201608101D0 (en) 2016-05-09 2016-06-22 Magic Pony Technology Ltd Multiscale 3D texture synthesis
US10726356B1 (en) * 2016-08-01 2020-07-28 Amazon Technologies, Inc. Target variable distribution-based acceptance of machine learning test data sets

Also Published As

Publication number Publication date
WO2017194921A1 (en) 2017-11-16
US20180122127A1 (en) 2018-05-03
GB201608101D0 (en) 2016-06-22
EP3298587A1 (de) 2018-03-28
US10909743B2 (en) 2021-02-02

Similar Documents

Publication Publication Date Title
DE112017002799B4 (de) Verfahren und system zum generieren multimodaler digitaler bilder
DE202017007534U1 (de) Multiskalige 3D-Textursynthese
DE102017010210A1 (de) Bild-Matting mittels tiefem Lernen
DE102018111407A1 (de) Methode zum maschinellen lernen für automatisches modellieren von mehrwertigen ausgaben
DE112016004266T5 (de) Verfahren zur Gesichtsausrichtung
DE10043460C2 (de) Auffinden von Körperpartien durch Auswerten von Kantenrichtungsinformation
DE102019006149A1 (de) Begrenzungsbewusste Objektentfernung und Contentfüllung
DE102019001911A1 (de) Aufbauen von neuen Zeichensatz-Bildzeichen aus Teilbetrachtungen
DE102022202014A1 (de) Funktionstest für bewegliche Objekte in sicherheitskritischen Anwendungen mit räumlichem Darstellungslernen und kontradiktorischer Erzeugung
DE112020005732T5 (de) Erzeugen von trainingsdaten zur objekterkennung
DE102022201780A1 (de) Visuelles Analysesystem zum Bewerten, Verstehen und Verbessern tiefer neuronaler Netze
DE102022112888A1 (de) Benutzerschnittstellen und Verfahren zum Erzeugen eines neuen Artefakts auf der Grundlage vorhandener Artefakte
DE102021203021A1 (de) Semantisch konsistente erweiterte trainingsdaten zur ampelerkennung
DE102022113243A1 (de) Score-basierte generative Modellierung im latenten Raum
DE102022110889A1 (de) Halbüberwachtes training grober labels bei bildsegmentierung
DE112016007411T5 (de) Fuzzy-eingabe für autoencoder
DE102021200300A1 (de) Modifizieren von parametersätzen, die ein computer vision-modell charakterisieren
DE102021200345A1 (de) Überprüfung von computervisionsmodellen
DE102017006557A1 (de) Verwenden von Markierungen zum Verfolgen von hochfrequenten Offsets für Patchabgleichsalgorithmen
DE102022209528A1 (de) Visuelle Analysesysteme zur Diagnose und Verbesserung von Deep-Learning-Modellen für bewegbare Objekte beim autonomen Fahren
DE102021105291A1 (de) Gewichtsdemodulation für ein erzeugendes neuronales netz
DE102019217951A1 (de) Verfahren und Vorrichtung zum Bestimmen einer Domänendistanz zwischen mindestens zwei Datendomänen
DE102019217952A1 (de) Verfahren und Vorrichtung zum Bereitstellen eines Trainingsdatensatzes zum Trainieren einer KI-Funktion auf eine unbekannte Datendomäne
DE102023129950A1 (de) High resolution text-to-3d content creation
DE102019219924B4 (de) Verfahren und Vorrichtung zum Erzeugen und Bereitstellen einer Datenbank mit darin hinterlegten Sensordatenpatches zur Verwendung beim Quilting

Legal Events

Date Code Title Description
R150 Utility model maintained after payment of first maintenance fee after three years
R207 Utility model specification
R151 Utility model maintained after payment of second maintenance fee after six years