DE102018007146A1 - Ölgemälde-Strichsimulation mittels eines neuronalen Netzwerks - Google Patents

Ölgemälde-Strichsimulation mittels eines neuronalen Netzwerks Download PDF

Info

Publication number
DE102018007146A1
DE102018007146A1 DE102018007146.5A DE102018007146A DE102018007146A1 DE 102018007146 A1 DE102018007146 A1 DE 102018007146A1 DE 102018007146 A DE102018007146 A DE 102018007146A DE 102018007146 A1 DE102018007146 A1 DE 102018007146A1
Authority
DE
Germany
Prior art keywords
mapping
segment
canvas
height
new
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.)
Pending
Application number
DE102018007146.5A
Other languages
English (en)
Inventor
Zhili Chen
Zhaowen Wang
Rundong WU
Jimei Yang
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.)
Adobe Inc
Original Assignee
Adobe Inc
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 Adobe Inc filed Critical Adobe Inc
Publication of DE102018007146A1 publication Critical patent/DE102018007146A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks

Abstract

Es sind Ölgemälde-Simulationstechniken offenbart, die Malpinselstriche mittels eines trainierten neuronalen Netzwerks simulieren. In einigen Beispielen kann ein Verfahren das Ableiten einer neuen Höhenkartierung einer vorliegenden Farbe auf einer Leinwand, nachdem ein neuer Malpinselstrich aufgebracht worden ist, auf der Basis einer Borstentrajektorienkartierung, die den neuen Malpinselstrich darstellt, und einer Höhenkartierung einer vorliegenden Farbe auf der Leinwand, bevor der neue Malpinselstrich aufgebracht wird, und das Erzeugen eines Renderings des neuen Malpinselstrichs auf der Basis der neuen Höhenkartierung einer vorliegenden Farbe auf der Leinwand, nachdem der neue Malpinselstrich auf die Leinwand aufgebracht worden ist, und einer Farbkartierung umfassen.

