DE102017010210A1 - Bild-Matting mittels tiefem Lernen - Google Patents

Bild-Matting mittels tiefem Lernen Download PDF

Info

Publication number
DE102017010210A1
DE102017010210A1 DE102017010210.4A DE102017010210A DE102017010210A1 DE 102017010210 A1 DE102017010210 A1 DE 102017010210A1 DE 102017010210 A DE102017010210 A DE 102017010210A DE 102017010210 A1 DE102017010210 A1 DE 102017010210A1
Authority
DE
Germany
Prior art keywords
neural network
image
training
mat
foreground
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
DE102017010210.4A
Other languages
English (en)
Inventor
Brian Lynn Price
Stephen Schiller
Scott Cohen
Ning Xu
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 Systems 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 Systems Inc filed Critical Adobe Systems Inc
Publication of DE102017010210A1 publication Critical patent/DE102017010210A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/272Means for inserting a foreground image in a background image, i.e. inlay, outlay
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent
    • 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
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • 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/11Region-based segmentation
    • 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
    • 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/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]

Landscapes

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

Abstract

[00124] Es werden Verfahren und Systeme zum Erzeugen von Matten für Eingabebilder bereitgestellt. Ein neuronales Netzwerksystem kann trainiert werden, wobei das Trainieren das Trainieren eines ersten neuronalen Netzwerks umfasst, das Matten für Eingabebilder erzeugt, wobei die Eingabebilder synthetische Kompositbilder sind. Ein solches neuronales Netzwerksystem kann weiter trainiert werden, wobei das Trainieren das Trainieren eines zweiten neuronalen Netzwerks umfasst, das verfeinerte Matten aus den durch das erste neuronale Netzwerk erzeugten Matten erzeugt. Ein solches trainiertes neuronales Netzwerksystem kann zum Eingeben eines Paars aus einem Bild und einer Trimap verwendet werden, für die das trainierte System eine Matte ausgeben wird. Eine solche Matte kann zum Extrahieren eines Gegenstands von dem Eingabebild verwendet werden. Nach dem Extrahieren des Gegenstands kann ein Nutzer den Gegenstand verändern, z.B. um den Gegenstand auf einem neuen Hintergrund anzuordnen.

