DE102020007951A1 - Einsetzen eines der Einfärbung dienenden neuronalen Netzwerkes zum Generieren von eingefärbten Bildern auf Grundlage interaktiver Farbkanten - Google Patents

Einsetzen eines der Einfärbung dienenden neuronalen Netzwerkes zum Generieren von eingefärbten Bildern auf Grundlage interaktiver Farbkanten Download PDF

Info

Publication number
DE102020007951A1
DE102020007951A1 DE102020007951.2A DE102020007951A DE102020007951A1 DE 102020007951 A1 DE102020007951 A1 DE 102020007951A1 DE 102020007951 A DE102020007951 A DE 102020007951A DE 102020007951 A1 DE102020007951 A1 DE 102020007951A1
Authority
DE
Germany
Prior art keywords
edge
color
coloring
guided
colored
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
DE102020007951.2A
Other languages
English (en)
Inventor
Seungjoo Yoo
Richard Zhang
Matthew Fisher
Jingwan Lu
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 DE102020007951A1 publication Critical patent/DE102020007951A1/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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/90Dynamic range modification of images or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20024Filtering details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user
    • G06T2207/20096Interactive definition of curve of interest

Landscapes

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

Abstract

Offenbart werden Verfahren, Systeme und nichttemporäre computerlesbare Speichermedien zum Einsetzen eines der Kantenvorhersage dienenden neuronalen Netzwerkes und eines der kantengeführten Einfärbung dienenden neuronalen Netzwerkes zum Umwandeln von Graustufendigitalbildern in eingefärbte Digitalbilder. Bei einer oder mehreren Ausführungsformen wenden die offenbarten Systeme ein der Farbkantenvorhersage dienendes neuronales Netzwerk auf ein Graustufenbild an, um eine Farbkantenkarte, die vorhergesagte Chrominanzkanten angibt, zu generieren. Die offenbarten Systeme können einem Nutzer die Farbkantenkarte über eine der Einfärbung dienende grafische Nutzerschnittstelle präsentieren und Nutzerfarbpunkte und Farbkantenmodifizierungen empfangen. Die offenbarten Systeme können ein zweites neuronales Netzwerk, nämlich ein der kantengeführten Einfärbung dienendes neuronales Netzwerk, auf die Farbkantenkarte oder eine modifizierte Kantenkarte, Nutzerfarbpunkte und das Graustufenbild anwenden, um ein bezüglich der Kanten bedingungsbehaftetes eingefärbtes Digitalbild zu generieren.