Description

  • GEBIET DER OFFENBARUNG
  • Diese Offenbarung betrifft allgemein eine Malsimulation und insbesondere die Simulation eines Öl-Malpinselstrichs bzw. Ölgemälde-Pinselstrichs mittels neuronaler Netzwerke.
  • HINTERGRUND
  • Es wurden Malsimulationsprogramme entwickelt, die künstlerische Ölgemälde auf einem Computer simulieren. Herkömmliche Ölgemälde-Simulationsprogramme stellen typischerweise einen virtuellen Malpinsel zur Verwendung durch einen Künstler zum Malen (Erzeugen eines Gemäldes) auf einer digitalen Leinwand bereit. Diese Programme versuchen, die Textur von Ölgemälden und die Art und Weise, in der die Borsten des Malpinsels die Ölfarbe auf die Leinwand streichen, zu simulieren. Viele Ölfarben-Simulationsprogramme modellieren Öl-Malpinselstriche durch Prägen eines vordefinierten 2D-Pinselabdrucks entlang eines Pinselstrichwegs und simulieren eine Farbübertragung zwischen dem Pinselstrich und der Leinwand mittels Pickup-Kartierungen. In diesen Simulationen wird die Farbe häufig in 2D dargestellt. In der Realität sieht jedoch ein physisches Ölgemälde nicht wie ein flaches 2D-Bild aus. Die Farbe in einem physischen Ölgemälde weist eine Tiefe und eine Textur auf. Als Ergebnis können viele der herkömmlichen Malsimulationsprogramme reale Farbpinselstriche, die in physischen Ölgemälden verwendet werden, nicht realistisch modellieren.
  • Eine realistische Darstellung der Oberflächendicke von Ölfarben auf einer Leinwand ist erforderlich, um ein künstlerisches Ölgemälde auf einem Computer zu simulieren. Eine solche Darstellung bezieht sich auf die Dicke der aufgebrachten Ölfarbe, die sich über die Leinwandoberfläche in der z-Richtung erstreckt (aus der Leinwand heraustritt). Eine realistische Darstellung der Oberflächendicke von Ölfarben erfordert das Modellieren von realistischen Öl-Malpinselstrichen. Wie es vorstehend erwähnt worden ist, ist ein Ansatz, Öl-Malpinseistriche zu modellieren, vordefinierte 2D-Pinselabdrücke zu prägen und die Farbübertragung zwischen dem Pinselstrich und der Leinwand zu simulieren. Leider erzeugt das Modellieren von Öl-Malpinselstrichen in dieser Weise Darstellungen der 3D-Oberflächendetails von Pinselstrichen, die eine niedrige Qualität aufweisen, und demgemäß Simulationen eines Ölgemäldes mit einer niedrigen Qualität.
  • Ein weiterer Ansatz zum Modellieren von Öl-Malpinselstrichen ist die Simulation von vielen Hunderten oder sogar Tausenden von einzelnen Borsten eines Malpinsels und die Interaktion zwischen den Borsten zum Erzeugen einer genauen Pinselform. Obwohl dieser Ansatz Darstellungen der 3D-Oberflächendetails von Pinselstrichen mit höherer Qualität erzeugt, erfordert dieser Ansatz leider die Verwendung einer komplexen Fluidsimulation. Als solches ist dieser Ansatz berechnungsmäßig sehr aufwändig (was auch den Stromverbrauch erhöht) und nicht für Rechenvorrichtungen brauchbar, denen die erforderliche Rechenleistung fehlt, wie z.B. mobilen Computern und mobilen Vorrichtungen, um nur einige wenige Beispiele zu nennen.
  • Andere mögliche Ansätze umfassen datenunterstützte Textursyntheseansätze zum Modellieren von Öl-Malpinselstrichen. Diese Ansätze umfassen typischerweise das Sammeln eines Vorrats von Beispiel-Pinselstrichsegmenten üblicherweise von Fotografien von realen Pinselstrichen. Dann werden für einen eingegebenen Malpinselstrich die Beispiel-Pinselstrichsegmente identifiziert, die mit den eingegebenen Strichwegformen am Besten übereinstimmen, und eine Optimierung wird durchgeführt, um die identifizierten Beispiel-Pinselstrichsegmente nahtlos zu verbinden. Leider erzeugen diese Ansätze häufig wiederholte Muster oder in sonstiger Weise begrenzte Muster, die nicht den vollen Satz der Dynamik und der Variationen eines realen Pinselstrichs erfassen.
  • Figurenliste
  • Die beigefügten Zeichnungen sind nicht maßstabsgetreu. In den Zeichnungen wird jede identische oder nahezu identische Komponente, die in verschiedenen Figuren dargestellt ist, durch ein entsprechendes Bezugszeichen dargestellt, wie es ersichtlich ist, wenn es im Zusammenhang gelesen wird.
    • 1 ist ein Diagramm, das Beispiele für Komponenten zum Erzeugen von Trainingsdaten für ein neuronales Netzwerk gemäß mindestens einiger hier beschriebener Ausführungsformen zeigt.
    • 2 ist ein Diagramm, das Beispiele für Trainingsdateneingaben in ein neuronales Netzwerk gemäß mindestens einiger hier beschriebener Ausführungsformen zeigt.
    • 3 ist ein Blockdiagramm, das schematisch ein Beispiel für ein Stricherzeugungssystem zeigt, bei dem ein einzelnes neuronales Netzwerk eingesetzt wird, gemäß mindestens einiger hier beschriebener Ausführungsformen.
    • 4 ist ein Blockdiagramm, das schematisch das Beispiel für das Stricherzeugungssystem von 3 zeigt, bei dem eine Mehrzahl von Instanzen eines trainierten neuronalen Netzwerks eingesetzt wird, gemäß mindestens einiger hier beschriebener Ausführungsformen.
    • 5 ist ein Blockdiagramm, das schematisch eine Mehrzahl von Borstentrajektorienkartierungssegmenten und entsprechenden Höhenkartierungssegmenten zeigt, die durch eine Mehrzahl von trainierten neuronalen Netzwerken erzeugt worden sind, gemäß mindestens einiger hier beschriebener Ausführungsformen.
    • 6 ist ein Flussdiagramm, das ein Beispielverfahren zum Rendern eines neuen Malpinselstrichs gemäß mindestens einiger hier beschriebener Ausführungsformen zeigt.
    • 7 zeigt ausgewählte Komponenten eines Beispielrechensystems, das zur Durchführung jedweder der Techniken, die verschiedenartig in der vorliegenden Offenbarung beschrieben sind, gemäß mindestens einiger hier beschriebener Ausführungsformen verwendet werden kann.
  • In der folgenden detaillierten Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die einen Teil davon bilden. In den Zeichnungen geben entsprechende Symbole typischerweise entsprechende Komponenten an, falls sich aus dem Zusammenhang nichts Anderes ergibt. Die in der detaillierten Beschreibung, den Zeichnungen und den Patentansprüchen beschriebenen veranschaulichenden Ausführungsformen sind nicht beschränkend aufzufassen. Andere Ausführungsformen können eingesetzt werden und andere Veränderungen können durchgeführt werden, ohne von dem Wesen oder Umfang des hier offenbarten Gegenstands abzuweichen. Die Aspekte der vorliegenden Offenbarung, wie sie hier allgemein beschrieben und in den Figuren gezeigt sind, können in einer breiten Vielfalt von verschiedenen Konfigurationen angeordnet, ersetzt, kombiniert, getrennt und gestaltet werden, die hier alle explizit vorgesehen sind.
  • DETAILLIERTE BESCHREIBUNG
  • Hier sind Techniken zur Simulation von Öl-Malpinselstrichen mittels eines neuronalen Netzwerks beschrieben, das auf der Basis einer sogenannten Höhenkartierung, die eine vorliegende Farbe auf einer Leinwand angibt, spezifisch trainiert wird, wie es nachstehend weiter erläutert wird. Die Simulation von Öl-Malpinselstrichen stellt eine realistische Rekonstruktion der Oberflächendicke der Ölfarbe bereit, die zur Bereitstellung einer hochqualitativen, realistischen Simulation eines Ölgemäldes verwendet wird. Gemäß einer Ausführungsform wird das neuronale Netzwerk mittels eines überwachten Lernens trainiert, um eine Funktion von einer großen Anzahl von Trainingsdatensätzen abzuleiten. Insbesondere umfasst jeder Trainingsdatensatz eine Höhenkartierung einer vorliegenden Farbe auf einer Leinwand, eine Borstentrajektorienkartierung, die einen Malpinselstrich darstellt, und eine Basiswahrheit („ground truth“), welche die erwartete Höhenkartierung ist, die aus dem Aufbringen des Malpinselstrichs auf die vorliegende Farbe auf der Leinwand resultiert. Sobald es trainiert ist, ist es das Ziel eines trainierten neuronalen Netzwerks, für eine gegebene Höhenkartierung einer vorliegenden Farbe auf einer Leinwand und eine Borstentrajektorienkartierung, die einen neuen Malpinselstrich darstellt, eine Höhenkartierung einer Farbe auf der Leinwand abzuleiten, nachdem der neue Malpinselstrich auf die Leinwand aufgebracht worden ist. D.h., das trainierte neuronale Netzwerk leitet die neue Farbe auf der Leinwand, die aus dem Aufbringen eines neuen Malpinselstrichs auf die Farbe resultiert, die sich vor dem neuen Malpinselstrich auf der Leinwand befunden hat, ab. In einigen Ausführungsformen ist das neuronale Netzwerk ein neuronales Faltungsnetzwerk.
  • In einigen Ausführungsformen wird ein hochqualitativer Ölgemäldesimulator zum Erzeugen des Trainingsdatensatzes zur Verwendung zum Trainieren eines neuronalen Netzwerks genutzt. Der Simulator nutzt eine volumetrische 3D-Fluidsimulation zum Simulieren des Farbmediums, wie z.B. der Ölfarbe, auf einer digitalen Leinwand. Zum Erzeugen eines Trainingsdatensatzes werden eine Höhenkartierung einer vorliegenden Farbe auf einer Leinwand und ein Malpinselstrich in den Simulator eingegeben, der wiederum eine Basiswahrheit auf der Basis des Paars aus der eingegebenen Höhenkartierung und dem eingegebenen Malpinselstrich erzeugt. Der Simulator erzeugt auch eine Borstentrajektorienkartierung des eingegebenen Malpinselstrichs. Der Trainingsdatensatz umfasst die Höhenkartierung, die in den Simulator eingegeben worden ist, und die Borstentrajektorienkartierung und die Basiswahrheit, die durch den Simulator erzeugt worden sind.
  • In einigen Ausführungsformen wird ein Öl-Malpinselstrich unter Verwendung von einer oder mehreren Instanz(en) eines trainierten neuronalen Netzwerks simuliert. Beispielsweise kann ein einzelner langer Öl-Malpinselstrich in eine Mehrzahl von Öl-Malpinselstrichsegmenten segmentiert werden und jedes Öl-Malpinselstrichsegment kann durch eine jeweilige Instanz des trainierten neuronalen Netzwerks verarbeitet werden. In solchen Fällen ist es das Ziel jeder Instanz des trainierten neuronalen Netzwerks, für eine gegebene Höhenkartierung einer vorliegenden Farbe auf einer Leinwand und ein jeweiliges Borstentrajektorienkartierungssegment, das ein entsprechendes neues Malpinselstrichsegment darstellt, ein Höhenkartierungssegment einer Farbe auf der Leinwand abzuleiten, nachdem das entsprechende neue Malpinselstrichsegment (das jeweilige Borstentrajektorienkartierungssegment, welches das entsprechende neue Malpinselstrichsegment darstellt) auf die Leinwand aufgebracht worden ist. D.h., jede Instanz des trainierten neuronalen Netzwerks leitet das neue Farbsegment auf der Leinwand aus dem Aufbringen eines neuen Malpinselstrichsegments auf die Farbe ab, die sich auf der Leinwand vor dem neuen Malpinselstrichsegment befunden hat.
  • Das Simulieren von Öl-Malpinselstrichen unter Verwendung von trainierten neuronalen Netzwerken erzeugt Darstellungen der 3D-Oberflächendetails von Pinselstrichen mit einer höheren Qualität ohne die Verwendung einer komplexen Fluidsimulation. Demgemäß sind Ölgemälde-Simulationsanwendungen, die Malpinselstriche mittels trainierter neuronaler Netzwerke simulieren, zum Ausführen auf Rechenvorrichtungen, wie z.B. mobilen Computern und mobilen Vorrichtungen, geeignet, die keine ausreichende Rechenleistung zur Durchführung einer Fluidsimulation aufweisen. Obwohl die Ausführungsformen und/oder Beispiele nachstehend im Zusammenhang mit Ölfarben und Ölgemälden beschrieben sind, sollte im Hinblick auf diese Offenbarung beachtet werden, dass die Ausführungsformen und/oder Beispiele nicht auf Ölfarben und Ölgemälde beschränkt sind, sondern auch auf dicke Farben, wie z.B. Acrylfarben, und Gouache, um nur einige wenige Beispiele zu nennen, im allgemeinen Sinn anwendbar sind.
  • Die 1 ist ein Diagramm 100, das Beispielkomponenten zum Erzeugen von Trainingsdaten für ein neuronales Netzwerk gemäß mindestens einiger hier beschriebener Ausführungsformen zeigt. Die erzeugten Trainingsdaten werden zum Trainieren eines neuronalen Netzwerks verwendet, um unter Verwendung einer ersten Höhenkartierung einer vorliegenden Farbe auf der Leinwand und einer Borstentrajektorienkartierung als Eingaben eine zweite Höhenkartierung einer vorliegenden Farbe auf der Leinwand abzuleiten, nachdem ein neuer Malpinselstrich aufgebracht worden ist. Die Borstentrajektorienkartierung, die in das neuronale Netzwerk eingegeben wird, stellt den neuen Pinselstrich dar. Wie es im Diagramm 100 gezeigt ist, umfassen die Komponenten zum Erzeugen der Trainingsdaten für ein neuronales Netzwerk einen Simulator 102, eine Höhenkartierung 104 und einen Malpinselstrich 106 (der hier austauschbar als „Pinselstrich 106“ bezeichnet wird, falls sich aus dem Zusammenhang nichts Anderes ergibt).
  • In einigen Ausführungsformen ist der Simulator 102 eine Ölgemäldesimulationsanwendung, welche die Textur von Ölfarben und den Vorgang, dass die Borsten eines Malpinsels die Ölfarbe über eine digitale Leinwand (die hier austauschbar als „Leinwand“ bezeichnet wird, falls sich aus dem Zusammenhang nichts Anderes ergibt) streichen, simuliert. In einigen Fällen kann der Simulator 102 eine Fluidsimulation zum Simulieren der einzelnen Borsten (z.B. Tausenden von einzelnen Borsten) eines Malpinsels und der Wechselwirkungen zwischen den Borsten des Malpinsels zum Erzeugen eines 3D-Modells des Malpinsels nutzen. Das 3D-Modell des Malpinsels wird für eine Wechselwirkung mit dem Farbmedium zum Simulieren der physikalischen Dynamik der Farbe auf der Leinwand genutzt. Der Simulator 102 kann es Nutzern (z.B. Künstlern) ermöglichen, mit simulierten Ölfarben mit einem Stift auf einem Berührungsbildschirm zu interagieren.
  • Die Höhenkartierung 104 ist eine Darstellung einer vorliegenden Farbe auf der Leinwand. Die Höhenkartierung 104 stellt die Dicke der Farbe dar, die auf der Leinwand vorliegt. In einigen Ausführungsformen kann die Höhenkartierung 104 als 2D-Bild z.B. mit einer Auflösung von 512 Pixeln x 512 Pixeln dargestellt werden. Es sollte im Hinblick auf diese Offenbarung beachtet werden, dass durch die Höhenkartierung 104 andere Bildauflösungen zum Darstellen der Dicke der Farbe verwendet werden können, die auf der Leinwand vorliegt. In einigen Beispielfällen stellt der Wert an jeder Pixelstelle der Höhenkartierung 104 die Dicke der Farbe an dieser Pixelstelle dar. Beispielsweise wenn ein Wert an einer Pixelstelle der Höhenkartierung 104 Null ist (Pixelwert = 0), dann beträgt die Dicke der Farbe an dieser Pixelstelle in der Höhenkartierung 104 0 mm. Wenn ein Wert an einer Pixelstelle der Höhenkartierung 104 eins ist (Pixelwert = 1), dann beträgt die Dicke der Farbe an dieser Pixelstelle in der Höhenkartierung 104 1 mm. Entsprechend kann ein Pixelwert von 1,5 angeben, dass die Dicke der Farbe an dieser Pixelstelle in der Höhenkartierung 104 1,5 mm beträgt. In einigen Ausführungsformen wird die Höhenkartierung 104 (Höhenkartierung einer vorliegenden Farbe auf der Leinwand), die in den Simulator 102 zum Erzeugen der Trainingsdaten für das neuronale Netzwerk eingegeben wird, statistisch erzeugt. D.h., eine statistisch erzeugte Höhenkartierung 104 wird für den Simulator 102 zum Erzeugen der Trainingsdaten für das neuronale Netzwerk bereitgestellt. Beispielsweise kann die Höhenkartierung 104 durch statistisches Drehen und/oder Überlagern von Pinselstrichproben von einem Speicher zum Nachahmen eines statistischen Malvorgangs erzeugt werden.
  • Der Pinselstrich 106 ist eine Bewegung, die durch einen Malpinsel während des Malens ausgeführt wird. Beispielsweise malt ein Künstler typischerweise Strich für Strich mit einem Malpinsel. Der Pinselstrich 106 ist eine Darstellung eines Strichs (Malpinselstrichbewegung), die durch den Künstler beim Malen durchgeführt werden würde. Der Pinselstrich 106 kann ein Malpinselstrich sein, der aus einem Vorrat von Malpinselstrichen 106 ausgewählt ist.
  • Ein Pinselstrichprobenspeicher 108 kann den Vorrat von Malpinselstrichen umfassen oder speichern. In einigen Beispielfällen können die durch einen oder mehrere Nutzer erzeugten Malpinselstriche aufgezeichnet werden und die Daten, die den aufgezeichneten Malpinselstrichen (z.B. Pinselstrichdaten) entsprechen, können in dem Pinselstrichprobenspeicher 108 gespeichert werden. Einige oder alle der Pinselstriche 106 (Pinselstrichdaten) können zum Erzeugen der Trainingsdaten zum Trainieren eines neuronalen Netzwerks verwendet werden. In einigen Ausführungsformen können die aufgezeichneten Pinselstriche 106 zum Erzeugen zusätzlicher Pinselstriche 106 zufällig gedreht und/oder kombiniert werden.
  • Die Höhenkartierung 104 (Höhenkartierung einer vorliegenden Farbe auf der Leinwand) und der Pinselstrich 106 werden als Eingaben für den Simulator 102 bereitgestellt und der Simulator 102 erzeugt eine Basiswahrheit 110 und eine Borstentrajektorie 112 (hier austauschbar als „Borstentrajektorienkartierung“ bezeichnet). Die Basiswahrheit 110 ist eine Höhenkartierung einer vorliegenden Farbe auf der Leinwand, nachdem der Pinselstrich auf die Leinwand aufgebracht worden ist (z.B. auf die vorliegende Farbe auf der Leinwand aufgebracht worden ist). D.h., die Basiswahrheit 110 ist die Höhenkartierung einer vorliegenden Farbe auf der Leinwand nach dem Aufbringen eines neuen Pinselstrichs (z.B. des Pinselstrich 106, der als Eingabe für den Simulator 102 bereitgestellt worden ist) auf die Höhenkartierung, die vor dem Aufbringen des neuen Pinselstrichs vorlag (z.B. die Höhenkartierung 104, die als Eingabe für den Simulator 102 bereitgestellt worden ist). In einigen Ausführungsformen nutzt der Simulator 102 eine Fluidsimulation zum Erzeugen der Basiswahrheit 110.
  • Die Borstentrajektorienkartierung 112 ist eine Darstellung einer Spur der Borstenspitzen (z.B. aller Borstenspitzen) eines Malpinsels, die als Ergebnis eines Pinselstrichs 106 erzeugt worden ist. Beispielsweise wenn ein Malpinsel entlang eines Wegs auf der Leinwand bewegt wird, erzeugen die Spitzen der Borsten des Malpinsels eine Spur der Borstenspitzen auf der Leinwand. Die Borstentrajektorienkartierung 112 kann Daten, wie z.B. die Borstenspitzenrichtung, den Borstenspitzenwinkel, den Druck, der durch die Borstenspitze auf der Leinwand erzeugt wird, und dergleichen vermitteln oder angeben. Die Borstentrajektorienkartierung 112, die durch den Simulator 102 erzeugt wird, ist eine Darstellung der Spur der Borstenspitzen des Malpinsels, die aus dem eingegebenen Pinselstrich 106 (dem Pinselstrich 106, der als Eingabe in den Simulator 102 bereitgestellt worden ist) resultiert.
  • Die Höhenkartierung 104, die als Eingabe in den Simulator 102 bereitgestellt worden ist, und die Borstentrajektorienkartierung 112 und die Basiswahrheit 110, die durch den Simulator 102 als Ergebnis der eingegebenen Höhenkartierung 104 erzeugt worden sind, umfassen einen Trainingsdatensatz (z.B. ein 3-Tupel von Trainingsdaten), der zum Trainieren eines neuronalen Netzwerks zum Ableiten einer Höhenkartierung einer vorliegenden Farbe auf der Leinwand verwendet wird, nachdem ein neuer Pinselstrich aufgebracht worden ist. Der Simulator 102 kann zum Erzeugen einer großen Zahl von Trainingsdatensätzen verwendet werden, die zum Trainieren des neuronalen Netzwerks verwendet werden können. Beispielsweise kann eine große Zahl von Höhenkartierungen 104 statistisch erzeugt werden und jede Höhenkartierung 104 kann mit einem Pinselstrich 106 beispielsweise von dem Pinselstrichprobenspeicher 108 gepaart werden. Die Paare von statistisch erzeugten Höhenkartierungen 104 und Pinselstrichen 106 können dann als Eingaben für den Simulator 102 zum Erzeugen von entsprechenden Paaren von Basiswahrheiten 110 und Borstentrajektorienkartierungen 112 bereitgestellt werden. Jede Höhenkartierung 104, die in den Simulator 102 eingegeben worden ist, und die entsprechende Borstentrajektorienkartierung 112 und die Basiswahrheit 110, die durch den Simulator 102 erzeugt worden sind, können einen entsprechenden Trainingsdatensatz umfassen, was folglich zur Erzeugung einer großen Zahl von Trainingsdatensätzen führt.
  • Die 2 ist ein Diagramm 200, das Beispiele für Trainingsdateneingaben in ein neuronales Netzwerk 202 gemäß mindestens einiger hier beschriebener Ausführungsformen zeigt. Wie es im Diagramm 200 gezeigt ist, wird eine große Zahl und in einigen Fällen eine sehr große Zahl von Trainingsdatensätzen 204 zum Trainieren des neuronalen Netzwerks 202 verwendet. Die Trainingsdatensätze 204 werden zum Trainieren des neuronalen Netzwerks 202 verwendet, um mit einer Höhenkartierung einer vorliegenden Farbe auf der Leinwand und einer Borstentrajektorienkartierung als Eingaben eine Höhenkartierung einer vorliegenden Farbe auf der Leinwand abzuleiten, nachdem ein neuer Pinselstrich aufgebracht worden ist. In diesem Fall stellt die Borstentrajektorienkartierung, die als Eingabe für das neuronale Netzwerk 202 bereitgestellt wird, den neuen Pinselstrich dar.
  • Jeder Trainingsdatensatz 204 umfasst eine Höhenkartierung, eine Borstentrajektorienkartierung und eine Basiswahrheit. Die Höhenkartierung ist eine Höhenkartierung einer vorliegenden Farbe auf der Leinwand (die Höhenkartierung 104 von 1), die zusammen mit einem Pinselstrich (dem Pinselstrich 106 von 1) als Eingabe für den Simulator 102 zum Erzeugen der entsprechenden Basiswahrheit (der Basiswahrheit 110 von 1) und der entsprechenden Borstentrajektorienkartierung (der Borstentrajektorienkartierung 112 von 1) bereitgestellt worden ist. In jedem Trainingsdatensatz 204 ist die Basiswahrheit die Höhenkartierung, die als Ergebnis des Aufbringens eines neuen Pinselstrichs (dargestellt durch den Pinselstrich 106, der in den Simulator 102 eingegeben worden ist) auf die vorliegende Farbe auf der Leinwand (wie sie durch die Höhenkartierung 104 dargestellt wird, die in den Trainingsdatensatz einbezogen und in den Simulator 102 eingegeben worden ist) erwartet wird. Die Borstentrajektorienkartierung ist eine Darstellung einer Spur der Borstenspitzen eines Malpinsels, die als Ergebnis des neuen Pinselstrichs erzeugt worden ist. D.h., bezüglich jedes 3-Tupels von Trainingsdaten, nämlich der Basiswahrheit, der Höhenkartierung und der Borstentrajektorienkartierung, wird eine Basiswahrheit eines 3-Tupels von Trainingsdaten die Ausgabe, die von einem neuronalen Netzwerk erwartet wird, das unter Verwendung des Trainingsdatensatzes 204 trainiert worden ist, wenn für das neuronale Netzwerk, das unter Verwendung des Trainingsdatensatzes 204 trainiert worden ist, eine Höhenkartierung und eine Borstentrajektorienkartierung des 3-Tupels von Trainingsdaten als Eingaben bereitgestellt werden. Sobald es trainiert ist, ist das neuronale Netzwerk 202 zum Ableiten einer Höhenkartierung einer vorliegenden Farbe auf der Leinwand nach dem Aufbringen eines neuen Pinselstrichs (z.B. einer nahen wenn nicht genauen Näherung der Basiswahrheit 110, die durch den Simulator 102 von 1 erzeugt worden ist und die zum Trainieren des neuronalen Netzwerks 202 verwendet wird) ausgebildet, und zwar unter der Voraussetzung einer Höhenkartierung einer vorliegenden Farbe auf der Leinwand, die vor dem Aufbringen des neuen Pinselstrichs vorlag (der Höhenkartierung 104, die in den Simulator 102 von 1 zum Erzeugen der Basiswahrheit 110 eingegeben worden ist, die zum Trainieren des neuronalen Netzwerks 202 verwendet wird) und einer Borstentrajektorienkartierung (der Borstentrajektorienkartierung 112, die durch den Simulator 102 von 1 erzeugt worden ist und zum Trainieren des neuronalen Netzwerks 202 verwendet wird) als Eingaben.
  • Die 3 ist ein Blockdiagramm, das schematisch ein Beispiel für ein Stricherzeugungssystem 300 zeigt, das ein einzelnes neuronales Netzwerk 202 nutzt, gemäß mindestens einiger hier beschriebener Ausführungsformen. Wie es gezeigt ist, umfasst das Stricherzeugungssystem 300 ein Datenerzeugungsmodul 302, ein trainiertes neuronales Netzwerk 202, ein Höhenkartierung-Kombiniermodul 304 und ein Rendermodul 306. In verschiedenen Ausführungsformen können zusätzliche Komponenten (nicht gezeigt, wie z.B. ein Prozessor, eine Anzeige, eine Nutzereingabevorrichtung, usw.) oder ein Teilsatz der gezeigten Komponenten eingesetzt werden, ohne von dem Umfang der vorliegenden Offenbarung abzuweichen. Beispielsweise können weitere Ausführungsformen die verschiedenen Funktionen der Module 302, 304 und 306 und des trainierten neuronalen Netzwerks 202 in weniger Module (z.B. eines, zwei oder drei) oder mehr Module (z.B. fünf, sechs oder mehr) integrieren. Darüber hinaus sollte ferner beachtet werden, dass die verschiedenen Komponenten des Stricherzeugungssystems 300 gemäß einiger Ausführungsformen alle in einem eigenständigen Rechensystem vorliegen können, während sie in anderen Ausführungsformen über mehrere Maschinen verteilt sein können. Beispielsweise können sich jedes der Module 302, 304 und 306, und des trainierten neuronalen Netzwerks 202 in einer cloudbasierten Serveranordnung befinden und für eine clientbasierte Nutzerschnittstelle über ein Kommunikationsnetzwerk zugänglich gemacht werden. In einigen Fällen kann oder können eines oder mehrere der Module 302, 304 und 306 und des trainierten neuronalen Netzwerks 202 von einem cloudbasierten Dienst in einen Browser (oder eine andere Anwendung) eines Clientcomputers für eine lokale Ausführung heruntergeladen werden. In einem allgemeineren Sinn kann der hier bereitgestellte Grad der Integration und Verteilung der hier bereitgestellten funktionellen Komponente(n) von einer Ausführungsform zur anderen stark variieren, wie es Hinblick auf diese Offenbarung ersichtlich ist.
  • In dem gezeigten Beispiel kann ein Nutzer (z.B. ein Künstler) das Stricherzeugungssystem 300 zum Erzeugen eines simulierten Ölgemäldes auf einer digitalen Leinwand verwenden. Der Nutzer kann jedwede geeignete Nutzerschnittstellenvorrichtung verwenden, wie z.B. eine Nutzerschnittstellen (UI)-Vorrichtung 308, die eine Interaktion mit dem Stricherzeugungssystem 300 erleichtert. In einigen Fällen kann die UI-Vorrichtung 308 einen Stift und einen berührungssensiblen Bildschirm zur Verwendung durch den Nutzer bereitstellen. Die UI-Vorrichtung 308 kann mit dem Stricherzeugungssystem 300 gekoppelt werden und der Nutzer kann die UI-Vorrichtung 308 zum Erzeugen eines digitalen Ölgemäldes verwenden. Beispielsweise kann der Nutzer den Stift zum Eingeben (z.B. Erzeugen) eines digitalen Malpinselstrichs, Strich für Strich, auf dem berührungssensiblen Bildschirm der UI-Vorrichtung 308 verwenden.
  • Wenn der Nutzer die UI-Vorrichtung 308 verwendet und einen Malpinselstrich (einen gegenwärtigen Malpinselstrich) erzeugt, stellt die UI-Vorrichtung 308 den vorliegenden Malpinselstrich, der durch den Nutzer erzeugt worden ist, für das Datenerzeugungsmodul 302 bereit oder macht ihn in sonstiger Weise dafür zugänglich. Das Datenerzeugungsmodul 302 ist zum Erzeugen einer Borstentrajektorienkartierung ausgebildet, die den vorliegenden Malpinselstrich darstellt, der durch den Nutzer eingegeben worden ist. In einigen Ausführungsformen erzeugt das Datenerzeugungsmodul 302 die Borstentrajektorienkartierung durch Bewegen eines simulierten Pinsels auf der Leinwand und zeichnet die Pinselborstenkontaktspuren auf, während der Pinsel bewegt wird. Beispielsweise kann das Datenerzeugungsmodul 302 die Borstentrajektorienkartierung durch Zeichnen der Spuren der Pinselborsten, die sich über die Länge des Pinselstrichs bewegen, erzeugen. Die Spuren der Pinselborsten können sich in der Borstentrajektorienkartierung überlappen. Das Datenerzeugungsmodul 302 ist auch zum Erzeugen einer Farbkartierung auf der Basis des vorliegenden Malpinselstrichs und des gegenwärtigen Zustands der Leinwand (z.B. der vorliegenden Farbe auf der Leinwand) ausgebildet. Beispielsweise kann das Datenerzeugungsmodul 302 die Farbkartierung unter Verwendung von einem der vielen verfügbaren Prägealgorithmen erzeugen. Verfügbare Prägealgorithmen zeichnen typischerweise eine Druckprägung eines Malpinsels, beispielsweise in Abständen von einem Pixel, entlang jedes Strichwegs. Bei jeder Prägung wird die Malpinselfarbe mit der vorliegenden Farbe, die auf der Leinwand vorliegt, gemischt, und die Leinwandfarbe wird entsprechend aktualisiert. Die Farbe auf dem Malpinsel kann auch entsprechend aktualisiert werden, um den Übergang der Farbe von der vorliegenden Farbe auf der Leinwand auf den Malpinsel zu simulieren. Das Datenerzeugungsmodul 302 kennt die Höhenkartierung einer vorliegenden Farbe auf der Leinwand, die sich aus einem vorhergehenden Pinselstrich ergeben hat (dem Pinselstrich, der dem vorliegenden Pinselstrich, der durch den Nutzer erzeugt worden ist, vorausgegangen ist). In dem Fall, bei dem der vorliegende Malpinselstrich ein erster oder anfänglicher Malpinselstrich ist, kann die Leinwand eine neue Leinwand sein, bei der gegenwärtig keine Farbe auf der Leinwand vorliegt. Wenn sich keine vorliegende Farbe auf der Leinwand befindet, gibt die Höhenkartierung entsprechend an, dass gegenwärtig keine Farbe auf der Leinwand vorliegt. Das Datenerzeugungsmodul 302 ist zum Bereitstellen oder in sonstiger Weise zugänglich Machen der erzeugten Borstentrajektorienkartierung und Höhenkartierung einer vorliegenden Farbe auf der Leinwand für das trainierte neuronale Netzwerk 202 ausgebildet. Beispielsweise kann das Datenerzeugungsmodul 302 oder eine andere Komponente des Stricherzeugungssystems 300 eine Instanz des trainierten neuronalen Netzwerks 202 realisieren, um die Borstentrajektorienkartierung und die Höhenkartierung einer vorliegenden Farbe auf der Leinwand zu verarbeiten.
  • Das trainierte neuronale Netzwerk 202 ist zum Ableiten einer Höhenkartierung von Farbe auf der Leinwand nach dem Aufbringen des vorliegenden Malpinselstrichs ausgebildet. Die Höhenkartierung, die durch das trainierte neuronale Netzwerk 202 abgeleitet worden ist, ist eine neue Höhenkartierung, welche die Höhe der Farbe darstellt, die nun auf der Leinwand vorliegt, nachdem der vorliegende Malpinselstrich, wie er durch die Borstentrajektorienkartierung dargestellt ist, die als Eingabe für das trainierte neuronale Netzwerk 202 bereitgestellt worden ist, auf die Farbe aufgebracht worden ist, die auf der Leinwand vor dem Aufbringen des vorliegenden Malpinselstrichs vorlag, wie er durch die Höhenkartierung einer vorliegenden Farbe auf der Leinwand dargestellt ist, die als Eingabe für das trainierte neuronale Netzwerk 202 bereitgestellt worden ist. D.h., durch die Bereitstellung einer ersten Höhenkartierung (einer Höhenkartierung einer vorliegenden Farbe auf der Leinwand) und einer Borstentrajektorienkartierung (eines vorliegenden Malpinselstrichs) leitet das trainierte neuronale Netzwerk 202 eine zweite Höhenkartierung (eine Höhenkartierung von Farbe auf der Leinwand nach dem Aufbringen des vorliegenden Malpinselstrichs) ab. Das trainierte neuronale Netzwerk 202 stellt die abgeleitete Höhenkartierung von Farbe auf der Leinwand nach dem Anwenden des gegenwärtigen Pinselstrichs auf das Höhenkartierung-Kombiniermodul 304 bereit oder macht sie in sonstiger Weise verfügbar.
  • Das Höhenkartierung-Kombiniermodul 304 ist zum Kombinieren einer Mehrzahl von Höhenkartierungssegmenten zum Erzeugen einer einzigen kombinierten Höhenkartierung ausgebildet. Die Höhenkartierungssegmente werden nachstehend z.B. im Zusammenhang mit den 4 und 5 weiter diskutiert. In diesem Fall bestimmt das Höhenkartierung-Kombiniermodul 304, dass die bereitgestellte Höhenkartierung eine kombinierte Höhenkartierung ist, da nur eine (eine einzelne) Höhenkartierung bereitgestellt worden ist. Als solches führt das Höhenkartierung-Kombiniermodul 304 keinerlei Kombiniervorgang mit der bereitgestellten Höhenkartierung durch. Das Höhenkartierung-Kombiniermodul 304 stellt die Höhenkartierung von Farbe auf der Leinwand bereit oder macht sie in sonstiger Weise verfügbar, nachdem der vorliegende Pinselstrich auf das Rendermodul 306 angewandt worden ist.
  • Das Rendermodul 306 ist zum Kombinieren der Höhenkartierung (z.B. der Höhenkartierung einer vorliegenden Farbe auf der Leinwand nach dem Aufbringen des vorliegenden Pinselstrichs) und der Farbkartierung zum Erzeugen eines Renderings 310 ausgebildet. Die Farbkartierung kann durch das Datenerzeugungsmodul 302 bereitgestellt oder in sonstiger Weise verfügbar gemacht werden. Das Rendering 310 ist eine visuelle Darstellung des gegenwärtigen Malpinselstrichs, der durch den Nutzer eingegeben worden ist, auf der Leinwand. D.h., das Rendering 310 ist eine digitale Darstellung des digitalen Malpinselstrichs, der durch den Nutzer auf dem berührungssensiblen Bildschirm der UI-Vorrichtung 308 erzeugt worden ist. In einigen Ausführungsformen kann das Rendermodul 306 das Rendering 310 durch Berechnen einer Normalkartierung auf der Basis der Höhenkartierung unter Verwendung eines zentralen Differenzalgorithmus erzeugen. Das Rendermodul 306 kann dann die Helligkeit der Farbe aus der erzeugten Normalkartierung und Beleuchtungsdaten berechnen. Die Beleuchtungsdaten können durch den Nutzer beispielsweise mittels einer Punktlichtquelle, einer gerichteten Lichtquelle, eines Punktstrahlers oder jedwedem anderen geeigneten Beleuchtungsmodells bereitgestellt werden. Das Rendermodul 306 kann dann das fertige gefärbte Schattierungsergebnis (z.B. das Rendering 310) auf der Basis der berechneten Helligkeit und der Farbkartierung erzeugen, was ein Maß für die Reflexion oder die optische Helligkeit der Leinwand bereitstellt. Das Rendering 310 des Malpinselstrichs, der durch den Nutzer erzeugt worden ist, kann auf der UI-Vorrichtung 308, beispielsweise dem berührungssensiblen Bildschirm der UI-Vorrichtung 308, zum Betrachten durch den Nutzer bereitgestellt werden.
  • Die 4 ist ein Blockdiagramm, das schematisch das Stricherzeugungssystem 300, das eine Mehrzahl von Instanzen des trainierten neuronalen Netzwerks 202 einsetzt, gemäß mindestens einiger hier beschriebener Ausführungsformen zeigt. Das System von 4 ist im Wesentlichen dem System von 3 ähnlich, wobei zusätzliche Details vorliegen. Falls sich aus dem Zusammenhang nicht etwas Anderes ergibt, werden diejenigen Komponenten in der 4, die identisch zu den Komponenten von 3 bezeichnet sind, aus Klarheitsgründen nicht erneut beschrieben.
  • In einigen Ausführungsformen ist das Datenerzeugungsmodul 302 zum Segmentieren einer langen Borstentrajektorienkartierung (z.B. eines langen Malpinselstrichs) in eine Mehrzahl von Borstentrajektorienkartierungssegmenten (z.B. eine Mehrzahl von Malpinselstrichsegmenten) ausgebildet. Die Verarbeitung einer Mehrzahl von kürzeren Borstentrajektorienkartierungssegmenten und das Kombinieren der Ergebnisse der Verarbeitung der kürzeren Borstentrajektorienkartierungssegmente kann verglichen mit der Verarbeitung einer einzelnen langen Borstentrajektorienkartierung ein verbessertes Leistungsvermögen bereitstellen. Das Datenerzeugungsmodul 302 kann die Länge der Borstentrajektorienkartierung bestimmen und wenn die Länge der Borstentrajektorienkartierung eine festgelegte Borstentrajektorienkartierungssegment-Schwellenlänge übersteigt, die Borstentrajektorienkartierung in eine Mehrzahl von Borstentrajektorienkartierungssegmenten segmentieren, so dass die Länge jedes Borstentrajektorienkartierungssegments, ausgenommen das letzte Borstentrajektorienkartierungssegment, die festgelegte Borstentrajektorienkartierungssegment-Schwellenlänge aufweist. Beispielsweise soll angenommen werden, dass die festgelegte Borstentrajektorienkartierungssegment-Schwellenlänge 512 Pixel beträgt und die Länge der Borstentrajektorienkartierung 1500 Pixel beträgt. In diesem Fall kann das Datenerzeugungsmodul 302 die Borstentrajektorienkartierung in drei Borstentrajektorienkartierungssegmente segmentieren, wobei zwei Borstentrajektorienkartierungssegmente jeweils eine Länge von 512 Pixeln aufweisen und ein Borstentrajektorienkartierungssegment eine Länge von 476 Pixeln aufweist. Die Borstentrajektorienkartierungssegment-Schwellenlänge kann beispielsweise durch den Hersteller des Stricherzeugungssystems 300 vorkonfiguriert werden. In einigen Ausführungsformen kann die Borstentrajektorienkartierungssegment-Schwellenlänge ein abstimmbarer Parameter sein. Beispielsweise kann die Borstentrajektorienkartierungssegment-Schwellenlänge in einer Konfigurationsdatei festgelegt werden, auf die das Stricherzeugungssystem 300 zugreifen kann, und ein Nutzer (oder ein Systemadministrator) kann die Borstentrajektorienkartierungssegment-Schwellenlänge auf der Basis des Leistungsvermögens des Stricherzeugungssystems 300 abstimmen oder einstellen. Beispielsweise kann ein Nutzer die Borstentrajektorienkartierungssegment-Schwellenlänge so abstimmen, dass ein gewünschtes Leistungsvermögen des Stricherzeugungssystems 300 erreicht wird.
  • In einigen Ausführungsformen kann das Datenerzeugungsmodul 302 eine Zeichen-Box für jedes Borstentrajektorienkartierungssegment erzeugen. Eine Zeichen-Box stellt die Grenzen (z.B. eine Grenze) eines Borstentrajektorienkartierungssegments dar oder legt sie fest. Beispielsweise kann eine Zeichen-Box durch die Koordinaten der vier Ecken der Zeichen-Box festgelegt sein. In einigen Ausführungsformen wird eine Zeichen-Box für ein Borstentrajektorienkartierungssegment in einer Weise erzeugt, so dass das Borstentrajektorienkartierungssegment eng gebunden wird. D.h., die Zeichen-Box wird so erzeugt, dass innerhalb der Zeichen-Box die Anzahl von Pixeln, die das Malpinselstrichsegment nicht darstellen, vermindert oder minimiert wird. Das Minimieren der Anzahl von Pixeln, die das Malpinselstrichsegment in der Zeichen-Box nicht darstellen, führt zu einer Verminderung der Rechenkosten. Beispielsweise vermindert das Vermindern oder Minimieren der Anzahl von Pixeln, die kein Malpinselstrichsegment darstellen, die Anzahl von „unnötigen“ Pixeln, die durch das trainierte neuronale Netzwerk 202 bei der Verarbeitung des Borstentrajektorienkartierungssegments des Malpinselstrichsegments verarbeitet werden müssen. Jedes Borstentrajektorienkartierungssegment stellt ein jeweiliges Segment des vorliegenden Malpinselstrichs dar, der durch den Nutzer eingegeben worden ist.
  • Das Datenerzeugungsmodul 302 ist zum Bereitstellen oder in sonstiger Weise verfügbar Machen von jedem Borstentrajektorienkartierungssegment und der Höhenkartierung der vorliegenden Farbe auf der Leinwand für ein jeweiliges trainiertes neuronales Netzwerk 202 ausgebildet. Beispielsweise kann das Datenerzeugungsmodul 302 oder eine andere Komponente des Stricherzeugungssystems 300 eine Mehrzahl von Instanzen des trainierten neuronalen Netzwerks 202 realisieren, wobei jede Instanz des trainierten neuronalen Netzwerks 202 ein jeweiliges Borstentrajektorienkartierungssegment und die Höhenkartierung der vorliegenden Farbe auf der Leinwand verarbeitet. D.h., jedem trainierten neuronalen Netzwerk 202 der Mehrzahl von trainierten neuronalen Netzwerken 202 werden ein jeweiliges Borstentrajektorienkartierungssegment und die Höhenkartierung der vorliegenden Farbe auf der Leinwand als Eingaben bereitgestellt. Obwohl das Datenerzeugungsmodul 302 so gezeigt ist, dass es eine Borstentrajektorienkartierung in drei Borstentrajektorienkartierungssegmente segmentiert, dient die Anzahl der Borstentrajektorienkartierungssegmente lediglich zur Veranschaulichung, und eine andere Anzahl von Borstentrajektorienkartierungssegmenten kann auf der Basis der Länge der Borstentrajektorienkartierung und der festgelegten Borstentrajektorienkartierungssegmentlänge erzeugt werden, wie es im Hinblick auf diese Offenbarung ersichtlich ist.
  • Die 5 ist ein Blockdiagramm, das schematisch eine Mehrzahl von Borstentrajektorienkartierungssegmenten und entsprechenden Höhenkartierungssegmenten, durch die eine Mehrzahl von trainierten neuronalen Netzwerken 202 erzeugt worden sind, gemäß mindestens einiger hier beschriebener Ausführungsformen zeigt. Wie es vorstehend diskutiert worden ist, entspricht jedes Borstentrajektorienkartierungssegment einem Segment einer Borstentrajektorienkartieruhg, wobei die Borstentrajektorienkartierung einen vorliegenden Malpinselstrich darstellt. Als solches ist jedes Borstentrajektorienkartierungssegment eine Darstellung einer Spur der Borstenspitzen eines Malpinsels, die als Ergebnis eines jeweiligen vorliegenden Malpinselstrichsegments erzeugt worden ist. Jedes Borstentrajektorienkartierungssegment ist durch eine Zeichen-Box dargestellt. Jedes Borstentrajektorienkartierungssegment wird durch ein jeweiliges trainiertes neuronales Netzwerk 202 verarbeitet, das eine entsprechende Höhenkartierung der Farbe auf der Leinwand ableitet, nachdem das vorliegende Malpinselstrichsegment, das durch das Borstentrajektorienkartierungssegment dargestellt wird, aufgebracht worden ist. Die Höhenkartierung, die durch jedes trainierte neuronale Netzwerk 202 abgeleitet wird, ist ein Höhenkartierungssegment, das die Höhe der Farbe darstellt, die sich nun auf der Leinwand befindet, nachdem das vorliegende Malpinselstrichsegment auf die Farbe aufgebracht worden ist, die vor dem Aufbringen des vorliegenden Malpinselstrichsegments auf der Leinwand vorlag. Entsprechend den Zeichen-Boxen, welche die Borstentrajektorienkartierungssegmente begrenzen, kann jedes Höhenkartierungssegment durch eine Zeichen-Box dargestellt oder festgelegt werden.
  • Unter erneuter Bezugnahme auf die 4 stellt jedes trainierte neuronale Netzwerk 202 das erzeugte Höhenkartierungssegment (die Höhenkartierung von Farbe auf der Leinwand nach dem Aufbringen des gegenwärtigen Malpinselstrichsegmens) für das Höhenkartierung-Kombiniermodul 304 bereit oder macht es in sonstiger Weise verfügbar. Das Höhenkartierung-Kombiniermodul 304 kombiniert die Mehrzahl von Höhenkartierungssegmenten, die beispielsweise durch die Mehrzahl von trainierten neuronalen Netzwerke 202 bereitgestellt werden, zum Erzeugen einer einzelnen kombinierten Höhenkartierung. Beispielsweise kann das Höhenkartierung-Kombiniermodul 304 die Mehrzahl von Höhenkartierungssegmenten durch Zusammenstellen der nicht-überlappenden Bereiche der Höhenkartierungssegmente und Bilden des Durchschnitts der Höhenkartierungswerte in den überlappenden Bereichen von zwei benachbarten Höhenkartierungssegmenten kombinieren.
  • In einigen Ausführungsformen wird jede der Mehrzahl von Zeichen-Boxen so erzeugt, dass ein Überlappungsbereich zwischen zwei angrenzenden Zeichen-Boxen erzeugt wird. Die Überlappungsbereiche ermöglichen das Mischen der Höhenkartierungssegmente, die in den Überlappungsbereichen vorliegen, so dass eine Kontinuität der Malpinselstrichsegmente bereitgestellt wird, wenn zwei angrenzende Höhenkartierungssegmente kombiniert werden. In einigen Ausführungsformen ist der Überlappungsbereich eine festgelegte Anzahl von Pixeln, wie z.B. 8 Pixel, 16 Pixel, 32 Pixel, usw., entlang der allgemeinen Richtung oder der Länge des Malpinselstrichs. D.h., zwischen zwei angrenzenden Höhenkartierungssegmenten überlappt ein jeweiliges Ende von jedem der angrenzenden Höhenkartierungssegmente mit der festgelegten Anzahl von Pixeln entlang der allgemeinen Richtung oder der Länge des angrenzenden Höhenkartierungssegments. Die Größe (z.B. die Länge) des Überlappungsbereichs kann zu der Kontinuität einer resultierenden Höhenkartierung beitragen, wenn angrenzende Höhenkartierungssegmente kombiniert werden. D.h., bei der Erzeugung einer kontinuierlicheren Höhenkartierung kann verglichen mit einem kleinen Überlappungsbereich ein großer Überlappungsbereich resultieren. Die Größe des Überlappungsbereichs kann vorkonfiguriert werden, beispielsweise durch einen Hersteller des Stricherzeugungssystems 300. In einigen Ausführungsformen kann die Größe des Überlappungsbereichs ein abstimmbarer Parameter sein. Beispielsweise kann die Größe des Überlappungsbereichs in einer Konfigurationsdatei festgelegt sein, auf die das Stricherzeugungssystem 300 zugreifen kann, und ein Nutzer (oder ein Systemadministrator) kann die Größe des Überlappungsbereichs auf der Basis des Leistungsvermögens (z.B. der Glätte oder anderen visuellen Eigenschaften des gerenderten Malpinselstrichs) des Stricherzeugungssystems 300 abstimmen oder einstellen. Beispielsweise kann ein Nutzer die Größe des Überlappungsbereichs so abstimmen, dass eine gewünschte Glätte des Malpinselstrichs erreicht wird, der durch das Stricherzeugungssystem 300 gerendert worden ist.
  • Die 6 ist ein Flussdiagramm 600, das ein Beispielverfahren zum Rendern eines neuen Malpinselstrichs gemäß mindestens einiger hier beschriebener Ausführungsformen zeigt. Beispielvorgänge und -verfahren können einen Vorgang oder mehrere Vorgänge, Funktion(en) oder Aktion(en) umfassen, wie es durch einen oder mehrere der Blöcke 602, 604, 606, 608, 610 und/oder 612 gezeigt ist, und können in einigen Ausführungsformen durch ein Rechensystem, wie z.B. ein Rechensystem 700 von 7 durchgeführt werden. Die in den Blöcken 602-612 beschriebenen Vorgänge können auch als computerausführbare Anweisungen in einem computerlesbaren Medium gespeichert werden, wie z.B. einem Speicher 704 und/oder einem Datenspeicher 706 des Rechensystems 700. Das Verfahren kann durch die Komponenten des Stricherzeugungssystems 300 durchgeführt werden.
  • Wie es im Hinblick auf diese Offenbarung ferner ersichtlich ist, können für diese und andere Vorgänge und Verfahren, die hier offenbart sind, die Funktionen, die in den Vorgängen und Verfahren durchgeführt werden, in einer anderen Reihenfolge implementiert werden. Zusätzlich oder alternativ können zwei oder mehr Vorgänge gleichzeitig oder in sonstiger Weise in einer überlappenden gleichzeitigen Weise durchgeführt werden. Ferner sind die angegebenen Aktionen und Vorgänge lediglich als Beispiele dargestellt und einige der Aktionen und Vorgänge können optional sein, zu weniger Aktionen und Vorgänge kombiniert werden oder zu zusätzlichen Aktionen und Vorgängen erweitert werden, ohne von dem Wesentlichen der offenbarten Ausführungsformen abzuweichen.
  • Wie es in dem Flussdiagramm 600 gezeigt ist, kann der Vorgang mit dem Block 602 beginnen, bei dem das Stricherzeugungssystem 300 einen neuen Malpinselstrich empfängt. In einem beispielhaften Anwendungsfall kann ein Nutzer das Stricherzeugungssystem 300 auf einer Rechenvorrichtung ausführen, um ein simuliertes Ölgemälde auf einer Leinwand zu erzeugen. Das Stricherzeugungssystem 300 kann einen Stift und einen berührungssensiblen Bildschirm zur Verwendung durch den Nutzer zum Erzeugen eines Ölgemäldes bereitstellen und der Nutzer kann einen neuen Malpinselstrich auf der Leinwand unter Verwendung des bereitgestellten Stifts und des berührungssensiblen Bildschirms erzeugt haben. Als Reaktion empfängt das Datenerzeugungsmodul 302 die neuen Malpinselstriche, die durch den Nutzer erzeugt worden sind.
  • Nach dem Block 602 kann der Block 604 folgen, bei dem das Datenerzeugungsmodul 302 eine Farbkartierung auf der Basis des empfangenen neuen Malpinselstrichs und eines gegenwärtigen Zustands der Leinwand (z.B. der vorliegenden Farbe auf der Leinwand) erzeugt.
  • Nach dem Block 604 kann der Block 606 folgen, bei dem das Datenerzeugungsmodul 302 eine Borstentrajektorienkartierung erzeugt, die den empfangenen neuen Malpinselstrich darstellt.
  • Nach dem Block 606 kann der Block 608 folgen, bei dem das Datenerzeugungsmodul 302 die Borstentrajektorienkartierung und eine Höhenkartierung der vorliegenden Farbe auf der Leinwand als Eingaben für das trainierte neuronale Netzwerk 202 bereitstellt. Das Datenerzeugungsmodul 302 kennt die Höhenkartierung der vorliegenden Farbe auf der Leinwand aufgrund dessen, dass das Stricherzeugungssystem 300 den Malpinselstrich vor dem gegenwärtigen neuen Malpinselstrich verarbeitet hat.
  • Nach dem Block 608 kann der Block 610 folgen, bei dem das trainierte neuronale Netzwerk 202 eine neue Höhenkartierung der vorliegenden Farbe auf der Leinwand auf der Basis der Borstentrajektorienkartierung und der Höhenkartierung der vorliegenden Farbe auf der Leinwand, die als Eingaben bereitgestellt worden sind, ableitet. Unter Fortsetzung des vorstehenden Beispiels ist die neue Höhenkartierung, die durch das trainierte neuronale Netzwerk 202 abgeleitet worden ist, eine neue Höhenkartierung, welche die Höhe der Farbe darstellt, die sich nun auf der Leinwand befindet, nachdem der neue Malpinselstrich auf die Leinwand aufgebracht worden ist.
  • Nach dem Block 610 kann der Block 612 folgen, bei dem das Rendermodul 306 ein Rendering des neuen Malpinselstrichs auf der Leinwand auf der Basis der neuen Höhenkartierung der vorliegenden Farbe auf der Leinwand und der Farbkartierung erzeugt. Unter Fortsetzung des vorstehenden Beispiels kann das Rendering des neuen Malpinselstrichs auf dem berührungssensiblen Bildschirm erzeugt werden, auf dem der Nutzer den neuen Malpinselstrich erzeugt hat.
  • In einigen Ausführungsformen können zusätzliche Vorgänge durchgeführt werden. Beispielsweise kann in einigen Ausführungsformen das Datenerzeugungsmodul 302 die Borstentrajektorienkartierung, die den neuen Malpinselstrich darstellt, auf der Basis einer festgelegten Borstentrajektorienkartierungssegment-Schwellenlänge in ein oder mehrere Borstentrajektorienkartierungssegment(e) segmentieren. Beispielsweise kann das Datenerzeugungsmodul 302 die Länge der Borstentrajektorienkartierung bestimmen und, wenn die Länge der Borstentrajektorienkartierung die festgelegte Borstentrajektorienkartierungssegmentlänge nicht übersteigt, ein Borstentrajektorienkartierungssegment aus der Borstentrajektorienkartierung erzeugen. Alternativ kann, wenn die Länge der Borstentrajektorienkartierung die festgelegte Borstentrajektorienkartierungssegment-Schwellenlänge übersteigt, das Datenerzeugungsmodul die Borstentrajektorienkartierung in eine Mehrzahl von Borstentrajektorienkartierungssegmenten segmentieren, so dass die Länge jedes Borstentrajektorienkartierungssegments, ausgenommen das letzte Borstentrajektorienkartierungssegment, die festgelegte Borstentrajektorienkartierungssegment-Schwellenlänge aufweist. Das Datenerzeugungsmodul 302 kann dann jedes Borstentrajektorienkartierungssegment und die Höhenkartierung der vorliegenden Farbe auf der Leinwand für ein jeweiliges trainiertes neuronales Netzwerk 202 bereitstellen. Jedes jeweilige trainierte neuronale Netzwerk 202 kann ein Höhenkartierungssegment auf der Basis des Borstentrajektorienkartierungssegments und der Höhenkartierung einer vorliegenden Farbe auf der Leinwand, die als Eingaben bereitgestellt worden sind, ableiten. Eine einzelne Höhenkartierung von Farbe, die auf der Leinwand vorliegt, kann auf der Basis der Höhenkartierungssegmente erzeugt werden, die durch die Mehrzahl von trainierten neuronalen Netzwerken 202 abgeleitet worden sind. Beispielsweise kann das Höhenkartierung-Kombiniermodul 304 die Höhenkartierungssegmente zum Erzeugen der einzelnen Höhenkartierung einer vorliegenden Farbe auf der Leinwand kombinieren, nachdem der neue Malpinselstrich aufgebracht worden ist.
  • Die 7 zeigt ausgewählte Komponenten des Beispielrechensystems 700, das zur Durchführung von jedweder der Techniken, wie sie in der vorliegenden Offenbarung verschiedenartig beschrieben sind, gemäß mindestens einiger hier beschriebener Ausführungsformen verwendet werden kann. In einigen Ausführungsformen kann das Rechensystem 700 zum Implementieren oder Leiten eines Vorgangs oder mehrerer Vorgänge, die mit einigen oder allen der Einheiten, Komponenten und/oder Module zusammenhängen, die mit dem Stricherzeugungssystem 300 von 3 zusammenhängen, ausgebildet sein. Beispielsweise können das Datenerzeugungsmodul 302, das trainierte neuronale Netzwerk 202, das Höhenkartierung-Kombiniermodul 304 und das Rendermodul 306 oder jedwede Kombination davon in dem Rechensystem 700 implementiert sein und/oder dieses nutzen. In einem Beispielfall wird z.B. jedes des Datenerzeugungsmoduls 302, des trainierten neuronalen Netzwerks 202, des Höhenkartierung-Kombiniermoduls 304 und des Rendermoduls 306 in den Speicher 704 geladen und kann durch einen Prozessor 702 ausgeführt werden. Das Rechensystem 700 kann jedwedes Computersystem sein, wie z.B. eine Workstation, ein Desktopcomputer, ein Server, ein Laptop, ein handgehaltener Computer, ein Tabletcomputer (z.B. der iPad®-Tabletcomputer), eine mobile Rechen- oder Kommunikationsvorrichtung (z.B. die mobile iPhone®-Kommunikationsvorrichtung, eine mobile Android™-Kommunikationsvorrichtung und dergleichen) oder eine andere Form von Rechen- oder Telekommunikationsvorrichtung, die kommunizieren kann und die eine ausreichende Prozessorleistung und ein ausreichendes Speichervermögen zur Durchführung der in dieser Offenbarung beschriebenen Vorgänge aufweist. Es kann ein verteiltes Rechensystem bereitgestellt werden, das eine Mehrzahl solcher Rechenvorrichtungen umfasst. Wie es gezeigt ist, kann das Rechensystem 700 einen Prozessor 702, einen Speicher 704 und einen Datenspeicher 706 umfassen. Der Prozessor 702, der Speicher 704 und der Datenspeicher 706 können kommunikativ gekoppelt sein.
  • Im Allgemeinen kann der Prozessor 702 jedwede(n) spezielle(n) oder allgemeinen Computer, Recheneinheit oder Rechen- oder Verarbeitungsvorrichtung umfasst, die verschiedenartige Computerhardware, -firmware oder -softwaremodule umfasst, und kann so ausgebildet sein, dass er Anweisungen, wie z.B. Programmanweisungen, die auf jedweden anwendbaren computerlesbaren Speichermedien gespeichert sind, ausführt. Beispielsweise kann der Prozessor 702 einen Mikroprozessor, einen Mikrocontroller, einen digitalen Signalprozessor (DSP), eine anwendungsspezifische integrierte Schaltung (ASIC), ein spezifisch programmierbares Gatterfeld (FPGA) oder jedwede andere digitale oder analoge Schaltung umfassen, die zum Interpretieren und/oder Ausführen von Programmanweisungen und/oder zum Verarbeiten von Daten ausgebildet ist. Obwohl der Prozessor 702 in der 7 als einzelner Prozessor gezeigt ist, kann der Prozessor 702 jedwede Anzahl von Prozessoren und/oder Prozessorkernen umfassen, die ausgebildet sind, um einzeln oder zusammen das Leistungsvermögen von jedweder Anzahl von Vorgängen, die in der vorliegenden Offenbarung beschrieben sind, auszuführen oder zu leiten. Zusätzlich kann einer oder können mehrere der Prozessoren auf einer oder mehreren verschiedenen elektronischen Vorrichtung(en), wie z.B. verschiedenen Servern, vorliegen.
  • In einigen Ausführungsformen kann der Prozessor 702 so ausgebildet sein, dass er Programmanweisungen und/oder Verfahrensdaten, die im dem Speicher 704, dem Datenspeicher 706 oder dem Speicher 704 und dem Datenspeicher 706 gespeichert sind, interpretiert und/oder ausführt. In einigen Ausführungsformen kann der Prozessor 702 Programmanweisungen von dem Datenspeicher 706 abrufen und die Programmanweisungen in den Speicher 704 laden. Nachdem die Programmanweisungen in den Speicher 704 geladen worden sind, kann der Prozessor 702 die Programmanweisungen ausführen.
  • Beispielsweise kann oder können in einigen Ausführungsformen eine oder mehrere der Einheiten, Komponenten und/oder Module des Stricherzeugungssystems 300 in den Datenspeicher 706 als Programmanweisungen einbezogen werden. Der Prozessor 702 kann einige oder alle der Programmanweisungen von dem Datenspeicher 706 abrufen und die abgerufenen Programmanweisungen in den Speicher 704 laden. Nach dem Laden der Programmanweisungen in den Speicher 704 kann der Prozessor 702 die Programmanweisungen ausführen, so dass das Rechensystem die Vorgänge so implementieren kann, wie es durch die Anweisungen vorgegeben ist.
  • In einigen Ausführungsformen kann eine Virtualisierung in der Rechenvorrichtung 700 eingesetzt werden, so dass die Infrastruktur und die Ressourcen in der Rechenvorrichtung 700 dynamisch geteilt werden können. Beispielsweise kann eine virtuelle Maschine zum Handhaben eines Vorgangs bereitgestellt werden, der auf mehreren Prozessoren läuft, so dass es scheint, dass der Vorgang nur eine Rechenressource anstelle der Mehrzahl von Rechenressourcen nutzt. Es kann auch eine Mehrzahl von virtuellen Maschinen mit einem Prozessor verwendet werden.
  • Der Speicher 704 und der Datenspeicher 706 können computerlesbare Speichermedien zum Speichern von computerausführbaren Anweisungen oder Datenstrukturen darauf umfassen. Solche computerlesbaren Speichermedien können jedwede verfügbaren Medien umfassen, auf die ein allgemeiner oder spezieller Computer, wie z.B. der Prozessor 702, zugreifen kann. Beispielsweise und ohne Beschränkung können solche computerlesbaren Speichermedien nicht-flüchtige computerlesbare Speichermedien einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen elektrisch löschbaren, programmierbaren Festwertspeicher (EEPROM), einen Compact Disc-Festwertspeicher (CD-ROM) oder eine andere optische Speicherplatte, Magnetspeicherplatte oder andere Magnetspeichervorrichtungen, Flashspeichervorrichtungen (z.B. Halbleiterspeichervorrichtungen) oder jedwedes andere Speichermedium umfassen, das zum Enthalten oder Speichern eines bestimmten Programmcodes in der Form von computerausführbaren Anweisungen oder Datenstrukturen verwendet werden kann und auf das ein allgemeiner oder spezieller Computer zugreifen kann. Kombinationen der Vorstehenden können auch in den Umfang von computerlesbaren Speichermedien einbezogen sein. Computerausführbare Anweisungen können beispielsweise Anweisungen und Daten umfassen, die so ausgebildet sind, dass sie die Durchführung eines bestimmten Vorgangs oder einer bestimmten Gruppe von Vorgängen durch den Prozessor 702 bewirken.
  • Bezüglich des Rechensystem 700 können Modifizierungen, Hinzufügungen oder Weglassungen durchgeführt werden, ohne von dem Umfang der vorliegenden Offenbarung abzuweichen. Beispielsweise kann das Rechensystem 700 in einigen Ausführungsformen jedwede Anzahl von anderen Komponenten umfassen, die hier nicht explizit gezeigt oder beschrieben sind.
  • Wie es vorstehend angegeben worden ist, können die in der vorliegenden Offenbarung beschriebenen Ausführungsformen die Verwendung eines allgemeinen oder speziellen Computers (z.B. des Prozessors 702 von 7) umfassen, der verschiedene Computerhardware- oder Softwaremodule umfasst, wie es hier detaillierter diskutiert wird. Es sollte beachtet werden, dass, sobald ein allgemeiner Computer programmiert oder in sonstiger Weise konfiguriert worden ist, um eine Funktion gemäß einer Ausführungsform der vorliegenden Offenbarung auszuführen, dieser allgemeine Computer ein spezieller Computer wird. Ferner können, wie es vorstehend angegeben worden ist, Ausführungsformen, die in der vorliegenden Offenbarung beschrieben sind, unter Verwendung von computerlesbaren Medien (z.B. dem Speicher 704 von 7) zum Enthalten oder Aufweisen von darauf gespeicherten computerausführbaren Anweisungen oder Datenstrukturen implementiert werden.
  • Im Hinblick auf diese Offenbarung sind zahlreiche Beispielvariationen und -konfigurationen ersichtlich. Gemäß einiger Beispiele werden computerimplementierte Verfahren zur Simulation eines Malpinselstrichs beschrieben. Ein Beispiel für ein computerimplementiertes Verfahren kann umfassen: Ableiten, durch ein trainiertes neuronales Netzwerk, das eine erste Eingabe zum Empfangen einer Borstentrajektorienkartierung, die einen neuen Malpinselstrich darstellt, und eine zweite Eingabe zum Empfangen einer ersten Höhenkartierung einer vorliegenden Farbe auf einer Leinwand umfasst, einer zweiten Höhenkartierung einer vorliegenden Farbe auf der Leinwand, nachdem der neue Malpinselstrich auf die Leinwand aufgebracht worden ist; und Erzeugen, durch ein Rendermodul, eines Renderings des neuen Malpinselstrichs auf der Basis der zweiten Höhenkartierung einer vorliegenden Farbe auf der Leinwand, nachdem der neue Malpinselstrich auf die Leinwand aufgebracht worden ist, und einer Farbkartierung.
  • In einigen Beispielen wird das trainierte neuronale Netzwerk unter Verwendung einer Mehrzahl von Trainingsdatensätzen trainiert, wobei jeder Trainingsdatensatz der Mehrzahl von Trainingsdatensätzen eine Höhenkartierung, eine Borstentrajektorienkartierung und eine Basiswahrheit umfasst. In weiteren Beispielen werden für jeden Trainingsdatensatz die Borstentrajektorienkartierung und die Basiswahrheit durch einen Simulator als Reaktion darauf erzeugt, das die Höhenkartierung als Eingabe bereitgestellt wird. In weiteren Beispielen nutzt der Simulator eine Fluidsimulation zum Erzeugen der Basiswahrheit. In weiteren Beispielen ist die Borstentrajektorienkartierung ein Borstentrajektorienkartierungssegment, das ein neues Malpinselstrichsegment darstellt, und wobei ferner die zweite Höhenkartierung ein zweites Höhenkartierungssegment einer vorliegenden Farbe auf der Leinwand ist, nachdem das neue Malpinselstrichsegment auf die Leinwand aufgebracht worden ist. In weiteren Beispielen wird das Borstentrajektorienkartierungssegment durch eine Zeichen-Box dargestellt oder das zweite Höhenkartierungssegment wird durch eine Zeichen-Box dargestellt oder sowohl das Borstentrajektorienkartierungssegment als auch das zweite Höhenkartierungssegment werden durch eine jeweilige Zeichen-Box dargestellt. In weiteren Beispielen ist der neue Malpinselstrich ein neuer Öl-Malpinselstrich. In weiteren Beispiele ist das trainierte neuronale Netzwerk eines von einer Mehrzahl von trainierten neuronalen Netzwerken, wobei jedes trainierte neuronale Netzwerk der Mehrzahl von trainierten Netzwerken eine jeweilige erste Eingabe zum Empfangen eines jeweiligen Borstentrajektorienkartierungssegments, das ein neues Malpinselstrichsegment darstellt, und eine jeweilige zweite Eingabe zum Empfangen einer ersten Höhenkartierung einer vorliegenden Farbe auf einer Leinwand aufweist, und das Ableiten durch die Mehrzahl von trainierten neuronalen Netzwerken derart durchgeführt wird, dass jedes trainierte neuronale Netzwerk so ausgebildet ist, dass es ein jeweiliges zweites Höhenkartierungssegment einer vorliegenden Farbe auf der Leinwand ableitet, nachdem der neue Malpinselstrich auf die Leinwand aufgebracht worden ist, wobei das Verfahren ferner umfasst: Erzeugen, durch ein Höhenkartierung-Kombiniermodul, einer kombinierten zweiten Höhenkartierung auf der Basis des jeweiligen zweiten Höhenkartierungssegments, das durch jedes trainiertes neuronale Netzwerk der Mehrzahl von trainierten neuronalen Netzwerken abgeleitet worden ist, wobei das Erzeugen, durch das Rendermodul, eines Renderings des neuen Malpinselstrichs auf der kombinierten zweiten Höhenkartierung basiert.
  • Gemäß einigen Beispielen sind Computerprogrammprodukte beschrieben, die ein nicht-flüchtiges maschinenlesbares Medium oder mehrere nicht-flüchtige maschinenlesbare Medien umfassen, das oder die mit Anweisungen kodiert ist oder sind, die, wenn sie durch einen oder mehrere Prozessor(en) ausgeführt werden, bewirken, dass ein Vorgang zum Simulieren eines Malpinselstrichs durchgeführt wird. Ein Beispielvorgang kann umfassen: Ableiten, durch ein trainiertes neuronales Netzwerk, das eine erste Eingabe zum Empfangen einer Borstentrajektorienkartierung, die einen neuen Malpinselstrich darstellt, und eine zweite Eingabe zum Empfangen einer ersten Höhenkartierung einer vorliegenden Farbe auf einer Leinwand umfasst, einer zweiten Höhenkartierung einer vorliegenden Farbe auf der Leinwand, nachdem der neue Malpinselstrich auf die Leinwand aufgebracht worden ist; und Erzeugen, durch ein Rendermodul, eines Renderings des neuen Malpinselstrichs auf der Basis der zweiten Höhenkartierung einer vorliegenden Farbe auf der Leinwand, nachdem der neue Malpinselstrich auf die Leinwand aufgebracht worden ist, und einer Farbkartierung.
  • In einigen Beispielen wird das trainierte neuronale Netzwerk unter Verwendung einer Mehrzahl von Trainingsdatensätzen trainiert, wobei jeder Trainingsdatensatz der Mehrzahl von Trainingsdatensätzen eine Höhenkartierung, eine Borstentrajektorienkartierung und eine Basiswahrheit umfasst. In weiteren Beispielen werden für jeden Trainingsdatensatz die Borstentrajektorienkartierung und die Basiswahrheit durch einen Simulator als Reaktion darauf erzeugt, dass die Höhenkartierung als Eingabe bereitgestellt wird. In weiteren Beispielen nutzt der Simulator eine Fluidsimulation zum Erzeugen der Basiswahrheit. In weiteren Beispielen ist die Borstentrajektorienkartierung ein Borstentrajektorienkartierungssegment, das ein neues Malpinselstrichsegment darstellt, und wobei ferner die zweite Höhenkartierung ein zweites Höhenkartierungssegment einer vorliegenden Farbe auf der Leinwand ist, nachdem das neue Malpinselstrichsegment auf die Leinwand aufgebracht worden ist. In weiteren Beispielen wird das Borstentrajektorienkartierungssegment durch eine Zeichen-Box dargestellt oder das zweite Höhenkartierungssegment wird durch eine Zeichen-Box dargestellt oder sowohl das Borstentrajektorienkartierungssegment als auch das zweite Höhenkartierungssegment werden durch eine jeweilige Zeichen-Box dargestellt. In weiteren Beispielen ist der neue Malpinselstrich ein neuer Öl-Malpinselstrich. In weiteren Beispiele ist das trainierte neuronale Netzwerk eines von einer Mehrzahl von trainierten neuronalen Netzwerken, wobei jedes trainierte neuronale Netzwerk der Mehrzahl von trainierten Netzwerken eine jeweilige erste Eingabe zum Empfangen eines jeweiligen Borstentrajektorienkartierungssegments, das ein neues Malpinselstrichsegment darstellt, und eine jeweilige zweite Eingabe zum Empfangen einer ersten Höhenkartierung einer vorliegenden Farbe auf einer Leinwand aufweist, und das Ableiten durch die Mehrzahl von trainierten neuronalen Netzwerken derart durchgeführt wird, dass jedes trainierte neuronale Netzwerk so ausgebildet ist, dass es ein jeweiliges zweites Höhenkartierungssegment einer vorliegenden Farbe auf der Leinwand ableitet, nachdem der neue Malpinselstrich auf die Leinwand aufgebracht worden ist, wobei das Verfahren ferner umfasst: Erzeugen einer kombinierten zweiten Höhenkartierung auf der Basis des jeweiligen zweiten Höhenkartierungssegments, das durch jedes trainiertes neuronale Netzwerk der Mehrzahl von trainierten neuronalen Netzwerken abgeleitet worden ist, wobei das Erzeugen eines Renderings des neuen Malpinselstrichs auf der kombinierten zweiten Höhenkartierung basiert.
  • Gemäß einigen Beispielen werden Systeme zum Simulieren eines Malpinselstrichs beschrieben. Ein Beispielsystem kann umfassen: einen oder mehrere Prozessor(en); ein oder mehrere trainierte(s) neuronale(s) Netzwerk(s), wobei jedes trainierte neuronale Netzwerk durch den einen oder die mehreren Prozessor(en) mindestens eines von steuerbar und ausführbar ist, wobei jedes trainierte neuronale Netzwerk eine erste Eingabe zum Empfangen einer Borstentrajektorienkartierung, die einen neuen Malpinselstrich darstellt, und eine zweite Eingabe zum Empfangen einer ersten Höhenkartierung einer vorliegenden Farbe auf einer Leinwand aufweist, wobei jedes neuronale Netzwerk zum Ableiten einer jeweiligen zweiten Höhenkartierung einer vorliegenden Farbe auf der Leinwand ausgebildet ist, nachdem der neue Malpinselstrich auf die Leinwand aufgebracht worden ist; ein Höhenkartierung-Kombiniermodul, das durch den einen oder die mehreren Prozessor(en) mindestens eines von steuerbar und ausführbar ist und zum Erzeugen einer Höhenkartierung auf der Basis des jeweiligen zweiten Höhenkartierungssegments, das durch jedes trainierte neuronale Netzwerk abgeleitet ist, ausgebildet ist; und ein Rendermodul, das durch den einen oder die mehreren Prozessor(en) mindestens eines von steuerbar und ausführbar ist und zum Erzeugen eines Renderings des neuen Malpinselstrichs auf der Basis der zweiten Höhenkartierung einer vorliegenden Farbe auf der Leinwand, nachdem der neue Malpinselstrich auf die Leinwand aufgebracht worden ist, und einer Farbkartierung ausgebildet ist.
  • In einigen Beispielen wird das trainierte neuronale Netzwerk unter Verwendung einer Mehrzahl von Trainingsdatensätzen trainiert, wobei jeder Trainingsdatensatz der Mehrzahl von Trainingsdatensätzen eine Höhenkartierung, eine Borstentrajektorienkartierung und eine Basiswahrheit umfasst. In weiteren Beispielen werden für jeden Trainingsdatensatz die Borstentrajektorienkartierung und die Basiswahrheit durch einen Simulator als Reaktion darauf erzeugt, das die Höhenkartierung als Eingabe bereitgestellt wird. In weiteren Beispielen wird das Borstentrajektorienkartierungssegment durch eine Zeichen-Box dargestellt oder das zweite Höhenkartierungssegment wird durch eine Zeichen-Box dargestellt oder sowohl das Borstentrajektorienkartierungssegment als auch das zweite Höhenkartierungssegment werden durch eine jeweilige Zeichen-Box dargestellt.
  • Wie in der vorliegenden Offenbarung verwendet, können sich die Begriffe „Einheit“ oder „Modul“ oder „Komponente“ auf spezifische Hardwareimplementierungen beziehen, die zum Ausführen der Aktionen der Einheit oder des Moduls oder der Komponente ausgebildet sind, und/oder auf Softwareobjekte oder Softwareroutinen, die durch eine allgemeine Hardware (z.B. computerlesbare Medien, Verarbeitungsvorrichtungen, usw.) des Rechensystems gespeichert und/oder ausgeführt werden können. In einigen Ausführungsformen können die verschiedenen Komponenten, Module, Einheiten und Dienste, die in der vorliegenden Offenbarung beschrieben sind, als Objekte oder Vorgänge implementiert werden, die auf dem Rechensystem ausgeführt werden (z.B. als separate Threads). Während einige Systeme und Verfahren, die in der vorliegenden Offenbarung beschrieben sind, allgemein so beschrieben sind, dass sie als Software (gespeichert und/oder ausgeführt durch eine allgemeine Hardware) implementiert sind, sind spezifische Hardwareimplementierungen, Firmwareimplementierungen oder jedwede Kombination davon ebenfalls möglich und vorgesehen. In dieser Beschreibung kann eine „Recheneinheit“ jedwedes Rechensystem sein, wie es vorstehend in der vorliegenden Beschreibung beschrieben worden ist, oder jewede(s) Modul oder Kombination von Modulen, das oder die auf einem Rechensystem ausgeführt wird oder werden.
  • Begriffe, die in der vorliegenen Offenbarung und in den beigefügten Ansprüchen verwendet werden (z.B. Merkmale der beigefügten Ansprüche), sollen allgemein „offene“ Begriffe sein (z.B. sollte der Begriff „umfassend“ als „umfassend, aber nicht beschränkt auf“ interpretiert werden, der Begriff „aufweisen“ sollte als „mindestens aufweisend“ interpretiert werden, der Begriff „umfasst“, sollte als „umfasst, ist aber nicht beschränkt auf“ interpretiert werden, usw.).
  • Zusätzlich wird dann, wenn eine spezifische Anzahl von eingeführten Anspruchsangaben beabsichtigt ist, eine solche Absicht explizit im Anspruch angegeben, und bei einem Fehlen einer solchen Angabe liegt keine solche Absicht vor. Beispielsweise können die nachstehend beigefügten Ansprüche die einleitenden Ausdrücke „mindestens eines“ und „ein oder mehrere“ zum Einleiten von Anspruchsangaben umfassen. Die Verwendung solcher Ausdrücke sollte jedoch nicht so aufgefasst werden, dass damit impliziert wird, dass die Einleitung einer Anspruchsangabe durch die unbestimmten Artikel „der“, „die“, „das“ oder „ein(er)“ und „eine(s)“ irgendeinen bestimmten Anspruch, der eine solche einleitende Anspruchsangabe enthält, auf Ausführungsformen beschränkt, die nur eine solche Angabe enthalten, selbst wenn derselbe Anspruch die einleitenden Ausdrücke „mindestens eines“ und „ein oder mehrere“ und unbestimmte Artikel wie z.B. „der“, „die“, „das“ oder „ein(er)“ und „eine(s)“ umfasst (z.B. sollte „ein“ und/oder „einen“ so interpretiert werden, dass „mindestens eines“ oder „ein oder mehrere“ gemeint ist); dasselbe gilt für die Verwendung von bestimmten Artikeln, die zum Einleiten von Anspruchsangaben verwendet werden.
  • Darüber hinaus soll selbst dann, wenn eine spezifische Zahl einer eingeführten Anspruchsangabe explizit genannt ist, eine solche Angabe so interpretiert werden, dass mindestens die angegebene Anzahl gemeint ist (z.B. steht die bloße Angabe von „zwei Widgets“ ohne weiteren modifizierenden Ausdruck für mindestens zwei Widgets oder zwei oder mehr Widgets). Ferner soll in solchen Fällen, bei denen eine Konstruktion analog zu „mindestens eines von A, B und C, usw.“ oder „eines oder mehrere von A, B und C, usw.“ verwendet wird, im Allgemeine eine solche Konstruktion A allein, B allein, C allein, A und B zusammen, A und C zusammen oder A, B und C zusammen, usw., umfassen.
  • Alle Beispiele und jedwede bedingte Sprache, die in der vorliegenden Offenbarung angegeben ist, soll pädagogischen Zielen zum Unterstützen des Lesers beim Verstehen der vorliegenden Offenbarung und der Konzepte dienen, die von dem Erfinder zum Weiterentwickeln der Technik angegeben worden sind, und sie sollen so aufgefasst werden, dass sie nicht auf solche spezifisch angegebenen Beispiele und Bedingungen beschränkt sind. Obwohl Ausführungsformen der vorliegenden Erfindung detailliert beschrieben worden sind, können verschiedene Änderungen, Ersetzungen und Modifizierungen der vorliegenden Erfindung durchgeführt werden, ohne von dem Wesen und dem Umfang der vorliegenen Offenbarung abzuweichen. Demgemäß ist vorgesehen, dass der Umfang der vorliegenden Offenbarung nicht auf diese detaillierte Beschreibung beschränkt ist, sondern vielmehr durch die beigefügten Ansprüche.