Description

  • HINTERGRUND
  • Gegenstände sollen häufig von einem Bild extrahiert werden, z.B. zum Kombinieren des Gegenstands mit einem anderen Hintergrund. Zum Erleichtern der Entfernung eines Gegenstands im Vordergrund kann eine Bildmaske bzw. -matte oder Maske bzw. Matte zum Extrahieren des bestimmten Vordergrundgegenstands in dem Bild verwendet werden. Da die Pixelfarbe in einem Bild die Farbe des Vordergrundgegenstands, die Farbe des Hintergrunds oder eine Kombination der Vordergrund- und Hintergrundfarbe sein kann, kann eine Bildmatte Alpha-Werte umfassen, die einen Prozentsatz der Vordergrundfarbe angeben, die bei jedem Pixel vorliegt. Beispielsweise kann ein Pixel eine Kombination aus einer Vordergrund- und Hintergrundfarbe aufweisen, wenn ein Kamerapixelsensor Licht sowohl von dem Vordergrundgegenstand als auch dem Hintergrund empfängt. Typischerweise neigen Pixel um die Kante von Gegenständen und Pixel in Bereichen, die Haar, Pelz und einer Bewegungsunschärfe entsprechen, dazu, eine Kombination aus der Vordergrund- und Hintergrundfarbe aufzuweisen. Solche Alpha-Werte können dann zum Extrahieren des Vordergrundbilds von dem Hintergrund verwendet werden.
  • Da die Bestimmung von Alpha-Werten für jedes Pixel zeitaufwändig sein kann, können Trimaps zum Vermindern der Anzahl von Pixeln verwendet werden, für die ein Alpha-Wert bestimmt wird. Im Allgemeinen gibt eine Trimap Bereiche des Bilds an, die reiner Vordergrund, reiner Hintergrund und unbekannte Kombinationen von gemischten Vordergrund- und Hintergrundfarben sind. Demgemäß können nur Alpha-Werte in den Bereichen von unbekannten Farbkombinationen bestimmt werden.
  • Während Trimaps die Anzahl von Alpha-Werten, die für ein Bild bestimmt werden müssen, vermindern kann, kann die Erzeugung von Alpha-Werten im Zusammenhang mit Pixeln schwierig sein, insbesondere in Fällen, bei denen der Vordergrundgegenstand nur einen Teil des Pixels (z.B. eine Haarsträhne) einnimmt, bei denen ein transparenter Gegenstand vorliegt (z.B. Glas oder Rauch) oder eine optische Unschärfe vorliegt (z.B. ein Gegenstand, der nicht im Fokus liegt). Bestehende Matting-Ansätze, die zum Trennen von Vordergrund und Hintergrund verwendet werden, beruhen größtenteils auf Farben zur Bestimmung von Alpha-Werten, die mit Pixeln assoziiert sind. Beispielsweise breiten Verfahren auf Ausbreitungsbasis den unbekannten Bereich zwischen bekannten Vordergrund- und Hintergrundbereichen unter Verwendung von bekannten Vordergrund- und Hintergrundfarben aus, um den unbekannten Bereich zu füllen. Als ein weiteres Beispiel nehmen Verfahren auf Sampling-Basis Farbproben von bekannten Vordergrund- und Hintergrundbereichen und nutzen die Proben als Kandidaten für Vordergrund/Hintergrundfarben bei einem Pixel in einem unbekannten Bereich. Alternativ gibt es Verfahren, die zuerst ein Samplingverfahren nutzen und dann die Ergebnisse in ein Ausbreitungsverfahren eingeben. Einige bestehende Verfahren haben ein tiefes Lernen im Zusammenhang mit dem Abschätzen von Alpha-Werten zum Erzeugen von Matten genutzt. Ein Verfahren des tiefen Lernens, das zum Vorhersagen von alpha-Werten verwendet wird, resultiert aus dem Verfahren auf Ausbreitungsbasis und normalisierten RGB-Farben. Ein weiteres Verfahren des tiefen Lernens trainiert ein Netzwerk zum Lernen einer Trimap für (eine) Person(en) in einem Portrait. Die Trimap kann dann im Zusammenhang mit dem Verfahren auf Ausbreitungsbasis zum Vorhersagen von Alpha-Werten verwendet werden.
  • Wie es beschrieben ist, beruht jedes dieser bestehenden Verfahren in erster Linie auf der Farbe zur Bestimmung von Alpha-Werten. Da bestehende Verfahren auf einer Farbe beruhen, können solche Verfahren Alpha-Werte nicht genau bestimmen, wenn Vordergrund- und Hintergrundfarben und/oder Texturen einander ähnlich sind, und weisen Schwierigkeiten mit Kanten auf, wodurch Bilder mit Pelz bzw. Fell oder Haar kaum segmentiert werden können. Folglich sind solche Verfahren zum Erzeugen von genauen Matten für typische Alltagsszenen mit ähnlichen Vordergrund- und Hintergrundfarben und/oder -texturen ineffektiv.
  • ZUSAMMENFASSUNG
  • Ausführungsformen der vorliegenden Erfindung betreffen ein System, das zum Erzeugen einer Maske bzw. Matte (Englisch: matte) eines Bilds trainiert ist, welche die Vordergrund/Hintergrundbeziehung von Pixeln in dem Bild genau wiedergibt. Gemäß Ausführungsformen der vorliegenden Erfindung kann ein solches System mittels eine neuronalen Netzwerks erzeugt werden. Diesbezüglich können neuronale Netzwerke so trainiert werden, dass sie bei der Erzeugung einer Maske bzw. Matte für ein Bild unterstützen. Die Qualität einer Matte, die durch ein neuronales Netzwerk erzeugt wird, hängt davon ab, wie das System trainiert wird und welche Daten es empfängt, wenn es zum Erzeugen der Matte trainiert wird. Zum Erzeugen eines neuronalen Netzwerksystems, das genaue Matten erzeugt, kann das System auch zum Unterscheiden zwischen Vordergrund und Hintergrund in einem Bild auf der Basis nicht nur einer Farbe, sondern auch von Struktur und Textur trainiert werden. Die Verwendung der Struktur und der Textur zusätzlich zur Farbe zum Trainieren eines neuronalen Netzwerksystems kann zu einer genaueren Matte führen.
  • Das Trainieren zum Erzeugen eines solchen neuronalen Netzwerksystems kann durch Erzeugen eines Trainingsdatensatzes erreicht werden, der synthetische Komposittrainingsbilder umfasst. Synthetische Komposittrainingsbilder können durch Anordnen von Gegenständen, die von kontrastreichen Bildern mittels einer Matte extrahiert worden sind, auf neuen Hintergründen erzeugt werden, um synthetische Komposittrainingsbilder zu erzeugen. Trainingsbild/Referenzmatte-Paare können zum Trainieren eines Systems zum Unterscheiden zwischen Vordergrund und Hintergrund unter Verwendung von Farbe, Form, Textur und/oder eines Musters zum Erzeugen von genauen Matten für Eingabebilder verwendet werden. Während des Trainings werden Fehler bestimmt und zum Einstellen des Systems zum Vermeiden von ähnlichen Fehlern für zukünftige Iterationen verwendet. Nach dem Abschluss des Trainings kann das neuronale Netzwerksystem zum Erzeugen von genauen Matten für Eingabebilder verwendet werden. Eine solche Matte kann dann zum genauen Extrahieren eines Gegenstands von einem Eingabebild verwendet werden. Der extrahierte Gegenstand kann mit einem neuen Hintergrund zusammengestellt werden, um ein Kompositbild zu erzeugen.
  • Figurenliste
    • 1 zeigt ein Diagramm einer Umgebung, in der eine oder mehrere Ausführungsform(en) der vorliegenden Offenbarung gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung ausgeführt werden kann oder können.
    • 2 zeigt eine Beispielkonfiguration einer Betriebsumgebung, in der einige Implementierungen der vorliegenden Offenbarung gemäß Ausführungsformen der vorliegenden Offenbarung eingesetzt werden können.
    • 3 zeigt Aspekte eines veranschaulichenden Gegenstandsextraktionssystems gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 4 zeigt ein veranschaulichtes Verfahren des Erzeugens einer Matte aus einem Eingabebild gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 5 zeigt einen Verfahrensablauf, der eine Ausführungsform zum Erzeugen von synthetischen Komposittrainingsbildern zum Trainieren eines neuronalen Netzwerksystems zum Erzeugen von Matten für Eingabebilder gemäß Ausführungsformen der vorliegenden Erfindung zeigt.
    • 6 zeigt ein Beispielverfahren zum Trainieren eines neuronalen Netzwerksystems zum Erzeugen von Matten aus Eingabebildern gemäß Ausführungsformen der vorliegenden Erfindung.
    • 7 zeigt ein Beispielverfahren zum Erzeugen von Matten aus Eingabebildern zum Extrahieren von Gegenständen aus einem Eingabebild gemäß Ausführungsformen der vorliegenden Erfindung.
    • 8 ist ein Blockdiagramm einer Beispielrechenvorrichtung, in der Ausführungsformen der vorliegenden Offenbarung eingesetzt werden können.
  • DETAILLIERTE BESCHREIBUNG
  • Häufig wollen Nutzer einen Gegenstand von einem Bild extrahieren. Nach dem Extrahieren kann der Gegenstand z.B. in einer Kombination mit einem neuen Hintergrund zum Erzeugen eines Kompositbilds verwendet werden. Beispielsweise ermöglicht es ein solches Extraktionsverfahren einem Nutzer, den Hintergrund hinter einer Person in einem Bild von einer Stadtansicht zu einem tropischen Strand zu verändern. Zum Extrahieren eines Gegenstands von einem Bild kann ein Nutzer einzeln jedes Pixel entfernen, das den Hintergrund des Bilds umfasst. Dieses Verfahren ist jedoch zeitaufwändig und mühsam. Ferner kann dieses manuelle Verfahren, da Kanten von einzelnen Pixeln häufig nicht mit Kanten des Gegenstands ausgerichtet sind, keine Pixel berücksichtigen, die sowohl Vordergrund- als auch Hintergrundinformationen umfassen. Dies tritt insbesondere mit Details wie z.B. Haar oder Pelz bzw. Fell auf, da sie dünner als ein einzelnes Pixel sein können.
  • Zur Verminderung des Ausmaßes der Zeit und der Mühe, die zum Entfernen eines Gegenstands von einem Bild aufgewendet werden und zum Berücksichtigen von Pixeln mit sowohl Vordergrund- als auch Hintergrundinformationen kann zur Durchführung einer Gegenstandsextraktion ein Matting durchgeführt werden. Matting ist das Verfahren, das zum Trennen eines Vordergrundgegenstands von einem Hintergrund eines Bilds verwendet wird. Eine Maske bzw. Matte (Englisch: matte) (manchmal als Alpha-Matte bezeichnet) umfasst im Allgemeinen Alpha-Werte, die jeweils einen Prozentsatz einer Vordergrundfarbe angeben, die im Zusammenhang mit dem entsprechenden Pixel vorliegt. Dabei wird beim Matting ein Gegenstand oder Vordergrund von einem Hintergrund in einem Bild durch Kategorisieren jedes Pixels des Bilds als Vordergrundinformationen, Hintergrundinformationen oder als sowohl Vordergrund- als auch Hintergrundinformationen enthaltend getrennt. Pixel, die sowohl Vordergrund- als auch Hintergrundinformationen enthalten, treten z.B. auf, wenn Licht von einem Hintergrund und Licht von einem Vordergrundgegenstand physisch auf einem Kamerasensor empfangen wird, und diese Informationen zu einem einzelnen Pixel gemischt werden. Dies kann z.B. stattfinden, wenn Gegenstände halbtransparent sind, wie z.B. gefärbtes Glas oder ein Schleier, oder wenn eine Unschärfe entweder aufgrund einer Bewegung oder einer optischen Unschärfe vorliegt.
  • Das Erzeugen von Alpha-Werten für die Pixel in einem Bild ist eine schwierige Aufgabe. Dies ist darauf zurückzuführen, dass die Matting-Gleichung im Allgemeinen zum Auflösen nach einem Alpha-Wert für jedes Pixel eine unterbestimmte Gleichung mit mehr Unbekannten (z.B. sieben) zum Auflösen nach gegebenen weniger bekannten Werten (z.B. drei) ist. Die Matting-Gleichung kann als Ii = αiFi + (1 - αi)Bi αi ∈ [0,1] ausgedrückt werden. In einer solchen Gleichung sind die bekannten Werte die rote, die grüne und die blaue (RGB) Farbe bei den Pixeln i, Ii. Die unbekannten Farben umfassen die RGB-Farben für den Vordergrund F, die RGB-Farben für den Hintergrund Bi und eine Alpha-Wertabschätzung αi. Die Alpha-Wertabschätzung bezieht sich allgemein auf den Prozentsatz der Pixel, welche die Vordergrundinformationen umfassen.
  • Um dabei zu unterstützen, den Bereich eines Bilds zu beschränken, bei dem eine unbekannte Farbmischung vorliegt und Alpha-Werte bestimmt werden müssen, kann eine Trimap verwendet werden. Eine Trimap markiert Bereiche eines Bilds als reinen Vordergrund und/oder reinen Hintergrund und gibt auch die unbekannten Bereiche des Bilds an, für welche die Vordergrund/Hintergrund-Prozentsätze bestimmt werden müssen. Dieser unbekannte Bereich einer Trimap gibt einen Bereich an, für den Pixel wahrscheinlich ein Gemisch aus einer Vordergrundfarbe und einer Hintergrundfarbe sind. Nach dem Bestimmen von Alpha-Werten für die unbekannten Bereiche eines Bilds kann eine Matte z.B. einen reinen Vordergrund als weiße Pixel abbilden, einen reinen Hintergrund als schwarze Pixel abbilden und Pixel, die sowohl Vordergrund als auch Hintergrund umfassen, als geeignete Grauschattierung auf der Basis des Prozentsatzes von Vordergrund gegenüber Hintergrund abbilden.
  • Bestehende Ansätze, die allgemein zum Erzeugen einer Matte für ein Bild implementiert sind, beruhen stark auf der Nutzung einer Farbe zum Bestimmen von Alpha-Werten für Pixel. D.h., jedes des Verfahrens auf Ausbreitungsbasis, des Verfahrens auf Sampling-Basis und von Techniken eines tiefen Lernens, die vorstehend beschrieben worden sind, beruhen auf der Farbe zum Bestimmen von Alpha-Werten. Matten für komplexe Bilder mit ähnlichen Vordergrund/Hintergrund-Texturen und/oder -Farben, die durch solche bestehenden, farbbasierten Ansätze erzeugt werden, sind für einen Nutzer jedoch häufig nicht zufriedenstellend, da die resultierenden Matten häufig Niederfrequenzschmier- oder grobe Hochfrequenzartefakte enthalten. Während die bestehenden Verfahren für kontrastreiche Vordergrund/Hintergrund-Bilder (z.B. eine Person mit dunklem Haar auf einem weißen Hintergrund, oder eine Person, die kein grün trägt, gegen einen grünen Bildschirm) eine gute Leistung erbringen, können solche Verfahren komplexe reale Bilder, wie z.B. eine Frau, die einen Pelz vor einer Stadtansicht mit Gebäuden, Autos und Bäumen trägt, nicht angemessen handhaben.
  • Demgemäß betreffen Ausführungsformen der vorliegenden Erfindung das Erleichtern eines effizienten und effektiven Bild-Mattings. Diesbezüglich kann eine Matte für ein Bild, das durch einen Nutzer bereitgestellt wird, erzeugt werden, die Vordergrund/Hintergrund-Kombinationsbereiche (oder gemischte Bereiche) des Gegenstands genau wiedergibt. Eine solche Matte kann zum genaueren Extrahieren eines Gegenstands von einem Bild verwendet werden. Wenn beispielsweise der Gegenstand ein Gitterball ist, wird eine solche Matte die Extraktion des Gitterballs in einer Weise ermöglichen, die es ermöglicht, dass neue Hintergrundinformationen durch die Löcher des Gitterballs sichtbar sind, wenn der Ball auf einem neuen Hintergrund angeordnet wird.
  • Auf einem hohen Niveau wird ein neuronales Netzwerksystem zum Erzeugen von genauen Matten verwendet. Insbesondere nutzt ein neuronales Netzwerksystem Struktur- und Texturinformationen zusätzlich zu einer Farbe zum Erzeugen von genauen Matten. Ein neuronales Netzwerk ist ein Rechenansatz, der entfernt darauf beruht, wie das Gehirn Probleme unter Verwendung von großen Clustern von verbundenen Neuronen löst. Neuronale Netzwerke sind selbstlernend und so trainiert, dass eine erzeugte Ausgabe ein gewünschtes Ergebnis wiedergibt. Wie es hier beschrieben ist, kann ein neuronales Netzwerksystem unter Verwendung mehrerer neuronaler Netzwerke trainiert werden. In einem solchen System kann ein erstes neuronales Netzwerk, wie z.B. ein neuronales Matting-Netzwerk, so trainiert werden, dass es eine Matte auf der Basis eines Eingabebilds und eine entsprechende Trimap erzeugt, die bekannte Vordergrund- und Hintergrundbereiche und unbekannte Vordergrund/Hintergrund-Mischbereiche erzeugt. Das erste neuronale Netzwerk sagt Alpha-Werte für jedes Pixel des Eingabebilds zum Erzeugen einer Matte voraus. Das erste neuronale Netzwerk wird dann auf der Basis der Genauigkeit dieser vorhergesagten Alpha-Werte trainiert. Ein zweites neuronales Netzwerk, wie z.B. ein neuronales Verfeinerungsnetzwerk, kann zum Nehmen der Matte von dem ersten neuronalen Netzwerk und Verfeinern der Matte zum weiteren Erhöhen der Genauigkeit der Alpha-Werte und/oder zum Erzeugen schärferer Kanten trainiert werden. Obwohl allgemein eine Beschreibung als separate neuronale Netzwerke angegeben ist, kann jedwede Anzahl von neuronalen Netzwerken, einschließlich ein einzelnes neuronales Netzwerk, gemäß hier beschriebenen Ausführungsformen trainiert werden.
  • Im Allgemeinen kann das neuronale Matting-Netzwerk zum Trainieren eines neuronalen Netzwerks eine Trainingsmatte auf der Basis eines Trainingeingabebilds und dessen zugehöriger Trimap ausgeben. Eine solche Trainingsmatte kann abgeschätzte Alpha-Werte für jedes Pixel enthalten. Danach wird die Trainingsmatte mit einer Referenzmatte, die als „ground truth“-Matte bekannt ist, zum Bestimmen von Fehlern zwischen der Trainingsmatte und der Referenzmatte verglichen. Fehler können unrichtig vorhergesagte Alpha-Werte für Pixel des Bilds umfassen, die auf der Basis des Mattenvergleichs identifiziert werden. Fehler können durch Extrahieren des Gegenstands von dem Eingabebild unter Verwendung der Referenzmatte und getrennt davon unter Verwendung der Trainingsmatte bestimmt werden, wodurch die extrahierten Gegenstände auf dem gleichen neuen Hintergrund angeordnet werden, um jedwede RGB-Differenzen zwischen den Kompositbildern zu vergleichen. Solche Fehler werden dann durch das neuronale Matting-Netzwerk zurückgeführt, um das neuronale Netzwerk in einer geeigneten Weise zu trainieren, z.B. durch Einstellen der Gewichtung der Netzwerkverbindungen zum Vermindern des Werts des Fehlers.
  • Ein ähnliches Verfahren kann zum Trainieren eines neuronalen Verfeinerungsnetzwerks durchgeführt werden. Insbesondere können eine Trainingsmatte, wie z.B. die Trainingsmatte, die durch das neuronale Matte-Netzwerk erzeugt wird, und ein entsprechendes Trainingseingabebild kann für das neuronale Verfeinerungsnetzwerk bereitgestellt werden, um eine verfeinerte Trainingsmatte auszugeben. Die verfeinerte Trainingsmatte kann dann mit einer Referenzmatte verglichen werden, die als „ground truth“-Matte bekannt ist, um Fehler zwischen der verfeinerten Trainingsmatte und der Referenzmatte zu bestimmen. Solche Fehler werden dann durch das neuronale Verfeinerungsnetzwerk zurückgeführt, um das neuronale Netzwerk in einer geeigneten Weise zu trainieren, wie z.B. durch Einstellen der Gewichtung der Netzwerkverbindungen zum Vermindern des Werts des Fehlers.
  • Dieses Verfahren kann für eine ausreichend große Anzahl von Trainingszyklen wiederholt werden, bis das neuronale Netzwerksystem zu einem Zustand konvergiert, bei dem der Fehler der Berechnungen ausreichend klein ist, so dass die Ausgabematten ein gewünschtes Schwellenniveau der Ähnlichkeit zu den Referenzmatten erreicht. Mit anderen Worten, das Training kann fortgesetzt werden, bis vorhergesagte Alpha-Werte innerhalb eines gewünschten Schwellenniveaus der Ähnlichkeit liegen. Es ist ersichtlich, dass das Trainieren des neuronalen Matte-Netzwerks und das Verfeinern des neuronalen Netzwerks aufeinanderfolgend oder gleichzeitig stattfinden können.
  • Das Trainieren eines neuronalen Netzwerksystems zum Erzeugen von Matten für ein Eingabebild, wie es hier beschrieben ist, stellt eine genaue Extraktion eines Gegenstands von dem Eingabebild bereit. Zu diesem Zweck lernt das neuronale Netzwerksystem während des Trainingsvorgangs auf der Basis von vorhergesagten Alpha-Werten Unterschiede zwischen der Matte, die aus einem Eingabebild erzeugt worden ist, und einer Referenzmatte, die dem Vordergrundgegenstand in dem Eingabebild entspricht, zu berücksichtigen. Ein solches Training stellt sicher, dass das neuronale Netzwerksystem nicht nur die Differenz zwischen Vordergrund/Hintergrund auf der Basis der Farbe erkennt, sondern auch wie eine Matte für bestimmte Strukturen aussehen soll. Beispielsweise kann gemäß Ausführungsformen der vorliegenden Erfindung ein neuronales Netzwerksystem so trainiert werden, dass es nicht nur fähig ist, eine Farbe zum Erzeugen einer Matte zu verwenden, sondern auch eine Struktur zu lernen, wie z.B. wie Haar und Fell bzw. Pelz aussehen sollen. Ein solches System kann auch zum Lernen von Strukturen oder Mustern trainiert werden, wie z.B. einer Unschärfe in einem Übergang von Vordergrund zu Hintergrund. Darüber hinaus kann ein solches System lernen, Merkmale zu erkennen, bei denen es wahrscheinlich ist, dass sie Vordergrund/Hintergrund-Kombinationsbereiche aufweisen, wobei es beispielsweise erkennen kann, dass sich um ein Gesicht Haare befinden.
  • Wie es hier beschrieben ist, ist zum Erzeugen eines widerstandsfähigen Systems, das einen breiten Bereich von Gegenständen handhaben kann, eine große Anzahl und Vielfalt von Bildern häufig nützlich. Es ist schwierig, einen angemessenen Trainingsdatensatz zum Erreichen eines solchen widerstandsfähigen Trainings zu erzeugen, da Bilder, die zum Matting verwendet werden, eine Bewegungsunschärfe vermeiden sollten, um genaue Matten zu erzeugen. Folglich können Bilder eines Außenbereichs zum Training aufgrund einer nicht beabsichtigten Bewegung durch z.B. Wind nutzlos gemacht werden. Entsprechend kann ein Bild eines Lebewesens, wie z.B. einer Person oder eines Tiers, aufgrund einer Bewegung des Lebewesens nutzlos sein. Dabei können gemäß Ausführungsformen der vorliegenden Erfindung synthetische Kompositbilder für ein angemessenes Trainieren eines neuronalen Matting-Netzwerksystems zum Trainieren des Systems nicht nur zum Nutzen von Farbe zum Erzeugen einer Matte, sondern auch zum Lernen einer Struktur, einer Textur und/oder von Mustern erzeugt werden.
  • Unter Bezugnahme auf die 1 ist die 1 ein Diagramm einer Umgebung 100, in der eine oder mehrere Ausführungsform(en) der vorliegenden Offenbarung ausgeführt werden kann oder können. Die Umgebung 100 umfasst eine oder mehrere Nutzervorrichtungen, wie z.B. die Nutzervorrichtungen 102A-102N. Beispiele für die Nutzervorrichtungen umfassen, sind jedoch nicht beschränkt auf, einen Personalcompuer (PC), einen Tabletcomputer, einen Desktopcomputer, eine Verarbeitungseinheit, jedwede Kombination dieser Vorrichtungen oder jedwede andere geeignete Vorrichtung, die einen oder mehrere Prozessor(en) aufweist. Jede Nutzervorrichtung kann mindestens eine Anwendung umfassen, die durch die kreative Vorrichtung 108 unterstützt wird. Es sollte beachtet werden, dass sich die folgende Beschreibung allgemein auf die Nutzervorrichtung 102A als ein Beispiel beziehen kann und jedwede andere Nutzervorrichtung verwendet werden kann.
  • Ein Nutzer der Nutzervorrichtung kann verschiedene Produkte, Anwendungen oder Dienste nutzen, die durch die kreative Vorrichtung 108 mittels des Netzwerks 106 unterstützt werden. Die Nutzervorrichtungen 102A-102N können durch verschiedene Nutzer betrieben werden. Beispiele für die Nutzer umfassen, sind jedoch nicht beschränkt auf, kreative Profis oder Hobbyanwender, die kreative Werkzeuge zum Erzeugen, Bearbeiten, Verfolgen oder Verwalten eines kreativen Inhalts nutzen, Werbefachleute, Publizisten, Entwickler, Inhaltseigentümer, Inhaltsverwalter, Inhaltserzeuger, Inhaltsbetrachter, Inhaltskonsumenten, Designer, Herausgeber, jedwede Kombination dieser Nutzer, oder jedweden anderen Nutzer, der digitale Werkzeuge zum Erzeugen, Bearbeiten, Verfolgen oder Verwalten von digitalen Erfahrungen nutzt.
  • Ein digitales Werkzeug, wie es hier beschrieben ist, umfasst ein Werkzeug, das zum elektronischen Durchführen einer Funktion oder eines Arbeitsablaufs verwendet wird. Beispiele für ein digitales Werkzeug umfassen, sind jedoch nicht beschränkt auf, ein Inhaltserzeugungswerkzeug, ein Inhaltsbearbeitungswerkzeug, ein Inhaltsveröffentlichungswerkzeug, ein Inhaltsverfolgungswerkzeug, ein Inhaltsverwaltungswerkzeug, ein Inhaltsdruckwerkzeug, ein Inhaltskonsumierungswerkzeug, jedwede Kombination dieser Werkzeuge oder jedwedes andere Werkzeug, das zum Erzeugen, Bearbeiten, Verwalten, Erzeugen, Verfolgen, Konsumieren oder Durchführen von jedweder anderen Funktion oder jedwedes anderen Arbeitsablaufs, die oder der mit einem Inhalt zusammenhängt, verwendet werden kann. Ein digitales Werkzeug umfasst die kreative Vorrichtung 108.
  • Eine digitale Erfahrung, wie sie hier beschrieben ist, umfasst eine Erfahrung, die durch eine elektronische Vorrichtung konsumiert werden kann. Beispiele für die digitale Erfahrung umfassen eine Inhaltserzeugung, eine Inhaltsbearbeitung, eine Inhaltsverfolgung, eine Inhaltsveröffentlichung, ein Inhaltsposten, ein Inhaltsdrucken, eine Inhaltsverwaltung, eine Inhaltsbetrachtung, ein Inhaltskonsumieren, jedwede Kombination dieser Erfahrungen oder jedwede(n) anderen Arbeitsablauf oder Funktion, der oder die im Zusammenhang mit einem Inhalt durchgeführt werden kann.
  • Ein Inhalt, wie er hier beschrieben ist, umfasst einen elektronischen Inhalt. Beispiele für den Inhalt umfassen, sind jedoch nicht beschränkt auf, ein Bild, ein Video, eine Website, eine Webseite, eine Nutzerschnittstelle, einen Menügegenstand, ein Werkzeugmenü, ein Magazin, eine Diashow, eine Animation, einen sozialen Post, einen Kommentar, einen Blog, einen Datenfeed, Audiodaten, eine Werbung, eine Vektorgraphik, eine Bitmap, ein Dokument, jedwede Kombination eines Inhalts oder mehrerer Inhalte oder jedweden anderen elektronischen Inhalt.
  • Die Nutzervorrichtungen 102A-102N können mittels eines Netzwerks 106 mit einer kreativen Vorrichtung 108 verbunden werden. Beispiele für das Netzwerk 106 umfassen, sind jedoch nicht beschränkt auf, das Internet, ein lokales Netzwerk (LAN), ein drahtloses Netzwerk, ein drahtgebundenes Netzwerk, ein Weitbereichsnetzwerk und dergleichen.
  • Die kreative Vorrichtung 108 umfasst ein oder mehrere Modul(e) zum Bereitstellen einer oder mehrerer digitaler Erfahrung(en) für den Nutzer. Die kreative Vorrichtung 108 kann unter Verwendung von einem oder mehreren Server(n), einer oder mehreren Plattform(en) mit entsprechenden Anwendungsprogrammierschnittstellen, einer Cloudinfrastruktur und dergleichen implementiert werden. Darüber hinaus kann jedes Modul auch unter Verwendung von einem oder mehreren Server(n), einer oder mehreren Plattform(en) mit entsprechenden Anwendungsprogrammierschnittstellen, einer Cloudinfrastruktur und dergleichen implementiert werden. Die kreative Vorrichtung 108 umfasst auch eine Datenspeichereinheit 112. Die Datenspeichereinheit 112 kann als eine oder mehrere Datenbank(en) oder ein oder mehrere Datenserver implementiert werden. Die Datenspeichereinheit 112 umfasst Daten, die durch die Module der kreativen Vorrichtung 108 verwendet werden.
  • Ein Nutzer der Nutzervorrichtung 102A besucht eine Webseite oder eine Anwendungshandlung zum Durchsuchen von Anwendungen, die durch die kreative Vorrichtung 108 unterstützt werden. Die kreative Vorrichtung 108 stellt die Anwendungen als Software als Dienst (SaaS) oder als eigenständige Anwendung, die auf der Nutzervorrichtung 102A installiert sein kann, oder als Kombination bereit. Der Nutzer kann einen Account mit der kreativen Vorrichtung 108 durch Bereitstellen von Nutzerdetails und auch durch Erzeugen von Logindetails erzeugen. Alternativ kann die kreative Vorrichtung 108 automatisch Logindetails für den Nutzer als Reaktion auf den Empfang der Nutzerdetails erzeugen. In einigen Ausführungsformen wird der Nutzer auch zur Installation einer Anwendungsverwaltung aufgefordert. Die Anwendungsverwaltung ermöglicht dem Nutzer das Verwalten der Installation von verschiedenen Anwendungen, die durch die kreative Vorrichtung 108 unterstützt werden, und auch das Verwalten von anderen Funktionalitäten, wie z.B. von Updates, eines Subskriptionsaccounts und dergleichen, die mit den Anwendungen zusammenhängen. Die Nutzerdetails werden durch ein Nutzerverwaltungsmodul 116 empfangen und als Nutzerdaten 118 in der Datenspeichereinheit 112 gespeichert. In einigen Ausführungsformen umfassen die Nutzerdaten 118 ferner Accountdaten 120, in denen die Nutzerdetails gespeichert sind.
  • Der Nutzer kann sich entweder für einen Probeaccount entscheiden oder kann eine Zahlung auf der Basis des Typs des Accounts oder der durch den Nutzer gewählten Subskription leisten. Alternativ kann die Zahlung auf dem Produkt oder der Anzahl von Produkten basieren, die durch den Nutzer gewählt werden. Auf der Basis der Zahlungsdetails des Nutzers wird ein Nutzerbetriebsprofil 122 durch ein Berechtigungsmodul 124 erzeugt. Das Nutzerbetriebsprofil 122 ist in der Datenspeichereinheit 112 gespeichert und gibt eine Berechtigung des Nutzers für verschiedene Produkte oder Dienste an. Das Nutzerbetriebsprofil 122 gibt auch den Typ des Nutzers an, d.h., kostenlos, Probe, Student, vergünstigt oder bezahlt.
  • In einigen Ausführungsformen kann es sich bei dem Nutzerverwaltungsmodul 116 und dem Berechtigungsmodul 124 um ein einzelnes Modul handeln, das die Funktionalitäten beider Module ausführt.
  • Der Nutzer kann dann verschiedene Anwendungen, die durch die kreative Vorrichtung 108 unterstützt werden, mittels eines Anwendungsdownloadverwaltungsmoduls 126 installieren. Anwendungsinstallationsprogramme oder Anwendungsprogramme 128, die in der Datenspeichereinheit 112 vorliegen, werden durch das Anwendungsdownloadverwaltungsmodul 126 geholt und dem Nutzer direkt oder mittels der Anwendungsverwaltung zur Verfügung gestellt. In einer Ausführungsform wird eine Angabe aller Anwendungsprogramme 128 geholt und für den Nutzer mittels einer Schnittstelle der Anwendungsverwaltung bereitgestellt. In einer anderen Ausführungsform wird für den Nutzer eine Angabe von Anwendungsprogrammen 128, für die der Nutzer auf der Basis des Betriebsprofils des Nutzers berechtigt ist, für den Nutzer angezeigt. Der Nutzer wählt dann die Anwendungsprogramme 128 oder die Anwendungen, die der Nutzer herunterladen will. Die Anwendungsprogramme 128 werden dann durch die Anwendungsverwaltung mittels des Anwendungsdownloadverwaltungsmoduls 126 auf die Nutzervorrichtung 102A heruntergeladen. Entsprechende Daten, die den Download betreffen, werden auch in dem Nutzerbetriebsprofil 122 aktualisiert. Ein Anwendungsprogramm 128 ist ein Beispiel für das digitale Werkzeug. Das Anwendungsdownloadverwaltungsmodul 126 verwaltet auch den Vorgang des Bereitstellens von Updates für die Nutzervorrichtung 102A.
  • Nach dem Herunterladen, der Installation und dem Starten eines Anwendungsprogramms wird der Nutzer in einer Ausführungsform gebeten, die Logindetails bereitzustellen. Durch das Nutzerverwaltungsmodul 116 und das Berechtigungsmodul 124 wird erneut eine Prüfung durchgeführt, um sicherzustellen, dass der Nutzer zur Nutzung des Anwendungsprogramms berechtigt ist. In einer anderen Ausführungsform wird ein direkter Zugang zu dem Anwendungsprogramm bereitgestellt, da der Nutzer bereits in der Anwendungsverwaltung eingeloggt ist.
  • Der Nutzer nutzt ein oder mehrere Anwendungsprogramm(e) 104A-104N, das oder die auf der Nutzervorrichtung installiert ist oder sind, um ein(en) oder mehrere Projekt(e) oder Inhalt(e) zu erzeugen. Zusätzlich hat der Nutzer auch einen Arbeitsraum innerhalb jedes Anwendungsprogramms. Der Arbeitsraum, wie er hier beschrieben ist, umfasst die Einstellung des Anwendungsprogramms, die Einstellung von Werkzeugen oder die Einstellung einer Nutzerschnittstelle, die durch das Anwendungsprogramm bereitgestellt wird, oder jedwede andere Einstellung oder Eigenschaften die für das Anwendungsprogramm spezifisch ist oder sind. Jeder Nutzer kann einen Arbeitsraum haben. Der Arbeitsraum, die Projekte und/oder die Inhalte können als Anwendungsprogrammdaten 130 in der Datenspeichereinheit 112 durch ein Synchronisationsmodul 132 gespeichert werden. Alternativ oder zusätzlich können solche Daten in der Nutzervorrichtung gespeichert werden, wie z.B. der Nutzervorrichtung 102A.
  • Die Anwendungsprogrammdaten 130 umfassen einen oder mehrere Inhalt(e) 140. Die Inhalte 140 können ein geteilter Inhalt sein, den der Nutzer mit anderen Nutzer teilen will oder den der Nutzer auf einem Marktplatz anbieten will. Die Inhalte 140 können auch zwischen einer Mehrzahl von Anwendungsprogrammen 128 geteilt werden. Jeder Inhalt umfasst Metadaten 142. Beispiele für die Metadaten 142 umfassen, sind jedoch nicht beschränkt auf, die Schriftart, die Farbe, die Größe, die Form, die Koordinate, eine Kombination davon und dergleichen. Darüber hinaus umfasst in einer Ausführungsform jeder Inhalt auch eine Datei. Beispiele für die Datei umfassen, sind jedoch nicht beschränkt auf, ein Bild 144, einen Text 146, ein Video 148, eine Schriftart 150, ein Dokument 152, eine Kombination davon und dergleichen. In einer anderen Ausführungsform umfasst ein Inhalt nur die Metadaten 142.
  • Die Anwendungsprogrammdaten 130 umfassen auch Projektdaten 154 und Arbeitsraumdaten 156. In einer Ausführungsform umfassen die Projektdaten 154 die Inhalte 140. In einer anderen Ausführungsform sind die Inhalte 140 eigenständige Inhalte. Entsprechend können die Arbeitsraumdaten 156 in einer Ausführungsform ein Teil der Projektdaten 154 sein, während sie in einer anderen Ausführungsform eigenständige Daten sein können.
  • Ein Nutzer kann eine oder mehrere Nutzervorrichtung(en) zum Zugreifen auf Daten betreiben. Diesbezüglich sind die Anwendungsprogrammdaten 130 für einen Nutzer von jedweder Vorrichtung aus zugänglich, einschließlich eine Vorrichtung, die nicht zur Erzeugung der Inhalte 140 verwendet worden ist. Dies wird durch das Synchronisationsmodul 132 erreicht, das die Anwendungsprogrammdaten 130 in der Datenspeichereinheit 112 speichert und es ermöglicht, dass die Anwendungsprogrammdaten 130 für einen Zugang durch den Nutzer oder andere Nutzer mittels jedweder Vorrichtung zur Verfügung stehen. Vor dem Zugreifen auf die Anwendungsprogrammdaten 130 durch den Nutzer von jedweder anderen Vorrichtung oder durch jedweden anderen Nutzer kann es erforderlich sein, dass der Nutzer oder der andere Nutzer Logindetails für eine Authentifizierung bereitstellt, wenn er nicht bereits eingeloggt ist. In manchen Fällen wird oder werden, wenn der Nutzer oder der andere Nutzer eingeloggt sind, ein neu erzeugter Inhalt oder Updates für die Anwendungsprogrammdaten 130 in Echtzeit bereitgestellt. Auf das Rechteverwaltungsmodul 136 wird auch zugegriffen, um zu bestimmen, ob der neu erzeugte Inhalt oder die Updates für den anderen Nutzer bereitgestellt werden kann oder können oder nicht. Die Arbeitsraumdaten 156 ermöglichen es dem Synchronisationsmodul 132, die gleiche Arbeitsraumkonfiguration für den Nutzer auf jedweder anderen Vorrichtung oder für den anderen Nutzer auf der Basis der Rechteverwaltungsdaten 138 bereitzustellen.
  • In verschiedenen Ausführungsformen können verschiedene Typen einer Synchronisation erreicht werden. Beispielsweise kann der Nutzer einen Zeichensatz oder eine Farbe von der Nutzervorrichtung 102A unter Verwendung eines ersten Anwendungsprogramms auswählen und den Zeichensatz oder die Farbe in einem zweiten Anwendungsprogramm auf jedweder anderen Vorrichtung nutzen. Wenn der Nutzer den Zeichensatz oder die Farbe mit anderen Nutzern teilt, dann können die anderen Nutzer auch den Zeichensatz oder die Farbe verwenden. Eine solche Synchronisation findet im Allgemeinen in Echtzeit statt. Entsprechend kann eine Synchronisation von jedwedem Typ der Anwendungsprogrammdaten 130 durchgeführt werden.
  • In einigen Ausführungsformen wird die Nutzerinteraktion mit den Anwendungen 104 durch ein Anwendungsanalysemodul 158 verfolgt und als Anwendungsanalysedaten 160 gespeichert. Die Anwendungsanalysedaten 160 umfassen z.B. die Verwendung eines Werkzeugs, die Verwendung eines Merkmals, die Verwendung eines Arbeitsablaufs, die Verwendung der Inhalte 140 und dergleichen. Die Anwendungsanalysedaten 160 können die Nutzungsdaten auf der Basis pro Nutzer umfassen und können auch die Nutzungsdaten auf der Basis pro Werkzeug oder auf der Basis pro Merkmal oder auf der Basis pro Arbeitsablauf oder jedweder anderen Basis umfassen. Das Anwendungsanalysemodul 158 bettet einen Codeteil in die Anwendungen 104 ein, wodurch die Anwendung die Nutzungsdaten sammeln kann und sie zu dem Anwendungsanalysemodul 158 senden kann. Das Anwendungsanalysemodul 158 speichert die Nutzungsdaten als Anwendungsanalysedaten 160 und verarbeitet die Anwendungsanalysedaten 160 zum Erzeugen einer sinnvollen Ausgabe. Beispielsweise kann das Anwendungsanalysemodul 158 eine Ausgabe erzeugen, dass der Nutzer das „Werkzeug 4“ für eine maximale Anzahl verwendet. Die Ausgabe des Anwendungsanalysemoduls 158 wird durch ein Personalisierungsmodul 162 zum Personalisieren eines Werkzeugmenüs für den Nutzer verwendet, um das „Werkzeug 4“ ganz oben zu zeigen. Andere Typen einer Personalisierung können ebenfalls auf der Basis der Anwendungsanalysedaten 158 durchgeführt werden. Darüber hinaus kann das Personalisierungsmodul 162 auch die Arbeitsraumdaten 156 oder die Nutzerdaten 118 verwenden, einschließlich die Nutzerpräferenzen, um ein oder mehrere Anwendungsprogramm(e) 128 für den Nutzer zu personalisieren.
  • In einigen Ausführungsformen umfassen die Anwendungsanalysedaten 160 Daten, die den Status eines Projekts eines Nutzers anzeigen. Beispielsweise wenn der Nutzer einen Artikel in einer digitalen Veröffentlichungsanwendung erstellt hat und was noch bleibt das Veröffentlichen des erstellten Artikels zu dem Zeitpunkt ist, wenn der Nutzer die digitale Veröffentlichungsanwendung verlässt, dann verfolgt das Anwendungsanalysemodul 158 den Status. Wenn der Nutzer beim nächsten Mal die digitale Veröffentlichungsanwendung auf einer anderen Vorrichtung öffnet, dann wird für den Nutzer der Status und Optionen zum Veröffentlichen unter Verwendung der digitalen Veröffentlichungsanwendung oder jedweder anderen Anwendung bereitgestellt. Darüber hinaus kann, während der Artikel erstellt wird, durch das Synchronisationsmodul 132 auch eine Empfehlung zum Einbeziehen von anderen Inhalten durchgeführt werden, die von dem Nutzer gespeichert worden sind und für den Artikel relevant sind. Eine solche Empfehlung kann unter Verwendung eines Moduls oder mehrerer Module, wie sie hier beschrieben sind, erzeugt werden.
  • Die kreative Vorrichtung 108 umfasst auch ein Gemeinschaftsmodul 164, das die Erzeugung von verschiedenen Gemeinschaften und eine Zusammenarbeit zwischen den Gemeinschaften ermöglicht. Eine Gemeinschaft, wie sie hier beschrieben ist, umfasst eine Gruppe von Nutzern, die mindestens ein gemeinsames Interesse teilen. Die Gemeinschaft kann geschlossen sein, d.h., auf eine Anzahl von Nutzern beschränkt sein, oder kann offen sein, d.h., jeder kann teilnehmen. Die Gemeinschaft ermöglicht es den Nutzern, ihre Arbeit zu teilen und ihre Arbeit zu kommentieren oder zu mögen („liken“). Die Arbeit umfasst die Anwendungsprogrammdaten 140. Das Gemeinschaftsmodul 164 speichert jedwede Daten, die der Gemeinschaft entsprechen, wie z.B. eine Arbeit, die mit der Gemeinschaft geteilt wird, und Kommentare oder „likes“, die für die Arbeit empfangen werden, als Gemeinschaftsdaten 166. Die Gemeinschaftsdaten 166 umfassen auch Benachrichtungsdaten und werden zum Benachrichtigen anderer Nutzer durch das Gemeinschaftsmodul in dem Fall jedweder Aktivität verwendet, die mit der Arbeit oder neuer Arbeit, die geteilt wird, zusammenhängt. Das Gemeinschaftsmodul 164 arbeitet zusammen mit dem Synchronisationsmodul 132 zum Bereitstellen von Zusammenarbeitsarbeitsabläufen für den Nutzer. Beispielsweise kann der Nutzer ein Bild erzeugen und um eine Expertenmeinung oder eine Expertenbearbeitung bitten. Ein Expertennutzer kann dann entweder das Bild gemäß dem „liken“ des Nutzers bearbeiten oder er kann eine Expertenmeinung abgeben. Das Bearbeiten und das Abgeben der Expertenmeinung wird unter Verwendung des Gemeinschaftsmoduls 164 und des Synchronisationsmoduls 132 ermöglicht. In Zusammenarbeitsarbeitsabläufen werden einer Mehrzahl von Nutzern verschiedene Ziele, die mit der Arbeit zusammenhängen, zugeordnet.
  • Die kreative Vorrichtung 108 umfasst auch ein Marktplatzmodul 168 zum Bereitstellen eines Marktplatzes für einen oder mehrere Nutzer. Das Marktplatzmodul 168 ermöglicht es dem Nutzer, einen Inhalt zum Verkaufen oder Verwenden anzubieten. Das Marktplatzmodul 168 hat einen Zugang zu den Inhalten 140, die der Nutzer auf dem Marktplatz anbieten will. Die kreative Vorrichtung 108 umfasst auch ein Suchmodul 170 zum Ermöglichen eines Suchens der Inhalte 140 in dem Marktplatz. Das Suchmodul 170 ist auch ein Teil eines Anwendungsprogramms 128 oder mehrerer Anwendungsprogramme 128, das oder die dem Nutzer die Durchführung einer Suche nach den Inhalten 140 oder jedwedem anderen Typ der Anwendungsprogrammdaten 130 ermöglicht oder ermöglichen. Das Suchmodul 170 kann eine Suche nach einem Inhalt unter Verwendung der Metadaten 142 oder der Datei durchführen.
  • Die kreative Vorrichtung 108 umfasst auch ein Dokumentmodul 172 zum Bereitstellen von verschiedenen, mit einem Dokument zusammenhängenden Arbeitsabläufen, einschließlich elektronischer oder digitaler Signaturarbeitsabläufe, für den Nutzer. Das Dokumentmodul 172 kann Dokumente als die Inhalte 140 in der Datenspeichereinheit 112 speichern oder kann einen separaten Dokumentspeicher (nicht in der 1 gezeigt) bereitstellen.
  • Gemäß Ausführungsformen der vorliegenden Erfindung können Anwendungsprogramme 128 eine Anwendung, wie z.B. die Anwendung 210 von 2, umfassen, die das Erzeugen von Matten für Bilder erleichtert, die zum Extrahieren von Gegenständen von dem Bild verwendet werden. Eine solche Anwendung kann für die Nutzervorrichtung 102A bereitgestellt werden, so dass die Gegenstandsextraktionsanwendung mittels der Nutzervorrichtung arbeitet. In einer anderen Ausführungsform kann eine solche Gegenstandsextraktionseinrichtung als Zusatz oder Plug-in für eine Anwendung bereitgestellt werden, wie z.B. als Gestaltungs- oder Bildverarbeitungsanwendung.
  • Die 2 zeigt eine Beispielkonfiguration einer Betriebsumgebung, in der einige Implementierungen der vorliegenden Offenbarung gemäß verschiedener Ausführungsformen der vorliegenden Offenbarung eingesetzt werden können. Es sollte beachtet werden, dass diese und andere hier beschriebene Anordnungen nur als Beispiele angegeben sind. Andere Anordnungen und Elemente (z.B. Maschinen, Schnittstellen, Funktionen, Reihenfolgen und Gruppierungen von Funktionen, usw.) können zusätzlich oder anstelle der gezeigten Anordnungen und Elemente verwendet werden, und einige Elemente können aus Gründen der Klarheit vollständig weggelassen werden. Ferner sind viele der hier beschriebenen Elemente funktionelle Einheiten, die als diskrete oder verteilte Komponenten oder im Zusammenhang mit anderen Komponenten und in jedweder geeigneten Kombination und Stelle implementiert werden können. Verschiedene Funktionen, die hier so beschrieben sind, dass sie durch eine oder mehrere Einheit(en) durchgeführt werden können, können durch Hardware, Firmware und/oder Software durchgeführt werden. Beispielsweise können einige Funktionen durch einen Prozessor durchgeführt werden, der Anweisungen ausführt, die in einem Speicher gespeichert sind, wie es unter Bezugnahme auf die 8 weiter beschrieben ist.
  • Es sollte beachtet werden, dass die in der 2 gezeigte Betriebsumgebung 200 ein Beispiel für eine geeignete Betriebsumgebung ist. Von anderen Komponenten, die nicht gezeigt sind, umfasst die Betriebsumgebung 200 eine Anzahl von Nutzervorrichtungen, wie z.B. die Nutzervorrichtungen 202a und 202b bis 202n, das Netzwerk 204 und den oder die Server 208. Jede der in der 2 gezeigten Komponenten kann mittels jedweder Art von Rechenvorrichtung implementiert werden, wie z.B. einer oder mehrerer Rechenvorrichtung(en) 800, die im Zusammenhang mit der 8 beschrieben ist oder sind. Diese Komponenten können mittels des Netzwerks 204 miteinander kommunizieren, das drahtgebunden, drahtlos oder beides sein kann. Das Netzwerk 204 kann eine Mehrzahl von Netzwerken umfassen oder ein Netzwerk von Netzwerken, ist jedoch in einer einfachen Form gezeigt, so dass Aspekte der vorliegenden Offenbarung nicht unklar werden. Beispielsweise kann das Netzwerk 204 ein oder mehrere Weitbereichsnetzwerk(e) (WANs), ein oder mehrere lokale Netzwerk(e) (LANs), ein oder mehrere öffentliche(s) Netzwerk(e), wie z.B. das Internet, und/oder ein oder mehrere private(s) Netzwerk(e) umfassen. Wenn das Netzwerk 204 ein drahtloses Telekommunikationsnetzwerk umfasst, können Komponenten wie z.B. eine Basisstation, ein Kommunikationsturm oder sogar Zugangspunkte (sowie andere Komponenten) eine drahtlose Konnektivität bereitstellen. Netzwerkumgebungen sind in Büros, unternehmensweiten Computernetzwerken, Intranetzen und dem Internet üblich. Demgemäß wird das Netzwerk 204 nicht signifikant detailliert beschrieben.
  • Es sollte beachtet werden, dass jedwede Anzahl von Nutzervorrichtungen, Servern und anderen Komponenten innerhalb der Betriebsumgebung 200 innerhalb des Umfangs der vorliegenden Offenbarung eingesetzt werden kann. Jede davon kann eine einzelne Vorrichtung oder eine Mehrzahl von Vorrichtungen, die in einer verteilten Umgebung zusammenwirken, umfassen.
  • Bei den Nutzervorrichtungen 202a bis 202n kann es sich um jedwede Art von Rechenvorrichtung handeln, die durch einen Nutzer betrieben werden kann. Beispielsweise handelt es sich in einigen Implementierungen bei den Nutzervorrichtungen 202a bis 202n um den Typ von Rechenvorrichtung, wie sie in Bezug auf die 8 beschrieben ist. Beispielhaft und ohne Beschränkung kann eine Nutzervorrichtung ein Personalcomputer (PC), ein Laptopcomputer, eine mobile Vorrichtung, ein Smartphone, ein Tabletcomputer, eine Smartwatch, ein tragbarer Computer, ein persönlicher digitaler Assistent (PDA), ein MP3-Player, ein globales Positionierungssystem (GPS) oder -vorrichtung, ein Videoplayer, eine handgehaltenen Kommunikationsvorrichtung, ein(e) Spielvorrichtung oder -system, ein Unterhaltungssystem, ein Fahrzeugcomputersystem, eine eingebettete Systemsteuereinrichtung, eine Fernbedienung, ein Gerät, eine Konsumentenelektronikvorrichtung, eine Workstation, jedwede Kombination dieser angegebenen Vorrichtung oder jedwede andere geeignete Vorrichtung sein.
  • Die Nutzervorrichtungen können einen oder mehrere Prozessor(en) und ein oder mehrere computerlesbare(s) Medium oder Medien umfassen. Die computerlesbaren Medien können computerlesbare Anweisungen umfassen, die durch den einen oder die mehreren Prozessor(en) ausführbar sind. Die Anweisungen können durch eine oder mehrere Anwendung(en) implementiert werden, wie z.B. die Anwendung 210, die in der 2 gezeigt ist. Die Anwendung 210 wird aus Gründen der Einfachheit als eine einzelne Anwendung bezeichnet, jedoch kann deren Funktionalität in der Praxis durch eine oder mehrere Anwendung(en) implementiert werden. Wie es vorstehend angegeben ist, können die anderen Nutzervorrichtungen eine oder mehrere Anwendung(en) umfassen, die der Anwendung 210 ähnlich ist oder sind.
  • Die Anwendung(en) kann oder können im Allgemeinen jedwede Anwendung sein, die den Austausch von Informationen zwischen den Nutzervorrichtungen und dem oder den Server(n) 208 beim Durchführen einer Extraktion eines Vordergrundgegenstands von einem Bild unter Verwendung einer Matte erleichtern kann. In manchen Implementierungen umfasst oder umfassen die Anwendung(en) eine Webanwendung, die in einem Webbrowser laufen kann, und die mindestens teilweise auf der Serverseite der Umgebung 200 gehostet sein kann. Zusätzlich oder stattdessen kann oder können die Anwendung(en) eine spezielle Anwendung umfassen, wie z.B. eine Anwendung mit einer Bildverarbeitungsfunktionalität. In manchen Fällen ist die Anwendung in das Betriebssystem integriert (z.B. als Dienst). Es ist daher hier vorgesehen, dass „Anwendung“ breit interpretiert werden kann.
  • Gemäß hier angegebenen Ausführungsformen kann die Anwendung 210 das Extrahieren eines Gegenstands von einem Bild oder Foto unter Verwendung einer Matte erleichtern. Insbesondere kann ein Nutzer ein Bild oder Foto auswählen oder eingeben, von dem ein Gegenstand unter Verwendung einer Matte extrahiert werden soll. Ein Bild und/oder Foto kann in jedweder Weise ausgewählt oder eingegeben werden. Beispielsweise kann ein Nutzer ein Foto mittels einer Kamera an einer Vorrichtung aufnehmen, wie z.B. der Nutzervorrichtung 202a. Als weiteres Beispiel kann ein Nutzer ein gewünschtes Bild von einem Speicher auswählen, das z.B. in einem Datenspeicher gespeichert ist, auf den durch ein Netzwerk zugegriffen werden kann, oder das lokal in der Nutzervorrichtung 202a gespeichert ist. Auf der Basis des Eingabebilds kann ein Gegenstand von dem Eingabebild extrahiert werden und für den Nutzer mittels der Nutzervorrichtung 202a bereitgestellt werden. Zusätzlich kann ein Nutzer z.B. einen neuen Hintergrund für den extrahierten Gegenstand auswählen. Diesbezüglich kann das Kompositbild des extrahierten Gegenstands auf dem neuen Hintergrund mittels eines Anzeigebildschirms der Nutzervorrichtung angezeigt werden.
  • Wie es hier beschrieben ist, kann der Server 208 das Extrahieren von Vordergrundgegenständen von einem Bild unter Verwendung einer Matte mittels der Gegenstandsextraktionseinrichtung 206 erleichtern. Der Server 208 umfasst einen oder mehrere Prozessor(en) und ein oder mehrere computerlesbare(s) Medium oder Medien. Die computerlesbaren Medien umfassen computerlesbare Anweisungen, die durch den einen oder die mehreren Prozessor(en) ausführbar sind. Die Anweisungen können gegebenenfalls eine oder mehrere Komponente(n) der Gegenstandsextraktionseinrichtung 206 implementieren, was nachstehend detaillierter beschrieben ist.
  • Die Gegenstandsextraktionseinrichtung 206 kann ein neuronales Netzwerksystem trainieren und betreiben, um Vordergrundgegenstände von einem Bild unter Verwendung einer Matte zu extrahieren. Ein solches neuronales Netzwerksystem kann ein oder mehrere neuronale Netzwerk(e) umfassen, das oder die zum Erzeugen einer bestimmten Ausgabe trainiert ist oder sind. Beispielsweise kann ein neuronales Netzwerksystem ein erstes neuronales Netzwerk, wie z.B. ein neuronales Matting-Netzwerk, das Matten für Eingabebilder erzeugt, und ein zweites neuronales Netzwerk umfassen, wie z.B. ein neuronales Verfeinerungsnetzwerk, das verfeinerte Matten aus den Matten erzeugt, die durch das erste neuronale Netzwerk erzeugt worden sind.
  • Auf einem hohen Niveau trainiert die Gegenstandsextraktionseinrichtung 206 ein neuronales Netzwerksystem, das z.B. ein neuronales Matting-Netzwerk und ein neuronales Verfeinerungsnetzwerk umfasst. Zum Trainieren des neuronalen Matting-Netzwerks kann eine Matte unter Verwendung des neuronalen Matting-Netzwerks auf der Basis eines Eingabebilds erzeugt werden. Die Matte, die durch ein solches System erzeugt wird, kann vorhergesagte Alpha-Werte für Pixel in dem Eingabebild umfassen. Ein solches Eingabebild kann ein synthetisches Kompositbild sein, das durch Zusammenstellen eines Vordergrundgegenstands auf einem Hintergrund erzeugt wird. Ein Eingabebild bezieht sich allgemein auf ein Bild, das für das neuronale Netzwerksystem bereitgestellt wird, oder einen Teil davon. Eingabebilder, die zum Trainieren des neuronalen Matte-Netzwerks verwendet werden, können hier als Trainingsbilder oder Trainingseingabebilder bezeichnet werden. Typischerweise wird eine Trimap zusammen mit einem solchen Bild eingegeben. Eine Trimap wird verwendet, um dabei zu unterstützen, den Bereich des Bilds, für den eine Pixel-Vordergrund/Hintergrundzusammensetzung bestimmt werden muss, zu beschränken. Eine Trimap markiert im Allgemeinen bestimmte Bereiche eines Bilds als reinen Vordergrund und/oder reinen Hintergrund, wobei der Bereich, der den Vordergrundgegenstand umgibt, als unbekannt markiert wird, was anzeigt, dass es wahrscheinlich ist, dass Pixel in diesem Bereich ein Gemisch aus Vordergrund und Hintergrund sind. Diesbezüglich kann eine Trimap drei Bereiche umfassen, nämlich einen Vordergrundbereich aus reinen Vordergrundfarbpixeln, einen Hintergrundbereich aus reinen Hintergrundfarbpixeln und einen Mischbereich, bei dem Pixel eine unbekannte Kombination aus Vordergrund- und Hintergrundfarbe umfassen.
  • Eine Matte bezieht sich allgemein auf eine Matte, die erzeugt wird, um die Alpha-Werte von Pixeln anzugeben, die ein Bild umfasst. Matten, die gemäß dem Training des neuronalen Matting-Netzwerks erzeugt worden sind, können hier als Trainingsmatten bezeichnet werden. Die erzeugten Trainingsmatten können mit einer Referenzmatte verglichen werden, um das Training des neuronalen Matting-Netzwerks zu erleichtern. Diesbezüglich kann das neuronale Matting-Netzwerk auf der Basis des Vergleichs modifiziert oder eingestellt werden, so dass die Qualität von anschließend erzeugten Matten zunimmt. Ein Weg, mit dem die Qualität bestimmt werden kann, basiert auf der Genauigkeit der vorhergesagten Alpha-Werte für jedes Pixel, das die erzeugte Matte umfasst. Ein solches Training unterstützt dabei, Details eines Vordergrundgegenstands in einem Eingabebild während des Matting-Vorgangs aufrechtzuerhalten.
  • Gemäß hier beschriebenen Ausführungsformen kann ein Trainingseingabebild, das zum Erzeugen einer Trainingsmatte verwendet wird, durch Zusammenstellen eines extrahierten Vordergrundgegenstands und eines Hintergrunds erzeugt werden. Wie hier verwendet, bezieht sich eine Trainingsmatte auf eine Matte, die dem extrahierten Vordergrundgegenstand zugeordnet ist, der zum Zusammenstellen eines Trainingsbilds verwendet wird. Eine solche Referenzmatte wird als Standard oder „ground truth“ zum Bewerten der Qualität einer Matte verwendet, die aus dem Trainingsbild durch das neuronale Matting-Netzwerk erzeugt worden ist, und kann „ground truth“-Alpha-Werte für Pixel in dem Trainingsbild erhalten.
  • Zum Trainieren des neuronalen Verfeinerungsnetzwerks kann ein Trainingseingabebild, z.B. das Trainingseingabebild, das für das neuronale Matting-Netzwerk bereitgestellt wird, das mit einer Matte verbunden ist, z.B. der Matte, die durch das neuronale Matting-Netzwerk erzeugt worden ist, für das neuronale Verfeinerungsnetzwerk bereitgestellt werden. Ein solches neuronales Verfeinerungsnetzwerk erzeugt eine verfeinerte Matte aus dem Trainingseingabebild und der Matte, die verbunden sind. Obwohl das Bild, das durch das neuronale Verfeinerungsnetzwerk bereitgestellt wird, hier im Allgemeinen als das Trainingsbild bezeichnet wird, kann, wie es ersichtlich ist, das Bild das Trainingsbild sein, das in das neuronale Matting-Netzwerk eingegeben worden ist, wobei dies jedoch nicht der Fall sein muss. Als solche werden Bilder, die zum Trainieren des neuronalen Verfeinerungsnetzwerks verwendet werden, als Trainingsbilder bezeichnet. Zusätzlich zu oder alternativ zur Verwendung von Trainingsmatten, die durch das neuronale Matting-Netzwerk erzeugt werden, können gemäß hier beschriebener Ausführungsformen andere Trainingsmatten für das neuronale Verfeinerungsnetzwerk zum Trainieren bereitgestellt werden. Als solche können Matten, die zum Trainieren eines neuronalen Verfeinerungsnetzwerks verwendet werden, als Trainingsmatten bezeichnet werden. In Ausführungsformen gibt eine verfeinerte Matte eine schärfere und/oder klarere Matte wieder. Eine verfeinerte Matte bezieht sich allgemein auf eine verfeinerte Matte, die mittels eines neuronalen Verfeinerungsnetzwerks erzeugt worden ist. Eine verfeinerte Trainingsmatte bezieht sich auf eine verfeinerte Matte, die zum Trainieren des neuronalen Verfeinerungsnetzwerks verwendet wird. Eine Referenzmatte bezieht sich auf eine Matte, die als Standard zum Bewerten der Qualität einer verfeinerten Trainingsmatte verwendet wird. Eine solche Referenzmatte kann Alpha-Werte für Pixel enthalten, die zum Bestimmen der Genauigkeit von vorhergesagten Alpha-Werten einer Trainingsmatte und/oder eine verfeinerten Trainingsmatte verwendet werden.
  • In verschiedenen Implementierungen wird ein neuronales Netzwerksystem, das ein neuronales Matting-Netzwerk und ein neuronales Verfeinerungsnetzwerk umfasst, der Gegenstandsextraktionseinrichtung 206 mittels einer Mehrzahl von Trainingseingabebild/Trimap-Paaren zum Erzeugen von Trainingsmatten und verfeinerten Trainingsmatten iterativ trainiert. Dieses Trainingsverfahren kann separat für die Matte und die neuronalen Verfeinerungsnetzwerke oder gleichzeitig stattfinden. Bei jeder Iteration kann die Gegenstandsextraktionseinrichtung 206 ein Trainingsbild/Trimap-Paar und eine dazugehörige Referenzmatte auswählen. Die Gegenstandsextraktionseinrichtung 206 nutzt ein neuronales Matting-Netzwerk zum Erzeugen einer Trainingsmatte aus dem Eingabetrainingsbild/Trimap-Paar. Die Trainingsmatte kann dann mit der Referenzmatte verglichen werden, um jedwede Fehler zu berechnen. Weitere Fehler können durch die Verwendung der Trainingsmatte und der Referenzmatte zum Extrahieren des Gegenstands von dem Eingabebild, Anordnen der extrahierten Gegenstände auf einem neuen Hintergrund und dann Bestimmen der Differenzen zwischen den zwei Trainingskompositbildern bestimmt werden. Solche Fehler können dann durch das neuronale Matting-Netzwerk zurückgeführt werden, um dem Netzwerk zu lernen, solche Fehler in zukünftigen Iterationen zu vermindern. Diese Fehler können auf der Genauigkeit der vorhergesagten Alpha-Werte der Trainingsmatte beruhen, und zwar verglichen mit den „ground truth“-Alpha-Werten der Referenzmatte.
  • Die Gegenstandsextraktionseinrichtung 206 kann dann ein neuronales Verfeinerungsnetzwerk zum Verfeinern einer Matte verwenden, z.B. zum Verfeinern der Trainingsmatte des neuronalen Matting-Netzwerks. Eine solche Matte kann zusammen mit dem Trainingsbild eingegeben werden, das zum Erzeugen der Trainingsmatte verwendet wird. Das neuronale Verfeinerungsnetzwerk kann eine verfeinerte Trainingsmatte ausgeben. Die verfeinerte Trainingsmatte kann dann mit der Referenzmatte verglichen werden, um jedwede Fehler zu berechnen. Solche Fehler werden dann durch das neuronale Verfeinerungsnetzwerk zurückgeführt, um dem Netzwerk zu lernen, solche Fehler in zukünftigen Iterationen zu vermindern. Diese Fehler können auf der Genauigkeit von vorhergesagten Alpha-Werten der verfeinerten Trainingsmatte beruhen, und zwar verglichen mit den „ground truth“-Alpha-Werten der Referenzmatte.
  • Für Implementierungen auf Cloudbasis können die Anweisungen auf dem Server 208 eine oder mehrere Komponente(n) der Gegenstandsextraktionseinrichtung 206 implementieren und die Anwendung 210 kann durch einen Nutzer für eine Schnittstellenbildung mit der Funktionalität genutzt werden, die auf dem oder den Server(n) 208 implementiert ist. In manchen Fällen kann die Anwendung 210 einen Webbrowser umfassen. In anderen Fällen kann der Server 208 nicht erforderlich sein. Beispielsweise können die Komponenten der Gegenstandsextraktionseinrichtung 206 vollständig auf einer Nutzervorrichtung implementiert sein, wie z.B. der Nutzervorrichtung 202a. In diesem Fall kann die Gegenstandsextraktionseinrichtung 206 mindestens teilweise durch die Anweisungen implementiert sein, die der Anwendung 210 entsprechen.
  • Folglich sollte beachtet werden, dass die Gegenstandsextraktionseinrichtung 206 mittels einer Mehrzahl von Vorrichtungen bereitgestellt sein kann, die in einer verteilten Umgebung angeordnet sind, die zusammen die hier beschriebene Funktionalität bereitstellt. Zusätzlich können andere Komponenten, die nicht gezeigt sind, ebenfalls in die verteilte Umgebung einbezogen sein. Zusätzlich oder stattdessen kann die Gegenstandsextraktionseinrichtung 206 zumindest teilweise in eine Nutzervorrichtung, wie z.B. die Nutzervorrichtung 202a, einbezogen sein. Ferner kann die Gegenstandsextraktionseinrichtung 206 zumindest teilweise als Cloudrechendienst implementiert sein.
  • Unter Bezugnahme auf die 3 sind Aspekte eines veranschaulichenden Gegenstandsextraktionssystems gemäß verschiedener Ausführungsformen der vorliegenden Offenbarung gezeigt. Die Gegenstandsextraktionseinrichtung 302 umfasst ein Trainingsmodul 304, ein Matting-Modul 310 und einen Datenspeicher 312. Die vorstehend genannten Komponenten der Gegenstandsextraktionseinrichtung 302 können z.B. in der Betriebsumgebung 200 von 2 implementiert werden. Insbesondere können diese Komponenten in jedwede geeignete Kombination von Nutzervorrichtungen 202a und 202b bis 202n und (einem) Server(n) 208 integriert werden.
  • Der Datenspeicher 312 kann Computeranweisungen (z.B. Softwareprogrammanweisungen, Routinen oder Dienste), Daten und/oder Modelle speichern, die in den hier beschriebenen Ausführungsformen verwendet werden. In einigen Implementierungen speichert der Datenspeicher 312 Informationen oder Daten, die über die verschiedenen Komponenten der Gegenstandsextraktionseinrichtung 302 erhalten worden sind, und versieht die verschiedenen Komponenten gegebenenfalls mit einem Zugang zu diesen Informationen oder Daten. Obwohl er als eine einzelne Komponente gezeigt ist, kann der Datenspeicher 312 als ein oder mehrere Datenspeicher zum Speichern implementiert sein. Ferner können die Informationen in dem Datenspeicher 312 in jedweder geeigneten Weise über einen oder mehrere Datenspeicher zum Speichern (der oder die extern gehostet sein kann oder können) verteilt sein.
  • In Ausführungsformen umfassen Daten, die in dem Datenspeicher 312 gespeichert sind, Trainingsdaten 316. Die Trainingsdaten beziehen sich allgemein auf Daten, die z.B. zum Trainieren eines neuronalen Netzwerks verwendet werden, oder einen Teil davon. Als solche können die Trainingsdaten 316 Referenzmatten, extrahierte Vordergrundreferenzgegenstände, Referenzkompositbilder, Hintergrundbilder, Trainingsbilder, Trainingsmatten, verfeinerte Trainingsmatten, extrahierte Vordergrundtrainingsgegenstände, Trainingskompositbilder und/oder Trainingstrimaps umfassen. In manchen Fällen können die Daten durch die Gegenstandsextraktionseinrichtung 302 von Nutzervorrichtungen empfangen werden (z.B. ein Eingabebild/Trimap, das durch die Nutzervorrichtung 202a oder eine andere Vorrichtung, die einem Nutzer zugeordnet ist, mittels z.B. der Anwendung 210 empfangen worden ist). In anderen Fällen können Daten von einem oder mehreren Datenspeicher(n) in der Cloud empfangen werden.
  • Der Datenspeicher 312 kann auch zum Speichern eines neuronalen Netzwerksystems 314 verwendet werden. Ein solches neuronales Netzwerksystem kann ein oder mehrere neuronale(s) Netzwerk(e), wie z.B. ein neuronales Matting-Netzwerk und ein neuronales Verfeinerungsnetzwerk, umfassen.
  • Das Trainingsmodul 304 kann zum Trainieren des neuronalen Netzwerksystems 314 verwendet werden. Ein solches neuronales Netzwerksystem kann zum Erzeugen von Matten für Eingabebilder verwendet werden. In Ausführungsformen werden die Matten, die von einem neuronalen Netzwerksystem erzeugt werden, zum Extrahieren von Vordergrundgegenständen von Eingabebildern verwendet. Solche extrahierten Gegenstände können dann zum Erzeugen von Kompositbildern bearbeitet werden, z.B. durch Extrahieren eines Strandballs von einer Strandszene unter Verwendung einer Matte und Anordnen des extrahierten Strandballs auf einer Schneeszene. Wie es in der 3 gezeigt ist, umfasst das Trainingsmodul 304 eine Trainingsbildkomponente 306 und eine Trainingskomponente 308. Obwohl eine Trainingsbildkomponente und eine Trainingskomponente getrennt gezeigt sind, ist ersichtlich, dass die im Zusammenhang damit beschriebene Funktionalität durch jedwede Anzahl von Komponenten durchgeführt werden kann.
  • Die Trainingsbildkomponente 306 kann Trainingsbilder unter Verwendung von extrahierten Vordergrundreferenzgegenständen und Hintergrundbildern zum Erzeugen von synthetischen Kompositbildern erzeugen. Extrahierte Vordergrundreferenzgegenstände können von kontrastreichen Fotografien oder Bildern unter Verwendung von z.B. Photoshop® extrahiert werden. Solche kontrastreichen Fotografien oder Bilder können von verschiedenen Quellen erhalten werden. Beispielsweise können Bilder aus Frames von einem Video ausgewählt werden. Hintergrundbilder können Fotografien oder Bilder umfassen, die verschiedene Szenen und/oder Texturdetails enthalten. Hintergrundbilder können von verschiedenen Quellen erhalten werden. In einigen Ausführungsformen erzeugt die Trainingsbildkomponente 306 Trainingsbilder, die eine große Gruppierung von Farben, Texturen und Gegenständen umfassen, um sicherzustellen, dass das neuronale Netzwerksystem nach dem Beenden von dessen Training eine große Vielfalt von Farben, Mustern, Strukturen von Gegenständen und/oder Beziehungen zwischen Gegenständen erkennen kann, die in Eingabebildern abgebildet sind. Dadurch, dass die Trainingsbildkomponente 306 Kompositbilder mit ähnlichen Vordergrund- und Hintergrundfarben und komplexen Hintergrundtexturen zum Trainieren des neuronalen Netzwerksystems erzeugt, führt dies zu einem widerstandsfähigeren trainierten System, das Gegenstände von komplexen Bildern extrahieren kann.
  • Die Trainingsbildkomponente 306 kann auch zum Implementieren von Ergänzungsverfahren zum weiteren Vergrößeren des Datensatzes zum Trainieren eines neuronalen Netzwerksystems verwendet werden. Trainingsbilder können in verschiedenartiger Weise zum Erweitern des Datensatzes von Trainingsbildern ergänzt werden. Das Erweitern des Datensatzes in einer solchen Weise während des Trainings führt zu einem feiner abgestimmten System zum Erzeugen von Matten aus Eingabebildern, die weniger zu einem Überanpassen neigen. Ein Verfahren des Ergänzens umfasst ein Zuschneiden von 320 x 320-Bild/Trimap-Paaren, die auf Pixeln in unbekannten Bereichen zentriert sind, zum Vergrößern des Samplingraums. Zusätzlich oder alternativ können Bild/Trimap-Paare auf verschiedene Größen zugeschnitten werden, wie z.B. 480 x 480 oder 640 x 640, und dann kann deren Größe auf 320 x 320 eingestellt werden, um das Verfahren bezüglich des Maßstabs widerstandsfähiger zu machen und einen Kontext und eine Semantik besser zu lernen. Ein anderes Verfahren umfasst das Umdrehen der Orientierung von extrahierten Referenzgegenständen. Zusätzlich kann die Trimap für jedes Trainingsbild/Trimap-Paar für verschiedene Trainingsiterationen modifiziert werden und/oder unter Verwendung der Referenzmatte für eine widerstandsfähigere Trimapanordnung modifiziert werden. Ein solcher ergänzter Datensatz kann z.B. in den Trainingsdaten 316 in dem Datenspeicher 312 gespeichert werden.
  • Die Trainingsbildkomponente 306 kann auch zum Erzeugen von Trainingstrimaps verwendet werden. Trimaps werden verwendet, um dabei zu unterstützen, den Bereich eines Bilds, für den die Pixel-Vordergrund/Hintergrund-Zusammensetzung bestimmt werden muss, zu beschränken. Als solche können Trimaps Bereiche eines Bilds angeben, für die es wahrscheinlich ist, dass Pixel ein Gemisch aus Vordergrundinformationen und Hintergrundinformationen sind, und folglich muss ein Alpha-Wert bestimmt werden, um die Prozentsätze des Gemischs zu lösen. Trimaps können durch einen Nutzer erzeugt werden, der unbekannte Bereiche eines Trainingsbilds auswählt. Beispielsweise kann ein Nutzer Abschnitte eines Trainingsbilds verfolgen und/oder kennzeichnen und angeben, ob ein verfolgter und/oder gekennzeichneter Abschnitt ein bekannter Vordergrund, bekannter Hintergrund oder ein unbekannter Bereich ist. Alternativ können Trimaps durch eine binäre Auswahl unter Verwendung z.B. von Werkzeugen innerhalb von Photoshop® erzeugt werden, wobei ein unbekannter Bereich um den Vordergrundgegenstand eines Bilds gekennzeichnet wird und ein Regler („slider“) zum Erweitern/Kontrahieren des Bands zum Umfassen der unbekannten Bereiche verwendet werden kann. Ein weiteres Verfahren umfasst die Verwendung eines Algorithmus zum Erzeugen einer Trimap; dieses Verfahren kann verwendet werden, wenn der Gegenstand bekannt ist, z.B. wenn das Bild eine Person ist, kann ein Algorithmus so trainiert werden, dass er erkennt, dass ein größeres Band um Bereiche erforderlich ist, die Haar enthalten, und dünnere Bänder um Bereiche von Haut und/oder glatter Kleidung erforderlich sind.
  • Die Trainingskomponente 308 kann ein Trainingsbild zum Trainieren eines neuronalen Netzwerksystems auswählen, z.B. zum Trainieren eines neuronalen Netzwerks innerhalb eines solchen Systems. Ein solches Trainingsbild kann z.B. mittels der Trainingsbildkomponente 306 erzeugt werden. Alternativ kann ein solches Trainingsbild z.B. aus den Trainingsdaten 316 in dem Datenspeicher 312 ausgewählt werden. Ein Trainingsbild kann einen extrahierten Trainingsgegenstand mit einem Hintergrundbild umfassen, wobei ein synthetisches Kompositbild erzeugt wird. Zusätzlich zu einem Trainingsbild kann die Trainingskomponente 308 eine Trimap auswählen, die dem Trainingsbild entspricht. Beispielsweise kann die Trimap die Pixel des Trainingsbilds angeben, die reiner Vordergrund und reiner Hintergrund sind, sowie die Pixel mit unbekannten Vordergrund- und Hintergrundinformationen, die potenziell ein Gemisch aus sowohl Vordergrund als auch Hintergrund sind. Das neuronale Matting-Netzwerk gibt eine Matte aus Trainingseingabebild/Trimap, die verbunden sind, aus. Eine solche Ausgabematte kann auf vorhergesagten Alpha-Werten für die Pixel des Trainingsbilds basieren. Die Erzeugung einer solchen Matte kann z.B. durch Downsampling von Trainingseingabebild/Trimap zu einer niedrigeren Dimension erreicht werden. Auf der Basis des downgesampelten Trainingseingabebild- und Trimap-Paars wird eine Abfolge von nicht-linearen Transformationen unter Verwendung einer Anzahl von Filtern angewandt, so dass eine Trainingsmatte erzeugt wird. Danach wird die Trainingsmatte einem Upsampling zu der gewünschten Ausgabegröße unterzogen.
  • Eine Implementierung nutzt eine Kodierer-Dekodierer-artige Architektur. Insbesondere kann die Architektur eine Vierkanaleingabe in ein Kodierernetzwerk sein. Die Eingabe in das Kodierernetzwerk wird unter Verwendung nachfolgender Faltungsschichten und Max pooling-Schichten in downgesampelte Merkmalsmaps umgewandelt. Als nächstes nutzt ein Dekodierernetzwerk nachfolgende Unpoolingschichten zum Umkehren der Max pooling-Vorgänge und Faltungsschichten zum Upsampling der Merkmalsmaps in eine Trainingsmatte. Ein solches Kodierernetzwerk kann z.B. 14 Faltungsschichten und 5 Max pooling-Schichten aufweisen. Jede Schicht wird zum Analysieren bestimmter Merkmale und/oder Elemente des Eingabebilds trainiert. Beispielsweise kann die erste Schicht zum Erfassen von Kanten, Farben und/oder Mustern trainiert werden. Ein solches Netzwerk kann eine asymmetrische Struktur zum Vermindern der Anzahl von Parametern, wie es nachstehend beschrieben ist, und zum Beschleunigen des Trainingsvorgangs nutzen. Insbesondere kann der Dekodierungsabschnitt des Netzwerks z.B. sechs Faltungsschichten, fünf Unpoolingschichten und eine letzte Alpha-Vorhersageschicht aufweisen. Die letzte Schicht des Netzwerks kann eine Alpha-Vorhersageschicht sein, wobei die Alpha-Werte für das Trainingseingabebild vorhergesagt werden.
  • Das neuronale Matting-Netzwerk kann dann durch Bewerten von verschiedenen Verlusttypen zum Bestimmen von jedweden Fehlern oder Diskrepanzen zwischen diesen trainiert werden, wie es nachstehend detaillierter beschrieben wird. Fehler können Ungenauigkeiten, Fehlstellen, Variationen und/oder Divergenzen zwischen der Trainingsausgabe und der gewünschten Ausgabe umfassen, die häufig als „ground truth“ oder Ausgabe bezeichnet werden, wenn das Netzwerk perfekt trainiert worden ist. Solche Fehler können durch Vergleichen von Parametern der Trainingsausgabe und des „ground truth“ zum Ermitteln einer Verlustfunktion bestimmt werden. In einigen Ausführungsformen umfasst das Aktualisieren des neuronalen Netzwerks das Zurückführen von Fehlern durch das neuronale Matting-Netzwerk, so dass der Algorithmus Netzwerkverbindungen einstellen kann, um den Wert des Fehlers zu vermindern.
  • Das Einstellen des neuronalen Netzwerks zum Korrigieren von Fehlern wird durch Verändern mindestens eines Knotenparameters eines solchen neuronalen Matting-Netzwerks erreicht. Das neuronale Matting-Netzwerk kann eine Mehrzahl von verbundenen Knoten umfassen, wobei jedem Knoten ein Parameter oder eine Gewichtung zugeordnet ist. Während beim Training eines neuronalen Netzwerks individuelle Parameter nicht festgelegt werden müssen, neigt das Netzwerk dazu, Parameter zu lernen, die eine Kantenerfassung, die RGB-Farbe, Texturen von Merkmalen, die Rauheit und/oder die Unschärfe einer Matte oder eines unter Verwendung der Matte erzeugten Kompositbilds identifizieren. Jeder Knoten empfängt Eingaben von einer Mehrzahl von anderen Knoten und kann auf der Basis der Kombination aller dieser Eingaben aktivieren, z.B. wenn die Summe der Eingabesignale über einer Schwelle liegt. Der Parameter kann die Eingabesignale verstärken oder dämpfen. Beispielsweise könnte ein Parameter ein Wert zwischen Null und Eins sein. Die Eingaben von jedem Knoten können vor dem Summieren durch einen Parameter gewichtet werden, oder, mit anderen Worten, mit dem Parameter multipliziert werden. Auf diese Weise können die Parameter die Stärke der Verbindung zwischen jedem Knoten und dem nachfolgenden Knoten steuern. Beispielsweise kann für einen gegebenen Knoten ein erster Parameter eine stärkere Gewichtung für eine Eingabe von einem ersten Knoten bereitstellen, während ein zweiter Parameter eine geringere Gewichtung für eine Eingabe von einem zweiten Knoten bereitstellen kann. Als Ergebnis verstärken die Parameter die Verbindung mit dem ersten Knoten, was es wahrscheinlicher macht, dass ein Signal von dem ersten Knoten eine Aktivierung des gegebenen Knotens bewirken wird, während es weniger wahrscheinlich wird, dass Eingaben von dem zweiten Knoten eine Aktivierung verursachen werden.
  • Fehler können z.B. unter Verwendung von Verlustfunktionen, wie z.B. eines Pixelverlusts, eines Zusammensetzungsverlusts oder dergleichen bestimmt werden. Fehler, die unter Verwendung von Verlustfunktionen bestimmt werden, werden zum Minimieren des Verlusts in dem neuronalen Matting-Netzwerk durch eine Rückwärtsausbreitung solcher Fehler durch das Netzwerk verwendet.
  • In Ausführungsformen können Fehler durch Bewerten eines Pixelverlusts bestimmt werden, welcher die absolute Differenz zwischen Werten einer Referenzmatte oder „ground truth“-Matte und der Trainingsmatte für Alpha-Werte bei jedem Pixel ist. Der Pixelverlust kann durch Vergleichen des Schwarz/Weiß-Prozentsatzes, der Farbdifferenzen und/oder der Alpha-Werte zwischen Pixeln der Referenzmatte und der entsprechenden Pixel der Trainingsmatte analysiert werden. Dies kann durch Ermitteln der durchschnittlichen Differenzen pro Pixel zwischen der Referenzmatte und der Trainingsmatte bestimmt werden. Eine Beispielgleichung, die zur Bestimmung des Pixelverlusts verwendet werden kann, ist L α i = ( α p i α g i ) 2 + ε 2 α p i , α g i [ 0 ,1 ] ;
    Figure DE102017010210A1_0001
    wobei α p i
    Figure DE102017010210A1_0002
    die Ausgabe der Vorhersageschicht bei dem Pixel i ist. α p i
    Figure DE102017010210A1_0003
    kann ferner auf einen Wert zwischen Null und Eins eingestellt werden. α g i
    Figure DE102017010210A1_0004
    ist der „ground truth“-Alpha-Wert bei dem Pixel i. ∈ ist ein kleiner Wert, der auf 10-6 eingestellt werden kann.
  • In Ausführungsformen können Fehler durch Bewerten des Zusammensetzungsverlusts bestimmt werden. Der Zusammensetzungsverlust kann durch Berechnen der Differenzen zwischen den „ground truth“-RGB-Farben und den vorhergesagten RGB-Farben von zusammengesetzten Bildern ermittelt werden. Solche zusammengesetzten Bilder können unter Verwendung der Referenzmatte auf der Basis der vorhergesagten Alpha-Werte und der Trainingsmatte auf der Basis der „ground truth“-Alpha-Werte zum Extrahieren des Gegenstands von dem Eingabebild und dann Anordnen des Gegenstands auf einem neuen Hintergrund erzeugt werden. Die zwei zusammengesetzten Bilder können dann bei jedem Pixel verglichen werden, um jedwede Differenzen zu bestimmen. Eine Beispielgleichung für die Näherung des Zusammensetzungsverlusts ist L c i = ( c p i c g i ) 2 + ε 2 ;
    Figure DE102017010210A1_0005
    wobei c jeden Kanal des RGB-Bilds bezeichnet, p das Bild bezeichnet, das aus der Trainingsmatte zusammengesetzt ist, und g das Bild bezeichnet, das aus der Referenzmatte zusammengesetzt ist. Der Zusammensetzungsverlust beschränkt das Netzwerk dahingehend, dem Zusammensetzungsvorgang zu folgen, was üblicherweise zu genaueren Mattenvorhersagen führt.
  • Da die Alpha-Werte innerhalb der unbekannten Bereiche von Trimaps, wo es wahrscheinlich ist, dass Pixel ein Gemisch aus Vordergrund- und Hintergrundinformationen sind, lediglich abgeleitet werden müssen, können die Gewichtungen des Pixelverlusts und des Zusammensetzungsverlusts gemäß den Pixelpositionen eingestellt werden, was das Netzwerk dabei unterstützen kann, eine größere Aufmerksamkeit auf wichtige Bereiche eines Trainingsbilds zu legen. Insbesondere ist wi = 1, wenn sich das Pixel i innerhalb des unbekannten Bereichs der Trimap befindet, wohingegen wi= 0 ist, wenn sich das Pixel i außerhalb des unbekannten Bereichs der Trimap befindet.
  • Die Trainingskomponente 308 kann ferner ein neuronales Verfeinerungsnetzwerk trainieren. Diesbezüglich kann eine Trainingsmatte, wie z.B. die Trainingsmatte, die durch das neuronale Mattierungsnetzwerk ausgegeben wird, für ein neuronales Netzwerksystem bereitgestellt werden, insbesondere ein neuronales Verfeinerungsnetzwerk innerhalb eines solchen Systems. Darüber hinaus kann für eine solche Trainingsmatte ein Eingabebild für das neuronale Verfeinerungsnetzwerk bereitgestellt werden. Ein solches Eingabebild kann z.B. das Eingabebild sein, das für das neuronale Matting-Netzwerk bereitgestellt wird, für das die Trainingsmatte erzeugt worden ist. Wie es beschrieben ist, kann eine Trainingsmatte durch das neuronale Matting-Netzwerk erzeugt werden. Alternativ kann eine Trainingsmatte und deren zugeordnetes Trainingsbild aus Trainingsdaten 316 in dem Datenspeicher 312 ausgewählt werden. Das neuronale Verfeinerungsnetzwerk kann eine verfeinerte Trainingsmatte auf der Basis einer Eingabetrainingsmatte und deren entsprechendem Trainingseingabebild erzeugen. Das neuronale Verfeinerungsnetzwerk kann dann durch Bewerten von Unterschieden zwischen einer Referenzmatte und der trainierten verfeinerten Matte zur Bestimmung von jedweden Fehlern oder Unterschieden zwischen diesen trainiert werden. In solchen Ausführungsformen umfasst das Modifizieren oder Trainieren des neuronalen Netzwerks das Rückführen solcher Fehler durch das neuronale Verfeinerungsnetzwerk, so dass der Algorithmus Netzwerkverbindungen einstellen kann, um den Wert des Fehlers zu vermindern.
  • Eine Implementierung nutzt ein erweitertes Netzwerk, um die Ausgabe des neuronalen Matting-Netzwerks weiter zu verfeinern, um jedwede übermäßig glatten Ergebnisse und/oder andere Fehler zu glätten. Dieses erweiterte Netzwerk ermöglicht genauere Matten mit schärferen Kanten. Die Eingabe in das neuronale Verfeinerungsnetzwerk ist eine Verbindung eines Trainingsbilds und dessen Matte von dem neuronalen Matting-Netzwerk. Eine solche Eingabe kann zwischen 0 und 255 skaliert werden, was zu einer Vierkanaleingabe führt. Die Ausgabe des erweiterten Netzwerks ist eine trainierte verfeinerte Matte. Ein solches erweitertes Netzwerk kann ein vollständiges Faltungsnetzwerk sein, das vier Faltungsschichten umfasst, wobei den ersten drei Schichten nicht-lineare gleichgerichtete lineare Einheitschichten folgen können, welche die nicht-linearen Eigenschaften des Netzwerks verstärken können, ohne die Faltungsschichten zu beeinflussen. Dieses erweiterte Netzwerk muss keinerlei Downsampling-Schichten nutzen, um Details zu bewahren, die während des Downsampling/Upsampling-Vorgangs des neuronalen Matting-Netzwerks verlorengegangen sein könnten. Ein solches Netzwerk kann eine Skip-Modell-Struktur nutzen, bei welcher der vierte Kanal der Eingabedaten zwischen Null und Eins skaliert ist und dann diesem die Ausgabe des Netzwerks hinzugefügt wird.
  • Ein erweitertes neuronales Netzwerk kann große Bilder in Kacheln aufteilen und die Eingabebildkacheln durch das neuronale Matting-Netzwerk schicken, wenn ein Bild, das für das neuronale Matting-Netzwerk zu groß ist, verarbeitet werden soll. Eingabebilder können in Bildkacheln aufgeteilt werden, wenn das neuronale Netzwerksystem, insbesondere das neuronale Matting-Netzwerk, das Eingabebild in dessen voller Größe nicht verarbeiten kann. Wenn das Eingabebild mittels einer CPU verarbeitet wird, kann das System größere Bilder verarbeiten, jedoch kann es sich dabei um ein viel langsameres Verfahren handeln. Das Verarbeiten von Eingabebildern mittels der GPU ermöglicht eine viel schnellere Verarbeitung, jedoch kann dies zu kleineren Eingabebildern führen. Die Größe des Bilds, die das neuronale Matting-Netzwerk verarbeiten kann, hängt von den Fähigkeiten der GPU ab, die zum Betreiben des neuronalen Matting-Netzwerks verwendet wird. Beispielsweise wird eine High end-GPU mit zwölf Gigabite größere Bilder verarbeiten können als eine typische Konsumenten-GPU mit zwei Gigabite. Um eine solche Kachelbildung eines Bilds zu erreichen, könnte das Eingabebild in überlappende kleinere Bilder, z.B. 500 x 500 mit 50 Pixel Überlappung, aufgeteilt werden. Das Kachelbilden von Eingabebildern für das neuronale Matting-Netzwerk kann zu Artefakten beim Übergang von einer Kachel zur nächsten nach dem Zusammenstellen der Kachelbilder zu einem fertigen Bild resultieren. Als solches kann ein neuronales Verfeinerungsnetzwerk zum Entfernen von jedweden solcher Artefakte trainiert werden. In Ausführungsformen kann das neuronale Verfeinerungsnetzwerk als solches trainiert werden, da das neuronale Verfeinerungsnetzwerk eine geringere Rechenleistung erfordert und daher das gesamte Eingabebild ohne Kachelbildung verarbeiten kann.
  • Alternativ oder zusätzlich kann das neuronale Verfeinerungsnetzwerk das Betreiben des neuronalen Matting-Netzwerks bei einer niedrigeren Auflösung und dann das Upsampling zu einer gewünschten Auflösung zum Erzeugen der Ausgabematte ermöglichen. Das neuronale Verfeinerungsnetzwerk kann in einer solchen Implementierung zum Entfernen und/oder Reparieren von jeder Unschärfe und/oder zum Schärfen der Mattenausgabe durch das neuronale Matting-Netzwerk trainiert werden.
  • Das Einstellen des neuronalen Netzwerks zum Korrigieren von Fehlern wird durch Verändern mindestens eines Knotenparameters eines solchen neuronalen Verfeinerungsnetzwerks erreicht. Das neuronale Verfeinerungsnetzwerk kann eine Mehrzahl von miteinander verbundenen Knoten umfassen, wobei jedem Knoten ein Parameter oder eine Gewichtung zugeordnet ist. Jeder Knoten empfängt Eingaben von einer Mehrzahl anderer Knoten und kann auf der Basis der Kombination aller dieser Eingaben aktivieren, z.B. wenn die Summe der Eingabesignale über einer Schwelle liegt. Der Parameter kann die Eingabesignale verstärken oder dämpfen. Beispielsweise könnte ein Parameter ein Wert zwischen Null und Eins sein. Die Eingaben von jedem Knoten können vor dem Summieren durch einen Parameter gewichtet werden, oder, mit anderen Worten, mit dem Parameter multipliziert werden. Auf diese Weise können die Parameter die Stärke der Verbindung zwischen jedem Knoten und dem nächsten einstellen. Beispielsweise kann für einen gegebenen Knoten ein erster Parameter eine stärkere Gewichtung für eine Eingabe von einem ersten Knoten bereitstellen, während ein zweiter Parameter eine geringere Gewichtung für eine Eingabe von einem zweiten Knoten bereitstellen kann. Als Ergebnis können die Parameter die Verbindung zu dem ersten Knoten verstärken, was es wahrscheinlicher macht, dass ein Signal von dem ersten Knoten eine Aktivierung des gegebenen Knotens verursacht, während es weniger wahrscheinlich wird, dass Eingaben von dem zweiten Knoten eine Aktivierung verursachen.
  • In Ausführungsformen werden Fehler durch Bewerten von Unterschieden zwischen einer Referenzmatte und der trainierten verfeinerten Matte unter Verwendung jedweder Anzahl von Verfahren bestimmt. Zu diesem Zweck kann das Netzwerk durch Bewerten von Unterschieden zwischen einer Referenzmatte und der verfeinerten Trainingsmatte, die durch das neuronale Verfeinerungsnetzwerk erzeugt worden ist, trainiert werden. Das Training umfasst das Modifizieren des neuronalen Netzwerks auf der Basis der Unterschiede zwischen der Referenzmatte und der verfeinerten Trainingsausgabematte. Eine solche Modifizierung des neuronalen Netzwerks kann das Verändern mindestens eines der Knotenparameter umfassen.
  • Fehler können unter Verwendung von Verlustfunktionen bestimmt werden, die zum Minimieren des Verlusts in dem neuronalen Trainingsnetzwerk durch eine Rückwärtsausbreitung solcher Fehler durch das Netzwerk verwendet werden. Beispielsweise können solche Unterschiede durch Bestimmen eines Pixelverlusts analysiert werden, der die Absolutdifferenz zwischen Referenzmatte-Werten und den verfeinerten Trainingsmatte-Werten bei jedem Pixel ist. Der Pixelverlust kann durch Vergleichen der Differenzen zwischen Pixeln der Referenzmatte auf der Basis von weiteren vorhergesagten Alpha-Werten und den entsprechenden Pixeln der verfeinerten Trainingsmatte auf der Basis von „ground truth“-Alpha-Werten analysiert werden. Dies kann durch Ermitteln der durchschnittlichen Differenzen pro Pixel zwischen der Referenzmatte und der verfeinerten Trainingsmatte bestimmt werden. Eine Beispielgleichung, die zum Bestimmen des Pixelverlusts verwendet werden kann, ist L α i = ( α p i α g i ) 2 + ε 2 α p i , α g i [ 0 ,1 ] ;
    Figure DE102017010210A1_0006
    wobei α p i
    Figure DE102017010210A1_0007
    die Ausgabe der Vorhersageschicht bei dem Pixel i ist und ferner zwischen Null und Eins eingestellt ist. α g i
    Figure DE102017010210A1_0008
    ist der „ground truth“-Alpha-Wert bei dem Pixel i. ∈ ist ein kleiner Wert, der auf 10-6 eingestellt werden kann.
  • Bei der Ausführung kann ein neuronales Netzwerksystem, das gemäß der vorliegenden Offenbarung trainiert ist, zum Extrahieren von Vordergrundgegenständen von Eingabebildern unter Verwendung einer erzeugten Matte auf der Basis von vorhergesagten Alpha-Werten für das Eingabebild verwendet werden. Ein solches Matting und eine solche Gegenstandsextraktion können unter Verwendung des Matting-Moduls 310 durchgeführt werden. Wie es ersichtlich ist, kann ein trainiertes neuronales Netzwerksystem, wie z.B. ein trainiertes neuronales Matting-Netzwerk und ein trainiertes neuronales Verfeinerungsnetzwerk, durch das Matting-Modul zum Erzeugen von Matten zur Verwendung bei der Extraktion von Vordergrundgegenständen von Bildern verwendet werden. Das Verfahren zum Erzeugen von Matten kann dem Verfahren ähnlich sein, das bezüglich des Trainierens des neuronalen Netzwerksystems beschrieben worden ist, jedoch werden bei der Ausführung Eingabebilder typischerweise nicht als synthetische Kompositbilder erzeugt, wie dies bei den Trainingseingabebildern während des Trainings der Fall ist. Es sollte beachtet werden, dass ein solches neuronales Netzwerksystem sowohl ein neuronales Matting-Netzwerk als auch ein neuronales Verfeinerungsnetzwerk umfassen kann, jedoch in einigen Ausführungsformen das neuronale Verfeinerungsnetzwerk nicht erforderlich ist und das neuronale Netzwerksystem nur das neuronale Matting-Netzwerk und/oder zusätzliche trainierte neuronale Netzwerke umfassen kann.
  • In Ausführungsformen kann das Matting-Modul 301 zum Betreiben eines trainierten neuronalen Netzwerksystems zum Erzeugen einer Matte für ein Eingabebild verwendet werden, wobei Alpha-Werte für die Pixel des Eingabebilds durch das trainierte neuronale Netzwerksystem vorhergesagt werden. Ein Bild kann von einem Nutzer bei einer Nutzervorrichtung empfangen werden. Insbesondere kann ein Nutzer ein Bild oder Foto, von dem ein Gegenstand unter Verwendung einer Matte extrahiert werden soll, auswählen oder eingeben. Ein solches Bild kann ein Foto umfassen, das durch einen Nutzer mittels einer Rechenvorrichtung aufgenommen worden ist, wie z.B. solchen, die in Bezug auf die 8 beschrieben sind. Ein Bild und/oder Foto kann in irgendeiner Weise ausgewählt oder eingegeben werden. Beispielsweise kann ein Nutzer ein Foto mittels einer Kamera an einer Vorrichtung aufnehmen, wie z.B. der Nutzervorrichtung 202a von 2. Als ein weiteres Beispiel kann ein Nutzer ein gewünschtes Bild von einem Speicher auswählen, das z.B. in einem Datenspeicher gespeichert ist, der durch ein Netzwerk zugänglich ist, oder das lokal bei der Nutzervorrichtung 202a von 2 gespeichert ist. In anderen Ausführungsformen kann ein Nutzer das Bild durch Eingeben eines Links oder einer URL für ein Bild eingeben. Alternativ könnte ein Nutzer ein Bild aus einer Gruppe von Bildern auswählen, die in einer Datenbank gespeichert sind, wie z.B. dem Datenspeicher 312 von 3. Zusätzlich zu dem Eingabebild kann eine dazugehörige Trimap eingegeben werden. Eine solche Trimap kann durch einen Nutzer eingegeben werden oder durch Nutzen eines Algorithmus ohne Nutzerinteraktion. Auf der Basis des Eingabebilds und in manchen Ausführungsformen einer dazugehörigen Trimap kann eine Matte für das Eingabebild durch das Matting-Modul erzeugt werden.
  • Ein solches trainiertes neuronales Netzwerksystem kann eine Matte für Bilder erzeugen, die dazugehörige Trimaps aufweisen, wobei alle oder der größte Teil der Pixel als gemischter Vordergrund/Hintergrund bezeichnet werden. Mit anderen Worten, Bilder mit Trimaps, wobei jedes oder der größte Teil der Pixel für ein Gemisch eines Vordergrund/Hintergrund-Prozentsatzes gelöst werden muss. Beispielsweise führt ein Bild eines Spinnennetzes vor einem Waldhintergrund dazu, dass der größte Teil des Bilds als unbekannter Bereich zum Lösen bezüglich eines Vordergrund/Hintergrund-Prozentsatzes markiert wird.
  • Nachdem das neuronale Netzwerksystem eine Matte auf der Basis eines Eingabebilds und in manchen Fällen einer dazugehörigen Trimap erzeugt hat, kann das Matting-Modul 310 zum Extrahieren eines Vordergrund-Gegenstands von dem Eingabebild unter Verwendung der Matte verwendet werden. Ein solcher extrahierter Vordergrundgegenstand kann für einen Nutzer mittels einer Nutzervorrichtung bereitgestellt werden, z.B. der Nutzervorrichtung 202a.
  • Darüber hinaus kann das Matting-Modul zum Erzeugen eines Kompositbilds unter Verwendung eines solchen extrahierten Vordergrundgegenstands und eines Hintergrundbilds verwendet werden. Ein Nutzer kann z.B. einen neuen Hintergrund für den extrahierten Vordergrundgegenstand auswählen. Diesbezüglich kann das Kompositbild des extrahierten Vordergrundgegenstands auf dem neuen Hintergrund mittels eines Anzeigebildschirms der Nutzervorrichtung angezeigt werden.
  • Das Matting-Modul 310 kann auch diesen gesamten Vorgang ausführen. Beispielsweise kann ein Nutzer ein Bild einer Person eingeben, die vor einem Stadtansichthintergrund steht, das neuronale Netzwerksystem kann eine Matte für das Bild, die zum Extrahieren der Person verwendet werden kann, unter Verwendung von vorhergesagten Alpha-Werten der Matte aus dem Eingabebild erzeugen und dann die extrahierte Person auf einem neuen Hintergrundbild anordnen, wie z.B. auf einer Strandansicht.
  • Unter Bezugnahme auf die 4 zeigt die 4 ein veranschaulichtes Verfahren zum Erzeugen einer Matte aus einem Eingabebild gemäß Ausführungsformen der vorliegenden Offenbarung. In Ausführungsformen zum Trainieren eines neuronalen Netzwerksystems kann das Eingabebild 402 ein synthetisches Komposittrainingsbild sein. Zum Erzeugen eines solchen Bilds kann ein kontrastreiches Bild zum Extrahieren eines Vordergrundgegenstands von dem Bild mittels einer hochgenauen Matte (z.B. bei der die Alpha-Werte einfach bestimmt werden können) verwendet werden; ein solcher extrahierter Vordergrundgegenstand kann dann auf einem neuen Hintergrundbild angeordnet werden. Beispielsweise kann jeder extrahierte Vordergrundgegenstand auf bis zu 100 Hintergründen angeordnet werden. Für einen Trainingsdatensatz mit 493 extrahierten Vordergrundgegenständen führt das zu einem Trainingssatz von 49300 Trainingsbildern. Wie es in der 4 gezeigt ist, ist der extrahierte Vordergrundgegenstand des Bilds 402 eine Glühbirne und das Hintergrundbild ist eine Person, die vor einer Abfolge von japanischen Torii-Toren steht. Das Bild 402 kann dann zum Erzeugen einer Matte 404 verwendet werden. Das Bild 402 kann zusammen mit einer dazugehörigen Trimap (nicht gezeigt) eingegeben werden. In dieser Ausführungsform wird die Matte 404 mit der Referenzmatte (nicht gezeigt) verglichen, die zum Extrahieren des Vordergrundgegenstands, d.h., der Glühbirne, von dem Bild 402 verwendet wird. Ein erstes neuronales Netzwerk, wie z.B. ein neuronales Matting-Netzwerk, kann eine Matte 404 für das Bild 402 erzeugen. Das neuronale Matting-Netzwerk kann durch Bewerten von Unterschieden zwischen der Referenzmatte, die zum Extrahieren des Vordergrundgegenstands des Bilds 402 verwendet wird, und der Matte 404, die durch das neuronale Matting-Netzwerk erzeugt worden ist, trainiert werden. Solche Unterschiede können unter Verwendung eines Pixelverlusts oder der Differenz zwischen vorhergesagten Alpha-Werten der Trainingsmatte und den „ground truth“-Alpha-Werten der Referenzmatte bestimmt werden. Das neuronale Matting-Netzwerk kann auch durch Bewerten von Unterschieden zwischen einem Trainingsausgabekompositbild (nicht gezeigt), das unter Verwendung der Ausgabematte 404 und einem Trainingshintergrund erzeugt wird, und einem Referenzkompositbild (nicht gezeigt), das unter Verwendung einer Referenzmatte und dem Trainingshintergrund erzeugt wird, trainiert werden. Ein solcher Unterschied kann unter Verwendung des Zusammensetzungsverlusts bestimmt werden.
  • Die Matte 404 kann dann zum Trainieren eines zweiten neuronalen Netzwerks, z.B. eines neuronalen Verfeinerungsnetzwerks, zum Erzeugen einer verfeinerten Trainingsmatte 406 aus einer Trainingsmatte, die durch ein neuronales Matting-Netzwerk erzeugt worden ist, und deren dazugehöriges Trainingseingabebild verwendet werden. Das neuronale Verfeinerungsnetzwerk kann durch Bewerten von Unterschieden zwischen einer Referenzmatte und einer verfeinerten Matte 406, die durch das neuronale Verfeinerungsnetzwerk erzeugt worden ist, trainiert werden. Solche Unterschiede können mittels eines Pixelverlusts oder der Differenz zwischen vorhergesagten Alpha-Werten der trainierten verfeinerten Matte und „ground truth“-Alpha-Werten der Referenzmatte bestimmt werden. Es sollte beachtet werden, dass dieser Trainingsvorgang separat oder gleichzeitig stattfinden kann. Es sollte auch beachtet werden, dass es Ausführungsformen des neuronalen Netzwerksystems gibt, bei denen das neuronale Netzwerksystem ein neuronales Matting-Netzwerk ohne ein neuronales Verfeinerungsnetzwerk umfasst.
  • In anderen Ausführungsformen gibt ein Nutzer zur Verwendung eines trainierten neuronalen Netzwerks zum Erzeugen einer Matte aus einem Eingabebild zum Extrahieren eines Gegenstands von dem Eingabebild ein Bild 402 in ein Gegenstandsextraktionssystem, wie z.B. eine Gegenstandsextraktionseinrichtung 206, wie sie in Bezug auf die 2 beschrieben worden ist, und/oder eine Gegenstandsextraktionseinrichtung 302, wie sie in Bezug auf die 3 beschrieben worden ist, ein. Das Bild kann z.B. durch einen Nutzer, der ein Foto mittels einer Kamera an einer Vorrichtung aufnimmt, und/oder durch Bereitstellen einer URL für ein Bild eingegeben werden. Ein trainiertes neuronales Netzwerksystem, wie z.B. ein neuronales Netzwerksystem 314, das mittels des Matting-Moduls 310 betrieben wird, wie es in Bezug auf die 3 beschrieben worden ist, kann eine Matte 404 für das Bild 402 erzeugen, wobei die Matte vorhergesagte Alpha-Werte umfasst, die mittels des trainierten neuronalen Netzwerksystems bestimmt worden sind. Die Matte 404 kann eine Zwischenmatte sein, die durch das Gegenstandsextraktionssystem zum Erzeugen der verfeinerten Matte 406 verwendet wird, die durch das Gegenstandsextraktionssystem zum Extrahieren eines Gegenstands von dem Bild 402 verwendet werden kann. Die verfeinerte Matte 406 kann ferner vorhergesagte Alpha-Werte umfassen, die unter Verwendung des trainierten neuronalen Netzwerksystems bestimmt worden sind. Alternativ muss die verfeinerte Matte 406 nicht erzeugt werden und die Matte 404 kann durch das Gegenstandsextraktionssystem zum Extrahieren eines Gegenstands von dem Bild 402 verwendet werden. Die Matte 404 und/oder die verfeinerte Matte 406 muss oder müssen nicht für den Nutzer angezeigt werden, jedoch kann oder können in einigen Ausführungsformen eine oder beide angezeigt werden. Das Gegenstandsextraktionssystem kann die Matte 404 und/oder die Matte 406 zum Extrahieren eines Gegenstands, in diesem Fall der Glühbirne, von dem Bild 402 verwendet werden. Ein solcher extrahierter Gegenstand kann für einen Nutzer auf einer Nutzervorrichtung angezeigt werden, wie z.B. den Nutzervorrichtungen 202a bis 202n. Eine solche Nutzervorrichtung kann eine Rechenvorrichtung sein, wie z.B. eine Rechenvorrichtung 800, die unter Bezugnahme auf die 8 weiter beschrieben wird. Zusätzlich kann ein Nutzer mit einem solchen extrahierten Gegenstand interagieren, z.B. durch Auswählen eines neuen Hintergrunds, auf dem der extrahierte Gegenstand angeordnet werden soll. Die Interaktion mit dem extrahierten Gegenstand kann unter Verwendung von Techniken zum Anordnen auf dem neuen Hintergrund stattfinden, einschließlich durch die Verwendung eines Berührungsbildschirms, eines Stifts, einer Maus und/oder eines Trackpads.
  • Unter Bezugnahme auf die 5 wird ein Verfahrensablauf bereitgestellt, der eine Ausführungsform eines Verfahrens 500 zum Erzeugen von synthetischen Komposittrainingsbildern zum Trainieren eines neuronalen Netzwerksystems zum Erzeugen von Matten für Eingabebilder gemäß Ausführungsformen der vorliegenden Erfindung zeigt. Das Verfahren 500 kann z.B. durch die Trainingsbildkomponente 306 der Gegenstandsextraktionseinrichtung 302 durchgeführt werden, wie es in der 3 gezeigt ist.
  • Bei dem Block 502 kann ein kontrastreiches Bild mit einem Gegenstand und einem einfachen Hintergrund ausgewählt werden. Ein solches Bild kann aus einer Gruppe von Bildern ausgewählt werden, die in einer Datenbank, wie z.B. dem Datenspeicher 312 von 3, gespeichert sind. Ein kontrastreiches Bild ist ein Bild, bei dem ein signifikanter Kontrast zwischen dem Vordergrundgegenstand oder den Vordergrundgegenständen und dem Bildhintergrund vorliegt. Darüber hinaus wird ein kontrastreiches Bild einen einfachen Hintergrund aufweisen, was bedeutet, dass die Textur des Hintergrunds und des Vordergrunds unähnlich sind. Beispielsweise sind einige Beispiele für kontrastreiche Bilder mit einfachen Hintergründen ein dunkelbrauner Hund auf einem weißen Hintergrund oder eine Frau mit dunklem Haar, die ein schwarzes Kleid trägt, auf einem grünen Bildschirm.
  • Bei dem Block 504 kann eine Matte für das kontrastreiche Bild erzeugt werden. Da das Bild einen hohen Kontrast aufweist, können gegenwärtige Verfahren eine hochqualitative Matte erzeugen, die sehr genaue vorhergesagte Alpha-Werte umfasst. Eine solche Matte kann als Referenzmatte zum Trainieren eines neuronalen Netzwerksystems zum Erzeugen von Matten für komplexe Bilder verwendet werden, wobei es sich um Bilder handelt, für die gegenwärtige Verfahren Schwierigkeiten bei der Erzeugung von genauen Matten haben. Diese Matte kann als „ground truth“-Matte behandelt werden, mit der Trainingsmatten, die durch das neuronale Netzwerksystem erzeugt worden sind, während des Trainings verglichen werden können. Ein Weg zum Erzeugen einer solchen Matte aus einem kontrastreichen Bild kann die Verwendung von Bearbeitungsmerkmalen in Photoshop® sein. Sobald die Matte bei dem Block 504 erzeugt worden ist, kann der Gegenstand in dem kontrastreichen Bild extrahiert werden. Ein solcher Gegenstand kann von dem kontrastreichen Bild z.B. mittels Photoshop® extrahiert werden. Dieser extrahierte Gegenstand kann zum Trainieren eines neuronalen Netzwerksystems zum Extrahieren von Gegenständen von Eingabebildern unter Verwendung von Matten z.B. bei der Bestimmung des Zusammensetzungsverlusts während des Trainings eines neuronalen Matting-Netzwerks, wie es unter Bezugnahme auf die 3 beschrieben worden ist, verwendet werden. Es sollte beachtet werden, dass sogar Matten mit einem hohen Kontrast, die durch gegenwärtige Verfahren erzeugt worden sind, manuelle Retuschen erfordern können, um jedwede Fehler zu entfernen und diese zu idealen Trainingsmatten zu machen.
  • Bei dem Block 506 kann ein synthetisches Kompositbild unter Verwendung eines extrahierten Gegenstands, z.B. des bei dem Block 504 extrahierten Gegenstands, erzeugt werden. Ein synthetisches Kompositbild kann durch Anordnen eines extrahierten Vordergrundgegenstands auf einem Hintergrundbild erzeugt werden. Das Erzeugen von synthetischen Kompositbildern ermöglicht die Erzeugung eines großen Trainingsdatensatzes zum Trainieren eines widerstandsfähigen neuronalen Netzwerksystems, das feine Details, wie z.B. Haar oder Pelz bzw. Fell, komplexe Bilder, bei denen der Vordergrund und der Hintergrund stark ähnliche Muster und/oder Farben aufweisen und/oder alle oder der größte Teil der Pixel in dem Bild Vordergrund/Hintergrundinformationen aufweisen, handhaben kann. Zusätzlich könnte eine solche Trimap so beschrieben werden, dass sie eine Anzahl und/oder einen Prozentsatz von Pixeln in dem Bild und/oder Bereichen in dem Bild, die unbekannt sind, oberhalb eines Schwellenwerts aufweist. Beispielsweise enthalten 90 % eines Eingabebilds Alpha-Werte, die unbekannt sind. Ein so großer Datensatz tritt z.B. auf, wenn ein Trainingsdatensatz 493 extrahierte Vordergrundgegenstände nutzt, wobei jeder davon auf bis zu 100 Hintergründen angeordnet werden kann, was zu einem Trainingssatz von 49300 Trainingsbildern führt.
  • Bei dem Block 508 können Kompositbilder, wie z.B. diejenigen, die bei dem Block 506 erzeugt worden sind, zum Trainieren eines neuronalen Netzwerksystems verwendet werden. Das neuronale Netzwerksystem kann ein erstes neuronales Netzwerk, wie z.B. ein neuronales Matting-Netzwerk, und ein zweites neuronales Netzwerk, wie z.B. ein neuronales Verfeinerungsnetzwerk, umfassen. Zusätzlich können eine Matte, wie z.B. die bei dem Block 504 erzeugte Matte, und ein extrahierter Gegenstand, wie z.B. der extrahierte Gegenstand, der bei dem Block 504 erzeugt worden ist, zum Trainieren des neuronalen Netzwerksystems verwendet werden. Kompositbilder können in das neuronale Netzwerksystem eingegeben werden, um Trainingsmatten zu erzeugen. Diese Trainingsmatten können mit Referenzmatten verglichen werden, wie z.B. die Matten, die bei dem Block 504 erzeugt worden sind. Ein solcher Vergleich kann vorhergesagte Alpha-Werte der Trainingsmatten verglichen mit „ground truth“-Alpha-Werten der Referenzmatten nutzen. Dieser Vergleich kann zum Bestimmen von Fehlern in dem neuronalen Netzwerksystem verwendet werden, die zum Trainieren eines genaueren Systems korrigiert werden können. Zusätzlich oder alternativ können solche Trainingsmatten zum Extrahieren eines Gegenstands von den Trainingsbildern verwendet werden; der extrahierte Trainingsgegenstand kann dann auf einem Trainingshintergrund angeordnet werden. Dieses Trainingskompositbild kann mit dem Referenzgegenstand verglichen werden, der z.B. bei dem Block 504 extrahiert worden ist, das auf dem demselben Trainingshintergrund angeordnet wird wie der extrahierte Trainingsgegenstand. Fehler zwischen dem Trainingskompositbild und dem Referenzkompositbild können zum Korrigieren von Fehlern in dem neuronalen Netzwerksystem verwendet werden.
  • Es sollte auch beachtet werden, dass reale Bilder zum Training verwendet werden können, wobei beispielsweise eine Trainingsmatte aus einer realen Fotografie unter Verwendung von jedweder einer separaten Tiefenkamera, Fokushinweisen, Farbe und/oder Stereo erzeugt werden kann. Zusätzlich kann eine Trainingsmatte automatisch aus einem Satz von Bildern unter Verwendung von entweder einem oder beiden von Daten, die in den Bildern inhärent vorliegen, und/oder Daten, die parallel zu verschiedenen oder alternativen Erfassungsvorrichtungen gesammelt worden sind, extrahiert werden.
  • Die 6 zeigt ein Beispielverfahren 600 zum Trainieren eines neuronalen Netzwerksystems zum Erzeugen von Matten aus Eingabebildern gemäß Ausführungsformen der vorliegenden Erfindung. Bei den Blöcken 604 bis 618 umfasst das Verfahren 600 Schritte zum Trainieren eines neuronalen Netzwerksystems. Das neuronale Netzwerksystem, das in dem Verfahren 600 verwendet wird, kann zwei neuronale Netzwerke umfassen, wie es durch die Linie 610 angegeben ist, nämlich ein erstes neuronales Netzwerk, wie z.B. ein neuronales Matting-Netzwerk, das die Blöcke 602 bis 608 ausführt, und ein zweites neuronales Netzwerk, wie z.B. ein neuronales Verfeinerungsnetzwerk, das die Blöcke 612 bis 618 ausführt. Es sollte jedoch beachtet werden, dass das Verfahren 600 unter Verwendung eines neuronalen Netzwerks oder von mehr als zwei neuronalen Netzwerken durchgeführt werden könnte.
  • Bei dem Block 602 können Trainingsdaten empfangen werden, die umfassen: ein Trainingsbild, eine Trainingstrimap, eine Referenzmatte, einen extrahierten Referenzgegenstand und ein Trainingshintergrundbild. Solche Trainingsdaten können z.B. von Trainingsdaten 316, die in dem Datenspeicher 312 von 3 gespeichert sind, und/oder von einer Bilddatenbank, die in der Cloud gespeichert ist, empfangen werden.
  • Bei dem Block 604 kann eine Trainingsmatte zum Empfangen des Trainingsbilds/der Trimap erzeugt werden. Dies kann durch die Verwendung eines neuronalen Netzwerksystems erreicht werden, insbesondere untere Verwendung eines neuronalen Netzwerks des Systems, wie z.B. eines neuronalen Matting-Netzwerks zum Vorhersagen von Alpha-Werten, welche die Trainingsmatte umfasst. Bei dem Block 606 kann die Trainingsmatte mit der Referenzmatte verglichen werden, die dem Trainingsbild zugeordnet ist. Dieser Vergleich umfasst die Bestimmung eines Pixelverlusts oder der Differenz zwischen vorhergesagten Alpha-Werten der Trainingsmatte und „ground truth“-Werten der Referenzmatte. Bei dem Block 606 kann die Trainingsmatte zum Extrahieren eines Gegenstands von dem Trainingskompositbild verwendet werden; der extrahierte Trainingsgegenstand kann dann auf einem Trainingshintergrund angeordnet werden. Dieses Trainingskompositbild kann mit dem extrahierten Referenzgegenstand verglichen werden, der auf demselben Trainingshintergrund wie der extrahierte Trainingsgegenstand angeordnet ist. Dieser Vergleich umfasst die Bestimmung eines Zusammensetzungsverlusts.
  • Diese Vergleiche können bei dem Block 608 verwendet werden, wo das neuronale Netzwerksystem unter Verwendung der bestimmten Verlustfunktionen eingestellt werden kann. Fehler, die unter Verwendung der Verlustfunktionen bestimmt worden sind, werden zum Minimieren des Verlusts in dem neuronalen Netzwerksystem durch eine Rückwärtsausbreitung solcher Fehler durch das System verwendet. Wie es in der 6 gezeigt ist, können die vorstehend genannten Blöcke für jedwede Anzahl wiederholt werden, um das erste neuronale Netzwerk des neuronalen Netzwerksystems zu trainieren (z.B. unter Verwendung eines anderen Trainingsbilds/einer anderen Trimap und einer dazugehörigen Referenzmatte, eines extrahierten Gegenstands und eines Trainingshintergrundbilds für jede Iteration).
  • Bei dem Block 612 können eine Trainingsmatte und ein Trainingsbild empfangen werden. Eine solche Trainingsmatte kann z.B. durch ein erstes neuronales Netzwerk, wie z.B. ein neuronales Matting-Netzwerk, erzeugt werden. Das empfangene Trainingsbild ist dasselbe Trainingsbild, das durch das erste neuronale Netzwerk zum Erzeugen der Trainingsmatte verwendet worden ist. Das Trainingsbild und die Trainingsmatte können in Trainingsdaten 316, die in dem Datenspeicher 312 von 3 gespeichert sind, in einer Datenbank, die in der Cluod gespeichert ist, und/oder in dem ersten neuronalen Netzwerk als Ausgabematte gespeichert werden.
  • Bei dem Block 614 kann unter Verwendung eines neuronalen Netzwerksystems eine verfeinerte Trainingsmatte aus der Trainingsmatte und dem Trainingsbild erzeugt werden. Beispielsweise kann ein zweites neuronales Netzwerk eines neuronalen Netzwerksystems zum Erzeugen einer solchen verfeinerten Trainingsmatte verwendet werden, wobei das zweite neuronale Netzwerk ein neuronales Verfeinerungsnetzwerk sein kann. Bei dem Block 616 kann die verfeinerte Trainingsausgabematte mit einer Referenzmatte verglichen werden. Dieser Vergleich umfasst das Bestimmen einer Verlustfunktion, wie z.B. eines Pixelverlusts, oder der Differenz zwischen vorhergesagten Alpha-Werten der verfeinerten Trainingsmatte und von „ground truth“-Alpha-Werten der Referenzmatte. Solche Vergleiche können bei dem Block 618 verwendet werden, wo das neuronale Netzwerksystem unter Verwendung der bestimmten Verlustfunktionen eingestellt werden kann. Fehler, die unter Verwendung von Verlustfunktionen bestimmt werden, werden zum Minimieren eines Verlusts in dem neuronalen Netzwerksystem durch eine Rückausbreitung solcher Fehler durch das System verwendet.
  • Wie es in der 6 gezeigt ist, können die Blöcke 612 bis 618 für jedwede Anzahl wiederholt werden, um das zweite neuronale Netzwerk des neuronalen Netzwerksystems zu trainieren (z.B. unter Verwendung einer anderen Trainingsmatte/eines anderen Trainingsbilds für jede Iteration). Alternativ können, wie es in der 6 gezeigt ist, die Blöcke 602 bis 618 für jedwede Anzahl wiederholt werden, um das neuronale Netzwerksystem gleichzeitig zu trainieren (z.B. unter Verwendung eines anderen Trainingsbilds/einer anderen Trimap und einer dazugehörigen Referenzmatte, eines extrahierten Gegenstands und eines Trainingshintergrundbilds für jede Iteration, um eine Trainingsausgabematte zu erzeugen, die zusammen mit dem Trainingsbild zum Erzeugen einer verfeinerten Matte verwendet wird).
  • Die 7 zeigt ein Beispielverfahren 700 zum Erzeugen von Matten aus Eingabebildern zum Extrahieren von Gegenständen von dem Eingabebild unter Verwendung von Alpha-Werten der erzeugten Matten gemäß Ausführungsformen der vorliegenden Erfindung. Das Verfahren 700 kann z.B. durch die Gegenstandsextraktionseinrichtung 206 von 2 und/oder die Gegenstandsextraktionseinrichtung 302, die das neuronale Netzwerksystem 314 von 3 nutzen, nach dem Ende des Trainings des Systems durchgeführt werden.
  • Bei dem Block 702 kann ein Bild eingegeben werden. Beispielsweise kann ein Nutzer ein Bild in eine Gegenstandsextraktionseinrichtung eingeben, wie z.B. die Gegenstandsextraktionseinrichtung 206, die in Bezug auf die 2 beschrieben worden ist, und/oder die Gegenstandsextraktionseinrichtung 302, die in Bezug auf die 3 beschrieben worden ist. Eine solche Gegenstandsextraktionseinrichtung kann z.B. unter Verwendung von Photoshop®, einer mobilen Anwendung und/oder einer Kameraanwendung eingesetzt werden. Das Bild kann unter Verwendung einer Kamera zum Aufnehmen eines Fotos eingegeben werden oder ein Nutzer kann das Bild durch Eingeben eines Links oder einer URL für ein Bild eingeben. Alternativ könnte ein Nutzer ein Bild aus einer Gruppe von Bildern auswählen, die in einer Datenbank gespeichert sind, wie z.B. dem Datenspeicher 312 von 3.
  • Bei dem Block 704 kann eine Trimap eingegeben werden. Die Trimap markiert Bereiche des Eingabebilds, die reiner Vordergrund, reiner Hintergrund und unbekannt sind (z.B. ein unbekanntes Gemisch aus Vordergrund und Hintergrund). Beispielsweise kann ein reiner Vordergrund als weißes Pixel angegeben werden, ein reiner Hintergrund kann als schwarzes Pixel angegeben werden und Pixel, die unbekannt sind, die potenziell sowohl Vordergrund- als auch Hintergrundinformationen umfassen, können unter Verwendung von Grau angegeben werden. Beispielsweise kann ein Nutzer eine Trimap durch Zeichnen auf dem Eingabebild eingeben. Alternativ kann ein Nutzer die Trimap unter Verwendung einer binären Auswahl erzeugen, um den Vordergrund/Hintergrund für das Eingabebild auszuwählen. Eine solche binäre Auswahl kann z.B. in Photoshop® durch Bewegen eines Reglers, der das Band um den Gegenstand erweitert/kontrahiert, getroffen werden. Darüber hinaus kann ein Algorithmus zum Erzeugen der Trimap verwendet werden. Die Verwendung eines solchen Algorithmus könnte es einer Trimap ermöglichen, ohne einen Nutzereingriff und/oder eine Nutzerinteraktion eingegeben zu werden.
  • Bei dem Block 706 kann das trainierte neuronale Netzwerk zum Erzeugen einer Matte für das Eingabebild implementiert werden, die zum Extrahieren eines Gegenstands von dem Eingabebild verwendet werden kann. Das neuronale Netzwerksystem kann im Vorhinein in einer Weise trainiert worden sein, wie es in Bezug auf das Verfahren 600 in der 6 beschrieben worden ist. Als solches kann das neuronale Netzwerksystem aus einem ersten neuronalen Netzwerk, wie z.B. einem neuronalen Matting-Netzwerk, das zum Erzeugen von Matten für Eingabebilder trainiert ist, und einem zweiten neuronalen Netzwerk, wie z.B. einem neuronalen Verfeinerungsnetzwerk, das zum Verfeinern der Matten, die durch das erste neuronale Netzwerk erzeugt worden sind, trainiert ist, ausgebildet sein. Nach dem Ende des Trainingsvorgangs können das trainierte neuronale Mattierungsnetzwerk und das trainierte neuronale Verfeinerungsnetzwerk zum Erzeugen von Matten für Eingabebilder verwendet werden. Dieses trainierte neuronale Netzwerksystem kann zum Erzeugen von Matten für Eingabebilder verwendet werden, die zum Extrahieren von Gegenständen von den Eingabebildern verwendet werden. Das neuronale Matte-Netzwerk kann zum Erzeugen einer Matte für ein Eingabebild verwendet werden und das neuronale Verfeinerungsnetzwerk kann zum Erzeugen einer verfeinerten Matte für das Eingabebild verwendet werden. Solche erzeugten Matten und/oder verfeinerten Matten können Gegenstände genau extrahieren, da das neuronale Netzwerksystem zum genauen Vorhersagen von Alpha-Werten für die Pixel der erzeugten Matten und/oder verfeinerten Matten trainiert worden ist.
  • Bei dem Block 708 gibt das neuronale Netzwerksystem ein Ergebnis aus. Ein solches Ergebnis kann eine Matte sein, wie z.B. eine Matte 404, die in Bezug auf die 4 diskutiert worden ist. Zusätzlich oder alternativ kann ein solches Ergebnis eine verfeinerte Matte sein, wie z.B. die verfeinerte Matte 406. Ein solches Ergebnis kann auch der Gegenstand sein, der unter Verwendung der erzeugten Matte oder der erzeugten verfeinerten Matte extrahiert worden ist. Bei dem Block 710 kann das Ergebnis, das durch das neuronale Netzwerksystem ausgegeben wird, zu einer Nutzervorrichtung gesendet werden. Eine Nutzervorrichtung kann eine Nutzervorrichtung wie z.B. die Nutzervorrichtung 202a bis 202n sein, wie sie in der 2 gezeigt ist. In Ausführungsformen kann diese Ausgabe durch den Nutzer bearbeitet werden und/oder der Nutzer kann mit dieser interagieren, z.B. durch Auswählen eines neuen Hintergrunds, auf dem der extrahierte Gegenstand angeordnet werden soll. Die Interaktion mit dem extrahierten Gegenstand kann unter Verwendung von Techniken zum Anordnen auf einem Hintergrund durchgeführt werden, einschließlich ein Anordnen unter Verwendung eines Berührungsbildschirms, eines Stifts, einer Maus und/oder eines Trackpads.
  • Nachdem Ausführungsformen der vorliegenden Erfindung beschrieben worden sind, stellt die 8 ein Beispiel für eine Rechenvorrichtung bereit, in der Ausführungsformen der vorliegenden Erfindung eingesetzt werden können. Die Rechenvorrichtung 800 umfasst einen Bus 810, der direkt oder indirekt die folgenden Vorrichtungen koppelt: einen Speicher 812, einen oder mehrere Prozessor(en) 814, eine oder mehrere Darstellungskomponente(n) 816, Eingabe/Ausgabe (I/O)-Schnittstellen 818, Eingabe/Ausgabe-Komponenten 820 und eine beispielhafte Stromversorgung 822. Der Bus 810 steht für einen oder mehrere Bus(se) (wie z.B. einen Adressbus, einen Datenbus oder eine Kombination davon). Obwohl die verschiedenen Blöcke von 8 aus Gründen der Klarheit mit Linien gezeigt sind, ist in der Realität die Abgrenzung von verschiedenen Komponenten nicht so eindeutig und metaphorisch wären die Linien genauer grau und verschwommen. Beispielsweise kann eine Darstellungskomponente, wie z.B. eine Anzeigevorrichtung, als I/O-Komponente angesehen werden. Ferner weisen Prozessoren auch Speicher auf. Die Erfinder stellen klar, dass dies die Natur dieses Fachgebiets ist und betonen erneut, dass das Diagramm von 8 lediglich eine Beispielrechenvorrichtung zeigt, die im Zusammenhang mit einer oder mehreren Ausführungsform(en) der vorliegenden Erfindung verwendet werden kann. Zwischen Kategorien wie „Workstation“, „Server“, „Laptop“, „handgehaltene Vorrichtung“, usw., wird keine Unterscheidung vorgenommen, da alle innerhalb des Umfangs von 8 vorgesehen sind und sich auf eine „Rechenvorrichtung“ beziehen.
  • Die Rechenvorrichtung 800 umfasst typischerweise verschiedene computerlesbare Medien. Computerlesbare Medien können jedwede verfügbaren Medien sein, auf die durch die Rechenvorrichtung 800 zugegriffen werden kann, und umfassen sowohl flüchtige als auch nicht-flüchtige Medien, entfernbare und nicht-entfernbare Medien. Beispielhaft und ohne Beschränkung können computerlesbare Medien Computerspeichermedien und -kommunikationsmedien umfassen. Computerspeichermedien umfassen sowohl flüchtige als auch nicht-flüchtige Medien, entfernbare und nicht-entfernbare Medien, die in jedwedem Verfahren oder jedweder Technologie zum Speichern von Informationen, wie z.B. computerlesbaren Anweisungen, Datenstrukturen, Programmmodulen oder anderen Daten, verwendet werden können. Computerspeichermedien umfassen, sind jedoch nicht beschränkt auf, RAM, ROM, EEPROM, Flashspeicher oder eine andere Speichertechnologie, CD-ROM, digitale Mehrzweckplatten (DVDs) oder andere optische Speicherplatten, Magnetkassetten, ein Magnetband, einen Magnetplattenspeicher oder andere Magnetspeichervorrichtungen, oder jedwedes andere Medium, das zum Speichern der gewünschten Informationen verwendet werden kann und auf das durch die Rechenvorrichtung 800 zugegriffen werden kann. Computerspeichermedien umfassen keine Signale als solche. Kommunikationsmedien implementieren typischerweise computerlesbare Anweisungen, Datenstrukturen, Programmmodule oder andere Daten in einem modulierten Datensignal, wie z.B. einer Trägerwelle oder einem anderen Transportmechanismus, und umfassen jedwede Informationsübertragungsmedien. Der Ausdruck „moduliertes Datensignal“ steht für ein Signal, bei dem eine oder mehrere von dessen Eigenschaften so eingestellt oder verändert worden ist oder sind, dass Informationen in dem Signal kodiert sind. Beispielsweise und ohne Beschränkung umfassen Kommunikationmedien drahtgebundene Medien, wie z.B. ein drahtgebundenes Netzwerk oder eine direkt verdrahtete Verbindung, und drahtlose Medien, wie z.B. akustische, Hochfrequenz-, Infrarot- und andere drahtlose Medien. Kombinationen von jedweden der Vorstehenden sollten ebenfalls innerhalb des Umfangs von computerlesbaren Medien enthalten sein.
  • Der Speicher 812 umfasst Computerspeichermedien in der Form eines flüchtigen und/oder nicht-flüchtigen Speichers. Wie es gezeigt ist, umfasst der Speicher 812 Anweisungen 824. Die Anweisungen 824, wenn sie durch (einen) Prozessor(en) 814 ausgeführt werden, sind so ausgebildet, dass sie bewirken, dass die Rechenvorrichtung jedwede der hier in Bezug auf die vorstehend diskutierten Figuren beschriebenen Vorgänge ausführt, oder dass sie jedwede hier beschriebenen Programmmodule implementiert. Der Speicher kann entfernbar, nicht entfernbar oder eine Kombination davon sein. Beispielhafte Hardwarevorrichtungen umfassen einen Festkörperspeicher, Festplattenlaufwerke, optische Plattenlaufwerke, usw. Die Rechenvorrichtung 800 umfasst einen oder mehrere Prozessor(en), der oder die Daten von verschiedenen Einheiten liest, wie z.B. dem Speicher 812 oder der I/O-Komponenten 820. Die Darstellungskomponente(n) 816 präsentieren Datenangaben für einen Nutzer oder eine andere Vorrichtung. Beispielhafte Darstellungskomponenten umfassen eine Anzeigevorrichtung, einen Lautsprecher, eine Druckkomponente, eine Vibrationskomponente, usw.
  • Die I/O-Schnittstellen 818 ermöglichen der Rechenvorrichtung 800, logisch mit anderen Vorrichtungen gekoppelt zu werden, einschließlich den I/O-Komponenten 820, von denen einige eingebaut sein können. Beispielhafte Komponenten umfassen ein Mikrophon, einen Joystick, ein Gamepad, eine Satellitenschüssel, einen Scanner, einen Drucker, eine drahtlose Vorrichtung, usw. Die I/O-Komponenten 820 können eine natürliche Nutzerschnittstelle (NUI) bereitstellen, die Luftgesten, eine Stimme oder andere physiologische Eingaben verarbeiten, die durch einen Nutzer erzeugt werden. In manchen Fällen können Eingaben zu einem geeigneten Netzwerkelement für eine weitere Verarbeitung übertragen werden. Eine NUI kann jedwede Kombination einer Spracherkennung, einer Berührungs- und Stifterkennung, einer Gesichtserkennung, einer biometrischen Erkennung, einer Gestenerkennung sowohl auf einem Bildschirm als auch angrenzend an den Bildschirm, Luftgesten, Kopf- und Augenverfolgung und einer Berührungserkennung im Zusammenhang mit Anzeigen auf einer Rechenvorrichtung 800 implementieren. Die Rechenvorrichtung 800 kann mit Tiefenkameras, wie z.B. stereoskopischen Kamerasystemen, Infrarotkamerasystemen, RGB-Kamerasystemen und Kombinationen davon für eine Gestenerfassung und -erkennung ausgestattet sein. Zusätzlich kann die Rechenvorrichtung 800 mit Beschleunigungsmessgeräten oder Gyroskopen ausgestattet sein, welche die Erfassung einer Bewegung ermöglichen. Die Ausgabe der Beschleunigungsmessgeräte oder Gyroskope kann für die Anzeige der Rechenvorrichtung 800 bereitgestellt werden, um eine eindringliche erweiterte Realität oder virtuelle Realität bereitzustellen.
  • Hier angegebene Ausführungsformen wurden in Bezug auf bestimmte Ausführungsformen beschrieben, die in jedweder Hinsicht beispielhaft und nicht beschränkt sein sollen. Alternative Ausführungsformen sind für den Fachmann des Fachgebiets, zu dem die vorliegende Offenbarung gehört, ersichtlich, ohne von deren Umfang abzuweichen.
  • Verschiedene Aspekte der beispielhaften Ausführungsformen wurden unter Verwendung von Begriffen beschrieben, die üblicherweise durch Fachleute verwendet werden, um das Wesentliche ihrer Arbeit an andere Fachleute weiterzugeben. Für einen Fachmann ist jedoch ersichtlich, dass alternative Ausführungsformen mit nur einigen der beschriebenen Aspekte ausgeführt werden können. Für Erläuterungszwecke sind spezifische Anzahlen, Materialien und Konfigurationen angegeben, um ein gründliches Verständnis der beispielhaften Ausführungsformen zu ermöglichen. Für einen Fachmann ist es jedoch ersichtlich, dass alternative Ausführungsformen ohne die spezifischen Details ausgeführt werden können. In anderen Fällen wurden bekannte Merkmale weggelassen oder vereinfacht, um die beispielhaften Ausführungsformen nicht unklar zu machen.
  • Verschiedene Vorgänge wurden als eine Mehrzahl von diskreten Vorgängen beschrieben, und zwar in einer Weise, die für das Verständnis der beispielhaften Ausführungsformen am hilfsreichsten ist; die Reihenfolge der Beschreibung sollte jedoch nicht so ausgelegt werden, dass impliziert wird, dass diese Vorgänge notwendigerweise von der Reihenfolge abhängig sind. Insbesondere müssen diese Vorgänge nicht in der dargestellten Reihenfolge ausgeführt werden. Ferner sollte eine Beschreibung von Vorgängen als getrennte Vorgänge nicht so ausgelegt werden, dass es erforderlich ist, die Vorgänge notwendigerweise unabhängig und/oder durch getrennte Einheiten auszuführen. Beschreibungen von Einheiten und/oder Modulen als getrennte Module sollten gleichermaßen nicht so ausgelegt werden, dass die Module getrennt sein und/oder getrennte Vorgänge ausführen müssen. In verschiedenen Ausführungsformen können gezeigte und/oder beschriebene Vorgänge, Einheiten, Daten und/oder Module vereinigt, in weitere untergeordnete Teile aufgespalten und/oder weggelassen werden.
  • Der Ausdruck „in einer Ausführungsform“ wird wiederholt verwendet. Der Ausdruck bezieht sich im Allgemeinen nicht auf dieselbe Ausführungsform, jedoch kann dies der Fall sein. Die Ausdrücke „umfassen“, „aufweisen“ und „enthalten“ sind synonym, falls sich aus dem Zusammenhang nicht etwas anderes ergibt. Der Ausdruck „A/B“ steht für „A oder B“. Der Ausdruck „A und/oder B“ steht für „(A), (B) oder (A und B)“. Der Ausdruck „mindestens eines von A, B und C“ steht für „(A), (B), (C), (A und B), (A und C), (B und C) oder (A, B und C).“