Description

  • Hintergrund
  • In den vergangenen Jahren kam es zu einer erheblichen Verbesserung bei Hardware und Softwareplattformen zum Bearbeiten und Generieren von Digitalbildern. Entwickler haben beispielsweise Technologien dafür geschaffen, Digitalbilder, darunter Fotos und Illustrationen, zu modifizieren oder zu verbessern. Darstellungshalber können herkömmliche Bildeinfärbungssysteme auf Grundlage einer Nutzerauswahl bestimmter Füllfarben automatisch Farbe zu komplizierten Schwarzweiß- oder Graustufenbildern hinzufügen. Clientvorrichtungen können Farben beispielsweise entsprechend bestimmten Flächen eines Graustufenbildes auswählen, während Bildeinfärbungssysteme ein Digitalbild, das die ausgewählten Farben wiedergibt, generieren kann.
  • Obwohl herkömmliche Bildeinfärbungssysteme Farbe zu Digitalbildern hinzufügen können, weisen sie eine Anzahl von technischen Nachteilen auf. Insbesondere sind herkömmliche Bildbearbeitungssysteme oftmals ungenau, unflexibel und ineffizient, wenn sie Farbe in Digitalbilder einbringen. Herkömmliche Bildeinfärbungssysteme fügen beispielsweise oftmals Farbe derart hinzu, dass sich nicht plausible und unrealistische Digitalbilder ergeben. Insbesondere sind herkömmliche Systeme oftmals nicht fähig, die gewünschten Farbbereiche für bestimmte Flächen von Bildern genau zu bestimmen, und generieren die sich ergebenden nicht plausiblen Digitalbilder ungenau. Bei Bildern, die mittels herkömmlicher Bildeinfärbungssysteme eingefärbt worden sind, treten oftmals Probleme im Zusammenhang mit dem Verlaufen von Farben (color bleeding) auf, bei denen Farben zwischen Segmenten der Unsicherheit herauslaufen.
  • Zudem sind herkömmliche Bildeinfärbungssysteme oftmals unflexibel. Insbesondere generieren herkömmliche Bildeinfärbungssysteme eingefärbte Digitalbilder, die schwierig zu modifizieren oder anzupassen sind, unflexibel. Nach dem Generieren eines eingefärbten Digitalbildes sind herkömmliche Bildeinfärbungssysteme beispielsweise oftmals dahingehend unflexibel, dass sie das eingefärbte Digitalbild zu dem Zweck, verschiedene Farbbereiche (ohne zahlreiche Nutzereingaben) wiederzugeben, nicht flexibel anpassen können. Insbesondere umfassen herkömmliche Systeme oftmals Algorithmen, die ein einziges Schwarzweißbild unflexibel auf einen einzigen Satz von Füllgrenzen für ein Farbbild abbilden. Herkömmliche Bildeinfärbungssysteme sind daher oftmals unflexibel und können keine flexiblen Optionen zum Modifizieren von eingefärbten Digitalbildern und gefärbten Bereichen bereitstellen.
  • Des Weiteren sind herkömmliche Bildeinfärbungssysteme oftmals ineffizient. Insbesondere müssen herkömmliche Systeme oftmals zusätzliche Rechenressourcen dafür aufwenden, das Verlaufen von Farben oder andere Ungenauigkeiten zu korrigieren. Herkömmliche Systeme erfordern beispielsweise oftmals eine umfangreiche Nutzerinteraktion und entsprechende Speicher- und Verarbeitungsleistung, um Digitalbilder innerhalb der unkorrekt gefärbten Flächen zu modifizieren. Herkömmliche Bildeinfärbungssysteme müssen nämlich oftmals Pixel oder Bereiche erneut analysieren und die gewünschte Einfärbung anpassen. In solchen Fällen färben herkömmliche Systeme durch Hinzufügen von Farbe in einem Segment andere Segmente möglicherweise oftmals fälschlicherweise ein. Alternativ wenden viele herkömmliche Systeme zusätzliche Rechen- und Zeitressourcen auf, indem sie Nutzer auffordern, gewünschte Bereiche explizit zu segmentieren und ein Floodfilling durchzuführen.
  • Diese und weitere Nachteile treten bei herkömmlichen Bildeinfärbungssystemen auf.
  • Zusammenfassung
  • Eine oder mehrere Ausführungsformen bieten Vorteile und/oder lösen eines oder mehrere der vorbesprochenen Probleme oder andere Probleme im Stand der Technik bei Systemen, Verfahren und nichttemporären computerlesbaren Speichermedien, die ein der Einfärbung dienendes neuronales Netzwerk einsetzen, um eine nutzergeführte Graustufenbildeinfärbung effizient, genau und flexibel durchzuführen. Insbesondere können die offenbarten Systeme Farbkanten als Eingabe einbeziehen, um dazu beizutragen, ein der Einfärbung dienendes neuronales Netzwerk bei der genauen Übertragung von Farbeingaben zu unterstützen. Darstellungshalber kann das offenbarte System ein der Farbkantenvorhersage dienendes neuronales Netzwerk einsetzen, um nutzerseitig auswählbare Farbkanten zu generieren und zu präsentieren. Das offenbarte System kann Farbkanten flexibel hinzufügen oder entfernen und die Farbkanten und ausgewählte Farbpunkte sodann unter Einsatz eines der Einfärbung dienenden neuronalen Netzwerkes analysieren, um ein eingefärbtes Bild zu generieren. Durch Nutzen eines der Farbkantenvorhersage dienenden neuronalen Netzwerkes zum Generieren von interaktiven Farbkanten, das mit einem der Einfärbung dienenden neuronalen Netzwerk eingesetzt werden kann, können die offenbarten Systeme genaue eingefärbte Digitalbilder effizient und flexibel generieren.
  • Zusätzliche Merkmale und Vorteile einer oder mehrerer Ausführungsformen der vorliegenden Offenbarung sind in der nachfolgenden Beschreibung niedergelegt, erschließen sich teilweise aus der Beschreibung oder ergeben sich durch die praktische Umsetzung exemplarischer Ausführungsformen hiervon.
  • Figurenliste
  • Es werden verschiedene Ausführungsformen mit zusätzlicher Spezifität und Detailliertheit unter Nutzung der begleitenden Zeichnung, die nachstehend zusammengefasst ist, beschrieben und erläutert.
    • 1 zeigt eine Umgebung, in der ein der kantengeführten Einfärbung dienendes System entsprechend einer oder mehreren Ausführungsformen der vorliegenden Offenbarung betrieben werden kann.
    • 2A und 2B zeigen exemplarische eingefärbte Bilder, die von herkömmlichen Systemen und von dem der kantengeführten Einfärbung dienenden System entsprechend einer oder mehreren Ausführungsformen der vorliegenden Offenbarung generiert worden sind.
    • 3 zeigt eine Übersicht zum Generieren eines eingefärbten Bildes entsprechend einer oder mehreren Ausführungsformen der vorliegenden Offenbarung.
    • 4A und 4B zeigen das der kantengeführten Einfärbung dienende System beim Trainieren und Anwenden eines der Farbkantenvorhersage dienenden neuronalen Netzwerkes zum Generieren einer Farbkantenkarte entsprechend einer oder mehreren Ausführungsformen der vorliegenden Offenbarung.
    • 5 zeigt eine Übersicht über das der kantengeführten Einfärbung dienende System beim Generieren einer modifizierten Kantenkarte für eine Farbkantenkarte entsprechend einer oder mehreren Ausführungsformen der vorliegenden Offenbarung.
    • 6A und 6B zeigen das der kantengeführten Einfärbung dienende System beim Trainieren und Anwenden eines der kantengeführten Einfärbung dienenden neuronalen Netzwerkes entsprechend einer oder mehreren Ausführungsformen der vorliegenden Offenbarung.
    • 7A und 7B zeigen exemplarische der Einfärbung dienende grafische Nutzerschnittstellen entsprechend einer oder mehreren Ausführungsformen der vorliegenden Offenbarung.
    • 8 zeigt ein schematisches Diagramm einer exemplarischen Architektur eines der kantengeführten Einfärbung dienenden Systems entsprechend einer oder mehreren Ausführungsformen der vorliegenden Offenbarung.
    • 9 zeigt eine Abfolge von Vorgängen zum Generieren eines eingefärbten Bildes entsprechend einer oder mehreren Ausführungsformen der vorliegenden Offenbarung.
    • 10 zeigt ein Blockdiagramm einer exemplarischen Rechenvorrichtung entsprechend einer oder mehrerer Ausführungsformen der vorliegenden Offenbarung.
  • Detailbeschreibung
  • Eine oder mehrere Ausführungsformen der vorliegenden Offenbarung beinhalten ein der kantengeführten Einfärbung dienendes System, das ein der Einfärbung dienendes neuronales Deep-Netzwerk einsetzt, um eingefärbte Bilder unter Nutzung von nutzergeführten Farbkanten effizient und genau zu generieren. Das der kantengeführten Einfärbung dienende System kann eine zweistufige Vorgehensweise beim Generieren von eingefärbten Digitalbildern einsetzen. In einer ersten Stufe kann das der kantengeführten Einfärbung dienende System ein der Kantenvorhersage dienendes neuronales Netzwerk einsetzen, um ein Graustufenbild zu analysieren und eine interaktive Kantenkarte, die einen Satz von Farbkanten beinhaltet, zu generieren. Insbesondere kann das der kantengeführten Einfärbung dienende System diese interaktive Kantenkarte über eine grafische Nutzerschnittstelle präsentieren, die eine Vielzahl von dynamischen Elementen beinhaltet, um Farbkanten zu modifizieren (so beispielsweise ein globales Schieberelement, das die Anzahl von Farbkanten modifiziert, oder ein Vorschlagselement, das zusätzliche Farbkanten empfiehlt). In einer zweiten Stufe kann das der kantengeführten Einfärbung dienende System eine Kantenkarte unter Einsatz eines der kantengeführten Einfärbung dienenden neuronalen Netzwerkes analysieren, um ein eingefärbtes Digitalbild zu generieren. Insbesondere kann das der kantengeführten Einfärbung dienende System ausgewählte Farbkanten zusammen mit einem Graustufenbild und ausgewählte Farbpunkte als Kanaleingaben für das der kantengeführten Einfärbung dienende neuronale Netzwerk einsetzen, um ein eingefärbtes Digitalbild zu generieren. Durch Vorhersagen und Präsentieren von interaktiven Farbkanten unter Einsatz eines der Farbkantenvorhersage dienenden neuronalen Netzwerkes und anschließendes Einsetzen der interaktiven Farbkanten im Zusammenspiel mit einem der kantengeführten Einfärbung dienenden neuronalen Netzwerk kann das der kantengeführten Einfärbung dienende System genaue eingefärbte Digitalbilder flexibel und effizient generieren.
  • Darstellungshalber setzt das der kantengeführten Einfärbung dienende System bei einer oder mehreren Ausführungsformen ein der Farbkantenvorhersage dienendes neuronales Netzwerk ein, um eine Farbkantenkarte, die Farbkanten umfasst, für ein Graustufendigitalbild zu generieren. Das der kantengeführten Einfärbung dienende System kann zur Anzeige auf einer Clientvorrichtung eine der Einfärbung dienende grafische Nutzerschnittstelle bereitstellen, die die Farbkantenkarte, ein Farbpunkteingabeelement und das Graustufendigitalbild beinhaltet. Das der kantengeführten Einfärbung dienende System kann ein eingefärbtes Bild unter Nutzung eines der kantengeführten Einfärbung dienenden neuronalen Netzwerkes auf Grundlage des Graustufendigitalbildes, der Farbkantenkarte und einer Nutzerinteraktion mit dem Farbpunkteingabeelement generieren. Das der kantengeführten Einfärbung dienende System kann das eingefärbte Bild sodann zur Anzeige für einen Nutzer über die der Einfärbung dienende grafische Nutzerschnittstelle bereitstellen.
  • Wie erwähnt worden ist, kann das der kantengeführten Einfärbung dienende System ein der Farbkantenvorhersage dienendes neuronales Netzwerk trainieren und anwenden, um eine Farbkantenkarte zu generieren. Insbesondere kann das der kantengeführten Einfärbung dienende System ein der Farbkantenvorhersage dienendes neuronales Netzwerk auf Grundlage eines Vergleiches von vorhergesagten Farbkanten und Ground-Truth-Farbkanten trainieren. Insbesondere kann das der kantengeführten Einfärbung dienende System einen Canny-Kantendetektionsalgorithmus einsetzen, um Ground-Truth-Kanten aus einem Chrominanzbild zu generieren. Das der kantengeführten Einfärbung dienende System kann sodann das der Farbkantenvorhersage dienende neuronale Netzwerk auf ein entsprechendes Graustufenbild anwenden, um Farbkanten vorherzusagen, und sodann das der kantengeführten Einfärbung dienende System durch Vergleichen der vorhergesagten Farbkanten mit den Ground-Truth-Kanten trainieren.
  • Sobald das der kantengeführten Einfärbung dienende System trainiert ist, kann es das der Farbkantenvorhersage dienende neuronale Netzwerk einsetzen, um Farbkanten für ein Graustufendigitalbild vorherzusagen. Insbesondere kann das der kantengeführten Einfärbung dienende System das der Farbkantenvorhersage dienende neuronale Netzwerk einsetzen, um anfängliche Kanten zu generieren und Zuverlässigkeitskennwerte für jede der anfänglichen Kanten zu bestimmen. Das der kantengeführten Einfärbung dienende System kann anfängliche Kanten mit Zuverlässigkeitskennwerten identifizieren, die einer Farbkantenschwelle genügen, und setzt die identifizierten Kanten zum Generieren einer Farbkantenkarte ein.
  • Wie erläutert worden ist, kann das der kantengeführten Einfärbung dienende System zur Anzeige an einer Clientvorrichtung eine der Einfärbung dienende grafische Nutzerschnittstelle bereitstellen, die die Farbkantenkarte, ein Farbpunkteingabeelement und das Graustufendigitalbild beinhaltet. Das der kantengeführten Einfärbung dienende System kann die der Einfärbung dienende grafische Nutzerschnittstelle einsetzen, um Eingaben für das der kantengeführten Einfärbung dienende neuronale Netzwerk zu sammeln. Insbesondere kann das der kantengeführten Einfärbung dienende System über das Kantenpunkteingabeelement die Nutzerfarbpunkte empfangen, die Orte des Digitalbildes, die bestimmten Farben entsprechen, identifizieren.
  • Wie vorstehend erwähnt worden ist, stellt das der kantengeführten Einfärbung dienende System bei einigen Ausführungsformen zudem dynamische Nutzerschnittstellenelemente bereit, um eine Nutzerkantenführung zu sammeln und Farbkanten zu modifizieren. Bei einigen Ausführungsformen kann das der kantengeführten Einfärbung dienende System ein Farbkantenschwellenelement, ein Kantenvorschlagselement und/oder ein dem nutzerseitigen Kantenzeichnen dienendes Element bereitstellen. Auf Grundlage einer Interaktion mit dem Farbkantenschwellenelement (beispielsweise einem Schieber oder einem anderen Typ von Element) kann das der kantengeführten Einfärbung dienende System beispielsweise die Farbkantenschwelle, die von dem der Farbkantenvorhersage dienenden neuronalen Netzwerk eingesetzt wird, beim Generieren von Farbkanten modifizieren. Auf ähnliche Weise kann auf Grundlage einer Nutzerinteraktion mit dem Kantenvorschlagselement das der kantengeführten Einfärbung dienende System einen Canny-Kantendetektionsalgorithmus anwenden, um Luminanzkanten des Graustufenbildes zu identifizieren und der Clientvorrichtung vorzuschlagen. Auf Grundlage einer Nutzerinteraktion mit dem dem nutzerseitigen Kantenzeichnen dienenden Element kann das der kantengeführten Einfärbung dienende System darüber hinaus Kanten, die von dem Nutzer über eine Clientvorrichtung gezeichnet werden, identifizieren.
  • Zusätzlich kann das der kantengeführten Einfärbung dienende System auch ein der kantengeführten Einfärbung dienendes neuronales Netzwerk trainieren und einsetzen, um ein eingefärbtes Bild zu generieren. Das der kantengeführten Einfärbung dienende System kann das der kantengeführten Einfärbung dienende neuronale Netzwerk unter Nutzung von Trainingsdaten trainieren. Insbesondere kann das der kantengeführten Einfärbung dienende System Trainingsgraustufenbilder, Trainingsfarbpunkte und Trainingsfarbkanten, die aus Ground-Truth-Farbbildern extrahiert werden, als Trainingseingaben für das der kantengeführten Einfärbung dienende neuronale Netzwerk nutzen, um vorhergesagte eingefärbte Bilder zu generieren. Das der kantengeführten Einfärbung dienende System kann das der kantengeführten Einfärbung dienende neuronale Netzwerk trainieren, indem es die vorhergesagten eingefärbten Bilder mit eingefärbten Ground-Truth-Bildern vergleicht und Netzwerkparameter derart anpasst, dass ein Verlust minimiert wird.
  • Sobald das der kantengeführten Einfärbung dienende System trainiert worden ist, kann es das der kantengeführten Einfärbung dienende neuronale Netzwerk auf ein Zielgraustufendigitalbild anwenden, um eingefärbte Bilder zu generieren. Bei einigen Ausführungsformen setzt das der kantengeführten Einfärbung dienende System ein Zielgraustufenbild, nutzerseitig ausgewählte Farbpunkte und eine Farbkantenkarte als Eingabekanäle für das der kantengeführten Einfärbung dienende neuronale Netzwerk ein, um ein eingefärbtes Digitalbild zu generieren. Bei einigen Ausführungsformen bindet das der kantengeführten Einfärbung dienende System die Kantenkarte direkt in Merkmalskarten ein, die in verschiedenen Schichten des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes analysiert werden, um die Kantenführung bei der Vorhersage der Farbe für das Graustufenbild weiter einzubeziehen. Das der kantengeführten Einfärbung dienende neuronale Netzwerk kann daher ein eingefärbtes Bild erzeugen, und das der kantengeführten Einfärbung dienende System kann das eingefärbte Bild dem Nutzer über die der Einfärbung dienende grafische Nutzerschnittstelle präsentieren.
  • Das der kantengeführten Einfärbung dienende System bietet im Vergleich zu herkömmlichen Systemen einige technische Vorteile. Das der kantengeführten Einfärbung dienende System kann beispielsweise die Genauigkeit im Vergleich zu herkömmlichen Systemen verbessern. Insbesondere kann das der kantengeführten Einfärbung dienende System das Verlaufen von Farben verringern, indem es ein der Farbkantenvorhersage dienendes neuronales Netzwerk einsetzt, um interaktive Farbkanten zu generieren, die im Zusammenspiel mit einem der kantengeführten Einfärbung dienenden neuronalen Netzwerk genutzt werden können. Durch Generieren einer Farbkantenkarte unter Einsatz eines der Farbkantenvorhersage dienenden neuronalen Netzwerkes definiert das der kantengeführten Einfärbung dienende System Chrominanzkanten für ein eingefärbtes Bild genauer. Des Weiteren kann das der kantengeführten Einfärbung dienende System die Genauigkeit vorhergesagter Farbkantenkarten verbessern, indem es eine Nutzerkantenführung in Bezug auf die vorhergesagten Farbkanten empfängt. Das der kantengeführten Einfärbung dienende System kann die Genauigkeit beispielsweise verbessern, indem es eine modifizierte Farbkantenkarte auf Grundlage einer Nutzerinteraktion mit interaktiven Farbkanten generiert.
  • Das der kantengeführten Einfärbung dienende System kann zudem die Flexibilität im Vergleich zu herkömmlichen Systemen verbessern. Durch Bereitstellen einer Vielzahl von Kantenmodifizierungsschnittstellenelementen kann das der kantengeführten Einfärbung dienende System mehrere verschiedene eingefärbte Bilder aus einem einzigen Graustufendigitalbild generieren. Das der kantengeführten Einfärbung dienende System kann beispielsweise eingefärbte Bilder mit verschiedenen Anzahlen von Chrominanzkanten generieren, indem es Kantenschwellen derart modifiziert, dass diese innerhalb einer Farbkantenkarte mehr oder weniger Farbkanten beinhalten. Auf ähnliche Weise kann das der kantengeführten Einfärbung dienende System durch vorgeschlagene zusätzliche Farbkanten und Zulassen einer nutzerseitigen Modifizierung von Farbkanten eingefärbte Bilder flexibel generieren und eine Vielzahl von Optionen zum flexiblen Modifizieren von Kanten oder Farbbereichen bereitstellen.
  • Zusätzlich kann das der kantengeführten Einfärbung dienende System die Effizienz im Vergleich zu herkömmlichen Systemen verbessern. Insbesondere kann das der kantengeführten Bildeinfärbung dienende System die Anzahl von Interaktionen und entsprechenden Ressourcen, die zum Generieren von genauen eingefärbten Bildern erforderlich sind, verringern. Durch einige wenige Interaktionen mit Kantenmodifizierungsschnittstellenelementen kann das der kantengeführten Einfärbung dienende System beispielsweise Farbkanten modifizieren und Fehler in dem sich ergebenden Digitalbild effizient korrigieren. In der Tat kann das der kantengeführten Einfärbung dienende System Kantenkarten generieren, zusätzliche Kanten vorschlagen und Kanten schnell hinzufügen oder entfernen, um eingefärbte Digitalbilder bei minimaler Nutzereingabe zu generieren.
  • Wie in der vorstehenden Diskussion ausgeführt ist, setzt die vorliegende Offenbarung eine Vielzahl von Begriffen ein, um Merkmale und Vorteile des der kantengeführten Einfärbung dienenden Systems zu beschreiben. Es werden nunmehr zusätzliche Details im Zusammenhang mit der Bedeutung dieser Begriffe angegeben. Im Sinne des Vorliegenden bezeichnet der Begriff „Graustufendigitalbild“ beispielsweise ein Digitalbild, das Pixel beinhaltet, die Grauschattierungen wiedergeben. Insbesondere kann das Graustufendigitalbild ein Bild beinhalten, in dem jedes Pixel Zwischentongradationswerte zwischen Weiß und Schwarz aufweist. Insbesondere kann jedes Pixel in einem Graustufendigitalbild einen Helligkeits- oder Intensitätswert (also beispielsweise keine Darstellungen von Farbe oder Farbton) darstellen. Darstellungshalber können Graustufenbilder Pixel mit Werten in dem L- oder Helligkeitskanal in einem CIE-Lab-Farbraum umfassen.
  • Im Sinne des Vorliegenden bezeichnet der Begriff „Farbkantenkarte“ eine Sammlung von Farbkanten. Insbesondere kann eine Farbkantenkarte eine Feldanordnung, ein Bild oder eine andere digitale Darstellung zur Angabe von Orten von Farbkanten innerhalb eines Digitalbildes beinhalten. Eine Farbkantenkarte kann beispielsweise ein Binärbild mit Werten beinhalten, die die Orte von Farbkanten oder Chrominanzkantengrenzen eines entsprechenden Zieldigitalbildes angeben. Zudem kann eine Farbkantenkarte detektierte Kanten innerhalb einer Chrominanzkarte beinhalten. Chrominanzkarten sind im Gegensatz zu Graustufendigitalbildern Bilder, deren Pixel Farbwerte wiedergeben. Chrominanzkarten können die a- und/oder b-Kanäle in einem CIE-Lab-Farbraum beinhalten.
  • Im Sinne des Vorliegenden bezeichnet der Begriff „neuronales Netzwerk“ ein maschinell lernendes Modell, das auf Grundlage einer Trainingseingabe trainiert werden kann, um unbekannte Funktionen zu nähern. Insbesondere kann der Begriff „neuronales Netzwerk“ ein Modell von wechselseitig verbundenen digitalen Neuronen beinhalten, die kommunizieren und lernen, komplexe Funktionen zu nähern und eine Ausgabe auf Grundlage mehrerer Eingaben, die für das Modell bereitgestellt werden, zu generieren. Der Begriff „neuronales Netzwerk“ beinhaltet beispielsweise einen oder mehrere maschinell lernende Algorithmen, darunter faltungstechnische neuronale Netzwerke, rekurrente neuronale Netzwerke (beispielsweise LSTMs), generative neuronale Netzwerke, adversative neuronale Netzwerke, Supportvektormaschinen, neuronale Feed-Forward-Netzwerke, Autoencoder und variationsbasierte Autoencoder. Wie nachstehend noch detaillierter beschrieben wird, kann das der kantengeführten Einfärbung dienende System ein der Farbkantenvorhersage dienendes neuronales Netzwerk (das heißt ein neuronales Netzwerk zum Vorhersagen von Farbkanten) und ein der kantengeführten Einfärbung dienendes neuronales Netzwerk (das heißt ein neuronales Netzwerk zum Generieren von eingefärbten Digitalbildern auf Grundlage von Farbkanten) einsetzen.
  • Im Sinne des Vorliegenden bezeichnet der Begriff „Farbkanten“ Grenzen zwischen Flächen von verschiedenen Farben. Insbesondere bezeichnen Farbkanten Chrominanzgrenzen oder Bereiche, deren Chrominanzwerte sich innerhalb eines Digitalbildes ändern. Farbkanten bezeichnen Unterschiede bzw. Differenzen bei Farbwerten innerhalb eines Digitalbildes. Der Begriff „Farbkanten“ bezeichnet beispielsweise Linien, die Grenzen zwischen Flächen mit verschiedenen Farbwerten innerhalb eines Digitalbildes angeben.
  • Im Sinne des Vorliegenden bezeichnet der Begriff „Farbpunkteingabeelement“ ein Nutzerschnittstellenelement zum Empfangen einer Farbeingabe. Insbesondere bezeichnet der Begriff „Farbpunkteingabeelement“ ein grafisches Nutzerschnittstellenelement zur Nutzereingabe von Punkten eines Digitalbildes, die bestimmten Farben entsprechen. Ein Farbpunkteingabeelement kann beispielsweise eine Farbpalette umfassen, die den gesamten Bereich von Farben, der für ein spezifisches Pixel eines Digitalbildes zur Verfügung steht, bereitstellt.
  • Im Sinne des Vorliegenden bezeichnet der Begriff „eingefärbtes Bild“ ein Digitalbild, das Pixel mit Farb- oder Farbtonwerten umfasst. Insbesondere bezeichnet der Begriff „eingefärbtes Bild“ ein Bild, zu dem Farbe hinzugefügt worden ist (beispielsweise RBG-Werte). Der Begriff „eingefärbtes Bild“ kann beispielsweise ein Bild mit Pixelwerten in a- und/oder b-Kanälen in einem CIE-Lab-Farbraum bezeichnen. Insbesondere beinhaltet ein eingefärbtes Bild Pixel mit Helligkeits- und Farbwerten.
  • Zusätzliche Details werden nunmehr im Zusammenhang mit dem der kantengeführten Einfärbung dienenden System anhand der illustrativen Figuren angegeben, die exemplarische Ausführungsformen und Implementierungen des der kantengeführten Einfärbung dienenden Systems darstellen. 1 zeigt beispielsweise ein schematisches Diagramm einer Systemumgebung (oder „Umgebung“) 100, in der ein der kantengeführten Einfärbung dienendes System 106 entsprechend einer oder mehreren Ausführungsformen betrieben werden kann. Wie dargestellt ist, beinhaltet die Umgebung 100 eine oder mehrere Servervorrichtungen 102, die mit einer Nutzerclientvorrichtung 108 über ein Netzwerk 112 verbunden sind. Obwohl 1 eine Ausführungsform des der kantengeführten Einfärbung dienenden Systems 106 zeigt, sind auch alternative Ausführungsformen und Konfigurationen möglich.
  • Wie in 1 gezeigt ist, sind die Servervorrichtung/Servervorrichtungen 102 und die Nutzerclientvorrichtung 108 über das Netzwerk 112 verbunden. Jede der Komponenten der Umgebung 100 kann über das Netzwerk 112 kommunizieren. Das Netzwerk 112 umfasst ein beliebiges geeignetes Netzwerk, über das Rechenvorrichtungen kommunizieren können. Exemplarische Netzwerke werden detailliert nachstehend anhand 12 erläutert.
  • Wie gezeigt ist, beinhaltet die Umgebung 100 die Servervorrichtung/Servervorrichtungen 102. Die Servervorrichtung/Servervorrichtungen 102 kann/können elektronische Daten, so beispielsweise Digitalvideos, Digitalbilder, Digitalaudios, Metadaten und dergleichen, generieren, speichern, empfangen und übertragen. Die Servervorrichtung/Servervorrichtungen 102 kann/können Daten von der Nutzerclientvorrichtung 108 empfangen. Die Servervorrichtung/Servervorrichtungen 102 kann/können beispielsweise Digitalbilder, die Graustufendigitalbilder, Metadaten, Farbpunkte, Farbkanten, Farbkantenmodifizierungen und andere Daten beinhalten, sammeln und/oder empfangen. Die Servervorrichtung/Servervorrichtungen 102 können mit der Nutzerclientvorrichtung 108 über das Netzwerk 112 kommunizieren. Die Servervorrichtung/Servervorrichtungen 102 können beispielsweise Digitalbilder, die eingefärbte Bilder, Farbkantenkarten und andere Daten beinhalten, an die Nutzerclientvorrichtung 108 senden. Bei einigen Ausführungsformen umfasst/umfassen die Servervorrichtung/Servervorrichtungen 102 einen verteilten Server, bei dem die Servervorrichtung/Servervorrichtungen 102 eine Anzahl von Servervorrichtungen, die über das Netzwerk 112 verteilt sind und sich an verschiedenen physischen Orten befinden, beinhaltet/beinhalten. Die Servervorrichtung/Servervorrichtungen 102 kann/können einen Contentserver, einen Anwendungsserver, einen Kommunikationsserver, einen Webhostingserver oder einen Digitalcontentverwaltungsserver umfassen.
  • Wie weiter in 1 dargestellt ist, kann/können die Servervorrichtung/Servervorrichtungen 102 das Bildbearbeitungssystem 104 beinhalten. Das Bildbearbeitungssystem 104 kann Digitalbilder erstellen, modifizieren, bearbeiten, teilen, verteilen und/oder verwalten. Das Bildbearbeitungssystem 104 speichert beispielsweise einen Vorrat von Graustufendigitalbildern und eingefärbten Bildern, die von der Nutzerclientvorrichtung 108 und von einer oder mehreren anderen Nutzerclientvorrichtungen empfangen worden sind. Zusätzlich kann das Bildbearbeitungssystem 104 auf Datenbanken zugreifen, die Ground-Truth-Bilder, die Farbdigitalbilder und entsprechende Graustufenbilder beinhalten, speichern. Das Bildbearbeitungssystem 104 kann Digitalbilder, Farbpunkte, Farbkantenmodifizierungen und andere Daten von der Nutzerclientvorrichtung 108 empfangen. Das Bildbearbeitungssystem 104 kann zudem eingefärbte Bilder an die Nutzerclientvorrichtung 108 (beispielsweise über eine Anwendung oder eine Webseite, auf die die Nutzerclientvorrichtung 108 zugreift) verteilen.
  • Wie in 1 dargestellt ist, kann das der kantengeführten Einfärbung dienende System 106 als Teil des Bildbearbeitungssystems 104 implementiert werden. Das der kantengeführten Einfärbung dienende System 106 kann Graustufendigitalbilder empfangen und eingefärbte Bilder generieren. Insbesondere kann das der kantengeführten Einfärbung dienende System 106 ein der Farbkantenvorhersage dienendes neuronales Netzwerk zum Vorhersagen von Farbkanten und ein der kantengeführten Einfärbung dienendes neuronales Netzwerk zum Färben des Bildes unter Einbeziehung von Kantenrandbedingungen implementieren. Das der kantengeführten Einfärbung dienende System 106 kann mit der Nutzerclientvorrichtung 108 kommunizieren. Das der kantengeführten Einfärbung dienende System 106 kann Graustufendigitalbilder, Farbpunkte und Farbkantenmodifizierungen empfangen. Zusätzlich kann das der kantengeführten Einfärbung dienende System 106 eingefärbte Bilder (beispielsweise über das Netzwerk 112) verteilen.
  • Wie in 1 dargestellt ist, beinhaltet die Umgebung 100 die Nutzerclientvorrichtung 108. Die Nutzerclientvorrichtung 108 kann Digitaldaten generieren, speichern, empfangen und senden. Insbesondere kann die Nutzerclientvorrichtung 108 Digitaldaten, die Digitalbilder beinhalten, an die Servervorrichtung/Servervorrichtungen 102 über das Netzwerk 112 senden. Die Nutzerclientvorrichtung 108 kann Digitalbilder einem Nutzer, der der Nutzerclientvorrichtung 108 zugeordnet ist, präsentieren.
  • Die Nutzerclientvorrichtung 108, die in 1 dargestellt ist, kann verschiedene Typen von Clientvorrichtungen umfassen. Bei einigen Ausführungsformen beinhaltet die Nutzerclientvorrichtung 108 beispielsweise Mobilvorrichtungen, so beispielsweise Laptops, Tablets, Mobiltelefone, Smartphones und dergleichen mehr. Bei anderen Ausführungsformen beinhaltet die Nutzerclientvorrichtung 108 nichtmobile Vorrichtungen, so beispielsweise Desktops oder Server, oder andere Typen von Clientvorrichtungen. Zusätzliche Details im Zusammenhang mit der Nutzerclientvorrichtung 108 werden nachstehend anhand 12 erläutert.
  • Wie weiter in 1 dargestellt ist, beinhaltet die Nutzerclientvorrichtung 108 eine Anwendung 110. Die Anwendung 110 kann eine Webanwendung oder eine native Anwendung auf der Nutzerclientvorrichtung 108 (beispielsweise eine mobile Anwendung, eine Desktopanwendung und dergleichen) sein. Die Anwendung 110 kann eine Schnittstelle zu dem der kantengeführten Einfärbung dienenden System 106 aufweisen, um Digitalcontent, der Digitalbilder beinhaltet, für die Servervorrichtung/Servervorrichtungen 102 bereitzustellen. Die Anwendung 110 kann Daten von dem der kantengeführten Einfärbung dienenden System 106 empfangen und zur Anzeige an der Nutzerclientvorrichtung 108 eingefärbte Bilder, die von dem der kantengeführten Einfärbung dienenden System 106 generiert werden, präsentieren.
  • Obwohl 1 das der kantengeführten Einfärbung dienende System 106, das auf der Servervorrichtung / den Servervorrichtungen 102 befindlich ist, zeigt, kann das der kantengeführten Einfärbung dienende System 106 bei einigen Ausführungsformen auch auf einer oder mehreren Komponenten der Umgebung 100 (beispielsweise gänzlich oder in Teilen lokalisiert) implementiert sein. Das der kantengeführten Einfärbung dienende System 106 kann beispielsweise gänzlich (oder in Teilen) auf der Nutzerclientvorrichtung 108 implementiert sein. Die Servervorrichtung/Servervorrichtungen 102 und/oder die Nutzerclientvorrichtung 108 können beispielsweise darauf gespeicherte Digitalbilder aufweisen.
  • Zusätzlich kann die Nutzerclientvorrichtung 108 direkt mit dem der kantengeführten Einfärbung dienenden System 106 unter Umgehung des Netzwerkes 112 kommunizieren. Darüber hinaus kann das der kantengeführten Einfärbung dienende System 106 auf eine oder mehrere Datenbanken (beispielsweise eine Digitaldokumentdatenbank) zugreifen, die auf der Servervorrichtung / den Servervorrichtungen 102 oder anderswo in der Umgebung 100 untergebracht ist. Das der kantengeführten Einfärbung dienende System 106 kann zudem ein oder mehrere maschinell lernende Modelle (beispielsweise neuronale Netzwerke) beinhalten, und das der kantengeführten Einfärbung dienende System 106 kann auf eine Vielzahl von verschiedenen Arten über die Servervorrichtung/Servervorrichtungen 102, das Netzwerk 112 und die Nutzerclientvorrichtung 108 implementiert sein.
  • Wie vorstehend erwähnt worden ist, kann das der kantengeführten Einfärbung dienende System 106 eingefärbte Bilder generieren. 2A und 2B zeigen beispielsweise das der kantengeführten Einfärbung dienende System 106 beim Generieren von eingefärbten Bildern entsprechend einer oder mehreren Ausführungsformen. Insbesondere stellen 2A und 2B eine oder mehrere Ausführungsformen des der kantengeführten Einfärbung dienenden Systems 106 herkömmlichen Systemen gegenüber. 2A zeigt beispielsweise ein herkömmliches Farbbild 202, das herkömmliche Farbgrenzen 206 umfasst. 2B zeigt ein eingefärbtes Bild 204, das von dem der kantengeführten Einfärbung dienenden System 106 generiert worden ist und Farbkanten 208 umfasst.
  • 2A zeigt, wie herkömmliche Systeme oftmals Farbbilder generieren, die ein Verlaufen von Farben zeigen. Das Verlaufen von Farben tritt auf, wenn Farben nicht innerhalb genauer Grenzen verbleiben. Da 2A nicht in Farbe dargestellt ist, ist dieser Effekt unter Nutzung von gestrichelten Linien dargestellt, die Farbgrenzen zeigen, die verschiedene gefärbte Bereiche begrenzen. Wie dargestellt ist, bilden einige herkömmliche Systeme ein Graustufenbild auf das herkömmliche Farbbild 202 ab. Gleichwohl scheitern herkömmliche Systeme oftmals bei der Vorhersage der korrekten Farbe für Flächen der Unsicherheit und füllen die Flächen der Unsicherheit mit einer nicht korrekten Farbe. Das herkömmliche Farbbild 202 beinhaltet die herkömmlichen Farbgrenzen 206, die Pixelfarbwerte begrenzen. Pixel innerhalb des Bereiches, der von den herkömmlichen Farbgrenzen 206 begrenzt ist, teilen beispielsweise dieselben Farbwerte. Zusätzlich enthalten Bereiche auf jedweder Seite der herkömmlichen Farbgrenzen 206 Pixel mit verschiedenen Farbwerten. Wie dargestellt ist, sind die herkömmlichen Farbgrenzen 206 des herkömmlichen Farbbildes 202 ungenau und können den Umrissen des Flamingos oder anderer Objekte nicht folgen.
  • 2B zeigt ein eingefärbtes Bild 204, das von dem der kantengeführten Einfärbung dienenden System 106 generiert worden ist. Wie erwähnt worden ist, integriert das der kantengeführten Einfärbung dienende System 106 eine Kantenführung, um Bilder genauer zu färben. Das der kantengeführten Einfärbung dienende System 106 kann Bilder auf Grundlage von vorhergesagten und modifizierten Farbkanten färben. Durch Einbeziehen der Kantenführung greift das der kantengeführten Einfärbung dienende System 106 auf definierte Farbkanten zurück, um Flächen der Unsicherheit genauer zu behandeln. Das eingefärbte Bild 204 beinhaltet die Farbkanten 208. Die Farbkanten 208 sind genauer als die herkömmlichen Farbkanten 206, die in 2A dargestellt sind. Insbesondere weisen die Pixel innerhalb der Bereiche, die von den Farbkanten 208 begrenzt sind, dieselben Farbwerte auf. Der Flamingo ist beispielsweise rosa gefärbt, das Wasser ist türkis gefärbt, und der Himmel ist blau gefärbt. Wie dargestellt ist, generiert das der kantengeführten Einfärbung dienende System 106 das eingefärbte Bild 204, das genauer als das von herkömmlichen Systemen generierte herkömmliche Farbbild 202 ist. Die nachfolgenden Figuren und die zugehörige Diskussion bieten zusätzliche Details im Zusammenhang damit, wie das der kantengeführten Einfärbung dienende System 106 eingefärbte Bilder genau generiert und eine Kantenführung einbezieht.
  • 3 zeigt beispielsweise das der kantengeführten Einfärbung dienende System 106 beim Generieren eines eingefärbten Bildes unter Einsatz einer zweistufigen Vorgehensweise entsprechend einer oder mehreren Ausführungsformen. In der ersten Stufe setzt das der kantengeführten Einfärbung dienende System 106 ein der Farbkantenvorhersage dienendes neuronales Netzwerk ein, um eine Farbkantenkarte zu generieren. In der zweiten Stufe setzt das der kantengeführten Einfärbung dienende System 106 ein der kantengeführten Einfärbung dienendes neuronales Netzwerk ein, um ein eingefärbtes Bild zu generieren.
  • Wie dargestellt ist, empfängt das der kantengeführten Einfärbung dienende System 106 ein Graustufendigitalbild 302. Das der kantengeführten Einfärbung dienende System 106 analysiert das Graustufendigitalbild 302 unter Einsatz eines der Farbkantenvorhersage dienenden neuronalen Netzwerkes 304. Das der Farbkantenvorhersage dienende neuronale Netzwerk 304 kann beispielsweise ein faltungstechnisches neuronales Deep-Netzwerk mit mehreren Schichten beinhalten. In den verschiedenen Schichten des faltungstechnischen neuronalen Netzwerkes kann das der Farbkantenvorhersage dienende neuronale Netzwerk 304 Merkmalskarten (beispielsweise Merkmalsvektoren) generieren, die ermöglichen, dass das Netzwerk verschiedene Ebenen der Abstraktion analysiert. Durch Analysieren der Merkmalskarten sagt das der Farbkantenvorhersage dienende neuronale Netzwerk 304 eine Farbkantenkarte 306 auf Grundlage des Graustufendigitalbildes 302 vorher. Bei einigen Ausführungsformen setzt das der Farbkantenvorhersage dienende neuronale Netzwerk 304 beispielsweise diejenigen Architekturen und Vorgehensweisen bei einem neuronalen Netzwerk ein, die in den nachfolgenden Quellen beschrieben sind: „Colorful Image Colorization‟ von Richard Zhang, Phillip Isola und Alexei A. Efros, ECCV 2016, 649-666 (2016) und „Real-Time User-Guided Image Colorization with Learned Deep Priors‟ von Richard Zhang, Jun-Yan Zhu, Phillip Isola, Xinyang Geng, Angela S. Lin und Alexei A. Efros, SIGGRAPH 2017, arXiv: 1705:02999. Die genannten Quellen sind hiermit in Gänze durch Verweisungmit aufgenommen.
  • Wie in 3 gezeigt ist, generiert das der Farbkantenvorhersage dienende neuronale Netzwerk 304 die Farbkantenkarte 306 unter Nutzung einer Farbkantenschwelle. Das der kantengeführten Einfärbung dienende System 106 setzt das der Farbkantenvorhersage dienende neuronale Netzwerk 304 ein, um eine anfängliche Farbkantenkarte, die anfängliche Kanten umfasst, zu generieren. Als Teil des Generierens der anfänglichen Farbkantenkarte bestimmt das der Farbkantenvorhersage dienende neuronale Netzwerk 304 einen Zuverlässigkeitskennwert für jede der anfänglichen Kanten. Das der kantengeführten Einfärbung dienende System 106 bestimmt eine Farbkantenschwelle. Bei einer oder mehreren Ausführungsformen setzt das der kantengeführten Einfärbung dienende System 106 eine vorbestimmte Farbkantenschwelle ein. Darüber hinaus kann das der kantengeführten Einfärbung dienende System 106 von einem Nutzer die Farbkantenschwelle empfangen. Auf Grundlage einer Bestimmung dessen, dass der Zuverlässigkeitskennwert, der einer anfänglichen Kante zugeordnet ist, der Farbkantenschwelle genügt, bezieht das der kantengeführten Einfärbung dienende System 106 die anfängliche Kante als Farbkante in die Farbkantenkarte 306 ein. Das der kantengeführten Einfärbung dienende System 106 schließt anfängliche Kanten mit Zuverlässigkeitskennwerten unter der Farbkantenschwelle aus der Farbkantenkarte 306 aus. 5 und 6 und die zugehörige Diskussion bieten zusätzliche Details im Zusammenhang mit der Farbkantenschwelle.
  • Wie in 3 gezeigt ist, präsentiert das der kantengeführten Einfärbung dienende System 106 einem Nutzer die Farbkantenkarte 306. Bei wenigstens einer Ausführungsform empfängt das der kantengeführten Einfärbung dienende System 106 eine Nutzereingabe, die eine oder mehrere Farbkantenmodifizierungen 310 angibt. Wie beispielsweise in 3 dargestellt ist, empfängt das der kantengeführten Einfärbung dienende System 106 die Farbkantenmodifizierungen 310 über ein Farbkantenschwellenelement 318, ein Kantenvorschlagselement 320 und/oder ein dem nutzerseitigen Kantenzeichnen dienendes Element 322. Auf Grundlage der Farbkantenmodifizierungen 310 generiert das der kantengeführten Einfärbung dienende System 106 eine modifizierte Kantenkarte 324.
  • Das der kantengeführten Einfärbung dienende System 106 kann beispielsweise eine Nutzerinteraktion mit dem Farbkantenschwellenelement 318 detektieren und die Farbkantenschwelle modifizieren. Auf Grundlage der modifizierten Kantenschwelle bezieht das der kantengeführten Einfärbung dienende System 106 einen modifizierten Satz von Farbkanten in die modifizierte Kantenkarte 324 ein. Setzt das der kantengeführten Einfärbung dienende System 106 beispielsweise eine modifizierte Kantenschwelle, die höher als die Farbkantenschwelle ist, ein, so verringert das der kantengeführten Einfärbung dienende System 106 die Anzahl von Farbkanten in der Farbkantenkarte 306 durch Entfernen der Farbkanten, deren Zuverlässigkeitskennwerte unter der modifizierten Kantenschwelle sind. Der modifizierte Satz von Farbkanten der modifizierten Kantenkarte 324 beinhaltet weniger Farbkanten als die Farbkantenkarte 306. Auf ähnliche Weise erhöht das der kantengeführten Einfärbung dienende System 106 die Anzahl von Kanten in dem modifizierten Satz von Farbkanten, wenn das der kantengeführten Einfärbung dienende System 106 eine modifizierte Kantenschwelle, die niedriger als die Farbkantenschwelle ist, implementiert.
  • Wie dargestellt ist, kann das der kantengeführten Einfärbung dienende System 106 die Farbkantenmodifizierungen 310 auch über das Kantenvorschlagselement 320 empfangen. Wie erwähnt worden ist, kann das der kantengeführten Einfärbung dienende System 106 einem Nutzer vorgeschlagene Kanten präsentieren. Bei wenigstens einer Ausführungsform präsentiert das der kantengeführten Einfärbung dienende System 106 Luminanzkanten als vorgeschlagene Kanten über eine der Einfärbung dienende grafische Nutzerschnittstelle. Das der kantengeführten Einfärbung dienende System 106 kann beispielsweise einen Canny-Kantendetektionsalgorithmus auf das Graustufendigitalbild 302 anwenden, um vorhergesagte Luminanzkanten zu generieren. Das der kantengeführten Einfärbung dienende System 106 kann die vorhergesagten Luminanzkanten sodann als vorgeschlagene Kanten präsentieren. Auf Grundlage einer Nutzerauswahl einer oder mehrerer Kanten der Luminanzkanten bezieht das der kantengeführten Einfärbung dienende System 106 die ausgewählten Kanten in die modifizierte Kantenkarte 324 ein. 5 und die zugehörige Diskussion bieten zusätzliche Details im Zusammenhang mit dem Kantenvorschlagselement 320.
  • Zusätzlich kann das der kantengeführten Einfärbung dienende System 106 eine Nutzerinteraktion mit dem dem nutzerseitigen Kantenzeichnen dienenden Element 322 detektieren, um die Farbkantenmodifizierungen 310 zu bestimmen. Bei wenigstens einer Ausführungsform präsentiert das der kantengeführten Einfärbung dienende System 106 einem Nutzer das dem nutzerseitigen Kantenzeichnen dienende Element 322. Der Nutzer kann über das dem nutzerseitigen Kantenzeichnen dienende Element 322 zusätzliche nutzerseitig gezeichnete Kanten manuell eingeben. Das der kantengeführten Einfärbung dienende System 106 bezieht die nutzerseitig gezeichneten Kanten in die modifizierte Kantenkarte 324 ein. 5 sowie 7A und 7B und die zugehörige Diskussion bieten zusätzliche Details im Zusammenhang mit dem dem nutzerseitigen Kantenzeichnen dienenden Element 322.
  • Wie weiter in 3 dargestellt ist, setzt das der kantengeführten Einfärbung dienende System 106 das der kantengeführten Einfärbung dienende neuronale Netzwerk 314 ein, um das eingefärbte Bild 316 zu generieren. Das der kantengeführten Einfärbung dienende System 106 setzt die modifizierte Kantenkarte 324, die Nutzerfarbpunkte 312 und das Graustufendigitalbild 302 als Eingabe für das der kantengeführten Einfärbung dienende neuronale Netzwerk 314 ein. Das der kantengeführten Einfärbung dienende System 106 kann beispielsweise einen Graustufenkanal zur Wiedergabe des Graustufendigitalbildes 302 (beispielsweise eine Vektordarstellung der Pixel des Graustufendigitalbildes 302) generieren. Auf ähnliche Weise kann das der kantengeführten Einfärbung dienende System 106 einen Farbpunktkanal zur Wiedergabe der Nutzerfarbpunkte 312 (beispielsweise eine Vektordarstellung von Pixelorten und Farben, die von einem Nutzer ausgewählt werden) generieren. Darüber hinaus kann das der kantengeführten Einfärbung dienende System einen Kantenkartenkanal zur Wiedergabe der modifizierten Kantenkarte 324 (beispielsweise eine Vektordarstellung von Pixeln entsprechend Farbkanten) generieren. Das der kantengeführten Einfärbung dienende System 106 kann diese Eingabekanäle über das der kantengeführten Einfärbung dienende neuronale Netzwerk 314 analysieren, um das eingefärbte Bild 316 zu generieren.
  • Wie in 3 dargestellt ist, empfängt das der kantengeführten Einfärbung dienende System 106 die Nutzerfarbpunkte 312 über die der Einfärbung dienende grafische Nutzerschnittstelle. Die Nutzerfarbpunkte 312 beinhalten nutzerseitig angegebene Farbproben an verschiedenen Orten innerhalb des eingefärbten Bildes 316. Wie vorstehend erläutert worden ist, kann das der kantengeführten Einfärbung dienende System 106 die Farbpunkte 312 unter Einsatz des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 314 analysieren, um ein eingefärbtes Bild zu generieren, das die ausgewählten Farbpunkte genau wiedergibt.
  • Wie vorstehend erläutert worden ist, kann das der kantengeführten Einfärbung dienende neuronale Netzwerk 106 ein faltungstechnisches neuronales Deep-Netzwerk mit mehreren Schichten sein. Diese Zwischenschichten können Merkmalskarten auf verschiedenen Ebenen der Abstraktionen generieren und analysieren, um ein vorhergesagtes eingefärbtes Bild zu generieren. Es können verschiedene faltungstechnische Schichten beispielsweise Merkmalsvektoren verschiedener Dimensionalität generieren und diese latenten Vektoren zusätzlichen faltungstechnischen Schichten zuführen. In jeder Schicht können gelernte Gewichtungsparameter verschiedene Merkmale, die zum Generieren einer genauen Vorhersageausgabe wichtig sind, hervorheben. Bei einigen Ausführungsformen nimmt das der kantengeführten Einfärbung dienende System 106 ein Einbinden (concatenate) der modifizierten Kantenkarte 324 in alle Merkmalskarten (oder einen Teilsatz hiervon), die in Zwischenschichten des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 314 analysiert werden, vor. Durch Hervorheben der Kantenkarte in mehreren Zwischenschichten des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 314 kann das der kantengeführten Einfärbung dienende System 106 das Verlaufen von Farben verringern und die Genauigkeit des eingefärbten Bildes 316 verbessern. 6A und 6B und die zugehörige Diskussion beschreiben weiter, wie das der kantengeführten Einfärbung dienende System 106 das der kantengeführten Einfärbung dienende neuronale Netzwerk 314 trainiert und anwendet.
  • Wie in 3 dargestellt ist, analysiert das der kantengeführten Einfärbung dienende System 106 somit die modifizierte Kantenkarte 324 (oder die Farbkantenkarte 306, wenn das der kantengeführten Einfärbung dienende System 106 die Farbkantenmodifizierungen 310 nicht empfängt), die Nutzerfarbpunkte 312 und das Graustufendigitalbild 302 unter Nutzung eines der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 314. Das der kantengeführten Einfärbung dienende System 106 setzt das der kantengeführten Einfärbung dienende neuronale Netzwerk 314 ein, um ein eingefärbtes Bild 316 zu generieren. Da das der kantengeführten Einfärbung dienende neuronale Netzwerk 314 auf die Eingabe von Farbkanten zurückgreift, kann das der Farbkantenvorhersage dienende neuronale Netzwerk 304 als Vorverarbeitungsschritt betrachtet werden. Das der Farbkantenvorhersage dienende neuronale Netzwerk 304 verbessert die Effizienz, da (1) das Auffordern eines Nutzers, Farbkanten manuell einzugeben, sowohl mit Blick auf Zeit wie auch Rechenressourcen aufwändig ist und (2) Nutzer gegebenenfalls das Konzept einer „Kante“ nicht verstehen, wenn sie von einer leeren Leinwand ausgehen. Das der Farbkantenvorhersage dienende neuronale Netzwerk 304 stellt somit eine Initialisierung bereit, indem es die Farbkantenkarte 306 auf Grundlage des Graustufendigitalbildes 302 vorhersagt.
  • Obwohl 3 den Einsatz der modifizierten Kantenkarte 324 als Eingabe für das der kantengeführten Einfärbung dienende neuronale Netzwerk 314 darstellt, kann das der kantengeführten Einfärbung dienende System 106 auch die Farbkantenkarte 306 als Eingabe für das der kantengeführten Einfärbung dienende neuronale Netzwerk 314 nutzen. Insbesondere kann das der kantengeführten Einfärbung dienende System 106 bei einer oder mehreren Ausführungsformen das eingefärbte Bild 316 automatisch generieren, ohne die Farbkantenmodifizierungen 310 zu empfangen. Das der kantengeführten Einfärbung dienende System 106 kann das eingefärbte Bild 316 dem Nutzer als Vorschau oder als fertiggestelltes Produkt präsentieren.
  • 4A und 4B bieten zusätzliche Details im Zusammenhang damit, wie das der kantengeführten Einfärbung dienende System 106 das der Farbkantenvorhersage dienende neuronale Netzwerk 304 entsprechend einer oder mehreren Ausführungsformen trainiert und anwendet. Insbesondere zeigt 4A das der kantengeführten Einfärbung dienende System 106 beim Trainieren des der Farbkantenvorhersage dienenden neuronalen Netzwerkes 304, und 4B zeigt das der kantengeführten Einfärbung dienende System 106 beim Anwenden des der Farbkantenvorhersage dienenden neuronalen Netzwerkes 304, um die Farbkantenkarte 306, die Farbkanten umfasst, zu generieren.
  • Wie in 4A gezeigt ist, wendet das der kantengeführten Einfärbung dienende System 106 während des Trainings eine Canny-Kantendetektion 404 auf eine Chrominanzkarte Y 402 an, um Ground-Truth-Chrominanzkanten V 406 zu generieren. Zusätzlich nutzt das der kantengeführten Einfärbung dienende System 106 ein Ground-Truth-Graustufendigitalbild X 408 als Eingabe für das der Farbkantenvorhersage dienende neuronale Netzwerk 304, um vorhergesagte Kanten V 410 zu generieren. Das der kantengeführten Einfärbung dienende System 106 vergleicht die Ground-Truth-Luminanzkanten V 406 mit den vorhergesagten Kanten V 410 und wendet die Verlustfunktion 412 an. Auf Grundlage der Verlustfunktion 412 trainiert das der kantengeführten Einfärbung dienende System 306 die Parameter des der Farbkantenvorhersage dienenden neuronalen Netzwerkes 304.
  • Das der kantengeführten Einfärbung dienende System 106 extrahiert Chrominanzwerte aus dem Ground-Truth-Farbbild, um eine Chrominanzkarte Y 402 zu generieren. Im Sinne des Vorliegenden bezeichnet der Begriff „Chrominanzkarte“ ein Bild zur Wiedergabe von Chrominanzwerten. Insbesondere liefert eine Chrominanzkarte Farbinformation eines Bildes (im Gegensatz beispielsweise zur Helligkeitsinformation). Die Chrominanzkarte Y 402 von 4A stellt beispielsweise eine Chrominanzkarte eines Ground-Truth-Farbbildes einer Rose dar.
  • Während des Trainings führt das der kantengeführten Einfärbung dienende System 106 eine Canny-Kantendetektion 404 an der Chrominanzkarte Y 402 durch, um die Ground-Trutz-Chrominanzkanten V 406 zu generieren. Im Zusammenhang mit 4 beinhaltet die Canny-Kantendetektion 404 drei Abschnitte, nämlich eine Filterung, eine Nichtmaximumsunterdrückung (Non-Maximum Suppression NMS), eine Schwellenbildung und eine Hysterese. Während der Filterung wendet das der kantengeführten Einfärbung dienende System 106 einen Filter an, um die Chrominanzkarte Y 402 zur Rauschentfernung zu glätten. Das der kantengeführten Einfärbung dienende System 106 kann beispielsweise einen Gauß'schen Filter anwenden. Nachdem das der kantengeführten Einfärbung dienende System 106 die Filterung angewendet hat, kann das sich ergebende Bild Kanten variierender Dicke beinhalten. Das der kantengeführten Einfärbung dienende System 106 wendet daher die NMS an, um die Kanten auf eine gleichmäßigere Dicke zu verdünnen. Bei wenigstens einer Ausführungsform wendet das der kantengeführten Einfärbung dienende System 106 die NMS an, um die Kanten auf eine Breite von 1 Pixel zu verdünnen. Das der kantengeführten Einfärbung dienende System 106 wendet zudem die Schwellenbildung an, um Filterreaktionen, die unter eine bestimmte Schwelle fallen, zu entfernen. Zusätzlich wendet das der kantengeführten Einfärbung dienende System 106 bei wenigstens einer Ausführungsform eine Hysterese an, um kontinuierliche Kanten zu erzeugen. Das der kantengeführten Einfärbung dienende System 106 kann beispielsweise einen Kantennachverfolgungsalgorithmus einsetzen, um schwimmende (floating) schwache Kanten zu entfernen und schwache Kanten mit starken Kanten zu verbinden.
  • Durch Anwenden der Canny-Kantendetektion 404 auf die Chrominanzkarte Y 402 generiert das der kantengeführten Einfärbung dienende System 106 die Ground-Truth-Chrominanzkanten V 406. Die Ground-Truth-Chrominanzkanten V 406 geben Chrominanzgrenzen oder dasjenige an, wo sich Chrominanzwerte (das heißt Farben) in der Chrominanzkarte Y 402 ändern. Wie erwähnt worden ist, umfassen die Ground-Truth-Chrominanzkanten V 406 Binärkanten gleichmäßiger Dicke.
  • Wie weiter in 4A dargestellt ist, gibt das der kantengeführten Einfärbung dienende System 106 das Ground-Truth-Graustufendigitalbild X 408 in das der Farbkantenvorhersage dienende neuronale Netzwerk 304 ein. Das der kantengeführten Einfärbung dienende System 106 extrahiert Intensitätswerte aus dem Ground-Truth-Farbbild zum Generieren des Ground-Truth-Graustufendigitalbildes X 408. Das der kantengeführten Einfärbung dienende System 106 nutzt das Ground-Truth-Graustufendigitalbild X 408 als Eingabe für das der Farbkantenvorhersage dienende neuronale Netzwerk 304. Das der Farbkantenvorhersage dienende neuronale Netzwerk 304 generiert die vorhergesagten Kanten V 410.
  • Das der kantengeführten Einfärbung dienende System 106 wendet zudem die Verlustfunktion 412 an. Das der kantengeführten Einfärbung dienende System 106 führt einen pro Pixel erfolgenden Klassifizierungsvergleich zwischen den Ground-Truth-Chominanzkanten V 406 und den vorhergesagten Kanten V 410 durch. Das der kantengeführten Einfärbung dienende System 106 kann die Parameter des der Farbkantenvorhersage dienenden neuronalen Netzwerkes 304 anpassen, um eine binäre Kreuzentropieverlustfunktion
    Figure DE102020007951A1_0001
    zu minimieren, die folgendermaßen gegeben ist: H * = a r g H m i n L c l ( H ( X ) , V )
    Figure DE102020007951A1_0002
    Hierbei bezeichnet X das Ground-Truth-Graustufendigitalbild X 408, V bezeichnet die Ground-Truth-Chrominanzkanten V 406, und ℌ bezeichnet das der Farbkantenvorhersage dienende neuronale Netzwerk 304. Das der kantengeführten Einfärbung dienende System 106 trainiert das Netzwerk ℌ, um den erweiterten Klassifizierungsverlust (
    Figure DE102020007951A1_0003
    ) über den Trainingssatz von Ground-Truth-Farbbildern zu minimieren. Bei einigen Ausführungsformen kann das der kantengeführten Einfärbung dienende System 106 alternative Verlustfunktionen einsetzen, so beispielsweise den mittleren quadratischen Fehler, den quadratischen Verlust, den L2-Verlust, den L1-Verlust oder den mittleren Bias-Fehler (mean bias error). Darüber hinaus kann das der kantengeführten Einfärbung dienende System 106 Parameter des neuronalen Netzwerkes auf Grundlage der Verlustfunktion (beispielsweise durch Rückverfolgung (backpropagation)) aktualisieren.
  • 4A zeigt das der kantengeführten Einfärbung dienende System 106 beim Trainieren des der Farbkantenvorhersage dienenden neuronalen Netzwerkes 304. 4B zeigt das der kantengeführten Einfärbung dienende System 106 beim Anwenden des der Farbkantenvorhersage dienenden neuronalen Netzwerkes 304 zum Generieren einer Farbkantenkarte (das heißt der Farbkantenkarte 306). Das der kantengeführten Einfärbung dienende System 106 wendet das der Farbkantenvorhersage dienende neuronale Netzwerk 304 auf ein Graustufendigitalbild X 420 an. Das der Farbkantenvorhersage dienende neuronale Netzwerk 304 generiert eine anfängliche Farbkantenkarte 422 auf Grundlage des Graustufendigitalbildes X 420. Das der kantengeführten Einfärbung dienende System 106 wendet die Nichtmaximumsunterdrückung (Non-Maximum Suppression) (NMS) 430 (oder einfach „NMS 430“) und die Schwellenbildung 426 auf die anfängliche Farbkantenkarte 422 an, um eine Farbkantenkarte 434 zu generieren.
  • Wie in 4B dargestellt ist, generiert das der Farbkantenvorhersage dienende neuronale Netzwerk 304 die anfängliche Farbkantenkarte 422. Die anfängliche Farbkantenkarte 422 umfasst anfängliche Kanten 424. Demgegenüber umfassen die Ground-Truth-Chrominanzkanten V 406, die während des Trainings benutzt worden sind, Binärkanten, wobei die anfänglichen Kanten 424 der anfänglichen Farbkantenkarte 422 ein weicher Wert (soft value) sind. Wie in 4B dargestellt ist, beinhaltet der Satz von anfänglichen Kanten 424 der anfänglichen Farbkantenkarte 422 beispielsweise schwache Kanten, eine Schattierung und andere weiche Merkmale im Gegensatz zu kontinuierlichen und gleichmäßig dicken Kanten der Ground-Truth-Chrominanzkanten V406. Daher wendet das der kantengeführten Einfärbung dienende System 106 Nachverarbeitungsschritte, die die NMS 430 und die Schwellenbildung 426 umfassen, an, um die anfängliche Farbkantenkarte 422 zu binärisieren.
  • Wie in 4B dargestellt ist, wendet das der kantengeführten Einfärbung dienende System 106 die NMS 430 auf die anfänglichen Kanten 424 der anfänglichen Farbkantenkarte 422 an. Wie vorstehend erwähnt worden ist, passt das Anwenden der NMS 430 die Pixelbreite auf eine gleichmäßige Breite an. Das der kantengeführten Einfärbung dienende System 106 generiert somit eine gleichmäßig dicke Kanten aufweisende Karte 428, in der Farbkanten eine gleichmäßige Dicke aufweisen. Bei wenigstens einer Ausführungsform wendet das der kantengeführten Einfärbung dienende System 106 die NMS 430 derart an, dass die Farbkanten der gleichmäßig dicke Kanten aufweisenden Karte 428 eine Breite von 1 Pixel aufweisen.
  • Wie in 4B weiter gezeigt ist, wendet das der kantengeführten Einfärbung dienende System 106 die Schwellenbildung 426 auf die gleichmäßig dicke Kanten aufweisende Karte 428 an. Das der Farbkantenvorhersage dienende neuronale Netzwerk 304 generiert Zuverlässigkeitswerte (beispielsweise für jede der Farbkanten, die letztendlich in der gleichmäßig dicke Kanten aufweisenden Karte 428 vorhanden sind). Während der Schwellenbildung 426 bestimmt das der kantengeführten Einfärbung dienende System 106 eine Schwelle t e [0,1], wobei t die Schwelle bezeichnet und die Werte von 0 bis 1 reichen. Als Teil der Schwellenbildung 426 entfernt das der kantengeführten Einfärbung dienende System 106 Kanten derjenigen Farbkanten, deren Zuverlässigkeitswerte unter die bestimmte Schwelle fallen. Auf Grundlage der Schwellenbildung 426 generiert das der kantengeführten Einfärbung dienende System 106 die Farbkantenkarte 434, die lediglich Kanten der gleichmäßig dicke Kanten aufweisenden Karte 428, deren Zuverlässigkeitswerte der bestimmten Schwelle genügen, enthält. Wie beispielsweise in 4B dargestellt ist, enthält die Farbkantenkarte 434 weniger Schattierungen und andere weiche Werte (soft values) als die gleichmäßig dicke Kanten aufweisende Karte 428.
  • Das der kantengeführten Einfärbung dienende System 106 kann einen vorbestimmten Schwellenwert als Farbkantenschwelle einsetzen. Bei wenigstens einer Ausführungsform setzt das der kantengeführten Einfärbung dienende System 106 beispielsweise eine vorbestimmte Farbkantenschwelle (beispielsweise t = 0,17) ein, um die Farbkantenkarte 434 zu generieren. Wie vorher im Zusammenhang mit 3 erwähnt worden ist, kann das der kantengeführten Einfärbung dienende System 106 über eine der Einfärbung dienende grafische Nutzerschnittstelle die Farbkantenkarte 434, die sich aus der Farbkantenschwelle ergibt, präsentieren. Die der Einfärbung dienende grafische Nutzerschnittstelle kann das Farbkantenschwellenelement 318 beinhalten. Bei wenigstens einer Ausführungsform ist das Farbkantenschwellenelement ein Schieberegler, der die Farbkantenschwelle angibt. Auf Grundlage einer Nutzerinteraktion mit dem Farbkantenschwellenelement (beispielsweise das Verschieben des Reglers zur Angabe eines anderen Schwellenwertes) kann das der kantengeführten Einfärbung dienende System 106 eine modifizierte Kantenschwelle bestimmen. Unter derartigen Umständen kann das der kantengeführten Einfärbung dienende System 106 die modifizierte Kantenschwelle einsetzen, um eine modifizierte schwellenbehaftete Kantenkarte und anschließend (nach der NMS, der Schwellenbildung und der Hysterese) eine modifizierte Kantenkarte zu generieren. 5 und die begleitende Diskussion bieten zusätzliche Details im Zusammenhang damit, wie das der kantengeführten Einfärbung dienende System 106 die modifizierte Kantenkarte generiert.
  • Obwohl dies in 4B nicht dargestellt ist, wendet das der kantengeführten Einfärbung dienende System 104 zudem eine Hysterese zusätzlich zu der NMS 430 und der Schwellenbildung 426 an. Wie erwähnt worden ist, stellt das der kantengeführten Einfärbung dienende System 106 unter Einsatz der Hysterese sicher, dass die Farbkanten V̂0 432 der Farbkantenkarte 434 kontinuierlich und verbunden sind.
  • Obwohl 4B allgemein anhand der Anwendung des der Farbkantenvorhersage dienenden neuronalen Netzwerkes auf ein Graustufendigitalbild X 420 beschrieben worden ist, kann das der kantengeführten Einfärbung dienende System 106 auf ähnliche Weise auch die NMS, die Schwellenbildung und andere Nachverarbeitungsvorgänge beim Training einsetzen. Beim Generieren der vorhergesagten Kanten V̂ 410 kann das der kantengeführten Einfärbung dienende System 106 beispielsweise eine ähnliche Nachverarbeitung einsetzen, sodass die Ausgabe des der Farbkantenvorhersage dienenden neuronalen Netzwerkes 304 einfach mit den Ground-Truth-Chrominanzkanten V 406 vergleichbar ist.
  • Wie vorstehend erwähnt worden ist, kann das der kantengeführten Einfärbung dienende System 106 einem Nutzer eine Farbkantenkarte über eine der Einfärbung dienende grafische Nutzerschnittstelle präsentieren und empfängt Farbkantenmodifizierungen. Auf Grundlage der Farbkantenmodifizierungen kann das der kantengeführten Einfärbung dienende System 106 eine modifizierte Kantenkarte generieren. 5 zeigt das der kantengeführten Einfärbung dienende System 106 beim Generieren einer modifizierten Kantenkarte (das heißt der modifizierten Kantenkarte 324) entsprechend einer oder mehreren Ausführungsformen.
  • Wie in 5 dargestellt ist, präsentiert das der kantengeführten Einfärbung dienende System 106 die Farbkantenkarte 306 über eine der Einfärbung dienende grafische Nutzerschnittstelle 504. Die der Einfärbung dienende grafische Nutzerschnittstelle 504 umfasst das Farbkantenschwellenelement 318, das Kantenvorschlagselement 320 und das dem nutzerseitigen Kantenzeichnen dienende Element 322. Auf Grundlage von Nutzerinteraktionen mit dem Farbkantenschwellenelement 318, dem Kantenvorschlagselement 320 und dem dem nutzerseitigen Kantenzeichnen dienenden Element 322 generiert das der kantengeführten Einfärbung dienende System 106 die modifizierte Kantenkarte 324.
  • Wie in 5 dargestellt ist, umfasst das Farbkantenschwellenelement 318 eine interaktive Schiebeskala. Bei wenigstens einer Ausführungsform präsentiert das der kantengeführten Einfärbung dienende System 106 über das Farbkantenschwellenelement 318 die Farbkantenschwelle. Das Farbkantenschwellenelement 318 kann beispielsweise angeben, dass das der kantengeführten Einfärbung dienende System 106 die Farbkantenkarte 306 unter Nutzung der Farbkantenschwelle t = 0,17 generiert hat. Das der kantengeführten Einfärbung dienende System 106 empfängt eine Nutzerinteraktion mit dem Farbkantenschwellenelement 318, um eine modifizierte Kantenschwelle zu bestimmen. Wie in 5 dargestellt ist, ist die modifizierte Kantenschwelle beispielsweise t = 0,50. Das der kantengeführten Einfärbung dienende System 106 wendet die Schwellenbildung unter Nutzung der modifizierten Kantenschwelle auf die gleichmäßig dicke Kanten aufweisende Karte 428 an, um eine modifizierte schwellenbehaftete Kantenkarte zu generieren. Wie dargestellt ist, enthält, da die modifizierte Kantenschwelle (t = 0,50) höher als die Farbkantenschwelle (t = 0,17) ist, die modifizierte schwellenbehaftete Kantenkarte weniger Kanten als die Farbkantenkarte 306. Zusätzlich wendet das der kantengeführten Einfärbung dienende System 106 die Hysterese auf die modifizierte schwellenbehaftete Kantenkarte an, um die modifizierte Kantenkarte 324 zu generieren.
  • Die der Einfärbung dienende grafische Nutzerschnittstelle 504 beinhaltet zudem das Kantenvorschlagselement 320. Das der kantengeführten Einfärbung dienende System 106 präsentiert dem Nutzer vorgeschlagene Kanten. Das der kantengeführten Einfärbung dienende System 106 beinhaltet eine oder mehrere nutzerseitig ausgewählte Kanten der ausgewählten Kanten in der modifizierten Kantenkarte 324. Die Farbkanten können einen Teilsatz von Luminanzkanten beinhalten. Bei wenigstens einer Ausführungsform präsentiert das der kantengeführten Einfärbung dienende System 106 als vorgeschlagene Kanten Luminanzkanten. Im Sinne des Vorliegenden bezeichnet der Begriff „Luminanzkanten“ Kanten innerhalb einer Luminanzkarte. Insbesondere liefert eine Luminanzkarte Helligkeitsinformation eines Bildes dahingehend, wo jedes Pixel einem Helligkeitswert entspricht. Luminanzkanten geben Orte oder Grenzen, wo sich Helligkeitswerte ändern, an.
  • Wie in 5 dargestellt ist, wendet das der kantengeführten Einfärbung dienende System 106 einen Canny-Kantendetektor 506 auf das eingefärbte Bild an, um die Luminanzkanten 508 für das Graustufendigitalbild 302 zu generieren. Wie in 5 gezeigt ist, führt der Canny-Kantendetektor 506 denselben Prozess wie bei der Canny-Kantendetektion 404 von 4A durch. Insbesondere setzt das der kantengeführten Einfärbung dienende System 106 den Canny-Kantendetektor 506 ein, um die Filterung, die NMS, die Schwellenbildung und die Hysterese auf das Graustufendigitalbild 302 anzuwenden.
  • Das der kantengeführten Einfärbung dienende System 106 präsentiert die Luminanzkanten 508 dem Nutzer als vorgeschlagene Kanten über die der Einfärbung dienende grafische Nutzerschnittstelle 504. Auf Grundlage einer Nutzerauswahl einer oder mehrerer Kanten der Luminanzkanten 508 bezieht das der kantengeführten Einfärbung dienende System 106 die eine oder die mehreren Kanten in die modifizierte Kantenkarte 324 ein.
  • Wie weiter in 5 dargestellt ist, stellt das der kantengeführten Einfärbung dienende System 106 innerhalb der der Einfärbung dienenden grafischen Nutzerschnittstelle 504 das dem nutzerseitigen Kantenzeichnen dienende Element 322 bereit. Das der kantengeführten Einfärbung dienende System 106 kann zusätzliche Kanten über das dem nutzerseitigen Kantenzeichnen dienende Element 322 empfangen. Insbesondere empfängt das der kantengeführten Einfärbung dienende System 106 eine handgezeichnete Eingabe auf Grundlage einer Nutzerinteraktion mit dem dem nutzerseitigen Kantenzeichnen dienenden Element 322 und generiert eine nutzerseitig gezeichnete Kante 510. Das der kantengeführten Einfärbung dienende System 106 beinhaltet die nutzerseitig gezeichnete Kante 510 innerhalb des modifizierten Satzes von Farbkanten innerhalb der modifizierten Kantenkarte 324.
  • Wie vorstehend erläutert worden ist, kann das der kantengeführten Einfärbung dienende System 106 Kantenkarten als Eingabe für das der kantengeführten Einfärbung dienende neuronale Netzwerk einsetzen, um eine Kantenführung einzubeziehen. 6A und 6B zeigen das der kantengeführten Einfärbung dienende System 106 beim Trainieren und Anwenden eines der kantengeführten Einfärbung dienenden neuronalen Netzwerkes zum Generieren eines eingefärbten Bildes entsprechend einer oder mehreren Ausführungsformen. Das der kantengeführten Einfärbung dienende System 106 kann Farben für ein Graustufenbild vorhersagen, indem es Nutzerfarbpunkte und eine Kantenführung einbezieht. In einem CIE-Lab-Raum umfasst das Graustufendigitalbild den L- oder Helligkeitskanal, und das gewünschte eingefärbte Bild umfasst die ab- oder Farbkomponenten.
  • 6A zeigt das der kantengeführten Einfärbung dienende System 106 beim Trainieren eines der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 606. Das der kantengeführten Einfärbung dienende System 106 nutzt eine Ground-Truth-Farbe Y 602, ein Trainingsgraustufenbild X 604, Trainingsfarbpunkte U 614 und Canny-Kanten V 612 als Eingabe für das der kantengeführten Einfärbung dienende neuronale Netzwerk 606. Das der kantengeführten Einfärbung dienende neuronale Netzwerk 606 generiert eine trainingsvorhergesagte Farbe Ŷ 608, die das der kantengeführten Einfärbung dienende System 106 mit der Ground-Truth-Farbe Y 602 vergleicht. Das der kantengeführten Einfärbung dienende System 106 passt die Parameter des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 606 an, um den Verlust 610 zwischen der trainingsvorhergesagten Farbe Y 608 und der Ground-Truth-Farbe Y 602 zu verringern.
  • Wie in 6A gezeigt ist, generiert das der kantengeführten Einfärbung dienende System 106 Trainingseingaben für das der kantengeführten Einfärbung dienende neuronale Netzwerk 606 aus den Trainings-Ground-Truth-Farbbildern. Insbesondere isoliert das der kantengeführten Einfärbung dienende System 106 Helligkeitswerte eines Trainings-Ground-Truth-Farbbildes, um das Trainingsgraustufenbild X 604 zu generieren. Das der kantengeführten Einfärbung dienende System 106 isoliert zudem die Chrominanzwerte des Trainings-Ground-Truth-Farbbildes, um die Ground-Truth-Farbe Y 602 entsprechend dem Trainingsgraustufenbild X 604 zu generieren. Bei einer oder mehreren Ausführungsformen umfasst die Ground-Truth-Farbe Y 602 daher eine Chrominanzkarte des Trainingsfarbbildes. Des Weiteren extrahiert das der kantengeführten Einfärbung dienende System 106 Intensitäts- oder Helligkeitswerte aus dem Trainingsfarbbild, um das Trainingsgraustufenbild X 604 zu generieren.
  • Das der kantengeführten Einfärbung dienende neuronale Netzwerk 606 bezieht eine Kantenführung in das Generieren von eingefärbten Bildern ein. Während des Trainings simuliert das der kantengeführten Einfärbung dienende System 106 nutzerseitig gezeichnete Kanten unter Nutzung einer Projektionsfunktion. Bei wenigstens einer Ausführungsform projiziert das der kantengeführten Einfärbung dienende System 106 Kanten, indem es einen Canny-Kantendetektor 620 auf die Ground-Truth-Farbe Y 602 anwendet. Der Zweck des Anwendens des Canny-Kantendetektors 620 besteht im Bezeichnen von Bereichen, in denen sich der Chrominanzwert in einer Chrominanzkarte (das heißt die Ground-Truth-Farbe Y 602) tatsächlich ändert. Bei wenigstens einer Ausführungsform setzt das der kantengeführten Einfärbung dienende System 106 daher einen auf niedriger Ebene arbeitenden Kantendetektor ein. Zusätzlich extrahiert das der kantengeführten Einfärbung dienende System 106 bei wenigstens einer Ausführungsform Farbkanten mit halber Auflösung anstatt mit voller Auflösung, was oftmals übermäßig komplizierte Farbkanten ergibt. Das der kantengeführten Einfärbung dienende System 106 nutzt die Canny-Kanten V 612, um die Farbkantenkarte oder eine modifizierte Kantenkarte, die während des Anwendens eingegeben wird, zu simulieren.
  • Während des Trainings setzt das der kantengeführten Einfärbung dienende System 106 die Trainingsfarbpunkte U 614 als Eingabe für das der kantengeführten Einfärbung dienende neuronale Netzwerk 606 ein. Das der kantengeführten Einfärbung dienende System 106 simuliert Nutzerinteraktionen, indem es zufällig Punkte (beispielsweise Abtastpixel) in der Ground-Truth-Farbe Y 602 aufdeckt, um die Trainingsfarbpunkte U 614 zu generieren. Durch Abtasten aus Ground-Truth-Farben und Nutzen der Trainingsfarbpunkte U 614 als Eingabe trainiert das der kantengeführten Einfärbung dienende System 106 das der kantengeführten Einfärbung dienende neuronale Netzwerk 606, um auf die Trainingsfarbpunkte U 614 zurückzugreifen. Während des Anwendens folgt das der kantengeführten Einfärbung dienende neuronale Netzwerk 606 den nutzerseitig bereitgestellten Farben auch ohne explizite Randbedingung.
  • Wie in 6A dargestellt ist, generiert das der kantengeführten Einfärbung dienende neuronale Netzwerk 606 die trainingsvorhergesagte Farbe Y 608. Die trainingsvorhergesagte Farbe Y 608 umfasst eine vorhergesagte Chrominanzkarte, die, wenn sie mit dem entsprechenden Graustufenbild (das heißt dem Trainingsgraustufenbild X 604) kombiniert wird, ein vollständiges eingefärbtes Bild erzeugt.
  • Das der kantengeführten Einfärbung dienende System 106 vergleicht die trainingsvorhergesagte Farbe Y 608 mit der Ground-Truth-Farbe Y 602, um Parameter des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 606 anzupassen. Das der kantengeführten Einfärbung dienende System 106 trainiert das der kantengeführten Einfärbung dienende neuronale Netzwerk 606 bezüglich Parametern, um das eingegebene Trainingsgraustufenbild X 604, Trainingsfarbpunkte U 614 und Canny-Kanten V 612 möglichst genau auf die Ground-Truth-Farbe Y 602 abzubilden. Bei wenigstens einer Ausführungsform setzt das der kantengeführten Einfärbung dienende System 106 einen pro-Pixel-basierten ℓo-Regressionsverlust ein, indem es jedes Pixel der trainingsvorhergesagten Farbe Y 608 mit dem entsprechenden Pixel in der Ground-Truth-Farbe Y 602 vergleicht. Wie vorher erwähnt worden ist, kann das der kantengeführten Einfärbung dienende System 106 auch alternative Verlustfunktionen einsetzen.
  • Während des Trainings bezieht das der kantengeführten Einfärbung dienende System 106 das Trainingsgraustufenbild X 604, die Trainingsfarbpunkte U 614 und die Canny-Kanten V 612 als Eingabe in das der kantengeführten Einfärbung dienende neuronale Netzwerk 606
    Figure DE102020007951A1_0004
    (X, U, V) ein. Das der kantengeführten Einfärbung dienende System 106 passt Parameter des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 606 an, um den Verlust 610 zu minimieren, und zwar mit der nachfolgenden Objektivfunktion: F * = a r g F m i n L ( F ( X , P u ( Y ) , P v ( Y ) ) , Y )
    Figure DE102020007951A1_0005
    Hierbei bezeichnet
    Figure DE102020007951A1_0006
    eine Verlustfunktion, die die Ausgabe (das heißt die trainingsvorhergesagte Farbe Ŷ 608) des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 606
    Figure DE102020007951A1_0004
    in Abhängigkeit von der Ground-Truth-Farbe Y 602 abbildet. Die Funktion Pu(Y) bezeichnet Nutzerinteraktionen, die dadurch simuliert werden, dass Punkte in der Ground-Truth-Farbe Y 602 (das heißt Trainingsfarbpunkte U 614) zufällig aufgedeckt werden. Die Funktion Pv(Y) simuliert nutzerseitig gezeichnete Kanten (das heißt Canny-Kanten V 612).
  • Während 6A darstellt, wie das der kantengeführten Einfärbung dienende System 106 das der kantengeführten Einfärbung dienende neuronale Netzwerk 606 trainiert, zeigt 6B das der kantengeführten Einfärbung dienende System 106 beim Anwenden des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 606 entsprechend einer oder mehreren Ausführungsformen. Während des Anwendens analysiert das der kantengeführten Einfärbung dienende System 106 ein Graustufendigitalbild X 622, Nutzerfarbpunkte U 624 und eine Nutzerkantenkarte 626 unter Nutzung des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 606. Insbesondere generiert das der kantengeführten Einfärbung dienende System 106 einen Graustufenkanal, einen Farbpunktekanal und einen Kantenkartenkanal und analysiert diese Kanäle über das der kantengeführten Einfärbung dienende neuronale Netzwerk 606. Das der kantengeführten Einfärbung dienende neuronale Netzwerk 606 generiert eine vorhergesagte Farbe Y 628, die das der kantengeführten Einfärbung dienende System 106 mit dem Graustufendigitalbild X 622 kombiniert, um das eingefärbte Bild 630 zu erzeugen.
  • Während des Anwendens empfängt das der kantengeführten Einfärbung dienende System 106 das Graustufendigitalbild X 622 von dem Nutzer. Das der kantengeführten Einfärbung dienende System 106 setzt das trainierte der kantengeführten Einfärbung dienende neuronale Netzwerk 606 ein, um die vorhergesagte Farbe Y 628 für das empfangene Graustufendigitalbild X 622 zu generieren. Die gewünschte Ausgabe umfasst eine eingefärbte Fassung des Graustufendigitalbildes X 622.
  • Das der kantengeführten Einfärbung dienende System 106 beinhaltet die Nutzerfarbpunkte U 624 als Eingabe für das der kantengeführten Einfärbung dienende neuronale Netzwerk 606. Bei wenigstens einer Ausführungsform stellt das der kantengeführten Einfärbung dienende System 106 die Nutzerfarbpunkte U 624 über einen Satz von Farbpunktkanälen als s U ∈ ℝH×W×3 dar, wobei die ersten zwei Kanäle nutzerseitig ausgewählte Chrominanzwerte sind und der dritte eine Binärmaske ist, die angibt, ob der Nutzer eine Farbe an jenem Ort ausgewählt hat. Bei wenigstens einer Ausführungsform beginnt der Farbpunktekanal mit lauter Nullen und ist spärlich besiedelt, wenn das der kantengeführten Einfärbung dienende System 106 Nutzerfarbpunkte empfängt.
  • Das der kantengeführten Einfärbung dienende System 106 empfängt die Nutzerfarbpunkte U 624 über die der Einfärbung dienende grafische Nutzerschnittstelle. Bei wenigstens einer Ausführungsform präsentiert das der kantengeführten Einfärbung dienende System 106 das Graustufenbild und eine ab-Farbpalette beispielsweise über die der Einfärbung dienende grafische Nutzerschnittstelle. Das der kantengeführten Einfärbung dienende System 106 empfängt Auswahlen von verschiedenen Punkten in dem Graustufenbild und eine Auswahl von Chrominanzwerten auf der Farbskala, die den verschiedenen Punkten entsprechen. 7A und die begleitende Diskussion bieten zusätzliche Details im Zusammenhang damit, wie das der kantengeführten Einfärbung dienende System 106 die Nutzerfarbpunkte U 624 empfängt.
  • Zusätzlich bezieht das der kantengeführten Einfärbung dienende System 106 eine Kantenführung von Nutzern unter Nutzung der Nutzerkantenkarte V 626 und eines entsprechenden Kantenkartenkanals ein. Die Nutzerkantenkarte V 626 umfasst die Farbkantenkarte 434, wenn der Nutzer die Farbkantenkarte 434 nicht modifiziert hat. Empfängt das der kantengeführten Einfärbung dienende System 106 Nutzermodifizierungen für die Farbkantenkarte 434, so umfasst die Nutzerkantenkarte V 626 alternativ die modifizierte Kantenkarte 324. Bei wenigstens einer Ausführungsform bezeichnet das der kantengeführten Einfärbung dienende System 106 die Nutzerkantenkarte V 626 über einen Kantenkartenkanal als spärliche Binärmatrix. Insbesondere bezeichnet das der kantengeführten Einfärbung dienende System 106 die Nutzerkantenkarte V 626 durch einen Kantenkartenkanal als V H × W × 1
    Figure DE102020007951A1_0007
    zur Darstellung des Vorhandenseins oder Nichtvorhandenseins von Kanten.
  • Wie vorstehend erwähnt worden ist, trainiert das der kantengeführten Einfärbung dienende System 106 das der kantengeführten Einfärbung dienende neuronale Netzwerk 606, um das Graustufendigitalbild X 622, die Nutzerfarbpunkte U 624 und die Nutzerkantenkarte V 626 abzubilden, um wiederum die vorhergesagte Farbe Y 628 auszugeben. Zusätzlich bindet das der kantengeführten Einfärbung dienende System 106 bei einigen Ausführungsformen die Nutzerkantenkarte V 626 in Merkmalsvektoren in allen Zwischenschichten des neuronalen Netzwerkes ein. Bei wenigstens einer Ausführungsform umfasst das der kantengeführten Einfärbung dienende neuronale Netzwerk 606 ein faltungstechnisches neuronales U-Net-Netzwerk.
  • Wie in 6B dargestellt ist, generiert das der kantengeführten Einfärbung dienende neuronale Netzwerk 606 die vorhergesagte Farbe Ŷ 628. Die vorhergesagte Farbe Y 628 umfasst eine vorhergesagte Chrominanzkarte, die dem Graustufendigitalbild X 622 entspricht. Insbesondere umfasst die vorhergesagte Farbe Y 628 Chrominanzwerte für jedes Pixel in dem Graustufendigitalbild X 622. Darüber hinaus gibt die vorhergesagte Farbe Y 628 die Kantenführung wieder, die durch das der kantengeführten Einfärbung dienende neuronale Netzwerk 606 einbezogen worden ist.
  • Das der kantengeführten Einfärbung dienende System 106 kann das eingefärbte Bild 630 generieren, indem es die Chrominanz- oder Farbwerte der vorhergesagten Farbe Ŷ 628 mit den Helligkeitswerten des Graustufendigitalbildes X 622 kombiniert. Das der kantengeführten Einfärbung dienende System 106 kann beispielsweise das eingefärbte Bild 630 innerhalb des CIE-Lab-Raumes generieren, indem es die L-Werte des Graustufendigitalbildes X 622 mit den ab-Werten der vorhergesagten Farbe Y 628 kombiniert. Das der kantengeführten Einfärbung dienende System 106 präsentiert dem Nutzer das eingefärbte Bild 630 über die der Einfärbung dienende grafische N utzerschn ittstelle.
  • Bei wenigstens einer Ausführungsform speist das der kantengeführten Einfärbung dienende System 106, wie erwähnt worden ist, die Nutzerkantenkarte V 626 in mehrere Schichten des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 606 ein. Das der kantengeführten Einfärbung dienende System 106 kann die Nutzerkantenkarte V 626 beispielsweise in Merkmalsvektoren in jeder Schicht des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 606 einbinden. Bei einer weiteren Ausführungsform speist das der kantengeführten Einfärbung dienende System 106 die Nutzerkantenkarte V 626 in mehrere, jedoch nicht alle Schichten des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 606 ein.
  • Insbesondere kann das der kantengeführten Einfärbung dienende neuronale Netzwerk 606, wie vorstehend erläutert worden ist, eine Vielzahl von Schichten beinhalten, die Operationen an Merkmalsvektoren auf Grundlage von gelernten Gewichtungen/Parametern durchführen. Eine beliebige bestimmte Schicht kann somit als Eingabe einen Eingabemerkmalsvektor empfangen und einen Ausgabemerkmalsvektor generieren. Das der kantengeführten Einfärbung dienende System 106 kann die Nutzerkantenkarte V 626 zu den Merkmalsvektoren mehrerer Schichten des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 606 hinzufügen (das heißt dort einbinden). Das der kantengeführten Einfärbung dienende System 106 hebt daher die Nutzerkantenkarte V 626 in mehreren Zwischenschichten des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 314 hervor.
  • Darüber hinaus kann das der kantengeführten Einfärbung dienende System 106 die Größe und Dimensionalität der Nutzerkantenkarte V 626 für die Merkmalsvektoren einer jeden Schicht des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 606 anpassen. Insbesondere können Schichten des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 606 verschiedene Größen aufweisen, um das Graustufendigitalbild X 622 auf verschiedenen Ebenen der Detailliertheit zu analysieren. Das der kantengeführten Einfärbung dienende System 106 kann daher die Größe der Nutzerkantenkarte V 626 derart anpassen, dass diese zur entsprechenden Schicht des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 606 passt.
  • Darstellungshalber kann das der kantengeführten Einfärbung dienende System 106 einen Graustufenkanal, einen Farbkantenkartenkanal und/oder einen Farbpunktkanal unter Einsatz einer ersten Schicht (beispielsweise einer ersten faltungstechnischen Schicht) des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 106 analysieren, um einen Merkmalsvektor zu erzeugen. Das der kantengeführten Einfärbung dienende System 106 kann die Kantenkarte zu dem Merkmalsvektor hinzufügen (beispielsweise dort einbinden oder auf andere Weise anhängen), um einen kantenkartenmodifizierten Merkmalsvektor zu generieren. Das der kantengeführten Einfärbung dienende System 106 kann den kantenkartenmodifizierten Merkmalsvektor sodann unter Einsatz einer zweiten Schicht (beispielsweise einer zweiten faltungstechnischen Schicht) des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 606 analysieren. Das der kantengeführten Einfärbung dienende System kann die Kantenkarte (mit verschiedenen Größen oder Skalen) in verschiedenen Schichten des neuronalen Netzwerkes iterativ hinzufügen.
  • Das der kantengeführten Einfärbung dienende System 106 empfängt verschiedene Nutzerinteraktionen, um Eingaben für das der kantengeführten Einfärbung dienende neuronale Netzwerk 606 zu generieren. Das der kantengeführten Einfärbung dienende System 106 empfängt die Nutzerfarbpunkte U 624 beispielsweise über eine der Einfärbung dienende grafische Nutzerschnittstelle. Zusätzlich empfängt das der kantengeführten Einfärbung dienende System 106 Eingaben, die Farbkantenmodifizierungen 310 beinhalten, um die Nutzerkantenkarte V 626 zu generieren. 7A und 7B zeigen eine exemplarische der Einfärbung dienende grafische Nutzerschnittstelle. Insbesondere stellt 7A dar, wie das der kantengeführten Einfärbung dienende System 106 die Nutzerfarbpunkte U 624 über die der Einfärbung dienende grafische Nutzerschnittstelle in einem Farbmodus entsprechend einer oder mehreren Ausführungsformen empfängt. 7B stellt dar, wie das der kantengeführten Einfärbung dienende System 106 die Farbkantenmodifizierungen 310 über die der Einfärbung dienende grafische Nutzerschnittstelle in einem Kantenmodus entsprechend einer oder mehreren Ausführungsformen empfängt. Obwohl 7A und 7B eine Abfolge von exemplarischen der Einfärbung dienenden grafischen Nutzerschnittstellen zeigen, sollte einsichtig sein, dass das der kantengeführten Einfärbung dienende System 106 verschiedene der Einfärbung dienende grafische Nutzerschnittstellen, die verschiedene Konfigurationen oder verschiedene Nutzerschnittstelleelemente umfassen, einsetzen kann.
  • Wie in 7A dargestellt ist, präsentiert das der kantengeführten Einfärbung dienende System 106 im Farbmodus eine der Einfärbung dienende grafische Nutzerschnittstelle 706 über einen Anzeigebildschirm 704 auf der Nutzerclientvorrichtung 702 (das heißt der Nutzerclientvorrichtung 108). Wie gezeigt ist, umfasst die der Einfärbung dienende grafische Nutzerschnittstelle 706 ein Farbpunkteingabeelement 709, durch das das der kantengeführten Einfärbung dienende System 106 eine Nutzereingabe der Nutzerfarbpunkte U 624 empfängt. Das Farbpunkteingabeelement 709 beinhaltet ein Farbauswahlelement 710, ein Punktauswahlelement 712, vorgeschlagene Farben 716, unlängst benutzte Farben 718 und eine ausgewählte Farbe 720. Zusätzlich beinhaltet die der Einfärbung dienende grafische Nutzerschnittstelle 706 im Farbmodus ein Zeichenoptionenauswahlelement 722, ein Ladeelement 725, ein Ladeelement 727, ein Neustartelement 729 und ein Abbruchelement 730.
  • Wie durch das Zeichenoptionenauswahlelement 722 dargestellt ist, ist die der Einfärbung dienende grafische Nutzerschnittstelle 706 von 7A im Farbmodus. Auf Grundlage einer Nutzerinteraktion mit dem Zeichnungsoptionenauswahlelement 722 wechselt das der kantengeführten Einfärbung dienende System 106 zwischen dem Präsentieren des Farbpunkteingabeelementes 706 zum Auswählen der Nutzerfarbpunkte U 624 und dem Präsentieren der Farbkantenmodifizierungselemente zum Generieren der Nutzerkantenkarte V 626. Auf Grundlage einer Nutzerinteraktion mit der Farbmodusoption des Zeichenoptionenauswahlelementes 722 präsentiert das der kantengeführten Einfärbung dienende System 106 das Farbpunkteingabeelement 709 über die der Einfärbung dienende grafische Nutzerschnittstelle 706.
  • Auf Grundlage einer Interaktion mit dem Punktauswahlelement 712 identifiziert das der kantengeführten Einfärbung dienende System 106 Punkte für die Nutzerfarbpunkte U 624. Das Punktauswahlelement 712 umfasst das Eingabegraustufendigitalbild. Das der kantengeführten Einfärbung dienende System 106 detektiert eine Auswahl von Bereichen in dem Punktauswahlelement 712 und ordnet nutzerseitig ausgewählte Farben jedem von diesen Punkten zu. Zusätzlich zeigt das der kantengeführten Einfärbung dienende System 106, wie dargestellt ist, über das Punktauswahlelement 712 an, welche Farbpunkte bereits ausgewählt und Farbwerten zugeordnet worden sind.
  • Das der kantengeführten Einfärbung dienende System 106 ordnet Farbwerte ausgewählten Farbpunkten in dem Punktauswahlelement 712 zu. Das der kantengeführten Einfärbung dienende System detektiert beispielsweise eine Nutzerauswahl eines ausgewählten Farbpunktes 724 und hebt den ausgewählten Farbpunkt 724 hervor, um eine aktive Farbauswahl für Pixel innerhalb des ausgewählten Farbpunktes 724 anzugeben. Das der kantengeführten Einfärbung dienende System 106 empfängt die Farbauswahl, um diese dem ausgewählten Farbpunkt 724 über das Farbauswahlelement 710 zuzuordnen.
  • Das der kantengeführten Einfärbung dienende System 106 präsentiert das Farbauswahlelement 710 als Teil des Farbpunkteingabeelementes 709. Das Farbauswahlelement 710 umfasst eine Farbpalette zur Anzeige des gesamten Bereiches von Farben, die für den ausgewählten Farbpunkt 724 zur Verfügung stehen. Wie dargestellt ist, umfasst das Farbauswahlelement 710 eine ab-Farbpalette. Das der kantengeführten Einfärbung dienende System 106 detektiert eine Nutzerinteraktion mit dem Farbauswahlelement 710 und aktualisiert die ausgewählte Farbe 720 zur Anzeige der Farbe mit aktueller Auswahl durch den Icon in dem Farbauswahlelement 710.
  • Zusätzlich zum Präsentieren des Farbauswahlelementes 710 präsentiert das der kantengeführten Einfärbung dienende System 106 die ausgewählten Farben 716. Das der kantengeführten Einfärbung dienende System 106 sagt mögliche Farben für den ausgewählten Farbpunkt 724 vorher und präsentiert die möglichen Farben in den vorgeschlagenen Farben 716. Bei wenigstens einer Ausführungsform nutzt das der kantengeführten Einfärbung dienende System 106 ein der Farbvorhersage dienendes neuronales Netzwerk, um mögliche Farben für einen gegebenen Punkt vorherzusagen. Das der kantengeführten Einfärbung dienende System 106 trainiert das der Farbvorhersage dienende neuronale Netzwerk unter Nutzung einer Trainingsfarbe und von Trainingsgraustufenbildern. Auf Grundlage einer Analyse von Werten der Trainingsgraustufenbilder generiert das der kantengeführten Einfärbung dienende System 106 Vorhersagen für Farben. Zusätzlich kann das der kantengeführten Einfärbung dienende System 106 die Genauigkeit von möglichen Farben, die innerhalb der vorgeschlagenen Farben 716 präsentiert werden, durch Zuordnen von Farben für andere Farbpunkte verbessern. Gibt der Nutzer beispielsweise eine Farbe für einen Farbpunkt an, so bestimmt das der kantengeführten Einfärbung dienende System 106 eine geringere Wahrscheinlichkeit dafür, dass dieselbe Farbe an einem anderen Farbpunkt benutzt wird.
  • Empfängt das der kantengeführten Einfärbung dienende System 106 Farbpunkte U 624 über das Farbpunkteingabeelement 709, so aktualisiert das der kantengeführten Einfärbung dienende System 106 das eingefärbte Bild 714. Das eingefärbte Bild 714 umfasst das Eingabegraustufendigitalbild mit der vorhergesagten Farbe gemäß Bestimmung durch das der kantengeführten Einfärbung dienende neuronale Netzwerk 606. Bei wenigstens einer Ausführungsform generiert das der kantengeführten Einfärbung dienende System 106 vor dem Empfangen beliebiger Farbpunkte das eingefärbte Bild 714 unter Nutzung von vorhergesagten Farben. Damit kann das der kantengeführten Einfärbung dienende System 106 Korrekturen an den vorhergesagten Farben über das Farbpunkteingabeelement 709 empfangen. Bei einer weiteren Ausführungsform präsentiert das der kantengeführten Einfärbung dienende System 106 ein Graustufenbild als das eingefärbte Bild 714 und aktualisiert das eingefärbte Bild 714, indem es Farben in Echtzeit auf Grundlage von empfangenen Nutzerfarbpunkten hinzufügt.
  • Wie in 7A dargestellt ist, beinhaltet die der Einfärbung dienende grafische Nutzerschnittstelle 706 zudem das Ladeelement 727, das Neustartelement 729 und das Abbruchelement 730. Auf Grundlage einer Interaktion mit dem Ladeelement 725 lädt das der kantengeführten Einfärbung dienende System 106 ein anderes Graustufenbild zur Einfärbung. Das der kantengeführten Einfärbung dienende System 106 kann beispielsweise auf Graustufenbilder zugreifen, die auf der Nutzerclientvorrichtung 702 gespeichert sind. Auf Grundlage einer Nutzerauswahl des Ladeelementes 727 speichert das der kantengeführten Einfärbung dienende System 106 eingegebene Nutzerfarbpunkte und die aktuellsten Kantenmodifizierungen. Auf Grundlage einer Nutzerauswahl des Neustartelementes 729 entfernt das der kantengeführten Einfärbung dienende System 106 alle ausgewählten Farbpunkte und Kantenmodifizierungen. Bei wenigstens einer Ausführungsform sind das Ladeelement 727 und das Neustartelement 729 ein spezifischer Farbmodus oder Kantenmodus. Auf Grundlage einer Nutzerauswahl des Ladeelementes 727 im Farbmodus speichert das der kantengeführten Einfärbung dienende System 106 beispielsweise die aktuell eingegebenen Farbpunkte. Detektiert das der kantengeführten Einfärbung dienende System 106 eine Auswahl des Neustartelementes 729 im Farbmodus, so nimmt das der kantengeführten Einfärbung dienende System 106 ein Zurücksetzen nur der Farbpunkte, nicht jedoch der Kanten vor. Auf Grundlage einer Nutzerauswahl des Abbruchelementes 730 schließt das der kantengeführten Einfärbung dienende System 106 die der Einfärbung dienende grafische Nutzerschnittstelle 706.
  • Auf Grundlage einer Nutzerauswahl des Kantenmodus des Zeichenoptionenauswahlelementes 722 aktualisiert das der kantengeführten Einfärbung dienende System 106 die der Einfärbung dienende grafische Nutzerschnittstelle 706 auf den Kantenmodus. 7B zeigt die der Einfärbung dienende grafische Nutzerschnittstelle 706 im Kantenmodus, durch den das der kantengeführten Einfärbung dienende System 106 Kantenmodifizierungen empfängt, um eine Kantenkarte zu generieren. Das der kantengeführten Einfärbung dienende System 106 präsentiert die der Einfärbung dienende grafische Nutzerschnittstelle 706 über den Anzeigeschirm 704 auf der Nutzerclientvorrichtung 702. Wie in 7B dargestellt ist, präsentiert das der kantengeführten Einfärbung dienende System 106 über die der Einfärbung dienende grafische Nutzerschnittstelle 706 ein Farbkantenmodifizierungselement 735. Das Farbkantenmodifizierungselement 735 beinhaltet ein der modifizierten Kantenkarte dienendes Element 736, ein Farbkantenschwellenelement 732 und ein dem nutzerseitigen Kantenzeichnen dienendes Element 734 zur Eingabe von Farbkantenmodifizierungen. Zusätzlich präsentiert das der kantengeführten Einfärbung dienende System 106 das Zeichenoptionenauswahlelement 722, ein Grauauswahlelement 740, ein Kantenzeigeelement 742, ein Kantenvorschlagselement 744 und ein Kantenaktualisierungselement 738.
  • Das der kantengeführten Einfärbung dienende System 106 präsentiert als Teil des Farbkantenmodifizierungselementes 735 das Farbkantenschwellenelement 732. Auf Grundlage einer Interaktion mit dem Farbkantenschwellenelement 732 bestimmt das der kantengeführten Einfärbung dienende System 106 eine modifizierte Kantenschwelle, die bei der Schwellenbildung der anfänglichen Farbkantenkarte 422 benutzt wird. Höhere modifizierte Kantenschwellen sind mit niedrigeren Farbkanten verknüpft, während eine niedrigere modifizierte Kantenschwelle mehr Farbkanten ergibt. Wie in 7B gezeigt ist, umfasst das Farbkantenschwellenelement 732 eine Schiebeskala und eine Angabe des Schwellenwertes (beispielsweise t = 0,5). Das der kantengeführten Einfärbung dienende System 106 bestimmt die modifizierte Kantenschwelle auf Grundlage einer Nutzerinteraktion mit der Schiebeskala oder der Schwellenangabe. Das der kantengeführten Einfärbung dienende System 106 modifiziert die Kantenschwelle beispielsweise auf Grundlage dessen, dass der Nutzer die Schiebeskala auswählt oder ein Ziehen (dragging) daran vornimmt. Zusätzlich ermöglicht das der kantengeführten Einfärbung dienende System 106, dass der Nutzer den modifizierten Schwellenwert unter Nutzung der Schwellenwertangabe manuell eingibt.
  • Das der kantengeführten Einfärbung dienende System 106 präsentiert zudem als Teil des Farbkantenmodifizierungselementes 735 das dem nutzerseitigen Kantenzeichnen dienende Element 734. Das dem nutzerseitigen Kantenzeichnen dienende Element 734 umfasst eine Fläche, in die der Nutzer zusätzliche gewünschte Kanten zeichnen kann. Auf Grundlage einer Nutzerinteraktion mit dem dem nutzerseitigen Kantenzeichnen dienenden Element 734 (beispielsweise auf Grundlage eines Darüberziehens eines Cursors oder eines Anklickens desselben) fügt das der kantengeführten Einfärbung dienende System 106 nutzerseitig gezeichnete Kanten zu der modifizierten Kantenkarte hinzu. Das der kantengeführten Einfärbung dienende System 106 fügt beispielsweise eine nutzerseitig gezeichnete Kante 728 zu dem der modifizierten Kantenkarte dienenden Element 736 zusätzlich zu den Farbkanten 726 hinzu.
  • Das der kantengeführten Einfärbung dienende System 106 bestimmt, was als Teil des dem nutzerseitigen Kantenzeichnen dienenden Elementes angezeigt werden soll, auf Grundlage einer detektierten Nutzerinteraktion mit dem Grauelement 740 und dem Kantenzeigeelement 742. Wie gezeigt ist, detektiert das der kantengeführten Einfärbung dienende System 106 eine Auswahl des Grauelementes 740 und präsentiert daher innerhalb des dem nutzerseitigen Kantenzeichnen dienenden Elementes 734 die hochgeladenen Graustufenbilder. Alternativ präsentiert das der kantengeführten Einfärbung dienende System 106 bei wenigstens einer Ausführungsform die Option, nur Kanten anzuzeigen, als Teil des dem nutzerseitigen Kantenzeichnen dienenden Elementes. Darüber hinaus zeigt das der kantengeführten Einfärbung dienende System 106 auf Grundlage einer Auswahl des Kantenzeigeelementes 742 die Farbkanten 726 an. Auf Grundlage einer detektierten Auswahlaufhebung des Kantenzeigeelementes 742 entfernt das der kantengeführten Einfärbung dienende System 106 die Farbkanten 726 und zeigt nur die nutzerseitig gezeichnete Kante 728 an.
  • Das der kantengeführten Einfärbung dienende System 106 beinhaltet zudem das Kantenvorschlagselement 744 als Teil des Farbkantenmodifizierungselementes. Auf Grundlage einer Detektion einer Nutzerinteraktion mit dem Kantenvorschlagselement 744 präsentiert das der kantengeführten Einfärbung dienende System 106 zusätzliche Luminanzkanten als vorgeschlagene Kanten. Bei einer Ausführungsform präsentiert das der kantengeführten Einfärbung dienende System 106 beispielsweise ein zusätzliches Feld, das die Luminanzkanten des Graustufenbildes anzeigt. Bei einer weiteren Ausführungsform blendet das der kantengeführten Einfärbung dienende System 106 auf Grundlage einer Auswahl des Kantenvorschlagselementes 744 die Luminanzkanten über den Farbkanten 726 und der nutzerseitig gezeichneten Kante 728 in dem dem nutzerseitigen Kantenzeichnen dienenden Element 734 ein. Das der kantengeführten Einfärbung dienende System 106 präsentiert beispielsweise die Luminanzkanten in einer anderen Farbe als die Farbkanten 726 und die nutzerseitig gezeichnete Kante 728. Auf Grundlage einer Nutzerauswahl einer oder mehrerer Kanten der Luminanzkanten bestimmt das der kantengeführten Einfärbung dienende System 106, dass die eine oder die mehreren Kanten in die modifizierte Bildkarte einbezogen werden. Das der kantengeführten Einfärbung dienende System 106 hebt die eine ausgewählte oder die mehreren ausgewählten Kanten der Luminanzkanten hervor, um anzugeben, dass die eine ausgewählte oder die mehreren ausgewählten Kanten in die modifizierte Kantenkarte einbezogen sein werden.
  • Empfängt das der kantengeführten Einfärbung dienende System 106 eine Nutzerinteraktion durch das Farbkantenschwellenelement 732, das dem nutzerseitigen Kantenzeichnen dienende Element und das Kantenvorschlagselement 744, so aktualisiert das der kantengeführten Einfärbung dienende System 106 das der modifizierten Kantenkarte dienende Element 736 in Echtzeit. Das der kantengeführten Einfärbung dienende System 106 fügt beispielsweise Kanten in dem der modifizierten Kantenkarte dienenden Element 736 hinzu oder entfernt diese, um die aktuellsten Änderungen an den modifizierten Kanten darzustellen.
  • Wie in 7B dargestellt ist, beinhaltet die der Einfärbung dienende grafische Nutzerschnittstelle 706 das eingefärbte Bild 714. Das der kantengeführten Einfärbung dienende System 106 präsentiert das aktuellste vorhergesagte eingefärbte Bild. Bei wenigstens einer Ausführungsform frischt das der kantengeführten Einfärbung dienende System 106 das eingefärbte Bild 714 auf Grundlage einer Nutzerauswahl des Aktualisierungskantenelementes 738 auf. Bei einer weiteren Ausführungsform aktualisiert das der kantengeführten Einfärbung dienende System 106 das eingefärbte Bild 714 auf Grundlage einer Nutzerinteraktion mit dem Farbkantenmodifizierungselement 735 automatisch.
  • Obwohl dies in 7B nicht dargestellt ist, entfernt das der kantengeführten Einfärbung dienende System 106 Kanten auch auf Grundlage einer Nutzerinteraktion. Bei wenigstens einer Ausführungsform präsentiert das der kantengeführten Einfärbung dienende System 106 eine Kantenentfernungsoption über die der Einfärbung dienende grafische Nutzerschnittstelle 706. Auf Grundlage einer Auswahl der Kantenentfernungsoption und einer Kante der Farbkanten (die beispielsweise über das der modifizierten Kantenkarte dienende Element 736, das dem nutzerseitigen Kantenzeichen dienende Element 734 oder eine andere Kantenanzeige angezeigt wird) entfernt das der kantengeführten Einfärbung dienende System 106 die ausgewählte Kante aus der modifizierten Kantenkarte.
  • 8 zeigt ein schematisches Diagramm von Komponenten des der kantengeführten Einfärbung dienenden Systems 106 entsprechend einer oder mehreren Ausführungsformen. Wie gezeigt ist, kann das der kantengeführten Einfärbung dienende System 106 Teil einer Rechenvorrichtung 800 (beispielsweise der Nutzerclientvorrichtung 108 und/oder der Servervorrichtung / den Servervorrichtungen 102) sein. Zusätzlich kann das der kantengeführten Einfärbung dienende System 106 Teil des Bildbearbeitungssystems 104 sein. Das der kantengeführten Einfärbung dienende System 106 kann beispielsweise unter anderem eine das der Farbkantenvorhersage dienende neuronale Netzwerk trainierende Engine 802, eine das der Farbkantenvorhersage dienende neuronale Netzwerk anwendende Engine 804, einen der grafische Nutzerschnittstelle dienenden Verwalter 806, einen Kantenmodifizierungsverwalter 808, einen Farbpunkteingabeverwalter 810, eine das der kantengeführten Einfärbung dienende neuronale Netzwerk trainierende Engine 812, eine das der kantengeführten Einfärbung dienende neuronale Netzwerk anwendende Engine 814 und einen Speicherverwalter 816 beinhalten. Das der kantengeführten Einfärbung dienende System 106 kann als Teil des Bildbearbeitungssystems 104 in einem verteilten System von Servervorrichtungen zum Verwalten, Speichern und Bearbeiten von Digitalbildern implementiert sein. Alternativ kann das der kantengeführten Einfärbung dienende System 106 auf einer einzigen Rechenvorrichtung, so beispielsweise der Nutzerclientvorrichtung 108 von 8, implementiert sein.
  • Bei einer oder mehreren Ausführungsformen kommuniziert jede der Komponenten des der kantengeführten Einfärbung dienenden Systems 106 unter Nutzung beliebiger geeigneter Kommunikationstechnologien mit einer anderen Komponente. Zusätzlich können die Komponenten des der kantengeführten Einfärbung dienenden Systems 106 mit einer oder mehreren anderen Vorrichtungen, darunter der Nutzerclientvorrichtung 108, wie in 1 dargestellt ist, kommunizieren. Obwohl die Komponenten des der kantengeführten Einfärbung dienenden Systems 106 in 8 separat dargestellt sind, können beliebige der Teilkomponenten zu weniger Komponenten, so beispielsweise zu einer einzigen Komponente, kombiniert oder auch in mehr Komponenten unterteilt werden, so dies einer bestimmten Implementierung dienlich ist. Obwohl die Komponenten von 8 in Verbindung mit dem der kantengeführten Einfärbung dienenden System 106 beschrieben sind, können zudem wenigstens einige der Komponenten zur Durchführung von Operationen im Zusammenspiel mit dem der kantengeführten Einfärbung dienenden System 106, wie hier beschrieben ist, auch auf anderen Vorrichtungen innerhalb der Umgebung implementiert sein.
  • Die Komponenten des der kantengeführten Einfärbung dienenden Systems 106 können Software, Hardware oder beides beinhalten. Die Komponenten des der kantengeführten Einfärbung dienenden Systems 106 können beispielsweise eine oder mehrere Anweisungen beinhalten, die auf einem computerlesbaren Speichermedium gespeichert sind und auf Prozessoren einer oder mehrerer Rechenvorrichtungen (beispielsweise der Nutzerclientvorrichtung 108) ausführbar sind. Bei Ausführung durch den einen oder die mehreren Prozessoren können die computerausführbaren Anweisungen des der kantengeführten Einfärbung dienenden Systems 106 veranlassen, dass die Rechenvorrichtungen die hier beschriebenen Bildbearbeitungsverfahren durchführen. Alternativ können die Komponenten des der kantengeführten Einfärbung dienenden Systems 106 Hardware umfassen, so beispielsweise eine Spezialzweckverarbeitungsvorrichtung zur Durchführung einer bestimmten Funktion oder Gruppe von Funktionen. Zusätzlich oder alternativ können die Komponenten des der kantengeführten Einfärbung dienenden Systems 106 eine Kombination von computerausführbaren Anweisungen und Hardware beinhalten.
  • Implementiert sein können die Komponenten des der kantengeführten Einfärbung dienenden Systems 106, die die hier beschriebenen Funktionen durchführen, des Weiteren als Teil einer eigenständigen Anwendung, als Modul einer Anwendung, als Plug-in für Anwendungen, die Contentverwaltungsanwendungen beinhalten, als Bibliotheksfunktion oder Funktionen, die von anderen Anwendungen aufgerufen werden können, und/oder als Cloudrechenmodell. Die Komponenten des der kantengeführten Einfärbung dienenden Systems 106 können als Teil einer eigenständigen Anwendung auf einer PC-Vorrichtung oder einer Mobilvorrichtung implementiert sein. Alternativ oder zusätzlich können die Komponenten des der kantengeführten Einfärbung dienenden Systems 106 in einer beliebigen Anwendung implementiert sein, die eine Erzeugung und Verteilung von Werbeinhalt an Nutzer ermöglicht, darunter unter anderem Anwendungen in der ADOBE® CREATIVE CLOUD®, so beispielsweise ADOBE® PHOTOSHOP®, ADOBE LIGHTROOM®, ADOBE® ILLUSTRATOR®, ADOBE® COLOR und ADOBE® INDESIGN®. „ADOBE“, „ADOBE PHOTOSHOP“, „ADOBE LIGHTROOM“, „ADOBE ILLUSTRATOR“, „ADOBE COLOR“ „ADOBE CREATIVE CLOUD“ und „ADOBE INDESIGN“ sind eingetragene Marken von Adobe Inc. in den Vereinigten Staaten und/oder in anderen Ländern.
  • Wie in 8 gezeigt ist, beinhaltet das der kantengeführten Einfärbung dienende System 106 die das der Farbkantenvorhersage dienende neuronalen Netzwerk trainierende Engine 802. Die das der Farbkantenvorhersage dienende neuronale Netzwerk trainierende Engine 802 trainiert Netzwerkparameter des der Farbkantenvorhersage dienenden neuronalen Netzwerkes unter Nutzung von Trainingsdaten. Insbesondere gibt die das der Farbkantenvorhersage dienende neuronale Netzwerk trainierende Engine 802 Ground-Truth-Graustufendigitalbilder in das der Farbkantenvorhersage dienende neuronale Netzwerk ein, um vorhergesagte Kanten zu generieren. Die das der Farbkantenvorhersage dienende neuronale Netzwerk trainierende Engine 802 vergleicht die vorhergesagten Kanten mit Ground-Truth-Kanten, darunter Ground-Truth-Chrominanzkanten. Zusätzlich kann die das der Farbkantenvorhersage dienende neuronale Netzwerk trainierende Engine 802 ein Verlustmaß oder einen Fehler zwischen den vorhergesagten Kanten und den Ground-Truth-Daten bestimmen, bewerten, identifizieren oder generieren.
  • Das der kantengeführten Einfärbung dienende System 106 beinhaltet zudem die das der Farbkantenvorhersage dienende neuronale Netzwerk anwendende Engine 804. Die das der Farbkantenvorhersage dienende neuronale Netzwerk anwendende Engine 804 generiert eine Farbkantenkarte auf Grundlage des Empfangs eines Graustufendigitalbildes. Die das der Farbkantenvorhersage dienende neuronale Netzwerk anwendende Engine 804 verwaltet die anfänglichen Farbkantenkarten, die anfängliche Farbkanten umfassen, und entsprechende Zuverlässigkeitskennwerte, die von dem der Farbkantenvorhersage dienenden neuronalen Netzwerk generiert werden. Die das der Farbkantenvorhersage dienende neuronale Netzwerk anwendende Engine 804 wendet zusätzlich die NMS und die Schwellenbildung auf die anfängliche Farbkantenkarte an. Entsprechend greift die das der Farbkantenvorhersage dienende neuronale Netzwerk anwendende Engine 804 auf Farbkantenschwellen zu, verwaltet und speichert diese. Zusätzlich wendet die das der Farbkantenvorhersage dienende neuronale Netzwerk anwendende Engine 804 eine Hysterese auf die schwellenbehaftete Kantenkarte an, um die Farbkantenkarte, die Farbkanten umfasst, zu generieren.
  • Das der kantengeführten Einfärbung dienende System 106 beinhaltet zudem den der grafischen Nutzerschnittstelle dienenden Verwalter 806. Der der grafischen Nutzerschnittstelle dienende Verwalter 806 generiert, verwaltet und empfängt eine Eingabe von einer oder mehreren grafischen Schnittstellen. Der der grafischen Nutzerschnittstelle dienende Verwalter 806 generiert an der Nutzerclientvorrichtung 108 die der Einfärbung dienende grafische Nutzerschnittstelle, die die Farbkantenkarte, ein Farbkantenschwellenelement, ein Kantenvorschlagselement und ein dem nutzerseitigen Kantenzeichnen dienendes Element präsentiert. Der der grafischen Nutzerschnittstelle dienende Verwalter 806 empfängt eine Nutzerinteraktion mit einem oder mehreren der erwähnten Elemente und kommuniziert die Nutzerinteraktionen an den Kantenmodifizierungsverwalter 808. Zusätzlich präsentiert der der grafischen Nutzerschnittstelle dienende Verwalter 806 Daten mit Relevanz für die Einfärbung des Graustufenbildes. Der der grafischen Nutzerschnittstelle dienende Verwalter 806 kann das Graustufenbild, das vorhergesagte eingefärbte Bild und andere Daten beispielsweise über die Nutzerclientvorrichtung 108 anzeigen.
  • Der Kantenmodifizierungsverwalter 808 empfängt, implementiert und verwaltet Farbkantenmodifizierungen, um die modifizierte Kantenkarte als Eingabe für das der kantengeführten Einfärbung dienende neuronale Netzwerk zu generieren. Der Kantenmodifizierungsverwalter 808 greift auf Nutzerreaktionen von dem der grafischen Nutzerschnittstelle dienenden Verwalter 806 zu. Insbesondere nimmt der Kantenmodifizierungsverwalter 808 ein Hinzufügen und Entfernen von Kanten durch Bestimmen einer modifizierten Kantenschwelle vor. Zusätzlich fügt der Kantenmodifizierungsverwalter 808 nutzerseitig gezeichnete Kanten und eine oder mehrere ausgewählte Kanten von Luminanzkanten zu der modifizierten Kantenkarte hinzu. Der Kantenmodifizierungsverwalter 808 kann zudem ausgewählte Kanten entfernen, um eine modifizierte Kantenkarte zu generieren.
  • Wie in 8 dargestellt ist, beinhaltet das der kantengeführten Einfärbung dienende System 106 zudem den Farbpunkteingabeverwalter 810. Der Farbpunkteingabeverwalter 810 kommuniziert mit dem der grafischen Nutzerschnittstelle dienenden Verwalter 806, um die Nutzerfarbpunkte, die in das der kantengeführten Einfärbung dienende neuronale Netzwerk eingegeben werden, zu generieren. Der Farbpunkteingabeverwalter 810 greift auf Chrominanzwerte für ausgewählte Farbpunkte, die mit einem beliebigen Graustufenbild verknüpft sind, zu, verwaltet und speichert diese.
  • Die das der kantengeführten Einfärbung dienende neuronale Netzwerk trainierende Engine 812 ist Teil des der kantengeführten Einfärbung dienenden Systems 106. Die das der kantengeführten Einfärbung dienende neuronale Netzwerk trainierende Engine 812 trainiert Netzwerkparameter des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes unter Nutzung von Trainingsdaten. Insbesondere greift die das der kantengeführten Einfärbung dienende neuronale Netzwerk trainierende Engine 812 auf Trainingsdaten, die Ground-Truth-Farbbilder beinhalten, zu, verwaltet und speichert diese. Insbesondere separiert die das der kantengeführten Einfärbung dienende neuronale Netzwerk trainierende Engine 812 ein Ground-Truth-Farbbild in ein Trainingsgraustufenbild und eine Ground-Truth-Farbe. Die das der kantengeführten Einfärbung dienende neuronale Netzwerk trainierende Engine 812 extrahiert Trainingsfarbpunkte und Canny-Kanten aus der Ground-Truth-Farbe und nutzt diese zusätzlich zu dem Trainingsgraustufenbild als Eingabe in das der kantengeführten Einfärbung dienende neuronale Netzwerk. Die das der kantengeführten Einfärbung dienende neuronale Netzwerk trainierende Engine 812 greift auf die trainingsvorhergesagte Farbausgabe des der kantengeführten Einfärbung dienenden Netzwerkes zu, vergleicht die trainingsvorhergesagte Farbausgabe mit der Ground-Truth-Farbe und ändert Netzwerkparameter des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes. Die das der kantengeführten Einfärbung dienende neuronale Netzwerk trainierende Engine 812 kann ein Verlustmaß oder einen Fehler zwischen der trainingsvorhergesagten Farbe und der Ground-Truth-Farbe bestimmen, bewerten, identifizieren oder generieren.
  • Das der kantengeführten Einfärbung dienende System 106 beinhaltet die das der kantengeführten Einfärbung dienende neuronale Netzwerk anwendende Engine 814. Die das der kantengeführten Einfärbung dienende neuronale Netzwerk anwendende Engine 814 generiert eine vorhergesagte Farbe auf Grundlage des Empfangs eines Graustufendigitalbildes, von Nutzerfarbpunkten und/oder einer Nutzerkantenkarte. Die das der kantengeführten Einfärbung dienende neuronale Netzwerk anwendende Engine 814 kommuniziert mit dem der grafischen Nutzerschnittstelle dienenden Verwalter 806, dem Kantenmodifizierungsverwalter 808 und dem Farbpunkteingabeverwalter 810, um auf das Graustufendigitalbild, die Nutzerfarbpunkte und die Nutzerkantenkarteneingaben für das der kantengeführten Einfärbung dienende neuronale Netzwerk zuzugreifen. Die das der kantengeführten Einfärbung dienende neuronale Netzwerk anwendende Engine 814 verwaltet zudem vorhergesagte Farbausgaben des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes. Bei wenigstens einer Ausführungsform kombiniert die das der kantengeführten Einfärbung dienende neuronale Netzwerk anwendende Engine 814 zudem die vorhergesagte Farbe mit dem Graustufendigitalbild, um ein eingefärbtes Bild zu generieren.
  • Das der kantengeführten Einfärbung dienende System 106 beinhaltet den Speicherverwalter 816. Der Speicherverwalter 816 speichert (über eine oder mehrere Speichervorrichtungen) das der Farbkantenvorhersage dienende neuronale Netzwerk 304, das der kantengeführten Einfärbung dienende neuronale Netzwerk 606, die Trainingsdaten 822, Digitalbilder 824 und/oder Farbkanten 826. Das der Farbkantenvorhersage dienende neuronale Netzwerk 304 umfasst das neuronale Netzwerk, das von der das der Farbkantenvorhersage dienende neuronale Netzwerk trainierenden Engine 802 trainiert wird, um eine anfängliche Farbkantenkarte auf Grundlage des Empfangs und der Analyse von Graustufendigitalbildern zu generieren. Der Speicherverwalter 816 speichert dem trainierten Netzwerk zu eigene Parameter des der Farbkantenvorhersage dienenden neuronalen Netzwerkes 304.
  • Der Speicherverwalter 816 speichert zudem das der kantengeführten Einfärbung dienende neuronale Netzwerk 606. Die das der kantengeführten Einfärbung dienende neuronale Netzwerk trainierende Engine 812 trainiert das der kantengeführten Einfärbung dienende neuronale Netzwerk 606, um eine vorhergesagte Farbe auf Grundlage des Empfangs eines Graustufendigitalbildes, von Nutzerfarbpunkten und einer Nutzerkantenkarte zu generieren. Der Speicherverwalter 816 speichert dem trainierten Netzwerk zu eigene Parameter des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 606.
  • Der Speicherverwalter 816 speichert zudem die Trainingsdaten 822. Die Trainingsdaten 822 beinhalten Ground-Truth-Farbbilder, die zum Trainieren des der Farbkantenvorhersage dienenden neuronalen Netzwerkes 304 und des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 606 benutzt werden. Insbesondere beinhalten die Trainingsdaten 822 zum Trainieren des der Farbkantenvorhersage dienenden neuronalen Netzwerkes 304 Chrominanzkarten, Ground-Truth-Graustufendigitalbilder und Ground-Truth-Chrominanzkanten. Zum Trainieren des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes 606 beinhalten die Trainingsdaten 822 Trainingsgraustufenbilder, Trainingsfarbpunkte, Canny-Kanten und eine Ground-Truth-Farbe.
  • Der Speicherverwalter 816 speichert die Digitalbilder 824. Die Digitalbilder 824 umfassen Graustufenbilder, die von einem Nutzer empfangen werden, und entsprechende eingefärbte Bilder, die von dem der kantengeführten Einfärbung dienenden neuronalen Netzwerk 606 generiert werden.
  • Der Speicherverwalter 816 speichert zudem die Farbkanten 826. Die Farbkanten 826 beinhalten Farbkanten von Farbkantenkarten, die beim Generieren der endgültigen eingefärbten Bilder eingesetzt werden. Die Farbkanten 826 beinhalten beispielsweise die anfänglichen Farbkantenkarten und entsprechende Kantenzuverlässigkeitskennwerte, die von dem der Farbkantenvorhersage dienenden neuronalen Netzwerk 304 generiert werden, gleichmäßig dicke Kanten aufweisende Karten und Farbkantenkarten sowie modifizierte Kantenkarten. Des Weiteren speichern die Farbkanten 826 Luminanzkanten, die als vorgeschlagene Kanten benutzt werden.
  • 9 zeigt ein Flussdiagramm eines Verfahrens zum Generieren eines eingefärbten Bildes. Obwohl 9 Vorgänge entsprechend einer Ausführungsform zeigt, können alternative Ausführungsformen beliebige der in 9 gezeigten Vorgänge auslassen, hinzufügen, umordnen und/oder modifizieren. Die Vorgänge von 9 können als Teil eines Verfahrens durchgeführt werden. Alternativ kann ein nichttemporäres computerlesbares Medium Anweisungen umfassen, die bei Ausführung durch einen oder mehrere Prozessoren veranlassen, dass die Rechenvorrichtung die Vorgänge von 9 durchführt. Bei wieder anderen Ausführungsformen kann ein System die Vorgänge von 9 durchführen.
  • Wie in 9 gezeigt ist, beinhaltet die Abfolge von Vorgängen 900 einen Vorgang 910 des Generierens einer Farbkantenkarte unter Nutzung eines trainierten der Farbkantenvorhersage dienenden neuronalen Netzwerkes. Insbesondere umfasst der Vorgang 910 das Generieren einer Farbkantenkarte für ein Graustufendigitalbild unter Nutzung eines der Farbkantenvorhersage dienenden neuronalen Netzwerkes, wobei die Farbkantenkarte Farbkanten umfasst. Der Vorgang 910 umfasst des Weiteren den Vorgang des Generierens der Farbkantenkarte durch Generieren einer anfänglichen Farbkantenkarte, die anfängliche Kanten umfasst, unter Einsatz des der Farbkantenvorhersage dienenden neuronalen Netzwerkes; des Einsetzens des der Farbkantenvorhersage dienenden neuronalen Netzwerkes zum Bestimmen eines Zuverlässigkeitskennwertes für jede der anfänglichen Kanten; und des auf Grundlage eines Bestimmens dessen, dass ein Zuverlässigkeitskennwert, der einer anfänglichen Kante der anfänglichen Kanten zugeordnet ist, einer Farbkantenschwelle genügt, erfolgenden Einbeziehens der anfänglichen Kante in die Farbkantenkarte als Farbkante der Farbkanten. Der Vorgang 910 umfasst des Weiteren den Vorgang des Generierens der Farbkantenkarte unter Einsatz einer Nichtmaximumsunterdrückung, um die Farbkantenkarte aus der anfänglichen Farbkantenkarte zu generieren.
  • Die Abfolge von Vorgängen 900 beinhaltet einen Vorgang 920 des zur Anzeige erfolgenden Bereitstellens der Farbkantenkarte, eines Farbpunkteingabeelementes und des Graustufendigitalbildes. Insbesondere umfasst den Vorgang 920 ein zur Anzeige an einer Clientvorrichtung erfolgendes Bereitstellen einer der Einfärbung dienenden grafischen Nutzerschnittstelle, die die Farbkantenkarte, ein Farbpunkteingabeelement und das Graustufendigitalbild umfasst.
  • Die Abfolge von Vorgängen 900 beinhaltet zudem einen Vorgang 930 des Generierens eines eingefärbten Bildes unter Nutzung eines trainierten der kantengeführten Einfärbung dienenden neuronalen Netzwerkes. Insbesondere umfasst der Vorgang 930 ein Generieren eines eingefärbten Bildes unter Nutzung eines der kantengeführten Einfärbung dienenden neuronalen Netzwerkes auf Grundlage des Graustufendigitalbildes, der Farbkantenkarte und einer Nutzerinteraktion mit dem Farbpunkteingabeelement.
  • Bei wenigstens einer Ausführungsform umfasst der Vorgang 930 zudem die zusätzlichen Vorgänge des Generierens eines Graustufenkanals zur Wiedergabe des Graustufendigitalbildes, eines Farbkantenkartenkanals zur Wiedergabe der Farbkantenkarte und eines Farbpunktkanals zur Wiedergabe der Nutzereingabe; des Verarbeitens des Graustufenkanals und des Farbpunktkanals unter Einsatz des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes zum Generieren eines ersten Merkmalsvektors über eine erste Schicht des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes; des Einbindens des Farbkantenkartenkanals in den ersten Merkmalsvektor zum Generieren eines kantenkartenmodifizierten Merkmalsvektors; und des Verarbeitens des kantenkartenmodifizierten Merkmalsvektors unter Einsatz einer zweiten Schicht des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes.
  • Die Abfolge von Vorgängen 900 beinhaltet einen Vorgang 940 des Bereitstellens des eingefärbten Bildes zur Anzeige. Insbesondere umfasst den Vorgang 940 ein Bereitstellen des eingefärbten Bildes zur Anzeige über die der Einfärbung dienende grafische Nutzerschnittstelle.
  • Bei wenigstens einer Ausführungsform beinhaltet die Abfolge von Vorgängen 900 den zusätzlichen Vorgang des Identifizierens einer Nutzerinteraktion mit dem Farbkantenmodifizierungselement über die der Einfärbung dienende grafische Nutzerschnittstelle; des Generierens einer modifizierten Kantenkarte durch Modifizieren von Farbkanten auf Grundlage der Nutzerinteraktion mit dem Farbkantenmodifizierungselement.
  • Beinhalten kann die Abfolge von Vorgängen 900 zudem die zusätzlichen Vorgänge des Bereitstellens des eingefärbten Bildes zur Anzeige über die der Einfärbung dienende grafische Nutzerschnittstelle; des Generierens einer modifizierten Kantenkarte auf Grundlage einer Nutzerinteraktion mit den Farbkantenmodifizierungselementen; und des Generierens eines modifizierten eingefärbten Bildes unter Nutzung des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes auf Grundlage des Graustufendigitalbildes, der modifizierten Kantenkarte und der Nutzerinteraktion mit dem Farbpunkteingabeelement. Des Weiteren umfassen die Farbkantenmodifizierungselemente bei wenigstens einer Ausführungsform ein Farbkantenschwellenelement; dabei umfassen die zusätzlichen Vorgänge des Weiteren ein Bestimmen einer modifizierten Kantenschwelle auf Grundlage einer Nutzerinteraktion mit dem Farbkantenschwellenelement; und ein in die modifizierte Kantenkarte erfolgendes Einbeziehen eines modifizierten Satzes von Farbkanten auf Grundlage der modifizierten Kantenschwelle.
  • Zusätzlich umfassen die Farbkantenmodifizierungselemente bei wenigstens einer Ausführungsform ein Kantenvorschlagselement; dabei umfassen die zusätzlichen Vorgänge des Weiteren ein Generieren der modifizierten Kantenkarte durch: auf Grundlage einer Nutzerinteraktion mit dem Kantenvorschlagselement erfolgendes Generieren von Luminanzkanten des Graustufendigitalbildes unter Einsatz eines Canny-Kantendetektors; Präsentieren der Luminanzkanten über die der Einfärbung dienende grafische Nutzerschnittstelle; und auf Grundlage einer Nutzerauswahl einer oder mehrerer Kanten der Luminanzkanten erfolgendes Einbeziehen der einen oder der mehreren Kanten in die modifizierte Kantenkarte.
  • Bei wenigstens einer Ausführungsform umfassen die Farbkantenmodifizierungselemente ein dem nutzerseitigen Kantenzeichnen dienendes Element; dabei umfassen die zusätzlichen Vorgänge des Weiteren ein Generieren der modifizierten Kantenkarte durch: auf Grundlage einer Nutzerinteraktion mit dem dem nutzerseitigen Kantenzeichnen dienenden Element erfolgendes Generieren einer nutzerseitig gezeichneten Kante; und Einbeziehen der nutzerseitig gezeichneten Kante in die modifizierte Kantenkarte.
  • Zusätzlich zu den vorbeschriebenen Vorgängen (oder alternativ hierzu) beinhaltet die Abfolge von Vorgängen 900 bei einigen Ausführungsformen einen Schritt des Nutzens von Farbkanten zum Generieren eines eingefärbten Bildes aus dem Graustufendigitalbild und den Farbpunkten. Umfassen können die anhand 3, 4B, 5 und 6B beschriebenen Vorgänge beispielsweise die entsprechenden Vorgänge (oder eine solche Struktur) zum Durchführen eines Schrittes zur Nutzung von Farbkanten zum Generieren eines eingefärbten Bildes aus dem Graustufendigitalbild und den Farbpunkten.
  • Ausführungsformen der vorliegenden Offenbarung können einen Spezialzweck- oder Allzweckcomputer, der Computerhardware beinhaltet, umfassen oder einsetzen, so beispielsweise einen oder mehrere Prozessoren und einen Systemspeicher, wie nachstehend noch detaillierter beschrieben wird. Ausführungsformen innerhalb des Umfanges der vorliegenden Offenbarung beinhalten zudem physische bzw. physikalische und andere computerlesbare Medien zum Tragen oder Speichern von computerausführbaren Anweisungen und/oder Datenstrukturen. Insbesondere können ein oder mehrere der hier beschriebenen Prozesse wenigstens teilweise als Anweisungen implementiert sein, die auf einem nichttemporären computerlesbaren Medium verkörpert und durch eine oder mehrere Rechenvorrichtungen (beispielsweise beliebige der hier beschriebenen Mediencontentzugriffsvorrichtungen) ausführbar sind. Allgemein empfängt ein Prozessor (beispielsweise ein Mikroprozessor) Anweisungen von einem nichttemporären computerlesbaren Medium (beispielsweise einem Speicher) und führt diese Anweisungen aus, wodurch ein oder mehrere Prozesse, darunter einer oder mehrere der hier beschriebenen Prozesse, durchgeführt werden.
  • Computerlesbare Medien können beliebige verfügbare Medien sein, auf die ein Allzweck- oder Spezialzweckcomputersystem zugreifen kann. Computerlesbare Medien, die computerausführbare Anweisungen speichern, sind nichttemporäre computerlesbare Speichermedien (Vorrichtungen). Computerlesbare Medien, die computerausführbare Anweisungen tragen, sind Übertragungsmedien. Beispiels- und nicht beschränkungshalber können Ausführungsformen der Offenbarung wenigstens zwei eindeutig verschiedene Arten von computerlesbaren Medien umfassen, nämlich nichttemporäre computerlesbare Speichermedien (Vorrichtungen) und Übertragungsmedien.
  • Nichttemporäre computerlesbare Speichermedien (Vorrichtungen) beinhalten RAM, ROM, EEPROM, CD-ROM, SSDs (Solid State Drives) (beispielsweise auf Grundlage eines RAM), einen Flashspeicher, einen Phasenänderungsspeicher (PCM), andere Arten von Memory bzw. Speicher, einen anderen optischen Plattenspeicher, einen Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder ein beliebiges anderes Medium, das zum Speichern von gewünschten Programmcodemitteln in Form von computerausführbaren Anweisungen oder Datenstrukturen genutzt werden kann und auf das ein Allzweck- oder Spezialzweckcomputer zugreifen kann.
  • Ein „Netzwerk“ ist als ein oder mehrere Datenlinks definiert, die den Transport von elektronischen Daten zwischen Computersystemen und/oder Modulen und/oder anderen elektronischen Vorrichtungen ermöglichen. Wird Information über ein Netzwerk oder eine andere Kommunikationsverbindung (entweder festverdrahtet, drahtlos oder eine Kombination aus festverdrahtet oder drahtlos) an einen Computer übertragen oder für diesen bereitgestellt, so betrachtet der Computer die Verbindung in der Praxis als Übertragungsmedium. Übertragungsmedien können ein Netzwerk und/oder Datenlinks beinhalten, die zum Tragen von gewünschten Programmcodemitteln in Form von computerausführbaren Anweisungen oder Datenstrukturen genutzt werden können und auf die ein Allzweck- oder Spezialzweckcomputer zugreifen kann. Kombinationen des Vorbeschriebenen sollen innerhalb des Umfanges der computerlesbaren Medien beinhaltet sein.
  • Beim Verwirklichen verschiedener Computersystemkomponenten können Programmcodemittel in Form von computerausführbaren Anweisungen oder Datenstrukturen des Weiteren automatisch von Übertragungsmedien an nichttemporäre computerlesbare Speichermedien (Vorrichtungen) (oder umgekehrt) übertragen werden. Computerausführbare Anweisungen oder Datenstrukturen, die über ein Netzwerk oder einen Datenlink empfangen werden, können beispielsweise in einem RAM innerhalb eines Netzwerkschnittstellenmoduls (beispielsweise eines „NIC“) gepuffert und sodann gegebenenfalls an den Computersystem-RAM und/oder an weniger flüchtige Computerspeichermedien (Vorrichtungen) auf einem Computersystem übertragen werden. Es sollte daher einsichtig sein, dass nichttemporäre computerlesbare Speichermedien (Vorrichtungen) in Computersystemkomponenten beinhaltet sein können, die ebenfalls (oder sogar primär) Übertragungsmedien einsetzen.
  • Computerausführbare Anweisungen umfassen beispielsweise Anweisungen und Daten, die bei Ausführung durch einen Prozessor veranlassen, dass ein Allzweckcomputer, ein Spezialzweckcomputer oder eine Spezialzweckverarbeitungsvorrichtung eine gewisse Funktion oder Gruppe von Funktionen übernehmen. Bei einigen Ausführungsformen werden computerausführbare Anweisungen auf einem Allzweckcomputer ausgeführt, um den Allzweckcomputer in einen Spezialzweckcomputer zu verwandeln, der Elemente der Offenbarung implementiert. Die computerausführbaren Anweisungen können beispielsweise Binaries, Anweisungen in einem Zwischenformat wie Assemblersprache oder sogar Quellcode sein. Obwohl der Erfindungsgegenstand in einer Sprache beschrieben worden ist, die für strukturelle Merkmale und/oder methodologische Vorgänge spezifisch ist, sollte einsichtig sein, dass der in den beigefügten Ansprüchen definierte Erfindungsgegenstand nicht unbedingt auf die vorbeschriebenen Merkmale oder Vorgänge beschränkt ist. Vielmehr sind die beschriebenen Merkmale und Vorgänge als exemplarische Formen der Implementierung der Ansprüche offenbart.
  • Einem Fachmann auf dem Gebiet erschließt sich, dass die Offenbarung auch in Netzwerkrechenumgebungen mit vielen Arten von Computersystemkonfigurationen praktisch umgesetzt werden kann, darunter PCs, Desktopcomputer, Laptopcomputer, Nachrichtenprozessoren, Handvorrichtungen, Multiprozessorensysteme, mikroprozessorbasierte oder programmierbare Geräte der Unterhaltungselektronik, Netzwerk-PCs, Minicomputer, Mainframecomputer, Mobiltelefone, PDAs, Tablets, Pager, Router, Switches bzw. Schalter und dergleichen. Praktisch umgesetzt werden kann die Offenbarung auch in verteilten Systemumgebungen, wo lokale und entfernte (remote) Computersysteme, die (entweder durch festverdrahtete Datenlinks, drahtlose Datenlinks oder durch eine Kombination aus festverdrahteten und drahtlosen Datenlinks) über ein Netzwerk verbunden sind, gleichermaßen Aufgaben ausführen. In einer verteilten Systemumgebung können Programmmodule sowohl in lokalen wie auch entfernten (remote) Memoryspeichervorrichtungen befindlich sein.
  • Ausführungsformen der vorliegenden Offenbarung können zudem in Cloudrechenumgebungen implementiert sein. In der vorliegenden Beschreibung ist das „Cloudcomputing bzw. Cloudrechnen“ als Modell definiert, das einen On-Demand-Netzwerkzugriff auf einen geteilten Vorrat von konfigurierbaren Rechenressourcen ermöglicht. Cloudcomputing bzw. Cloudrechnen kann beispielsweise auf einem Marktplatz eingesetzt werden, um einen allgegenwärtigen und bequemen On-Demand-Zugriff auf den geteilten Vorrat von konfigurierbaren Rechenressourcen anzubieten. Der geteilte Vorrat von konfigurierbaren Rechenressourcen kann über eine Virtualisierung schnell bereitgestellt und unter geringem Verwaltungsaufwand oder mit geringer Interaktion eines Dienstanbieters freigegeben und sodann entsprechend skaliert werden.
  • Ein Cloudrechenmodell kann aus verschiedenen Charakteristiken bzw. Kenngrößen zusammengesetzt sein, so beispielsweise On-Demand Self-Service, Broad Network Access, Resource Pooling, Rapid Elasticity, Measured Service und dergleichen. Ein Cloudrechenmodell kann zudem verschiedene Dienstmodelle anbieten, so beispielsweise „Software as a Service“ („SaaS“), „Platform as a Service“ („PaaS“) und „Infrastructure as a Service‟ („laaS“). Ein Cloudrechenmodell kann zudem unter Nutzung verschiedener Einsatzmodelle eingesetzt werden, so beispielsweise Private Cloud, Community Cloud, Public Cloud, Hybrid Cloud und dergleichen. In der vorliegenden Beschreibung und in den Ansprüchen ist eine „Cloudrechenumgebung“ eine Umgebung, in der das Cloudrechnen bzw. Cloudcomputing eingesetzt wird.
  • 10 zeigt ein Blockdiagramm einer Rechenvorrichtung 1000, die dafür konfiguriert sein kann, einen oder mehrere der vorbeschriebenen Prozesse durchzuführen. Es sollte einsichtig sein, dass eine oder mehrere Rechenvorrichtungen, so beispielsweise die Rechenvorrichtung 1000, das der kantengeführten Einfärbung dienende System 106 und das Bildbearbeitungssystem 104 implementieren können. Wie in 10 gezeigt ist, kann die Rechenvorrichtung 1000 einen Prozessor 1002, einen Memory 1004, eine Speichervorrichtung 1006, eine I/O-Schnittstelle 1008 und eine Kommunikationsschnittstelle 1010 umfassen, die kommunikationstechnisch mittels einer Art von Kommunikationsinfrastruktur 1012 verbunden sein können. Bei gewissen Ausführungsformen kann die Rechenvorrichtung 1000 weniger oder mehr Komponenten als die in 10 gezeigten beinhalten. Komponenten der Rechenvorrichtung 1000, die in 10 gezeigt sind, werden nunmehr detaillierter beschrieben.
  • Bei einer oder mehreren Ausführungsformen beinhaltet der Prozessor 1002 Hardware zum Ausführen von Anweisungen, so beispielsweise von solchen, die ein Computerprogramm bilden. Beispiels- und nicht beschränkungshalber kann der Prozessor 1002 zum Ausführen von Anweisungen zum dynamischen Modifizieren von Arbeitsabläufen die Anweisungen aus einem internen Register, einem internen Cache, dem Speicher 1004 oder der Speichervorrichtung 1006 abrufen (oder holen) sowie dekodieren und ausführen. Der Memory 1004 kann ein flüchtiger oder nichtflüchtiger Memory sein, der zum Speichern von Daten, Metadaten und Programmen zur Ausführung durch den Prozessor / die Prozessoren benutzt wird. Die Speichervorrichtung 1006 beinhaltet einen Speicher, so beispielsweise eine Festplatte, einen Flash-Plattenspeicher oder eine andere digitale Speichervorrichtung zum Speichern von Daten oder Anweisungen zur Durchführung der hier beschriebenen Verfahren.
  • Die I/O-Schnittstelle 1008 ermöglicht einem Nutzer, eine Eingabe für eine Rechenvorrichtung 1000 bereitzustellen, eine Ausgabe von dieser zu empfangen und Daten auf andere Weise an diese zu transferieren und von dieser zu empfangen. Beinhalten kann die I/O-Schnittstelle 1008 eine Maus, ein Tastenfeld oder eine Tastatur, einen berührungsempfindlichen Schirm, eine Kamera, einen optischen Scanner, eine Netzwerkschnittstelle, ein Modem, andere bekannte I/O-Vorrichtungen oder eine Kombination aus derartigen I/O-Schnittstellen. Die I/O-Schnittstelle 1008 kann eine oder mehrere Vorrichtungen zum Präsentieren einer Ausgabe gegenüber einem Nutzer beinhalten, darunter unter anderem eine Graphics Engine, eine Anzeige (beispielsweise einen Anzeigebildschirm), eine oder mehrere Ausgabetreiber (beispielsweise Anzeigetreiber), einen oder mehrere Audiolautsprecher und eine oder mehrere Audiotreiber. Bei gewissen Ausführungsformen ist die I/O-Schnittstelle 1008 dafür konfiguriert, grafische Daten für eine Anzeige zur Präsentation gegenüber einem Nutzer bereitzustellen. Die grafischen Daten können eine oder mehrere grafische Nutzerschnittstellen und/oder beliebigen anderen grafischen Content, so er einer bestimmten Implementierung dienlich ist, darstellen.
  • Die Kommunikationsschnittstelle 1010 kann Hardware, Software oder beides beinhalten. In jedem Fall kann die Kommunikationsschnittstelle 1010 eine oder mehrere Schnittstellen zur Kommunikation (beispielsweise zur paketbasierten Kommunikation) zwischen der Rechenvorrichtung 1000 und einer oder mehreren anderen Rechenvorrichtungen oder Netzwerken bereitstellen. Bei einem Beispiel und nicht im Sinne einer Beschränkung kann die Kommunikationsschnittstelle 1010 einen Netzwerkschnittstellencontroller (NIC) oder einen Netzwerkadapter zur Kommunikation mit einem Ethernet oder einem anderen drahtbasierten Netzwerk oder einen Drahtlos-NIC (WNIC) oder einen Drahtlosadapter zur Kommunikation mit einem Drahtlosnetzwerk, so beispielsweise einem Wi-Fi, beinhalten.
  • Zusätzlich kann die Kommunikationsschnittstelle 1010 Kommunikationen mit verschiedenen Typen von verdrahteten oder drahtlosen Netzwerken vereinfachen. Die Kommunikationsschnittstelle 1010 kann Kommunikationen zudem unter Nutzung verschiedener Protokolle vereinfachen. Die Kommunikationsinfrastruktur 1012 kann zudem Hardware, Software oder beides beinhalten, die Komponenten der Rechenvorrichtung 1000 miteinander gekoppelt. Die Kommunikationsschnittstelle 1010 kann beispielsweise ein oder mehrere Netzwerke und/oder Protokolle nutzen, um zu ermöglichen, dass mehrere Rechenvorrichtungen, die durch eine bestimmte Infrastruktur verbunden sind, miteinander kommunizieren, um einen oder mehrere Aspekte der hier beschriebenen Prozesse durchzuführen. Darstellungshalber kann der Digitalcontentkampagnenverwaltungsprozess ermöglichen, dass mehrere Vorrichtungen (beispielsweise eine Clientvorrichtung und Servervorrichtungen) Information unter Nutzung verschiedener Kommunikationsnetzwerke und Protokolle zum Teilen von Information, so beispielsweise digitale Nachrichten, Nutzerinteraktionsinformation, Beteiligungsmetriken und Kampagnenverwaltungsressourcen, austauschen.
  • In der vorstehenden Beschreibung ist die Erfindung anhand spezifischer exemplarischer Ausführungsformen beschrieben worden. Verschiedene Ausführungsformen und Aspekte der vorliegenden Offenbarung/Offenbarungen werden anhand der hier erläuterten Details beschrieben, wobei die begleitende Zeichnung verschiedene Ausführungsformen verbildlicht. Die vorstehende Beschreibung und die Zeichnung sind für die Erfindung illustrativ und sollen nicht als erfindungsbeschränkend gedeutet werden. Es sind zahlreiche spezifische Details beschrieben worden, um ein eingehendes Verständnis der verschiedenen Ausführungsformen der vorliegenden Offenbarung zu ermöglichen.
  • Die vorliegende Offenbarung kann in anderen spezifischen Formen verkörpert sein, ohne von ihrem Wesen oder ihren wesentlichen Eigenschaften abzugehen. Die beschriebenen Ausführungsformen sind in jeder Hinsicht nur als illustrativ und nicht als restriktiv zu betrachten. Die hier beschriebenen Verfahren können beispielsweise mit weniger oder mehr Schritten/Vorgängen durchgeführt werden, oder es können die Schritte/Vorgänge in anderen Reihenfolgen durchgeführt werden. Zusätzlich können die hier beschriebenen Schritte/Vorgänge wiederholt oder parallel zueinander oder parallel zu anderen Versionen derselben oder ähnlicher Schritte/Vorgänge durchgeführt werden. Der Umfang der vorliegenden Erfindung ist daher durch die beigefügten Ansprüche und nicht durch die vorstehende Beschreibung angegeben. Alle Änderungen, die der Bedeutung und dem Äquivalenzbereich der Ansprüche entsprechen, sollen in ihrem Umfang mit umfasst sein.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • „Colorful Image Colorization‟ von Richard Zhang, Phillip Isola und Alexei A. Efros, ECCV 2016, 649-666 (2016) [0040]
    • „Real-Time User-Guided Image Colorization with Learned Deep Priors‟ von Richard Zhang, Jun-Yan Zhu, Phillip Isola, Xinyang Geng, Angela S. Lin und Alexei A. Efros, SIGGRAPH 2017 [0040]