Claims (20)

  1. Computerimplementiertes Verfahren zum Simulieren eines Malpinselstrichs, wobei das Verfahren umfasst: Ableiten, durch ein trainiertes neuronales Netzwerk, das eine erste Eingabe zum Empfangen einer Borstentrajektorienkartierung, die einen neuen Malpinselstrich darstellt, und eine zweite Eingabe zum Empfangen einer ersten Höhenkartierung einer vorliegenden Farbe auf einer Leinwand aufweist, einer zweiten Höhenkartierung einer vorliegenden Farbe auf der Leinwand, nachdem der neue Malpinselstrich auf die Leinwand aufgebracht worden ist; und Erzeugen, durch ein Rendermodul, eines Renderings des neuen Malpinselstrichs auf der Basis der zweiten Höhenkartierung einer vorliegenden Farbe auf der Leinwand, nachdem der neue Malpinselstrich auf die Leinwand aufgebracht worden ist, und einer Farbkartierung.
  2. Verfahren nach Anspruch 1, bei dem das trainierte neuronale Netzwerk unter Verwendung einer Mehrzahl von Trainingsdatensätzen trainiert wird, wobei jeder Trainingsdatensatz der Mehrzahl von Trainingsdatensätzen eine Höhenkartierung, eine Borstentrajektorienkartierung und eine Basiswahrheit umfasst.
  3. Verfahren nach Anspruch 2, bei dem für jeden Trainingsdatensatz die Borstentrajektorienkartierung und die Basiswahrheit durch einen Simulator als Reaktion darauf erzeugt werden, dass die Höhenkartierung als Eingabe dafür bereitgestellt worden ist.
  4. Verfahren nach Anspruch 3, bei dem der Simulator eine Fluidsimulation zum Erzeugen der Basiswahrheit nutzt.
  5. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Borstentrajektorienkartierung ein Borstentrajektorienkartierungssegment ist, das ein neues Malpinselstrichsegment darstellt, und wobei ferner die zweite Höhenkartierung ein zweites Höhenkartierungssegment einer vorliegenden Farbe auf der Leinwand ist, nachdem das neue Malpinselstrichsegment auf die Leinwand aufgebracht worden ist.
  6. Verfahren nach Anspruch 5, bei dem das Borstentrajektorienkartierungssegment durch eine Zeichen-Box dargestellt wird oder das zweite Höhenkartierungssegment durch eine Zeichen-Box dargestellt wird oder sowohl das Borstentrajektorienkartierungssegment als auch das zweite Höhenkartierungssegment durch eine jeweilige Zeichen-Box dargestellt werden.
  7. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der neue Malpinselstrich ein neuer Öl-Malpinselstrich ist.
  8. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das trainierte neuronale Netzwerk eines einer Mehrzahl von trainierten neuronalen Netzwerken ist, wobei jedes trainierte neuronale Netzwerk der Mehrzahl von trainierten neuronalen Netzwerken eine jeweilige erste Eingabe zum Empfangen eines jeweiligen Borstentrajektorienkartierungssegments, das ein neues Malpinselstrichsegment darstellt, und eine jeweilige zweite Eingabe zum Empfangen einer ersten Höhenkartierung einer vorliegenden Farbe auf einer Leinwand aufweist, und das Ableiten derart durch die Mehrzahl von trainierten neuronalen Netzwerken durchgeführt wird, dass jedes trainierte neuronale Netzwerk derart ausgebildet ist, dass es ein jeweiliges zweites Höhenkartierungssegment einer vorliegenden Farbe auf der Leinwand ableitet, nachdem das neue Malpinselstrichsegment auf die Leinwand aufgebracht worden ist, wobei das Verfahren ferner umfasst: Erzeugen, durch ein Höhenkartierung-Kombiniermodul, einer kombinierten zweiten Höhenkartierung auf der Basis des jeweiligen zweiten Höhenkartierungssegments, das durch jedes trainierte neuronale Netzwerk der Mehrzahl von trainierten neuronalen Netzwerken abgeleitet worden ist, wobei das Erzeugen, durch das Rendermodul, eines Renderings des neuen Malpinselstrichs auf der kombinierten zweiten Höhenkartierung basiert.
  9. Verfahren nach Anspruch 8, bei dem die Länge jedes Borstentrajektorienkartierungssegments auf einer Borstentrajektorienkartierungssegment-Schwellenlänge basiert.
  10. Computerprogrammprodukt, das ein nicht-flüchtiges maschinenlesbares Medium oder mehrere nicht-flüchtige maschinenlesbare Medien umfasst, auf dem oder denen Anweisungen kodiert sind, die, wenn sie durch einen oder mehrere Prozessoren) ausgeführt werden, bewirken, dass ein Verfahren zum Simulieren eines Malpinselstrichs ausgeführt wird, wobei das Verfahren umfasst: Ableiten, durch ein trainiertes neuronales Netzwerk, das eine erste Eingabe zum Empfangen einer Borstentrajektorienkartierung, die einen neuen Malpinselstrich darstellt, und eine zweite Eingabe zum Empfangen einer ersten Höhenkartierung einer vorliegenden Farbe auf einer Leinwand aufweist, einer zweiten Höhenkartierung einer vorliegenden Farbe auf der Leinwand, nachdem der neue Malpinselstrich auf die Leinwand aufgebracht worden ist; und Erzeugen eines Renderings des neuen Malpinselstrichs auf der Basis der zweiten Höhenkartierung einer vorliegenden Farbe auf der Leinwand, nachdem der neue Malpinselstrich auf die Leinwand aufgebracht worden ist, und einer Farbkartierung.
  11. Computerprogrammprodukt nach Anspruch 10, bei dem das trainierte neuronale Netzwerk unter Verwendung einer Mehrzahl von Trainingsdatensätzen trainiert wird, wobei jeder Trainingsdatensatz der Mehrzahl von Trainingsdatensätzen eine Höhenkartierung, eine Borstentrajektorienkartierung und eine Basiswahrheit umfasst.
  12. Computerprogrammprodukt nach Anspruch 11, bei dem für jeden Trainingsdatensatz die Borstentrajektorienkartierung und die Basiswahrheit durch einen Simulator als Reaktion darauf erzeugt werden, dass die Höhenkartierung als Eingabe dafür bereitgestellt worden ist.
  13. Computerprogrammprodukt nach Anspruch 12, bei dem der Simulator eine Fluidsimulation zum Erzeugen der Basiswahrheit nutzt.
  14. Computerprogrammprodukt nach einem der Ansprüche 10 bis 13, bei dem die Borstentrajektorienkartierung ein Borstentrajektorienkartierungssegment ist, das ein neues Malpinselstrichsegment darstellt, und wobei ferner die zweite Höhenkartierung ein zweites Höhenkartierungssegment einer vorliegenden Farbe auf der Leinwand ist, nachdem das neue Malpinselstrichsegment auf die Leinwand aufgebracht worden ist.
  15. Computerprogrammprodukt nach Anspruch 14, bei dem das Borstentrajektorienkartierungssegment durch eine Zeichen-Box dargestellt wird oder das zweite Höhenkartierungssegment durch eine Zeichen-Box dargestellt wird oder sowohl das Borstentrajektorienkartierungssegment als auch das zweite Höhenkartierungssegment durch eine jeweilige Zeichen-Box dargestellt werden.
  16. Computerprogrammprodukt nach einem der Ansprüche 10 bis 15, bei dem der neue Malpinselstrich ein neuer Öl-Malpinselstrich ist.
  17. Computerprogrammprodukt nach einem der Ansprüche 10 bis 16, bei dem das trainierte neuronale Netzwerk eines einer Mehrzahl von trainierten neuronalen Netzwerken ist, wobei jedes trainierte neuronale Netzwerk der Mehrzahl von trainierten neuronalen Netzwerken eine jeweilige erste Eingabe zum Empfangen eines jeweiligen Borstentrajektorienkartierungssegments, das ein neues Malpinselstrichsegment darstellt, und eine jeweilige zweite Eingabe zum Empfangen einer ersten Höhenkartierung einer vorliegenden Farbe auf einer Leinwand aufweist, und das Ableiten derart durch die Mehrzahl von trainierten neuronalen Netzwerken durchgeführt wird, dass jedes trainierte neuronale Netzwerk derart ausgebildet ist, dass es ein jeweiliges zweites Höhenkartierungssegment einer vorliegenden Farbe auf der Leinwand ableitet, nachdem das neue Malpinselstrichsegment auf die Leinwand aufgebracht worden ist, wobei das Verfahren ferner umfasst: Erzeugen einer kombinierten zweiten Höhenkartierung auf der Basis des jeweiligen zweiten Höhenkartierungssegments, das durch jedes trainierte neuronale Netzwerk der Mehrzahl von trainierten neuronalen Netzwerken abgeleitet worden ist, wobei das Erzeugen eines Renderings des neuen Malpinselstrichs auf der kombinierten zweiten Höhenkartierung basiert.
  18. System zum Simulieren eines Malpinselstrichs, wobei das System umfasst: einen oder mehrere Prozessor(en); ein oder mehrere trainierte(s) neuronale(s) Netzwerk(e), wobei jedes trainierte neuronale Netzwerk mindestens eines von durch den einen oder die mehreren Prozessor(en) steuerbar und ausführbar ist, wobei jedes trainierte neuronale Netzwerk eine erste Eingabe zum Empfangen eines jeweiligen Borstentrajektorienkartierungssegments, das ein neues Malpinselstrichsegment darstellt, und eine zweite Eingabe zum Empfangen einer ersten Höhenkartierung einer vorliegenden Farbe auf einer Leinwand aufweist, wobei jedes trainierte neuronale Netzwerk zum Ableiten eines jeweiligen zweiten Höhenkartierungssegments einer vorliegenden Farbe auf der Leinwand, nachdem der neue Malpinselstrich auf die Leinwand aufgebracht worden ist, ausgebildet ist; ein Höhenkartierung-Kombiniermodul, das mindestens eines von durch den einen oder die mehreren Prozessor(en) steuerbar und ausführbar ist und zum Erzeugen einer Höhenkartierung auf der Basis des jeweiligen zweiten Höhenkartierungssegments, das durch jedes trainierte neuronale Netzwerk abgeleitet worden ist, ausgebildet ist; und ein Rendermodul, das mindestens eines von durch den einen oder die mehreren Prozessor(en) steuerbar und ausführbar ist und zum Erzeugen eines Renderings des neuen Malpinselstrichs auf der Basis der zweiten Höhenkartierung einer vorliegenden Farbe auf der Leinwand, nachdem der neue Malpinselstrich auf die Leinwand aufgebracht worden ist, und einer Farbkartierung ausgebildet ist, wobei jedes trainierte neuronale Netzwerk unter Verwendung einer Mehrzahl von Trainingsdatensätzen trainiert wird, wobei jeder Trainingsdatensatz der Mehrzahl von Trainingsdatensätzen eine Höhenkartierung, eine Borstentrajektorienkartierung und eine Basiswahrheit umfasst.
  19. System nach Anspruch 18, bei dem für jeden Trainingsdatensatz die Borstentrajektorienkartierung und die Basiswahrheit durch einen Simulator als Reaktion darauf erzeugt werden, dass die Höhenkartierung als Eingabe dafür bereitgestellt worden ist.
  20. System nach Anspruch 18 oder 19, bei dem das Borstentrajektorienkartierungssegment durch eine Zeichen-Box dargestellt wird oder das zweite Höhenkartierungssegment durch eine Zeichen-Box dargestellt wird oder sowohl das Borstentrajektorienkartierungssegment als auch das zweite Höhenkartierungssegment durch eine jeweilige Zeichen-Box dargestellt werden.