Claims (20)

  1. Computerimplementiertes Verfahren zum Trainieren eines neuronalen Netzwerksystems zum Erzeugen von Masken bzw. Matten für Bilder, wobei das Verfahren umfasst: Eingeben eines Paars aus einem Trainingsbild und einer Trimap in ein erstes neuronales Netzwerk, wobei die Trimap einen verschmolzenen bzw. gemischten Bereich angibt, in dem ein oder mehrere Pixel eine unbekannte Kombination aus Vordergrund- und Hintergrundfarben umfasst oder umfassen; Bestimmen eines Prozentsatzes einer Vordergrundfarbe für jedes des einen oder der mehreren Pixel(s) in dem verschmolzenen bzw. gemischten Bereich durch das erste neuronale Netzwerk, wobei das erste neuronale Netzwerk Farb-, Struktur- und Texturinformationen zum Bestimmen der Prozentsätze der Vordergrundfarbe im Zusammenhang mit dem einen oder den mehreren Pixel(n) nutzt; Erzeugen einer Trainingsmaske bzw. -matte für das Trainingsbild durch das erste neuronale Netzwerk unter Verwendung der Prozentsätze der Vordergrundfarbe für jedes des einen oder der mehreren Pixe(s) in dem verschmolzenen bzw. gemischten Bereich; Identifizieren eines Fehlers, der mit der Trainingsmaske bzw. -matte zusammenhängt, durch das erste neuronale Netzwerk unter Verwendung einer Verlustfunktion; und Einstellen des ersten neuronalen Netzwerks auf der Basis des identifizierten Fehlers, der mit der Trainingsmaske bzw. -matte zusammenhängt.
  2. Computerimplementiertes Verfahren nach Anspruch 1, bei dem das Trainingsbild ein synthetisches Komposittrainingsbild ist, das einen Vordergrundgegenstand umfasst, der auf einem Hintergrundbild angeordnet ist, wobei das synthetische Komposittrainingsbild durch Erzeugen einer Matte für ein kontrastreiches Bild zum Extrahieren des Vordergrundgegenstands von dem kontrastreichen Bild zum Anordnen auf dem Hintergrundbild erzeugt wird.
  3. Computerimplementiertes Verfahren nach Anspruch 1 oder 2, bei dem die Verlustfunktion einen Komposit- bzw. Zusammensetzungsverlust umfasst, der auf der Basis eines Vergleichs eines Referenzkompositbilds und eines Trainingskompositbilds bestimmt wird, wobei das Referenzkompositbild einen Referenzvordergrundgegenstand, der von dem Trainingsbild unter Verwendung einer Referenzmatte extrahiert worden ist, und ein Hintergrundbild umfasst, und das Trainingskompositbild einen Vordergrundgegenstand, der von dem Trainingsbild unter Verwendung der Trainingsmatte extrahiert worden ist, und das Hintergrundbild umfasst.
  4. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Verlustfunktion einen Pixelverlust auf der Basis eines Vergleichs einer Referenzmatte mit der Trainingsmatte, die durch das erste neuronale Netzwerk erzeugt worden ist, umfasst.
  5. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend: Eingeben des Trainingsbilds und der Trainingsmatte in ein zweites neuronales Netzwerk; Bestimmen eines verfeinerten Prozentsatzes der Vordergrundfarbe für jedes des einen oder der mehreren Pixel(s) in dem Trainingsbild durch das zweite neuronale Netzwerk, wobei das zweite neuronale Netzwerk Rand- bzw. Kanteninformationen zum Bestimmen der verfeinerten Prozentsätze der Vordergrundfarbe im Zusammenhang mit dem einen oder den mehreren Pixel(n) nutzt; Erzeugen einer verfeinerten Trainingsmatte für das Trainingsbild durch das zweite neuronale Netzwerk unter Verwendung des verfeinerten Prozentsatzes der Vordergrundfarbe für jedes des einen oder der mehreren Pixel(s) in dem Trainingsbild; Identifizieren eines Fehlers, der mit der verfeinerten Trainingsmatte zusammenhängt, durch das zweite neuronale Netzwerk unter Verwendung einer zweiten Verlustfunktion; und Einstellen des zweiten neuronalen Netzwerks auf der Basis des identifizierten Fehlers im Zusammenhang mit der verfeinerten Trainingsmatte.
  6. Computerimplementiertes Verfahren nach Anspruch 5, bei dem die zweite Verlustfunktion einen Pixelverlust auf der Basis eines Vergleichs einer Referenzmatte mit der verfeinerten Trainingsmatte, die durch das zweite neuronale Netzwerk erzeugt worden ist, umfasst.
  7. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend: Kompilieren bzw. Zusammenstellen einer Mehrzahl von Trainingsmatten, die durch das erste neuronale Netzwerk erzeugt worden sind, wobei eine der Mehrzahl von Trainingsmatten die Trainingsmatte ist, die für das Trainingsbild erzeugt worden ist; Eingeben der zusammengestellten Mehrzahl von Trainingsmatten und eines vollständigen Trainingsbilds, das aus einer Mehrzahl von Tiles bzw. Kacheln zusammengesetzt ist, in ein zweites neuronales Netzwerk, wobei eine der Mehrzahl von Kacheln das Trainingsbild ist; Bestimmen eines verfeinerten Prozentsatzes der Vordergrundfarbe für jedes von einem oder mehreren Pixel(n) in dem vollständigen Trainingsbild durch das zweite neuronale Netzwerk, wobei das zweite neuronale Netzwerk Kanteninformationen zum Bestimmen der Verfeinerungsprozentsätze der Vordergrundfarbe im Zusammenhang mit dem einen oder den mehreren Pixel(n) nutzt; Erzeugen einer verfeinerten Trainingsmatte für das vollständige Trainingsbild durch das zweite neuronale Netzwerk unter Verwendung des verfeinerten Prozentsatzes der Vordergrundfarbe für jedes des einen oder der mehreren Pixel(s) in dem vollständigen Trainingsbild; Identifizieren eines Fehlers, der mit der verfeinerten Trainingsmatte zusammenhängt, durch das zweite neuronale Netzwerk unter Verwendung einer zweiten Verlustfunktion; und Einstellen des zweiten neuronalen Netzwerks auf der Basis des identifizierten Fehlers im Zusammenhang mit der verfeinerten Trainingsmatte.
  8. Computerimplementiertes Verfahren nach Anspruch 7, bei dem die zweite Verlustfunktion einen Pixelverlust auf der Basis eines Vergleichs einer Referenzmatte mit der verfeinerten Trainingsmatte, die durch das zweite neuronale Netzwerk erzeugt worden ist, umfasst.
  9. Computerimplementiertes Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend: Durchführen einer Datenaugmentation bzw. -ergänzung mit den Trainingsbildern.
  10. Ein oder mehrere computerlesbare(s) Medium oder Medien mit einer Mehrzahl von darauf implementierten ausführbaren Anweisungen, die, wenn sie durch einen oder mehrere Prozessor(en) ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessor(en) ein Verfahren zum Erzeugen von Masken bzw. Matten für Eingabebilder ausführt oder ausführen, wobei das Verfahren umfasst: Empfangen eines Paars aus einem Eingabebild und einer Trimap, wobei die Trimap einen verschmolzenen bzw. gemischten Bereich angibt, in dem ein oder mehrere Pixel eine unbekannte Kombination von Vordergrund- und Hintergrundfarben umfasst oder umfassen; Bestimmen eines Prozentsatzes der Vordergrundfarbe für jedes des einen oder der mehreren Pixel(s) in dem verschmolzenen bzw. gemischten Bereich mittels eines neuronalen Netzwerksystems, das Farb-, Struktur- und Texturinformationen zum Bestimmen der Prozentsätze der Vordergrundfarbe im Zusammenhang mit dem einen oder den mehreren Pixel(n) nutzt; und Erzeugen einer Maske bzw. Matte für das Eingabebild mittels des neuronalen Netzwerksystems unter Verwendung der Prozentsätze der Vordergrundfarbe für jedes des einen oder der mehreren Pixel(s) in dem verschmolzenen bzw. gemischten Bereich.
  11. Medium bzw. Medien nach Anspruch 10, wobei das Eingabebild in Tiles bzw. Kacheln aufgeteilt ist, die durch das trainierte neuronale Netzwerk zum Erzeugen der Matte für das Eingabebild verarbeitet werden.
  12. Medium bzw. Medien nach Anspruch 10 oder 11, wobei das Verfahren ferner umfasst: Empfangen einer Nutzerauswahl eines Hintergrundbilds; Erzeugen eines Kompositbilds durch Anordnen eines extrahierten Gegenstands von dem Eingabebild auf dem Hintergrundbild, wobei der Gegenstand unter Verwendung der erzeugten Matte extrahiert wird.
  13. Medium bzw. Medien nach einem der Ansprüche 10 bis 12, wobei das neuronale Netzwerksystem ein trainiertes neuronales Netzwerksystem umfasst, das trainiert wird durch: Eingeben eines Paars aus einem Eingabebild und einer Trimap in ein erstes neuronales Netzwerk; Bestimmen eines Werts der Vordergrundfarbe für Pixel in einem verschmolzenen bzw. gemischten Bereich der Trainingstrimap durch das erste neuronale Netzwerk, wobei das erste neuronale Netzwerk Farb-, Struktur- und Texturinformationen zum Bestimmen von Werten der Vordergrundfarbe im Zusammenhang mit dem einen oder den mehreren Pixel(n) nutzt; Erzeugen einer Trainingsmaske bzw. -matte für das Trainingsbild durch das erste neuronale Netzwerk unter Verwendung der Werte für die Vordergrundfarbe für die Pixel in dem gemischten Bereich der Trainingstrimap; Identifizieren eines Fehlers, der mit der Trainingsmatte zusammenhängt, durch das erste neuronale Netzwerk unter Verwendung einer Verlustfunktion; und Einstellen des ersten neuronalen Netzwerks auf der Basis des identifizierten Fehlers, der mit der Trainingsmatte zusammenhängt.
  14. Medium bzw. Medien nach Anspruch 13, wobei das trainierte neuronale Netzwerksystem weiter trainiert wird durch: Erzeugen des Trainingsbilds durch Anordnen eines extrahierten Vordergrundgegenstands auf einem Hintergrundbild, wobei der Vordergrundgegenstand unter Verwendung einer zweiten Maske bzw. Matte für ein kontrastreiches Bild extrahiert wird.
  15. Medium bzw. Medien nach Anspruch 13 oder 14, wobei die Verlustfunktion einen Komposit- bzw. Zusammensetzungsverlust umfasst, der auf der Basis eines Vergleichs eines Referenzkompositbilds und eines Trainingskompositbilds bestimmt wird, wobei das Referenzkompositbild ein Hintergrundbild und einen Referenzvordergrundgegenstand umfasst, der aus dem Trainingsbild unter Verwendung einer Referenzmaske bzw. -matte extrahiert worden ist, und das Trainingskompositbild das Hintergrundbild und einen Vordergrundgegenstand umfasst, der von dem Trainingsbild unter Verwendung der Trainingsmatte extrahiert worden ist.
  16. Medium bzw. Medien nach einem der Ansprüche 13 bis 15, wobei das trainierte neuronale Netzwerksystem ferner trainiert wird durch: Eingeben des Trainingsbilds und der Trainingsmatte in ein zweites neuronales Netzwerk; Bestimmen eines verfeinerten Prozentsatzes der Vordergrundfarbe für Pixels in dem Trainingsbild durch das zweite neuronale Netzwerk, wobei das zweite neuronale Netzwerk Rand- bzw. Kanteninformationen zum Bestimmen der verfeinerten Prozentsätze der Vordergrundfarbe im Zusammenhang mit den Pixeln nutzt; Erzeugen einer verfeinerten Trainingsmaske bzw. -matte für das Trainingsbild durch das zweite neuronale Netzwerk unter Verwendung der verfeinerten Prozentsätze der Vordergrundfarbe; Identifizieren eines Fehlers, der mit der verfeinerten Trainingsmatte zusammenhängt, durch das zweite neuronale Netzwerk unter Verwendung einer zweiten Verlustfunktion; und Einstellen des zweiten neuronalen Netzwerks auf der Basis des identifizierten Fehlers im Zusammenhang mit der verfeinerten Trainingsmatte.
  17. Rechensystem, umfassend: einen oder mehrere Prozessor(en); und ein oder mehrere nicht-flüchtige(s) computerlesbare(s) Speichermedium oder -medien, das oder die mit dem einen oder den mehreren Prozessor(en) gekoppelt ist oder sind und auf dem oder denen Anweisungen gespeichert sind, die, wenn sie durch den einen oder die mehreren Prozessor(en) ausgeführt werden, bewirken, dass das Rechensystem bereitstellt: Mittel zum Trainieren eines neuronalen Netzwerksystems, wobei das neuronale Netzwerksystem ein erstes neuronales Netzwerk, das zum Erzeugen von Masken bzw. Matten aus Paaren aus einem Eingabebild und einer Trimap trainiert ist, und ein zweites neuronales Netzwerk, das zum Verfeinern der durch das erste neuronale Netzwerk erzeugten Masken bzw. Matten trainiert ist, umfasst; und Mittel zum Erzeugen einer Maske bzw. Matte für ein Eingabebild unter Verwendung des trainierten neuronalen Netzwerksystems.
  18. System nach Anspruch 17, bei dem die erzeugte Matte zum Extrahieren eines Vordergrundgegenstands von dem Eingabebild verwendet wird.
  19. System nach Anspruch 17 oder 18, bei dem das Eingabebild in Tiles bzw. Kacheln getrennt wird, die durch das trainierte neuronale Netzwerksystem zum Erzeugen der Matte für das Eingabebild verarbeitet werden.
  20. System nach einem der Ansprüche 17 bis 19, bei dem das erste neuronale Netzwerk unter Verwendung eines Komposit- bzw. Zusammensetzungsverlusts trainiert wird, der auf der Basis eines Vergleichs eines Referenzkompositbilds und eines Trainingskompositbilds bestimmt wird, wobei das Referenzkompositbild ein Hintergrundbild und einen Referenzvordergrundgegenstand umfasst, der von dem Eingabebild unter Verwendung einer Referenzmatte extrahiert worden ist, und das Trainingskompositbild das Hintergrundbild und einen Vordergrundgegenstand umfasst, der von dem Eingabebild unter Verwendung der Trainingsmatte extrahiert worden ist.