Claims (20)

  1. Nichttemporäres bzw. nicht-transitorisches computerlesbares Medium zum Generieren von eingefärbten Bildern, wobei das nichttemporäre computerlesbare Medium Anweisungen umfasst, die bei Ausführung durch wenigstens einen Prozessor eine Rechenvorrichtung veranlassen zum: Generieren einer Farbkantenkarte für ein Graustufendigitalbild unter Nutzung eines der Farbkantenvorhersage dienenden neuronalen Netzwerkes, wobei die Farbkantenkarte Farbkanten umfasst; zur Anzeige an einer Clientvorrichtung erfolgenden Bereitstellen einer der Einfärbung dienenden grafischen Nutzerschnittstelle, die die Farbkantenkarte, ein Farbpunkteingabeelement und das Graustufendigitalbild umfasst; Generieren eines eingefärbten Bildes unter Nutzung eines der kantengeführten Einfärbung dienenden neuronalen Netzwerkes auf Grundlage des Graustufendigitalbildes, der Farbkantenkarte und einer Nutzerinteraktion mit dem Farbpunkteingabeelement; und Bereitstellen des eingefärbten Bildes zur Anzeige über die der Einfärbung dienende grafische Nutzerschnittstelle.
  2. Nichttemporäres computerlesbares Medium nach Anspruch 1, des Weiteren umfassend Anweisungen, die bei Ausführung durch den wenigstens einen Prozessor die Rechenvorrichtung veranlassen zum: zur Anzeige als Teil der der Einfärbung dienenden grafischen Nutzerschnittstelle erfolgenden Bereitstellen der Farbkantenkarte zusammen mit Farbkantenmodifizierungselementen; Generieren einer modifizierten Kantenkarte auf Grundlage einer Nutzerinteraktion mit den Farbkantenmodifizierungselementen; und Generieren eines modifizierten eingefärbten Bildes unter Nutzung des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes auf Grundlage des Graustufendigitalbildes, der modifizierten Kantenkarte und der Nutzerinteraktion mit dem Farbpunkteingabeelement.
  3. Nichttemporäres computerlesbares Medium nach Anspruch 2, des Weiteren umfassend Anweisungen, die bei Ausführung durch den wenigstens einen Prozessor die Rechenvorrichtung veranlassen zum Generieren der Farbkantenkarte durch: Generieren einer anfänglichen Farbkantenkarte, die anfängliche Kanten umfasst, unter Einsatz des der Farbkantenvorhersage dienenden neuronalen Netzwerkes; Einsetzen des der Farbkantenvorhersage dienenden neuronalen Netzwerkes zum Bestimmen eines Zuverlässigkeitskennwertes für jede der anfänglichen Kanten; und auf Grundlage einer Bestimmung dessen, dass ein Zuverlässigkeitskennwert, der einer anfänglichen Kante der anfänglichen Kanten zugeordnet ist, einer Farbkantenschwelle genügt, erfolgendes Einbeziehen der anfänglichen Kante in die Farbkantenkarte als Farbkante der Farbkanten.
  4. Nichttemporäres computerlesbares Medium nach Anspruch 3, wobei die Farbkantenmodifizierungselemente ein Farbkantenschwellenelement umfassen, und des Weiteren umfassend Anweisungen, die bei Ausführung durch den wenigstens einen Prozessor die Rechenvorrichtung veranlassen zum Generieren der modifizierten Kantenkarte durch: Bestimmen einer modifizierten Kantenschwelle auf Grundlage einer Nutzerinteraktion mit dem Farbkantenschwellenelement; und in die modifizierte Kantenkarte erfolgendes Einbeziehen eines modifizierten Satzes von Farbkanten auf Grundlage der modifizierten Kantenschwelle.
  5. Nichttemporäres computerlesbares Medium nach einem der Ansprüche 2 bis 4, wobei die Farbkantenmodifizierungselemente ein Kantenvorschlagselement umfassen, und des Weiteren umfassend Anweisungen, die bei Ausführung durch den wenigstens einen Prozessor die Rechenvorrichtung veranlassen zum Generieren der modifizierten Kantenkarte durch: auf Grundlage einer Nutzerinteraktion mit dem Kantenvorschlagselement erfolgendes Generieren von Luminanzkanten des Graustufendigitalbildes unter Einsatz eines Canny-Kantendetektors; Präsentieren der Luminanzkanten über die der Einfärbung dienende grafische Nutzerschnittstelle; und auf Grundlage einer Nutzerauswahl einer oder mehrerer Kanten der Luminanzkanten erfolgendes Einbeziehen der einen oder der mehreren Kanten in die modifizierte Kantenkarte.
  6. Nichttemporäres computerlesbares Medium nach Anspruch 4 oder 5, wobei die Farbkantenmodifizierungselemente ein dem nutzerseitigen Kantenzeichnen dienendes Element umfassen, und des Weiteren umfassend Anweisungen, die bei Ausführung durch den wenigstens einen Prozessor die Rechenvorrichtung veranlassen zum Generieren der modifizierten Kantenkarte durch: auf Grundlage einer Nutzerinteraktion mit dem dem nutzerseitigen Kantenzeichnen dienenden Element erfolgendes Generieren einer nutzerseitig gezeichneten Kante; und Einbeziehen der nutzerseitig gezeichneten Kante in die modifizierte Kantenkarte.
  7. Nichttemporäres computerlesbares Medium nach einem der Ansprüche 3 bis 6, des Weiteren umfassend Anweisungen, die bei Ausführung durch den wenigstens einen Prozessor die Rechenvorrichtung veranlassen zum: Generieren der Farbkantenkarte unter Einsatz einer Nichtmaximumsunterdrückung zum Generieren der Farbkantenkarte aus der anfänglichen Farbkantenkarte.
  8. Nichttemporäres computerlesbares Medium nach einem der Ansprüche 1 bis 7, des Weiteren umfassend Anweisungen, die bei Ausführung durch den wenigstens einen Prozessor die Rechenvorrichtung veranlassen zum Trainieren des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes durch: Anwenden eines Canny-Kantendetektors auf eine Ground-Truth-Farbe entsprechend einem Ground-Truth-Farbbild zum Generieren von Canny-Kanten; Anwenden des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes auf ein Trainingsgraustufenbild entsprechend dem Ground-Truth-Farbbild, Trainingsfarbpunkten und den Canny-Kanten; Einsetzen des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes zum Generieren einer vorhergesagten Farbe; und Modifizieren von Parametern des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes durch Vergleichen der vorhergesagten Farbe mit der Ground-Truth-Farbe.
  9. Nichttemporäres computerlesbares Medium nach einem der Ansprüche 1 bis 8, des Weiteren umfassend Anweisungen, die bei Ausführung durch den wenigstens einen Prozessor die Rechenvorrichtung veranlassen zum Generieren des eingefärbten Bildes durch: Generieren eines Graustufenkanals zur Wiedergabe des Graustufendigitalbildes, eines Farbkantenkartenkanals zur Wiedergabe der Farbkantenkarte und eines Farbpunktkanals zur Wiedergabe der Nutzereingabe; Verarbeiten des Graustufenkanals und des Farbpunktkanals unter Einsatz des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes zum Generieren eines ersten Merkmalsvektors über eine erste Schicht des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes; Verketten bzw. Einbinden des Farbkantenkartenkanals in den ersten Merkmalsvektor zum Generieren eines kantenkartenmodifizierten Merkmalsvektors; und Verarbeiten des kantenkartenmodifizierten Merkmalsvektors unter Einsatz einer zweiten Schicht des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes.
  10. System, umfassend: eine oder mehrere Speichervorrichtungen zum Speichern eines Graustufendigitalbildes, eines der Farbkantenvorhersage dienenden neuronalen Netzwerkes und eines der kantengeführten Einfärbung dienenden neuronalen Netzwerkes; wenigstens einen Server, der dafür konfiguriert ist, das System zu veranlassen zum: Nutzen des der Farbkantenvorhersage dienenden neuronalen Netzwerkes zum Generieren einer Farbkantenkarte, die Farbkanten umfasst, für das Graustufendigitalbild; zur Anzeige an einer Clientvorrichtung erfolgenden Bereitstellen einer der Einfärbung dienenden grafischen Nutzerschnittstelle, die die Farbkantenkarte, ein Farbpunkteingabeelement und ein Farbkantenmodifizierungselement zum Modifizieren der Farbkanten umfasst; Identifizieren einer Nutzerinteraktion mit dem Farbkantenmodifizierungselement über die der Einfärbung dienende grafische Nutzerschnittstelle; Generieren einer modifizierten Kantenkarte durch Modifizieren von Farbkanten auf Grundlage der Nutzerinteraktion mit dem Farbkantenmodifizierungselement; und unter Nutzung des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes erfolgenden Generieren eines eingefärbten Bildes auf Grundlage der modifizierten Kantenkarte und einer Nutzerinteraktion mit dem Farbpunkteingabeelement.
  11. System nach Anspruch 10, des Weiteren umfassend Anweisungen, die bei Ausführung durch den wenigstens einen Server das System veranlassen zum Generieren der Farbkantenkarte durch: Generieren einer anfänglichen Farbkantenkarte, die anfängliche Kanten umfasst, unter Einsatz des der Farbkantenvorhersage dienenden neuronalen Netzwerkes; Einsetzen des der Farbkantenvorhersage dienenden neuronalen Netzwerkes zum Bestimmen eines Zuverlässigkeitskennwertes für jede der anfänglichen Kanten; und auf Grundlage einer Bestimmung dessen, dass ein Zuverlässigkeitskennwert, der einer anfänglichen Kante der anfänglichen Kanten zugeordnet ist, einer Farbkantenschwelle genügt, erfolgendes Einbeziehen der anfänglichen Kante in die Farbkantenkarte als Farbkante der Farbkanten.
  12. System nach Anspruch 11, wobei das Farbkantenmodifizierungselement ein Farbkantenschwellenelement umfasst, und des Weiteren umfassend Anweisungen, die bei Ausführung durch den wenigstens einen Server das System veranlassen zum Generieren der modifizierten Kantenkarte durch: Bestimmen einer modifizierten Kantenschwelle auf Grundlage einer Nutzerinteraktion mit dem Farbkantenschwellenelement; und in die modifizierte Kantenkarte erfolgendes Einbeziehen eines modifizierten Satzes von Farbkanten auf Grundlage der modifizierten Kantenschwelle.
  13. System nach einem der Ansprüche 10 bis 12, wobei das Farbkantenmodifizierungselement ein Kantenvorschlagselement umfasst, und des Weiteren umfassend Anweisungen, die bei Ausführung durch den wenigstens einen Server das System veranlassen zum Generieren der modifizierten Kantenkarte durch: auf Grundlage einer Nutzerinteraktion mit dem Kantenvorschlagselement erfolgendes Generieren von Luminahzkanten des Graustufendigitalbildes unter Einsatz eines Canny-Kantendetektors; Präsentieren der Luminanzkanten über die der Einfärbung dienende grafische Nutzerschnittstelle; und auf Grundlage einer Nutzerauswahl einer oder mehrerer Kanten der Luminanzkanten erfolgendes Einbeziehen der einen oder der mehreren Kanten in die modifizierte Kantenkarte.
  14. System nach Anspruch 12 oder 13, wobei das Farbkantenmodifizierungselement ein dem nutzerseitigen Kantenzeichnen dienendes Element umfasst, und des Weiteren umfassend Anweisungen, die bei Ausführung durch den wenigstens einen Server das System veranlassen zum Generieren der modifizierten Kantenkarte durch: auf Grundlage einer Nutzerinteraktion mit dem dem nutzerseitigen Kantenzeichnen dienenden Element erfolgendes Generieren einer nutzerseitig gezeichneten Kante; und Einbeziehen der nutzerseitig gezeichneten Kante in die modifizierte Kantenkarte.
  15. System nach einem der Ansprüche 11 bis 14, des Weiteren umfassend Anweisungen, die bei Ausführung durch den wenigstens einen Server das System veranlassen zum Generieren der Farbkantenkarte durch: Einsetzen einer Nichtmaximumsunterdrückung zum Generieren der Farbkantenkarte aus der anfänglichen Farbkantenkarte.
  16. System nach einem der Ansprüche 10 bis 15, des Weiteren umfassend Anweisungen, die bei Ausführung durch den wenigstens einen Server das System veranlassen zum Trainieren des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes durch: Anwenden eines Canny-Kantendetektors auf eine Ground-Truth-Farbe entsprechend einem Ground-Truth-Farbbild zum Generieren von Canny-Kanten; Anwenden des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes auf ein Trainingsgraustufenbild entsprechend dem Ground-Truth-Farbbild, Trainingsfarbpunkten und den Canny-Kanten; Einsetzen des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes zum Generieren einer vorhergesagten Farbe; und Modifizieren von Parametern des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes durch Vergleichen der vorhergesagten Farbe mit der Ground-Truth-Farbe.
  17. System nach einem der Ansprüche 10 bis 16, des Weiteren umfassend Anweisungen, die bei Ausführung durch den wenigstens einen Server das System veranlassen zum Generieren des eingefärbten Bildes durch: Verketten bzw. Einbinden der Farbkantenkarte in mehrere Schichten des der kantengeführten Einfärbung dienenden neuronalen Netzwerkes.
  18. Computerimplementiertes Verfahren zum Generieren von farblich ver- bzw. nachgebesserten Digitalbildern in einer Digitalmedienumgebung zum Bearbeiten und Generieren von Digitalbildern, umfassend: Identifizieren eines Graustufendigitalbildes und einer Nutzereingabe von Farbpunkten entsprechend dem Graustufendigitalbild; Durchführen eines Schrittes zum Nutzen von Farbkanten zum Generieren eines eingefärbten Bildes aus dem Graustufendigitalbild und den Farbpunkten; und Bereitstellen des eingefärbten Bildes zur Anzeige für eine Clientvorrichtung.
  19. Verfahren nach Anspruch 18, des Weiteren umfassend ein Identifizieren der Nutzereingabe von Farbpunkten durch: zur Anzeige an der Clientvorrichtung erfolgendes Bereitstellen einer der Einfärbung dienenden grafischen Nutzerschnittstelle, die das Graustufendigitalbild und ein Farbpunkteingabeelement umfasst.
  20. Verfahren nach Anspruch 19, des Weiteren umfassend: Bereitstellen des eingefärbten Bildes zur Anzeige für die Clientvorrichtung durch Präsentieren des eingefärbten Bildes über die der Einfärbung dienende grafische Nutzerschnittstelle.