DE102018007146.5A 2017-11-16 2018-09-10 Ölgemälde-Strichsimulation mittels eines neuronalen Netzwerks Pending DE102018007146A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/814,751 2017-11-16
US15/814,751 US10424086B2 (en) 2017-11-16 2017-11-16 Oil painting stroke simulation using neural network

Publications (1)

Publication Number Publication Date
DE102018007146A1 true DE102018007146A1 (de) 2019-05-16

Family

ID=64013133

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018007146.5A Pending DE102018007146A1 (de) 2017-11-16 2018-09-10 Ölgemälde-Strichsimulation mittels eines neuronalen Netzwerks

Country Status (5)

Country Link
US (2) US10424086B2 (de)
CN (1) CN109816770B (de)
AU (1) AU2018226403B2 (de)
DE (1) DE102018007146A1 (de)
GB (1) GB2568576B (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3675062A1 (de) 2018-12-29 2020-07-01 Dassault Systèmes Lernen eines neuronalen netzwerks zur inferenz von soliden cad-merkmalen
EP3675063A1 (de) * 2018-12-29 2020-07-01 Dassault Systèmes Herstellung eines datensatzes zur inferenz von festen cad-merkmalen
EP4030386A1 (de) * 2021-01-18 2022-07-20 Société BIC Erzeugung von druckvorlagentutorials
KR102403256B1 (ko) * 2021-12-29 2022-05-30 주식회사 리콘랩스 기계학습을 위한 프리핸드 스케치 이미지 생성 방법 및 시스템

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06503663A (ja) * 1990-11-30 1994-04-21 ケンブリッジ アニメーション システムズ リミテッド 動画作成装置
JPH06507742A (ja) * 1991-05-21 1994-09-01 ケンブリッジ アニメーション システムズ リミテッド 動画作成装置
US5903454A (en) * 1991-12-23 1999-05-11 Hoffberg; Linda Irene Human-factored interface corporating adaptive pattern recognition based controller apparatus
US5592597A (en) * 1994-02-14 1997-01-07 Parametric Technology Corporation Real-time image generation system for simulating physical paint, drawing media, and feature modeling with 3-D graphics
USRE37654E1 (en) * 1996-01-22 2002-04-16 Nicholas Longo Gesture synthesizer for electronic sound device
US6549212B1 (en) * 1998-07-16 2003-04-15 Silicon Graphics, Inc. System for user customization of attributes associated with a three-dimensional surface
US7181768B1 (en) * 1999-10-28 2007-02-20 Cigital Computer intrusion detection system and method based on application monitoring
US7384667B2 (en) * 2003-01-30 2008-06-10 Alberto Blanco System and method for producing simulated oil paintings
DE112006002954B4 (de) * 2005-10-31 2011-12-08 National University Of Singapore Virtuelles Schnittstellensystem
CN101794454B (zh) * 2010-04-08 2012-01-04 西安交通大学 一种基于图像的油画风格化方法
US9030464B2 (en) * 2010-04-08 2015-05-12 Microsoft Technology Licensing, Llc Simulating painting
US8605095B2 (en) * 2010-04-12 2013-12-10 Adobe Systems Incorporated Generating vector output from a physical simulation of a bristle brush
US8760438B2 (en) * 2010-05-28 2014-06-24 Adobe Systems Incorporated System and method for simulating stiff bristle brushes using stiffness-height parameterization
US20120133664A1 (en) * 2010-11-29 2012-05-31 Lotus Hill Institute For Computer Vision And Information Science System and method for painterly rendering based on image parsing
US8988398B2 (en) * 2011-02-11 2015-03-24 Microsoft Corporation Multi-touch input device with orientation sensing
US8988461B1 (en) * 2011-01-18 2015-03-24 Disney Enterprises, Inc. 3D drawing and painting system with a 3D scalar field
US9142061B2 (en) * 2011-01-26 2015-09-22 Rutgers, The State University Of New Jersey Fluid flow analysis for cardiovascular diagnostics
US9142056B1 (en) * 2011-05-18 2015-09-22 Disney Enterprises, Inc. Mixed-order compositing for images having three-dimensional painting effects
US20120299931A1 (en) * 2011-05-27 2012-11-29 Dano2, Llc Drawing guidance and stylus
US9624406B2 (en) * 2012-02-28 2017-04-18 3M Innovative Properties Company Microstructured tape comprising coextensive, intersecting paint-retention and hand-tear patterns
US20140132617A1 (en) * 2012-11-14 2014-05-15 Microsoft Corporation Simulation of oil paint on a canvas
EP2951811A4 (de) * 2013-01-03 2016-08-17 Meta Co Digitale brillenvorrichtungen für extramissive räumliche bildgebung, verfahren und systeme zur virtuellen oder vergrösserten sicht, manipulation, erzeugung oder interaktion mit objekten, materialien, oder anderen einheiten
US20140225886A1 (en) * 2013-02-13 2014-08-14 Corel Corporation Mapping a vision system output to a digital graphics system input
US20140289663A1 (en) * 2013-03-21 2014-09-25 Microsoft Corporation Producing Artwork Based on an Imported Image
CN105283882B (zh) * 2013-04-12 2019-12-27 诺基亚技术有限公司 用于文本输入的装置及相关联的方法
US10262462B2 (en) * 2014-04-18 2019-04-16 Magic Leap, Inc. Systems and methods for augmented and virtual reality
US10203762B2 (en) * 2014-03-11 2019-02-12 Magic Leap, Inc. Methods and systems for creating virtual and augmented reality
US9524440B2 (en) * 2014-04-04 2016-12-20 Myscript System and method for superimposed handwriting recognition technology
US10726560B2 (en) * 2014-10-31 2020-07-28 Fyusion, Inc. Real-time mobile device capture and generation of art-styled AR/VR content
CN104392433B (zh) * 2014-11-05 2017-05-17 浙江工业大学 基于图像的数字油画画布的自动生成方法
US9600907B2 (en) * 2014-11-25 2017-03-21 Adobe Systems Incorporated Paintbrush and liquid simulation
US11205119B2 (en) * 2015-12-22 2021-12-21 Applied Materials Israel Ltd. Method of deep learning-based examination of a semiconductor specimen and system thereof
US10521937B2 (en) * 2017-02-28 2019-12-31 Corel Corporation Vector graphics based live sketching methods and systems
US10430978B2 (en) * 2017-03-02 2019-10-01 Adobe Inc. Editing digital images utilizing a neural network with an in-network rendering layer
US10671873B2 (en) * 2017-03-10 2020-06-02 Tusimple, Inc. System and method for vehicle wheel detection
US10678257B2 (en) * 2017-09-28 2020-06-09 Nec Corporation Generating occlusion-aware bird eye view representations of complex road scenes
US10579897B2 (en) * 2017-10-02 2020-03-03 Xnor.ai Inc. Image based object detection
US10467501B2 (en) * 2017-10-30 2019-11-05 Sap Se Computer vision architecture with machine learned image recognition models

Also Published As

Publication number Publication date
US20190362524A1 (en) 2019-11-28
US10922852B2 (en) 2021-02-16
GB2568576B (en) 2020-01-01
CN109816770A (zh) 2019-05-28
AU2018226403B2 (en) 2021-07-08
AU2018226403A1 (en) 2019-05-30
GB2568576A (en) 2019-05-22
US10424086B2 (en) 2019-09-24
GB201814968D0 (en) 2018-10-31
US20190147627A1 (en) 2019-05-16
CN109816770B (zh) 2023-09-01

Similar Documents

Publication Publication Date Title
DE102018007146A1 (de) Ölgemälde-Strichsimulation mittels eines neuronalen Netzwerks
DE69830767T2 (de) Verfahren und Vorrichtung zum Zusammensetzen geschichteter synthetischer graphischer Filter
DE3153375C2 (de)
DE102017009049A1 (de) Ermöglichen von Transformationen Skizze-zu-Gemälde
DE102017009276A1 (de) Erzeugen eines dreidimensionalen modells aus einem gescannten gegenstand
DE102017007967A1 (de) Verarbeiten und rendern eines dreidimensionalen Modells
DE102017010210A1 (de) Bild-Matting mittels tiefem Lernen
DE102019008221A1 (de) Interaktives Bildmattieren unter Verwendung neuronaler Netze
DE102005050846A1 (de) Perspektiveneditierwerkzeuge für 2-D Bilder
CN105374007A (zh) 融合骨架笔画和纹理特征的铅笔画生成方法和装置
DE102015009820A1 (de) Bildsegmentierung für eine Kamera-Liveeinspielung
DE102020007951A1 (de) Einsetzen eines der Einfärbung dienenden neuronalen Netzwerkes zum Generieren von eingefärbten Bildern auf Grundlage interaktiver Farbkanten
DE102018001136A1 (de) Interaktive Farbpalettenschnittstelle zum digitalen Malen
US20140289663A1 (en) Producing Artwork Based on an Imported Image
DE112012005770T5 (de) Zeichnungsdaten-Erzeugungsvorrichtung und Bildzeichnungsvorrichtung
DE112019001702T5 (de) Verfahren, systeme, herstellungsgegenstände und vorrichtungen zur erzeugung digitaler szenen
DE102013215301A1 (de) System, Verfahren und Computerprogrammprodukt zum Extrudieren eines Modells durch eine zweidimensionale Szene
DE102015009222A1 (de) Malpinsel- und Flüssigkeitssimulation
DE102009023756A1 (de) Vorrichtung und Verfahren zum Herkunftsnachweis und Urheberschaft von Bildern
DE202017007534U1 (de) Multiskalige 3D-Textursynthese
DE112020005732T5 (de) Erzeugen von trainingsdaten zur objekterkennung
DE102022112888A1 (de) Benutzerschnittstellen und Verfahren zum Erzeugen eines neuen Artefakts auf der Grundlage vorhandener Artefakte
EP2528042A1 (de) Verfahren und Vorrichtung zum Re-Meshing von 3D-Polygonmodellen
DE69830766T2 (de) Verfahren und Vorrichtung zum Bestimmen des Anwendungsumfangs geschichteter synthetischer graphischer Filter
DE112012005532T5 (de) Verfahren und Vorrichtung zum Verarbeiten von Daten dreidimensionaler Modelle

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: MUELLER-BORE & PARTNER PATENTANWAELTE PARTG MB, DE

R012 Request for examination validly filed