DE102017010210.4A 2017-03-02 2017-11-02 Bild-Matting mittels tiefem Lernen Pending DE102017010210A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/448,541 2017-03-02
US15/448,541 US10255681B2 (en) 2017-03-02 2017-03-02 Image matting using deep learning

Publications (1)

Publication Number Publication Date
DE102017010210A1 true DE102017010210A1 (de) 2018-09-06

Family

ID=60788499

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017010210.4A Pending DE102017010210A1 (de) 2017-03-02 2017-11-02 Bild-Matting mittels tiefem Lernen

Country Status (5)

Country Link
US (2) US10255681B2 (de)
CN (1) CN108537859B (de)
AU (1) AU2017254848B2 (de)
DE (1) DE102017010210A1 (de)
GB (1) GB2560219B (de)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018112137A1 (en) 2016-12-15 2018-06-21 General Electric Company System and method for image segmentation using a joint deep learning model
US10607329B2 (en) * 2017-03-13 2020-03-31 Adobe Inc. Illumination estimation from a single image
EP3376467B1 (de) * 2017-03-14 2020-04-22 Altostratus Capital LLC Erzeugung von alpha-masken von video-frames
JP7207846B2 (ja) * 2017-03-24 2023-01-18 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
JP6557272B2 (ja) * 2017-03-29 2019-08-07 ファナック株式会社 状態判定装置
WO2018224442A1 (en) * 2017-06-05 2018-12-13 Siemens Aktiengesellschaft Method and apparatus for analysing an image
US10609286B2 (en) 2017-06-13 2020-03-31 Adobe Inc. Extrapolating lighting conditions from a single digital image
WO2019049365A1 (ja) * 2017-09-11 2019-03-14 富士通株式会社 情報処理装置、情報処理方法及び情報処理プログラム
US10692220B2 (en) * 2017-10-18 2020-06-23 International Business Machines Corporation Object classification based on decoupling a background from a foreground of an image
US11043006B1 (en) 2017-12-29 2021-06-22 Perceive Corporation Use of machine-trained network for misalignment identification
US10984286B2 (en) 2018-02-02 2021-04-20 Nvidia Corporation Domain stylization using a neural network model
US10872399B2 (en) * 2018-02-02 2020-12-22 Nvidia Corporation Photorealistic image stylization using a neural network model
WO2019161562A1 (en) * 2018-02-26 2019-08-29 Intel Corporation Object detection with image background subtracted
US10600171B2 (en) * 2018-03-07 2020-03-24 Adobe Inc. Image-blending via alignment or photometric adjustments computed by a neural network
US10515456B2 (en) * 2018-03-22 2019-12-24 Adobe Inc. Synthesizing hair features in image content based on orientation data from user guidance
WO2019192744A1 (en) * 2018-04-06 2019-10-10 Siemens Aktiengesellschaft Object recognition from images using cad models as prior
US20210201474A1 (en) * 2018-06-29 2021-07-01 Photogauge, Inc. System and method for performing visual inspection using synthetically generated images
CN111105008A (zh) * 2018-10-29 2020-05-05 富士通株式会社 模型训练方法、数据识别方法和数据识别装置
CN109461167B (zh) * 2018-11-02 2020-07-21 Oppo广东移动通信有限公司 图像处理模型的训练方法、抠图方法、装置、介质及终端
US10803987B2 (en) * 2018-11-16 2020-10-13 Elekta, Inc. Real-time motion monitoring using deep neural network
CN109544496A (zh) * 2018-11-19 2019-03-29 南京旷云科技有限公司 训练数据的生成方法、对象检测模型的训练方法和装置
JP7167668B2 (ja) * 2018-11-30 2022-11-09 コニカミノルタ株式会社 学習方法、学習装置、プログラムおよび記録媒体
KR102135478B1 (ko) * 2018-12-04 2020-07-17 엔에이치엔 주식회사 딥러닝 기반 가상 헤어 염색방법 및 시스템
CN109583509B (zh) * 2018-12-12 2020-11-03 南京旷云科技有限公司 数据生成方法、装置及电子设备
CN109670546B (zh) * 2018-12-14 2022-11-25 武汉市哈哈便利科技有限公司 一种基于预设模板的商品匹配及数量回归识别算法
JP7300828B2 (ja) * 2018-12-21 2023-06-30 株式会社エヌ・ティ・ティ・データ 学習データ生成システム、学習データ生成方法、機械学習モデルの学習方法
CN111382772B (zh) * 2018-12-29 2024-01-26 Tcl科技集团股份有限公司 一种图像处理方法、装置及终端设备
CN111435432B (zh) * 2019-01-15 2023-05-26 北京市商汤科技开发有限公司 网络优化方法及装置、图像处理方法及装置、存储介质
JP7279368B2 (ja) * 2019-01-17 2023-05-23 富士通株式会社 学習方法、学習プログラムおよび学習装置
JP7163786B2 (ja) * 2019-01-17 2022-11-01 富士通株式会社 学習方法、学習プログラムおよび学習装置
JP7156049B2 (ja) 2019-01-17 2022-10-19 富士通株式会社 学習方法、学習プログラムおよび学習装置
CN109902577A (zh) * 2019-01-25 2019-06-18 华中科技大学 一种轻量级手势检测卷积神经网络模型的构建方法及应用
CN110009013B (zh) * 2019-03-21 2021-04-27 腾讯科技(深圳)有限公司 编码器训练及表征信息提取方法和装置
JP2020160616A (ja) * 2019-03-25 2020-10-01 ブラザー工業株式会社 生成装置、コンピュータプログラム、生成方法
CN110110778B (zh) * 2019-04-29 2023-04-25 腾讯科技(深圳)有限公司 图像处理方法、装置、电子设备和计算机可读存储介质
US10984558B2 (en) * 2019-05-09 2021-04-20 Disney Enterprises, Inc. Learning-based sampling for image matting
CN110599515A (zh) * 2019-08-14 2019-12-20 北京影谱科技股份有限公司 一种前景对象自动分层处理方法、装置、系统及存储介质
US11657513B2 (en) 2019-11-29 2023-05-23 Samsung Electronics Co., Ltd. Method and system for generating a tri-map for image matting
CN111243058B (zh) * 2019-12-31 2024-03-22 富联裕展科技(河南)有限公司 物件模拟图像生成方法及计算机可读存储介质
US11687778B2 (en) 2020-01-06 2023-06-27 The Research Foundation For The State University Of New York Fakecatcher: detection of synthetic portrait videos using biological signals
US11195044B2 (en) * 2020-01-12 2021-12-07 Dalian University Of Technology Fully automatic natural image matting method
US11062525B1 (en) * 2020-01-28 2021-07-13 United States Of America, As Represented By The Secretary Of The Army Method for generating an augmented set of images
CN111369581B (zh) * 2020-02-18 2023-08-08 Oppo广东移动通信有限公司 图像处理方法、装置、设备及存储介质
US20210287096A1 (en) * 2020-03-13 2021-09-16 Nvidia Corporation Microtraining for iterative few-shot refinement of a neural network
US11823216B2 (en) * 2020-05-05 2023-11-21 International Business Machines Corporation Classifying behavior through system-generated timelines and deep learning
CN111627098B (zh) * 2020-05-21 2023-04-07 广州光锥元信息科技有限公司 对图像中水流区域识别并生成动态水流视频的方法及装置
CN111724441A (zh) * 2020-05-28 2020-09-29 上海商汤智能科技有限公司 图像标注方法及装置、电子设备及存储介质
US11663764B2 (en) * 2021-01-27 2023-05-30 Spree3D Corporation Automatic creation of a photorealistic customized animated garmented avatar
US11816871B2 (en) * 2020-12-30 2023-11-14 Advanced Micro Devices, Inc. Real-time low latency computer vision/machine learning compute accelerator with smart convolutional neural network scheduler
CN112819848B (zh) * 2021-02-04 2024-01-05 Oppo广东移动通信有限公司 抠图方法、抠图装置和电子设备
US11593948B2 (en) 2021-02-17 2023-02-28 Adobe Inc. Generating refined alpha mattes utilizing guidance masks and a progressive refinement network
US11836905B2 (en) 2021-06-03 2023-12-05 Spree3D Corporation Image reenactment with illumination disentanglement
US11854579B2 (en) 2021-06-03 2023-12-26 Spree3D Corporation Video reenactment taking into account temporal information
US11769346B2 (en) 2021-06-03 2023-09-26 Spree3D Corporation Video reenactment with hair shape and motion transfer
CN113409224B (zh) * 2021-07-09 2023-07-04 浙江大学 一种图像目标针对性增强方法、装置、设备及存储介质
CN113592074B (zh) * 2021-07-28 2023-12-12 北京世纪好未来教育科技有限公司 一种训练方法、生成方法及装置、电子设备
GB202204198D0 (en) * 2022-03-24 2022-05-11 Supponor Tech Limited Image processing method and apparatus
GB202204204D0 (en) * 2022-03-24 2022-05-11 Supponor Tech Limited Image processing method and apparatus
GB202204196D0 (en) * 2022-03-24 2022-05-11 Supponor Tech Limited Image processing method and apparatus
GB202204205D0 (en) * 2022-03-24 2022-05-11 Supponor Tech Limited Image processing method and apparatus
GB202204202D0 (en) * 2022-03-24 2022-05-11 Supponor Tech Limited Image processing method and apparatus
US20230342991A1 (en) * 2022-04-21 2023-10-26 Adobe Inc. Machine learning-based chroma keying process

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2306641A1 (en) * 1999-04-26 2001-10-25 Adobe Systems Incorporated Identifying intrinsic pixel colors in a region of uncertain pixels
US8175384B1 (en) * 2008-03-17 2012-05-08 Adobe Systems Incorporated Method and apparatus for discriminative alpha matting
US9350924B2 (en) * 2014-08-25 2016-05-24 John G. Posa Portable electronic devices with integrated image/video compositing
ES2714152T3 (es) * 2015-01-28 2019-05-27 Google Llc Capas de normalización por lotes
US9773196B2 (en) * 2016-01-25 2017-09-26 Adobe Systems Incorporated Utilizing deep learning for automatic digital image segmentation and stylization
GB2550344B (en) * 2016-05-13 2020-06-03 Holition Ltd Locating and augmenting object features in images
CN106408510B (zh) * 2016-09-08 2019-09-10 厦门美图之家科技有限公司 一种获取人脸图像的美颜蒙版的方法及系统
US10380741B2 (en) * 2016-12-07 2019-08-13 Samsung Electronics Co., Ltd System and method for a deep learning machine for object detection