DE102020007951.2A 2020-03-09 2020-12-29 Einsetzen eines der Einfärbung dienenden neuronalen Netzwerkes zum Generieren von eingefärbten Bildern auf Grundlage interaktiver Farbkanten Pending DE102020007951A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/813,050 2020-03-09
US16/813,050 US10997752B1 (en) 2020-03-09 2020-03-09 Utilizing a colorization neural network to generate colorized images based on interactive color edges

Publications (1)

Publication Number Publication Date
DE102020007951A1 true DE102020007951A1 (de) 2021-09-09

Family

ID=75689565

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020007951.2A Pending DE102020007951A1 (de) 2020-03-09 2020-12-29 Einsetzen eines der Einfärbung dienenden neuronalen Netzwerkes zum Generieren von eingefärbten Bildern auf Grundlage interaktiver Farbkanten

Country Status (3)

Country Link
US (1) US10997752B1 (de)
CN (1) CN113379775A (de)
DE (1) DE102020007951A1 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019171118A1 (en) * 2018-03-05 2019-09-12 Omron Corporation Method, apparatus, system and program for determining feature data of image data, and storage medium
WO2020115706A1 (en) 2018-12-05 2020-06-11 Datavaloris S.A.S. Modification of a neural network topology
KR102216749B1 (ko) * 2019-03-05 2021-02-17 네이버웹툰 유한회사 타겟 이미지의 채색 완성 방법, 장치 및 컴퓨터 프로그램
US11178368B2 (en) * 2019-11-26 2021-11-16 Adobe Inc. Automatic digital parameter adjustment including tone and color correction
US11410387B1 (en) 2020-01-17 2022-08-09 Facebook Technologies, Llc. Systems, methods, and media for generating visualization of physical environment in artificial reality
US10950034B1 (en) 2020-01-27 2021-03-16 Facebook Technologies, Llc Systems, methods, and media for generating visualization of physical environment in artificial reality
US11451758B1 (en) * 2020-02-12 2022-09-20 Meta Platforms Technologies, Llc Systems, methods, and media for colorizing grayscale images
US11335048B1 (en) * 2020-11-19 2022-05-17 Sony Group Corporation Neural network-based image colorization on image/video editing applications
CN112529978B (zh) * 2020-12-07 2022-10-14 四川大学 一种人机交互式抽象画生成方法
US20220198723A1 (en) * 2020-12-17 2022-06-23 Mediatek Inc. Image enhancement method and image enhancement apparatus
US11989916B2 (en) * 2021-10-11 2024-05-21 Kyocera Document Solutions Inc. Retro-to-modern grayscale image translation for preprocessing and data preparation of colorization
US11928759B2 (en) * 2022-04-19 2024-03-12 Huawei Technologies Co., Ltd. Methods and devices for vector line drawing
CN114913272B (zh) * 2022-05-19 2024-07-02 北京航空航天大学 一种基于参考图像和用户导引的灰度图像精准上色方法
US20230385992A1 (en) * 2022-05-25 2023-11-30 Adobe Inc. Generating modified digital images via image inpainting using multi-guided patch match and intelligent curation
CN117197268A (zh) * 2023-07-27 2023-12-08 武汉人工智能研究院 图像生成方法、装置及存储介质
CN117557589A (zh) * 2023-11-08 2024-02-13 深圳市闪剪智能科技有限公司 基于神经网络的线条图上色方法、设备及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5710877A (en) * 1995-12-29 1998-01-20 Xerox Corporation User-directed interaction with an image structure map representation of an image
US8295632B2 (en) * 2009-01-21 2012-10-23 Yissum Research Development Company of Jerusalem Ltd. System and method for edge-enhancement of digital images using wavelets
CN103489161A (zh) * 2013-09-12 2014-01-01 南京邮电大学 一种灰度图像彩色化方法及装置
WO2015189343A1 (en) * 2014-06-12 2015-12-17 Thomson Licensing Methods and systems for color processing of digital images
EP3588363A4 (de) * 2017-03-09 2020-05-27 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Tiefenbasiertes steuerungsverfahren, tiefenbasierte steuerungsvorrichtung und elektronische vorrichtung
US10783403B2 (en) * 2018-10-29 2020-09-22 EMC IP Holding Company LLC Automated design testing through deep learning
CN110675462B (zh) * 2019-09-17 2023-06-16 天津大学 一种基于卷积神经网络的灰度图像彩色化方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
„Colorful Image Colorization‟ von Richard Zhang, Phillip Isola und Alexei A. Efros, ECCV 2016, 649-666 (2016)
„Real-Time User-Guided Image Colorization with Learned Deep Priors‟ von Richard Zhang, Jun-Yan Zhu, Phillip Isola, Xinyang Geng, Angela S. Lin und Alexei A. Efros, SIGGRAPH 2017