Also Published As

Publication number Publication date
GB2560219B (en) 2021-01-27
GB201718547D0 (en) 2017-12-27
US20190220983A1 (en) 2019-07-18
GB2560219A (en) 2018-09-05
US10657652B2 (en) 2020-05-19
CN108537859A (zh) 2018-09-14
AU2017254848B2 (en) 2021-07-01
US10255681B2 (en) 2019-04-09
US20180253865A1 (en) 2018-09-06
AU2017254848A1 (en) 2018-09-20
CN108537859B (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
DE102017010210A1 (de) Bild-Matting mittels tiefem Lernen
DE102018007937A1 (de) Entfernen und Ersetzen von Objekten in Bildern entsprechend einem geführten Nutzerdialog
DE112017002799B4 (de) Verfahren und system zum generieren multimodaler digitaler bilder
DE102018006247A1 (de) Digitalbildvervollständigung unter Verwendung des Deep Learning
DE102017009049A1 (de) Ermöglichen von Transformationen Skizze-zu-Gemälde
DE102020002964A1 (de) Verwenden eines neuronalen Netzwerks mit einer Zwei-Strom Encoder-Architektur zur Erzeugung digitaler Kompositbilder
DE102019005938A1 (de) Intelligentes Identifizieren von Ersetzungsbereichen zum Mischen und Ersetzen von Personen in Gruppenporträts
DE102018006317A1 (de) Tiefe neurale Netzwerke für hervorstechenden Inhalt für eine effiziente Segmentierung eines digitalen Objekts
DE102017009910A1 (de) Bearbeiten von Digitalbildern unter Nutzung eines neuronalen Netzwerkes mit einer netzwerkinternen Erstellungsschicht
DE102020002153A1 (de) Einsetzen von ein Objektattribut detektierenden Modellen zum automatischen Auswählen von Versionen detektierter Objekte in Bildern
DE102020007951A1 (de) Einsetzen eines der Einfärbung dienenden neuronalen Netzwerkes zum Generieren von eingefärbten Bildern auf Grundlage interaktiver Farbkanten
DE102019007196A1 (de) Identifizieren von Zielobjekten unter Nutzung der skalierungsdiversen Segmentierung dienender neuronaler Netzwerke
EP2691934B1 (de) Phantombilddatenbank (3d)
DE112019007550T5 (de) Automatisches segmentieren und anpassen von bildern
DE102018003475A1 (de) Formbasierte Grafiksuche
DE112019001702T5 (de) Verfahren, systeme, herstellungsgegenstände und vorrichtungen zur erzeugung digitaler szenen
DE102019122402A1 (de) Das klassifizieren von zeitreihenbilddaten
DE202017007534U1 (de) Multiskalige 3D-Textursynthese
DE112020005732T5 (de) Erzeugen von trainingsdaten zur objekterkennung
DE102018009313A1 (de) Erzeugen selektiver virtueller Langzeitbelichtungsbilder
DE102021105291A1 (de) Gewichtsdemodulation für ein erzeugendes neuronales netz
DE102019000178A1 (de) Interaktives System zum automatischen Synthetisieren einer contentsensitiven Füllung
DE102022209528A1 (de) Visuelle Analysesysteme zur Diagnose und Verbesserung von Deep-Learning-Modellen für bewegbare Objekte beim autonomen Fahren
DE102015009894A1 (de) Ausrichten von Mehrfachansichtsabtastungen
WO2014206394A2 (de) Computerimplementierter digitaler unschärfefilter zur erzeugung eines einem falsch fokussierten linsensystem entsprechenden unschärfeeindrucks in einem digital in einem bild-speicher ursprünglich vorliegenden bild

Legal Events

Date Code Title Description
R081 Change of applicant/patentee

Owner name: ADOBE INC., SAN JOSE, US

Free format text: FORMER OWNER: ADOBE SYSTEMS INCORPORATED, SAN JOSE, CALIF., US

R082 Change of representative

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

R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06K0009660000

Ipc: G06V0030194000

R016 Response to examination communication