Also Published As

Publication number Publication date
US10997752B1 (en) 2021-05-04
CN113379775A (zh) 2021-09-10

Similar Documents

Publication Publication Date Title
DE102020007951A1 (de) Einsetzen eines der Einfärbung dienenden neuronalen Netzwerkes zum Generieren von eingefärbten Bildern auf Grundlage interaktiver Farbkanten
DE102020002964A1 (de) Verwenden eines neuronalen Netzwerks mit einer Zwei-Strom Encoder-Architektur zur Erzeugung digitaler Kompositbilder
DE102017010210A1 (de) Bild-Matting mittels tiefem Lernen
DE102019007196A1 (de) Identifizieren von Zielobjekten unter Nutzung der skalierungsdiversen Segmentierung dienender neuronaler Netzwerke
DE112020000526T5 (de) System und verfahren zum inkrementellen lernen für eine objekterkennung
DE102018006243A1 (de) Vorhersagen von Patchverschiebungsabbildungen unter Verwendung eines Neuronalnetzwerkes
DE112019005750T5 (de) Erlernen des Erzeugens synthetischer Datensätze zum Trainieren neuronalerNetze
DE102019008168A1 (de) Dynamisches Schätzen von Beleuchtungsparametern für Positionen innerhalb realitätserweiterter Szenen unter Nutzung eines neuronalen Netzwerkes
DE102017009049A1 (de) Ermöglichen von Transformationen Skizze-zu-Gemälde
DE102020002153A1 (de) Einsetzen von ein Objektattribut detektierenden Modellen zum automatischen Auswählen von Versionen detektierter Objekte in Bildern
DE102018006247A1 (de) Digitalbildvervollständigung unter Verwendung des Deep Learning
DE102022105471A1 (de) Generieren von modifizierten Digitalbildern unter Einsatz von tiefen visuellen angeleiteten Patchabgleichsmodellen zur Bildwiederherstellung
DE102017006563A1 (de) Bildpatchabgleich unter Nutzung eines wahrscheinlichkeitsbasierten Abtastens auf Grundlage einer Vorhersage
DE102019004300A1 (de) Verwendung eines dynamischen speichernetzwerks zum verfolgen digitaler dialogzustände und erzeugen von antworten
DE102020002302A1 (de) Bildmodifikationsstile, die aus einem beschränkten Satz von modifizierten Bildern gelernt werden
DE102017005964A1 (de) Techniken zum Auswählen von Objekten in Bildern
DE112021002453T5 (de) Iteratives trainieren eines modells für maschinelles lernen
DE102022003003A1 (de) Automatische Fotobearbeitung mittels sprachlicher Anweisung
DE102019122402A1 (de) Das klassifizieren von zeitreihenbilddaten
WO2022156621A1 (zh) 基于人工智能的图像上色方法、装置、电子设备、计算机可读存储介质及计算机程序产品
DE102013220470A1 (de) System und verfahren zum selektieren und anzeigen von segmentierungsparametern für eine optische zeichenerkennung
DE102020001437A1 (de) Verwendung kontextsensitiver Sensoren und multidimensionaler Gesteneingaben zum effizienten Generieren von nachbearbeiteten Digitalbildern
DE112018007236T5 (de) Verfahren und vorrichtung zum erzeugen eines dreidimensionalen (3d) modells zur rekonstruktion einer 3d-szene
DE102020132238A1 (de) Verfahren, systeme, herstellungsgegenstände und einrichtungen zum weiterentwickeln von bildtiefenvertrauenskarten
DE112021003887T5 (de) Grob-zu-fein-aufmerksamkeitsnetzwerke zur lichtsignal-erfassung und erkennung

Legal Events

Date Code Title Description
R012 Request for examination validly filed